このプロジェクトは、CP/M-86のクロス開発環境を作成する簡単な方法を再編成します。すべてのDOSベースのツールは、DOSプログラムの構築にも使用できます。このプロジェクトは、私自身のためにオタクな精神で、そしてとても楽しいために開発されました。保証なしで共有するだけです。
サポートされている言語は次のとおりです。
CP/M-86 DOC、ソース、バイナリのソースはhttp://www.cpm.z80.deです。
クリーンアップされた分布とカーネルは、https://github.com/tsupplis/cpm86-kernelで入手できます。この分布は、すべての既知のパッチ「Y2K」にパッチされた仮想環境でうまく機能しています。
AZTEC C Compilerバージョン3.4/3.40A(K&R、CP/M-86ライブラリがC86.libとして提供されています)
AZTEC C Compilerバージョン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、Digital ResearchのLIB86 DOSバージョン
Digital ResearchのASM86.comとgendef.com
CB86.ExeおよびDigital Reasearchのライブラリ
NASM NetWideアセンブラー
Masm、link、asm、exe2bin、microsoftのhex2bin(このリポジトリのMASMのバージョンは、emu2およびその他のエミュレーターと連携するようにパッチされています。詳細については、https://github.com/tsupplis/pcdos11-hackingを参照してください)。 asm.comおよびhex2bin.comは、https://github.com/tsupplis/pcdos11-hackingで修正されたソース用に再構築されました。
MacOSとLinux(https://github.com/dmsc/emu2)でDRツールを実行するための超クールなEMU2 DOSエミュレーター。これは、DOSコマンドライン開発ツールを最新の最新のシェル/メーカー/ベースの開発環境にもたらす信じられないほどの方法です。別の見事なエミュレータ。 EMU2とPCEは信じられないほどのペアです。
また、いくつかのCP/M-80プログラムを実行する必要があります。そのため、Tinylpoエミュレーター(https://gitlab.com/gbrein/tnylpo)が使用されます。 ASM86.comおよびGencmd.comプログラムで非常にうまく機能します
すべてのツールは、直接使用するためにBINディレクトリにラップされています。
| スクリプト名 | プログラム | 簡単な説明 |
|---|---|---|
| CPM_ASM86 | asm86.cmd | DRアセンブラー(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リンカー |
| PCDEV_LINK86 | linkcmd.exe | "" "" " |
| pcdev_linkexe | linkexe.exe | DOSのリンカー博士 |
| PCDEV_LIB86 | lib86.exe | 博士図書館 |
| PCDEV_MASM | masm.exe | Microsoftアセンブラー |
| pcdev_link | link.exe | Microsoftリンカー |
| pcdev_exe2bin | exe2bin.exe | Microsoft exeコンバーター |
| pcdev_hex2bin | hex2bin.com | Microsoft Hex Converter |
| pcdev_asm | asm.com | Microsoft/86-DOSアセンブラー |
| 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リンカー |
| 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アセンブラー。 |
| 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エミュレータ |
| ヘックスコム | - | ヘックスからバイナリ翻訳 |
| doscat | - | ^zを超えてファイルを切り捨てます |
| 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 Run Make、代わりに次のようになります。
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バージョンを構築できます。