home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 65 / 64er_Magazin_Sonderheft_65_19xx_Markt__Technik_de_Side_A.d64 / raster-irq (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  1KB  |  62 lines

  1. 0 sys32768:.opt p,oo
  2. 10 .tit "rasterzeilen-interrupt"
  3. 11 .pag 255
  4. 12 *= $c000
  5. 13 rando = 106
  6. 14 randu = 194
  7. 15 irqalt = $ea31
  8. 16 raster = $d012
  9. 17 mask = $d01a
  10. 18 request = $d019
  11. 19 modus = $d018
  12. 20 klein = 21
  13. 21 gross = 23
  14. 22 ;
  15. 23 ;initialisierung
  16. 24 ;===============
  17. 25 ;
  18. 26 sei       ;interrrupt verhindern
  19. 27 lda #<irqneu
  20. 28 ldx #>irqneu
  21. 29 sta $0314 ;irq-vektor auf neue
  22. 30 stx $0315 ;routine setzen
  23. 31 lda #rando
  24. 32 sta raster  ;1.zeile fuer irq
  25. 33 lda raster-1
  26. 34 and #%01111111  ;high-byte loeschen
  27. 35 sta raster-1
  28. 36 lda #%10000001  ;irq durch raster-
  29. 37 sta mask        ;zeilen festlegen
  30. 38 cli             ;irq freigeben
  31. 39 rts
  32. 40 ;
  33. 41 ;neue interruptroutine
  34. 42 ;=====================
  35. 43 ;
  36. 44 irqneu  lda request   ;irq-register
  37. 45 sta request      ;loeschen
  38. 46 bmi rasterirq    ;zum raster - irq
  39. 47 ;
  40. 48 ;timer-interrupt
  41. 49 ;===============
  42. 50 ;
  43. 51 lda $dc0d        ;irq-reg. loeschen
  44. 52 cli              ;irq zulassen
  45. 53 jmp irqalt       ;timer-irq-routine
  46. 54 ;
  47. 55 ;rasterzeilen-interrupt
  48. 56 ;======================
  49. 57 ;
  50. 58 rasterirq  lda raster  ;zeile holen
  51. 59 cmp #randu       ;unterer rand
  52. 60 bcs ok           ;ja, sprung
  53. 61 lda #klein       ;nein, auf kein-
  54. 62 sta modus        ;schrift schalten
  55. 63 lda #randu
  56. 64 jmp exit         ;zum schluss
  57. 65 ok  lda #gross   ;grossschriftmodus
  58. 66 sta modus        ;einschalten
  59. 67 lda #rando
  60. 68 exit  sta raster
  61. 69 jmp $ea7e        ;irq beenden
  62.