mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-06 14:30:08 +00:00
Kernel 0.92+
This commit is contained in:
parent
c5ee866919
commit
3334085260
Binary file not shown.
@ -202,12 +202,16 @@ EXP.TEST.BINARY >LDA.G CORE.Operator
|
|||||||
lda #$80
|
lda #$80
|
||||||
>STA.G CORE.Operator
|
>STA.G CORE.Operator
|
||||||
|
|
||||||
.1 jsr CORE.ArgV.Next
|
.1 >LDYA ZPArgVBufPrev
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
jsr CORE.ArgV.Next
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
>PUSHW ZPArgVBufPrev
|
>PUSHW ZPPtr1
|
||||||
>LDYA ZPArgVBufPtr
|
>LDYA ZPArgVBufPtr
|
||||||
>SYSCALL strcmp
|
>SYSCALL strcmp
|
||||||
|
|
||||||
ror CS if !=
|
ror CS if !=
|
||||||
and #$80
|
and #$80
|
||||||
eor #$80
|
eor #$80
|
||||||
|
@ -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 256
|
K.PIPE.SIZE .EQ 512
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.MEM.ALIGN .EQ 16
|
K.MEM.ALIGN .EQ 16
|
||||||
K.MEM.nALIGNm1 .EQ $F0
|
K.MEM.nALIGNm1 .EQ $F0
|
||||||
@ -474,9 +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 5
|
S.FD.PIPE.Head .EQ 6
|
||||||
|
S.FD.PIPE.Free .EQ 8
|
||||||
|
S.FD.PIPE.Used .EQ 10
|
||||||
*
|
*
|
||||||
S.FD.PIPE .EQ 6
|
S.FD.PIPE .EQ 12
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PS STRUCT
|
* PS STRUCT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -445,41 +445,61 @@ IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
|
|||||||
* (pStack)+0 buf
|
* (pStack)+0 buf
|
||||||
* (pStack)+2 count
|
* (pStack)+2 count
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
|
IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
||||||
>PULLA S.IOCTL.BYTECNT.LO
|
|
||||||
eor #$ff
|
|
||||||
sta IO.Counter
|
|
||||||
>PULLA S.IOCTL.BYTECNT.HI
|
|
||||||
eor #$ff
|
|
||||||
sta IO.Counter+1
|
|
||||||
|
|
||||||
ldy #S.FD.PIPE.S
|
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
beq .99 Remote PS closed the Pipe
|
beq .99 Remote PS closed the Pipe
|
||||||
|
|
||||||
|
sec
|
||||||
|
ldy #S.FD.PIPE.Free
|
||||||
|
lda (pFD),y
|
||||||
|
ldy #2
|
||||||
|
sbc (pStack),y
|
||||||
|
tax
|
||||||
|
ldy #S.FD.PIPE.Free+1
|
||||||
|
lda (pFD),y
|
||||||
|
ldy #3
|
||||||
|
sbc (pStack),y
|
||||||
|
|
||||||
|
bcc .9 not enough room in PIPE
|
||||||
|
|
||||||
|
ldy #S.FD.PIPE.Free+1
|
||||||
|
sta (pFD),y
|
||||||
|
dey
|
||||||
|
txa
|
||||||
|
sta (pFD),y store new Free
|
||||||
|
|
||||||
|
clc
|
||||||
|
ldy #2
|
||||||
|
lda (pStack),y
|
||||||
|
pha
|
||||||
|
eor #$ff
|
||||||
|
sta IO.Counter
|
||||||
|
pla
|
||||||
|
ldy #S.FD.PIPE.Used
|
||||||
|
adc (pFD),y
|
||||||
|
sta (pFD),y
|
||||||
|
ldy #3
|
||||||
|
lda (pStack),y
|
||||||
|
pha
|
||||||
|
eor #$ff
|
||||||
|
sta IO.Counter+1
|
||||||
|
pla
|
||||||
|
ldy #S.FD.PIPE.Used+1
|
||||||
|
adc (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
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 inc IO.Counter
|
|
||||||
bne .11
|
|
||||||
inc IO.Counter+1
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
.11 ldy #S.FD.PIPE.Head
|
|
||||||
lda (pFD),y
|
|
||||||
inc
|
|
||||||
dey #S.FD.PIPE.Tail
|
|
||||||
cmp (pFD),y
|
|
||||||
beq .9 PIPE is full
|
|
||||||
|
|
||||||
iny #S.FD.PIPE.Head
|
|
||||||
sta (pFD),y
|
|
||||||
dec
|
|
||||||
tay
|
|
||||||
|
|
||||||
.2 lda $ffff,x SELF MODIFIED
|
.2 lda $ffff,x SELF MODIFIED
|
||||||
.3 sta $ffff,y SELF MODIFIED
|
.3 sta $ffff,y SELF MODIFIED
|
||||||
@ -491,15 +511,15 @@ IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
|
|||||||
tay
|
tay
|
||||||
lda #0 Y,A = bytes written
|
lda #0 Y,A = bytes written
|
||||||
clc
|
clc
|
||||||
rts
|
>RET 4
|
||||||
|
|
||||||
.9 lda #MLI.E.VOLFULL
|
.9 lda #0 BLOCKING I/O
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #MLI.E.EOF
|
.99 lda #MLI.E.EOF
|
||||||
sec
|
sec
|
||||||
rts
|
>RET 4
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # IOCTL
|
* # IOCTL
|
||||||
* ## C
|
* ## C
|
||||||
|
@ -302,6 +302,13 @@ K.Pipe >LDYAI K.PIPE.SIZE
|
|||||||
lda #S.FD.PIPE.S.Opened
|
lda #S.FD.PIPE.S.Opened
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
|
|
||||||
|
ldy #S.FD.PIPE.Free
|
||||||
|
lda #K.PIPE.SIZE
|
||||||
|
sta (pFD),y
|
||||||
|
iny
|
||||||
|
lda /K.PIPE.SIZE
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
iny S.FD.PIPE.hMem
|
iny S.FD.PIPE.hMem
|
||||||
.1 lda #$ff Self Modified
|
.1 lda #$ff Self Modified
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
|
Loading…
x
Reference in New Issue
Block a user