home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 90xx / 9001a.d64 / q_hprg (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  8KB  |  362 lines

  1. 1  ;  +++++++++++++++++++++++++++++
  2. 2  ;  +                           +
  3. 3  ;  +  --- THE CHAR-KILLER ---  +
  4. 4  ;  +                           +
  5. 5  ;  + (C) 9/89 BY ALEX GEVATTER +
  6. 6  ;  +                           +
  7. 7  ;  +++++++++++++++++++++++++++++
  8. 8  ;  +                           +
  9. 9  ;  +  TEILPRG.: HAUPTPROGRAMM  +
  10. 10  ;  + SPEICHERBEL.: 40192-40930 +
  11. 11  ;  +      QUELLTEXT FUER:      +
  12. 12  ;  + KINGSOFT  POWER ASSEMBLER +
  13. 13  ;  +                           +
  14. 14  ;  +++++++++++++++++++++++++++++
  15. 15  ;
  16. 16  *=40192      ;STARTADRESSE
  17. 17  &=49152
  18. 18  ;
  19. 19  VIC    =53248       ;LABELS DEFI-
  20. 20  SID    =54272       ;NIEREN
  21. 21  BILD.L =253
  22. 22  BILD.H =254
  23. 23  ANFANG =40950
  24. 24  INT.L  =ANFANG
  25. 25  INT.H  =ANFANG+1
  26. 26  AN     =ANFANG+2
  27. 27  ZAEH.L =ANFANG+3
  28. 28  ZAEH.H =ANFANG+4
  29. 29  ZUF    =ANFANG+5
  30. 30  ZEILE  =ANFANG+6
  31. 31  SPR.Z  =ANFANG+7
  32. 32  SPALTE =ANFANG+8
  33. 33  LOE.Z  =ANFANG+9
  34. 34  ;
  35. 35  LDA #0       ;PROGRAMM VOR
  36. 36  STA 55       ;UEBERSCHREI-
  37. 37  LDA #157     ;BEN SCHUETZEN
  38. 38  STA 56
  39. 39  ;
  40. 40  LDX #0       ;SPRITEDATEN
  41. 41  LOOP.1 LDA SPRITE,X ;"SPRITE" IN
  42. 42  STA 896,X    ;SPRITE-BLOCKS
  43. 43  STA 960,X    ;14 U. 15
  44. 44  INX          ;KOPIEREN
  45. 45  CPX #63
  46. 46  BNE LOOP.1
  47. 47  LDA #255
  48. 48  STA 896+22
  49. 49  STA 896+25
  50. 50  STA 896+28
  51. 51  STA 896+31
  52. 52  ;
  53. 53  LDX #0       ;TEXT AUS TA-
  54. 54  LOOP.2 LDA TEXT,X   ;BELLE "TEXT"
  55. 55  JSR $FFD2    ;AUSGEBEN
  56. 56  INX
  57. 57  CPX #19
  58. 58  BNE LOOP.2
  59. 59  ;
  60. 60  LDX #10      ;ZWISCHENSPEI-
  61. 61  LDA #0       ;CHER LOESCHEN
  62. 62  LOOP.3 STA ANFANG-1,X
  63. 63  DEX
  64. 64  BNE LOOP.3
  65. 65  ;
  66. 66  LDA #8       ;VIC-GRUND-
  67. 67  STA VIC+14   ;EINSTELLUNGEN
  68. 68  LDA VIC+16
  69. 69  AND #127
  70. 70  STA VIC+16
  71. 71  LDA VIC+21
  72. 72  ORA #128
  73. 73  STA VIC+21
  74. 74  LDA VIC+23
  75. 75  AND #127
  76. 76  STA VIC+23
  77. 77  LDA VIC+27
  78. 78  AND #127
  79. 79  STA VIC+27
  80. 80  LDA VIC+28
  81. 81  AND #127
  82. 82  STA VIC+28
  83. 83  LDA VIC+29
  84. 84  AND #127
  85. 85  STA VIC+29
  86. 86  LDA #7
  87. 87  STA VIC+46
  88. 88  LDA #14
  89. 89  STA 2047
  90. 90  ;
  91. 91  LDA #15      ;SID-GRUND-
  92. 92  STA SID+24   ;EINSTELLUNGEN
  93. 93  LDA #130
  94. 94  STA SID+14
  95. 95  LDA #8
  96. 96  STA SID+15
  97. 97  LDA #128
  98. 98  STA SID+18
  99. 99  LDA #0
  100. 100  STA SID+19
  101. 101  LDA #240
  102. 102  STA SID+20
  103. 103  ;
  104. 104  LDX #9       ;CBM80 AB
  105. 105  LOOP.4 DEX          ;32768 SCHREI-
  106. 106  LDA CBM80,X  ;BEN (RESET-
  107. 107  STA 32768,X  ;SCHUTZ
  108. 108  BNE LOOP.4
  109. 109  ;
  110. 110  LDA #<REST.  ;RESTORE AUF
  111. 111  STA 792      ;EIGENE ROU-
  112. 112  LDA #>REST.  ;TINE EINSTEL-
  113. 113  STA 793      ;LEN
  114. 114  ;
  115. 115  LDA 788      ;ALTEN IRQ-
  116. 116  STA INT.L    ;VEKTOR IN
  117. 117  LDA 789      ;INT.L + INT.H
  118. 118  STA INT.H    ;SPEICHERN
  119. 119  SEI          ;IRQ AUF
  120. 120  LDA #<INTER  ;EIGENE ROU-
  121. 121  STA 788      ;TINE STELLEN
  122. 122  LDA #>INTER
  123. 123  STA 789
  124. 124  CLI
  125. 125  ;
  126. 126  RTS          ;ZURUECK ZUM
  127. 127  ;                   ;BASIC
  128. 128  ;
  129. 129  ; *** EIGENE  RESTORE-ROUTINE ***
  130. 130  ;
  131. 131  REST.  PHA          ;DIE NORMALE
  132. 132  TXA          ;RESTORE-ROU-
  133. 133  PHA          ;TINE WIRD
  134. 134  TYA          ;AUSGEFUEHRT,
  135. 135  PHA          ;NUR DAS ZU-
  136. 136  LDA #$7F     ;RUECKSETZEN
  137. 137  STA $DD0D    ;DES INTER-
  138. 138  LDY $DD0D    ;RUPTS WIRD
  139. 139  BMI SPR.1    ;AUSGELASSEN
  140. 140  JSR $F6BC
  141. 141  JSR $FFE1
  142. 142  BNE SPR.1
  143. 143  JSR $FDA3
  144. 144  JSR $E518
  145. 145  JMP ($A002)
  146. 146  SPR.1  JMP $FE72
  147. 147  ;
  148. 148  ;  *** EIGENE  RESET-ROUTINE ***
  149. 149  ;
  150. 150  RESET  STX $D016    ;DIE NORMALE
  151. 151  JSR $FDA3    ;RESET-ROUTINE
  152. 152  JSR $FD50    ;WIRD AUSGE-
  153. 153  JSR $FF8A    ;FUEHRT, ZU
  154. 154  JSR $FF5B    ;SAETZLICH
  155. 155  CLI          ;WIRD NOCH
  156. 156  JSR $E453    ;DER CHAR-KIL-
  157. 157  JSR $E3BF    ;LER AKTIVIERT
  158. 158  JSR $E422
  159. 159  LDA #71
  160. 160  STA 792
  161. 161  LDA #254
  162. 162  STA 793
  163. 163  JSR 40192
  164. 164  JMP $E386
  165. 165  ;
  166. 166  ;*** EIGENE  INTERRUPT-ROUTINE ***
  167. 167  ;
  168. 168  INTER  LDA VIC+21   ;WENN EIN
  169. 169  BNE SPR.2    ;RESTORE AUS-
  170. 170  SEI          ;GEFUEHRT
  171. 171  LDA INT.L    ;WURDE, MUSS
  172. 172  STA 788      ;DER CHAR-KIL-
  173. 173  LDA INT.H    ;LER NEU INIT-
  174. 174  STA 789      ;IALISIERT
  175. 175  CLI          ;WERDEN
  176. 176  JSR 40192
  177. 177  ;
  178. 178  SPR.2  LDA AN       ;CHAR-KILLER
  179. 179  BNE LAEUFT   ;AN=NACH
  180. 180  ;                   ;LAEUFT SPRIN.
  181. 181  ;
  182. 182  INC ZAEH.L   ;WARTESCHLEIFE
  183. 183  LDA ZAEH.L   ;(LO/HI-ZAEH-
  184. 184  BNE SPR.3    ;LER)
  185. 185  ;
  186. 186  LDA ZAEH.H
  187. 187  CMP ZUF
  188. 188  BCS ERSTAN
  189. 189  INC ZAEH.H
  190. 190  SPR.3  JMP (INT.L)
  191. 191  ;
  192. 192  ERSTAN INC AN       ;DIE VORBEREI-
  193. 193  LDA 204      ;TUNGEN FUER
  194. 194  BEQ SPR.4    ;DAS AUFTAU-
  195. 195  ;                   ;CHEN DES
  196. 196  JSR ZUFALL   ;CHAR-KILLERS
  197. 197  LDA ZUF      ;WERDEN GE-
  198. 198  STA ZEILE    ;TROFFEN,
  199. 199  JMP SPR.5    ;D.H. DIE Y-
  200. 200  ;                   ;POSITION FUER
  201. 201  SPR.4  LDA 214      ;DAS SPRITE
  202. 202  STA ZEILE    ;SOWIE DIE
  203. 203  ;                   ;ANFANGSADRES-
  204. 204  SPR.5  ASL          ;SE DER ENT-
  205. 205  ASL          ;SPRECHENDEN
  206. 206  ASL          ;ZEILE IM
  207. 207  CLC          ;BILDSCHIRM-
  208. 208  ADC #45      ;SPEICHER WER-
  209. 209  STA VIC+15   ;DEN BERECHNET
  210. 210  ;
  211. 211  LDA #<1024
  212. 212  STA BILD.L
  213. 213  LDA #>1024
  214. 214  STA BILD.H
  215. 215  LDX #40
  216. 216  LOOP.5 CLC
  217. 217  LDA BILD.L
  218. 218  ADC ZEILE
  219. 219  STA BILD.L
  220. 220  LDA BILD.H
  221. 221  ADC #0
  222. 222  STA BILD.H
  223. 223  DEX
  224. 224  BNE LOOP.5
  225. 225  ;
  226. 226  JMP (INT.L)
  227. 227  ;
  228. 228  LAEUFT INC SPR.Z    ;DAS "MAUL"
  229. 229  LDA SPR.Z    ;DES CHAR-KIL-
  230. 230  CMP #5       ;LERS WIRD GE-
  231. 231  BNE SPR.7    ;OEFFNET UND
  232. 232  ;                   ;GESCHLOSSEN
  233. 233  LDA #0       ;UND DAS
  234. 234  STA SPR.Z    ;FRESSGE-
  235. 235  LDA 2047     ;RAEUSCH ER-
  236. 236  CMP #15      ;ZEUGT
  237. 237  BEQ SPR.6
  238. 238  INC 2047
  239. 239  LDA #128
  240. 240  STA SID+18
  241. 241  JMP SPR.7
  242. 242  ;
  243. 243  SPR.6  DEC 2047
  244. 244  LDA #129
  245. 245  STA SID+18
  246. 246  ;
  247. 247  SPR.7  LDA VIC+16   ;BEWEGUNG DES
  248. 248  AND #128     ;SPRITES
  249. 249  BNE SPR.9
  250. 250  LDA VIC+14
  251. 251  CMP #255
  252. 252  BEQ SPR.8
  253. 253  JMP SPR.10
  254. 254  SPR.8  LDA VIC+16
  255. 255  ORA #128
  256. 256  STA VIC+16
  257. 257  SPR.9  LDA VIC+14
  258. 258  CMP #82
  259. 259  BEQ ENDE
  260. 260  SPR.10 INC VIC+14
  261. 261  LDA VIC+16   ;UEBERPRUEFEN,
  262. 262  AND #128     ;OB DAS LOE-
  263. 263  BNE SPR.11   ;SCHEN EINES
  264. 264  LDA VIC+14   ;ZEICHENS
  265. 265  CMP #10      ;NOETIG IST
  266. 266  BCC SPR.12
  267. 267  ;
  268. 268  SPR.11 LDA SPALTE
  269. 269  CMP #40
  270. 270  BEQ SPR.12
  271. 271  INC LOE.Z
  272. 272  LDA LOE.Z
  273. 273  CMP #8
  274. 274  BEQ SPR.13
  275. 275  SPR.12 JMP (INT.L)
  276. 276  ;
  277. 277  SPR.13 LDA #0       ;ES WIRD
  278. 278  STA LOE.Z    ;UEBERPRUEFT,
  279. 279  LDA 204      ;OB DIE X- UND
  280. 280  BNE SPR.15   ;Y-POSITION
  281. 281  ;                   ;DES CURSORS
  282. 282  LDA 214      ;UND DIE DES
  283. 283  CMP ZEILE    ;ZU LOESCHEN-
  284. 284  BNE SPR.15   ;DEN ZEICHENS
  285. 285  LDA 211      ;UEBEREINSTIM-
  286. 286  DEC          ;MEN. IST DIES
  287. 287  CMP SPALTE   ;SO, MUSS DER
  288. 288  BEQ SPR.14   ;CURSOR KURZ
  289. 289  LDA 213      ;AUSGESCHALTET
  290. 290  CMP #39      ;WERDEN
  291. 291  BEQ SPR.15
  292. 292  LDA 211
  293. 293  CMP #40
  294. 294  BCC SPR.15
  295. 295  LDA 211
  296. 296  DEC
  297. 297  SEC
  298. 298  SBC #40
  299. 299  CMP SPALTE
  300. 300  BNE SPR.15
  301. 301  ;
  302. 302  SPR.14 LDA #0
  303. 303  STA 207
  304. 304  INC
  305. 305  STA 204
  306. 306  ;
  307. 307  SPR.15 LDA #32      ;LOESCHEN DES
  308. 308  LDY SPALTE   ;ZEICHENS
  309. 309  STA (BILD.L),Y
  310. 310  INC SPALTE
  311. 311  JMP (INT.L)
  312. 312  ;
  313. 313  ENDE   LDA #0       ;DER CHAR-KIL-
  314. 314  STA AN       ;LER HAT DEN
  315. 315  STA SPALTE   ;RECHTEN RAND
  316. 316  STA ZAEH.H   ;ERREICHT UND
  317. 317  STA LOE.Z    ;WIRD ABGE-
  318. 318  LDA #8       ;SCHALTET
  319. 319  STA VIC+14
  320. 320  LDA VIC+16
  321. 321  AND #127
  322. 322  STA VIC+16
  323. 323  LDA #128
  324. 324  STA SID+18
  325. 325  JSR ZUFALL
  326. 326  LDA ZUF
  327. 327  LSR
  328. 328  LSR
  329. 329  STA ZUF
  330. 330  JMP (INT.L)
  331. 331  ;
  332. 332  ZUFALL LDA SID+27   ;UNTERROUTINE
  333. 333  STA ZUF      ;ZUR BERECH-
  334. 334  CMP #250     ;NUNG EINER
  335. 335  BCS ZUFALL   ;ZUFALLSZAHL
  336. 336  LDX #0       ;ZWISCHEN 0
  337. 337  LOOP.6 LDA ZUF      ;UND 24
  338. 338  CMP #10
  339. 339  BCC SPR.16
  340. 340  SEC
  341. 341  LDA ZUF
  342. 342  SBC #10
  343. 343  STA ZUF
  344. 344  INX
  345. 345  JMP LOOP.6
  346. 346  SPR.16 STX ZUF
  347. 347  RTS
  348. 348  ;
  349. 349  SPRITE .0,0,0,0,0,0,0,0,0,0,0,0,0
  350. 350  .120,0,0,252,0,1,254,0,3
  351. 351  .240,0,3,224,0,3,224,0,3
  352. 352  .248,0,1,254,0,0,252,0,0
  353. 353  .120,0,0,0,0,0,0,0,0,0,0
  354. 354  .0,0,0,0,0,0,0,0,0,0,0,0
  355. 355  ;
  356. 356  TEXT   .17,"READY. (TO KILL!)",145
  357. 357  ;
  358. 358  CBM80  .235,157,20,158,195,194,205
  359. 359  .56,48
  360. 360  ;
  361. 361  ;          --- ENDE ---
  362.