я пользуюсь sjasm примерно по такой схеме:
1. есть bat-file, который запускает процесс компиляции, а потом автоматом стартует unreal со сгенерированным trd файлом.
его содержимое:
Код:
sjasmplus.exe main.asm
pause
unreal\unreal main.trd
2. внутри main.asm перед самой программой идут вот такие директивы:
Код:
DEVICE ZXSPECTRUM128
EMPTYTRD "main.trd"
org 23867
INCBIN "boot.bin"
SAVETRD "main.trd","boot.B",23867,161
это - включение модели памяти zx128, создание пустого трд диска и запись первым файлом заранее приготовленного бута (в качестве бута идет real commander).
3. в конце main.asm, после кода самой программы идут вот такие строки:
Код:
END_ADDRESS
PROGRAM_LENGTH EQU END_ADDRESS-START_ADDRESS
SAVETRD "main.trd","code.C",START_ADDRESS,PROGRAM_LENGTH
ORG 45056
INCBIN "file1.bin"
SAVETRD "main.trd","file1.C",#b000,4096
ORG 39680
INCBIN "file2.bin"
SAVETRD "main.trd","file2.C",39680,768
здесь автоматом вычисляется длина скомпилированной программы, которая потом используется для сохранения блока скомпилированного кода на диск.
ну и далее к trd цепляются еще 2 файла, нужные для моей проги.
редактирую asm-файлы в Scite редакторе с подправленными правилами раскраски текста.