โครงการนี้จัดกลุ่มใหม่เป็นวิธีง่ายๆในการสร้างสภาพแวดล้อมการพัฒนาข้ามสำหรับ CP/M-86 มันเกิดขึ้นที่เครื่องมือที่ใช้ DOS ทั้งหมดสามารถใช้สำหรับการสร้างโปรแกรม DOS โครงการนี้ได้รับการพัฒนาเพื่อตัวเองด้วยจิตวิญญาณที่โง่และเพื่อความสนุกสนานมากมาย เพียงแค่แบ่งปันโดยไม่มีการรับประกันใด ๆ
ภาษาที่รองรับคือ:
แหล่งที่มาสำหรับเอกสาร CP/M-86 แหล่งที่มาและไบนารีคือ 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 เนื่องจากไม่ได้เป็นส่วนหนึ่งของแพ็คเกจคอมไพเลอร์เริ่มต้น (https://www.aztecmuseum.ca/docs/aztec_c_msdos_4.10c_commercial_apr88.pdf)
RASM86/LINK86, LIB86 DOS เวอร์ชันจากการวิจัยดิจิตอล
ASM86.com และ gendef.com จาก Digital Research
cb86.exe และห้องสมุดจากการวิจัยดิจิตอล
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
Emu2 DOS Emu2 Super Emu2 เพื่อเรียกใช้เครื่องมือ DR บน MacOS และ Linux (https://github.com/dmsc/emu2) นี่เป็นวิธีที่เหลือเชื่อในการนำเครื่องมือการพัฒนาสายคำสั่ง DOS มาสู่สภาพแวดล้อมที่ทันสมัยและทันสมัยเชลล์/Make/อะไรก็ตาม อีกตัวจำลองที่น่าทึ่ง 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 | Dr Assembler (OBJ) |
| pcdev_linkcmd | linkcmd.exe | Dr Linker สำหรับ CP/M-86 |
| pcdev_link86 | linkcmd.exe | - |
| pcdev_linkexe | linkexe.exe | Dr Linker สำหรับ 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 | Microsoft Hex Converter |
| pcdev_asm | asm.com | Microsoft/86-Dos Assembler |
| pcdev_cmdinfo | cmdinfo.com | เครื่องมือข้อมูล CMD |
| pcdev_bin2cmd | bin2cmd.com | ตัวแปลง CMD |
| aztec34_as | AS.EXE | แอสเซมเบลอร์ Aztec |
| aztec34_cc | CC.Exe | คอมไพเลอร์ Aztec K&R C |
| aztec34_sqz | sqz.exe | เครื่องมือเพิ่มประสิทธิภาพวัตถุ Aztec C |
| aztec34_link | ln.exe | Aztec C linker |
| aztec34_lib | lb.exe | Aztec C lib |
| aztec34_ord | Ord.exe | Aztec C Library Ordering Helper |
| aztec34_obd | obd.exe | การถ่ายโอนข้อมูลวัตถุ Aztec C |
| aztec34_hex86 | hex86.exe | เครื่องกำเนิดไฟฟ้า Aztec C H86 |
| aztec42_as | AS.EXE | แอสเซมเบลอร์ Aztec |
| aztec42_cc | CC.Exe | คอมไพเลอร์ Aztec Ansi C |
| aztec42_sqz | sqz.exe | เครื่องมือเพิ่มประสิทธิภาพวัตถุ Aztec C |
| aztec42_link | ln.exe | Aztec C linker |
| aztec42_lib | lb.exe | Aztec C lib |
| aztec42_ord | Ord.exe | Aztec C Library Ordering Helper |
| aztec42_obd | obd.exe | การถ่ายโอนข้อมูลวัตถุ Aztec C |
| aztec42_hex86 | hex86.exe | เครื่องกำเนิดไฟฟ้า Aztec C H86 |
| drcbcpm_bc | cb86.exe | คอมไพเลอร์ดร. CBASIC สำหรับ CP/M-86 |
| drcbcpm_link | link86.exe | Dr CBASIC Linker สำหรับ CP/M-86 |
| drcbdos_bc | cb86.exe | คอมไพเลอร์ดร. CBASIC สำหรับ DOS |
| drcbdos_link | linkexe.exe | Dr Cbasic Linker สำหรับ DOS |
| CPM86 | - | CP/M-86 Emulator |
| hexcom | - | Hex ถึงการแปลแบบไบนารี |
| ดอสแคท | - | ตัดทอนไฟล์เกิน ^z |
| สิ่งที่น่าเบื่อหน่าย | - | แอสเซมเบลอร์ netwide |
สภาพแวดล้อมการพัฒนาสามารถประกอบได้โดยใช้ขั้นตอนต่อไปนี้:
./fetch_tools
export PATH=`pwd`/bin
มันดึงสิ่งต่อไปนี้:
การล้างไดเรกทอรีทำได้โดย:
./clear_tools
เครื่องมือ CPM86 เป็นตัวจำลอง CPM86 สำหรับ DOS ที่ดึงด้วย Aztec C. มันใช้งานได้ ฉันไม่พึ่งพาเครื่องมือสร้าง แต่สามารถทดลองได้ การจำลอง DOS/CP/M-80 และการรวบรวม Cross 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 .
สำหรับผู้ใช้ภาพที่สร้างขึ้นเพียงตรวจสอบให้แน่ใจว่าเส้นทางในพื้นที่ที่การรวบรวม Happense ismounted ถูกต้อง:
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 '\;'
ในที่สุด makefile ง่าย ๆ ที่มีตัวอย่าง C, แอสเซมเบลอร์สำหรับ RASM86, Assembler สำหรับ 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
คุณสามารถสร้าง BIN2CMD/CMDINFO เวอร์ชัน UNIX/DOS ได้จาก (https://github.com/tsupplis/cpm86-cmdtools)