Да, удивительно, что странный компьютер с мигающим экраном и ОЗУ для программ в 512 байт (0.5 кб из 1 кб ОЗУ отнимает экран 32*16) был продан тиражом в 1 млн экзампляров. И для него выпустили 1000 игр. Именно на этом сэр Клайв Синклер стал миллионером.Сообщение от NEO SPECTRUMAN
Хоть кто-нибудь знает принцип ZX81? Как работает ZX81 не понять, т.к там ULA, причём другая, чем в ZX-Spectrum. А вот принцип ZX80 можно понять по схеме, ULA там нет. В основном отличие ZX80 от ZX81 сводится к замене ПЗУ 4К на 8К и замене 16-ти TTL-корпусов на ULA (а в ZX-Spectrum ULA заменяет 40 TTL-корпусов). Изучив схему ZX80 можно понять принцип ZX80 и ZX81. К сожалению, пока схемы ZX80 не смог достать.
Знаю принцип других ЭВМ, что построены на идее ZX80. Думаю, что принцип тот же самый, что и в ZX80. Но там экран не мигает. Почему же экран мигает в ZX80?
Принцип состоит в следующем. Пока идет обратный ход кадровой развёртки (это 30% кадрового периода) Z80 прогоняет программу пользователя. Перед началом вывода растра происходит прерывание и Z80 уходит на п/п-мму визуализации. В ней Z80, т.к буфер данных при этом закрыт, читает команды NOP. Команда NOP выполняется за 4 машинных такта - 1200 НСЕК. Это время вывода на экран 8-ми точек. При последовательном считывании NOP-команд, процессор последовательно перебирает адреса и по /MREQ с /M1 считывается символ из экранного буфера, в ПЗУ с фонтом перекодируется в видео байт, и защёлкивается в выходном сдвиговом регистре. Затем за 4 машинных такта сдвигается на видео-выход. Вместо NOP в более умных подобных ЭВМ используют такты RFSH в режиме останова Z80, а старший адрес строки задаётся регистром I (в Z80 на адреса A8-A15 во время такта RFSH выдаётся регистр I).
Т.о Z80 служит лишь для формирования инкрементируемого адреса, т.е заменяет собой группу счётчиков. Из 64 МКСЕК строчного периода за 39 МКСЕК выдаётся на экран 32 символа (точнее линия растра строки в 32 символа). А в оставшиеся 25 МКСЕК Z80 выдаёт ССИ, запуская одновибратор, подготавливается к выводу следующей строки и переходит к её выводу. Для синхронизации используются WAIT, HALT и прерывания.
Т.к переход к визуализации происходит по прерыванию 50 Гц, то нет никаких причин для погасания экрана. Поэтому был удивлён узнав, что ZX80 и ZX81 отображают экран, только если идёт опрос клавиатуры, отчего мигают экраном при вводе.
Кто-нибудь может это объяснить, почему мигает ZX80? И вообще, хоть кто-нибудь знает точный принцип его работы и может его изложить? Там что, визуализация без прерываний?
Интересуюсь потому, что в конце 80-х пытался разработать компьютер с КР580, используя подобный программный принцип, что требует меньше деталей, чем в РК86.




Ответить с цитированием