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: