Сообщение от
izzx
Переформулирую: Как правильно сделать так, чтобы за один клик компилировалась большая прога и выгружался код в разные файлы для каждого банка памяти. Там же все они с одного адреса, типа #c000. И могли быть ссылки из любой части кода в любой. И можно было без проблем что-то менять в тексте, после чего адреса меток скомпилируются новые, естественно.
А потом загрузчик проги загружал всё по нужным банкам.
То есть можно типа:
org #c000
....
save "part1"
org #c000
...
save "part2"
ну во первых sjasm поддерживает sna128
а делается это как то так
Код:
device zxspectrum128
include "_defines.a80"
slot 3
page 1
org #c000
incbin "./bin/gm.ram1.bin"
page 3
org #c000
incbin "./bin/gm.ram3.bin"
include "_levels.a80"
page 4
org lev1_data
incbin "./bin/stage1.bin"
page 6
org #c000
play_mus
include "_pt3_player.a80"
mus_table
dw mus_boss ;1 ;menu
dw intro_music ;2 ;intro
dw mus_stagestart ;3
dw mus_level1 ;4
dw mus_level2 ;5
dw mus_level3 ;6
dw mus_level4 ;7
dw mus_level5 ;8
dw mus_boss ;9
dw mus_garuda ;10
dw mus_stageclear ;11
dw mus_gameover ;12
dw mus_boss ;13
dw out_mus0 ;14
dw out_mus1 ;15
dw mus_boss ;16 ;empty mus
; dw mus_boss ;17
; dw mus_boss ;18
; dw mus_boss ;19
mus_boss incbin "\music\boss\BOSS.pt3"
mus_stagestart incbin "\music\stagestart.pt3"
mus_stageclear incbin "\music\stageclear.pt3"
mus_gameover incbin "\music\gameover.pt3"
ays_effects incbin "\sfx\sw.afb"
display "music free:",#10000-$
savebin "./bin/gm.music.bin",#c000,$-#c000
music_buf equ $
org music_buf
mus_level1
mus_level2
mus_level3
mus_level4
; incbin "\music\Level1.pt3"
; incbin "\music\level2.pt3"
; incbin "\music\L3final.pt3"
; incbin "\music\Level4.pt3"
mus_level5
incbin "\music\Level5.pt3"
mus_garuda
incbin "\music\GARUDA_FINAL_BATTLE.pt3"
display "l5music ",$
savesna "qsave.sna",beginning