mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-19 20:29:34 +00:00
Kernel 0.93+
This commit is contained in:
parent
9bc755d734
commit
f9eb786fd6
Binary file not shown.
100
BIN/SH.S.CMD.txt
100
BIN/SH.S.CMD.txt
|
@ -207,27 +207,38 @@ CMD.SET.1
|
||||||
bcs .6
|
bcs .6
|
||||||
cmp #'C'
|
cmp #'C'
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
ldy #bSET.C
|
ldy #bSET.C
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.2 cmp #'X'
|
.2 cmp #'X'
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #bSET.X
|
ldy #bSET.X
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.3 cmp #'E'
|
.3 cmp #'E'
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
ldy #bSET.E
|
ldy #bSET.E
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.4 cmp #'F'
|
.4 cmp #'F'
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
jsr CORE.FUNCRESET
|
jsr CORE.FUNCRESET
|
||||||
bra .50
|
bra .50
|
||||||
|
|
||||||
.5 lda (pData),y
|
.5 lda (pData),y
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
.50 jsr CORE.ArgV.Next
|
.50 jsr CORE.ArgV.Next
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.6 >LDYA ZPArgVBufPtr
|
.6 >LDYA ZPArgVBufPtr
|
||||||
>STYA ZPVarNamePtr
|
>STYA ZPVarNamePtr
|
||||||
|
|
||||||
|
@ -235,9 +246,11 @@ CMD.SET.1
|
||||||
beq CMD.SET.GET
|
beq CMD.SET.GET
|
||||||
cmp #'='
|
cmp #'='
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPArgVBufPtr),y
|
lda (ZPArgVBufPtr),y
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
jsr CORE.ArgV.Next
|
||||||
beq CMD.SET.UNSET
|
beq CMD.SET.UNSET
|
||||||
|
|
||||||
|
@ -663,87 +676,55 @@ CMD.EXIT lda (ZPArgVBufPtr)
|
||||||
jsr EXP.GetInt8Exp
|
jsr EXP.GetInt8Exp
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 sta M32.ACC
|
.1 ldy #S.PS.RC
|
||||||
|
sta (pPs),y
|
||||||
|
|
||||||
.2 jsr CORE.StkPull Pull everything until CALL . CL...
|
.2 jsr CORE.StkPull Pull everything until CALL . CL...
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #$C0+C.. in CALL . CL context ?
|
cmp #$C0+C.. in CALL, "." or CL context ?
|
||||||
beq CMD.EXIT.FILE
|
beq CMD.EXIT.FILE
|
||||||
|
|
||||||
cmp #$C0+C.CALL
|
cmp #$C0+C.CALL
|
||||||
beq CMD.EXIT.FILE
|
beq CMD.EXIT.FILE
|
||||||
|
|
||||||
cmp #$C0+C.CLEXEC
|
cmp #$C0+C.CLEXEC
|
||||||
beq CMD.EXIT.SH
|
beq .8
|
||||||
jsr CMD.EXIT.POP
|
|
||||||
|
jsr CORE.StkPopCtxA
|
||||||
bcc .2
|
bcc .2
|
||||||
|
rts
|
||||||
|
|
||||||
.9 rts
|
.8 jsr CMD.EXIT.FILE
|
||||||
*--------------------------------------
|
|
||||||
CMD.EXIT.SH jsr CMD.EXIT.FILE
|
|
||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
>STA.G bExitOnEOF
|
>STA.G bExitOnEOF
|
||||||
clc
|
clc
|
||||||
rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.EXIT.FILE jsr CORE.StkPull
|
CMD.EXIT.FILE jsr CORE.StkPull
|
||||||
>SYSCALL freemem Code buffer
|
>SYSCALL freemem Code buffer
|
||||||
|
|
||||||
ldy #S.PS.hARGV
|
ldy #S.PS.hARGV
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL freemem ArgV buffer
|
>SYSCALL freemem ArgV buffer
|
||||||
|
|
||||||
jsr CORE.StkPull
|
jsr CORE.StkPull
|
||||||
ldy #S.PS.hARGV
|
ldy #S.PS.hARGV
|
||||||
sta (pPS),y
|
sta (pPS),y
|
||||||
|
|
||||||
jsr CORE.StkPull
|
jsr CORE.StkPull
|
||||||
ldy #S.PS.ARGC
|
ldy #S.PS.ARGC
|
||||||
sta (pPS),y
|
sta (pPS),y
|
||||||
|
|
||||||
jsr CORE.StkPullInputBufPtr
|
jsr CORE.StkPullInputBufPtr
|
||||||
|
|
||||||
jsr CORE.StkPull
|
jsr CORE.StkPull
|
||||||
sta ZPInputBuf+1
|
sta ZPInputBuf+1
|
||||||
jsr CORE.StkPull
|
jsr CORE.StkPull
|
||||||
sta ZPInputBuf
|
sta ZPInputBuf
|
||||||
|
|
||||||
lda M32.ACC
|
|
||||||
CMD.EXIT.CLCRTS clc
|
|
||||||
CMD.EXIT.RTS rts
|
|
||||||
*--------------------------------------
|
|
||||||
CMD.EXIT.POP and #$3F
|
|
||||||
cmp #C.IF
|
|
||||||
beq CMD.EXIT.CLCRTS IF : Nothing
|
|
||||||
|
|
||||||
ldx #2
|
|
||||||
cmp #C.WHILE WHILE : One Ptr = 2 bytes
|
|
||||||
beq CMD.EXIT.POPX
|
|
||||||
|
|
||||||
cmp #C.SWITCH SWITCH : hValue
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
ldx #1
|
|
||||||
cmp #C.CASE CASE : C.CASE + hValue
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
cmp #C.DEFAULT DEFAULT : C.DEFAULT + hValue
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
.1 jsr CMD.EXIT.POPX
|
|
||||||
|
|
||||||
.2 jsr CORE.StkPull
|
|
||||||
>SYSCALL freemem
|
|
||||||
rts
|
|
||||||
.9 lda #E.STACKERROR
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CMD.EXIT.POPX lda (pData)
|
|
||||||
.1 dec
|
|
||||||
dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
sta (pData)
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.BREAK jsr CORE.StkGetCtx Get context in CORE.TestResult
|
CMD.BREAK jsr CORE.StkGetCtx Get context in CORE.TestResult
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -848,18 +829,15 @@ CMD.END jsr CORE.StkGetCtx Get context in CORE.TestResult
|
||||||
and #$3F
|
and #$3F
|
||||||
|
|
||||||
cmp #C.SWITCH
|
cmp #C.SWITCH
|
||||||
beq .3
|
beq .8
|
||||||
|
|
||||||
cmp #C.CASE
|
cmp #C.CASE
|
||||||
beq .2
|
beq .8
|
||||||
|
|
||||||
cmp #C.DEFAULT
|
cmp #C.DEFAULT
|
||||||
bne CMD.E.CSYN
|
bne CMD.E.CSYN
|
||||||
.2 jsr CORE.StkPull remove C.CASE or C.DEFAULT
|
|
||||||
.3 jsr CORE.StkPull remove C.SWITCH
|
.8 jmp CORE.StkPopCtx
|
||||||
jsr CORE.StkPull get hVALUE
|
|
||||||
>SYSCALL freemem
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.FOR jsr CORE.StkGetCtx
|
CMD.FOR jsr CORE.StkGetCtx
|
||||||
|
|
||||||
|
@ -968,6 +946,7 @@ CMD.NEXT jsr CORE.StkGet Y = StkPtr
|
||||||
tax
|
tax
|
||||||
beq CMD.NEXT.LIST
|
beq CMD.NEXT.LIST
|
||||||
jmp CMD.NEXT.FILEEXEC
|
jmp CMD.NEXT.FILEEXEC
|
||||||
|
|
||||||
.9 lda #E.NOFOR
|
.9 lda #E.NOFOR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -1168,11 +1147,14 @@ CMD.IF jsr CORE.StkGetCtx
|
||||||
.3 lda CORE.IntCmd
|
.3 lda CORE.IntCmd
|
||||||
cmp #C.WHILE
|
cmp #C.WHILE
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda #3
|
lda #3
|
||||||
jsr CORE.StkCheck
|
jsr CORE.StkCheck
|
||||||
bcs CMD.NEXT.LINE.RTS
|
bcs CMD.NEXT.LINE.RTS
|
||||||
|
|
||||||
>LDYA ZPInputCmdPtr
|
>LDYA ZPInputCmdPtr
|
||||||
jsr CORE.StkPushYA Push BEFORE WHILE/IF
|
jsr CORE.StkPushYA Push BEFORE WHILE/IF
|
||||||
|
|
||||||
.8 lda CORE.TestResult
|
.8 lda CORE.TestResult
|
||||||
ora CORE.IntCmd
|
ora CORE.IntCmd
|
||||||
jmp CORE.StkPush
|
jmp CORE.StkPush
|
||||||
|
@ -1185,10 +1167,9 @@ CMD.LOOP jsr CORE.StkPull
|
||||||
cmp #C.WHILE
|
cmp #C.WHILE
|
||||||
bne .9
|
bne .9
|
||||||
txa
|
txa
|
||||||
bmi .8
|
bmi .8 true, loop
|
||||||
|
|
||||||
ldx #2 Discard loop Ptr
|
jmp CORE.StkPopCtxA false, Discard loop Ptr
|
||||||
jmp CMD.EXIT.POPX
|
|
||||||
|
|
||||||
.8 jmp CORE.StkPullInputBufPtr
|
.8 jmp CORE.StkPullInputBufPtr
|
||||||
|
|
||||||
|
@ -1217,11 +1198,14 @@ CMD.ELSE jsr CORE.StkGet
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.FI jsr CORE.StkPull
|
CMD.FI jsr CORE.StkPull
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
and #$3F
|
and #$3F
|
||||||
cmp #C.IF
|
cmp #C.IF
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.NOIF
|
.9 lda #E.NOIF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -99,6 +99,7 @@ CORE.Run.EOF jsr CORE.StkPull
|
||||||
lda #0
|
lda #0
|
||||||
sec
|
sec
|
||||||
rts Ending 0, CS,A=0
|
rts Ending 0, CS,A=0
|
||||||
|
|
||||||
.9 lda #E.UNEXPEOF
|
.9 lda #E.UNEXPEOF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -151,15 +152,21 @@ CORE.Run.1 sec coming from PIPE OUT
|
||||||
.4 >LDYA L.CMD internal command ?
|
.4 >LDYA L.CMD internal command ?
|
||||||
jsr CORE.LookupInputBuf
|
jsr CORE.LookupInputBuf
|
||||||
bcc .41
|
bcc .41
|
||||||
|
|
||||||
.40 jsr CORE.ArgV.Add external cmd, go check context
|
.40 jsr CORE.ArgV.Add external cmd, go check context
|
||||||
bra .42
|
bra .42
|
||||||
.41 jsr CORE.SkipCharsA
|
|
||||||
stx CORE.IntCmd
|
.41 stx CORE.IntCmd
|
||||||
|
asl CORE.IntCmd
|
||||||
|
jsr CORE.SkipCharsA
|
||||||
|
|
||||||
.42 jsr CORE.StkGet
|
.42 jsr CORE.StkGet
|
||||||
bcs CORE.Run.7 no particular context, exec...
|
bcs CORE.Run.7 no particular context, exec...
|
||||||
|
|
||||||
tax
|
tax
|
||||||
lda CORE.IntCmd
|
lda CORE.IntCmd
|
||||||
bmi .45
|
bmi .45
|
||||||
|
|
||||||
and #$3F
|
and #$3F
|
||||||
cmp #C.SWITCH SWITCH....FI ?
|
cmp #C.SWITCH SWITCH....FI ?
|
||||||
bcs CORE.Run.7
|
bcs CORE.Run.7
|
||||||
|
@ -178,6 +185,7 @@ CORE.Run.1 sec coming from PIPE OUT
|
||||||
|
|
||||||
jsr CORE.GetNextChar
|
jsr CORE.GetNextChar
|
||||||
bra .43
|
bra .43
|
||||||
|
|
||||||
.44 jsr CORE.GetNextCharNB Skip EoL char
|
.44 jsr CORE.GetNextCharNB Skip EoL char
|
||||||
clc
|
clc
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -263,7 +271,7 @@ CORE.ExecCmd lda #0
|
||||||
|
|
||||||
lda CORE.IntCmd
|
lda CORE.IntCmd
|
||||||
bmi CORE.ExecExtCmd
|
bmi CORE.ExecExtCmd
|
||||||
asl
|
|
||||||
tax
|
tax
|
||||||
jmp (J.CMD,x)
|
jmp (J.CMD,x)
|
||||||
|
|
||||||
|
@ -319,9 +327,12 @@ CORE.LookupArgVBuf
|
||||||
CORE.Lookup >STYA ZPPtr2
|
CORE.Lookup >STYA ZPPtr2
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 ldy #$ff
|
.1 ldy #$ff
|
||||||
|
|
||||||
.2 jsr .7 get next valid char in src text
|
.2 jsr .7 get next valid char in src text
|
||||||
bcs .3
|
bcs .3
|
||||||
|
|
||||||
.20 jsr ToUpperCase
|
.20 jsr ToUpperCase
|
||||||
eor (ZPPtr1),y match table char ?
|
eor (ZPPtr1),y match table char ?
|
||||||
asl compare only 7 bits
|
asl compare only 7 bits
|
||||||
|
@ -340,12 +351,14 @@ CORE.Lookup >STYA ZPPtr2
|
||||||
.3 dey
|
.3 dey
|
||||||
lda (ZPPtr1),y was last char in this keyword ?
|
lda (ZPPtr1),y was last char in this keyword ?
|
||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
.41 jsr IncPtr1 skip chars to next keyword
|
.41 jsr IncPtr1 skip chars to next keyword
|
||||||
|
|
||||||
.4 lda (ZPPtr1)
|
.4 lda (ZPPtr1)
|
||||||
bpl .41
|
bpl .41
|
||||||
jsr IncPtr1
|
jsr IncPtr1
|
||||||
|
|
||||||
.6 inx
|
.6 inx
|
||||||
lda (ZPPtr1) Array Ending 0, lookup failed
|
lda (ZPPtr1) Array Ending 0, lookup failed
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -594,12 +607,53 @@ CORE.SkipCharsA clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Stack
|
* Stack
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CORE.StkPopCtx jsr CORE.StkPull
|
||||||
|
|
||||||
|
CORE.StkPopCtxA and #$3F
|
||||||
|
cmp #C.IF
|
||||||
|
beq .8 IF : Nothing
|
||||||
|
|
||||||
|
ldx #2
|
||||||
|
cmp #C.WHILE WHILE : One Ptr = 2 bytes
|
||||||
|
beq CORE.StkPopX
|
||||||
|
|
||||||
|
cmp #C.SWITCH SWITCH : hValue
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
ldx #1
|
||||||
|
cmp #C.CASE CASE : C.CASE + hValue
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
cmp #C.DEFAULT DEFAULT : C.DEFAULT + hValue
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
.1 jsr CORE.StkPopX
|
||||||
|
|
||||||
|
.2 jsr CORE.StkPull
|
||||||
|
>SYSCALL freemem
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 lda #E.STACKERROR
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CORE.StkPopX lda (pData)
|
||||||
|
.1 dec
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
sta (pData)
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CORE.StkCheck sec
|
CORE.StkCheck sec
|
||||||
adc (pData) StackPtr
|
adc (pData) StackPtr
|
||||||
cmp #CORE.STACK.MAX
|
cmp #CORE.STACK.MAX
|
||||||
bcc .8
|
bcc .8
|
||||||
lda #E.STKOVERFLOW
|
lda #E.STKOVERFLOW
|
||||||
* clc
|
* sec
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.StkPushYAX phx
|
CORE.StkPushYAX phx
|
||||||
|
|
|
@ -162,8 +162,10 @@ IO.PrintBatchErrMsg
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
cmp #E.SYN
|
cmp #E.SYN
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
>LDYA ZPInputCmdPtr
|
>LDYA ZPInputCmdPtr
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.10 >LDYA ZPInputBufPtr
|
.10 >LDYA ZPInputBufPtr
|
||||||
|
|
||||||
.11 >STYA ZPPtr2
|
.11 >STYA ZPPtr2
|
||||||
|
@ -235,13 +237,14 @@ IO.PrintBatchErrMsg
|
||||||
>PUSHW L.MSG.BATCHERR
|
>PUSHW L.MSG.BATCHERR
|
||||||
.80 bra IO.PrintErr
|
.80 bra IO.PrintErr
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.PrintErrMsg pha Save EC for PrintF
|
IO.PrintErrMsg ldx L.ERR.Codes
|
||||||
|
|
||||||
ldx L.ERR.Codes
|
|
||||||
stx ZPPTR1
|
stx ZPPTR1
|
||||||
ldx L.ERR.Codes+1
|
ldx L.ERR.Codes+1
|
||||||
stx ZPPTR1+1
|
stx ZPPTR1+1
|
||||||
|
|
||||||
|
ldy #S.PS.RC
|
||||||
|
lda (pPs),y
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 cmp (ZPPTR1),y
|
.1 cmp (ZPPTR1),y
|
||||||
|
@ -260,8 +263,12 @@ IO.PrintErrMsg pha Save EC for PrintF
|
||||||
lda (ZPPTR1)
|
lda (ZPPTR1)
|
||||||
jsr AddAp1Ptr1
|
jsr AddAp1Ptr1
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.8 >PUSHW ZPPTR1
|
.8 >PUSHW ZPPTR1
|
||||||
pla
|
|
||||||
|
ldy #S.PS.RC
|
||||||
|
lda (pPs),y
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 3
|
>PUSHBI 3
|
||||||
>PUSHW L.MSG.ERROR
|
>PUSHW L.MSG.ERROR
|
||||||
|
|
92
BIN/SH.S.txt
92
BIN/SH.S.txt
|
@ -10,40 +10,40 @@ CORE.STACK.MAX .EQ 128
|
||||||
PUSHD.STACK.MAX .EQ 4
|
PUSHD.STACK.MAX .EQ 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C... .EQ 0
|
C... .EQ 0
|
||||||
C.. .EQ 1
|
C.. .EQ 2
|
||||||
C.CD .EQ 2
|
C.CD .EQ 4
|
||||||
C.NOHUP .EQ 3
|
C.NOHUP .EQ 6
|
||||||
C.DATE .EQ 4
|
C.DATE .EQ 8
|
||||||
C.ECHO .EQ 5
|
C.ECHO .EQ 10
|
||||||
C.EXIT .EQ 6
|
C.EXIT .EQ 12
|
||||||
C.MD .EQ 7
|
C.MD .EQ 14
|
||||||
C.PAUSE .EQ 8
|
C.PAUSE .EQ 16
|
||||||
C.PWD .EQ 9
|
C.PWD .EQ 18
|
||||||
C.RD .EQ 10
|
C.RD .EQ 20
|
||||||
C.READ .EQ 11
|
C.READ .EQ 22
|
||||||
C.REN .EQ 12
|
C.REN .EQ 24
|
||||||
C.SET .EQ 13
|
C.SET .EQ 26
|
||||||
C.SLEEP .EQ 14
|
C.SLEEP .EQ 28
|
||||||
C.SHIFT .EQ 15
|
C.SHIFT .EQ 30
|
||||||
C.PUSHD .EQ 16
|
C.PUSHD .EQ 32
|
||||||
C.POPD .EQ 17
|
C.POPD .EQ 34
|
||||||
C.FUNCTION .EQ 18
|
C.FUNCTION .EQ 36
|
||||||
C.CALL .EQ 19
|
C.CALL .EQ 38
|
||||||
C.BREAK .EQ 20
|
C.BREAK .EQ 40
|
||||||
C.SWITCH .EQ 21
|
C.SWITCH .EQ 42
|
||||||
C.CASE .EQ 22
|
C.CASE .EQ 44
|
||||||
C.DEFAULT .EQ 23
|
C.DEFAULT .EQ 46
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C.FOR .EQ 24
|
C.FOR .EQ 48
|
||||||
C.FOR.LIST .EQ 0
|
C.FOR.LIST .EQ 0
|
||||||
C.FOR.FILEEXEC .EQ 1
|
C.FOR.FILEEXEC .EQ 1
|
||||||
C.WHILE .EQ 25
|
C.WHILE .EQ 50
|
||||||
C.IF .EQ 26
|
C.IF .EQ 52
|
||||||
C.NEXT .EQ 27
|
C.NEXT .EQ 54
|
||||||
C.LOOP .EQ 20
|
C.LOOP .EQ 56
|
||||||
C.ELSE .EQ 29
|
C.ELSE .EQ 58
|
||||||
C.FI .EQ 30
|
C.FI .EQ 60
|
||||||
C.END .EQ 31
|
C.END .EQ 62
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C.CLEXEC .EQ 63
|
C.CLEXEC .EQ 63
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -369,6 +369,7 @@ CS.RUN.BATCH >LDA.G bSET.X
|
||||||
bcs CS.RUN.LOOP.RTS
|
bcs CS.RUN.LOOP.RTS
|
||||||
|
|
||||||
.5 jsr CORE.Run
|
.5 jsr CORE.Run
|
||||||
|
|
||||||
CS.RUN.LOOP.END ldy #S.PS.RC
|
CS.RUN.LOOP.END ldy #S.PS.RC
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
bcc CS.RUN.LOOP.80
|
bcc CS.RUN.LOOP.80
|
||||||
|
@ -378,22 +379,35 @@ CS.RUN.LOOP.END ldy #S.PS.RC
|
||||||
>LDA.G bSET.E
|
>LDA.G bSET.E
|
||||||
bmi CS.RUN.LOOP.80
|
bmi CS.RUN.LOOP.80
|
||||||
|
|
||||||
jsr CORE.StkGet
|
.1 jsr CORE.StkGet
|
||||||
cmp #$C0+C.CLEXEC
|
cmp #$C0+C.CLEXEC
|
||||||
beq .1
|
beq .8
|
||||||
jsr IO.PrintBatchErrMsg
|
|
||||||
|
cmp #$C0+C.. in . ?
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
cmp #$C0+C.CALL in CALL ?
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
jsr CORE.StkPopCtx
|
||||||
|
bcc .1
|
||||||
|
|
||||||
|
.7 jsr IO.PrintBatchErrMsg
|
||||||
bcs CS.RUN.LOOP.RTS
|
bcs CS.RUN.LOOP.RTS
|
||||||
.1 ldy #S.PS.RC
|
|
||||||
lda (pPs),y
|
jsr CORE.StkPull
|
||||||
jsr IO.PrintErrMsg
|
jsr CMD.EXIT.FILE
|
||||||
|
|
||||||
|
.8 jsr IO.PrintErrMsg
|
||||||
bcs CS.RUN.LOOP.RTS
|
bcs CS.RUN.LOOP.RTS
|
||||||
|
|
||||||
CS.RUN.LOOP.80 lda (pData) something on stack ?
|
CS.RUN.LOOP.80 lda (pData) something on stack ?
|
||||||
bne .8
|
bne CS.RUN.LOOP.88
|
||||||
|
|
||||||
>LDA.G bExitOnEOF
|
>LDA.G bExitOnEOF
|
||||||
bmi CS.RUN.LOOP.EXIT
|
bmi CS.RUN.LOOP.EXIT
|
||||||
|
|
||||||
.8 jmp CS.RUN.LOOP
|
CS.RUN.LOOP.88 jmp CS.RUN.LOOP
|
||||||
CS.RUN.LOOP.EXIT
|
CS.RUN.LOOP.EXIT
|
||||||
ldy #S.PS.RC
|
ldy #S.PS.RC
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
|
|
Loading…
Reference in New Issue
Block a user