From 149a3bd080de97224f563b30228f222a4bbd45b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 23 Jan 2020 15:48:22 +0100 Subject: [PATCH] Kernel 0.93++ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/CSH.R.txt | 4 +- BIN/CSH.S.CORE.txt | 88 ++++++++++++++++++++++++++++----------- BIN/CSH.S.txt | 2 +- BIN/EDIT.S.BUF.txt | 56 +++++++++---------------- BIN/EDIT.S.CTRL.txt | 20 +++++---- BIN/EDIT.S.FILE.txt | 4 +- BIN/EDIT.S.SCRN.txt | 25 +++++------ BIN/EDIT.S.txt | 31 +++++++------- 9 files changed, 127 insertions(+), 103 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 91e2c539eb091b4b432dc9667406ad3d9d2996df..284667719e20931c1a572e06f7454de2dcf1558d 100644 GIT binary patch delta 36229 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 diff --git a/BIN/CSH.R.txt b/BIN/CSH.R.txt index ede4d5b5..bdf31874 100644 --- a/BIN/CSH.R.txt +++ b/BIN/CSH.R.txt @@ -21,7 +21,7 @@ J.CSH.BOPS .DA CSH.BOPS.ADD .DA CSH.BOPS.EOR .DA CSH.BOPS.LAND .DA CSH.BOPS.LOR -J.CSH.BOPS.ADDt .DA CSH.TMISSMATCH +J.CSH.BOPS.ADDt .DA CSH.TMISMATCH .DA CSH.BOPS.ADDi8 .DA CSH.BOPS.ADDi16 .DA CSH.BOPS.ADDi32 @@ -29,7 +29,7 @@ J.CSH.BOPS.ADDt .DA CSH.TMISSMATCH .DA CSH.BOPS.ADDu16 .DA CSH.BOPS.ADDu32 .DA CSH.BOPS.ADDf -J.CSH.BOPS.SUBt .DA CSH.TMISSMATCH +J.CSH.BOPS.SUBt .DA CSH.TMISMATCH .DA CSH.BOPS.SUBi8 .DA CSH.BOPS.SUBi16 .DA CSH.BOPS.SUBi32 diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index 809dbc41..a5f1b2c8 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -4,10 +4,13 @@ NEW *-------------------------------------- CSH.Init >SYSCALL SListNew bcs .9 + >STA.G CSH.hSymbols + >LDYAI 256 >SYSCALL GetMem bcs .9 + >STYA ZPCSHConst txa >STA.G CSH.hConst @@ -15,9 +18,11 @@ CSH.Init >SYSCALL SListNew >LDYAI 256 >SYSCALL GetMem bcs .9 + >STYA ZPCSHStack txa >STA.G CSH.hStack + lda #$0 >STA.G CSH.ConstPtr >STA.G CSH.StackPtr @@ -27,15 +32,18 @@ CSH.Init >SYSCALL SListNew .9 rts *-------------------------------------- CSH.Quit >LDA.G CSH.hSymbols + beq .1 + >SYSCALL SListFree - >LDA.G hFileBuf +.1 >LDA.G hFileBuf jsr .7 >LDA.G CSH.hStack jsr .7 + >LDA.G CSH.hConst - jsr .7 + .7 beq CSH.Quit.RTS >SYSCALL FreeMem CSH.Quit.RTS rts @@ -99,10 +107,16 @@ CSH.Run.1 cmp #'#' cmp #';' bne .99 bra .8 + .7 lda #0 no return value type check required jsr CSH.fCall bcs .9 + jsr CSH.SIZEOF X = returned value type + clc A = Sizeof + adc pStack + sta pStack Discard value on stack + .8 jsr CSH.GetNextCharNB Skip ; bcs .9 cmp #C.CR @@ -283,10 +297,14 @@ CSH.TYPE stx ZPVarType bne .2 ldx ZPVarType + jsr CSH.SIZEOF + .1 dec pStack dec bne .1 + + ldx ZPVarType bra .7 .2 cmp #'=' @@ -347,11 +365,14 @@ CSH.fCall ldx ZPPtr1 lda ZPPtr2 bne .11 + lda (ZPPtr1) sta ZPPtr2 bra .1 expected type is 0, no check + .11 cmp (ZPPtr1) Get Return value Type bne .91 + .1 inc ZPPtr1 advance to arg list type bne .2 inc ZPPtr1+1 @@ -452,7 +473,7 @@ CSH.ExpEval ldx ZPPtr1 ldx ZPPtr2+1 local : BOP1 phx - sta ZPPtr2 + sta ZPPtr2 local : expected type .10 lda #$ff sta ZPPtr2+1 Reset BOP1 @@ -464,7 +485,7 @@ CSH.ExpEval ldx ZPPtr1 jsr CSH.GetVar bcs .1 - ldx ZPPtr2 var type (could be 0=any) + ldx ZPPtr2 expected var type (could be 0=any) jsr CSH.GetVarValueOnStack Y,A = VarID, Get value on stack bcs .29 @@ -694,6 +715,7 @@ CSH.GetNumOnStack sta (pStack),y clc rts + .4 >PULLA inc pStack inc pStack @@ -799,24 +821,34 @@ CSH.GetVarValueOnStack bcs .9 ldx ZPVarType - beq .1 + beq .1 any type + cpx ZPVarData - bne .99 + beq .2 + + txa + and #CSH.Q.PPPOINTER + beq .99 not pointer....mismatch + + eor ZPVarData + and #CSH.Q.PPPOINTER + bne .99 compare only pointer depth + .1 ldx ZPVarData beq * - jsr CSH.SIZEOF +.2 jsr CSH.SIZEOF tay -.2 lda ZPVarData,y +.3 lda ZPVarData,y >PUSHA dey - bne .2 + bne .3 + clc X = Var Type .9 rts .99 -*-------------------------------------- -CSH.TMISSMATCH lda #CSH.E.TMISMATCH +CSH.TMISMATCH lda #CSH.E.TMISMATCH sec rts *-------------------------------------- @@ -961,23 +993,24 @@ CSH.BOPS.LOR CSH.CheckStack tax >LDA.G CSH.StackPtr beq .9 - dec + tay txa cmp (ZPCSHStack),y bne .9 + clc rts + .9 lda #CSH.E.SYNTAX sec rts *-------------------------------------- CSH.Push pha >LDA.G CSH.StackPtr - inc + dec beq .9 sta (pData),y - dec tay pla sta (ZPCSHStack),y @@ -991,14 +1024,15 @@ CSH.Push pha *-------------------------------------- CSH.Pop >LDA.G CSH.StackPtr beq .9 - dec + pha + inc sta (pData),y - tay + ply lda (ZPCSHStack),y clc rts -.9 lda #CSH.E.SYNTAX +.9 lda #CSH.E.STACKERR sec rts *-------------------------------------- @@ -1138,6 +1172,7 @@ CSH.IsDigit10 cmp #'0' CSH.SIZEOF txa and #CSH.Q.PPPOINTER bne .2 + txa and #$f phx @@ -1145,6 +1180,7 @@ CSH.SIZEOF txa lda CSH.TYPESIZE,x plx rts + .2 lda #2 rts *-------------------------------------- @@ -1184,16 +1220,18 @@ EXEC.getchar >SYSCALL getchar *-------------------------------------- EXEC.puts >PULLYA >SYSCALL puts - rts -*-------------------------------------- -EXEC.printf >SYSCALL printf2 - rts -*-------------------------------------- -EXEC.putenv >SYSCALL getenv >PUSHYA rts *-------------------------------------- -EXEC.setenv >SYSCALL getenv +EXEC.printf >SYSCALL printf2 + >PUSHYA + rts +*-------------------------------------- +EXEC.putenv >SYSCALL putenv + >PUSHYA + rts +*-------------------------------------- +EXEC.setenv >SYSCALL setenv >PUSHYA rts *-------------------------------------- @@ -1201,7 +1239,7 @@ EXEC.getenv >SYSCALL getenv >PUSHYA rts *-------------------------------------- -EXEC.unsetenv >SYSCALL getenv +EXEC.unsetenv >SYSCALL unsetenv >PUSHYA rts *-------------------------------------- diff --git a/BIN/CSH.S.txt b/BIN/CSH.S.txt index d8ebd93e..46febfa8 100644 --- a/BIN/CSH.S.txt +++ b/BIN/CSH.S.txt @@ -270,7 +270,7 @@ MSG.USAGE .AS "Usage : CSH