home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 87xx / 8705.d64 / sprite-irq (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  2KB  |  100 lines

  1. 0 SYS32768:.OPT P,OO
  2. 10 .TIT "SPRITE-INTERRUPT"
  3. 11 .PAG 255
  4. 12 *= $C04D
  5. 13 VIC = $D000
  6. 15 IRQALT = $EA31
  7. 17 MASK = $D01A
  8. 18 REQUEST = $D019
  9. 22 ;
  10. 23 ;INITIALISIERUNG
  11. 24 ;===============
  12. 25 ;
  13. 26 SEI       ;INTERRRUPT VERHINDERN
  14. 27 LDA #<IRQNEU
  15. 28 LDX #>IRQNEU
  16. 29 STA $0314 ;IRQ-VEKTOR AUF NEUE
  17. 30 STX $0315 ;ROUTINE SETZEN
  18. 36 LDA #%10000110  ;IRQ DURCH SPRITE-
  19. 37 STA MASK        ;KOLLISION FESTLEGEN
  20. 38 CLI             ;IRQ FREIGEBEN
  21. 39 RTS
  22. 40 ;
  23. 41 ;NEUE INTERRUPTROUTINE
  24. 42 ;=====================
  25. 43 ;
  26. 44 IRQNEU  LDA REQUEST   ;IRQ-REGISTER
  27. 45 STA REQUEST      ;LOESCHEN
  28. 46 BMI RASTER       ;ZUM RASTER - IRQ
  29. 47 ;
  30. 48 ;TIMER-INTERRUPT
  31. 49 ;===============
  32. 50 ;
  33. 51 LDA $DC0D        ;IRQ-REG. LOESCHEN
  34. 52 CLI              ;IRQ ZULASSEN
  35. 53 JMP IRQALT       ;TIMER-IRQ-ROUTINE
  36. 54 ;
  37. 55 ;RASTERZEILEN-INTERRUPT
  38. 56 ;======================
  39. 57 ;
  40. 58 RASTER  LDA VIC+31     ;SPR-HINTERGR
  41. 59 CMP #00:BNE BACK
  42. 60 ;
  43. 61 ;SPRITE-SPRITE KOLLISION
  44. 62 ;=======================
  45. 63 ;
  46. 66 LDX #35
  47. 67 L1  LDY #00
  48. 68 L2  TYA
  49. 69 STA VIC+39+1   ;SPRITE1 FARBE
  50. 70 EOR #15
  51. 71 STA VIC+39+2   ;SPRITE2 FARBE
  52. 72 INY
  53. 73 BNE L2
  54. 74 DEX
  55. 75 BNE L1
  56. 76 L3  INC VIC+3  ;SPRITE1 ABSTURZ
  57. 77 LDX #13
  58. 78 LP1  LDY #00
  59. 79 LP2  INY
  60. 80 BNE LP2
  61. 81 DEX
  62. 82 BNE LP1
  63. 87 LDA VIC+3
  64. 88 CMP #220
  65. 89 BNE L3
  66. 100 LDA VIC+21
  67. 101 AND #%11111101 ;SPRITE1 AUS
  68. 102 STA VIC+21
  69. 103 LDA #00
  70. 104 STA VIC+30     ;KOLLISION LOESCHEN
  71. 105 JMP $FEBC      ;IRQ BEENDEN
  72. 106 ;
  73. 107 ;SPRITE-HINTERGRUNG KOLLISION
  74. 108 ;============================
  75. 109 ;
  76. 110 BACK  LDX #35
  77. 111 L4  LDY #00
  78. 112 L5  TYA
  79. 113 STA VIC+39+2    ;SPRITE2 FARBE
  80. 114 INY
  81. 115 BNE L5
  82. 116 DEX
  83. 117 BNE L4
  84. 118 L6  INC VIC+5   ;SPRITE2 ABSTURZ
  85. 119 LDX #13
  86. 120 LP3  LDY #00
  87. 121 LP4  INY
  88. 122 BNE LP4
  89. 123 DEX
  90. 124 BNE LP3
  91. 125 LDA VIC+5
  92. 126 CMP #220
  93. 130 BNE L6
  94. 131 LDA VIC+21
  95. 132 AND #%11111011  ;SPRITE2 AUS
  96. 133 STA VIC+21
  97. 134 LDA #00
  98. 135 STA VIC+31      ;KOLLISION LOESCHEN
  99. 136 JMP $FEBC       ;IRQ BEENDEN
  100.