SPEED.S 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. *
  2. * SPEED.S SPEED REGISTER CODE
  3. *
  4. *
  5. * INITSPED - INITIALIZE SPEED REGISTERS
  6. *
  7. INITSPED
  8. LDY LEVEL ;GET THE RIGHT INITIAL SPEEDS
  9. CPY #21
  10. BMI ISSMALL
  11. LDX #31+128
  12. JMP INITSPD
  13. ISSMALL CPY #$05
  14. BMI ISSMALER
  15. LDY #$05
  16. ISSMALER LDX ISPED,Y
  17. INITSPD LDY #31
  18. SPDLOOP LDA SPEEDS,X
  19. STA M0SPEED0,Y
  20. DEX
  21. DEY
  22. BPL SPDLOOP
  23. LDX RACK ;GET OFFSET FOR THE RIGHT RED THRESHOLD
  24. CPX #18
  25. BMI INITREDS
  26. LDX #$18
  27. INITREDS LDY REDSOFF,X
  28. LDA REDS,Y
  29. STA REDTHRSH
  30. LDA REDS+1,Y
  31. STA REDTHRSH+1
  32. RTS
  33. *
  34. * INCMSPED - INCREMENT MONSTER SPEEDS
  35. *
  36. INCMSPED LDX #4
  37. INCMLOOP CLC
  38. ROL M0SPEED0,X
  39. ROL M0SPEED1,X
  40. ROL M0SPEED2,X
  41. ROL M0SPEED3,X
  42. LDA M0SPEED0,X
  43. ADC #0
  44. STA M0SPEED0,X
  45. DEX
  46. BPL INCMLOOP
  47. RTS
  48. *
  49. * INCPSPED - INCREMENT PAC SPEEDS
  50. *
  51. INCPSPED LDX #1
  52. INCPLOOP CLC
  53. ROL P0SPEED0,X
  54. ROL P0SPEED1,X
  55. ROL P0SPEED2,X
  56. ROL P0SPEED3,X
  57. LDA P0SPEED0,X
  58. ADC #0
  59. STA P0SPEED0,X
  60. DEX
  61. BPL INCPLOOP
  62. RTS
  63. * CHKMON: SETS A IF THIS MONSTER IS TO MOVE THIS CYCLE
  64. * IN X IS THE MONSTER NUMBER
  65. * OUT A IS TRUE IF IT IS TIME TO MOVE
  66. * USES A,Y
  67. CHKMON
  68. LDA M0STATE,X
  69. CMP #MSTEYES
  70. BNE CHKMON1
  71. LDA #1
  72. RTS
  73. CHKMON1
  74. LDY M0SPEED,X
  75. LDA M0TUNNEL,X
  76. BEQ CHKMON2
  77. LDY #SPDSLOW
  78. CHKMON2
  79. LDA M0SPEED0,Y
  80. AND #1
  81. RTS
  82. * CHKPAC: SETS A IF PAC IS TO MOVE THIS CYCLE
  83. * IN
  84. * OUT A IS TRUE IF IT IS TIME TO MOVE
  85. * USES A,Y
  86. CHKPAC
  87. LDA ISBLUE
  88. BNE CHKPAC1
  89. LDA P0SPEED0
  90. AND #1
  91. RTS
  92. CHKPAC1
  93. LDA P0SPEED0+1
  94. AND #1
  95. RTS
  96. SPEEDS DB $22,$21,$21,$89,$89 ;MONSTER SPEEDS RACK 0
  97. DB $22,$08,$08,$12,$12 ; 8,6,6,9,9
  98. DB $22,$21,$21,$24,$24
  99. DB $22,$08,$08,$44,$44
  100. DB $4A,$2A ;PAC SPEEDS RACK 0
  101. DB $52,$95 ; 13,14
  102. DB $95,$2A
  103. DB $29,$95
  104. DB $07,$A4 ; REVERSE TIMES(HAVE SAME RACKS)
  105. DB $19,$54
  106. DB $2A,$24,$22,$55,$6A ;MONSTER SPEEDS RACK 1
  107. DB $AA,$92,$22,$55,$AA ; 15,10,8,16,17
  108. DB $55,$24,$22,$55,$D5
  109. DB $55,$92,$22,$55,$55
  110. DB $55,$6A ;PAC SPEEDS RACK 1
  111. DB $55,$D5 ; 16,17
  112. DB $55,$6A
  113. DB $55,$D5
  114. DB $01,$A4 ; REVERSE TIMES(HAVE SAME RACKS)
  115. DB $06,$54
  116. DB $6A,$24,$24,$6A,$5A ;MONSTER SPEEDS RACK 2-4
  117. DB $AA,$92,$48,$D5,$D6 ; 17,11,9,18,19
  118. DB $D5,$49,$91,$6A,$B5
  119. DB $55,$25,$22,$D5,$AD
  120. DB $6A,$5A ;PAC SPEEDS RACK 2-4
  121. DB $D5,$D6 ; 18,19
  122. DB $6A,$B5
  123. DB $D5,$AD
  124. DB $01,$A4 ; REVERSE TIMES(HAVE SAME RACKS)
  125. DB $06,$54
  126. DB $5A,$25,$24,$6D,$6D ;MONSTER SPEEDS RACK 5-20
  127. DB $D6,$25,$92,$6D,$B6 ; 19,12,10,20,20
  128. DB $B5,$25,$24,$6D,$6D
  129. DB $AD,$25,$92,$6D,$B6
  130. DB $6D,$6D ;PAC SPEEDS RACK 5-20
  131. DB $6D,$6D ; 20,20
  132. DB $6D,$6D
  133. DB $6D,$6D
  134. DB $01,$2C ; REVERSE TIMES(HAVE SAME RACKS)
  135. DB $05,$DC
  136. DB $5A,$24,$24,$6D,$6D ;MONSTER SPEEDS RACK 21-
  137. DB $D6,$48,$92,$6D,$B6 ; 19,9,10,20,20
  138. DB $B5,$91,$24,$6D,$DB
  139. DB $AD,$22,$92,$6D,$6D
  140. DB $6A,$6A ;PAC SPEEDS RACK 21-
  141. DB $D5,$D5 ; 18,18
  142. DB $6A,$6A
  143. DB $D5,$D5
  144. DB $01,$2C ; REVERSE TIMES(HAVE SAME RACKS)
  145. DB $05,$DC
  146. REDS DB $24,$1A ;THRESHOLDS FOR RED MONSTER GETTING
  147. DB $2E,$1F ; MEAN - NOTE: I HAVE INCREASED ALL
  148. DB $38,$24 ; THESE VALUES BY $10 TO COMPENSATE
  149. DB $42,$29 ; FOR THE SMALLER MAZES
  150. DB $4C,$2E
  151. DB $60,$38
  152. DB $74,$42
  153. DB $88,$4C
  154. * OFFSETS INTO ABOVE TABLE BY RACK
  155. REDSOFF DB $00,$00,$02,$04,$04,$04,$06,$06
  156. DB $06,$08,$08,$08,$0A,$0A,$0A,$0C
  157. DB $0C,$0C,$0E
  158. * INITIAL SPEED TABLE, BY RACK THROUGH RACK 5
  159. ISPED DB 31,31+32,31+64,31+64,31+64,31+96