home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
90xx
/
9009a.d64
/
c64-ham.src
< prev
next >
Wrap
Text File
|
1995-03-30
|
2KB
|
131 lines
:TB18=$C400
:TB11=$C500
ORG $C000
SEI
LDX #0
:TBGL
TXA
CLC
ADC #1
AND #7
ORA #$38
STA TB11,X ;D011 FUNKTIONSTABELLE
TXA ;GENERIEREN
ADC #1
ASL
ASL
ASL
ASL
ORA #8
AND #$7F
STA TB18,X ;D018 ADRESSTABELLE
INX ;GENERIEREN
CPX #200 ;200 RASTERZEILEN
BNE TBGL
LDA #$70 ;LETZTE ZEILE KEIN DMA
STA TB11+199 ;UND RESTZEILEN SCHWARZ
LDA #$08 ;SOWIE RUECKSETZEN
STA TB18+199 ;VON D018
LDA #<NIQ ;NEUER IRQ-VECTOR
STA $314
LDA #>NIQ
STA $315
LDA #$1B
STA $D011 ;D011 NORMAL
LDA #$18
STA $D016 ;MULTICOLOR
LDA #0
STA $D015 ;KEINE SPRITE-DMA STOERUNG
STA $D021
STA $D020
STA $DC0E ;TIMER STOP
LDA #$4C ;NEUER TIMER WERT
STA $DC05 ;FUER ERSTEN IRQ SETZEN
LDA #$C7-63 ;-63= 1 RASTERZEILE HOEHER
STA $DC04
:WL1 ;AUF ZEILE $030
LDA $D011 ;(UND NICHT $130)
BPL WL1 ;WARTEN
:WL2
LDA $D011
BMI WL2
LDA #$30
:WL3
CMP $D012
BNE WL3
LDX #$11 ;SYNCHRONISATION DES
LDA #$18 ;TIMERS AUF IMMER DIESELBE
STA $D011 ;HORIZ. POSITION DURCH
STX $DC0E ;DMA-ZYKLEN AUSGLEICH
LDA #$3B ;HIRES+NORMALWERT
STA $D011
LDA $DC0D ;EVNTL. ALTES IRQ-FLAG AUS
LDA $DD00 ;BANK $4000-$8000
AND #$FC ;ANWAEHLEN
ORA #2
STA $DD00
CLI ;LOS GEHT'S
RTS
:NIQ
LDA #$9F ;MINIMALWERT DER
SEC ;VERGANGENEN ZYKLEN
SBC $DC04 ;ABWEICHUNG MESSEN
CMP #12
BCC OK
JMP SYNCERR ;ZUVIELE ZYKLEN
:OK
LSR ;HAELFTE DA NOP=2 ZYK.
BCC ONECYCLE ;BRANCH=3 ZYK.
:ONECYCLE ;KEIN BRANCH 2
STA RESTCYCLE+1
:RESTCYCLE
BPL RESTCYCLE ;EINSPRUNG ZU NOPS
NOP ;AUSGLEICH DURCH NOPS
NOP
NOP
NOP
NOP
NOP
LDA #$30 ;HIRES DISPLAY
STA $D011 ;UND 1.DMA IN ZEILE $30
NOP ;WEITERES TIMING
NOP
NOP
LDX #0 ;TABELLENZEIGER RESET
:HAMLOOP ;ERZEUGUNG
LDA TB18,X ;VON 200 DMA-ZEILEN
STA $D018 ;MIT ADRESSUMSCHALTUNG
LDA TB11,X
STA $D011
INX
CPX #200
BNE HAMLOOP
:IEND
JMP $EA31 ;ZUR ALTEN IRQ ROUTINE
:SYNCERR ;TIMER AUF EXACT
LDA #$4C ;EINEN BILDSCHIRMDURCHLAUF
STA $DC05 ;STELLEN
LDA #$C7
STA $DC04
JMP IEND