From dce5b027b769c74101a9483215fdf0b628e591f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 16 Nov 2018 17:04:20 +0100 Subject: [PATCH] Kernel 0.92 --- .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SYS/KERNEL.S.DIRENT.txt | 7 +- SYS/KERNEL.S.FIO.txt | 8 +- SYS/KERNEL.S.IO.txt | 9 +-- SYS/KERNEL.S.PFT.txt | 94 +++++++++++++++------- SYS/KERNEL.S.STAT.txt | 31 ++++---- SYS/KERNEL.S.STDIO.txt | 170 +++++++++++++++------------------------- 7 files changed, 158 insertions(+), 161 deletions(-) diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 109d2df087bdbf401c59e779c602105a67b4e28e..3a97ac71cb4defa8755b4b0a5dc1ce1ecdc67625 100644 GIT binary patch delta 27072 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 WR(JxBp@)-C#MDYp8h>8D`TqcY)opG7 delta 26921 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

24XJ3u#X>6ZOc!iB*XlBO*aDHUu<*f47X3D zU!k7cr`cR9)caA(`GD!OftF?{ht3C0w@nl&@-9l+pV33?Ir05yZ+{pd;XD%b3RU6} zo-)mr9sWzaQ*T@x;?ZB}{V{aq{;MPqp#?`D&r#{xiuSm?Y?S^4dZj>l0NaeWO>m8c zWj#grhUw8T=}?i67bTK%;(eOG^Stg}k@F6m5-FbBMfG6;AjWNe}}jUcsZ~8IDHjXCxtw z%LWx9BEOYYR`Qb$=oQJ6jqlQeQa6(AR8y zyKp6({%aFcu8V-Z2LBtDbFW{HK-%{e2IWS-AtAZ|Di|(s@f5PagLl4nb1TA zFuaI{ajwFP2nRbTXH(D4Vfi40hzs(o_91SQ+)OSQ@zgb3hr(+Xd+Is`u0yHgW5Vzt zG8f#3G+iV2MLwL9j9du$(zTPkiK8Ps2L>bU&A52DaRC1h1w4x^qmAyq$C$|~S?SW-2`!x;_46vLSz~e#E zgYl}KARa;dzLkt#@$$jjIFWgX*4;<)!(Px`^Nt$d)OgklKFIhE#d}KjW5in(^k8l6 e*&?oWEWh9d-CSTYA ZPPtr2 - jsr STDIO.SetMLIPathYA For GETFILEINFO,MLIOPEN + bcs .99 >LDYAI S.FD.DIR jsr K.GetMem0 @@ -87,7 +86,7 @@ K.ReadDir.EPB .BS 1 K.ReadDir.EC .BS 2 *-------------------------------------- K.ReadDir jsr PFT.CheckNodeA - jsr STDIO.GetHFile + bcs K.ReadDir.RTS ldy #S.FD.DIR.REF lda (pFD),y @@ -97,7 +96,7 @@ K.ReadDir jsr PFT.CheckNodeA K.ReadDir.NoMore lda #0 sec CS,A=0 no more entry - rts +K.ReadDir.RTS rts *-------------------------------------- K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ? diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index 17a7d892..1e4eb682 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -31,7 +31,7 @@ K.LoadTxtFile pha *\-------------------------------------- K.LoadFile clc ror FIO.bTXT - + >DEBUG jsr K.FOpen bcc .12 rts @@ -41,7 +41,6 @@ K.LoadFile clc pha >PUSHWI K.S.Stat pla - jsr K.FStat bcs .11 @@ -124,7 +123,8 @@ FIO.Mem .BS 2 * ## RETURN VALUE *\-------------------------------------- K.ChTyp jsr PFT.CheckPathYA - jsr STDIO.SetMLIPathYA + bcs .99 + >PULLB .1+1 >MLICALL MLIGETFILEINFO bcs .9 @@ -133,6 +133,8 @@ K.ChTyp jsr PFT.CheckPathYA sta K.MLI.PARAMS+S.FI.T >MLICALL MLISETFILEINFO .9 rts + +.99 >RET 1 discard filetype */-------------------------------------- * # ChMod * **In:** diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index d529601e..1b34f387 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -18,19 +18,14 @@ K.Open.FLAGS .BS 1 K.Open.TYPE .BS 1 K.Open.AUXTYPE .BS 2 *-------------------------------------- -K.Open pha - >PULLB K.Open.FLAGS +K.Open >PULLB K.Open.FLAGS lda #S.FI.T.TXT sta K.Open.TYPE stz K.Open.AUXTYPE stz K.Open.AUXTYPE+1 - - pla -IO.Open.I jsr STDIO.SetMLIPathYA - - ldx #5 $/DEV/ +IO.Open.I ldx #5 $/DEV/ cpx K.MLI.PATH bcs IO.OPEN.REG diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 011160c1..ce7c5677 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -23,79 +23,119 @@ K.PFTRemove * Y,A = PATH (C-String) * Out : *-------------------------------------- -PFT.CheckPathYA >STYA ZPPtr1 +PFT.CheckPathYA stx .71+1 Save SYSCALL # + jsr K.realpath.I realpath in K.Buf256 + bcs .9 >LDYAI Flt.Table - >STYA ZPPtr2 + >STYA ZPPtr1 -.1 lda (ZPPtr2) Get Filter char.... - beq .9 End Of Table, Exit +.1 lda (ZPPtr1) Get Filter char.... + beq PFT.YAToMLIPATH ldy #0 -.2 lda (ZPPtr2),y +.2 lda (ZPPtr1),y beq .3 end of filter string.... - lda (ZPPtr1),y + lda K.Buf256,y beq .8 - cmp (ZPPtr2),y + cmp (ZPPtr1),y bne .8 iny bne .2 -.3 lda (ZPPtr1),y +.3 lda K.Buf256,y cmp #'/' bne .8 ldy #S.PFT.HANDLER - lda (ZPPtr2),y get hLib + lda (ZPPtr1),y get hLib jsr K.GetMemPtr - >STYA .7+1 + >STYA .72+1 pla discard JSR return @ pla - >LDYA ZPPtr1 restore passed params -.7 jmp $ffff X unmodified + >LDYAI K.Buf256 pass full path to handler +.71 ldx #$ff SELF MODIFIED SYSCALL # +.72 jmp $ffff +.9 rts -.8 lda ZPPtr2 +.8 lda ZPPtr1 clc - adc (ZPPtr2) Add STR len + adc (ZPPtr1) Add STR len adc #S.PFT - sta ZPPtr2 + sta ZPPtr1 bcc .1 + >LDYAI K.Buf256 +*-------------------------------------- +PFT.YAToMLIPATH >STYA .1+1 -.9 >LDYA ZPPtr1 restore passed params + ldx #0 no filter, prodos path + +.1 lda $ffff,x SELF MODIFIED + beq .2 + + inx + sta K.MLI.PATH,x + cpx #MLI.MAXPATH + bne .1 + +.2 stx K.MLI.PATH + inx + stz K.MLI.PATH,x Make ending 0 for /dev/xxx path + + >LDYAI K.MLI.PATH + >STYA K.MLI.PARAMS+1 + clc rts *-------------------------------------- * PFT.CheckNodeA * In : -* PULLB/A = hFILE/hDIR +* A = hFILE * Out : *-------------------------------------- -PFT.CheckNodeA rts +PFT.CheckNodeA stx .80+1 Save SYSCALL # + sta .81+1 Save hFILE - sta .9+1 save hFILE - - jsr K.GetMemPtr X = unmodified - >STYA ZPPtr1 + tax + lda Nod.Table.hFD,x + beq .9 + + jsr K.GetMemPtr + >STYA pFD ldy #S.FD.HANDLER - lda (ZPPtr1),y - beq .9 Handler is 0, back to kernel.... - + lda (pFD),y + beq .8 Handler is 0, back to kernel.... + jsr K.GetMemPtr >STYA .1+1 pla discard JSR return @ pla - lda .9+1 restore passed hFILE + ldx .80+1 restore SYSCALL # + lda .81+1 restore passed hFILE + .1 jmp $ffff +.8 lda (pFD) #S.FD.T + bne .80 -.9 lda #$ff Self Modified + ldy #S.FD.REG.REF + lda (pFD),y + sta K.MLI.PARAMS+1 + +.80 ldx #$ff SELF MODIFIED +.81 lda #$ff SELF MODIFIED + clc + rts + +.9 lda #E.INVH + sec rts *-------------------------------------- MAN diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index b7330899..b0662912 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -14,17 +14,24 @@ AUTO 4,1 * ## RETURN VALUE *-------------------------------------- K.FStat jsr PFT.CheckNodeA - jsr STDIO.GetHFile - bcs .9 + bcs K.FStat.9 + tax lda Nod.Table.hPath,x jsr K.GetMemPtr - jsr K.Stat.I + + jsr PFT.YAToMLIPATH + + jsr K.Stat.I bcs K.Stat.9 - jsr STDIO.GetHFileREG.I - bcs K.Stat.BLK2SIZE + lda (pFD) #S.FD.T + bne K.Stat.BLK2SIZE + ldy #S.FD.REG.REF + lda (pFD),y + sta K.MLI.PARAMS+1 + >MLICALL MLIGETEOF bcs K.Stat.BLK2SIZE @@ -43,7 +50,7 @@ K.FStat jsr PFT.CheckNodeA * clc rts -.9 >RET 2 discard statbuf +K.FStat.9 >RET 2 discard statbuf */-------------------------------------- * # Stat * Return information about a file @@ -57,6 +64,8 @@ K.FStat jsr PFT.CheckNodeA * ## RETURN VALUE *\-------------------------------------- K.Stat jsr PFT.CheckPathYA + bcs K.FStat.9 go discard statbuf + jsr K.Stat.I bcs K.Stat.9 K.Stat.BLK2SIZE @@ -85,9 +94,7 @@ K.Stat.BLK2SIZE * clc K.Stat.9 rts -K.Stat.I jsr STDIO.SetMLIPathYA - - >PULLW ZPPtr1 +K.Stat.I >PULLW ZPPtr1 Get StatBuf >MLICALL MLIGETFILEINFO bcs .9 @@ -140,13 +147,9 @@ K.Stat.DST .DA #S.STAT.P.TYPE * CS : error * A = EC *\------------------------------------- -K.MKDir jsr K.realpath.I +K.MKDir jsr PFT.CheckPathYA bcs K.MKDir.RTS - >LDYAI K.Buf256 - jsr PFT.CheckPathYA - jsr STDIO.SetMLIPathYA - lda #S.FI.A.FULL sta K.MLI.PARAMS+S.FI.A lda #S.FI.T.DIR diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 675d251f..9be13025 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -12,6 +12,22 @@ K.PrintF.PadL .EQ FAC+4 K.PrintF.PadC .EQ FAC+5 BCDBUF .EQ ARG */-------------------------------------- +* # PutChar +* Print A (char) to StdOut +* ## C +* `int putchar ( int character );` +* ## ASM +* **In:** +* `lda caracter` +* `>SYSCALL putchar` +* ## RETURN VALUE +* CC = success +*\-------------------------------------- +K.PutChar >PUSHA + + ldy #S.PS.hStdOut + lda (pPs),y +*/-------------------------------------- * # FPutC * Print A (char) to hFILE * ## C @@ -24,36 +40,19 @@ BCDBUF .EQ ARG * ## RETURN VALUE * CC = success *\-------------------------------------- -K.FPutC pha - >PULLB K.IOBuf - pla - bra K.PutChar.1 -*/-------------------------------------- -* # PutChar -* Print A (char) to StdOut -* ## C -* `int putchar ( int character );` -* ## ASM -* **In:** -* `lda caracter` -* `>SYSCALL putchar` -* ## RETURN VALUE -* CC = success -*\-------------------------------------- -K.PutChar sta K.IOBuf - - ldy #S.PS.hStdOut - lda (pPs),y +K.FPutC jsr PFT.CheckNodeA + bcs K.FPutC.9 -K.PutChar.1 jsr STDIO.GetHFile - bcs K.PutS.RTS + >PULLB K.IOBuf ldy #1 -K.PutChar.Y lda #0 + +K.FPutC.Y lda #0 >PUSHYA >PUSHWI K.IOBuf jmp IO.Write.I +K.FPutC.9 >RET 1 */-------------------------------------- * # PutS * Write Str to StdOut, appends '\r\n' @@ -70,6 +69,7 @@ K.PutS >PUSHYA ldy #S.PS.hStdOut lda (pPs),y + jsr K.FPutS bcs K.PutS.RTS @@ -79,7 +79,7 @@ K.PutS >PUSHYA sta K.IOBuf+1 ldy #2 - bra K.PutChar.Y + bra K.FPutC.Y K.PutS.RTS rts */-------------------------------------- @@ -95,8 +95,8 @@ K.PutS.RTS rts * ## RETURN VALUE * CC = success *\-------------------------------------- -K.FPutS jsr STDIO.GetHFile - bcs K.PutS.RTS +K.FPutS jsr PFT.CheckNodeA + bcs .9 >PULLYA Get String >STYA ZPPtr2 Save Buffer @@ -104,13 +104,14 @@ K.FPutS jsr STDIO.GetHFile >PUSHYA push len >PUSHW ZPPtr2 push buffer jmp IO.Write.I +.9 >RET 2 */-------------------------------------- * # PrintF/SPrintF/FPrintF * Prints C-Style String * ## C * `int printf ( const char * format, ... );` -* `int sprintf ( char * str, const char * format, ... );` * `int fprintf ( hFILE stream, const char * format, ... );` +* `int sprintf ( char * str, const char * format, ... );` * ## ASM * **In:** * PrintF : (example is for printing Y,A as integer : format="%I", 2 bytes) @@ -182,8 +183,7 @@ K.PrintF >STYA ZPPtr1 format ldy #S.PS.hStdOut lda (pPs),y -K.PrintF.0 jsr STDIO.GetHFile - bcs K.PutS.RTS +K.PrintF.0 sta PrintF.Flush.DEV+1 >LDYAI K.IOBuf >STYA pIOBuf @@ -666,7 +666,12 @@ PrintF.COut phy *-------------------------------------- PrintF.Flush >PUSHW PrintF.Cnt >PUSHWI K.IOBuf +PrintF.Flush.DEV + lda #$ff SELF MODIFIED + jsr PFT.CheckNodeA + bcs .9 jmp IO.Write.I +.9 >RET 4 *-------------------------------------- PrintF.Cnt .BS 2 */-------------------------------------- @@ -687,7 +692,8 @@ PrintF.Cnt .BS 2 * Y,A: s * CC = success *\-------------------------------------- -K.FGetS pha save hFILE +K.FGetS jsr PFT.CheckNodeA + bcs .90 >PULLW ZPPtr1 s @@ -701,10 +707,6 @@ K.FGetS pha save hFILE eor #$ff sta ZPPtr2+1 !n - pla - jsr STDIO.GetHFile - bcs .99 - jsr K.GetC.I bcs .9 @@ -732,6 +734,8 @@ K.FGetS pha save hFILE sta (ZPPtr1) pla .99 rts + +.90 >RET 4 */-------------------------------------- * # GetChar * Get char from StdIn @@ -759,7 +763,7 @@ K.GetChar ldy #S.PS.hStdIn * CC = success * A = char *\-------------------------------------- -K.GetC jsr STDIO.GetHFile +K.GetC jsr PFT.CheckNodeA bcs K.GetC.9 K.GetC.I >PUSHWI 1 @@ -970,36 +974,33 @@ K.SScanF.Fwd tya Y=char count parsed * CC : A = hFILE * CS : A = EC *\-------------------------------------- -K.FOpen jsr K.realpath.I - bcc .1 - - >RET 4 - -.1 >LDYAI K.Buf256 - jsr PFT.CheckPathYA +K.FOpen jsr PFT.CheckPathYA + bcs .99 + >PULLB K.Open.FLAGS >PULLB K.Open.TYPE >PULLW K.Open.AUXTYPE - >LDYAI K.Buf256 jsr IO.Open.I - bcs K.FOpen.RTS + bcs .9 - sta .2+1 save hFD + sta .1+1 save hFD tax >LDYAI K.Buf256 jsr STDIO.NewHFileYAX - bcc K.FOpen.RTS + bcc .9 pha save MLI error -.2 lda #$ff SELF MODIFIED +.1 lda #$ff SELF MODIFIED jsr K.Close pla get back MLI error sec -K.FOpen.RTS rts +.9 rts + +.99 >RET 4 */-------------------------------------- * # FClose * Close a file @@ -1042,8 +1043,7 @@ K.FClose.RTS rts * Y,A = Bytes Read *\-------------------------------------- K.FRead jsr PFT.CheckNodeA - jsr STDIO.GetHFile - bcs K.FClose.RTS + bcs K.Write.9 jmp IO.Read.I */-------------------------------------- @@ -1061,10 +1061,10 @@ K.FRead jsr PFT.CheckNodeA * Y,A = Bytes Written *\-------------------------------------- K.FWrite jsr PFT.CheckNodeA - jsr STDIO.GetHFile - bcs K.FClose.RTS + bcs K.Write.9 jmp IO.Write.I +K.Write.9 >RET 4 */-------------------------------------- * # FFlush * ## C @@ -1075,7 +1075,6 @@ K.FWrite jsr PFT.CheckNodeA * `>SYSCALL fflush` *\-------------------------------------- K.FFlush jsr PFT.CheckNodeA - jsr STDIO.GetHFileREG bcs .9 >MLICALL MLIFLUSH .9 rts @@ -1092,10 +1091,11 @@ K.FFlush jsr PFT.CheckNodeA * `>SYSCALL fseek` *\------------------------------------- K.FSeek jsr PFT.CheckNodeA - jsr STDIO.GetHFileREG - bcs .9 + bcc .11 + + >RET 6 - >PULLA whence +.11 >PULLA whence tax >PULLW ZPPtr1 offset LW >PULLW ZPPtr2 offset HW @@ -1167,7 +1167,6 @@ K.FSeek jsr PFT.CheckNodeA * CS : *\-------------------------------------- K.FEOF jsr PFT.CheckNodeA - jsr STDIO.GetHFileREG bcs .9 >MLICALL MLIGETMARK @@ -1208,7 +1207,7 @@ K.FEOF.MARK .BS 3 * On stack (long) *\-------------------------------------- K.FTell jsr PFT.CheckNodeA - jsr STDIO.GetHFileREG + bcs .9 >MLICALL MLIGETMARK bcs .9 @@ -1235,9 +1234,10 @@ K.FTell jsr PFT.CheckNodeA * ## RETURN VALUE *\-------------------------------------- K.Remove jsr PFT.CheckPathYA - jsr STDIO.SetMLIPathYA + bcs .9 + >MLICALL MLIDESTROY - rts +.9 rts */-------------------------------------- * # Rename * Rename a file @@ -1251,7 +1251,8 @@ K.Remove jsr PFT.CheckPathYA * ## RETURN VALUE *\-------------------------------------- K.Rename jsr PFT.CheckPathYA - jsr STDIO.SetMLIPathYA + bcs .9 + >PULLW .1+1 ldy #0 @@ -1269,6 +1270,8 @@ K.Rename jsr PFT.CheckPathYA >MLICALL MLIRENAME rts + +.9 >RET 2 *-------------------------------------- * Y,A = filepath * X = hFD @@ -1307,51 +1310,6 @@ STDIO.NewHFileYAX clc .9 rts -*-------------------------------------- -STDIO.GetHFileREG - jsr STDIO.GetHFile - bcs STDIO.GetHFileREG.9 -STDIO.GetHFileREG.I - lda (pFD) #S.FD.T - bne STDIO.GetHFile.9 - - ldy #S.FD.REG.REF - lda (pFD),y - sta K.MLI.PARAMS+1 -STDIO.GetHFileREG.9 - rts -*-------------------------------------- -STDIO.GetHFile tay - lda Nod.Table.hFD,y - beq STDIO.GetHFile.9 - jsr K.GetMemPtr - >STYA pFD - rts - -STDIO.GetHFile.9 - lda #E.INVH - sec - rts -*-------------------------------------- -STDIO.SetMLIPathYA - >STYA .1+1 - - ldx #0 - -.1 lda $ffff,x Self Modified - beq .8 - inx - sta K.MLI.PATH,x - cpx #MLI.MAXPATH - bne .1 - -.8 stx K.MLI.PATH - inx - stz K.MLI.PATH,x Make ending 0 for /dev/xxx path - - >LDYAI K.MLI.PATH - >STYA K.MLI.PARAMS+1 - rts *-------------------------------------- STDIO.SetIOBUF >LDYAI 1024 get a ProDOS IOBUF ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE