CPM/MSX-DOSでプログラミング


ミニ・コンパイラとは?


今から16年程前に、NiftyのMSXフォーラムのライブラリに登録したコンパイラがあります。 名前はMini Compilerを略してMCです。最初はコンパイラの勉強のために作成したので、 公開するつもりは全くありませんでしたが、当時MSX-DOS用のコンパイラって高価だったので 思い切ってVer0.8を公開したのです。最初はSmall-CでMCのソースを書きましたが、 今ではMCの文法でMCのソースを書いてあるので、MCさえあればコンパイラを自分の仕様に合わせて 作り直す事が可能になりました。

1.MCをSmall-Cで作成


2.MCをMCで作成



ランタイムルーチンや組み込み関数はアセンブラで書かれているので、M80/L80が必要ですが、 これもMCで書き直すことができます。そのうちね。。


クロス開発環境の構築


コンパイラソースをコンパイルするのにCPM(もやは実機はなかろう)やMSX-DOSをいちいち 起動するのは面倒なのでクロス開発環境(WindowsのDOS窓で実行できる環境)を作りましょう。 幸いとても素晴らしいCPMエミュが ここにあるので、 ダウンロードしましょう。ファイル名は cpm32_02.lzh だよ。

※完成度の高いCPMエミュなので作者に感謝しましょう!

このエミュの凄いところは「端末エミュレーション」が実装されていることです。Windowsの cmd.exe では実現できないコンソール制御がこのエミュを使用する事で可能になります。
例えば 画面の消去とかカーソル移動とか、文字の色を変えるとか。。これだけあれば簡単なゲームが 出来そうですよね

次に下記の手順でCPM専用フォルダを作成しましょう。

1.まずはクロス開発環境用の作業フォルダを作成しよう。例)C:\CPM
2.次にダウンロードした cpm32_02.lzhを解凍します。
3.解凍して出来たフォルダ \cpm32_02 を C:\CPM フォルダに入れましょう
4.こんな感じになるはず C:\CPM\cpm32_2
5.次にメモ帳で、env.bat を作成して C:\CPM フォルダに入れましょう。

env.batの中身
 @echo off 
 set PATH=%PATH%;C:\CPM\cpm32_2; 
 set CPMPATH=C:\CPM\cpm32_2; 

ミニ・コンパイラの環境


ミニ・コンパイラはここからダウンロードしましょう。ファイル名はmc.zip だよ。
ダウンロードしたらコンパイラを C:\CPMフォルダに解凍しましょう。
解凍後のフォルダの中身は下記の通りになっているはず。違っていたらやり直しだな

C:\CPM>tree /f
フォルダ パスの一覧
ボリューム シリアル番号は XXXXXXXX XXXX:XXXX です
C:.
│  env.bat
│
├─cpm32_2
│  │  4GCLOCK.COM
│  │  COPYING
│  │  cpm.exe
│  │  cpm32_02.txt
│  │  Mbasic.com
│  │  RCCP.COM
│  │  XCCP.COM
│  │
│  ├─src
│  │      cpm.c
│  │      cpm.ico
│  │      cpm.rc
│  │      em180.asm
│  │      em180.h
│  │      Makefile
│  │      mkem180.pl
│  │      mkz80op.pl
│  │      z80op.txt
│  │
│  └─utl
│          4Gclock.as
│          loader.as
│          Makefile
│          patch$exec.txt
│          rccp.as
│
└─mc
        CLM.MCC
        CLM.TXT
        MC.COM
        MCC.BAT
        MCCPM32.RUN
        RUN.BAT
  

実際にゲームをコンパイルしてみよう


まずはDOSを起動するのです。Windowsのスターメニューから「ファイル名を指定して実行」を
選び cmd と入力して OK ボタンを押しましょう。するとDOS画面が開きます。
後は下記の通りにコマンドを実行するのです。

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Owner>

    下線部分を入力しEnterキーを押します。ディレクトリが変わりますよね。
C:\Documents and Settings\Owner>cd \cpm
C:\CPM>

    次に下線部分を入力しEnterキーを押します。
C:\CPM>env

    続いて下線部分を入力しEnterキーを押します。ディレクトリが変わりますよね。
C:\CPM>cd mc
C:\CPM\mc>

    これで準備完了です。ではゲームをコンパイルしましょう
    下線部分を入力しEnterキーを押すとコンパイル開始!
C:\CPM\mc>mcc clm

C:\CPM\mc>cpm mc mccpm32.run clm.mcc
*** Mini Compiler (Ver 1.0) ***
Compile complete.

C:\CPM\mc>

    それではゲームを実行しましょう
    下線部分を入力しEnterキーを押すゲーム開始です。
C:\CPM\mc>run clm
  

ちゃんと動作しましたか?PCの性能によって超早いかもしれないけど、ソースをいじると大丈夫
遊び方は CLM.TXT をメモ帳で開いて見てください。

今日はここまで