Снова занялся подготовкой файла как .SCL, в этот раз мне хотелось сделать автосборку, указав адрес загружаемого кодового блока. Вечером набрал документации и стал читать. Жаль, что у ужасма нет готовой функции, которая помещала значение по указанному адресу. Вышло вот что:
device zxspectrum48
org $6000
begin
lb equ 51934
ad; db "00000"
LUA ALLPASS
ss=string.format("%05d",tostring( sj.get_label("lb") ) )
for i=1,5,1 do
sj.add_byte(tonumber(string.byte(string.sub(ss,i,i))))
end
ENDLUA
end
savebin "lb.bin",begin,end-begin
org $6000
begin
lb equ 51934
ad; db "00000"
LUA ALLPASS
ss=string.format("%05d",tostring( sj.get_label("lb") ) )
for i=1,5,1 do
sj.add_byte(tonumber(string.byte(string.sub(ss,i,i))))
end
ENDLUA
end
savebin "lb.bin",begin,end-begin
Здесь значение метки lb помещается по адресу ad.
Дополнение. Без Lua
device zxspectrum48
org $6000
lbl equ $BFFF ; 12345
begin
;1
db $30+(lbl/10000)%10
;2
db $30+(lbl/1000)%10
;3
db $30+(lbl/100)%10
;4
db $30 +(lbl/10)%10
;5
db $30+ lbl%10
end
savebin "addr.bin",begin,end-begin
org $6000
lbl equ $BFFF ; 12345
begin
;1
db $30+(lbl/10000)%10
;2
db $30+(lbl/1000)%10
;3
db $30+(lbl/100)%10
;4
db $30 +(lbl/10)%10
;5
db $30+ lbl%10
end
savebin "addr.bin",begin,end-begin
Комментарии
Отправить комментарий