@@@ @@@@
@ @ @
@ @ @
@ @ @ @ @ @@ @@@@ @@@ @@@
@ @ @ @ @@@ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @@ @@@@ @ @
@ @ @ @ @ @@ @ @ @ @ @ @ @@
@@ @@ @@@ @@ @ @@ @@@@ @@@@ @
@@@ @
@ @
(c) П.Федин @@@@
ПОЛНОЕ ОПИСАНИЕ + ПОЛНЫЙ ДИЗАССЕМБЛЕР ПЗУ TR-DOS 5.04 (5.03)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ДЛЯ ПРОФЕССИОНАЛОВ, А ТАКЖЕ ДЛЯ ТЕХ, КТО ХОЧЕТ ИМИ СТАТЬ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
продолжение
Адрес 7541. Если идет проверка на синтаксис, то возврат из прог-
раммы, вызвавшей эту подпрограмму. Установите 23611.
7541 CALL 7536;проверка, что делается
RET NZ ;если идет выполнение, то возврат
POP HL ;снятие адреса возврата в вашу программу
RET ;возврат по следующему адресу
────────────────────────────────────────────────────────────────
Адрес 7547. Помещение числа на стек калькулятора. Установите
23645 на символ перед числом. Если строка проверяется на синтак-
сис, то будет установлен флаг Z, а при выполнении он сброшен.
7547 CALL 7722;берем следующий символ строки
CALL 7617;помещение числа на стек калькулятора
JR 7536 ;проверка, идет выполнение или проверка и возврат
────────────────────────────────────────────────────────────────
Адрес 7555. Открытие потока 0. Используется также с адреса 7556
(открытие потока; номер в регистре A).
7555 XOR A ;номер потока - 0
7556 RST 32 ;открытие потока
DEFW #1601
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7560. Открытие потока 2.
7560 LD A,2 ;номер потока - 2
JR 7556;открытие потока
────────────────────────────────────────────────────────────────
Адрес 7564. Выборка текущего символа строки. Поместите его адрес
в 23645.
7564 RST 32
DEFW #0018
RET
────────────────────────────────────────────────────────────────
Адрес 7568. Ввод команды.
7568 CALL 7555 ;открытие потока 0
RST 32 ;редактирование командной строки
DEFW #0F2C
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7575. Очистка экрана и открытие потока 0.
7575 RST 32
DEFW #ODбB
RET
────────────────────────────────────────────────────────────────
Адрес 7579. Поиск массива. Установите 23645 на имя массива. Если
массив найден, то в HL будет его адрес.
7579 RST 32
DEFW #28B2
RET
────────────────────────────────────────────────────────────────
Адрес 7583. Очистка низа экрана.
7583 RST 32
DEFW #ODбE
RET
───────────────────────────────────────────────────────────────
Адрес 7587. Печать числа из регистра A. Используется также с ад-
ресов 7588 (печать числа из регистра C) и 7593 (печать числа из
регистра BC).
7587 LD C,A ;переброска числа в C
7588 LD B,0 ;перевод числа в двухбайтную форму
JP 7593 ;странная команда!
7593 PUSH BC ;сохранение числа
CALL 8433 ;изменение памяти
POP BC ;восстановление числа
RST 24 ;печать числа
DEFW #1A1B
CALL 8433 ;восстановление памяти
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7605. Снятие строки со стека калькулятора. В DE будет ад-
рес строки, в BC - ее длина.
7605 RST 32
DEFW #2BF1
RET
────────────────────────────────────────────────────────────────
Адрес 7613. Помещение строки на стек калькулятора. Установите
23645 на начало строки.
7613 RST 32
DEFW #1C8C
RET
────────────────────────────────────────────────────────────────
Адрес 7617. Помещение числа из BC на стек калькулятора.
7617 RST 32
DEFW #1C82
RET
────────────────────────────────────────────────────────────────
Адрес 7621. Установка CH_ADD на второй символ строки. Установи-
те 23825.
7621 LD HL,(23825);берем адрес строки команды
INC HL ;берем адрес ее второго символа
LD (23645),HL;помещаем его в CH_ADD
RET ;возврат
продолжение следует ...
Other articles: