home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Go64!
/
Go64_2001-09_2001_CSW_Side_A.d64
/
scpu-fli.src
< prev
next >
Wrap
Text File
|
2023-02-26
|
4KB
|
120 lines
ORG $3A00
JMP_IN:
SEI ; iNTERRUPTS SPERREN
LDA #$35
STA $01 ; romS AUS, i/o AN
CLC
XCE ; nATIVE-mODE AN
SEP #$30 ; 8-bIT-rEGISTER
STA $D07B ; scpu AUF 20mHZ
STA $D07E
STA $D075
STA $D07F ; oPTIMIERE $4000-$7fff
LDA #$7F
STA $DC0D
STA $DD0D
LDA $DC0D
LDA $DD0D ; vERHINDERE cia-irq/nmi
LDX #$11
CPX $D012
BNE *-3 ; AUF zEILE $11 WARTEN
LDA #$3E
STA $DD06 ; tIMER AUF $003E SETZEN
STZ $DD07 ; = dAUER EINER pal-rASTERZEILE
CPX $D012
BEQ *-3 ; WARTEN AUF NAECHSTE zEILE
LSR $D41C ;
LSR $D41C ;
LSR $D41C ; EIN WENIG VERZOEGERN
STX $DD0F ; tIMER STARTEN!
LDA $DD00
AND #$FC
ORA #$02
DEC $DD00 ; gRAFIK-bANK SETZEN
LDA #$18
STA $D016 ; mULTI-cOLOR-mODUS AN
LDA #$31
STA CNT ; zAEHLER INITIALISIEREN
REP #$30 ; 16-bIT-rEGISTER
LDX #$3C00
LDY #$D800
LDA #$03E7
MVN $00,$00 ; fARB-ram DES bILDES KOPIEREN
STZ $D020 ; rAHMEN + hINTERGRUND AUF SCHWARZ
LDA #IRQ
STA $FFEE ; irq-vEKTOR AUF UNSERE rOUTINE
LDA #RTI
STA $FFEA ; UND nmi-vEKTOR AUF EIN rti UMBIEGEN
LDA #$3138
STA $D011
LDA #$017F
STA $D019 ; vic-irq SETZEN
CLI ; iNTERRUPTS ZULASSEN
ENDLESS:
INC $07E6
LDA ($00,S),Y
LDA $D000
ORA $DC00
STA $028000 ; bEFEHLE MIT UNTERSCHIEDLICHER zYKLENZAHL
STAL ($57),Y ; NUR ZUM tESTEN
ASL $DC01 ; run/stop GEDRUECKT?
BCS ENDLESS ; WENN NICHT, DANN WEITER
SEI
SEP #$30
SEC
XCE
LDA #$37
STA $01
JMP ($FFFC) ; SONST rESET
IRQ:
PHA
PHX
PHP ; rEGISTER UND pROZESSOR-fLAG RETTEN
SEP #$30 ; NUR 8 bIT-rEGISTER
LDX $DD06 ; tIMER-wERT HOLEN, BZW...
LDA STABLE_TAB,X ; DARAUS RESULTIERENDEN vERZOEGERUNGSWERT
DEC
BPL *-1 ; UND VERZOEGERN
LDA CNT ; zAEHLER HOLEN
AND #7 ; UNTERE 3 bIT ALS iNDEX
TAX ; SETZEN
LDA D018_TAB,X
STA $D018 ; $d018 BESCHREIBEN
LDA D011_TAB,X ; $d011-wERT HOLEN
LDX CNT
INX ; zAEHLER ERHOEHEN
STA $D011 ; JETZT ERST $d011 BESCHREIBEN
CPX #$F9 ; bILDSCHIRMENDE?
BNE IRQ_X
LDX #$31 ; JA, DANN zAEHLER AUF aNFANG
IRQ_X:
STX CNT ; zAEHLER SCHREIBEN
STX $D012 ; rASTERLINE FUER NEUEN irq SETZEN
LDA #1
STA $D019 ; irq BESTAETIGEN
LDA #$A0 ; wARTESCHLEIFE, DIE ZEIGEN
DEC ; SOLL, DASS DIE scpu NICHT
BNE *-1 ; DURCH DIE bADLINE BLOCKIERT IST.
STX $D020 : ZUM bEWEIS KLEINEN fARBBALKEN
STZ $D020 ; ERZEUGEN
PLP
PLX
PLA ; rEGISTER UND pROZESSOR-fLAG HOLEN
RTI: RTI ; UND TSCHUESS...
CNT: BYT 0 ; zAEHLER, MUSS IM NICHT GEMIRRORTEN
; sram LIEGEN!
STABLE_TAB:
BYT $FF,3,7,11,15,19,23,27
; ^ X=0 SOLLTE NICHT AUFTRETEN
D018_TAB:
BYT $08,$18,$28,$38,$48,$58,$68,$78
D011_TAB:
BYT $30,$39,$3A,$3B,$3C,$3D,$3E,$3F
; ^ bIT 3=0, DAMIT uP/dOWN-bORDER OFFEN IST