該項目重組了一種為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版本)