не, не чураюсь. мне в целом всё ровно на чём скрипт написан. shell, bath, vbs, rexx, lua, python. всё ровно. под линуксом сейчас ничего не собираю. у меня все линуксы теперь это сервера. нет желания по ним шарится с целью компиляции. потому, всё что под виндой пашет, всё годится)))Если не чураешься REXX, могу написать тебе сборщик в нужный ком-файл.
этой штукой я не пользуюсь. я привык идти более сложным путём)))А также научу как настроить Code::Blocks для работы с SDCC и REXX
у меня настроенный под z80 asm, c/c++, bath, vbs, lua самый обычный synwrite2 для total commander`а. в нём я накидываю текст, а потом если нужно, то запускаю батник или если нужно, то из консоли ручками и вылавливаю нужные ошибки, включая генерацию map, sym и lst файлов. в synwrit`е уже всё настроенно, со всякими табуляциями, пробелами, подсветка. с коде блокс я не очень хочу разбираться и что-то переделывать.
даже не знаю. что там можно собрать. примитивный hello world чтобы собрать, нужно знать тсистемные вызова для работы с выводом от доса спринтера. хотя, именно консольный вывод в z88dk был поддержан по спринтеру. под все прочие компиляторы всё нужно писать с нуля. хотя, заголовок у exe файла вот такой:Для пробы могу собрать ком-файл сам.
заголовок размером в 512 байт. обычно собирается под адрес не ниже 8000h (теоритически, можно и ниже, но я не пробовал). В этом заголовке можно оставлять всё как есть (в примере), только если бинарник не превышает размер области TPA. обычно, 32кб. если выше, тогда в область заголовка пихается свой загрузчик. таким образом снимается ограничение на размер исполняемого файла (хоть 100килобайт, хоть там сколько то мегабайт). поля обозначенные как load address и start address можно сделать так:Код:ORG #8100-512 DB "EXE" ;EXE ID DB #00 ;EXE VERSION DW #0200 ;CODE OFFSET LOW DW #0000 ;CODE OFFSET HIGH DW #0000 ;END-BEG ;PRIMARY LOADER DW #0000 ; DW #0000 ;RESERVED DW #0000 ; DW #8100 ;LOAD ADDRESS DW #8100 ;START ADDRESS DW #BFFF ;STACK ADDRESS DS 490
если в заголовке есть загрузчик. то заголовок имеет примерно такой вид:Код:ORG #8100-512 DB "EXE" ;EXE ID DB #00 ;EXE VERSION DW #0200 ;CODE OFFSET LOW DW #0000 ;CODE OFFSET HIGH DW #0000 ;END-BEG ;PRIMARY LOADER DW #0000 ; DW #0000 ;RESERVED DW #0000 ; DW BEGIN ;LOAD ADDRESS DW BEGIN ;START ADDRESS DW #BFFF ;STACK ADDRESS DS 490 BEGIN: ; some code
исходников проги на си как таковых сейчас нет. я взялся за разбор evosdk под спринтера. при чём в перерыве от основного проекта (который на си явно не прокатит).Код:; из flex navigator EXEhead: db "EXE" db 0 ; +3 dw EntryExec-EXEhead dw 0x0000 ; +4 dw EXEend-EntryExec ; +8 dw 0, 0 ; +10 dw 0 ; +14 dw EntryExec ; +16 dw EntryExec dw 0x80FF EntryExec: ; тут начинается код загрузчика
хотя, у меня есть исходник одной цпм проги, которую давно на спринтера хотел перекинуть. fdisk под профика. но под спринтера чтобы его запустить. нужно все "консольные" функции перебрасывать. могу его тебе заслать, но он всё ровно на спринтере работать не будет))))




Ответить с цитированием