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: