home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 65 / 64er_Magazin_Sonderheft_65_19xx_Markt__Technik_de_Side_A.d64 / sprite-irq (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  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.