From e25c203ccf019148fa352a6b5f16166ebbcad866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 17 Mar 2020 07:23:07 +0100 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes SYS/KERNEL.S.UNISTD.txt | 197 +++++++++++++++++++++++++++++++++++++++ SYS/KERNEL.S.txt | 1 - 3 files changed, 197 insertions(+), 1 deletion(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a3be71f75d164b1f532b43fcf212c2ac08bbd47b..5f96526f0fd9237fcf0779aa2421f898629f9a24 100644 GIT binary patch delta 6136 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 delta 6484 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 diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index 5ccab148..3a9a0537 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -246,6 +246,203 @@ UNISTD.CheckDev ldx #5 /DEV/ .9 sec .99 rts *-------------------------------------- +IO.CLOSE.REG +IO.CLOSE.DIR ldy #S.FD.REG.REF + lda (pFD),y + beq .1 + sta K.MLI.PARAMS+1 + >MLICALL MLICLOSE + +.1 ldy #S.FD.REG.IOBUF + lda (pFD),y + beq .2 + jsr K.FreeMem +.2 lda IO.hFD + jmp K.FreeMem +*-------------------------------------- +IO.READ.REG ldx #MLIREAD + .HS 2C BIT ABS +*-------------------------------------- +IO.WRITE.REG ldx #MLIWRITE + + ldy #S.FD.REG.REF + lda (pFD),y + sta K.MLI.PARAMS+1 + >PULLW K.MLI.PARAMS+2 + >PULLW K.MLI.PARAMS+4 + + lda #4 Param Count = 4 for MLIREAD & MLIWRITE + jsr GP.MLICall + bcs .9 + >LDYA K.MLI.PARAMS+6 +.9 +IO.WRITE.REG.RTS + rts +*-------------------------------------- +IO.OPEN.CDEV +IO.OPEN.BDEV jsr SHARED.GetPDrv + ldx #IOCTL.OPEN + lda IO.hFD + jsr SHARED.pDrvJmp + bcs IO.WRITE.REG.RTS + + lda IO.hFD +*-------------------------------------- +IO.CLOSE.CDEV +IO.CLOSE.BDEV + clc + rts +*-------------------------------------- +IO.READ.CDEV ldx #IOCTL.READ + .HS 2C BIT ABS +*-------------------------------------- +IO.WRITE.CDEV ldx #IOCTL.WRITE + + >PULLW K.S.IOCTL+S.IOCTL.BUFPTR + >PULLW K.S.IOCTL+S.IOCTL.BYTECNT + jsr SHARED.GetPDRV + >LDYAI K.S.IOCTL + jsr SHARED.pDrvJmp + bcs .9 + + >LDYA K.S.IOCTL+S.IOCTL.BYTECNT + +.9 rts +*-------------------------------------- +IO.OPEN.DSOCK +*-------------------------------------- +IO.OPEN.SSOCK lda IO.hFD + clc + rts +*-------------------------------------- +IO.CLOSE.DSOCK +IO.CLOSE.SSOCK + ldy #S.FD.SSOCK.CLOSE + .HS 2C BIT ABS +*-------------------------------------- +IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF + .HS 2C BIT ABS +*-------------------------------------- +IO.READ.SSOCK ldy #S.FD.SSOCK.READ + .HS 2C BIT ABS +*-------------------------------------- +IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE + + lda (pFD),y + tax Function Offset in LIB + + ldy #S.FD.SSOCK.IOHANDLER + lda (pFD),y + jsr K.GetMemPtr + >STYA .1+1 + lda IO.hFD +.1 jmp $FFFF SELF MODIFIED +*-------------------------------------- +IO.EOF.REG >MLICALL MLIGETMARK + bcs .9 + ldy #2 +.1 lda K.MLI.PARAMS+2,y + sta ACC32,y + dey + bpl .1 + + >MLICALL MLIGETEOF + bcs .9 + + ldy #2 +.2 lda K.MLI.PARAMS+2,y + eor ACC32,y + bne .8 FALSE + dey + bpl .2 + lda #$ff TRUE +* clc + rts + +.8 lda #0 +* clc +.9 rts +*-------------------------------------- +IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF + jmp SHARED.GetDevStatus +*-------------------------------------- +* X = 0 > REG +* X = 1 > DIR +* 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 +* clc +.9 rts + +IO.MkFD.Y .DA #S.FD.REG,#S.FD.DIR,#S.FD.PIPE +IO.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE +*-------------------------------------- +IO.MLI.CREATE sta K.MLI.PARAMS+7 Storage Type + ldx #3 +.1 lda DATELO,x + sta K.MLI.PARAMS+8,x Create Date/Time + dex + bpl .1 + + lda #S.FI.A.FULL + sta K.MLI.PARAMS+3 Access + >MLICALL MLICREATE + rts +*-------------------------------------- +IO.MLI.OPEN >LDYAI 1024 get a ProDOS IOBUF + ldx #S.MEM.F.ALIGN + jsr MEM.GetMem.YAX + bcs .9 + + >STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call + txa + ldy #S.FD.REG.IOBUF + sta (pFD),y + + >MLICALL MLIOPEN + bcs .9 + lda K.MLI.PARAMS+5 get ref_num + ldy #S.FD.REG.REF + sta (pFD),y + + sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based + +* clc +.9 rts +*-------------------------------------- +IO.CLOSE.NOD ldx #2 + + lda IO.hFD + +.1 cmp Nod.Table.hFD-2,x + bne .2 + + stz Nod.Table.hFD-2,x + lda Nod.Table.hPath-2,x + stz Nod.Table.hPath-2,x + jmp K.FreeMem + +.2 inx + cpx #K.Nod.MAX+2 + bne .1 + + lda #E.INVH +* sec + rts +*-------------------------------------- DEV.FIFO .AS "/dev/fifo" STAT,UNISTD */-------------------------------------- * # ChOwn diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index c57e2643..a0b01add 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -71,7 +71,6 @@ A2osX.D1.B .PH $D000 .INB USR/SRC/SYS/KERNEL.S.STAT .INB USR/SRC/SYS/KERNEL.S.DIRENT .INB USR/SRC/SYS/KERNEL.S.UNISTD - .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