mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-29 23:32:00 +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
|
||||
>STA.G CORE.Operator
|
||||
|
||||
.1 jsr CORE.ArgV.Next
|
||||
.1 >LDYA ZPArgVBufPrev
|
||||
>STYA ZPPtr1
|
||||
|
||||
jsr CORE.ArgV.Next
|
||||
beq .9
|
||||
|
||||
>PUSHW ZPArgVBufPrev
|
||||
>PUSHW ZPPtr1
|
||||
>LDYA ZPArgVBufPtr
|
||||
>SYSCALL strcmp
|
||||
|
||||
ror CS if !=
|
||||
and #$80
|
||||
eor #$80
|
||||
|
@ -4,7 +4,7 @@ AUTO 4,1
|
||||
*--------------------------------------
|
||||
K.VER .EQ $5C00 92.0
|
||||
K.ENV.SIZE .EQ 256
|
||||
K.PIPE.SIZE .EQ 256
|
||||
K.PIPE.SIZE .EQ 512
|
||||
*--------------------------------------
|
||||
K.MEM.ALIGN .EQ 16
|
||||
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.hMem .EQ 3
|
||||
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
|
||||
*--------------------------------------
|
||||
|
@ -445,41 +445,61 @@ IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
|
||||
* (pStack)+0 buf
|
||||
* (pStack)+2 count
|
||||
*--------------------------------------
|
||||
IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
|
||||
>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
|
||||
IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
||||
lda (pFD),y
|
||||
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
|
||||
lda (pFD),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA .3+1
|
||||
|
||||
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
|
||||
.3 sta $ffff,y SELF MODIFIED
|
||||
@ -491,15 +511,15 @@ IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
|
||||
tay
|
||||
lda #0 Y,A = bytes written
|
||||
clc
|
||||
rts
|
||||
>RET 4
|
||||
|
||||
.9 lda #MLI.E.VOLFULL
|
||||
.9 lda #0 BLOCKING I/O
|
||||
sec
|
||||
rts
|
||||
|
||||
.99 lda #MLI.E.EOF
|
||||
sec
|
||||
rts
|
||||
>RET 4
|
||||
*/--------------------------------------
|
||||
* # IOCTL
|
||||
* ## C
|
||||
|
@ -302,6 +302,13 @@ K.Pipe >LDYAI K.PIPE.SIZE
|
||||
lda #S.FD.PIPE.S.Opened
|
||||
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
|
||||
.1 lda #$ff Self Modified
|
||||
sta (pFD),y
|
||||
|
Loading…
x
Reference in New Issue
Block a user