Доковырял Теперь таргет называется spetsmx (также пришлось поправить spr_comp.c чтобы он понимал это слово) - при этом генерируется 2 файла - ${project}.CPU и ${project}.I80 для запуска в эмуляторе Шевцова (см. скриншот выше) - вот обновлённый скрипт DEFAULT.N:Shaos wrote:Тут по ходу получается, что то, что я все эти годы считал сборкой для платформы Специалист (spec и позже spets) на самом деле является сборкой для Специлист-MX (я ещё в стародавние времена пользовался эмулятором Шевцова для отладки) - в настоящий момент оно немного сломанное, но я думаю сегодня вечерком я это дело доковыряю...
Code: Select all
#!./nedomake
# Universal NEDOMAKE script to build any nedoPC SDK example
\say Build ${project}
$src=MAIN
$spr=TILES
\if ${1} : checksys
\goto radio # by default it's Radio-86RK
\label checksys
# i8080 targets:
\if ${1}==radio : radio
\if ${1}==orion : orion
\if ${1}==spetsmx : spetsmx
\if ${1}==speccy : speccy
# z80 targets:
\if ${1}==trdos : speccy2
\if ${1}==estex : sprinter
# other targets:
\if ${1}==clean : clear
\say ERROR : unknown target "${1}"
\exit
\label clear
\remove ${spr}.R
\remove ${src}.RO
\remove ${src}.BIN
\remove ${project}.EXE
\remove ${project}.I80
\remove ${project}.CPU
\remove ${project}.BIN
\remove ${project}.bin
\remove ${project}.tap
\remove ${project}.trd
\remove ${project}$.bru
\goto endclean
\label radio
$syst=radio
\goto i8080
\label orion
$syst=orion
\goto i8080
\label spetsmx
$syst=spetsmx
\label i8080
$proc=i8080
$abin=#0000
$aspr=#5000
$avar=#6000
\goto action
\label speccy
$proc=i8080
\goto speccy1
\label speccy2
$proc=z80
\label speccy1
$syst=speccy
$abin=#8000
$aspr=#D000
$avar=#E000
\goto action
\label sprinter
$syst=sprinter
$proc=z80
$ahdr=#3F00
$abin=#4100
$aspr=#9000
$avar=#A000
\label action
\remove ${spr}.BIN
\remove ${spr}.R
spr_comp -S${syst} -O${aspr} ${spr}.SPR
\remove ${src}.RO
robbyc -p -l ${src}.R
\need ${src}.RO
\remove ${src}.A
robbycc ${src}.RO -P${proc} -S${syst} -O${abin} -B${avar}
\need ${src}.A
\remove ${src}.BIN
\if ${proc}!=z80 : rasm
\remove ${src}.bin
zmac ${src}.A
\need ${src}.bin
\rename ${src}.bin ${src}.BIN
\remove ${src}.lst
\goto bincont
\label rasm
rasm ${src}.A -t${EXEPATH}LIB/I8080/__RULES
\label bincont
\need ${src}.BIN
\if ${syst}==radio : endradio
\if ${syst}==sprinter : sprinterexe
\remove ${project}.bin
\glue ${project}.bin ${src}.BIN ${abin}
\glue ${project}.bin ${spr}.BIN ${aspr}
\ltrim ${project}.bin
\need ${project}.bin
\if ${syst}==spetsmx : endspetsmx
\if ${syst}==speccy : endspeccy
# it must be orion at this point
bin2bru ${project}.bin ${abin}
\need ${project}$.bru
\remove ${project}.bin
\goto endclean
\label endspeccy
\if ${1}==trdos : endtrdos
# it must be tap at this point
\remove ${project}.tap
bin2tap ${project}.bin ${abin} ${EXEPATH}LIB/Z80/SPECCY/TAPE
\need ${project}.tap
\remove ${project}.bin
\goto endclean
\label endtrdos
\remove ${project}.trd
\remove ${project}.trl
\append ${project}.trl NORMAL "${project}"
\append ${project}.trl TRUNCATED
\append ${project}.trl hobeta "${EXEPATH}LIB/Z80/SPECCY/BOOT","boot","B"
\append ${project}.trl binary "${project}.bin","robot","C",32768
bin2trd ${project}.trl
\need ${project}.trd
\remove ${project}.trl
\remove ${project}.bin
\goto endclean
\label sprinterexe
\remove ${project}.EXE
\glue ${project}.EXE ${EXEPATH}LIB/Z80/SPRINTER/HEAD.BIN ${ahdr}
\glue ${project}.EXE ${src}.BIN ${abin}
\glue ${project}.EXE ${spr}.BIN ${aspr}
\ltrim ${project}.EXE
\need ${project}.EXE
\goto endclean
\label endspetsmx
\rename ${project}.bin ${project}.I80
\need ${project}.I80
\remove ${project}.CPU
\append ${project}.CPU 0000
\append ${project}.CPU 0000
\append ${project}.CPU SPMX.ROM
\need ${project}.CPU
\goto endclean
\label endradio
\rename ${src}.BIN ${project}.BIN
\need ${project}.BIN
\label endclean
\remove ${spr}.BIN
\remove ${spr}.R
\remove ${src}.BIN
\remove ${src}.LST
\remove ${src}.R!
\remove ${src}.RO
\remove ${src}.RLS
\remove ${src}.A