ACOS!Strings Ops & BugFix

This commit is contained in:
burniouf 2021-07-09 22:40:57 +02:00
parent 099f043cb3
commit 8538008265
7 changed files with 52 additions and 22 deletions

Binary file not shown.

View File

@ -365,7 +365,7 @@ CORE.LookupOPS lda (ZPInputBufPtr)
bcc .2 not last char in this keyword bcc .2 not last char in this keyword
jsr .10 next char in text... jsr .10 next char in text...
bcc .4 valid....failed bcc .6 valid....failed
.3 tya Keyword Len .3 tya Keyword Len

View File

@ -257,6 +257,7 @@ EXP.VARLookup >LDA.G hVars
rts rts
*-------------------------------------- *--------------------------------------
EXP.ComputeY lda EXP.TYPE EXP.ComputeY lda EXP.TYPE
bne .1 bne .1
ldx ACOS.OPS2FPU,y ldx ACOS.OPS2FPU,y
@ -264,7 +265,33 @@ EXP.ComputeY lda EXP.TYPE
clc clc
rts rts
.1 sec .1 stz EXP.TYPE at the end ....TRUE/FALSE is int
cpy #3 +
bne .2
ldx #SYS.StrCat
clc
jmp CODE.SYSCALL
.2 cpy #11 <>
bne .3
ldx #SYS.StrCmp
clc
jmp CODE.SYSCALL
.3 cpy #13 =
bne .9
ldx #SYS.StrCmp
jsr CODE.SYSCALL
ldx #RT.NOT.ID
clc
jmp CODE.JSRRT
.9 sec
rts rts
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -80,13 +80,11 @@ FN.LEN jsr CORE.CheckOP
jsr CORE.CheckCP jsr CORE.CheckCP
bcs .99 bcs .99
ldx #RT.LEN.ID
jsr CODE.JSRRT
stz EXP.TYPE stz EXP.TYPE
ldx #RT.LEN.ID
clc clc
rts jmp CODE.JSRRT
.90 lda #E.TMISMATCH .90 lda #E.TMISMATCH
sec sec
@ -114,14 +112,12 @@ FN.STRd jsr CORE.CheckOP
jsr CORE.CheckCP jsr CORE.CheckCP
bcs .99 bcs .99
ldx #RT.STRd.ID
jsr CODE.JSRRT
lda #'$' lda #'$'
sta EXP.TYPE sta EXP.TYPE
ldx #RT.STRd.ID
clc clc
rts jmp CODE.JSRRT
.90 lda #E.TMISMATCH .90 lda #E.TMISMATCH
sec sec
@ -139,13 +135,11 @@ FN.VAL jsr CORE.CheckOP
jsr CORE.CheckCP jsr CORE.CheckCP
bcs .99 bcs .99
ldx #RT.VAL.ID
jsr CODE.JSRRT
stz EXP.TYPE stz EXP.TYPE
clc ldx #RT.VAL.ID
rts * clc
jmp CODE.JSRRT
.90 lda #E.TMISMATCH .90 lda #E.TMISMATCH
sec sec

View File

@ -39,10 +39,8 @@ KW.GET jsr CORE.GetNextCharNB
jsr CODE.LDYXI jsr CODE.LDYXI
ldx #RT.StrSet.ID ldx #RT.StrSet.ID
jsr CODE.JSRRT
clc clc
rts jmp CODE.JSRRT
.9 lda #E.CSYN .9 lda #E.CSYN
sec sec
@ -219,10 +217,8 @@ KW.INPUT jsr CORE.GetNextCharNB
jsr CODE.LDYXI jsr CODE.LDYXI
ldx #RT.StrSet.ID ldx #RT.StrSet.ID
jsr CODE.JSRRT
clc clc
rts jmp CODE.JSRRT
.9 lda #E.CSYN .9 lda #E.CSYN
sec sec

View File

@ -2,6 +2,18 @@ NEW
AUTO 3,1 AUTO 3,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
RT.NOT lda (pStack)
inc
ora (pStack)
beq .1
lda #1
.1 dec
sta (pStack)
>PUSHA
rts
*--------------------------------------
RT.StrSet >PUSHB hStrings RT.StrSet >PUSHB hStrings
txa txa
>PUSHA >PUSHA

View File

@ -193,6 +193,8 @@ RT.TIMEd.ID .EQ *-J.RT
RT.VAL.ID .EQ *-J.RT RT.VAL.ID .EQ *-J.RT
.DA RT.VAL .DA RT.VAL
*-------------------------------------- *--------------------------------------
RT.NOT.ID .EQ *-J.RT
.DA RT.NOT
RT.StrSet.ID .EQ *-J.RT RT.StrSet.ID .EQ *-J.RT
.DA RT.StrSet .DA RT.StrSet
RT.StrGet.ID .EQ *-J.RT RT.StrGet.ID .EQ *-J.RT
@ -514,7 +516,6 @@ ACOS.OPS .AT "*"
.AT "<>" .AT "<>"
.AT "><" .AT "><"
.AT "=" .AT "="
* .AT "NOT"
.AT "AND" .AT "AND"
.AT "OR" .AT "OR"
.HS 00 .HS 00