Dieses Projekt gruppiert eine einfache Methode, um eine Kreuzentwicklungsumgebung für CP/M-86 zu erstellen. Es kommt vor, dass alle DOS -basierten Tools auch zum Erstellen von DOS -Programmen verwendet werden können. Dieses Projekt wurde für mich nerdig und für viel Spaß entwickelt. Nur ohne Garantien teilen.
Unterstützte Sprachen sind:
Die Quelle für CP/M-86 DOC, Quellen und Binärdateien lautet http://www.cpm.z80.de.
Eine gereinigte Verteilung und ein Kernel finden Sie unter https://github.com/tsupplis/cpm86-kernel. Diese Verteilung funktioniert in virtuellen Umgebungen, die mit allen bekannten Patches gepatcht, "Y2K" freundlich (sie enthält die Version von TOD, welche Quellen in diesem Projekt enthalten sind) und bei Friendly.
AZTEC C Compiler Version 3.4/3.40A (K & R, die CP/M-86-Bibliothek wird als C86.LIB bereitgestellt)
Aztec C Compiler Version 4.2/4.10D (fast ANSI, der Code für die CP/M-86-Bibliothek (C86.LIB) wird aus 3.4 Quellen gepatcht und neu kompiliert, da es nicht Teil des Standard-Compiler-Pakets ist. Eine DOS 1.1-Bibliothek (D11.LIB) wird ebenfalls auf die gleiche Weise vorgesehen. Dokumentation wird zu finden. Die Dokumentation wird zu finden. AT AT AT-Bibliothek (D11.LIB) wird ebenfalls vorhanden). Die Dokumentation wird gefunden. Die Dokumentation wird zu finden. AT AT AT ATRIERT IN DER GEBOT. (https://www.aztecmuseum.ca/docs/aztec_c_msdos_4.10c_commercial_apr88.pdf)
RASM86/LINK86, LIB86 DOS -Version aus Digital Research
ASM86.com und Gendef.com von Digital Research
CB86.exe und Bibliotheken aus digitaler Forschung
Nasm netzweit Assembler
Masm, Link, ASM, EXE2BIN, Hex2bin von Microsoft (die Version von Masm in diesem Repository wurde gepatcht, um mit Emu2 und anderen Emulatoren zu arbeiten, siehe https://github.com/tsupplis/pcdos11-hacking für Details). ASM.com und hex2bin.com wurden für modifizierte Quellen unter https://github.com/tsupplis/pcdos11-hacking umgebaut.
Der Super Cool EMU2 DOS -Emulator zum Ausführen der DR -Tools auf MacOS und Linux (https://github.com/dmsc/emu2). Dies ist eine unglaubliche Möglichkeit, DOS -Befehlszeilenentwicklungs -Tools in eine moderne und aktuelle Shell/Make/Egal, was auch immer dev umzweigt. Ein weiterer atemberaubender Emulator. Emu2 und PCE sind ein unglaubliches Paar.
Wir müssen auch einige CP/M-80-Programme ausführen. Dafür wird der Tinylpo-Emulator verwendet (https://gitlab.com/gbrein/tnylpo). Es funktioniert sehr gut mit ASM86.com- und GENCMD.com -Programmen
Alle Tools sind in das Bin -Verzeichnis eingewickelt, um direkte Verwendung zu verwenden:
| Skriptname | Programm | Schnelle Beschreibung |
|---|---|---|
| cpm_asm86 | ASM86.CMD | DR-Assembler (CP/M-80-Werkzeug) |
| CPM_gencmd | GENCMD.CMD | DR H86-Konverter (CP/M-80-Werkzeug) |
| PCDEV_RASM86 | RASM86.exe | DR Assembler (OBJ) |
| PCDEV_LINKCMD | linkcmd.exe | Dr. Linker für CP/M-86 |
| PCDEV_LINK86 | linkcmd.exe | "" "" "" |
| PCDEV_LINKEXE | linkexe.exe | Dr. Linker für DOS |
| PCDEV_LIB86 | lib86.exe | Dr. Bibliothekar |
| 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 Info Tool |
| PCDEV_BIN2CMD | bin2cmd.com | CMD -Konverter |
| aztec34_as | As.exe | Aztec Assembler. |
| aztec34_cc | cc.exe | Aztec K & R C Compiler |
| aztec34_sqz | sqz.exe | Aztec C -Objektoptimierer |
| aztec34_link | ln.exe | Aztec C Linker |
| aztec34_lib | lb.exe | Aztec C lib |
| aztec34_ord | ord.exe | Aztec C -Bibliothek bestellen Helfer |
| aztec34_obd | obd.exe | Aztec C -Objekt -Dump |
| aztec34_hex86 | hex86.exe | Aztec C H86 -Generator |
| aztec42_as | As.exe | Aztec Assembler. |
| aztec42_cc | cc.exe | Aztec Ansi C Compiler |
| aztec42_sqz | sqz.exe | Aztec C -Objektoptimierer |
| aztec42_link | ln.exe | Aztec C Linker |
| aztec42_lib | lb.exe | Aztec C lib |
| Aztec42_ord | ord.exe | Aztec C -Bibliothek bestellen Helfer |
| aztec42_obd | obd.exe | Aztec C -Objekt -Dump |
| Aztec42_hex86 | hex86.exe | Aztec C H86 -Generator |
| DRCBCPM_BC | cb86.exe | DR CBASIC-Compiler für CP/M-86 |
| DRCBCPM_LINK | link86.exe | DR CBASIC-Linker für CP/M-86 |
| DRCBDOS_BC | cb86.exe | DR CBASIC -Compiler für DOS |
| DRCBDOS_LINK | linkexe.exe | Dr. CBASIC -Linker für DOS |
| CPM86 | - - | CP/M-86-Emulator |
| Hexcom | - - | Sechskant zur binären Übersetzung |
| Doscat | - - | Verkürzte Dateien jenseits von ^Z |
| Nasm | - - | Netzweiter Assembler |
Die Entwicklungsumgebung kann mit den folgenden Schritten zusammengestellt werden:
./fetch_tools
export PATH=`pwd`/bin
es zieht Folgendes:
Das Löschen des Verzeichnisses wird erreicht durch:
./clear_tools
Das CPM86-Werkzeug ist ein CPM86-Emulator für DOS, der mit Aztec C gezogen wird. Es funktioniert. Ich verlasse mich nicht auf Build -Tools, aber es kann experimentiert werden. DOS/CP/M-80-Emulationen und DOS/CP/M-80-Kreuzkompilationen sind weitaus besser und Erzoptionen. In Ordnung ist die ordnungsgemäße Emulation und CP/M-86 die beste Option zum Testen. PCE ist eine sehr gute Wahl (http://www.hampa.ch/pce/).
Dies kann ein nächster Schritt sein:
Für diese Umgebung wird eine Dockerfile bereitgestellt. Um das Bild aus dem Docker -Verzeichnis zu erstellen, make make, alternativ:
docker build --rm=true -t cpm86:latest -f Dockerfile .
Um das erstellte Bild zu benutzen, stellen Sie einfach sicher, dass der lokale Weg, in dem die Kompilierung glücklich ist, ordnungsgemäß angezeigt wird:
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
Der einzige Unterschied in der Befehlszeile tritt mit;
pcdev_masm hellod ;
... wird ...
docker run -it --rm -h cpm86 -v `pwd`:/work -w /work cpm86 pcdev_masm hellod '\;'
Schließlich wird ein einfaches Makefile mit einer Probe C, Assembler für RASM86, Assembler für ASM86 vorgesehen:
./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
Wenn der Code die ANSI -Syntax verwendet ...
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
Sie können eine native UNIX/DOS-Version von Bin2cmd/cmdinfo aus (https://github.com/tsupplis/cpm86-cmdtools) erstellen