mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-13 13:29:04 +00:00
Kernel 0.92+
This commit is contained in:
parent
d2312b879f
commit
2069187dd2
Binary file not shown.
@ -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"
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
11
BIN/SH.S.txt
11
BIN/SH.S.txt
@ -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
|
||||||
|
@ -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
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -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
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user