Ну я тоже примерно так же считаю
Код:sp_in INCBIN "_packed/sp_intr.bin"
sp_in_
ld a,high (sp_in_-sp_in+255)
Вид для печати
Ну я тоже примерно так же считаю
Код:sp_in INCBIN "_packed/sp_intr.bin"
sp_in_
ld a,high (sp_in_-sp_in+255)
эмммм... а тебе зачем?
странные макросы - одна из причин почему я соскочил с sjasm+ на zmac
(может я не умею его готовить?)
на нем это на раз
я так понимаю это будет работать и в m80
Код:x macro name,lenlabel
local .a
.a equ $
incbin name
lenlabel equ $-.a
endm
x "test.asm",len1
x "dd/test.cas",len2
x "dd/test.cim",len3
dw len1
dw len2
dw len3
end
LST - во что скомпилилось
с "разворотом" макросов
Код:1:
2: x macro name,lenlabel
3: local .a
4: .a equ $
5: incbin name
6: lenlabel equ $-.a
7: endm
8:
9: - 0000 x "test.asm",len1
9: - 0000 ?c0000 equ $
9: - 0000 .. 00DB incbin "test.asm"
9: - 00DC len1 equ $-?c0000
9: - 00DC endm
10: - 00DC x "dd/test.cas",len2
10: - 00DC ?c0001 equ $
10: - 00DC .. 02ED incbin "dd/test.cas"
10: - 0212 len2 equ $-?c0001
10: - 02EE endm
11: - 02EE x "dd/test.cim",len3
11: - 02EE ?c0002 equ $
11: - 02EE .. 03CF incbin "dd/test.cim"
11: - 00E2 len3 equ $-?c0002
11: - 03D0 endm
12:
13: - 03D0 DC00 dw len1
14: - 03D2 1202 dw len2
15: - 03D4 E200 dw len3
16:
17: - 03D6 end
Statistics:
4 passes
0 jr promotions
6 symbols
982 bytes
3 macro calls
54 macro bytes
12 invented symbols
Symbol Table:
?c0000 = 0
?c0001 = dc
?c0002 = 2ee
len1 = dc
len2 = 212
len3 = e2
[свернуть]
Автосборку большого проекта делаю. Хочется автоматизации, чтобы не править руками в нескольких местах, если один из файлов станет длинее/короче.
Одно отличие - мне не надо держать файлы в памяти, мне надо просто таблицу их длин, причем не в байтах, а в секторах. Сами файлы будут запиханы в trd-образ.Цитата:
Сообщение от esl
Намонстрячил уже на баше генерилку нужной таблицы...
В порядке бреда
Код:# build script & gfx overlays & generate overlays size table
echo "; Nocturne overlays size table\n" > ovrtable.asm
for NUM in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36; do
if [ -d ovl/ovl${NUM} ]; then
make -C ovl/ovl${NUM}
fi
if [ -e ovl/bin/ovl${NUM}c.hr1 ]; then
SIZE=`stat -c %s ovl/bin/ovl${NUM}c.hr1`
if [ $((${SIZE} & 255)) -gt 0 ]; then
CSZ=$((${SIZE}/256 + 1))
else
CSZ=$((${SIZE}/256))
fi
else
CSZ=0
fi
if [ -e ovl/bin/ovl${NUM}g.bin ]; then
SIZE=`stat -c %s ovl/bin/ovl${NUM}g.bin`
if [ $((${SIZE} & 255)) -gt 0 ]; then
GSZ=$((${SIZE}/256 + 1))
else
GSZ=$((${SIZE}/256))
fi
else
GSZ=0
fi
echo "\tdb ${CSZ}, ${GSZ}, 0, 0\t\t;${NUM}" >> ovrtable.asm
done
[свернуть]
так а чем вариант шадомахера не подошёл? через в ДБ-табличку я думаю там тоже всё нормально запилится...
Ну используй луа-скрипт тогда для генерации. Левые какие-то генерилки на баше - не кошерно.
Хотя по-моему у тебя для вызова все равно надо передавать имя файла, разницы тогда? Один раз себе текст накопипастил типа как я до этого написал и забыл, не? Ты ж не в каждом проекте это будешь делать. У меня например есть php-скрипт, который генерит мне фигню типа:
которую я потом инклюжу (или не инклюжу, если там никакие файлы не меняются).Код:page 0
org #4000
dehrust
INCBIN "dehrust.bin"
dehrust_
SAVETRD "bloodwych.trd","dehrust.C",dehrust,dehrust_-dehrust
dehrust_len equ dehrust_-dehrust
page 0
org #4000
mode48
INCBIN "Files/mode48.bin"
mode48_
SAVETRD "bloodwych.trd","mode48.C",mode48,mode48_-mode48
mode48_len equ mode48_-mode48
page 0
org #4000
loadscr
INCBIN "Files/loadscr.bin"
loadscr_
SAVETRD "bloodwych.trd","loadscr.C",loadscr,loadscr_-loadscr
loadscr_len equ loadscr_-loadscr
Ну тем более, чего больно заморачиваться, один раз накопипастил вон фигней и всё. И что-то давно не слышно про новое - когда демка-то будет?
Какая демка? Всё готово, только музыку жду и финалкат придумываю:
http://samstyle.narod.ru/project/fght01.png
А по теме:sjasmplus валится, хотя бинарник сохраняет. С device zxspectrum48 отрабатывает без аварий.Код:
device zxspectrum128
org 0x8000
disp 0
dw t1
dw t2
dw t3
t1 ds 6912
t2 ds 8922
t3 ds 10222
siz equ $
ent
savebin "out",0x8000,siz