Этот проект перегруппирует простой метод создания среды перекрестной разработки для CP/M-86. Получается, что все инструменты на основе DOS также могут использоваться для создания программ DOS. Этот проект был разработан для меня в духе и для очень веселья. Просто делиться без каких -либо гарантий.
Языки поддерживаются:
Источником для CP/M-86 DOC, источников и двоичных файлов является http://www.cpm.z80.de.
Очищенное распределение и ядро доступны по адресу https://github.com/tsupplis/cpm86-kernel. Это распределение хорошо работает в виртуальных средах, исправленных со всеми известными патчами, «Y2K», дружественным (он содержит версию TOD, какой источники представлены в этом проекте) и в Friendly.
Компилятор AZTEC C Версия 3.4/3.40A (K & R, библиотека CP/M-86 предоставляется в качестве C86.LIB)
Aztec c Compiler Версия 4.2/4.10D (почти ANSI, код для библиотеки CP/M-86 (C86.Lib) исправлен и перечитывается из 3,4 источников, так как он не является частью пакета компилятора по умолчанию. Документация. (https://www.aztecmuseum.ca/docs/aztec_c_msdos_4.10c_commercial_apr88.pdf)
RASM86/Link86, Lib86 DOS -версия из Digital Research
asm86.com и gendef.com из цифровых исследований
cb86.exe и библиотеки из Digital Reakearch
Nasm Netwide Assembler
MASM, LINK, ASM, EXE2BIN, HEX2BIN от Microsoft (версия MASM в этом репозитории была исправлена для работы с EMU2 и другими эмуляторами, см. Https://github.com/tsupplis/pcdos11-hacking для деталей). ASM.com и hex2bin.com были восстановлены для модифицированных источников по адресу https://github.com/tsupplis/pcdos11-hacking.
Super Cool Emu2 DOS -эмулятор для запуска инструментов DR на MacOS и Linux (https://github.com/dmsc/emu2). Это невероятный способ донести инструменты разработки командной строки DOS в современную и современную оболочку/какую -либо основу Dev. Еще один потрясающий эмулятор. EMU2 и PCE - невероятная пара.
Нам также необходимо запустить некоторые программы CP/M-80, для этого используется эмулятор Tinylpo (https://gitlab.com/gbrein/tnylpo). Это очень хорошо работает с программами ASM86.com и Gencmd.com
Все инструменты обернуты в каталог бин для прямого использования:
| Название скрипта | программа | быстрое описание |
|---|---|---|
| CPM_ASM86 | asm86.cmd | DR Assembler (инструмент CP/M-80) |
| cpm_gencmd | Gencmd.cmd | Dr H86 Converter (инструмент CP/M-80) |
| PCDEV_RASM86 | rasm86.exe | Доктор Ассемблер (OBJ) |
| pcdev_linkcmd | Linkcmd.exe | Доктор Линкер для CP/M-86 |
| pcdev_link86 | Linkcmd.exe | "" "" "" |
| pcdev_linkexe | linkexe.exe | Доктор Линкер для DOS |
| PCDEV_LIB86 | lib86.exe | Доктор библиотекарь |
| PCDEV_MASM | masm.exe | Microsoft Assembler |
| pcdev_link | link.exe | Microsoft Linker |
| pcdev_exe2bin | exe2bin.exe | Microsoft Exe Converter |
| PCDEV_HEX2BIN | hex2bin.com | Microsoft Hex Converter |
| pcdev_asm | asm.com | Microsoft/86-Dos Assembler |
| PCDEV_CMDINFO | cmdinfo.com | Информационный инструмент CMD |
| pcdev_bin2cmd | bin2cmd.com | Cmd Converter |
| Aztec34_as | as.exe | Ацтекский ассемблер. |
| AZTEC34_CC | cc.exe | Компилятор Aztec K & R C |
| AZTEC34_SQZ | SQZ.Exe | Оптимизатор объекта Aztec c |
| Aztec34_link | ln.exe | Ацтек C Линкер |
| AZTEC34_LIB | lb.exe | Ацтек c lib |
| AZTEC34_ORD | ord.exe | Ацтек C Библиотека заказал помощник помощника |
| AZTEC34_OBD | Obd.exe | Ацтек C -объект дамп объекта |
| AZTEC34_HEX86 | hex86.exe | Aztec C H86 генератор |
| Aztec42_as | as.exe | Ацтекский ассемблер. |
| AZTEC42_CC | cc.exe | Компилятор Aztec ANSI C |
| AZTEC42_SQZ | SQZ.Exe | Оптимизатор объекта Aztec c |
| Aztec42_link | ln.exe | Ацтек C Линкер |
| Aztec42_lib | lb.exe | Ацтек c lib |
| Aztec42_ord | ord.exe | Ацтек C Библиотека заказал помощник помощника |
| AZTEC42_OBD | Obd.exe | Ацтек C -объект дамп объекта |
| AZTEC42_HEX86 | hex86.exe | Aztec C H86 генератор |
| DRCBCPM_BC | cb86.exe | Доктор Cbasic Compiler для CP/M-86 |
| drcbcpm_link | Link86.exe | Доктор Cbasic Linker для CP/M-86 |
| drcbdos_bc | cb86.exe | Доктор CBASIC Compiler для DOS |
| drcbdos_link | linkexe.exe | Доктор Cbasic Linker для DOS |
| CPM86 | - | Эмулятор CP/M-86 |
| hexcom | - | Гекс на бинарный перевод |
| Доскат | - | Усеченные файлы за пределы ^z |
| нас | - | Netwide Assembler |
Среда разработки может быть собрана с помощью следующих шагов:
./fetch_tools
export PATH=`pwd`/bin
это тянет следующее:
Очистка каталога достигается:
./clear_tools
Инструмент CPM86 представляет собой эмулятор CPM86 для DOS, потянутый ацтеком C. Он работает. Я не полагаюсь на это для инструментов сборки, но с ним можно экспериментировать. Эмуляции DOS/CP/M-80 и Cross Compilations DOS/CP/M-80 гораздо лучше и варианты руды. В тонком, правильная эмуляция и CP/M-86 являются лучшим вариантом для тестирования. PCE - очень хороший выбор (http://www.hampa.ch/pce/).
Это может быть следующим шагом:
Dockerfile предоставляется для этой среды. Чтобы построить изображение из каталога Docker, JUSR Run Make, альтернативно:
docker build --rm=true -t cpm86:latest -f Dockerfile .
Для пользователя созданное изображение, просто убедитесь, что локальный путь, в котором компиляция воспитывает должным образом:
docker run -it --rm -h cpm86 -v `pwd`:/work -w /work cpm86 pcdev_rasm86 helloa.a86
docker run -it --rm -h cpm86 -v `pwd`:/work -w /work cpm86 aztec34_cc helloc.c
Единственная разница в командной строке происходит;
pcdev_masm hellod ;
... становится ...
docker run -it --rm -h cpm86 -v `pwd`:/work -w /work cpm86 pcdev_masm hellod '\;'
Наконец, простой файл Make с образцом C, ассемблер для RASM86, предоставлен ассемблер для ASM86:
./build_demo
drcbcpm_bc hellor.bas
drcbcpm_link hellor.cmd=hellor.o
pcdev_cmdinfo hellor.cmd
aztec34_cc helloc.c
aztec34_sqz helloc.o
aztec34_link -o helloc.cmd helloc.o -lc86
pcdev_cmdinfo helloc.cmd
Если код использует синтаксис ANSI ...
aztec42_cc helloc.c
aztec42_sqz helloc.o
aztec42_link -o helloc.cmd helloc.o -lc86
pcdev_cmdinfo helloc.cmd
pcdev_rasm86 helloa.a86 '$' pz sz
pcdev_linkcmd helloa '[$sz]'
pcdev_cmdinfo helloa.cmd
cpm_asm86 hellob.a86
cpm_gencmd hellob.h86
pcdev_cmdinfo hellob.cmd
pcdev_masm hellod ;
pcdev_link hellod ;
pcdev_exe2bin hellod.exe
pcdev_bin2cmd hellod.bin hellod.cmd
nasm hellon.asm -fbin -o hellon.bin
pcdev_bin2cmd hellon.bin hellon.cmd
Вы можете создать собственную версию Unix/DOS Bin2cmd/cmdinfo из (https://github.com/tsupplis/cpm86-cmdtools)