Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-02-04 16:37:15 +00:00
parent 9fb1e9b49d
commit cc023c06a4
6 changed files with 43 additions and 71 deletions

Binary file not shown.

View File

@ -8,6 +8,12 @@ IO.Reset jsr IO.Reset.In
jsr IO.Reset.Err
rts
*--------------------------------------
IO.Pipe.In
*--------------------------------------
IO.Pipe.Out
clc
rts
*--------------------------------------
IO.Set.In pha
jsr IO.Reset.In
ldy #S.PS.hStdIn

View File

@ -146,7 +146,7 @@ SYS.Stat .EQ $06
SYS.MKDir .EQ $08
SYS.MKNod .EQ $0A
SYS.MKFIFO .EQ $0C
* .EQ $0E
SYS.Pipe .EQ $0E
SYS.OpenDir .EQ $10
SYS.ReadDir .EQ $12

View File

@ -460,15 +460,6 @@ K.IOCTL.GetPDrv ldy #S.FD.DEV.DRVPTR
lda (pFD),y
sta pDRV+1
rts
*/--------------------------------------
* # pipe
* ## C
* `int pipe(int pipefd[2]);`
* ## ASM
*\--------------------------------------
K.Pipe
.9 sec
rts
*--------------------------------------
IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE

View File

@ -13,7 +13,7 @@ K.SYSCALL.JMP .DA K.GetMemStat $00
.DA K.MKDir
.DA K.MKNod
.DA K.MKFIFO
.DA 0
.DA K.Pipe
.DA K.OpenDir $10
.DA K.ReadDir

View File

@ -209,38 +209,36 @@ K.MkNod >STYA ZPPtr1 pathname
>PULLW K.S.STAT+S.STAT.MODE
>PULLB K.S.STAT+S.STAT.DEV
ldx #0
jsr K.GetMemPtr
bcs K.MKNOD.RTS
.1 lda Nod.Table.hFD,x
beq .2
>STYA pFD
inx
cpx #K.Nod.MAX
bne .1
lda #E.OOH
* sec
rts
.2 stx .3+1 Store hFILE
>LDYA ZPPtr1
ldx K.S.STAT+S.STAT.DEV
jsr STAT.NewhNodeYAX
bcs K.MKNOD.RTS
>SYSCALL StrDup
bcs .9
txa
lda (pFD) #S.FD.T
.3 ldx #$ff SELF MODIFIED
sta Nod.Table.hPath,x
lda K.S.STAT+S.STAT.DEV
sta Nod.Table.hFD,x
tax
jmp (.8,x)
txa hNODE
.8 .DA STDIO.IOERR REG
.DA STDIO.IOERR DIR
.DA STAT.MKNOD.CDEV
.DA STAT.MKNOD.BDEV
.DA STDIO.IOERR LNK
.DA STAT.MKNOD.DSOCK
.DA STAT.MKNOD.SSOCK
.DA STAT.MKNOD.PIPE
*--------------------------------------
STAT.MKNOD.CDEV
STAT.MKNOD.BDEV
STAT.MKNOD.DSOCK
STAT.MKNOD.SSOCK
STAT.MKNOD.PIPE
clc
K.MKNOD.RTS rts
.9 rts
*/--------------------------------------
* # MKFIFO
* return a hFILE to a new FIFO
@ -255,7 +253,19 @@ K.MKNOD.RTS rts
* CC = OK, CS = ERROR
* A = hFILE
*\--------------------------------------
K.MKFIFO >LDYAI K.PIPE.SIZE
K.MKFIFO sec
rts
*/--------------------------------------
* # pipe
* ## C
* `hFD pipe();`
* ## ASM
* `>SYSCALL pipe`
* ## RETURN VALUE
* CC = OK, CS = ERROR
* A = hFD
*\--------------------------------------
K.Pipe >LDYAI K.PIPE.SIZE
jsr K.GetMem
bcs .99
@ -288,41 +298,6 @@ K.MKFIFO >LDYAI K.PIPE.SIZE
.99 rts
*--------------------------------------
STAT.NewhNodeYAX
pha
stx .4+1 Store hFD
ldx #0
.1 lda Nod.Table.hFD,x
beq .2
inx
cpx #K.Nod.MAX
bne .1
pla
lda #E.OOH
* sec
rts
.2 stx .3+1 Store hFILE
pla
>SYSCALL StrDup
bcs .9
txa
.3 ldx #$ff SELF MODIFIED
sta Nod.Table.hPath,x
.4 lda #$ff SELF MODIFIED
sta Nod.Table.hFD,x
txa hNODE
clc
.9 rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STAT
LOAD USR/SRC/SYS/KERNEL.S