From 8f59dca0031657f0da8874c0521cd77da37b332d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 2 Oct 2018 17:52:30 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes A2osX.S.txt | 4 ++-- BIN/ASM.S.FIO.txt | 6 +++--- BIN/ATBROWSE.S.txt | 4 ++-- BIN/ATLOGON.S.txt | 4 ++-- BIN/CAT.S.txt | 16 +++++++-------- BIN/CHTYP.S.txt | 2 +- BIN/CP.S.txt | 2 +- BIN/EDIT.S.txt | 8 ++++---- BIN/LS.S.txt | 2 +- BIN/LSDEV.S.txt | 2 +- BIN/MD5.S.txt | 4 ++-- BIN/MV.S.txt | 2 +- BIN/NSCUTIL.S.txt | 2 +- BIN/RM.S.txt | 2 +- BIN/X.CPMVRM.S.txt | 4 ++-- BMP2PIX.S.txt | 4 ++-- DRV/CONSOLE.DRV.S.txt | 2 +- DRV/DHGR.DRV.S.txt | 2 +- DRV/LANCEGS.DRV.S.txt | 2 +- DRV/MOUSE.DRV.S.txt | 2 +- DRV/PIC.DRV.S.txt | 2 +- DRV/SSC.DRV.S.txt | 2 +- DRV/SSC.I.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 | 4 ++-- INC/A2osX.I.txt | 19 ++++++++++-------- INC/KERNEL.I.txt | 4 ++-- INC/MLI.I.txt | 2 +- LIB/LIBBLKDEV.S.txt | 2 +- LIB/LIBGUI.S.FON.txt | 4 ++-- LIB/LIBTCPIP.S.CFG.txt | 4 ++-- LIB/LIBTCPIP.S.txt | 2 +- SBIN/KCONFIG.S.txt | 4 ++-- SBIN/SHELL.S.txt | 2 +- SYS/KERNEL.S.BIN.txt | 2 +- SYS/KERNEL.S.FIO.txt | 4 ++-- SYS/KERNEL.S.INIT.txt | 17 ++++++++++------ SYS/KERNEL.S.IO.txt | 42 ++++++++++++++++++++++++++++----------- SYS/KERNEL.S.STAT.txt | 31 ++++++++++++++++------------- SYS/KERNEL.S.STDIO.txt | 24 +++++++++++----------- SYS/KERNEL.S.txt | 4 ++-- SYS/KM.APPLETALK.S.txt | 2 +- SYS/KM.NSC.S.txt | 2 +- SYS/KM.RAMWORKS.S.txt | 4 ++-- SYS/KM.VSDRIVE.S.txt | 4 ++-- TEST.S.txt | 2 +- 50 files changed, 150 insertions(+), 123 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index ed61063a3c0f14f281597afdfef88b21af57b9cf..d109d435f447ac83788754b1699b3aa5e81b3fc7 100644 GIT binary patch delta 14848 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 delta 14371 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index a356700e7f3e65990f17cb56e0fa388f37e5313a..a35150a16d75e1558cba9b36bf93f5243843576b 100644 GIT binary patch delta 17737 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 delta 17243 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 diff --git a/A2osX.S.txt b/A2osX.S.txt index 3caedd4a..a14d2e23 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -10,8 +10,8 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/IO.I .INB INC/MONITOR.I - .INB INC/PRODOS.I - .INB INC/MLI.ERR.I + .INB INC/MLI.I + .INB INC/MLI.E.I *-------------------------------------- TmpPtr1 .EQ $0 main & aux ZP TmpPtr2 .EQ $2 main & aux ZP diff --git a/BIN/ASM.S.FIO.txt b/BIN/ASM.S.FIO.txt index b698047f..5e4c8aa5 100644 --- a/BIN/ASM.S.FIO.txt +++ b/BIN/ASM.S.FIO.txt @@ -59,7 +59,7 @@ FIO.LOAD.ASM.T >STYA ZPPtr2 >PUSHWI 0 Aux type >PUSHBI 6 S.FI.T.BIN - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >LDYA L.ASM.T.FILENAME >SYSCALL LoadFile bcs .9 @@ -129,7 +129,7 @@ FIO.OpenFile >STYA ZPPtr1 >PUSHWI 0 >PUSHBI 4 - >PUSHBI SYS.FOpen.R+SYS.FOpen.T + >PUSHBI O.RDONLY+O.TEXT bra .3 .2 cmp #$FA S-C/BAS? @@ -137,7 +137,7 @@ FIO.OpenFile >STYA ZPPtr1 >PUSHWI 0 >PUSHBI $FA - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY .3 >LDYA ZPPtr1 >SYSCALL FOpen diff --git a/BIN/ATBROWSE.S.txt b/BIN/ATBROWSE.S.txt index 575f6f7b..dd5afcdf 100644 --- a/BIN/ATBROWSE.S.txt +++ b/BIN/ATBROWSE.S.txt @@ -8,8 +8,8 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/PRODOS.I - .INB INC/MLI.ERR.I + .INB INC/MLI.I + .INB INC/MLI.E.I .INB INC/APPLETALK.I *-------------------------------------- ZPPTR1 .EQ ZPBIN diff --git a/BIN/ATLOGON.S.txt b/BIN/ATLOGON.S.txt index 26b56e6b..0dc83ab4 100644 --- a/BIN/ATLOGON.S.txt +++ b/BIN/ATLOGON.S.txt @@ -8,8 +8,8 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/PRODOS.I - .INB INC/MLI.ERR.I + .INB INC/MLI.I + .INB INC/MLI.E.I .INB INC/APPLETALK.I *-------------------------------------- ZPPTR1 .EQ ZPBIN diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index 2b8a8b90..b5c9b5ae 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -8,7 +8,8 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.I + .INB INC/MLI.E.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPBufPtr .EQ ZPBIN+2 @@ -19,7 +20,8 @@ CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 - .DA 0 + .DA #S.PS.F.EVENT S.PS.F + .DA #0 .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #16 SS @@ -84,11 +86,7 @@ CS.INIT >STYA ZPBufPtr txa >STA.G hBuf -.8 -* lda (pPs) -* ora #S.PS.F.EVENT Now accept events -* sta (pPs) - + clc .9 rts *-------------------------------------- @@ -253,8 +251,8 @@ CS.RUN.OPEN >SYSCALL RealPath pha >PUSHWI 0 Aux type - >PUSHBI 4 S.FI.T.TXT - >PUSHBI SYS.FOpen.R+SYS.FOpen.T + >PUSHBI S.FI.T.TXT + >PUSHBI O.RDONLY+O.TEXT pla diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index 2e640b76..4426f710 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 0 diff --git a/BIN/CP.S.txt b/BIN/CP.S.txt index a48d63c8..7847747c 100644 --- a/BIN/CP.S.txt +++ b/BIN/CP.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- X.COPY.TO.DEST .EQ 1 X.DELETE.SOURCE .EQ 0 diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 3f510194..5c433286 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -334,8 +334,8 @@ CharIn.Esc ldy #bEscMode rts *-------------------------------------- LoadFile >PUSHWI 0 Aux type - >PUSHBI 4 S.FI.T.TXT - >PUSHBI SYS.FOpen.R + >PUSHBI S.FI.T.TXT + >PUSHBI O.RDONLY >LDA.G hFileName >SYSCALL GetMemPtr @@ -403,8 +403,8 @@ LoadFile >PUSHWI 0 Aux type .9 rts *-------------------------------------- SaveFile >PUSHWI 0 Aux type - >PUSHBI 4 S.FI.T.TXT - >PUSHBI SYS.FOpen.X+SYS.FOpen.W + >PUSHBI S.FI.T.TXT + >PUSHBI O.CREATE+O.WRONLY >LDA.G hFileName >SYSCALL GetMemPtr diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 0b8e7e44..5801662b 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 0 diff --git a/BIN/LSDEV.S.txt b/BIN/LSDEV.S.txt index d37cc52c..26465e47 100644 --- a/BIN/LSDEV.S.txt +++ b/BIN/LSDEV.S.txt @@ -7,7 +7,7 @@ AUTO 4,1 .TF BIN/LSDEV *-------------------------------------- .INB INC/MACROS.I - .INB INC/PRODOS.I + .INB INC/MLI.I .INB INC/A2OSX.I *-------------------------------------- ZPPTR1 .EQ ZPBIN diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index 3df4e47c..bf51e171 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/LIBCRYPT.I *-------------------------------------- FILEBUF.SIZE .EQ 4096 @@ -128,7 +128,7 @@ CS.RUN.FILE >LDA.G Arg >PUSHWI 0 Aux type >PUSHBI 0 - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >LDA.G hFullPath >SYSCALL GetMemPtr diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 4eab457b..7c4cb7ce 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- X.COPY.TO.DEST .EQ 1 X.DELETE.SOURCE .EQ 1 diff --git a/BIN/NSCUTIL.S.txt b/BIN/NSCUTIL.S.txt index cd552036..bac2b885 100644 --- a/BIN/NSCUTIL.S.txt +++ b/BIN/NSCUTIL.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- ZPPtr1 .EQ ZPBIN *-------------------------------------- diff --git a/BIN/RM.S.txt b/BIN/RM.S.txt index ffcfcf55..cc180b03 100644 --- a/BIN/RM.S.txt +++ b/BIN/RM.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 1 diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 6c31bb1c..e598d552 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -551,7 +551,7 @@ CS.RUN.Rename ldy #hDstFullPath CS.RUN.CopyStart ldy #hSrcFullPath - lda #SYS.FOpen.R + lda #O.RDONLY jsr CS.RUN.Open bcs .99 @@ -559,7 +559,7 @@ CS.RUN.CopyStart >STA.G hSrcFile ldy #hDstFullPath - lda #SYS.FOpen.W+SYS.FOpen.X + lda #O.WRONLY+O.CREATE jsr CS.RUN.Open bcs .9 diff --git a/BMP2PIX.S.txt b/BMP2PIX.S.txt index 3eb0e0f6..6a51445e 100644 --- a/BMP2PIX.S.txt +++ b/BMP2PIX.S.txt @@ -107,7 +107,7 @@ CS.INIT.RTS rts CS.INIT.OPENINPUT >PUSHWI 0 Aux type >PUSHBI 0 Type - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >LDYA ZPPtr1 >SYSCALL LoadFile bcs CS.INIT.RTS @@ -183,7 +183,7 @@ CS.INIT.OPENINPUT CS.INIT.CREATEOUTPUT >PUSHWI 0 Aux type >PUSHBI $CB PIX Type - >PUSHBI SYS.FOpen.W+SYS.FOpen.X + >PUSHBI O.WRONLY+O.CREATE >LDYA ZPPtr1 >SYSCALL FOpen bcs .9 diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 4da80fb7..7c7a6781 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/IO.I .INB INC/NET.TELNET.I *-------------------------------------- diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 08786e13..bbf11cac 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/PRODOS.I + .INB INC/MLI.I .INB INC/IO.I .INB INC/GFX.I .INB INC/GFX.EVE.I diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 9df0ff2d..219c298a 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/NIC.I .INB INC/NIC.91C96.I .INB INC/ETH.I diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index 95adf151..0db85b02 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/XY.MOUSE.I .INB INC/LIBGUI.I *-------------------------------------- diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index 5b19783d..ea9f7889 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- ZPTmpPtr1 .EQ ZPDRV *-------------------------------------- diff --git a/DRV/SSC.DRV.S.txt b/DRV/SSC.DRV.S.txt index f75edbf2..d1218907 100644 --- a/DRV/SSC.DRV.S.txt +++ b/DRV/SSC.DRV.S.txt @@ -7,7 +7,7 @@ SSCIRQ .EQ 0 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/COM.I .INB INC/COM.6551.I .INB /A2OSX.SRC/DRV/X.SSC.DRV.S diff --git a/DRV/SSC.I.DRV.S.txt b/DRV/SSC.I.DRV.S.txt index 44573c60..72186114 100644 --- a/DRV/SSC.I.DRV.S.txt +++ b/DRV/SSC.I.DRV.S.txt @@ -7,7 +7,7 @@ SSCIRQ .EQ 1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/COM.I .INB INC/COM.6551.I .INB /A2OSX.SRC/DRV/X.SSC.DRV.S diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 0ca6ad2d..2edec210 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -7,7 +7,7 @@ U2AI .EQ 1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/NIC.I .INB INC/NIC.W5100.I .INB INC/ETH.I diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index 5634f011..0796e60a 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/NIC.I .INB INC/NIC.8900A.I .INB INC/ETH.I diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index ef74739c..07d0e955 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -7,7 +7,7 @@ U2AI .EQ 0 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/NIC.I .INB INC/NIC.W5100.I .INB INC/ETH.I diff --git a/FNT2FON.S.txt b/FNT2FON.S.txt index ee2becec..902af1b2 100644 --- a/FNT2FON.S.txt +++ b/FNT2FON.S.txt @@ -110,7 +110,7 @@ CS.INIT.RTS rts CS.INIT.OPENINPUT >PUSHWI 0 Aux type >PUSHBI 0 Type - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >LDYA ZPPtr1 >SYSCALL LoadFile bcs CS.INIT.RTS @@ -173,7 +173,7 @@ CS.INIT.OPENINPUT CS.INIT.CREATEOUTPUT >PUSHWI 0 Aux type >PUSHBI $CC FON Type - >PUSHBI SYS.FOpen.W+SYS.FOpen.X + >PUSHBI O.WRONLY+O.CREATE >LDYA ZPPtr1 >SYSCALL FOpen bcs .9 diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index a1458f00..f7d3b359 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -4,6 +4,7 @@ AUTO 4,1 *-------------------------------------- K.VER .EQ $5C00 92.0 K.ENV.SIZE .EQ 256 +K.PIPE.SIZE .EQ 256 K.FLT.MAX .EQ 4 K.EVT.MAX .EQ 4 K.DEV.MAX .EQ 32 @@ -401,7 +402,7 @@ S.FD.T.BDEV .EQ 6 S.FD.T.LNK .EQ 8 S.FD.T.DSOCK .EQ 10 S.FD.T.SSOCK .EQ 12 -S.FD.T.FIFO .EQ 14 +S.FD.T.PIPE .EQ 14 S.FD.HANDLER .EQ 1 0=KRNL,!0=hLIB (LIBNFS,LIBTCPIP.....) *-------------------------------------- S.FD.REG.REF .EQ 2 @@ -436,14 +437,16 @@ S.FD.SOCK.STATUS .EQ 7 * S.FD.SOCK .EQ 8 *-------------------------------------- -S.FD.FIFO.S .EQ 2 -S.FD.FIFO.S.ROpened .EQ 1 -S.FD.FIFO.S.WOpened .EQ 2 -S.FD.FIFO.hMem .EQ 3 -S.FD.FIFO.Tail .EQ 4 -S.FD.FIFO.Head .EQ 6 +S.FD.PIPE.S .EQ 2 +S.FD.PIPE.S.ROpened .EQ %00000001 +S.FD.PIPE.S.RClosed .EQ %00000010 +S.FD.PIPE.S.WOpened .EQ %00000100 +S.FD.PIPE.S.WClosed .EQ %00001000 +S.FD.PIPE.hMem .EQ 3 +S.FD.PIPE.Tail .EQ 4 +S.FD.PIPE.Head .EQ 6 * -S.FD.FIFO .EQ 8 +S.FD.PIPE .EQ 8 *-------------------------------------- * PS STRUCT *-------------------------------------- diff --git a/INC/KERNEL.I.txt b/INC/KERNEL.I.txt index bbf6e987..ba9e7b2b 100644 --- a/INC/KERNEL.I.txt +++ b/INC/KERNEL.I.txt @@ -106,8 +106,8 @@ Dev.Table.pFDHI .EQ $0C60 K.Dev.MAX *-------------------------------------- * Nod (Opened files) *-------------------------------------- -Nod.Table.hFD .EQ $0C80 K.NOD.MAX -Nod.Table.hPath .EQ $0CC0 K.NOD.MAX +Nod.Table.hPath .EQ $0C80 K.NOD.MAX +Nod.Table.hFD .EQ $0CC0 K.NOD.MAX *-------------------------------------- PS.Table.hMem .EQ $0D00 K.PS.MAX PS.Table.PID .EQ $0D20 K.PS.MAX diff --git a/INC/MLI.I.txt b/INC/MLI.I.txt index 227d6cba..c89dcecc 100644 --- a/INC/MLI.I.txt +++ b/INC/MLI.I.txt @@ -133,4 +133,4 @@ MACHID.CLK .EQ %00000001 *KVERSION .EQ $BFFF *-------------------------------------- MAN -SAVE INC/PRODOS.I +SAVE INC/MLI.I diff --git a/LIB/LIBBLKDEV.S.txt b/LIB/LIBBLKDEV.S.txt index e1cac5db..ae1f2194 100644 --- a/LIB/LIBBLKDEV.S.txt +++ b/LIB/LIBBLKDEV.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/PRODOS.I + .INB INC/MLI.I .INB INC/LIBBLKDEV.I *-------------------------------------- * NIBBLE track len = $1A00 (6656) bytes: diff --git a/LIB/LIBGUI.S.FON.txt b/LIB/LIBGUI.S.FON.txt index e7730c80..31a2bedf 100644 --- a/LIB/LIBGUI.S.FON.txt +++ b/LIB/LIBGUI.S.FON.txt @@ -4,7 +4,7 @@ AUTO 4,1 *-------------------------------------- FON.Init >PUSHWI 0 Aux type >PUSHBI $CC Type - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >PUSHW L.SYSX7 >SYSCALL LoadStkObj bcs .9 @@ -12,7 +12,7 @@ FON.Init >PUSHWI 0 Aux type >PUSHWI 0 Aux type >PUSHBI $CC Type - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >PUSHW L.SYSX7B >SYSCALL LoadStkObj bcs .9 diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 337c16dc..df99c45f 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -378,8 +378,8 @@ CFG.Read.Open stz CFG.hCfgFile pha >PUSHWI 0 - >PUSHBI 6 S.FI.T.TXT - >PUSHBI SYS.FOpen.R + >PUSHBI S.FI.T.TXT + >PUSHBI O.RDONLY pla >SYSCALL fopen diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 3858f216..a1415269 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I .INB INC/NIC.I .INB INC/ETH.I .INB INC/LIBTCPIP.I diff --git a/SBIN/KCONFIG.S.txt b/SBIN/KCONFIG.S.txt index 1fb120d1..602c1e2e 100644 --- a/SBIN/KCONFIG.S.txt +++ b/SBIN/KCONFIG.S.txt @@ -188,7 +188,7 @@ CS.RUN.Load >PUSHEA.G StatBuf >PUSHWI 0 Aux type >PUSHBI 6 S.FI.T.BIN - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >LDA.G hFileName >SYSCALL GetMemPtr >SYSCALL LoadFile @@ -217,7 +217,7 @@ CS.RUN.Load >PUSHEA.G StatBuf *-------------------------------------- CS.RUN.Save >PUSHWI 0 AUXTYPE >PUSHBI 6 S.FI.T.BIN - >PUSHBI SYS.FOpen.W+SYS.FOpen.X + >PUSHBI O.WRONLY+O.CREATE >LDA.G hFileName >SYSCALL GetMemPtr diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 2d18aa66..c72eec83 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -8,7 +8,7 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/MLI.ERR.I + .INB INC/MLI.E.I *-------------------------------------- ZPPtr1 .EQ ZPBIN ZPPtr2 .EQ ZPBIN+2 diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 0587f907..acddbd9d 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -211,7 +211,7 @@ BIN.Load.1 >PUSHWI K.S.STAT >PUSHYA Push AUXTYPE >PUSHBI S.FI.T.BIN - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY >LDYA BIN.CmdLine >SYSCALL LoadFile BANK1!!! diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index 1087c0a3..f0c5d0db 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -12,8 +12,8 @@ AUTO 4,1 *\-------------------------------------- K.LoadTxtFile pha >PUSHWI 0 Aux type - >PUSHBI 4 S.FI.T.TXT - >PUSHBI SYS.FOpen.R + >PUSHBI S.FI.T.TXT + >PUSHBI O.RDONLY pla sec .HS 90 BCC diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index c413f2cc..861b88ca 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -308,8 +308,9 @@ PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel) clc .9 rts *-------------------------------------- -CPU.Init.6502 >LDYAI MSG.CPU - >SYSCALL puts +CPU.Init.6502 >PUSHBI 0 + >LDYAI MSG.CPU + >SYSCALL printf jsr Detect6502 A = CPU type sta A2osX.CPUTYPE @@ -325,10 +326,13 @@ CPU.Init.6502 >LDYAI MSG.CPU lda MACHID and #MACHID.T cmp #MACHID.T.IIc - beq CPU.Init.Z80 + bne .10 + + jmp CPU.Init.Z80 +.10 >PUSHBI 0 >LDYAI MSG.CPU.SPEED - >SYSCALL puts + >SYSCALL printf stz A2osX.RANDOM16 stz A2osX.RANDOM16+1 @@ -392,8 +396,9 @@ CPU.Init.6502 >LDYAI MSG.CPU >SYSCALL printf rts *-------------------------------------- -CPU.Init.Z80 >LDYAI MSG.Z80 - >SYSCALL puts +CPU.Init.Z80 >PUSHBI 0 + >LDYAI MSG.Z80 + >SYSCALL printf jsr DetectZ80 bcs .9 diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 51bc24a0..e458df6d 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -78,7 +78,7 @@ K.Close jsr K.GetMemPtr .DA STDIO.IOERR LNK .DA STDIO.IOERR DSOCK .DA IO.CLOSE.SSOCK - .DA IO.CLOSE.FIFO + .DA IO.CLOSE.PIPE .9 lda #MLI.E.NODEV sec @@ -90,7 +90,7 @@ IO.CLOSE.CDEV *-------------------------------------- IO.CLOSE.SSOCK *-------------------------------------- -IO.CLOSE.FIFO clc +IO.CLOSE.PIPE clc rts */-------------------------------------- * # read @@ -125,7 +125,7 @@ IO.Read.I lda (pFD) #S.FD.T .DA STDIO.IOERR LNK .DA STDIO.IOERR DSOCK .DA IO.READ.SSOCK - .DA IO.READ.FIFO + .DA IO.READ.PIPE */-------------------------------------- * # write * ## C @@ -159,7 +159,7 @@ IO.Write.I lda (pFD) #S.FD.T .DA STDIO.IOERR LNK .DA STDIO.IOERR DSOCK .DA IO.WRITE.SSOCK - .DA IO.WRITE.FIFO + .DA IO.WRITE.PIPE K.Write.9 lda #MLI.E.NODEV >RET 4 @@ -215,28 +215,45 @@ IO.READ.SSOCK ldy #S.FD.SOCK.READ .1 jmp $ffff *-------------------------------------- -IO.READ.FIFO +IO.READ.PIPE ldy #S.FD.PIPE.S + lda (pFD),y + bit #S.FD.PIPE.S.WOpened + beq .9 Remote PS did not opened yet the pipe + bit #S.FD.PIPE.S.WClosed + beq .99 Remote PS closed the Pipe + + ldy #S.FD.PIPE.hMem + lda (pFD),y + jsr K.GetMemPtr clc rts + +.9 lda #MLI.E.VOLFULL + sec + rts +.99 lda #MLI.E.EOF + sec + rts *-------------------------------------- -IO.WRITE.FIFO ldy #S.FD.FIFO.S +IO.WRITE.PIPE ldy #S.FD.PIPE.S lda (pFD),y + bit #S.FD.PIPE.S.ROpened beq .9 Remote PS did not opened yet the pipe - cmp #S.FD.FIFO.S.Closed + bit #S.FD.PIPE.S.RClosed beq .99 Remote PS closed the Pipe - ldy #S.FD.FIFO.hMem + ldy #S.FD.PIPE.hMem lda (pFD),y jsr K.GetMemPtr >STYA .1+2 - ldy #S.FD.FIFO.Head + ldy #S.FD.PIPE.Head lda (pFD),y inc - dey #S.FD.FIFO.Tail + dey #S.FD.PIPE.Tail cmp (pFD),y - beq .9 FIFO is full + beq .9 PIPE is full iny sta (pFD),y tay @@ -246,7 +263,8 @@ IO.WRITE.FIFO ldy #S.FD.FIFO.S rts .9 lda #MLI.E.VOLFULL - .HS 2C bit abs + sec + rts .99 lda #MLI.E.EOF sec rts diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index a23390a3..b5646a7e 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -158,10 +158,10 @@ K.MKDir jsr PFT.CheckPathYA rts */-------------------------------------- * # MkNod -* return a hFile for a given file descriptor. +* Create a special or ordinary file. * (CDEV, BDEV, DSOCKS, SSOCK, PIPE) * ## C -* `hFILE mknod(const char *pathname, int mode, hFD fd);` +* `int mknod(const char *pathname, int mode, hFD fd);` * ## ASM * **In:** * `>PUSHB fd` @@ -182,13 +182,16 @@ K.MkNod >STYA ZPPtr1 pathname >STYA pFD - ldx DevMgr.NodCnt + ldx #0 + +.1 lda Nod.Table.hFD,x + beq .2 + + inx cpx #K.NOD.MAX beq .98 -.1 dex - bpl . - lda +.2 lda K.S.STAT+S.STAT.DEV lda (pFD) #S.FD.T @@ -202,7 +205,7 @@ K.MkNod >STYA ZPPtr1 pathname .DA STDIO.IOERR LNK .DA STAT.MKNOD.DSOCK .DA STAT.MKNOD.SSOCK - .DA STDIO.IOERR FIFO + .DA STAT.MKNOD.PIPE .98 lda #K.E.OOH sec @@ -212,7 +215,7 @@ STAT.MKNOD.CDEV STAT.MKNOD.BDEV STAT.MKNOD.DSOCK STAT.MKNOD.SSOCK - +STAT.MKNOD.PIPE ldx #S.STAT ldy #$ff @@ -244,13 +247,13 @@ STAT.MKNOD.SSOCK * CC = OK, CS = ERROR * A = hFILE *\-------------------------------------- -K.MKFIFO >LDYAI 256 +K.MKFIFO >LDYAI K.PIPE.SIZE jsr K.GetMem bcs .99 - stx .1+1 save FIFO buffer + stx .1+1 save PIPE buffer - >LDYAI S.FD.FIFO + >LDYAI S.FD.PIPE jsr K.GetMem0 bcs .9 @@ -258,10 +261,10 @@ K.MKFIFO >LDYAI 256 >STYA pFD ldy #S.FD.T - lda #S.FD.T.FIFO + lda #S.FD.T.PIPE sta (pFD),y - iny S.FD.FIFO.hMem + iny S.FD.PIPE.hMem .1 lda #$ff Self Modified sta (pFD),y txa @@ -269,7 +272,7 @@ K.MKFIFO >LDYAI 256 rts .9 pha save error code - lda .1+1 get back FIFO buffer + lda .1+1 get back PIPE buffer jsr K.FreeMem pla sec diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index c4a007f4..b53c9318 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -963,11 +963,11 @@ K.SScanF.Fwd tya Y=char count parsed * `>PUSHWI auxtype` * `>PUSHBI ftype` * `>PUSHBI mode` -* + SYS.FOpen.R : if R and !exists -> ERROR -* + SYS.FOpen.W : if W and !exists -> CREATE -* + SYS.FOpen.A : Append -* + SYS.FOpen.T : Open/Append in Text mode -* + SYS.FOpen.X : Create if not exists +* + O.RDONLY : if R and !exists -> ERROR +* + O.WRONLY : if W and !exists -> CREATE +* + O.APPEND : Append +* + O.TEXT : Open/Append in Text mode +* + O.CREATE : Create if not exists * http://man7.org/linux/man-pages/man3/fopen.3.html * r = O_RDONLY * w = O_WRONLY | O_CREAT | O_TRUNC @@ -1056,10 +1056,10 @@ K.FOpen.10 lda #S.FD.REG sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based lda K.FOpen.MODE - bit #SYS.FOpen.W + bit #O.WRONLY beq .20 Write mode ? - and #SYS.FOpen.A Append ? + and #O.APPEND Append ? bne .11 yes, go to end of file stz K.MLI.PARAMS+2 @@ -1075,7 +1075,7 @@ K.FOpen.10 lda #S.FD.REG .21 bcs .98 .20 lda K.FOpen.MODE - and #SYS.FOpen.T Text Mode ? + and #O.TEXT Text Mode ? beq .8 lda #$FF @@ -1198,7 +1198,7 @@ K.FSeek jsr PFT.CheckNodeA tax >PULLW ZPPtr1 offset LW >PULLW ZPPtr2 offset HW - cpx #SYS.FSeek.END+1 + cpx #SEEK.END+1 bcs .98 jmp (.1,x) @@ -1206,18 +1206,18 @@ K.FSeek jsr PFT.CheckNodeA .1 .DA .10 .DA .20 .DA .30 -* K.FSeek.SET +* SEEK.SET .10 stz K.MLI.PARAMS+2 stz K.MLI.PARAMS+3 stz K.MLI.PARAMS+4 bra .8 -* K.FSeek.CUR +* SEEK.CUR .20 >MLICALL MLIGETMARK bcc .8 rts -* K.FSeek.END +* SEEK.END .30 >MLICALL MLIGETEOF bcs .9 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index f1498a43..a3c25559 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -10,8 +10,8 @@ AUTO 4,1 .INB INC/KERNEL.I .INB INC/A2OSX.I .INB INC/IO.I - .INB INC/PRODOS.I - .INB INC/MLI.ERR.I + .INB INC/MLI.I + .INB INC/MLI.E.I .INB INC/XY.MOUSE.I .INB INC/GUI.I diff --git a/SYS/KM.APPLETALK.S.txt b/SYS/KM.APPLETALK.S.txt index 027a4c80..6ad4723d 100644 --- a/SYS/KM.APPLETALK.S.txt +++ b/SYS/KM.APPLETALK.S.txt @@ -9,7 +9,7 @@ AUTO 4,1 .INB INC/MACROS.I .INB INC/IO.I .INB INC/MONITOR.I - .INB INC/PRODOS.I + .INB INC/MLI.I *-------------------------------------- TmpPtr1 .EQ $0 *-------------------------------------- diff --git a/SYS/KM.NSC.S.txt b/SYS/KM.NSC.S.txt index a3d417de..92e593c6 100644 --- a/SYS/KM.NSC.S.txt +++ b/SYS/KM.NSC.S.txt @@ -9,7 +9,7 @@ AUTO 4,1 .INB INC/MACROS.I .INB INC/IO.I .INB INC/MONITOR.I - .INB INC/PRODOS.I + .INB INC/MLI.I *-------------------------------------- TmpPtr1 .EQ $0 TmpPtr2 .EQ $2 diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index ea7866bb..faa70a0b 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -9,8 +9,8 @@ AUTO 4,1 .INB INC/MACROS.I .INB INC/IO.I .INB INC/MONITOR.I - .INB INC/PRODOS.I - .INB INC/MLI.ERR.I + .INB INC/MLI.I + .INB INC/MLI.E.I *-------------------------------------- TmpPtr1 .EQ $0 TmpPtr2 .EQ $2 diff --git a/SYS/KM.VSDRIVE.S.txt b/SYS/KM.VSDRIVE.S.txt index a6dcece6..36d912c9 100644 --- a/SYS/KM.VSDRIVE.S.txt +++ b/SYS/KM.VSDRIVE.S.txt @@ -9,8 +9,8 @@ AUTO 4,1 .INB INC/MACROS.I .INB INC/IO.I .INB INC/MONITOR.I - .INB INC/PRODOS.I - .INB INC/MLI.ERR.I + .INB INC/MLI.I + .INB INC/MLI.E.I .INB INC/COM.6551.I *-------------------------------------- TmpPtr1 .EQ $0 diff --git a/TEST.S.txt b/TEST.S.txt index 26bdb2a1..4dd65c6b 100644 --- a/TEST.S.txt +++ b/TEST.S.txt @@ -68,7 +68,7 @@ CS.RUN ldy #S.PS.ARGC *-------------------------------------- CS.RUN.Pak >PUSHWI 0 Aux type >PUSHBI 0 - >PUSHBI SYS.FOpen.R + >PUSHBI O.RDONLY lda #1 >SYSCALL GetArg