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