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

View File

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

View File

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

View File

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

View File

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