From 3bee887a66c048e1befc46fb1da21c1c8fdb9b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 2 Sep 2019 08:09:28 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/ASM.S.DIR.txt | 3 +- BIN/ASM.S.EXP.txt | 3 +- BIN/ASM.S.FIO.txt | 3 +- BIN/ASM.S.MAC.txt | 3 +- BIN/ASM.S.OUT.txt | 3 +- BIN/ASM.S.SRC.txt | 3 +- BIN/ASM.S.SYM.txt | 3 +- BIN/ASM.S.txt | 1 + BIN/CSH.I.txt | 2 +- BIN/CSH.S.CORE.txt | 89 +++++++++++++-------- SYS/KERNEL.S.STDIO.txt | 169 +++++++++++++++++++++++++++++++++++---- SYS/KERNEL.S.txt | 6 +- 13 files changed, 224 insertions(+), 64 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 958be35111dd255b63b8ddcfe1f90e3e43834cc7..90f19245e3b6368b79a88ee3efda64a2b454814e 100644 GIT binary patch delta 37271 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 DbwP7l delta 34992 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 Y;W=L5C0^k*-ry|~@Gc-;?*pPf07}<)rT_o{ diff --git a/BIN/ASM.S.DIR.txt b/BIN/ASM.S.DIR.txt index bdd76c27..1707897d 100644 --- a/BIN/ASM.S.DIR.txt +++ b/BIN/ASM.S.DIR.txt @@ -1,6 +1,5 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 *--------------------------------------- DIR.Reset lda #$80 ldy #ASM.LI.ON diff --git a/BIN/ASM.S.EXP.txt b/BIN/ASM.S.EXP.txt index 3d06d512..13b7cc70 100644 --- a/BIN/ASM.S.EXP.txt +++ b/BIN/ASM.S.EXP.txt @@ -1,6 +1,5 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 *--------------------------------------- * EXP.Modifiers: * # : 8b,Byte 1 diff --git a/BIN/ASM.S.FIO.txt b/BIN/ASM.S.FIO.txt index e70c6db2..5abc01e1 100644 --- a/BIN/ASM.S.FIO.txt +++ b/BIN/ASM.S.FIO.txt @@ -1,6 +1,5 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 *--------------------------------------- FIO.Init >LDYA L.ASM.6502 FIO.LOAD.ASM.T >STYA ZPPtr2 diff --git a/BIN/ASM.S.MAC.txt b/BIN/ASM.S.MAC.txt index ec4d47db..d785dcbe 100644 --- a/BIN/ASM.S.MAC.txt +++ b/BIN/ASM.S.MAC.txt @@ -1,6 +1,5 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 *--------------------------------------- MAC.Init >SYSCALL SListNew bcs .9 diff --git a/BIN/ASM.S.OUT.txt b/BIN/ASM.S.OUT.txt index b466ce6e..1bfee1e7 100644 --- a/BIN/ASM.S.OUT.txt +++ b/BIN/ASM.S.OUT.txt @@ -1,6 +1,5 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 *--------------------------------------- OUT.Init lda #PAGE.LEN >STA.G OUT.LineCnt diff --git a/BIN/ASM.S.SRC.txt b/BIN/ASM.S.SRC.txt index d32e20f4..ecec3424 100644 --- a/BIN/ASM.S.SRC.txt +++ b/BIN/ASM.S.SRC.txt @@ -1,6 +1,5 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 *--------------------------------------- SRC.ParseLine jsr OUT.Reset diff --git a/BIN/ASM.S.SYM.txt b/BIN/ASM.S.SYM.txt index cd44b715..6f05a035 100644 --- a/BIN/ASM.S.SYM.txt +++ b/BIN/ASM.S.SYM.txt @@ -1,6 +1,5 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 *--------------------------------------- * Global Symbol Record: (6+ bytes) * 0 : Len diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 9f3426dd..7a748d58 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -1,5 +1,6 @@ NEW AUTO 3,1 +*--------------------------------------- .LIST OFF .OP 65C02 .OR $2000 diff --git a/BIN/CSH.I.txt b/BIN/CSH.I.txt index 9f9131b8..5af5a6ba 100644 --- a/BIN/CSH.I.txt +++ b/BIN/CSH.I.txt @@ -91,7 +91,7 @@ CSH.STYPES >PSTR "char" >PSTR "int" >PSTR "long" * .HS 00 -CSH.SIZEOF .HS 0001020401020405 00,CHAR,INT,LONG,UCHAR,UINT,ULONG,FLOAT.... +CSH.TYPESIZE .HS 0001020401020405 VOID,CHAR,INT,LONG,UCHAR,UINT,ULONG,FLOAT.... *-------------------------------------- * int printf ( const char * format, ... ); CSH.FN >PSTR "printf" diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index 6dd998cd..bfe76e1f 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -121,7 +121,7 @@ CSH.Run.1 cmp #'#' bra .8 .7 lda #0 no return value type check required - jsr CSH.fCall X = function index + jsr CSH.fCall bcs .9 .8 jsr CSH.GetNextCharNB Skip ; @@ -357,7 +357,7 @@ CSH.TYPE stx ZPVarType * ZPFileBufPtr, A = Expected type * Output: * CS, A = EC -* CC, A, Y,A or x bytes on Stack +* CC, Result on Stack, X = Type *-------------------------------------- CSH.fCall ldx ZPPtr1 phx @@ -379,50 +379,55 @@ CSH.fCall ldx ZPPtr1 >STYA ZPPtr1 f() definition, starting at returned type jsr CSH.GetCharNB - bcs .90 + bcs .10 cmp #'(' bne .90 - + jsr CSH.GetNextCharNB skip '(' .10 bcs .90 - lda ZPPtr2 Expected type in 0, ignore - beq .1 + lda ZPPtr2 + bne .11 - cmp (ZPPtr1) Get Return value Type + 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 -.2 lda (ZPPtr1) get type of next arg +.2 lda (ZPPtr1) get type of first arg beq .7 end of list, go check ending ')' - +*-------------------------------------- .3 eor #CSH.T.VARIADIC if VARIADIC, don't advance to next arg and assume type = 0 beq .4 - lda (ZPPtr1) get type again... - - inc ZPPtr1 - bne .4 - inc ZPPtr1+1 + eor #CSH.T.VARIADIC restore type... .4 jsr CSH.ExpEval A=0 if VARIADIC bcs .9 X = Var Type - lda (ZPPtr1) no more arg in fn definition - beq .7 + lda (ZPPtr1) get current arg type eor #CSH.T.VARIADIC bne .5 + jsr CSH.SIZEOF X = Var Type * clc - lda CSH.SIZEOF,x + adc ZPPtr2+1 sta ZPPtr2+1 Add to byte count + bra .51 -.5 jsr CSH.GetCharNB +.5 inc ZPPtr1 + bne .51 + inc ZPPtr1+1 + +.51 jsr CSH.GetCharNB bcs .90 cmp #',' @@ -439,6 +444,8 @@ CSH.fCall ldx ZPPtr1 bne .90 lda (ZPPtr1) + beq .8 no more arg after ')', exit + eor #CSH.T.VARIADIC bne .90 missing arg @@ -514,15 +521,18 @@ CSH.ExpEval ldx ZPPtr1 jsr CSH.GetVar bcs .1 - - ldx ZPPtr2 var type + + ldx ZPPtr2 var type (could be 0=any) jsr CSH.GetVarValue Get value on stack bcs .99 + + stx ZPPtr2 store real var type bra .11 .1 lda ZPPtr2 var type jsr CSH.fCall X = function index bcs .99 + stx ZPPtr2 store real var type bra .11 .2 jsr CSH.IsDigit10 number ? @@ -789,13 +799,13 @@ CSH.AddVar sta ZPVarType lda ZPVarType and #$1f tax - ldy CSH.SIZEOF,x + ldy CSH.TYPESIZE,x .2 iny +1 for Type lda #0 >PUSHYA DataLen - >PUSHW ZPVarData + >PUSHWI ZPVarData >PUSHW ZPVarID >LDA.G CSH.hSymbols >SYSCALL SListAddData @@ -845,14 +855,14 @@ CSH.PushValueOnStack bne .99 .1 ldx ZPVarData - ldy CSH.SIZEOF,x + ldy CSH.TYPESIZE,x .2 lda ZPVarData,y >PUSHA dey bne .2 - clc + clc X = Var Type rts .99 lda #CSH.E.TMISMATCH @@ -861,11 +871,10 @@ CSH.PushValueOnStack *-------------------------------------- CSH.SetVarValue cmp ZPVarType bne .9 - + sta ZPVarData - tax - ldy CSH.SIZEOF,x Byte count to transfer + ldy CSH.TYPESIZE,x Byte count to transfer ldx #1 @@ -877,7 +886,7 @@ CSH.SetVarValue cmp ZPVarType >PUSHBI 0 ldx ZPVarType - lda CSH.SIZEOF,x + lda CSH.TYPESIZE,x inc +1 including TYPE >PUSHA >PUSHWI ZPVarData @@ -896,7 +905,7 @@ CSH.SetVarValue cmp ZPVarType CSH.IsValue0 cpx #CSH.T.FLOAT bcc .1 char,int,long - ldy CSH.SIZEOF,x + ldy CSH.TYPESIZE,x lda ZPVarData,y bne .9 @@ -905,7 +914,7 @@ CSH.IsValue0 cpx #CSH.T.FLOAT rts .1 tax - lda CSH.SIZEOF,x + lda CSH.TYPESIZE,x tax lda #0 @@ -1138,14 +1147,30 @@ CSH.IsDigit10 cmp #'0' .9 sec rts *-------------------------------------- +CSH.SIZEOF txa + and #CSH.Q.PPPOINTER + bne .2 + + txa + and #$f + tay + lda CSH.TYPESIZE,y + rts + +.2 lda #2 + rts +*-------------------------------------- * EXEC *-------------------------------------- -EXEC.printf >SYSCALL printf2 +CSH.EXEC jmp (J.CSH.EXEC,x) +*-------------------------------------- +EXEC.printf >DEBUG + >SYSCALL printf2 rts *-------------------------------------- EXEC.puts >PULLYA >SYSCALL puts - rts + rts *-------------------------------------- EXEC.cos >FPU COS rts diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 6f5cb094..2edbfca0 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -239,10 +239,10 @@ PrintF.hFILE .BS 1 .ED *-------------------------------------- * `int printf2 ( const char * format, ... );` -* `>PUSHBI 2` #bytecount * `>PUSHWI format` -* `>PUSHW IntValue` * `...` +* `>PUSHW IntValue` +* `>PUSHBI 2` #bytecount * `>SYSCALL printf2` *-------------------------------------- K.PrintF2 lda (pStack) Bytecount @@ -261,7 +261,8 @@ K.PrintF2 lda (pStack) Bytecount >LDYAI K.IOBuf >STYA pIOBuf - + bra K.PrintF2.1 + K.FPrintf2 lda (pStack) Bytecount inc tay @@ -278,7 +279,8 @@ K.FPrintf2 lda (pStack) Bytecount >LDYAI K.IOBuf >STYA pIOBuf - + bra K.PrintF2.1 + K.SPrintf2 lda (pStack) Bytecount inc tay @@ -298,19 +300,144 @@ K.SPrintf2 lda (pStack) Bytecount lda (pStack),y str HI sta pIOBuf+1 -*-------------------------------------- -K.PrintF.GetFormat - lda (pStack) - sta ZPPtr2 - ldy #1 - lda (pStack),y - sta ZPPtr2+1 - +K.PrintF2.1 stz PrintF.Cnt + stz PrintF.Cnt+1 + lda pStack - inc - inc sta pLocal + + stz PrintF.LocalGetByte+1 + +.1 jsr SHARED.GetCharPtr2 + bne .22 + + jmp .8 end of format.. + +.22 cmp #'%' + bne .10 + + stz K.PrintF.PadL + stz K.PrintF.PadC + lda (ZPPtr2) + beq .7 end of format... print % and exit + + jsr ZP.IsDigit + bcs .6 no digit....go check specifier + + cmp #'0' ...a 0...mmm... padding char? + bne .4 + + sta K.PrintF.PadC + + jsr SHARED.NextCharPtr2 skip 0 ... + + lda (ZPPtr2) + beq .7 + + jsr ZP.IsDigit + bcs .6 %0x ?????? + +.4 jsr MATH.Dec2ACC32 + bcs .99 + + lda ACC32 + sta K.PrintF.PadL + lda K.PrintF.PadC + bne .5 + + lda #C.SPACE + sta K.PrintF.PadC + +.5 jsr SHARED.AddYToPtr2 skip all processed chars + + lda (ZPPtr2) + beq .7 + +.6 ldx #PrintFTBL1.Cnt-1 do we have a %x command? + +.61 cmp PrintFTBL1,x + beq .62 + dex + bpl .61 + + bra .20 unknown ... + +.62 jsr SHARED.NextCharPtr2 + + txa yes, jmp to it! + asl + tax + + jsr PrintF.ESC +.11 bcc .1 + bra .99 + +.7 lda #'%' + bra .20 +*-------------------------------------- +.10 cmp #'\' + bne .20 + + jsr SHARED.GetCharPtr2 + beq .99 + + ldx #PrintFTBL2.Cnt-1 + +.12 cmp PrintFTBL2,x + beq .19 + dex + bpl .12 + + cmp #'x' \xHH + bne .1 + + jsr MATH.Hex2ACC32 + bcs .99 + + jsr SHARED.AddYToPtr2 + +.14 lda ACC32 + bra .20 + +.19 lda PrintFTBL2.OUT,x + +.20 jsr PrintF.COut + bcc .11 +*-------------------------------------- +.99 bra PrintF2.LocalCleanUp +*-------------------------------------- +.8 ldx PrintF.hFILE + beq .80 Writing to buffer, append \0 + + >PUSHW PrintF.Cnt Writing to File/dev... + >PUSHWI K.IOBuf + + txa + jsr K.FWrite + bcc .81 + + tay + bne .99 + + >RET 4 0=BLOCKING + +.80 ldy PrintF.Cnt A=0, Writing to buffer, append \0 + sta (pIOBuf),y + +.81 >LDYA PrintF.Cnt +* clc +*-------------------------------------- +PrintF2.LocalCleanUp + php + pha + lda pLocal + sec ByteCnt byte + adc (pLocal) ... ByteCnt + sta pStack CC + pla + plp +PrintF2.LocalCleanUp.RTS rts *-------------------------------------- K.SPrintF stz PrintF.hFILE @@ -722,6 +849,20 @@ PrintF.COut phy .9 lda #E.BUF sec PrintF.COut.RTS rts +*-------------------------------------- +K.PrintF.GetFormat + lda (pStack) + sta ZPPtr2 + ldy #1 + lda (pStack),y + sta ZPPtr2+1 + + lda pStack + inc + inc + sta pLocal + + rts */-------------------------------------- * # fgets (BLOCKING) * read bytes from stream into the array diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 5e8c85ba..3923bb09 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -49,9 +49,6 @@ A2osX.D1 .PH $D000 .INB USR/SRC/SYS/KERNEL.S.UNISTD .INB USR/SRC/SYS/KERNEL.S.STDIO .INB USR/SRC/SYS/KERNEL.S.STDLIB - .INB USR/SRC/SYS/KERNEL.S.DEV - .INB USR/SRC/SYS/KERNEL.S.FIO - .INB USR/SRC/SYS/KERNEL.S.PFT .EP A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 @@ -72,6 +69,9 @@ A2osX.E0 .PH $E000 ********* TMP ***** go to A2osX.D1 .INB USR/SRC/SYS/KERNEL.S.IO .INB USR/SRC/SYS/KERNEL.S.PIPE + .INB USR/SRC/SYS/KERNEL.S.DEV + .INB USR/SRC/SYS/KERNEL.S.FIO + .INB USR/SRC/SYS/KERNEL.S.PFT ********* TMP ***** go to A2osX.D2 *-------------------------------------- PWD.bDirty .BS 1