mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-03-23 07:35:00 +00:00
Check for existing string in pool before copying CS string from aux mem
This commit is contained in:
parent
3e8aaa8325
commit
18b082460f
@ -15,10 +15,10 @@ PROMPT = $33
|
||||
;* PRODOS
|
||||
;*
|
||||
PRODOS = $BF00
|
||||
DEVCNT = $BF31 ; GLOBAL PAGE DEVICE COUNT
|
||||
DEVCNT = $BF31 ; GLOBAL PAGE DEVICE COUNT
|
||||
DEVLST = $BF32 ; GLOBAL PAGE DEVICE LIST
|
||||
MACHID = $BF98 ; GLOBAL PAGE MACHINE ID BYTE
|
||||
RAMSLOT = $BF26 ; SLOT 3, DRIVE 2 IS /RAM'S DRIVER VECTOR
|
||||
MACHID = $BF98 ; GLOBAL PAGE MACHINE ID BYTE
|
||||
RAMSLOT = $BF26 ; SLOT 3, DRIVE 2 IS /RAM'S DRIVER VECTOR
|
||||
NODEV = $BF10
|
||||
;*
|
||||
;* HARDWARE ADDRESSES
|
||||
@ -786,7 +786,47 @@ CSX DEX
|
||||
TAY
|
||||
ADC IPH
|
||||
STA IPH
|
||||
LDA (IP),Y
|
||||
LDA PPH ; SCAN POOL FOR STRING ALREADY THERE
|
||||
STA TMPH
|
||||
LDA PPL
|
||||
STA TMPL
|
||||
_CMPPSX LDA TMPH ; CHECK FOR END OF POOL
|
||||
CMP IFPH
|
||||
BCC _CMPSX ; CHECK FOR MATCHING STRING
|
||||
BNE _CPYSX ; BEYOND END OF POOL, COPY STRING OVER
|
||||
LDA TMPL
|
||||
CMP IFPL
|
||||
BCS _CPYSX ; AT OR BEYOND END OF POOL, COPY STRING OVER
|
||||
_CMPSX STA ALTRDOFF
|
||||
LDA (TMP),Y ; COMPARE STRINGS FROM AUX MEM TO STRINGS IN MAIN MEM
|
||||
STA ALTRDON
|
||||
CMP (IP),Y ; COMPARE STRING LENGTHS
|
||||
BNE _CNXTSX1
|
||||
TAY
|
||||
_CMPCSX STA ALTRDOFF
|
||||
LDA (TMP),Y ; COMPARE STRING CHARS FROM END
|
||||
STA ALTRDON
|
||||
CMP (IP),Y
|
||||
BNE _CNXTSX
|
||||
DEY
|
||||
BNE _CMPCSX
|
||||
LDA TMPL ; MATCH - SAVE EXISTING ADDR ON ESTK AND MOVE ON
|
||||
STA ESTKL,X
|
||||
LDA TMPH
|
||||
STA ESTKH,X
|
||||
BNE _CEXSX
|
||||
_CNXTSX LDY #$00
|
||||
STA ALTRDOFF
|
||||
LDA (TMP),Y
|
||||
STA ALTRDON
|
||||
_CNXTSX1 SEC
|
||||
ADC TMPL
|
||||
STA TMPL
|
||||
LDA #$00
|
||||
ADC TMPH
|
||||
STA TMPH
|
||||
BNE _CMPPSX
|
||||
_CPYSX LDA (IP),Y ; COPY STRING FROM AUX TO MAIN MEM POOL
|
||||
TAY ; MAKE ROOM IN POOL AND SAVE ADDR ON ESTK
|
||||
EOR #$FF
|
||||
CLC
|
||||
@ -797,13 +837,13 @@ CSX DEX
|
||||
ADC PPH
|
||||
STA PPH
|
||||
STA ESTKH,X ; COPY STRING FROM AUX MEM BYTECODE TO MAIN MEM POOL
|
||||
- LDA (IP),Y ; ALTRD IS ON, NO NEED TO CHANGE IT HERE
|
||||
_CPYSX1 LDA (IP),Y ; ALTRD IS ON, NO NEED TO CHANGE IT HERE
|
||||
STA (PP),Y ; ALTWR IS OFF, NO NEED TO CHANGE IT HERE
|
||||
DEY
|
||||
CPY #$FF
|
||||
BNE -
|
||||
BNE _CPYSX1
|
||||
INY
|
||||
LDA (IP),Y ; SKIP TO NEXT OP ADDR AFTER STRING
|
||||
_CEXSX LDA (IP),Y ; SKIP TO NEXT OP ADDR AFTER STRING
|
||||
TAY
|
||||
JMP NEXTOP
|
||||
;*
|
||||
|
Loading…
x
Reference in New Issue
Block a user