;Blendet ein Bild in lauter kleinen Wuerfeln ein
;die Koordinaten wo die einzelnen Wuerfel erscheinen liegen in den
;Daten bei 'POS' wobei die 1 Zahl die Zeile ist (insgesamt 
;20 Zeilen - von 0-9) und die 2.Zahl die Position in der Zeile ist
;(insgesamt 20 Postitionen pro Zeile  0 - 19)
;dieses Listing ist fuer ein Bild mit 4 Bitplanes
;bei Bild mit 5 Bitplanes braucht nur der innere Schleifenzaehler
;um 1 erhoeht werden (auf 4)
;------------------------------------------------------------------
; geschrieben von:   KAPL Harald
;		     Mendelstr. 3
;		     4600  WELS  (OESTERREICH)
;
; please contact me !!!!!!!!!
;-----------------------------------------------------------------


scroll:
ziel = $40000
start = $50000
move.l #start,a2	;Adresse wo Bild hingeladen wurde
move.l #ziel,a3		;Adresse wo Bild erscheinen soll
move.l #pos,a5
move.l #200,d4		;Anzahl der Wuerfel in D4

L3:
MOVE.L #19,D2


MOVE.L #00,A4
MOVE.L A2,A0
MOVE.L A3,A1
move.b (a5)+,d5		;holen der Zeile und mal 800 multiplizieren
mulu #800,d5

move.b (a5)+,d6		;holen der Spalte und mit 2 multiplizieren
mulu #2,d6
add.l d5,d6		;addieren der Werte Zeile und Spalte
add.l d6,a4		;und in A4(Abstand von Start) schreiben
clr.l d5		;Register fuer Zeile und Spalte
clr.l d6		;loeschen
l40:
move.l a2,a0		;Adressregister in Arbeitsregister
move.l a3,a1
ADD.L A4,A0
ADD.L A4,A1


MOVE.L #3,D7		;inner Zaehler fuer Anzahl der Bitplanes

L1:
MOVE.W (A0)+,(A1)+	;1 Zeile schreiben
ADD.L #7998,A0		;um 1 Bitplane erhoehen
ADD.L #7998,A1
DBRA D7,L1		;und ab um die restlichen Zeilen 
ADD.L #40,A4		;der Bitplanes zu schreiben
DBRA D2,L40		;um eine Zeile erhoehen (insgesammt 20 mal)
bsr wa			;kleine Warteschleife anspringen
dbra d4,l3		;und auf zu den naechsten Wuerfel
rts			;insgesamt 200 mal

wait:MACRO
move.l #$a00,d7
mulu ?1,d7
waitloop?0:
subq.l #1,d7
bpl waitloop?0
ENDM
wa:
wait #02
rts


pos:
dc.b 3,6,5,7,2,10,3,9,8,4,3,3,2,13,7,11,1,6,5,14,7,8,1,8,2,5,4,11  
dc.b 2,15,8,18,9,3,0,11,5,5,4,17,8,7,1,12,8,15,6,17,0,5,9,9,3,12
dc.b 2,18,7,5,7,14,0,7,3,15,7,16,6,1,2,7,1,16,7,9,3,17,1,2,5,18
dc.b 8,2,4,9,1,14,0,3,9,16,2,11,6,12,3,1,7,19,8,1,3,19,1,10,9,13
dc.b 4,7,7,4,4,13,2,4,6,15,9,5,0,15,6,8,4,2,1,18,8,12,6,5,5,16
dc.b 2,1,5,8,9,14,5,0,0,17,2,3,9,8,0,19,4,10,0,0,7,15,5,1,0,14
dc.b 9,19,1,7,6,4,3,16,8,0,1,17,5,2,5,12,8,10,5,13,7,7,2,12,3,5
dc.b 4,19,6,11,1,1,5,6,8,17,9,2,0,10,5,17,8,5,2,9,3,0,6,3,0,4
dc.b 6,9,4,3,8,13,9,15,6,19,4,8,3,14,1,11,7,2,9,6,2,19,3,7,5,15
dc.b 8,3,7,12,4,14,1,15,1,5,4,12,7,18,3,18,6,0,0,2,1,13,3,11,0,8
dc.b 6,16,3,2,9,11,0,16,0,6,2,6,9,4,1,4,7,3,6,14,9,12,5,11,1,19
dc.b 4,6,9,11,6,7,2,16,4,15,1,9,5,3,8,19,9,0,4,1,2,0,4,18,3,13
dc.b 7,10,4,5,8,11,7,6,6,2,7,1,8,8,9,17,8,16,5,9,3,10,2,2,6,18
dc.b 6,10,9,7,1,0,2,17,0,9,3,8,7,17,9,1,6,6,4,0,2,14,4,16,5,10
dc.b 9,10,1,3,0,13,8,14,0,18,6,13,8,6,5,4,2,8,3,4,5,19,8,9,7,13
dc.b 9,18,0,1,7,0,4,4,0,12
