Предистория:
Примерно 1 декабря 2006 года я наткнулся на этот форум. Во первых был приятно удивлен что Spectrum ЖИВ!, а во вторых меня замучала настольгия по светлому прошлому и я решил собрать клон. Нужно заметить что году в 1999-2000 я сидел за живым спеком (у меня ещё не было пицюка), меня реально не устраивали 48К и существующий видеорежим. память я расширил до 128К по стандарту, а вот всё что выше до 1М как уш получилось. Но до видео так и не добрался. Были конечно попытки собрать новый контроллер со своей памятью, но все эти попытки останавливались после того как я на экране монитора получал полосатый матрац (без участия спека). Память я так к ниму и не прикрутил, так как: первое: не мог достать то что мне надо было, второе - откуда у бедного студента деньги...
Сейчас же всё изменилось. Денег хватает, времени мало, но тем не менее....
В чём суть:
Немного пораскинув мозгами я решил собрать таки клон. Но на современной элементной базе.
Железо:
1. Процессор Z84C0020VEC (Z80 20MHz PLCC44 CMOS)
2. ОЗУ K6R4008C1C-15 (SRAM 512K*8 15ns CMOS)x 2 шт
3. ПЗУ am29F010-90 (128K*8 90ns Flash)
4. Всё остальное - Altera EP1K30
5. Макетная плата (еще проектируется)
Концепция:
Особое внимание хочу уделить видеоконтроллеру о чем подробно и рассказываю.
Видеоконтроллер по сути дела состоит из синхрогенератора и счетчиков адреса.
Синхрогенератор будет иметь 8 портов, предназначенных для хранения информации о ширине синхроимпульса, импульса гашения, ширины бордюра, и ширине экрана. Таким образом появлется возможность полностью менять параметры экрана и если удастся запустить режим 640*480 100Гц. Изначально работы ведутся над 60 и 75Гц режимом, так на эти режимы информация имеется. Стандартный ТВ режим также будет присутствовать.
У Видеоконтроллера также будут присутствовать следующие возможности конфигурирования:
1. Управление частотой задающего генератора, что собственно и обеспечивает смену разрешений TV/VGA.
2. Управление счетчиком адреса (адресация спектрум экрана/линейная адресация памяти экрана)
3. Переключение экранов. Количество этих самых экранов будет ограничиваться объёмом ОЗУ.
4. Аппаратный мультиколор до 256 цветов из палитры 65536, а если остануться свободные ноги у ПЛИС то и 16777216.
5. Аппаратный скроллинг экрана по обеим осям.
6. Текствовый режим. в режиме ТВ размер символа 8*8 25 строк, в режиме VGA - 19*8 25 строк или 8*8 60 строк. Возможности загрузки шрифтов скорее всего не будет, т.к. возможности видеоконтроллера слихвой перекрывают эту необходимость.
Спектрум в целом:
Частота процессора будет также задаваться через порты ввода вывода. Могу сказать только одно процессор будет работать без WAIT'ов теоретически до 120 с чем-то МГЦ... такчто как разгонится :-)
Адресация памяти. Гарантировано будет совместимость до 128К, дальше как попрет... Диспетчер памяти. Рассматриваются два варианта. Первый: любая страница ОЗУ из 256[до 4МБ] и более (а возможно и 65536 [до 1 Гб]) становится в любую четверть экрана. Второй (посложнее): Введение аппаратного сегментного регистра по принципу IBM PC (к содержимому сегментного регистра прибавляются 2 старших бита адреса процессора. т.е. если содержимое регистра =#DEAD а программа обращется по адресу #ABCD, то реальный адрес памяти будет равен #37ABEBCD). В чем сложноть... для того чтобы не ограничивать программу объёмом 64К или не заставлять програмеров скакать от отного сегмента к другому, необходимо перехватывать КОП от Z80 и на время выполнения операций с памятью при выполнении команды LD A,(HL) LD (HL),A подставлять другой рестр, и так далее... Таким образом программист получает доступ к огромному объёму памяти данных...
Законченый вариант:
Плата будет иметь формфактор микро-ATX с 5ю системными разъёмами 62pin, возможно появиться и расширение этого разъёма (как ISA).
Что сделано на сегдня:
Подготавливается PCB файл для макетной платы... готовую плату получу через 1-2 дня. В Quatrus'е засимулированы режимы работы синхрогенератора... по всей вероятности работает
Цена:
На сегодняшний день всё это удовольствие обходится мне в 925 рублей. (плата бесплатная будет :-)))
На этомпока всё... у кого есть предположения - пишите... есть вопросы? отвечу.