From f9eb786fd649584e3e19ceae5e9cd2712bebc36d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 30 Nov 2019 14:37:55 +0100 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CMD.txt | 100 ++++++++++++++++----------------------- BIN/SH.S.CORE.txt | 62 ++++++++++++++++++++++-- BIN/SH.S.IO.txt | 15 ++++-- BIN/SH.S.txt | 92 ++++++++++++++++++++--------------- 5 files changed, 164 insertions(+), 105 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 845a50b5f41542e6a94c7aefdc2026f79f28fb2b..dff1fc32c8cdf5b786575decb0cdf0588b6d372d 100644 GIT binary patch delta 43050 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 Bisb+R delta 50429 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 UO!8b>q*Y$XOKCG4K)WIG{~lH#w*UYD diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 25b80e5f..9eb804ce 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -207,27 +207,38 @@ CMD.SET.1 bcs .6 cmp #'C' bne .2 + ldy #bSET.C bra .5 + .2 cmp #'X' bne .3 + ldy #bSET.X bra .5 + .3 cmp #'E' bne .4 + ldy #bSET.E bra .5 + .4 cmp #'F' bne .99 + jsr CORE.FUNCRESET bra .50 + .5 lda (pData),y eor #$ff sta (pData),y + .50 jsr CORE.ArgV.Next bne .1 + clc rts + .6 >LDYA ZPArgVBufPtr >STYA ZPVarNamePtr @@ -235,9 +246,11 @@ CMD.SET.1 beq CMD.SET.GET cmp #'=' bne .99 + ldy #1 lda (ZPArgVBufPtr),y bne .99 + jsr CORE.ArgV.Next beq CMD.SET.UNSET @@ -663,87 +676,55 @@ CMD.EXIT lda (ZPArgVBufPtr) jsr EXP.GetInt8Exp bcs .9 -.1 sta M32.ACC +.1 ldy #S.PS.RC + sta (pPs),y .2 jsr CORE.StkPull Pull everything until CALL . CL... bcs .9 - cmp #$C0+C.. in CALL . CL context ? + cmp #$C0+C.. in CALL, "." or CL context ? beq CMD.EXIT.FILE + cmp #$C0+C.CALL beq CMD.EXIT.FILE + cmp #$C0+C.CLEXEC - beq CMD.EXIT.SH - jsr CMD.EXIT.POP + beq .8 + + jsr CORE.StkPopCtxA bcc .2 + rts -.9 rts -*-------------------------------------- -CMD.EXIT.SH jsr CMD.EXIT.FILE - +.8 jsr CMD.EXIT.FILE lda #$ff >STA.G bExitOnEOF clc - rts +.9 rts *-------------------------------------- CMD.EXIT.FILE jsr CORE.StkPull >SYSCALL freemem Code buffer + ldy #S.PS.hARGV lda (pPS),y >SYSCALL freemem ArgV buffer + jsr CORE.StkPull ldy #S.PS.hARGV sta (pPS),y + jsr CORE.StkPull ldy #S.PS.ARGC sta (pPS),y jsr CORE.StkPullInputBufPtr + jsr CORE.StkPull sta ZPInputBuf+1 jsr CORE.StkPull sta ZPInputBuf - lda M32.ACC -CMD.EXIT.CLCRTS clc -CMD.EXIT.RTS rts -*-------------------------------------- -CMD.EXIT.POP and #$3F - cmp #C.IF - beq CMD.EXIT.CLCRTS IF : Nothing - - ldx #2 - cmp #C.WHILE WHILE : One Ptr = 2 bytes - beq CMD.EXIT.POPX - - cmp #C.SWITCH SWITCH : hValue - beq .2 - - ldx #1 - cmp #C.CASE CASE : C.CASE + hValue - beq .1 - - cmp #C.DEFAULT DEFAULT : C.DEFAULT + hValue - bne .9 - -.1 jsr CMD.EXIT.POPX - -.2 jsr CORE.StkPull - >SYSCALL freemem - rts -.9 lda #E.STACKERROR - sec - rts -*-------------------------------------- -CMD.EXIT.POPX lda (pData) -.1 dec - dex - bne .1 - - sta (pData) - clc - rts + rts *-------------------------------------- CMD.BREAK jsr CORE.StkGetCtx Get context in CORE.TestResult bcs .9 @@ -848,18 +829,15 @@ CMD.END jsr CORE.StkGetCtx Get context in CORE.TestResult and #$3F cmp #C.SWITCH - beq .3 + beq .8 cmp #C.CASE - beq .2 + beq .8 cmp #C.DEFAULT bne CMD.E.CSYN -.2 jsr CORE.StkPull remove C.CASE or C.DEFAULT -.3 jsr CORE.StkPull remove C.SWITCH - jsr CORE.StkPull get hVALUE - >SYSCALL freemem - rts + +.8 jmp CORE.StkPopCtx *-------------------------------------- CMD.FOR jsr CORE.StkGetCtx @@ -968,6 +946,7 @@ CMD.NEXT jsr CORE.StkGet Y = StkPtr tax beq CMD.NEXT.LIST jmp CMD.NEXT.FILEEXEC + .9 lda #E.NOFOR sec rts @@ -1168,11 +1147,14 @@ CMD.IF jsr CORE.StkGetCtx .3 lda CORE.IntCmd cmp #C.WHILE bne .8 + lda #3 jsr CORE.StkCheck bcs CMD.NEXT.LINE.RTS + >LDYA ZPInputCmdPtr jsr CORE.StkPushYA Push BEFORE WHILE/IF + .8 lda CORE.TestResult ora CORE.IntCmd jmp CORE.StkPush @@ -1185,10 +1167,9 @@ CMD.LOOP jsr CORE.StkPull cmp #C.WHILE bne .9 txa - bmi .8 + bmi .8 true, loop - ldx #2 Discard loop Ptr - jmp CMD.EXIT.POPX + jmp CORE.StkPopCtxA false, Discard loop Ptr .8 jmp CORE.StkPullInputBufPtr @@ -1217,11 +1198,14 @@ CMD.ELSE jsr CORE.StkGet *-------------------------------------- CMD.FI jsr CORE.StkPull bcs .9 + and #$3F cmp #C.IF bne .9 + clc rts + .9 lda #E.NOIF sec rts diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 43f8d5f1..380201ef 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -99,6 +99,7 @@ CORE.Run.EOF jsr CORE.StkPull lda #0 sec rts Ending 0, CS,A=0 + .9 lda #E.UNEXPEOF sec rts @@ -151,15 +152,21 @@ CORE.Run.1 sec coming from PIPE OUT .4 >LDYA L.CMD internal command ? jsr CORE.LookupInputBuf bcc .41 + .40 jsr CORE.ArgV.Add external cmd, go check context bra .42 -.41 jsr CORE.SkipCharsA - stx CORE.IntCmd + +.41 stx CORE.IntCmd + asl CORE.IntCmd + jsr CORE.SkipCharsA + .42 jsr CORE.StkGet bcs CORE.Run.7 no particular context, exec... + tax lda CORE.IntCmd bmi .45 + and #$3F cmp #C.SWITCH SWITCH....FI ? bcs CORE.Run.7 @@ -178,6 +185,7 @@ CORE.Run.1 sec coming from PIPE OUT jsr CORE.GetNextChar bra .43 + .44 jsr CORE.GetNextCharNB Skip EoL char clc .99 rts @@ -263,7 +271,7 @@ CORE.ExecCmd lda #0 lda CORE.IntCmd bmi CORE.ExecExtCmd - asl + tax jmp (J.CMD,x) @@ -319,9 +327,12 @@ CORE.LookupArgVBuf CORE.Lookup >STYA ZPPtr2 ldx #0 + .1 ldy #$ff + .2 jsr .7 get next valid char in src text bcs .3 + .20 jsr ToUpperCase eor (ZPPtr1),y match table char ? asl compare only 7 bits @@ -340,12 +351,14 @@ CORE.Lookup >STYA ZPPtr2 .3 dey lda (ZPPtr1),y was last char in this keyword ? bmi .8 + iny .41 jsr IncPtr1 skip chars to next keyword .4 lda (ZPPtr1) bpl .41 jsr IncPtr1 + .6 inx lda (ZPPtr1) Array Ending 0, lookup failed bne .1 @@ -594,12 +607,53 @@ CORE.SkipCharsA clc *-------------------------------------- * Stack *-------------------------------------- +CORE.StkPopCtx jsr CORE.StkPull + +CORE.StkPopCtxA and #$3F + cmp #C.IF + beq .8 IF : Nothing + + ldx #2 + cmp #C.WHILE WHILE : One Ptr = 2 bytes + beq CORE.StkPopX + + cmp #C.SWITCH SWITCH : hValue + beq .2 + + ldx #1 + cmp #C.CASE CASE : C.CASE + hValue + beq .1 + + cmp #C.DEFAULT DEFAULT : C.DEFAULT + hValue + bne .9 + +.1 jsr CORE.StkPopX + +.2 jsr CORE.StkPull + >SYSCALL freemem +.8 clc + rts + +.9 lda #E.STACKERROR + sec + rts +*-------------------------------------- +CORE.StkPopX lda (pData) +.1 dec + dex + bne .1 + + sta (pData) + + clc + rts +*-------------------------------------- CORE.StkCheck sec adc (pData) StackPtr cmp #CORE.STACK.MAX bcc .8 lda #E.STKOVERFLOW -* clc +* sec .8 rts *-------------------------------------- CORE.StkPushYAX phx diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt index 7f7cc093..f6068fca 100644 --- a/BIN/SH.S.IO.txt +++ b/BIN/SH.S.IO.txt @@ -162,8 +162,10 @@ IO.PrintBatchErrMsg lda (pPs),y cmp #E.SYN beq .10 + >LDYA ZPInputCmdPtr bra .11 + .10 >LDYA ZPInputBufPtr .11 >STYA ZPPtr2 @@ -235,13 +237,14 @@ IO.PrintBatchErrMsg >PUSHW L.MSG.BATCHERR .80 bra IO.PrintErr *-------------------------------------- -IO.PrintErrMsg pha Save EC for PrintF - - ldx L.ERR.Codes +IO.PrintErrMsg ldx L.ERR.Codes stx ZPPTR1 ldx L.ERR.Codes+1 stx ZPPTR1+1 + ldy #S.PS.RC + lda (pPs),y + ldy #0 .1 cmp (ZPPTR1),y @@ -260,8 +263,12 @@ IO.PrintErrMsg pha Save EC for PrintF lda (ZPPTR1) jsr AddAp1Ptr1 bra .3 + .8 >PUSHW ZPPTR1 - pla + + ldy #S.PS.RC + lda (pPs),y + >PUSHA >PUSHBI 3 >PUSHW L.MSG.ERROR diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 26620e35..753cb55e 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -10,40 +10,40 @@ CORE.STACK.MAX .EQ 128 PUSHD.STACK.MAX .EQ 4 *-------------------------------------- C... .EQ 0 -C.. .EQ 1 -C.CD .EQ 2 -C.NOHUP .EQ 3 -C.DATE .EQ 4 -C.ECHO .EQ 5 -C.EXIT .EQ 6 -C.MD .EQ 7 -C.PAUSE .EQ 8 -C.PWD .EQ 9 -C.RD .EQ 10 -C.READ .EQ 11 -C.REN .EQ 12 -C.SET .EQ 13 -C.SLEEP .EQ 14 -C.SHIFT .EQ 15 -C.PUSHD .EQ 16 -C.POPD .EQ 17 -C.FUNCTION .EQ 18 -C.CALL .EQ 19 -C.BREAK .EQ 20 -C.SWITCH .EQ 21 -C.CASE .EQ 22 -C.DEFAULT .EQ 23 +C.. .EQ 2 +C.CD .EQ 4 +C.NOHUP .EQ 6 +C.DATE .EQ 8 +C.ECHO .EQ 10 +C.EXIT .EQ 12 +C.MD .EQ 14 +C.PAUSE .EQ 16 +C.PWD .EQ 18 +C.RD .EQ 20 +C.READ .EQ 22 +C.REN .EQ 24 +C.SET .EQ 26 +C.SLEEP .EQ 28 +C.SHIFT .EQ 30 +C.PUSHD .EQ 32 +C.POPD .EQ 34 +C.FUNCTION .EQ 36 +C.CALL .EQ 38 +C.BREAK .EQ 40 +C.SWITCH .EQ 42 +C.CASE .EQ 44 +C.DEFAULT .EQ 46 *-------------------------------------- -C.FOR .EQ 24 +C.FOR .EQ 48 C.FOR.LIST .EQ 0 C.FOR.FILEEXEC .EQ 1 -C.WHILE .EQ 25 -C.IF .EQ 26 -C.NEXT .EQ 27 -C.LOOP .EQ 20 -C.ELSE .EQ 29 -C.FI .EQ 30 -C.END .EQ 31 +C.WHILE .EQ 50 +C.IF .EQ 52 +C.NEXT .EQ 54 +C.LOOP .EQ 56 +C.ELSE .EQ 58 +C.FI .EQ 60 +C.END .EQ 62 *-------------------------------------- C.CLEXEC .EQ 63 *-------------------------------------- @@ -369,6 +369,7 @@ CS.RUN.BATCH >LDA.G bSET.X bcs CS.RUN.LOOP.RTS .5 jsr CORE.Run + CS.RUN.LOOP.END ldy #S.PS.RC sta (pPs),y bcc CS.RUN.LOOP.80 @@ -378,22 +379,35 @@ CS.RUN.LOOP.END ldy #S.PS.RC >LDA.G bSET.E bmi CS.RUN.LOOP.80 - jsr CORE.StkGet +.1 jsr CORE.StkGet cmp #$C0+C.CLEXEC - beq .1 - jsr IO.PrintBatchErrMsg + beq .8 + + cmp #$C0+C.. in . ? + beq .7 + + cmp #$C0+C.CALL in CALL ? + beq .7 + + jsr CORE.StkPopCtx + bcc .1 + +.7 jsr IO.PrintBatchErrMsg bcs CS.RUN.LOOP.RTS -.1 ldy #S.PS.RC - lda (pPs),y - jsr IO.PrintErrMsg + + jsr CORE.StkPull + jsr CMD.EXIT.FILE + +.8 jsr IO.PrintErrMsg bcs CS.RUN.LOOP.RTS CS.RUN.LOOP.80 lda (pData) something on stack ? - bne .8 + bne CS.RUN.LOOP.88 + >LDA.G bExitOnEOF bmi CS.RUN.LOOP.EXIT -.8 jmp CS.RUN.LOOP +CS.RUN.LOOP.88 jmp CS.RUN.LOOP CS.RUN.LOOP.EXIT ldy #S.PS.RC lda (pPs),y