Files
open-roms/c64/basic/print/print_packed_dict_string.s
T

68 lines
1.1 KiB
ArmAsm

// #LAYOUT# STD * #TAKE
// #LAYOUT# M65 BASIC_1 #TAKE
// #LAYOUT# X16 BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
#if CONFIG_COMPRESSION_LVL_2
print_packed_error: // .X - error string index
lda #<packed_dict_errors
ldy #>packed_dict_errors
bne print_dict_packed_string // branch always
print_packed_misc_str: // .X - misc string index
lda #<packed_dict_misc
ldy #>packed_dict_misc
// FALLTROUGH
print_dict_packed_string:
// Search for the packed string on the list
jsr print_packed_search
ldy #$00
!:
// At this point FRESPC contains a pointer to the string to display
// Fetch a byte-code
lda (FRESPC), y
beq print_dict_packed_string_end // branch if everything displayed
tax
dex
// Call 'print_freq_packed_string' - but preserve all the data needed to progress further
phy_trash_a
lda FRESPC+0
pha
lda FRESPC+1
pha
lda #<packed_dictionary
ldy #>packed_dictionary
jsr print_freq_packed_string
pla
sta FRESPC+1
pla
sta FRESPC+0
ply_trash_a
// Next iteration
iny
bne !- // branch always
print_dict_packed_string_end:
rts
#endif