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

View File

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

View File

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

View File

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

View File

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

View File

@ -467,15 +467,12 @@ S.FD.SSOCK.STATUS .EQ 7
S.FD.SSOCK .EQ 8 S.FD.SSOCK .EQ 8
*-------------------------------------- *--------------------------------------
S.FD.PIPE.S .EQ 2 S.FD.PIPE.S .EQ 2
S.FD.PIPE.S.ROpened .EQ %00000001 S.FD.PIPE.S.Opened .EQ %10000000
S.FD.PIPE.S.RClosed .EQ %00000010
S.FD.PIPE.S.WOpened .EQ %00000100
S.FD.PIPE.S.WClosed .EQ %00001000
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 .EQ 8 S.FD.PIPE .EQ 6
*-------------------------------------- *--------------------------------------
* PS STRUCT * PS STRUCT
*-------------------------------------- *--------------------------------------

View File

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

View File

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

View File

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