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