OD: Bugfix to ASCII printout. Handle ^C/^S when reading from file.

This commit is contained in:
Bobbi Webber-Manners 2021-07-03 23:52:28 -04:00
parent 1262246050
commit 75ca6300b9

View File

@ -20,6 +20,8 @@ hFile .BS 1
hBuf .BS 1 hBuf .BS 1
char .BS 1 char .BS 1
ByteCount .BS 3 ByteCount .BS 3
bPause .BS 1
bPipe .BS 1
bTemp .BS 1 bTemp .BS 1
bDummy .BS 1 bDummy .BS 1
@ -54,14 +56,41 @@ L.MSG.HEXBYTE .DA MSG.HEXBYTE
CS.INIT clc CS.INIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN jsr CS.RUN.CheckArgs CS.RUN stz bPipe
jsr CS.RUN.CheckArgs
bcs CS.RUN.LOOP.RTS bcs CS.RUN.LOOP.RTS
stz ByteCount stz ByteCount
stz ByteCount+1 stz ByteCount+1
stz ByteCount+2 stz ByteCount+2
CS.RUN.LOOP >SLEEP CS.RUN.LOOP lda bPipe If reading from pipe
bne .2 No ^C/^S handling
ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL FEOF
bcs .9 I/O Error
tay
bne .1 No char
>SYSCALL GetChar
bcs .9 I/O error
cmp #$03 Ctrl-C
beq .9
cmp #$13 Ctrl-S
bne .1
lda bPause
eor #$ff
sta bPause
bne CS.RUN.LOOP
.1 lda bPause
bne CS.RUN.LOOP
.2 >SLEEP
lda hFile lda hFile
>SYSCALL GetC >SYSCALL GetC
@ -139,6 +168,7 @@ CS.RUN.CheckArgs jsr CS.RUN.NextArg
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
sta hFile sta hFile
inc bPipe
.80 >LDYAI 256 .80 >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
@ -238,9 +268,12 @@ CS.RUN.PRINTASCII
ldy #$00 ldy #$00
.7 lda (ZPBufPtr),y .7 lda (ZPBufPtr),y
phy phy
cmp #$7f
bcs .75 Character >= $7f
cmp #C.SPACE cmp #C.SPACE
bcs .8 bcc .75 Character < Space
lda #'.' bra .8
.75 lda #'.'
.8 >SYSCALL PutChar .8 >SYSCALL PutChar
ply ply