Любопытно, насколько девятка в режиме apple проходит тест https://github.com/peterferrie/a2audit -- есть у кого возможность запустить?
Вид для печати
Любопытно, насколько девятка в режиме apple проходит тест https://github.com/peterferrie/a2audit -- есть у кого возможность запустить?
Не знаю как в реале, а под эмулятором выглядит как-то так:Вложение 69248
То есть опознается как Apple II Plus, но эмуляция Language Card после выдачи нестандартной последовательности команд
реагирует неправильно и на запись не закрывается.Код:LDA $C08B
STA $C08B
LDA $C08B
Большую часть графических тестов нормально пройти нельзя, поскольку идет сравнение LORES и HIRES режимов, а LORES на девятке отсутствует.
Еще было непонятно, как включается и работает режим apple, документация слегка невнятна. ИКП делает так:
- пишет в C083 - включается запись в псевдо-ПЗУ ("LC")
- загружает II Plus ROM в LC (отличия от оригинала минимальные)
- сбрасывает карту памяти нижних 48K - физические банки 0-5 соответствуют виртуальным
- назначает физические банки 8 и 9 виртуальным 14 и 15 - для эмуляции LC в режиме Apple
- пишет с C081 - включается чтение из ПЗУ Агат
- пишет в C0F1 - включается режим Apple, теперь по адресам D000-FFFF читается содержимое физических банков 6 и 7
- JSR $FE84 (SETNORM) и так далее -- загрузка с 140К дисковода
Технически все просто: есть два триггера, вырабатывающих сигналы ПМ и ПА.
Сигнал ПА (что бы там не говорила документация) переключает дисплейный контроллер между режимами "Агат" и "Apple".
Сигнал ПМ отключает ПЗУ и меняет режим эмуляции Language Card. Он также влияет на триггер ПА.
Если ПМ=1 (режим "Агат"), то триггер ПА можно переключать и туда и обратно. Переключение в режим "Apple" происходит при любом обращении к адресам C050-C057. Переключение ДК в режим "Агат" происходит при обращении к адресам C700-C7FF.
Если ПМ=0 (режим "Apple"), то триггер ПА можно переключить только в режим "Apple". Переключение происходит также, как и при ПМ=1, но можно переключить режим и обратившись к адресам C700-C7FF.
Триггер ПМ переключается записью по адресам C0F0-C0FF. После того, как триггер ПМ переведен в режим "Apple", вернуть его в режим "Агат" нельзя кроме как выключением питания.
Заново написал эмулятор 840К контроллера для MAME, на очереди -- формат AIM. Посмотрим, как работают защиты от копирования :)
Что-то получается (это диск KARKN[7].aim)
https://youtu.be/mHwaDjkdcUI
https://twitter.com/jmechner/status/1141958403809513472 -- автор Каратеки заметил видос :)
http://agat-legacy.narod.ru/docs/teac.rar -- комментированный листинг прошивки 840K контроллера.
Первая порция улучшений Агат-9 выйдет в следующем релизе MAME (0.212), но пилить еще много. А пока -- КДПВ (это Nippel Clock):
https://wiki.mamedev.org/images/a/aa...ppel_Clock.png
Починил чтение AIM, в которых явно указано положение индекса:
https://www.youtube.com/watch?v=al4EuxS9Xlo