ЗАПУСТИИИИЛ!
только не fifan, а я, и не плюсовую версию пока, а стандартную, вернее прошивка от стандартной в плюсовой схеме. А теперь по порядку. Дабы помочь fifan_у с запуском его 'Галаксии Плюс' я промоделировал элементы его схемы в протеусе, а после решил собрать самому эту Галаксию на макетке, что на данный момент и сделал. Все запустилось с первого раза, с некоторыми видео артефактами, но я их достаточно быстро устранил двумя конденсаторами, один на такте сдвигового видео регистра (ИР10), из-за чего символы не прорисовывались полностью, а второй на входе тригера(ТМ2), формирующего WAIT, который приводил к слишком раннему началу видео вывода и половина первого символа уходила за край экрана (честно говоря, я не уверен в правильности такого решения здесь, но оно работает, дальше еще надо будет подумать, что можно сделать более правильно), изменение номиналов RC на одновибраторе, формирующем строчный импульс так-же меняет позицию начала видео вывода, но в гораздо меньших пределах.
В начале своих экспериментов, при запуске в протеусе разных прошивок, для стандарта и для плюса, я не увидел в них визуальных отличий, соотвестственно возник вопрос, как понять, что я работаю на ПЛЮСЕ? - получается только запуском ПО для ПЛЮС_а это можно понять, значат это ПО надо как-то загрузить в Галаксию.
Класическая версия Галаксии ПЛЮС подразумевает 6КБ ОЗУ из стандарта и 32КБ дополнительного ОЗУ, те 38КБ. Один 8КБ участок памяти в адресном пространстве Галаксии ПЛЮС не задействован. Я в своей схеме использую чипы на 8КБ и 32КБ, где первые 2КБ от 8КБайтного чипа скрыты под портами, и если посмотреть на дешифратор, то путем несложных манипуляций можно эти скрытые 2КБ добавить в общее поле памяти, а оставшиеся 6КБ в адресном пространстве выделить под что-то еще.
Помятуя о том, что Z80 умеет выполнять инструкции от 580ВМ80, а для ВМ80 у нас имеется НедоДос(sd_dos) для работы с SD картой, я решил этот sd_dos 'прикрутить' к Галаксии. Найденные 'лишние' 2КБ как нельзя лучше подходят для хранения переменных и буферов sd_dos, а 6КБ участок в адресном пространстве можно использовать под размещение портов SD интерфейса ( SD интерфейсу нужно лишь 2 адреса, а не 6КБ, но для простоты дешифрации я сделал так). В чем же все это отлаживать? - в эмуляторе b2m имеется поддержка SD, значит используем его. Используя имеющийся в сети листинг первой ПЗУ Галаксии адаптация sd_dos прошла достаточно просто, и используя информацию предоставленную fifan_ом о формате GTP я сделал поддержку этого формата для запуска файлов. И все было бы хорошо, но! часть файлов загружается и работает, а часть при попытке запуска выдает ошибки, которые, на первый взгляд, похожи на ошибки в самих GTP файлах. Возник вопрос, а в каком эмуляторе можно эти GTP файлы проверить то? - я не нашел этих эмуляторов!
и сразу же еще вопрос, эмулятор b2m для Галаксии может ли загружать в нее что-либо и в каком формате?
Теперь, что касается прошивок. В базовой ROM1.BIN нет ни каких вызовов в ROM2.BIN, а как оказалось, при установке ROM2 в ROM1 нужно сделать правки по адресу 0x03f9, заменить:
ld a,00ch ;03f9 Load 0ch (ASCII FF) into A
rst 20h ;03fb Call PUTCH_RST
на call 0x1000 ; (журнал RACUN03-38.png)
- вызов этой самой ROM2...
в некоторых прошивках, которые встречаются в сети этот патч сделан, в некоторых нет, при том, что сам ROM2.BIN присутствует, но никогда не вызывается...
Дальше больше, для вызова ROM3, которая используется в ПЛЮСе, так-же нет ни каких вызовов, однако в журналах о Галаксии встречается инструкция, о ручном вызове этой ROM3, командой A=USR(&E000) (журнал RACUN08-08.png), а в одной из прошивок я встретил в ROM1 на месте патча call 0x1000 вызов ROM3 - call 0xe000 ! Что же до ROM4.BIN, то его использовали как ROMDISK на 4КБ, в него я и разместил свой sd_dos.
Пока проверка на железе у меня затормозилась из-за отсутствия клавиатуры, думаю над решением этой задачи... и что-то мне кажется, что клавиатура у RK-86 очень похожа на клавиатуру Галаксии...
во вложении файлы для b2m, схема из протеуса, схема текущая и схема с измененным для SD интерфейса дешифратором адресов.
добавлю:
изменил тип файловой системы на SD карте с fat12 на fat16 и все GTP файлы теперь загружаются правильно, так-что теперь можно в эмуляторе b2m их загружать и смотреть, архив заменил.