BDS C の使い方 - とりあえず使ってみる
>BDS C の使い方 - 目次
Z80 のプログラムを書く用事があったんですが、アセンブラは大変なので自由に使える Cコンパイラは無いものかな?と google で検索すると、BDS C V1.6 が明確にパブリックドメイン宣言されて、BD Software さんから配布されています。
他にもいくつかあるようでしたが、BDS C には立派な PDF形式のマニュアルも同梱されていて、使い方を調べやすそうな感じがしたので、今回はこれを使うことに決めました。
シャープから X1 用として販売されていた Cコンパイラが、この BDS C (α-C) だったようですね。
BD Software さんの BDS C のページ の Primary Downloads の所から 1.5MB の ZIP ファイル (bdsc-all.zip) をダウンロードします。この bdsc-all.zip に C コンパイラの動作に必要なファイルすべてと、PDF形式のマニュアルが含まれています。
Documentation のところに容量の大きなマニュアル (bdsc-guide-full.pdf) もあるのですが、表紙画像の有無だけの違いのようで、内容は同じようでした。
BDS C は CP/M 上で動作するのですが、実機より現代の PC で動作させたほうが高速ですし、普段使っているテキストエディタも使えてずっと便利なので、Windows 上で CP/M のエミュレータを使用して、その上で BDS C を実行することにします。
今回は、村上 敬司 さんの CP/M program EXEcuter (CPM.EXE) を使用します。64bit版 windows では MS-DOS汎用のプログラムは動作しないので、win32版の CP/M program EXEcutor for Win32 をダウンロードしておきます。
適当な作業フォルダ(ディレクトリ)を作成して、これらのファイルをコピーします。bdsc160\ と bdsc160\work\ の中身をすべてコピーしても良いです。
続いて、windows 上で動作させるために、CP/M program EXEcuter の実行ファイル CPM.EXE も同じフォルダにコピーします。
これで動作の準備が整ったので、とりあえずコンパイラを起動してみましょうか。
コマンドプロンプトを開いて、ファイルをコピーしたフォルダに移動して、
cpm cc
と入力します。
続けて、実際に簡単なプログラムをコンパイルしてみます。
ソースファイル .\test\hello.c をメモ帳や普段使っているテキストエディタで作成します。
内容はこんな感じで
早速コンパイルします。
コンパイルとリンクが正常に終了したら、出来上がった hello.com を実行してみます。
cpm test\hello
"Hello, world!" と表示されたら成功です。
出力はこんな感じ
出来上がったファイルは次の通り
とても簡単に使うことができました。
コンパイルとリンクを続けて行う、バッチファイルを作っておいても楽で良いですね。
BDS C のマニュアルはきちんとしていて読みやすいのですが、OCRで作成したのか単語中に余分なスペースが入っていて、機械翻訳にそのまま掛けられずちょっと不便でした。
当初は頑張って英語の付属マニュアルを読んでいたのですが、なにか楽できないかなと検索したら、amazon で古本の「BDS C の使い方 稲川幸則 渡辺修 共訳 工学図書」が送料込み 257円で在庫していたので、さっと購入しました。本のタイトルからは少しわかりにくいのですが、この本は V1.5a の BDS C User's Manual をそのまま翻訳したもので、 v1.6 でもほとんどそのまま通用しました。(V1.5 と V1.6 ではライブラリが変更されていて、独自のフィル操作関数だったのが V1.6 で標準Cライブラリと同じになっています。配布されている V1.6 には V1.5 のライブラリ(BDSCIO.H と DEFF15.CRL)も付属しています)
>BDS C の使い方 - 目次
Z80 のプログラムを書く用事があったんですが、アセンブラは大変なので自由に使える Cコンパイラは無いものかな?と google で検索すると、BDS C V1.6 が明確にパブリックドメイン宣言されて、BD Software さんから配布されています。
他にもいくつかあるようでしたが、BDS C には立派な PDF形式のマニュアルも同梱されていて、使い方を調べやすそうな感じがしたので、今回はこれを使うことに決めました。
シャープから X1 用として販売されていた Cコンパイラが、この BDS C (α-C) だったようですね。
ダウンロード
BD Software さんの BDS C のページ の Primary Downloads の所から 1.5MB の ZIP ファイル (bdsc-all.zip) をダウンロードします。この bdsc-all.zip に C コンパイラの動作に必要なファイルすべてと、PDF形式のマニュアルが含まれています。
Documentation のところに容量の大きなマニュアル (bdsc-guide-full.pdf) もあるのですが、表紙画像の有無だけの違いのようで、内容は同じようでした。
BDS C は CP/M 上で動作するのですが、実機より現代の PC で動作させたほうが高速ですし、普段使っているテキストエディタも使えてずっと便利なので、Windows 上で CP/M のエミュレータを使用して、その上で BDS C を実行することにします。
今回は、村上 敬司 さんの CP/M program EXEcuter (CPM.EXE) を使用します。64bit版 windows では MS-DOS汎用のプログラムは動作しないので、win32版の CP/M program EXEcutor for Win32 をダウンロードしておきます。
コンパイラを動かすのに必要なファイル
以下のファイルだけがあればコンパイラが動作できます。
bdsc160\ CC.COM コンパイラ本体 CC2.COM コンパイラ本体2 CLINC.COM リンカ DEFF.CRL 標準ライブラリ DEFF2.CRL 標準ライブラリ2 C.CCC スタートアップルーチン bdsc160\work\ STDIO.H 標準ライブラリのヘッダファイル
適当な作業フォルダ(ディレクトリ)を作成して、これらのファイルをコピーします。bdsc160\ と bdsc160\work\ の中身をすべてコピーしても良いです。
続いて、windows 上で動作させるために、CP/M program EXEcuter の実行ファイル CPM.EXE も同じフォルダにコピーします。
動かしてみる
これで動作の準備が整ったので、とりあえずコンパイラを起動してみましょうか。
コマンドプロンプトを開いて、ファイルをコピーしたフォルダに移動して、
cpm cc
と入力します。
C:\ \work>cpm cc
BD Software C Compiler v1.60 (part I)
Usage:
cc [-p] [-o] [-a ] [-d ] [-m ] [-e ] [-r ]
C:\ \work>
このように使い方が表示されたら正常です。Hello, world!
続けて、実際に簡単なプログラムをコンパイルしてみます。
ソースファイル .\test\hello.c をメモ帳や普段使っているテキストエディタで作成します。
内容はこんな感じで
#include <stdio.h>
main()
{
printf("Hello, world!\n");
}
早速コンパイルします。
cpm cc test\hello コンパイル(CC2は自動的に呼び出されます) cpm clink test\hello リンク
コンパイルとリンクが正常に終了したら、出来上がった hello.com を実行してみます。
cpm test\hello
"Hello, world!" と表示されたら成功です。
出力はこんな感じ
C:\ \work>cpm cc test\hello
BD Software C Compiler v1.60 (part I)
43K elbowroom
BD Software C Compiler v1.60 (part II)
40K to spare
C:\ \work>cpm clink test\hello
BD Software C Linker v1.60
Last code address: 0E49
Externals start at 0E4A, occupy 0006 bytes, last byte at 0E4F
Top of memory: FDFF
Stack space: EFB0
Writing output...
51K link space remaining
C:\ \work>cpm test\hello
Hello, world!
C:\ \work>
出来上がったファイルは次の通り
hello.c 自分で書いたソースファイル hello.CRL hello.c をコンパイルして出来たライブラリファイル 同名のソースファイル内のすべての関数が入る hello.com hello.CRL とスタートアップルーチン (C.CCC) や 使用したライブラリをリンクして出来上がった実行ファイル
とても簡単に使うことができました。
コンパイルとリンクを続けて行う、バッチファイルを作っておいても楽で良いですね。
BDS C のマニュアルはきちんとしていて読みやすいのですが、OCRで作成したのか単語中に余分なスペースが入っていて、機械翻訳にそのまま掛けられずちょっと不便でした。
当初は頑張って英語の付属マニュアルを読んでいたのですが、なにか楽できないかなと検索したら、amazon で古本の「BDS C の使い方 稲川幸則 渡辺修 共訳 工学図書」が送料込み 257円で在庫していたので、さっと購入しました。本のタイトルからは少しわかりにくいのですが、この本は V1.5a の BDS C User's Manual をそのまま翻訳したもので、 v1.6 でもほとんどそのまま通用しました。(V1.5 と V1.6 ではライブラリが変更されていて、独自のフィル操作関数だったのが V1.6 で標準Cライブラリと同じになっています。配布されている V1.6 には V1.5 のライブラリ(BDSCIO.H と DEFF15.CRL)も付属しています)
>BDS C の使い方 - 目次