Fixed CCP parser bug

This commit is contained in:
Bobbi Webber-Manners 2019-10-26 00:15:47 -04:00
parent 15ef3e5ee2
commit 49c1eed7e5
3 changed files with 13 additions and 4 deletions

View File

@ -2001,7 +2001,9 @@ CTL1 LD A,C ; See if any chars are left in input
JP CTL1 ; Loop JP CTL1 ; Loop
CTS1 CALL CMDSPC ; Handle space CTS1 CALL CMDSPC ; Handle space
JP CTL1 ; Loop JP CTL1 ; Loop
CTS2 LD HL,FILEBUF ; First byte is length of string CTS2 LD A,' ' ; Fake an additional space on the end ...
CALL CMDSPC ; ... so parser can get itself in correct state
LD HL,FILEBUF ; First byte is length of string
LD (HL),D ; Write string length LD (HL),D ; Write string length
RET RET
@ -2037,12 +2039,16 @@ DLS1 DEC HL ; Put HL back to the beginning
; Character is passed in A ; Character is passed in A
; State 0: Do not emit space to FILEBUF ; State 0: Do not emit space to FILEBUF
; State 1: Do not emit space to FILEBUF ; State 1: Do not emit space to FILEBUF
; Set length byte for PATHBUF & create FCB. ; Set length byte for PATHBUF & create FCB in PATHBUF2
; -> State 2 ; -> State 2
; State 2: Do not emit space to FILEBUF ; State 2: Do not emit space to FILEBUF
; State 3: Emit space to FILEBUF -> State 4 ; State 3: Emit space to FILEBUF
; Set length byte for PATHBUF & create FCB in FCB1 TODO
; -> State 4
; State 4: Do not emit space to FILEBUF ; State 4: Do not emit space to FILEBUF
; State 5: Emit space to FILEBUF -> State 6 ; State 5: Emit space to FILEBUF
; Set length byte for PATHBUF & create FCB in FCB1 TODO
; -> State 6
; State 6: Emit space to FILEBUF ; State 6: Emit space to FILEBUF
CMDSPC EX AF,AF' ; Save character for later CMDSPC EX AF,AF' ; Save character for later
LD A,B ; Get parser state LD A,B ; Get parser state
@ -2054,6 +2060,7 @@ CSS1 CP 1 ; State 1 - eat the space
LD A,E ; Write length byte to PATHBUF LD A,E ; Write length byte to PATHBUF
LD (PATHBUF),A ; ... LD (PATHBUF),A ; ...
LD E,0 ; Reset length for next time LD E,0 ; Reset length for next time
; TODO RESET IY
PUSH HL ; Preserve HL PUSH HL ; Preserve HL
LD HL,PATHBUF2 ; DMAADDR to PATHBUF2 - will put FCB there LD HL,PATHBUF2 ; DMAADDR to PATHBUF2 - will put FCB there
LD (DMAADDR),HL ; ... LD (DMAADDR),HL ; ...
@ -2161,12 +2168,14 @@ CNS6 CP 6 ; State 6
CNS7 RET CNS7 RET
; Write character at A to IX (which points into FILEBUF) ; Write character at A to IX (which points into FILEBUF)
; Helper for CMDNSPC
EMTFILBUF LD (IX+0H),A ; Emit char to FILEBUF EMTFILBUF LD (IX+0H),A ; Emit char to FILEBUF
INC IX ; ... INC IX ; ...
INC D ; Character count for FILEBUF INC D ; Character count for FILEBUF
RET RET
; Write character at A to IX (which points into PATHBUF) ; Write character at A to IX (which points into PATHBUF)
; Helper for CMDNSPC
EMTPATHBUF LD (IY+0H),A ; Emit char to PATHBUF EMTPATHBUF LD (IY+0H),A ; Emit char to PATHBUF
INC IY ; ... INC IY ; ...
INC E ; Character count for FILEBUF INC E ; Character count for FILEBUF

Binary file not shown.

Binary file not shown.