目次 1 MSX turbo R 1.1 MSX turbo Rのハードウェア 1.1.1 MSX turbo Rの特徴はこれだ! 1.1.2 MSX turbo Rのシステム構成 1.1.3 エレガントなCPUの切り替え 1.1.4 何でも詰め込むMSX turbo RのROM構成 1.1.5 速さを調節するシステムタイマー 1.1.6 MSX turbo RのI/Oポート 1.1.7 速さを生かすためのDRAMモード 1.1.8 R800の特徴はこれだ! 1.1.9 R800のすべて 1.2 MSX turbo R活用法 1.2.1 R800の速さを生かすプログラミング 1.2.2 R800を使う上での注意事項と問題点 1.2.3 追加されたBIOSとその機能説明 1.2.4 変更および削除されたBIOSについて 1.2.5 アプリケーション開発に関する注意点 1.2.6 CPUを切り替えるプログラムの例 1.3 PCMギリギリ活用法 1.3.1 基礎編……BASICでの使い方 1.3.2 PCM関係のBASIC命令 1.3.3 BEEP音をPCMで鳴らすのだ! 1.3.4 上級編……マシン語でPCMを! 2 SLOT 2.1 スロットって何だ 2.1.1 CPUとメモリーはどうつががっているの 2.1.2 8ビットCPU Z80の内容を探る 2.1.3 メモリーの種類は働きによってイロイロ 2.1.4 MSXのスロットってどんなものなの? 2.1.5 MSXの拡張性の秘密はスロットにあった 2.1.6 こう変わったMSX2+ のスロット 2.1.7 スロットを拡張しちゃえ 2.2 スロット切り替えに挑戦 2.2.1 スロットを切り替えるには 2.2.2 スロットの番号の指定方法 2.2.3 スロットを操作するBIOSの機能 2.2.4 スロット構成を知る方法 2.2.5 システムワークエリアを探ってみる 2.2.6 MSX2+のハードウェア仕様 2.2.7 衝突を防ぐデバイスイネーブル 2.3 MSX turbo Rのスロット構成 2.3.1 ついにスロット構成が統一されたぞ 3 漢字BASIC 3.1 漢字BASICを解析 3.1.1 漢字BASICに必要なハードウェア 3.1.2 MSX-JE対応のソフトウェアとは 3.1.3 漢字ドライバーの動作原理を解説する 3.1.4 JE対応ハード&ウェア 3.1.5 漢字BASICで使える画面モードいろいろ 3.1.6 漢字テキストと漢字グラフィック 3.1.7 漢字ドライバーの正しい使い方なのだ 4 V9958 VDP 4.1 V9958レジスター一覧 4.2 V9958の新機能 4.2.1 水平スクロール 4.2.2 ウェイト 4.2.3 コマンド 4.2.4 YJK方式の表示 4.3 V9958の廃止機能 4.4 V9958ハードウェア仕様(変更部分) 4.5 V9958とMSX2+ 4.5.1 スクリーンモードは全部で12種類 4.5.2 VDPのレジスターをコントロールする 4.5.3 V9958のレジスター 4.5.4 VDPによる横スクロール 4.5.5 何があっても裏技は使っていけないぞ 4.6 YJK方式を解剖する 4.6.1 テレビ放送とYJK方式 4.6.2 RGB方式とYJK 方式のデータ構造 4.6.3 色見本のプログラム 4.6.4 必殺のロジカルオペレーション 4.6.5 いわゆる色化け 4.6.6 SCREEN 10と11は何がどう違うのか 4.6.7 SCREEN 11でもテロップを使うには 4.6.8 SCREEN 12で文字表示をするための裏技だ 4.6.9 YJK方式とVDPのレジスター 4.7 走査線割り込みを研究する 4.7.1 モニター画面を表示する仕組みは? 4.7.2 インターレス方式によるテレビ放送 4.7.3 MSX2におけるインターレース画面 4.7.4 走査線割り込みの原理を探る 4.7.5 走査線割り込みの実例を紹介する 4.7.6 いよいよ実践編はりきっていこう! 4.7.7 走査線割り込みにつかうVDPレジスター 4.7.8 アセンブルの方式とBASIC部分の原理 4.7.9 アセンブラー部分の動作原理だ 4.7.10 走査線割り込みもマシン語ルーチンだ 5 MSX-MUSIC 5.1 FM音源ってどんなもの 5.1.1 FM音源へと至る電子楽器の歴史 5.1.2 楽器の音を分析してみよう 5.1.3 音程が平均律とは限らない 5.1.4 MSX-MUSICを分析してみる 5.1.5 FM音源を使ってリズム音に挑戦 5.2 FM音源をコントロール 5.2.1 マシン語プログラムで音を出してみる 5.2.2 ライブラリーの概要を説明する 5.2.3 MSX-Cでコンパイルしよう 5.3 FM音源のデータ構造だ 5.3.1 FM音源のデータを作ってみよう 5.3.2 打楽器音のデータを指定するには 5.3.3 楽器音のデータを指定してみよう 5.3.4 OPLLドライバーでできないこと 5.3.5 音色データを追加してみよう 5.3.6 サンプルデータを解説する 5.4 FM音源にまつわるアレコレ 5.4.1 パワフル活用法の内容訂正 5.4.2 MSX-MUSICの音色データ一覧 A R800インストラクション表 A.1 インストラクション表はこうして使おう A.2 8ビット移動命令 A.3 16ビット移動命令 A.4 交換命令 A.5 スタック操作命令 A.6 ブロック転送命令 A.7 ブロックサーチ命令 A.8 乗算命令 A.9 加算命令 A.10 減算命令 A.11 比較命令 A.12 論理演算命令 A.13 ビット操作命令 A.14 ローテイト命令 A.15 シフト命令 A.16 分岐命令 A.17 コール命令 A.18 入出力命令 A.19 CPU制御命令 図目次 1.1 MSX turbo Rのシステム構成 1.2 MSX turbo RでのROM構成の変化 1.3 R800内部のブロック図 1.4 Z80とR800のメモリーアクセス方法の違い 2.1 Z80 CPUのメモリー 2.2 MSXのスロット構成(その1) 2.3 MSXのスロット構成(その2) 2.4 MSX2+のスロット構成の例(スロット3のみを拡張する場合) 2.5 MSX2+のスロット構成の例(スロット0と3を拡張する場合) 2.6 スロット番号の指定方法 2.7 デバイスイネーブル 2.8 MSX turbo Rのスロット構成 3.1 漢字ドライバーの動作原理 3.2 画面モードの切り替え 4.1 水平スクロール(SP2=0の場合) 4.2 水平スクロール(SP2=1の場合) 4.3 V9958に追加されたコントロールレジスターの機能一覧 4.4 2種類の横スクロールの仕組み 4.5 RGB方式画面のデータ構造 4.6 YJK方式画面のデータ構造 4.7 混在方式画面のデータ構造 4.8 テレビ画面上の走査線のようす 4.9 インターレースモードではこうなるぞ 4.10 走査線割り込みの原理なのだ 4.11 走査線割り込みの手順 4.12 走査線割り込みを発生するVDPレジスター 4.13 走査線割り込みを検出するVDPレジスター 4.14 画面切り替えを制御する VDP レジスター 4.15 ハードウェア縦スクロールの仕組み 5.1 4種類の電子楽器の構造を探る 5.2 基本となる音を分析してみる 5.3 楽器とシンセのエンベロープ 5.4 打楽器音のデータ 5.5 音色データ 5.6 OPLLのレジスター一覧 表目次 1.1 MSX turbo RのI/Oマップ 1.2 Z80とR800の動作速度を比較 1.3 MSX turbo Rで変更のあったBIOSとBASICの一覧 1.4 PCM用のI/Oポート 2.1 スロットに関するシステムワークエリア 2.2 MSX2+のI/Oポート 3.1 MSX-JE内蔵ハードウェア一覧 3.2 漢字BASICの画面モード 3.3 漢字ドライバーが使用するフック 4.1 VDPのモードとBASICの画面モード 4.2 モードレジスター 4.3 コマンドレジスター 4.4 ステータスレジスター 4.5 V9958の端子の変更 4.6 V9958の直流特性 4.7 MSX2+の画面モード 4.8 VDPのI/Oポート 4.9 コントロールレジスターの保存場所 4.10 そのほかの便利なシステムワークエリア 4.11 MSX2+に追加、変更されたシステムワークエリア 4.12 0FAFCH番地(MODE)の詳細 4.13 ロジカルオペレーション 5.1 電子楽器の特性を比較する 5.2 音階と周波数の関係 5.3 MSX-Musicで設定できる音律一覧 5.4 6楽器音+1打楽器音のデータ構成 5.5 6楽器音+1打楽器音のデータ構成の例 5.6 9楽器のデータ構成 5.7 楽器音のデータ 5.8 楽器音のデータの例 5.9 音色データ一覧