Привет всем!
Предыстория:
Искал я документацию на всякие контроллеры, микросхемы и прочее и набрел на TMPZ84C015AF-6, производитель Toshiba. Вкратце опишу. Это тот же Z80, работающий на частоте 10 мГц, в нем встроенный генератор, лишь подключить нужно кварцевый резонатор. Вообще, этот чип не слишком уж и отличается от Z80, много в нем встроено (ненужного), но главное отличие - CMOS! Поэтому потребление мало. К тому же в PDF-ке я посмотрел, что этот CPU совмещается с TTL, можно сделать переключатель Super-Turbo ;-))). А можно работать и на обычной частоте. Все зависит лишь от схематичного решения. Мы можем и не обсуждать этот CPU, просто возьмем за основу Z80 (по сигналам идентично все, по выводам 100 против 40).
Ну да ладно. Это мне напомнило сразу же мой любимый Спектрум Ленинградского варианта ;-))). Я набрал в яндексе ZX-Spectrum и был удивлен множеством ссылок. И спасибо модераторам и всем кто поддерживает сайт, ибо здесь очень неплохо обсуждают железо.
У меня масса вопросов и все касательно железячек.
Я хочу понастальгировать и собрать себе Спектрум. Но не обычный уже. Может, сможете помочь мне разобраться?
Пусть правила будут такими:
1. 64 кб СТАТИЧЕСКОГО ОЗУ, скажем микруха Toshiba TC551001BFTL-70L (Откуда я их выпаял - ума не приложу), да, я согласен, это 128 кб, ну, пусть "банк" второй останется не тронутым. Меня всяко устраивает динамическая память. Но, однако, как я предполагаю, лучше использовать статику. Ее не надо регенерировать, расчеты вести с таймингом и прочими аттрибутами.
2. Процессор Z80, и если подтвердится совместимость с тем CPU Toshiba, то заменить несложно.
3. Музыкальный сопр, ну это без проблем устанавливается, можно даже не обсуждать.
4. Никаких дисководов, CD-ROMов, HDD, носитель информации - магнитофон, но... читайте ниже.
5. Никаких PLM-ок.
6. Джойстик Kempston 1 и 2. Тоже понятно...
7. Носитель информации дополнительный продумывается. Это, скорее всего Flash-диск. Флешки сейчас подешевели настолько, что можно ими завалиться, а выпаивать можно еще и с дохлых HDD, например, с дохлых сетевушек (которые BOOT) и так далее. По идее, это хороший носитель информации. ОЧЕНЬ быстрый, явно быстрее всяких дисководов и HDD, а уж и тем более магнитофонов.
8. Несколько портов для программатора Flash-диска. Предположительно 3-4. Можно для экономии взять 2 порта из Ямашки ;-).
9. Программа для Flash-ROM. К сожалению это обязательно. А не хотелось. Объясню чуть ниже. Хотя, может, я и не прав...
10. Хочется схему, чтобы работала стабильно и хотя бы больше чем наполовину была бы совместима с оригиналом.
11. Нашел схему на CXA1146 кодера PAL-NTSC. Хорошо бы тоже ее собрать.
Когда статику поставлю, надо будет усовершенствовать шину адреса, мультиплексоры поприбавятся, конечно. Но я готов пойти на такие жертвы.
Формируется экран, вроде бы понятно как. Но по таймингам мне тяжело разбираться без рабочего экземпляра.
Flash-диск.
Представим 4 счетчика, которые управляют статической памятью и Flash-памятью. На вход первого подана частота, скажем, 2-3.5 мГц через элемент ИЛИ (второй вывод подключен к блоку сравнения правильности записи - это еще продумать надо, вообщем). Выхода счетчиков подключены через мультиплексоры (которые управляются нажатием кнопки, и которая подает на процессор сигнал Wait) к памяти и через регистры (для рассогласования) к Flash-памяти. Процессор переходит в состояние ожидания. На флеш-память подается сигнал записи, напряжение программирования и из логики делаю проверку на правильность записи. Это несложно. Вся память переписывается во флеш-память, включая экранную область (иногда и там бывают скрыты программы). Теперь, когда надо переписать в память обратно, нажимаем другую кнопку и переходит информация обратно также с помощью мультиплексоров и счетчиков. Выборка будет осуществляться постранично, по 64 кб, скажем, командой OUT 222(или любым другим портом),(страница адреса игры или программы, например 01H-1FH). Думаю, понятно я изложил здесь все? Просто почитав про CD-ROM, где хотят в Wav-формате писать на болванки, я подумал, что я еще не такой сумасшедший ;-))). Пусть даже содержимое ПЗУ переписывается, что жалко, что ли? Выпаяю еще флешки из HDD, если потребуется ;-). Плюс такого подключения в том, что не нужно создавать файловую систему, и все очень просто.
Вопросы только в другом.
1. Сколько процессор может ждать, не обращаясь к памяти и портам? По этому поводу я нигде не нашел ответа. Даже в описании процессора.
2. Главный вопрос. Как запускать программы из памяти? То есть надо в програмный счетчик сделать запись, где он был до момента записи во флеш, но как узнать, что БЫЛО в регистрах? И вообще, я думаю, что содержимое регистров надо также записывать во флешку, но снова же - как (узнать что было в регистрах, особенно в программном счетчике?)? То есть я сделаю этот флеш-диск, а толку от него совсем не будет, и процессор после ввода в память игры продолжит выполнять программу бейсика, как ни в чем не бывало... Или хуже того, просто тупо сбросится комп.
3. Не зря я писал раньше про программу, обслуживающую Flash-диск. Можно, например, прошить ее в ПЗУ, вместо обслуживания дисковода. И вызывать какой-нибудь командой на бейсике, скажем, CAT. Но все же, если ту или иную игру не взломать и не узнать, с какого адреса она запускается, тогда бесполезно все. Поэтому вопрос остается открытым.
Ваши предложения и высказывания? Но не бейте уж сильно...
А может, уже кто-то разработал подобное, а я все "велосипед" изобретаю? ;-)
Илья.
Пока.
ЗЫЖ Я сегодня разрисовал схему Ленинградки 1, уже с некоторыми усовершенствованиями в PCAD-e. Думаю, схема будет работать. Нет желающих проверить визуально? Могу на HTTP выложить. Чую картинка будет большой. Правда, некоторые штришки остались, доработать надо маленько... Поставил уже статику, пришлось поставить 9 мультиплексоров КП11 (на адресацию), вместо 5-ти. И пока не рисовал еще Flash-диск. Может, я и не прав, поэтому лучше как-нибудь проверить и перепроверить. Только ума не приложу, как из PCAD-а сделать картинку...