printf inline hex bytes and word display now works.
This commit is contained in:
1 parent
83fbaeffe2
commit
cbd92e9351
1 file changed
+71
-2
+71
-2
@@ -50,13 +50,82 @@ printf_loop:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
printf_continues:
|
printf_continues:
|
||||||
|
cmp #$01
|
||||||
|
bne not_hexbyte
|
||||||
|
;; Print a hex byte
|
||||||
|
|
||||||
|
;; Skip the token
|
||||||
|
jsr printf_advance
|
||||||
|
;; Read the low byte
|
||||||
|
jsr $7f4
|
||||||
|
;; Print as hex
|
||||||
|
jsr printf_printhexbyte
|
||||||
|
jmp printf_nextchar
|
||||||
|
|
||||||
|
not_hexbyte:
|
||||||
|
cmp #$02
|
||||||
|
bne not_hexword
|
||||||
|
;; Print a hex word
|
||||||
|
|
||||||
|
;; Skip the token
|
||||||
|
jsr printf_advance
|
||||||
|
jsr printf_advance
|
||||||
|
;; Read the high byte
|
||||||
|
jsr $7f4
|
||||||
|
;; Print as hex
|
||||||
|
jsr printf_printhexbyte
|
||||||
|
;; Skip the token
|
||||||
|
jsr printf_retreat
|
||||||
|
;; Read the low byte
|
||||||
|
jsr $7f4
|
||||||
|
;; Print as hex
|
||||||
|
jsr printf_printhexbyte
|
||||||
|
jsr printf_advance
|
||||||
|
jmp printf_nextchar
|
||||||
|
|
||||||
|
not_hexword:
|
||||||
;; Print character
|
;; Print character
|
||||||
jsr $ffd2
|
jsr $ffd2
|
||||||
|
|
||||||
printf_nextchar:
|
printf_nextchar:
|
||||||
|
jsr printf_advance
|
||||||
|
|
||||||
|
jmp printf_loop
|
||||||
|
|
||||||
|
printf_advance:
|
||||||
;; Advance pointer to next character
|
;; Advance pointer to next character
|
||||||
inc $7f5
|
inc $7f5
|
||||||
bne +
|
bne +
|
||||||
inc $7f6
|
inc $7f6
|
||||||
*
|
*
|
||||||
jmp printf_loop
|
rts
|
||||||
|
|
||||||
|
printf_retreat:
|
||||||
|
;; Retreat pointer to previous char
|
||||||
|
lda $7f5
|
||||||
|
sec
|
||||||
|
sbc #1
|
||||||
|
sta $7f5
|
||||||
|
lda $7f6
|
||||||
|
sbc #0
|
||||||
|
sta $7f6
|
||||||
|
rts
|
||||||
|
|
||||||
|
printf_printhexbyte:
|
||||||
|
pha
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
ora #$30
|
||||||
|
cmp #$3A
|
||||||
|
bcc +
|
||||||
|
adc #6
|
||||||
|
* jsr $ffd2
|
||||||
|
pla
|
||||||
|
and #$0f
|
||||||
|
ora #$30
|
||||||
|
cmp #$3A
|
||||||
|
bcc +
|
||||||
|
adc #6
|
||||||
|
* jmp $ffd2
|
||||||
Reference in new issue
Block a user