home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 90xx / 9009a.d64 / c64-ham.src < prev    next >
Text File  |  1995-03-30  |  2KB  |  131 lines

  1.  
  2. :TB18=$C400
  3. :TB11=$C500
  4.  
  5. ORG $C000
  6.  
  7. SEI
  8. LDX #0
  9. :TBGL
  10. TXA
  11. CLC
  12. ADC #1
  13. AND #7
  14. ORA #$38
  15. STA TB11,X ;D011 FUNKTIONSTABELLE
  16. TXA        ;GENERIEREN
  17. ADC #1
  18. ASL
  19. ASL
  20. ASL
  21. ASL
  22. ORA #8
  23. AND #$7F
  24. STA TB18,X   ;D018 ADRESSTABELLE
  25. INX          ;GENERIEREN
  26. CPX #200     ;200 RASTERZEILEN
  27. BNE TBGL
  28. LDA #$70     ;LETZTE ZEILE KEIN DMA
  29. STA TB11+199 ;UND RESTZEILEN SCHWARZ
  30. LDA #$08     ;SOWIE RUECKSETZEN
  31. STA TB18+199 ;VON D018
  32.  
  33. LDA #<NIQ    ;NEUER IRQ-VECTOR
  34. STA $314
  35. LDA #>NIQ
  36. STA $315
  37. LDA #$1B
  38. STA $D011    ;D011 NORMAL
  39. LDA #$18
  40. STA $D016    ;MULTICOLOR
  41. LDA #0
  42. STA $D015    ;KEINE SPRITE-DMA STOERUNG
  43. STA $D021
  44. STA $D020
  45. STA $DC0E    ;TIMER STOP
  46.  
  47. LDA #$4C     ;NEUER TIMER WERT
  48. STA $DC05    ;FUER ERSTEN IRQ SETZEN
  49. LDA #$C7-63  ;-63= 1 RASTERZEILE HOEHER
  50. STA $DC04
  51.  
  52. :WL1         ;AUF ZEILE $030
  53. LDA $D011    ;(UND NICHT $130)
  54. BPL WL1      ;WARTEN
  55. :WL2
  56. LDA $D011
  57. BMI WL2
  58.  
  59. LDA #$30
  60. :WL3
  61. CMP $D012
  62. BNE WL3
  63.  
  64. LDX #$11     ;SYNCHRONISATION DES
  65. LDA #$18     ;TIMERS AUF IMMER DIESELBE
  66. STA $D011    ;HORIZ. POSITION DURCH
  67. STX $DC0E    ;DMA-ZYKLEN AUSGLEICH
  68.  
  69. LDA #$3B     ;HIRES+NORMALWERT
  70. STA $D011
  71.  
  72. LDA $DC0D    ;EVNTL. ALTES IRQ-FLAG AUS
  73.  
  74. LDA $DD00    ;BANK $4000-$8000
  75. AND #$FC     ;ANWAEHLEN
  76. ORA #2
  77. STA $DD00
  78.  
  79. CLI          ;LOS GEHT'S
  80. RTS
  81.  
  82. :NIQ
  83. LDA #$9F       ;MINIMALWERT DER
  84. SEC            ;VERGANGENEN ZYKLEN
  85. SBC $DC04      ;ABWEICHUNG MESSEN
  86. CMP #12
  87. BCC OK
  88. JMP SYNCERR    ;ZUVIELE ZYKLEN
  89. :OK
  90. LSR            ;HAELFTE DA NOP=2 ZYK.
  91. BCC ONECYCLE   ;BRANCH=3 ZYK.
  92. :ONECYCLE      ;KEIN BRANCH 2
  93. STA RESTCYCLE+1
  94. :RESTCYCLE
  95. BPL RESTCYCLE  ;EINSPRUNG ZU NOPS
  96. NOP            ;AUSGLEICH DURCH NOPS
  97. NOP
  98. NOP
  99. NOP
  100. NOP
  101. NOP
  102.  
  103. LDA #$30       ;HIRES DISPLAY
  104. STA $D011      ;UND 1.DMA IN ZEILE $30
  105.  
  106. NOP            ;WEITERES TIMING
  107. NOP
  108. NOP
  109. LDX #0         ;TABELLENZEIGER RESET
  110.  
  111. :HAMLOOP       ;ERZEUGUNG
  112. LDA TB18,X     ;VON 200 DMA-ZEILEN
  113. STA $D018      ;MIT ADRESSUMSCHALTUNG
  114. LDA TB11,X
  115. STA $D011
  116. INX
  117. CPX #200
  118. BNE HAMLOOP
  119.  
  120. :IEND
  121. JMP $EA31    ;ZUR ALTEN IRQ ROUTINE
  122.  
  123. :SYNCERR     ;TIMER AUF EXACT
  124. LDA #$4C     ;EINEN BILDSCHIRMDURCHLAUF
  125. STA $DC05    ;STELLEN
  126. LDA #$C7
  127. STA $DC04
  128. JMP IEND
  129.  
  130.  
  131.