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