home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh3x / sh30b.d64 / src.main (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  8KB  |  272 lines

  1. 105 ; ABGETIPPT/UEBERARBEITET/KOMMENTIERT VON N.HEUSLER, 19.4.88
  2. 106 ; ****************** !! **********
  3. 107 ; BITTE ZEILE 105 UNBEDINGT IM LISTING LASSSEN UND ZEILEN 106-108 LOESCHEN !
  4. 108 ; ****************** !! **********
  5. 110  .EQV =53248
  6. 120  JSRINITIAL ; ADRESSEN INIT
  7. 130  JSRIRQ     ; IRQ UMLENKEN
  8. 140  RTS        ; FERTIG
  9. 150 SETSPRITE LDA#130 ; SPRITE 0 AUF
  10. 160  STAV       ; POSITION (130/114)
  11. 170  LDA#114
  12. 180  STAV+1
  13. 190  LDA#0
  14. 200  STAV+16
  15. 210  STAV+29
  16. 220  STAV+23
  17. 225  LDA#2      ; ROT
  18. 230  STAV+39    ; SETZEN
  19. 240  LDA#5      ; GRUEN
  20. 250  STAV+37    ; MULTICOLOR1
  21. 260  LDA#32     ; SPRITEPOINTER
  22. 270  STA2040
  23. 280  LDA#1      ; MULTICOLOR AN
  24. 290  STAV+28
  25. 300  STAV+21    ; SPRITE AN
  26. 310  RTS
  27. 320 ANIMATION RTS
  28. 330 ; IN DIESEN ZEILEN
  29. 340 ; STEHT SPAETER
  30. 350 ; DAS UNTERPROGRAMM
  31. 360 ; FUER DIE SPRITE-
  32. 370 ; ANIMATION
  33. 600 INITIAL LDA#39 ; DATEN FUER SPR.0
  34. 610  STA2040    ; AUS BLOCK 39
  35. 620  LDA#0      ; NULL
  36. 650  STA65      ; LB VON GRAFIKPOINTER AUF 0
  37. 660  STAGAME    ; SPIELSTAND
  38. 670  LDA#7      ; SOFTSCROLLZEIGER
  39. 680  STA2       ; AUF SIEBEN
  40. 690  LDA#200    ; VERZ. NACH SPIELENDE
  41. 700  STADELAY   ; 200/25 SEK.
  42. 710  LDA#$70    ; HIGH VON GRAFIKPOINTER
  43. 720  STA66      ; AUF $70
  44. 730  LDA#<(1144)  ; POINTER FUER
  45. 740  STA67      ; BILDSCH. GRAFIK
  46. 750  LDA#>(1144)  ; IN 67/68 AUF 1144
  47. 760  STA68
  48. 770  LDA#5      ; FUENF
  49. 772  STA53281   ; DAMIT'S AUF ALTEN 64'ERN LAEUFT ! (NH)
  50. 780  STA646     ; UND AUF NEUEN (CURSORFARBE)
  51. 790  JSR$E544   ; DENN DIESE SCNSLR ROUTINE GIBT'S
  52. 792 ; IN 2 AUSFUEHRUNGEN
  53. 800  LDA53270
  54. 810  AND#247    ; 38 ZEICHEN PRO ZEILE
  55. 820  STA53270
  56. 830  JSRRAMSCREEN ; GRAFIK -> SCHIRM
  57. 840  JSRSETSPRITE ; AN
  58. 842  LDA#0      ; TIEFSCHWARZ
  59. 844  STA53280   ; RAHMEN
  60. 846  STA53281   ; GRUND
  61. 850  LDA53279   ; LOESCHEN KOLLISION SPRITE-GRUND
  62. 860  RTS        ; FERTIG
  63. 870 DELAY BRK  ; VERZOEGERUNGSZAEHLER
  64. 880 IRQ SEI    ; IRQ AUS
  65. 890 ; HIER
  66. 900 ; STEHT
  67. 910 ; ROUTINE
  68. 920 ; FUER DIE
  69. 930 ; INTERRUPT-
  70. 940 ; GESTEUERTE
  71. 950 ; MUSIK (SPAETER MAL)
  72. 960  LDA#<(IRQNEU) ; LOW
  73. 970  STA$314    ; IRQPOINTER AUF EIGENE ROUTINE
  74. 980  LDA#>(IRQNEU) ; HIGH
  75. 990  STA$315    ; SETZEN
  76. 1000  LDA#74    ; RASTERZEILE 74
  77. 1010  STAV+$12  ; INS RASTERREG.
  78. 1020  LDAV+$11  ; HIGHBYTE DER RA.ZEILE
  79. 1030  AND#$7F   ; AUS
  80. 1040  STAV+$11
  81. 1050  LDA#$81   ; RASTERZEILENIRQ VOM VIC
  82. 1060  STAV+$1A  ; ZULASSEN
  83. 1070  CLI       ; SONST GEHT'S NICHT (IRQ WIEDER AN)
  84. 1080  RTS       ; FERTIG
  85. 1090 GAME BRK  ; SPIELSTANDVARIABLE (ANFANGS NULL)
  86. 1100 JOYAB LDA#224 ; TASTATUR
  87. 1110  STA56322  ; ABSCHALTEN
  88. 1120  LDA56320  ; JOYPORT 2
  89. 1130  AND#1     ; BIT 1 GESETZT TESTEN
  90. 1140  BNEJOY2   ; JA, DANN WEITER ABFRAGEN
  91. 1150  DECV+1    ; SPRITE Y-POS ERNIEDRIGEN
  92. 1160 JOY2 LDA56320
  93. 1170  AND#2     ; BIT 2 TESTEN
  94. 1180  BNEJOY3   ; JA, DANN WEITER
  95. 1190  INCV+1    ; SONST SPRITE SENKEN
  96. 1200 JOY3 LDA56320
  97. 1210  AND#4     ; BIT 3 TESTEN
  98. 1220  BNEJOY4   ; JA, WEITER
  99. 1230  LDAV      ; WENN DIE X-POS DES SPRITE
  100. 1240  CMP#32    ; GROESSER 32 IST
  101. 1250  BEQJOY4
  102. 1260  DECV      ; ERNIEDRIGEN
  103. 1270 JOY4 LDA56320
  104. 1280  AND#8     ; BIT 4
  105. 1290  BNEJOY5   ; WEITER
  106. 1300  LDAV      ; WENN X-POS VON SPRITE 0
  107. 1310  CMP#255   ; KLEINER 255 IST
  108. 1320  BEQJOY5   ; DANN WEITER
  109. 1330  INCV      ; X-POS ERHOEHEN
  110. 1340 JOY5 LDA#255 ; TASTATUR
  111. 1350  STA56322  ; EIN
  112. 1360  RTS       ; GESCHAFFT
  113. 1370 RAMSCREEN LDX#0 ; 13 MAL (ANZ. ZEILEN)
  114. 1380 RAMSCRL1 LDY#0 ; 40 ZEICHEN
  115. 1390 RAMSCRL2 LDA(65),Y ; AUS
  116. 1400  STA(67),Y ; DEM GRAFIKBEREICH
  117. 1410  INY       ; ZUM
  118. 1420  CPY#40    ; BILDSCHIRM
  119. 1430  BNERAMSCRL2 ; TRANFERIEREN
  120. 1440  INC66
  121. 1450  INC66     ; GRAFIKVEKTOR IST
  122. 1460  LDA67
  123. 1470  CLC       ; IN DER ZEROPAGE
  124. 1480  ADC#40
  125. 1490  STA67     ; 65/66
  126. 1500  LDA68     ; BILDSCHIRMVEKTOR IST
  127. 1510  ADC#0
  128. 1520  STA68     ; 67/68
  129. 1530  INX
  130. 1540  CPX#13    ; SCHON 13 ZEILEN
  131. 1550  BNERAMSCRL1 ; NEIN
  132. 1560  LDA66     ; GRAFIKVEKTOR
  133. 1570  SEC
  134. 1580  SBC#26
  135. 1590  STA66
  136. 1600  LDA#<(1144) ; BILDSCHIRMVEKTOR
  137. 1610  STA67
  138. 1620  LDA#>(1144)
  139. 1630  STA68     ; BEIDE RESTAURIEREN
  140. 1640  RTS       ; FERTIG
  141. 1650 WARTEN LDY#0 ; TEXT 1 IN DEN SCHIRM
  142. 1660 WARTEN1 LDATEXT1,Y
  143. 1670  STA1754,Y
  144. 1680  INY       ; AB SPEICHERZELLE 1754
  145. 1690  CPY#20    ; 20 ZEICHEN
  146. 1700  BNEWARTEN1
  147. 1710  LDA#224   ; TASTATUR
  148. 1720  STA56322  ; AUS
  149. 1730  LDA56320  ; JOYSTICK LESEN
  150. 1740  CMP#111   ; KNOPF TESTEN
  151. 1750  BNEWARTENEND ; NEIN, ENDE
  152. 1760  LDA#255   ; TASTATUR
  153. 1770  STA56322  ; EIN
  154. 1780  LDY#0     ; TEXT1 IM SCHIRM LOESCHEN
  155. 1790  LDA#32    ; == MIT SPACES UEBERMALEN
  156. 1800 WARTEN2 STA1754,Y
  157. 1810  INY
  158. 1820  CPY#20
  159. 1830  BNEWARTEN2
  160. 1840  INCGAME   ; SPIELSTAND AUF 'SPIEL GESTARTET' SETZEN
  161. 1850 WARTENEND RTS
  162. 1860 TEXT1 .BY8,9,20,32,20,18,9,7,7,5,18,32,20
  163. 1865  .BY15,32,19,20,1,18,20
  164. 1870 BOING LDY#0 ; TEXT2 AUSGEBEN
  165. 1880 BO1 LDATEXT2,Y
  166. 1890  STA1754,Y
  167. 1900  INY
  168. 1910  CPY#20    ; 20 ZEICHEN
  169. 1920  BNEBO1
  170. 1930  DECDELAY  ; WARTEN BIS
  171. 1940  LDADELAY  ; VERZOEGERUNG
  172. 1950  BNEBOEND  ; BEI NULL
  173. 1960  LDY#0
  174. 1970  LDA#32    ; TEXT2 LOESCHEN
  175. 1980 BO2 STA1754,Y
  176. 1990  INY
  177. 2000  CPY#20
  178. 2010  BNEBO2
  179. 2020  JSRINITIAL ; ALLES NEU EINSTELLEN
  180. 2030 BOEND RTS
  181. 2040 TEXT2 .BY25,15,21,18,32,13,9,19,19,9,15,14,32
  182. 2042  .BY6,1,9,12,5,4,32
  183. 2050 OVER LDY#0  ; TEXT 3 IN DEN
  184. 2060 OVERL1 LDATEXT3,Y ; BILDSCHIRM
  185. 2070  STA1754,Y
  186. 2080  INY
  187. 2090  CPY#20      ; 20 ZEICHEN
  188. 2100  BNEOVERL1   ; TRANSFERIEREN
  189. 2110  DECDELAY    ; WARTEN BIS
  190. 2120  LDADELAY    ; VERZOEGERUNG
  191. 2130  BNEOVEREND  ; NULL IST
  192. 2140  LDY#0       ; TEXT3
  193. 2150  LDA#32      ; MIT SPACES
  194. 2160 OVERL2 STA1754,Y ; UEBERMALEN
  195. 2170  INY
  196. 2180  CPY#20
  197. 2190  BNEOVERL2
  198. 2200  JSRINITIAL  ; ALLES INITIALISIEREN (NEUSTART)
  199. 2210 OVEREND RTS
  200. 2220 TEXT3 .BY25,15,21,32,13,1,4,5,32,9,20,44,15,12
  201. 2222  .BY4,32,2,15,25,44 ; TEXT IM BILDSCHIRMCODE
  202. 2230 SCROLL LDA2 ; 7 PUNKTE NACH LINKS
  203. 2240  BEQBLKSCROLL ; HARDSCROLLING
  204. 2250  DEC2      ; EINEN PUNKT NACH LINKS
  205. 2260  LDA65     ; ABFRAGEN
  206. 2270  CMP#$D8   ; OB DIE GRAFIK AM ENDE
  207. 2280  BNEBLKEND
  208. 2290  LDA66     ; ANGELANGT IST
  209. 2300  CMP#$71   ; (BEI $71D8)
  210. 2310  BNEBLKEND ; NEIN, WEITER
  211. 2320  INCGAME   ; GAME = GAME +2
  212. 2330  INCGAME
  213. 2340 BLKEND RTS
  214. 2350 BLKSCROLL LDA#7; SPEICHERSTELLE FUER SOFTSCROLL
  215. 2360  STA2      ; AUF SIEBEN
  216. 2370  LDA65     ; GRAFIKPOINTER
  217. 2380  CLC       ; UM 1
  218. 2390  ADC#1     ; (EINFACHER WAERE INC)
  219. 2400  STA65     ; ERHOEHEN
  220. 2410  LDA66     ; HIGHBYTE
  221. 2420  ADC#0     ; SEHR UMSTAENDLICH PROGRAMMIERT
  222. 2430  STA66
  223. 2440  JSRRAMSCREEN ; TRANSFERROUTINE AUFRUFEN
  224. 2450  RTS
  225. 2460 IRQNEU LDAV+$19 ; IRQ-REGISTER
  226. 2470  STAV+$19  ; LOESCHEN
  227. 2480  BMIRASTER ; WAR RASTER-IRQ
  228. 2490  LDA$DC0D  ; NORMALEN
  229. 2500  CLI       ; IRQ ZULASSEN
  230. 2510  JMP$EA31  ; ZUR SYSTEMROUTINE
  231. 2520 RASTER LDAV+$12 ; RASTERIRQ
  232. 2530  CMP#178   ; BEI ZEILE 178
  233. 2540  BCSZWEITER ; JA, WEITER
  234. 2550  LDA53270  ; AB ZEILE 74
  235. 2560  AND#248   ; UM DEN WERT IN
  236. 2570  ORA2      ; SPEICHERZELLE 2
  237. 2580  STA53270  ; NACH LINKS SCROLLEN (SMOOTH)
  238. 2590  LDA#5     ; RAHMENFARBE
  239. 2600  STA53280  ; GRUEN
  240. 2610  LDA#178   ; NAECHSTEN IRQ BEI ZEILE 178
  241. 2620  STA$D012
  242. 2630  JMP$FEBC  ; IRQ FERTIG
  243. 2640 ZWEITER LDA53270 ; BILDSCHIRM AB
  244. 2650  AND#248   ; ZEILE 178
  245. 2660  ORA#7     ; NORMAL SCHALTEN
  246. 2670  STA53270
  247. 2680  LDA#0     ; SCHWARZ
  248. 2690  STA53280  ; RAHMENFARBE
  249. 2700  LDAGAME   ; SPIELSTAND
  250. 2710  BNEGAME1  ; NULL - NEIN, DANN WEITER
  251. 2720  JSRWARTEN
  252. 2730  JMPEXIT
  253. 2740 GAME1 CMP#1
  254. 2750  BNEGAME2  ; UNGLEICH 1
  255. 2760  JSRSCROLL ; SCROLLEN
  256. 2770  JSRANIMATION ; SPRITE
  257. 2780  JSRJOYAB  ; JOYST. ABFRAGEN
  258. 2790  LDA53279  ; SPRITE-HINTERGRUND KOLLISION
  259. 2800  BEQNOBOING ; KEIN ZUSAMMENSTOSS
  260. 2810  INCGAME   ; SONST VERMERKEN
  261. 2820 NOBOING JMPEXIT ; FERTIG
  262. 2830 GAME2 CMP#2 ; GLEICH 2
  263. 2840  BNEGAME3  ; IMMER NOCH NICHT RICHTIG
  264. 2850  JSRBOING  ; ZUSAMMENSTOSS AUSGEBEN
  265. 2860  JMPEXIT
  266. 2870 GAME3 CMP#3
  267. 2880  BNEEXIT   ; AUCH NICHT 3, DANN ENDE
  268. 2890  JSROVER   ; SPIELENDE
  269. 2900 EXIT LDA#74 ; NAECHSTER RASTERIRQ
  270. 2910  STAV+$12  ; BEI ZEILE 74
  271. 2920  JMP$FEBC  ; IRQ BEENDEN
  272.