6502とApple IIシステムROMの秘密 6502機械語プログラミングの愉しみ


6502とApple II システムROMの秘密


ラトルズ


著者:柴田文彦


はじめに

第1章 6502とApple II
1-1 6502とApple IIの親密な関係
 どうしてもマイナーなマイクロプロセッサー
 狙ったのはマイクロプロセッサーの価格破壊!?
 ミニマリストのプロセッサー
 6502に依存しているApple IIの設計
 6502を採用した初期の製品
 6502を採用した製品の発展
1-2 現在の6502に関する活動
 6502をリバースエンジニアリング
 6502を巨大なハードウェアで再現
1-3 エミュレーターで蘇る6502とApple II
 いろいろなApple IIエミュレーター
 Apple II jsの使い方

第2章 6502誕生の背景
2-1 インテルが作ったマイクロプロセッサーの基礎
 汎用8ビットマイクロプロセッサー登場前夜
 8ビットマイクロプロセッサーの時代へ
2-2 最初から汎用8ビットプロセッサーに的を絞ったモトローラ
 インテルの80系に対抗しうるモトローラの68系
2-3 モトローラからMOS Technologyへ
 6800をとことん簡略化して低コストを目指す
 6501と6502の誕生
 モトローラによる訴訟と和解

第3章 6800との比較で明確になる6502の開発意図
3-1 6800と共通性の高いピンアサイン
 ハードウェア的には互換性があった6800と6501
 6800とかなりの共通性を残した6502のピンアサイン
 似て非なる6800と6502のクロック信号
3-2 開発意図を反映した6502のレジスター構成
 大きなくくりでは6800と一致する6502のレジスター構成
 極限まで簡略化した6502のレジスター
3-3 このクラスには不似合いなほど強力なアドレッシングモード
 CPUの「アドレッシングモード」とは?
 アキュムレーターモード
 イミーディエイト
 アブソリュート
 ゼロページ
 インデックスト・アブソリュート
 インデックスト・ゼロページ
 インダイレクト
 インデックスト・インダイレクト
 インダイレクト・インデックスト
 リラティブ
 インプライド

第4章 6502のインストラクションセット
4-1 8×8のマトリクスで見るインストラクション一覧
 1バイトに軽く収まる全命令語
 命令コードの中で命令の種類を表すビットパターン
 命令コードの中でアドレッシングモードを表すビットパターン
4-2 アルファベット順インストラクション解説
 6502インストラクションセット一覧の見方
 ニーモニック解説

第5章 Apple IIのハードウェア概要
 5-1 Apple IIの機能ブロック
 ゲーム専用機のない時代にゲームマシンとしての性格も獲得
 CPUとビデオが対等に動作するアーキテクチャ
 3つの画面モードを切り替える、もう1つのマルチプレクサ
5-2 Apple IIのメモリマップ
 全メモリ空間=64KBの割り振り方
 3種類のRAM容量の構成
 RAMのさまざまな用途
5-3 Apple IIのグラフィック機能
 3種類×2+αのビデオモード
 画面モードの切り替え
 カラーキラーとボードのレビジョン
 テキストモード
 画面表示用文字コード
 低解像度グラフィック
 高解像度グラフィック画面の変態的なアドレス構成
 モノクロのメモリ容量で6色を出す秘密
 高解像度グラフィックの注意点
5-4 Apple IIの内臓I/O機能
 キーボード入力
 カセット入出力/スピーカー出力
 パドル入力
 アナンシエータ出力
5-5 Apple IIの拡張スロットの仕組み
 独自の拡張バスを装備
 スロットごとに割り振られたI/Oアドレス
 スロットごとのプログラムROMのアドレスと共通ROM空間

第6章 Apple IIファームウェア詳解
6-1 システムモニターだけではないROM領域マップ
 Apple IIとApple II plus
 オプションのProgrammer’s Aid #1
6-2 BASICだけではない6KBASICのROMの中身
 6K BASICのROMに潜む3つの驚き
 ミニアセンブラー
 浮動小数点演算ルーチン
 仮想16ビットCPUインタープリターSweet 16
6-3 超高密度モニターROMの中身
 モニターROMの利用マップ
 モニターROMによるゼロページ利用マップ
 モニターROMのエントリーポイント

第7章 Apple II モニターコマンド
7-1 システムモニターコマンドの使い方
 モニターへの入り方
 モニターコマンドを使う
7-2 ちょっと特殊なモニター操作
 複数コマンドの連続実行
 簡易計算機能
 入出力のリダイレクト設定
 コントロールキーによる操作
7-3 6K BASIC ROMに滑り込ませたミニアセンブラー
 ミニアセンブラーの起動
 ミニアセンブラーの入力フォーマット
 モニターコマンドの実行

索引

コラム
 エンディアン
 2つの「モステック」?
 セカンドソース
 キャリーフラグを含まない加減算命令を持たない6502
 6809が拡張した「ダイレクト(ゼロページ)モード」
 NOP命令が必要なわけ
 デシマルモードでの足し算、引き算
 Z80を採用したPC-8001の実行クロック周波数
 「64KBクリーン」を実現する「ランゲージカード」
 シフトキーの機能を「拡張」する「Shift-Key Mod」
 Apple IIを他のCPUにすげ替えることさえ可能なフレキシブルな設計
 ファームウェアとして世界初のビジュアル・エフェクトを実装した画面クリアルーチン

書籍目次

Posted by shi-n