mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-29 23:32:00 +00:00
Kernel 0.92+
This commit is contained in:
parent
c64f702460
commit
ca86b1e9ba
Binary file not shown.
159
BIN/SH.S.CMD.txt
159
BIN/SH.S.CMD.txt
@ -532,51 +532,161 @@ CMD.RD lda (ZPArgVBufPtr)
|
||||
|
||||
.9 jmp CMD.Exec.CSYN
|
||||
*--------------------------------------
|
||||
CMD.BREAK
|
||||
CMD.FUNC
|
||||
.9 jmp CMD.Exec.CSYN
|
||||
*--------------------------------------
|
||||
CMD.CONTINUE
|
||||
CMD.CONTINUE.CSYN
|
||||
jmp CMD.Exec.CSYN
|
||||
CMD.RETURN
|
||||
.9 jmp CMD.Exec.CSYN
|
||||
*--------------------------------------
|
||||
CMD.FOR jsr CORE.StkGet
|
||||
bcs .1 no context...
|
||||
* stack-1 hVALUE
|
||||
* stack SWITCH TOKEN
|
||||
*--------------------------------------
|
||||
CMD.SWITCH jsr CORE.StkGetCtx
|
||||
|
||||
and #$80 get current..
|
||||
lsr becomes parent
|
||||
bra .2
|
||||
jsr EXP.GET
|
||||
bcs .9
|
||||
>SYSCALL strdup
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
jsr CORE.StkPush Push EXP hVALUE
|
||||
bcs .9
|
||||
|
||||
>LDA.G CORE.Test
|
||||
beq .1
|
||||
|
||||
.1 lda #$40 ...set Parent = true
|
||||
ora #$80
|
||||
|
||||
.1 ora #C.SWITCH
|
||||
jmp CORE.StkPush
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CMD.CASE jsr CORE.StkGetCtx Get context in CORE.Test
|
||||
|
||||
.2 >STA.G CORE.Test
|
||||
bcs .9
|
||||
|
||||
and #$3F
|
||||
cmp #C.SWITCH
|
||||
beq .1
|
||||
|
||||
cmp #C.CASE
|
||||
bne .9
|
||||
|
||||
jsr CORE.StkPull remove C.SWITCH
|
||||
jsr CORE.StkPull get hVALUE
|
||||
>SYSCALL freemem
|
||||
bra CMD.CASE
|
||||
|
||||
.1 jsr EXP.GET
|
||||
bcs .9
|
||||
|
||||
>PUSHYA
|
||||
|
||||
lda (pDATA)
|
||||
tay
|
||||
dey get hVALUE
|
||||
lda (pDATA),y
|
||||
>SYSCALL GetMemPtr
|
||||
>SYSCALL strcmp
|
||||
ror CS if !=
|
||||
and #$80
|
||||
eor #$80
|
||||
>ORA.G CORE.Test
|
||||
ora #C.CASE
|
||||
jmp CORE.StkPush
|
||||
|
||||
.9 jmp CMD.Exec.CSYN
|
||||
*--------------------------------------
|
||||
CMD.DEFAULT jsr CORE.StkGetCtx Get context in CORE.Test
|
||||
bcs .9
|
||||
|
||||
and #$3F
|
||||
cmp #C.SWITCH
|
||||
beq .1
|
||||
|
||||
cmp #C.CASE
|
||||
bne .9
|
||||
|
||||
jsr CORE.StkPull remove C.CASE
|
||||
|
||||
.1 lda #$80
|
||||
>ORA.G CORE.Test
|
||||
ora #C.DEFAULT
|
||||
jmp CORE.StkPush
|
||||
|
||||
.9 jmp CMD.Exec.CSYN
|
||||
*--------------------------------------
|
||||
CMD.BREAK jsr CORE.StkGetCtx Get context in CORE.Test
|
||||
bcs .9
|
||||
|
||||
and #$3F
|
||||
cmp #C.CASE
|
||||
bne .9
|
||||
|
||||
>LDA.G CORE.Test
|
||||
beq .8
|
||||
|
||||
jsr CORE.StkPull remove C.CASE
|
||||
jsr CORE.StkGet
|
||||
and #$7F
|
||||
sta (pDATA),y
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 jmp CMD.Exec.CSYN
|
||||
*--------------------------------------
|
||||
CMD.END jsr CORE.StkGetCtx Get context in CORE.Test
|
||||
bcs CMD.END.CSYN
|
||||
|
||||
and #$3F
|
||||
cmp #C.SWITCH
|
||||
beq .2
|
||||
|
||||
cmp #C.CASE
|
||||
beq .1
|
||||
|
||||
cmp #C.DEFAULT
|
||||
bne CMD.END.CSYN
|
||||
|
||||
.1 jsr CORE.StkPull remove C.CASE,C.DEFAULT
|
||||
|
||||
.2 jsr CORE.StkPull remove C.SWITCH
|
||||
jsr CORE.StkPull get hVALUE
|
||||
>SYSCALL freemem
|
||||
rts
|
||||
|
||||
CMD.END.CSYN jmp CMD.Exec.CSYN
|
||||
*--------------------------------------
|
||||
CMD.FOR jsr CORE.StkGetCtx
|
||||
|
||||
lda (ZPArgVBufPtr)
|
||||
beq CMD.CONTINUE.CSYN
|
||||
beq CMD.END.CSYN
|
||||
|
||||
>LDYA ZPArgVBufPtr
|
||||
>STYA ZPVarNamePtr
|
||||
|
||||
jsr CORE.ArgV.Next
|
||||
beq CMD.CONTINUE.CSYN
|
||||
beq CMD.END.CSYN
|
||||
|
||||
jsr ToUpperCase
|
||||
cmp #'I'
|
||||
bne CMD.CONTINUE.CSYN
|
||||
bne CMD.END.CSYN
|
||||
|
||||
ldy #1
|
||||
lda (ZPArgVBufPtr),y
|
||||
beq CMD.CONTINUE.CSYN
|
||||
beq CMD.END.CSYN
|
||||
|
||||
jsr ToUpperCase
|
||||
cmp #'N'
|
||||
bne CMD.CONTINUE.CSYN
|
||||
bne CMD.END.CSYN
|
||||
|
||||
iny
|
||||
lda (ZPArgVBufPtr),y
|
||||
bne CMD.CONTINUE.CSYN
|
||||
bne CMD.END.CSYN
|
||||
|
||||
jsr CORE.ArgV.Next
|
||||
beq CMD.CONTINUE.CSYN
|
||||
beq CMD.END.CSYN
|
||||
|
||||
cmp #'('
|
||||
beq FOR.FILE
|
||||
@ -765,7 +875,7 @@ CMD.NEXT jsr CORE.StkGet Y = StkPtr
|
||||
* stack-4 ListPtr
|
||||
* stack-3 hLIST
|
||||
* stack-2 hVARNAME
|
||||
* stack-1 FOR SUB TOKEN
|
||||
* stack-1 FOR SUB TOKEN
|
||||
* stack FOR TOKEN
|
||||
*--------------------------------------
|
||||
CMD.NEXT.LIST lda (pData),y Y = StkPtr
|
||||
@ -1063,16 +1173,7 @@ CMD.NEXT.EXEC.1 lda (pData)
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CMD.WHILE
|
||||
CMD.IF jsr CORE.StkGet
|
||||
bcs .1 no context...
|
||||
|
||||
and #$80 get current..
|
||||
lsr becomes parent
|
||||
bra .2
|
||||
|
||||
.1 lda #$40 ...set Parent = true
|
||||
|
||||
.2 >STA.G CORE.Test
|
||||
CMD.IF jsr CORE.StkGetCtx
|
||||
|
||||
bit #$40 Parent is true ?
|
||||
beq .3
|
||||
|
@ -579,6 +579,20 @@ CORE.StkPush pha
|
||||
* sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.StkGetCtx jsr CORE.StkGet
|
||||
tax
|
||||
bcs .1 no context...
|
||||
|
||||
and #$80 get current..
|
||||
lsr becomes parent
|
||||
bra .2
|
||||
|
||||
.1 lda #$40 ...set Parent = true
|
||||
|
||||
.2 >STA.G CORE.Test
|
||||
txa
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.StkPull jsr CORE.StkGet
|
||||
bcs .9
|
||||
|
||||
|
37
BIN/SH.S.txt
37
BIN/SH.S.txt
@ -28,19 +28,24 @@ C.SHIFT .EQ 28
|
||||
C.TIME .EQ 30
|
||||
C.PUSHD .EQ 32
|
||||
C.POPD .EQ 34
|
||||
C.BREAK .EQ 36
|
||||
C.CONTINUE .EQ 38
|
||||
C.FUNC .EQ 36
|
||||
C.RETURN .EQ 38
|
||||
C.SWITCH .EQ 40
|
||||
C.CASE .EQ 42
|
||||
C.DEFAULT .EQ 44
|
||||
C.BREAK .EQ 46
|
||||
C.END .EQ 48
|
||||
*--------------------------------------
|
||||
C.FOR .EQ 40
|
||||
C.FOR .EQ 50
|
||||
C.FOR.LIST .EQ 0
|
||||
C.FOR.FILE .EQ 2
|
||||
C.FOR.EXEC .EQ 4
|
||||
C.WHILE .EQ 42
|
||||
C.IF .EQ 44
|
||||
C.NEXT .EQ 46
|
||||
C.LOOP .EQ 48
|
||||
C.ELSE .EQ 50
|
||||
C.FI .EQ 52
|
||||
C.WHILE .EQ 52
|
||||
C.IF .EQ 54
|
||||
C.NEXT .EQ 56
|
||||
C.LOOP .EQ 58
|
||||
C.ELSE .EQ 60
|
||||
C.FI .EQ 62
|
||||
*--------------------------------------
|
||||
E.CSYN .EQ $C0
|
||||
E.ESYN .EQ $C1
|
||||
@ -134,8 +139,13 @@ J.CMD .DA CMD.NOHUP
|
||||
.DA CMD.TIME
|
||||
.DA CMD.PUSHD
|
||||
.DA CMD.POPD
|
||||
.DA CMD.FUNC
|
||||
.DA CMD.RETURN
|
||||
.DA CMD.SWITCH
|
||||
.DA CMD.CASE
|
||||
.DA CMD.DEFAULT
|
||||
.DA CMD.BREAK
|
||||
.DA CMD.CONTINUE
|
||||
.DA CMD.END
|
||||
.DA CMD.FOR
|
||||
.DA CMD.WHILE
|
||||
.DA CMD.IF
|
||||
@ -590,8 +600,13 @@ CMD .AZ "NOHUP"
|
||||
.AZ "TIME"
|
||||
.AZ "PUSHD"
|
||||
.AZ "POPD"
|
||||
.AZ "FUNC"
|
||||
.AZ "RETURN"
|
||||
.AZ "SWITCH"
|
||||
.AZ "CASE"
|
||||
.AZ "DEFAULT"
|
||||
.AZ "BREAK"
|
||||
.AZ "CONTINUE"
|
||||
.AZ "END"
|
||||
.AZ "FOR"
|
||||
.AZ "WHILE"
|
||||
.AZ "IF"
|
||||
|
Loading…
x
Reference in New Issue
Block a user