Soviet Union ZX Spectrum CommunityЧетверг, 28.03.2024, 21:47
Вы вошли как Гость | Группа "Гости" | RSS
 [ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Soviet Union ZX Spectrum Community » ZX-строительство » Железо » Схема дешифрации стандартных портов
Схема дешифрации стандартных портов
HazarДата: Четверг, 10.01.2013, 13:26 | Сообщение # 1
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
решил разработать более полную схему дешифрации стандартного ZX-Spectrum 48 /128

Прикрепления: 2020752.gif (29.3 Kb)


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Четверг, 10.01.2013, 15:50 | Сообщение # 2
Координатор
Группа: Координаторы
Сообщений: 701
Статус: Offline
Не покатит. Спектрум - это не IBM PC, у него изначальным стандартом является неполная дешифрация портов, и криворукое программирование, использующее обращения по нестандартным адресам. С такой дешифрацией, у тя куча прог работать не будут. Смотри дешифрацию у KAY-1024, там она наиболее правильная, хотя в компах на FPGA можно сделать ещё более правильную - там не надо экономить логику smile

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 11.01.2013, 06:28 | Сообщение # 3
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Цитата (Black_Cat)
изначальным стандартом является неполная дешифрация портов, и криворукое программирование, использующее обращения по нестандартным адресам. С такой дешифрацией, у тя куча прог работать не будут


Тогда может сделать анализатор портов и адресного пространства (по IORQ) и каждый раз проводить проверку,
далее по результатам делать пере-адресацию . И тогда все будет работать


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Пятница, 11.01.2013, 08:33 | Сообщение # 4
Координатор
Группа: Координаторы
Сообщений: 701
Статус: Offline
Цитата (Hazar)
Тогда может сделать анализатор портов и адресного пространства (по IORQ) и каждый раз проводить проверку, далее по результатам делать пере-адресацию


smile для Спектрума достаточно хорошей документации и корректной схемотехники. Так было, есть, и будет всегда smile


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 11.01.2013, 09:04 | Сообщение # 5
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Цитата (Black_Cat)
изначальным стандартом является неполная дешифрация портов


Ну и как подключить к спектруму новое устройство которое использует 3 порта ХХХХ (HHex)


Spectrum жив в нашей душе навсегда
 
HazarДата: Суббота, 12.01.2013, 20:54 | Сообщение # 6
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Добавил дешифрацию для Spectrum +3

Прикрепления: 6923036.gif (79.6 Kb)


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Воскресенье, 13.01.2013, 06:18
 
HazarДата: Суббота, 12.01.2013, 21:00 | Сообщение # 7
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Stránkování paměti

Расширение памяти

Поскольку процессор Z80 может адресовать только 64 КБ памяти, весь размер памяти 192 КБ разделен на страницы размером 16 КБ, которое připínají в адресном пространстве процессора. Адреса от 0 до 16383 подключены к одному из четырех страниц ROM памяти с адреса 16384 до 32767 прилагается страница 5 из оперативной памяти с адреса 32768 по решению 49151 связана стр. 2 RAM и адреса от 49152 до 65535 может обратиться подключить любую из восьми страниц памяти, в том числе участки № 2 и № 5 [5] Кроме того, память может быть настроена в систему allram, когда весь спектр адресов только в составе оперативной памяти. Компьютер имеет два VideoRam, один из которых расположен на странице 5 а другая расположена на странице № 7

Схема расширения памяти компьютера Sinclair ZX Spectrum +3

Прикрепления: 1289996.jpg (50.4 Kb)


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Воскресенье, 13.01.2013, 05:29
 
HazarДата: Пятница, 25.01.2013, 14:46 | Сообщение # 8
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
для расширения памяти используется порт 32765 и 8189 Значение каждого бита значения передаются в порт 32765, выглядит следующим образом:



Подержанные порты [6]
десятичной, шестнадцатеричной важность декодирования
Používané porty[6]
desítkově šestnáctkově dekódování význam
254 FE xxxxxxx0 klávesnice, magnetofon, reproduktor, barva okraje
4093 0FFD 0000xxxx xxxxxx0x paralelní port
8189 1FFD 0001xxxx xxxxxx0x stránkování paměti
12285 2FFD 0010xxxx xxxxxx0x stavový registr řadiče disketové jednotky
16381 3FFD 0011xxxx xxxxxx0x datový registr řadiče disketové jednotky
32765 7FFD 01xxxxxx xxxxxx0x stránkování paměti
49149 BFFD 10xxxxxx xxxxxx0x data hudebního čipu AY
65533 FFFD 11xxxxxx xxxxxx0x výběr datového registru hudebního čipu AY

Добавлено (25.01.2013, 14:46)
---------------------------------------------
распространенные стандарты памяти
   
 
Для переключения памяти в Scorpion, KAY, Profi и ATM1 используется 2
порта - это #7ffd (0, 1 и 2-ой биты) + биты дополнительного порта.
 
Для Pentagon и ATM2 используется один порт (только #7ffd).
 
                ---------
Pentagon ---------
 
256K - используется 6-ой бит #7FFD
512K - используются 6 и 7 биты #7FFD
1024K - используются 5, 6 и 7 биты #7FFD
4096K - используются 5, 6, 7 биты #7FFD + 0,1 биты #AFF7
 
Примечание насчет последних двух: 5-ый бит в оригинальном спектруме
служит для отключения порта #7FFD, посему есть вероятность оказаться в
48-ом режиме.
 
            ------------ Scorpion/KAY
------------
 
256К - используется 4-ый бит #1FFD (Scorpion и KAY)
512K - не бывает
1024K Scorpion - используются 4, 6 и 7-ой биты #1FFD
1024K KAY - используются 4 и 6 биты #1FFD + 6-ой бит #7FFD
 
                  
----- Profi -----
 
256К-1024К - используются 0, 1 и 2 биты #DFFD
 
Примечание: На Profi физически присутствует 4 линейки памяти (значения
0,1 2,3 4,5 и 6,7 в порту #DFFD). Линейки могут быть запаяны как РУ5
(64Кб), так и РУ7 (256Кб). Если памяти 1Мб, то все просто - стоит 4
линейки по 256Кб. Но большое количество Profi имеет 256К, 512К, 768К и
576К(!) памяти. Например, в Profi 576K используется 0,1,2,3 банки и четверть
7-ой банки памяти.
 
                  
----- ATM-1 -----
 
256К - не бывает
512K - используются 0 и 1 биты #FDFD
1024К - используются 0, 1 и 2-ой биты #FDFD
 
Насчет 1024K: на оригинальном ATM-1 всегда было только 512Кб. 2-ой бит
порта #FDFD использовался при подключении ПЗУ объемом не 64Кб (27512)
как обычно, а 128Кб (271000). Он выбирал дополнительные 4 странички.
Но этот наворот практически никогда и нигде не использовался, даже в
ATM-2 (хотя сейчас разрабатывается новое ПЗУ на все 128Кб для ATM-2,
но не для ATM-1). Так что этот бит практически являлся неиспользуемым,
что и позволило народным умельцам его задействовать. То есть стандарт неофициальный.

 
                  
----- ATM-2 -----
 
256К и 512К - может и были, но я никогда не слышал
1024K: есть 2 способа адресации страниц: с использованием #7ffd+#fff7 и
только через #fff7. В #fff7 биты записываются инвертированные!
Раскладка битов порта #FFF7 такая:
0-5 - номер страницы (0-63).
6 - определяет, что это за страница: 0 - ROM, 1 - RAM
7 - Определяет сочетание #FFF7 и #7FFD. А именно: 0 - определяет
страницы только порт #FFF7, а 1 - инвертированные D0-D2 порта #FFF7
заменяются на неинвертированные D0-D2 из порта #7FFD. Биты старше них
продолжают браться из порта #FFF7.
 
Сам порт #FFF7 доступен только из TR-DOS ПЗУ. Биты в него записываются
инвертированные! Пример работы:
 
    LD BC,#FFF7
    LD A,n
    CPL
    CALL OUTC
    ...
 
OUTC LD HL,#2A53 ;здесь OUT ©,A:RET
    PUSH HL
    JP #3D2F

Прикрепления: 6177613.jpg (104.5 Kb)


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Воскресенье, 13.01.2013, 06:20
 
Black_CatДата: Пятница, 25.01.2013, 16:03 | Сообщение # 9
Координатор
Группа: Координаторы
Сообщений: 701
Статус: Offline
Цитата (Hazar)
Pentagon ---------
256K - используется 6-ой бит #7FFD
512K - используются 6 и 7 биты #7FFD
1024K - используются 5, 6 и 7 биты #7FFD
4096K - используются 5, 6, 7 биты #7FFD + 0,1 биты #AFF7

Пент с 256к никогда не выпускался, были токо 128, 512, 1024. Про #AFF7 - не факт.
Цитата (Hazar)
1024K Scorpion - используются 4, 6 и 7-ой биты #1FFD

Это любительская доработка, фирмой Скорпион не поддерживалось ничего кроме 256к.

Цитата (Hazar)
1024K KAY - используются 4 и 6 биты #1FFD + 6-ой бит #7FFD

Вааще-то D7 #1FFD и D7 #7FFD
Цитата (Hazar)
Примечание насчет последних двух: 5-ый бит в оригинальном спектруме служит для отключения порта #7FFD, посему есть вероятность оказаться в
48-ом режим

Для Пента более 128к для таких случаев есть порт #EFF7


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 25.01.2013, 17:15 | Сообщение # 10
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Цитата (Black_Cat)
1024K KAY - используются 4 и 6 биты #1FFD + 6-ой бит #7FFD

Вааще-то D7 #1FFD и D7 #7FFD

даа - вот везде пишут по разному

по портам ZX Spectrum +3 то хоть все правильно написал?


Spectrum жив в нашей душе навсегда
 
HazarДата: Пятница, 25.01.2013, 17:23 | Сообщение # 11
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
В продолжении темы я немного подправил старую статью
которая публиковалась в ZX-Element-SpellBbinder

Ни для кого не секрет, что дополнительные  порты в  компьютерах кроме преимуществ ( дополнительная память,  
отключение ПЗУ ит.д.) приносят пользователям и головную боль, а  именно необходимость  их блокировки.
В противном случае не идут некоторые проги  и  демы.  Предлагаемые  схемы  борьбы с  этим заключаются в жесткой 
дешифрации данных портов  и  являются полезным  дополнением  к схеме  компьютера,  однако  не  решают проблемы
полностью. При обращении к портам по короткой адресации  все равно возникают проблемы.

Например: LD  A,#DF
OUT (#FD),A

сработает  порт у ПРОФИ (#DFFD). Еще более печальная ситуация на СКОРПИОНАХ :

STS 3.3 делает так
LD  A,#1F
OUT (#FD),A

он  конечно-же хочет включить 7-й банк, но по иронии судьбы (или создателей   СКОРПИОНа)
откликается  порт  #1FFD  и  компьютер благополучно зависает. О ПЕНТАГОНАХ-512 я уже и не говорю.

Предлагаемая схема "отслеживает" команды  короткой адресации и блокирует, на время  ее   выполнения, все критичные порты.  
Что позволяет  не пользоваться кнопками блокировки портов.



Схема  работает  элементарно:  команд короткой адресации всего две:  это  IN  A,(NN)  -  #DB и OUT (NN),A - #D3.
Они отличаются  всего  одним битом - D3, его мы просто не заводим.При появлении на  шине  данных  байта  #DB (1101 1011)
или  #D3 (1101 0011)  на выходе  ЛА2 появится  логический   0.   Если  этот байт  код  операции,  извлекаемой процессором,
то сигналом М1 он зафиксируется в ТМ2 до следующего  цикла извлечения  кода  операции.  Если процессор считает любую другую
команду,  то  в  ТМ2  зафиксируется логическая 1. Данный сигнал (BLOK)  используется  для блокировки критичных портов. А так-же
для  управления  жесткостью  дешифрации  других портов (например  #7FFD  и  муз. сопроцессора) позволяя  иметь  жесткую
дешифрацию при длинной адресации и упрощенную при короткой.

Данная  схема  опробована  на компьютера  ПРОФИ  и СКОРПИОН и показала  прекрасные результаты.
Прикрепления: 7800773.gif (10.6 Kb)


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Пятница, 25.01.2013, 20:09
 
Black_CatДата: Пятница, 25.01.2013, 22:48 | Сообщение # 12
Координатор
Группа: Координаторы
Сообщений: 701
Статус: Offline
Цитата (Hazar)
Предлагаемая схема "отслеживает" команды  короткой адресации и блокирует, на время  ее   выполнения, все критичные порты.  


smile http://zx.clan.su/forum/8-66-553-16-1336469313


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Вторник, 29.01.2013, 14:36 | Сообщение # 13
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Текущий проект по портам с учетом идей рассмотренных в этой теме

Прикрепления: 1647675.gif (36.4 Kb)


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Вторник, 29.01.2013, 18:37
 
Soviet Union ZX Spectrum Community » ZX-строительство » Железо » Схема дешифрации стандартных портов
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2006Сайт управляется системой uCoz