某ハドソン系ゲームの解析2

1つ前のエントリからの続きです。
1つ前のルーチンは、サブルーチンでした。


SUB CPUに、コマンド6を送らないと発動しないらしい。
大まかな流れは下記の通りです。

  1. SUB CPUからのデータがなくなるまで、データを読み捨てる
  2. SUB CPUにコマンド6を送る(ゲーム割り込み申請)
  3. 1つ前のエントリのルーチンを呼び出して、SUB CPUからデータ受信
  4. CODE 16H (ゲーム割り込み)がくるまで、何度もデータ受信


ゲーム割り込みって、なんだっけ。。(^^;;
↓←→↑SPACE STOP などだったかな。。


ちなみに、iP6+ で、SUB CPUに、コマンド6を送ると、現状では、STICK関係の割り込みがかかるようになっているらしい。。
でも、割り込み禁止中だから、これは発動しないよね。。(汗)

if (Value==0x06) /* strig,stick */
   { StrigIntFlag = INTFLAG_REQ; return; }	// STRIG Interrupt REQUEST
; ----------------------------------------------------------
;    キーチェック、joystick チェック
; ----------------------------------------------------------        
Z0011:  CALL    Z0737           ;3582   CD F1 35        ヘ.5 joystick チェック
        OR      A               ;3585   B7              キ
        RET     NZ              ;3586   C0              タ
        
        ;--------- Sub CPU からのデータがなくなるまで データ受信して、読み捨てる ーーーー
Z0740:  IN      A,(092H)        ;3587   DB 92           ロ. 8255 にデータ来なくなるまでループ
        AND     020H            ;3589   E6 20           . 
        JR      Z,Z0738         ;358B   28 05           (.
        CALL    Z0739           ;358D   CD B3 35        ヘウ5 SUB CPU からデータ受信
        JR      Z0740           ;3590   18 F5           ..


Z0738:  LD      A,06H           ;3592   3E 06           >.
        CALL    Z0741           ;3594   CD 2E 36        ヘ.6 SUB CPU にコマンド6送る
Z0742:  CALL    Z0739           ;3597   CD B3 35        ヘウ5 SUB CPU からデータ受信
        LD      A,B             ;359A   78              x
        CP      016H            ;359B   FE 16           .. code=16H (ゲームキー割り込み)くるまでループ
        JR      NZ,Z0742        ;359D   20 F8            .
        
        LD      A,C             ;359F   79              y
        AND     0BCH            ;35A0   E6 BC           .シ
        JP      NZ,Z0743        ;35A2   C2 D8 35        ツリ5
        
        LD      A,(Z0744)       ;35A5   3A 12 37        :.7 キーコードを取得
        LD      B,A             ;35A8   47              G
        XOR     A               ;35A9   AF              ッワークエリアを、0クリア
        LD      (Z0744),A       ;35AA   32 12 37        2.7
        LD      A,B             ;35AD   78              x  キーコードをAに入れて返却
        RET                     ;35AE   C9              ノ
        
        CALL    Z0739           ;35AF   CD B3 35        ヘウ5  SUB CPU からデータ受信
        RET                     ;35B2   C9              ノ