@@@ @@@@
@ @ @
@ @ @
@ @ @ @ @ @@ @@@@ @@@ @@@
@ @ @ @ @@@ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @@ @@@@ @ @
@ @ @ @ @ @@ @ @ @ @ @ @ @@
@@ @@ @@@ @@ @ @@ @@@@ @@@@ @
@@@ @
@ @
(c) П.Федин @@@@
ПОЛНОЕ ОПИСАНИЕ + ПОЛНЫЙ ДИЗАССЕМБЛЕР ПЗУ TR-DOS 5.04 (5.03)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ДЛЯ ПРОФЕССИОНАЛОВ, А ТАКЖЕ ДЛЯ ТЕХ, КТО ХОЧЕТ ИМИ СТАТЬ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
продолжение
Адрес 7629. Принятие 2-х строк на стек калькулятора. Поместите в
23825 адрес первой строки.
7629 CALL 7647 ;прием первой строки на стек калькулятора
CALL 7564 ;берем текущий символ
CP "," ;это запятая ?
JP NZ,7450;если нет, то ошибка
CALL 7722 ;следующий символ
CALL 7613 ;прием второй строки на стек калькулятора
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7647. Установка CH_ADD и помещение строки на стек кальку-
лятора. Установите 23825.
7647 CALL 7621 ;установка CH_ADD
JP 7613 ;помещение строки на стек калькулятора
Адрес 7629. Принятие 2-х строк на стек калькулятора. Поместите в
23825 адрес первой строки.
7629 CALL 7647 ;прием первой строки на стек калькулятора
CALL 7564 ;берем текущий символ
CP "," ;это запятая ?
JP NZ,7450;если нет, то ошибка
CALL 7722 ;следующий символ
CALL 7613 ;прием второй строки на стек калькулятора
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7653. Принятие одного или двух чисел после символа CODE.
Первое число будет в 23769, второе - в 23771. Если было одно
число, то оно будет в обоих ячейках. Если принято 2 числа, то в
23766 будет 3. На входе установите 23645 и 23611. Используется
также с адреса 7691 (принятие числа; установите 23645 и 23611;
число будет в 23771, а в 23766 будет 3).
7653 CALL 7564 ;берем текущий символ строки
CP 175 ;это CODE ?
RET NZ ;если нет, то возврат
CALL 7547 ;принятие числа на стек калькулятора
JR Z,7675 ;если идет проверка на синтаксис, то дальнейшая проверка
CALL 7609 ;снятие числа со стека калькулятора
LD (23769),BC;установка первого числа
LD (23771),BC
7675 CALL 7564 ;берем текущий символ
CP "," ;это запятая ?
JR Z,9691 ;если да, то принятие второго числа
CP 13 ;это ENTER ?
JP NZ,7450 ;если нет, то ошибка
CALL 7541 ;если строка проверяется на синтаксис, то возврат
RET ;возврат
7691 CALL 7547 ;прием второго числа на стек калькулятора
RET Z ;если проверка на синтаксис, то возврат
CALL 7609 ;снятие числа со стека калькулятора
LD (23771),BC;помещение его в 23771
LD A,3 ;приняли 2 числа
LD (23766),A
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7708. Удаление из командной строки пятибайтных чисел
7708 LD HL,(23825);берем адрес строки команды
RST 32 ;удаление из нее пятибайтных чисел
DEFW #11A7
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7715. Выделение пространства в рабочей области. В BC по-
местите длину требуемого пространства.
7715 LD HL,(23649);загрузка HL из 23649
RST 32 ;выделение пространства
DEFW #0030
RET ;возврат
────────────────────────────────────────────────────────────────
Адрес 7722. Выборка следующего символа строки. Установите 23645.
7722 RST 32
DEFW #0020
RET
продолжение следует ...
Other articles: