Кажется получилось!
Вот пример. Он компилируется! Для проверки - просмотр в дебагере.
IncText_test.asm
Образец текста.Код:DEVICE ZXSPECTRUM128 LUA PASS1 function inc_text(file_name,label_attr,line_terminator) if line_terminator==nil then l_t=13 else l_t=line_terminator end for line in io.lines(file_name) do if string.sub(line,1+string.len(line)-string.len(label_attr))==label_attr then --print (string.sub(line,1,string.len(line)-string.len(label_attr)),sj.current_address) sj.parse_line(string.sub(line,1,string.len(line)-string.len(label_attr))) else for i = 1,string.len(line) do sj.add_byte(string.byte(line,i)) end sj.add_byte(l_t) end end end ENDLUA ;---------------------------------------------------------------------- ORG #8000 START LD HL,TT1 LD DE,TT2 LD IX,TT3 MainLoop JP MainLoop LUA ALLPASS inc_text("test.txt",">>") ENDLUA SAVESNA "textovik.sna",START ;в папку unreal после компиляции сохранится снапшот для запуска в эмуляторе, содержащий программу, описанную сверху
test.txtКак видите, можно добавлять через текст не только метки.Код:TT1>> Hello!! Ready? 3 2 1 Go! TT2>> SOS!!! TT3>> GAME OVER PRESS ANY KEY Final>> LD A,123>> RLCA>> JP Final>> BYTE "SEVER",0,"BURAN",0>>
Это моя первая "программа" на LUA, так что я готов к любой критике как стиля так и содержания.![]()






Ответить с цитированием