Если что-=то менять, то почему бы не сделать загружаемый знакогенератор - заменить рф2 на ру10. Ну, конечно схему загрузки добавить. ру10 вроде тогда уже делали.
Вид для печати
Если что-=то менять, то почему бы не сделать загружаемый знакогенератор - заменить рф2 на ру10. Ну, конечно схему загрузки добавить. ру10 вроде тогда уже делали.
Придется ставить дополнительную ПЗУ на 4 Кб, так как основная ПЗУ всего 2 Кб и занята полностью. А раз такое дело, то лучше сделать триггер, который бы переключал в качестве знакогенератора ОЗУ<->ПЗУ. То есть, параллельно ПЗУ припаять ОЗУ и переключать их CS-входы.
В видеоадаптере Микро-80 применены микросхемы РУ2 объемом 1 КБит. Вот их и надо применять. Нам потребуется 6x3 Килобита под знакогенератор 256*6*10. Это уже 18 редких микросхем + дешифратор адреса (155ИД4).
Это уже слишком много, что бы это делать.
А далее, нам нужно только 5 корпусов. Несколько корпусов (155ЛН1, 155ЛА7), которые будут при обращении к адресам F000-F005 подавать сигнал записи на РУ2. Если мы заполним видеопамять идентичными значениями, то на 8 адресных линиях РУ2 будет всегда нужное значение. На остальные 4 линии адреса ставим мультиплексор (2x155ЛР1 + 155ЛН1) к которому подключаем шину адреса процессора.
И вот такой способ записи:
void setChar(byte charCode, byte* charData) {
``for(i=0; i<2048; i++)
````memory[0xE000+i] = charCode;
``for(i=0; i<6; i++)
````memory[0xF000+i] = charData[i];
}
Можно конечно мультиплексор поставить на все линии адреса, но для этого потребуется еще 4 корпуса 155ЛР1. И еще триггер, что бы сделать возможность отключения знакогенератора от ценного адресного пространства.
Короче, дохрена микросхем. Легче тогда выкинуть знакогенератор вообще и сделать полноценный граф режим. Получится что то похожее на Специалист.
Можно обойтись и меньшим количеством микросхем, если сделать порт F000 так, чтобы при чтении из него выдавались младшие биты адреса знакогенератора, а при записи - записывался бы байт по текущему адресу в знакогенератор. Процедура записи ОЗУ знакогенератора должна будет подождать нужный адрес и сразу записать байт (64мкс будет достаточно). Заполнив экран особым образом можно ускорить загрузку знакогенератора. Итого - пара шинных формирователей для чтения/записи порта и немного логики.
---------- Post added at 15:23 ---------- Previous post was at 15:16 ----------
В качестве шинных формирователей можно использовать две 589АП16.
два момента:
загружаемый ЗГ не позволит организовать к-либо отладку до его загрузки, что иногда критично.
полный граф режим весьма "неспешен" в скролировании текста, кто пускал NC на "происке" тот в цирке не смеётся.
разумнее былоб сразу продумать и вывести соответсвующие сигналы видео модуля для возможности подключения дополнительного графического ОЗУ, получив таким образм полноценную текстовую моду и накладывающуюся на неё графическую.
Я и предлагал параллельно ПЗУ знакогенератора добавить ОЗУ. Когда потребуется свой знакогенератор, то мы просто отключим ПЗУ.
Если так дальше развивать идею, то у нас получится MSX без спрайтов. То есть видеоадаптер ПК80xx. :) А потом добавим 4 цвета на символ и скроллы и получится NES без спрайтов.
Я бы делал, но не буду, аппаратное копирование изображений 8x8 с учетом прозрачности. Процессор бы отправлял три значения: номер спрайта, X, Y. Если сделать отдельную видеопамять, то вывод спрайта займет 64 такта, что при скорости в 8 Мгц равно скорости выполнение нескольких команд процессора 8080. За это время он как раз успеет загрузить следующие N,X,Y. Схема громоздка, но проста как валенок.
Это уже было бы похоже на MSX2
Был такой комп ПК8002, так там и спрайты были, на рассыпухе. И схема не такая уж громоздкая была, одноплатный, в корпусе Корвета.
imho спрайты нужны для портирования мегаигр, но зачем портировать с MSX или NES если проще использовать оригинал?
а вот для написания программ на бейсике текст и графика будут очень кстати.
Еще один вариант компьютера:
Процессор 580ВМ80
ПЗУ 27256
ОЗУ 62256
580ВВ55 для клавиатуры, магнитофона.
Видеоадаптер на одном корпусе ATMega (http://www.tinyvga.com/avr-vga)
И еще 4 корпуса примитивной логики и получится компьютер.
:)
Компьютер-то получится, но какой интерес в такой конструкции?
Мало корпусов? Да пробегала ссылка на комп на одном корпусе Атмеги - с клавиатурой, вывод на ВГА монитор, загрузкой программ и встроенным бейсиком - всё это на одной микросхеме.
Мне вот интересно даже не старые компы, какими они были, а какими они могли бы быть. Если бы меня сегодняшнего закинуть в те времена, как бы я сделал?
вот почитал интересное сообщение:
http://www.zx.pk.ru/showpost.php?p=429802&postcount=5
"Можно пойти дальше, и предположить, что процессор хочет данные всегда, когда Ф2 0=>1 (для Z80 надо бандить на оба перепада). Для надежной работы ВМ80 можно просто выделить квант времени от Ф1 до Ф2 (одна четверть такта Ф2):
Код:
F1- _________---_________---_________---
F2- ------______------______------______
ARB |CPU| |CPU|
И в этот квант полностью предоставлять память процессору (сигнал записи маскировать им же). И тогда 3/4 оставшегося времени использовать память по своему усмотрению."
Тоесть если 1/3 времени предоставить одному процессору, то в оставшиеся 3/4 времени к памяти успеют обратится ещё 3 процессора?
Правильно ли я понял, что если тактовые сигналы нескольких вм80 сдвинуть относительно друг друга, то 4 процессора смогут работать с общей памятью?
Тогда 1 процессор сможет выводить видео, другой звук в нормальном качестве,
третий подсасывает в это же время новые данные с диска\карточки памяти, и четвертый всем этим управляет.
Такая вот колхозная Амига на вм80.
Или может не стоит городить такие огороды, а вместо 4-х двухмегагерцовых процессоров взять один 8-ми мегагерцовый и будет тоже самое?