¹YYYYYEEEAAAAHHHH !! ²HERE IS OUR PERFORMANCE-INTRO !! IN THE UPPER EDGE OF THE SCREEN YOU CAN SEE OUR PHOTOS PIXELED INTO THE COMPUTER BY TCA. WELL, FIRST THE INSTRUCTIONS FOR THIS INTRO. 1. WHEN THE INTRO IS UNPACKING, RUN FAST INTO THE KITCHEN,OPEN THE REFRIGERATOR AND GET SOME COLD DRINKS AND ANY SWEETS. 2. RUN BACK AND CHANGE THE HEIGHT OF YOUR SEAT TO THE OPTIMAL VIEW. 3. LEAN BACK - GET YOUR SWEETS AND ENJOY THIS INTRO(DUCTION). 4. IF YOU ARE BORED, YOU CAN WATCH OUR DIFFERENT MEANINGS, STATEMENTS AND INTRODUCTIONS BY PRESSING ³F1 - F2 AND F3. ² 5. BY PRESSING F4 AND F5 YOU CAN CHANGE THE MUSIC. 6.IF YOU DON'T ENJOY THIS, YOU MUST BE A DIFFERENT,STRANGE TYPE OF HUMAN. NOW SOME CREDITS: A BIG THANKS MUST GO TO NOISE s²FOR SENDING THE SOURCES ABOUT THE FONTS. NOW SOME INTERNAL CREDITS : PROGRAMMING : ³TCA ²(WITH THE HELP OF A TETRAGON INTRO) MUSIC : HARD'N'HEAVY AND ³JAWS ²(FIRST WE WANTED TO PUT IT INTO A GAME) ³MADE BY TCA² GRAPHICS : RIPPED OUT OF STREET SPORTS BASKETBALL AND CHANGED BY TCA, TOO. FONT : ³KNIGHT HAWKS ² (GOT FROM NOISE) MANAGEMENT - FOUNDER - ORGANIZER : ³ELECTRICA ² SWAPPING : ³ELECTRICA AND MLP ² SCROLLTEXT : ³ELECTRICA - MLP - TCA ² I (TCA) THANK MYSELF,ELECTRICA AND MY DISK-DRIVE FOR THE MORAL SUPPORT DURING THE PROGRAMMING. ¹FURTHER THANKS GO TO: ²COMMODORE,ANDELOS COMPUTERS,TETRAGON,NOISE,HIGHSPEED, PROFEX AND NORD GETRAENKE. AND AGAIN LIKE IN THE OTHER INTROS NOW THE COMMERCIAL PART. ¹HHHHEEEERRRE WEEE GOO : ² PEPSI - THE TASTE OF AMERICA - COULD IT BE YOURS > CARCHARODON - THE GAME OF THE CENTURY (AVAILABLE AT X-MAS 1988) LEVIS 501 VERBATIM 2-DD DISKS O.K. ENOUGH DONE FOR OUR MONEY !! NOW SOME PRIVATE SLOGANS OF US :³ THE COMMODORE ACE - ALWAYS CREATIVITY IN MIND !! MLP - THE LEFT FORCE ! ELECTRICA - THE GENIUS ² IF YOU WANT TO CONTACT US THEN WRITE TO:³ TSB s³ PLK A s³ 019261 s³ 3060 s³ STADTHAGENs³ FRG s² ³NOW OUR HANDSHAKES GO TO: ² ALCATRAZ (WHY DON'T YOU SEND SOMETHING AT THE MOMENT >) - ALF - ALPHAFLIGHT - AMIGAVISION (STILL ALIVE>) - BRAINWALKER - CBC AND BAND - DEATHSTAR - LEVEL FOUR - HIGHSPEED - MADONNA ASSOCIATION (FOR THE LAST TIME >) - MEGADEATH - MEGAFORCE - NCS - NETWORK NORWAY - NOISE - PIT - POGO OF THE ACCUMULATORS - PROPHETS AG (THE SAME AS AMIGAVISION) - SECOND FOUNDATION - THE GANG - THUNDERCREW - WOODPEAKERS - QUARTEX ........................ AND NOW A SPDOPD (SHIT) SPEZIAL (SCHEISSE) SPECIAL GREETING TO HIGHSPEED (NICE GRAFIX MADE BY THUNDERPIG!!) O.K. WE HATE LONG BORING SCROLLTEXTS (WHAT A LIE, WATCH THE THING-INTRO) BUT WE MUST STOP NOW.......................³SO LONG !!! YOURS : TSB 1988 s² NOW IT STARTS AGAIN !! æ PRESS F1 - F2 OR F3 TO WATCH DIFFERENT INFORMATIONS ABOUT THE PERSONS IN OUR GROUP ......... BY PRESSING F4 AND F5 YOU CAN CHANGE THE MUSIX ................ ELECTRICA : HELLO GUYS !!!!! NOW IT'S TIME FOR THE ORGANIZER, FOUNDER AND CONTROLLER OF THIS SMASHING GROUP !! I CAN'T WRITE BECAUSE THERE IS DOMINOE DANCING BY THE KETCHUP BOYS IN THE BACKGROUND !!! NOW SOMETHING ABOUT MEINE WENIGKEIT !! FIRST I HAD AN ATARI 2600 THEN A C64 AND NOW I AM THE OWNER OF THE MOST POWERFUL (!>!) COMPUTER CALLED : AMIGA 1000 !!!! MLP IS NOW VERY HAPPY BECAUSE THERE ARE TWO SCHACHTELN OF 'SPRENGEL SCHOKOLADE' !!! BYE-BYE AND SO LONG, YOURS ELECTRICA. TCA+ : HERE IS THE MOST INTERESTING PERSON OF TSB !! (MODESTY ISN'T MY BEST STRENGTH) WELL,I'M THE MOST ENERGETICALLY PERSON IN THE UNIVERSE. I'M THE PROGRAMMER (WATCH THIS!) - UNBEATABLE IN SOUNDS AND SYNTHETIC MUSIC AND AT LAST I MADE THIS PICCY ABOVE (CHANGED FROM THE GAME 'STREET SPORTS BASKETBALL'). O.K. YOU SEE WITH ME,WE WILL RULE THE WHOLE GALAXY (E.T. WE ARE COMING!!). WELL,IN THESE DIFFICULT TIMES WE PERFORMED ALL OUR STRENGTH TOGETHER AND WE BUILT UP A NEW CREW 'THE SPECIAL BROTHERS'. NOW ANYTHING TO MY PERSON. I LIKE FILMS LIKE THESE : THE ROCKY HORROR PICTURE SHOW - BLUE VELVET - AND SOME OTHER STUFF (BORING,EH>) WELL,IF YOU HAVE ANY STICKERS - POSTERS OR SOMETHING FROM THE ROCKY HORROR PICTURE SHOW SEND IT TO : TSB PLK A 019261 3060 STADTHAGEN WEST-GERMANY............ .......... WELL,MY CAREER BEGAN WITH A FASCINATING VIDEO-GAME CALLED 'MATTEL INTELLIVISION' (FUCK ATARI VCS 2600!!). BUT I WAS SLIGHTLY BORED,'CAUSE I COULDN'T CREATE ANYTHING OWN ON THIS BOX. THEN I'VE GOT A FRIEND WHO HAD A COMMODORE 64,AT THAT TIME A NEARLY UNKNOWN COMPUTER.(THE MOST PEOPLE THOUGHT THE TI-994A FROM TEXAS INSTRUMENTS WERE BETTER).BUT WHEN I SAW THE GAMES ON THE C64 (GALAGA-GREENHOUSE (UUUAARRGHH!!)) I WAS TOTALLY OUT OF CONTROL.SO I WALKED NEARLY EVERY DAY TO THE NEXT COMPUTER-SHOP TO PLAY AND PROGRAM ON THE VC 20 AND THE VC 64.THEN I HAD CONFIRMATION AND I HAD ENOUGH MONEY TO GET A REAL GOOD SYSTEM. A 64'ER WITH PRINTER,SPEED-DOS,DATASETTE AND DISK-DRIVE.I TRIED TO PROGRAM SOME THINGS IN BASIC BUT IT FAILED.AFTER THAT I PLAYED NEARLY EVERY DAY FROM 12 P.M. TO 1 A.M. GAMES AND WATCHED AT DEMOS (I LOVED ALL 1001 CREW DEMOS!!). BUT AT ONE DAY I SAW 6502 ASSEMBLER AND I TRIED IT WITH THE GOOD OLD SMON. AND FINALLY I COULD PRESENT MY FIRST INTRO. WELL, FLICKERING AND WITH ONLY THREE SPRITES BUT IT WAS A GREAT IMPROVEMENT TO BASIC. THE NEXT TWO YEARS I GOT BETTER AND BETTER,BUT WHEN I WAS REALLY GREAT THE WHOLE WORLD TURNED OVER TO THE GREAT AMIGA.AND AS I SAW THAT MACHINE IN THE SCHOOL I WAS DREAMING THE WHOLE DAY OF PROGRAMS ON THE AMIGA.THEN I SOLD MY GOOD OLD C64 AND BOUGHT THE AMIGA.I STARTED WITH ASSEMBLER AND KICKED BASIC AWAY.AND I FOUND ASSEMBLER QUITE EASY ON IT.WELL,THE RESULT IS THIS NICE LITTLE PROGRAM WITH MY MUSIC,MY GRAPHICS AND MY ROUTINES (ONLY THE FONT IS I THINK FROM THE KNIGHT HAWKS). NOW I'VE NO MORE TO SAY. WATCH THIS AGAIN. MLP : HI LEUTE HIER DIE STORY VON MLP. FIRST I HAD A HAMSTER AND THEN AGAIN A HAMSTER AND AFTER THAT A PHILLIPS TELESPIEL. THEN I GAMED WITH THE CBS TELESPIEL AND AFTER THAT I WENT ON PROFFESSIONAL WITH THE COMMODORE PC 128 ABOUT WHICH I WAS VERY PROUD. FINALLY I BOUGHT MY DREAM-COMPUTER THE ARCHIMEDES AEH...SHIT... AMIGA !! HERE IS MY INTRODUCING LINE : I'M ONE OF THE CREATIVE (>) MEMBERS OF TSB (SOUNDS,GRAFIX AND SO ON). WRITE TO ME: MLP POSTLAGERND 3262 AUETAL-BORSTEL. NEXT,I MAKE THE MUZAK FOR CARCHARODON,THE ULTIMATE BALLERFUN. THE BEST BALLERGAME EVER SEEN (COMING SOON AT X-MAS). THAT'S ALL !! BE YOURS > CARCHARODON - " DC.B "THE GAME OF THE CENTURY (AVAILABLE AT X-MAS 1988) " DC.B " LEVIS 501 VERBATIM 2-DD DISKS " DC.B "O.K. ENOUGH DONE FOR OUR MONEY !! NOW SOME PRIVATE" DC.B " SLOGANS OF US :³ THE COMMODORE ACE - ALWAYS CREA" DC.B "TIVITY IN MIND !! MLP - THE LEFT FORCE ! " DC.B "ELECTRICA - THE GENIUS ² IF YOU WANT TO CONTACT " DC.B "US THEN WRITE TO:³ TSB s³ PLK A s³ 0192" DC.B "61 s³ 3060 s³ STADTHAGENs³ FRG s² " DC.B "³NOW OUR HANDSHAKES GO TO: ² " DC.B "ALCATRAZ (WHY DON'T YOU SEND SOMETHING AT THE MOMENT >) " DC.B "- ALF - ALPHAFLIGHT - AMIGAVISION (STILL ALIVE>) " DC.B "- BRAINWALKER - CBC AND BAND - DEATHSTAR - " DC.B "LEVEL FOUR - HIGHSPEED - MADONNA AS" DC.B "SOCIATION (FOR THE LAST TIME >) - MEGADEATH - MEGAFORCE -" DC.B " NCS - NETWORK NORWAY - NOISE - PIT - POGO OF " DC.B "THE ACCUMULATORS - PROPHETS AG (THE SAME AS AMIGAVISION) " DC.B "- SECOND FOUNDATION" DC.B " - THE GANG - THUNDERCREW - WOODPEAKERS - QUAR" DC.B "TEX ........................ AND NOW A SPDOPD (SHIT) SPEZ" DC.B "IAL (SCHEISSE) SPECIAL GREETING TO HIGHSPEED (NICE GRAFIX" DC.B " MADE BY THUNDERPIG!!) O.K. WE HATE LONG BORING SC" DC.B "ROLLTEXTS (WHAT A LIE, WATCH THE THING-INTRO) BUT WE MUST" DC.B " STOP NOW.......................³SO LONG !!! YOURS " DC.B ": TSB 1988 s² NOW IT STARTS AGAIN !! " DC.B " æ" string2: DC.B " PRESS F1 - F2 OR F3 TO WATCH DIFFERENT INFORMATIONS " DC.B "ABOUT THE PERSONS IN OUR GROUP ......... BY PRESSING " DC.B "F4 AND F5 YOU CAN CHANGE THE MUSIX ................ ",0 string2a: DC.B " " DC.B "ELECTRICA : " DC.B "HELLO GUYS !!!!! NOW IT'S TIME FOR THE ORGANIZER,FOUNDER" DC.B " AND CONTROLLER OF THIS SMASHING GROUP !! I CAN'T WRITE" DC.B " BECAUSE THERE IS DOMINOE DANCING BY THE KETCHUP BOYS IN" DC.B " THE BACKGROUND !!! NOW SOMETHING ABOUT MEINE WENIGKEIT " DC.B "!! FIRST I HAD AN ATARI 2600 THEN A C64 AND NOW I " DC.B "AM THE OWNER OF THE MOST POWERFUL (!>!) COMPUTER CALLED " DC.B ": AMIGA 1000 !!!! MLP IS NOW VERY HAPPY BECAUSE THERE A" DC.B "RE TWO SCHACHTELN OF 'SPRENGEL SCHOKOLADE' !!! BYE-BYE" DC.B " AND SO LONG, YOURS ELECTRICA. ",0 string2b: DC.B " " DC.B "TCA+ : HERE IS THE MOST INTERESTING PERSON OF" DC.B " TSB !! (MODESTY ISN'T MY BEST STRENGTH) WELL,I'M THE M" DC.B "OST ENERGETICALLY PERSON IN THE UNIVERSE. I'M THE PRO" DC.B "GRAMMER (WATCH THIS!) - UNBEATABLE IN SOUNDS AND SYNTHETI" DC.B "C MUSIC AND AT LAST I MADE THIS PICCY ABOVE (CHANGED FROM" DC.B " THE GAME 'STREET SPORTS BASKETBALL'). O.K. YOU SEE WI" DC.B "TH ME,WE WILL RULE THE WHOLE GALAXY (E.T. WE ARE COMING!!" DC.B "). WELL,IN THESE DIFFICULT TIMES WE PERFORMED ALL OUR S" DC.B "TRENGTH TOGETHER AND WE BUILT UP A NEW CREW 'THE SPECIAL " DC.B "BROTHERS'. NOW ANYTHING TO MY PERSON. I LIKE FILMS LIK" DC.B "E THESE : THE ROCKY HORROR PICTURE SHOW - BLUE VELVET - " DC.B "AND SOME OTHER STUFF (BORING,EH>) WELL,IF YOU HAVE ANY" DC.B " STICKERS - POSTERS OR SOMETHING FROM THE ROCKY HORROR PI" DC.B "CTURE SHOW SEND IT TO : TSB PLK A 019261 " DC.B "3060 STADTHAGEN WEST-GERMANY...................... " DC.B "WELL,MY CAREER BEGAN WITH A FASCINATING VIDEO-GAME CALLED" DC.B " 'MATTEL INTELLIVISION' (FUCK ATARI VCS 2600!!). BUT I W" DC.B "AS SLIGHTLY BORED,'CAUSE I COULDN'T CREATE ANYTHING OWN O" DC.B "N THIS BOX. THEN I'VE GOT A FRIEND WHO HAD A COMMODOR" DC.B "E 64,AT THAT TIME A NEARLY UNKNOWN COMPUTER.(THE MOST PEO" DC.B "PLE THOUGHT THE TI-994A FROM TEXAS INSTRUMENTS WERE BETTE" DC.B "R).BUT WHEN I SAW THE GAMES ON THE C64 (GALAGA-GREENHOUSE" DC.B " (UUUAARRGHH!!)) I WAS TOTALLY OUT OF CONTROL.SO I WALKED" DC.B " NEARLY EVERY DAY TO THE NEXT COMPUTER-SHOP TO PLAY AND P" DC.B "ROGRAM ON THE VC 20 AND THE VC 64.THEN I HAD CONFIRMATION" DC.B " AND I HAD ENOUGH MONEY TO GET A REAL GOOD SYSTEM. A 64'" DC.B "ER WITH PRINTER,SPEED-DOS,DATASETTE AND DISK-DRIVE.I TRIE" DC.B "D TO PROGRAM SOME THINGS IN BASIC BUT IT FAILED.AFTER THA" DC.B "T I PLAYED NEARLY EVERY DAY FROM 12 P.M. TO 1 A.M. GAMES " DC.B "AND WATCHED AT DEMOS (I LOVED ALL 1001 CREW DEMOS!!). BU" DC.B "T AT ONE DAY I SAW 6502 ASSEMBLER AND I TRIED IT WITH THE" DC.B " GOOD OLD SMON. AND FINALLY I COULD PRESENT MY FIR" DC.B "ST INTRO. WELL, FLICKERING AND WITH ONLY THREE SPRITES" DC.B " BUT IT WAS A GREAT IMPROVEMENT TO BASIC. THE NEXT TWO YE" DC.B "ARS I GOT BETTER AND BETTER,BUT WHEN I WAS REALLY GREAT T" DC.B "HE WHOLE WORLD TURNED OVER TO THE GREAT AMIGA.AND AS I SA" DC.B "W THAT MACHINE IN THE SCHOOL I WAS DREAMING THE WHOLE DAY" DC.B " OF PROGRAMS ON THE AMIGA.THEN I SOLD MY GOOD OLD C64 AND" DC.B " BOUGHT THE AMIGA.I STARTED WITH ASSEMBLER AND KICKED BAS" DC.B "IC AWAY.AND I FOUND ASSEMBLER QUITE EASY ON IT.WELL,THE R" DC.B "ESULT IS THIS NICE LITTLE PROGRAM WITH MY MUSIC,MY GRAPHI" DC.B "CS AND MY ROUTINES (ONLY THE FONT IS I THINK FROM THE KNI" DC.B "GHT HAWKS). NOW I'VE NO MORE TO SAY. " DC.B "WATCH THIS AGAIN. ",0 EVEN string2c: DC.B " " DC.B "MLP : HI LEUTE HIER DIE STORY VON MLP. FIRST" DC.B " I HAD A HAMSTER AND THEN AGAIN A HAMSTER AND AFTER THAT A" DC.B " PHILLIPS TELESPIEL. THEN I GAMED WITH THE CBS TELESPIEL A" DC.B "ND AFTER THAT I WENT ON PROFFESSIONAL WITH THE COMMODORE P" DC.B "C 128 ABOUT WHICH I WAS VERY PROUD. FINALLY I BOUGHT MY D" DC.B "REAM-COMPUTER THE ARCHIMEDES AEH...SHIT...AMIGA !! HE" DC.B "RE IS MY INTRODUCING LINE : I'M ONE OF THE CREATIVE (>) " DC.B "MEMBERS OF TSB (SOUNDS,GRAFIX AND SO ON). WRITE TO ME: " DC.B "MLP POSTLAGERND 3262 AUETAL-BORSTEL. NEXT,I MA" DC.B "KE THE MUZAK FOR CARCHARODON,THE ULTIMATE BALLERFUN. THE" DC.B " BEST BALLERGAME EVER SEEN (COMING SOON AT X-MAS). " DC.B "THAT'S ALL !! ",0 ; USER CopperList even gfxcopper: dc.w $008e,$2281,$0090,$a9c1 ; linke obere/rechte untere ; Koordinaten des BildschirmFenster dc.w $0092,$0038,$0094,$00d0 ; DataFetch Start/Stop dc.w $0108,$00a0,$010a,$00a0 ; Modulos fuer Grafik dc.w $0102,$0000,$0104,$0000 ; BitPlane Control Reg. #1 u. #2 ; nur wichtig bei DualPlayfield etc. dc.w $0100,$5200 ; BitPlane Control Reg. #0 ; 1 Bitplane/Farbe ; siehe Hardware Reference M. ; Anhang A-4 dc.w $00e0,$0003,$00e2,$4000 ; Zeiger auf Start der Bitplane dc.w $00e4,$0003,$00e6,$4028 dc.w $00e8,$0003,$00ea,$4050 dc.w $00ec,$0003,$00ee,$4078 dc.w $00f0,$0003,$00f2,$40a0 pic1tab: blk.b 128,10 dc.w $a909,$fffe dc.w DIWSTRT,$c97b,DIWSTOP,$2fd1 dc.w DDFSTRT,$0020,DDFSTOP,$00d8 dc.w BPL1MOD,$0004,BPL2MOD,$0004 dc.w BPLCON2,%0000000001000000,BPLCON1,$0000 dc.w BPLCON0,%0100001000000000 ; %5432109876543210 dc.w COLOR00,$0000,COLOR00+2,$0770 dc.w COLOR00+4,$0880,COLOR00+6,$0990 dc.w COLOR00+8,$0aa0,COLOR00+10,$0bb0 dc.w COLOR00+12,$0cc0,COLOR00+14,$0fff dc.w COLOR00+16,$0cc0,COLOR00+18,$0bb0 dc.w COLOR00+20,$0aa0,COLOR00+22,$0990 dc.w COLOR00+24,$0880,COLOR00+26,$0770 dc.w COLOR00+28,$0660,COLOR00+30,$0fff sprite0: dc.w SPR0PTH,$0000,SPR0PTL,$0000 dc.w SPR1PTH,$0000,SPR1PTL,$0000 dc.w SPR2PTH,$0000,SPR2PTL,$0000 dc.w SPR3PTH,$0000,SPR3PTL,$0000 dc.w SPR4PTH,$0000,SPR4PTL,$0000 dc.w SPR5PTH,$0000,SPR5PTL,$0000 dc.w SPR6PTH,$0000,SPR6PTL,$0000 dc.w SPR7PTH,$0000,SPR7PTL,$0000 planes: dc.w BPL1PTH,$0004,BPL1PTL,$0000 dc.w BPL2PTH,$0004,BPL2PTL,$3cf0 dc.w BPL3PTH,$0004,BPL3PTL,$79e0 dc.w BPL4PTH,$0004,BPL4PTL,$b6d0 dc.w BPL5PTH,$0000,BPL5PTL,$0000 dc.w BPL6PTH,$0000,BPL6PTL,$0000 dc.w $e109,$fffe dc.w COLOR00,$0000,COLOR00+2,$0700 dc.w COLOR00+4,$0800,COLOR00+6,$0900 dc.w COLOR00+8,$0a00,COLOR00+10,$0b00 dc.w COLOR00+12,$0c00,COLOR00+14,$000f dc.w COLOR00+16,$0c00,COLOR00+18,$0b00 dc.w COLOR00+20,$0a00,COLOR00+22,$0900 dc.w COLOR00+24,$0800,COLOR00+26,$0700 dc.w COLOR00+28,$0600,COLOR00+30,$0fff dc.w $ffff,$fffe gfxend: Clsize = gfxend-gfxcopper start_muzak1: move.l #data1,muzakoffset ;** get offset init0: move.l muzakoffset,a0 ;** get highest used pattern add.l #472,a0 move.l #$80,d0 clr.l d1 init1: move.l d1,d2 subq.w #1,d0 init2: move.b (a0)+,d1 cmp.b d2,d1 bgt.s init1 dbf d0,init2 addq.b #1,d2 init3: move.l muzakoffset,a0 ;** calc samplepointers lea pointers(pc),a1 lsl.l #8,d2 lsl.l #2,d2 add.l #600,d2 add.l a0,d2 moveq #14,d0 init4: move.l d2,(a1)+ clr.l d1 move.w 42(a0),d1 lsl.l #1,d1 add.l d1,d2 add.l #30,a0 dbf d0,init4 init5: clr.w $dff0a8 ;** clear used values clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr.w timpos clr.l trkpos clr.l patpos init6: move.l muzakoffset,a0 ;** initialize timer irq move.b 470(a0),numpat+1 ;number of patterns rts start_muzak2: move.l #data2,muzakoffset ;** get offset move.l muzakoffset,a0 ;** get highest used pattern add.l #472,a0 move.l #$80,d0 clr.l d1 init11: move.l d1,d2 subq.w #1,d0 init22: move.b (a0)+,d1 cmp.b d2,d1 bgt.s init11 dbf d0,init22 addq.b #1,d2 init33: move.l muzakoffset,a0 ;** calc samplepointers lea pointers(pc),a1 lsl.l #8,d2 lsl.l #2,d2 add.l #600,d2 add.l a0,d2 moveq #14,d0 init44: move.l d2,(a1)+ clr.l d1 move.w 42(a0),d1 lsl.l #1,d1 add.l d1,d2 add.l #30,a0 dbf d0,init44 init55: clr.w $dff0a8 ;** clear used values clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr.w timpos clr.l trkpos clr.l patpos init66: move.l muzakoffset,a0 ;** initialize timer irq move.b 470(a0),numpat+1 ;number of patterns rts init_irq: move.l $6c.w,lev3save+2 move.l #lev3interrupt,$6c.w rts stop_muzak: move.l lev3save+2,$6c.w clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 move.w #$f,$dff096 rts lev3interrupt: bsr.s replay_muzak bsr irqroutine lev3save: jmp $0 replay_muzak: movem.l d0-d7/a0-a6,-(a7) addq.w #1,timpos speed: cmp.w #6,timpos beq.L replaystep chaneleffects: ;** seek effects lea datach0(pc),a6 tst.b 3(a6) beq.s ceff1 lea $dff0a0,a5 bsr.s ceff5 ceff1: lea datach1(pc),a6 tst.b 3(a6) beq.s ceff2 lea $dff0b0,a5 bsr.s ceff5 ceff2: lea datach2(pc),a6 tst.b 3(a6) beq.s ceff3 lea $dff0c0,a5 bsr.s ceff5 ceff3: lea datach3(pc),a6 tst.b 3(a6) beq.s ceff4 lea $dff0d0,a5 bsr.s ceff5 ceff4: movem.l (a7)+,d0-d7/a0-a6 rts ceff5: move.b 2(a6),d0 ;room for some more and.b #$f,d0 ;implementations below tst.b d0 beq.s arpreggiato cmp.b #1,d0 beq.L pitchup cmp.b #2,d0 beq.L pitchdown cmp.b #12,d0 beq.L setvol cmp.b #14,d0 beq.L setfilt cmp.b #15,d0 beq.L setspeed rts arpreggiato: ;** spread by time cmp.w #1,timpos beq.s arp1 cmp.w #2,timpos beq.s arp2 cmp.w #3,timpos beq.s arp3 cmp.w #4,timpos beq.s arp1 cmp.w #5,timpos beq.s arp2 rts arp1: clr.l d0 ;** get higher note-values move.b 3(a6),d0 ; or play original lsr.b #4,d0 bra.s arp4 arp2: clr.l d0 move.b 3(a6),d0 and.b #$f,d0 bra.s arp4 arp3: move.w 16(a6),d2 bra.s arp6 arp4: lsl.w #1,d0 clr.l d1 move.w 16(a6),d1 lea notetable,a0 arp5: move.w (a0,d0.w),d2 cmp.w (a0),d1 beq.s arp6 addq.l #2,a0 bra.s arp5 arp6: move.w d2,6(a5) rts pitchdown: bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 add.w d0,(a4) cmp.w #$358,(a4) bmi.s ok1 move.w #$358,(a4) ok1: move.w (a4),6(a5) rts pitchup:bsr.s newrou clr.l d0 move.b 3(a6),d0 and.b #$f,d0 sub.w d0,(a4) cmp.w #$71,(a4) bpl.s ok2 move.w #$71,(a4) ok2: move.w (a4),6(a5) rts setvol: move.b 3(a6),8(a5) rts setfilt:move.b 3(a6),d0 and.b #1,d0 lsl.b #1,d0 and.b #$fd,$bfe001 or.b d0,$bfe001 rts setspeed: clr.l d0 move.b 3(a6),d0 and.b #$f,d0 move.w d0,speed+2 rts newrou: cmp.l #datach0,a6 bne.s next1 lea voi1(pc),a4 rts next1: cmp.l #datach1,a6 bne.s next2 lea voi2(pc),a4 rts next2: cmp.l #datach2,a6 bne.s next3 lea voi3(pc),a4 rts next3: lea voi4(pc),a4 rts replaystep: ;** work next pattern-step clr.w timpos move.l muzakoffset,a0 move.l a0,a3 add.l #12,a3 ;ptr to soundprefs move.l a0,a2 add.l #472,a2 ;ptr to pattern-table add.l #600,a0 ;ptr to first pattern clr.l d1 move.l trkpos,d0 ;get ptr to current pattern move.b (a2,d0),d1 lsl.l #8,d1 lsl.l #2,d1 add.l patpos,d1 ;get ptr to current step clr.w enbits lea $dff0a0,a5 ;chanel 0 lea datach0(pc),a6 bsr.L chanelhandler lea $dff0b0,a5 ;chanel 1 lea datach1(pc),a6 bsr.L chanelhandler lea $dff0c0,a5 ;chanel 2 lea datach2(pc),a6 bsr.L chanelhandler lea $dff0d0,a5 ;chanel 3 lea datach3(pc),a6 bsr.L chanelhandler move.w #400,d0 ;** wait a while and set len rep1: dbf d0,rep1 ; of oneshot to 1 word move.w #$8000,d0 or.w enbits,d0 move.w d0,$dff096 cmp.w #1,datach0+14 bne.s rep2 clr.w datach0+14 move.w #1,$dff0a4 rep2: cmp.w #1,datach1+14 bne.s rep3 clr.w datach1+14 move.w #1,$dff0b4 rep3: cmp.w #1,datach2+14 bne.s rep4 clr.w datach2+14 move.w #1,$dff0c4 rep4: cmp.w #1,datach3+14 bne.s rep5 clr.w datach3+14 move.w #1,$dff0d4 rep5: add.l #16,patpos ;next step cmp.l #64*16,patpos ;pattern finished ? bne.s rep6 clr.l patpos addq.l #1,trkpos ;next pattern in table clr.l d0 move.w numpat,d0 cmp.l trkpos,d0 ;song finished ? bne.s rep6 clr.l trkpos rep6: movem.l (a7)+,d0-d7/a0-a6 rts chanelhandler: move.l (a0,d1.l),(a6) ;get period & action-word addq.l #4,d1 ;point to next chanel clr.l d2 move.b 2(a6),d2 ;get nibble for soundnumber lsr.b #4,d2 beq.s chan2 ;no soundchange ! move.l d2,d4 ;** calc ptr to sample lsl.l #2,d2 mulu #30,d4 lea pointers-4(pc),a1 move.l (a1,d2.l),4(a6) ;store sample-address move.w (a3,d4.l),8(a6) ;store sample-len in words move.w 2(a3,d4.l),18(a6) ;store sample-volume move.l d0,-(a7) move.b 2(a6),d0 and.b #$f,d0 cmp.b #$c,d0 bne.s ok3 move.b 3(a6),8(a5) bra.s ok4 ok3: move.w 2(a3,d4.l),8(a5) ;change chanel-volume ok4: move.l (a7)+,d0 clr.l d3 move.w 4(a3,d4),d3 ;** calc repeatstart add.l 4(a6),d3 move.l d3,10(a6) ;store repeatstart move.w 6(a3,d4),14(a6) ;store repeatlength cmp.w #1,14(a6) beq.s chan2 ;no sustainsound ! move.l 10(a6),4(a6) ;repstart = sndstart move.w 6(a3,d4),8(a6) ;replength = sndlength chan2: tst.w (a6) beq.s chan4 ;no new note set ! move.w 22(a6),$dff096 ;clear dma tst.w 14(a6) bne.s chan3 ;no oneshot-sample move.w #1,14(a6) ;allow resume (later) chan3: bsr.L newrou move.w (a6),(a4) move.w (a6),16(a6) ;save note for effect move.l 4(a6),0(a5) ;set samplestart move.w 8(a6),4(a5) ;set samplelength move.w (a6),6(a5) ;set period move.w 22(a6),d0 or.w d0,enbits ;store dma-bit move.w 18(a6),20(a6) ;volume trigger chan4: rts datach0: blk.w 11,0 dc.w 1 datach1: blk.w 11,0 dc.w 2 datach2: blk.w 11,0 dc.w 4 datach3: blk.w 11,0 dc.w 8 voi1: dc.w 0 voi2: dc.w 0 voi3: dc.w 0 voi4: dc.w 0 pointers: blk.l 15,0 notetable: dc.w 856,808,762,720,678,640,604,570 dc.w 538,508,480,453,428,404,381,360 dc.w 339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143 dc.w 135,127,120,113,000 muzakoffset: dc.l 0 trkpos: dc.l 0 patpos: dc.l 0 numpat: dc.w 0 enbits: dc.w 0 timpos: dc.w 0 org $34000-$ba load $34000-$ba picdata: blk.b 27186 picdata_end: org $5606c load $5606c data1: blk.b 72888,0 even data2: blk.b 55916,0 dataend: 0+14 bne.s rep2 clr.w datach0+14 move.w #1,$dff0a4 rep2: cmp.w #1,datach1+14 bne.s rep3 clr.w datach1+14 move.w #1,$dff0b4 rep3: cmp.w #1,datach2+14 bne.s rep4 clr.w datach2+14 move.w #1,$dff0c4 rep4: cmp.w #1,datach3+14 bne.s re  clr.w datach3+14 move.w #1,$dff0d4 rep5: add.l #16,patpos ;next step cmp.l #64*16,patpos ;pattern finished ? bne.s rep6 clr.l patpos addq.l #1,trkpos ;next pattern in table clr.l d0 move.w numpat,d0 cmp.l trkpos,d0 ;song finished ? bne.s rep6 move.l $6c,oldirq ;move.l #newirq,$6c move.w #$c000,$dff09a ; --- bsr init2 bsr unpack bsr fillcopper bsr mt_init ; -------- 8D loop ------------- 8\: wait: move.l $dff004,d2 and.l #$0001ff00,d2 cmp.l #$1000,d2 bne.s wait bsr copy bsr scrolling bsr kord bsr sin_scroll bsr put_it bsr mt_music btst #6,$bfe001 beq.s raus bra main newirq: movem.l d0-d7/a0-a6,-(a7) bsr scrolling bsr copy bsr kord bsr sin_scroll bsr put_it bsr mt_music movem.l (a7)+,d0-d7/a0-a6 dc.w $4ef9 oldirq: dc.l 0 ;---- close all --------------- even raus: move.w #$000f,$dff096 move.w #$4000,$dff09a move.l oldirq,$6c move.w #$c000,$dff09a ; ------------------- move.l $4,a6 move.l gfxbase,a1 jsr -414(a6) ; gfx close ; ------------------------------ move.l gfxbase,a0 add.l #$32,a0 move.w #$0080,$dff096 ; copper dma stop move.l oldcopper,(a0) move.w #$8080,$dff096 ; ------------------------------ move.l $4,a6 jsr -138(a6) ; multi erlauben ; ------------------------------ movem.l (a7)+,d0-d7/a0-a6 rts ;---- new copperlist --- newcopper: ; sprite zeiger sprite: dc.w $0120,$0000,$0122,$0000 ; spr 1 address dc.w $0124,$0000,$0126,$0000 ; spr 2 address ; -------------------------- dc.w $0180,$0000,$0182,$0fff ; hintergrundfarben ; fuer dpaint-pic dc.w $008e,$4281,$0090,$80c1 dc.w $0092,$0038,$0094,$00d1 dc.w $0108,$00a0,$010a,$00a0 dc.w $0102 0104,$0000 dc.w $0100,$5200 dc.w $00e0,$0007,$00e2,$0000 dc.w $00e4,$0007,$00e6,$0028 dc.w $00e8,$0007,$00ea,$0050 dc.w $00ec,$0007,$00ee,$0078 dc.w $00f0,$0007,$00f2,$00a0 colors: blk.b 128,10 round: blk.l 120,0 dc.w $8009,$fffe dc.w $0100,$1200 dc.w $0180,$0000,$0182,$0000 ; spr colors dc.w $01a2,$0000,$01a4,$00f0 dc.w $01a6,$000f,$01a8,$0ff0 dc.w $008e,$a081,$0090,$c3c1 ; left top/right bottom koordinaten dc.w $0092,$0038,$0094,$00d0 ; data fetch start/stop dc.w $0108,$0004,$010a,$0004 ; graphic modulus dc.w $0102,$0000,$0104,$0024 ; bitpl. control r