该项目重组了一种为CP/M-86创建跨开发环境的简单方法。碰巧所有基于DOS的工具也可以用于构建DOS程序。这个项目是本着书呆子的精神和很多乐趣为自己开发的。仅分享没有任何保证。
支持的语言是:
CP/M-86 DOC,来源和二进制文件的来源是http://www.cpm.z80.de。
可以在https://github.com/tsupplis/cpm86-kernel上获得清理分配和内核。此发行版在虚拟环境中运行良好,并用所有已知的补丁(Y2K'友好)修补(其中包含TOD的版本中,该项目中有哪些来源)和友好。
AZTEC C编译器版本3.4/3.40A(K&R,CP/M-86库以C86.lib提供)
AZTEC C编译器版本4.2/4.10D(几乎是ANSI,CP/M-86库的代码(C86.lib)已修补并从3.4个来源进行修补并重新编译,因为它不是默认编译器软件包的一部分。DOS1.1库(D11.lib)也可以在同一文档中提供,可以在文档中提供。 (https://www.aztecmuseum.ca/docs/aztec_c_msdos_4.10c_cormermical_apr88.pdf)
RASM86/link86,lib86 DOS版本来自数字研究
ASM86.com和Gendef.com来自数字研究
cb86.exe和数字reasearch的库
NASM NETWIDE组装程序
来自Microsoft的MASM,Link,ASM,EXE2BIN,Hex2Bin(该存储库中的MASM版本已修补以与EMU2和其他仿真器一起使用,请参见https://github.com/tsupplis/tsupplis/pcdos11-hacking hacking)。 ASM.com和hex2bin.com已通过https://github.com/tsupplis/pcdos11-hacking进行了修改。
超酷的EMU2 DOS模拟器,用于在MacOS和Linux上运行DR Tools(https://github.com/dmsc/emu2)。这是将DOS命令线开发工具带入现代和最新的外壳/Make/任何基于的DEV环境的令人难以置信的方法。另一个令人惊叹的仿真器。 EMU2和PCE是一对令人难以置信的一对。
我们还需要运行一些CP/M-80程序,为此,使用Tinylpo模拟器(https://gitlab.com/gbrein/tnylpo)。它可以与ASM86.com和GenCMD.com程序合作得很好
所有工具都包裹在bin目录中以直接使用:
| 脚本名称 | 程序 | 快速描述 |
|---|---|---|
| CPM_ASM86 | ASM86.CMD | DR Assembler(CP/M-80工具) |
| cpm_gencmd | gencmd.cmd | DR H86转换器(CP/M-80工具) |
| PCDEV_RASM86 | rasm86.exe | 汇编博士(OBJ) |
| PCDEV_LINKCMD | linkcmd.exe | CP/M-86的DR Linker |
| 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转换器 |
| PCDEV_HEX2BIN | hex2bin.com | 微软十六进制转换器 |
| PCDEV_ASM | asm.com | Microsoft/86-DOS汇编器 |
| PCDEV_CMDINFO | cmdinfo.com | CMD信息工具 |
| PCDEV_BIN2CMD | bin2cmd.com | CMD转换器 |
| aztec34_as | as.exe | 阿兹台克汇编器。 |
| aztec34_cc | cc.exe | AZTEC K&R C编译器 |
| AZTEC34_SQZ | sqz.exe | AZTEC C对象优化器 |
| aztec34_link | ln.exe | AZTEC C链接器 |
| aztec34_lib | lb.exe | AZTEC C LIB |
| aztec34_ord | ORD.EXE | AZTEC C图书馆订购助手 |
| AZTEC34_OBD | obd.exe | AZTEC 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 | AZTEC C链接器 |
| aztec42_lib | lb.exe | AZTEC C LIB |
| aztec42_ord | ORD.EXE | AZTEC C图书馆订购助手 |
| AZTEC42_OBD | obd.exe | AZTEC C对象转储 |
| AZTEC42_HEX86 | hex86.exe | AZTEC C H86发电机 |
| drcbcpm_bc | cb86.exe | CP/M-86的CBASIC编译器博士 |
| drcbcpm_link | link86.exe | CP/M-86的CBASIC链接器博士 |
| drcbdos_bc | cb86.exe | DOS的CBASIC编译器博士 |
| drcbdos_link | linkexe.exe | DOS的CBASIC链接器 |
| CPM86 | - | CP/M-86仿真器 |
| hexcom | - | 十六进制二进制翻译 |
| 达斯卡特 | - | 截断文件以外的文件 |
| nasm | - | 网络汇编器 |
可以通过使用以下步骤来组装开发环境:
./fetch_tools
export PATH=`pwd`/bin
它拉下以下内容:
清除目录是通过以下方式实现的。
./clear_tools
CPM86工具是用AZTEC C拔出的DOS的CPM86仿真器。它可以使用。我不依靠它来构建工具,但可以进行实验。 DOS/CP/M-80仿真和DOS/CP/M-80交叉汇编要好得多,并且选择了矿石。在罚款中,正确的仿真和CP/M-86是测试的最佳选择。 PCE是一个很好的选择(http://www.hampa.ch/pce/)。
这可能是下一步:
为此环境提供了Dockerfile。要从Docker目录构建图像,JUSR运行可或:
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 '\;'
最后,提供了一个带有样品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
您可以从(https://github.com/tsupplis/cpm86-cmdtools构建BIN2CMD/CMDINFO的本机UNIX/DOS版本)