
Сообщение от
PVV
надо изменить на:
C8E2 E5 PUSH H
тогда работает N
А, вот куда 10Н девается. Теперь точно всё чётко: 01 => 11, F5 => E5 и контрольная сумма остаётся какой была. Что касается клавиш, там всё прикольнее и проще:
Код:
C8FC CD 03 C8 CALL 0C803H
C8FF D1 POP D
C900 FE 4E CPI 4EH
C902 CA D9 C8 JZ 0C8D9H
C905 D8 RC
C906 F9 SPHL
C907 C1 POP B
C908 D1 POP D
C909 E1 POP H
C90A 31 FD 7F LXI SP,7FFDH
C90D 00 NOP
C90E 00 NOP
Сначала вводится символ, он попадает в [A]. Затем восстанавливается уровень стэка, компенсируя первый PUSH по адресу C8E2 а затем считанный код символа сравнивается с 4EH, а это ASCII 'N'. Если код символа равен - то идём на второй круг, если код ASCII меньше 4EH - выходим через RC (RET C). А в остальных случаях идем дальше, где значение в HL заносится как вершина стэка (должно указывать на параметры запускаемой программы), откуда идет прогрузка всех регистров и однократный вызов подпрограммы считывания данных с ROM диска, которая завершаясь через RET выйдет уже в загружаемую программу. Смысл кнопок в том, что по таблице ASCII 'M' < 'N' < 'Y'. Но будут работать все кнопки согласно весу ASCII относительно кода 'N'.
- - - Добавлено - - -

- - - Добавлено - - -
А не, автозапуска не происходит, ведь стэк обнуляется до стандартного мониторного адреса. Только загрузка кода в память. Статью надо читать внимательнее:

- - - Добавлено - - -

Сообщение от
PVV
Я поправил описатель в образе РОМдиска (последние 4 байта образа FF 46 00 00) , и первую программу загрузил правильно, она запустилась, но надо разбираться дальше.
Нужно делать строго как описано в статье. Код вычисляет строку от 0000H, делая -0010H за каждый проход цикла вывода имени и свойств файла. Т.е. сначала 7FF0H, затем 7FE0H и так далее (старший бит игнорируется в адресации ROM диска), с каждым нажатием на 'N', но это перед выводом. А на момент запуска этот указатель в начале параметров, откуда уже через серию POP они и попадают в регистры. Это плата за простоту и компактность кода. Порядок же описываемых программ действительно не важен.