Apple II で遊ぶ
■ まずはこれさえ覚えておけばOK!
A9 XX
... 指定した値をAレジスタに読み込む
20 XX XX
... 指定したサブルーチン(関数)にジャンプ
60
... 呼び出し元に帰る (return)
例
A9 31
... "1" の文字コード
20 ED FD
... $FDED
にある [1文字出力(COUT)] のシステムコールを呼び出し
60
... プロンプトに戻る
機械語を打ち込むのは空きメモリ領域である$0C00 - $1FFF
あたりがよいです。($0800 - $0BFF
などに書くと、表示更新のタイミングで消えたりします。)
C00:A9 31 20 ...
と打ち込んでいけばよいです。
※注意
電源ON直後からマシン語モニター状態にするには、AppleWin の設定で、[Configuration] > [Model] > "Apple ][ (Original)" にしておく必要があります。
例2 (発展系)
AD 56 C0
... $C056
を読むとグラフィクスモードになる
AD 50 C0
... ここを読むとグラフィクスが表示される
A2 00
... Xレジスタ初期化(後でループ変数に使用)
A9 27
... 0x27 をAレジスタに読んで...
85 2C
... $002C
に書き込む。(色指定)
20 5F F8
... 色変更
8A
... X->Aレジスタへ値をコピー
A0 00
... Yレジスタに0を設定
20 19 F8
... ここで線をひく
E8
... Xレジスタを ++ (ループ変数)
E0 2F
... 0x2Fより小さい間は...
90 F2
... -0xEバイト分前の命令(色変更)へ飛ぶ
20 1B FD
... $FD1B
はキー入力待機
AD 51 C0
... $C051
を読んでテキストモードに戻す
60
... プロンプトに戻る
参考 : "6502とAppleⅡシステムROMの秘密" / 柴田文彦