scene.org File Archive

File download

<root>­/­mirrors­/­amigascne­/­Scrollers­/­D-Groupstext­/­D-Others/DF&Q-MegapartyIntro.txt

File size:
36 700 bytes (35.84K)
File date:
2013-07-01 23:05:54
Download count:
all-time: 104

Preview

d      YYEEEAAAHHHHH !!!!!!!     c IT IS PARTY TIME !!!!!   DREAM FACTORY 
AND THE QUALITYZERS PRESENTS:    MEGA PARTY f  .....ON THE 6TH AND 7TH 
APRIL 91 IN GIESSEN GERMANY !!!THE GATES WILL BE OPENED ON SATURDAY AT 
3 O CLOCK PM.  WHEN YOU ENTER THE HALL (THE ENTRACE FEE WILL BE 7 DM) YOU 
WILL SEE SOME AMIGAS (OF CORSE) AND A BIG VIDEO SCREEN ON WICH WE WILL 
SHOW YOU SOME DEMOS,FILMS AND VIDEO CLIPS. AROPOS VIDEO: UNDER OUR NEW 
LABEL  DFI 7  WE WILL MAKE A PARTY VIDEO !! YOU CAN BUY THE TAPE FOR ONLY 
20 DM FROM US !!!         WE WELCOME OUR NEW MEMBERS:       TERROR   
fc(SWAPPING)        T.ONE    fc(GFX)   AND  BLACK RAVEN 
fc(CODING,CRACKING,GFX)     WE WILL SELL SOME FOOD AND DRINKS.  THERE WILL
 ARE 2 COMPETITIONS:  AT FIRST OF CORSE A DEMO COMPETION WITH A DISKDRIVE 
FOR THE WINNER AND AT 2ND A LOTUS ESPRIT RACE.THE CHAMPION GETS 50 BLANK 
DISKS !!!   DO YOU LIKE TO DANCE ?? IT IS NO PROBLEM !! WE WILL MAKE A 
DISCO WITH RAP,POP,TECHNO AND HIP-HOP !!! IT STARTS ON SATUERDAY AT 
5 O CLOCK PM. AND ENDS AT 10 O CLOCK PM.  YOU CAN NOT SLEEP IN THE 
HALL !!! SO DO NOT FORGET YOUR TENT !!  IF YOU WANT TO MAKE A REALASE AND 
SELL THE ORIGINAL YOU CAN DO THAT AT A SMALL BAZZAR (HARDWARE,TOO).       
IF YOU HAVE ANY MORE QUESTIONS,WRITE TO THE PARTY MAILBOX UNDER aPLK 
083202 C  6305 BUSECK 2  UNITED GERMANY    c AND NOW THE GREETINX:  ARGON
 (SEND SOME DEMOS) -- FAITH NO MORE -- THE MUTANT TEAM -- PLASHER -- 
NEW VIOLINCE -- ANGELS -- TRISTAR! -- TYMEX -- DECADE -- EXCALIBUR -- 
SPREADPOINT -- VECTORS -- ZYLON OF ALPHA FLIGHT -- FAIRLIGHT -- AOFCF -- 
TRACK (C64) -- NEW COMPANY -- KLAUS -- JUERGEN AND THE REST OF THE BEST  
    AND ALWAYS REMEMBER:   DREAM FACTORY.....A TOUGH OF HEAVEN !!! AND 
THE QUALITYZERS......MUZAK AND SOUND FROM THE ELITE !!!!!!!      SOUND BY
 THE QUALITYZERS     LOGO BY HAWKE OF DREAM FACTORY    CODE BY A GUY WITH
 NO PSEUDO !!!!            SIGNED BY HAWKE OF DREAM FACTORY ON 02-02-91  
                                 ...............................         
                                     



f1:intro
1:backup/intro
df0:intro$30000
$30000
ogo
$65000



adr = $30000
org adr
load adr
j = adr

;bevor ihr anfaengt: speicher loeschen von $30000 bis $65000
;fi
;$30000
;$65000
;0

;Mod = $48800	;max 108000 bytes

;Logo = $40000
;auf der disk bef. sich ein iff konverter
;ladet das iff-bild, und schneidet es aus:
;genau 80 Linien hoch, 4planes, 320 pix breit
;jetzt klickt ihr die option raw-blit an und speichert die Bitmap
;(no palette)
;diese bitmap ladet ihr auf $40000
;
;die palette speichert ihr mit der option `Copper` als source ab
;und legt den colorsource unten in die copperliste bei `LogoCol`
;alte palette macht ihr weg
;die farben der stars koennt ihr ja noch aendern, siehe coplist


>EXTERN "df1:data",$3e800
>EXTERN "df0:modules/mod.hardhatzone",$48800
>EXTERN "df1:inLogo",$40000

;wenn fertig: save from $30000 to $63000
;wi
;intro$30000
;$30000
;$63000

;Crunch-Anleitung:

; Load DefjamPack
; Kein Megacrunch
; Lowmem = $30000
; Highmem = $65000
; ScanWidth = $0800 (kannst Du im Prinzip selbst einstellen, aber
;                     $800 ist meistens am besten)
;                     bei $10 gehts am schnellsten, ist aber nicht
;                     so effektiv
; LoadType = o
  ; Filename = intro$30000
  ; Loadadress = $30000

; wenn du nun Return gedrueckt hast und alles fertig gecruncht ist
;  gibst du die JMP-Adresse an: $30000
; Flash-Register kannst Du selbst wählen
;  (Bsp: 0 = Hintergrundfarbe)
; kein Pro-Decruncher
; jetzt noch absaven und dann bist Du fertig

;zum scroll:
;               a = Speed 1
;               b = Speed 2
;               c = Speed 3
;               d = Speed 4
;               e = Speed 5
;               f = stop


Start:
	movem.l	d0-d7/a0-a6,-(a7)

	lea	$63000,a0
	lea	$7f000,a1
ClrLp1:
	clr.l	(a0)+
	cmp.l	a0,a1
	bne	ClrLp1
	
	bsr 	Makestarlist
	bsr	MakeMWliste
	bsr	KonvertPic
	bsr	OpenStuff
	bset	#1,$bfe001
	bsr	mt_init

MouseKlick:
	
Wstrahl:cmp.b	#$ff,$dff006
	bne	Wstrahl

	bsr	jump
	bsr	MegaWobble
	bsr	CharScroll
	bsr	BobStars
	bsr	mt_music

	btst	#6,$bfe001
 	bne	MouseKlick

	bsr	closestuff
	bsr	mt_end
	bclr	#1,$bfe001
	movem.l	(a7)+,d0-d7/a0-a6
	rts

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®


;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

mt_data=$48800

;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
;­   NoisetrackerV1.0 replayroutine   ­
;­ Mahoney & Kaktus - HALLONSOFT 1989 ­
;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

mt_init:lea	mt_data,a0
	move.l	a0,a1
	add.l	#$3b8,a1
	moveq	#$7f,d0
	moveq	#0,d1
mt_loop:move.l	d1,d2
	subq.w	#1,d0
mt_lop2:move.b	(a1)+,d1
	cmp.b	d2,d1
	bgt.s	mt_loop
	dbf	d0,mt_lop2
	addq.b	#1,d2

	lea	mt_samplestarts(pc),a1
	asl.l	#8,d2
	asl.l	#2,d2
	add.l	#$43c,d2
	add.l	a0,d2
	move.l	d2,a2
	moveq	#$1e,d0
mt_lop3:clr.l	(a2)
	move.l	a2,(a1)+
	moveq	#0,d1
	move.w	42(a0),d1
	asl.l	#1,d1
	add.l	d1,a2
	add.l	#$1e,a0
	dbf	d0,mt_lop3

	or.b	#$2,$bfe001
	move.b	#$6,mt_speed
	clr.w	$dff0a8
	clr.w	$dff0b8
	clr.w	$dff0c8
	clr.w	$dff0d8
	clr.b	mt_songpos
	clr.b	mt_counter
	clr.w	mt_pattpos
	rts

mt_end:	clr.w	$dff0a8
	clr.w	$dff0b8
	clr.w	$dff0c8
	clr.w	$dff0d8
	move.w	#$f,$dff096
	rts

mt_music:
	movem.l	d0-d4/a0-a3/a5-a6,-(a7)
	lea	mt_data,a0
	addq.b	#$1,mt_counter
	move.b	mt_counter,D0
	cmp.b	mt_speed,D0
	blt.s	mt_nonew
	clr.b	mt_counter
	bra	mt_getnew

mt_nonew:
	lea	mt_voice1(pc),a6
	lea	$dff0a0,a5
	bsr	mt_checkcom
	lea	mt_voice2(pc),a6
	lea	$dff0b0,a5
	bsr	mt_checkcom
	lea	mt_voice3(pc),a6
	lea	$dff0c0,a5
	bsr	mt_checkcom
	lea	mt_voice4(pc),a6
	lea	$dff0d0,a5
	bsr	mt_checkcom
	bra	mt_endr

mt_arpeggio:
	moveq	#0,d0
	move.b	mt_counter,d0
	divs	#$3,d0
	swap	d0
	cmp.w	#$0,d0
	beq.s	mt_arp2
	cmp.w	#$2,d0
	beq.s	mt_arp1

	moveq	#0,d0
	move.b	$3(a6),d0
	lsr.b	#4,d0
	bra.s	mt_arp3
mt_arp1:moveq	#0,d0
	move.b	$3(a6),d0
	and.b	#$f,d0
	bra.s	mt_arp3
mt_arp2:move.w	$10(a6),d2
	bra.s	mt_arp4
mt_arp3:asl.w	#1,d0
	moveq	#0,d1
	move.w	$10(a6),d1
	lea	mt_periods(pc),a0
	moveq	#$24,d7
mt_arploop:
	move.w	(a0,d0.w),d2
	cmp.w	(a0),d1
	bge.s	mt_arp4
	addq.l	#2,a0
	dbf	d7,mt_arploop
	rts
mt_arp4:move.w	d2,$6(a5)
	rts

mt_getnew:
	lea	mt_data,a0
	move.l	a0,a3
	move.l	a0,a2
	add.l	#$c,a3
	add.l	#$3b8,a2
	add.l	#$43c,a0

	moveq	#0,d0
	move.l	d0,d1
	move.b	mt_songpos,d0
	move.b	(a2,d0.w),d1
	asl.l	#8,d1
	asl.l	#2,d1
	add.w	mt_pattpos,d1
	clr.w	mt_dmacon

	lea	$dff0a0,a5
	lea	mt_voice1(pc),a6
	bsr.s	mt_playvoice
	lea	$dff0b0,a5
	lea	mt_voice2(pc),a6
	bsr.s	mt_playvoice
	lea	$dff0c0,a5
	lea	mt_voice3(pc),a6
	bsr.s	mt_playvoice
	lea	$dff0d0,a5
	lea	mt_voice4(pc),a6
	bsr.s	mt_playvoice
	bra	mt_setdma

mt_playvoice:
	move.l	(a0,d1.l),(a6)
	addq.l	#4,d1
	moveq	#0,d2
	move.b	$2(a6),d2
					;***********
	move.b	d2,28(a6)		;MyChange !!!!!
					;***********
	and.b	#$f0,d2
	lsr.b	#4,d2
	move.b	(a6),d0
	and.b	#$f0,d0
	or.b	d0,d2
	tst.b	d2
	beq.s	mt_setregs
	moveq	#0,d3
	lea	mt_samplestarts(pc),a1
	move.l	d2,d4
	subq.l	#$1,d2
	asl.l	#2,d2
	mulu	#$1e,d4
	move.l	(a1,d2.l),$4(a6)
	move.w	(a3,d4.l),$8(a6)
	move.w	$2(a3,d4.l),$12(a6)
	move.w	$4(a3,d4.l),d3
	tst.w	d3
	beq.s	mt_noloop
	move.l	$4(a6),d2
	asl.w	#1,d3
	add.l	d3,d2
	move.l	d2,$a(a6)
	move.w	$4(a3,d4.l),d0
	add.w	$6(a3,d4.l),d0
	move.w	d0,8(a6)
	move.w	$6(a3,d4.l),$e(a6)
	move.w	$12(a6),$8(a5)
	bra.s	mt_setregs
mt_noloop:
	move.l	$4(a6),d2
	add.l	d3,d2
	move.l	d2,$a(a6)
	move.w	$6(a3,d4.l),$e(a6)
	move.w	$12(a6),$8(a5)
mt_setregs:
	move.w	(a6),d0
	and.w	#$fff,d0
	beq	mt_checkcom2
	move.b	$2(a6),d0
	and.b	#$F,d0
	cmp.b	#$3,d0
	bne.s	mt_setperiod
	bsr	mt_setmyport
	bra	mt_checkcom2
mt_setperiod:
	move.w	(a6),$10(a6)
	and.w	#$fff,$10(a6)
	move.w	$14(a6),d0
	move.w	d0,$dff096
	clr.b	$1b(a6)

	move.l	$4(a6),(a5)
	move.w	$8(a6),$4(a5)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	move.w	$14(a6),d0
	or.w	d0,mt_dmacon
	bra	mt_checkcom2

mt_setdma:
	move.w	#$12c,d0
mt_wait:dbf	d0,mt_wait
	move.w	mt_dmacon,d0
	or.w	#$8000,d0
	move.w	d0,$dff096
	move.w	#$12c,d0
mt_wai2:dbf	d0,mt_wai2
	lea	$dff000,a5
	lea	mt_voice4(pc),a6
	move.l	$a(a6),$d0(a5)
	move.w	$e(a6),$d4(a5)
	lea	mt_voice3(pc),a6
	move.l	$a(a6),$c0(a5)
	move.w	$e(a6),$c4(a5)
	lea	mt_voice2(pc),a6
	move.l	$a(a6),$b0(a5)
	move.w	$e(a6),$b4(a5)
	lea	mt_voice1(pc),a6
	move.l	$a(a6),$a0(a5)
	move.w	$e(a6),$a4(a5)

	add.w	#$10,mt_pattpos
	cmp.w	#$400,mt_pattpos
	bne.s	mt_endr
mt_nex:	clr.w	mt_pattpos
	clr.b	mt_break
	addq.b	#1,mt_songpos
	and.b	#$7f,mt_songpos
	move.b	mt_songpos,d1
	cmp.b	mt_data+$3b6,d1
	bne.s	mt_endr
	move.b	mt_data+$3b7,mt_songpos
mt_endr:tst.b	mt_break
	bne.s	mt_nex
	movem.l	(a7)+,d0-d4/a0-a3/a5-a6
	rts

mt_setmyport:
	move.w	(a6),d2
	and.w	#$fff,d2
	move.w	d2,$18(a6)
	move.w	$10(a6),d0
	clr.b	$16(a6)
	cmp.w	d0,d2
	beq.s	mt_clrport
	bge.s	mt_rt
	move.b	#$1,$16(a6)
	rts
mt_clrport:
	clr.w	$18(a6)
mt_rt:	rts

mt_myport:
	move.b	$3(a6),d0
	beq.s	mt_myslide
	move.b	d0,$17(a6)
	clr.b	$3(a6)
mt_myslide:
	tst.w	$18(a6)
	beq.s	mt_rt
	moveq	#0,d0
	move.b	$17(a6),d0
	tst.b	$16(a6)
	bne.s	mt_mysub
	add.w	d0,$10(a6)
	move.w	$18(a6),d0
	cmp.w	$10(a6),d0
	bgt.s	mt_myok
	move.w	$18(a6),$10(a6)
	clr.w	$18(a6)
mt_myok:move.w	$10(a6),$6(a5)
	rts
mt_mysub:
	sub.w	d0,$10(a6)
	move.w	$18(a6),d0
	cmp.w	$10(a6),d0
	blt.s	mt_myok
	move.w	$18(a6),$10(a6)
	clr.w	$18(a6)
	move.w	$10(a6),$6(a5)
	rts

mt_vib:	move.b	$3(a6),d0
	beq.s	mt_vi
	move.b	d0,$1a(a6)

mt_vi:	move.b	$1b(a6),d0
	lea	mt_sin(pc),a4
	lsr.w	#$2,d0
	and.w	#$1f,d0
	moveq	#0,d2
	move.b	(a4,d0.w),d2
	move.b	$1a(a6),d0
	and.w	#$f,d0
	mulu	d0,d2
	lsr.w	#$6,d2
	move.w	$10(a6),d0
	tst.b	$1b(a6)
	bmi.s	mt_vibmin
	add.w	d2,d0
	bra.s	mt_vib2
mt_vibmin:
	sub.w	d2,d0
mt_vib2:move.w	d0,$6(a5)
	move.b	$1a(a6),d0
	lsr.w	#$2,d0
	and.w	#$3c,d0
	add.b	d0,$1b(a6)
	rts

mt_nop:	move.w	$10(a6),$6(a5)
	rts

mt_checkcom:
	move.w	$2(a6),d0
	and.w	#$fff,d0
	beq.s	mt_nop
	move.b	$2(a6),d0
	and.b	#$f,d0
	tst.b	d0
	beq	mt_arpeggio
	cmp.b	#$1,d0
	beq.s	mt_portup
	cmp.b	#$2,d0
	beq	mt_portdown
	cmp.b	#$3,d0
	beq	mt_myport
	cmp.b	#$4,d0
	beq	mt_vib
	move.w	$10(a6),$6(a5)
	cmp.b	#$a,d0
	beq.s	mt_volslide
	rts

mt_volslide:
	moveq	#0,d0
	move.b	$3(a6),d0
	lsr.b	#4,d0
	tst.b	d0
	beq.s	mt_voldown
	add.w	d0,$12(a6)
	cmp.w	#$40,$12(a6)
	bmi.s	mt_vol2
	move.w	#$40,$12(a6)
mt_vol2:move.w	$12(a6),$8(a5)
	rts

mt_voldown:
	moveq	#0,d0
	move.b	$3(a6),d0
	and.b	#$f,d0
	sub.w	d0,$12(a6)
	bpl.s	mt_vol3
	clr.w	$12(a6)
mt_vol3:move.w	$12(a6),$8(a5)
	rts

mt_portup:
	moveq	#0,d0
	move.b	$3(a6),d0
	sub.w	d0,$10(a6)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	cmp.w	#$71,d0
	bpl.s	mt_por2
	and.w	#$f000,$10(a6)
	or.w	#$71,$10(a6)
mt_por2:move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	rts

mt_portdown:
	clr.w	d0
	move.b	$3(a6),d0
	add.w	d0,$10(a6)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	cmp.w	#$358,d0
	bmi.s	mt_por3
	and.w	#$f000,$10(a6)
	or.w	#$358,$10(a6)
mt_por3:move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	rts

mt_checkcom2:
	move.b	$2(a6),d0
	and.b	#$f,d0
	cmp.b	#$e,d0
	beq.s	mt_setfilt
	cmp.b	#$d,d0
	beq.s	mt_pattbreak
	cmp.b	#$b,d0
	beq.s	mt_posjmp
	cmp.b	#$c,d0
	beq.s	mt_setvol
	cmp.b	#$f,d0
	beq.s	mt_setspeed
	rts

mt_setfilt:
	move.b	$3(a6),d0
	and.b	#$1,d0
	asl.b	#$1,d0
	and.b	#$fd,$bfe001
	or.b	d0,$bfe001
	rts
mt_pattbreak:
	not.b	mt_break
	rts
mt_posjmp:
	move.b	$3(a6),d0
	subq.b	#$1,d0
	move.b	d0,mt_songpos
	not.b	mt_break
	rts
mt_setvol:
	cmp.b	#$40,$3(a6)
	ble.s	mt_vol4
	move.b	#$40,$3(a6)
mt_vol4:move.b	$3(a6),$8(a5)
	rts
mt_setspeed:
	cmp.b	#$1f,$3(a6)
	ble.s	mt_sets
	move.b	#$1f,$3(a6)
mt_sets:move.b	$3(a6),d0
	beq.s	mt_rts2
	move.b	d0,mt_speed
	clr.b	mt_counter
mt_rts2:rts

mt_sin:
dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18

mt_periods:
dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
dc.w $007f,$0078,$0071,$0000,$0000

mt_speed:	dc.b	$6
mt_songpos:	dc.b	$0
mt_pattpos:	dc.w	$0
mt_counter:	dc.b	$0

mt_break:	dc.b	$0
mt_dmacon:	dc.w	$0
mt_samplestarts:blk.l	$1f,0

datach0:				;voice-block-length = 30
					;EQ-byte = 28
mt_voice1:	blk.w	10,0
		dc.w	$1
		blk.w	3,0
		dc.w	0
mt_voice2:	blk.w	10,0
		dc.w	$2
		blk.w	3,0
		dc.w	0
mt_voice3:	blk.w	10,0
		dc.w	$4
		blk.w	3,0
		dc.w	0
mt_voice4:	blk.w	10,0
		dc.w	$8
		blk.w	3,0
		dc.w	0

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®



;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®


JsinSpeed = 4
JsinLength = 360
JsinAdr = $3fa00
JmultiWert = 52*3
Jaddwert = 52

JsinPtr:dc.w	0	

Jump:	addq.w	#JsinSpeed,Jsinptr
	cmp.w	#JSinLength,Jsinptr
	blt	Jnotsinend
	clr.w	Jsinptr
Jnotsinend:
	move.w	Jsinptr,d0
	
	lea	Jsinadr,a0
	add.w	d0,d0
	move.w	(a0,d0.w),d0
	
	mulu	#JmultiWert,d0
	add.w	#$8000+104-[52*3*60],d0
	add.w	#Jaddwert,d0	
	move.w	d0,S1
	add.w	#Jaddwert,d0	
	move.w	d0,S2
	add.w	#Jaddwert,d0	
	move.w	d0,S3
	rts


;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

CSwidth = 52
CharSetAdr = $43a00
CSDestAdr = $68000-4+CSwidth
CScharHeight = 35*3
CScharWidth = 2	;Words
;--
CStextoffset:	dc.w	0
CSBltCon0:	dc.w	%1000100111110000
CSdelayWert:	dc.b	3
CSdelayPtr:	dc.b	0
stopdelay:	dc.b	0,0
StopExit:	subq.b	#1,StopDelay
		rts
CharScroll:
	tst.b	StopDelay
	bne	StopExit

	lea	$dff000,a6
	move.l	#CSdestAdr+[CSCharheight*CSwidth],$50(a6)
	move.l	#CSdestAdr+[CSCharheight*CSwidth],$54(a6)
	clr.l	$64(a6)
	move.l	#$ffffffff,$44(a6)
	move.w	#%10,$42(a6)
	move.w	CSBltCon0,$40(a6)
	move.w	#[CSCharHeight+1*64]![CSwidth/2],$58(a6)
CSBBusy:
	btst	#14,$2(a6)
	bne	CSBBusy

	move.b	CSDelayPtr,d0	
	cmp.b 	CSDelayWert,d0
	bne	CSexit
	clr.b	CSDelayPtr
;--------------------------	get ASCII
GetASCII:
	lea	textdaten(pc),a0
	moveq	#0,d0
	move.w	CSTextOffset,d1
	move.b	(a0,d1.w),d0
	tst.b	d0
	bne	CStextnotfini
	move.w	#1,CSTextoffset
	bra	GetASCII
CStextnotfini:
	addq.w	#1,CStextoffset
;----------------------
	cmp.l	#97,d0
	blt	noEffekt
	lea	effektAdresses(pc),a0
	sub.b	#97,d0
	asl	#2,d0
	move.l	(a0,d0.l),a1
	jsr	(a1)
	bra	getascii
noEffekt:

	lea	CharSetAdr,a0
	lea	Chartab,a1
	moveq	#0,d2
	moveq	#[CharTabEnd-CharTab]-1,d3
CSnextChar:
	move.b	(a1)+,d1
	cmp.b	d0,d1
	beq	CSright
	addq	#1,d2
	dbra	d3,CSNextChar

CSright:
	mulu	#420,d2
	add.l	d2,a0

	move.l	#$9f00000,$40(a6)
	move.l	#$ffffffff,$44(a6)
	move.l	#CSdestadr,$54(a6)
	move.l	a0,$50(a6)
	move.w	#0,$64(a6)
	move.w	#CSwidth-4,$66(a6)
	move.w	#[CSCharHeight*64]!CScharWidth,$58(a6)	
CSbbusyII:	
	btst	#14,$2(a6)
	bne	CSbbusyII
noCS:	rts
;----------------------

CharTab:
;VW Char: 3pl*35*4wrds ;charsize = 420
dc.b	"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
DC.B	"0123456789,!:.;^?-() "
CharTabEnd:
even

;--------------------------------------
CSexit:	addq.b	#1,CSdelayPtr
	rts
;----------------------------------------------
effektadresses:
	dc.l	SuperSlow	;a  -----------------
	dc.l	Veryslow	;b  
	dc.l	slow		;c    scroll-speed  
	dc.l	fast		;d  
	dc.l	VeryFast	;e  -----------------
	dc.l	StopRtn		;f     stop
	;----------------------------
***********************************************

even
;------------------------
CSnothing:	rts
;-----------------------------------------
SuperSlow:
	move.w	#%0001100111110000,CSBltCon0
	move.b	#31,CSdelayWert
	rts
VerySlow:
 	move.w	#%0010100111110000,CSBltCon0
	move.b	#15,CSdelayWert	
	rts
Slow:
	move.w	#%0100100111110000,CSBltCon0
	move.b	#7,CSdelayWert	
	rts
Fast:
	move.w	#%1000100111110000,CSBltCon0
	move.b	#3,CSdelayWert	
	rts
VeryFast:
	move.w	#%1111100111110000,CSBltCon0
	move.b	#1,CSdelayWert	
	rts
StopRtn:
	move.b	#200,StopDelay
	rts

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®





;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

height = 79
planes = 4

KonvertPic:
	lea	$40000,a0
	lea	$7a000,a1
	move.l	#[height*planes]-1,d1
KP2:	moveq	#39,d0
KP1:	move.b	(a0)+,(a1)+
	dbra	d0,KP1
	add.l	#20,a1
	dbra	d1,KP2
	rts


;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

MWheight = 79
MWstart = $2c
MWlength = 28	;Bytes
;-------------
PicAdrLow = $a000+[60*4]-2
SPanzPlanes = 4
SPbreite = 60
SPsinAdd = 1
SPsinOFfset = 4
SPsinAdr = $3fa00
SPsinLength = 360

MakeMWliste:
	lea	LogoCol,a2
	lea	MWliste,a0
	move.l	#MWheight-1,d0
	move.l	#MWstart,d1
MMWlp:
	move.l	a1,d2
	move.b	d1,(a0)+
	move.b	#09,(a0)+
	move.w	#$fffe,(a0)+
	move.l	#$01020000,(a0)+

	move.l	#$00e20000,(a0)+
 	move.l	#$00e60000,(a0)+
 	move.l	#$00ea0000,(a0)+
  	move.l	#$00ee0000,(a0)+

	move.w	#$1be,(a0)+
	move.w	(a2)+,(a0)+ 

  	addq.l	#1,d1
	dbra	d0,MMWlp
	rts

LogoCol:

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

MWSinPtr:	dc.w	0

MegaWobble:
	lea	MWliste,a1

	addq.w	#SPsinOffset,MWSinPtr
	cmp.w	#SPsinLength,MWSinPtr
	blt	Wok
	clr.w	MWSinPtr
Wok:	moveq	#0,d7
	move.w	MWSinPtr,d7
	move.l	#MWheight-1,d6
	move.l	#PicAdrLow,d3
	lea	SPsinAdr,a0
MWlp:
	move.w	d7,d0

	add.w	d0,d0
	move.w	(a0,d0.w),d0

	move.w	d0,d1
	and.w	#$f,d1
	eor.b	#$f,d1

;	asl.b	#4,d1		;one Plfld (asl #4 = Plfld 2)
;	or.b	#0,d1

	move.b	d1,d2		;all
	asl.b	#4,d2
	or.b	d2,d1

	move.b	d1,7(a1)

	asr.w	#3,d0
	add.w	d3,d0
	move.w	d0,10(a1)
	add.w	#SPbreite,d0
	move.w	d0,14(a1)
	add.w	#SPbreite,d0
	move.w	d0,18(a1)
	add.w	#SPbreite,d0
	move.w	d0,22(a1)

	add.w	#MWlength,a1
	add.w	#[SPanzPlanes*Spbreite],d3
	addq.w	#SPSinAdd,d7
	dbra	d6,MWlp
	rts

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

AnzStars = 42

S_Depth = 800

DBanzPlanes = 2
DBobHeight = DBanzPlanes*7		;(BobData = RawBlit)
DBobWidth = 2	;Words
DBSrcMod = 40-4
DBbreite = 44
DBPlfld1 = $70000
DBPlfld1High = 7
DBPlfld1Low = $0000
DBPlfld2 = $75000
DBPlfld2High = 7
DBPlfld2Low = $5000
DB_CopSub = 24*[DBbreite*DBanzPlanes]-2

BobBM = $3ea00
BobOM = $3ea00+$400
OutlineAdd = $400

AnzFrames = 5

dc.w	BobBM
Frames:
dc.w	BobBM,BobBM+2,BobBM+4,BobBM+6,BobBM+8
dc.w	BobBM+10,BobBM+12

BobStars:
	bsr	DoubleBufHandle
	bsr	ClearOldBobs
	bsr	Stars
	bsr	DrawBobs
nodraw:
	rts

Stars:
	lea	Starblock,a0
	lea	BobKoords(pc),a2
	lea	Frames,a3

   	moveq	#AnzStars-1,d7
S_lp:	
	move.w 	(a0)+,d0		;X
	move.w	(a0)+,d1		;Y
	move.w	(a0)+,d2		;Z
	move.w	d2,d3
	bmi	S_newKoords
	beq	S_NewKoords
	subq.w	#8,-2(a0)		;zoom-speed

	ext.l	d0
	ext.l	d1
	divs	d2,d0		;X/Z
	divs	d2,d1		;Y/Z
	add.w	#280,d0
	add.w	#60,d1

 	cmp.w	#320+16,d0
	bge	S_NewKoords 
	cmp.w	#-16,d0
	ble	S_NewKoords 
	cmp.w	#200,d1
	bge	S_NewKoords 
	tst.w	d1
	ble	S_NewKoords 

	;d0 = x   d1 = y       d2 = z

	move.w	d0,(a2)
	move.w	d1,2(a2)

	moveq	#0,d2
	move.w	d3,d2
	divs	#S_Depth/AnzFrames,d2
	add.w	d2,d2
	move.w	(a3,d2.w),4(a2)

S_NextStar:
	addq.l	#6,a2
 	dbra	d7,S_lp
	move.b	#$ff,S_ClrStat
	rts

S_NewKoords:
	bsr	Random
	and.w	#S_Depth,d0
	move.w	d0,-2(a0)
	bra	S_NextStar
	rts

S_Clrstat:	dc.b	0,0

MakeStarList:
	bsr	S_makemt
	rts

	lea	StarBlock,a0
	move.l	#anzstars-1,d7
	move.w	#$90ff,d2
MSLlp:

Xagn:	bsr	Random

	;X muß nach links driften

	and.w	d2,d0
	add.w	#$100,d2

;	move.w	#$9000,d0		;X-Fläche

	move.w	d0,(a0)			;X
	beq	Xagn
Yagn:	bsr	Random

	move.w	d0,2(a0)		;Y
	beq	Yagn
Zagn:	bsr	Random
	and.w	#S_Depth/2,d0	
	beq	Zagn
	add.w	#80,d0
	move.w	d0,4(a0)		;Z
	addq.l	#6,a0
	dbra	d7,MSLlp
	rts

;-----------------------------------

Random:
	lea	RandomPtr(pc),a5
	move.w	$dff006,d0
	mulu	(a5),d0
	add.w	#$1327,d0
	move.w	d0,(a5)
	rts

RandomPtr:	dc.w	$3826

;-----------------------------------
 
SMultiplikator = DBbreite*DBAnzPlanes
SMultiLength = 360	;(360neg & 360pos)

S_MakeMT:
	lea	SMultiTab-[SMultiLength*2],a0
	move.l	#[SMultiLength*2]-1,d0
	move.l	#-SMultilength,d1
SMMTlp:
	move.l	d1,d2
	mulu	#SMultiplikator,d2
	move.w	d2,(a0)+
	add.l	#1,d1
	dbra	d0,SMMTlp
	rts

	blk.w	SMultiLength,0	;neg
SMultiTab:
	blk.w	SMultiLength,0	;pos

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

DDoubleBufStat:	dc.b	0,0
StarBlock = $3f200	
BobKoords:	blk.w	AnzStars*3,0
OldBobAdr:	blk.w	AnzStars,0
OldBobAdr2:	blk.w	AnzStars,0

************************************

A7_Save:	dc.l	0

DrawBobs:
	move.l	a7,A7_Save
 
 	lea	$dff000,a6
DB_BBusy1:
	btst	#14,$2(a6)
	bne	DB_BBusy1	

	move.l	#$ffff0000,$44(a6)
	move.w	#DBSrcMod,$62(a6)			;A Bmod
	move.w	#DBSrcMod,$64(a6)			;B Bmod
	move.w	#DBbreite-[[2*DBobWidth]],$60(a6)	;Cmod
	move.w	#DBbreite-[[2*DBobWidth]],$66(a6)	;Dmod

DBdestAdr:
	move.l	#DBPlfld1,d6
 	move.l	#BobBM,d5
  	move.l	#BobOM,d2
 	moveq	#$f,d3
	move.w	#[DBobHeight*64]![DBobWidth],d4

	move.l	d5,$4c(a6)			;Bptr BobDat
	move.l	d2,$50(a6)			;Aptr Outline 
 	move.l	d6,$48(a6)			;Cptr (High)
	move.l	d6,$54(a6)			;Dptr ( "  )

	lea	SmultiTab,a0
	lea	Con0and1Vals,a4

 	lea	$50+2(a6),a3
 	lea	$58(a6),a7
	move.w	#$8400,$96(a6)
	lea	$40(a6),a6

	lea	BobKoords(pc),a5
DBadrLast1:
	lea	OldBobAdr,a2

      	moveq	#AnzStars-1,d7

	;------------------------
  
DBlp:
 	move.w 	(a5)+,d0
	move.w	(a5)+,d1

	add.w	d1,d1
	move.w	(a0,d1.w),a1		;d1
	add.w	d6,a1

	move.w	d0,d1
	and.w	d3,d1

	asl.w	#2,d1
	move.l	(a4,d1.w),(a6)

	asr.w	#3,d0	
	add.w	d0,a1
	move.w	a1,(a2)+

;®®®®®®®®®®®®®®®® BOB-COPY ®®®®®®®®®®®®®®®®®

	move.w	(a5)+,d5
	move.w	d5,-4(a3)		;Bptr BobDat  (only LowWord)
	add.w	#OutLineAdd,d5
	move.w	d5,(a3)			;Aptr Outline (  "     ""  )

 	move.w	a1,-8(a3)		;Cptr (Low)
	move.w	a1,4(a3)		;Dptr ( " )
 	move.w	d4,(a7)

 	dbra	d7,DBlp

	lea	$dff000,a6
DB_BBusy2:
	btst	#14,$2(a6)
	bne	DB_BBusy2

	move.w	#$400,$96(a6)
	move.l	A7_Save,a7
 
 	rts

BDclearMod = DBbreite-4

ClearOldBobs:
	lea	$dff000,a6
COBdest:move.l	#DBplfld1,$54(a6)
	move.l	#-1,$44(a6)
	move.l	#$1000000,$40(a6)
	move.w	#BDclearMod,$66(a6)
	move.w	#[DBobHeight*64]![DBobWidth],d4
	lea	$54+2(a6),a1
	lea	$58(a6),a2

DBadrLast2:
	lea	OldBobAdr,a0
	moveq	#AnzStars-1,d7

COB_lp:

	move.w	(a0)+,(a1)
	move.w	d4,(a2)	
BCwblt:	btst	#14,2(a6)
	bne	BCwblt

	dbra	d7,COB_lp
	rts

*********************** Double Buf Handling

DoubleBufHandle:

	bchg	#1,DDoubleBufstat
	bne	DBnotscreenI

	;show Plfld 1
	move.w	#DBplfld1Low+DB_CopSub,d0
	move.w	d0,BS1
	add.w	#DBbreite,d0
 	move.w	d0,BS2

	;draw in Plfld2
     	move.l	#DBPlfld2,DBdestadr+2
	move.l	#DBplfld2,COBdest+2
	;clear Plfld2 before
	move.l	#OldBobAdr,DBadrLast1+2
	move.l	#OldBobAdr,DBadrLast2+2
	bra	DBnotScreenII

DBnotscreenI:
	move.w	#DBplfld2Low+DB_CopSub,d0
	move.w	d0,BS1
	add.w	#DBbreite,d0
 	move.w	d0,BS2
 
 	move.l	#DBPlfld1,DBdestadr+2
	move.l	#DBplfld1,COBdest+2
	move.l	#OldBobAdr2,DBadrLast1+2
	move.l	#OldBobAdr2,DBadrLast2+2
DBnotScreenII:
	rts

*****************************************

Con0and1Vals:
 	dc.w	$0fca,$0000
 	dc.w	$1fca,$1000
 	dc.w	$2fca,$2000
 	dc.w	$3fca,$3000
 	dc.w	$4fca,$4000
 	dc.w	$5fca,$5000
 	dc.w	$6fca,$6000
 	dc.w	$7fca,$7000
 	dc.w	$8fca,$8000
 	dc.w	$9fca,$9000
 	dc.w	$afca,$a000
 	dc.w	$bfca,$b000
 	dc.w	$cfca,$c000
 	dc.w	$dfca,$d000
 	dc.w	$efca,$e000
 	dc.w	$ffca,$f000

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

OpenStuff:
;	move.l	4,a6
;	jsr	-150(a6)		;supervisor-mode
;	move.l	d0,SPsave

	move.w	$dff01c,d0
	bset	#$f,d0
	move.w	d0,IRQreg
	move.w	#$7fff,$dff09a

	move.l	#CopperList,$dff080 
	move.w	#$ff,$dff088		;start NewCopper
	rts

IRQreg:	dc.w	0

CloseStuff:
	move.l	4,a6
	move.l	$9c(a6),a6		;gfx.lib
	move.l	$26(a6),$dff080		;start-coplist
	move.w	#$8030,$dff096
	clr.l	d0 

;	move.l	4,a6
;	move.l	SPsave,d0
;	jsr	-156(a6)		;userstate

	move.w	IRQreg,$dff09a
	rts


;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®
;------------------- CopperList ----------------------
;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

CopperList:						
	dc.w	$96,$20
	dc.w	$140,0,$142,0

	dc.w	$120,0,$122,0
	dc.w	$124,0,$126,0
	dc.w	$128,0,$12a,0
	dc.w	$12c,0,$12e,0
	dc.w	$130,0,$132,0
	dc.w	$134,0,$136,0
	dc.w	$138,0,$13a,0
	dc.w	$13c,0,$13e,0


;LogoCol

dc.w	$0180,$0000 ,$0182,$0750 ,$0184,$0da0 ,$0186,$0c90
dc.w	$0188,$0b80 ,$018a,$0a80 ,$018c,$0970 ,$018e,$0860
dc.w	$0190,$0750 ,$0192,$0650 ,$0194,$0540 ,$0196,$0430
dc.w	$0198,$0320 ,$019a,$0220 ,$019c,$0110 ,$019e,$0000





Pl_High = 7
Pl_Low = $0000
Pl_add = 60

M1 = [60*3]+20
M2 = M1

	dc.w	$e0,Pl_High,$e2
E2:	dc.w	Pl_Low
	
	dc.w	$e4,Pl_High,$e6
E6:	dc.w	Pl_Low+[1*Pl_add]

	dc.w	$e8,Pl_High,$ea
EA:	dc.w	Pl_Low+[2*Pl_add]

	dc.w	$ec,Pl_High,$ee
EE:	dc.w	Pl_Low+[3*Pl_add]

	dc.w	$f0,Pl_High,$f2
F2:	dc.w	Pl_Low+[4*Pl_add]

	dc.w	$8e,$2c71,$90,$2cc1,$92,$28,$94,$d0
	dc.w	$100,$4200,$104,%0

	dc.w	$102
BplCon1:dc.w	0

	dc.w	$108,M1,$10a,M2

MWliste:	
	blk.b	MWlength*MWheight

	dc.w	$7c09,$fffe,$180,$8
	dc.w	$102,0

	;farbe der stars:

	dc.w	$0192,$0456 ,$0194,$0789 ,$0196,$0abc

	dc.w	$7d09,$fffe
	dc.w	$100,$200
	dc.w	$180,$000,$182,$fff,$184,$ddd,$186,$bbb
	dc.w	$188,$999,$18a,$777,$18c,$555,$18e,$8
	dc.w	$7e01,$fffe,$180,$0

	;--- Dual Plfld

Pl1_High = 7
Pl1_Low = $000
Pl1_Add = 44
Pl2_Mod = 44

Pl2_High = 6
Pl2_Low = $a000
Pl2_Add = 52
Pl1_Mod = 52+52+8

	dc.w	$e0,Pl2_High,$e2
s1:	dc.w	Pl2_Low
	dc.w	$e8,Pl2_High,$ea
s2:	dc.w	Pl2_Low+Pl2_Add
	dc.w	$f0,Pl2_High,$f2
s3:	dc.w	Pl2_Low+[2*Pl2_Add]

	dc.w	$e4,Pl1_High,$e6
BS1:	dc.w	Pl1_Low
	dc.w	$ec,Pl1_High,$ee
BS2:	dc.w	Pl1_Low+Pl1_Add

	dc.w	$7f09,$fffe

	dc.w	$100,$5600,$108,Pl1_Mod,$10a,Pl2_Mod

	dc.w	$ffdf,$fffe
	dc.w	$2009,$fffe,$180,$a,$100,$200
	dc.w	$2109,$fffe,$180,$0

	dc.w	$ffff,$fffe

textdaten:
dc.b "d      YYEEEAAAHHHHH !!!!!!!     c IT IS PARTY TIME !!!!!"
dc.b "   DREAM FACTORY AND THE QUALITYZERS PRESENTS:    MEGA PARTY f"
dc.b "  .....ON THE 6TH AND 7TH APRIL 91 IN GIESSEN GERMANY !!!"
dc.b "THE GATES WILL BE OPENED ON SATURDAY AT 3 O CLOCK PM. "
dc.b " WHEN YOU ENTER THE HALL (THE ENTRACE FEE WILL BE 7 DM)"
dc.B " YOU WILL SEE SOME AMIGAS (OF CORSE)"
dc.b " AND A BIG VIDEO SCREEN ON WICH WE WILL SHOW YOU SOME DEMOS,"
dc.b "FILMS AND VIDEO CLIPS. AROPOS VIDEO: UNDER OUR NEW LABEL  DFI 7"
dc.b "  WE WILL MAKE A PARTY VIDEO !! YOU CAN BUY THE TAPE FOR ONLY"
dc.b " 20 DM FROM US !!!         WE WELCOME OUR NEW MEMBERS:      "
dc.b " TERROR   fc(SWAPPING)        T.ONE    fc(GFX)"     
DC.B "   AND  BLACK RAVEN fc(CODING,CRACKING,GFX)     WE WILL "
dc.b "SELL SOME FOOD AND DRINKS"
dc.b ".  THERE WILL ARE 2 COMPE"
dc.b "TITIONS:  AT FIRST OF CORSE A DEMO COMPETION WITH A DISKDRIVE FOR"
dc.b " THE WINNER AND AT 2ND A LOTUS ESPRIT RACE.THE CHAMPION GETS 50"
dc.b " BLANK DISKS !!!   DO YOU LIKE TO DANCE ?? IT IS NO PROBLEM !!"
dc.b " WE WILL MAKE A DISCO WITH RAP,POP,TECHNO AND HIP-HOP !!! IT "
dc.b "STARTS ON SATUERDAY AT 5 O CLOCK PM. AND ENDS AT 10 O CLOCK PM."
dc.b "  YOU CAN NOT SLEEP IN THE HALL !!! SO DO NOT FORGET YOUR TENT !!  IF YOU WANT TO"
dc.b " MAKE A REALASE AND SELL THE ORIGINAL YOU CAN DO THAT AT A "
dc.b "SMALL BAZZAR (HARDWARE,TOO).       IF YOU HAVE ANY MORE "
dc.b "QUESTIONS,WRITE TO THE PARTY MAILBOX UNDER aPLK 083202 C"
dc.b "  6305 BUSECK 2  UNITED GERMANY    c AND NOW THE GREETINX:"
dc.b "  ARGON (SEND SOME DEMOS) -- FAITH NO MORE -- THE MUTANT TEAM"
dc.b " -- PLASHER -- NEW VIOLINCE -- ANGELS -- TRISTAR! -- TYMEX"
dc.b " -- DECADE -- EXCALIBUR -- SPREADPOINT -- VECTORS -- ZYLON OF ALPHA FLIGHT"
dc.b " -- FAIRLIGHT -- AOFCF -- TRACK (C64) -- NEW COMPANY -- KLAUS -- JUERGEN" 
Dc.b " AND THE REST OF THE BEST      AND ALWAYS REMEMBER:"
dc.b "   DREAM FACTORY.....A TOUGH OF HEAVEN !!! AND THE QUALITYZERS."
dc.b ".....MUZAK AND SOUND FROM THE ELITE !!!!!!!"
dc.b "      SOUND BY THE QUALITYZERS     LOGO BY HAWKE OF DREAM FACTORY"
dc.b "    CODE BY A GUY WITH NO PSEUDO !!!!     "
dc.b "       SIGNED BY HAWKE OF DREAM FACTORY ON 02-02-91          "
DC.B "                         ...............................                                              "
dc.b   0
ACTORY"
dc.b "    CODE BY A GUY WITH NO PSEUDO !!!!     "
dc.b "       SIGNED BY HAWKE OF DREAM FACTORY ON 02-02-91          "
DC.B "                         ...............................                                              "
cd.b    0
ND FROM THE ELITE !!!!!!!"
dc.b "      SOUND BY THE QUALITYZERS     LOGO BY HAWKE OF DREAM FACTORY"
dc.b "    CODE BY A GUY WITH NO PSEUDO !!!!     "
dc.b "       SIGNED BY HAWKE OF DREAM FACTORY ON 02-01-91          "
DC.B "                         ..........



	move.w	(a5)+,d5
	move.w	d5,-4(a3)		;Bptr BobDat  (only LowWord)
	add.w	#OutLineAdd,d5
	move.w	d5,(a3)			;Aptr Outline (  "     ""  )

 	move.w	a1,-8(a3)		;Cptr (Low)
	move.w	a1,4(a3)		;Dptr ( " )
 	move.w	d4,(a7)

 	dbra	d7,DBlp

	lea	$dff000,a6
DB_BBusy2:
	btst	#14,$2(a6)
	bne	DB_BBusy2

	move.w	#$400,$96(a6)
	move.l	A7_Save,a7
 
 	rts

BDclearMod = DBbreite-4

ClearOldBobs:
	lea	$dff000,a6
COBdest:move.l	#DBplfld1,$54(a6)
	move.l	#-1,$44(a6)
	move.l	#$1000000,$40(a6)
	move.w	#BDclearMod,$66(a6)
	move.w	#[DBobHeight*64]![DBobWidth],d4
	lea	$54+2(a6),a1
	lea	$58(a6),a2

DBadrLast2:
	lea	OldBobAdr,a0
	moveq	#AnzStars-1,d7

COB_lp:

	move.w	(a0)+,(a1)
	move.w	d4,(a2)	
BCwblt:	btst	#14,2(a6)
	bne	BCwblt

	dbra	d7,COB_lp
	rts

*********************** Double Buf Handling

DoubleBufHandle:

	bchg	#1,DDoubleBu






ne	DBnotscreenI

	;show Plfld 1
	move.w	#DBplfld1Low+DB_CopSub,d0
	move.w	d0,BS1
	add.w	#DBbreite,d0
 	move.w	d0,BS2

	;draw in Plfld2
     	move.l	#DBPlfld2,DBdestadr+2
	move.l	#DBplfld2,COBdest+2
	;clear Plfld2 before
	move.l	#OldBobAdr,DBadrLast1+2
	move.l	#OldBobAdr,DBadrLast2+2
	bra	DBnotScreenII

DBnotscreenI:
	move.w	#DBplfld2Low+DB_CopSub,d0
	move.w	d0,BS1
	add.w	#DBbreite,d0
 	move.w	d0,BS2
 
 	move.l	#DBPlfld1,DBdestadr+2
	move.l	#DBplfld1,COBdest+2
	move.l	#OldBobAdr2,DBadrLast1+2
	move.l	#OldBobAdr2,DBadrLast2+2
DBnotScreenII:
	rts

*****************************************

Con0and1Vals:
 	dc.w	$0fca,$0000
 	dc.w	$1fca,$1000
 	dc.w	$2fca,$2000
 	dc.w	$3fca,$3000
 	dc.w	$4fca,$4000
 	dc.w	$5fca,$5000
 	dc.w	$6fca,$6000
 	dc.w	$7fca,$7000
 	dc.w	$8fca,$8000
 	dc.w	$9fca,$9000
 	dc.w	$afca,$a000
 	dc.w	$bfca,$b000
 	dc.w	$cfca,$c000
 	dc.w	$dfca,$d000
 	dc.w	$efca,$e000
 	d
Éx$ffca,$f000

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

OpenStuff:
;	move.l	4,a6
;	jsr	-150(a6)		;supervisor-mode
;	move.l	d0,SPsave

	move.w	$dff01c,d0
	bset	#$f,d0
	move.w	d0,IRQreg
	move.w	#$7fff,$dff09a

	move.l	#CopperList,$dff080 
	move.w	#$ff,$dff088		;start NewCopper
	rts

IRQreg:	dc.w	0

CloseStuff:
	move.l	4,a6
	move.l	$9c(a6),a6		;gfx.lib
	move.l	$26(a6),$dff080		;start-coplist
	move.w	#$8030,$dff096
	clr.l	d0 

;	move.l	4,a6
;	move.l	SPsave,d0
;	jsr	-156(a6)		;userstate

	move.w	IRQreg,$dff09a
	rts


;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®
;------------------- CopperList ----------------------
;®®®®®®®®®®®®®
b	$3(a6),d0
	sub.w	d0,$10(a6)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	cmp.w	#$71,d0
	bpl.s	mt_por2
	and.w	#$f000,$10(a6)
	or.w	#$71,$10(a6)
mt_por2:move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	rts

mt_portdown:
	clr.w	d0
	move.b	$3(a6),d0
	add.w	d0,$10(a6)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	cmp.w	#$358,d0
	bmi.s	mt_por3
	and.w	#$f000,$10(a6)
	or.w	#$358,$10(a6)
mt_por3:move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	rts

mt_checkcom2:
	move.b	$2(a6),d0
	and.b	#$f,d0
	cmp.b	#$e,d0
	beq.s	mt_setfilt
	cmp.b	#$d,d0
	beq.s	mt_pattbreak
	cmp.b	#$b,d0
	beq.s	mt_posjmp
	cmp.b	#$c,d0
	beq.s	mt_setvol
	cmp.b	#$f,d0
	beq.s	mt_setspeed
	rts

mt_setfilt:
	move.b	$3(a6),d0
	and.b	#$1,d0
	asl.b	#$1,d0
	and.b	#$fd,$bfe001
	or.b	d0,$bfe001
	rts
mt_pattbreak:
	not.b	mt_break
	rts
mt_posjmp:
	move.b	$3(a6),d0
	subq.b	#$1,d0
	move.b	d0,mt_songpos
	not.b	mt_break
	rts
mt_setvol:
	cmp.b	#$40,$3(a6)
	ble.s	mt_vol4
	move.b	#$40,$3(a6)
mt_vol4:move.b	$3(a6),$8(a5)
	rts
mt_setspeed:
	cmp.b	#$1f,$3(a6)
	ble.s	mt_sets
	move.b	#$1f,$3(a6)
mt_sets:move.b	$3(a6),d0
	beq.s	mt_rts2
	move.b	d0,mt_speed
	clr.b	mt_counter
mt_rts2:rts

mt_sin:
dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18

mt_periods:
dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
dc.w $007f,$0078,$0071,$0000,$0000

mt_speed:	dc.b	$6
mt_songpos:	dc.b	$0
mt_pattpos:	dc.w	$0
mt_counter:	dc.b	$0

mt_break:	dc.b	$0
mt_dmacon:	dc.w	$0
mt_samplestarts:blk.l	$1f,0

datach0:				;voice-block-length = 30
					;EQ-byte = 28
mt_voice1:	blk.w	10,0
		dc.w	$1
		blk.w	3,0
		dc.w	0
mt_voice2:	blk.w	10,0
		dc.w	$2
		blk.w	3,0
		dc.w	0
mt_voice3:	blk.w	10,0
		dc.w	$4
		blk.w	3,0
		dc.w	0
mt_voice4:	blk.w	10,0
		dc.w	$8
		blk.w	3,0
		dc.w	0

;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®



;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®


JsinSpeed = 4
JsinLength = 360
JsinAdr = $3fa00
JmultiWert = 52*3
Jaddwert = 52

JsinPtr:dc.w	0	

Jump:	addq.w	#JsinSpeed,Jsinptr
	cmp.w	#JSinLength,Jsinptr
	blt	Jnotsinend
	clr.w	Jsinptr
Jnotsinend:
	move.w	Jsinptr,d0
	
	lea	Jsinadr,a0
	add.w	d0,d0
	move.w	(a0,d0.w),d0
	
	mulu	#JmultiWert,d0
	add.w	#$8000+104-[52*3*60],d0
	add.w	#Jaddwert,d0	
	move.w	d0,S1
	add.w	#Jaddwert,d0	
	move.w	d0,S2
	add.w	#Jaddwert,d0	
	move.w	d0,S3
	rts


;®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®

CSwidth = 52
CharSetAdr = $43a00
CSDestAdr = $68000-4+CSwidth
CScharHeight = 35*3
CScharWidth = 2	;Words
;--
CStextoffset:	dc.w	0
CSBltCon0:	dc.w	%1000100111110000
CSdelayWert:	dc.b	3
CSdelayPtr:	dc.b	0
stopdelay:	dc.b	0,0
StopExit:	subq.b	#1,StopDelay
		rts
CharScroll:
	tst.b	StopDelay
	bne	StopExit

	lea	$dff000,a6
	move.l	#CSdestAdr+[CSCharheight*CSwidth],$50(a6)
	move.l	#CSdestAdr+[CSCharheight*CSwidth],$54(a6)
	clr.l	$64(a6)
	move.l	#$ffffffff,$44(a6)
	move.w	#%10,$42(a6)
	move.w	CSBltCon0,$40(a6)
	move.w	#[CSCharHeight+1*64]![CSwidth/2],$58(a6)
CSBBusy:
	btst	#14,$2(a6)
	bne	CSBBusy

	move.b	CSDelayPtr,d0	
	cmp.b 	CSDelayWert,d0
	bne	CSexit
	clr.b	CSDelayPtr
;--------------------------	get ASCII
GetASCII:
	lea	textdaten(pc),a0
	moveq	#0,d0
	move.w	CSTextOffset,d1
	move.b	(a0,d1.w),d0
	tst.b	d0
	bne	CStextnotfini
	move.w	#1,CSTextoffset
	bra	GetASCII
CStextnotfini:
	addq.w	#1,CStextoffset
;----------------------
	cmp.l	#97,d0
	blt	noEffekt
	lea	effektAdresses(pc),a0
	sub.b	#97,d0
	asl	#2,d0
	move.l	(a0,d0.l),a1
	jsr	(a1)
	bra	getascii
noEffekt:

	lea	CharSetAdr,a0
	lea	Chartab,a1
	moveq	#0,d2
	moveq	#[CharTabEnd-CharTab]-1,d3
CSnextChar:
	move.b	(a1)+,d1
	cmp.b	d0,d1
	beq	CSright
	addq	#1,d2
	dbra	d3,CSNextChar

CSright:
	mulu	#420,d2
	add.l	d2,a0

	move.l	#$9f00000,$40(a6)
	move.l	#$ffffffff,$44(a6)
	move.l	#CSdestadr,$54(a6)
	move.l	a0,$50(a6)
	move.w	#0,$64(a6)
	move.w	#CSwidth-4,$66(a6)
	move.w	#[CSCharHeight*64]!CScharWidth,$58(a6)	
CSbbusyII:	
	btst	#14,$2(a6)
	bne	CSbbusyII
noCS:	rts
;----------------------

CharTab:
;VW Char: 3pl*35*4wrds ;charsize = 420
dc.b	"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
DC.B	"0123456789,!:.;^?-() "
CharTabEnd:
even

;--------------------------------------
CSexit:	addq.b	#1,CSdelayPtr
	rts
;----------------------------------------------
effektadresses:
	dc.l	SuperSlow	;a  -----------------
	dc.l	Veryslow	;b  
	dc.l	slow		;c    scroll-speed  
	dc.l	fast		;d  
	dc.l	VeryFast	;e  -----------------
	dc.l	StopRtn		;f     stop
	;----------------------------
***********************************************
textdaten: