Я Вас понимаю... Но Вам проще. У вас только пиксели, без цвета.. Вам достаточно одного такта.
Но я могу понять и конструктора Спектрума. Всё делалось на УЛА с весьма ограниченными ресурсами. Спектруму надо 2 такта - пикселы и цвет. Фифо там вроде нет. Значет, нужен максимально простой автомат - один такт - защёлкивается пиксель, второй такт - цвет.
Вы думаете, почему экран сделан так специфично, что сначала идёт первая строка, потом 8-я и т.п.? А соседние строки разнесены на 256 байт. Только что бы на 1 строку смещаться инкрементом старшего байтика? Это тоже, но есть одно "железное" но. Всё байта знакоместа лежат в одной строке RАМ. Причём в одной же строке лежат не только пикселы одного знакоместа, но и их атрибут. Цикл обращения к видеопамяти специфичен - сначала падает RAS, с защёлкиванием строки, а потом 2 раза CAS защёлкивает адреса столбцов пикселей и атрибутов, причём отсчёлкивается так, что бы данные появлялись как раз в конце такта. Потом уже освобождается RAS.
Я не думаю, что если бы Вам надо было читать 2 байта подряд - Вы бы мягко въехали в процессор. А если не подряд - то это надо фифо и более сложный автомат. Для которого у разработчиков Спека врядли бы было место на УЛА.
ПС. Насчёт цвета погорячился - Ваш клон цветной, как я увидел опосля. Но я не думаю, что у Вас идут 2 чтения поподряд, и без фифо, так что основной посыл поста - в силе.






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