Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-02-18 06:42:17 +00:00
parent d2312b879f
commit 2069187dd2
10 changed files with 118 additions and 61 deletions

Binary file not shown.

View File

@ -76,8 +76,9 @@ CS.RUN lda #1
sec
rts
.10 >LDYA L.MSG0
>SYSCALL puts
.10 >PUSHBI 0
>LDYA L.MSG0
>SYSCALL printf
>LDA.G PS.Index
@ -200,8 +201,8 @@ CS.QUIT clc
rts
*--------------------------------------
CS.END
MSG0 .AZ "ID CPU% Flags UID PID Command Line"
MSG1 .AZ "\e[7l%03d %03d\% %s %03d %03d"
MSG0 .AZ "\e[7lID CPU% Flags UID PID Command Line"
MSG1 .AZ "%03d %3d\% %s %03d %03d"
MSG2 .AZ " %s"
MSG3 .AZ "\r\n"
MSG.FLAGS .AS "IRQDHSed"

View File

@ -77,17 +77,11 @@ CL.CHARIN tax
rts
*--------------------------------------
CL.CHARIN.CTRL cpx #C.CR
bne .10
beq .18
>PUSHBI 0
>LDYA L.MSG.ECHOCRLF
>SYSCALL printf
cpx #C.EOF
beq .18
lda #$ff
>STA.G CL.bReady
clc
rts
.10 cpx #C.ESC
bne .11
@ -106,6 +100,9 @@ CL.CHARIN.CTRL cpx #C.CR
jmp CL.SUPPR
.18 lda #$ff
>STA.G CL.bReady
.13 clc
rts
*--------------------------------------
@ -136,8 +133,11 @@ CL.Insert >LDA.G CL.Len
>LDA.G bREAD.S
bpl .2
ldx #'*'
>INC.G CL.Ptr
clc
rts
.2 txa
>SYSCALL PutChar

View File

@ -305,13 +305,15 @@ CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`"
>LDYA ZPArgVBufPtr
>SYSCALL execl
bcs .9
jsr IO.Pipe.In
bcs .9
lda #$ff
>STA.G bREAD.S secret
>STA.G bReadMode
>SLEEP
clc
.9 rts
*--------------------------------------
CMD.DATE sec

View File

@ -12,7 +12,12 @@ IO.Pipe.In ldy #S.PS.hStdOut
lda (pPS),y
pha
jsr IO.Reset.Out
>LDA.G IO.hOut
ldy #S.PS.hStdOut
sta (pPS),y
>STZ.G IO.hOut
pla
*--------------------------------------
@ -54,16 +59,27 @@ IO.Pipe.Out >SYSCALL pipe
>SYSCALL sprintf
>PUSHB.G IO.hPipe
>PUSHW 0
>PUSHWI 0
>LEA.G IO.NodBuf
>SYSCALL mknod
bcs .99
>PUSHWI 0 auxtype
>PUSHBI 0 type
>PUSHBI O.RDWR
>LEA.G IO.NodBuf
>SYSCALL fopen
bcc IO.Set.Out
pha
pla
.99 pha
>LDA.G IO.hPipe
>SYSCALL close
pla
dec
sec
rts
*--------------------------------------
IO.Set.Out pha
@ -83,6 +99,7 @@ IO.Reset.Out >LDA.G IO.hOut
ldy #S.PS.hStdOut
lda (pPS),y
>SYSCALL fclose
pla

View File

@ -327,14 +327,17 @@ CS.RUN.READ jsr CL.RESET
.1 >SLEEP
>SYSCALL GetChar
bcs .1 no char
jsr CL.CHARIN
bcc .11
tay
beq .1
.11 jsr CL.CHARIN
>LDA.G CL.bReady
bpl .1
lda (ZPCLBuf)
.12 lda (ZPCLBuf)
bne .2
>LDYA ZPVarNamePtr

View File

@ -467,15 +467,12 @@ S.FD.SSOCK.STATUS .EQ 7
S.FD.SSOCK .EQ 8
*--------------------------------------
S.FD.PIPE.S .EQ 2
S.FD.PIPE.S.ROpened .EQ %00000001
S.FD.PIPE.S.RClosed .EQ %00000010
S.FD.PIPE.S.WOpened .EQ %00000100
S.FD.PIPE.S.WClosed .EQ %00001000
S.FD.PIPE.S.Opened .EQ %10000000
S.FD.PIPE.hMem .EQ 3
S.FD.PIPE.Tail .EQ 4
S.FD.PIPE.Head .EQ 6
S.FD.PIPE.Head .EQ 5
*
S.FD.PIPE .EQ 8
S.FD.PIPE .EQ 6
*--------------------------------------
* PS STRUCT
*--------------------------------------

View File

@ -18,6 +18,7 @@ K.Open.FLAGS .BS 1
K.Open.TYPE .BS 1
K.Open.AUXTYPE .BS 2
IO.hFD .BS 1
IO.Counter .BS 2
*--------------------------------------
K.Open jsr PFT.YAToMLIPATH
>PULLB K.Open.FLAGS
@ -234,7 +235,7 @@ IO.CLOSE.DIR ldy #S.FD.REG.REF
>MLICALL MLICLOSE
.1 ldy #S.FD.REG.IOBUF
lda (pFD),y
IO.CLOSE.FD lda (pFD),y
beq .2
jsr K.FreeMem
@ -246,10 +247,11 @@ IO.CLOSE.CDEV
IO.CLOSE.BDEV
*--------------------------------------
IO.CLOSE.DSOCK
IO.CLOSE.SSOCK
*--------------------------------------
IO.CLOSE.PIPE clc
IO.CLOSE.SSOCK clc
rts
*--------------------------------------
IO.CLOSE.PIPE ldy #S.FD.PIPE.hMem
bra IO.CLOSE.FD
*/--------------------------------------
* # read
* ## C
@ -362,14 +364,16 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
.1 jmp $FFFF SELF MODIFIED
*--------------------------------------
IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
>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
* bit #S.FD.PIPE.S.WOpened
* beq .9 Remote PS did not opened yet the pipe
* bit #S.FD.PIPE.S.WClosed
* beq .99 Remote PS closed the Pipe
ldy #S.FD.PIPE.S
lda (pFD),y
beq .99 Remote PS closed the Pipe
ldy #S.FD.PIPE.hMem
lda (pFD),y
@ -377,18 +381,33 @@ IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
>STYA .2+1
ldx #0
.1 inc IO.Counter
bne .11
inc IO.Counter+1
beq .8
.1 ldy #S.FD.PIPE.Tail
.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,x SELF MODIFIED
.2 lda $ffff,y SELF MODIFIED
.3 sta $ffff,x SELF MODIFIED
inx
bne .1
.8 txa
tay
lda #0 Y,A = bytes read
clc
rts
@ -397,19 +416,21 @@ IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
sec
rts
.99 lda #MLI.E.EOF
.99 lda #C.EOF
sec
rts
*--------------------------------------
IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
>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
* bit #S.FD.PIPE.S.ROpened
* beq .9 Remote PS did not opened yet the pipe
* bit #S.FD.PIPE.S.RClosed
* beq .99 Remote PS closed the Pipe
ldy #S.FD.PIPE.S
lda (pFD),y
beq .99 Remote PS closed the Pipe
ldy #S.FD.PIPE.hMem
lda (pFD),y
@ -418,31 +439,40 @@ IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
ldx #0
.1 ldy #S.FD.PIPE.Head
.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
iny #S.FD.PIPE.Head
sta (pFD),y
dec
tay
.2 lda $ffff,x SELF MODIFIED
.3 sta $ffff,x SELF MODIFIED
.3 sta $ffff,y SELF MODIFIED
inx
bne .1
.8 clc
.8 txa
tay
lda #0 Y,A = bytes written
clc
rts
.9 lda #MLI.E.VOLFULL
sec
rts
.99 lda #MLI.E.EOF
.99 lda #C.EOF
sec
rts
*/--------------------------------------

View File

@ -295,8 +295,11 @@ K.Pipe >LDYAI K.PIPE.SIZE
>STYA pFD
ldy #S.FD.T
lda #S.FD.T.PIPE
sta (pFD)
ldy #S.FD.PIPE.S
lda #S.FD.PIPE.S.Opened
sta (pFD),y
iny S.FD.PIPE.hMem

View File

@ -1313,18 +1313,22 @@ STDIO.NewHFile sta .4+1 Store hFD
* sec
rts
.2 lda (pFD)
.2 stx .3+1 Store hFILE
lda (pFD)
cmp #S.FD.T.CDEV
bcc .21 REG or DIR....store path
beq .20
stz OF.Table.hPath,x STZ path for SPECIAL files
bra .4
cmp #S.FD.T.BDEV
bne .21
.21 stx .3+1 Store hFILE
.20 lda #0 No hPath for DEV
bra .3
>LDYAI K.buf256
.21 >LDYAI K.buf256
>SYSCALL strdup
bcs .9
txa
.3 ldx #$ff SELF MODIFIED