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

  1. 0 sys32768:.opt p,oo:*= $c0df
  2. 1 .tit "lightpen/joystick-irq"
  3. 2 .pag 255
  4. 3 vic = $d000
  5. 4 flag = $9b
  6. 5 irqalt = $ea31
  7. 7 mask = $d01a
  8. 8 request = $d019
  9. 9 ;
  10. 10 ;initialisierung
  11. 11 ;===============
  12. 12 ;
  13. 13 sei       ;interrrupt verhindern
  14. 14 lda #<irqneu
  15. 15 ldx #>irqneu
  16. 16 sta $0314 ;irq-vektor auf neue
  17. 17 stx $0315 ;routine setzen
  18. 18 lda #00         ;flag fuer text
  19. 19 sta flag        ;setzen
  20. 20 lda #<$6000
  21. 21 sta $71
  22. 22 lda #>$6000     ;grafikschirm
  23. 23 sta $72
  24. 24 lda #00         ;ab $6000
  25. 25 ldx #32
  26. 26 l1  tay         ;loeschen
  27. 27 l2  sta ($71),y
  28. 28 iny
  29. 29 bne l2
  30. 30 inc $72:dex
  31. 31 bne l1
  32. 32 lda #<$4400     ;videoram ab
  33. 33 sta $71
  34. 34 lda #>$4400     ;$4400 mit farbe
  35. 35 sta $72
  36. 36 lda #110        ;fuellen- punkt-
  37. 37 ldx #04
  38. 38 l3  ldy #00     ;fare hellblau,
  39. 39 l4  sta ($71),y
  40. 40 iny             ;hintergrund blau
  41. 41 bne l4
  42. 42 inc $72:dex
  43. 43 bne l3
  44. 46 lda #%10001000  ;irq durch lightpen/
  45. 47 sta mask        ;joystick festlegen
  46. 48 cli             ;irq freigeben
  47. 49 rts
  48. 50 ;
  49. 51 ;neue interruptroutine
  50. 52 ;=====================
  51. 53 ;
  52. 54 irqneu  lda request   ;irq-register
  53. 55 sta request      ;loeschen
  54. 56 bmi raster       ;zum raster - irq
  55. 57 ;
  56. 58 ;timer-interrupt
  57. 59 ;===============
  58. 60 ;
  59. 61 lda $dc0d        ;irq-reg. loeschen
  60. 62 cli              ;irq zulassen
  61. 63 jmp irqalt       ;timer-irq-routine
  62. 64 ;
  63. 65 ;rasterzeilen-interrupt
  64. 66 ;======================
  65. 67 ;
  66. 70 raster   lda flag         ;hgr oder text
  67. 71 cmp #00
  68. 72 beq hgr          ;grafik einschalten
  69. 73 ;
  70. 74 ;auf textschirm schalten
  71. 75 ;=======================
  72. 76 ;
  73. 77 lda #%00011011
  74. 78 sta vic+17       ;grafik ausschalten
  75. 79 lda #%11001000   ;multicolor
  76. 80 sta vic+22       ;ausschalten
  77. 81 lda #%00010101   ;zeichensatz auf
  78. 82 sta vic+24       ;grosschrift
  79. 83 lda #%10010111   ;16 k-verschiebung
  80. 84 sta $dd00        ;des adressraumes
  81. 85 lda #00         ;flag auf hgr
  82. 86 sta flag        ;schalten
  83. 87 jmp $ea7e        ;irq beenden
  84. 88 ;
  85. 89 ;auf grafikschirm schalten
  86. 90 ;=========================
  87. 91 ;
  88. 92 hgr  lda #%10111011
  89. 93 sta vic+17      ;grafik einschalten
  90. 94 lda #%11001000
  91. 95 sta vic+22      ;multicolor aus
  92. 96 lda #%00011101
  93. 97 sta vic+24      ;videoram nach $4400
  94. 98 lda #%10010110  ;16k-verschiebung
  95. 99 sta $dd00       ;des adressraumes
  96. 100 lda #01        ;flag auf text
  97. 101 sta flag       ;schalten
  98. 102 jmp $ea7e      ;irq beenden
  99.