@@@ @@@@
@ @ @
@@@
@ @ @ @ @ @@ @@@@ @@@ @@@
@ @ @ @ @@@ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @@ @@@@ @ @
@ @ @ @ @ @@ @ @ @ @ @ @ @@
@@ @@ @@@ @@ @ @@ @@@@ @@@@ @
@@@@
@@
(c) P. Fedin @@@@
FULL DESCRIPTION + FULL ROM DISASSEMBLER TR-DOS 5.04 (5.03)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FOR PROFESSIONALS, AND ALSO FOR THOSE WHO WANT TO BECOME THEM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
continued
Address 7629. Accepting 2 lines on the calculator stack. Place in
23825 address of the first line.
7629 CALL7647 ;accept the first line on the calculator stack
CALL 7564 ;take the current character
CP "," ;is this a comma?
JP NZ,7450;if not, then error
CALL 7722 ;next character
CALL 7613 ;receiving the second line onto the calculator stack
RET ;return
───────────────────────── ─────────────────── ────────────────────
Address 7647. Setting CH_ADD and placing the line on the calculator stack -
lator. Set to 23825.
7647 CALL 7621 ;setting CH_ADD
JP 7613 ;Place a string on the calculator stack
Address 7629. Accepting 2 lines on the calculator stack. Place in
23825 address of the first line.
7629 CALL 7647 ;receiving the first line onto the calculator stack
CALL 7564 ;take the current character
CP "," ;is this a comma?
JP NZ,7450;if not, then error
CALL 7722 ;next character
CALL 7613 ;receiving the second line onto the calculator stack
RET ;return
───────────────────────── ─────────────────── ────────────────────
Address 7653. Accept one or two numbers after the CODE symbol.
The first number will be in 23769,the second - in 23771. If there was one
number, it will be in both cells. If 2 numbers are accepted, then
23766 will be 3. Set the input to 23645 and 23611. Used
also from address 7691 (accepting number; set 23645 and 23611;
the number will be in 23771, and in 23766 there will be 3).
7653 CALL 7564 ;take the current character of the line
CP 175;is this CODE?
RET NZ ;if not, then return
CALL 7547 ;accepting a number onto the calculator stack
JR Z,7675 ;if there is a syntax check, then further check
CALL 7609 ;removing a number from the calculator stack
LD (23769),BC;setting the first number
LD (23771),BC
7675 CALL 7564 ;take the current character
CP "," ;is this a comma?
JR Z,9691 ;if yes, then accept the second number
CP 13;is this ENTER?
JP NZ,7450 ;if not, then error
CALL 7541 ;if the line is checked for syntax, then return
RET ;return
7691 CALL 7547 ;receiving the second number onto the calculator stack
RET Z ;if syntax check, then return
CALL 7609 ;removing a number from the calculator stack
LD (23771),BC; placing it in 23771
LD A,3 ;accepted 2 numbers
LD (23766),A
RET ;return
───────────────────────── ─────────────────── ────────────────────
Address 7708. Removing five-byte numbers from the command line
7708 LD HL,(23825);take the address of the command line
RST 32 ;removing five-byte numbers from it
DEFW #11A7
RET ;return
───────────────────────── ─────────────────── ────────────────────
Address 7715. Allocating space in the work area. In BC
place the length of the required space.
7715 LD HL,(23649);loading HL from 23649
RST 32 ;space allocation
DEFW #0030
RET ;return
───────────────────────── ─────────────────── ────────────────────
Address 7722. Fetching the next character of the line. Install 23645.
7722 RST 32
DEFW #0020
RET
to be continued...
Share your thoughts about the article