mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-13 13:29:04 +00:00
Kernel 0.93
This commit is contained in:
parent
e32d4679f6
commit
31533e52d7
@ -748,6 +748,22 @@ CC : success
|
|||||||
CS : error
|
CS : error
|
||||||
A = EC
|
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
|
# MkNod
|
||||||
Create a special or ordinary file.
|
Create a special or ordinary file.
|
||||||
(CDEV, BDEV, DSOCKS, SSOCK, PIPE)
|
(CDEV, BDEV, DSOCKS, SSOCK, PIPE)
|
||||||
@ -766,20 +782,6 @@ Create a special or ordinary file.
|
|||||||
CC = OK, CS = ERROR
|
CC = OK, CS = ERROR
|
||||||
A = hFILE
|
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
|
# pipe
|
||||||
|
|
||||||
## C
|
## C
|
||||||
|
Binary file not shown.
@ -27,7 +27,7 @@ BUF.InsertClipboard
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA BUF.COffset
|
>LDYA BUF.COffset
|
||||||
jsr BUF.CopyCount
|
jsr BUF.Start2YA
|
||||||
|
|
||||||
jsr BUF.CopyClipboard
|
jsr BUF.CopyClipboard
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ BUF.InsertA sta TmpByte
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA BUF.COffset
|
>LDYA BUF.COffset
|
||||||
.1 jsr BUF.CopyCount
|
jsr BUF.Start2YA
|
||||||
|
|
||||||
.2 lda TmpByte
|
.2 lda TmpByte
|
||||||
sta (BufPtr)
|
sta (BufPtr)
|
||||||
@ -79,11 +79,11 @@ BUF.InsertA sta TmpByte
|
|||||||
clc
|
clc
|
||||||
adc #1
|
adc #1
|
||||||
sta BufLen
|
sta BufLen
|
||||||
bcc .8
|
bcc .9
|
||||||
|
|
||||||
inc BufLen+1
|
inc BufLen+1
|
||||||
|
|
||||||
.8 clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BUF.DelSel jsr BUF.GetSelLen
|
BUF.DelSel jsr BUF.GetSelLen
|
||||||
@ -104,7 +104,7 @@ BUF.DelSel jsr BUF.GetSelLen
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA.G SelStart
|
>LDYA.G SelStart
|
||||||
jsr BUF.CopyCount
|
jsr BUF.Start2YA
|
||||||
|
|
||||||
lda BufPtrBackup
|
lda BufPtrBackup
|
||||||
clc
|
clc
|
||||||
@ -139,7 +139,7 @@ BUF.DelCharAtCursor
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA BUF.COffset
|
>LDYA BUF.COffset
|
||||||
jsr BUF.CopyCount
|
jsr BUF.Start2YA
|
||||||
|
|
||||||
.3 lda (BufPtrBackup)
|
.3 lda (BufPtrBackup)
|
||||||
pha Save deleted char for later
|
pha Save deleted char for later
|
||||||
@ -265,21 +265,21 @@ BUF.CopyClipboard
|
|||||||
clc
|
clc
|
||||||
adc ClipboardPtr
|
adc ClipboardPtr
|
||||||
sta ClipboardPtr
|
sta ClipboardPtr
|
||||||
bcc .4
|
bcc BUF.CopyAddY
|
||||||
|
|
||||||
inc ClipboardPtr+1
|
inc ClipboardPtr+1
|
||||||
|
|
||||||
.4 tya
|
BUF.CopyAddY tya
|
||||||
clc
|
clc
|
||||||
adc BufPtr
|
adc BufPtr
|
||||||
sta BufPtr
|
sta BufPtr
|
||||||
bcc .8
|
bcc .2
|
||||||
|
|
||||||
inc BufPtr+1
|
inc BufPtr+1
|
||||||
|
|
||||||
.8 rts
|
.2 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BUF.CopyCount eor #$ff
|
BUF.Start2YA eor #$ff
|
||||||
pha
|
pha
|
||||||
|
|
||||||
tya
|
tya
|
||||||
@ -305,39 +305,30 @@ BUF.CopyCount eor #$ff
|
|||||||
inc BufPtrBackup+1
|
inc BufPtrBackup+1
|
||||||
inc BufPtr+1
|
inc BufPtr+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.3 tya
|
.3 tya
|
||||||
clc
|
clc
|
||||||
adc BufPtrBackup
|
adc BufPtrBackup
|
||||||
sta BufPtrBackup
|
sta BufPtrBackup
|
||||||
bcc .4
|
bcc BUF.CopyAddY
|
||||||
|
|
||||||
inc BufPtrBackup+1
|
inc BufPtrBackup+1
|
||||||
|
bra BUF.CopyAddY
|
||||||
.4 tya
|
|
||||||
clc
|
|
||||||
adc BufPtr
|
|
||||||
sta BufPtr
|
|
||||||
bcc .8
|
|
||||||
|
|
||||||
inc BufPtr+1
|
|
||||||
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BUF.CopyTail lda (BufPtrBackup)
|
BUF.CopyTail ldy #0
|
||||||
sta (BufPtr)
|
|
||||||
beq .9
|
.1 lda (BufPtrBackup),y
|
||||||
|
sta (BufPtr),y
|
||||||
|
beq .8
|
||||||
|
|
||||||
inc BufPtrBackup
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc BufPtrBackup+1
|
inc BufPtrBackup+1
|
||||||
|
|
||||||
.1 inc BufPtr
|
|
||||||
bne BUF.CopyTail
|
|
||||||
inc BufPtr+1
|
inc BufPtr+1
|
||||||
bra BUF.CopyTail
|
bra .1
|
||||||
|
|
||||||
.9 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Out : Y = Line Length
|
* Out : Y = Line Length
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -284,7 +284,6 @@ IO.CLOSE.PIPE ldy #S.FD.PIPE.S
|
|||||||
IO.CLOSE.FD lda (pFD),y
|
IO.CLOSE.FD lda (pFD),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
* jsr K.FreeStkObj
|
|
||||||
jsr K.Freemem
|
jsr K.Freemem
|
||||||
|
|
||||||
.1 lda IO.hFD
|
.1 lda IO.hFD
|
||||||
@ -852,7 +851,9 @@ IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
|
|||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.DEVDIR >PSTR "/DEV/"
|
IO.DEVDIR .DA #5 >PSTR "/DEV/"
|
||||||
|
*--------------------------------------
|
||||||
|
STAT.FIFO .AZ "/DEV/FIFO%d"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SYS/KERNEL.S.IO
|
SAVE USR/SRC/SYS/KERNEL.S.IO
|
||||||
|
@ -97,11 +97,8 @@ K.ChMod jsr PFT.CheckPathYA
|
|||||||
.3 stx K.MLI.PARAMS+S.FI.A
|
.3 stx K.MLI.PARAMS+S.FI.A
|
||||||
|
|
||||||
>MLICALL MLISETFILEINFO
|
>MLICALL MLISETFILEINFO
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
.9 lda #E.SYN
|
.9 lda #E.SYN
|
||||||
sec
|
sec
|
||||||
.90 rts
|
.90 rts
|
||||||
@ -266,6 +263,7 @@ STAT.Access2Mode
|
|||||||
.7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx
|
.7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx
|
||||||
.8 ldy /S.STAT.MODE.RU ??????R??
|
.8 ldy /S.STAT.MODE.RU ??????R??
|
||||||
|
|
||||||
|
STAT.Access2Mode.RTS
|
||||||
rts
|
rts
|
||||||
*/-------------------------------------
|
*/-------------------------------------
|
||||||
* # MKDir
|
* # MKDir
|
||||||
@ -283,7 +281,7 @@ STAT.Access2Mode
|
|||||||
* A = EC
|
* A = EC
|
||||||
*\-------------------------------------
|
*\-------------------------------------
|
||||||
K.MKDir jsr PFT.CheckPathYA
|
K.MKDir jsr PFT.CheckPathYA
|
||||||
bcs K.Stat.9
|
bcs STAT.Access2Mode.RTS
|
||||||
|
|
||||||
lda #S.FI.T.DIR
|
lda #S.FI.T.DIR
|
||||||
sta K.MLI.PARAMS+4
|
sta K.MLI.PARAMS+4
|
||||||
@ -292,6 +290,38 @@ K.MKDir jsr PFT.CheckPathYA
|
|||||||
lda #S.FI.ST.DIR
|
lda #S.FI.ST.DIR
|
||||||
jmp IO.MLI.CREATE
|
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
|
* # MkNod
|
||||||
* Create a special or ordinary file.
|
* Create a special or ordinary file.
|
||||||
* (CDEV, BDEV, DSOCKS, SSOCK, PIPE)
|
* (CDEV, BDEV, DSOCKS, SSOCK, PIPE)
|
||||||
@ -343,35 +373,6 @@ K.MkNod.I ldx #2
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.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
|
* # pipe
|
||||||
* ## C
|
* ## C
|
||||||
* `hFD pipe(int size);`
|
* `hFD pipe(int size);`
|
||||||
@ -382,7 +383,8 @@ K.MKFIFO
|
|||||||
* CC = OK, CS = ERROR
|
* CC = OK, CS = ERROR
|
||||||
* A = hFD
|
* A = hFD
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Pipe >STYA ZPPtr1
|
K.Pipe sta .1+1 SIZE HI
|
||||||
|
|
||||||
.DO AUXPIPE=1
|
.DO AUXPIPE=1
|
||||||
jsr K.NewStkObj Buffer in AUX mem
|
jsr K.NewStkObj Buffer in AUX mem
|
||||||
.ELSE
|
.ELSE
|
||||||
@ -390,7 +392,7 @@ K.Pipe >STYA ZPPtr1
|
|||||||
.FIN
|
.FIN
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
stx .1+1 save PIPE buffer
|
stx .8+1 save PIPE buffer
|
||||||
|
|
||||||
>LDYAI S.FD.PIPE
|
>LDYAI S.FD.PIPE
|
||||||
ldx #S.MEM.F.INIT0+S.MEM.F.FD
|
ldx #S.MEM.F.INIT0+S.MEM.F.FD
|
||||||
@ -403,29 +405,22 @@ K.Pipe >STYA ZPPtr1
|
|||||||
lda #S.FD.T.PIPE
|
lda #S.FD.T.PIPE
|
||||||
sta (pFD)
|
sta (pFD)
|
||||||
|
|
||||||
ldy #S.FD.PIPE.Free
|
.1 lda #$ff SELF MODIFIED
|
||||||
lda ZPPtr1
|
ldy #S.FD.PIPE.Free+1
|
||||||
sta (pFD),y
|
|
||||||
iny
|
|
||||||
lda ZPPtr1+1
|
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
|
|
||||||
ldy #S.FD.PIPE.Size
|
ldy #S.FD.PIPE.Size+1
|
||||||
lda ZPPtr1
|
|
||||||
sta (pFD),y
|
|
||||||
iny
|
|
||||||
lda ZPPtr1+1
|
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
|
|
||||||
ldy #S.FD.PIPE.hMem
|
ldy #S.FD.PIPE.hMem
|
||||||
.1 lda #$ff Self Modified
|
.8 lda #$ff Self Modified
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
txa hFD
|
txa hFD
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 pha save error code
|
.9 pha save error code
|
||||||
lda .1+1 get back PIPE buffer
|
lda .8+1 get back PIPE buffer
|
||||||
.DO AUXPIPE=1
|
.DO AUXPIPE=1
|
||||||
jsr K.FreeStkObj
|
jsr K.FreeStkObj
|
||||||
.ELSE
|
.ELSE
|
||||||
@ -436,8 +431,6 @@ K.Pipe >STYA ZPPtr1
|
|||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*STAT.PipeFn .AZ "/DEV/PIPE00"
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SYS/KERNEL.S.STAT
|
SAVE USR/SRC/SYS/KERNEL.S.STAT
|
||||||
LOAD USR/SRC/SYS/KERNEL.S
|
LOAD USR/SRC/SYS/KERNEL.S
|
||||||
|
Loading…
Reference in New Issue
Block a user