以前の68000のソース1

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;X                                                                      X
;X              GAME.ASM                                                X
;X                                                                      X
;X              ゲームタスク                                            X
;X                                                                      X
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

*---------------[ INCLUDE ]-----------------------------------------------------*

                INCLUDE         command.i
                INCLUDE         sys.i
                INCLUDE         scn_lib.i
                INCLUDE         obj_lib.i
                INCLUDE         income2.i
                INCLUDE         player.i
                INCLUDE         backup.i
                INCLUDE         color_li.i

*---------------[ XDEF    ]-----------------------------------------------------*

                XDEF            _game_task

                XDEF            _player_flag
                XDEF            _roundclrflag
                XDEF            _round
                XDEF            _scene
                XDEF            _win1p,_win2p
        ;;;;    XDEF            _round_sel
                XDEF            _level_disp             ;★

                XDEF            chckn_LSP               ;★
                XDEF            dia_1p_LSP,dia_2p_LSP   ;★

*---------------[ XREF    ]-----------------------------------------------------*

                XREF            _field_task
                XREF            _player_task
                XREF            _player_init_start
                XREF            _player_init_round
                XREF            _player_init_continue
                XREF            _name_regist
                XREF            _make_rnd
                XREF            _make_rnd1,_make_rnd2
                XREF            _win_disp_init
                XREF            _win_disp_co_task
                XREF            _player_print
                XREF            _ending_disp
                XREF            _lsp_rsv_calc                   ;★
                XREF            _draw_disp_init                 ;★
                XREF            _draw_disp_co_task              ;★
                XREF            _inst_disp                      ;★

                XREF            _card_load                      ;★
                XREF            _card_save                      ;★
                XREF            _card_test              ;★DEBUG
                XREF            _object_looking         ;★DEBUG

                XREF            MVS_FLAG,COUNTRY_CODE           ;★
                XREF            PLAYER_MODE                     ;★
                XREF            _debug_flag_2

                XREF            _game_round                     ;★
                XREF            _card_access_ok                 ;★

                XREF            _game_condition
        ;;;     XREF            _credit
                XREF            _credit_look_1p,_credit_look_2p ;★
                XREF            _credit_bak
                XREF            _much
                XREF            _vs_credit
                XREF            _intrude_flag
                XREF            _display_level                  ;★
                XREF            _difficulity                    ;★
                XREF            _floor_flag                     ;★
                XREF            _player_continue                ;★
                XREF            _how_to_play                    ;★
                XREF            _select_sw,_select_sw_jst
                XREF            _ply1_sw_jst,_ply2_sw_jst
                XREF            _ply1_sw,_ply2_sw
                XREF            _rnd,_rnd1,_rnd2
                XREF            _player_work1,_player_work2
        ;;      XREF            _backup_data
        ;;      XREF            _single_type
                XREF            _credit_up_flag
                XREF            _credit_up_1p,_credit_up_2p
        ;;      XREF            _play_bgm
                XREF            _mon,_day,_year
        ;;;     XREF            _credit_table_A
        ;;;     XREF            _coin_A_counter
                XREF            _demo_flag                      ;★
                XREF            _user_start                     ;
                XREF            _start_mode                     ;
                XREF            _continue_mode                  ;
        IFNZ    HOMEUSE
                XREF    _home_credit_1,_home_credit_2           ;
                XREF    _vs_cont_flag
        ENDC

                XREF            JAPAN,USA,OTHER,ASIA
                XREF            _credit_mode
                xref            _game_type

                XREF            sBGM1,sBGM2,sBGM1N,sBGM2N
                XREF            sBGMSTOP
                XREF            sALLSTOP
                XREF            sCLEAR1
                XREF            sCLEAR2
                XREF            sCLEAR2E
                XREF            sGAMEOVER,sGAMEOV_E
                XREF            sSESTOP,sREADY,sGO
                XREF            sOUT,sCONTI,sCONT_E
                XREF            sKOKE,sKOKE_E
                XREF            sSP1,sSP1_E1,sSP1_E2,sCD,sCD_E
                XREF            sPO2,sPO1,sFP1
                XREF            sSELE_JP,sSELE_US
                XREF            sPAUSE
                XREF            _bl_clear
                XREF            _bl_round
                XREF            _bl_player
                XREF            _bl_won,_bl_one,_bl_two
                XREF            _bl_lost
                XREF            _bl_draw
                XREF            _bl_sco_a,_bl_sco_b,_bl_sco_c,_bl_sco_d
                XREF            _bl_sco_e,_bl_sco_f,_bl_sco_g,_bl_sco_h
                XREF            _bl_sco_i,_bl_sco_j,_bl_sco_k,_bl_sco_l
                XREF            _bl_sco_m,_bl_sco_n,_bl_sco_o,_bl_sco_p
                XREF            _bl_sco_q,_bl_sco_r,_bl_sco_s,_bl_sco_t
                XREF            _bl_sco_u,_bl_sco_v,_bl_sco_w,_bl_sco_x
                XREF            _bl_sco_y,_bl_sco_z
                XREF            _bl_sco_0,_bl_sco_1,_bl_sco_2,_bl_sco_3,_bl_sco_4
                XREF            _bl_sco_5,_bl_sco_6,_bl_sco_7,_bl_sco_8,_bl_sco_9
                XREF            _bl_sce_a,_bl_sce_b,_bl_sce_c,_bl_sce_d
                XREF            _bl_sce_e,_bl_sce_f,_bl_sce_g,_bl_sce_h
                XREF            _bl_sce_i,_bl_sce_j,_bl_sce_k,_bl_sce_l
                XREF            _bl_sce_m,_bl_sce_n,_bl_sce_o,_bl_sce_p
                XREF            _bl_sce_q,_bl_sce_r,_bl_sce_s,_bl_sce_t
                XREF            _bl_sce_u,_bl_sce_v,_bl_sce_w,_bl_sce_x
                XREF            _bl_sce_y,_bl_sce_z
                XREF            _bl_sce_0,_bl_sce_1,_bl_sce_2,_bl_sce_3,_bl_sce_4
                XREF            _bl_sce_5,_bl_sce_6,_bl_sce_7,_bl_sce_8,_bl_sce_9

                XREF            _bl_food1,_bl_food2,_bl_food3,_bl_food4

                XREF            _bl_end_us
                XREF            _bl_vs_score
                XREF            _bl_chackn
                XREF            _bl_chacknf,_bl_chackn1,_bl_chackn2,_bl_chackn3,_bl_chackn4
                XREF            _bl_chackn5,_bl_chackn6,_bl_chackn7,_bl_chackn8,_bl_chackn9
                XREF            _bl_chackna,_bl_chacknb,_bl_chacknc,_bl_chacknd,_bl_chackne
                XREF            _bl_panels,_bl_panels1,_bl_panels2,_bl_panels3
                XREF            _bl_mekuri1,_bl_mekuri2,_bl_mekuri3
                XREF            _bl_selewaku,_bl_selescr,_bl_mode,_bl_emode
                XREF            _bl_e2play,_bl_e1play,_bl_2play,_bl_1play
                XREF            _bl_buba01,_bl_bubg01,_bl_bubg02
                XREF            _bl_bubh01,_bl_bubh02
                XREF            _bl_bubh01,_bl_bubh02
                XREF            _bl_card1,_bl_card2,_bl_card3,_bl_card4
                XREF            _bl_card5,_bl_card6,_bl_card7,_bl_card8
                XREF            _bl_card9,_bl_carda,_bl_cardb,_bl_cardc
                XREF            _bl_cardd,_bl_carde,_bl_cardf,_bl_cardg
                XREF            _bl_card1e,_bl_card2e,_bl_card3e,_bl_card4e
                XREF            _bl_card5e,_bl_card6e,_bl_card7e,_bl_card8e
                XREF            _bl_card9e,_bl_cardae,_bl_cardbe,_bl_cardce
                XREF            _bl_cardde,_bl_cardee,_bl_cardfe,_bl_cardge
                XREF            _mon_tbl
                XREF            _DcSCE_A

*---------------[ MACRO   ]-----------------------------------------------------*

OBJ_MACRO       MACRO           x_pos,y_pos,bl_addr,mode
                MOVE.W          x_pos,D0
                MOVE.W          y_pos,D1
                MOVE.W          mode,D2
                MOVE.L          bl_addr,A0
                B_OBJ
                ENDM

*---------------[ EQUs    ]-----------------------------------------------------*

ROUND_SEL       EQU             TRUE
                                ;TRUE   :デバッグラウンドセレクト(DEBUG_DIP0=NE)
                                ;FALSE  :なし
VS_SCORE_BACKUP EQU             FALSE
                                ;TRUE   :コンティニュー時対戦スコアが残る
                                ;FALSE  :残らない

MODE_NOP        EQU             00              ;PLAYER_MODE
MODE_GAME       EQU             01              ;
MODE_CONT       EQU             02              ;
MODE_OVER       EQU             03              ;

BUB_1P          EQU             39
BUB_2P          EQU             36

OBJ_MOJI_COL    EQU             22
OBJ_MOJI_COL2   EQU             24
OBJ_PLATE_COL   EQU             28
OBJ_PLATE_COL2  EQU             30
SEL_SCN_COL     EQU              4
SEL_SCN_COL2    EQU             01
;;SEL_OBJ_COL   EQU             32
SEL_OBJ_COL     EQU             57      ;★
SEL_WAK_COL     EQU             34      ;★

NEXT_COL        EQU             20
BUB_COL         EQU             36
BOB_COL         EQU             39      ;★
WON_COL         EQU             40
P1_COL          EQU             16
P2_COL          EQU             18
GRAY_COL        EQU             55
CHACKN_COL      EQU             56
DIA_COL         EQU             58
END_USA         EQU             30

FIX_WON_COL     EQU             8               ;★
FIX_MOJI_COL    EQU             9               ;★
FIX_PANEL_COL   EQU             11              ;★
FIX_RES_COL     EQU             12              ;★

MAX_ROUND       EQU             30
TIMER_BONUS_MAX EQU             50000
SEC_SCORE       EQU             840
                                                ;mini continue use area
MINI_HPOS_1P    EQU             02              ;column 02~12
MINI_HPOS_2P    EQU             27              ;column 27~37
MINI_VPOS       EQU             01              ;line   01

*---------------[ WORK    ]-----------------------------------------------------*

WORK_RAM:       SECTION         REF_ONLY

_player_flag    DS.W            1
_roundclrflag   DS.W            1
;;;;_round_sel  DS.W            1
_round          DS.W            1
_scene          DS.W            1
_win1p          DS.W            1
_win2p          DS.W            1
win1p           DS.W            1
win2p           DS.W            1
round_bak       DS.W            1
score_bak       DS.L            1
player_bak      DS.W            1
cont_timer      DS.W            1
round_timer     DS.L            1
timer_bonus     DS.L            1
dia_1_timer     DS.W            1
dia_1_no        DS.W            1
dia_2_timer     DS.W            1
dia_2_no        DS.W            1
vs_winner       DS.W            1

vs_round_bak    DS.W            1                       ;★
        IFNZ    VS_SCORE_BACKUP
vs_1p_score_bak DS.L            1                       ;★
vs_2p_score_bak DS.L            1                       ;★
        ENDC
mini_cont_time  DS.W            1                       ;★
mini_cont_sign  DS.W            1                       ;★

anm_timer       DS.W            1
col_mode        DS.W            1

chckn_timer     DS.W            1
chckn_no        DS.W            1
chckn_tbl       DS.L            1

chckn_LSP       DS.W            1                       ;★
dia_1p_LSP      DS.W            1                       ;★
dia_2p_LSP      DS.W            1                       ;★

challenge_flag  DS.W            1

country_type    DS.W            1

set_no          DS.W            1
set_player      DS.B            6

o_XPOS          EQU             0000
o_YPOS          EQU             o_XPOS+WORD
o_BLADDR        EQU             o_YPOS+WORD
SIZEOFresult    EQU             o_BLADDR+LONG

result_work     DS.B            SIZEOFresult*2*5

PROG:           SECTION

*---------------[ PROG    ]-----------------------------------------------------*
;;;more_coin_disp
;;;             RETSYS
;;;             TST.W           _credit-QA5(A5)
;;;             BNE.S           more_coin_end
;;;
;;;             MOVE.W          _credit_table_A-QA5(A5),D7
;;;             SUB.W           _coin_A_counter-QA5(A5),D7
;;;
;;;             CMP.W           #01,D7
;;;             BNE.S           more_coins
;;;             PRINT           08,14,#STR_ADD1,#YELLOW
;;;             BRA.S           more_coin_100
;;;more_coins
;;;             PRINT           08,14,#STR_ADD2,#YELLOW
;;;more_coin_100
;;;             EXT.L           D7
;;;             PRINT_DEC       12,14,D7,#01,#YELLOW
;;;             BRA             more_coin_disp
;;;more_coin_end
;;;             RTS
;;;
;;;STR_ADD1     ASCII           'ADD   COIN TO START  '
;;;STR_ADD2     ASCII           'ADD   COINS TO START '

*-------------------------------------------------------------------------------*
_game_task
;;;             CMP.W           #USA,_credit_mode
;;;             BNE.S           game_task_init
;;;
;;;             TST.W           _credit-QA5(A5)
;;;             BNE.S           game_task_init
;;;
;;;             BSR             more_coin_disp
;;;game_task_init
;;;     ;;      BTST.B          #02,_backup_data+dip_swB
;;;     ;;      TST.B           _single_type-QA5(A5)    ;★NOT SINGLE
;;;     ;;      BEQ.S           style100                ;★
;;;     ;;      PRINT           06,14,#STR_GAME2,#YELLOW;★
;;;     ;;      BRA.S           game_init_loop          ;★
;;;style100
;;;             PRINT           07,14,#STR_GAME,#YELLOW
;;;
;;;             BSR             _level_disp
;;;game_init_loop
;;;;;↓SWAPPED
;;;             RETSYS
;;;
;;;     ;;      PRINT           30,27,#STR_CREDIT,#WHITE      ;display credit
;;;     ;;      MOVE.W          _credit-QA5(A5),D0
;;;     ;;      EXT.L           D0
;;;     ;;      PRINT_HEX       37,27,D0,#1,#WHITE
;;;
;;;             BTST.B          #SELECT1,_select_sw-QA5(A5)
;;;             BEQ.S           init100
;;;
;;;     ;;      BTST.B          #02,_backup_data+dip_swB        ; 1p only mode
;;;     ;;      TST.B           _single_type-QA5(A5)            ;★NOT SINGLE
;;;     ;;      BNE.S           game_init_loop                  ;
;;;
;;;             BTST.B          #SELECT2,_select_sw-QA5(A5)
;;;             BEQ.S           init100
;;;             BRA.S           game_init_loop
;;;init100
;;;             ALL_CLEAR
;;;
;;;     ;;      RETSYS
;;;
;;;     ;;;     TST.B           _how_to_play-QA5(A5)    ;★
;;;     ;;;     BNE             no_inst_disp            ;★
;;;     ;;;     JSR             _inst_disp
;;;     ;;;     CLR.W           _demo_flag-QA5(A5)
;;;     ;;;     RETSYS
;;;     ;;;     ALL_CLEAR
;;;
;;;no_inst_disp
;;;;;↑SWAPPED↓
                JSR             _object_looking         ;★DEBUG

                SOUND           #sALLSTOP

                BCLR.B          #GAMEOVER,_game_condition-QA5(A5)
                BCLR.B          #ROUNDCLR,_game_condition-QA5(A5)
                CLR.W           challenge_flag-QA5(A5)
                CLR.W           _roundclrflag-QA5(A5)
                CLR.W           _player_flag-QA5(A5)
                CLR.W           _round-QA5(A5)
                CLR.W           _scene-QA5(A5)
                CLR.W           win1p-QA5(A5)
                CLR.W           win2p-QA5(A5)
                CLR.W           _win1p-QA5(A5)
                CLR.W           _win2p-QA5(A5)
                CLR.W           set_no-QA5(A5)
                CLR.L           set_player-QA5(A5)
                CLR.W           set_player+LONG-QA5(A5)
                CLR.W           country_type-QA5(A5)
                CLR.W           dia_1_timer-QA5(A5)
                CLR.W           dia_2_timer-QA5(A5)

                CLR.W           round_bak-QA5(A5)       ;★
                MOVE.W          #01,player_bak-QA5(A5)  ;★
                CLR.L           score_bak-QA5(A5)       ;★
                CLR.W           vs_round_bak-QA5(A5)    ;★
        IFNZ    VS_SCORE_BACKUP
                CLR.L           vs_1p_score_bak-QA5(A5) ;★
                CLR.L           vs_2p_score_bak-QA5(A5) ;★
        ENDC
                CLR.W           mini_cont_time-QA5(A5)  ;★
                CLR.W           mini_cont_sign-QA5(A5)  ;★

        ;;      CMP.W           #OTHER,_credit_mode
        ;;      BNE.S           init_100
                tst.b           _game_type-QA5(A5)
                beq.s           init_100
                MOVE.W          #01,country_type-QA5(A5)

                COLOR_TRANS     #_DcSCE_A,#OBJ_MOJI_COL+OBJ_COL_OFS
                COLOR_TRANS     #_DcSCE_A,#FIX_MOJI_COL         ;★
init_100
;;;             MOVE.W          #01,_player_flag-QA5(A5)
;;;↑SWAPPED
                RETSYS

        ;;      BTST.B          #02,_backup_data+dip_swB
        ;;      TST.B           _single_type-QA5(A5)    ;★NOT SINGLE
        ;;      BNE.S           style_only_1p           ;★

                TST.B           _start_mode-QA5(A5)
                BEQ             one_coin_vs_skip

                BSR             select_sub
one_coin_vs_skip
                BSR             start_flag_reset
style_only_1p
;;;             SUB.W           #01,_credit-QA5(A5)

                BSR             round_select            ;MEMORY CARD

                JSR             _player_init_start

                BRA.S           round_init
round_loop
                JSR             _player_init_round
        ;★;    RETSYS
round_init
                CLR.L           round_timer-QA5(A5)
                CLR.W           anm_timer-QA5(A5)
                CLR.W           chckn_timer-QA5(A5)
                CLR.W           chckn_no-QA5(A5)
                CLR.L           chckn_tbl-QA5(A5)

                MOVE.L          #join_anm_tbl,A4
                TST.W           country_type-QA5(A5)
                BEQ.S           round_init_050
                MOVE.L          #join_anm_tble,A4
round_init_050
                JSR             _lsp_rsv_calc
                START           _field_task,#FIELDno
                START           _player_task,#PLAYERno

        ;;      TST.B           _play_bgm-QA5(A5)       ;★GAME SOUND ON
        ;;      BNE             bgm_select_end          ;★

                TST.W           country_type-QA5(A5)
                BEQ.S           bgm_select050

                CMP.W           #15,_scene-QA5(A5)
                BGE.S           bgm_other
                SOUND           #sBGM1
                SOUND           #sSP1_E1
                BRA             bgm_select_end
bgm_other
                SOUND           #sBGM2
                SOUND           #sSP1_E2
                BRA             bgm_select_end
bgm_select050
                CMP.W           #03,_player_flag-QA5(A5)
                BEQ.S           bgm_select100
                SOUND           #sBGM1N
                SOUND           #sSP1
                BRA.S           bgm_select_end
bgm_select100
                SOUND           #sBGM2N
        ;;      SOUND           #sSP1
bgm_select_end
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)        ;★PLAYER
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)        ;高速化したため
                BSR             round_disp
                RETSYS

                TST.W           country_type-QA5(A5)
                BNE.S           ready_other_sound

                SOUND           #sSESTOP
                SOUND           #sREADY
ready_other_sound
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)        ;
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)        ;
                BSR             round_disp              ;★地面書き込みを
                RETSYS                                  ;★遅らせたため挿入

                TST.B           _display_level-QA5(A5)          ;★
                BEQ             level_mode
round_mode
                PRINT           16,27,#GRD_ROUND,#GROUND_WHITE
                MOVE.W          _round-QA5(A5),D0
                EXT.L           D0
                ADD.W           #01,D0
                GROUND_DEC      22,27,D0,#02,#GROUND_WHITE
        ;;      BRA             round_mode_n
level_mode
        ;;      PRINT           16,01,#STR_ROUND,#WHITE
        ;;      MOVE.W          _round-QA5(A5),D0
        ;;      EXT.L           D0
        ;;      ADD.W           #01,D0
        ;;      PRINT_DEC       22,01,D0,#02,#WHITE
round_mode_n
        ;;IFNZ  FIX_RESULT
                BSR             vs_plate_print
        ;;ENDC

                CLR.W           mini_cont_sign-QA5(A5)

                MOVE.W          #60*1+29-1,D7           ;★地面
ready_loop
        IFNZ    HOMEUSE
                BSR             pause_check             ;★
        ENDC
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)
                BSR             round_disp
                CMP.W           #3,_player_flag-QA5(A5)
                BEQ.S           ready_100
                BSR             mini_continue
                BSR             intrude_check
ready_100
                RETSYS
                DBRA            D7,ready_loop

                BTST.B          #ROUNDCLR,_game_condition-QA5(A5) ;★初期乱入
                BNE             start_intrude_ent               ;危いので追加

                TST.W           country_type-QA5(A5)
                BNE.S           go_other_sound
                SOUND           #sSESTOP
                SOUND           #sGO
go_other_sound
;ready_150
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)

                BSR             vs_score_disp

                CMP.W           #1,_player_flag-QA5(A5)         ;★
                BEQ             ?2p_join_in
?1p_join_in
                MOVE.B          _credit_look_1p-QA5(A5),D0
                BRA.S           ?thank_you_check
?2p_join_in
                MOVE.B          _credit_look_2p-QA5(A5),D0
?thank_you_check
                TST.B           D0
                BEQ.S           round_init_100

                MOVE.L          #thk_anm_tbl,A4
                TST.W           country_type-QA5(A5)
                BEQ.S           round_init_100
                MOVE.L          #thk_anm_tble,A4
round_init_100

main_loop
                RETSYS

                ADD.L           #01,round_timer-QA5(A5)
                CMP.L           #1000*60,round_timer-QA5(A5)
                BLT.S           checktimer
                MOVE.L          #999*60,round_timer-QA5(A5)
checktimer
                MOVE.W          _player_flag-QA5(A5),D0
                CMP.W           #3,D0
                BNE.S           main100
                BSR             double_game
                BRA.S           main200
main100
                BSR             mini_continue
                BSR             single_game
main200
                BTST.B          #GAMEOVER,_game_condition-QA5(A5)
                BEQ.S           main300
                BRA             continue_check
main300
                BTST.B          #ROUNDCLR,_game_condition-QA5(A5)
                BEQ.S           main400
start_intrude_ent                                               ;★
                STOP            #PLAYERno
                STOP            #FIELDno
                BCLR.B          #ROUNDCLR,_game_condition-QA5(A5)
                RETSYS
                ALL_CLEAR
        ;★;    RETSYS
                BRA             round_loop
main400
                BRA             main_loop

*-------------------------------------------------------------------------------*
_level_disp                                             ;★
                TST.B           _display_level-QA5(A5)
                BNE             level_disp_end
                TST.B           _floor_flag-QA5(A5)
                BNE             level_disp_grd

                PRINT           17,27,#STR_LEVEL,#GROUND_WHITE
                MOVE.W          _difficulity-QA5(A5),D0
                ADDQ.W          #1,D0
                EXT.L           D0
                PRINT_DEC       22,27,D0,#01,#WHITE
                BRA             level_disp_end
level_disp_grd
                PRINT           17,27,#GRD_LEVEL,#GROUND_WHITE
                MOVE.W          _difficulity-QA5(A5),D0
                ADDQ.W          #1,D0
                EXT.L           D0
                GROUND_DEC      22,27,D0,#01,#GROUND_WHITE
level_disp_end
                RTS

*-------------------------------------------------------------------------------*
STR_ROUND       ASCII           'ROUND'
GRD_ROUND       DC.B            $DB,$DC,$DD,$DE,$DF,0   ;'ROUND'
                DS.W    0
STR_LEVEL       DC.B            $F0,$F1,$F2,$F3,$F4,0   ;'LEVEL'
                DS.W    0
GRD_LEVEL       DC.B            $E0,$E1,$E2,$E3,$E4,0   ;'LEVEL'
                DS.W    0

*-------------------------------------------------------------------------------*
*                                                                               *
*                                                                               *
*-------------------------------------------------------------------------------*

round_clr:

;;;             SOUND           #sALLSTOP
                MOVE.W          #10-1+30,D7
clr_loop1
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)
                RETSYS
                DBRA            D7,clr_loop1

;;;;            SOUND           #sALLSTOP

                TST.W           country_type-QA5(A5)
                BNE.S           clr_timer_set
                SOUND           #sALLSTOP
                SOUND           #sCLEAR2
clr_timer_set
                MOVE.W          #60*2-8-1,D7
clr_loop
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)

                LEA.L           clear_obj,A3
                TST.W           country_type-QA5(A5)
                BEQ.S           clr_obj_100
                LEA.L           clear_obj_e,A3
clr_obj_100
                MOVE.W          #10-1,D6
clr_obj_loop
                MOVE.W          (A3)+,D0
                MOVE.W          (A3)+,D1
                MOVE.L          (A3)+,D5
                OBJ_MACRO       D0,D1,D5,#OBJ_MOJI_COL
                DBRA            D6,clr_obj_loop

                RETSYS
                DBRA            D7,clr_loop

                TST.W           country_type-QA5(A5)
                BEQ.S           clr_disp_end
                SOUND           #sALLSTOP
                SOUND           #sCLEAR2E
clr_disp_end
                RTS

clear_obj
                DC.L            (04*16+8)*10000H+5*16,_bl_sco_r
                DC.L            (05*16+8)*10000H+5*16,_bl_sco_o
                DC.L            (06*16+8)*10000H+5*16,_bl_sco_u
                DC.L            (07*16+8)*10000H+5*16,_bl_sco_n
                DC.L            (08*16+8)*10000H+5*16,_bl_sco_d
                DC.L            (10*16+8)*10000H+5*16,_bl_sco_c
                DC.L            (11*16+8)*10000H+5*16,_bl_sco_l
                DC.L            (12*16+8)*10000H+5*16,_bl_sco_e
                DC.L            (13*16+8)*10000H+5*16,_bl_sco_a
                DC.L            (14*16+8)*10000H+5*16,_bl_sco_r
clear_obj_e
                DC.L            (04*16+8)*10000H+5*16,_bl_sce_r
                DC.L            (05*16+8)*10000H+5*16,_bl_sce_o
                DC.L            (06*16+8)*10000H+5*16,_bl_sce_u
                DC.L            (07*16+8)*10000H+5*16,_bl_sce_n
                DC.L            (08*16+8)*10000H+5*16,_bl_sce_d
                DC.L            (10*16+8)*10000H+5*16,_bl_sce_c
                DC.L            (11*16+8)*10000H+5*16,_bl_sce_l
                DC.L            (12*16+8)*10000H+5*16,_bl_sce_e
                DC.L            (13*16+8)*10000H+5*16,_bl_sce_a
                DC.L            (14*16+8)*10000H+5*16,_bl_sce_r

*-------------------------------------------------------------------------------*
*                                                                               *
*                                                                               *
*-------------------------------------------------------------------------------*
challenger:
                LETWAIT         #PLAYER_Bit

        ;MOVE.W #BALL_WAIT,_player_work1+p_BALL_WAIT-QA5(A5)    ;★ばぐ対処
        ;MOVE.W #BALL_WAIT,_player_work2+p_BALL_WAIT-QA5(A5)    ;ハリー音ナリッパナシ
        OR.W    #01,_player_work1+p_BALL_WAIT-QA5(A5)   ;★対処その2
        OR.W    #01,_player_work2+p_BALL_WAIT-QA5(A5)   ;ハリー表示消さない

                BSR             mini_con_erase

                SOUND           #sALLSTOP
                MOVE.W          #10-1+30,D7
cha_loop1
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)
                JSR             _player_print
                RETSYS
                DBRA            D7,cha_loop1

                TST.W           country_type-QA5(A5)
                BNE.S           cha_other_sound
                SOUND           #sKOKE
                BRA.S           cha_sound
cha_other_sound
                SOUND           #sKOKE_E
cha_sound

        ;;IFNZ  FIX_RESULT      ;-------------------------------------★

                XREF            _fx_challeng,_fx_challe_e

                LEA.L           _fx_challeng,A3
                TST.W           country_type-QA5(A5)
                BEQ.S           fix_moji_100
                LEA.L           _fx_challe_e,A3
fix_moji_100
                PRINT_BLOCK     08,08,A3,#FIX_MOJI_COL

        ;;      MOVE.W          #60*3-1+30,D7
                MOVE.W          #60*2-1+30,D7           ;★高速化
cha_loop
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)

                JSR             _player_print
                RETSYS
                DBRA            D7,cha_loop

                CLR.L           D7

                RTS

        ;;ELSE                  ;-------------------------------------
;;
;;              MOVE.W          #60*3-1+30,D7
;;cha_loop
;;              MOVE.B          #00,_ply1_sw_jst-QA5(A5)
;;              MOVE.B          #00,_ply2_sw_jst-QA5(A5)
;;
;;              LEA.L           asc_challenge(PC),A3
;;              TST.W           country_type-QA5(A5)
;;              BEQ.S           obj_moji_100
;;              LEA.L           asc_challenge_e(PC),A3
;;obj_moji_100
;;              MOVE.W          #20-1,D6
;;obj_moji_loop
;;              MOVE.W          (A3)+,D0
;;              MOVE.W          (A3)+,D1
;;              MOVE.L          (A3)+,D5
;;              OBJ_MACRO       D0,D1,D5,#OBJ_MOJI_COL
;;              DBRA            D6,obj_moji_loop
;;
;;              JSR             _player_print
;;              RETSYS
;;              DBRA            D7,cha_loop
;;
;;              CLR.L           D7
;;
;;              RTS
;;
;;asc_challenge
;;              DC.L            04*16*10000H+04*16,_bl_sco_h
;;              DC.L            05*16*10000H+04*16,_bl_sco_e
;;              DC.L            06*16*10000H+04*16,_bl_sco_r
;;              DC.L            07*16*10000H+04*16,_bl_sco_e
;;              DC.L            09*16*10000H+04*16,_bl_sco_c
;;              DC.L            10*16*10000H+04*16,_bl_sco_o
;;              DC.L            11*16*10000H+04*16,_bl_sco_m
;;              DC.L            12*16*10000H+04*16,_bl_sco_e
;;              DC.L            13*16*10000H+04*16,_bl_sco_s
;;              DC.L            15*16*10000H+04*16,_bl_sco_a
;;              DC.L            05*16*10000H+06*16,_bl_sco_c
;;              DC.L            06*16*10000H+06*16,_bl_sco_h
;;              DC.L            07*16*10000H+06*16,_bl_sco_a
;;              DC.L            08*16*10000H+06*16,_bl_sco_l
;;              DC.L            09*16*10000H+06*16,_bl_sco_l
;;              DC.L            10*16*10000H+06*16,_bl_sco_e
;;              DC.L            11*16*10000H+06*16,_bl_sco_n
;;              DC.L            12*16*10000H+06*16,_bl_sco_g
;;              DC.L            13*16*10000H+06*16,_bl_sco_e
;;              DC.L            14*16*10000H+06*16,_bl_sco_r
;;
;;asc_challenge_e
;;              DC.L            04*16*10000H+04*16,_bl_sce_h
;;              DC.L            05*16*10000H+04*16,_bl_sce_e
;;              DC.L            06*16*10000H+04*16,_bl_sce_r
;;              DC.L            07*16*10000H+04*16,_bl_sce_e
;;              DC.L            09*16*10000H+04*16,_bl_sce_c
;;              DC.L            10*16*10000H+04*16,_bl_sce_o
;;              DC.L            11*16*10000H+04*16,_bl_sce_m
;;              DC.L            12*16*10000H+04*16,_bl_sce_e
;;              DC.L            13*16*10000H+04*16,_bl_sce_s
;;              DC.L            15*16*10000H+04*16,_bl_sce_a
;;              DC.L            05*16*10000H+06*16,_bl_sce_c
;;              DC.L            06*16*10000H+06*16,_bl_sce_h
;;              DC.L            07*16*10000H+06*16,_bl_sce_a
;;              DC.L            08*16*10000H+06*16,_bl_sce_l
;;              DC.L            09*16*10000H+06*16,_bl_sce_l
;;              DC.L            10*16*10000H+06*16,_bl_sce_e
;;              DC.L            11*16*10000H+06*16,_bl_sce_n
;;              DC.L            12*16*10000H+06*16,_bl_sce_g
;;              DC.L            13*16*10000H+06*16,_bl_sce_e
;;              DC.L            14*16*10000H+06*16,_bl_sce_r
;;
        ;;ENDC                  ;-------------------------------------★

*-------------------------------------------------------------------------------*
        IFNZ    HOMEUSE
pause_check:            ;★家庭用ポーズ
                TST.B           MVS_FLAG
                BNE             pause_skip              ;MVS SKIP
                CLR.W           D1
                MOVE.W          _player_flag-QA5(A5),D0
                BTST            #0,D0
                BEQ             pause_1p_skip
                OR.W            #1.SHL.PAUSE1,D1
pause_1p_skip:
                BTST            #1,D0
                BEQ             pause_2p_skip
                OR.W            #1.SHL.PAUSE2,D1
pause_2p_skip:
                MOVE.B          _select_sw_jst-QA5(A5),D0
                AND.W           D1,D0
                BEQ             pause_skip

pause_main:
                SOUND           #sPAUSE

                LETWAIT         #PLAYER_Bit^FIELD_Bit^OBJ_Bit

                PRINT           17,14,#STR_PAUSE,#WHITE
pause_loop:
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)
                RETSYS

                CLR.W           D1
                MOVE.W          _player_flag-QA5(A5),D0
                BTST            #0,D0
                BEQ             pause_1p_skip_c
                OR.W            #1.SHL.PAUSE1,D1
pause_1p_skip_c:
                BTST            #1,D0
                BEQ             pause_2p_skip_c
                OR.W            #1.SHL.PAUSE2,D1
pause_2p_skip_c:
                MOVE.B          _select_sw_jst-QA5(A5),D0
                AND.W           D1,D0
                BEQ             pause_loop
                PRINT           17,14,#STR_PAUSE_OFF,#WHITE

                SIGNAL          #PLAYER_Bit^FIELD_Bit^OBJ_Bit
pause_skip:
                RTS

STR_PAUSE:
                ASCII   'PAUSE '
STR_PAUSE_OFF:
                ASCII   '      '
        ENDC

*-------------------------------------------------------------------------------*
*                                                                               *
*                                                                               *
*-------------------------------------------------------------------------------*
round_disp:
                CMP.W           #03,_player_flag-QA5(A5)
                BEQ             round_disp_end

                TST.W           country_type-QA5(A5)
                BNE.S           round_obj_bb
round_obj_pb
                OBJ_MACRO       #07*16+8,#03*16+8,#_bl_sco_r,#OBJ_MOJI_COL
                OBJ_MACRO       #08*16+8,#03*16+8,#_bl_sco_o,#OBJ_MOJI_COL
                OBJ_MACRO       #09*16+8,#03*16+8,#_bl_sco_u,#OBJ_MOJI_COL
                OBJ_MACRO       #10*16+8,#03*16+8,#_bl_sco_n,#OBJ_MOJI_COL
                OBJ_MACRO       #11*16+8,#03*16+8,#_bl_sco_d,#OBJ_MOJI_COL
                BRA.S           round_obj_end
round_obj_bb
                OBJ_MACRO       #07*16+8,#03*16+8,#_bl_sce_r,#OBJ_MOJI_COL
                OBJ_MACRO       #08*16+8,#03*16+8,#_bl_sce_o,#OBJ_MOJI_COL
                OBJ_MACRO       #09*16+8,#03*16+8,#_bl_sce_u,#OBJ_MOJI_COL
                OBJ_MACRO       #10*16+8,#03*16+8,#_bl_sce_n,#OBJ_MOJI_COL
                OBJ_MACRO       #11*16+8,#03*16+8,#_bl_sce_d,#OBJ_MOJI_COL
round_obj_end
                MOVEQ.L         #000,D6
                MOVE.W          _round-QA5(A5),D6
                ADD.W           #01,D6
                MOVE.W          #09*16,D4
                MOVE.W          #04*16+8,D1
                BSR             obj_dec_disp
                OBJ_MACRO       #06*16,#03*16,#_bl_panels1,#NEXT_COL
                RTS
round_disp_end
                BSR             vs_score_disp
                RTS

*-------------------------------------------------------------------------------*
*               D4:             START H pos                                     *
*               D1:             START V pos                                     *
*               D6:             DISPLAY DATA                                    *
*-------------------------------------------------------------------------------*
obj_dec_disp:
                LINK            A6,#-WORD*2
                CLR.W           -WORD(A6)
                CLR.W           -WORD*2(A6)     ; credit_mode flag

                TST.W           country_type-QA5(A5)
                BEQ.S           obj_dec_disp_010
                MOVE.W          #01,-WORD*2(A6)
obj_dec_disp_010
                EXT.L           D6
                DIVU            #100,D6
                MOVE.W          D6,D5
                BNE.S           obj_dec_disp_020

                TST.W           -WORD(A6)
                BEQ.S           obj_dec_disp_050
obj_dec_disp_020
                MOVE.W          #01,-WORD(A6)
                LSL.W           #2,D5
                TST.W           -WORD*2(A6)
                BNE.S           obj_dec_disp_025
                LEA.L           dec_bl_data,A0
                MOVE.L          00(A0,D5.W),D5
                BRA.S           obj_dec_disp_030
obj_dec_disp_025
                LEA.L           dec_bl_datae,A0
                MOVE.L          00(A0,D5.W),D5
obj_dec_disp_030
                OBJ_MACRO       D4,D1,D5,#OBJ_MOJI_COL
                ADD.W           #16,D4
obj_dec_disp_050
                SWAP            D6
                EXT.L           D6
                DIVU            #10,D6
                MOVE.W          D6,D5
                BNE.S           obj_dec_disp_070

                TST.W           -WORD(A6)
                BEQ.S           obj_dec_disp_100
obj_dec_disp_070
                MOVE.W          #01,-WORD(A6)
                LSL.W           #2,D5
                TST.W           -WORD*2(A6)
                BNE.S           obj_dec_disp_080
                MOVE.L          dec_bl_data(PC,D5.W),D5
                BRA.S           obj_dec_disp_090
obj_dec_disp_080
                MOVE.L          dec_bl_datae(PC,D5.W),D5
obj_dec_disp_090
                OBJ_MACRO       D4,D1,D5,#OBJ_MOJI_COL
obj_dec_disp_100
                ADD.W           #16,D4
                SWAP            D6
                LSL.W           #2,D6
                TST.W           -WORD*2(A6)
                BNE.S           obj_dec_disp_150
                MOVE.L          dec_bl_data(PC,D6.W),D6
                BRA.S           obj_dec_disp_200
obj_dec_disp_150
                MOVE.L          dec_bl_datae(PC,D6.W),D6
obj_dec_disp_200
                OBJ_MACRO       D4,D1,D6,#OBJ_MOJI_COL
obj_dec_disp_end
                UNLK            A6
                RTS

dec_bl_data
                DC.L            _bl_sco_0,_bl_sco_1,_bl_sco_2,_bl_sco_3,_bl_sco_4
                DC.L            _bl_sco_5,_bl_sco_6,_bl_sco_7,_bl_sco_8,_bl_sco_9
dec_bl_datae
                DC.L            _bl_sce_0,_bl_sce_1,_bl_sce_2,_bl_sce_3,_bl_sce_4
                DC.L            _bl_sce_5,_bl_sce_6,_bl_sce_7,_bl_sce_8,_bl_sce_9

*-------------------------------------------------------------------------------*
        ;;IFNZ  FIX_RESULT
fix_res_disp
                TST.W           country_type-QA5(A5)
                BNE.S           fix_res_disp_025
                LEA.L           dec_fx_data,A0          ;JAPAN
                BRA.S           fix_res_disp_030
fix_res_disp_025
                LEA.L           dec_fx_datae,A0         ;USA
fix_res_disp_030
                EXT.L           D6
                DIVU            #10,D6
                MOVE.W          D6,D5
                BNE.S           fix_res_disp_070
                MOVE.W          #10,D5                  ;NULL PLATE
fix_res_disp_070
                LSL.W           #2,D5
                MOVE.L          00(A0,D5.W),D5
                MASK_BLOCK      D4,D1,D5,#FIX_RES_COL
fix_res_disp_100
                ADD.W           #2,D4
                SWAP            D6
                LSL.W           #2,D6
                MOVE.L          00(A0,D6.W),D5
                MASK_BLOCK      D4,D1,D5,#FIX_RES_COL
fix_res_disp_end
                RTS

                XREF    _fx_res_0,_fx_res_1,_fx_res_2,_fx_res_3,_fx_res_4
                XREF    _fx_res_5,_fx_res_6,_fx_res_7,_fx_res_8,_fx_res_9
                XREF    _fx_res_null
                XREF    _fx_ees_0,_fx_ees_1,_fx_ees_2,_fx_ees_3,_fx_ees_4
                XREF    _fx_ees_5,_fx_ees_6,_fx_ees_7,_fx_ees_8,_fx_ees_9
dec_fx_data
                DC.L            _fx_res_0,_fx_res_1,_fx_res_2,_fx_res_3,_fx_res_4
                DC.L            _fx_res_5,_fx_res_6,_fx_res_7,_fx_res_8,_fx_res_9
                DC.L            _fx_res_null
dec_fx_datae
                DC.L            _fx_ees_0,_fx_ees_1,_fx_ees_2,_fx_ees_3,_fx_ees_4
                DC.L            _fx_ees_5,_fx_ees_6,_fx_ees_7,_fx_ees_8,_fx_ees_9
                DC.L            _fx_res_null
        ;;ENDC

*-------------------------------------------------------------------------------*
*               D4:             START H pos                                     *
*               D1:             START V pos                                     *
*               D6:             DISPLAY DATA                                    *
*-------------------------------------------------------------------------------*
obj_dec_disp2:
                LINK            A6,#-WORD
                CLR.W           -WORD(A6)
                PUSH.L          D7
                MOVE.W          #2,D7
                MOVE.W          #10000,D5
dec_2_loop
                DIVU            D5,D6
                MOVE.W          D6,D3
                BNE.S           dec_2_disp_020

                TST.W           -WORD(A6)
                BEQ.S           dec_2_disp_050
dec_2_disp_020
                MOVE.W          #01,-WORD(A6)
                LSL.W           #2,D3
                TST.W           country_type-QA5(A5)
                BNE.S           dec_2_disp_025
                LEA.L           dec_bl_data,A0
                MOVE.L          0(A0,D3.W),D3
                BRA.S           dec_2_disp_030
dec_2_disp_025
                LEA.L           dec_bl_datae,A0
                MOVE.L          0(A0,D3.W),D3
dec_2_disp_030
                OBJ_MACRO       D4,D1,D3,#OBJ_MOJI_COL
dec_2_disp_050
                CMP.W           #10,D7
                BGE.S           dec_2_disp_end

                ADD.W           #16,D4
                SWAP            D6
                EXT.L           D6
                MOVE.W          dec_tbl(PC,D7.W),D5
                ADD.W           #02,D7
                BRA             dec_2_loop
dec_2_disp_end
                POP.L           D7
                UNLK            A6
                RTS
                ;;              0     2    4   6  8
dec_tbl         DC.W            10000,1000,100,10,1

*-------------------------------------------------------------------------------*
mini_continue
                CMP.W           #3,_player_flag-QA5(A5)
                BEQ             mini_con_exit
                CMP.W           #1,_player_flag-QA5(A5)
                BEQ             ?2p_join_in
                MOVE.W          #MINI_HPOS_1P,D2
                MOVE.B          _credit_look_1p-QA5(A5),D3
                MOVE.B          _credit_up_1p-QA5(A5),D4
                LEA             PLAYER_MODE,A0
                BRA.S           ?join_mess
?2p_join_in
                MOVE.W          #MINI_HPOS_2P,D2
                MOVE.B          _credit_look_2p-QA5(A5),D3
                MOVE.B          _credit_up_2p-QA5(A5),D4
                LEA             PLAYER_MODE+BYTE,A0
?join_mess
                TST.B           _continue_mode-QA5(A5)
                BNE             mini_con_erase_2

                TST.W           mini_cont_time-QA5(A5)
                BEQ             mini_con_mess
                BMI             mini_game_over
?continue_count
        IFNZ    HOMEUSE
                TST.B           MVS_FLAG        ;家庭用ゲームオーバーチェック
                BNE             ?cont_cont              ;MVS SKIP
                TST.B           D3
                BNE             ?cont_cont
                BRA             mini_game_over_set
?cont_cont
        ENDC
                TST.B           D4
                BEQ             ?no_income
                MOVE.W          #10*60,mini_cont_time-QA5(A5)
?no_income
                SUBQ.W          #1,mini_cont_time-QA5(A5)
                BLE             mini_game_over_set
                MOVE.W          mini_cont_time-QA5(A5),D0
                EXT.L           D0
                DIVU            #60,D0
                MOVE.L          D0,-(SP)
                SWAP            D0
                CMP.W           #59,D0                  ;59sec=COUNT SOUND
                BNE             mini_cont_sound_skip
                TST.W           country_type-QA5(A5)
                BNE.S           mini_cont_other_sound
                SOUND           #sCD
                BRA.S           mini_cont_sound
mini_cont_other_sound
                SOUND           #sCD_E
mini_cont_sound
mini_cont_sound_skip
                MOVE.L          (SP)+,D0
                EXT.L           D0

                cmp.w           #20,d2
                bge             ?2p_continue
                MASK_STR        d2,#MINI_VPOS,#STR_SPACE,#WHITE
                addq.w          #01,d2
                MASK_STR        D2,#MINI_VPOS,#STR_CONT_S,#WHITE
                ADD.W           #09,D2
                MASK_DEC        D2,#MINI_VPOS,D0,#1,#WHITE
                SUB.W           #10,D2
                BRA             mini_con_exit
?2p_continue
                MASK_STR        D2,#MINI_VPOS,#STR_CONT_S,#WHITE
                ADD.W           #09,D2
                MASK_DEC        D2,#MINI_VPOS,D0,#1,#WHITE
                addq.w          #01,d2
                MASK_STR        d2,#MINI_VPOS,#STR_SPACE,#WHITE
                SUB.W           #10,D2
                BRA             mini_con_exit
mini_game_over_set
                CLR.W           vs_round_bak-QA5(A5)
        IFNZ    VS_SCORE_BACKUP
                CLR.L           vs_1p_score_bak-QA5(A5)
                CLR.L           vs_2p_score_bak-QA5(A5)
        ENDC
                CLR.W           _win1p-QA5(A5)
                CLR.W           _win2p-QA5(A5)
                MOVE.B          #MODE_OVER,(A0)
                MOVE.W          #-60,mini_cont_time-QA5(A5)
        IFNZ    HOMEUSE
                CLR.B           _vs_cont_flag-QA5(A5)
        ENDC
mini_game_over
                ADDQ.W          #1,mini_cont_time-QA5(A5)
                BGE             ?normal_set
                MASK_STR        D2,#MINI_VPOS,#STR_OVER_S,#RED
                BRA             mini_con_exit
?normal_set
                MOVE.B          #MODE_NOP,(A0)

                CLR.W           mini_cont_time-QA5(A5)
                CLR.W           mini_cont_sign-QA5(A5)
mini_con_mess
                ANDI.W          #$007F,mini_cont_sign-QA5(A5)
                SUBQ.W          #1,mini_cont_sign-QA5(A5)
                BGT             ?type_chk
                MOVE.W          #120,mini_cont_sign-QA5(A5)
?type_chk
                CMP.W           #45,mini_cont_sign-QA5(A5)
                BGE             ?display

                MASK_STR        D2,#MINI_VPOS,#STR_OFF_S,#WHITE
                BRA             mini_con_exit
?display
                TST.B           D3
                BNE             ?push_start
?insert
        IFNZ    HOMEUSE
                TST.B           MVS_FLAG        ;家庭用は INSERT COIN 無し
                BEQ             mini_con_exit
        ENDC
                MASK_STR        D2,#MINI_VPOS,#STR_INSERT_S,#WHITE
                BRA             mini_con_exit
?push_start
                cmp.w           #20,d2
                bge.s           ?2p_push_start
                MASK_STR        D2,#MINI_VPOS,#STR_PUSH_1P_S,#WHITE
                BRA             mini_con_exit
?2p_push_start
                MASK_STR        D2,#MINI_VPOS,#STR_PUSH_2P_S,#WHITE
                BRA             mini_con_exit

*--------------*
mini_con_erase
                CMP.W           #3,_player_flag-QA5(A5)
                BEQ             mini_con_exit
                CMP.W           #1,_player_flag-QA5(A5)
                BEQ             ?2p_join_in
                MOVE.W          #MINI_HPOS_1P,D2
                BRA.S           ?display
?2p_join_in
                MOVE.W          #MINI_HPOS_2P,D2
?display
mini_con_erase_2
                MASK_STR        D2,#MINI_VPOS,#STR_OFF_S,#WHITE
mini_con_exit
                RTS

;                      ----+----1----+----2----+----3----+----4
STR_INSERT_S    ASCII 'INSERT COIN'
STR_PUSH_1P_S   ASCII ' PUSH START'
STR_PUSH_2P_S   ASCII 'PUSH START '
;;STR_TO_JOIN_S ASCII '  TO JOIN  '
STR_CONT_S      ASCII 'CONTINUE '
STR_SPACE       ASCII ' '
STR_OVER_S      ASCII ' GAME OVER '
STR_OFF_S       ASCII '           '

*-------------------------------------------------------------------------------*
CONTINUE_TIMER  SET             60*10-1
CANSEL_TIMER    SET             CONTINUE_TIMER-40
continue_check:
                SOUND           #sALLSTOP

                MOVE.B          #2,_continue_mode-QA5(A5)       ;乱入禁止

                CMP.W           #3,_player_flag-QA5(A5)
                BEQ.S           ending_skip

                BSET.B          #ROUNDCLR,_game_condition-QA5(A5)

                CMP.W           #MAX_ROUND,_round-QA5(A5)
                BGE             ending
ending_skip
                RETSYS
        ;;      MOVE.W          #10-1+30,D7
                MOVE.W          #30-1,D7
cont_loop1
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)
                RETSYS
                DBRA            D7,cont_loop1

                TST.W           country_type-QA5(A5)
                BNE.S           cont_other_sound
                SOUND           #sOUT
cont_other_sound
                DELAY           60*1
                STOP            #PLAYERno
                STOP            #FIELDno
                CLR.W           _roundclrflag-QA5(A5)
;;;             SOUND           #sALLSTOP
                ALL_CLEAR

                BSR             _level_disp             ;追加

                TST.W           country_type-QA5(A5)
                BNE.S           cont_other_music
                SOUND           #sCONTI
                BRA.S           cont_music
cont_other_music
                SOUND           #sCONT_E
cont_music

                CMP.W           #03,_player_flag-QA5(A5)
                BEQ.S           vs_end

;;              MOVE.L          _player_work1+p_SCORE-QA5(A5),D0
;;              CMP.W           #01,_player_flag-QA5(A5)
;;              BEQ.S           p1_end100
;;              MOVE.L          _player_work2+p_SCORE-QA5(A5),D0
p1_end100
                JSR             _name_regist

                LEA             PLAYER_MODE,A0

                TST.B           (A0)
                BEQ.S           ?1p_skip
                CMP.B           #MODE_OVER,(A0)
                BEQ.S           ?1p_clr
                MOVE.B          #MODE_CONT,(A0)
                BRA.S           ?1p_skip
?1p_clr
                MOVE.B          #MODE_NOP,(A0)
?1p_skip
                TST.B           1(A0)
                BEQ.S           ?2p_skip
                CMP.B           #MODE_OVER,1(A0)
                BEQ.S           ?2p_clr
                MOVE.B          #MODE_CONT,1(A0)
                BRA.S           ?2p_skip
?2p_clr
                MOVE.B          #MODE_NOP,1(A0)
?2p_skip
                CLR.W           vs_round_bak-QA5(A5)
        IFNZ    VS_SCORE_BACKUP
                CLR.L           vs_1p_score_bak-QA5(A5)
                CLR.L           vs_2p_score_bak-QA5(A5)
        ENDC
                CLR.W           _win1p-QA5(A5)
                CLR.W           _win2p-QA5(A5)

                CLR.W           mini_cont_time-QA5(A5)
                CLR.B           _continue_mode-QA5(A5)          ;許可
        IFNZ    HOMEUSE
                CLR.B           _vs_cont_flag-QA5(A5)
        ENDC

;;;;        INCOME_OVER      #000,D0,_round-QA5(A5)
                BRA.S           vs_end100
vs_end
                MOVE.W          #MODE_CONT*256+MODE_CONT,PLAYER_MODE

                CLR.B           _continue_mode-QA5(A5)
                CMP.B           #1,_vs_credit-QA5(A5)
                BNE             ?dont_care
                MOVE.B          #1,_continue_mode-QA5(A5)       ;一方のみ
?dont_care
        IFNZ    HOMEUSE
                MOVE.B          #1,_vs_cont_flag-QA5(A5)
        ENDC

;;;;        INCOME_OVER      #000,_player_work1+p_SCORE-QA5(A5),_round-QA5(A5)
;;;;        INCOME_OVER      #001,_player_work2+p_SCORE-QA5(A5),_round-QA5(A5)
vs_end100
                ALL_CLEAR

                AND.W           #$0101,_user_start-QA5(A5)      ;ゲーム中を消す

        IFNZ    HOMEUSE
                TST.B           MVS_FLAG                ;if (家庭用モード)
                bne.s           ?homeuse_end_skip       ;   and
                tst.w           _credit_look_1p-QA5(a5) ; (クレジットがない)
                bne.s           ?homeuse_end_skip       ;   and
                tst.w           _user_start-QA5(A5)     ; (ゲーム開始リクエストがない)
                BEQ             game_end                ;then [ゲームオーバー]
?homeuse_end_skip
        ENDC

                BSR             _level_disp             ;追加

                BCLR.B          #GAMEOVER,_game_condition-QA5(A5)
                BCLR.B          #ROUNDCLR,_game_condition-QA5(A5)

        ;;;;    TST.W   _player_continue                ;★
        ;;;;    BNE     game_end

                MOVE.W          #CONTINUE_TIMER,cont_timer-QA5(A5)
                MOVE.W          #-1,D6
                PRINT           16,16,#STR_TIMER,#YELLOW
cont_loop
                RETSYS

                TST.W           _credit_up_flag-QA5(A5)
                BEQ.S           c_up_100
                MOVE.W          #60*10-1,cont_timer-QA5(A5)
c_up_100
        ;;      PRINT           30,27,#STR_CREDIT,#WHITE      ;display credit
        ;;      MOVE.W          _credit-QA5(A5),D0
        ;;      EXT.L           D0
        ;;      PRINT_HEX       37,27,D0,#1,#WHITE

        ;;      TST.W           _credit-QA5(A5)
                TST.W           _credit_look_1p-QA5(A5)
                BNE             pushdisp
;;;
;;;             CMP.W           #USA,_credit_mode
;;;             BNE             insertdisp
;;;
;;;             MOVE.W          _credit_table_A-QA5(A5),D4
;;;             CMP.W           #01,D4
;;;             BEQ             insertdisp
;;;
;;;             MOVE.W          _coin_A_counter-QA5(A5),D5
;;;             BNE.S           adddisp
;;;
;;;             PRINT           08,14,#STR_INSCONT,#YELLOW
;;;             EXT.L           D4
;;;             PRINT_DEC       15,14,D4,#01,#YELLOW
;;;             BRA             cont_disp_end
;;;adddisp
;;;             SUB.W           D5,D4
;;;             CMP.W           #01,D4
;;;             BNE.S           adddisp2
;;;             PRINT           08,14,#STR_ADDCONT1,#YELLOW
;;;             BRA.S           adddisp3
;;;adddisp2
;;;             PRINT           08,14,#STR_ADDCONT2,#YELLOW
;;;adddisp3
;;;             EXT.L           D4
;;;             PRINT_DEC       13,14,D4,#01,#YELLOW
;;;;;;;         BRA             disp900
;;;             BRA             cont_disp_end
insertdisp
                PRINT           04,14,#STR_INSERT,#YELLOW
;;;;            BRA             disp900
                BRA             cont_disp_end
pushdisp
        IFNZ    HOMEUSE
                TST.B           MVS_FLAG                ;家庭用は
                BEQ.s           ?push_1p_2p             ;PUSH 1P OR 2P START
        ENDC
                CMP.B           #1,COUNTRY_CODE
                BNE             ?push_start             ;not USA TYPE
?push_1p_2p
                TST.B           _credit_look_1p-QA5(A5)
                BEQ             ?push_2p
                TST.B           _credit_look_2p-QA5(A5)
                BEQ             ?push_1p
                PRINT           04,14,#STR_PUSH_1P_2P,#YELLOW
                BRA             cont_disp_end
?push_1p
                PRINT           04,14,#STR_PUSH_1P,#YELLOW
                BRA             cont_disp_end
?push_2p
                PRINT           04,14,#STR_PUSH_2P,#YELLOW
                BRA             cont_disp_end
?push_start
                PRINT           04,14,#STR_PUSH,#YELLOW
cont_disp_end                                           ;スタートチェック
                LEA             _user_start-QA5(A5),A0
                MOVEQ           #0,D1
                TST.B           (A0)
                BEQ.S           ?1p_skip
                OR.W            #1,D1
?1p_skip
        ;;      BTST.B          #02,_backup_data+dip_swB            ; game style check
        ;;      TST.B           _single_type-QA5(A5)            ;★NOT SINGLE
        ;;      BNE             disp900                         ;★

                TST.B           1(A0)
                BEQ.S           ?2p_skip
                OR.W            #2,D1
?2p_skip
                TST.W           D1
                BEQ             disp900

;---------------スタート有り
disp100
                CMP.W           #03,_player_flag-QA5(A5)
                BEQ             disp_200

;;;;        INCOME_CONT      #000,_round-QA5(A5)
                BRA.S           disp_300
disp_200
                MOVE.W          #$0101,_user_start-QA5(A5)
;;;;        INCOME_CONT      #000,_round-QA5(A5)
;;;;        INCOME_CONT      #001,_round-QA5(A5)
disp_300
                SOUND           #sALLSTOP
                ALL_CLEAR
                CLR.B           _continue_mode-QA5(A5)          ;許可
        IFNZ    HOMEUSE
                CLR.B           _vs_cont_flag-QA5(A5)
        ENDC
;;;;            SUB.W           #01,_credit-QA5(A5)
                JSR             start_flag_continue
                JSR             _player_init_continue
        IFNZ    VS_SCORE_BACKUP
                CMP.W           #03,_player_flag-QA5(A5)
                BNE             ?not_vs
        MOVE.L  vs_1p_score_bak-QA5(A5),_player_work1+p_SCORE-QA5(A5)
        MOVE.L  vs_2p_score_bak-QA5(A5),_player_work2+p_SCORE-QA5(A5)
?not_vs:
        ENDC
                BRA             round_init

;---------------スタートまだ無い
disp900
                MOVE.W          cont_timer-QA5(A5),D7
                EXT.L           D7
                DIVU            #60,D7
                EXT.L           D7
                CMP.W           D7,D6
                BEQ.S           disp_350
                TST.W           country_type-QA5(A5)
                BNE.S           disp_912
                SOUND           #sCD
                BRA.S           disp_913
disp_912
                SOUND           #sCD_E
disp_913
                MOVE.W          D7,D6
disp_350
                PRINT_DEC       22,16,D7,#02,#YELLOW

                CMP.W           #CANSEL_TIMER,cont_timer-QA5(A5)
                BGT             disp400

                CMP.B           #1,COUNTRY_CODE
                BNE.S           ?not_usa_count
?usa_count
                MOVEQ           #0,D0
                LEA             PLAYER_MODE,A0
                CMP.B           #MODE_CONT,(A0)
                BNE             ?1p_skip
                OR.B            _ply1_sw_jst-QA5(A5),D0
?1p_skip
                CMP.B           #MODE_CONT,1(A0)
                BNE             ?2p_skip
                OR.B            _ply2_sw_jst-QA5(A5),D0
?2p_skip
                BRA.S           ?count_chk_end
?not_usa_count
                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
?count_chk_end
                ANDI.B          #(1.SHL.FIRE1^1.SHL.FIRE2^1.SHL.FIRE3^1.SHL.FIRE4),D0
                BEQ.S           disp400

        ;;      SUB.W           #60,cont_timer-QA5(A5)

                MOVE.W          cont_timer-QA5(A5),D0
                EXT.L           D0
                DIVU            #60,D0          ;1秒単位に合わせる
                MULU            #60,D0          ;
                MOVE.W          D0,cont_timer-QA5(A5)
disp400
                SUB.W           #01,cont_timer-QA5(A5)
                BGT             cont_loop
                BLT             game_end                        ;★
                MOVE.B          #2,_continue_mode-QA5(A5)       ;禁止
                BRA             cont_loop               ;(念の為一つ早めた)

;---------------ゲームオーバー
game_end
                MOVE.B          #2,_continue_mode-QA5(A5)       ;禁止
                AND.W           #$0101,_user_start-QA5(A5)      ;ゲーム中を消す

                LEA             PLAYER_MODE,A0
                TST.B           (A0)
                BEQ             ?1p_skip
                MOVE.B          #MODE_OVER,(A0)
?1p_skip
                TST.B           1(A0)
                BEQ             ?2p_skip
                MOVE.B          #MODE_OVER,1(A0)
?2p_skip

                RETSYS
                ALL_CLEAR

                CMP.W           #03,_player_flag-QA5(A5)
                BEQ             over150

                SOUND           #sALLSTOP
                JSR             _card_save
over150
                BSR             _level_disp             ;追加

                TST.W           country_type-QA5(A5)
                BNE.S           over_other_music
                SOUND           #sGAMEOVER
                BRA.S           over_music
over_other_music
                SOUND           #sGAMEOV_E
over_music

                MOVE.W          #60*4+50-1,D7
over_loop
                RETSYS

                TST.W           country_type-QA5(A5)
                BNE             over_obj_bb
over_obj_pb
                OBJ_MACRO       #05*16+8,#06*16,#_bl_sco_g,#OBJ_MOJI_COL
                OBJ_MACRO       #06*16+8,#06*16,#_bl_sco_a,#OBJ_MOJI_COL
                OBJ_MACRO       #07*16+8,#06*16,#_bl_sco_m,#OBJ_MOJI_COL
                OBJ_MACRO       #08*16+8,#06*16,#_bl_sco_e,#OBJ_MOJI_COL
                OBJ_MACRO       #10*16+8,#06*16,#_bl_sco_o,#OBJ_MOJI_COL
                OBJ_MACRO       #11*16+8,#06*16,#_bl_sco_v,#OBJ_MOJI_COL
                OBJ_MACRO       #12*16+8,#06*16,#_bl_sco_e,#OBJ_MOJI_COL
                OBJ_MACRO       #13*16+8,#06*16,#_bl_sco_r,#OBJ_MOJI_COL
                BRA             over_obj_end
over_obj_bb
                OBJ_MACRO       #05*16+8,#06*16,#_bl_sce_g,#OBJ_MOJI_COL
                OBJ_MACRO       #06*16+8,#06*16,#_bl_sce_a,#OBJ_MOJI_COL
                OBJ_MACRO       #07*16+8,#06*16,#_bl_sce_m,#OBJ_MOJI_COL
                OBJ_MACRO       #08*16+8,#06*16,#_bl_sce_e,#OBJ_MOJI_COL
                OBJ_MACRO       #10*16+8,#06*16,#_bl_sce_o,#OBJ_MOJI_COL
                OBJ_MACRO       #11*16+8,#06*16,#_bl_sce_v,#OBJ_MOJI_COL
                OBJ_MACRO       #12*16+8,#06*16,#_bl_sce_e,#OBJ_MOJI_COL
                OBJ_MACRO       #13*16+8,#06*16,#_bl_sce_r,#OBJ_MOJI_COL
over_obj_end
                CMP.W           #60*2+20-1,D7
                BLE.S           overskipchk

                TST.W           _credit_look_1p-QA5(A5)
                BEQ.S           over100
overskipchk
                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
                ANDI.B          #(1.SHL.FIRE1^1.SHL.FIRE2^1.SHL.FIRE3^1.SHL.FIRE4),D0
                BEQ.S           over100

                CLR.W           D7
over100
                DBRA            D7,over_loop

                ALL_CLEAR

;;;;            CMP.W           #03,_player_flag-QA5(A5)
;;;;            BEQ.S           over200

;;;;        INCOME_ALLOVER      #00
;;;;            BRA.S           over300
over200
;;;;        INCOME_ALLOVER      #00
;;;;        INCOME_ALLOVER      #01
over300

                MOVE.W          #MODE_NOP*256+MODE_NOP,PLAYER_MODE

                MOVE.W          #00,_player_flag-QA5(A5)
                MOVE.B          #00,_game_condition-QA5(A5)
                EXIT

;                      ----+----1----+----2----+----3----+----4
STR_INSERT      ASCII '    INSERT COIN TO CONTINUE    '
STR_PUSH        ASCII ' PUSH START BUTTON TO CONTINUE '
STR_PUSH_1P     ASCII '   PUSH 1P START TO CONTINUE   '
STR_PUSH_2P     ASCII '   PUSH 2P START TO CONTINUE   '
STR_PUSH_1P_2P  ASCII 'PUSH 1P OR 2P START TO CONTINUE'
STR_TIMER       ASCII 'TIMER '

*****************************************************************
*                                                               *
*****************************************************************
ending:
                STOP            #PLAYERno
                STOP            #FIELDno

                ALL_CLEAR

                BSR             _level_disp             ;追加

                PRINT           06,16,#STR_ALLCLEAR,#WHITE
                MOVE.W          #60*06-1,D7
congr_loop
                RETSYS
                LEA.L           congr_tbl,A3
                TST.W           country_type-QA5(A5)
                BEQ.S           congr_100
                LEA.L           congr_tbl_e,A3
congr_100
                MOVE.W          #15-1,D6
congr_obj_loop
                MOVE.W          (A3)+,D0
                MOVE.W          (A3)+,D1
                MOVE.L          (A3)+,D4
                OBJ_MACRO       D0,D1,D4,#OBJ_MOJI_COL

                DBRA            D6,congr_obj_loop
                DBRA            D7,congr_loop

                ALL_CLEAR

                BSR             _level_disp             ;追加

                CMP.W           #03,_player_flag-QA5(A5)        ;←有り得ない
                BEQ.S           vs_ending

;;              MOVE.L          _player_work1+p_SCORE-QA5(A5),D0
;;              CMP.W           #01,_player_flag-QA5(A5)
;;              BEQ.S           p1_ending
;;              MOVE.L          _player_work2+p_SCORE-QA5(A5),D0
p1_ending
                TST.W           country_type-QA5(A5)
                BNE.S           ending_200

                JSR             _ending_disp

                SOUND           #sALLSTOP               ;とめる

                CMP.W           #USA,_credit_mode
                BNE.S           ending_100

                BSR             pass_word
ending_100
ending_200
                BSR             _level_disp             ;追加

                JSR             _name_regist

;;;;        INCOME_OVER      #000,D0,_round-QA5(A5)
;;;;            BRA.S           vs_ending100
vs_ending
;;;;        INCOME_OVER      #000,_player_work1+p_SCORE-QA5(A5),_round-QA5(A5)
;;;;        INCOME_OVER      #001,_player_work2+p_SCORE-QA5(A5),_round-QA5(A5)
vs_ending100
                BRA             game_end

congr_tbl
                DC.L            05*08*10000H+05*16,_bl_sco_c
                DC.L            07*08*10000H+05*16,_bl_sco_o
                DC.L            09*08*10000H+05*16,_bl_sco_n
                DC.L            11*08*10000H+05*16,_bl_sco_g
                DC.L            13*08*10000H+05*16,_bl_sco_r
                DC.L            15*08*10000H+05*16,_bl_sco_a
                DC.L            17*08*10000H+05*16,_bl_sco_t
                DC.L            19*08*10000H+05*16,_bl_sco_u
                DC.L            21*08*10000H+05*16,_bl_sco_l
                DC.L            23*08*10000H+05*16,_bl_sco_a
                DC.L            25*08*10000H+05*16,_bl_sco_t
                DC.L            27*08*10000H+05*16,_bl_sco_i
                DC.L            29*08*10000H+05*16,_bl_sco_o
                DC.L            31*08*10000H+05*16,_bl_sco_n
                DC.L            33*08*10000H+05*16,_bl_sco_s
congr_tbl_e
                DC.L            05*08*10000H+05*16,_bl_sce_c
                DC.L            07*08*10000H+05*16,_bl_sce_o
                DC.L            09*08*10000H+05*16,_bl_sce_n
                DC.L            11*08*10000H+05*16,_bl_sce_g
                DC.L            13*08*10000H+05*16,_bl_sce_r
                DC.L            15*08*10000H+05*16,_bl_sce_a
                DC.L            17*08*10000H+05*16,_bl_sce_t
                DC.L            19*08*10000H+05*16,_bl_sce_u
                DC.L            21*08*10000H+05*16,_bl_sce_l
                DC.L            23*08*10000H+05*16,_bl_sce_a
                DC.L            25*08*10000H+05*16,_bl_sce_t
                DC.L            27*08*10000H+05*16,_bl_sce_i
                DC.L            29*08*10000H+05*16,_bl_sce_o
                DC.L            31*08*10000H+05*16,_bl_sce_n
                DC.L            33*08*10000H+05*16,_bl_sce_s

STR_ALLCLEAR    ASCII 'YOU HAVE CLEARED ALL ROUNDS!!'

*-------------------------------------------------------------------------------*
intrude_check
        ;;;;    TST.W           _intrude_flag-QA5(A5)           ; rannyuu off
        ;;;;    BNE             intrude_end                     ;★ALWAYS ON

;;;;            TST.W           _credit-QA5(A5)
;;;;            BEQ.S           intrude_end
                LEA             _user_start-QA5(A5),A0
                MOVE.W          #01,D0                  ; 2P check
                MOVE.W          #01,D1                          ; 1P no
                MOVE.W          #02,D2                          ; 2P no
                CMP.W           #1,_player_flag-QA5(A5)
                BEQ.S           intrude100
                MOVE.W          #00,D0                  ; 1P check
                MOVE.W          #02,D1                          ; 2P no
                MOVE.W          #01,D2                          ; 1P no
intrude100
                CMP.B           #01,0(A0,D0.W)
                BNE.S           intrude_end

                JSR             select_sub_sub(PC)

                BSR             challenger

                CLR.W           win1p-QA5(A5)
                CLR.W           win2p-QA5(A5)
;;;;            SUB.W           #01,_credit-QA5(A5)

                MOVE.W          D1,challenge_flag-QA5(A5)
;;;;         INCOME_ADD         D2,_round-QA5(A5)

                MOVE.W          _round-QA5(A5),round_bak-QA5(A5)
                MOVE.W          _player_flag-QA5(A5),D0
                MOVE.W          D0,player_bak-QA5(A5)
                MOVE.L          _player_work1+p_SCORE-QA5(A5),D1
                SUB.W           #01,D0
                BEQ.S           score_back_up
                MOVE.L          _player_work2+p_SCORE-QA5(A5),D1
score_back_up
                MOVE.L          D1,score_bak-QA5(A5)

        IFNZ    VS_SCORE_BACKUP
                MOVE.L          vs_1p_score_bak-QA5(A5),_player_work1+p_SCORE-QA5(A5)
                MOVE.L          vs_2p_score_bak-QA5(A5),_player_work2+p_SCORE-QA5(A5)
        ELSE
                CLR.L           _player_work1+p_SCORE-QA5(A5)
                CLR.L           _player_work2+p_SCORE-QA5(A5)
        ENDC
        ;;;;    CLR.W           _round-QA5(A5)
                MOVE.W          vs_round_bak-QA5(A5),D0
                MOVE.W          D0,_round-QA5(A5)
                ADD.W           D0,_scene-QA5(A5)

                BSR             start_flag_intrude

                MOVE.W          #3,_player_flag-QA5(A5)
                BSET.B          #ROUNDCLR,_game_condition-QA5(A5)
                CLR.W           _roundclrflag-QA5(A5)   ;★
intrude_end
                RTS

*-------------------------------------------------------------------------------*
single_game
        IFNZ    HOMEUSE
                BSR             pause_check             ;★★
        ENDC
                BSR             intrude_check           ;★

                TST.W           _roundclrflag-QA5(A5)
                BEQ             single900

                BSR             mini_con_erase

                BSET.B          #ROUNDCLR,_game_condition-QA5(A5)
                MOVE.B          #2,_continue_mode-QA5(A5) ;乱入禁止(念の為)

                BSR             round_clr
                BSR             timer_bonus_init

                MOVE.W          #60*2-1,D7
disp_loop
                RETSYS
                BSR             timer_bonus_main
                DBRA            D7,disp_loop

                ADD.W           #01,_round-QA5(A5)
                ADD.W           #01,_scene-QA5(A5)
                CLR.W           _roundclrflag-QA5(A5)

                CMP.W           #MAX_ROUND,_round-QA5(A5)
                BLT.S           single800

                BSET.B          #GAMEOVER,_game_condition-QA5(A5)
single800
                CLR.B           _continue_mode-QA5(A5)          ;乱入許可
single899
                RTS
single900
        ;;;;    TST.W           _intrude_flag-QA5(A5)           ; rannyuu off
        ;;;;    BNE.S           single899                       ;★ALWAYS ON
        IFNZ    HOMEUSE
                TST.B           MVS_FLAG        ;家庭用はノーコイン時アニメ無し
                BNE.S           ?cont_check_off         ;MVS SKIP
                CMP.W           #01,_player_flag-QA5(a5)
                BEQ.S           ?2p_check
?1p_check
                TST.B           _credit_look_1p-QA5(A5)
                BEQ             single899
                BRA.S           ?cont_check_off
?2p_check
                TST.B           _credit_look_2p-QA5(A5)
                BEQ             single899
?cont_check_off
        ENDC

                CMP.W           #03,_player_flag-QA5(A5)        ;★すでに
                BEQ.S           single899                       ;乱入あり
                TST.B           _continue_mode-QA5(A5)  ;乱入できないときは
                BNE.S           single899               ;表示はない物と思え
;
;;;;↑moved     BSR             pause_check             ;★
;;;;↑moved     BSR             intrude_check

single1000      ;乱入受付表示
                MOVE.W          #04*08,D5
                MOVE.W          #P1_COL,col_mode-QA5(A5)
                CMP.W           #01,_player_flag-QA5(A5)
                BNE.S           single1100
                MOVE.W          #32*08,D5
                MOVE.W          #P2_COL,col_mode-QA5(A5)
single1100
                TST.W           _credit_up_flag-QA5(A5)
                BEQ.S           single1200
                CLR.W           anm_timer-QA5(A5)
                MOVE.L          #thk_anm_tbl,A4

                TST.W           country_type-QA5(A5)
                BEQ.S           single1200

                MOVE.L          #thk_anm_tble,A4
single1200
                MOVE.W          #000,D0

                CMP.W           #1,_player_flag-QA5(A5)         ;★
                BEQ             ?2p_join_in
?1p_join_in     ;2P PLAY
                TST.B           _credit_look_1p-QA5(A5)
                BEQ.S           ?thank_you_check
                MOVE.W          #008,D0
                BRA.S           ?thank_you_check
?2p_join_in     ;1P PLAY
                TST.B           _credit_look_2p-QA5(A5)
                BEQ.S           ?thank_you_check
                MOVE.W          #004,D0
?thank_you_check
single1300
                LEA.L           anm_data_tbl(PC),A0

                TST.W           country_type-QA5(A5)
                BEQ.S           single1400

                LEA.L           anm_data_tble(PC),A0
single1400
                MOVE.L          0(A0,D0.W),D0

                MOVE.L          D0,-(A7)
                JSR             anim_sub
                ADDQ.W          #LONG,A7
                RTS

anm_data_tbl
                DC.L            join_anm_tbl
                DC.L            push_anm_tbl2
                DC.L            push_anm_tbl1
anm_data_tble
                DC.L            join_anm_tble
                DC.L            push_anm_tbl2e
                DC.L            push_anm_tbl1e

join_anm_tbl
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card8
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card7
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card8
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card7
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card6
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card5
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card4
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card3
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card2
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card1
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card2
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card1
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card3
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card4
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card5
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card6
                DC.L            -1

thk_anm_tbl
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardb
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardc
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardb
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardc
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardb
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardc
                DC.L            -1
push_anm_tbl1
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardd
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_carde
                DC.L            -1
push_anm_tbl2
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardf
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardg
                DC.L            -1

join_anm_tble
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card8e
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card7e
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card8e
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card7e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card6e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card5e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card4e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card3e
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card2e
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card1e
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card2e
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_card1e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card3e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card4e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card5e
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_card6e
                DC.L            -1

thk_anm_tble
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardbe
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardce
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardbe
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardce
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardbe
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardce
                DC.L            -1
push_anm_tbl1e
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardde
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardee
                DC.L            -1
push_anm_tbl2e
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardfe
                DC.L            080000H+(0.SHL.14+BUB_COL),_bl_cardge
                DC.L            -1

*-------------------------------------------------------------------------------*
timer_bonus_init
                MOVE.L          #TIMER_BONUS_MAX,D0
                MOVE.L          round_timer-QA5(A5),D6
                DIVU            #60,D6
                EXT.L           D6
                SUB.W           #05,D6
                BLE.S           bonus_init100

                MULU            #SEC_SCORE,D6
                SUB.L           D6,D0
                BGT.S           bonus_init100

                MOVE.L          #-1,D0
                MOVE.L          D0,timer_bonus-QA5(A5)
                RTS
bonus_init100
                MOVE.L          D0,timer_bonus-QA5(A5)

                LEA.L           _player_work1+p_SCORE-QA5(A5),A0
                CMP.W           #01,_player_flag-QA5(A5)
                BEQ.S           bonus_init200
                LEA.L           _player_work2+p_SCORE-QA5(A5),A0
bonus_init200
                ADD.L           D0,(A0)
                RTS

*-------------------------------------------------------------------------------*
timer_bonus_main
                BSR             timer_disp

                MOVE.L          timer_bonus-QA5(A5),D6
                BLT             timer_bonus100

                MOVE.W          #05*16+8,D4
                MOVE.W          #06*16,D1
                BSR             obj_dec_disp2

                TST.W           country_type-QA5(A5)
                BNE.S           pts_bb
pts_pb
                OBJ_MACRO       #11*16+8,#06*16,#_bl_sco_p,#OBJ_MOJI_COL
                OBJ_MACRO       #12*16+8,#06*16,#_bl_sco_t,#OBJ_MOJI_COL
                OBJ_MACRO       #13*16+8,#06*16,#_bl_sco_s,#OBJ_MOJI_COL
                BRA.S           pts_end
pts_bb
                OBJ_MACRO       #11*16+8,#06*16,#_bl_sce_p,#OBJ_MOJI_COL
                OBJ_MACRO       #12*16+8,#06*16,#_bl_sce_t,#OBJ_MOJI_COL
                OBJ_MACRO       #13*16+8,#06*16,#_bl_sce_s,#OBJ_MOJI_COL
pts_end

                RTS
timer_bonus100
                TST.W           country_type-QA5(A5)
                BNE             nobonus_bb
nobonus_pb
                OBJ_MACRO       #06*16,#06*16,#_bl_sco_n,#OBJ_MOJI_COL
                OBJ_MACRO       #07*16,#06*16,#_bl_sco_o,#OBJ_MOJI_COL
                OBJ_MACRO       #09*16,#06*16,#_bl_sco_b,#OBJ_MOJI_COL
                OBJ_MACRO       #10*16,#06*16,#_bl_sco_o,#OBJ_MOJI_COL
                OBJ_MACRO       #11*16,#06*16,#_bl_sco_n,#OBJ_MOJI_COL
                OBJ_MACRO       #12*16,#06*16,#_bl_sco_u,#OBJ_MOJI_COL
                OBJ_MACRO       #13*16,#06*16,#_bl_sco_s,#OBJ_MOJI_COL
                BRA             nobonus_end
nobonus_bb
                OBJ_MACRO       #06*16,#06*16,#_bl_sce_n,#OBJ_MOJI_COL
                OBJ_MACRO       #07*16,#06*16,#_bl_sce_o,#OBJ_MOJI_COL
                OBJ_MACRO       #09*16,#06*16,#_bl_sce_b,#OBJ_MOJI_COL
                OBJ_MACRO       #10*16,#06*16,#_bl_sce_o,#OBJ_MOJI_COL
                OBJ_MACRO       #11*16,#06*16,#_bl_sce_n,#OBJ_MOJI_COL
                OBJ_MACRO       #12*16,#06*16,#_bl_sce_u,#OBJ_MOJI_COL
                OBJ_MACRO       #13*16,#06*16,#_bl_sce_s,#OBJ_MOJI_COL
nobonus_end
                RTS

timer_disp
                MOVE.L          round_timer-QA5(A5),D6
                DIVU            #60,D6
                EXT.L           D6
                MOVE.W          #07*16,D4
                MOVE.W          #04*16,D1
                BSR             obj_dec_disp
                ADD.W           #16*2,D4

                TST.W           country_type-QA5(A5)
                BNE.S           sec_bb
sec_pb
                OBJ_MACRO       D4,#04*16,#_bl_sco_s,#OBJ_MOJI_COL
                ADD.W           #16,D4
                OBJ_MACRO       D4,#04*16,#_bl_sco_e,#OBJ_MOJI_COL
                ADD.W           #16,D4
                OBJ_MACRO       D4,#04*16,#_bl_sco_c,#OBJ_MOJI_COL
                BRA.S           sec_end
sec_bb
                OBJ_MACRO       D4,#04*16,#_bl_sce_s,#OBJ_MOJI_COL
                ADD.W           #16,D4
                OBJ_MACRO       D4,#04*16,#_bl_sce_e,#OBJ_MOJI_COL
                ADD.W           #16,D4
                OBJ_MACRO       D4,#04*16,#_bl_sce_c,#OBJ_MOJI_COL
sec_end

                RTS

*-------------------------------------------------------------------------------*
double_game                                                     ;VSモード
                MOVE.W          _roundclrflag-QA5(A5),D0
                BEQ             double900
                                                                ;勝敗決着
                MOVE.W          set_no-QA5(A5),D1
                LEA.L           set_player-QA5(A5),A0
                MOVE.B          D0,0(A0,D1.W)
                ADD.W           #01,set_no-QA5(A5)

                BSET.B          #ROUNDCLR,_game_condition-QA5(A5)

                ADD.W           #01,_round-QA5(A5)
                ADD.W           #01,_scene-QA5(A5)
                CMP.W           #98,_round-QA5(A5)              ;★
                BLE             ?max_ok                         ;★
                MOVE.W          #98,_round-QA5(A5)              ;★
?max_ok                                                         ;★
                CMP.W           #03,_roundclrflag-QA5(A5)
                BEQ.S           draw
                CMP.W           #01,_roundclrflag-QA5(A5)
                BNE.S           p2_win
                                                                ;1P勝ち
                ADD.W           #01,win1p-QA5(A5)
                ADD.W           #01,_win1p-QA5(A5)
                MOVE.L          #chckn_win_1,chckn_tbl-QA5(A5)
                CLR.W           chckn_timer-QA5(A5)
                CLR.W           chckn_no-QA5(A5)
                BRA.S           double100
p2_win                                                          ;2P勝ち
                ADD.W           #01,win2p-QA5(A5)
                ADD.W           #01,_win2p-QA5(A5)
                MOVE.L          #chckn_win_2,chckn_tbl-QA5(A5)
                CLR.W           chckn_timer-QA5(A5)
                CLR.W           chckn_no-QA5(A5)
                BRA.S           double100
draw                                                            ;DRAW
                ADD.W           #01,win1p-QA5(A5)
                ADD.W           #01,win2p-QA5(A5)
                ADD.W           #01,_win1p-QA5(A5)
                ADD.W           #01,_win2p-QA5(A5)
double100                                       ;1P勝ち数リミットチェック
                CMP.W           #99,_win1p-QA5(A5)
                BLE.S           double120
                MOVE.W          #99,_win1p-QA5(A5)
double120                                       ;2P勝ち数リミットチェック
                CMP.W           #99,_win2p-QA5(A5)
                BLE.S           double130
                MOVE.W          #99,_win2p-QA5(A5)
double130                                                       ;決着ついたか
                MOVE.W          _much-QA5(A5),D0
                MOVE.W          D0,D1
                ASR.W           #01,D0
                SUB.W           D0,D1

                CLR.W           D0                      ;★変更
                CMP.W           win1p-QA5(A5),D1        ; 1P優先勝利処理を
                BGT.S           double190               ; ドロー時は元いた側
                ADDQ.W          #01,D0                  ; を残すようにした
double190                                               
                CMP.W           win2p-QA5(A5),D1        
                BGT.S           double200               
                ADDQ.W          #02,D0                  
double200                                               
                TST.W           D0                      
                BEQ             double220               
                                                        
                CMP.W           #3,D0                   ;3のとき
                BLT             double210               ;プレイヤーバックを
                MOVE.W          player_bak-QA5(A5),D0   ;参照する
                BEQ             double205               ;←念の為
                CMP.W           #3,D0                   ;←念の為
                BLT             double210               
double205                                               
                MOVE.W          #01,D0                  
double210                                               
                MOVE.W          D0,vs_winner-QA5(A5)    
                                                        ;決着ついたフラグセット
                MOVE.W          #-1,set_no-QA5(A5)
                BSET.B          #GAMEOVER,_game_condition-QA5(A5)

                CLR.W           win1p-QA5(A5)
                CLR.W           win2p-QA5(A5)
double220                                               ;誰が勝ったか表示
        ;;IFNZ  FIX_RESULT
                BSR             vs_plate_print
        ;;ENDC

                CMP.W           #03,_roundclrflag-QA5(A5)
                BEQ             draw_disp
                                                        ;1Pもしくは2Pの勝ち
        IFNZ    FIX_RESULT      ;-------------------------------------★
                MOVE.W          _roundclrflag-QA5(A5),D0
                SUB.W           #01,D0
                MOVE.W          D0,-(A7)
                JSR             _win_disp_init
                ADD.W           #WORD,A7

                SOUND           #sCLEAR1
        ;       MOVE.W          #60*6+30-1,D6
                MOVE.W          #60*4+00-1,D6   ;★高速化
double250
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)

                PUSH.L          D5-D6
                BSR             vs_score_disp
                POP.L           D5-D6

                RETSYS
                JSR             _win_disp_co_task
                DBRA            D6,double250

        ;       ERASE_BLOCK     2,10,#16,#4     
        ;       ERASE_BLOCK     22,10,#16,#4    
        IFNZ    VS_REDUCE
                ERASE_BLOCK     (2+1),09,#16,#6         ;
                ERASE_BLOCK     (22-1),09,#16,#6        ;
        ELSE
                ERASE_BLOCK     2,09,#16,#6     ;
                ERASE_BLOCK     22,09,#16,#6    ;
        ENDC
;;
;;              XREF            _fx_won,_fx_lost
;;              CMP.W           #1,_roundclrflag-QA5(A5)
;;              BNE.S           double222
;;              ;1P WON
;;              PRINT_BLOCK     2,10,#_fx_won,#FIX_WON_COL
;;              PRINT_BLOCK     22,10,#_fx_lost,#FIX_WON_COL
;;              BRA.S           double225
;;double222     ;2P WON
;;              PRINT_BLOCK     2,10,#_fx_lost,#FIX_WON_COL
;;              PRINT_BLOCK     22,10,#_fx_won,#FIX_WON_COL
;;double225
;;              SOUND           #sCLEAR1
;;              MOVE.W          #60*6+30-1,D6
;;double250
;;              MOVE.B          #00,_ply1_sw_jst-QA5(A5)
;;              MOVE.B          #00,_ply2_sw_jst-QA5(A5)
;;
;;              PUSH.L          D5-D6
;;              BSR             vs_score_disp
;;              POP.L           D5-D6
;;
;;              RETSYS
;;
;;              DBRA            D6,double250
;;              ERASE_BLOCK     2,10,#16,#4
;;              ERASE_BLOCK     22,10,#16,#4
        ELSE                    ;-------------------------------------
                MOVE.W          _roundclrflag-QA5(A5),D0
                SUB.W           #01,D0
                MOVE.W          D0,-(A7)
                JSR             _win_disp_init
                ADD.W           #WORD,A7

                SOUND           #sCLEAR1
        ;       MOVE.W          #60*6+30-1,D6
                MOVE.W          #60*4+00-1,D6   ;★高速化
double250
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)

                PUSH.L          D5-D6
                BSR             vs_score_disp
                POP.L           D5-D6

                RETSYS

                JSR             _win_disp_co_task

                DBRA            D6,double250
        ENDC                    ;-------------------------------------★
double270                                       ;終わっている? ←DRAW戻り
                TST.W           set_no-QA5(A5)
                BGE             double300
                                                ;終わっているので戦績画面
                BSR             result_disp

                MOVE.W  _round-QA5(A5),vs_round_bak-QA5(A5)
        IFNZ    VS_SCORE_BACKUP
                MOVE.L  _player_work1+p_SCORE-QA5(A5),vs_1p_score_bak-QA5(A5)
                MOVE.L  _player_work2+p_SCORE-QA5(A5),vs_2p_score_bak-QA5(A5)
        ENDC

                TST.W           challenge_flag-QA5(A5)          ;乱入MODE ?
                BEQ             double300
                                                                ;YES
        ;;      CLR.W           _win1p-QA5(A5)
        ;;      CLR.W           _win2p-QA5(A5)

                MOVE.W  #10*60,mini_cont_time-QA5(A5)   ;MINI CONTINUE
                CLR.W   mini_cont_sign-QA5(A5)          ;
        IFNZ    HOMEUSE
                MOVE.B          #1,_vs_cont_flag-QA5(A5)
        ENDC
                CLR.B           _continue_mode-QA5(A5)          ;乱入許可

                BCLR.B          #GAMEOVER,_game_condition-QA5(A5)

                MOVE.W          round_bak-QA5(A5),_round-QA5(A5)
                MOVE.W          _round-QA5(A5),_scene-QA5(A5)
                CLR.L           _player_work1+p_SCORE-QA5(A5)
                CLR.L           _player_work2+p_SCORE-QA5(A5)
                CLR.W           challenge_flag-QA5(A5)
                MOVE.W          vs_winner-QA5(A5),D7
                MOVE.W          D7,_player_flag-QA5(A5)
                                                ;Ikinokori
                CMP.W           #01,D7
                BEQ.S           double920
                                                                ;2P残り
;;;;        INCOME_OVER      #000,_player_work1+p_SCORE-QA5(A5),_round-QA5(A5)
                CLR.B           _user_start-QA5(A5)             ;1Pクリア
                MOVE.B          #MODE_CONT,PLAYER_MODE          ;1P CONT

                CMP.W           player_bak-QA5(A5),D7
                BNE.S           double300
                MOVE.L          score_bak-QA5(A5),_player_work2+p_SCORE-QA5(A5)
                BRA.S           double300
double920                                                       ;1P残り
;;;;        INCOME_OVER      #001,_player_work2+p_SCORE-QA5(A5),_round-QA5(A5)
                CLR.B           _user_start+BYTE-QA5(A5)        ;2Pクリア
                MOVE.B          #MODE_CONT,PLAYER_MODE+BYTE     ;2P CONT

                CMP.W           player_bak-QA5(A5),D7
                BNE.S           double300
                MOVE.L          score_bak-QA5(A5),_player_work1+p_SCORE-QA5(A5)
double300                                                       ;次の面
                CLR.W           _roundclrflag-QA5(A5)
                BRA.S           double999       ;★最後が変だからなおす
double900                                                       ;リターン
        IFNZ    HOMEUSE
                BSR             pause_check             ;★
        ENDC
                BSR             vs_score_disp
double999
                RTS

*--------------*
draw_disp                                                       ;ドロー表示
                SOUND           #sCLEAR1
        IFNZ    FIX_RESULT      ;-------------------------------------★
                JSR             _draw_disp_init

        ;       MOVE.W          #60*6+30-1,D7
                MOVE.W          #60*4+00-1,D7   ;★高速化
double400
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)

                BSR             vs_score_disp

                JSR             _draw_disp_co_task

                RETSYS
                DBRA            D7,double400
                ERASE_BLOCK     12,10,#16,#4
                BRA             double270

;;              XREF            _fx_draw
;;              PRINT_BLOCK     12,10,#_fx_draw,#FIX_WON_COL
;;              MOVE.W          #60*6+30-1,D7
;;double400
;;              MOVE.B          #00,_ply1_sw_jst-QA5(A5)
;;              MOVE.B          #00,_ply2_sw_jst-QA5(A5)
;;
;;              BSR             vs_score_disp
;;
;;              RETSYS
;;              DBRA            D7,double400
;;              ERASE_BLOCK     12,10,#16,#4
;;              BRA             double270
        ELSE                    ;-------------------------------------

        ;       MOVE.W          #60*6+30-1,D7
                MOVE.W          #60*4+00-1,D7   ;★高速化
double400
                MOVE.B          #00,_ply1_sw_jst-QA5(A5)
                MOVE.B          #00,_ply2_sw_jst-QA5(A5)

                BSR             vs_score_disp

                RETSYS
                OBJ_MACRO       #06*16,#05*16,#_bl_draw,#WON_COL
                DBRA            D7,double400
                BRA             double270
        ENDC                    ;-------------------------------------★

*-------------------------------------------------------------------------------*
result_disp                                                     ;戦績表示
                CMP.W           #1,_much-QA5(A5)
                BEQ             result_skip_mode

                LEA.L           result_work-QA5(A5),A4
        ;;IFNZ  FIX_RESULT      ;-------------------------------------★
                MOVE.W          #03,D6
                MOVE.W          #5-1,D7
res_init_loop                                   ;初期化(位置初期化、表示=ヌル)
        IFNZ    VS_REDUCE
                MOVE.W          #02+1,o_XPOS(A4)
        ELSE
                MOVE.W          #02,o_XPOS(A4)
        ENDC
                MOVE.W          D6,o_YPOS(A4)
                CLR.L           o_BLADDR(A4)
                LEA.L           SIZEOFresult(A4),A4

        IFNZ    VS_REDUCE
                MOVE.W          #22-1,o_XPOS(A4)
        ELSE
                MOVE.W          #22,o_XPOS(A4)
        ENDC
                MOVE.W          D6,o_YPOS(A4)
                CLR.L           o_BLADDR(A4)
                LEA.L           SIZEOFresult(A4),A4
                ADD.W           #04,D6
                DBRA            D7,res_init_loop
        ;;ELSE                  ;-------------------------------------
;;              MOVE.W          #01*16+8,D6
;;              MOVE.W          #5-1,D7
;;res_init_loop                                 ;初期化(位置初期化、表示=ヌル)
;;              MOVE.W          #01*16,o_XPOS(A4)
;;              MOVE.W          D6,o_YPOS(A4)
;;              CLR.L           o_BLADDR(A4)
;;              LEA.L           SIZEOFresult(A4),A4
;;
;;              MOVE.W          #11*16,o_XPOS(A4)
;;              MOVE.W          D6,o_YPOS(A4)
;;              CLR.L           o_BLADDR(A4)
;;              LEA.L           SIZEOFresult(A4),A4
;;              ADD.W           #16*2,D6
;;              DBRA            D7,res_init_loop
        ;;ENDC                  ;-------------------------------------★
                                                                ;表示メイン
                LEA.L           result_work-QA5(A5),A3
                CLR.W           set_no-QA5(A5)
                MOVE.W          #60*5,D5
                MOVE.W          #60*5,D7
res_main_loop                                                   ;ループ
                RETSYS

                PUSH.L          D7

                PUSH.L          D5
                BSR             vs_score_disp
                POP.L           D5

                CMP.W           D7,D5
                BLT.S           res_main_100
                SUB.W           #30,D5

                MOVE.W          set_no-QA5(A5),D0
                CMP.W           #05,D0
                BGE.S           res_main_100
                ADD.W           #01,set_no-QA5(A5)
                BRA             res_obj_set                     ;表示セット
res_main_100                                                    ;戻り位置
        ;;IFNZ  FIX_RESULT
        ;;ELSE
;;              PUSH.L          D5
;;              BSR             res_obj_disp                    ;表示実行
;;              POP.L           D5
        ;;ENDC
                POP.L           D7

                MOVE.B          _ply1_sw-QA5(A5),D0
                AND.B           _ply2_sw-QA5(A5),D0
                AND.W           #0F0H,D0
                CMP.W           #0F0H,D0
                BEQ.S           cansel_050
                SUB.W           #25,D7
                BGE.S           cansel_050
                CLR.W           D7
cansel_050
                DBRA            D7,res_main_loop
res_disp_skip
        ;;IFNZ  FIX_RESULT      ;-------------------------------------★
                                                                ;勝者表示
                ERASE_BLOCK     15,23,#10,#4            ;VSプレート消去

                MOVE.W          win1p-QA5(A5),D0
                CMP.W           win2p-QA5(A5),D0
                BEQ             res_main_203
                BLE.S           res_main_202
res_main_201
                MOVE.W          #00,D6
                BRA.S           res_main_209
res_main_202
                MOVE.W          #04,D6
                BRA.S           res_main_209
res_main_203
                MOVE.W          #08,D6
res_main_209
                LEA.L           player_no_tbl,A0
                TST.W           country_type-QA5(A5)
                BEQ.S           res_main_210
                LEA.L           player_no_tbl_e,A0
res_main_210
                MOVE.L          0(A0,D6.W),D6
                PRINT_BLOCK     11,24,D6,#FIX_MOJI_COL
                MOVE.W          #60*2,D7
res_main_loop2
                RETSYS

                CMP.W           #1,_much-QA5(A5)
                BEQ             res_main_290    ;マッチ1の時キャンセル不可

                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
                ANDI.W          #0F0H,D0
                BEQ.S           res_main_290
                CLR.W           D7
res_main_290
                DBRA            D7,res_main_loop2

                ERASE_BLOCK     11,24,#18,#2            ;勝ち負け
        IFNZ    VS_REDUCE
                ERASE_BLOCK     (2+1),3,#16,#20         ;WON!/LOST 1P
                ERASE_BLOCK     (22-1),3,#16,#20        ;WON!/LOST 2P
        ELSE
                ERASE_BLOCK     2,3,#16,#20             ;WON!/LOST 1P
                ERASE_BLOCK     22,3,#16,#20            ;WON!/LOST 2P
        ENDC

                CLR.W           win1p-QA5(A5)
                CLR.W           win2p-QA5(A5)
                CLR.W           set_no-QA5(A5)
                CLR.L           set_player-QA5(A5)
                CLR.W           set_player+LONG-QA5(A5)
                RTS

                XREF            _fx_winner1p,_fx_winner2p,_fx_drawgame
                XREF            _fx_einner1p,_fx_einner2p,_fx_erawgame
player_no_tbl
                DC.L            _fx_winner1p,_fx_winner2p,_fx_drawgame
player_no_tbl_e
                DC.L            _fx_einner1p,_fx_einner2p,_fx_erawgame

        ;;ELSE                  ;-------------------------------------
;;                                                              ;勝者表示
;;              MOVE.W          #00,D6
;;;;            MOVE.L          #_bl_sco_1,D6
;;              MOVE.W          win1p-QA5(A5),D0
;;              CMP.W           win2p-QA5(A5),D0
;;              BEQ             res_main_400
;;              BGT.S           res_main_200
;;;;            MOVE.L          #_bl_sco_2,D6
;;              MOVE.W          #04,D6
;;res_main_200
;;              LEA.L           player_no_tbl,A0
;;              TST.W           country_type-QA5(A5)
;;              BEQ.S           res_main_210
;;              LEA.L           player_no_tbl_e,A0
;;res_main_210
;;              MOVE.L          0(A0,D6.W),D6
;;              MOVE.W          #60*2,D7
;;res_main_loop2
;;              RETSYS
;;              PUSH.L          D5-D7
;;              BSR             res_obj_disp
;;              POP.L           D5-D7
;;
;;              TST.W           country_type-QA5(A5)
;;              BNE             res_main_250
;;
;;              PUSH.L          D5-D7
;;              OBJ_MACRO       #05*16,#12*16,#_bl_sco_w,#OBJ_MOJI_COL
;;              OBJ_MACRO       #06*16,#12*16,#_bl_sco_i,#OBJ_MOJI_COL
;;              OBJ_MACRO       #07*16,#12*16,#_bl_sco_n,#OBJ_MOJI_COL
;;              OBJ_MACRO       #08*16,#12*16,#_bl_sco_n,#OBJ_MOJI_COL
;;              OBJ_MACRO       #09*16,#12*16,#_bl_sco_e,#OBJ_MOJI_COL
;;              OBJ_MACRO       #10*16,#12*16,#_bl_sco_r,#OBJ_MOJI_COL
;;              OBJ_MACRO       #12*16,#12*16,D6,#OBJ_MOJI_COL
;;              OBJ_MACRO       #13*16,#12*16,#_bl_sco_p,#OBJ_MOJI_COL
;;              POP.L           D5-D7
;;              BRA             res_main_280
;;res_main_250
;;              PUSH.L          D5-D7
;;              OBJ_MACRO       #05*16,#12*16,#_bl_sce_w,#OBJ_MOJI_COL
;;              OBJ_MACRO       #06*16,#12*16,#_bl_sce_i,#OBJ_MOJI_COL
;;              OBJ_MACRO       #07*16,#12*16,#_bl_sce_n,#OBJ_MOJI_COL
;;              OBJ_MACRO       #08*16,#12*16,#_bl_sce_n,#OBJ_MOJI_COL
;;              OBJ_MACRO       #09*16,#12*16,#_bl_sce_e,#OBJ_MOJI_COL
;;              OBJ_MACRO       #10*16,#12*16,#_bl_sce_r,#OBJ_MOJI_COL
;;              OBJ_MACRO       #12*16,#12*16,D6,#OBJ_MOJI_COL
;;              OBJ_MACRO       #13*16,#12*16,#_bl_sce_p,#OBJ_MOJI_COL
;;              POP.L           D5-D7
;;res_main_280
;;              MOVE.B          _ply1_sw_jst-QA5(A5),D0
;;              OR.B            _ply2_sw_jst-QA5(A5),D0
;;              ANDI.W          #0F0H,D0
;;              BEQ.S           res_main_290
;;              CLR.W           D7
;;res_main_290
;;              DBRA            D7,res_main_loop2
;;res_main_300
;;              CLR.W           win1p-QA5(A5)
;;              CLR.W           win2p-QA5(A5)
;;              CLR.W           set_no-QA5(A5)
;;              CLR.L           set_player-QA5(A5)
;;              CLR.W           set_player+LONG-QA5(A5)
;;              RTS
;;player_no_tbl
;;              DC.L            _bl_sco_1,_bl_sco_2
;;player_no_tbl_e
;;              DC.L            _bl_sce_1,_bl_sce_2
;;
;;res_main_400
;;              MOVE.W          #60*2,D7
;;res_main_loop3
;;              RETSYS
;;              PUSH.L          D5-D7
;;              BSR             res_obj_disp
;;
;;              TST.W           country_type-QA5(A5)
;;              BNE             res_draw_100
;;
;;              OBJ_MACRO       #06*16,#12*16,#_bl_sco_d,#OBJ_MOJI_COL
;;              OBJ_MACRO       #07*16,#12*16,#_bl_sco_r,#OBJ_MOJI_COL
;;              OBJ_MACRO       #08*16,#12*16,#_bl_sco_a,#OBJ_MOJI_COL
;;              OBJ_MACRO       #09*16,#12*16,#_bl_sco_w,#OBJ_MOJI_COL
;;              OBJ_MACRO       #10*16,#12*16,#_bl_sco_g,#OBJ_MOJI_COL
;;              OBJ_MACRO       #11*16,#12*16,#_bl_sco_a,#OBJ_MOJI_COL
;;              OBJ_MACRO       #12*16,#12*16,#_bl_sco_m,#OBJ_MOJI_COL
;;              OBJ_MACRO       #13*16,#12*16,#_bl_sco_e,#OBJ_MOJI_COL
;;              BRA             res_draw_200
;;res_draw_100
;;              OBJ_MACRO       #06*16,#12*16,#_bl_sce_d,#OBJ_MOJI_COL
;;              OBJ_MACRO       #07*16,#12*16,#_bl_sce_r,#OBJ_MOJI_COL
;;              OBJ_MACRO       #08*16,#12*16,#_bl_sce_a,#OBJ_MOJI_COL
;;              OBJ_MACRO       #09*16,#12*16,#_bl_sce_w,#OBJ_MOJI_COL
;;              OBJ_MACRO       #10*16,#12*16,#_bl_sce_g,#OBJ_MOJI_COL
;;              OBJ_MACRO       #11*16,#12*16,#_bl_sce_a,#OBJ_MOJI_COL
;;              OBJ_MACRO       #12*16,#12*16,#_bl_sce_m,#OBJ_MOJI_COL
;;              OBJ_MACRO       #13*16,#12*16,#_bl_sce_e,#OBJ_MOJI_COL
;;res_draw_200
;;              POP.L           D5-D7
;;
;;              MOVE.B          _ply1_sw_jst-QA5(A5),D0
;;              OR.B            _ply2_sw_jst-QA5(A5),D0
;;              AND.W           #0F0H,D0
;;              BEQ.S           cansel_050x
;;              CLR.W           D7
;;cansel_050x
;;
;;              DBRA            D7,res_main_loop3
;;              BRA             res_main_300
;;
        ;;ENDC                  ;-------------------------------------★

*-------------------------------------------------------------------------------*
result_skip_mode
                LEA.L           set_player-QA5(A5),A0
                MOVE.B          (A0),D1
                BEQ             ?res_skip_exit
                SUBQ.B          #1,D1
                BEQ             ?1p_won
                SUBQ.B          #1,D1
                BEQ             ?2p_won
?draw_game
                ADD.W           #01,win1p-QA5(A5)
                ADD.W           #01,win2p-QA5(A5)
                BRA.S           ?res_skip_exit
?1p_won
                ADD.W           #01,win1p-QA5(A5)
                BRA.S           ?res_skip_exit
?2p_won
                ADD.W           #01,win2p-QA5(A5)
?res_skip_exit
                BRA             res_disp_skip

*-------------------------------------------------------------------------------*
res_obj_set
                LEA.L           set_player-QA5(A5),A0
                MOVE.B          0(A0,D0.W),D1
                EXT.W           D1
                LSL.W           #1,D1
                MOVE.W          res_obj_tbl(PC,D1.W),D0
                JMP             res_obj_tbl(PC,D0.W)
res_obj_tbl
                DC.W            nodata-res_obj_tbl  ; dummy
                DC.W            p1_wons-res_obj_tbl  ;  01
                DC.W            p2_wons-res_obj_tbl  ;  02
                DC.W            draws-res_obj_tbl    ;  03
        ;;IFNZ  FIX_RESULT      ;-------------------------------------★
p1_wons
        XREF    _fx_won,_fx_lost,_fx_draw
                MOVE.L          #_fx_won,o_BLADDR(A3)
                MOVE.L          #_fx_lost,o_BLADDR+SIZEOFresult(A3)
                MASK_BLOCK      o_XPOS(A3),o_YPOS(A3),o_BLADDR(A3),#FIX_WON_COL
                MASK_BLOCK      o_XPOS+SIZEOFresult(A3),o_YPOS+SIZEOFresult(A3),o_BLADDR+SIZEOFresult(A3),#FIX_WON_COL
                LEA.L           SIZEOFresult*2(A3),A3
                ADD.W           #01,win1p-QA5(A5)
                BRA             res_main_100
p2_wons
                MOVE.L          #_fx_lost,o_BLADDR(A3)
                MOVE.L          #_fx_won,o_BLADDR+SIZEOFresult(A3)
                MASK_BLOCK      o_XPOS(A3),o_YPOS(A3),o_BLADDR(A3),#FIX_WON_COL
                MASK_BLOCK      o_XPOS+SIZEOFresult(A3),o_YPOS+SIZEOFresult(A3),o_BLADDR+SIZEOFresult(A3),#FIX_WON_COL
                LEA.L           SIZEOFresult*2(A3),A3
                ADD.W           #01,win2p-QA5(A5)
                BRA             res_main_100
draws
                MOVE.L          #_fx_draw,o_BLADDR(A3)
                MOVE.L          #_fx_draw,o_BLADDR+SIZEOFresult(A3)
                MASK_BLOCK      o_XPOS(A3),o_YPOS(A3),o_BLADDR(A3),#FIX_WON_COL
                MASK_BLOCK      o_XPOS+SIZEOFresult(A3),o_YPOS+SIZEOFresult(A3),o_BLADDR+SIZEOFresult(A3),#FIX_WON_COL
                LEA.L           SIZEOFresult*2(A3),A3
                ADD.W           #01,win1p-QA5(A5)
                ADD.W           #01,win2p-QA5(A5)
nodata
                BRA             res_main_100
        ;;ELSE                  ;-------------------------------------
;;p1_wons
;;              MOVE.L          #_bl_won,o_BLADDR(A3)
;;              MOVE.L          #_bl_lost,o_BLADDR+SIZEOFresult(A3)
;;              LEA.L           SIZEOFresult*2(A3),A3
;;              ADD.W           #01,win1p-QA5(A5)
;;              BRA             res_main_100
;;p2_wons
;;              MOVE.L          #_bl_lost,o_BLADDR(A3)
;;              MOVE.L          #_bl_won,o_BLADDR+SIZEOFresult(A3)
;;              LEA.L           SIZEOFresult*2(A3),A3
;;              ADD.W           #01,win2p-QA5(A5)
;;              BRA             res_main_100
;;draws
;;              MOVE.L          #_bl_draw,o_BLADDR(A3)
;;              MOVE.L          #_bl_draw,o_BLADDR+SIZEOFresult(A3)
;;              LEA.L           SIZEOFresult*2(A3),A3
;;              ADD.W           #01,win1p-QA5(A5)
;;              ADD.W           #01,win2p-QA5(A5)
;;nodata
;;              BRA             res_main_100
        ;;ENDC                  ;-------------------------------------★

*-------------------------------------------------------------------------------*
        ;;IFNZ  FIX_RESULT
        ;;ELSE  
;;res_obj_disp
;;              LEA.L           result_work-QA5(A5),A4
;;              MOVE.W          #5-1,D6
;;res_obj_loop
;;              MOVE.L          o_BLADDR(A4),D4
;;              BEQ.S           res_obj_100
;;              OBJ_MACRO       o_XPOS(A4),o_YPOS(A4),D4,#WON_COL
;;res_obj_100
;;              LEA.L           SIZEOFresult(A4),A4
;;              MOVE.L          o_BLADDR(A4),D4
;;              BEQ.S           res_obj_200
;;              OBJ_MACRO       o_XPOS(A4),o_YPOS(A4),D4,#WON_COL
;;res_obj_200
;;              LEA.L           SIZEOFresult(A4),A4
;;              DBRA            D6,res_obj_loop
;;              RTS
        ;;ENDC

*-------------------------------------------------------------------------------*
anim_sub
                LINK            A6,#00
                SUB.W           #01,anm_timer-QA5(A5)
                BGT.S           anim200

                MOVE.W          (A4),D3
                BGT.S           anim150
                MOVE.L          BASE_A6(A6),A4
anim150
                MOVE.W          (A4)+,anm_timer-QA5(A5)
                MOVE.W          (A4)+,D3        ; dummy
                MOVE.L          (A4)+,D3        ; dummy
anim200
                OBJ_MACRO       D5,#12*16-8,-LONG(A4),col_mode-QA5(A5)
                UNLK            A6
                RTS

*-------------------------------------------------------------------------------*
vs_score_disp
                CMP.W           #03,_player_flag-QA5(A5)
                BNE             vs_score_end

                PUSH.L          D7

                MOVE.W          dia_1_timer-QA5(A5),D0
                SUB.W           #01,D0
                BGE.S           dia_anm_100
                JSR             _make_rnd
                ANDI.W          #1FH,D0
                ADD.W           #60*1,D0
                ADD.W           #01,dia_1_no-QA5(A5)
                AND.W           #03,dia_1_no-QA5(A5)
                BEQ.S           dia_anm_100
                AND.W           #07,D0
dia_anm_100
                MOVE.W          D0,dia_1_timer-QA5(A5)

                MOVE.W          dia_2_timer-QA5(A5),D0
                SUB.W           #01,D0
                BGE.S           dia_anm_200
                JSR             _make_rnd
                ANDI.W          #1FH,D0
                ADD.W           #60*1,D0
                ADD.W           #01,dia_2_no-QA5(A5)
                AND.W           #03,dia_2_no-QA5(A5)
                BEQ.S           dia_anm_200
                AND.W           #07,D0
dia_anm_200
                MOVE.W          D0,dia_2_timer-QA5(A5)

        IFNZ    VS_REDUCE
                MOVE.W          #12*8,D6
        ELSE
                MOVE.W          #05*8,D6
        ENDC
                MOVE.W          win1p-QA5(A5),D7
                BEQ.S           dia_100

                MOVE.W          dia_1_no-QA5(A5),D0
                LEA.L           dia_tbl,A0
                LSL.W           #2,D0
                MOVE.L          0(A0,D0.W),D5
                MOVE.W          dia_1p_LSP-QA5(A5),D3           ;★
dia_050
        ;;      OBJ_MACRO       #18*8,D6,D5,#DIA_COL
        IFNZ    VS_REDUCE
                MOVE.W          D6,D0                           ;
                MOVE.W          #00,D1                          ;
                MOVE.W          #DIA_COL,D2                     ;
                MOVE.L          D5,A0                           ;
                MOVE.W          D3,-(SP)                        ;
                RO_OBJ                                          ;
                MOVE.W          (SP)+,D3                        ;
                ADDQ.W          #1,D3                           ;
                ADD.W           #16,D6          
        ELSE
                MOVE.W          #18*8,D0                        ;
                MOVE.W          D6,D1                           ;
                MOVE.W          #DIA_COL,D2                     ;
                MOVE.L          D5,A0                           ;
                MOVE.W          D3,-(SP)                        ;
                RO_OBJ                                          ;
                MOVE.W          (SP)+,D3                        ;
                ADDQ.W          #1,D3                           ;
                ADD.W           #-12,D6
        ENDC
                SUB.W           #01,D7
                BGT.S           dia_050
dia_100
        IFNZ    VS_REDUCE
                MOVE.W          #320-(14*8),D6
        ELSE
                MOVE.W          #05*8,D6
        ENDC
                MOVE.W          win2p-QA5(A5),D7
                BEQ.S           dia_200

                MOVE.W          dia_2_no-QA5(A5),D0
                LEA.L           dia_tbl,A0
                LSL.W           #2,D0
                MOVE.L          0(A0,D0.W),D5
                MOVE.W          dia_2p_LSP-QA5(A5),D3           ;★
dia_150
        ;;      OBJ_MACRO       #20*8,D6,D5,#DIA_COL
        IFNZ    VS_REDUCE
                MOVE.W          D6,D0                           ;
                MOVE.W          #00,D1                          ;
                MOVE.W          #DIA_COL,D2                     ;
                MOVE.L          D5,A0                           ;
                MOVE.W          D3,-(SP)                        ;
                RO_OBJ                                          ;
                MOVE.W          (SP)+,D3                        ;
                ADDQ.W          #1,D3                           ;
                ADD.W           #-16,D6         
        ELSE
                MOVE.W          #20*8,D0                        ;
                MOVE.W          D6,D1                           ;
                MOVE.W          #DIA_COL,D2                     ;
                MOVE.L          D5,A0                           ;
                MOVE.W          D3,-(SP)                        ;
                RO_OBJ                                          ;
                MOVE.W          (SP)+,D3                        ;
                ADDQ.W          #1,D3                           ;
                ADD.W           #-12,D6
        ENDC
                SUB.W           #01,D7
                BGT.S           dia_150
dia_200
        ;;IFNZ  FIX_RESULT
        ;;ELSE
;;              MOVE.W          _win1p-QA5(A5),D6
;;              MOVE.W          #07*16+8,D4
;;              MOVE.W          #12*16+2,D1
;;              BSR             obj_dec_disp
;;
;;              MOVE.W          _win2p-QA5(A5),D6
;;              MOVE.W          #10*16+8,D4
;;              MOVE.W          #12*16+2,D1
;;              BSR             obj_dec_disp
        ;;ENDC
                TST.W           country_type-QA5(A5)
                BNE             vs_score_100

                MOVE.L          chckn_tbl-QA5(A5),D0
                BEQ.S           vs_score_010

                SUB.W           #01,chckn_timer-QA5(A5)
                BGT.S           vs_score_050

                MOVE.L          D0,A0
                ADD.W           #04,chckn_no-QA5(A5)
                MOVE.W          chckn_no-QA5(A5),D0
                MOVE.L          0(A0,D0.W),D0
                BGT.S           vs_score_005
                CLR.W           chckn_no-QA5(A5)
vs_score_005
                MOVE.W          #04,chckn_timer-QA5(A5)

                MOVE.L          chckn_tbl-QA5(A5),D0
                BRA.S           vs_score_050
vs_score_010
                TST.W           chckn_timer-QA5(A5)
                BGT.S           vs_score_030
                JSR             _make_rnd
                ANDI.W          #3FH,D0
                MOVE.W          D0,chckn_timer-QA5(A5)
                JSR             _make_rnd
                ANDI.W          #0FH,D0
                LSL.W           #2,D0
                MOVE.W          D0,chckn_no-QA5(A5)
vs_score_030
                MOVE.L          #chckn_rnd_tbl,D0
                SUB.W           #01,chckn_timer-QA5(A5)
vs_score_050
                MOVE.L          D0,A0
                MOVE.W          chckn_no-QA5(A5),D0
        ;;      MOVE.L          0(A0,D0.W),D6
                MOVE.L          0(A0,D0.W),A0
                MOVE.W          chckn_LSP-QA5(A5),D3
        ;;      OBJ_MACRO       #09*16+8,#12*16+8,D6,#CHACKN_COL
                MOVE.W          #09*16+8,D0
                MOVE.W          #12*16+8,D1
                MOVE.W          #CHACKN_COL,D2
                RO_OBJ
vs_score_100
;;      IFNZ    VS_REDUCE                                       ;0919
;;          XREF        _bl_dolbar                              ;0919
;;              MOVE.W          chckn_LSP-QA5(A5),D3            ;0919
;;              SUBQ.W          #1,D3                           ;0919
;;              MOVE.W          #09*16+8,D0                     ;0919
;;              MOVE.W          #12*16,D1                       ;0919
;;              MOVE.W          #BUB_COL,D2                     ;0919
;;              MOVE.L          #_bl_dolbar,A0                  ;0919
;;              RO_OBJ                                          ;0919
;;      ENDC                                                    ;0919
        ;;IFNZ  FIX_RESULT
        ;;ELSE
;;              OBJ_MACRO       #07*16+8,#12*16-6,#_bl_vs_score,#OBJ_PLATE_COL
        ;;ENDC

                POP.L           D7
vs_score_end
                RTS

dia_tbl
                DC.L            _bl_food1
                DC.L            _bl_food2
                DC.L            _bl_food3
                DC.L            _bl_food4
chckn_rnd_tbl
                DC.L            _bl_chackn      ; 00
                DC.L            _bl_chackn1     ; 01
                DC.L            _bl_chackn2     ; 02
                DC.L            _bl_chackn3     ; 03
                DC.L            _bl_chackn4     ; 04
                DC.L            _bl_chackn5     ; 05
                DC.L            _bl_chackn6     ; 06
                DC.L            _bl_chackn7     ; 07
                DC.L            _bl_chackn8     ; 08
                DC.L            _bl_chackn9     ; 09
                DC.L            _bl_chackna     ; 10
                DC.L            _bl_chacknb     ; 11
                DC.L            _bl_chackn3     ; 12
                DC.L            _bl_chackn5     ; 13
                DC.L            _bl_chackna     ; 14
                DC.L            _bl_chacknb     ; 15
chckn_win_1
                DC.L            _bl_chacknc
                DC.L            _bl_chacknd
                DC.L            -1
chckn_win_2
                DC.L            _bl_chackne
                DC.L            _bl_chacknf
                DC.L            -1

*-------------------------------------------------------------------------------*
        ;;IFNZ  FIX_RESULT
vs_plate_print
                CMP.W           #03,_player_flag-QA5(A5)
                BNE             vs_plate_end
                XREF            _fx_vs_score
                PRINT_BLOCK     15,23,#_fx_vs_score,#FIX_PANEL_COL
                MOVE.W          _win1p-QA5(A5),D6
                MOVE.W          #15,D4
                MOVE.W          #24,D1
                BSR             fix_res_disp
                MOVE.W          _win2p-QA5(A5),D6
                MOVE.W          #21,D4
                MOVE.W          #24,D1
                BSR             fix_res_disp
vs_plate_end
                RTS
        ;;ENDC

*-------------------------------------------------------------------------------*
SELECT_TIMER    SET             60*10-1
BEGIN_TIMER     SET             SELECT_TIMER-12
select_sub

                JSR             select_sub_sub(PC)

                TST.W           country_type-QA5(A5)
                BNE.S           sel_euro
                SOUND           #sSELE_JP
        ;;      SOUND           #sSP1
                BRA.S           sel_jpn
sel_euro
                SOUND           #sSELE_US
        ;;      SOUND           #sSP1
sel_jpn

*-------------------*
*家庭用レベルセレクト
*-------------------*
        IFNZ    HOMEUSE
level_select
                TST.B           MVS_FLAG
                BNE             level_sel_exit

                BLOCK_WRITE     #_bl_selescr,00,00,SEL_SCN_COL2,00

        ;;      BSR             _level_disp ;どおせ家庭用は表示ないのでカット

                TST.W           country_type-QA5(A5)
                BNE             level_euro
                        XREF    _fx_lv_sel
                        XREF    _fx_lv_eas
                        XREF    _fx_lv_nor
                        XREF    _fx_lv_har
                        XREF    _fx_lv_mvs
                PRINT_BLOCK     08,06,#_fx_lv_sel,#FIX_MOJI_COL
                PRINT_BLOCK     15,11,#_fx_lv_eas,#FIX_MOJI_COL
                PRINT_BLOCK     15,14,#_fx_lv_nor,#FIX_MOJI_COL
                PRINT_BLOCK     15,17,#_fx_lv_har,#FIX_MOJI_COL
                PRINT_BLOCK     15,20,#_fx_lv_mvs,#FIX_MOJI_COL
                BRA             level_jpn
level_euro
                        XREF    _fx_lv_sel_e
                        XREF    _fx_lv_eas_e
                        XREF    _fx_lv_nor_e
                        XREF    _fx_lv_har_e
                        XREF    _fx_lv_mvs_e
                PRINT_BLOCK     08,06,#_fx_lv_sel_e,#FIX_MOJI_COL
                PRINT_BLOCK     15,11,#_fx_lv_eas_e,#FIX_MOJI_COL
                PRINT_BLOCK     15,14,#_fx_lv_nor_e,#FIX_MOJI_COL
                PRINT_BLOCK     15,17,#_fx_lv_har_e,#FIX_MOJI_COL
                PRINT_BLOCK     15,20,#_fx_lv_mvs_e,#FIX_MOJI_COL
level_jpn
                MOVE.W          #01,D5

                MOVE.W          #SELECT_TIMER,D7
level_loop
                CLR.B           D0
                TST.B           _user_start-QA5(A5)
                BEQ             ?1p_sel_skip
                OR.B            _ply1_sw_jst-QA5(A5),D0
?1p_sel_skip
                TST.B           _user_start+BYTE-QA5(A5)
                BEQ             ?2p_sel_skip
                OR.B            _ply2_sw_jst-QA5(A5),D0
?2p_sel_skip
                BTST            #UP,D0
                BNE.S           ?level_up
                BTST            #DOWN,D0
                BNE.S           ?level_down
                BRA             ?level_button_chk
?level_up
                SUBQ.W          #01,D5
                BRA             ?level_button_chk
?level_down
                ADDQ.W          #01,D5
?level_button_chk
                AND.W           #3,D5
                MOVE.W          D5,D6
                ADD.W           D6,D6
                ADD.W           D5,D6
                ADD.W           #11,D6
                LSL.W           #3,D6

                CMP.W           #BEGIN_TIMER,D7
                BGT             ?ret
                BTST            #FIRE1,D0
                BEQ.S           ?ret
                CLR.W           D7
?ret
                RETSYS
                MOVE.W          D7,D0
                AND.W           #$18,D0
                LSR.W           #1,D0
                LEA.L           home_jpn_anm1(PC),A0
                MOVE.L          (A0,D0.W),A0
                MOVE.W          #02,D2
                BSR             level_sub

                DBRA            D7,level_loop

                TST.W           country_type-QA5(A5)
                BNE             level_euro_sound
                SOUND           #sPO2
                BRA.S           level_sound
level_euro_sound
                SOUND           #sKOKE_E
level_sound
                MOVE.W          D5,D0
                ADD.W           D0,D0
                LEA             home_level(PC),A0
                MOVE.W          (A0,D0.W),_difficulity-QA5(A5)

                MOVE.W          #31,D7
level_loop_2
                RETSYS
                MOVE.W          D7,D0
                NOT.W           D0
                AND.W           #$1C,D0
                LEA.L           home_jpn_anm2(PC),A0
                MOVE.L          (A0,D0.W),A0
                MOVE.W          D7,D2
                AND.W           #7,D2
                ADD.W           D2,D2
                BSR             level_sub
                DBRA            D7,level_loop_2

                        XREF    _mask_clear
                JSR             _mask_clear
                RETSYS

                BRA             level_sel_exit
*--------------*
home_level
                DC.W            01              ;EASY   (level-2)
                DC.W            03              ;NORMAL (level-4)
                DC.W            07              ;HARD   (level-8)
                DC.W            05              ;MVS    (level-6)

                XREF    _bl_chackn,_bl_chackn1,_bl_chackn2
home_jpn_anm1
                DC.L            _bl_chackn
                DC.L            _bl_chackn1
                DC.L            _bl_chackn2
                DC.L            _bl_chackn1
home_jpn_anm2
                DC.L            _bl_chackn3
                DC.L            _bl_chackn
                DC.L            _bl_chackn9
                DC.L            _bl_chackna
                DC.L            _bl_chackna
                DC.L            _bl_chackna
                DC.L            _bl_chackn9
                DC.L            _bl_chackn

*--------------*
level_sub
                        XREF    _bl_chackn8,_bl_b3c1
                PUSH            D0-D7
                TST.W           country_type-QA5(A5)
                BNE.S           ?level_chr_oth
                OBJ_MACRO       #08*12,D6,A0,#CHACKN_COL
                BRA.S           ?level_chr_end
?level_chr_oth
                OBJ_MACRO       #08*12,D6,#_bl_b3c1,D2
?level_chr_end
                POP             D0-D7
                RTS

*--------------*
level_sel_exit
        ENDC

*--------------*
                BLOCK_WRITE     #_bl_selescr,00,00,SEL_SCN_COL,00

                BSR             _level_disp

                MOVE.W          #4*16,D6
                MOVE.W          #4*16+8,D5
                LEA.L           bub_anm_tbl,A4
                MOVE.W          (A4)+,anm_timer-QA5(A5)

                MOVE.W          #BOB_COL,col_mode-QA5(A5)       
                TST.B           _user_start-QA5(A5)             
                BEQ.S           ?bub_col_skip                   
                MOVE.W          #BUB_COL,col_mode-QA5(A5)       
?bub_col_skip
        ;;      MOVE.W          (A4)+,col_mode-QA5(A5)
                MOVE.W          (A4)+,D3                        
                AND.W           #$C000,D3                       
                AND.W           #$00FF,col_mode-QA5(A5)         
                OR.W            D3,col_mode-QA5(A5)             

        ;;      MOVE.W          #60*07-1,D7
                MOVE.W          #SELECT_TIMER,D7        ;★選択はゆっくりと
sel_loop
                TST.W           country_type-QA5(A5)
                BNE.S           sel_other
                MOVE.W          #SEL_WAK_COL,D4
                BRA.S           sel_ok
sel_other
                MOVE.W          #SEL_OBJ_COL,D4
sel_ok
                BSR             animation

;;;;            MOVE.W          _vs_credit-QA5(A5),D0
;;;;            CMP.W           _credit-QA5(A5),D0
;;;;            BGT.S           button_check

                MOVE.B          _ply1_sw-QA5(A5),D0
                AND.B           _ply2_sw-QA5(A5),D0
                BTST            #UP,D0
                BEQ.S           up
                BTST            #DOWN,D0
                BEQ.S           down
                BRA.S           button_check
up
                MOVE.W          #04*16+8,D5
                MOVE.W          #04*16,D6
                MOVE.W          #01,_player_flag-QA5(A5)
                BRA.S           button_check
down
                MOVE.W          #09*16+8,D5
                MOVE.W          #09*16,D6
                MOVE.W          #03,_player_flag-QA5(A5)
button_check
                CMP.W           #BEGIN_TIMER,D7
                BGT             ret

                CMP.W           #03,_player_flag-QA5(A5)
                BEQ             ?double_btn_chk
?single_btn_chk                 ;1Pモードの受付ボタンは開始側のみ
                LEA             _user_start-QA5(A5),A0

                TST.B           (A0)
                BEQ             ?1p_skip
                MOVE.W          #01,_player_flag-QA5(A5)
                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                BTST            #FIRE1,D0
                BNE             flag_set
?1p_skip
                TST.B           1(A0)
                BEQ             ?2p_skip
                MOVE.W          #02,_player_flag-QA5(A5)
                MOVE.B          _ply2_sw_jst-QA5(A5),D0
                BTST            #FIRE1,D0
                BNE             flag_set
?2p_skip
                BRA.S           ret
?double_btn_chk                 ;VSモードの受付ボタンは両側
                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
                BTST            #FIRE1,D0
                BEQ.S           ret
flag_set
                CLR.W           D7
ret
                RETSYS
                DBRA            D7,sel_loop

                LEA.L           bub_anm_tbl2,A4
                MOVE.W          (A4)+,anm_timer-QA5(A5)
        ;;      MOVE.W          (A4)+,col_mode-QA5(A5)
                MOVE.W          (A4)+,D3                        
                AND.W           #$C000,D3                       
                AND.W           #$00FF,col_mode-QA5(A5)         
                OR.W            D3,col_mode-QA5(A5)             

                TST.W           country_type-QA5(A5)
        ;;;;    BNE.S           usa_oth_skip            ;★
                BNE.S           kiss_sound_other        ;★

                SOUND           #sPO2
                BRA.S           kiss_sound              ;★
kiss_sound_other                                        ;★
                SOUND           #sKOKE_E                ;★
kiss_sound                                              ;★
                MOVE.W          #60-1,D7
kiss_loop
                TST.W           country_type-QA5(A5)
                BNE.S           selected_other
                MOVE.W          #SEL_WAK_COL,D4
                BRA.S           selected_ok
selected_other
                LEA             selected_color(PC),A0
                MOVE.W          D7,D4
                AND.W           #3,D4
                ADD.W           D4,D4
                MOVE.W          (A0,D4.W),D4
selected_ok
                BSR             animation
                RETSYS
                DBRA            D7,kiss_loop
usa_oth_skip

*--------------*
                                                        ;選択終了
                CMP.W           #03,_player_flag-QA5(A5)
                BEQ.S           two_start
;;;;        INCOME_START        #000,#000
                BRA.S           income_start
two_start
;;;;        INCOME_START        #000,#000
;;;;        INCOME_START        #001,#000
;;;;;           MOVE.W          _vs_credit-QA5(A5),D0
;;;;;           SUB.W           #01,D0
;;;;;           BEQ.S           income_start
;;;;;           SUB.W           D0,_credit-QA5(A5)

                MOVE.W          #$0101,_user_start-QA5(A5)
income_start

                SOUND           #sALLSTOP
                ALL_CLEAR
                RTS

*--------------*
selected_color
                DC.W            34,60,61,62

*--------------*
animation
                CMP.W           #JAPAN,_credit_mode
                BNE             sel_english

;---------------日本語表示
            PUSH                D5
            PUSH                D4
                OBJ_MACRO       #02*16,#01*16,#_bl_mode,#SEL_OBJ_COL
                OBJ_MACRO       #06*16,#05*16,#_bl_1play,#SEL_OBJ_COL

                MOVE.W          #SEL_OBJ_COL,D5
;;;;            MOVE.W          _vs_credit-QA5(A5),D0
;;;;            CMP.W           _credit-QA5(A5),D0
;;;;            BLE.S           not_play_2p
;;;;            MOVE.W          #GRAY_COL,D5
not_play_2p
                OBJ_MACRO       #06*16,#10*16,#_bl_2play,D5
            POP                 D4
                OBJ_MACRO       #04*16,D6,#_bl_selewaku,D4
            POP                 D5
                tst.b           _game_type-QA5(A5)
                bne             sel_disp_end
            PUSH                D5

                SUB.W           #01,anm_timer-QA5(A5)
                BGT.S           skip100

                LEA.L           LONG(A4),A4
                MOVE.W          (A4),D3
                BGT.S           skip050
                LEA.L           bub_anm_tbl,A4
skip050
                MOVE.W          (A4)+,anm_timer-QA5(A5)
        ;;      MOVE.W          (A4)+,col_mode-QA5(A5)
                MOVE.W          (A4)+,D3                        
                AND.W           #$C000,D3                       
                AND.W           #$00FF,col_mode-QA5(A5)         
                OR.W            D3,col_mode-QA5(A5)             
skip100
                OBJ_MACRO       #08,D5,(A4),col_mode-QA5(A5)
            POP                 D5
                BRA             sel_disp_end

;---------------英語表示
sel_english
            PUSH                D5
            PUSH                D4
                OBJ_MACRO       #02*16,#01*16,#_bl_emode,#SEL_OBJ_COL
                OBJ_MACRO       #06*16,#05*16,#_bl_e1play,#SEL_OBJ_COL

                MOVE.W          #SEL_OBJ_COL,D5
;;;;            MOVE.W          _vs_credit-QA5(A5),D0
;;;;            CMP.W           _credit-QA5(A5),D0
;;;;            BLE.S           not_play_2pE
;;;;            MOVE.W          #GRAY_COL,D5
not_play_2pE
                OBJ_MACRO       #06*16,#10*16,#_bl_e2play,D5
            POP                 D4
                OBJ_MACRO       #04*16,D6,#_bl_selewaku,D4
            POP                 D5

        ;;      CMP.W           #OTHER,_credit_mode
        ;;      BEQ.S           sel_disp_end
                tst.b           _game_type-QA5(A5)
                bne.s           sel_disp_end

            PUSH                D5
                SUB.W           #01,anm_timer-QA5(A5)
                BGT.S           skip200

                LEA.L           LONG(A4),A4
                MOVE.W          (A4),D3
                BGT.S           skip150
                LEA.L           bub_anm_tbl,A4
skip150
                MOVE.W          (A4)+,anm_timer-QA5(A5)
        ;;      MOVE.W          (A4)+,col_mode-QA5(A5)
                MOVE.W          (A4)+,D3                        
                AND.W           #$C000,D3                       
                AND.W           #$00FF,col_mode-QA5(A5)         
                OR.W            D3,col_mode-QA5(A5)             
skip200
                OBJ_MACRO       #08,D5,(A4),col_mode-QA5(A5)
            POP                 D5
sel_disp_end
                RTS

*--------------*
bub_anm_tbl
                DC.L            170000H+(1.SHL.14+BUB_COL),_bl_buba01
                DC.L            010000H+(0.SHL.14+BUB_COL),_bl_bubg01
                DC.L            040000H+(0.SHL.14+BUB_COL),_bl_bubg02
                DC.L            020000H+(0.SHL.14+BUB_COL),_bl_bubg01
                DC.L            170000H+(1.SHL.14+BUB_COL),_bl_buba01
                DC.L            -1
bub_anm_tbl2
                DC.L            0A0000H+(0.SHL.14+BUB_COL),_bl_bubh01
                DC.L            460000H+(0.SHL.14+BUB_COL),_bl_bubh02
                DC.L            -1

*-------------------------------------------------------------------------------*
*               実際にスタートさせるプレイヤーをチェック                        *
*               実際にスタートさせるプレイヤーは_user_startにある。             *
*-------------------------------------------------------------------------------*
start_flag_reset:
                CLR.W           _player_flag-QA5(A5)

                TST.B           _start_mode-QA5(A5)
                BNE             one_coin_start

                BSR             start_flag_intrude

                CMP.W           #3,_player_flag-QA5(A5)
                BNE             ?rts
                MOVE.W          #01,challenge_flag-QA5(A5)
                                ;終了時シングルに戻れるように
?rts
                RTS

one_coin_start
start_flag_intrude:
                CLR.B           _start_mode-QA5(A5)
                CLR.B           _continue_mode-QA5(A5)
        IFNZ    HOMEUSE
                CLR.B           _vs_cont_flag-QA5(A5)
        ENDC

                LEA             _user_start-QA5(A5),A0
                CMP.B           #1,(A0)
                BNE             ?1P_not_start
                MOVE.B          #2,(A0)
                OR.W            #1,_player_flag-QA5(A5)
                MOVE.B          #MODE_GAME,PLAYER_MODE
?1P_not_start:
                CMP.B           #1,1(A0)
                BNE             ?2P_not_start
                MOVE.B          #2,1(A0)
                OR.W            #2,_player_flag-QA5(A5)
                MOVE.B          #MODE_GAME,PLAYER_MODE+BYTE
?2P_not_start:
                RTS

;               シングルのコンティニュー時は同時にスタートが入っても
;               片方しかスタートせぬようにする。(乱入扱いにする為)
start_flag_continue:
                CLR.B           _start_mode-QA5(A5)
                CLR.B           _continue_mode-QA5(A5)
        IFNZ    HOMEUSE
                CLR.B           _vs_cont_flag-QA5(A5)
        ENDC

                LEA             _user_start-QA5(A5),A0

                CMP.W           #1,_player_flag-QA5(A5)
                BEQ.S           ?1P_cont
                CMP.W           #2,_player_flag-QA5(A5)
                BEQ.S           ?2P_cont
                BRA.S           ?VS_continued
?1P_cont:
                TST.B           (A0)
                BNE.S           ?1P_continued
                TST.B           1(A0)
                BNE.S           ?2P_continued
                BRA.S           ?1P_continued
?2P_cont:
                TST.B           1(A0)
                BNE.S           ?2P_continued
                TST.B           (A0)
                BNE.S           ?1P_continued
                BRA.S           ?2P_continued
?VS_continued:
                MOVE.W          #$0202,(A0)
                MOVE.W          #3,_player_flag-QA5(A5)
                MOVE.W          #MODE_GAME*256+MODE_GAME,PLAYER_MODE
                BRA             ?end
?1P_continued:
                MOVE.B          #2,(A0)
                MOVE.W          #1,_player_flag-QA5(A5)
                LEA             PLAYER_MODE,A0
                MOVE.B          #MODE_GAME,(A0)
                CMP.B           #MODE_CONT,1(A0)                ;2P MODE
                BEQ.S           ?1P_play_2p_cont
                MOVE.B          #MODE_NOP,1(A0)
                BRA             ?end
?1P_play_2p_cont
                                                        ;コンティニュー受付状態
                MOVE.W  #10*60,mini_cont_time-QA5(A5)   ;だったのなら、ミニコン
                CLR.W   mini_cont_sign-QA5(A5)          ;ティニュー起動。
        IFNZ    HOMEUSE
                MOVE.B          #1,_vs_cont_flag-QA5(A5)
        ENDC
                BRA             ?end
?2P_continued:
                MOVE.B          #2,1(A0)
                MOVE.W          #2,_player_flag-QA5(A5)
                LEA             PLAYER_MODE,A0
                MOVE.B          #MODE_GAME,1(A0)
                CMP.B           #MODE_CONT,(A0)                 ;1P MODE
                BEQ.S           ?2P_play_1p_cont
                MOVE.B          #MODE_NOP,(A0)
                BRA             ?end
?2P_play_1p_cont
                                                        ;コンティニュー受付状態
                MOVE.W  #10*60,mini_cont_time-QA5(A5)   ;だったのなら、ミニコン
                CLR.W   mini_cont_sign-QA5(A5)          ;ティニュー起動。
        IFNZ    HOMEUSE
                MOVE.B          #1,_vs_cont_flag-QA5(A5)
        ENDC
?end
                RTS

;1コインVS有りの時、間が空いてしまうのを防止
select_sub_sub:
                LEA             PLAYER_MODE,A0
                LEA             _user_start-QA5(A5),A1
                TST.B           (A1)
                BEQ.S           ?1p_skip
                MOVE.B          #MODE_GAME,(A0)
?1p_skip
                TST.B           BYTE(A1)
                BEQ.S           ?2p_skip
                MOVE.B          #MODE_GAME,BYTE(A0)
?2p_skip
                RTS

*-------------------------------------------------------------------------------*
*               メモリーカードロード                                            *
*-------------------------------------------------------------------------------*

round_select
                BTST.B          #1,_debug_flag_2-QA5(A5)
                BEQ.S           not_card_debug
                JSR             _card_test
not_card_debug
                CMP.W           #03,_player_flag-QA5(A5)
                BNE.S           single_load
                TST.W           challenge_flag-QA5(A5)
                BEQ.S           load_skip
single_load
                JSR             _card_load
                TST.B           _card_access_ok-QA5(A5)
                BEQ.S           load_skip
                MOVE.W          _game_round-QA5(A5),_round-QA5(A5)
                MOVE.W          _round-QA5(A5),_scene-QA5(A5)
                MOVE.W          _round-QA5(A5),round_bak-QA5(A5)

        IFNZ    ROUND_SEL
                BRA             select_exit
load_skip
                CMP.W           #03,_player_flag-QA5(A5)
                BEQ             select_exit
        ;;;;    TST.W           _round_sel-QA5(A5)
        ;;;;    BEQ             select_exit

                BTST.B          #0,_debug_flag_2-QA5(A5)
                BEQ             select_exit

                ALL_CLEAR
                PRINT           11,07,#STR_DEBUG,#WHITE
                PRINT           16,12,#RO,#WHITE
select_loop
                RETSYS

                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
                BTST            #RIGHT,D0
                BEQ.S           select_100
                ADD.W           #01,_round-QA5(A5)
                CMP.W           #31,_round-QA5(A5)
                BLT.S           select_100
                MOVE.W          #00,_round-QA5(A5)
select_100
                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
                BTST            #LEFT,D0
                BEQ.S           select_200
                SUB.W           #01,_round-QA5(A5)
                BGE.S           select_200
                MOVE.W          #30,_round-QA5(A5)
select_200
                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
                BTST            #FIRE1,D0
                BNE.S           select_end

                MOVE.W          _round-QA5(A5),D0
                ADD.W           #01,D0
                EXT.L           D0
                PRINT_DEC       22,12,D0,#2,#WHITE
                BRA             select_loop
select_end
                CMP.W           #30,_round-QA5(A5)
                BLT.S           select_end100
                SUB.W           #01,_round-QA5(A5)
                MOVE.W          #01,_roundclrflag-QA5(A5)
select_end100
                MOVE.W          _round-QA5(A5),_scene-QA5(A5)
                ALL_CLEAR
select_exit
        ELSE
load_skip
        ENDC
                RTS

STR_DEBUG       ASCII           'DEBUG ROUND SELECT'
RO              ASCII            'ROUND '

*-------------------------------------------------------------------------------*
pass_word
                ALL_CLEAR

                BSR             _level_disp             ;追加

                SCN_OFF
                BLOCK_WRITE     #_bl_end_us,00,00,END_USA,00
                SCN_ON

                PRINT           29,25,#STR_LIMIT_SLASH,#WHITE

                MOVE.W          _mon-QA5(A5),D0
                SUB.W           #01,D0
                LSL.W           #02,D0
                LEA.L           _mon_tbl,A0
                MOVE.L          0(A0,D0.W),D2
        ;;      PRINT           26,25,D2,#WHITE
                PRINT           25,25,D2,#WHITE
                MOVE.W          _day-QA5(A5),D2
                EXT.L           D2
        ;;      PRINT_DEC       31,25,D2,#02,#WHITE
                PRINT_DEC       30,25,D2,#02,#WHITE
                MOVE.W          _year-QA5(A5),D2
                EXT.L           D2
        ;;      PRINT_DEC       34,25,D2,#04,#WHITE
                PRINT_DEC       33,25,D2,#04,#WHITE
        ;;      DELAY           60*10

                    XREF        _fx_black_b
                PRINT_BLOCK     00,00,#_fx_black_b,#0
                PRINT_BLOCK     38,00,#_fx_black_b,#0
                MOVE.W          #60*10-1,D7             ;★
timer_loop_s                                            ;
                    XREF        _bl_end_us_p            ;
                MOVE.W          #15,D0                  ;
                MOVE.W          #05*16,D1               ;
                MOVE.W          #END_USA-64,D2          ;OBJ COLOR OFFSET
                MOVE.W          #$1800,D3               ;
                MOVE.L          #_bl_end_us_p,A0        ;
                MOVE.L          D7,-(SP)                ;
                BZ_OBJ                                  ;
                MOVE.L          (SP)+,D7                ;
                RETSYS                                  ;
                DBRA            D7,timer_loop_s         ;

                MOVE.W          #60*20-1,D7
timer_loop
                MOVE.W          #15,D0                  ;
                MOVE.W          #05*16,D1               ;
                MOVE.W          #END_USA-64,D2          ;OBJ COLOR OFFSET
                MOVE.W          #$1800,D3               ;
                MOVE.L          #_bl_end_us_p,A0        ;
                MOVE.L          D7,-(SP)                ;
                BZ_OBJ                                  ;
                MOVE.L          (SP)+,D7                ;

                RETSYS

        ;;      TST.W           _credit-QA5(A5)
        ;;      TST.W           _credit_look_1p-QA5(A5) ;←CREDIT_CHECKで0が入る。(PLAYER_MODEの関係)
                TST.W           _credit_bak-QA5(A5)
                BEQ.S           timer_100
                MOVE.B          _ply1_sw_jst-QA5(A5),D0
                OR.B            _ply2_sw_jst-QA5(A5),D0
                BTST            #FIRE1,D0
                BEQ.S           timer_100
                CLR.W           D7
timer_100
                DBRA            D7,timer_loop

                ALL_CLEAR
                RTS

STR_LIMIT_SLASH ASCII   '/  /'

*-------------------------------------------------------------------------------*