home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 January (DVD) / VPR980100.ISO / DRIVER / IBM / VW200 / VW200_2.EXE / VWSAMPLE / VWSAMPLE.S < prev   
Text File  |  1995-11-22  |  23KB  |  565 lines

  1.         include vw200api.inc
  2.         include vwsample.inc
  3.  
  4.         data
  5.  
  6. WorkArea:
  7. Score:  dw      [1]                             ; スコア
  8. Over:   db      [1]                             ; ゲームオーバー用フラグ
  9. Wid:    db      [1]                             ; コース幅
  10. WChg:   db      [1]                             ; コース幅用フラグ
  11. Dir:    db      [1]                             ; コースの向き用フラグ
  12. Len:    db      [1]                             ; 設定された向きのコースの長さ
  13. BpatX:  dw      [19]                            ; 縁石のX座標データ
  14. StoneP: dw      [10]                            ; 石の座標データ
  15. CarX:   db      [1]                             ; 車のX座標
  16. CarXo:  db      [1]                             ; 車の直前のX座標
  17. LKey:   db      [1]                             ; 車の移動キー: 左
  18. RKey:   db      [1]                             ; 車の移動キー: 右
  19.  
  20.         code
  21.  
  22. ;
  23. ;       サンプルプログラム
  24. ;
  25.  
  26. Sample:
  27.         API     PowerSaveLock                   ; パワーセーブを行わない
  28.         ld      a,#0
  29.         API     WaitState                       ; ノーウェイトにする
  30.         ld      a,#SCR_VW200V16
  31.         API     Screen                          ; 画面を縦画面, 行間なしにする
  32.         ld      a,#KBD_NUMLOCK|KBD_SFTCALC
  33.         API     KeyMode                         ; キーモードを数字モード,
  34.                                                 ; 電卓用数字にする
  35.         ld      ep,#pod WorkArea
  36.         ld      xp,#pod WorkArea
  37.         ld      yp,#pod WorkArea
  38.         ld      br,#high lod WorkArea
  39.                                                 ; 車の移動キーを設定
  40.         ld      [br:low LKey],#KSC_LEFT         ; 左: 左カーソル
  41.         ld      [br:low RKey],#KSC_RIGHT        ; 右: 右カーソル
  42.  
  43. GameStart:
  44.         car     Title                           ; タイトルの表示
  45.         car     InitGame                        ; 初期化
  46.         ld      ix,#lod GameBGM                 ; GameBGMのアドレスを得る
  47.  
  48. 1$:     ld      b,[br:low lod Len]              ; コースの長さを得る
  49. 2$:     cp      [br:low lod Over],#0            ; ゲームオーバーならば9$へ
  50.         jr      nz,9$
  51.  
  52.         ld      a,[ix]
  53.         cp      a,#0ffh                         ; FFhを読み込むまで
  54.         jr      nz,21$                          ; サウンドを鳴らす
  55.  
  56.         ld      ix,#lod GameBGM
  57.         ld      a,[ix]
  58.  
  59. 21$:    inc     ix
  60.         ld      h,b
  61.         ld      b,#SND_CONTINUE
  62.         API     Sound                           ; ゲーム中サウンドを鳴らす
  63.         ld      b,h
  64.  
  65. ;       ld      a,#2                            ; ウェイトステート=2
  66. ;       API     Wait                            ; (コメントをはずすと速度が遅く
  67.                                                 ; なります)
  68.         car     NewRoad                         ; コースデータの作成
  69.         car     NewStone                        ; 石のデータの作成
  70.         car     DispRoad                        ; コースの表示
  71.         car     MoveCar                         ; 車の移動
  72.         car     DispCar                         ; 車の表示
  73.  
  74.         ld      hl,[Score]
  75.         inc     hl
  76.         ld      [Score],hl                      ; スコアのインクリメント
  77.  
  78.         djr     nz,2$                           ; コースの長さが0になるまで2$へ
  79.  
  80.         car     DirChange                       ; コースの変更
  81.         jr      1$                              ; 1$へ
  82.  
  83. 9$:     ld      a,#SND_STOP
  84.         ld      b,#0
  85.         API     Sound                           ; サウンドを止める
  86.         car     GameOver
  87.         jr      GameStart
  88.  
  89. Title:
  90.         push    all
  91.  
  92.         API     ClearScreen                     ; 画面クリア
  93.  
  94.         ld      ix,#lod TitleStr
  95.         sub     hl,hl                           ; (X,Y)=(0,0)
  96.         API     PutStr                          ; TitleStrの表示
  97.  
  98. 1$:     cp      [br:low lod LKey],#KSC_LEFT     ; 左への移動キーは左カーソルか?
  99.         jr      nz,2$                           ; 違っていたら2$へ
  100.  
  101.         ld      ba,#81A9h                       ; 左矢印のPCコードをセット
  102.         ld      hl,#0413h                       ; (X,Y)=(13h,4h)
  103.         API     PutChar                         ; 左矢印の表示
  104.         ld      ba,#81A8h                       ; 右矢印のPCコードをセット
  105.         ld      hl,#0513h                       ; (X,Y)=(13h,5h)
  106.         API     PutChar                         ; 右矢印の表示
  107.         jr      3$
  108.  
  109. 2$:     ld      ba,#824Fh                       ; "0"のPCコードをセット
  110.         ld      hl,#0413h                       ; (X,Y)=(13h,4h)
  111.         API     PutChar                         ; "0"の表示
  112.         ld      ba,#8181h                       ; "="のPCコードをセット
  113.         ld      hl,#0513h                       ; (X,Y)=(13h,5h)
  114.         API     PutChar                         ; "="の表示
  115.  
  116. 3$:     ld      ix,#lod Title1                  ; Title1を文字列としてセット
  117. 4$:     ld      hl,#1000h                       ; (X,Y)=(0h,10h)
  118.         API     PutStr                          ; 文字列の表示
  119.         ld      a,#50                           ; タイマーを500msに設定
  120.         API     SetWaitTimer                    ; 経過時間監視タイマーの設定
  121. 5$:     API     InKey                           ; キー入力
  122.         or      a,a
  123.         jr      nz,7$                           ; 何かキーが押されたら7$へ
  124.  
  125.         API     GetWaitTimer                    ; 経過時間の取得
  126.         or      a,a
  127.         jr      nz,5$                           ; 残り時間が0でなければ5$へ
  128.                                                 ; (500msごとにTitle1とTitle2
  129.                                                 ; を切り換える)
  130.         cp      ix,#lod Title1                  ; 表示しているのはTitle1か?
  131.         jr      nz,6$                           ; 違っていたら6$へ
  132.  
  133.         ld      ix,#lod Title2                  ; Title2を文字列としてセット
  134.         jr      4$
  135.  
  136. 6$:     ld      ix,#lod Title1                  ; Title1を文字列としてセット
  137.         jr      4$
  138.  
  139. 7$:     cp      a,#KCD_RM
  140.         jr      z,9$                            ; RMが押されたら9$へ
  141.  
  142.         cp      a,#KCD_MPLUS
  143.         jr      nz,3$                           ; M+以外が押されたら3$へ
  144.  
  145.         cp      [br:low lod LKey],#KSC_LEFT     ; 左への移動キーは左カーソルか?
  146.         jr      nz,8$                           ; 違っていたら8$へ
  147.                                                 ; 車の移動キーを設定
  148.         ld      [br:low lod LKey],#KSC_0        ; 左: 0
  149.         ld      [br:low lod RKey],#KSC_EQUAL    ; 右: =
  150.         jr      1$                              ; 1$へ
  151.  
  152. 8$:     ld      [br:low lod LKey],#KSC_LEFT     ; 左: 左カーソル
  153.         ld      [br:low lod RKey],#KSC_RIGHT    ; 右: 右カーソル
  154.         jr      1$                              ; 1$へ
  155.  
  156. 9$:     pop     all                             ; RMが押されたときのみここに
  157.         ret                                     ; くる
  158.  
  159. GameOver:
  160.         push    all
  161.  
  162.         ld      ix,#lod SouSou
  163. 1$:     ld      a,[ix]                          ; SouSouのアドレスをセット
  164.         cp      a,#0ffh                         ; FFhを読み込むまで
  165.         jr      z,2$                            ; サウンドを鳴らす
  166.  
  167.         inc     ix
  168.         ld      b,[ix]
  169.         inc     ix
  170.         API     Sound                           ; サウンドを鳴らす
  171.         jr      1$
  172.  
  173. 2$:     API     ClearScreen                     ; 画面クリア
  174.  
  175.         ld      b,#3
  176. 3$:     ld      ix,#lod GameOverStr1
  177.         ld      hl,#0800h                       ; (X,Y)=(0h,8h)
  178.         API     PutStr                          ; GameOverStr1の表示
  179.  
  180.         ld      a,#50
  181.         API     Wait                            ; 50ms待つ
  182.  
  183.         ld      ix,#lod GameOverStr2
  184.         ld      hl,#0800h                       ; (X,Y)=(0h,8h)
  185.         API     PutStr                          ; GameOverStr2の表示
  186.  
  187.         ld      a,#50
  188.         API     Wait                            ; 50ms待つ
  189.  
  190.         djr     nz,3$                           ; Bレジをデクリメントし
  191.                                                 ; 0になるまで3$へ
  192.         pop     all
  193.         ret
  194.  
  195. InitGame:
  196.         API     ClearScreen                     ; 画面クリア
  197.  
  198.         sub     ba,ba
  199.         ld      [Score],ba                      ; スコア(Score)=0
  200.         ld      [br:low lod Over],a             ; ゲームオーバー用フラグの
  201.                                                 ; クリア
  202.         ld      [br:low lod Wid],#10            ; コース幅=10
  203.         ld      [br:low lod Dir],#0             ; コースの向き=0(まっすぐ)
  204.         ld      [br:low lod Len],#1             ; コースの長さ
  205.         ld      [br:low lod CarX],#10           ; 車のX座標
  206.         ld      [br:low lod CarXo],#0ffh        ; 車の直前のX座標
  207.  
  208.         ld      hl,#lod BpatX                   ; 縁石のX座標データを作成
  209.         ld      b,#19
  210. 1$:     ld      [hl],#5
  211.         inc     hl
  212.         ld      [hl],#15
  213.         inc     hl
  214.         djr     nz,1$                           ; Bレジをデクリメントし
  215.                                                 ; 0になるまで1$へ
  216.         ld      hl,#lod StoneP                  ; 石の座標データを作成
  217.         ld      b,#10
  218. 2$:     ld      [hl],#0
  219.         inc     hl
  220.         ld      [hl],#0
  221.         inc     hl
  222.         djr     nz,2$                           ; Bレジをデクリメントし
  223.                                                 ; 0になるまで2$へ
  224.         ret
  225.  
  226. DispRoad:
  227.         push    all
  228.  
  229.         ld      b,#19                           ; 1行目から19行分縁石を表示
  230.         ld      iy,#lod BpatX                   ; 縁石のX座標データのアドレス
  231.                                                 ; をセット
  232.         ld      ix,#lod RoadChar                ; 縁石の文字列のアドレス
  233.         ld      h,#1                            ; をセット
  234. 1$:     ld      l,[iy]
  235.         inc     iy
  236.         API     PutStr
  237.         ld      l,[iy]
  238.         inc     iy
  239.         API     PutStr
  240.         inc     h
  241.         djr     nz,1$
  242.  
  243.         ld      b,#10                           ; 10個分石を表示
  244.         ld      ix,#lod StoneP                  ; 石の座標データのアドレス
  245. 2$:     ld      hl,[ix]                         ; をセット
  246.         add     ix,#2
  247.         ex      ba,iy                           ; BAとIYの値を交換する
  248.  
  249.         cp      h,#0                            ; X座標が0ならば3$へ
  250.         jr      z,3$
  251.  
  252.         cp      h,#20                           ; X座標が20ならば21$へ
  253.         jr      z,21$
  254.  
  255.         ld      ba,#'#'
  256.         API     PutChar                         ; 石の表示
  257.         cp      h,#1
  258.         jr      z,3$
  259.  
  260. 21$:    ld      ba,#' '
  261.         dec     h
  262.         API     PutChar                         ; ブランクの表示
  263.  
  264. 3$:     ex      ba,iy
  265.         djr     nz,2$
  266.  
  267.         sub     hl,hl                           ; (X,Y)=(0,0)
  268.         ld      ix,[Score]
  269.         ld      b,#PNM_ZEROFILL                 ; 表示を0で埋める
  270.         ld      a,#5
  271.         API     PutNum                          ; スコアの表示
  272.  
  273.         pop     all
  274.         ret
  275.  
  276. DispCar:
  277.         push    ba
  278.         push    hl
  279.  
  280.         ld      l,[br:low lod CarX]             ; 車のX座標を得る
  281.         ld      h,#17                           ; 車のY座標を17にする
  282.         ld      ba,#'@'                         ; 車のキャラクターをセット
  283.         API     PutChar                         ; 車の表示
  284.  
  285.         ld      l,[br:low lod CarXo]
  286.         cp      l,#0ffh                         ; 直前の車のX座標がFFhならば
  287.         jr      z,9$                            ; 9$へ
  288.  
  289.         ld      ba,#' '
  290.         API     PutChar                         ; ブランクの表示
  291.  
  292. 9$:     pop     hl
  293.         pop     ba
  294.         ret
  295.  
  296. NewRoad:
  297.         push    all
  298.  
  299.         ld      b,#36
  300.         ld      ix,#lod BpatX+37
  301.         ld      iy,#lod BpatX+35
  302. 1$:     ld      [ix],[iy]
  303.         dec     ix
  304.         dec     iy
  305.         djr     nz,1$
  306.  
  307.         cp      [br:low lod Dir],#1             ; コースの向きは左か?
  308.         jr      nz,2$                           ; 左でなければ2$へ
  309.  
  310.         cp      [br:low lod BpatX],#0           ; 左の縁石のX座標が0ならば9$へ
  311.         jr      z,9$
  312.  
  313.         dec     [br:low lod BpatX]              ; 左の縁石のX座標をデクリメント
  314.         dec     [br:low lod BpatX+1]            ; 右の縁石のX座標をデクリメント
  315.         jr      9$
  316.  
  317. 2$:     cp      [br:low lod Dir],#2             ; コースの向きは右か?
  318.         jr      nz,3$                           ; 右でなければ3$へ
  319.  
  320.         cp      [br:low lod BpatX+1],#21        ; 右の縁石のX座標が21ならば9$へ
  321.         jr      z,9$
  322.  
  323.         inc     [br:low lod BpatX]            ; 左の縁石のX座標をインクリメント
  324.         inc     [br:low lod BpatX+1]          ; 右の縁石のX座標をインクリメント
  325.         jr      9$
  326.  
  327. 3$:     ld      b,[br:low lod Wid]              ; コース幅を得る
  328.         cp      [br:low lod WChg],#1            ; コース幅を狭くする(1)ので
  329.         jr      nz,31$                          ; なければ31$へ
  330.  
  331.         cp      b,#5
  332.         jr      z,4$                            ; コース幅が5ならば4$へ
  333.  
  334.         dec     b                               ; コース幅をデクリメント
  335.         jr      32$                             ; 32$へ
  336.  
  337. 31$:    cp      [br:low lod WChg],#2            ; コース幅を広くする(2)ので
  338.         jr      nz,4$                           ; なければ4$へ
  339.  
  340.         cp      b,#15
  341.         jr      z,4$                            ; コース幅が15ならば4$へ
  342.  
  343.         cp      [br:low lod BpatX+1],#21
  344.         jr      z,4$                            ; 右の縁石のX座標が21ならば4$へ
  345.  
  346.         inc     b                               ; コース幅をインクリメント
  347. 32$:    ld      [br:low lod Wid],b              ; コース幅を保存
  348.         jr      4$                              ; 4$へ
  349.  
  350. 4$:     ld      a,[br:low lod BpatX]            ; 左の縁石のX座標を得る
  351.         add     a,b                             ; コース幅を加えて
  352.         ld      [br:low lod BpatX+1],a          ; 右の縁石のX座標に保存
  353.  
  354. 9$:     pop     all
  355.         ret
  356.  
  357. NewStone:
  358.         push    all
  359.  
  360.         ld      ix,#0
  361.         ld      hl,#lod StoneP                  ; 石の座標データのアドレスを得る
  362.         ld      b,#10
  363. 1$:     ex      ba,iy
  364.         ld      ba,[hl]
  365.         cp      ba,#0                           ; 石の座標データが0でなければ
  366.         jr      nz,2$                           ; 2$へ
  367.  
  368.         ld      ix,hl
  369.         jr      5$
  370.  
  371. 2$:     cp      b,#20
  372.         jr      nz,3$                           ; 石のX座標が20でなければ3$へ
  373.  
  374.         ld      ba,#0                           ; 石の座標を(0,0)にする
  375.         jr      4$                              ; 4$へ
  376.  
  377. 3$:     inc     b
  378. 4$:     ld      [hl],ba
  379. 5$:     add     hl,#2
  380.         ex      ba,iy
  381.         djr     nz,1$
  382.  
  383.         cp      ix,#0
  384.         jr      z,9$
  385.  
  386.         API     Random                          ; 乱数を得る
  387.         cp      a,#200
  388.         jr      c,9$                            ; 乱数が200より小さいならば9$へ
  389.  
  390.         ld      l,a
  391.         ld      h,#0
  392.         ld      a,[br:low lod Wid]              ; コース幅を得る
  393.         sub     a,#4
  394.         div
  395.         ld      a,h
  396.         ld      b,[br:low lod BpatX]            ; 車のX座標を得る
  397.         add     a,b
  398.         add     a,#3
  399.         ld      [ix],a
  400.         inc     ix
  401.         ld      [ix],#1
  402.  
  403. 9$:     pop     all
  404.         ret
  405.  
  406. MoveCar:
  407.         push    all
  408.  
  409.         ld      b,[br:low lod CarX]             ; 車のX座標を得る
  410.         ld      [br:low lod CarXo],#0ffh        ; 車の直前のX座標をFFhにする
  411.  
  412.         push    b
  413.         API     ReadKey                         ; キーの読み込み
  414.         pop     b
  415.         cp      a,#KSC_NONE                     ; キー入力がなければ9$へ
  416.         jr      z,9$
  417.  
  418.         cp      a,[br:low lod LKey]             ; 左方向への移動?
  419.         jr      nz,1$                           ; 違っていたら1$へ
  420.  
  421.         cp      b,#1
  422.         jr      z,8$                            ; 車のX座標が1ならば8$へ
  423.  
  424.         ld      [br:low lod CarXo],b            ; 直前のX座標に今のX座標を入れる
  425.         dec     [br:low lod CarX]               ; 車のX座標をデクリメント
  426.         jr      8$
  427.  
  428. 1$:     cp      a,[br:low lod RKey]             ; 右方向への移動?
  429.         jr      nz,8$                           ; 違っていたら8$へ
  430.  
  431.         cp      b,#22
  432.         jr      z,8$                            ; 車のX座標が22ならば8$へ
  433.  
  434.         ld      [br:low lod CarXo],b            ; 直前のX座標に今のX座標を入れる
  435.         inc     [br:low lod CarX]               ; 車のX座標をインクリメント
  436.  
  437. 8$:     API     InKey
  438. 9$:     ld      l,[br:low lod CarX]             ; 車のX座標を得る
  439.         ld      h,#17                           ; 車のY座標を17にする
  440.         API     GetChar                         ; 車の座標の文字コードを得る
  441.         cp      a,#'@'                          ; 文字コードが車のキャラクター
  442.         jr      z,99$                           ; ならば99$へ
  443.  
  444.         cp      a,#' '                          ; ブランクならば99$へ
  445.         jr      z,99$
  446.  
  447.         ld      [br:low lod Over],#1            ; それ以外ならばゲームオーバー
  448. 99$:    pop     all
  449.         ret
  450.  
  451. DirChange:
  452.         push    all
  453.  
  454.         API     Random                          ; 乱数を得る
  455.         ld      l,a
  456.         ld      h,#0
  457.         ld      a,#7
  458.         div
  459.         inc     h
  460.         inc     h
  461.         inc     h
  462.         ld      [br:low lod Len],h              ; コース方向の長さに保存
  463.  
  464.         API     Random                          ; 乱数を得る
  465.         ld      l,a
  466.         ld      h,#0
  467.         ld      a,#3
  468.         div
  469.         ld      [br:low lod Dir],h              ; コースの向き用フラグに保存
  470.         cp      h,#0                            ; コースの向きがまっすぐで
  471.         jr      nz,9$                           ; なければ9$へ
  472.  
  473.         API     Random                          ; 乱数を得る
  474.         and     a,#3
  475.         ld      [br:low lod WChg],a             ; コース幅用フラグに保存
  476.  
  477. 9$:     pop     all
  478.         ret
  479.  
  480. TitleStr:
  481.         ;       VW-200サンプル
  482.         ;       ミニレースゲーム
  483.         ;
  484.         ;         ┏操作━━━━━━┓
  485.         ;         ┃左移動   [ ]┃
  486.         ;         ┃右移動   [ ]┃
  487.         ;         ┗━━━━━━━━┛
  488.         ;
  489.         ;       ┏説明━━━━━━━━┓
  490.         ;       ┃縁石(|)や石(#)に衝突┃
  491.         ;       ┃しないように貴方の車┃
  492.         ;       ┃(@)を操作します。  ┃
  493.         ;       ┗━━━━━━━━━━┛
  494.         ;
  495.         ;       ┏━━━━━━━━━┓
  496.         ;       ┃[↑]キーでスタート┃
  497.         ;       ┗━━━━━━━━━┛┓
  498.         ;        ┃[↓]キーでキー変更┃
  499.         ;        ┗━━━━━━━━━┛
  500.         db      56h,57h,2Dh,32h,30h,30h,83h,54h,83h,93h,83h,76h,83h,8Bh,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h
  501.         db      83h,7Eh,83h,6Ah,83h,8Ch,81h,5Bh,83h,58h,83h,51h,81h,5Bh,83h,80h,81h,40h,81h,40h,81h,40h,81h,40h
  502.         db      81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h
  503.         db      81h,40h,81h,40h,84h,0ACh,91h,80h,8Dh,0ECh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0ADh
  504.         db      81h,40h,81h,40h,84h,0ABh,8Dh,0B6h,88h,0DAh,93h,0AEh,81h,40h,81h,40h,81h,40h,5Bh,81h,40h,5Dh,84h,0ABh
  505.         db      81h,40h,81h,40h,84h,0ABh,89h,45h,88h,0DAh,93h,0AEh,81h,40h,81h,40h,81h,40h,5Bh,81h,40h,5Dh,84h,0ABh
  506.         db      81h,40h,81h,40h,84h,0AFh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AEh
  507.         db      81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h
  508.         db      84h,0ACh,90h,0E0h,96h,0BEh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0ADh
  509.         db      84h,0ABh,89h,8Fh,90h,0CEh,28h,7Ch,29h,82h,0E2h,90h,0CEh,28h,23h,29h,82h,0C9h,8Fh,0D5h,93h,0CBh,84h,0ABh
  510.         ;                                  (   |   )                     (   #   )
  511.         db      84h,0ABh,82h,0B5h,82h,0C8h,82h,0A2h,82h,0E6h,82h,0A4h,82h,0C9h,8Bh,4Dh,95h,0FBh,82h,0CCh,8Eh,0D4h,84h,0ABh
  512.         db      84h,0ABh,28h,40h,29h,82h,0F0h,91h,80h,8Dh,0ECh,82h,0B5h,82h,0DCh,82h,0B7h,81h,42h,81h,40h,20h,84h,0ABh
  513.         ;                 (   @   )
  514.         db      84h,0AFh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AEh
  515.         db      81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h
  516.         db      84h,0ACh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0ADh,81h,40h
  517.         db      84h,0ABh,5Bh,81h,0AAh,5Dh,83h,4Ch,81h,5Bh,82h,0C5h,83h,58h,83h,5Eh,81h,5Bh,83h,67h,84h,0ABh,81h,40h
  518.         db      84h,0AFh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AEh,84h,0ADh
  519.         db      81h,40h,84h,0ABh,5Bh,81h,0ABh,5Dh,83h,4Ch,81h,5Bh,82h,0C5h,83h,4Ch,81h,5Bh,95h,0CFh,8Dh,58h,84h,0ABh
  520.         db      81h,40h,84h,0AFh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AEh
  521.         db      0
  522.  
  523. Title1:
  524.         ;       ┗┏━━━━━━━━━┓
  525.         db      84h,0AFh,84h,0ACh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0ADh
  526.         db      0
  527.  
  528. Title2:
  529.         ;       ┗━━━━━━━━━┛┓
  530.         db      84h,0AFh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AEh,84h,0ADh
  531.         db      0
  532.  
  533. GameOverStr1:
  534.         ;        ┏━━━━━━━━┓
  535.         ;        ┃ ゲームオーバー ┃
  536.         ;        ┗━━━━━━━━┛
  537.         db      81h,40h,84h,0ACh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0ADh,81h,40h
  538.         db      81h,40h,84h,0ABh,20h,83h,51h,81h,5Bh,83h,80h,83h,49h,81h,5Bh,83h,6Fh,81h,5Bh,20h,84h,0ABh,81h,40h
  539.         db      81h,40h,84h,0AFh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AEh,81h,40h
  540.         db      0
  541.  
  542. GameOverStr2:
  543.         ;        ┏━━━━━━━━┓
  544.         ;        ┃        ┃
  545.         ;        ┗━━━━━━━━┛
  546.         db      81h,40h,84h,0ACh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0ADh,81h,40h
  547.         db      81h,40h,84h,0ABh,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,81h,40h,84h,0ABh,81h,40h
  548.         db      81h,40h,84h,0AFh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AAh,84h,0AEh,81h,40h
  549.         db      0
  550.  
  551. RoadChar:
  552.         ascii   " | "
  553.         db      0
  554.  
  555. GameBGM:
  556.         db      SND_O2+SND_C,SND_O2+SND_G,SND_O2+SND_F,SND_O2+SND_E,0ffh
  557.  
  558. SouSou:
  559.         db      SND_O3+SND_C,30,SND_REST,2,SND_O3+SND_C,30,SND_REST,2,SND_O3+SND_C,14,SND_REST,2,SND_O3+SND_C,46,SND_REST,2
  560.         db      SND_O3+SND_D_,30,SND_REST,2,SND_O3+SND_D,14,SND_REST,2,SND_O3+SND_D,30,SND_REST,2,SND_O3+SND_C,14,SND_REST,2
  561.         db      SND_O3+SND_C,30,SND_REST,2,SND_O2+SND_B,14,SND_REST,2,SND_O3+SND_C,62,SND_REST,2
  562.         db      0ffh
  563.  
  564.         end
  565.