Files
MZ80A_RFS/software/DIS/XPATCH/XPATCH-5510.asm

1895 lines
50 KiB
NASM

; Disassembly of the file "XPATCH-5510.bin"
;
; CPU Type: Z80
;
; Created with dZ80 2.1
;
; on Sunday, 04 of April 2021 at 03:43 PM
;
PRTC EQU 0FEH
PRTD EQU 0FFH
GETL EQU 00003H
LETNL EQU 00006H
NL EQU 00009H
PRNTS EQU 0000CH
PRNTT EQU 0000FH
PRNT EQU 00012H
MSG EQU 00015H
MSGX EQU 00018H
GETKY EQU 0001BH
BRKEY EQU 0001EH
?WRI EQU 00021H
?WRD EQU 00024H
?RDI EQU 00027H
?RDD EQU 0002AH
?VRFY EQU 0002DH
MELDY EQU 00030H
?TMST EQU 00033H
TIMRD EQU 0003BH
BELL EQU 0003EH
XTEMP EQU 00041H
MSTA EQU 00044H
MSTP EQU 00047H
MONIT EQU 00000H
SS EQU 00089H
ST1 EQU 00095H
HLHEX EQU 00410H
_2HEX EQU 0041FH
?MODE EQU 0074DH
?KEY EQU 008CAH
PRNT3 EQU 0096CH
?ADCN EQU 00BB9H
?DACN EQU 00BCEH
?DSP EQU 00DB5H
?BLNK EQU 00DA6H
?DPCT EQU 00DDCH
PRTHL EQU 003BAH
PRTHX EQU 003C3H
ASC EQU 003DAH
HEX EQU 003F9H
DPCT EQU 00DDCH
DLY12 EQU 00DA7H
DLY12A EQU 00DAAH
?RSTR1 EQU 00EE6H
MOTOR EQU 006A3H
CKSUM EQU 0071AH
GAP EQU 0077AH
WTAPE EQU 00485H
MSTOP EQU 00700H
TAPECOPY EQU 011FDH
COLDSTRT EQU 01200H
WARMSTRTMON EQU 01250H
CMDWORDTBL EQU 015A8H
CMDJMPTBL EQU 01BB2H
CMTBUF EQU 02E33H
CMTFNAME EQU 02E34H
CMDREMDATA EQU 01C3CH
SYNTAXERR EQU 013ABH
CMDREAD EQU 02D12H
CMDLIST EQU 01C4DH
CMDRUN EQU 01E91H
CMDNEW EQU 01C42H
CMDPRINT EQU 02B0DH
CMDLET EQU 01D6AH
CMDFOR EQU 01F2BH
CMDIF EQU 021ADH
CMDTHEN EQU 013ABH
CMDGOTO EQU 01EA6H
CMDGOSUB EQU 01EC7H
CMDRETURN EQU 01EF8H
CMDNEXT EQU 01FC0H
CMDSTOP EQU 01D2CH
CMDEND EQU 01D15H
CMDON EQU 0203EH
CMDLOAD EQU 02D75H
CMDSAVE EQU 02D82H
CMDVERIFY EQU 02EB3H
CMDPOKE EQU 02191H
CMDDIM EQU 02080H
CMDDEFFN EQU 02201H
CMDINPUT EQU 02BFFH
CMDRESTORE EQU 01D4DH
CMDCLS EQU 021A6H
CMDMUSIC EQU 02269H
CMDTEMPO EQU 02282H
CMDUSRN EQU 02942H
CMDWOPEN EQU 02D9FH
CMDROPEN EQU 02D92H
CMDCLOSE EQU 02DADH
CMDMON EQU 028B6H
CMDLIMIT EQU 02967H
CMDCONT EQU 029CEH
CMDGET EQU 02902H
CMDINP EQU 029FEH
CMDOUT EQU 02A1CH
CMDCURSOR EQU 028B9H
CMDSET EQU 02AA6H
CMDRESET EQU 02AAAH
CMDAUTO EQU 02A2FH
CMDCOPY EQU 033ABH
CMDPAGE EQU 032D4H
OVFLERR EQU 013AEH
ILDATERR EQU 013B1H
DATMISERR EQU 013B4H
STRLENERR EQU 013B7H
MEMERR EQU 013BAH
LINELENERR EQU 013C0H
GOSUBERR EQU 013C3H
FORNEXTERR EQU 013C6H
FUNCERR EQU 013C9H
NEXTFORERR EQU 013CCH
RETGOSBERR EQU 013CFH
UNDEFFNERR EQU 013D2H
LINEERR EQU 013D5H
CONTERR EQU 013D8H
BADWRERR EQU 013DBH
CMDSTMTERR EQU 013DEH
READDATAERR EQU 013E1H
OPENERR EQU 013E4H
UNKNWNERR EQU 013E7H
OUTFILEERR EQU 013EAH
PRTNRDYERR EQU 013EDH
PRTHWERR EQU 013F0H
PRTPAPERERR EQU 013F3H
CHKSUMERR EQU 013F6H
TITLEMSG EQU 01347H
COPYRMSG EQU 01364H
READYMSG EQU 01384H
ERRORMSG EQU 0138AH
INMSG EQU 01391H
BREAKMSG EQU 01395H
BYTESMSG EQU 0139CH
ERRCODE EQU 013A3H
MSGNL EQU 01332H
UNUSEDTBL1 EQU 0167BH
UNUSEDTBL2 EQU 0167DH
WARMSTRT EQU 0124EH
OPERATORTBL EQU 0167FH
STRTONUM EQU 017FCH
GETNUM EQU 01E88H
SKIPSPACE EQU 0173FH
INCSKIPSPCE EQU 0173EH
EXECHL EQU 0177BH
EXECNOTCHR EQU 01795H
MATCHCHR EQU 017A3H
LINEBUFR EQU 0490DH
ATRB EQU 010F0H
NAME EQU 010F1H
SIZE EQU 01102H
DTADR EQU 01104H
EXADR EQU 01106H
COMNT EQU 01108H
SWPW EQU 01164H
KDATW EQU 0116EH
KANAF EQU 01170H
DSPXY EQU 01171H
MANG EQU 01173H
MANGE EQU 01179H
PBIAS EQU 0117AH
ROLTOP EQU 0117BH
MGPNT EQU 0117CH
PAGETP EQU 0117DH
ROLEND EQU 0117FH
FLASH EQU 0118EH
SFTLK EQU 0118FH
REVFLG EQU 01190H
SPAGE EQU 01191H
FLSDT EQU 01192H
STRGF EQU 01193H
DPRNT EQU 01194H
TMCNT EQU 01195H
SUMDT EQU 01197H
CSMDT EQU 01199H
AMPM EQU 0119BH
TIMFG EQU 0119CH
SWRK EQU 0119DH
TEMPW EQU 0119EH
ONTYO EQU 0119FH
OCTV EQU 011A0H
RATIO EQU 011A1H
BUFER EQU 011A3H
PRGSTART EQU 0505CH
ORG PRGSTART
L505C: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
L506B: NOP
NOP
L506D: LD BC,01B35H
PUSH BC
CALL L5098
JP Z,L5150
LD DE,L507D
JP MSGNL
L507D: DB "RANGE ERROR"
DB 00DH
L5089: DB "OVERFLOW ERROR",00DH
L5098: LD DE,MONIT
LD (05063H),DE
DEC DE
DEC DE
LD (05065H),DE
CALL 017D5H
OR C
INC DE
LD A,02DH
CP (HL)
JR NZ,L50C0 ; (+011H)
LD (05063H),DE
INC HL
CALL 048A0H
CPL
JR Z,L50D2 ; (+018H)
LD (05065H),DE
JR L50D2 ; (+012H)
L50C0: LD A,E
OR D
JR Z,L50CC ; (+008H)
LD (05063H),DE
LD (05065H),DE
L50CC: LD A,02FH
CP (HL)
JR NZ,L50D2 ; (+001H)
INC HL
L50D2: CALL 048A0H
INC L
JR NZ,L50DB ; (+003H)
LD DE,0000AH
L50DB: LD (05067H),DE
CALL 048A0H
NOP
JR NZ,L50E8 ; (+003H)
LD DE,0000AH
L50E8: LD (05069H),DE
LD (05051H),HL
LD BC,(05063H)
LD HL,(05065H)
OR A
SBC HL,BC
L50F9: JP C,SYNTAXERR
CALL L52BB
JR C,L50F9 ; (-008H)
CALL 01773H
JR Z,L5118 ; (+012H)
EX DE,HL
CALL 01867H
LD HL,(05067H)
EX DE,HL
SBC HL,DE
JR C,L5118 ; (+006H)
CALL L5118
L5115: XOR A
INC A
RET
L5118: LD BC,(05065H)
INC BC
CALL L52BB
JR NC,L5136 ; (+014H)
EX DE,HL
CALL 01867H
CALL L526C
EX DE,HL
CCF
JR C,L5149 ; (+01cH)
L512D: LD DE,L5089
CALL MSG
JP 01438H
L5136: PUSH DE
CALL 01867H
EX DE,HL
EX (SP),HL
CALL 01867H
CALL L526C
EX DE,HL
POP DE
JR C,L512D ; (-019H)
CALL 01773H
L5149: LD (L506B),HL
JR NC,L5115 ; (-039H)
XOR A
RET
L5150: CALL 01AF1H
LD HL,(01958H)
PUSH HL
POP DE
L5158: PUSH HL
OR A
SBC HL,DE
JP C,MEMERR
LD BC,00080H
SBC HL,BC
POP HL
JR NC,L517E ; (+017H)
LD BC,00100H
EX DE,HL
CALL 01888H
EX DE,HL
ADD HL,BC
PUSH HL
PUSH DE
CALL 018EAH
LD HL,(04E94H)
ADD HL,BC
LD (04E94H),HL
POP DE
POP HL
L517E: PUSH DE
LD A,(HL)
LDI
OR (HL)
JR Z,L519C ; (+017H)
LDI
LD A,(HL)
LDI
LD B,(HL)
LD C,A
LDI
INC BC
CALL L51D1
POP HL
LD C,(HL)
LD (HL),E
INC HL
LD B,(HL)
LD (HL),D
PUSH BC
POP HL
JR L5158 ; (-044H)
L519C: LD (DE),A
INC DE
EX DE,HL
LD (04E4EH),HL
POP HL
CALL 0195AH
LD BC,(05063H)
CALL L52BB
LD BC,(05067H)
L51B1: PUSH HL
CALL 01867H
JR Z,L51CF ; (+018H)
PUSH HL
LD HL,(05065H)
SBC HL,DE
POP HL
JR C,L51CF ; (+00fH)
EX (SP),HL
INC HL
INC HL
LD (HL),C
INC HL
LD (HL),B
LD HL,(05069H)
ADD HL,BC
PUSH HL
POP BC
POP HL
JR L51B1 ; (-01eH)
L51CF: POP HL
RET
L51D1: CALL L52D5
RET Z
CP 080H
JR NZ,L51D1 ; (-008H)
CALL L52D5
CP 08CH
JR Z,L51EC ; (+00cH)
CP 08DH
JR Z,L51EC ; (+008H)
CP 08EH
JR Z,L51EC ; (+004H)
CP 09CH
JR NZ,L51D1 ; (-01bH)
L51EC: CALL L52D5
DEC DE
DEC HL
SUB 030H
CP 00AH
JR NC,L51D1 ; (-026H)
CALL L5204
LD A,02CH
CP (HL)
JR NZ,L51D1 ; (-02eH)
LD (DE),A
INC DE
INC HL
JR L51EC ; (-018H)
L5204: PUSH DE
PUSH BC
CALL 017F6H
POP BC
CALL L526C
EX (SP),HL
JR NC,L523C ; (+02cH)
PUSH DE
PUSH HL
CALL NL
EX DE,HL
LD DE,L5255
LD A,00DH
LD (DSPXY),A
CALL L5244
LD DE,L525C
CALL MSG
XOR A
LD (DSPXY),A
LD D,B
LD E,C
CALL L526C
EX DE,HL
LD DE,L5257
CALL L5244
POP HL
LD (HL),070H
INC HL
POP DE
L523C: EX DE,HL
PUSH BC
CALL 01802H
POP BC
POP HL
RET
L5244: PUSH BC
CALL MSG
LD DE,L505C
PUSH DE
CALL STRTONUM
POP DE
CALL MSG
POP BC
RET
L5255: DB 03AH
DB 020H
L5257: DB "LINE"
DB 00DH
L525C: DB " DOES NOT EXIST"
DB 00DH
L526C: PUSH BC
PUSH HL
PUSH DE
XOR A
LD B,D
LD C,E
LD HL,(05065H)
SBC HL,DE
JR C,L52AB ; (+032H)
EX DE,HL
LD DE,(05063H)
SBC HL,DE
JR C,L52AB ; (+029H)
LD B,D
LD C,E
CALL L52BB
JR C,L52AB ; (+022H)
POP BC
LD DE,(05067H)
PUSH DE
L528F: CALL 01867H
JR Z,L52A7 ; (+013H)
EX DE,HL
XOR A
SBC HL,BC
JR Z,L52B2 ; (+018H)
JR NC,L52A7 ; (+00bH)
EX DE,HL
EX (SP),HL
LD DE,(05069H)
ADD HL,DE
EX (SP),HL
JR NC,L528F ; (-017H)
CPL
L52A7: OR A
CCF
JR L52AC ; (+001H)
L52AB: XOR A
L52AC: POP DE
L52AD: LD D,B
LD E,C
POP HL
POP BC
RET
L52B2: LD H,B
LD L,C
POP BC
SBC HL,BC
SCF
CCF
JR L52AD ; (-00eH)
L52BB: LD HL,(01958H)
PUSH HL
JR L52C3 ; (+002H)
L52C1: EX (SP),HL
EX DE,HL
L52C3: PUSH HL
CALL 01867H
JR Z,L52D1 ; (+008H)
EX DE,HL
SBC HL,BC
POP HL
JR C,L52C1 ; (-00eH)
POP DE
RET
L52D1: POP HL
POP DE
SCF
RET
L52D5: LD A,(HL)
LD (DE),A
CP 020H
INC HL
INC DE
JR Z,L52D5 ; (-008H)
CP 00DH
RET Z
CP 022H
RET NZ
L52E3: LD A,(HL)
LD (DE),A
INC HL
INC DE
CP 00DH
RET Z
CP 022H
JR NZ,L52E3 ; (-00bH)
OR A
RET
L52F0: CALL 03327H
LD HL,(04AB3H)
CALL 018B0H
OR C
INC DE
PUSH HL
POP DE
L52FD: PUSH DE
LD A,(HL)
LDI
OR (HL)
JR Z,L532B ; (+027H)
LDI
LD A,(HL)
LDI
LD B,(HL)
LD C,A
LDI
PUSH HL
LD HL,(04AB5H)
OR A
SBC HL,BC
POP HL
JR C,L531C ; (+005H)
CALL L5338
JR L5323 ; (+007H)
L531C: LD A,(HL)
LDI
CP 00DH
JR NZ,L531C ; (-007H)
L5323: EX (SP),HL
LD (HL),E
INC HL
LD (HL),D
EX (SP),HL
POP AF
JR L52FD ; (-02eH)
L532B: LDI
EX DE,HL
LD (04E4EH),HL
POP HL
CALL 0195AH
JP 01B35H
L5338: PUSH DE
L5339: CALL SKIPSPACE
CALL L52D5
JR NZ,L5343 ; (+002H)
POP BC
RET
L5343: CP 080H
JR NZ,L5339 ; (-00eH)
CP (HL)
JR NZ,L5339 ; (-011H)
DEC DE
CALL 0174EH
INC HL
CP 03AH
JR Z,L5339 ; (-01aH)
EX (SP),HL
OR A
SBC HL,DE
POP HL
DEC DE
LD A,00DH
LD (DE),A
INC DE
RET C
DEC DE
DEC DE
DEC DE
DEC DE
RET
L5363: XOR A
LD (L5465),A
CALL L536D
JP WARMSTRT
L536D: LD A,(0504EH)
OR A
JP NZ,SYNTAXERR
CALL 0193BH
RET Z
LD DE,LINEBUFR
PUSH DE
CALL 0150AH
POP HL
CALL L546D
LD (L5467),A
LD DE,BUFER
LDIR
LD A,(L5465)
CP 001H
JR NZ,L53B7 ; (+025H)
LD DE,L5446
CALL LETNL
CALL MSG
LD A,(DPRNT)
PUSH AF
LD DE,LINEBUFR
PUSH DE
CALL GETL
POP HL
XOR A
LD B,A
POP AF
LD C,A
ADD HL,BC
CALL L546D
LD DE,011CCH
LD (L5468),A
LDIR
L53B7: LD A,(L5467)
LD B,A
LD HL,(01958H)
L53BE: PUSH BC
PUSH HL
CALL 01867H
POP HL
JR NZ,L53D3 ; (+00dH)
CALL LETNL
POP BC
XOR A
RET
L53CC: POP BC
POP DE
LD HL,(04A0EH)
JR L53BE ; (-015H)
L53D3: CALL 018F2H
LD DE,04A0EH
CALL 018A5H
CALL 014F8H
POP BC
CALL BRKEY
JP Z,WARMSTRT
LD DE,BUFER
LD HL,0490FH
L53EC: LD A,(HL)
CP 020H
INC HL
JR NZ,L53EC ; (-006H)
L53F2: PUSH DE
PUSH BC
DEC HL
L53F5: INC HL
LD A,(HL)
CP 000H
JR Z,L53F5 ; (-006H)
CP 00DH
JR Z,L53CC ; (-033H)
EX DE,HL
CP (HL)
EX DE,HL
JR NZ,L53F5 ; (-00fH)
LD (L5469),HL
L5407: INC DE
DEC B
JR Z,L5423 ; (+018H)
LD A,(DE)
CP 020H
JR Z,L5407 ; (-009H)
L5410: INC HL
LD A,(HL)
CP 020H
JR Z,L5410 ; (-006H)
CP 00DH
JR Z,L53CC ; (-04eH)
EX DE,HL
CP (HL)
EX DE,HL
JR Z,L5407 ; (-018H)
POP BC
POP DE
JR L53F2 ; (-031H)
L5423: INC HL
LD (L546B),HL
LD DE,LINEBUFR
CALL LETNL
CALL L5589
POP BC
POP DE
LD A,(L5465)
OR A
RET NZ
CALL L543C
JR L53F2 ; (-04aH)
L543C: CALL 03302H
CALL BRKEY
JP Z,L57D8
RET
L5446: DB " CHANGE TO? "
DB 00DH
L5453: DB "CHANGE IT? (Y/N) "
DB 00DH
L5465: DB 000H
L5466: DB 000H
L5467: DB 001H
L5468: DB 000H
L5469: DB 000H
DB 000H
L546B: DB 000H
DB 000H
L546D: LD A,(HL)
CP 020H
JP C,WARMSTRT
CP 022H
JR NZ,L5478 ; (+001H)
INC HL
L5478: CALL 018FDH
LD A,C
CP 028H
JP NC,ILDATERR
INC C
RET
L5483: LD A,(HL)
CP 021H
JR NZ,L548A ; (+002H)
INC HL
XOR A
L548A: LD (L5466),A
RET
L548E: LD A,001H
LD (L5465),A
CALL L5483
CALL L536D
L5499: JP Z,WARMSTRT
CALL LETNL
LD A,(L5466)
OR A
JR NZ,L54BC ; (+017H)
LD DE,L5453
CALL L59E3
JR Z,L54BC ; (+00fH)
LD HL,(L546B)
LD DE,BUFER
LD A,(L5467)
LD B,A
CALL L53F2
JR L5499 ; (-023H)
L54BC: CALL 014F8H
LD HL,(L546B)
LD BC,(05469H)
OR A
SBC HL,BC
LD A,(L5468)
CP L
JR Z,L552E ; (+05fH)
JR C,L5517 ; (+046H)
PUSH BC
SUB L
LD C,A
LD B,000H
PUSH BC
LD HL,LINEBUFR
CALL 018FDH
INC C
LD A,C
POP BC
PUSH AF
ADD A,C
LD C,A
CP 050H
JR C,L5501 ; (+01aH)
LD DE,L55B3
CALL LETNL
CALL MSG
POP AF
POP BC
LD HL,(04A0EH)
LD A,(L5467)
LD B,A
LD C,000H
LD DE,BUFER
JP L5565
L5501: LD HL,LINEBUFR
PUSH HL
ADD HL,BC
EX DE,HL
POP HL
POP AF
LD C,A
ADD HL,BC
POP BC
PUSH HL
OR A
SBC HL,BC
LD B,H
LD C,L
POP HL
LDDR
JR L552E ; (+017H)
L5517: LD H,A
LD A,L
SUB H
LD L,A
LD H,000H
PUSH HL
LD HL,(L546B)
CALL 018FDH
INC C
POP DE
PUSH HL
OR A
SBC HL,DE
EX DE,HL
POP HL
LDIR
L552E: LD HL,011CCH
LD DE,(05469H)
LD A,(L5468)
OR A
JR Z,L5540 ; (+005H)
LD C,A
LD B,000H
LDIR
L5540: CALL 0146AH
L5543: LD HL,(04A10H)
CALL 018B0H
OR C
INC DE
CALL 01302H
CALL 018B3H
LD D,E
LD D,L
LD A,(L5465)
CP 001H
RET NZ
CALL 012F3H
LD DE,LINEBUFR
CALL MSGX
CALL LETNL
L5565: LD BC,L5499
PUSH BC
LD DE,BUFER
LD HL,(L5469)
LD A,(L5468)
ADD A,L
LD L,A
LD A,(L5467)
LD B,A
LD C,000H
PUSH HL
LD HL,(04A0EH)
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
LD (04A0EH),HL
POP HL
JP L53F2
L5589: PUSH DE
LD DE,L55AB
CALL MSG
POP DE
PUSH HL
CALL 00FB1H
CALL MSGX
LD A,(L5469)
ADD A,01BH
LD C,A
LD B,000H
XOR A
ADC HL,BC
LD A,0C2H
LD (HL),A
POP HL
CALL LETNL
RET
L55AB: LD DE,01211H
LD (DE),A
DEC C
NOP
NOP
NOP
L55B3: DB "LINE IS TOO LONG!",00DH
L55C5: LD A,002H
LD (L5465),A
CALL L5483
CALL L536D
L55D0: JP Z,WARMSTRT
CALL LETNL
LD A,(L5466)
OR A
JR NZ,L55E9 ; (+00dH)
LD DE,L55F8
CALL L59E3
JR Z,L55E9 ; (+005H)
LD HL,(04A0EH)
JR L55EC ; (+003H)
L55E9: CALL L5543
L55EC: LD DE,BUFER
LD A,(L5467)
LD B,A
CALL L53BE
JR L55D0 ; (-028H)
L55F8: DB "DELETE THIS LINE (Y/N)? ",00DH
L5611: NOP
L5612: NOP
NOP
NOP
NOP
L5616: XOR A
LD (L5611),A
CALL EXECNOTCHR
CPL
DEC HL
LD D,(HL)
CALL EXECNOTCHR
LD D,B
XOR E
INC DE
LD A,001H
LD (L5611),A
CALL 03327H
LD HL,(04AB3H)
CALL 018B0H
OR C
INC DE
PUSH HL
CALL 01AF1H
POP HL
L563B: LD A,(HL)
INC HL
OR (HL)
JP Z,L574F
INC HL
LD C,(HL)
INC HL
LD B,(HL)
PUSH HL
OR A
LD HL,(04AB5H)
SBC HL,BC
POP HL
JP C,L574F
PUSH BC
POP IY
L5653: INC HL
L5654: LD A,(HL)
INC HL
CP 020H
JR Z,L5654 ; (-006H)
CP 00DH
JR Z,L563B ; (-023H)
CP 080H
JR C,L5676 ; (+014H)
JR NZ,L5654 ; (-010H)
CP (HL)
JR Z,L566C ; (+005H)
CALL L588A
JR NZ,L5654 ; (-018H)
L566C: CALL 0174EH
INC HL
CP 00DH
JR Z,L563B ; (-039H)
JR L5654 ; (-022H)
L5676: CP 022H
JR NZ,L5686 ; (+00cH)
L567A: LD A,(HL)
INC HL
CP 00DH
JR Z,L563B ; (-045H)
CP 022H
JR NZ,L567A ; (-00aH)
JR L5654 ; (-032H)
L5686: DEC HL
CALL 02640H
JR NC,L5653 ; (-039H)
LD A,046H
CP E
JR NZ,L5696 ; (+005H)
LD A,04EH
CP D
JR Z,L5653 ; (-043H)
L5696: LD BC,MONIT
LD A,(HL)
CP 024H
JR NZ,L56A1 ; (+003H)
LD C,006H
INC HL
L56A1: LD (05614H),DE
LD (L5612),HL
LD A,(HL)
CP 028H
JR Z,L56B3 ; (+006H)
LD A,C
ADD A,004H
LD C,A
JR L56CB ; (+018H)
L56B3: INC HL
L56B4: LD A,(HL)
INC HL
CP 028H
JR NZ,L56C1 ; (+007H)
L56BA: LD A,(HL)
INC HL
CP 029H
JR NZ,L56BA ; (-006H)
LD A,(HL)
L56C1: CP 02CH
JR Z,L56CB ; (+006H)
CP 029H
JR NZ,L56B4 ; (-015H)
INC C
INC C
L56CB: LD HL,04E86H
ADD HL,BC
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
LD DE,(05614H)
L56D7: LD A,(HL)
INC HL
CP E
JR C,L56E6 ; (+00aH)
JR NZ,L56F2 ; (+014H)
LD A,(HL)
CP D
JR C,L56E9 ; (+007H)
JR Z,L5705 ; (+021H)
JR L56F2 ; (+00cH)
L56E6: OR (HL)
JR Z,L56F2 ; (+009H)
L56E9: INC HL
LD C,(HL)
LD B,000H
INC HL
ADD HL,BC
ADD HL,BC
JR L56D7 ; (-01bH)
L56F2: DEC HL
EX DE,HL
LD BC,GETL
CALL 019C0H
LD HL,(05614H)
EX DE,HL
LD (HL),E
INC HL
LD (HL),D
INC HL
XOR A
JR L570B ; (+006H)
L5705: INC HL
LD A,(HL)
CP PRTD
JR Z,L573C ; (+031H)
L570B: INC A
LD (HL),A
PUSH HL
LD B,A
L570F: INC HL
LD E,(HL)
INC HL
LD D,(HL)
PUSH HL
PUSH IY
POP HL
OR A
SBC HL,DE
POP HL
JR C,L5726 ; (+009H)
JR NZ,L5724 ; (+005H)
DEC A
POP HL
LD (HL),A
JR L5736 ; (+012H)
L5724: DJNZ L570F ; (-017H)
L5726: POP AF
DEC HL
EX DE,HL
LD BC,00002H
CALL 019C0H
EX DE,HL
PUSH IY
POP BC
LD (HL),C
INC HL
LD (HL),B
L5736: LD HL,(L5612)
JP L5654
L573C: LD A,E
CALL L57DE
LD A,D
CALL L57DE
LD DE,L5807
CALL L57FC
CALL L57ED
JR L5736 ; (-019H)
L574F: LD IX,04E84H
L5753: CALL L57FC
INC IX
INC IX
PUSH IX
POP HL
LD A,L
CP 092H
JR NC,L57D8 ; (+076H)
SUB 086H
LD B,000H
LD C,A
RLC C
RLC C
LD HL,L5820
CP 005H
JR C,L5775 ; (+003H)
LD HL,L5807
L5775: ADD HL,BC
PUSH HL
POP IY
LD L,(IX+000H)
LD H,(IX+001H)
L577F: PUSH IY
POP DE
LD A,(HL)
LD B,A
INC HL
OR (HL)
JR Z,L5753 ; (-035H)
LD A,B
CALL L57DE
LD A,(HL)
CP 020H
JR Z,L5799 ; (+008H)
CALL L57DE
CALL L57ED
JR L57A1 ; (+008H)
L5799: CALL L57ED
LD A,020H
CALL L57DE
L57A1: LD A,(DE)
CP 024H
LD A,020H
CALL NZ,L57DE
INC HL
LD B,(HL)
INC HL
L57AC: PUSH BC
LD E,(HL)
INC HL
LD D,(HL)
INC HL
PUSH HL
EX DE,HL
LD DE,LINEBUFR
PUSH DE
CALL STRTONUM
LD C,020H
EX DE,HL
L57BD: LD A,L
CP 015H
JR NC,L57C6 ; (+004H)
LD (HL),C
INC HL
JR L57BD ; (-009H)
L57C6: LD (HL),00DH
POP DE
CALL L57ED
POP HL
CALL L543C
POP BC
DJNZ L57AC ; (-027H)
CALL L57FC
JR L577F ; (-059H)
L57D8: CALL 01AF1H
JP WARMSTRT
L57DE: PUSH BC
LD B,A
CALL PRNT
LD A,(L5611)
OR A
LD A,B
POP BC
RET Z
JP 03291H
L57ED: PUSH BC
LD B,A
CALL MSG
LD A,(L5611)
OR A
LD A,B
POP BC
RET Z
JP 031B4H
L57FC: CALL LETNL
LD A,(L5611)
OR A
RET Z
JP 031A7H
L5807: DB " HAS MORE THAN 255 REFS"
DB 00DH
DB 024H
L5820: DB 028H
DB 02CH
DB 029H
DB 020H
DB 00DH
DB 00DH
DB 00DH
DB "$() "
DB 00DH
DB 00DH
DB 00DH
DB "$ "
DB 00DH
DB 00DH
DB 00DH
DB 000H
L5838: CALL 014C7H
JP Z,01497H
LD B,0B8H
LD DE,L585D
CALL 014C9H
JP 01495H
L5849: LD A,B
CP 039H
JR NC,L5854 ; (+006H)
LD HL,CMDWORDTBL
JP 01541H
L5854: SUB 038H
LD B,A
LD HL,L585D
JP 01541H
L585D: DB "RENU"
DB 0CDH
DB "APPEN"
DB 0C4H
DB "COMPRES"
DB 0D3H
DB "DELET"
DB 0C5H
DB "FIN"
DB 0C4H
DB "CHANG"
DB 0C5H
DB "SDE"
DB 0CCH
DB "XRE"
DB 0C6H
DB 000H
DB 000H
L588A: LD A,(HL)
CP 081H
RET Z
RET C
CALL INCSKIPSPCE
CP 02FH
RET NZ
INC HL
INC HL
OR A
RET
L5899: CALL LETNL
CALL LETNL
LD DE,L58A5
JP 01329H
L58A5: LD B,L
LD E,B
LD D,B
LD B,C
LD C,(HL)
LD B,H
LD B,L
LD B,H
JR NZ,L58F1 ; (+042H)
LD B,C
LD D,E
LD C,C
LD B,E
JR NZ,L58EA ; (+035H)
DEC (HL)
LD SP,02035H
DEC L
JR NZ,L5905 ; (+049H)
LD C,(HL)
LD B,E
LD C,H
LD D,L
LD B,H
LD B,L
LD D,E
LD A,(0430DH)
OR A
SBC A,(HL)
CP L
SBC A,L
AND (HL)
SUB A
SBC A,B
SUB (HL)
JR NZ,L5913 ; (+043H)
LD L,044H
LD L,020H
LD C,B
SUB D
AND C
SBC A,L
OR B
JR NZ,L590C ; (+031H)
ADD HL,SP
JR C,L5915 ; (+037H)
JR NZ,L58ED ; (+00dH)
L58E0: CALL 03296H
LD A,00AH
CALL 03296H
LD A,00DH
L58EA: RET
L58EB: CALL SKIPSPACE
CP 030H
JR NZ,L58F6 ; (+004H)
LD A,0C3H
JR L58FD ; (+007H)
L58F6: CP 031H
JP NZ,SYNTAXERR
LD A,0CDH
L58FD: LD (L58E0),A
INC HL
L5901: LD (05051H),HL
L5904: JP 01B35H
L5907: LD A,0C6H
CALL ?DPCT
L590C: JR L5901 ; (-00dH)
L590E: XOR A
LD (L5466),A
CALL L5098
L5915: JR NZ,L591C ; (+005H)
CALL L5150
JR L5904 ; (-018H)
L591C: LD BC,(05063H)
CALL L52BB
JR Z,L5935 ; (+010H)
PUSH HL
LD BC,(05065H)
INC BC
CALL L52BB
POP DE
OR A
SBC HL,DE
JP Z,WARMSTRT
L5935: LD HL,(01958H)
JR L593C ; (+002H)
L593A: POP HL
POP AF
L593C: PUSH HL
CALL 01867H
JR Z,L5989 ; (+047H)
PUSH HL
LD HL,(L506B)
SBC HL,DE
JR C,L593A ; (-010H)
LD HL,(05067H)
PUSH DE
EX DE,HL
SBC HL,DE
POP DE
JR C,L593A ; (-01aH)
LD HL,(05065H)
SBC HL,DE
JR C,L5963 ; (+008H)
LD HL,(05063H)
EX DE,HL
SBC HL,DE
JR NC,L593A ; (-029H)
L5963: LD A,(L5466)
OR A
JR NZ,L597B ; (+012H)
LD DE,L59C7
CALL L59E0
JR Z,L5976 ; (+005H)
POP HL
POP DE
JP 01B35H
L5976: LD A,001H
LD (L5466),A
L597B: POP HL
POP DE
OR A
SBC HL,DE
LD B,H
LD C,L
PUSH DE
CALL 01306H
POP HL
JR L593C ; (-04dH)
L5989: CALL L5150
L598C: LD HL,(01958H)
CALL 01867H
JR Z,L59C4 ; (+030H)
PUSH DE
POP BC
L5996: PUSH HL
CALL 01867H
JR Z,L59C4 ; (+028H)
LD A,B
SUB D
JR NZ,L59A2 ; (+002H)
LD A,C
SUB E
L59A2: LD C,E
LD B,D
POP DE
JR C,L5996 ; (-011H)
PUSH BC
SBC HL,DE
LD B,H
LD C,L
LD HL,04A0EH
EX DE,HL
PUSH HL
PUSH BC
LDIR
POP BC
POP DE
CALL 01306H
POP HL
CALL 018B0H
CP A
LD E,C
CALL 012F3H
JR L598C ; (-038H)
L59C4: JP WARMSTRT
L59C7: DB "OK TO DELETE DUP LINES? "
DB 00DH
L59E0: CALL LETNL
L59E3: CALL MSG
L59E6: CALL BRKEY
JP Z,01438H
CALL 009B3H
CALL ?DACN
CALL 02305H
CP 059H
JR Z,L59FE ; (+005H)
CP 04EH
JR NZ,L59E6 ; (-017H)
OR A
L59FE: PUSH AF
CALL LETNL
POP AF
RET
L5A04: DW L58EB
DW CMDAUTO
DW L5907
DW L590E
DW CMDCOPY
DW CMDPAGE
DW L506D
DW 04806H
DW L52F0
DW 0488EH
DW L5363
DW L548E
DW L55C5
DW L5616
L5A20: DB "LIN"
DB 0C5H
DB "AUT"
DB 0CFH
DB "CL"
DB 0D3H
DB "MOV"
DB 0C5H
DB "COPY/"
DB 0D0H
DB "PAGE/"
DB 0D0H
DB 000H
L5A3C: CP 091H
RET C
CP 0BEH
RET NC
CALL ?ADCN
CP 081H
JR C,L5A4F ; (+006H)
CP 09BH
JR NC,L5A4F ; (+002H)
SUB 080H
L5A4F: JP ?DACN
L5A52: DB "XP BASIC SA-551"
L5A61: DB 035H
DB 00DH
XPINIT: LD HL,L5A04
LD DE,01C16H
LD BC,0001CH
LDIR
LD HL,L5A3C
PUSH HL
LD DE,L5A20
SBC HL,DE
PUSH HL
POP BC
EX DE,HL
LD DE,0165EH
LDIR
POP HL
LD DE,02305H
LD BC,00016H
LDIR
LD HL,03338H
LD (022C9H),HL
LD HL,03302H
LD (01CCDH),HL
LD HL,MONIT
LD (01CCFH),HL
LD (01CD1H),HL
LD HL,03311H
LD (02B11H),HL
LD HL,048C1H
LD (0307BH),HL
LD (0318CH),HL
LD (03199H),HL
LD HL,02F6CH
LD (0315BH),HL
LD A,0CDH
LD (03140H),A
LD HL,0330BH
LD (03141H),HL
LD A,0C3H
LD HL,L5849
LD (0153EH),A
LD (0153FH),HL
LD HL,L5838
LD (01492H),A
LD (01493H),HL
LD A,(0322EH)
CP 0C3H
JR NZ,L5AF2 ; (+017H)
LD (031ADH),A
LD HL,L58E0
LD (031AEH),HL
LD A,036H
JR L5AF4 ; (+00cH)
LD A,0ABH
LD (01C16H),A
LD A,013H
LD (01C17H),A
L5AF2: LD A,035H
L5AF4: LD HL,L58B7
LD (HL),A
LD HL,L5A61
LD (HL),A
XOR A
LD (041ECH),A
LD HL,L5A52
LD DE,04224H
LD BC,00011H
LDIR
LD HL,L5A04
LD (01958H),HL
LD (018B4H),HL
LD (01AC8H),HL
LD (01AE2H),HL
LD (01B14H),HL
LD (01B1CH),HL
LD (01C7EH),HL
LD (01EC2H),HL
LD (02D44H),HL
LD (02F24H),HL
LD (0303CH),HL
LD (03042H),HL
INC HL
LD (01201H),HL
LD (041FFH),HL
LD HL,L5899
LD (01225H),HL
LD HL,RELOC3302
LD DE,03302H
LD BC,0005BH
LDIR
LD DE,04806H
LD BC,000F8H
LDIR
JP COLDSTRT
RELOC3302: CALL GETKY ; Relocated to 0x3302 for 0x5B bytes.
CP 020H
JP Z,009B3H
RET
LD HL,ATRB
JP 02F67H
CALL EXECNOTCHR
LD B,B
JR L5B95 ; (+02bH)
LD A,0C9H
LD (028F5H),A
CALL CMDCURSOR
LD A,0C3H
LD (028F5H),A
JP 02B18H
LD A,0C9H
LD (01C7DH),A
CALL 01C68H
LD A,021H
LD (01C7DH),A
RET
NOP
NOP
NOP
LD A,B
OR C
RET Z
LD A,B
SUB C
JR NC,L5B93 ; (+001H)
XOR A
L5B93: ADD A,C
LD B,A
L5B95: LD A,(DE)
CALL 02305H
LD C,A
PUSH AF
LD A,(HL)
CALL 02305H
LD C,A
POP AF
OR A
SUB C
JR NZ,L5BAA ; (+005H)
INC DE
INC HL
DJNZ L5B95 ; (-014H)
RET
L5BAA: LD A,001H
RET NC
LD A,080H
RET
RELOC4806: CALL 048EEH ; Relocated to 0x4806 for 0xF8 bytes.
LD HL,0FFFFH
CALL 018B0H
LD DE,0E548H
EX DE,HL
LD BC,(SIZE)
DEC BC
DEC BC
CALL 01888H
CALL 019C3H
LD (DTADR),DE
CALL 02F6CH
CALL ?RDD
JR C,L5BFB ; (+026H)
POP HL
CALL 01ACAH
LD HL,(DTADR)
PUSH HL
INC HL
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
CALL 018B0H
LD A,048H
POP BC
OR A
SBC HL,BC
JP NC,01B35H
LD DE,(DTADR)
CALL 0485EH
LD A,047H
JP 01403H
L5BFB: POP DE
PUSH DE
CALL 0485EH
POP HL
XOR A
LD (HL),A
INC HL
LD (HL),A
JP CHKSUMERR
LD BC,(SIZE)
DEC BC
DEC BC
JP 02F59H
CALL 03327H
LD HL,(04AB5H)
LD A,H
AND L
CP PRTD
JP Z,ILDATERR
PUSH HL
LD HL,(04AB3H)
LD A,H
OR L
JP Z,ILDATERR
CALL 018B0H
OR C
INC DE
EX (SP),HL
INC HL
CALL 018B0H
ADC A,C
LD C,B
POP DE
OR A
SBC HL,DE
RET
CALL 04867H
JR Z,L5C44 ; (+007H)
JR C,L5C47 ; (+008H)
PUSH HL
POP BC
CALL 01306H
L5C44: JP 01B35H
L5C47: JP OVFLERR
PUSH BC
CALL 017F6H
POP BC
LD A,E
OR D
EX (SP),HL
LD A,(HL)
INC HL
EX (SP),HL
PUSH AF
CP (HL)
JR Z,L5C66 ; (+00dH)
LD A,00DH
CP (HL)
JR Z,L5C63 ; (+005H)
LD A,03AH
CP (HL)
JR NZ,L5C47 ; (-01cH)
L5C63: POP AF
SCF
RET
L5C66: CALL INCSKIPSPCE
POP AF
RET
DI
PUSH DE
PUSH BC
PUSH HL
LD DE,0D753H
LD BC,(SIZE)
LD HL,(DTADR)
LD A,B
OR C
JP Z,004CBH
CALL CKSUM
CALL MOTOR
JP C,00552H
CALL 048E3H
JP 00461H
PUSH BC
PUSH DE
LD BC,00200H
LD DE,01414H
JP 0078EH
LD A,0C9H
LD (02F19H),A
CALL 02EDAH
LD A,0CDH
LD (02F19H),A
JP 01AF1H
NOP ; End of Relocated code.
NOP
NOP
NOP
NOP