mirror of
https://github.com/A2osX/A2osX.git
synced 2025-08-09 08:25:12 +00:00
ACOS:BugFix, added GET
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -2,77 +2,26 @@ NEW
|
|||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ZPADDR=STR ID, New pSTR Value on stack
|
CODE.PUSHYXI lda #$A9 LDA #imm
|
||||||
*--------------------------------------
|
|
||||||
CODE.STRSET jsr CODE.PULLWS save pSTR
|
|
||||||
|
|
||||||
ldx hStrings
|
|
||||||
jsr CODE.PUSHBI >PUSHB hSTRV
|
|
||||||
|
|
||||||
>LDYA ZPADDR
|
|
||||||
jsr CODE.PUSHIYA >PUSHW id
|
|
||||||
|
|
||||||
jsr CODE.PUSHWS >PUSHW str
|
|
||||||
|
|
||||||
ldx #SYS.StrVSet
|
|
||||||
jsr CODE.SYSCALL >SYSCALL StrVSet
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
* ZPADDR=pInt, Int16 on Stack
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.INTSET >LDYA ZPADDR
|
|
||||||
jsr CODE.LDYAI
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.1 lda CCODE.PULLWYA,x
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
inx
|
|
||||||
cpx #CCODE.PULLWYA.LEN
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.PULLWS ldx #0
|
|
||||||
|
|
||||||
.1 lda CCODE.PULLWS,x
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
inx
|
|
||||||
cpx #CCODE.PULLWS.LEN
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.PUSHWS ldx #0
|
|
||||||
|
|
||||||
.1 lda CCODE.PUSHWS,x
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
inx
|
|
||||||
cpx #CCODE.PUSHWS.LEN
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.PUSHBI lda #$A9 LDA #imm
|
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
txa
|
txa
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
|
|
||||||
jmp CODE.PUSHA
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.PUSHIYA pha
|
|
||||||
lda #$A9 LDA #imm
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
pla
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
jsr CODE.PUSHA
|
jsr CODE.PUSHA
|
||||||
|
|
||||||
lda #$A9 LDA #imm
|
lda #$A9 LDA #imm
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
tya
|
tya
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
jmp CODE.PUSHA
|
*--------------------------------------
|
||||||
|
CODE.PUSHA ldx #0
|
||||||
|
|
||||||
|
.1 lda CCODE.PUSHA,x
|
||||||
|
jsr CODE.EmitByte
|
||||||
|
inx
|
||||||
|
cpx #CCODE.PUSHA.LEN
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.PUSHINT16 ldy #1
|
CODE.PUSHINT16 ldy #1
|
||||||
|
|
||||||
@@ -98,31 +47,6 @@ CODE.LDYXI lda #$A0 LDY #imm
|
|||||||
txa
|
txa
|
||||||
jmp CODE.EmitByte
|
jmp CODE.EmitByte
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.LDYAI pha
|
|
||||||
lda #$A0 LDY #imm
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
tya
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
|
|
||||||
lda #$A9 LDA #imm
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
pla
|
|
||||||
jmp CODE.EmitByte
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.PUSHYA jsr CODE.PUSHA
|
|
||||||
lda #$98 tya
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.PUSHA ldx #0
|
|
||||||
|
|
||||||
.1 lda CCODE.PUSHA,x
|
|
||||||
jsr CODE.EmitByte
|
|
||||||
inx
|
|
||||||
cpx #CCODE.PUSHA.LEN
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CODE.JSRRT lda #$20 JSR
|
CODE.JSRRT lda #$20 JSR
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
lda J.RT,x
|
lda J.RT,x
|
||||||
|
@@ -181,10 +181,20 @@ CORE.Compile jsr CORE.GetChar
|
|||||||
tax
|
tax
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
jsr CODE.STRSET Store String in hSTRV
|
ldy ZPADDR
|
||||||
|
ldx ZPADDR+1
|
||||||
|
jsr CODE.LDYXI
|
||||||
|
|
||||||
|
ldx #RT.StrSet.ID
|
||||||
|
jsr CODE.JSRRT Store String in hSTRV
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.4 jsr CODE.INTSET Store Int16 result in DATASEG
|
.4 ldy ZPADDR
|
||||||
|
ldx ZPADDR+1
|
||||||
|
jsr CODE.LDYXI
|
||||||
|
|
||||||
|
ldx #RT.IntSet.ID
|
||||||
|
jsr CODE.JSRRT Store Int16 result in DATASEG
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.8 jsr CORE.GetCharNB
|
.8 jsr CORE.GetCharNB
|
||||||
bcs .88
|
bcs .88
|
||||||
@@ -257,6 +267,8 @@ CORE.FWREF >LDYA L.MSG.FWREF
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.Run jsr CORE.Cleanup
|
CORE.Run jsr CORE.Cleanup
|
||||||
|
|
||||||
|
>PUSHW L.MSG.RUN
|
||||||
|
|
||||||
lda ZPCodeBufPtr
|
lda ZPCodeBufPtr
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
|
|
||||||
@@ -270,18 +282,59 @@ CORE.Run jsr CORE.Cleanup
|
|||||||
lda ZPPtr1
|
lda ZPPtr1
|
||||||
sec
|
sec
|
||||||
sbc ZPCodeBufPtr
|
sbc ZPCodeBufPtr
|
||||||
sta ZPPtr2
|
pha
|
||||||
|
|
||||||
lda ZPPtr1+1
|
lda ZPPtr1+1
|
||||||
sbc ZPCodeBufPtr+1
|
sbc ZPCodeBufPtr+1
|
||||||
sta ZPPtr2+1
|
>PUSHA
|
||||||
|
pla
|
||||||
|
>PUSHA Code Size
|
||||||
|
|
||||||
|
lda ZPDataBufPtr
|
||||||
|
sta ZPPtr1
|
||||||
|
|
||||||
|
lda ZPDataBufPtr+1
|
||||||
|
sta ZPPtr1+1
|
||||||
|
|
||||||
|
>LDA.G hDataBuf
|
||||||
|
>SYSCALL GetMemPtr
|
||||||
|
>STYA ZPDataBufPtr
|
||||||
|
|
||||||
>PUSHW L.MSG.RUN
|
lda ZPPtr1
|
||||||
>PUSHW ZPPtr2
|
sec
|
||||||
>PUSHBI 2
|
sbc ZPDataBufPtr
|
||||||
|
pha
|
||||||
|
eor #$ff
|
||||||
|
sta ZPPtr2
|
||||||
|
|
||||||
|
lda ZPPtr1+1
|
||||||
|
sbc ZPDataBufPtr+1
|
||||||
|
>PUSHA
|
||||||
|
eor #$ff
|
||||||
|
sta ZPPtr2+1
|
||||||
|
|
||||||
|
pla
|
||||||
|
>PUSHA Data Size
|
||||||
|
|
||||||
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
jmp (ZPCodeBufPtr)
|
lda #0
|
||||||
|
tay
|
||||||
|
|
||||||
|
.1 inc ZPPtr2
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
inc ZPPtr2+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.2 sta (ZPDataBufPtr),y
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
inc ZPDataBufPtr+1
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 jmp (ZPCodeBufPtr)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.LookupOPS lda (ZPInputBufPtr)
|
CORE.LookupOPS lda (ZPInputBufPtr)
|
||||||
jsr CORE.IsOPSChar
|
jsr CORE.IsOPSChar
|
||||||
@@ -373,7 +426,7 @@ CORE.Lookup clc
|
|||||||
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 plp
|
.3 plp
|
||||||
bcc .8
|
bcc .8
|
||||||
@@ -505,31 +558,13 @@ CORE.CreateOrGetVar
|
|||||||
|
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
lda STRID
|
jsr CORE.GetStr
|
||||||
sta ZPADDR
|
|
||||||
|
|
||||||
lda STRID+1
|
|
||||||
sta ZPADDR+1
|
|
||||||
|
|
||||||
inc STRID
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
inc STRID+1
|
|
||||||
bra .10
|
bra .10
|
||||||
|
|
||||||
.1 lda ZPDataBufPtr
|
.1 jsr CORE.GetWord
|
||||||
sta ZPADDR
|
.10 >STYA ZPADDR
|
||||||
|
|
||||||
clc
|
>PUSHB.G hVars
|
||||||
adc #2 Word
|
|
||||||
sta ZPDataBufPtr
|
|
||||||
|
|
||||||
lda ZPDataBufPtr+1
|
|
||||||
sta ZPADDR+1
|
|
||||||
adc #0
|
|
||||||
sta ZPDataBufPtr+1
|
|
||||||
|
|
||||||
.10 >PUSHB.G hVars
|
|
||||||
>PUSHW ZPSID
|
>PUSHW ZPSID
|
||||||
>PUSHWI ZPADDR
|
>PUSHWI ZPADDR
|
||||||
>PUSHWI 3 3 bytes : ADDR + TYPE
|
>PUSHWI 3 3 bytes : ADDR + TYPE
|
||||||
@@ -608,6 +643,30 @@ CORE.GetVarType jsr CORE.GetChar
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CORE.GetWord lda ZPDataBufPtr
|
||||||
|
tay
|
||||||
|
clc
|
||||||
|
adc #2 Word
|
||||||
|
sta ZPDataBufPtr
|
||||||
|
|
||||||
|
lda ZPDataBufPtr+1
|
||||||
|
bcc .8
|
||||||
|
|
||||||
|
inc ZPDataBufPtr+1
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CORE.GetStr >LDYA STRID
|
||||||
|
inc STRID
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
inc STRID+1
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CORE.ToUpperCase
|
CORE.ToUpperCase
|
||||||
cmp #'a'
|
cmp #'a'
|
||||||
bcc .8
|
bcc .8
|
||||||
|
@@ -62,21 +62,19 @@ EXP.Eval.R lda EXP.AOPS
|
|||||||
.21 jsr EXP.VARLookup
|
.21 jsr EXP.VARLookup
|
||||||
bcs .37
|
bcs .37
|
||||||
|
|
||||||
.22 ldy EXP.ADDR
|
ldy EXP.ADDR
|
||||||
ldx EXP.ADDR+1
|
ldx EXP.ADDR+1
|
||||||
jsr CODE.LDYXI
|
jsr CODE.LDYXI
|
||||||
|
|
||||||
ldx EXP.TYPE
|
ldx EXP.TYPE
|
||||||
bne .23
|
bne .22
|
||||||
|
|
||||||
ldx #RT.IntGet.ID
|
ldx #RT.IntGet.ID
|
||||||
jsr CODE.JSRRT
|
bra .23
|
||||||
|
|
||||||
bra .40
|
.22 ldx #RT.StrGet.ID
|
||||||
|
|
||||||
.23 ldx #RT.StrGet.ID
|
|
||||||
jsr CODE.JSRRT
|
|
||||||
|
|
||||||
|
.23 jsr CODE.JSRRT
|
||||||
bra .40
|
bra .40
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.30 jsr CORE.IsDigit10
|
.30 jsr CORE.IsDigit10
|
||||||
@@ -108,8 +106,8 @@ EXP.Eval.R lda EXP.AOPS
|
|||||||
inc pStack prev op has precedence
|
inc pStack prev op has precedence
|
||||||
|
|
||||||
tay
|
tay
|
||||||
ldx ACOS.OPS2FPU,y
|
jsr EXP.ComputeY go compute (arg1 op1 arg2)
|
||||||
jsr CODE.FPUCALL go compute (arg1 op1 arg2)
|
bcs .90
|
||||||
|
|
||||||
.60 lda EXP.AOPS we must compute arg2 op2 arg3 before
|
.60 lda EXP.AOPS we must compute arg2 op2 arg3 before
|
||||||
>PUSHA
|
>PUSHA
|
||||||
@@ -122,9 +120,8 @@ EXP.Eval.R lda EXP.AOPS
|
|||||||
tay
|
tay
|
||||||
bmi .88 nothing to do
|
bmi .88 nothing to do
|
||||||
|
|
||||||
ldx ACOS.OPS2FPU,y
|
jsr EXP.ComputeY go compute (arg1 op1 arg2)
|
||||||
jsr CODE.FPUCALL
|
bcc .80
|
||||||
bra .80
|
|
||||||
|
|
||||||
.90 lda #E.ESYN
|
.90 lda #E.ESYN
|
||||||
|
|
||||||
@@ -167,8 +164,9 @@ EXP.CreateStrConst
|
|||||||
sta (ZPConstBufPtr),y
|
sta (ZPConstBufPtr),y
|
||||||
|
|
||||||
phy
|
phy
|
||||||
>LDYA ZPConstBufPtr
|
ldy ZPConstBufPtr
|
||||||
jsr CODE.PUSHIYA
|
ldx ZPConstBufPtr+1
|
||||||
|
jsr CODE.PUSHYXI
|
||||||
|
|
||||||
pla
|
pla
|
||||||
sec for \0
|
sec for \0
|
||||||
@@ -234,50 +232,39 @@ EXP.VARLookup >LDA.G hVars
|
|||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.3 jsr CORE.NewVarKey
|
.3 jsr CORE.NewVarKey
|
||||||
bcs .39
|
bcs .9
|
||||||
|
|
||||||
phy
|
>PUSHYA SID
|
||||||
pha KeyID
|
|
||||||
|
|
||||||
jsr CORE.GetVarType
|
jsr CORE.GetVarType
|
||||||
stx EXP.TYPE
|
stx EXP.TYPE
|
||||||
|
|
||||||
beq .11
|
beq .4
|
||||||
|
|
||||||
lda STRID
|
jsr CORE.GetStr
|
||||||
sta EXP.ADDR
|
bra .5
|
||||||
|
|
||||||
lda STRID+1
|
.4 jsr CORE.GetWord
|
||||||
sta EXP.ADDR+1
|
.5 >STYA EXP.ADDR
|
||||||
|
|
||||||
inc STRID
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
inc STRID+1
|
|
||||||
bra .10
|
|
||||||
|
|
||||||
.11 lda ZPDataBufPtr
|
|
||||||
sta EXP.ADDR
|
|
||||||
|
|
||||||
clc
|
|
||||||
adc #2 Word
|
|
||||||
sta ZPDataBufPtr
|
|
||||||
|
|
||||||
lda ZPDataBufPtr+1
|
|
||||||
sta EXP.ADDR+1
|
|
||||||
adc #0
|
|
||||||
sta ZPDataBufPtr+1
|
|
||||||
|
|
||||||
.10 pla
|
|
||||||
>PUSHA
|
|
||||||
pla
|
|
||||||
>PUSHA
|
|
||||||
>PUSHWI EXP.ADDR
|
>PUSHWI EXP.ADDR
|
||||||
>PUSHWI 3 3 bytes : ADDR + TYPE
|
>PUSHWI 3 3 bytes : ADDR + TYPE
|
||||||
>SYSCALL SListAddData
|
>SYSCALL SListAddData
|
||||||
rts
|
|
||||||
|
|
||||||
.39 inc pStack
|
rts
|
||||||
|
|
||||||
|
.9 inc pStack discard extra hVars
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
EXP.ComputeY lda EXP.TYPE
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldx ACOS.OPS2FPU,y
|
||||||
|
jsr CODE.FPUCALL
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@@ -21,11 +21,34 @@ KW.FILL
|
|||||||
KW.FLAG
|
KW.FLAG
|
||||||
KW.FOR
|
KW.FOR
|
||||||
KW.FREE
|
KW.FREE
|
||||||
KW.GET
|
|
||||||
lda #E.CSYN
|
lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
KW.GET jsr CORE.GetNextCharNB
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr CORE.CreateOrGetVar
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
ldx #RT.GET.ID
|
||||||
|
jsr CODE.JSRRT
|
||||||
|
|
||||||
|
ldy ZPADDR
|
||||||
|
ldx ZPADDR+1
|
||||||
|
jsr CODE.LDYXI
|
||||||
|
|
||||||
|
ldx #RT.StrSet.ID
|
||||||
|
jsr CODE.JSRRT
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 lda #E.CSYN
|
||||||
|
sec
|
||||||
|
|
||||||
|
.99 rts
|
||||||
|
*--------------------------------------
|
||||||
KW.GOSUB lda #$20 JSR abs
|
KW.GOSUB lda #$20 JSR abs
|
||||||
bra KW.GOTO1
|
bra KW.GOTO1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@@ -191,7 +214,12 @@ KW.INPUT jsr CORE.GetNextCharNB
|
|||||||
ldx #RT.INPUT.ID
|
ldx #RT.INPUT.ID
|
||||||
jsr CODE.JSRRT
|
jsr CODE.JSRRT
|
||||||
|
|
||||||
jsr CODE.STRSET
|
ldy ZPADDR
|
||||||
|
ldx ZPADDR+1
|
||||||
|
jsr CODE.LDYXI
|
||||||
|
|
||||||
|
ldx #RT.StrSet.ID
|
||||||
|
jsr CODE.JSRRT
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@@ -212,7 +240,7 @@ KW.NEXT
|
|||||||
KW.NIBBLE
|
KW.NIBBLE
|
||||||
KW.NOT
|
KW.NOT
|
||||||
KW.ON
|
KW.ON
|
||||||
KW.NOCAR
|
KW.NOCAR >DEBUG
|
||||||
lda #E.CSYN
|
lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@@ -3,16 +3,25 @@ NEW
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RT.StrSet >PUSHB hStrings
|
RT.StrSet >PUSHB hStrings
|
||||||
|
txa
|
||||||
|
>PUSHA
|
||||||
|
tya
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
* >PUSHW id
|
ldy #4
|
||||||
|
lda (pStack),y
|
||||||
* >PUSHW str
|
>PUSHA
|
||||||
|
lda (pStack),y
|
||||||
|
>PUSHA
|
||||||
>SYSCALL StrVSet
|
>SYSCALL StrVSet
|
||||||
|
inc pStack
|
||||||
|
inc pStack
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RT.StrGet >PUSHB hStrings
|
RT.StrGet lda #0
|
||||||
|
sta (ZPStrBuf)
|
||||||
|
|
||||||
|
>PUSHB hStrings
|
||||||
txa
|
txa
|
||||||
>PUSHA
|
>PUSHA
|
||||||
tya
|
tya
|
||||||
@@ -35,7 +44,15 @@ RT.StrOut ldy #S.PS.hStdOut
|
|||||||
inc pStack
|
inc pStack
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RT.IntSet
|
RT.IntSet sty ZPADDR
|
||||||
|
stx ZPADDR+1
|
||||||
|
|
||||||
|
>PULLA
|
||||||
|
sta (ZPADDR)
|
||||||
|
>PULLA
|
||||||
|
ldy #1
|
||||||
|
sta (ZPADDR),y
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RT.IntGet sty ZPADDR
|
RT.IntGet sty ZPADDR
|
||||||
stx ZPADDR+1
|
stx ZPADDR+1
|
||||||
@@ -75,13 +92,19 @@ RT.TIMEd.1 >PUSHW ZPStrBuf
|
|||||||
>PUSHW ZPStrBuf
|
>PUSHW ZPStrBuf
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
RT.GET >SYSCALL GetChar
|
||||||
|
sta (ZPStrBuf)
|
||||||
|
|
||||||
|
ldy #1
|
||||||
|
bra RT.INPUT.8
|
||||||
|
*--------------------------------------
|
||||||
RT.INPUT lda #0
|
RT.INPUT lda #0
|
||||||
sta (ZPStrBuf)
|
sta (ZPStrBuf)
|
||||||
|
|
||||||
stz ZPPtr1
|
stz ZPPtr1
|
||||||
|
|
||||||
.1 >SYSCALL GetChar
|
.1 >SYSCALL GetChar
|
||||||
bcs .9
|
bcs RT.INPUT.9
|
||||||
|
|
||||||
ldy ZPPtr1
|
ldy ZPPtr1
|
||||||
|
|
||||||
@@ -89,7 +112,7 @@ RT.INPUT lda #0
|
|||||||
bcs .7
|
bcs .7
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .8
|
beq RT.INPUT.8
|
||||||
|
|
||||||
cmp #C.BS
|
cmp #C.BS
|
||||||
bne .1
|
bne .1
|
||||||
@@ -110,13 +133,13 @@ RT.INPUT lda #0
|
|||||||
inc ZPPtr1
|
inc ZPPtr1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.8 lda #0
|
RT.INPUT.8 lda #0
|
||||||
sta (ZPStrBuf),y
|
sta (ZPStrBuf),y
|
||||||
|
|
||||||
>PUSHW ZPStrBuf
|
>PUSHW ZPStrBuf
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 rts
|
RT.INPUT.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RT.LEFTd >PULLW ZPPtr2 cnt
|
RT.LEFTd >PULLW ZPPtr2 cnt
|
||||||
lda (pStack)
|
lda (pStack)
|
||||||
|
@@ -175,6 +175,8 @@ J.ACOS.FN .DA FN.BYTE
|
|||||||
.DA FN.WIDTH
|
.DA FN.WIDTH
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
J.RT
|
J.RT
|
||||||
|
RT.GET.ID .EQ *-J.RT
|
||||||
|
.DA RT.GET
|
||||||
RT.INPUT.ID .EQ *-J.RT
|
RT.INPUT.ID .EQ *-J.RT
|
||||||
.DA RT.INPUT
|
.DA RT.INPUT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@@ -223,11 +225,6 @@ CS.RUN >PUSHW L.MSG.GREETINGS
|
|||||||
jsr CS.RUN.ARGS
|
jsr CS.RUN.ARGS
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
>LDYAI 256
|
|
||||||
>SYSCALL GetMem
|
|
||||||
bcs CS.INIT.RTS
|
|
||||||
>STYA.G InputBufPtr
|
|
||||||
|
|
||||||
jsr CORE.Init
|
jsr CORE.Init
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
@@ -347,6 +344,14 @@ CS.RUN.FOpen >PUSHYA
|
|||||||
|
|
||||||
>STA.G hFile
|
>STA.G hFile
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL GetMem
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA.G InputBufPtr
|
||||||
|
txa
|
||||||
|
>STA.G hInputBuf
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.FGetS >LDYA.G InputBufPtr
|
CS.RUN.FGetS >LDYA.G InputBufPtr
|
||||||
@@ -367,13 +372,19 @@ CS.DOEVENT sec
|
|||||||
CS.QUIT jsr CORE.Quit
|
CS.QUIT jsr CORE.Quit
|
||||||
|
|
||||||
CS.FClose >LDA.G hFile
|
CS.FClose >LDA.G hFile
|
||||||
beq .8
|
beq .1
|
||||||
|
|
||||||
>SYSCALL FClose
|
>SYSCALL FClose
|
||||||
|
|
||||||
>STZ.G hFile
|
>STZ.G hFile
|
||||||
|
|
||||||
.8 clc
|
.1 >LDA.G hInputBuf
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
>SYSCALL FreeMem
|
||||||
|
>STZ.G hInputBuf
|
||||||
|
|
||||||
|
.8
|
||||||
|
* clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintDebugMsg >LDYA pStack
|
PrintDebugMsg >LDYA pStack
|
||||||
@@ -450,40 +461,9 @@ CS.END
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Pre-compiled code
|
* Pre-compiled code
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CCODE.PULLWS >PULLA
|
|
||||||
pha
|
|
||||||
>PULLA
|
|
||||||
pha
|
|
||||||
CCODE.PULLWS.LEN .EQ *-CCODE.PULLWS
|
|
||||||
*--------------------------------------
|
|
||||||
CCODE.PUSHWS pla
|
|
||||||
>PUSHA
|
|
||||||
pla
|
|
||||||
>PUSHA
|
|
||||||
CCODE.PUSHWS.LEN .EQ *-CCODE.PUSHWS
|
|
||||||
*--------------------------------------
|
|
||||||
CCODE.PUSHWYA >STYA ZPADDR
|
|
||||||
ldy #1
|
|
||||||
lda (ZPADDR),y
|
|
||||||
>PUSHA
|
|
||||||
lda (ZPADDR)
|
|
||||||
>PUSHA
|
|
||||||
CCODE.PUSHWYA.LEN .EQ *-CCODE.PUSHWYA
|
|
||||||
*--------------------------------------
|
|
||||||
CCODE.PULLWYA >STYA ZPADDR
|
|
||||||
>PULLA
|
|
||||||
sta (ZPADDR)
|
|
||||||
>PULLA
|
|
||||||
ldy #1
|
|
||||||
sta (ZPADDR),y
|
|
||||||
CCODE.PULLWYA.LEN .EQ *-CCODE.PULLWYA
|
|
||||||
*--------------------------------------
|
|
||||||
CCODE.PUSHA >PUSHA
|
CCODE.PUSHA >PUSHA
|
||||||
CCODE.PUSHA.LEN .EQ *-CCODE.PUSHA
|
CCODE.PUSHA.LEN .EQ *-CCODE.PUSHA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CCODE.PULLA >PULLA
|
|
||||||
CCODE.PULLA.LEN .EQ *-CCODE.PULLA
|
|
||||||
*--------------------------------------
|
|
||||||
CCODE.TESTTRUE lda (pStack)
|
CCODE.TESTTRUE lda (pStack)
|
||||||
inc pStack
|
inc pStack
|
||||||
ora (pStack)
|
ora (pStack)
|
||||||
@@ -507,7 +487,7 @@ MSG.TRACE .AZ "%05D>%s\r\n"
|
|||||||
MSG.ERROR .AZ " %s^\r\n"
|
MSG.ERROR .AZ " %s^\r\n"
|
||||||
MSG.FWREF .AZ "***Resolving FWRefs..."
|
MSG.FWREF .AZ "***Resolving FWRefs..."
|
||||||
MSG.FWREFERR .AZ "***Unresolved FWRef : %s\r\n"
|
MSG.FWREFERR .AZ "***Unresolved FWRef : %s\r\n"
|
||||||
MSG.RUN .AZ "***Code size: %D, Running...\r\n"
|
MSG.RUN .AZ "***Code size: %D, Data Size: %D, Running...\r\n"
|
||||||
MSG.STR .AZ "%s"
|
MSG.STR .AZ "%s"
|
||||||
MSG.INT16 .AZ "%I"
|
MSG.INT16 .AZ "%I"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@@ -636,6 +616,7 @@ bDebug .BS 1
|
|||||||
bTrace .BS 1
|
bTrace .BS 1
|
||||||
LineCounter .BS 2
|
LineCounter .BS 2
|
||||||
hFile .BS 1
|
hFile .BS 1
|
||||||
|
hInputBuf .BS 1
|
||||||
InputBufPtr .BS 2
|
InputBufPtr .BS 2
|
||||||
hCodeBuf .BS 1
|
hCodeBuf .BS 1
|
||||||
hConstBuf .BS 1
|
hConstBuf .BS 1
|
||||||
|
@@ -4,7 +4,7 @@ NEW
|
|||||||
IO.D2.SeekTimeR .EQ 45 LIBBLKDEV Recalibration
|
IO.D2.SeekTimeR .EQ 45 LIBBLKDEV Recalibration
|
||||||
IO.D2.SeekTimeF .EQ 55 LIBBLKDEV Track Formatter
|
IO.D2.SeekTimeF .EQ 55 LIBBLKDEV Track Formatter
|
||||||
IO.D2.SeekTimeB .EQ 55 LIBBLKDEV Boot Block
|
IO.D2.SeekTimeB .EQ 55 LIBBLKDEV Boot Block
|
||||||
IO.D2.SeekTimeP .EQ 40 ProDOS.FX initial
|
IO.D2.SeekTimeP .EQ 45 ProDOS.FX initial
|
||||||
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.Ph0Off .EQ $C080
|
IO.D2.Ph0Off .EQ $C080
|
||||||
|
Reference in New Issue
Block a user