何はともあれ、下記のサイトを一通り読まれることをお勧めします。
・
http://homepage2.nifty.com/akikawa/cpm.html (PC-6001mkII/6601 CP/M導入メモ)
アセンブラで AS をお使いの方、80x25 スクリーン版作成を目指す方はこちらのレポートも。
・
http://sbeach.seesaa.net/category/22105334-1.html (CPMの話(2))
とりあえず、I/O版を作るのに必要なものとしては以下の2点。
・I/O 誌 (工学社) 1984 年 2 月号
・CP/M 2.2 アセンブラソースファイル
http://www.cpm.z80.de/source.htmlより、CP/M 2.2 ASM SOURCE 60K からダウンロード。
後者はいいとして前者ですが、筆者はネットで蔵書検索して運よく見つかったので実際に図書館で借りてきました。
検索する場合は全国的な検索よりも地域の図書館の蔵書検索の方が詳しく出るような気がします。(検索の仕方にもよるのかもしれませんが)
また、公共図書館と大学図書館などで検索対象が別になっている場合もあるので、根気よく調べると見つかるかも。
必要なページは 4 ページです。ダンプリストだけなら 2 ページ。
I/Oもスラッシュ「/」が中黒「・」になっていたり「アイオー」とカタカナだったり、「工学社」が著者なのか出版者なのか
よくわからないので、色々なパターンを試してみましょう。
で、借りてきたはいいものの…。
非常に見にくい、です。チェックサムがついているのですが、そのチェックサムが見えない。
まあそれでも縦横チェックサムがあるのと、リストが比較的短いので我慢しながら打ち込みます。
上に挙げた秋川さんのサイトにチェックサム表示ツール checksum.exe があるので、有難く使わせていただきます。
一応、CRC 等を記しておきます。
boot.bin ( 256bytes) CRC32 : B631407C MD5 : 4ABC0547F98F09B5CFF2320BDB117E4C
bios.bin (1,280bytes) CRC32 : FA203711 MD5 : 53325E0BA7115D045F3FCF1F1A33521B
|
さて、もう一つの CP/M ソースのコンパイルですが、アセンブラ AS を使っているので
上に挙げたえすびさんのサイトの注意事項を見ながらソースを修正します。ただし、80x25にはしないので MEM EQU の所は 49 にします。
('84/2月号しか見つけられなかったので、80x25化の記事は未入手なのです。)
この修正作業が結構面倒なので、差分ファイルを作ってみました。
・
cpmsrc_diff.zip 修正差分です。gnu-patch で元のソースから修正後のソースを生成できます。
・
http://gnuwin32.sourceforge.net/packages/patch.htm Patch for Windows
Binaries から zip をダウンロードします。zip から patch.exe を取り出し、CPM22.Z80 / cpmsrc.diff を同じフォルダに置きます。
続いて、コマンドラインから "patch < cpmsrc.diff" と入力します。
d:\>patch < cpmsrc.diff
can't find file to patch at input line 1
Perhaps you should have used the -p or --strp option?
File to patch : cpm22.z80
|
パッチ対象のファイルを教えて、と言われるので"cpm22.z80"と入力します。成功すれば cpm22.z80 が修正されます。
AS でのアセンブル方法はえすびさんの所に書いてある通りです。
・
http://john.ccac.rwth-aachen.de:8000/as/ AS はこちら。
D:\>asw -cpu z80 cpm22.z80
macro assembler 1.42 Beta [Bld 87]
(i386-unknown-win32)
(C) 1992,2013 Alfred Arnold
Motorola MPC821 Additions (C) 2012 Marcin Cieslak
68RS08-Generator (C) 2006 Andreas Bolsch
Mitsubishi M16C-Generator also (C) 1999 RMS
XILINX KCPSM(Picoblaze)-Generator (C) 2003 Andreas Wassatsch
TMS320C2x-Generator (C) 1994/96 Thomas Sailer
TMS320C5x-Generator (C) 1995/96 Thomas Sailer
assembling cpm22.z80
PASS 1[K
cpm22.z80(3746)[K
PASS 2[K
cpm22.z80(3746)[K
0.06 seconds assembly time[K
3746 lines source file[K
2 passes[K
0 errors[K
0 warnings[K
D:\>p2bin cpm22.p -l 0 -r $-$
P2BIN/C V1.42 Beta [Bld 87]
(C) 1992,2013 Alfred Arnold
cpm22.p==>>cpm22.bin (5683 Bytes)
|
こんな感じでアセンブルが完了します。
5683 バイトのバイナリ cpm22.bin が出来たか確認しましょう。
cpm22.bin は cpm.bin にリネームしておきましょう。
cpm.bin / boot.bin / bios.bin の 3 つが揃ったら、秋川さんのサイトにある cpmdisk.exe を実行します。
成功すれば cpm.d88 が出来て完成!