Спасибо за наводку.
3.03 работает стабильнее, хотя Dig в итоге тоже вылетела в пульт.
Зато хоть посмотрел, наконец, что это за игры)
Выложил тут скриншоты.
Потрассировал SH DEV в поисках того где считается память.
В итоге увидел что искомое число инициализируется ещё до загрузки команды с диска.
Как я понял, SH DEV по $MEMPT смотрит на memory control block, в котором указана верхняя граница виртуальной памяти.
- - - Updated - - -
Не заметил сразу. IOSCAN показывает регистр 170014. В описании такого нет.
Регистры 170000-170004 -- используются микросхемой, выполняющей операции умножения и деления.
Последний раз редактировалось nzeemin; 01.02.2017 в 20:28.
На тестовом стенде проверил копирование дисков под 3.03 -- работает.
В MD0: ставим диск M5.dsk
В MD1: ставим чистый диск
DIR MD1: -- даёт "Directory I/O error"
INIT MD1: -- инициализируем диск
DIR MD1: -- показывает пустой диск
COPY MD0:PIP.SAV MD1: -- проверяем копирование файла
DIR/BR/C:3 MD1: -- показывает PIP.SAV
COPY /DEVICE MD0: MD1: -- копируем диск на диск поблочно
DIR/BR/C:3 MD1: -- убеждаемся что новый диск такой же как M5.dsk
Теперь загрузимся с нового диска.
SET SG OFF -- как советует драйвер SG, возвращаем знакогенератор по умолчанию -- если этого не сделать то первые надписи при загрузке будут выводить мусор.
BOOT MD1: -- запускаем загрузку с нового диска
Вот тестовый стенд: https://github.com/nzeemin/nemigabtl-testbench
Это ядро эмулятора (папка emubase просто копируется из nemigabtl) + набор тестов.
Позволяет за минуту прогнать все тесты которые есть, убедиться что ничего не сломалось.
Плюс на нём я разбираю подробно отдельные случаи.
Последний раз редактировалось nzeemin; 01.02.2017 в 13:14.
Из другой темы, но подходит для этой.
Как и говорил, после адреса 160000 ячейки заблокированы и с пульта не прочитаются до 170000.
На реале после включения (ром 4.05, 4.06)
170000/000000
170002/000000
170004/047764
170006/001412
170010/074010
170012/000000
170014/000000
Далее 170016 не откликается.
170020/001261
170022/000000
170024/000000
170026/000000
170030/000000
170032/000000
Далее.
177100/000271
177102/000377
177104/000127
177106/000106
И ещё ( с эмулятором совпадают).
177560/000000
177562/000012
177562/000200
177564/000000
177570/000000
177572/000000
177574/000000
На 4.06 для команды пульта '/' есть переменная 177744 с адресом, ниже которого можно смотреть ячейки. На остальных прошивках такого нет.
Правильное значение переменной 177744 равно 160000 и устанавливается только в одном месте, код на 161720:
На это место мы переходим из двух точек: (1) прерывание HALT, (2) команда 'D'.Код:161720: MOV #160000, @#177744
То есть, признаком того что нужно настроить 177744, является отсутствие значения 056364 по адресу 177776.Код:; Обработчик прерывания по сигналу/команде HALT 160210: CMP #056364, @#177776 ; Проверка, настроена ли память режима HALT 160216: BEQ 160224 ; Да, настроена 160220: JMP @#161720 ; Нет => выход на процедуру холодного старта
Теперь смотрим процедуру холодного старта:
То есть, сразу на холодном старте переменная 177776 будет установлена. В итоге переменная 177744 у меня оказывается не настроена, но на реале с ней всё в порядке.Код:; Холодный старт при включении питания 161726: MOV #001000, SP ; Устанавливаем стек 161732: CLR R0 161734: MOV #056364, -(R0) ; -> (177776) 161740: MOV #164042, -(R0) ; Адрес стандартной п/п вывода символа -> (177774)
Какой из этого вывод? видимо при холодном старте сразу после первой команды (настройки стека) возникает прерывание HALT.
- - - Updated - - -
NemigaBTL 1.0.77
Изменения с версии 53:
* Отладчик: подсказки для текущей инструкции.
* Режим экрана 896 x 624 увеличение 1.75 x 2
* Прерывание HALT на старте, только для конфигураций 4.05/4.06
- - - Updated - - -
Как итог, в этой версии заработала команда пульта '/', нужные ячейки стали открываться.
- - - Updated - - -
nzeemin, На реале после включения пишет:
И мигающий курсор. При этом на дисководе 0/1 загорается светодиод (двигатель не крутит).Код:МРТИ КВ НЕМИГА 4.06 177777 РМП ЖДИТЕ..._
Т.е в пульт самостоятельно не выходит, а только тогда когда будет нажата кнопка ПУСК.
- - - Добавлено - - -
А состояние регистров устройств?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)