mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-12 14:29:33 +00:00
Kernel 0.92+
This commit is contained in:
parent
4b3ea14c44
commit
d70b2d90df
Binary file not shown.
Binary file not shown.
@ -4,7 +4,7 @@ AUTO 4,1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.VER .EQ $5C00 92.0
|
K.VER .EQ $5C00 92.0
|
||||||
K.ENV.SIZE .EQ 256
|
K.ENV.SIZE .EQ 256
|
||||||
K.PIPE.SIZE .EQ 512
|
K.PIPE.SIZE .EQ 256
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.MEM.ALIGN .EQ 16
|
K.MEM.ALIGN .EQ 16
|
||||||
K.MEM.nALIGNm1 .EQ $F0
|
K.MEM.nALIGNm1 .EQ $F0
|
||||||
@ -474,11 +474,11 @@ S.FD.PIPE.S .EQ 2
|
|||||||
S.FD.PIPE.S.Opened .EQ %10000000
|
S.FD.PIPE.S.Opened .EQ %10000000
|
||||||
S.FD.PIPE.hMem .EQ 3
|
S.FD.PIPE.hMem .EQ 3
|
||||||
S.FD.PIPE.Tail .EQ 4
|
S.FD.PIPE.Tail .EQ 4
|
||||||
S.FD.PIPE.Head .EQ 6
|
S.FD.PIPE.Head .EQ 5
|
||||||
S.FD.PIPE.Free .EQ 8
|
S.FD.PIPE.Free .EQ 6
|
||||||
S.FD.PIPE.Used .EQ 10
|
S.FD.PIPE.Used .EQ 8
|
||||||
*
|
*
|
||||||
S.FD.PIPE .EQ 12
|
S.FD.PIPE .EQ 10
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PS STRUCT
|
* PS STRUCT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -88,8 +88,8 @@ K.ReadDir jsr PFT.CheckNodeA
|
|||||||
jmp K.ReadDir.DIR
|
jmp K.ReadDir.DIR
|
||||||
|
|
||||||
K.ReadDir.NoMore
|
K.ReadDir.NoMore
|
||||||
lda #0
|
lda #MLI.E.EOF
|
||||||
sec CS,A=0 no more entry
|
sec
|
||||||
K.ReadDir.RTS rts
|
K.ReadDir.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.ROOT
|
K.ReadDir.ROOT
|
||||||
|
@ -352,6 +352,9 @@ IO.WRITE.REG ldx #MLIWRITE
|
|||||||
>LDYA K.MLI.PARAMS+6
|
>LDYA K.MLI.PARAMS+6
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* (pStack)+2 count
|
||||||
|
* (pStack)+0 buf
|
||||||
|
*--------------------------------------
|
||||||
IO.READ.CDEV ldx #IOCTL.READ
|
IO.READ.CDEV ldx #IOCTL.READ
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -385,69 +388,113 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
|||||||
|
|
||||||
.1 jmp $FFFF SELF MODIFIED
|
.1 jmp $FFFF SELF MODIFIED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
|
* (pStack)+2 count
|
||||||
>PULLA S.IOCTL.BYTECNT.LO
|
* (pStack)+0 buf
|
||||||
|
*--------------------------------------
|
||||||
|
IO.READ.PIPE ldy #S.FD.PIPE.S
|
||||||
|
lda (pFD),y
|
||||||
|
bne .11
|
||||||
|
jmp IO.READ.PIPE.99 Remote PS closed the Pipe
|
||||||
|
|
||||||
|
.11 ldy #S.FD.PIPE.Used+1
|
||||||
|
lda (pFD),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
ora (pFD),y
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
* lda #0 BLOCKING I/O
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.10 >PULLW .3+1 get buf
|
||||||
|
|
||||||
|
>PULLA get cnt lo
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta IO.Counter
|
sta IO.Counter
|
||||||
>PULLA S.IOCTL.BYTECNT.HI
|
|
||||||
|
>PULLA get cnt hi
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta IO.Counter+1
|
sta IO.Counter+1
|
||||||
|
|
||||||
ldy #S.FD.PIPE.S
|
|
||||||
lda (pFD),y
|
|
||||||
beq .99 Remote PS closed the Pipe
|
|
||||||
|
|
||||||
ldy #S.FD.PIPE.hMem
|
ldy #S.FD.PIPE.hMem
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA .2+1
|
>STYA .2+1
|
||||||
|
|
||||||
|
ldy #S.FD.PIPE.Head
|
||||||
|
lda (pFD),y
|
||||||
|
sta .4+1
|
||||||
|
|
||||||
|
dey S.FD.PIPE.Tail
|
||||||
|
lda (pFD),y
|
||||||
|
tay
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 inc IO.Counter
|
.1 inc IO.Counter
|
||||||
bne .11
|
bne .2
|
||||||
inc IO.Counter+1
|
inc IO.Counter+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.11 ldy #S.FD.PIPE.Tail
|
|
||||||
lda (pFD),y
|
|
||||||
|
|
||||||
iny #S.FD.PIPE.Head
|
|
||||||
cmp (pFD),y
|
|
||||||
beq .9 PIPE is empty
|
|
||||||
|
|
||||||
pha
|
|
||||||
inc
|
|
||||||
dey #S.FD.PIPE.Tail
|
|
||||||
sta (pFD),y
|
|
||||||
ply
|
|
||||||
|
|
||||||
.2 lda $ffff,y SELF MODIFIED
|
.2 lda $ffff,y SELF MODIFIED
|
||||||
.3 sta $ffff,x SELF MODIFIED
|
.3 sta $ffff,x SELF MODIFIED
|
||||||
inx
|
inx
|
||||||
bne .1
|
beq .5
|
||||||
|
|
||||||
.8 txa
|
|
||||||
tay
|
|
||||||
lda #0 Y,A = bytes read
|
|
||||||
|
|
||||||
|
iny
|
||||||
|
.4 cpy #$ff SELF MODIFIED
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.5 sec moved $100 bytes
|
||||||
|
.HS 90 BCC
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
lda #0
|
||||||
|
ror
|
||||||
|
sta IO.Counter+1
|
||||||
|
stx IO.Counter
|
||||||
|
|
||||||
|
tya
|
||||||
|
ldy #S.FD.PIPE.Tail
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
|
txa
|
||||||
|
ldy #S.FD.PIPE.Free
|
||||||
|
clc
|
||||||
|
adc (pFD),y
|
||||||
|
sta (pFD),y
|
||||||
|
iny
|
||||||
|
lda IO.Counter+1
|
||||||
|
adc (pFD),y
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
|
ldy #S.FD.PIPE.Used
|
||||||
|
sec
|
||||||
|
lda (pFD),y
|
||||||
|
sbc IO.Counter
|
||||||
|
sta (pFD),y
|
||||||
|
iny
|
||||||
|
lda (pFD),y
|
||||||
|
sbc IO.Counter+1
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
|
ldy IO.Counter
|
||||||
|
lda IO.Counter+1 Y,A = bytes read
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #0
|
IO.READ.PIPE.99 lda #MLI.E.EOF
|
||||||
sec
|
sec
|
||||||
rts
|
>RET 4
|
||||||
|
|
||||||
.99 lda #MLI.E.EOF
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* (pStack)+0 buf
|
|
||||||
* (pStack)+2 count
|
* (pStack)+2 count
|
||||||
|
* (pStack)+0 buf
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
beq .99 Remote PS closed the Pipe
|
beq IO.READ.PIPE.99 Remote PS closed the Pipe
|
||||||
|
|
||||||
sec
|
sec
|
||||||
ldy #S.FD.PIPE.Free
|
ldy #S.FD.PIPE.Free
|
||||||
@ -468,18 +515,19 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
|||||||
txa
|
txa
|
||||||
sta (pFD),y store new Free
|
sta (pFD),y store new Free
|
||||||
|
|
||||||
clc
|
>PULLW .2+1 get buf
|
||||||
ldy #2
|
|
||||||
lda (pStack),y
|
>PULLA get cnt lo
|
||||||
pha
|
pha
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta IO.Counter
|
sta IO.Counter
|
||||||
pla
|
pla
|
||||||
ldy #S.FD.PIPE.Used
|
ldy #S.FD.PIPE.Used
|
||||||
|
clc
|
||||||
adc (pFD),y
|
adc (pFD),y
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
ldy #3
|
|
||||||
lda (pStack),y
|
>PULLA get cnt hi
|
||||||
pha
|
pha
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta IO.Counter+1
|
sta IO.Counter+1
|
||||||
@ -487,39 +535,49 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
|||||||
ldy #S.FD.PIPE.Used+1
|
ldy #S.FD.PIPE.Used+1
|
||||||
adc (pFD),y
|
adc (pFD),y
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
|
|
||||||
lda (pStack)
|
|
||||||
sta .2+1
|
|
||||||
ldy #1
|
|
||||||
lda (pStack),y
|
|
||||||
sta .2+2
|
|
||||||
|
|
||||||
ldy #S.FD.PIPE.hMem
|
ldy #S.FD.PIPE.hMem
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA .3+1
|
>STYA .3+1
|
||||||
|
|
||||||
|
ldy #S.FD.PIPE.Head
|
||||||
|
lda (pFD),y
|
||||||
|
tay
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
|
.1 inc IO.Counter
|
||||||
|
bne .2
|
||||||
|
inc IO.Counter+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
.2 lda $ffff,x SELF MODIFIED
|
.2 lda $ffff,x SELF MODIFIED
|
||||||
.3 sta $ffff,y SELF MODIFIED
|
.3 sta $ffff,y SELF MODIFIED
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
inx
|
inx
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.8 txa
|
sec moved $100 bytes
|
||||||
|
.HS 90 BCC
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
tya
|
||||||
|
ldy #S.FD.PIPE.Head
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
|
txa
|
||||||
tay
|
tay
|
||||||
lda #0 Y,A = bytes written
|
lda #0 Y,A = bytes written
|
||||||
clc
|
rol
|
||||||
>RET 4
|
* clc
|
||||||
|
rts
|
||||||
|
|
||||||
.9 lda #0 BLOCKING I/O
|
.9 lda #0 BLOCKING I/O
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #MLI.E.EOF
|
|
||||||
sec
|
|
||||||
>RET 4
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # IOCTL
|
* # IOCTL
|
||||||
* ## C
|
* ## C
|
||||||
|
Loading…
Reference in New Issue
Block a user