Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-02-12 16:47:34 +00:00
parent eca155089c
commit 144fda61ed
6 changed files with 86 additions and 61 deletions

Binary file not shown.

View File

@ -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

View File

@ -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,14 +243,17 @@ 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
.1 cmp #'"' .1 cmp #'"'
@ -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)
@ -405,8 +437,7 @@ CORE.StkPushPtr lda ZPInputCmdPtr
jsr CORE.StkPush jsr CORE.StkPush
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

View File

@ -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
@ -82,7 +79,7 @@ EXP.TEST lda (ZPArgVBufPtr)
jsr CORE.ArgV.Next jsr CORE.ArgV.Next
beq .9 beq .9
>LDYA L.EXP.OP.UNARY -d -e -f ? >LDYA L.EXP.OP.UNARY -d -e -f ?
jsr CORE.LookupArgVBuf jsr CORE.LookupArgVBuf
@ -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 .... ?

View File

@ -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

View File

@ -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"