это только смещение для компилируемого кода
(оно рассчитано на компиляцию процедур которые будут потом перемещены)
lua видит память спектрума без какого либа смещения
нужно делать -/+4 в lua
мне задолбалось ловить глюки вызванные этим смещением
и я решил что проще отдать первые 4 байта
хотя можно компилировать
а потом при помощи другого исходника
в котором incbin результат работы пред компиляции
и считание контрольных сумм
все сделать в одном батнике, которым все и компилируют
может можно будет
после savebin
сразу же сделать incbin только что сохраненного по смещению 4
добавить адреса спереди и КС
ЭТО Я ОТВЕТИЛ НЕ ДОЧИТАВ О ЧЕМ РЕЧЬ...
мдаааа.....
Код:
01 0000 device zxspectrum48
02 0000 org #0000
03 0000 rkBegin
04 0000 00 00 db progBegin/#100,progBegin&#ff
05 0002 73 16 db (progEnd-1)/#100,(progEnd-1)&#ff
06 0004 binBegin
07 0004 disp #0000
08 0000 progBegin
09 0000 ;-------------------------------------------
10 0000 ; code here
11 0000 ; jp $
12 0000 incbin "RK-86.bin"
13 7317 ;-------------------------------------------
14 7317 progEnd
15 7317 ent
16 731B binEnd
17 731B cs = 0
18 731B lua pass3
19 731B~ mems=_c("binBegin")
20 731B~ meme=_c("binEnd")
21 731B~ cs=0
22 731B~ for i=mems,meme-2 do
23 731B~ cs=(cs+sj.get_byte(i)*257)
24 731B~ end
25 731B~ cs=(cs-cs%256+(cs+sj.get_byte(meme-1))%256)%65536
26 731B~ _pl("cs = "..cs)
27 731B cs = 11373
27 731B endlua
28 731B display cs
29 731B 0000E62C6D db 0,0,#e6,cs/#100,cs&#ff
30 7320 rkEnd
31 7320 savebin "prog.rk",rkBegin,rkEnd-rkBegin
Value Label
------ - -----------------------------------------------------------
0x0000 rkBegin
0x0000 progBegin
0x7317 progEnd
0x0004 X binBegin
0x731B X binEnd
0x2C6D cs
0x7320 rkEnd
прикольно сджасм крашится при попытке сделать lua allpass
может єто традиционные траблы со всякими include-ми?
нужно запихнуть все єто в виде defb и нлянуть
...нет bin2hex щас под рукой...
[свернуть]