@@@ @@@@ @ @ @ @ @ @ @ @ @ @ @ @@ @@@@ @@@ @@@ @ @ @ @ @@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@ @@@@ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @@ @@ @@ @@@ @@ @ @@ @@@@ @@@@ @ @@@ @ @ @ (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 продолжение следует ...