Код:
ld hl,_SOURCE_NAME+0
ld (addr_arraystring_index_2),hl
ld hl,string_temp
ld (hl),0
ld de,_STR0
call add_string
ld hl,(addr_arraystring_index_2)
ld (hl),0
ld de,string_temp
call add_string
ld hl,_SOURCE_NAME+11
ld (addr_arraystring_index_2),hl
ld hl,string_temp
ld (hl),0
ld de,_STR1
call add_string
ld hl,(addr_arraystring_index_2)
ld (hl),0
ld de,string_temp
call add_string
....
тут напрашивается всё завернуть в макрос, хотя бы так
Код:
MACRO do_string src, addr, str
ld hl,src
ld (addr),hl
ld hl,string_temp
ld (hl),0
ld de,str
call add_string
ld hl,(addr)
ld (hl),0
ld de,string_temp
call add_string
ENDM
и потом вызывать это дело
do_string _SOURCE_NAME+0, addr_arraystring_index_2, _STR0
do_string _SOURCE_NAME+11, addr_arraystring_index_2, _STR1
do_string _SOURCE_NAME+22, addr_arraystring_index_2, _STR2
...
а здоровые массивы данных (фонт и всё остальное) красивее вытянуть отдельным файлом и инклудить.
Тогда при необходимости очень просто менять асмовый кусок с блоками defb на инклуд уже скомпиленого шрифта (который можно готовить в какой-либо удобной утилите).
Сам к примеру делаю так:
Код:
IFDEF ZX7PACK
INCBIN "packed/table.gfx.zx7"
ELSE
INCLUDE "../gfx/environment/table.a80"
ENDIF