内藤九段将棋秘伝 (FC) memory map ================================ $15 U8 手数(一、十の位) $16 U8 手数(百の位) $56 ptr 定跡データへのポインタ $73 U8 時間制限設定 # 0:なし, 1:あり(ロスタイム未使用), 2:あり(ロスタイム使用済) $74 U8 持時間用カウンタ $75 U8 持時間(分) $76 U8 持時間(秒) $77 U8 手番? # 0:COM, 1:PLAYER $78 U8 $7C U8 $80 U8 デモプレイ中フラグ $81 U8 $ED がループするたびにインクリメント $82 ptr $86 U8 フレームカウンタ1 $D2 U8 $D6 コピー? $D3 U8 $D7 コピー? $D6 U8 カーソルx座標 $D7 U8 カーソルy座標 # 盤面の9一が (1,1), 1九が (9,9) # PLAYERの持駒については # 飛 (10,3) # 角 (10,4) # 金 (10,5) # 銀 (10,6) # 桂 (10,7) # 香 (10,8) # 歩 (10,9) # COMの持駒については # $DA U8 入力バッファ1 # ABSTUDLR # 押し始めの1Fのみ値が書き込まれる。前フレームで何かキーを押していると2F以降は0 $DB U8 入力バッファ2 # 押し始めかどうか関係なく一定の値が書き込まれる $DF U8 駒をつかんでいるかどうか $E2 ptr $ED U8 フレームカウンタ2 $F0 U8 $2000 退避用 $F1 U8 $2001 退避用 $F2 U8 $2005 x退避用 $F3 U8 $2005 y退避用 $FD U8 $FE U8 手合割 # 1:平手、PLAYER先手 # 2:PLAYER飛落 # 3:PLAYER二枚落 # 4:平手、COM先手 # 5:COM飛落 # 6:COM二枚落 $FF U8 NMIの処理分岐用 # [0,4] $0100-$017F U8[0x80] スタック領域 # 複数ある場合、駒種IDの大きいものが入る # 存在しない場合は 0x63 が入る $0180-$01F8 U8[121] マス目に利いているPLAYERの駒 $01F9-$0271 U8[121] マス目に利いているCOMの駒 $0272 U8 $028E U8 # 9x9マスに外周1マスを追加し、11x11としている # インデックスは9一が 0x0C, 8一が 0x0D, ..., 1九が 0x6C # 持駒については飛が 0xD5, 角が 0xD6, ..., 歩が 0xDB # 値の意味: # 0x63 盤面外 # 0x00 空白 # 0x01 PLAYER玉 # 0x02 PLAYER飛 # 0x03 PLAYER角 # 0x04 PLAYER金 # 0x05 PLAYER銀 # 0x06 PLAYER桂 # 0x07 PLAYER香 # 0x08 PLAYER歩 # 0x09 PLAYER成飛 # 0x0A PLAYER成角 # 0x0B (無効値) # 0x0C PLAYER成銀 # 0x0D PLAYER成桂 # 0x0E PLAYER成香 # 0x0F PLAYER成歩 # 0x10 COM玉 # 0x11 COM飛 # 0x12 COM角 # 0x13 COM金 # 0x14 COM銀 # 0x15 COM桂 # 0x16 COM香 # 0x17 COM歩 # 0x18 COM成飛 # 0x19 COM成角 # 0x1A (無効値) # 0x1B COM成銀 # 0x1C COM成桂 # 0x1D COM成香 # 0x1E COM成歩 $02A9-$0321 U8[121] PLAYER駒配置コピー? $0322-$039A U8[121] COM駒配置コピー? $039B-$03A1 U8[7] PLAYER持駒コピー? # 飛角金銀桂香歩 $03A2-$03A8 U8[7] COM持駒コピー? $03A9-$0421 U8[121] PLAYER駒配置 $0422-$049A U8[121] PLAYER利きデータ # マス目に利いている駒数(「かげ」の利きも考慮) $049B-$0513 U8[121] COM駒配置 $0514-$058C U8[121] COM利きデータ $058D-$0593 U8[7] PLAYER持駒 $0594-$059A U8[7] COM持駒 $059B U8 PLAYER指し手移動先x座標 $059C U8 PLAYER指し手移動元x座標 $059D U8 PLAYER指し手ベクトルx $059E U8 PLAYER指し手移動先y座標 $059F U8 PLAYER指し手移動元y座標 $05A0 U8 PLAYER指し手ベクトルy $05A1 U8 PLAYER指し手移動先マス目 $05A2 U8 PLAYER指し手移動元マス目 $05A3 U8 雑用 $05A4-$05B3 U8[16] 動きデータ用バッファ $05B4 U8 指し手が合法かどうか # 0:合法, 1:違法 $05B5 U8 COM指し手移動先x座標 $05B6 U8 COM指し手移動元x座標 $05B7 U8 COM指し手ベクトルx $05B8 U8 COM指し手移動先y座標 $05B9 U8 COM指し手移動元y座標 $05BA U8 COM指し手ベクトルy $05BB U8 COM指し手移動先マス目 $05BC U8 COM指し手移動元マス目 $05BD U8 $05BE U8 $05C8 U8 $0667-$0670 U8[10] 手数表示用バッファ $0671-$067A U8[10] 手数表示用バッファ $067C-$0682 U8[7] 持時間表示用バッファ $0683-$0689 U8[7] 持時間表示用バッファ $0700- U8[] スプライトバッファ