Educational program - FULL DESCRIPTION + FULL ROM DISASSEMBLER TR-DOS 5.04 (5.03)

City #48
 @@@ @@@@
 @ @ @
           @@@
           @ @ @ @ @ @@ @@@@ @@@ @@@
           @ @ @ @ @@@ @ @ @ @ @ @ @
           @ @ @ @ @ @ @ @@ @@@@ @ @
        @ @ @ @ @ @@ @ @ @ @ @ @ @@
         @@ @@ @@@ @@ @ @@ @@@@ @@@@ @
                                                  @@@@
                                                 @@
(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