home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 90xx / 9005a.d64 / nofreeze.src (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  3KB  |  100 lines

  1. 10 SYS9*4096
  2. 20 .OPT OO
  3. 30 *=$C000
  4. 40 ;
  5. 50 IRQVEK = $0314   ; VEKTOR AUF IRQ-ROUTINE
  6. 60 VICREG = $D011   ; VIC-CONTROLLREGISTER 1
  7. 70 RASTER = $D012   ; AKTUELLE RASTERZEILE
  8. 80 IRQFRQ = $DC04   ; REGISTER FUER IRQ-FREQUENZ (LO/HI)
  9. 90 CIACTL = $DC0E   ; CIA1-CONTROLLREGISTER
  10. 100 NRMIRQ = $EA31  ; NORMALE IRQ-ROUTINE
  11. 110 RESET  = $FCE2  ; RESET-ROUTINE
  12. 120 ;
  13. 130 LINE = 250      ; RASTERZEILE FUER INTERRUPT
  14. 140 ;
  15. 150 LDA #0          ; CIA-INTERRUPTS
  16. 160 STA CIACTL      ; SPERREN
  17. 170 LDA #<ROUT      ; IRQ-VEKTOR
  18. 180 LDX #>ROUT      ; AUF EIGENE
  19. 190 STA IRQVEK      ; ROUTINE
  20. 200 STX IRQVEK+1    ; BIEGEN
  21. 210 LDA #199        ; CIA-INTERRUPT-FREQUENZ
  22. 220 LDX #76         ; AUF UNGEFAEHR
  23. 230 STA IRQFRQ      ; 50 HZ STELLEN
  24. 240 STX IRQFRQ+1    ; (SO WIE BEI RASTER-IRQ)
  25. 250 I1 LDA VICREG   ; WARTEN, BIS RASTERZEILE
  26. 260 BPL I1          ; >255
  27. 270 I1A LDA VICREG  ; WARTEN, BIS RASTERZEILE
  28. 280 BMI I1A         ; WIEDER =0
  29. 290 LDA #LINE-5     ; WARTEN, BIS RASTERSTRAHL
  30. 300 I2 CMP RASTER   ; 5 ZEILEN UNTER DER
  31. 310 BNE I2          ; GEWUENSCHTEN ZEILE IST
  32. 320 LDA #1          ; CIA-INTERRUPTS
  33. 330 STA CIACTL      ; WIEDER FREIGEBEN
  34. 340 RTS
  35. 1000 ;
  36. 1010 ROUT LDA RASTER; MOMENTANE RASTERZEILE
  37. 1020 CMP #LINE-5    ; = STARTZEILE?
  38. 1030 BEQ OK         ; WENN JA, DANN ZU OK
  39. 1040 LDX #8         ; VERZOEGERN, BIS RASTERSTRAHL
  40. 1050 C1 DEX         ; NAECHSTE ZEILE
  41. 1060 BNE C1         ; ERREICHT HAT
  42. 1070 LDA RASTER     ; MOMENTANE RASTERZEILE
  43. 1080 CMP #LINE-4    ; = STARTZEILE-1? (ZUR SICHERHEIT)
  44. 1090 BEQ OK         ; WENN JA, DANN ZU OK
  45. 1100 JMP RESET      ; WENN NEIN, DANN RESET (=> FREEZESCHUTZ)
  46. 1110 OK LDA #LINE-3 ; DAFUER SORGEN,
  47. 1120 W1 CMP RASTER  ; DASS DIE GE-
  48. 1130 BNE W1         ; WUENSCHTE RASTER-
  49. 1140 LDX #10        ; ZEILE (LINE) AB-
  50. 1150 W2 DEX         ; SOLUT FLIMMERFREI
  51. 1160 BNE W2         ; ANGESPRUNGEN WIRD
  52. 1170 NOP            ; (NACHZULESEN IN
  53. 1180 LDA RASTER     ; 64'ER 06/89,
  54. 1190 CMP #LINE-2    ; SEITE 90 FF)
  55. 1200 BEQ W3         ;
  56. 1210 BIT 2          ;
  57. 1220 NOP            ;
  58. 1230 W3 LDX #9      ;
  59. 1240 W4 DEX         ;
  60. 1250 BNE W4         ;
  61. 1260 NOP            ;
  62. 1270 NOP            ;
  63. 1280 NOP            ;
  64. 1290 LDA RASTER     ;
  65. 1300 CMP #LINE-1    ;
  66. 1310 BEQ W5         ;
  67. 1320 BIT 2          ;
  68. 1330 W5 LDX #10     ;
  69. 1340 W6 DEX         ;
  70. 1350 BNE W6         ;
  71. 1360 NOP            ;
  72. 1370 LDA RASTER     ;
  73. 1380 CMP #LINE      ;
  74. 1390 BNE W7         ;
  75. 1400 W7 LDX #5      ;
  76. 1410 W8 DEX         ;
  77. 1420 BNE W8         ;
  78. 1430 NOP            ; NOCHMALS
  79. 1440 NOP            ; VERZOEGERN
  80. 1450 NOP            ;
  81. 1460 NOP            ;
  82. 1470 NOP            ;
  83. 1480 NOP            ;
  84. 1490 ;
  85. 1500 ; AB HIER FOLGT DANN DIE HAUPT-
  86. 1510 ; RASTER-INTERRUPT-ROUTINE, DIE SO
  87. 1520 ; WIE NORMAL PROGRAMMIERT WERDEN
  88. 1530 ; KANN, NUR BRAUCHT MAN DAS IRQ-
  89. 1540 ; REQUEST-REGISTER NICHT MEHR ZU
  90. 1550 ; LOESCHEN
  91. 2000 ;
  92. 2010 MAIN LDA #19   ; BILDSCHIRM AUF 24
  93. 2020 STA VICREG     ; ZEILEN SCHALTEN
  94. 2030 LDX #14        ; VERZOEGERN
  95. 2040 L1 DEX         ;
  96. 2050 BNE L1         ;
  97. 2060 LDA #27        ; WIEDER AUF 25 ZEILEN
  98. 2070 STA VICREG     ; ZURUECKSCHALTEN
  99. 2080 JMP NRMIRQ     ; ZUR NORMALEN INTERRUPT-ROUTINE
  100.