mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-21 06:29:08 +00:00
Kernel 0.92+
This commit is contained in:
parent
eca155089c
commit
144fda61ed
Binary file not shown.
@ -165,10 +165,6 @@ CMD.Exec.CSYN lda #E.CSYN
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.Exec.SSYN lda #E.SSYN
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CMD.SET lda (ZPArgVBufPtr)
|
CMD.SET lda (ZPArgVBufPtr)
|
||||||
bne CMD.SET.1
|
bne CMD.SET.1
|
||||||
|
|
||||||
@ -314,7 +310,8 @@ CMD.TIME clc
|
|||||||
>SYSCALL puts
|
>SYSCALL puts
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.ECHO >STZ.G bECHO.N
|
CMD.ECHO stz ZPPtr1 echo -N
|
||||||
|
stz ZPPtr1+1
|
||||||
|
|
||||||
lda (ZPArgVBufPtr)
|
lda (ZPArgVBufPtr)
|
||||||
beq .8
|
beq .8
|
||||||
@ -326,19 +323,27 @@ CMD.ECHO >STZ.G bECHO.N
|
|||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
>EOR.G bECHO.N
|
eor ZPPtr1
|
||||||
sta (pData),y
|
sta ZPPtr1
|
||||||
bra .7
|
bra .4
|
||||||
|
|
||||||
.2 >PUSHBI 0
|
.2 lda ZPPtr1+1
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
lda #C.SPACE
|
||||||
|
>SYSCALL putchar
|
||||||
|
|
||||||
|
.3 >PUSHBI 0
|
||||||
>LDYA ZPArgVBufPtr
|
>LDYA ZPArgVBufPtr
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.7 jsr CORE.ArgV.Next
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.4 jsr CORE.ArgV.Next
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDA.G bECHO.N
|
bit ZPPtr1
|
||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
@ -500,16 +505,16 @@ CMD.RD lda (ZPArgVBufPtr)
|
|||||||
.9 jmp CMD.Exec.CSYN
|
.9 jmp CMD.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.BREAK
|
CMD.BREAK
|
||||||
.9 jmp CMD.Exec.SSYN
|
.9 jmp CMD.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.CONTINUE
|
CMD.CONTINUE
|
||||||
.9 jmp CMD.Exec.SSYN
|
.9 jmp CMD.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.FOR
|
CMD.FOR
|
||||||
.9 jmp CMD.Exec.SSYN
|
.9 jmp CMD.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.NEXT
|
CMD.NEXT
|
||||||
.9 jmp CMD.Exec.SSYN
|
.9 jmp CMD.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.WHILE
|
CMD.WHILE
|
||||||
CMD.IF jsr CORE.StkGet
|
CMD.IF jsr CORE.StkGet
|
||||||
|
@ -206,7 +206,14 @@ CORE.Lookup >STYA ZPPtr2
|
|||||||
|
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
beq .4 Table Keyword end
|
beq .4 Table Keyword end
|
||||||
cmp (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
|
cmp #'a'
|
||||||
|
bcc .21
|
||||||
|
cmp #'z'+1
|
||||||
|
bcs .21
|
||||||
|
eor #$20
|
||||||
|
|
||||||
|
.21 cmp (ZPPtr1),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
bra .4
|
bra .4
|
||||||
@ -236,13 +243,16 @@ CORE.Lookup >STYA ZPPtr2
|
|||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #E.CSYN
|
lda #E.CSYN
|
||||||
CORE.Lookup.9 sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ArgV
|
* ArgV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.ArgV.Add jsr CORE.GetCharNB
|
CORE.ArgV.Add >LDYA ZPArgVBufPtr
|
||||||
bcs CORE.Lookup.9
|
>STYA ZPArgVBufPrev Save String start of Expand
|
||||||
|
|
||||||
|
jsr CORE.GetCharNB
|
||||||
|
bcs .9
|
||||||
|
|
||||||
ldx #0 reset "" mode
|
ldx #0 reset "" mode
|
||||||
|
|
||||||
@ -257,17 +267,39 @@ CORE.ArgV.Add jsr CORE.GetCharNB
|
|||||||
.2 cmp #C.SPACE
|
.2 cmp #C.SPACE
|
||||||
bne .3
|
bne .3
|
||||||
txa between "" ?
|
txa between "" ?
|
||||||
beq .8
|
beq .5
|
||||||
|
|
||||||
.3 jsr CORE.IsEndCmd
|
.3 jsr CORE.IsEndCmd
|
||||||
bcc .8
|
bcc .5
|
||||||
|
|
||||||
jsr CORE.ArgV.PutChar
|
jsr CORE.ArgV.PutChar
|
||||||
|
|
||||||
.4 jsr CORE.GetNextChar
|
.4 jsr CORE.GetNextChar
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
.8 lda #0
|
.5 lda #0
|
||||||
|
jsr CORE.ArgV.PutChar
|
||||||
|
|
||||||
|
>LDYA ZPArgVBufPrev
|
||||||
|
>SYSCALL ExpandStr
|
||||||
|
bcs .9
|
||||||
|
phx
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
>LDYA ZPArgVBufPrev
|
||||||
|
>STYA ZPArgVBufPtr
|
||||||
|
|
||||||
|
ldy #$ff
|
||||||
|
|
||||||
|
.6 iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
jsr CORE.ArgV.PutChar
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
pla
|
||||||
|
>SYSCALL freemem
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.ArgV.PutChar
|
CORE.ArgV.PutChar
|
||||||
sta (ZPArgVBufPtr)
|
sta (ZPArgVBufPtr)
|
||||||
@ -406,7 +438,6 @@ CORE.StkPushPtr lda ZPInputCmdPtr
|
|||||||
bcs CORE.StkPullPtr.9
|
bcs CORE.StkPullPtr.9
|
||||||
lda ZPInputCmdPtr+1
|
lda ZPInputCmdPtr+1
|
||||||
bra CORE.StkPush
|
bra CORE.StkPush
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.StkPullPtr jsr CORE.StkPull
|
CORE.StkPullPtr jsr CORE.StkPull
|
||||||
bcs CORE.StkPullPtr.9
|
bcs CORE.StkPullPtr.9
|
||||||
@ -418,9 +449,9 @@ CORE.StkPullPtr.9
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.StkGetPtr lda (pData) StackPtr
|
CORE.StkGetPtr lda (pData) StackPtr
|
||||||
beq .9
|
beq CORE.StkErr
|
||||||
dec
|
dec
|
||||||
beq .9
|
beq CORE.StkErr
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
@ -433,7 +464,7 @@ CORE.StkGetPtr lda (pData) StackPtr
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.SSYN
|
CORE.StkErr lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -466,15 +497,11 @@ CORE.StkPull jsr CORE.StkGet
|
|||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.StkGet lda (pData) StackPtr
|
CORE.StkGet lda (pData) StackPtr
|
||||||
beq .9
|
beq CORE.StkErr
|
||||||
tay
|
tay
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.SSYN
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/SH.S.CORE
|
SAVE USR/SRC/BIN/SH.S.CORE
|
||||||
|
@ -3,17 +3,14 @@ PREFIX
|
|||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.GET >LDYA ZPArgVBufPtr
|
EXP.GET jsr CORE.ArgV.Next
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA ZPPtr1 no op, return text value
|
>LDYA ZPArgVBufPrev no op, return text value
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >LDYA ZPPtr1
|
.1 >LDYA ZPArgVBufPrev
|
||||||
>SYSCALL AToL
|
>SYSCALL AToL
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -53,7 +50,7 @@ EXP.GET >LDYA ZPArgVBufPtr
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.BADEXP
|
.9 lda #E.ESYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -91,7 +88,6 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
txa
|
txa
|
||||||
>STA.G CORE.Operator
|
>STA.G CORE.Operator
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
|
||||||
jsr EXP.TEST.UNARY
|
jsr EXP.TEST.UNARY
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -104,10 +100,7 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
||||||
.1 >LDYA ZPArgVBufPtr
|
.1 jsr CORE.ArgV.Next
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
>LDYA L.EXP.OP.BINARY -eq -ne .... ?
|
>LDYA L.EXP.OP.BINARY -eq -ne .... ?
|
||||||
|
26
BIN/SH.S.txt
26
BIN/SH.S.txt
@ -40,8 +40,8 @@ C.ELSE .EQ 50
|
|||||||
C.FI .EQ 52
|
C.FI .EQ 52
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
E.CSYN .EQ $C0
|
E.CSYN .EQ $C0
|
||||||
E.SSYN .EQ $C1
|
E.ESYN .EQ $C1
|
||||||
E.ESYN .EQ $C2
|
E.STACKERROR .EQ $C2
|
||||||
E.STKOVERFLOW .EQ $C3
|
E.STKOVERFLOW .EQ $C3
|
||||||
E.NOWHILE .EQ $C4
|
E.NOWHILE .EQ $C4
|
||||||
E.NOFOR .EQ $C5
|
E.NOFOR .EQ $C5
|
||||||
@ -65,6 +65,7 @@ ZPInputBuf .BS 2
|
|||||||
ZPInputBufPtr .BS 2
|
ZPInputBufPtr .BS 2
|
||||||
ZPInputCmdPtr .BS 2
|
ZPInputCmdPtr .BS 2
|
||||||
ZPArgVBuf .BS 2
|
ZPArgVBuf .BS 2
|
||||||
|
ZPArgVBufPrev .BS 2
|
||||||
ZPArgVBufPtr .BS 2
|
ZPArgVBufPtr .BS 2
|
||||||
ZPVarNamePtr .BS 2
|
ZPVarNamePtr .BS 2
|
||||||
ZS.END .ED
|
ZS.END .ED
|
||||||
@ -579,18 +580,18 @@ CORE.IO .AZ "&"
|
|||||||
EXP.BEGIN .AZ "!["
|
EXP.BEGIN .AZ "!["
|
||||||
.AZ "["
|
.AZ "["
|
||||||
.HS 00
|
.HS 00
|
||||||
EXP.OP.UNARY .AZ "-d"
|
EXP.OP.UNARY .AZ "-D"
|
||||||
.AZ "-e"
|
.AZ "-E"
|
||||||
.AZ "-f"
|
.AZ "-F"
|
||||||
.HS 00
|
.HS 00
|
||||||
EXP.OP.BINARY .AZ "="
|
EXP.OP.BINARY .AZ "="
|
||||||
.AZ "!="
|
.AZ "!="
|
||||||
.AZ "-eq"
|
.AZ "-EQ"
|
||||||
.AZ "-ne"
|
.AZ "-NE"
|
||||||
.AZ "-lt"
|
.AZ "-LT"
|
||||||
.AZ "-le"
|
.AZ "-LE"
|
||||||
.AZ "-gt"
|
.AZ "-GT"
|
||||||
.AZ "-ge"
|
.AZ "-GE"
|
||||||
.HS 00
|
.HS 00
|
||||||
EXP.OP.BINARY.BITS
|
EXP.OP.BINARY.BITS
|
||||||
.DA #%000
|
.DA #%000
|
||||||
@ -629,9 +630,10 @@ bBatchMode .BS 1
|
|||||||
bEscMode .BS 1
|
bEscMode .BS 1
|
||||||
bPause .BS 1
|
bPause .BS 1
|
||||||
bExit .BS 1
|
bExit .BS 1
|
||||||
|
|
||||||
bSET.C .BS 1
|
bSET.C .BS 1
|
||||||
bSET.X .BS 1
|
bSET.X .BS 1
|
||||||
bECHO.N .BS 1
|
|
||||||
bREAD.S .BS 1
|
bREAD.S .BS 1
|
||||||
|
|
||||||
Sleep .BS 4
|
Sleep .BS 4
|
||||||
|
@ -34,13 +34,12 @@ ERR.Codes .DA #MLI.E.IO
|
|||||||
.DA #3 Ctrl-C
|
.DA #3 Ctrl-C
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA #E.CSYN
|
.DA #E.CSYN
|
||||||
.DA #E.SSYN
|
|
||||||
.DA #E.ESYN
|
.DA #E.ESYN
|
||||||
|
.DA #E.STACKERROR
|
||||||
.DA #E.STKOVERFLOW
|
.DA #E.STKOVERFLOW
|
||||||
.DA #E.NOWHILE
|
.DA #E.NOWHILE
|
||||||
.DA #E.NOFOR
|
.DA #E.NOFOR
|
||||||
.DA #E.NOIF
|
.DA #E.NOIF
|
||||||
.DA #E.BADEXP
|
|
||||||
.DA #E.BADFTYPE
|
.DA #E.BADFTYPE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ERR.Count .EQ *-ERR.Codes
|
ERR.Count .EQ *-ERR.Codes
|
||||||
@ -76,13 +75,12 @@ ERR.Messages >PSTR "I/O Error"
|
|||||||
>PSTR "User Interrupt"
|
>PSTR "User Interrupt"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
>PSTR "Command Syntax Error"
|
>PSTR "Command Syntax Error"
|
||||||
>PSTR "Script Syntax Error"
|
|
||||||
>PSTR "Expression Syntax Error"
|
>PSTR "Expression Syntax Error"
|
||||||
|
>PSTR "Stack Error"
|
||||||
>PSTR "Stack Overflow"
|
>PSTR "Stack Overflow"
|
||||||
>PSTR "LOOP Without WHILE"
|
>PSTR "LOOP Without WHILE"
|
||||||
>PSTR "NEXT Without FOR"
|
>PSTR "NEXT Without FOR"
|
||||||
>PSTR "FI/ELSE Without IF"
|
>PSTR "FI/ELSE Without IF"
|
||||||
>PSTR "Bad Expression"
|
|
||||||
>PSTR "Bad File Type"
|
>PSTR "Bad File Type"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
>PSTR "Unknown Error"
|
>PSTR "Unknown Error"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user