intro.s 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. ********************************************************************************
  2. * oo oo *
  3. * \( )/ Bullfrog Demo \( )/ *
  4. * ^ ^^ ^ Introduction ^ ^^ ^ *
  5. ********************************************************************************
  6. _intro_screen
  7. clr.w _fire
  8. .repeat
  9. ; jsr _wait_vbi ; wait for a vertical blank
  10. lea _background,a0
  11. jsr _q_redraw
  12. jsr _draw_credits
  13. jsr _draw_logo
  14. .wait1
  15. move.w $dff004,d0
  16. btst #0,d0
  17. bne.s .wait1
  18. .wait2
  19. move.w $dff004,d0
  20. btst #0,d0
  21. beq.s .wait2
  22. jsr _swap_screens ; display the screen
  23. jsr _move_credits
  24. tst.w _fire
  25. beq .repeat ; no then loop around
  26. clr.w _fire
  27. clr.w game_over
  28. clr.w current_level
  29. clr.w score
  30. rts
  31. even
  32. mess_1 dc.b 'HELLO AND WELCOME',0
  33. even
  34. mess_2 dc.b 'TO',0
  35. even
  36. mess_3 dc.b 'A PRACTICAL GUIDE',0
  37. even
  38. mess_4 dc.b 'HOW TO PROGRAM IN ASSEMBLER',0
  39. even
  40. mess_5 dc.b 'WRITTEN BY SCOTT JOHNSTON',0
  41. even
  42. mess_6 dc.b 'MUSIC BY KEVIN EARL',0
  43. even
  44. mess_7 dc.b 'HIGHEST SCORE',0
  45. even
  46. mess_8 dc.b ' ',0
  47. mess_1y dc.w 0
  48. mess_2y dc.w 0
  49. mess_3y dc.w 0
  50. mess_4y dc.w 0
  51. mess_5y dc.w 0
  52. mess_6y dc.w 0
  53. logo_d dc.w 1
  54. logo_y dc.w 30
  55. ********************************************************************************
  56. _draw_logo
  57. move.w logo_y,d0
  58. add.w logo_d,d0
  59. blt.s .neg_d
  60. cmp.w #200,d0
  61. ble.s .finished
  62. .neg_d
  63. neg.w logo_d
  64. .finished
  65. move.w d1,logo_d
  66. move.w logo_y,d1
  67. moveq.w #112,d0
  68. lea _logo,a1
  69. moveq.w #96,d2 ;sprite height
  70. move.l _w_screen,a0
  71. jsr _s32_draw ;d0=x,d1=y,d2=height,a0=screen,a1=data
  72. move.w logo_y,d1
  73. qmove.w 146,d0
  74. ; moveq.l #1,d2
  75. lea _logo,a1
  76. ; mulu #1920,d2
  77. adda.w #1920,a1
  78. moveq.w #96,d2 ;sprite height
  79. move.l _w_screen,a0
  80. jsr _s32_draw ;d0=x,d1=y,d2=height,a0=screen,a1=data
  81. wait_blit
  82. rts
  83. ********************************************************************************
  84. _draw_credits
  85. moveq.w #10,d0
  86. move.w mess_1y,d1
  87. lea mess_1,a2
  88. jsr _draw_font
  89. moveq.w #17,d0
  90. move.w mess_2y,d1
  91. lea mess_2,a2
  92. jsr _draw_font
  93. moveq.w #10,d0
  94. move.w mess_3y,d1
  95. lea mess_3,a2
  96. jsr _draw_font
  97. moveq.w #5,d0
  98. move.w mess_4y,d1
  99. lea mess_4,a2
  100. jsr _draw_font
  101. moveq.w #6,d0
  102. move.w mess_5y,d1
  103. lea mess_5,a2
  104. jsr _draw_font
  105. moveq.w #9,d0
  106. move.w mess_6y,d1
  107. lea mess_6,a2
  108. jsr _draw_font
  109. moveq.w #12,d0
  110. move.w #180,d1
  111. lea mess_7,a2
  112. jsr _draw_font
  113. lea mess_8,a0
  114. moveq.l #0,d0
  115. move.w high_score,d0
  116. moveq.w #5,d1
  117. jsr _to_alpha
  118. moveq.w #16,d0
  119. move.w #192,d1
  120. lea mess_8,a2
  121. jsr _draw_font
  122. rts
  123. ********************************************************************************
  124. _move_credits
  125. move.w mess_1y,d0
  126. subq.w #1,d0
  127. cmp.w #10,d0
  128. bgt.s .no_at_y1
  129. moveq.w #10,d0
  130. .no_at_y1
  131. move.w d0,mess_1y
  132. move.w mess_2y,d0
  133. addq.w #1,d0
  134. cmp.w #20,d0
  135. blt.s .no_at_y2
  136. moveq.w #20,d0
  137. .no_at_y2
  138. move.w d0,mess_2y
  139. move.w mess_3y,d0
  140. addq.w #1,d0
  141. cmp.w #30,d0
  142. blt.s .no_at_y3
  143. moveq.w #30,d0
  144. .no_at_y3
  145. move.w d0,mess_3y
  146. move.w mess_4y,d0
  147. addq.w #1,d0
  148. cmp.w #50,d0
  149. blt.s .no_at_y4
  150. moveq.w #50,d0
  151. .no_at_y4
  152. move.w d0,mess_4y
  153. move.w mess_5y,d0
  154. addq.w #1,d0
  155. cmp.w #80,d0
  156. blt.s .no_at_y5
  157. moveq.w #80,d0
  158. .no_at_y5
  159. move.w d0,mess_5y
  160. move.w mess_6y,d0
  161. addq.w #1,d0
  162. cmp.w #100,d0
  163. blt.s .no_at_y6
  164. moveq.w #100,d0
  165. .no_at_y6
  166. move.w d0,mess_6y
  167. rts
  168. ********************************************************************************