mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-21 06:29:08 +00:00
Kernel 0.92+
This commit is contained in:
parent
b7d0ebf1ea
commit
8475d1ddda
Binary file not shown.
@ -164,10 +164,8 @@ CS.RUN.PAUSE >PUSHBI 0
|
|||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL fprintf
|
>SYSCALL fprintf
|
||||||
|
|
||||||
.10 >SLEEP
|
.10 jsr CS.RUN.GETC
|
||||||
|
bcs .99
|
||||||
jsr CS.RUN.GETC
|
|
||||||
bcs .10 no char
|
|
||||||
|
|
||||||
cmp #'Q'
|
cmp #'Q'
|
||||||
beq .9
|
beq .9
|
||||||
@ -184,11 +182,8 @@ CS.RUN.PAUSE >PUSHBI 0
|
|||||||
|
|
||||||
jsr CS.RUN.ERASE
|
jsr CS.RUN.ERASE
|
||||||
|
|
||||||
.40 >SLEEP
|
.40 jsr CS.RUN.GETLINE
|
||||||
jsr CS.RUN.GETLINE
|
|
||||||
bcc .5
|
bcc .5
|
||||||
tay
|
|
||||||
beq .40
|
|
||||||
|
|
||||||
cmp #MLI.E.EOF
|
cmp #MLI.E.EOF
|
||||||
bne .99
|
bne .99
|
||||||
@ -202,6 +197,7 @@ CS.RUN.PAUSE >PUSHBI 0
|
|||||||
bra CS.RUN.PAUSE
|
bra CS.RUN.PAUSE
|
||||||
|
|
||||||
.9 jsr CS.RUN.ERASE
|
.9 jsr CS.RUN.ERASE
|
||||||
|
|
||||||
.90 lda #0
|
.90 lda #0
|
||||||
.99 sec
|
.99 sec
|
||||||
rts
|
rts
|
||||||
@ -233,36 +229,7 @@ CS.RUN.GETLINE >PUSHWI 256
|
|||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
|
||||||
.1 >SYSCALL fgets
|
.1 >SYSCALL fgets
|
||||||
bcs .9
|
rts
|
||||||
|
|
||||||
lda (ZPBufPtr)
|
|
||||||
cmp #C.LF
|
|
||||||
bne .11
|
|
||||||
|
|
||||||
lda #C.CR
|
|
||||||
sta (ZPBufPtr)
|
|
||||||
|
|
||||||
.11 ldy #$ff
|
|
||||||
|
|
||||||
.2 iny
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
.3 tya
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
dey
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
cmp #C.LF
|
|
||||||
beq .3
|
|
||||||
cmp #C.CR
|
|
||||||
beq .3
|
|
||||||
lda #0
|
|
||||||
iny
|
|
||||||
.8 sta (ZPBufPtr),y
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PRINT >LDA.G bLineNum
|
CS.RUN.PRINT >LDA.G bLineNum
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -208,8 +208,10 @@ CORE.ExecExtCmd.Exit
|
|||||||
txa
|
txa
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 1
|
>PUSHBI 1
|
||||||
>LDYA L.MSG.PID
|
>PUSHW L.MSG.PID
|
||||||
>SYSCALL printf
|
ldy #S.PS.hStdErr
|
||||||
|
lda (pPS),y
|
||||||
|
>SYSCALL fprintf
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.4 >SLEEP Suspend this PID
|
.4 >SLEEP Suspend this PID
|
||||||
|
@ -38,7 +38,7 @@ IO.Reset.In >LDA.G IO.hIn
|
|||||||
|
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
>DEBUG
|
||||||
>SYSCALL fclose
|
>SYSCALL fclose
|
||||||
|
|
||||||
pla
|
pla
|
||||||
@ -100,7 +100,7 @@ IO.Reset.Out >LDA.G IO.hOut
|
|||||||
|
|
||||||
ldy #S.PS.hStdOut
|
ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
>DEBUG
|
||||||
>SYSCALL fclose
|
>SYSCALL fclose
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
@ -32,7 +32,9 @@ K.PutChar >PUSHA character
|
|||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
tay
|
tay
|
||||||
beq K.FPutC.RET1
|
bne .8
|
||||||
|
|
||||||
|
>RET 1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
@ -51,25 +53,19 @@ K.PutChar >PUSHA character
|
|||||||
* (pStack)+0 character
|
* (pStack)+0 character
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.FPutC jsr PFT.CheckNodeA
|
K.FPutC jsr PFT.CheckNodeA
|
||||||
bcs K.FPutC.RET1
|
bcs .8
|
||||||
|
|
||||||
lda (pStack) character
|
lda (pStack) character
|
||||||
sta K.IOBuf
|
sta K.IOBuf
|
||||||
|
|
||||||
ldy #1
|
ldy #1 write 1 byte
|
||||||
|
jsr K.FPutC.Y
|
||||||
K.FPutC.Y lda #0
|
bcc .8
|
||||||
|
|
||||||
>PUSHYA count
|
|
||||||
>PUSHWI K.IOBuf buf
|
|
||||||
jsr IO.Write.I
|
|
||||||
bcc K.FPutC.RET1
|
|
||||||
tay
|
tay
|
||||||
bne K.FPutC.RET1
|
bne .8
|
||||||
|
rts
|
||||||
|
|
||||||
>RET 4 pop buf,count but keep char
|
.8 >RET 1
|
||||||
|
|
||||||
K.FPutC.RET1 >RET 1 pop char
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # puts (BLOCKING)
|
* # puts (BLOCKING)
|
||||||
* Write Str to StdOut, appends '\r\n'
|
* Write Str to StdOut, appends '\r\n'
|
||||||
@ -95,8 +91,18 @@ K.PutS >PUSHYA
|
|||||||
lda #C.LF
|
lda #C.LF
|
||||||
sta K.IOBuf+1
|
sta K.IOBuf+1
|
||||||
|
|
||||||
ldy #2
|
ldy #2 write 2 bytes
|
||||||
bra K.FPutC.Y
|
|
||||||
|
K.FPutC.Y lda #0
|
||||||
|
|
||||||
|
>PUSHYA count
|
||||||
|
>PUSHWI K.IOBuf buf
|
||||||
|
jsr IO.Write.I
|
||||||
|
bcc K.PutS.RTS
|
||||||
|
tay
|
||||||
|
bne K.PutS.RTS
|
||||||
|
|
||||||
|
>RET 4 pop buf,count but keep char
|
||||||
|
|
||||||
K.PutS.RTS rts
|
K.PutS.RTS rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
@ -120,7 +126,15 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD
|
|||||||
>SYSCALL strlen Get String len in Y,A
|
>SYSCALL strlen Get String len in Y,A
|
||||||
>PUSHYA push len
|
>PUSHYA push len
|
||||||
>PUSHW ZPPtr2 push buffer
|
>PUSHW ZPPtr2 push buffer
|
||||||
jmp IO.Write.I
|
jsr IO.Write.I
|
||||||
|
bcc .8
|
||||||
|
tay
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
>RET 4
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
|
||||||
.9 >RET 2
|
.9 >RET 2
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # PrintF (BLOCKING)
|
* # PrintF (BLOCKING)
|
||||||
@ -760,26 +774,42 @@ PrintF.COut phy
|
|||||||
* Y,A: s
|
* Y,A: s
|
||||||
* CC = success
|
* CC = success
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
|
* (pStack)+2 n
|
||||||
|
* (pStack)+0 s
|
||||||
|
*--------------------------------------
|
||||||
K.FGetS jsr PFT.CheckNodeA
|
K.FGetS jsr PFT.CheckNodeA
|
||||||
bcs K.FGetS.RET4
|
bcs .9
|
||||||
|
|
||||||
>PULLW ZPPtr2 s
|
lda (pStack)
|
||||||
|
sta ZPPtr2
|
||||||
|
ldy #1
|
||||||
|
|
||||||
>PULLA
|
lda (pStack),y
|
||||||
|
sta ZPPtr2+1 s
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (pStack),y
|
||||||
sec
|
sec
|
||||||
sbc #2
|
sbc #2
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta ZPPtr1 !n
|
sta ZPPtr1 !n
|
||||||
>PULLA
|
|
||||||
|
iny
|
||||||
|
lda (pStack),y
|
||||||
sbc #0
|
sbc #0
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta ZPPtr1+1 !n
|
sta ZPPtr1+1 !n
|
||||||
|
|
||||||
jsr K.GetC.I
|
.10 jsr K.GetC.I
|
||||||
bcs .9
|
bcc .1
|
||||||
|
tay
|
||||||
|
bne .9 I/O ERROR
|
||||||
|
rts BLOCKING I/O
|
||||||
|
|
||||||
.1 lda K.IOBuf
|
.1 cmp #C.LF Discard any leading LF
|
||||||
cmp #C.CR
|
beq .10
|
||||||
|
|
||||||
|
.2 cmp #C.CR
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr MEM.PutCharPtr2
|
jsr MEM.PutCharPtr2
|
||||||
@ -788,16 +818,18 @@ K.FGetS jsr PFT.CheckNodeA
|
|||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr K.GetC.I
|
jsr K.GetC.I
|
||||||
bcc .1
|
bcc .2 another char...
|
||||||
|
tay BLOCKING...
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
jsr .9 Cancel GetC blocking
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
|
|
||||||
.9 pha
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPPtr2)
|
sta (ZPPtr2) terminate string
|
||||||
pla
|
|
||||||
.99 rts
|
.9 >RET 4
|
||||||
K.FGetS.RET4 >RET 4
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # getchar (BLOCKING)
|
* # getchar (BLOCKING)
|
||||||
* Get char from StdIn
|
* Get char from StdIn
|
||||||
|
Loading…
x
Reference in New Issue
Block a user