|
nedoPC.orgCommunity for electronics hobbyists, established in 2002 |
|
[SDK] Старая тема про nedoPC SDK (август 2004)
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Чегойто я смотрю в nedo полноценные блоки типа делать будет тяжко - пожалуй введу ка я метки и буду реализовывать старый добрый goto... ... и условный прыжок на метку \if EXPR : label
|
08 Jul 2024 21:23 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Вот так теперь выглядит скрипт сборки бинаря для РК: Работаю над добавлением условий, чтобы один и тот же скрипт мог собирать бинари под Орион, Специалист, Спектрум и Спринтер...
|
09 Jul 2024 02:45 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Поддержал каталог PRJ в котором лежат подкаталоги с проектами - теперь чтобы собрать скажем проект MAPGEN надо находясь в общем директории SDK выполнить в случае доса: NEDO PRJ\MAPGEN\MAPGEN.Nа в случае линукса: $(pwd)/nedo PRJ/MAPGEN/MAPGEN.NТут pwd нужен для подстановки полного текущего пути т.к. линукс не подставляет путь к исполняемому файлу в argv[0] если он запущен без префикса (как это делает DOS или Windows), а путь этот мне нужен т.к. далее он используется в nedo как переменная ${EXEPATH} и все общие файлы берутся относительно него (включая исполняемые файлы из состава SDK типа spr_comp или robbyc, к которым этот путь добавляется неявно в процессе исполнения скрипта), а специфические для проекта файлы берутся из текущего директория проекта, куда nedo перескакивает первым делом при запуске. Под спойлером можно посмотреть пример вывода в процессе сборки: terminal По идее тут всё самодостаточное - никаких внешних тулзов не используется и сюда легко можно нахлобучить GitLab CI/CD-автоматизацию, когда получившиеся бинарники скармливаются текстовому эмулятору pseudo-86rk (который лежит в той же самой репе https://gitlab.com/nedopc/sdk) для сверки текстового выхлопа с эталоном - так можно проверять при каждом апдейте репы что никакая математика не сломана и т.д. P.S. Если я в будущем добавлю в систему сборки поддержку i8086, то мне ведь придётся ещё написать текстовый эмулятор pseudos P.P.S. Самодостаточность есть только для i8080 и возможно будет для i8086, а вот для Z80 нужен ассемблер zmac, который не входит в эту репу - по идее он PUBLIC DOMAIN - наверное можно и включить?...
|
09 Jul 2024 03:00 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Раз уж я задумался над новой концепцией "робото-ориентированного программирования" ( Robot Oriented Programming), то можно попробовать в обозримом будущем поддержать её в nedoPC SDK - по идее уже сейчас отдельные роботы могут компилироваться независимо друг от друга и располагаться в памяти одновременно по разным адресам - их только надо научить общаться посредством передачи сообщений с переключением контекста в момент ожидания (кстати на платформах с переключаемыми банками памяти эти самые откомпилированные роботы могут жить в разных страницах, позволяя занять данными и кодом всю доступную память!)...
|
09 Jul 2024 12:34 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Я по ходу в 2006 году что-то добавлял и исправлял в LIB/Z80/__RULES, но не делал аналогичные изменения в LIB/I8080/__RULES, в котором в 2018 году, когда начал заливать на GitLab, что-то пытался упрощать (чего делать похоже не надо было) - так что сейчас надо всё сводить к общему знаменателю... и автоматические тесты должны поспособствовать тому, что впредь ничего не сломается... кстати я могу тулзы SDK собирать через nedo вместо make - может таки назвать его nedomake? P.S. По идее т.к. в проектах теперь по умолчанию предполагается один единственный скрипт сборки на все случаи жизни, то может быть вместо NEDO PRJ\MAPGEN\MAPGEN.N надо разрешить запуск сборки задавая имя подкаталога проекта NEDO PRJ\MAPGEN (с возможным добавлением параметра ORION или SPECCY или там ALL, CLEAR и даже TEST) и далее собиралка поймёт, что это не имя файла, а подкаталог и сама подставит какое-то заранее известное имя - типа BUILD.N или MAKE.N или NEDOMAKE.N или DEFAULT.N?...
|
09 Jul 2024 21:53 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
По аналогии со Sprinter SDK у меня будет шаблон для создания скрипта сборки для новых проектов, чтобы пользователь сам не ковырялся с N-файлами. По видимому этот шаблон сразу будет содержать в себе сборку под все поддерживаемые платформы, а если пользователь будет писать под что-то конкретное (с asm вставками, использованием специфического апи и т.д.), то ему надо будет подрезать универсальный скрипт сборки, убрав лишнее. Ну либо надо будет добавить функционал генерации скрипта сборки по шаблону, чтобы была воможность оставлять лишь сборку под конкретный процессор (пока это i8080 или z80) либо конкретную систему (например RADIO или SPRINTER) - в таком случае в темплейте блоки специфические для конкретных процессоров/систем надо будет помечать специальными комментариями, которые утилита NEW_PRJ будет использовать, чтобы оставлять только то, что пользователю нужно, например: NEW_PRJ MYPROJ MyName (и далее опциональное слово для фильтрации целевых платформ - имя автора тут нужно для генерации исходного фйла робота-пустышки с ключевыми словами ROBOT и AUTHOR). P.S. Так как проекты теперь лежат в отдельных подкаталогах, то самым простым вариантом было бы назвать главный исходный файл проекта MAIN.R, а файл описывающий тайлы - TILES.SPR, скрипт сборки при этом будет называться DEFAULT.N, а конкретное имя бинарнику будет назначаться внутри N-файла (его вообще можно взять из названия подкаталога где проект лежит - тогда файл сборки будет одинаковым для всех простых проектов) - или это слишком примитивно? Сейчас имя главного исходного файла проекта как правило совпадает с именем получающегося бинарника. P.P.S. Кстати пользователи не только ковырялись со скриптами сборки в Sprinter SDK, но и писали свои собственные скрипты для shjob viewtopic.php?p=70443#p70443
|
10 Jul 2024 06:02 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Для редактирования тайлов-спрайтов я все эти годы использовал свой редактор спековской графики SCRED: Он сейчас только только для DOS существует с исходникми под лицензией MIT и лежит ZIP-архивом на nedoPC.org - можно сделать Linux версию (через unigraf.cpp), перерелизить его под GPLv3 и залить в репу nedoPC SDK P.S. Ну или переписать его на Robby и зарелизить как PUBLIC DOMAIN пример для SDK
|
11 Jul 2024 08:25 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
| | | | Shaos wrote: Чегойто я смотрю в nedo полноценные блоки типа делать будет тяжко - пожалуй введу ка я метки и буду реализовывать старый добрый goto... ... точнее \if EXPR : label ( функционал goto можно будет получить написав \if 1 : label ) | | | | |
В данный момент делаю только переходы вниз, чтобы невозможно было городить циклы (пока) - по идее преходов вниз должно хватить, чтобы задавать тип системы аргументом как я планировал (по умолчанию будет выбираться RADIO, а вот обобщающих аргументов типа ALL пока не будет т.к. оно потребует циклы)
|
12 Jul 2024 17:39 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Залил сырцы zmac в репу sdk: https://gitlab.com/nedopc/sdk/-/tree/master/zmacдруг на друга zmac версии 1.3 (июль 2000), 1.32 (февраль 2005) и 1.33 (март 2005) - две последние родились на этом форуме (друг на друга это чтобы диффы можно было смотреть): v1.32: https://gitlab.com/nedopc/sdk/-/commit/ce00665e44cff00515c33e000170bccb87784d62v1.33: https://gitlab.com/nedopc/sdk/-/commit/f2f4a71a8acf64f28210d868ac1258743c205014P.S. также перекодировал все русские комменты в UTF-8 (наверное надо на английский перевести) и апдейтнул ChangeLog...
|
12 Jul 2024 23:15 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Вот такой DEFAULT.N внутри подкаталога проекта уже работает - собирает BIN-файл для Радио-86РК: При запуске команды NEDO PRJ\MAPGEN оно берёт этот DEFAULT.N лежащий в каталоге PRJ/MAPGEN и устанавливает переменную PROJECT равной MAPGEN (имя подкаталога). Надо будет ещё сделать чтобы файл робота всегда был MAIN.R, а файл спрайтов/тайлов всегда был TILES.SPR - тогда это будет один скрипт сборки для всех универсальных примеров...
|
13 Jul 2024 21:43 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Универсальный скрипт сборки получается достаточно увесистый Репу тоже обновил, включив все изменения, необходимые для сборки всего...
|
14 Jul 2024 02:30 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Слегка упростил скрипт выше, но всё равно чегой-то жырновато получается, если держать такой скрипт в каждом примере - наверное надо поддержать подтягивание DEFAULT.N из EXEPATH тоже (если его нету в подкаталоге с проектом)... P.S. Можно наверное добавить ещё одну команду /include и положить в каждый пример простейший скрипт из одной строчки: хотя это уже явное упоминание дефолтного скрипта, что выглядит странно...
|
14 Jul 2024 10:24 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Слово nedomake лучше гуглится Так что пусть будет NEDOMAKE Сделал, выкатив NEDOMAKE v2.0.2 https://gitlab.com/nedopc/sdk/-/commit/599b7c680744b0f872f870a0e4e21641c29af076Скрипт DEFAULT.N приведённый выше тоже обновил - вот вывод недомейка при собирании примера MAPGEN для разных таргетов (три минуса --- показывают, что строчка пропускается из-за перескока на более позднюю метку): NEDOMAKE PRJ/MAPGEN NEDOMAKE PRJ/MAPGEN RADIO NEDOMAKE PRJ/MAPGEN ORION Вариант без параметра и вариант с параметром radio генерируют один и тот же BIN-файл, но скрипт в самом начале идёт немного другим путём: Вариант с параметром orion генерирует BRU-файл для моего эмулятора Orionix.
|
14 Jul 2024 22:09 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Тут по ходу получается, что то, что я все эти годы считал сборкой для платформы Специалист ( spec и позже spets) на самом деле является сборкой для Специлист-MX (я ещё в стародавние времена пользовался эмулятором Шевцова для отладки) - в настоящий момент оно немного сломанное, но я думаю сегодня вечерком я это дело доковыряю: NEDOMAKE PRJ/MAPGEN SPETS Ещё по традиции у меня остаётся сборка для ZX Spectrum, но через мнемноки i8080 и мой ассемблер RASM - при этом генерируется TAP-файл (таргет speccy): NEDOMAKE PRJ/MAPGEN SPECCY
|
14 Jul 2024 22:31 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Ну и наконец 2 таргета с процессором Z80 - trdos (TRD файл для компьютера ZX Spectrum): NEDOMAKE PRJ/MAPGEN TRDOS | | | | Code: NEDOMAKE v2.0.2 (c) 2002-2024, Alexander A. Shabarshin <me@shaos.net>
JOBFILE=/home/shaos/src/SDK-work/DEFAULT.N EXEPATH=/home/shaos/src/SDK-work/ PROJECT=MAPGEN CURPATH=PRJ/MAPGEN >>>\say Build MAPGEN Build MAPGEN >>>$src=MAIN<<< >>>$spr=TILES<<< >>>\if trdos : checksys ---\goto radio >>>\label checksys >>>\if trdos==radio : radio >>>\if trdos==orion : orion >>>\if trdos==spets : spets >>>\if trdos==speccy : speccy >>>\if trdos==trdos : speccy2 ---\if ${1}==estex : sprinter ---\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}.BIN ---\remove ${project}.bin ---\remove ${project}.tap ---\remove ${project}.trd ---\remove ${project}$.bru ---\goto endclear ---\label radio ---$syst=radio ---\goto i8080 ---\label orion ---$syst=orion ---\goto i8080 ---\label spets ---$syst=spets ---\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 TILES.BIN >>>\remove TILES.R >>>spr_comp -Sspeccy -O#D000 TILES.SPR
SPR_COMP v2.0 Alexander A. Shabarshin <me@shaos.net>
ORG 53248 [D000] TYPE 8x8-2/16 SP_E D000 : 9 bytes wrote (0) SP_H D009 : 9 bytes wrote (0) SP_S D012 : 9 bytes wrote (0) SP_B D01B : 9 bytes wrote (0) SP_R D024 : 9 bytes wrote (0) SP_F D02D : 9 bytes wrote (0) SP_R0 D036 : 9 bytes wrote (0) SP_0 D03F : 9 bytes wrote (0) SP_1 D048 : 9 bytes wrote (0) OK
!!!/home/shaos/src/SDK-work/spr_comp -Sspeccy -O#D000 TILES.SPR >>>\remove MAIN.RO >>>robbyc -p -l MAIN.R
ROBBYC - Robby Preprocessor & Compiler v2.3.1 (Jul 8 2024) Copyright (c) 1998-2024, Alexander "Shaos" Shabarshin http://nedoPC.org (E-mail: me@shaos.net)
Preprocessor <MAIN.R!> Pass 1 Pass 2 Ok! <MAIN.RO> <MAIN.RLS> Good Luck !
!!!/home/shaos/src/SDK-work/robbyc -p -l MAIN.R >>>\need MAIN.RO >>>\remove MAIN.A >>>robbycc MAIN.RO -Pz80 -Sspeccy -O#8000 -B#E000
ROBBYCC v2.0.1 Robby bytecode to arbitrary code cross-compiler Copyright (c) 2001-2024, Alexander A. Shabarshin <me@shaos.net> Part of nedoPC SDK, see http://www.nedopc.org/nedopc/SDK
ORG #8000 BASE #E000 [57344] VARS 240 REGS #E220 [57888] 0000 FindCode 0x01 (offset=0x0021) 0005 FindCode 0x20 (offset=0x0026) 000C FindCode 0x20 (offset=0x002D) 0013 FindCode 0x44 (offset=0x0034) 0017 FindCode 0x20 (offset=0x0038) 001E FindCode 0x20 (offset=0x003F) 0025 FindCode 0x20 (offset=0x0046) 002C FindCode 0x20 (offset=0x004D) 0033 FindCode 0x01 (offset=0x0054) 0038 FindCode 0x01 (offset=0x0059) 003D FindCode 0x20 (offset=0x005E) 0044 FindCode 0x20 (offset=0x0065) 004B FindCode 0x20 (offset=0x006C) 0052 FindCode 0x7F (offset=0x0073) 0056 FindCode 0x20 (offset=0x0077) 005D FindCode 0x20 (offset=0x007E) 0064 FindCode 0x40 (offset=0x0085) 0076 FindCode 0x40 (offset=0x0097) 0088 FindCode 0x20 (offset=0x00A9) 008F FindCode 0x20 (offset=0x00B0) 0096 FindCode 0x20 (offset=0x00B7) 009D FindCode 0x7F (offset=0x00BE) 00A1 FindCode 0x37 (offset=0x00C2) 00B7 FindCode 0x20 (offset=0x00D8) 00BE FindCode 0x40 (offset=0x00DF) 00CC FindCode 0x20 (offset=0x00ED) 00D3 FindCode 0x7F (offset=0x00F4) 00D7 FindCode 0x20 (offset=0x00F8) 00DE FindCode 0x44 (offset=0x00FF) 00E2 FindCode 0x20 (offset=0x0103) 00E9 FindCode 0x44 (offset=0x010A) 00ED FindCode 0x20 (offset=0x010E) 00F4 FindCode 0x20 (offset=0x0115) 00FB FindCode 0x20 (offset=0x011C) 0102 FindCode 0x44 (offset=0x0123) 0106 FindCode 0x20 (offset=0x0127) 010D FindCode 0x20 (offset=0x012E) 0114 FindCode 0x40 (offset=0x0135) 0122 FindCode 0x42 (offset=0x0143) 0129 FindCode 0x20 (offset=0x014A) 0130 FindCode 0x40 (offset=0x0151) 013E FindCode 0x42 (offset=0x015F) 0145 FindCode 0x40 (offset=0x0166) 0158 FindCode 0x40 (offset=0x0179) 0166 FindCode 0x40 (offset=0x0187) 0175 FindCode 0x40 (offset=0x0196) 0184 FindCode 0x69 (offset=0x01A5) 018B FindCode 0x40 (offset=0x01AC) 0199 FindCode 0x42 (offset=0x01BA) 01A0 FindCode 0x6A (offset=0x01C1) 01A7 FindCode 0x40 (offset=0x01C8) 01B5 FindCode 0x42 (offset=0x01D6) 01BC FindCode 0x6A (offset=0x01DD) 01C3 FindCode 0x40 (offset=0x01E4) 01D1 FindCode 0x42 (offset=0x01F2) 01D8 FindCode 0x6A (offset=0x01F9) 01DF FindCode 0x40 (offset=0x0200) 01ED FindCode 0x42 (offset=0x020E) 01F4 FindCode 0x6A (offset=0x0215) 01FB FindCode 0x40 (offset=0x021C) 0209 FindCode 0x42 (offset=0x022A) 0210 FindCode 0x6A (offset=0x0231) 0217 FindCode 0x40 (offset=0x0238) 0225 FindCode 0x42 (offset=0x0246) 022C FindCode 0x6A (offset=0x024D) 0233 FindCode 0x40 (offset=0x0254) 0241 FindCode 0x43 (offset=0x0262) 0245 FindCode 0x40 (offset=0x0266) 0253 FindCode 0x43 (offset=0x0274) 0257 FindCode 0x40 (offset=0x0278) 0260 FindCode 0x42 (offset=0x0281) 0267 FindCode 0x62 (offset=0x0288) 026B FindCode 0x40 (offset=0x028C) 0275 FindCode 0x42 (offset=0x0296) 027C FindCode 0x43 (offset=0x029D) 0280 FindCode 0x43 (offset=0x02A1) 0284 FindCode 0x43 (offset=0x02A5) 0288 FindCode 0x00 (offset=0x02A9) 0289 FindCode 0x20 (offset=0x02AA) 0290 FindCode 0x33 (offset=0x02B1) 0291 FindCode 0x40 (offset=0x02B2) 02A3 FindCode 0x40 (offset=0x02C4) 02C7 FindCode 0x40 (offset=0x02E8) 02D1 FindCode 0x42 (offset=0x02F2) 02D8 FindCode 0x40 (offset=0x02F9) 02E7 FindCode 0x40 (offset=0x0308) 02F1 FindCode 0x33 (offset=0x0312) 02F2 FindCode 0x33 (offset=0x0313) 02F3 FindCode 0x37 (offset=0x0314) 030A FindCode 0x33 (offset=0x032B) 030B FindCode 0x20 (offset=0x032C) 0312 FindCode 0x20 (offset=0x0333) 0319 FindCode 0x20 (offset=0x033A) 0320 FindCode 0x40 (offset=0x0341) 032F FindCode 0x40 (offset=0x0350) 033E FindCode 0x40 (offset=0x035F) 034D FindCode 0x40 (offset=0x036E) 035C FindCode 0x40 (offset=0x037D) 036B FindCode 0x20 (offset=0x038C) 0372 FindCode 0x40 (offset=0x0393) 0381 FindCode 0x42 (offset=0x03A2) 0388 FindCode 0x20 (offset=0x03A9) 0391 FindCode 0x40 (offset=0x03B2) 039F FindCode 0x43 (offset=0x03C0) 03A3 FindCode 0x20 (offset=0x03C4) 03AA FindCode 0x20 (offset=0x03CB) 03B1 FindCode 0x40 (offset=0x03D2) 03C0 FindCode 0x42 (offset=0x03E1) 03C7 FindCode 0x40 (offset=0x03E8) 03D6 FindCode 0x42 (offset=0x03F7) 03DD FindCode 0x20 (offset=0x03FE) 03E4 FindCode 0x44 (offset=0x0405) 03E8 FindCode 0x43 (offset=0x0409) 03EC FindCode 0x20 (offset=0x040D) 03F5 FindCode 0x40 (offset=0x0416) 0403 FindCode 0x43 (offset=0x0424) 0407 FindCode 0x20 (offset=0x0428) 040E FindCode 0x40 (offset=0x042F) 041D FindCode 0x42 (offset=0x043E) 0424 FindCode 0x40 (offset=0x0445) 0433 FindCode 0x42 (offset=0x0454) 043A FindCode 0x20 (offset=0x045B) 0441 FindCode 0x44 (offset=0x0462) 0445 FindCode 0x43 (offset=0x0466) 0449 FindCode 0x20 (offset=0x046A) 0452 FindCode 0x40 (offset=0x0473) 0460 FindCode 0x43 (offset=0x0481) 0464 FindCode 0x20 (offset=0x0485) 046B FindCode 0x40 (offset=0x048C) 047A FindCode 0x42 (offset=0x049B) 0481 FindCode 0x40 (offset=0x04A2) 0490 FindCode 0x42 (offset=0x04B1) 0497 FindCode 0x20 (offset=0x04B8) 049E FindCode 0x44 (offset=0x04BF) 04A2 FindCode 0x43 (offset=0x04C3) 04A6 FindCode 0x20 (offset=0x04C7) 04AF FindCode 0x40 (offset=0x04D0) 04BD FindCode 0x42 (offset=0x04DE) 04C4 FindCode 0x40 (offset=0x04E5) 04D8 FindCode 0x40 (offset=0x04F9) 04EC FindCode 0x40 (offset=0x050D) 04FA FindCode 0x40 (offset=0x051B) 0508 FindCode 0x43 (offset=0x0529) 050C FindCode 0x20 (offset=0x052D) 0513 FindCode 0x40 (offset=0x0534) 0522 FindCode 0x42 (offset=0x0543) 0529 FindCode 0x40 (offset=0x054A) 0538 FindCode 0x42 (offset=0x0559) 053F FindCode 0x20 (offset=0x0560) 0546 FindCode 0x44 (offset=0x0567) 054A FindCode 0x43 (offset=0x056B) 054E FindCode 0x20 (offset=0x056F) 0557 FindCode 0x40 (offset=0x0578) 0565 FindCode 0x43 (offset=0x0586) 0569 FindCode 0x20 (offset=0x058A) 0570 FindCode 0x40 (offset=0x0591) 057F FindCode 0x42 (offset=0x05A0) 0586 FindCode 0x40 (offset=0x05A7) 0595 FindCode 0x42 (offset=0x05B6) 059C FindCode 0x20 (offset=0x05BD) 05A3 FindCode 0x44 (offset=0x05C4) 05A7 FindCode 0x43 (offset=0x05C8) 05AB FindCode 0x40 (offset=0x05CC) 05BE FindCode 0x40 (offset=0x05DF) 05CC FindCode 0x43 (offset=0x05ED) 05D0 FindCode 0x33 (offset=0x05F1) 05D1 FindCode 0xFF (offset=0x05F2) Compile Ok!
!!!/home/shaos/src/SDK-work/robbycc MAIN.RO -Pz80 -Sspeccy -O#8000 -B#E000 >>>\need MAIN.A >>>\remove MAIN.BIN >>>\if z80!=z80 : rasm >>>\remove MAIN.bin >>>zmac MAIN.A !!!/home/shaos/src/SDK-work/zmac MAIN.A >>>\need MAIN.bin >>>\rename MAIN.bin MAIN.BIN >>>\remove MAIN.lst >>>\goto bincont ---\label rasm ---rasm ${src}.A -t${EXEPATH}LIB/I8080/__RULES >>>\label bincont >>>\need MAIN.BIN >>>\if speccy==radio : endradio >>>\if speccy==sprinter : sprinterexe >>>\remove MAPGEN.bin >>>\glue MAPGEN.bin MAIN.BIN #8000 >>>\glue MAPGEN.bin TILES.BIN #D000 >>>\ltrim MAPGEN.bin >>>\need MAPGEN.bin >>>\if speccy==spets : endclear >>>\if speccy==speccy : endspeccy ---bin2bru ${project}.bin ${abin} ---\need ${project}$.bru ---\remove ${project}.bin ---\goto endclear >>>\label endspeccy >>>\if trdos==trdos : endtrdos ---\remove ${project}.tap ---bin2tap ${project}.bin ${abin} ${EXEPATH}LIB/Z80/SPECCY/TAPE ---\need ${project}.tap ---\remove ${project}.bin ---\goto endclear >>>\label endtrdos >>>\remove MAPGEN.trd >>>\remove MAPGEN.trl >>>\append MAPGEN.trl NORMAL "MAPGEN" >>>\append MAPGEN.trl TRUNCATED >>>\append MAPGEN.trl hobeta "/home/shaos/src/SDK-work/LIB/Z80/SPECCY/BOOT","boot","B" >>>\append MAPGEN.trl binary "MAPGEN.bin","robot","C",32768 >>>bin2trd MAPGEN.trl
Making TRD file from binaries or/and hobeta files (v1.0.2024)
(c) 1999 Copper Feet (Vyacheslav Mednonogov)
Modified in 2002,2018,2024 by Alexander Shabarshin <me@shaos.net>
Input file: MAPGEN.trl (129 bytes)
Normal TR-DOS Disk (DD80) Label: "MAPGEN " Files: 2 Free sectors: 2462
Input file: MAPGEN.trl (129 bytes)
[H001] Name="boot B" Len=00048 Start=00048 Blk=001 Trk=001 Sec=00 [B002] Name="robot C" Len=20561 Start=32768 Blk=081 Trk=001 Sec=01
TRD file was truncated
Ok!
!!!/home/shaos/src/SDK-work/bin2trd MAPGEN.trl >>>\need MAPGEN.trd >>>\remove MAPGEN.trl >>>\remove MAPGEN.bin >>>\goto endclear ---\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 endclear ---\label endradio ---\rename ${src}.BIN ${project}.BIN >>>\label endclear >>>\remove TILES.BIN >>>\remove TILES.R >>>\remove MAIN.BIN >>>\remove MAIN.LST >>>\remove MAIN.R! >>>\remove MAIN.RO >>>\remove MAIN.RLS >>>\remove MAIN.A
Ok!
| | | | |
и estex (EXE файл для компьютера Sprinter): NEDOMAKE PRJ/MAPGEN ESTEX
|
14 Jul 2024 22:34 |
|
|
Who is online |
Users browsing this forum: No registered users and 2 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|