From 8a81ee27bcad2a2e4c1081b7782546b5a9f4deb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 11 Mar 2020 17:41:45 +0100 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/CSH.S.CORE.txt | 11 ++++++---- SYS/KERNEL.S.CORE.txt | 6 +++++- SYS/KERNEL.S.DEV.txt | 25 +++++++++++++++++++++-- SYS/KERNEL.S.DIRENT.txt | 36 ++++++++++++++++----------------- SYS/KERNEL.S.IO.txt | 7 +++++-- SYS/KERNEL.S.JMP.txt | 8 ++++---- SYS/KERNEL.S.SHARED.txt | 22 -------------------- SYS/KERNEL.S.STDIO.txt | 42 ++++++++++++++++++++------------------- SYS/KERNEL.S.STDLIB.txt | 13 ++++++------ SYS/KERNEL.S.TERMX.txt | 2 +- SYS/KERNEL.S.UNISTD.txt | 16 +++++++++++---- SYS/KERNEL.S.txt | 2 +- 13 files changed, 103 insertions(+), 87 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a791347cfcf1e24029a43cc789e56cd510964891..27ad990db59745f478c9c4240d6dd028207a842d 100644 GIT binary patch delta 55178 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 z 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 diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index 849ed274..454a908a 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -586,9 +586,10 @@ CSH.fCall ldx ZPPtr1 pla sta ZPPtr1 phy - jsr .80 - plx + jsr CSH.fCall.Exec + plx restore returned type rts + .90 lda #CSH.E.SYNTAX .HS 2C BIT ABS .91 lda #CSH.E.TMISMATCH @@ -607,7 +608,9 @@ CSH.fCall ldx ZPPtr1 .99 rts -.80 jmp (J.CSH.EXEC,x) +*-------------------------------------- +CSH.fCall.Exec + jmp (J.CSH.EXEC,x) *-------------------------------------- * Input: * ZPFileBufPtr, A = Expected type @@ -887,8 +890,8 @@ CSH.GetNumOnStack bcc .1 bne .99 + >PUSHW ZPFileBufPtr >PUSHWI ZPFileBufPtr - >LDYA ZPFileBufPtr >SYSCALL StrToF clc rts diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 41a804ce..c4858c39 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -81,12 +81,16 @@ CORE.Events jsr CORE.GetEvents *-------------------------------------- .4 bit OPENAPPLE bpl .8 + lda KBD bpl .8 + cmp #"0" bcc .8 - cmp #"6" + + cmp #"9"+1 bcs .8 + sta KBDSTROBE and #$0F tax diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index a3087cdf..ea6fecd0 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -64,7 +64,28 @@ K.GetDevStatus >PULLW K.S.IOCTL+S.IOCTL.BUFPTR >STYA pFD lda #S.IOCTL.STATCODE.GETDIB - jmp SHARED.GetDevStatus +*-------------------------------------- +SHARED.GetDevStatus + sta K.S.IOCTL+S.IOCTL.STATCODE + + ldy #S.FD.DEV.DEVID + lda (pFD),y + sta K.S.IOCTL+S.IOCTL.UNITNUM + + jsr SHARED.GetPDrv + + >LDYAI K.S.IOCTL + ldx #IOCTL.STATUS +*-------------------------------------- +SHARED.pDrvJmp jmp (pDrv) +*-------------------------------------- +SHARED.GetPDrv ldy #S.FD.DEV.DRVPTR + lda (pFD),y + sta pDRV + iny + lda (pFD),y + sta pDRV+1 + rts */-------------------------------------- * # MKDev * Create a hDEV @@ -163,7 +184,7 @@ K.MKDev >PULLW ZPPtr2 ptr2=name */-------------------------------------- * # IOCTL * ## C -* `int ioctl(short int DevID, int request, void * param );` +* `int ioctl(short int DevID, short int request, void *param);` * ## ASM * `>PUSHB hDEV` * `>PUSHB request` diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 26feb02b..ad5c4fa7 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -31,8 +31,7 @@ K.OpenDir jsr PFT.CheckPath0 jsr IO.MLI.OPEN bcs .98 -.8 lda IO.hFD - jsr STDIO.NewHFile +.8 jsr STDIO.NewHFile bcc K.ReadDir.RTS .98 jmp UNISTD.Open.ERR @@ -56,12 +55,13 @@ K.OpenDir jsr PFT.CheckPath0 *\-------------------------------------- .DUMMY .OR ZPTMP 8 Bytes -K.ReadDir.hMem .BS 1 -K.ReadDir.BufSize .BS 2 +K.ReadDir.hBlk .BS 1 K.ReadDir.ECIB .BS 1 K.ReadDir.EL .BS 1 K.ReadDir.EPB .BS 1 K.ReadDir.EC .BS 2 +K.ReadDir.BufSize .BS 2 +K.ReadDir.hBuf .BS 1 .ED *-------------------------------------- K.ReadDir jsr PFT.CheckNodeA @@ -173,7 +173,7 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF jsr K.GetMem bcs .99 - stx K.ReadDir.hMem + stx K.ReadDir.hBlk >STYA K.MLI.PARAMS+2 For reading pha tya @@ -210,8 +210,8 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF inc K.ReadDir.EC+1 ...and ProDOS does NOT include header entry in EC bra .4 -.98 jsr K.ReadDir.CLN - sec +.98 jmp K.ReadDir.FreeBlk + .99 rts .2 ldy #S.FD.DIR.EL+3 @@ -287,7 +287,7 @@ K.ReadDir.DIR1 lda (ZPPtr2) X = EntryCount In This Block bne K.ReadDir.DIR1 * pass #2 Fill Buffer...(ZPPtr1 & Ptr2 can now be trashed) K.ReadDir.DIR2 jsr K.ReadDir.GetBuf - bcs .9 + bcs K.ReadDir.FreeBlk lda K.ReadDir.EPB sta K.ReadDir.ECIB @@ -338,37 +338,35 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf inc ZPPtr3+1 bra .1 -.9 jsr K.ReadDir.CLN - sec - rts - .8 ldx #3 ldy #S.FD.DIR.EL+3 -.81 lda K.ReadDir.EL,x Store back this session prameters to S.DIR +.81 lda K.ReadDir.EL,x Store back this session parameters to S.DIR sta (pFD),y dey dex bpl .81 - jsr K.ReadDir.CLN Discard READBUFFER + jsr K.ReadDir.FreeBlk -K.ReadDir.EXIT ldx #$ff Self Modified : hDIRENT +K.ReadDir.EXIT ldx K.ReadDir.hBuf txa jmp K.GetMemPtr *-------------------------------------- -K.ReadDir.CLN pha - lda K.ReadDir.hMem +K.ReadDir.FreeBlk + pha + lda K.ReadDir.hBlk jsr K.FreeMem pla - rts + sec + rts *-------------------------------------- K.ReadDir.GetBuf >LDYA K.ReadDir.BufSize Get a BufSize bytes buffer for storing results K.ReadDir.GetBufYA jsr K.GetMem0 make sure 0 filled bcs .9 - stx K.ReadDir.EXIT+1 + stx K.ReadDir.hBuf >STYA ZPPtr4 .9 rts *-------------------------------------- diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 06729021..c39e8641 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -37,11 +37,11 @@ IO.WRITE.REG.RTS IO.OPEN.CDEV IO.OPEN.BDEV jsr SHARED.GetPDrv ldx #IOCTL.OPEN - lda IO.hDev + lda IO.hFD jsr SHARED.pDrvJmp bcs IO.WRITE.REG.RTS - lda IO.hDev + lda IO.hFD *-------------------------------------- IO.CLOSE.CDEV IO.CLOSE.BDEV @@ -125,13 +125,16 @@ IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF * X = 2 > PIPE *-------------------------------------- IO.MkFD stx .8+1 + ldy IO.MkFD.Y,x lda #0 ldx #S.MEM.F.INIT0+S.MEM.F.FD jsr MEM.GetMem.YAX bcs .9 + >STYA pFD stx IO.hFD + .8 ldx #$ff SELF MODIFIED lda IO.MkFD.T,x sta (pFD) X = hFD, A = T diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index bbb4f990..a6bca307 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -315,13 +315,13 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #RRAMWRAMBNK2 .DA #0 - .DA #RRAMWRAMBNK2 $90 : DEV + .DA #RRAMWRAMBNK1 $90 : DEV .DA #0 - .DA #RRAMWRAMBNK2 + .DA #RRAMWRAMBNK1 .DA #0 - .DA #RRAMWRAMBNK2 + .DA #RRAMWRAMBNK1 .DA #0 - .DA #RRAMWRAMBNK2 + .DA #RRAMWRAMBNK1 .DA #0 .DA #RRAMWRAMBNK2 $98 : BIN .DA #0 diff --git a/SYS/KERNEL.S.SHARED.txt b/SYS/KERNEL.S.SHARED.txt index 4708c4e5..ceb39ed7 100644 --- a/SYS/KERNEL.S.SHARED.txt +++ b/SYS/KERNEL.S.SHARED.txt @@ -1,28 +1,6 @@ NEW AUTO 3,1 *-------------------------------------- -SHARED.GetDevStatus - sta K.S.IOCTL+S.IOCTL.STATCODE - - ldy #S.FD.DEV.DEVID - lda (pFD),y - sta K.S.IOCTL+S.IOCTL.UNITNUM - - jsr SHARED.GetPDrv - - >LDYAI K.S.IOCTL - ldx #IOCTL.STATUS -*-------------------------------------- -SHARED.pDrvJmp jmp (pDrv) -*-------------------------------------- -SHARED.GetPDrv ldy #S.FD.DEV.DRVPTR - lda (pFD),y - sta pDRV - iny - lda (pFD),y - sta pDRV+1 - rts -*-------------------------------------- SHARED.IsIDValid cmp #'.' beq SHARED.IsDigit.8 diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 4bc40b84..a8913ad4 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -197,7 +197,7 @@ K.FGetS jsr PFT.CheckNodeA sta ZPPtr1+1 bmi .3 already something in buffer -.1 jsr STDIO.Read.1 +.1 jsr STDIO.Get.1 bcc .2 cmp #MLI.E.EOF beq .9 @@ -206,6 +206,7 @@ K.FGetS jsr PFT.CheckNodeA bpl .9 IO error inc NO DATA -> BLOCKING rts + .2 lda K.IOBuf cmp #C.LF Discard any leading LF beq .1 @@ -222,12 +223,13 @@ K.FGetS jsr PFT.CheckNodeA lda ZPPtr1+1 eor #$ff sta ZPPtr1+1 + .3 inc ZPPtr1 bne .4 inc ZPPtr1+1 beq .8 Buffer full -.4 jsr STDIO.Read.1 +.4 jsr STDIO.Get.1 bcs .5 lda K.IOBuf @@ -293,7 +295,7 @@ K.GetChar ldy #S.PS.hStdIn K.GetC jsr PFT.CheckNodeA bcs K.GetC.RTS - jsr STDIO.Read.1 + jsr STDIO.Get.1 bcc .8 tay bpl K.GetC.RTS I/O error @@ -305,7 +307,7 @@ K.GetC jsr PFT.CheckNodeA K.GetC.RTS rts *-------------------------------------- -STDIO.Read.1 lda #0 +STDIO.Get.1 lda #0 >PUSHA inc read 1 byte >PUSHA @@ -342,7 +344,7 @@ STDIO.Read.1 lda #0 * CS : A = EC *\-------------------------------------- K.FOpen jsr PFT.CheckPath4 - bcs K.FOpen.RET6 + bcs .9 >PULLW IO.Open.AUXTYPE >PULLB IO.Open.TYPE @@ -352,14 +354,15 @@ K.FOpen jsr PFT.CheckPath4 inc pStack jsr UNISTD.Open - bcs K.FClose.RTS + bcs .99 jsr STDIO.NewHFile - bcc K.FClose.RTS + bcc .99 jmp UNISTD.Open.ERR -K.FOpen.RET6 >RET 6 +.9 >POP 6 +.99 rts */-------------------------------------- * # FClose * Close a file @@ -645,8 +648,7 @@ K.Rename jsr PFT.CheckPath2 * K.Buf256 = filepath * X = hFD *-------------------------------------- -STDIO.NewHFile sta .4+1 Store hFD - ldx #1 +STDIO.NewHFile ldx #1 .1 lda OF.Table.hFD-1,x beq .2 @@ -658,26 +660,26 @@ STDIO.NewHFile sta .4+1 Store hFD * sec rts -.2 stx .3+1 Store hFILE +.2 stx .4+1 + + ldx #0 lda (pFD) cmp #S.FD.T.CDEV - beq .20 + beq .3 cmp #S.FD.T.BDEV - bne .21 + beq .3 No hPath for DEV -.20 lda #0 No hPath for DEV - bra .3 - -.21 >LDYAI K.buf256 + >LDYAI K.buf256 >SYSCALL2 StrDup bcs .9 - txa -.3 ldx #$ff SELF MODIFIED +.3 txa + +.4 ldx #$ff SELF MODIFIED sta OF.Table.hPath-1,x -.4 lda #$ff SELF MODIFIED + lda IO.hFD sta OF.Table.hFD-1,x txa hFILE diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index e3ee212e..8208dec7 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -1,21 +1,20 @@ NEW AUTO 3,1 */-------------------------------------- -* # strtof +* # StrToF * Convert String to 40 bits Float * ## C * `float strtof (const char* str, char** endptr);` * ## ASM * **In:** +* `>PUSHW str` * `>PUSHWI EndPtr` -* `>LDYA str` -* `>SYSCALL strtof` +* `>SYSCALL StrToF` * ## RETURN VALUE * On stack (float) *\-------------------------------------- -K.strtof pha - >PULLW ZPPtr1 - pla +K.StrToF >PULLW ZPPtr1 + >PULLYA jsr K.AToF lda TXTPTR @@ -56,7 +55,7 @@ K.AToF >STYA TXTPTR Ptr to source string * `>PUSHW str` * `>PUSHW EndPtr` * `>PUSHB Base` -* `>SYSCALL strtol` +* `>SYSCALL StrToL` * ## RETURN VALUE * On stack (long) *\-------------------------------------- diff --git a/SYS/KERNEL.S.TERMX.txt b/SYS/KERNEL.S.TERMX.txt index 36c032ae..d246a986 100644 --- a/SYS/KERNEL.S.TERMX.txt +++ b/SYS/KERNEL.S.TERMX.txt @@ -171,7 +171,7 @@ TERMX.READ bit bActive is screen active? bpl .6 no....go check flush... jsr TERMX.CURBLNK - lda OPENAPPLE + bit OPENAPPLE bpl .1 jsr TERMX.Title.ON diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index 6ada0742..f2d23d1a 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -18,9 +18,7 @@ NEW IO.Open.FLAGS .BS 1 IO.Open.TYPE .BS 1 IO.Open.AUXTYPE .BS 2 -IO.hDev .BS 1 IO.hFD .BS 1 -IO.hFILE .BS 1 .ED *-------------------------------------- K.Open jsr PFT.YAToMLIPATH @@ -47,6 +45,7 @@ UNISTD.Open ldx #5 /DEV/ >SYSCALL2 GetDevByName bcc .7 + ldx #2 .10 lda Nod.Table.hPath-2,x beq .3 @@ -71,8 +70,8 @@ UNISTD.Open ldx #5 /DEV/ lda #MLI.E.NODEV * sec rts no OF found - -.7 stx IO.hDev +*-------------------------------------- +.7 stx IO.hFD >STYA pFD .71 lda (pFD) #S.FD.T @@ -106,31 +105,40 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO IO.OPEN.REG.E ldx #0 jsr IO.MkFD bcs IO.OPEN.RTS + jsr IO.MLI.OPEN bcs UNISTD.Open.ERR + lda IO.Open.FLAGS bit #O.WRONLY beq .20 Write mode ? + and #O.APPEND Append ? bne .11 yes, go to end of file + stz K.MLI.PARAMS+2 stz K.MLI.PARAMS+3 stz K.MLI.PARAMS+4 >MLICALL MLISETEOF no, reset size to 0 bra .21 + .11 >MLICALL MLIGETEOF bcs UNISTD.Open.ERR + >MLICALL MLISETMARK .21 bcs UNISTD.Open.ERR + .20 lda IO.Open.FLAGS and #O.TEXT Text Mode ? beq .8 + lda #$FF sta K.MLI.PARAMS+2 lda #C.CR sta K.MLI.PARAMS+3 >MLICALL MLINEWLINE bcs UNISTD.Open.ERR + .8 lda IO.hFD IO.OPEN.RTS rts diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 2888dd61..a3ce11de 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -74,6 +74,7 @@ A2osX.D1.B .PH $D000 .INB USR/SRC/SYS/KERNEL.S.IO .INB USR/SRC/SYS/KERNEL.S.STDIO .INB USR/SRC/SYS/KERNEL.S.STDIO2 + .INB USR/SRC/SYS/KERNEL.S.DEV .EP A2osX.D1.S .EQ *-A2osX.D1.B @@ -85,7 +86,6 @@ A2osX.D2.B .PH $D000 .INB USR/SRC/SYS/KERNEL.S.ARG .INB USR/SRC/SYS/KERNEL.S.STDLIB .INB USR/SRC/SYS/KERNEL.S.STRING - .INB USR/SRC/SYS/KERNEL.S.DEV .INB USR/SRC/SYS/KERNEL.S.BIN .INB USR/SRC/SYS/KERNEL.S.PS .EP