يعيد هذا المشروع تجميع طريقة بسيطة لإنشاء بيئة تطوير متقاطعة لـ CP/M-86. يحدث أنه يمكن أيضًا استخدام جميع الأدوات المستندة إلى DOS لبناء برامج DOS. تم تطوير هذا المشروع بنفسي بروح نردية وللرح والكثير من المرح. مجرد مشاركة دون أي ضمانات.
اللغات المدعومة هي:
مصدر DOC CP/M-86 والمصادر والثنائيات هو http://www.cpm.z80.de.
يتوفر توزيع تنظيف و kernel على https://github.com/tsupplis/cpm86-kernel. يعمل هذا التوزيع بشكل جيد في البيئات الافتراضية ، مصححة بجميع التصحيحات المعروفة ، "Y2K" ودية (يحتوي على إصدار TOD الذي توجد في هذا المشروع) وفي ودية.
Aztec C Compiler الإصدار 3.4/3.40A (K&R ، يتم توفير مكتبة CP/M-86 كـ C86.LIB)
يتم تصحيح الإصدار 4.2/4.10d (ANSI تقريبًا ، رمز مكتبة CP/M-86 (C86.LIB). (https://www.aztecmuseum.ca/docs/aztec_c_msdos_4.10c_commercial_apr88.pdf)
RASM86/LINK86 ، إصدار LIB86 DOS من البحوث الرقمية
ASM86.com و Gendef.com من الأبحاث الرقمية
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.
Super Cool EMU2 DOS Emulator لتشغيل أدوات DR على MACOS و Linux (https://github.com/dmsc/emu2). هذه طريقة لا تصدق لجلب أدوات تطوير سطر أوامر DOS إلى بيئة DEV الحديثة وحدثت/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 (أداة 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 | الدكتور رابط لدوس |
| PCDEV_LIB86 | lib86.exe | دكتور أمين المكتبة |
| 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 |
| PCDEV_ASM | asm.com | Microsoft/86-DOS Assembler |
| PCDEV_CMDINFO | cmdinfo.com | أداة معلومات CMD |
| PCDEV_BIN2CMD | Bin2CMD.com | محول CMD |
| Aztec34_As | as.exe | Aztec Assembler. |
| aztec34_cc | cc.exe | المترجم Aztec K&R C |
| Aztec34_SQZ | sqz.exe | Aztec C Optimizer |
| aztec34_link | ln.exe | Aztec C Linker |
| 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 | Aztec Assembler. |
| aztec42_cc | cc.exe | برنامج التحويل البرمجي Aztec Ansi C |
| Aztec42_SQZ | sqz.exe | Aztec C Optimizer |
| aztec42_link | ln.exe | Aztec C Linker |
| 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 | برنامج التحويل البرمجي للدكتور CBASIC لـ CP/M-86 |
| DRCBCPM_LINK | Link86.exe | رابط الدكتور CBASIC لـ CP/M-86 |
| DRCBDOS_BC | CB86.exe | برنامج التحويل البرمجي للدكتور CBASIC لـ DOS |
| DRCBDOS_LINK | linkexe.exe | رابط الدكتور CBASIC لـ DOS |
| CPM86 | - | CP/M-86 المحاكي |
| Hexcom | - | Hex إلى الترجمة الثنائية |
| doscat | - | اقتطاع الملفات وراء ^z |
| ناس | - | المجمع على مستوى الشبكة |
يمكن تجميع بيئة التطوير باستخدام الخطوات التالية:
./fetch_tools
export PATH=`pwd`/bin
يسحب ما يلي:
يتحقق تطهير الدليل بواسطة:
./clear_tools
أداة CPM86 عبارة عن محاكي CPM86 لـ DOS يتم سحبه مع Aztec C. إنه يعمل. أنا لا أعتمد عليها لأدوات البناء ولكن يمكن تجربتها. تعد محاكاة DOS/CP/M-80 ومجموعات DOS/CP/M-80 المتقاطعة أفضل بكثير وخيارات خام. في حالة جيدة ، يعد المحاكاة المناسبة و CP/M-86 الخيار الأفضل للاختبار. PCE هو خيار جيد للغاية (http://www.hampa.ch/pce/).
قد تكون هذه خطوة تالية:
يتم توفير Dockerfile لهذه البيئة. لإنشاء الصورة من دليل Docker ، جعل JUSR Run ، بدلاً من ذلك:
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 ، Assembler لـ 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
يمكنك إنشاء إصدار UNIX/DOS الأصلي من Bin2CMD/CMDINFO من (https://github.com/tsupplis/cpm86-cmdtools)