From 75ca6300b91d793ab5456bd63ee0faaef5ecf590 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Sat, 3 Jul 2021 23:52:28 -0400 Subject: [PATCH] OD: Bugfix to ASCII printout. Handle ^C/^S when reading from file. --- BIN/OD.S.txt | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/BIN/OD.S.txt b/BIN/OD.S.txt index 676cfe9e..2369ac9e 100644 --- a/BIN/OD.S.txt +++ b/BIN/OD.S.txt @@ -20,6 +20,8 @@ hFile .BS 1 hBuf .BS 1 char .BS 1 ByteCount .BS 3 +bPause .BS 1 +bPipe .BS 1 bTemp .BS 1 bDummy .BS 1 @@ -54,14 +56,41 @@ L.MSG.HEXBYTE .DA MSG.HEXBYTE CS.INIT clc rts *-------------------------------------- -CS.RUN jsr CS.RUN.CheckArgs +CS.RUN stz bPipe + jsr CS.RUN.CheckArgs bcs CS.RUN.LOOP.RTS stz ByteCount stz ByteCount+1 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 >SYSCALL GetC @@ -139,6 +168,7 @@ CS.RUN.CheckArgs jsr CS.RUN.NextArg ldy #S.PS.hStdIn lda (pPS),y sta hFile + inc bPipe .80 >LDYAI 256 >SYSCALL GetMem @@ -238,9 +268,12 @@ CS.RUN.PRINTASCII ldy #$00 .7 lda (ZPBufPtr),y phy + cmp #$7f + bcs .75 Character >= $7f cmp #C.SPACE - bcs .8 - lda #'.' + bcc .75 Character < Space + bra .8 +.75 lda #'.' .8 >SYSCALL PutChar ply