はじめに
『MSX-C』関連の情報を集めてみました。
MSX-C
『MSX-C』は ASCII が発売した MSX 用の C コンパイラです。元々は エル・エス・アイ・ジャパン株式会社 の『LSI C-80』の OEM だったようです。
『MSX-C』はアセンブラソースを吐くタイプのコンパイラですので、実行形式ファイルを生成するにはアセンブラとリンカが必要です。
See also:
準拠している C 言語の規格
ANSI C (1989) よりも前に発売された製品なので、後に制定された規格には準拠しておらず、K&R のサブセット的な実装となっています。例えば、MSX-C で利用可能なデータ型は次の 4 (3) 種類のみです。
型 | 長さ | 範囲 |
---|---|---|
char | 8 | 0..255 |
short | 16 | -32768..32767 |
int | 16 | -32768..32767 |
unsigned | 16 | 0..65535 |
マニュアルには『Version 7 UNIX (PDP-11)』の C との相違点が掲載されています。
-
#if
プリプロセッサをサポートしない - 暗黙の関数宣言は行われない (関数プロトタイプ宣言が必要)
- float, long, double のデータ型をサポートしない
- int 型とポインタの混用は認められない
- ビットフィールドをサポートしない
- 他モジュールに対して有効な識別子の長さは 6 文字
C とアセンブラのリンクを行う場合には C の外部シンボル名の後に @
が必要です。また、アンダースコア (_
) も @
に置き換えられますので、たとえば main
は main@
として、_exit
は @exit@
として参照しなければなりません。
『MSX-C Library』には MSX BASIC 互換の倍精度実数型 (XDOUBLE) と、符号付き long (SLONG) を扱うための数値演算関数パッケージが含まれています。
See also:
MSX-C と関連製品
『MSX-C』や『MSX PDT (Professional Development Tools)』シリーズに関する情報です。
PDT シリーズ
『MSX-C (ver1.1 以降)』を含む『MSX PDT (Professional Development Tools)』シリーズはパーソナルユース向けの製品で、開発したプログラムの販売、頒布はできない事になっていました。
販売・頒布向けには 『MSX-ISV キット』 を使って開発する必要がありました。
MSX-C のバージョン
『MSX-C』のバージョン毎による差異です。
MSX-C ver1.0 | MSX-C ver1.1 | MSX-C ver1.2 | |
---|---|---|---|
対象 OS | MSX-DOS | MSX-DOS | MSX-DOS2 |
アセンブラ / リンカ | M80.COM / L80.COM | M80.COM / L80.COM (別売: DOS TOOLS に付属) |
M80.COM / L80.COM (別売: DOS2 TOOLS に付属) |
エディタ | SCED.COM | MED.COM (別売: DOS TOOLS に付属) |
AKID.COM / KID.COM (別売: DOS2 TOOLS に付属) |
デバッガ | - | SBUG.COM (別売: S BUG に付属) |
SBUG2.COM / SBUG2M.COM (別売: S BUG2 に付属) |
ライブラリ | - | 別売: MSX-C Library | 別売: MSX-C Library |
ニーモニック | インテル | ザイログ | ザイログ |
配布権 | あり | なし | なし |
発売日 | 1985/6下旬? | 1987/8末? | 1989/8? |
See also:
MSX-C ver 1.1 での変更点
- インテル・ニーモニックからザイログ・ニーモニックへ変更されました。
- 標準ライブラリ関数に「longjmp, setjmp」の 2 種類の (サブルーチンの行き先から上位のルーチンに直接制御を戻すための) 関数が追加されました。
- マニュアルが大幅に改良され、たいへん使いやすくなりました。
- 標準ライブラリ関数の仕様を以下のように変更、標準 UNIX-C ライブラリである『V7 UNIX-C ライブラリ』に一層近付き使いやすくなりました。
-
GETS, FGETS
コンソール入力の場合、独自にシステムコールの文字列入力 (ファンクション 0AH) を使用していたのを、GETCを内部コールするように変更。 -
GETC, FGETC
コンソール入力の場合、独自にシステムコールの 1 文字列入力 (ファンクション 01H ) を使用していたのを、文字列入力 (ファンクション 0AH) を使用するように変更。これにより 1 文字入力でも編集作業が可能になりました。 -
SCANF, FSCANF, SSCANF
入力文字の区切り記号 (例"%S ,%S"
) がスペースのみだったのが任意に指定が可能。
入力文字が指定文字数を超えた場合、余った文字列が捨てられて、次の SCAN, GET で使用できなかったのが可能になりました。
SCAN 中に "EOF" を検出した際に 1 つ以上フォーマット処理を行っていた場合、処理した "n" をフォーマット処理を完了していなかった場合には "EOF" をそれぞれ返すように変更。 -
EXECL, EXECV
EXEC を実行した際に、それまで入力されていた I/O リダイレクション、パイプライン、シーケンスなどのアーギュメントが "EXEC" で呼ばれたプログラムに渡らすに捨てられていたのを、"EXEC" で呼ばれたプログラムにも渡すように変更、これによりパイプライン、シーケンスなどのアーギュメント中のプログラムで "EXEC" を使用しても、"EXEC" で呼ばれたプログラムがシーケンス、パイプラインなどのアーギュメントを続行できるようになりました。
"EXEC" で呼ばれたプログラム処理中でも^C
で中断して MSX-DOS に戻れるように変更。
『MSX Magazine』 1987 年 10 月号の「MSX MAGAZINE HOT LINE」より
製品と価格
『MSX-C』と関連製品の価格です。
製品 | 内容 | 価格 |
---|---|---|
MSX-C ver1.0 | C コンパイラ (アセンブラ、リンカ、エディタを含む) 1 | ¥98,000 |
MSX-C ver1.1 | C コンパイラ | ¥19,800 (¥7,000) |
MSX-DOS TOOLS | アセンブラ、リンカ、エディタ等のツール 1 | ¥14,800 (¥7,000) |
MSX-S BUG | シンボリックデバッガ | ¥19,800 (¥6,000) |
MSX-C ver1.2 | C コンパイラ | ¥19,800 (¥7,000) |
MSX-DOS2 TOOLS | アセンブラ、リンカ、エディタ等のツール 1 | ¥14,800 (¥7,000) |
MSX-S BUG2 | シンボリックデバッガ (マッパー RAM 対応版含む) | ¥19,800 (¥6,000) |
MSX-C Library | MSX 固有機能のための C ライブラリ | ¥14,800 (¥7,000) |
MSX-Datapack | MSX / MSX2 / MSX2+ のスペックシート (Volume 1,2) (サンプルディスク付属) |
¥12,000 |
MSX-Datapack turboR 版 |
MSX turboR のスペックシート (Volume 3) (サンプルディスク付属) |
¥12,000 |
※ 括弧 ()
内は ソフトベンダー TAKERU での販売価格 (税込) です。
『MSX-C ver1.2』や対応する PDT シリーズは『MSX MAGAZINE 永久保存版 3』の CD-ROM または『MSX0 Stack』の SD カードに収録されています。
組み合わせ
『MSX-C』と関連製品の組み合わせです。
MSX | MSX-DOS | アセンブラ/ リンカ/エディタ |
C コンパイラ | C ライブラリ | デバッガ |
---|---|---|---|---|---|
MSX1 | MSX-DOS | MSX-C ver1.0 | MSX-C ver1.0 | ||
MSX1 | MSX-DOS | DOS TOOLS | MSX-C ver1.1 | MSX-C Library | S BUG |
MSX2 / 2+ | MSX-DOS2 | DOS2 TOOLS | MSX-C ver1.2 | MSX-C Library | S BUG2 |
MSX-C ver1.2 ディスク内の実行ファイルは MSX-DOS2 上でしか動作しません。また、MSX-C ver1.2 標準ライブラリをリンクした実行ファイルは MSX-DOS2 上でしか動作しません。MSX-DOS2 は MSX2 以降でしか動作しないため、MSX-C ver1.2 では MSX1 で動作する実行ファイルを作れない事になります。
ドキュメント
『MSX-C』関連のドキュメントは「アカシックライブラリ」で読めます。会員登録していれば『MSX0 Stack』を未所持であっても製品マニュアルを無償で読む事ができます。
『MSX0 Stack』付属の SD カードにも各種ドキュメントが収録されています。
製品マニュアル
『MSX-C』や『MSX PDT』シリーズ関連の製品マニュアルです 2。
製品 | ドキュメント |
---|---|
MSX-DOS TOOLS |
・ユーザーズマニュアル 1 (MSX-DOS TOOLS Manual) ・ユーザーズマニュアル 2 (MSX-DOS Manual) ・ユーザーズマニュアル 3 (M.E.D. Operation Manual) ・ユーザーズマニュアル 4 (Utility Software Manual) |
MSX-C ver1.1 | ・ユーザーズマニュアル |
MSX-S BUG | ・ユーザーズマニュアル |
MSX-C Library | ・ユーザーズマニュアル |
MSX-DOS2 TOOLS | ・ユーザーズマニュアル |
MSX-DOS2 |
・ユーザーズガイド ・リファレンスマニュアル |
MSX-C ver1.2 | ・ユーザーズマニュアル |
MSX-S BUG2 | ・ユーザーズマニュアル |
MSX-Datapack |
・Volume 1 ・Volume 2 |
MSX-Datapack turboR 版 | ・Volume 3 |
MSX マガジン
月刊誌『MSX マガジン』(アスキー) にも『MSX-C』に関連する連載があります 2。
コンパイラに挑戦!?
大貫広幸氏による連載です。
掲載号 | ページ | 内容 |
---|---|---|
1985/10 | pp.196-199 | MSX-C コンパイラ |
1985/11 | pp.196-199 | コンパイラの基礎知識 |
1985/12 | pp.212-214 | いろいろなコンパイラ言語 |
1986/01 | pp.204-206 | ASM/FORTH |
1986/02 | pp.226-228 | ASM/FORTH の構成と定義済みワードの解説 |
1986/03 | pp.189-191 | ASM/FORTH のコンパイルの実際 |
1986/04 | pp.187-189 | ASM/FORTH 今までの総まとめとカーネルの説明 |
1986/06 | pp.193-197 | ASM/FORTH でゲームを作る |
1986/07 | pp.193-196 | ASM/FORTH でゲームを作る Part II |
1986/08 | pp.188-191 | ASM/FORTH でゲームを作る Part III |
1986/09 | pp.188-190 | ASM/FORTH の新しいグラフィックカーネル |
1986/10 | pp.195-198 | 各種コンパイラの紹介 |
1986/11 | pp.187-190 | BASIC コンパイラ (MSX べーしっ君) |
1986/12 | pp.215-217 | BASIC コンパイラ (MSX べーしっ君) Part II |
実践研究ディスクシステム - フロッピーディスク入門 -
小澤眞樹氏による連載です。
掲載号 | ページ | 内容 |
---|---|---|
1987/01 | pp.168-173 | ぼくがディスクを使うわけ |
1987/02 | pp.168-173 | MSX-DOS とディスク BASIC |
1987/03 | pp.170-175 | MSX-DOS とその他の DOS |
1987/04 | pp.168-173 | システムコールの互換性 |
1987/05 | pp.152-157 | MSX-DOS ツールズ・アセンブラ |
1987/06 | pp.150-155 | MSX-DOS ツールズ |
1987/07 | pp.152-157 | マクロアセンブラ MACRO80 |
1987/08 | pp.152-157 | M80 の疑似命令 |
1987/09 | pp.152-157 | M80 のマクロ機能 |
1987/10 | pp.152-157 | L80 とユーティリティ |
実践研究ディスクシステム - DOS 上で動く言語入門 -
同じく小澤眞樹氏による連載です 3。
掲載号 | ページ | 内容 |
---|---|---|
1987/11 | pp.168-173 | MSX-C を使ってみよう (1) |
1987/12 | pp.160-165 | MSX-C を使ってみよう (2) |
1988/01 | pp.184-189 | MSX-S BUG 登場!! |
1988/02 | pp.152-157 | MSX-C を使ってみよう (3) |
1988/03 | pp.172-177 | MSX-C を使ってみよう (4) |
実践研究ディスクシステム - C 言語入門 (番外編) -
永井健一氏による番外編です。
掲載号 | ページ | 内容 |
---|---|---|
1988/05 | pp.208-213 | MSX で C をはじめよう! |
MSX-DOS ツールズ詳解
短期連載です。
掲載号 | ページ | 内容 |
---|---|---|
1987/11 | pp.184-187 | MSX-DOS の基本機能 |
1987/12 | pp.172-175 | ツールズのコマンド |
1988/01 | pp.196-199 | リダイレクションとパイプ |
日本語 MSX-DOS2
短期連載です。
掲載号 | ページ | 内容 |
---|---|---|
1988/06 | pp.130-131 | ちょっと専門的な記事もあったりしてね |
1988/07 | pp.126-127 | ファイルって何だか知ってるかな? |
1988/08 | pp.122-123 | 機種別の DOS2 傾向と対策を大公開 |
1988/09 | pp.128-129 | もうすぐあなたのお手元に |
わくわく C 体験
MSX-C による C 言語講座です。
掲載号 | ページ | 内容 |
---|---|---|
1990/06 | pp.128-131 | C してみたい人の新連載だ! |
1990/07 | pp.120-121 | 簡単なプログラムを組んでみよう |
1990/08 | pp.112-115 | 制御構造について考えてみよう |
1990/09 | pp.114-117 | 標準入出力って何だろう!? |
1990/10 | pp.112-115 | ファイルと文字列操作について |
1990/11 | pp.122-123 | ポインターの考え方にせまる |
1990/12 | pp.122-125 | ポインターを使いこなそう |
1991/01 | pp.120-121 | パラメーターをつかいこなそう! |
1991/02 | pp.120-121 | ちょっと長めの応用プログラム |
1991/03 | pp.126-129 | C 言語でゲームを作ってみよう |
1991/06 | pp.124-125 | そろそろ C 体験もヤマ場かな!? |
C の神様 (PROGRAM HOUSE)
MSX-C による C 言語講座です。
掲載号 | ページ | 内容 |
---|---|---|
1991/07 | pp.126-127 | C 言語ってどんなもの? |
1991/08 | pp.129-131 | C でツールを作る その 1 |
1991/09 | pp.115-117 | C でツールを作る その 2 |
MSX MAGAZINE HOT LINE
「MSX MAGAZINE HOT LINE」は巻末にある『MSX Magazine』のお知らせなのですが、たまに重要な事がさらっと書いてあったりします。ここでは開発ツールや MSX の情報に関連するものだけを抜粋します。
掲載号 | 内容 |
---|---|
1986/04 | ・(シフト・リセットの方法) |
1986/12 | ・(『月刊 Login』1986 年 11 月号には『べーしっ君』の特集が 6P 載っている) |
1987/02 | ・MSX 日本語ワードプロセッサ『日本語 MSX-Write』(対応プリンタ情報も) |
1987/03 | ・(ウィザードリィと Pascal) |
1987/10 | ・MSX-C コンパイラ・バージョンアップのお知らせ ・『MSX-C ver1.1』のご紹介 |
1987/12 | ・MSX-C コンパイラについて |
MSX TECHNICAL NOTE
MSX 全般の情報です。
掲載号 | ページ | 内容 |
---|---|---|
1984/10 | pp.187-196 | ・コンピュータのしくみ ・MSX の構成 ・スロットって何? |
1984/11 | pp.163-172 | ・MSX のインターフェイス仕様 ・命令一つでキーボードの配列を変える ・ジョイスティックコネクタは汎用ポート |
1984/12 | pp.182-191 | ・カートリッジ・スロットの信号 ・サウンド出力の方法 |
1985/01 | pp.180-187 | ・VDP を使ってみよう ・VDP のレジスタ ・MSX で通信 |
1985/02 | pp.164-171 | ・VDP Part II ・VDP の VRAM ・モードによるデータテーブルの配置 |
1985/03 | pp.180-189 | ・プリンタの使い方 |
1985/04 | pp.175-182 | ・読者からの Q&A |
1985/05 | pp.182-189 | ・読者からの Q&A Part II |
1985/06 | pp.182-188 pp.189-191 |
・MSX を 2 台使ったデバッグシステム ・MCPC: 通信モードの設定と実際 |
1985/07 | pp.180-185 pp.186-187 |
・BIOS の使い方 (スロット/入出力) ・MCPC: RS-232C のインストラクション |
1985/08 | pp.180-185 pp.186-187 |
・BIOS の使い方 (VDP) ・MCPC: 通信割り込みの実際 |
1985/09 | pp.182-187 pp.188-189 |
・BIOS の使い方 (キーボード) ・MCPC: MSX で電話をかけよう |
1985/10 | pp.182-187 pp.188-189 |
・BIOS の使い方 (ワークエリア) ・MCPC: 情報の正確さ |
1985/11 | pp.194-199 pp.200-201 |
・MSX-BASIC のフックアドレス ・MCPC: アマチュア無線とパソコン通信 |
1985/12 | pp.204-211 | ・MSX を使った受信システム |
1986/01 | pp.196-201 pp.202-203 |
・ボクだけのとっておき活用法 ・MCPC: 書籍の紹介 |
1986/02 | pp.202-207 pp.208-209 |
・ここがわからない MSX Q&A ・MCPC: RS-232C インターフェイスの実際 |
1986/03 | pp.170-177 pp.178-179 |
・ここがわからない MSX Q&A ・MCPC: USART の中身 |
1986/04 | pp.176-181 pp.182-183 |
・BASIC をマスターしよう ・MCPC: タイマー IC |
1986/05 | pp.193-197 pp.198-199 |
・ディスクシステム入門 (第 1 回) ・MCPC: パソコン通信に必要な機器 |
1986/06 | pp.176-181 | ・ディスクシステム入門 (第 2 回) |
1986/07 | pp.176-181 | ・ディスクシステム入門 (第 3 回) |
1986/08 | pp.174-181 | ・ディスクシステム入門 (第 4 回) |
1986/09 | pp.174-179 | ・ディスクシステム入門 (第 5 回) |
1986/10 | pp.176-183 | ・ディスクシステム入門 (第 6 回) |
1986/11 | pp.176-183 | ・ディスクシステム入門 (第 7 回) |
1986/12 | pp.192-197 | ・ディスクシステム入門 (最終回) |
1987/01 | pp.180-181 pp.182-183 |
・MSX2 の BIOS (第 1 回) ・Q&A: DOS からのサブ ROM コール |
1987/02 | pp.182-183 pp.184-185 |
・MSX2 の BIOS (第 2 回) ・Q&A: MSX2 アダプタの周辺 |
1987/03 | pp.182-183 pp.184-185 |
・MSX2 の BIOS (第 3 回) ・Q&A: MSX2 アダプタの周辺・訂正補足 |
1987/04 | pp.180-181 pp.182-183 |
・MSX2 の BIOS (第 4 回) ・Q&A: ディスクエラー |
1987/05 | pp.166-167 pp.168-169 |
・MSX2 の BIOS (第 5 回) ・Q&A: ハードウェア関係の疑問点 |
1987/06 | pp.162-163 pp.164-165 |
・MSX2 の BIOS (第 6 回) ・Q&A: 漢字 ROM アクセス |
1987/07 | pp.164-165 pp.166-167 |
・MSX2 の BIOS (第 7 回) ・Q&A: BASIC 関係の疑問点 |
1987/08 | pp.164-165 pp.166-167 |
・MSX2 の BIOS (第 8 回) ・Q&A:マウスとトラックボール |
1987/09 | pp.164-165 pp.166-167 |
・MSX2 の BIOS (最終回) ・Q&A: 裏 RAM の利用法 |
1987/10 | pp.164-165 pp.166-167 |
・プリンタ入門 (第 1 回) ・Q&A: DOS 関係の疑問点 |
1987/11 | pp.180-181 pp.182-183 |
・プリンタ入門 (第 2 回) ・Q&A: MSX-DOS 関係の疑問点 |
1988/01 | pp.212-213 pp.214-215 |
・プリンタ入門 (最終回) ・Q&A: ON ERROR 命令 |
1988/02 | pp.176-177 pp.178-179 |
・拡張 BIOS (第 1 回) ・Q&A: 物理ドライブを調べる方法 |
1988/03 | pp.190-191 pp.192-193 |
・拡張 BIOS (第 2 回) ・Q&A: インタースロットコールの問題点など |
1988/04 | pp.206-209 | ・拡張 BIOS (第 3 回) |
1988/05 | pp.214-217 | ・拡張 BIOS (最終回) |
MSX2+ テクニカル探検隊
MSX 全般の情報です。
掲載号 | ページ | 内容 |
---|---|---|
1989/1 | pp.148-151 | ・スクリーンモードの巻 |
1989/2 | pp.182-185 | ・スロットって何だ?の巻 |
1989/3 | pp.196-199 | ・スロットの巻パート2 |
1989/4 | pp.176-179 | ・漢字 BASIC を解析 |
1989/5 | pp.182-185 | ・MSX-DOS2 の巻 |
1989/6 | pp.178-181 | ・DOS2 の紹介パート2 |
1989/7 | pp.178-181 | ・漢字プリンタを徹底解析 |
1989/8 | pp.182-185 | ・プリンタの奥は深いのだ ・Q&A: CP/M 関連他 |
1989/9 | pp.164-167 | ・プリンタを制御するには ・Q&A: MSX で連文節変換をするには |
1989/10 | pp.154-157 | ・プログラミング環境の巻 |
1989/11 | pp.172-175 | ・走査線割り込みって何? ・Q&A: 拡張子について |
1989/12 | pp.172-177 | ・走査線割り込みの実践だ |
1990/01 | pp.146-149 | ・横スクロールと自然画だ ・Q&A: ディスクからの自動起動他 |
1990/02 | pp.146-149 | ・ビデオデジタイザー登場 ・Q&A: MSX-C や MSX-DOS の権利問題は?他 |
1990/03 | pp.142-145 | ・光線銃を解剖してしまえ |
1990/04 | pp.126-129 | ・コンピューター通信大研究 |
1990/05 | pp.128-131 | ・拡張 BIOS に迫るの巻 |
1990/06 | pp.134-137 | ・MSX を通信端末にする |
1990/07 | pp.124-127 | ・FM 音源ってどんなもの |
1990/08 | pp.124-127 | ・FM 音源をコントロール |
1990/09 | pp.120-123 | ・FM 音源のデータ構造だ |
1990/10 | pp.118-121 | ・これが最後の FM 音源だ ・Q&A: MSX-C と LSI C の違いについて他 |
MSX turboR テクニカル・アナリシス
短期連載のハズでしたが...?
掲載号 | ページ | 内容 |
---|---|---|
1991/01 | pp.114-117 | 複雑怪奇なメモリーマッパーと、拡張 BIOS に迫る |
1991/02 | pp.112-115 | メモリーマッパーが管理する、RAM の状態をチェックする |
1991/03 | pp.116-119 | マッパーサポートルーチンの詳細を大公開する |
1991/04 | pp.122-125 | 専用プリンター以外で MSX のリストを印字するツールを作成 |
1991/05 | pp.114-117 | MSX-DOS がたどってきた道を振り返る |
1991/06 | pp.118-121 | 日本語 MSX-DOS2 の内部に深く (?) 潜行する |
1991/07 | pp.116-119 | DOS2 によって拡張された BASIC 命令を覚えちゃえ |
1991/08 | pp.120-123 | バッチ、リダイレクション、そしてパイプ処理を研究する |
1991/09 | pp.102-105 | MSX-C ver1.1 と ver1.2 の違いを中心に C コンバイラーを解説 |
1991/10 | pp.96-99 | 対応機種による C 言語の微妙な違いを、徹底的に分析する |
1991/11 | pp.98-101 | 好評発売中の「テクニカル・ハンドブック」の ゴメンナサイなのです |
1991/12 | pp.96-101 | 今月は 6 ページに拡張して、 A1GT のシステム情報をお届けする |
1992/1 | pp.90-95 | MIDI 機能をマシン語レベルでコントロールする |
1992/2 | pp.98-101 | 高機能ディスクコピー命令 "DCOPY.COM" を紹介 |
1992/3 | pp.96-99 | メモリーマッパー、VRAM に対応した『DCOPY.COM』を紹介 |
1992/4 | pp.66-71 | (特別編) A1GT テクニカル・アナリシス |
1992/5 | pp.96-99 | MSX-DOS2 のファンクションコールを紹介 |
単発記事
連載でない単発記事です。
掲載号 | ページ | 内容 |
---|---|---|
1985/10 | pp.94-95 | これだけは知っておきたい MSX2 のこと |
1985/11 | pp.104-105 | これだけは知っておきたい MSX2 のこと Part2 |
1988/10 | pp.116-121 | 速報!! MSX2+ |
1988/12 | pp.134-155 | 特集 MSX2+ なんでも情報 |
1989/06 | pp.182-183 | MSX-DOS2 TOOLS / MSX-S BUG2 / MSX-C ver1.2 |
1989/07 | pp.182-185 pp.192-193 |
DOS2 ツールズ徹底解析 |
1990/10 | pp.52-57 | 緊急速報 MSX turboR |
1990/11 | pp.44-71 pp.102-117 |
総力速報 MSX turboR |
1990/12 | pp.52-71 pp.104-117 |
オール ザット MSX turboR |
1991/06 | pp.50-65 | DOS のすべてがわかる特集 |
1991/10 | pp.42-55 | DOS2 のすべてがわかる特集 |
永久保存版 3 | pp.118-119 | スタート!MSX-C |
MSX・FAN
月刊 / 隔月刊誌『MSX・FAN』(徳間書店) にも『MSX-C』に関連する連載があります 4。
世界で一番わかりやすい C 言語体験講座 C [siː]
飯田崇之氏による連載です。
掲載号 | ページ | 内容 |
---|---|---|
1994/02 | pp.52-53 | ・第 1 回 |
1994/04 | pp.38-39 | ・第 2 回 ライブラリについて |
1994/06 | pp.56-57 | ・第 3 回 関数の作り方、変数の使い方 |
1994/08 | pp.48-49 | ・第 4 回 自動変数について |
1994/10 | pp.52-54 | ・第 5 回 ポインタについて |
1994/12 | pp.50-52 | ・第 6 回 配列とポインタ |
1995/02 | pp.46-49 | ・第 7 回 ヒープの活用 / 複数のソース |
1995/04 | pp.44-47 | ・第 8 回 マシン語関数の作り方と使い方 |
1995/06 | pp.44-47 | ・第 9 回 標準ライブラリ関数の使い方 |
1995/08 | pp.49-53 | ・最終回 標準ライブラリ関数・完結編 |
書籍
『MSX-C』や『MSX PDT』シリーズに関連する書籍です。
タイトル | 著者 | ISBN-10 (Amazon) |
出版年 |
---|---|---|---|
MSX テクニカルデータブック 1 (ハードウェア・ソフトウェア仕様書) |
ASCII・Microsoft FE | 4871487202 | 1983/10/1 |
MSX テクニカルデータブック 2 (BIOS ソースリスト) |
ASCII・Microsoft FE | 4871487229 | 1983/10/1 |
MSX テクニカルデータブック 1 増補改訂版 (ハードウェア・ソフトウェア仕様書) |
ASCII・Microsoft FE | 4871487776 | 1985/3/1 |
V9938 MSX-VIDEO テクニカルデータブック | ASCII・Microsoft FE・日本楽器製造 | 4871484157 | 1985/9/1 |
MSX2 テクニカル・ハンドブック | ASCII・Microsoft FE | 4871481948 | 1986/3/1 |
アスキー・ラーニングシステム 入門 C 言語 |
三田 典元 | 4871481956 | 1986/4/25 |
アスキー・ラーニングシステム 実習 C 言語 |
三田 典元 | 4871482278 | 1986/11/11 |
アスキー・ラーニングシステム 応用 C 言語 |
三田 典元 | 487148288X | 1988/2/21 |
MSX Magazine Special パワーアップマシン語入門 | 瀬木 信彦(著), MSX マガジン編集部(編) | 4871480429 | 1987/7/1 |
MSX-DOS スーパーハンドブック | BITS | 4871480453 | 1987/11/1 |
MSX-DOS 入門 | 中村 哲 | 4871482952 | 1988/3/1 |
MSX-DOS アセンブラプログラミング | 蔭山 哲也 | 4871483037 | 1988/6/1 |
MSX2+ パワフル活用法 | 杉谷 成一 | 4871483452 | 1989/1/1 |
MSX-C 入門 上巻 | 桜田 幸嗣 | 4756100066 | 1989/7/1 |
MSX-C 入門 下巻 | 桜田 幸嗣, 染谷 哲人 | 4756100570 | 1990/12/1 |
MSX turboR テクニカル・ハンドブック | 石川 直太 | 4756106218 | 1991/7/1 |
MSX MAGAZINE 永久保存版 | アスキー書籍編集部 | 4756142109 | 2002/12/5 |
MSX MAGAZINE 永久保存版 2 | アスキー書籍編集部 | 4756143741 | 2003/12/1 |
MSX MAGAZINE 永久保存版 3 | アスキー書籍編集部 | 475614618X | 2005/4/28 |
- アスキー・ラーニングシステムの C 言語シリーズは『入門』以外、MSX-C には対応していません。『実習』は 8bit 環境だと LSI C-80 のみの対応 (MSX-C とほぼ同等なので役に立つとは思いますが) となっており、『応用』はほぼ MS-DOS / UNIX 環境用となっているため、あまり得られるものはないかもしれません。
- アスキー・ラーニングシステムの C 言語シリーズには ANSI C 準拠の改訂新版がありますが、こちらは基本的に MSX-C を含む 8bit 環境 には対応していません。MSX-C 用の参考資料ならば、改訂前の『入門』と『実習』がいいと思います。
- 『MSX-DOS スーパーハンドブック』にはアセンブラ (
ASM.COM
) ・デバッガ (BUG.COM
) ・高機能モニタ (MON.COM
) ・エディタ (PED.COM
) が掲載されています。 - 『MSX マガジン』1986 年 8 月号 には『MSX2 テクニカルハンドブック』の正誤表が載っています (pp.192-193)。
- 『MSX MAGAZINE 永久保存版』には MSX-DOS や MSX-BASIC に関する記事があります。CD-ROM には『MSX-DOS スーパーハンドブック』の一部抜粋版 PDF が含まれています。
- 『MSX-C 入門 下巻』掲載のソースコードは https://github.com/sndpl/msx-c-intro/ にあるようです。
- 『MSX MAGAZINE 永久保存版 2』には MSX-DOS2 や MSX-BASIC に関する記事があります。
- 『MSX MAGAZINE 永久保存版 3』には BIOS や ワークエリアに関する記事があります。CD-ROM には誌面の都合で載っていない
FM BIOS
/OPLL レジスタ
/VDP の機能
/VRAM マップ
の記事や『MSX-C 入門』上下巻 (下巻は一部抜粋) の PDF が含まれています。 - 『MSX MAGAZINE 永久保存版』には特設サイトが用意されていました。MSX PLAYer 等のパッチがダウンロード可能です。
『MSX-DataPack (Volume 1, 2)』及び『MSX-DataPack turboR 版 (Volume 3)』は書籍ではありません。
国立国会図書館デジタルコレクション
MSX の書籍の一部は国立国会図書館デジタルコレクションで読む事が可能です。
アスキーの書籍だけでも現時点 (2024/04) で 20 冊あり、その中に『MSX テクニカルデータブック 1, 2』や『MSX2 テクニカル・ハンドブック』が含まれています。
その他にも Z80 や VDP (TMS9918A) に関する資料等が閲覧できます。イロイロ検索してみてください。
- タイトルに
MSX
を含む書籍の一覧 (国立国会図書館デジタルコレクション) - キーワードに
MSX
を含む書籍の一覧 (国立国会図書館デジタルコレクション) - タイトルに
Z80
を含む書籍の一覧 (国立国会図書館デジタルコレクション) - タイトルに
TMS9918A
を含む書籍の一覧 (国立国会図書館デジタルコレクション)
書籍の閲覧には国立国会図書館の利用者登録 (本登録) が必要です。
広告
『MSX マガジン』に掲載されていた MSX-C や PDT シリーズの広告です (一部記事)。
MSX-DOS
MSX-C ver1.0
MSX-DOS TOOLS
MSX-S BUG / MSX-C ver1.1
『MSX マガジン』1987 年 9 月号 「SOFT INFORMATION」p.144
MSX-S BUG / MSX-C ver1.1 / MSX-DOS TOOLS
MSX-DOS TOOLS / MSX-S BUG / MSX-C ver1.1 / MSX-C Library
MSX-DOS2
MSX-DOS2 TOOLS / MSX-S BUG2 / MSX-C ver1.2
『MSX マガジン』1989 年 6 月号 pp.182-183
MSX-DOS2 / MSX-DOS2 TOOLS / MSX-S BUG2 / MSX-C ver1.2
MSX-Datapack / MSX-Datapack turboR 版
MSX PDT シリーズ Q&A
MSX PDT (Professional Development Tools) シリーズの広告には Q&A が掲載されていました。
No. | 掲載号 |
---|---|
Q1, Q2 | 『MSX マガジン』1988 年 3 月号 |
Q3, Q4 | 『MSX マガジン』1988 年 4 月号 |
Q5, Q6 | 『MSX マガジン』1988 年 5 月号 |
Q1 TOOLS を買うと何ができるんですか?
A1 「MSX-DOS TOOLS」はアセンブリ言語を使ってプログラム開発をおこなう方のためのツールソフトウェアパッケージです。ですから、ゲームやワープロのようなアプリケーションプログラムのように、フロッピーディスクを差し込むだけでソフトの方で勝手に何かやってくれるというものではありません。
(TOOLS のできること)
-
プログラム開発
アセンブリ言語を使える人はアセンブリ言語を使って、C コンパイラを持っている人は C 言語を使って本格的にプログラム開発を行うことができます。 -
プログラミング学習
工デイタでプログラムを書いて、アセンブラやリンカを使って実行可能プログラムを作成、というような本格的なプログラミングを安価に学習することができます。 -
DOS の学習
MSX-DOS のコマンド名やその機能は 16 ビット用の MS-DOS と共通なものがたくさんあります (DIR
でファイルのサイズや日付を表示したり、バッチファイルを作ったり等々)。そのため MSX-DOS を知ることで、MS-DOS の操作に慣れることができます。
このほかにも様々なことができますが、詳細は MSX マガジン ('87.11~'88.1 月号) の短期重点連載「MSX-DOS ツールズ詳解」をご参照下さい。
Q2 16 ビットマシン用の C と MSX-C はどこが違うのですか?
A2 C 言語の文法等、基本的なことはまったく同じです。ですから、マシンの価格の安い MSX は C 言語の学習のためには最適ですし、実際に C 言語の学習のために MSX-C を購入なさる方も増えています。機能的には次のような点が異なります。
- MSX-C は浮動小数点演算、LONG 型演算、ビットフィールドを持っていません。(浮動小数点演算、LONG 型演算は「MSX-C Library」 で行うことができます)
- 通常の C コンパイラは直接オブジェクトコードを生成しますが、MSX-C はアセンブラで書かれたソースプログラムを生成します。このため、アセンブラ以外でのプログラム開発が困難であったシステムプログラムや ROM プログラム等の C 言語による開発が可能となりました。ただし実行可能なプログラムを作成するには「MSX-DOS TOOLS」に含まれているマクロアセンブラ等のユーティリティソフトウェアが必要となります。
このほか様々な特徴がありますが、詳細は MSX マガジン ('87.11~'87.12 月号、'88.2 月号) の実践研究「ディスクシステム」をご参照下さい。
Q3 ライブラリがあると何かいいことがあるんですか?
A3 MSX-C Ver 1.1 はサブセットの C コンパイラですから、Long 型演算や倍精度実数演算はサポートされていません。また、MSX-C 付属の標準ライブラリにはグラフィック関数や BIOS コールの関数などはありません。つまり、精度の高い数値演算やグラフィックスを多用したソフトウェアをつくるためには、その部分をマシン語でつくる必要があります。
MSX-C Library ではこれらのライブラリを合計 199 種類もサポートしていますから、例えばグラフィックならば線画や塗りつぶしはもちろんのことスプライトを動かしたり、マウスやプリンタを制御するのも C 言語だけでプログラミングできます。
Q4 テバッガって何に使うんですか?
A4 プログラムを開発したことがある方なら誰でも、完成したはずのプログラムがうまく走らないという経験を持っていることでしよう。どんなに優秀なプログラマだって、バグなし一発でプログラムを完成させるのは非常に難しいことです。
そんな時はソースプログラムに戻って最初からプログラムの細部を再検討するという作業が必要です。でもデバッガがあれば、実行可能プログラムを直接メモリに読み込んで、その内容を目に見える形に表示したり、あるいは実際にプログラムの一部を実行させながらバグの原因を効率的に発見していくことができます。
MSX-S BUG は PDT シリーズのデバッガです。詳細は MSX マガジン '88.1 月号の実践研究「ディスクシステム」をご覧下さい。
Q5 ライブラリにはいくつの関数があるんですか?
A5 MSX-C Library は以下の関数 (合計 199 種類) をサポーしています。
- グラフィック関数パッケージ (41 種類)
線画や塗りつふし、スプライト、VDP のアクセスなど MSX パソコンの優れたグラフィック機能を幅広くサポートしています。 - 数値演算関数パッケージ (56 種類)
MSX-C ではサポートされていない LONG 型の四則演算を行なうための関数と、MSX-BASIC と同様の倍精度実数型の演算を行なう関数です。 - その他の関数 (39 種類)
スロット間コールの関数、マウスやプリンタなどを扱う関数。 - カーソル制御 (MSX-CURSES) 関数パッケージ (63 種類)
CURSES (カーサス) とはミニコンピュータ用の OS である UNIX がサポートしているコンソール画面への文字表示やキャラクタウインドウをサポートする関数です。MSX-CURSES はサブセット (一部分) ながら CURSES の仕様を MSX-DOS 上で実現するものです。
Q6 ライブラリって MSX2 専用なんですか?
A6 そんなことはありません。MSX-C Library は RAM を 64K バイト以上搭載した MSX パソコンならば MSX, MSX2 にかかわらず使用することができます。ただし、スクリーンモードや色の数、インターレースなど MSX2 にしかない機能を使う関数の中には、MSX では使用できないものや機能が制限されるものがあります。ライブラリに用意されている 199 種類の関数のうち MSX2 専用の関数が 9 種類、機能が制限される関数が 9 種類あります。
MSX2+ テクニカル探検隊 Q&A
Q1 MSX-C や MSX-DOS の権利問題は?
MSX マガジン 1990 年 2 月号の「MSX2+ テクニカル探検隊 Q&A」p.149 より。
MSX-C には、開発したプログラムを商品や PDS にする権利が付いていないというけど、"ソフトウェアコンテスト" に応募はできるのかな。
また、MSX-DOS や DOS TOOLS についてはどうでしよう?システムソフトの『上海Ⅱ』は MSX-DOS で動いているようですけど、これはなぜですか?
A1 ソフトウェアコンテストへ応募すること自体には問題ないはずだけど、採用されたソフトウェアが商品化または雑誌や書籍で公開されることになると、商品にする場合と同じ制限が課せられる。
解決策としては、まずソースリストを掲載すること。MSX-C でコンパイルしたオブジェクトプログラムには商品化の制限があるけど、ソースリストの公開には問題がないんだ。また、"MSX-ISV キット" を持つ出版社などにコンパイルし直してもらうことでも、商品化の権利が発生するぞ。
PDS に関しては、オブジェクトプログラムを公開する権利が、最近になって認められた。営利目的でないものなら、自由にネットワークにアップすることができる。
また MSX-DOS や DOS2 などを使って開発されたプログラムの販売には、制限がない。ただし、商品にMSX-DOS を組み込むためには、特別の使用料を払って契約する必要がある。『上海Ⅱ』などの場合も、発売元がアスキーから MSX-DOS を組み込む権利を買っているというわけなんだね。
MSX-ISV キットと MSX-DOS の商品への組み込みの契約などに関しては、下記の連絡先までお問い合わせください。
株式会社アスキー MSX 推進部
☏ 03-xxxx-xxxx
Q2 '89 年 10 月号の MSX マガジンで紹介された LSI Cと、一般に販売されている MSX-C との違いについて、くわしく教えてください。機能面での違いは、どういったものなのでしよう。
MSX マガジン 1990 年 10 月号の「MSX2+ テクニカル探検隊 Q&A」pp.120-121 より。
A2 表にまとめてみたのが、LSI C と MSXーC との違いの概略。なかでも LSI C 最大の売りといえるのは long、float、double の演算と、ANSI 規格案に対応しているということだ。
MSX-C | LSI C (CP/M セルフ) |
LSI C (CP/M クロス) |
MS-DOS 用 | |
---|---|---|---|---|
long float double void enum |
なし | あり | あり | あり |
char の符号 | unsigned | unsigned | unsigned | 選択可能 |
char と char の演算 | char | char | 選択可能 | int |
プロトタイプ宣言 | なし | あり | あり | あり |
ビットフィールド | なし | なし | なし | あり |
構造体代入 | なし | あり | あり | あり |
構造体渡し | なし | あり | あり | あり |
MSX 用ライブラリー | あり | なし | なし | なし |
オブジェクトの販売 | 禁止 | 許可 | 許可 | |
価格(税別) | 19,800円 | 98,000円 | 98,000円 | |
メディア (フォーマット形式) |
3.5 inch 1DD MSX-DOS |
5 inch 2D/2DD 8 inch 1S/2D CP/M |
3.5 inch 2HD 5 inch 2HD MS-DOS |
|
コンパイル環境 | MSX | CP/M (MSX) | MS-DOS | MS-DOS |
表の右の MS-DOS 用とは、 MS-C、Turbo C、Lattice C などの、MS-DOS 用の一般的な C コンパイラーを指したもの。価格やメディアなどは製品によって違ってくるので、表には記載していない。また、オブジェクトの販売とは、C コンパイラーで開発したプログラムを、販売する権利の有無を指している。
おわりに
MSX-C ver1.1 / 1.2 の配布権については『MSX Magazine』の広告や記事に後出し的に載っており、毎号買っていたとしてもよくわからなかったんじゃないかと思います。
- MSX-C ver1.0 にはライブラリを含んだ成果物 (バイナリ) の配布権がある
- MSX-C ver1.1 / 1.2 にはライブラリを含んだバイナリの配布権がない
- MSX-C ver1.1 / 1.2 で作られたライブラリを含むソフトウェアを販売/頒布するには MSX-ISV キットでコンパイルする必要がある
- ソースコードでの公開に制限はない (そりゃそうだ)
- PDS (著作権を放棄したソフトウェア) に関しては 1990 年以降、ライブラリを含んだバイナリの頒布に制限はない
『MSX マガジン永久保存版 3』または『MSX0 Stack』を所持していれば配布権に関する制約はないようです。
See also:
- Relearning MSX (lavandeira.net)
- MSX0 Stack で MSX-C ver1.2 のディスクを作る (C コンパイラを動かせるようにする) (Qiita)
- MSX-DOS TOOLS エディタの使い方 (Qiita)
- [MSX > プログラミング] (Vector)