mirror of
https://github.com/A2osX/A2osX.git
synced 2024-12-28 10:29:49 +00:00
Kernel 0.94
This commit is contained in:
parent
416bb500ca
commit
e25c203ccf
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user