Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-06-03 17:50:41 +02:00
parent e32d4679f6
commit 31533e52d7
5 changed files with 84 additions and 97 deletions

View File

@ -748,6 +748,22 @@ CC : success
CS : error
A = EC
# MKFIFO
return a pathname to a new FIFO
## C
`int mkfifo( char *pathname, int mode );`
## ASM
**In:**
`>PUSHW mode`
`>LDYA pathname`
`>SYSCALL mkfifo`
## RETURN VALUE
CC = OK, CS = ERROR
A = hFD
# MkNod
Create a special or ordinary file.
(CDEV, BDEV, DSOCKS, SSOCK, PIPE)
@ -766,20 +782,6 @@ Create a special or ordinary file.
CC = OK, CS = ERROR
A = hFILE
# MKFIFO
return a hFILE to a new FIFO
## C
`hFILE mkfifo();`
## ASM
**In:**
`>SYSCALL mkfifo`
## RETURN VALUE
CC = OK, CS = ERROR
A = hFILE
# pipe
## C

Binary file not shown.

View File

@ -27,7 +27,7 @@ BUF.InsertClipboard
bcs .9
>LDYA BUF.COffset
jsr BUF.CopyCount
jsr BUF.Start2YA
jsr BUF.CopyClipboard
@ -65,7 +65,7 @@ BUF.InsertA sta TmpByte
bcs .9
>LDYA BUF.COffset
.1 jsr BUF.CopyCount
jsr BUF.Start2YA
.2 lda TmpByte
sta (BufPtr)
@ -79,11 +79,11 @@ BUF.InsertA sta TmpByte
clc
adc #1
sta BufLen
bcc .8
bcc .9
inc BufLen+1
.8 clc
clc
.9 rts
*--------------------------------------
BUF.DelSel jsr BUF.GetSelLen
@ -104,7 +104,7 @@ BUF.DelSel jsr BUF.GetSelLen
bcs .9
>LDYA.G SelStart
jsr BUF.CopyCount
jsr BUF.Start2YA
lda BufPtrBackup
clc
@ -139,7 +139,7 @@ BUF.DelCharAtCursor
bcs .9
>LDYA BUF.COffset
jsr BUF.CopyCount
jsr BUF.Start2YA
.3 lda (BufPtrBackup)
pha Save deleted char for later
@ -265,21 +265,21 @@ BUF.CopyClipboard
clc
adc ClipboardPtr
sta ClipboardPtr
bcc .4
bcc BUF.CopyAddY
inc ClipboardPtr+1
.4 tya
BUF.CopyAddY tya
clc
adc BufPtr
sta BufPtr
bcc .8
bcc .2
inc BufPtr+1
.8 rts
.2 rts
*--------------------------------------
BUF.CopyCount eor #$ff
BUF.Start2YA eor #$ff
pha
tya
@ -305,39 +305,30 @@ BUF.CopyCount eor #$ff
inc BufPtrBackup+1
inc BufPtr+1
bra .1
.3 tya
clc
adc BufPtrBackup
sta BufPtrBackup
bcc .4
bcc BUF.CopyAddY
inc BufPtrBackup+1
.4 tya
clc
adc BufPtr
sta BufPtr
bcc .8
inc BufPtr+1
.8 rts
bra BUF.CopyAddY
*--------------------------------------
BUF.CopyTail lda (BufPtrBackup)
sta (BufPtr)
beq .9
BUF.CopyTail ldy #0
.1 lda (BufPtrBackup),y
sta (BufPtr),y
beq .8
inc BufPtrBackup
iny
bne .1
inc BufPtrBackup+1
.1 inc BufPtr
bne BUF.CopyTail
inc BufPtr+1
bra BUF.CopyTail
bra .1
.9 rts
.8 rts
*--------------------------------------
* Out : Y = Line Length
*--------------------------------------

View File

@ -284,7 +284,6 @@ IO.CLOSE.PIPE ldy #S.FD.PIPE.S
IO.CLOSE.FD lda (pFD),y
beq .1
* jsr K.FreeStkObj
jsr K.Freemem
.1 lda IO.hFD
@ -852,7 +851,9 @@ IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
* clc
.9 rts
*--------------------------------------
IO.DEVDIR >PSTR "/DEV/"
IO.DEVDIR .DA #5 >PSTR "/DEV/"
*--------------------------------------
STAT.FIFO .AZ "/DEV/FIFO%d"
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.IO

View File

@ -97,11 +97,8 @@ K.ChMod jsr PFT.CheckPathYA
.3 stx K.MLI.PARAMS+S.FI.A
>MLICALL MLISETFILEINFO
clc
rts
.9 lda #E.SYN
sec
.90 rts
@ -266,6 +263,7 @@ STAT.Access2Mode
.7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx
.8 ldy /S.STAT.MODE.RU ??????R??
STAT.Access2Mode.RTS
rts
*/-------------------------------------
* # MKDir
@ -283,7 +281,7 @@ STAT.Access2Mode
* A = EC
*\-------------------------------------
K.MKDir jsr PFT.CheckPathYA
bcs K.Stat.9
bcs STAT.Access2Mode.RTS
lda #S.FI.T.DIR
sta K.MLI.PARAMS+4
@ -292,6 +290,38 @@ K.MKDir jsr PFT.CheckPathYA
lda #S.FI.ST.DIR
jmp IO.MLI.CREATE
*/--------------------------------------
* # MKFIFO
* return a pathname to a new FIFO
* ## C
* `int mkfifo( char *pathname, int mode );`
* ## ASM
* **In:**
* `>PUSHW mode`
* `>LDYA pathname`
* `>SYSCALL mkfifo`
* ## RETURN VALUE
* CC = OK, CS = ERROR
* A = hFD
*\--------------------------------------
K.MKFIFO >STYA ZPPtr1 pathname buffer
>PULLW K.S.STAT+S.STAT.MODE
>LDYAI 512
jsr K.pipe
bcs STAT.Access2Mode.RTS
sta K.S.STAT+S.STAT.DEV
>PUSHA
>PUSHBI 1
>PUSHWI STAT.FIFO
>LDYA ZPPtr1
jsr K.sprintf
lda #S.STAT.MODE.FIFO
sta K.S.STAT+S.STAT.DEV
bra K.MkNod.I
*/--------------------------------------
* # MkNod
* Create a special or ordinary file.
* (CDEV, BDEV, DSOCKS, SSOCK, PIPE)
@ -343,35 +373,6 @@ K.MkNod.I ldx #2
clc
.9 rts
*/--------------------------------------
* # MKFIFO
* return a hFILE to a new FIFO
* ## C
* `hFILE mkfifo();`
* ## ASM
* **In:**
* `>SYSCALL mkfifo`
* ## RETURN VALUE
* CC = OK, CS = ERROR
* A = hFILE
*\--------------------------------------
K.MKFIFO
* jsr K.pipe
* bcs .9
* sta IO.hFD
* stz K.S.STAT+S.STAT.MODE
* stz K.S.STAT+S.STAT.MODE+1
* >LDYA STAT.PipeFn
* >STYA ZPPtr1
* jsr K.MkNod.I
* bcc .9
* jmp IO.OPEN.ERR
sec
rts
*/--------------------------------------
* # pipe
* ## C
* `hFD pipe(int size);`
@ -382,7 +383,8 @@ K.MKFIFO
* CC = OK, CS = ERROR
* A = hFD
*\--------------------------------------
K.Pipe >STYA ZPPtr1
K.Pipe sta .1+1 SIZE HI
.DO AUXPIPE=1
jsr K.NewStkObj Buffer in AUX mem
.ELSE
@ -390,7 +392,7 @@ K.Pipe >STYA ZPPtr1
.FIN
bcs .99
stx .1+1 save PIPE buffer
stx .8+1 save PIPE buffer
>LDYAI S.FD.PIPE
ldx #S.MEM.F.INIT0+S.MEM.F.FD
@ -403,29 +405,22 @@ K.Pipe >STYA ZPPtr1
lda #S.FD.T.PIPE
sta (pFD)
ldy #S.FD.PIPE.Free
lda ZPPtr1
sta (pFD),y
iny
lda ZPPtr1+1
.1 lda #$ff SELF MODIFIED
ldy #S.FD.PIPE.Free+1
sta (pFD),y
ldy #S.FD.PIPE.Size
lda ZPPtr1
sta (pFD),y
iny
lda ZPPtr1+1
ldy #S.FD.PIPE.Size+1
sta (pFD),y
ldy #S.FD.PIPE.hMem
.1 lda #$ff Self Modified
.8 lda #$ff Self Modified
sta (pFD),y
txa hFD
* clc
rts
.9 pha save error code
lda .1+1 get back PIPE buffer
lda .8+1 get back PIPE buffer
.DO AUXPIPE=1
jsr K.FreeStkObj
.ELSE
@ -436,8 +431,6 @@ K.Pipe >STYA ZPPtr1
.99 rts
*--------------------------------------
*STAT.PipeFn .AZ "/DEV/PIPE00"
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STAT
LOAD USR/SRC/SYS/KERNEL.S