From a5034337e552d3f4037b6249a0bbc20b414d16e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 19 Aug 2020 21:39:43 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes BIN/BMP2PIX.S.txt | 28 ++++++------ BIN/CHMOD.S.txt | 4 +- BIN/CSH.S.CORE.txt | 6 +-- BIN/GTEST.S.txt | 7 ++- BIN/HTTPGET.S.txt | 49 +++++++++++---------- BIN/KILL.S.txt | 15 +++---- BIN/PAK.S.txt | 44 +++++++++---------- BIN/RPCDUMP.S.txt | 49 +++++++++++---------- BIN/USERADD.S.txt | 10 ++--- BIN/USERDEL.S.txt | 10 ++--- BIN/WC.S.txt | 4 +- BIN/WHO.S.txt | 5 +-- SYS/KERNEL.S.DIRENT.txt | 7 ++- SYS/KERNEL.S.FS.txt | 90 ++++++++++++++++++++++++++++----------- SYS/KERNEL.S.INIT.txt | 5 +-- SYS/KERNEL.S.PFT.txt | 11 ++--- SYS/KERNEL.S.PS.txt | 69 ++++++++++++++++-------------- SYS/KERNEL.S.STAT.txt | 42 ++++++------------ SYS/KERNEL.S.STDIO.txt | 6 ++- 21 files changed, 248 insertions(+), 213 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 2aa2e24c06a78fc0f14d01fb42b89b38c6230b8e..f4fd40c579a13c55d9ec1ffe86698afb55bd5597 100644 GIT binary patch delta 55080 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�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
7mf*;h`ftgRP_HF(WK-Sf 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

ZoaiK_6r7B^ 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 diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 226f0199e2a3b2413f8dbfc9d8bb01e78efaa1b1..07670a37978d7b7007abbb411d2b6f6a17d2a634 100644 GIT binary patch delta 16063 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 a(C9R)arqitwg&fFgL|*Rea!fPcmEIJwbfbx diff --git a/BIN/BMP2PIX.S.txt b/BIN/BMP2PIX.S.txt index 21d3f8df..25cf86c0 100644 --- a/BIN/BMP2PIX.S.txt +++ b/BIN/BMP2PIX.S.txt @@ -25,7 +25,7 @@ S.BMP .EQ $36 .DUMMY .OR ZPBIN ZS.START -ZPPTR1 .BS 2 +ZPPtr1 .BS 2 ZPInputBuf .BS 2 ZPInputBufPtr .BS 2 ZPInputRowBytes .BS 2 @@ -125,7 +125,7 @@ CS.RUN beq .99 >LDA.G BMP.Header+S.BMP.BPP - cmp #1 + cmp #1 beq CS.RUN.1 jmp CS.RUN.24 *-------------------------------------- @@ -193,15 +193,15 @@ CS.RUN.1 lda #S.BM.F.BBP1 * sbc ZPBMPRowBytes+1 * sta ZPInputDataPtr+1 * >LDYA ZPBufPtr -* >STYA ZPPTR1 +* >STYA ZPPtr1 * ldy #0 *.2 lda (ZPInputDataPtr),y * tax * lda TWIST,x -* sta (ZPPTR1) -* inc ZPPTR1 +* sta (ZPPtr1) +* inc ZPPtr1 * bne .3 -* inc ZPPTR1+1 +* inc ZPPtr1+1 *.3 iny * cpy ZPPIXRowBytes * bne .2 @@ -616,17 +616,17 @@ DEBUG.ClrScr sta SETMIXED sta CLRTEXT ldx #19 .1 lda SCR.BASEL,x - sta ZPPTR1 + sta ZPPtr1 lda SCR.BASEH,x - sta ZPPTR1+1 + sta ZPPtr1+1 lda #0 ldy #39 .2 sta SETPAGE2 - sta (ZPPTR1),y + sta (ZPPtr1),y sta CLRPAGE2 - sta (ZPPTR1),y + sta (ZPPtr1),y dey bpl .2 @@ -668,9 +668,9 @@ DEBUG.PLOT php lsr tax lda SCR.BASEL,x - sta ZPPTR1 + sta ZPPtr1 lda SCR.BASEH,x - sta ZPPTR1+1 + sta ZPPtr1+1 pla bcc .3 @@ -679,8 +679,8 @@ DEBUG.PLOT php asl asl -.3 ora (ZPPTR1),y - sta (ZPPTR1),y +.3 ora (ZPPtr1),y + sta (ZPPtr1),y sta CLRPAGE2 .9 pla diff --git a/BIN/CHMOD.S.txt b/BIN/CHMOD.S.txt index b3b4c4f1..68e52f22 100644 --- a/BIN/CHMOD.S.txt +++ b/BIN/CHMOD.S.txt @@ -122,7 +122,7 @@ CS.RUN inc ArgIndex *-------------------------------------- CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y - >SYSCALL feof + >SYSCALL FEOF bcs .99 tay @@ -212,7 +212,7 @@ CS.RUN.DIR lda (ZPFileName) >PUSHW ZPFullPath >PUSHW ZPMode - >SYSCALL chmod + >SYSCALL ChMod jsr CS.RUN.CheckErr bcs .9 diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index bb796884..51a4ece1 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -284,7 +284,7 @@ CSH.DIR.INCLUDE >STZ.G PathBuf >PUSHW L.ENV.INCLUDE >PUSHEA.G PathBuf - >SYSCALL getenv + >SYSCALL GetEnv lda #'>' @@ -315,8 +315,8 @@ CSH.DIR.INCLUDE >STZ.G PathBuf .8 jsr CSH.GetNextChar skip " or > - >LDYA pdata - >SYSCALL puts + >LDYA pData + >SYSCALL PutS rts *-------------------------------------- CSH.SkipLine jsr CSH.GetNextChar diff --git a/BIN/GTEST.S.txt b/BIN/GTEST.S.txt index 0b3010bf..d203699f 100644 --- a/BIN/GTEST.S.txt +++ b/BIN/GTEST.S.txt @@ -19,8 +19,7 @@ hFontB .BS 1 bVBL .BS 1 xDir .BS 1 yDir .BS 1 -ZS.END - .ED +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -160,7 +159,7 @@ CS.RUN.LOGO.SHOW ldy #S.PS.hStdIn lda (pPS),y - >SYSCALL feof + >SYSCALL FEOF bcs .99 tay beq .80 @@ -330,7 +329,7 @@ LoadResources >PUSHW L.FONTFILE *-------------------------------------- GFX.Open >PUSHBI 0 >LDYA L.DEVNAME.GFX - >SYSCALL open + >SYSCALL Open bcs .9 sta hDevGFX .9 rts diff --git a/BIN/HTTPGET.S.txt b/BIN/HTTPGET.S.txt index ccf6d76a..2dc56c4b 100644 --- a/BIN/HTTPGET.S.txt +++ b/BIN/HTTPGET.S.txt @@ -5,13 +5,13 @@ NEW .OR $2000 .TF bin/httpget *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/MLI.I - .INB INC/MLI.E.I - .INB INC/ETH.I - .INB INC/LIBTCPIP.I - .INB INC/NET.HTTP.I + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/mli.i + .INB inc/mli.e.i + .INB inc/eth.i + .INB inc/libtcpip.i + .INB inc/net.http.i *-------------------------------------- RESP.BUFSIZE .EQ 1024 TIMEOUT.MAX .EQ 50 5 sec. @@ -30,8 +30,7 @@ ZPEncodedBufLen .BS 2 ZPRespBufPtr .BS 2 hSocket .BS 1 -ZS.END - .ED +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -99,14 +98,14 @@ CS.RUN.IPOK ldy #S.IPCFG.IP+3 bcs .9 >STYA ZPHostPtr - jsr Init.Timeout + jsr Init.TimeOut .2 >PUSHW L.SA.REMOTE.AD >PUSHW ZPHostPtr - >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME + >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName bcc CS.RUN.HOSTOK >SLEEP - jsr Wait.Timeout + jsr Wait.TimeOut bcc .2 >PUSHW L.MSG.UNKNOWN @@ -135,7 +134,7 @@ CS.RUN.HOSTOK >INC.G ArgIndex beq .1 >LDYA ZPPtr - >SYSCALL atoi + >SYSCALL AToI bcs CS.RUN.RTS >STYA SA.REMOTE+S.SOCKADDR.PORT @@ -166,7 +165,7 @@ CS.RUN.HOSTOK >INC.G ArgIndex .9 bcs CS.RUN.ESYN >STYA ZPReqBufPtr - >SYSCALL strlen + >SYSCALL StrLen >STYA ZPReqBufLen .8 bra CS.RUN.PORTOK @@ -222,7 +221,7 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol sec .99 rts -.1 jsr Init.Timeout +.1 jsr Init.TimeOut .2 >SLEEP @@ -234,7 +233,7 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol cmp #ERR.SKT.NOCONN bne .9 - jsr Wait.Timeout + jsr Wait.TimeOut bcc .2 lda #ERR.SKT.NOCONN bra .9 @@ -258,7 +257,7 @@ CS.RUN.GET jsr CS.RUN.ENCODE * >PUSHW ZPEncodedBufPtr * ldy #S.PS.hStdOut * lda (pPS),y -* >SYSCALL fwrite +* >SYSCALL FWrite jsr CS.RUN.REQUEST bcs .99 @@ -373,7 +372,7 @@ CS.RUN.ADDTOBUF sta (ZPPtr) inc ZPPtr+1 .8 rts *-------------------------------------- -CS.RUN.REQUEST jsr Init.Timeout +CS.RUN.REQUEST jsr Init.TimeOut >PUSHWI HTTP.GET1.LEN >PUSHW L.HTTP.GET1 @@ -391,7 +390,7 @@ CS.RUN.REQUEST jsr Init.Timeout .99 bcs .9 >LDYA ZPHostPtr - >SYSCALL strlen + >SYSCALL StrLen >PUSHYA >PUSHW ZPHostPtr jsr .8 @@ -401,13 +400,13 @@ CS.RUN.REQUEST jsr Init.Timeout >PUSHW L.HTTP.GET3 .8 lda #'!' - >SYSCALL putchar + >SYSCALL PutChar lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Write .9 rts *-------------------------------------- -CS.RUN.RESPONSE jsr Init.Timeout +CS.RUN.RESPONSE jsr Init.TimeOut .1 >SLEEP >PUSHWI RESP.BUFSIZE @@ -420,7 +419,7 @@ CS.RUN.RESPONSE jsr Init.Timeout cmp #E.NODATA bne .8 - jsr Wait.Timeout + jsr Wait.TimeOut bcs .80 bra .1 @@ -428,7 +427,7 @@ CS.RUN.RESPONSE jsr Init.Timeout >PUSHW ZPRespBufPtr ldy #S.PS.hStdOut lda (pPS),y - >SYSCALL fwrite + >SYSCALL FWrite bcs .9 >INC.G bResponse @@ -475,7 +474,7 @@ CS.QUIT lda hSocket .8 clc rts *-------------------------------------- -Init.Timeout lda #TIMEOUT.MAX +Init.TimeOut lda #TIMEOUT.MAX >STA.G TimeOut rts *-------------------------------------- @@ -541,5 +540,5 @@ DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/BIN/HTTPGET.S +SAVE usr/src/bin/httpget.s ASM diff --git a/BIN/KILL.S.txt b/BIN/KILL.S.txt index 31dad945..025aa468 100644 --- a/BIN/KILL.S.txt +++ b/BIN/KILL.S.txt @@ -4,10 +4,10 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF BIN/KILL + .TF bin/kill *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I + .INB inc/macros.i + .INB inc/a2osx.i *-------------------------------------- * Zero Page Segment, up to 32 bytes *-------------------------------------- @@ -15,8 +15,7 @@ AUTO 4,1 .OR ZPBIN ZS.START ZPTmpPtr .BS 2 -ZS.END - .ED +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -81,12 +80,12 @@ CS.RUN ldy #S.PS.ARGC >PUSHW L.SSCANF.PID >PUSHEA.G PID >PUSHBI 2 1 Ptr - >SYSCALL sscanf + >SYSCALL SScanF bcs .9 >PUSHB.G Signal >LDA.G PID - >SYSCALL kill + >SYSCALL Kill bcs .99 lda #0 sec @@ -115,5 +114,5 @@ DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/BIN/KILL.S +SAVE usr/src/bin/kill.s ASM diff --git a/BIN/PAK.S.txt b/BIN/PAK.S.txt index a6747590..eec4e25f 100644 --- a/BIN/PAK.S.txt +++ b/BIN/PAK.S.txt @@ -5,12 +5,12 @@ NEW .OR $2000 .TF bin/pak *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/KERNEL.I - .INB INC/PAK.I - .INB INC/LIBPAK.I - .INB INC/MLI.E.I + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/kernel.i + .INB inc/pak.i + .INB inc/libpak.i + .INB inc/mli.e.i *-------------------------------------- X.ENTER.SUBDIR .EQ 0 X.COPY.TO.DEST .EQ 0 @@ -169,7 +169,7 @@ CS.RUN >INC.G ArgIndex *-------------------------------------- CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y - >SYSCALL feof + >SYSCALL FEOF bcs .99 tay @@ -277,8 +277,8 @@ CS.RUN.FILE jsr CS.RUN.BuildFilePath >LDA.G hArcFile tay lda OF.Table.hPath-1,y - >SYSCALL GetMemptr - >SYSCALL strcmp + >SYSCALL GetMemPtr + >SYSCALL StrCmp bcc .8 >PUSHW L.MSG.FILE @@ -295,7 +295,7 @@ CS.RUN.FILE jsr CS.RUN.BuildFilePath bcs .9 .1 lda #'.' - >SYSCALL putchar + >SYSCALL PutChar jsr CS.RUN.ReadFile bcc .2 @@ -375,7 +375,7 @@ CS.RUN.OpenFile >PUSHW ZPFullPath CS.RUN.ReadFile >PUSHWI CHNK.SIZE >PUSHW ZPSrcBufPtr >LDA.G hFile - >SYSCALL fread + >SYSCALL FRead bcs .9 >STYA.G Shunk.SrcSize @@ -400,7 +400,7 @@ CS.RUN.Pak >PUSHEA.G PAKSTAT .9 rts *-------------------------------------- CS.RUN.OpenArc >LDA.G ArcName - >SYSCALL Argv + >SYSCALL ArgV >PUSHYA bit bAppend @@ -417,7 +417,7 @@ CS.RUN.OpenArc >LDA.G ArcName >PUSHW L.ARC.Header >LDA.G hArcFile - >SYSCALL fputs + >SYSCALL FPutS .9 CS.RUN.OpenArc.RTS rts @@ -437,14 +437,14 @@ CS.RUN.AppendArc >PUSHWI 0 >PUSHWI 0 >LDA.G hArcFile - >SYSCALL fseek + >SYSCALL FSeek bcs CS.RUN.OpenArc.RTS >PUSHWI 3 >PUSHW ZPSrcBufPtr >LDA.G hArcFile - >SYSCALL fread + >SYSCALL FRead bcs .9 cpy #3 @@ -462,7 +462,7 @@ CS.RUN.AppendArc >PUSHWI 0 >PUSHWI 0 >LDA.G hArcFile - >SYSCALL fseek + >SYSCALL FSeek * bcc .9 * cmp #MLI.E.EOF * bne .99 @@ -511,7 +511,7 @@ CS.RUN.WriteArcHdr >PUSHW ZPRelPath >LDA.G hArcFile - >SYSCALL fputs + >SYSCALL FPutS CS.RUN.WriteArcHdr.9 rts @@ -552,7 +552,7 @@ CS.RUN.WriteSrcData >PUSHW.G Shunk.SrcSize >PUSHW ZPSrcBufPtr >LDA.G hArcFile - >SYSCALL fwrite + >SYSCALL FWrite .9 rts *-------------------------------------- CS.RUN.WritePakData @@ -571,7 +571,7 @@ CS.RUN.WritePakData >PUSHW.G Shunk.DstSize >PUSHW ZPDstBufPtr >LDA.G hArcFile - >SYSCALL fwrite + >SYSCALL FWrite .9 rts *-------------------------------------- CS.RUN.WriteArcByteY @@ -580,7 +580,7 @@ CS.RUN.WriteArcByteY CS.RUN.WriteArcByteA >PUSHA >LDA.G hArcFile - >SYSCALL fputc + >SYSCALL FPutC rts *-------------------------------------- CS.DOEVENT sec @@ -639,7 +639,7 @@ CS.RUN.CheckOpt ldy #1 .8 clc rts *-------------------------------------- - .INB USR/SRC/BIN/X.FILEENUM.S + .INB usr/src/bin/x.fileenum.s *-------------------------------------- CS.END *-------------------------------------- @@ -678,7 +678,7 @@ Shunk.DstSize .BS 2 PAKSTAT .BS S.PAKSTAT - .INB USR/SRC/BIN/X.FILEENUM.G + .INB usr/src/bin/x.fileenum.g DS.END .ED *-------------------------------------- diff --git a/BIN/RPCDUMP.S.txt b/BIN/RPCDUMP.S.txt index d19eed90..6047b801 100644 --- a/BIN/RPCDUMP.S.txt +++ b/BIN/RPCDUMP.S.txt @@ -1,20 +1,23 @@ NEW - PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 - .TF BIN/RPCDUMP + .TF bin/rpcdump *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/ETH.I - .INB INC/LIBTCPIP.I + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/eth.i + .INB inc/libtcpip.i *-------------------------------------- TIMEOUT.MAX .EQ 40 40*100ms = 4 sec. *-------------------------------------- -ZPIPCfgPtr .EQ ZPBIN -ZPFrameBase .EQ ZPBIN+2 + .DUMMY + .OR ZPBIN +ZS.START +ZPIPCfgPtr .BS 2 +ZPFrameBase .BS 2 +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -27,7 +30,7 @@ CS.START cld .DA CS.END-CS.START Code Length To Relocate .DA DS.END-DS.START Data Segment to Allocate .DA #16 SS - .DA #4 ZP + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- .1 .DA CS.INIT @@ -53,7 +56,7 @@ CS.INIT ldy #S.PS.ARGC >SYSCALL LoadLib sta hLIBTCPIP - >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? + >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? bcs .99 >STYA ZPIPCfgPtr lda (ZPIPCfgPtr) Configured ? @@ -73,16 +76,16 @@ CS.INIT ldy #S.PS.ARGC sec rts *-------------------------------------- -CS.RUN jsr Init.Timeout +CS.RUN jsr Init.TimeOut .1 >PUSHW L.Socket.Dst.Addr lda #1 >SYSCALL ArgV >PUSHYA - >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME + >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName bcc .2 >SLEEP - jsr Wait.Timeout + jsr Wait.TimeOut bcc .1 lda #1 >SYSCALL ArgV @@ -93,7 +96,7 @@ CS.RUN jsr Init.Timeout sec rts .2 >PUSHW L.Socket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New + >LIBCALL hLIBTCPIP,LIBTCPIP.Socket bcs .91 >STA.G hSocket ldx #3 @@ -104,19 +107,19 @@ CS.RUN jsr Init.Timeout .3 >PUSHWI RPC.Request.End-RPC.Request >PUSHW L.RPC.Request >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send + >LIBCALL hLIBTCPIP,LIBTCPIP.Send bcc .4 >SLEEP - jsr Wait.Timeout + jsr Wait.TimeOut bcc .3 .91 bra .99 -.4 jsr Init.Timeout +.4 jsr Init.TimeOut .5 >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd + >LIBCALL hLIBTCPIP,LIBTCPIP.Recv bcc .6 >SLEEP - jsr Wait.Timeout + jsr Wait.TimeOut bcc .5 bra .99 @@ -155,14 +158,14 @@ CS.DOEVENT lda (pEvent) CS.QUIT ldy #hSocket lda (pData),y beq .1 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown .1 lda hLIBTCPIP beq .8 >SYSCALL UnloadLib .8 clc rts *-------------------------------------- -Init.Timeout ldy #TimeOut +Init.TimeOut ldy #TimeOut lda #TIMEOUT.MAX sta (pData),y rts @@ -253,5 +256,5 @@ DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/BIN/RPCDUMP.S +SAVE usr/src/bin/rpcdump.s ASM diff --git a/BIN/USERADD.S.txt b/BIN/USERADD.S.txt index eafb8fb5..7591806e 100644 --- a/BIN/USERADD.S.txt +++ b/BIN/USERADD.S.txt @@ -107,7 +107,7 @@ CS.RUN >LDYAI S.PW * bcs .99 >PUSHW pData - >SYSCALL putpw + >SYSCALL PutPW bcs .99 lda #0 @@ -157,11 +157,11 @@ CS.RUN.ROOT ldy #0 >SYSCALL MD5 >PUSHW ZPStrPtr >LEA.G PW+S.PW.PASSWD - >SYSCALL strcmp + >SYSCALL StrCmp bcs .99 >PUSHW pData - >SYSCALL putpw + >SYSCALL PutPW bcs .9 lda #0 @@ -177,7 +177,7 @@ CS.RUN.ROOT ldy #0 *-------------------------------------- CS.RUN.GetStr stz ZPStrLen -.1 >SYSCALL getchar +.1 >SYSCALL GetChar bcs .9 cmp #C.SPACE bcc .2 @@ -189,7 +189,7 @@ CS.RUN.GetStr stz ZPStrLen sty ZPStrLen bit ZPbStrSecret bmi .1 - >SYSCALL putchar + >SYSCALL PutChar bra .1 .2 cmp #3 Ctrl-C diff --git a/BIN/USERDEL.S.txt b/BIN/USERDEL.S.txt index a45cdb07..6c2c56be 100644 --- a/BIN/USERDEL.S.txt +++ b/BIN/USERDEL.S.txt @@ -76,7 +76,7 @@ CS.RUN >LDYAI 256 sta (pData),y >PUSHW pData - >SYSCALL putpw + >SYSCALL PutPW bcs .99 jsr CS.RUN.RmDir @@ -152,12 +152,12 @@ CS.RUN.RmDir lda bDelete tay lda pData+1 adc /S.PW.DIR - >SYSCALL remove + >SYSCALL Remove rts .1 >PUSHW L.CMD.RM >LDYA ZPStrPtr - >SYSCALL strcpy + >SYSCALL StrCpy lda pData clc @@ -167,11 +167,11 @@ CS.RUN.RmDir lda bDelete adc /S.PW.DIR >PUSHYA >LDYA ZPStrPtr - >SYSCALL strcat + >SYSCALL StrCat >PUSHW ZPStrPtr >PUSHBI S.PS.F.HOLD - >SYSCALL execl + >SYSCALL ExecL rts *-------------------------------------- * Called if option S.PS.F.EVENT enabled in Header diff --git a/BIN/WC.S.txt b/BIN/WC.S.txt index 8a7c4556..eb3825bd 100644 --- a/BIN/WC.S.txt +++ b/BIN/WC.S.txt @@ -158,7 +158,7 @@ CS.RUN inc ArgIndex *-------------------------------------- CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y - >SYSCALL feof + >SYSCALL FEOF bcs .99 tay bne .10 @@ -287,7 +287,7 @@ CS.RUN.FILE.LOOP .1 >PUSHWI 256 >PUSHW ZPLineBuf lda hFile - >SYSCALL fgets + >SYSCALL FGetS bcs .8 jsr CS.RUN.IncFLine diff --git a/BIN/WHO.S.txt b/BIN/WHO.S.txt index 608cefa1..c09f4620 100644 --- a/BIN/WHO.S.txt +++ b/BIN/WHO.S.txt @@ -92,7 +92,7 @@ CS.RUN >LDYA L.MSG0 >SYSCALL PrintF lda hSession - >SYSCALL freemem + >SYSCALL FreeMem .7 inc SessionID ldx SessionID @@ -139,8 +139,7 @@ MSG1 .AZ "%3d $%0h %b %3d %3d %16s %s\r\n" .DUMMY .OR 0 DS.START -DS.END - .ED +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/who.s diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 51e4ae02..59132c28 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -40,7 +40,12 @@ K.OpenDir jsr PFT.CheckPathYA .9 rts .97 lda #MLI.E.UNSUPST -.98 jmp UNISTD.Open.ERR +.98 pha Save Error Code + lda IO.hFD + jsr K.Close + pla + sec + rts */-------------------------------------- * # ReadDir * ## C diff --git a/SYS/KERNEL.S.FS.txt b/SYS/KERNEL.S.FS.txt index 9b9b5e32..57bb3d28 100644 --- a/SYS/KERNEL.S.FS.txt +++ b/SYS/KERNEL.S.FS.txt @@ -2,10 +2,10 @@ NEW AUTO 3,1 *-------------------------------------- IO.OPEN.REG >MLICALL MLIGETFILEINFO - bcc IO.OPEN.REG.E Already Exists + bcc .10 Already Exists bit IO.Open.FLAGS Create if not exists ? - bpl IO.OPEN.RTS No, return MLI error + bpl .9 No, return MLI error ldx #2 Yes, Create... @@ -15,15 +15,15 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO bpl .1 lda #S.FI.ST.STD - jsr IO.MLI.CREATE - bcs IO.OPEN.RTS + jsr FS.CREATE + bcs .9 -IO.OPEN.REG.E ldx #0 +.10 ldx #0 jsr IO.MkFD - bcs IO.OPEN.RTS + bcs .9 jsr IO.MLI.OPEN - bcs UNISTD.Open.ERR + bcs .99 lda IO.Open.FLAGS bit #O.WRONLY @@ -39,10 +39,10 @@ IO.OPEN.REG.E ldx #0 bra .21 .11 >MLICALL MLIGETEOF - bcs UNISTD.Open.ERR + bcs .99 >MLICALL MLISETMARK -.21 bcs UNISTD.Open.ERR +.21 bcs .99 .20 lda IO.Open.FLAGS and #O.TEXT Text Mode ? @@ -53,12 +53,12 @@ IO.OPEN.REG.E ldx #0 lda #C.CR sta K.MLI.PARAMS+3 >MLICALL MLINEWLINE - bcs UNISTD.Open.ERR + bcs .99 .8 lda IO.hFD -IO.OPEN.RTS rts +.9 rts -UNISTD.Open.ERR pha Save Error Code +.99 pha Save Error Code lda IO.hFD jsr K.Close pla @@ -80,9 +80,8 @@ IO.WRITE.REG ldx #MLIWRITE jsr GP.MLICall bcs .9 >LDYA K.MLI.PARAMS+6 -.9 -IO.WRITE.REG.RTS - rts + +.9 rts *-------------------------------------- IO.CLOSE.REG IO.CLOSE.DIR ldy #S.FD.REG.REF @@ -123,7 +122,7 @@ IO.EOF.REG >MLICALL MLIGETMARK * clc .9 rts *-------------------------------------- -IO.MLI.CREATE sta K.MLI.PARAMS+7 Storage Type +FS.CREATE sta K.MLI.PARAMS+7 Storage Type ldx #3 .1 lda DATELO,x sta K.MLI.PARAMS+8,x Create Date/Time @@ -157,10 +156,49 @@ IO.MLI.OPEN >LDYAI 1024 get a ProDOS IOBUF .9 FS.OPEN.RTS rts *-------------------------------------- -FS.STAT.I >PUSHYA +FS.FSTAT.A >PUSHA + +FS.FSTAT >PUSHWI K.S.STAT + ldx #SYS.FStat + jsr PFT.CheckNode2 + bcs .9 + + ldy #2 + lda (pStack),y + + tax + + lda OF.Table.hPath-1,x + jsr K.GetMemPtr + jsr PFT.YAToMLIPATH + + jsr FS.Stat.203 + bcs .9 + + lda (pFD) #S.FD.T + bne .9 + + ldy #S.FD.REG.REF + lda (pFD),y + sta K.MLI.PARAMS+1 + + >MLICALL MLIGETEOF + + ldx #2 + +.1 lda K.MLI.PARAMS+2,x + sta K.S.STAT+S.STAT.SIZE,x + dex + bpl .1 + +.9 >RET 3 +*-------------------------------------- +FS.STAT.YA >PUSHYA >PUSHWI K.S.STAT + ldx #SYS.Stat jsr PFT.CheckPath2 bcs .9 + jsr FS.Stat.203 .9 >RET 4 @@ -169,7 +207,7 @@ FS.Stat bit CORE.FSID bmi FS.Stat.FX FS.Stat.203 >MLICALL MLIGETFILEINFO - bcs FS.OPEN.RTS + bcs FS.Stat.RTS jsr FS.ClrStat @@ -194,14 +232,15 @@ FS.Stat.203 >MLICALL MLIGETFILEINFO >LDYAI K.MLI.PARAMS+S.FI.CDATE ldx #K.S.STAT+S.STAT.CTIME - jsr SHARED.PTime2StatYAX + jsr FS.PTime2StatYAX >LDYAI K.MLI.PARAMS+S.FI.MDATE ldx #K.S.STAT+S.STAT.MTIME - jmp SHARED.PTime2StatYAX + jmp FS.PTime2StatYAX +FS.Stat.RTS rts *-------------------------------------- FS.Stat.FX >MLICALL MLIGETFILEINFOEX - bcs FS.OPEN.RTS + bcs FS.Stat.RTS >LDYAI K.MLI.PARAMS+3 >STYA ZPPtr3 @@ -251,11 +290,11 @@ FS.DirEnt2Stat jsr FS.ClrStat .7 lda #S.FIEX.CTIME ldx #K.S.STAT+S.STAT.CTIME - jsr SHARED.PTime2StatAX + jsr FS.PTime2StatAX lda #S.FIEX.MTIME ldx #K.S.STAT+S.STAT.MTIME - jmp SHARED.PTime2StatAX + jmp FS.PTime2StatAX *-------------------------------------- FS.ClrStat ldx #S.STAT-1 @@ -268,13 +307,12 @@ FS.ClrStat ldx #S.STAT-1 rts *-------------------------------------- -SHARED.PTime2StatAX - clc +FS.PTime2StatAX clc adc ZPPtr3 tay lda ZPPtr3+1 adc #0 -SHARED.PTime2StatYAX +FS.PTime2StatYAX >PUSHYA >PUSHB /K.S.STAT diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index af02fa33..8a5884ca 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -202,10 +202,9 @@ Kernel.Init3C >PUSHWI MSG.Init3 Kernel.Init3.Err pha >PUSHWI MSG.StartupErr - >PUSHWI SBININITD pla >PUSHA - >PUSHBI 3 + >PUSHBI 1 >SYSCALL2 printf bra * No need to discard Expanded CMDLINE *-------------------------------------- @@ -1204,7 +1203,7 @@ MSG.EVT .AZ "Event Manager..." MSG.TSK .AZ "Task Manager..." MSG.PWD .AZ "Password Manager..." MSG.EXEC .AZ "Executing %s..." -MSG.StartupErr .AZ "%s Failed : [$%h]\r\n" +MSG.StartupErr .AZ "Failed : [$%h]\r\n" MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n" *-------------------------------------- MSG.HW .AZ "Checking Hardware..." diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index ebaa2901..457d2420 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -85,11 +85,12 @@ PFT.YAToMLIPATH >STYA .1+1 PFT.YAToMLIPATH.RTS rts *-------------------------------------- -* PFT.CheckNodeA -* In : -* A = hFILE -* Out : -*-------------------------------------- +PFT.CheckNode4 ldy #4 + .HS 2C BIT ABS +PFT.CheckNode2 ldy #2 + + lda (pStack),y + PFT.CheckNodeA stx .80+1 Save SYSCALL # sta .81+1 Save hFILE diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 1a2904a0..8ddf1e6b 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -324,7 +324,7 @@ PS.Load ldy #$ff bne .1 >LDYA PS.ArgV found /, some path specified, no search - jsr FS.STAT.I + jsr FS.STAT.YA bcc .6 REAL path in K.Buf256 .99 rts @@ -396,7 +396,7 @@ PS.Load.SCRIPT ldx #$ff sta K.Buf256-1,x K.Buf256 = "${ROOT}BIN/SHELL\0" .5 >LDYAI K.Buf256 - jsr FS.STAT.I + jsr FS.STAT.YA bcs PS.Load.RTS lda K.S.STAT+S.STAT.P.TYPE @@ -747,9 +747,9 @@ K.Kill.2 ldy #S.PS.hSession .DUMMY .OR ZPTMP 5 Bytes FIO.bTXT .BS 1 -FIO.hFILE .BS 1 -FIO.MemPtr .BS 2 FIO.hMem .BS 1 +FIO.MemPtr .BS 2 +FIO.hFILE .BS 1 .ED *-------------------------------------- K.LoadTxtFile sec @@ -773,19 +773,18 @@ K.LoadTxtFile sec K.LoadFile clc ror FIO.bTXT + >SYSCALL2 FOpen - bcs .9 + bcs .99 -.12 sta FIO.hFILE + sta FIO.hFILE - >PUSHA - >PUSHWI K.S.Stat - >SYSCALL2 FStat - bcs .11 + jsr FS.FSTAT.A + bcs .98 lda K.S.Stat+S.STAT.SIZE+3 ora K.S.Stat+S.STAT.SIZE+2 - bne .10 + bne .97 >LDYA K.S.Stat+S.STAT.SIZE @@ -795,31 +794,29 @@ K.LoadFile clc bne .1 inc bne .1 -.10 lda #E.FTB -.11 bra .99 -.1 jsr K.GetMem - bcs .99 - >STYA FIO.MemPtr - stx FIO.hMem - >PUSHW K.S.Stat+S.STAT.SIZE - >PUSHW FIO.MemPtr - lda FIO.hFILE - >SYSCALL2 FRead +.97 lda #E.FTB - bcc .2 - pha - lda FIO.hMem - jsr K.FreeMem - pla -.99 pha +.98 pha lda FIO.hFILE >SYSCALL2 FClose pla sec -.9 rts +.99 rts +*-------------------------------------- +.1 jsr K.GetMem + bcs .96 -.2 sty .7+1 + >STYA FIO.MemPtr + stx FIO.hMem + + >PUSHWI $ffff + >PUSHW FIO.MemPtr + lda FIO.hFILE + >SYSCALL2 FRead + bcs .96 + + sty .7+1 sta .8+1 bit FIO.bTXT bpl .5 @@ -836,13 +833,23 @@ K.LoadFile clc sta .4+2 .4 stz $ffff Self Modified -.5 jsr .99 close file +.5 jsr .98 FClose .7 ldy #$ff SELFMODIFIED .8 lda #$ff SELFMODIFIED ldx FIO.hMem clc rts + +.96 pha + + jsr .98 FClose + + lda FIO.hMem + jsr K.FreeMem + pla + sec +.9 rts */-------------------------------------- * # FileSearch * Search a file in the provided PATH list @@ -946,7 +953,7 @@ ENV.Search.4 lda $ffff,y Self Modified, Append Filename... bra ENV.Search.4 ENV.Search.5 >LDYAI K.Buf256 - jsr FS.STAT.I + jsr FS.STAT.YA bcs ENV.Search.1 Failed...retry next path... lda K.S.STAT+S.STAT.P.TYPE diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 288b4807..878ef17f 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -72,7 +72,11 @@ K.ChMod jsr PFT.CheckPath2 >MLICALL MLIACL .9 rts -K.ChMod.RET4 >RET 4 +K.ChMod.RET4 inc pStack +K.ChMod.RET3 inc pStack + inc pStack + inc pStack + rts *-------------------------------------- * # FStat * Return information about a hFILE @@ -84,35 +88,13 @@ K.ChMod.RET4 >RET 4 * `>SYSCALL fstat` * ## RETURN VALUE *-------------------------------------- -K.FStat >PULLW K.Stat.Store.2+1 - >PULLA - jsr PFT.CheckNodeA +K.FStat jsr PFT.CheckNode2 + bcs K.ChMod.RET3 + + >PULLW K.Stat.Store.2+1 + + jsr FS.FSTAT bcs K.Stat.Store.RTS - - tax - lda OF.Table.hPath-1,x - jsr K.GetMemPtr - jsr PFT.YAToMLIPATH - - jsr FS.Stat - bcs K.Stat.Store.RTS - - lda (pFD) #S.FD.T - bne K.Stat.Store - - ldy #S.FD.REG.REF - lda (pFD),y - sta K.MLI.PARAMS+1 - - >MLICALL MLIGETEOF - bcs K.Stat.Store.RTS - - ldx #2 - -.1 lda K.MLI.PARAMS+2,x - sta K.S.STAT+S.STAT.SIZE,x - dex - bpl .1 K.Stat.Store ldy #S.STAT-1 @@ -171,7 +153,7 @@ K.MKDir jsr PFT.CheckPath2 stz K.MLI.PARAMS+5 stz K.MLI.PARAMS+6 lda #S.FI.ST.DIR - jmp IO.MLI.CREATE + jmp FS.CREATE */-------------------------------------- * # MKFIFO * return a pathname to a new FIFO diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 3cea3e7f..04d9a076 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -387,7 +387,11 @@ K.FOpen jsr PFT.CheckPath4 jsr STDIO.NewHFile bcc .99 - jmp UNISTD.Open.ERR + pha Save Error Code + lda IO.hFD + jsr K.Close + pla + sec .9 >POP 6 .99 rts