; ======================================================
; RENUM Statement
; ======================================================
1617H  (01H) LXI B,000AH
161AH  (C5H) PUSH B
161BH  (50H) MOV D,B
161CH  (58H) MOV E,B
161DH  (CAH) JZ 1649H
1620H  (FEH) CPI 2CH
1622H  (CAH) JZ 162FH
1625H  (D5H) PUSH D
1626H  (CDH) CALL 0B8CH     ; Evaluate line number text at M
1629H  (42H) MOV B,D
162AH  (4BH) MOV C,E
162BH  (D1H) POP D
162CH  (CAH) JZ 1649H
162FH  (CFH) RST 1          ; Compare next byte with M
1630H  DB   2CH
1631H  (CDH) CALL 0B8CH     ; Evaluate line number text at M
1634H  (CAH) JZ 1649H
1637H  (F1H) POP PSW
1638H  (CFH) RST 1          ; Compare next byte with M
1639H  DB   2CH
163AH  (D5H) PUSH D
163BH  (CDH) CALL 0B97H
163EH  (C2H) JNZ 0568H      ; Generate Syntax error
1641H  (7AH) MOV A,D
1642H  (B3H) ORA E
1643H  (CAH) JZ 0B87H       ; Generate FC error
1646H  (EBH) XCHG
1647H  (E3H) XTHL
1648H  (EBH) XCHG
1649H  (C5H) PUSH B
164AH  (CDH) CALL 075DH     ; Find line number in DE
164DH  (D1H) POP D
164EH  (D5H) PUSH D
164FH  (C5H) PUSH B
1650H  (CDH) CALL 075DH     ; Find line number in DE
1653H  (60H) MOV H,B
1654H  (69H) MOV L,C
1655H  (D1H) POP D
1656H  (DFH) RST 3          ; Compare DE and HL
1657H  (EBH) XCHG
1658H  (DAH) JC 0B87H       ; Generate FC error
165BH  (D1H) POP D
165CH  (C1H) POP B
165DH  (F1H) POP PSW
165EH  (E5H) PUSH H
165FH  (D5H) PUSH D
1660H  (C3H) JMP 1671H

1663H  (09H) DAD B
1664H  (DAH) JC 0B87H       ; Generate FC error
1667H  (EBH) XCHG
1668H  (E5H) PUSH H
1669H  (21H) LXI H,FFF9H
166CH  (DFH) RST 3          ; Compare DE and HL
166DH  (E1H) POP H
166EH  (DAH) JC 0B87H       ; Generate FC error
1671H  (D5H) PUSH D
1672H  (5EH) MOV E,M
1673H  (23H) INX H
1674H  (56H) MOV D,M
1675H  (7AH) MOV A,D
1676H  (B3H) ORA E
1677H  (EBH) XCHG
1678H  (D1H) POP D
1679H  (CAH) JZ 1684H
167CH  (7EH) MOV A,M
167DH  (23H) INX H
167EH  (B6H) ORA M
167FH  (2BH) DCX H
1680H  (EBH) XCHG
1681H  (C2H) JNZ 1663H
1684H  (C5H) PUSH B
1685H  (CDH) CALL 16A7H
1688H  (C1H) POP B
1689H  (D1H) POP D
168AH  (E1H) POP H
168BH  (D5H) PUSH D
168CH  (5EH) MOV E,M
168DH  (23H) INX H
168EH  (56H) MOV D,M
168FH  (7AH) MOV A,D
1690H  (B3H) ORA E
1691H  (CAH) JZ 16A2H
1694H  (EBH) XCHG
1695H  (E3H) XTHL
1696H  (EBH) XCHG
1697H  (23H) INX H
1698H  (73H) MOV M,E
1699H  (23H) INX H
169AH  (72H) MOV M,D
169BH  (EBH) XCHG
169CH  (09H) DAD B
169DH  (EBH) XCHG
169EH  (E1H) POP H
169FH  (C3H) JMP 168BH

16A2H  (01H) LXI B,062CH
16A5H  (C5H) PUSH B
16A6H  (FEH) CPI F6H
16A8H  (AFH) XRA A
16A9H  (32H) STA FACDH
16ACH  (2AH) LHLD F45DH     ; Start of BASIC program pointer
16AFH  (2BH) DCX H
16B0H  (23H) INX H
16B1H  (7EH) MOV A,M
16B2H  (23H) INX H
16B3H  (B6H) ORA M
16B4H  (C8H) RZ
16B5H  (23H) INX H
16B6H  (5EH) MOV E,M
16B7H  (23H) INX H
16B8H  (56H) MOV D,M
16B9H  (D7H) RST 2          ; Get next non-white char from M
16BAH  (B7H) ORA A
16BBH  (CAH) JZ 16B0H
16BEH  (4FH) MOV C,A
16BFH  (3AH) LDA FACDH
16C2H  (B7H) ORA A
16C3H  (79H) MOV A,C
16C4H  (CAH) JZ 1722H
16C7H  (FEH) CPI A6H
16C9H  (C2H) JNZ 16E4H
16CCH  (D7H) RST 2          ; Get next non-white char from M
16CDH  (FEH) CPI 89H
16CFH  (C2H) JNZ 16BAH
16D2H  (D7H) RST 2          ; Get next non-white char from M
16D3H  (FEH) CPI 0EH
16D5H  (C2H) JNZ 16BAH
16D8H  (D5H) PUSH D
16D9H  (CDH) CALL 0BA0H
16DCH  (7AH) MOV A,D
16DDH  (B3H) ORA E
16DEH  (C2H) JNZ 16EDH
16E1H  (C3H) JMP 170DH

16E4H  (FEH) CPI 0EH
16E6H  (C2H) JNZ 16B9H
16E9H  (D5H) PUSH D
16EAH  (CDH) CALL 0BA0H
16EDH  (E5H) PUSH H
16EEH  (CDH) CALL 075DH     ; Find line number in DE
16F1H  (0BH) DCX B
16F2H  (3EH) MVI A,0DH
16F4H  (DAH) JC 1735H
16F7H  (CDH) CALL 4D61H     ; Move LCD to blank line (send CRLF if needed)
16FAH  (21H) LXI H,1712H
16FDH  (D5H) PUSH D
16FEH  (CDH) CALL 2B72H     ; Print buffer at M until NULL or '"'
1701H  (E1H) POP H
1702H  (CDH) CALL 3898H     ; Print binary number in HL at current position
1705H  (C1H) POP B
1706H  (E1H) POP H
1707H  (E5H) PUSH H
1708H  (C5H) PUSH B
1709H  (CDH) CALL 3890H     ; Finish printing BASIC ERROR message " in " line #
170CH  (E1H) POP H
170DH  (D1H) POP D
170EH  (2BH) DCX H
170FH  (C3H) JMP 16B9H

1712H  DB   "Undefined line ",00H

1722H  (FEH) CPI 0DH
1724H  (C2H) JNZ 170FH
1727H  (D5H) PUSH D
1728H  (CDH) CALL 0BA0H
172BH  (E5H) PUSH H
172CH  (EBH) XCHG
172DH  (23H) INX H
172EH  (23H) INX H
172FH  (23H) INX H
1730H  (4EH) MOV C,M
1731H  (23H) INX H
1732H  (46H) MOV B,M
1733H  (3EH) MVI A,0EH
1735H  (21H) LXI H,170CH
1738H  (E5H) PUSH H
1739H  (2AH) LHLD FA8EH
173CH  (E5H) PUSH H
173DH  (2BH) DCX H
173EH  (70H) MOV M,B
173FH  (2BH) DCX H
1740H  (71H) MOV M,C
1741H  (2BH) DCX H
1742H  (77H) MOV M,A
1743H  (E1H) POP H
1744H  (C9H) RET

1745H  (3AH) LDA FACDH
1748H  (B7H) ORA A
1749H  (C8H) RZ
174AH  (C3H) JMP 16A8H

Attachment: renum.xlsx
Description: MS-Excel 2007 spreadsheet

Reply via email to