From a9b2c41a33761ab2620f7c1b46ef102d553d1f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 20 Jul 2018 13:51:08 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Docs/KERNEL.md | 37 +++++++++++++++++++++++++++++++------ .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/ASM.S.FIO.txt | 2 +- BIN/ASM.S.MAC.txt | 4 ++-- BIN/ASM.S.SYM.txt | 6 +++--- BIN/ASM.S.txt | 4 ++-- BIN/ATBROWSE.S.txt | 2 +- BIN/CHTYP.S.txt | 2 +- BIN/LS.S.txt | 8 ++++---- BIN/MD5.S.txt | 4 ++-- BIN/X.CPMVRM.S.txt | 28 +++++++++++----------------- BIN/X.FILEENUM.S.txt | 8 +++++--- BMP2PIX.S.txt | 4 ++-- DRV/LANCEGS.DRV.S.txt | 2 +- DRV/UTHER2.AI.DRV.S.txt | 2 +- DRV/UTHERNET.DRV.S.txt | 2 +- DRV/UTHERNET2.DRV.S.txt | 2 +- FNT2FON.S.txt | 8 ++++---- LIB/LIBCRYPT.S.txt | 2 +- LIB/LIBGUI.S.WND.txt | 2 +- LIB/LIBTCPIP.S.FRM.txt | 2 +- LIB/LIBTCPIP.S.SKT.txt | 4 ++-- README.md | 15 +++++++++------ SBIN/HTTPD.S.txt | 2 +- SBIN/SHELL.S.CMD.txt | 11 ++++++----- SYS/KERNEL.S.BIN.txt | 2 +- SYS/KERNEL.S.DIRENT.txt | 21 +++++++++++++++++---- SYS/KERNEL.S.ENV.txt | 2 +- SYS/KERNEL.S.INIT.txt | 20 ++++++++++---------- SYS/KERNEL.S.PFT.txt | 4 +++- SYS/KERNEL.S.STAT.txt | 17 +++++++++++++---- TEST.S.txt | 2 +- 33 files changed, 140 insertions(+), 91 deletions(-) diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 249f7d35..4425aa47 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -67,8 +67,14 @@ Y,A = FD A = DEVID # OpenDir + +## C +`int hDIR opendir (const char * dirpath);` + +## ASM **In:** - Y,A = PATH (C-String) +`>LDYA dirpath` +`>SYSCALL opendir` **Out:** CC : success A = hDIR @@ -76,8 +82,15 @@ Y,A = FD A = EC # ReadDir -**In:** - A = hDIR + +## C +`int readdir (int hDIR, S.DIRENT * dirent);` + +## ASM +**In:** +`>PUSHW dirent` +`lda hDIR` +`>SYSCALL readdir` **Out:** CC : success X = hDIRENT @@ -87,8 +100,14 @@ Y,A = FD note : A = 0 means no more entry # CloseDir + +## C +`void closedir(hDIR);` + +## ASM **In:** - A = hDIR +`lda hDIR` +`>SYSCALL closedir` **Out:** none, always succeed. @@ -445,9 +464,15 @@ Load a file in AUX memory (Stock Objects) # Stat Return information about a file + +## C +`int stat(const char *pathname, struct stat *statbuf);` + +## ASM **In:** - PUSHW = PTR to S.STAT buffer - PUSHW = PTR to Filename (C-String) +`>PUSHW statbuf` +`>LDYA pathname` +`>SYSCALL stat` **Out:** # MKDir diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7f31ac4c4fdb317ad357fc9dcd02813f1e3c1cf7..526a6becc8e123c46522a1af81db8558707d26d7 100644 GIT binary patch delta 7084 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 O`-H`P(KUTB%)bC3cqKRh diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 4d6371885006486474d1d6fb5cca1a824a155d48..f8131714ca493909f80ffccf7c7e9593c89b3085 100644 GIT binary patch delta 22519 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 delta 22133 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 Je3Q-p{{X2h4haAN diff --git a/BIN/ASM.S.FIO.txt b/BIN/ASM.S.FIO.txt index 750164e7..35d6130c 100644 --- a/BIN/ASM.S.FIO.txt +++ b/BIN/ASM.S.FIO.txt @@ -324,7 +324,7 @@ FIO.FileClose ldy #SRC.COUNT adc #SRC.hFILES-1 tay lda (pData),y - >SYSCALL FClose.A + >SYSCALL fclose ldy #SRC.COUNT lda (pData),y diff --git a/BIN/ASM.S.MAC.txt b/BIN/ASM.S.MAC.txt index 3d2eaf9a..14bf0cc1 100644 --- a/BIN/ASM.S.MAC.txt +++ b/BIN/ASM.S.MAC.txt @@ -8,7 +8,7 @@ MAC.Init >SYSCALL SListNew >STA.G MAC.hMacroList >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPMacroBuf @@ -21,7 +21,7 @@ MAC.Init >SYSCALL SListNew >STA.G MAC.hCtxList >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPCtxBuf diff --git a/BIN/ASM.S.SYM.txt b/BIN/ASM.S.SYM.txt index 92d9afe7..89fa16d8 100644 --- a/BIN/ASM.S.SYM.txt +++ b/BIN/ASM.S.SYM.txt @@ -21,7 +21,7 @@ SYM.Init >SYSCALL SListNew >STA.G SYM.hGlobalList >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPNameBuf @@ -29,7 +29,7 @@ SYM.Init >SYSCALL SListNew >STA.G SYM.hNameBuf >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPGlobalBuf @@ -37,7 +37,7 @@ SYM.Init >SYSCALL SListNew >STA.G SYM.hGlobalBuf >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPLookupBuf diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 7d1ca1b4..93b84625 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -219,14 +219,14 @@ CS.INIT ldy #S.PS.ARGC jsr OUT.Init >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPLineBuf txa >STA.G SRC.hLineBuf >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPTmpBuf txa diff --git a/BIN/ATBROWSE.S.txt b/BIN/ATBROWSE.S.txt index 645d2621..81d92b05 100644 --- a/BIN/ATBROWSE.S.txt +++ b/BIN/ATBROWSE.S.txt @@ -78,7 +78,7 @@ CS.RUN >STZ.G P.GetInfo Sync >LDYAI 1024 >STYA.G P.LookupName+$10 BufLen - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .99 >STYA.G P.LookupName+$12 BufPtr diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index c95e1c03..600149d2 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -102,7 +102,7 @@ CS.INIT beq .99 we also have a TYPE >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .99 >STYA ZPFullPath txa diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 52888e73..d3d263fd 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/LS + .TF BIN/LS *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 0 diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index 2a71ae03..3590d6f7 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -132,7 +132,7 @@ CS.RUN.FILE >LDA.G Arg >STA.G hFullPath >LDYAI FILEBUF.SIZE - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPDataBufPtr txa @@ -204,7 +204,7 @@ CS.QUIT >LDA.G hFullPath .2 >LDA.G hFile beq .3 - >SYSCALL FClose.A + >SYSCALL fclose .3 .7 lda hLIBCRYPT diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 8d2e03a9..ce2b1885 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -123,7 +123,7 @@ CS.INIT .FIN .8 >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 txa >STA.G hSrcFullPath @@ -131,7 +131,7 @@ CS.INIT .DO X.COPY.TO.DEST=1 >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 txa >STA.G hDstFullPath @@ -217,7 +217,7 @@ CS.RUN >SYSCALL GetChar ldy #hSrcFullPath jsr CS.RUN.GetPathY - >SYSCALL Remove.YA + >SYSCALL remove bcs .22 jsr CS.RUN.CheckErr Success!!! jsr CS.RUN.IncCount @@ -295,7 +295,7 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... bcs CS.RUN.LEAVE.RTS >LDYA ZPPtr1 - >SYSCALL Remove.YA + >SYSCALL remove jsr CS.RUN.CheckErr bcs .99 .FIN @@ -330,8 +330,6 @@ CS.RUN.DIR jsr CS.RUN.DIR.MSG ldy #hDstFullPath jsr CS.RUN.GetPathY - >PUSHYA - >SYSCALL Stat bcs .3 File Not exists...go create @@ -370,7 +368,7 @@ CS.RUN.DIR jsr CS.RUN.DIR.MSG .3 ldy #hDstFullPath jsr CS.RUN.GetPathY - >SYSCALL MKDir.YA + >SYSCALL mkdir .4 jsr CS.RUN.CheckErr bcs CS.RUN.DIR.RTS @@ -394,8 +392,6 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG ldy #hDstFullPath jsr CS.RUN.GetPathY - >PUSHYA - >SYSCALL Stat bcs .2 File Not exists...go create @@ -587,7 +583,7 @@ CS.RUN.CopyStart .9 pha ldy #hSrcFile lda (pData),y - >SYSCALL FClose.A + >SYSCALL fclose pla ldy #CopyRC @@ -618,7 +614,7 @@ CS.RUN.Open phy Save Filename *-------------------------------------- CS.RUN.Copy stz .90+1 >LDYAI X.COPY.BUF.SIZE - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPPtr1 @@ -667,11 +663,11 @@ CS.RUN.Copy stz .90+1 *-------------------------------------- CS.RUN.CopyEnd ldy #hSrcFile lda (pData),y - >SYSCALL FClose.A + >SYSCALL fclose ldy #hDstFile lda (pData),y - >SYSCALL FClose.A + >SYSCALL fclose ldy #bCopy lda #$0 @@ -725,7 +721,6 @@ CS.RUN.BuildFilePath jsr CS.RUN.GetPathY >STYA ZPPtr1 - >PUSHYA >SYSCALL StrCpy >PUSHW ZPFileName @@ -742,7 +737,6 @@ CS.RUN.BuildFilePath jsr CS.RUN.GetPathY >STYA ZPPtr1 - >PUSHYA >SYSCALL StrCpy ldy #hDstFileName @@ -791,10 +785,10 @@ CS.QUIT jsr LeaveSubDir ldy #hSrcFile lda (pData),y - >SYSCALL FClose.A + >SYSCALL fclose ldy #hDstFile lda (pData),y - >SYSCALL FClose.A + >SYSCALL fclose .1 ldy #hDstFullPath jsr CS.QUIT.FREE diff --git a/BIN/X.FILEENUM.S.txt b/BIN/X.FILEENUM.S.txt index 52095b7b..b32fba76 100644 --- a/BIN/X.FILEENUM.S.txt +++ b/BIN/X.FILEENUM.S.txt @@ -28,7 +28,7 @@ InitSrcDirYA >SYSCALL RealPath jmp .5 .55 >PUSHEA.G STAT - >PUSHW ZPPtr1 + >LDYA ZPPtr1 >SYSCALL Stat bcs .1 File/DIR does not exists, go extract pattern @@ -144,7 +144,7 @@ InitDstDirYA >SYSCALL RealPath >STA.G hFullPath >PUSHEA.G STAT - >PUSHW ZPPtr1 + >LDYA ZPPtr1 >SYSCALL Stat bcs .1 File/DIR does not exists, go extract DstFileName @@ -384,7 +384,7 @@ GetEntry.ReadDir adc #hDIRs-1 tay lda (pData),y - + >SYSCALL ReadDir bcs .9 >STYA ZPFileName @@ -563,3 +563,5 @@ BasePath..1 lda (pData),y *-------------------------------------- MAN SAVE /A2OSX.SRC/BIN/X.FILEENUM.S +LOAD /A2OSX.SRC/BIN/LS.S +ASM diff --git a/BMP2PIX.S.txt b/BMP2PIX.S.txt index 3b07a916..7e9e395f 100644 --- a/BMP2PIX.S.txt +++ b/BMP2PIX.S.txt @@ -94,7 +94,7 @@ CS.INIT beq .99 >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs CS.INIT.RTS >STYA ZPBufPtr @@ -316,7 +316,7 @@ CS.QUIT >LDA.G hBuf .1 >LDA.G hOutputFile beq .8 - >SYSCALL FClose.A + >SYSCALL fclose .8 clc rts diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 16919347..1970d61a 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -195,7 +195,7 @@ READBLOCK.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ bne .11 inc -.11 >SYSCALL GetMem.YA +.11 >SYSCALL getmem bcs .99 >STYA ZPTmpPTR stx .8+1 diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 3c9b6ee3..cc91d02f 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -206,7 +206,7 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD adc /S.IP ply - >SYSCALL GetMem.YA + >SYSCALL getmem bcs READBLOCK.RTS >STYA ZPTmpPTR diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index 663bc569..6b243076 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -226,7 +226,7 @@ READBLOCK php lda Size+1 adc #0 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPTmpPTR diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index 9a479582..f2313beb 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -192,7 +192,7 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD ldy W5100.DR,x get RX.Size LO sty RXTX.Size - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .99 >STYA ZPTmpPTR stx .8+1 diff --git a/FNT2FON.S.txt b/FNT2FON.S.txt index 43400b9c..abffb5b5 100644 --- a/FNT2FON.S.txt +++ b/FNT2FON.S.txt @@ -97,7 +97,7 @@ CS.INIT beq .99 >LDYAI 8192 max 256x256 pixels - >SYSCALL GetMem.YA + >SYSCALL getmem bcs CS.INIT.RTS >STYA ZPCharBufPtr @@ -180,7 +180,7 @@ CS.INIT.CREATEOUTPUT >STA.G hOutputFile >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPOutPutBufPtr @@ -228,7 +228,7 @@ CS.RUN ldy #S.FNT.dfBreakChar sta (pData),y ply - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPOutPutTblPtr txa @@ -789,7 +789,7 @@ CS.QUIT >LDA.G hOutPutBuf .1 >LDA.G hOutputFile beq .2 - >SYSCALL FClose.A + >SYSCALL fclose .2 >LDA.G hInputBuf beq .3 diff --git a/LIB/LIBCRYPT.S.txt b/LIB/LIBCRYPT.S.txt index bdfdde6d..23670aad 100644 --- a/LIB/LIBCRYPT.S.txt +++ b/LIB/LIBCRYPT.S.txt @@ -153,7 +153,7 @@ MD5 >STYA ZPDataPtr * A = hMem To S.MD5 *\-------------------------------------- MD5Init >LDYAI S.MD5 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPCtxPtr diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 2caaf15b..5b07b46c 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -55,7 +55,7 @@ WND.Quit rts *-------------------------------------- WND.New >STYA ZPPtr1 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPWNDPtr diff --git a/LIB/LIBTCPIP.S.FRM.txt b/LIB/LIBTCPIP.S.FRM.txt index 09801f84..e5a84f2b 100644 --- a/LIB/LIBTCPIP.S.FRM.txt +++ b/LIB/LIBTCPIP.S.FRM.txt @@ -43,7 +43,7 @@ FRM.NewIP stx .8+1 txa adc #0 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 stx hFrameOut diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index c2313445..27959523 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -1162,7 +1162,7 @@ SKT.NewTCB >LDYAI S.TCB bpl .2 >LDYAI K.TCP.WSIZE - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 txa @@ -1170,7 +1170,7 @@ SKT.NewTCB >LDYAI S.TCB sta (ZPTmpPtr3),y >LDYAI K.TCP.WSIZE - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 txa diff --git a/README.md b/README.md index fa5bf91d..3192e22d 100644 --- a/README.md +++ b/README.md @@ -304,23 +304,24 @@ note : '$VAR' does NOT expand Variable | LSDEV | Working | | 0.92 | | PS | Working | | 0.92 | | MD | Working | | 0.92 | -| LS | Working | -A : Do Not Print . & .. | 0.9.1 | +| LS | Working | -A : Do Not Print . & .. | 0.92 | | | | -L : long listing with size/date... | | | | | -R : Recurse subdirectories | | -| RM | Working | -C : Continue On Error | 0.9.1 | +| RM | Working | -C : Continue On Error | 0.92 | | | | -Q : Quiet | | | | | -R : Recurse subdirectories | | -| CP | Working | -C : Continue On Error | 0.9.1 | +| CP | Working | -C : Continue On Error | 0.92 | | | | -Q : Quiet | | | | | -R : Recurse subdirectories | | | | | -Y : Dont't Prompt For Override | | -| MV | Working | -C : Continue On Error | 0.9.1 | +| MV | Working | -C : Continue On Error | 0.92 | | | | -Q : Quiet | | | | | -R : Recurse subdirectories | | | | | -Y : Dont't Prompt For Override | | | CAT | Working | -A : Show All non printable caracters | 0.92 | | | | -N : Number all output lines | | | | | -S : Suppress repeated empty output lines | | +| EDIT | Working | still missing : find/replace | 0.92 | | CHTYP | Working | -C : Continue On Error | 0.9.1 | | | | -R : Recurse subdirectories | | | CHMOD | In Progress | -C : Continue On Error | 0.9 | @@ -332,8 +333,10 @@ note : '$VAR' does NOT expand Variable | FORMAT | In Progress | -L : Low-Level Format | 0.9.1 | | | | -1..9 : Catalog Size (block count) | | | MD5 | In Progress | -D : String Input | 0.9.1 | -| EDIT | Working | still missing : find/replace | 0.92 | | NSCUTIL | Working | Tool for setting time in NSC/DL1216E | 0.9 | + +## Network (TCPIP) tools: +| Name | Status | Comment | K.Ver | | ---- | ------ | ------- | ----- | | ARP | Working | dump ARP cache, setup a static ARP entry | 0.9.1 | | PING | Working | | 0.9.1 | @@ -341,7 +344,7 @@ note : '$VAR' does NOT expand Variable | IPCONFIG | Working | renamed from NETINFO | 0.9.1 | | NETSTAT | Working | | 0.9.1 | -## BIN,External DEV Shell commands: +## DEV tools: | Name | Status | Comment | K.Ver | | ---- | ------ | ------- | ----- | | ASM | In Progress | S-C MASM based multi CPU assembler | 0.9.1 | diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index c9270956..2d388dad 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -106,7 +106,7 @@ CS.RUN.INIT ldx #3 sta (pData),y >LDYAI 256 - >SYSCALL GetMem.YA + >SYSCALL getmem bcs CS.RUN.RTS >STYA ZPLinePtr diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 6b62f2a0..a0047c32 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -74,9 +74,10 @@ Cmd.Parse.NextC lda (ZPPtr1) Cmd.Exec lda #0 >STA.G CMD.bStartProc >STA.G CMD.hFullpath - - >LDYA ZPCMDBuf - >SYSCALL puts + +* SET +X +* >LDYA ZPCMDBuf +* >SYSCALL puts >LDYA ZPCMDBuf >SYSCALL ExpandStr @@ -155,7 +156,7 @@ Cmd.Exec.EXT jsr Cmd.Exec.Split bne .1 >PUSHEA.G CMD.Stat - >PUSHW ZPPtr1 + >LDYA ZPPtr1 >SYSCALL STAT bcs Cmd.Exec.Done @@ -315,7 +316,7 @@ Cmd.Exec.CD lda (ZPPTR2) beq .8 we have '/' >PUSHEA.G CMD.Stat - >PUSHW ZPPTR2 + >LDYA ZPPTR2 >SYSCALL STAT bcs .9 diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 5da37644..153e7660 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -197,7 +197,7 @@ BIN.Load >STYA BIN.CmdLine bne .1 *-------------------------------------- BIN.Load.1 >PUSHWI K.S.STAT - >PUSHW BIN.CmdLine + >LDYA BIN.CmdLine >SYSCALL STAT BANK1!!! Look for AUXTYPE bcs .9 diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 53e5f44b..7ee1e59e 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -3,8 +3,12 @@ PREFIX /A2OSX.BUILD AUTO 4,1 */-------------------------------------- * # OpenDir +* ## C +* `int hDIR opendir (const char * dirpath);` +* ## ASM * **In:** -* Y,A = PATH (C-String) +* `>LDYA dirpath` +* `>SYSCALL opendir` * **Out:** * CC : success * A = hDIR @@ -59,8 +63,13 @@ K.OpenDir jsr PFT.CheckPathYA .99 rts */-------------------------------------- * # ReadDir -* **In:** -* A = hDIR +* ## C +* `int readdir (int hDIR, S.DIRENT * dirent);` +* ## ASM +* **In:** +* `>PUSHW dirent` +* `lda hDIR` +* `>SYSCALL readdir` * **Out:** * CC : success * X = hDIRENT @@ -599,8 +608,12 @@ K.ReadDir.ConvertTime rts */------------------------------------- * # CloseDir +* ## C +* `void closedir(hDIR);` +* ## ASM * **In:** -* A = hDIR +* `lda hDIR` +* `>SYSCALL closedir` * **Out:** * none, always succeed. *\------------------------------------- diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 6e0e571c..35e988bc 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -203,7 +203,7 @@ K.FileSearch.YA >STYA .4+1 bra .4 .5 >PUSHWI K.S.STAT - >PUSHWI K.Buf256 + >LDYAI K.Buf256 >SYSCALL STAT -> BNK1 bcs .1 Failed...retry next path... diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 82e016a5..661736b4 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -993,16 +993,16 @@ MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n" *-------------------------------------- SYSSCREEN.TOP .AZ "A2osX 0.92 System Screen" MSG.Init3 .AZ "A2osX[Stage3]:Init\r\nPress Ctrl-D for Mantenance Mode.\r\n" -MSG.DEV .AZ "-Device Manager...\r\n" -MSG.BLKDEV .AZ " /DEV/%s\r\n" -MSG.IRQ .AZ "-Interrupt Manager..." -MSG.IRQ.VBL .AZ "Mouse VBL IRQ Activated.\r\n" -MSG.IRQ.CLOCK .AZ "Clock Card IRQ Activated.\r\n" -MSG.IRQ.POLL .AZ "Polling Mode.\r\n" -MSG.EVT .AZ "-Event Manager...\r\n" -MSG.FLT .AZ "-Path Filter...\r\n" -MSG.TSK .AZ "-Task Manager...\r\n" -MSG.Prefix .AZ "Prefix:%s\r\n" +MSG.DEV .AZ "Device Manager...\r\n" +MSG.BLKDEV .AZ " Adding : /DEV/%s\r\n" +MSG.IRQ .AZ "Interrupt Manager...\r\n" +MSG.IRQ.VBL .AZ " Mouse VBL IRQ Activated.\r\n" +MSG.IRQ.CLOCK .AZ " Clock Card IRQ Activated.\r\n" +MSG.IRQ.POLL .AZ " Polling Mode.\r\n" +MSG.EVT .AZ "Event Manager...\r\n" +MSG.FLT .AZ "Path Filter...\r\n" +MSG.TSK .AZ "Task Manager...\r\n" +MSG.Prefix .AZ "Root:%s\r\n" MSG.MMode .AZ "Ctrl-D Pressed, entering Maintenance mode...\r\n" MSG.Startup .AZ "Executing Kernel Startup Script...\r\nCmd:%s\r\n" MSG.StartupErr .AZ "Failed : [$%h]\r\n" diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 5ac5eaea..dc51a48d 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -87,7 +87,9 @@ PFT.CheckNodeA sta .9+1 save hFILE jsr K.GetMemPtr X = unmodified >STYA ZPPtr1 - lda (ZPPtr1) + + ldy #S.FD.HANDLER + lda (ZPPtr1),y beq .9 Handler is 0, back to kernel.... jsr K.GetMemPtr diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 2265c2ac..9dd26f0c 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -4,6 +4,9 @@ AUTO 4,1 *-------------------------------------- * # FStat * Return information about a hfile +* ## ASM +* `int fstat(int fd, struct stat *statbuf);` +* ## ASM * **In:** * PUSHW = PTR to S.STAT buffer * PUSHB = hFile @@ -14,14 +17,20 @@ AUTO 4,1 */-------------------------------------- * # Stat * Return information about a file +* ## C +* `int stat(const char *pathname, struct stat *statbuf);` +* ## ASM * **In:** -* PUSHW = PTR to S.STAT buffer -* PUSHW = PTR to Filename (C-String) +* `>PUSHW statbuf` +* `>LDYA pathname` +* `>SYSCALL stat` * **Out:** *\-------------------------------------- -K.Stat jsr PFT.CheckPathSTK - jsr STDIO.PullMLIPath +K.Stat jsr PFT.CheckPathYA + jsr STDIO.SetMLIPathYA + >PULLW K.Stat.StoreY+1 + >MLICALL MLIGETFILEINFO bcs .9 diff --git a/TEST.S.txt b/TEST.S.txt index 921c1267..725f2107 100644 --- a/TEST.S.txt +++ b/TEST.S.txt @@ -91,7 +91,7 @@ CS.RUN.Pak >PUSHWI 0 Aux type >STA.G PAK.hFileBuf >LDYA.G PAK.FileSize - >SYSCALL GetMem.YA + >SYSCALL getmem bcs .9 >STYA ZPPakSrcPtr txa