Proyek ini menyusun kembali metode sederhana untuk menciptakan lingkungan silang untuk CP/M-86. Kebetulan semua alat berbasis DOS juga dapat digunakan untuk membangun program DOS. Proyek ini dikembangkan untuk diri saya sendiri dalam semangat kutu buku dan sangat menyenangkan. Hanya berbagi tanpa jaminan.
Bahasa yang didukung adalah:
Sumber untuk DOC CP/M-86, Sumber dan Binari adalah http://www.cpm.z80.de.
Distribusi dan kernel yang dibersihkan tersedia di https://github.com/tsupplis/cpm86-kernel. Distribusi ini bekerja dengan baik di lingkungan virtual, ditambal dengan semua tambalan yang diketahui, ramah 'Y2K' (berisi versi TOD mana yang ada dalam proyek ini) dan ramah.
Aztec C Compiler Versi 3.4/3.40A (K&R, Perpustakaan CP/M-86 disediakan sebagai C86.LIB)
aztec c compiler version 4.2/4.10d (Almost ANSI, the code for the CP/M-86 library (c86.lib) is patched and recompiled from 3.4 sources, as it is not part of the default compiler package. a dos 1.1 library (d11.lib) is also provided in the same manner), the documentation can be found at (https://www.aztecmuseum.ca/docs/aztec_c_msdos_4.10c_commercial_apr88.pdf)
RASM86/LINK86, LIB86 DOS Versi dari Digital Research
asm86.com dan gendef.com dari penelitian digital
CB86.EXE dan Perpustakaan dari Penelitian Digital
NASM Netwide Assembler
MASM, LINK, ASM, EXE2BIN, HEX2BIN DARI MICROSOFT (versi MASM di repositori ini telah ditambal untuk bekerja dengan EMU2 dan emulator lainnya, lihat https://github.com/tsupplis/pcdos11-hacking untuk detail). ASM.com dan hex2bin.com telah dibangun kembali untuk sumber yang dimodifikasi di https://github.com/tsupplis/pcdos11-hacking.
Emulator DOS EMU2 Super Cool untuk menjalankan DR Tools pada MacOS dan Linux (https://github.com/dmsc/emu2). Ini adalah cara yang luar biasa untuk membawa alat pengembangan jalur perintah DOS ke lingkungan dev yang modern dan terkini/apa pun berbasis dev. Emulator yang menakjubkan lainnya. EMU2 dan PCE adalah pasangan yang luar biasa.
Kami juga perlu menjalankan beberapa program CP/M-80, untuk itu, emulator Tinylpo digunakan (https://gitlab.com/gbrein/tnylpo). Ini bekerja sangat baik dengan program ASM86.com dan GENCMD.com
Semua alat dibungkus dalam direktori bin untuk penggunaan langsung:
| Nama skrip | program | deskripsi cepat |
|---|---|---|
| CPM_ASM86 | ASM86.CMD | DR Assembler (alat CP/M-80) |
| CPM_GENCMD | gencmd.cmd | Konverter DR H86 (Alat CP/M-80) |
| pcdev_rasm86 | rasm86.exe | Dr Assembler (OBJ) |
| pcdev_linkcmd | linkcmd.exe | DR Linker untuk CP/M-86 |
| pcdev_link86 | linkcmd.exe | "" "" "" |
| PCDEV_KINKEXE | LINKEXE.EXE | Dr linker untuk dos |
| pcdev_lib86 | lib86.exe | Pustakawan Dr. |
| 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 | Assembler Microsoft/86-Dos |
| pcdev_cmdinfo | cmdinfo.com | Alat Info CMD |
| pcdev_bin2cmd | bin2cmd.com | CMD Converter |
| aztec34_as | as.exe | Assembler aztec. |
| aztec34_cc | cc.exe | Aztec K&R C Compiler |
| aztec34_sqz | sqz.exe | Pengoptimal objek aztec c |
| aztec34_link | ln.exe | Aztec C Linker |
| aztec34_lib | lb.exe | Aztec C Lib |
| aztec34_ord | ord.exe | Helper Pemesanan Perpustakaan Aztec C |
| aztec34_obd | OBD.exe | Aztec C Object Dump |
| aztec34_hex86 | hex86.exe | Aztec C H86 Generator |
| aztec42_as | as.exe | Assembler aztec. |
| aztec42_cc | cc.exe | Aztec Ansi C Compiler |
| aztec42_sqz | sqz.exe | Pengoptimal objek aztec c |
| aztec42_link | ln.exe | Aztec C Linker |
| aztec42_lib | lb.exe | Aztec C Lib |
| aztec42_ord | ord.exe | Helper Pemesanan Perpustakaan Aztec C |
| aztec42_obd | OBD.exe | Aztec C Object Dump |
| aztec42_hex86 | hex86.exe | Aztec C H86 Generator |
| DRCBCPM_BC | CB86.EXE | Kompiler Dr CBASIC untuk CP/M-86 |
| DRCBCPM_LINK | link86.exe | Dr CBASIC Linker untuk CP/M-86 |
| DRCBDOS_BC | CB86.EXE | Kompiler dr cbasic untuk dos |
| DRCBDOS_LINK | LINKEXE.EXE | Dr Cbasic Linker untuk DOS |
| CPM86 | - | Emulator CP/M-86 |
| hexcom | - | Hex ke terjemahan biner |
| Doscat | - | Potong file di luar ^z |
| NASM | - | Assembler netwide |
Lingkungan pengembangan dapat dirakit dengan menggunakan langkah -langkah berikut:
./fetch_tools
export PATH=`pwd`/bin
itu menarik yang berikut:
Membersihkan direktori dicapai oleh:
./clear_tools
Alat CPM86 adalah emulator CPM86 untuk DOS yang ditarik dengan Aztec C. Ini berfungsi-ish. Saya tidak mengandalkannya untuk alat pembuatan tetapi dapat dieksperimen dengan. Emulasi DOS/CP/M-80 dan kompilasi silang DOS/CP/M-80 jauh lebih baik dan opsi bijih. Dalam emulasi yang baik dan tepat dan CP/M-86 adalah pilihan terbaik untuk pengujian. PCE adalah pilihan yang sangat baik (http://www.hampa.ch/pce/).
Ini mungkin langkah berikutnya:
Dockerfile disediakan untuk lingkungan ini. Untuk membangun gambar dari direktori Docker, Jusr Run Make, sebagai alternatif:
docker build --rm=true -t cpm86:latest -f Dockerfile .
Untuk pengguna gambar yang dibuat, cukup pastikan bahwa jalur lokal di mana kompilasi Happense terpasang dengan benar:
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
Satu -satunya perbedaan pada baris perintah terjadi dengan;
pcdev_masm hellod ;
... menjadi ...
docker run -it --rm -h cpm86 -v `pwd`:/work -w /work cpm86 pcdev_masm hellod '\;'
Akhirnya, makefile sederhana dengan sampel C, assembler untuk rasm86, assembler untuk ASM86 disediakan:
./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
Jika kode menggunakan sintaks 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
Anda dapat membangun versi asli UNIX/DOS dari BIN2CMD/CMDINFO dari (https://github.com/tsupplis/cpm86-cmdtools)