Das 'tax' und 'txa' kannst du durch 'pha' und 'pla' ersetzen.
So bleibt das X-Register unbenutzt und du brauchst es auch nicht zu sichern.
Oh Mann, ja, natürlich - danke!
Hier also die bisherige Optimierung:
Code
lda #$c7
jsr display_hex_value
jmp *
display_hex_value
pha ; now we save A in X
lsr ; we want the high nibble only
lsr
lsr ; move high nibble into low nibble
lsr
jsr compare
sta $0400 ; display high nibble on screen
pla ; get back original hex value
and #$0f ; we want the low nibble now
jsr compare
sta $0401 ; display low nibble on screen
rts ; done ;)
compare
cmp #$0a ; depending on 0-9 or A-F
bcc + ; we need to add or substract to get
sbc #$09 ; the right petscii code
rts
+ adc #$30
rts
Alles anzeigen