home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1992 December
/
64er_Magazin_92-12_1992_Markt__Technik_de_Side_A.d64
/
eci++_ascii
< prev
next >
Wrap
Text File
|
2022-10-26
|
4KB
|
135 lines
;***************************************
;* >>>>> the perfect eci-routine <<<<< *
;* >>>>> written in august '92 <<<<< *
;* >>>>> by mr.perfect <<<<< *
;* *
;* based on the eci-splitter *
;* written by uwe michel *
;***************************************
+lines =$02 ;anzahl der eci-zeilen
;******** source (professional-ass!) ***
.setpc $c000 ;startadresse
lda #1 ;char-color
sta 646 ;weiss
jsr $e544 ;clear screen
lda #21 ;eci ueber 21
sta lines ;rasterzeilen
ldx #0 ;schwarzen
stx $d020 ;border und
stx $d021 ;screen
lda #$f5 ;bitmuster
+clrl1 sta $4000,x ;fuer fli-
sta $4100,x ;darstellung
inx ;festlegen
bne clrl1 ;...
ldy #tablen ;$d018
lda #$10 ;wertetabelle
+maketab1 sta tab-1,y ;fuer
dey ;'zick-zack'
clc ;effekt
adc #$10 ;generieren
bvc maketab1
lda #$60
+maketab2 sta tab-1,y
dey
beq makecol0
sec
sbc #$10
bne maketab2
lda #$20
bne maketab1
+makecol0 ldx #39 ;color-tabellen
+makecol1 lda colors+0,x ;anlegen
sta $4400,x
lda colors+1,x
sta $4800,x
lda colors+2,x
sta $4c00,x
lda colors+3,x
sta $5000,x
lda colors+4,x
sta $5400,x
lda colors+5,x
sta $5800,x
lda colors+6,x
sta $5c00,x
dex
bpl makecol1
sei ;interrupt sperren
lda #$c8 ;normaler 40-zeichen
sta $d016 ;bildschirm
lda #$7f ;irq-maske fuer
sta $dc0d ;cia loeschen
lda #$01 ;nur rasterinterrupt
sta $d01a ;zulassen
lda #$32 ;und zwar in zeile
sta $d012 ;$32
ldx #<eci ;irq-vektor auf
ldy #>eci ;eci-routine
stx $0314 ;verbiegen
sty $0315 ;...
cli ;interrupt zulassen
+ende rts ;return
;******** interrupt-routinen ***********
+eci inc $d019 ;irq loeschen
dec $dd00 ;vic-bank=$4000
clc ;akku-startwert
lda #$33 ;festlegen
ldy lines ;anzahl holen
beq noeci ;kein eci ?
+mloop ldx tab,y ;fli ueber
sta $d011 ;y rasterzeilen
stx $d018 ;legen
adc #1 ;neuen $d011-
and #%00110111 ;wert berechnen
dey ;schon fertig ?
bne mloop ;nein, nochmal
+noeci lda #$70 ;bildschirm
sta $d011 ;schwarz
+wl1 lda $d012 ;auf naechste
and #%00000111 ;bildschirm-
bne wl1 ;zeile warten
inc $dd00 ;vic-bank und
ldx #$16 ;farbram wieder
stx $d018 ;normalisieren
lda #$19 ;screen wieder
sta $d011 ;einschalten
ldx #tablen ;eci-tabelle
+movetab lda tab-1,x ;verschieben
sta tab,x ;.
dex ; .
bne movetab ; .
lda tab+tablen ; .
sta tab ; .
jmp $ea31 ;und tschuess!
;******** tabellen *********************
+colors .b $17,$7f,$fc,$c8,$8b,$b9,$90
.b $06,$60,$09,$92,$28,$8a,$af
.b $f7,$71,$17,$7f,$fa,$a8,$82
.b $29,$90,$09,$90,$09,$9b,$b8
.b $b8,$8c,$cf,$f7,$71,$17,$7f
.b $fc,$c8,$8b,$b9,$90,$06,$6b
.b $b4,$4e,$ef,$f7,$71,$0c,$00
+tab .b $00 ;tabelle wird generiert
+tablen = 204 ;fuer max. 204 zeilen
.endsource