Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-02-22 16:08:37 +00:00
parent d70b2d90df
commit f637ced1e4
3 changed files with 51 additions and 21 deletions

View File

@ -124,7 +124,7 @@ CS.QUIT clc
*-------------------------------------- *--------------------------------------
INPUT.RESET >STA.G INPUT.PassChar INPUT.RESET >STA.G INPUT.PassChar
>STZ.G INPUT.BufPtr >STZ.G INPUT.BUF
>STA.G INPUT.Status >STA.G INPUT.Status
rts rts
*-------------------------------------- *--------------------------------------
@ -133,12 +133,12 @@ INPUT.CHARIN tax save char...
>LDA.G INPUT.Status >LDA.G INPUT.Status
bmi .9 bmi .9
lda #INPUT.BufPtr lda #INPUT.BUF
clc clc
adc pData adc pData
sta ZPPTR1 sta ZPPTR1
lda pData+1 lda pData+1
adc /INPUT.BufPtr adc /INPUT.BUF
sta ZPPTR1+1 sta ZPPTR1+1
cpx #$20 Control Char? cpx #$20 Control Char?

View File

@ -360,17 +360,27 @@ IO.READ.CDEV ldx #IOCTL.READ
*-------------------------------------- *--------------------------------------
IO.WRITE.CDEV ldx #IOCTL.WRITE IO.WRITE.CDEV ldx #IOCTL.WRITE
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR ldy #3
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
.1 lda (pStack),y
sta K.S.IOCTL+S.IOCTL.BUFPTR,y
dey
bpl .1
jsr K.IOCTL.GetPDRV jsr K.IOCTL.GetPDRV
>LDYAI K.S.IOCTL >LDYAI K.S.IOCTL
.1 jsr K.IOCTL.pDrvJmp jsr K.IOCTL.pDrvJmp
bcs .9 bcc .8
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT tay CS, A=0 ?
.9 rts bne .9 no, I/O error
rts BLOCKING I/O
.8 >LDYA K.S.IOCTL+S.IOCTL.BYTECNT
.9 >RET 4
*-------------------------------------- *--------------------------------------
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
.HS 2C BIT ABS .HS 2C BIT ABS

View File

@ -19,15 +19,22 @@ HEXBUF.Signed .EQ ARG.SIGN
* `int putchar ( int character );` * `int putchar ( int character );`
* ## ASM * ## ASM
* **In:** * **In:**
* `lda caracter` * `lda character`
* `>SYSCALL putchar` * `>SYSCALL putchar`
* ## RETURN VALUE * ## RETURN VALUE
* CC = success * CC = success
*\-------------------------------------- *\--------------------------------------
K.PutChar >PUSHA K.PutChar >PUSHA character
ldy #S.PS.hStdOut ldy #S.PS.hStdOut
lda (pPs),y lda (pPs),y
jsr K.FPutC
bcc .8
tay
beq K.FPutC.RET1
.8 rts
*/-------------------------------------- */--------------------------------------
* # fputc (BLOCKING) * # fputc (BLOCKING)
* Print A (char) to hFILE * Print A (char) to hFILE
@ -41,19 +48,27 @@ K.PutChar >PUSHA
* ## RETURN VALUE * ## RETURN VALUE
* CC = success * CC = success
*\-------------------------------------- *\--------------------------------------
* (pStack)+0 character
*--------------------------------------
K.FPutC jsr PFT.CheckNodeA K.FPutC jsr PFT.CheckNodeA
bcs K.FPutC.9 bcs K.FPutC.RET1
>PULLB K.IOBuf lda (pStack) character
ldy #1 ldy #1
K.FPutC.Y lda #0 K.FPutC.Y lda #0
>PUSHYA >PUSHYA count
>PUSHWI K.IOBuf >PUSHWI K.IOBuf buf
jmp IO.Write.I jsr IO.Write.I
K.FPutC.9 >RET 1 bcc K.FPutC.RET1
tay
bne K.FPutC.RET1
>RET 4 pop buf,count but keep char
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'
@ -794,15 +809,20 @@ K.GetChar ldy #S.PS.hStdIn
* A = char * A = char
*\-------------------------------------- *\--------------------------------------
K.GetC jsr PFT.CheckNodeA K.GetC jsr PFT.CheckNodeA
bcs K.GetC.9 bcs K.GetC.RTS
K.GetC.I >PUSHWI 1 K.GetC.I >PUSHWI 1
>PUSHWI K.IOBuf >PUSHWI K.IOBuf
jsr IO.READ.I jsr IO.READ.I
bcs K.GetC.9 bcc .8
lda K.IOBuf tay
K.GetC.9 rts bne K.GetC.RTS
>RET 4 BLOCKING I/O
.8 lda K.IOBuf
K.GetC.RTS rts
*/-------------------------------------- */--------------------------------------
* # SScanF * # SScanF
* Read formatted data from string * Read formatted data from string