mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-22 00:32:44 +00:00
OD: Bugfix to ASCII printout. Handle ^C/^S when reading from file.
This commit is contained in:
parent
1262246050
commit
75ca6300b9
41
BIN/OD.S.txt
41
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
|
||||
|
Loading…
Reference in New Issue
Block a user