clean up text draw, fix offset by one

This commit is contained in:
Brooke Vibber 2025-02-02 16:40:58 -08:00
parent d182d33b35
commit 25da81c64b

View file

@ -142,26 +142,32 @@ KEY_0 = 50
strings: strings:
str_self: str_self:
.byte "MANDEL-6502", 0 .byte "MANDEL-6502"
str_self_end: str_self_end:
.byte 0
str_speed: str_speed:
.byte "us/iter: ", 0 .byte "us/iter: "
str_speed_end: str_speed_end:
.byte 0
str_run: str_run:
.byte " RUN", 0 .byte " RUN"
str_run_end: str_run_end:
.byte 0
str_done: str_done:
.byte "DONE", 0 .byte "DONE"
str_done_end: str_done_end:
.byte 0
str_padding:
.byte " "
str_padding_end:
.byte 0
str_self_len = str_self_end - str_self
str_speed_len = str_speed_end - str_speed str_speed_len = str_speed_end - str_speed
str_run_len = str_run_end - str_run str_run_len = str_run_end - str_run
str_done_len = str_done_end - str_done str_done_len = str_done_end - str_done
speed_precision = 6 str_padding_len = str_padding_end - str_padding
speed_start = 40 - str_done_len - str_speed_len - speed_precision - 1 speed_start = 40 - str_done_len - str_speed_len - str_padding_len - 1
speed_len = 14 + str_speed_len
char_map: char_map:
@ -1288,6 +1294,14 @@ done:
rts rts
.endproc .endproc
.macro draw_string_const str
lda #.lobyte(str)
sta INBUFF
lda #.hibyte(str)
sta INBUFF + 1
jsr draw_string
.endmacro
.proc vblank_handler .proc vblank_handler
inc count_frames inc count_frames
@ -1506,19 +1520,11 @@ zero_byte_loop:
sta text_col sta text_col
lda #0 lda #0
sta text_row sta text_row
lda #.lobyte(str_self) draw_string_const str_self
sta INBUFF
lda #.hibyte(str_self)
sta INBUFF + 1
jsr draw_string
lda #(40 - str_run_len) lda #(40 - str_run_len)
sta text_col sta text_col
lda #.lobyte(str_run) draw_string_const str_run
sta INBUFF
lda #.hibyte(str_run)
sta INBUFF + 1
jsr draw_string
rts rts
.endproc .endproc
@ -1773,11 +1779,13 @@ update_status:
sta text_col sta text_col
lda #0 lda #0
sta text_row sta text_row
lda #.lobyte(str_speed) draw_string_const str_speed
sta INBUFF
lda #.hibyte(str_speed) lda text_col
sta INBUFF + 1 pha
jsr draw_string draw_string_const str_padding
pla
sta text_col
; convert to ASCII in INBUFF and print ; convert to ASCII in INBUFF and print
jsr FASC jsr FASC
@ -1834,11 +1842,7 @@ loop:
sta text_col sta text_col
lda #0 lda #0
sta text_row sta text_row
lda #.lobyte(str_done) draw_string_const str_done
sta INBUFF
lda #.hibyte(str_done)
sta INBUFF + 1
jsr draw_string
jsr keycheck jsr keycheck
beq loop beq loop