***************************************** * Demo1 10.06.90. by FI-RE crew * * programmed by Readysoft * * muzax and gfx by Fricforce * ***************************************** lea st,a0 ; a program kezdöcíme A0-ban move.l a0,$80 ; beírja a TRAP #0 vektorra trap #0 ; kizárás mód move.l $4,a6 ; visszatérés után egy szöveget ír ki lea dos,a1 moveq #0,d0 jsr -552(a6) ; open dos.library move.l d0,a6 jsr -60(a6) ; output move.l d0,d1 ; stdout D1-be move.l #cr,d2 ; szöveg cime D2-be move.l #st-cr,d3 ; a hossza D3-ba jsr -48(a6) ; write move.l a6,a1 move.l $4,a6 jsr -414(a6) ; close dos.library clr.l d0 ; hibakód = 0 rts ; kilépés dos: dc.b "dos.library",0 cr: dc.b "FI-RE Demo1.",10,"Released on 10.06.90.",10,0 ; ; A kizárás alatt futó program. ; st: lea Pic,a0 ; a kép címe A0-ban move.l a0,d0 move.l d0,d1 move.l d0,d2 ; D2-be a BPL1PTHL-t add.l #$225e,d2 ; majd $225e-vel többet add.l #$2800,d2 lea Blt2,a1 ; az így kapott címre írja majd move.l d2,2(a1) ; a karakterek képét add.l #$27d8,d2 ; a 2. bmapra is felírja a move.l d2,8(a1) ; karakterek képét (kicsit eltolva) move.l d0,d2 ; D2-be a BPL1PTHL-t add.l #$2506,d2 ; majd $2506-al többet (Blitter cím) add.l #$2800,d2 ; majd $2800-al többet lea Blt0,a1 ; ezen a címen kezdödik a scroll move.l d2,2(a1) ; BLTAPTHL move.l d2,12(a1) ; BLTDPTHL add.l #$2800,d2 ; a 2. bmap $2800-al nagyobb címen lea Blt1,a1 ; a 2. scroll címet is beírja move.l d2,2(a1) ; BLTAPTHL move.l d2,12(a1) ; BLTDPTHL lea Bpls,a0 ; BitPlane mutatók címe a Copper-ben moveq #3,d7 ; 4 bittérkép cBpl7: move.w d0,6(a0) ; a címek beírása a Copperbe swap d0 move.w d0,2(a0) swap d0 addq.l #8,a0 add.l #$2800,d0 ; következö bittérkép jön dbf d7,cBpl7 lea Copper,a0 ; a Sprite mutatók beírása lea Sprx,a1 ; a Copper listába move.l a1,d1 moveq #7,d7 cSpr7: move.w d1,6(a0) ; SPRxPTL swap d1 move.w d1,2(a0) ; SPRxPTH swap d1 addq.l #8,a0 dbf d7,cSpr7 lea Copper,a0 ; Scroll lezáró Sprite (bal) lea Spr0,a1 ; beírása a Copper listába move.l a1,d1 ; Sprite0 move.w d1,6(a0) swap d1 move.w d1,2(a0) lea Spr1,a1 ; Scroll lezáró Sprite (jobb) move.l a1,d1 ; beírása a Copper listába move.w d1,14(a0) ; Sprite1 swap d1 move.w d1,10(a0) ccc: lea text,a0 ; beállítja a szöveg címmutatóját move.l a0,txadd bsr init ; a zenerutin inicializálása lea Copper,a0 ; elindítja a Coppert move.l a0,$dff080 move.l $6c,Jadd+2 ; elmenti a $6c eredeti ugráscímét lea Interr,a0 ; $6c vektrot ráállítja a scroll move.l a0,$6c ; rutinra Restart:move.b #0,count ; a Scroll indítása wtrk1: cmpi.l #1,partnrplay ; vár a FRICFORCE hangszerre bne wtrk1 wpat1: cmpi.l #16*32,partnote bne wpat1 bsr FFPrint ; kiírja a FRICFORCE táblát wtrk2: cmpi.l #2,partnrplay ; vár a READYSOFT hangszerre bne wtrk2 wpat2: cmpi.l #16*32,partnote bne wpat2 bsr RSPrint ; kiírja a READYSOFT táblát wtrk3: cmpi.l #3,partnrplay ; vár a FI-RE hangszerre bne wtrk3 wpat3: cmpi.l #16*32,partnote bne wpat3 bsr CRPrint ; kiírja a FI-RE CREW táblát bra Pages ; ezek után írja ki a neveket ; ; A FRICFORCE tábla pontonkénti felrajzolása. ; FFPrint:lea Mask,a6 ; a maszk mutató A6-ban moveq #18,d0 ; 19 lépés írja fel=num. of mask word cFF0: lea Pic,a1 ; A1 : képernyö címmutató adda.l #240,a1 lea FF,a0 ; A0-ban az adatok címe moveq #25,d1 ; 26 sor cFF1: moveq #8,d2 ; soronként 9 word (18 byte) cFF2: moveq #3,d3 ; 4 bittérkép move.w (a6)+,d6 ; D6 : maszk regiszter cmpi.w #$ffff,d6 ; $ffff a maszk végét jelzi bne cFF3 lea Mask,a6 ; újra betölti a maszk mutatót move.w (a6)+,d6 cFF3: move.l d3,d4 mulu #468,d4 ; D4 : adat offszet move.l d3,d5 ; D5 : bittérkép száma mulu #10240,d5 ; offszet = szám * 10240 bsr bits ; a megfelelö bitek kicserélése dbf d3,cFF3 addq.l #2,a1 addq.l #2,a0 dbf d2,cFF2 adda.l #22,a1 ; következö sor jön dbf d1,cFF1 move.w #$5000,d5 ; várakozás w5F: dbf d5,w5F dbf d0,cFF0 rts ; ; A READYSOFT tábla pontonkénti felrajzolása. ; RSPrint:lea Mask2,a6 ; a maszk mutató A6-ban moveq #16,d0 ; 17 lépésben írja fel cRS0: lea Pic,a1 ; A1 : képernyö címmutató adda.l #1280,a1 lea RS,a0 ; A0-ban az adatok címe moveq #28,d1 ; 29 sor cRS1: moveq #8,d2 ; soronként 9 word (18 byte) cRS2: moveq #3,d3 ; 4 bittérkép move.w (a6)+,d6 ; D6 : maszk regiszter cmpi.w #$ffff,d6 ; $ffff a maszk végét jelzi bne cRS3 lea Mask2,a6 ; újra betölti a maszk mutatót move.w (a6)+,d6 cRS3: move.l d3,d4 mulu #522,d4 ; D4 : adat offszet move.l d3,d5 ; D5 : a bittérkép száma mulu #10240,d5 ; offszet = szám * 10240 bsr bits ; a megfelelö bitek kicserélése dbf d3,cRS3 addq.l #2,a1 addq.l #2,a0 dbf d2,cRS2 adda.l #22,a1 ; következö sor jön dbf d1,cRS1 move.w #$5000,d5 ; várakozás w5R: dbf d5,w5R dbf d0,cRS0 rts ; ; A FI-RE CREW tábla pontonkénti felrajzolása. ; CRPrint:lea Mask2,a6 ; a maszk mutató A6-ban moveq #16,d0 ; 17 lépésben írja fel cCR0: lea Pic,a1 ; A1 : képernyö címmutató adda.l #258,a1 lea Crew,a0 ; A0-ban az adatok címe moveq #46,d1 ; 47 sor cCR1: moveq #7,d2 ; soronként 8 word (16 byte) cCR2: moveq #3,d3 ; 4 bittérkép move.w (a6)+,d6 ; D6 : maszk regiszter cmpi.w #$ffff,d6 ; $ffff a maszk végét jelzi bne cCR3 lea Mask2,a6 ; újra betölti a maszk mutatót move.w (a6)+,d6 cCR3: move.l d3,d4 mulu #752,d4 ; D4 : adat offszet move.l d3,d5 ; D5 : bittérkép száma mulu #10240,d5 ; offszet = szám * 10240 bsr bits ; a megfelelö bitek kicserélése dbf d3,cCR3 addq.l #2,a1 addq.l #2,a0 dbf d2,cCR2 adda.l #24,a1 ; következö sor jön dbf d1,cCR1 move.w #$3000,d5 ; várakozás w5C: dbf d5,w5C dbf d0,cCR0 rts ; ; A Greetings táblák pontonkénti felrajzolása. ; GSFwr: lea Mask3,a6 ; a maszk mutató A6-ban moveq #16,d0 ; 17 lépésben írja fel cGS0: lea Pic,a1 ; A1 : képernyö címmutató adda.l #7460,a1 move.l gsfadd,a0 ; A0-ban az adatok címe moveq #22,d1 ; 23 sor cGS1: moveq #7,d2 ; soronként 8 word (16 byte) cGS2: moveq #3,d3 ; 4 bittérkép move.w (a6)+,d6 ; D6 : maszk regiszter cmpi.w #$ffff,d6 ; $ffff a maszk végét jelzi bne cGS3 lea Mask3,a6 ; újra betölti a maszk mutatót move.w (a6)+,d6 cGS3: move.l d3,d4 mulu #368,d4 ; D4 : adat offszet move.l d3,d5 ; D5 : bittérkép száma mulu #10240,d5 ; offszet = szám * 10240 move.w 0(a0,d4),d7 ; D7 : data and.w d6,d7 ; csak a maszkolt bitek maradnak not.w d6 ; negálja a maszkot and.w d6,0(a1,d5) ; törli a nem maszkolt biteket, or.w d7,0(a1,d5) ; majd beírja az újakat not.w d6 ; visszaállítja a maszkot dbf d3,cGS3 addq.l #2,a1 addq.l #2,a0 dbf d2,cGS2 adda.l #24,a1 ; következö sor jön dbf d1,cGS1 move.w #$6000,d5 ; várakozás w5G: dbf d5,w5G dbf d0,cGS0 rts ; ; A maszkolt bitek átírását végzö rutin : ; bits: movem.l d0-d3,-(a7) ; a maszkolt bitek kicserélése az adat move.w 0(a0,d4),d0 ; és a kép wordjeiben move.w d0,d1 ; D0,d1 : a tárolt kép 1 word-je move.w 0(a1,d5),d2 move.w d2,d3 ; D2,D3 : a screen 1 word-je not.w d6 ; negálja a maszk word-öt and.w d6,d0 ; törli a nem maszkolt biteket and.w d6,d2 not.w d6 ; eredeti maszk visszaállítása and.w d6,d1 ; törli a maszkolt biteket and.w d6,d3 or.w d3,d0 ; a screen egyik bitje a tárolt képre or.w d1,d2 ; a tárolt kép egyik bitje a screen-re move.w d0,0(a0,d4) ; a tárolt kép word-jének visszaírása move.w d2,0(a1,d5) ; a screen word-jének visszírása movem.l (a7)+,d0-d3 rts ; ; A táblak kiírására várakozó rutin. ; Pages: wpage1: cmpi.b #1,page ; page változó = 1 ? bne wpage2 lea gsf+1472,a0 ; Sup.Greetings felirat move.l a0,gsfadd bsr gsfwr clr.w page moveq #5,d7 ; 6 név kiírása az 1. lapra lea namd1,a0 bsr WrPages bsr con wpage2: cmpi.b #2,page ; page változó = 2 ? bne wpage3 lea gsf,a0 ; Greetings felirat move.l a0,gsfadd bsr gsfwr clr.w page moveq #8,d7 ; 9 név kiírása a 2. lapra lea namd2,a0 bsr WrPages bsr con wpage3: cmpi.b #3,page ; page változó = 3 ? bne wpage4 clr.w page moveq #8,d7 ; 9 név kiírása a 3. lapra lea namd3,a0 bsr WrPages bsr con wpage4: cmpi.b #4,page ; page változó = 4 ? bne wpage5 clr.w page moveq #7,d7 ; 8 név kiírása a 4. lapra lea namd4,a0 bsr WrPages bsr con wpage5: cmpi.b #5,page ; page változó = 5 ? bne wpage6 clr.w page moveq #8,d7 ; 9 név kiírása az 5. lapra lea namd5,a0 bsr WrPages bsr con wpage6: cmpi.b #6,page ; page változó = 6 ? bne wFFtab lea gsf+2944,a0 ; fucking felirat move.l a0,gsfadd bsr gsfwr clr.w page moveq #2,d7 ; 3 név kiírása a 6. lapra lea namd6,a0 bsr WrPages bsr con wFFtab: cmpi.b #7,page ; ha a page változó 7, bne wRStab ; letörli a FRICFORCE táblát clr.w page bsr FFPrint wRStab: cmpi.b #8,page ; ha a page változó 8, bne wCRtab ; letörli a READYSOFT táblát clr.w page bsr RSPrint wCRtab: cmpi.b #9,page ; ha a page változó 9, bne wend ; letörli a FI-RE CREW táblát clr.w page bsr CRPrint wend: cmpi.b #10,page ; ha vége a szövegnek, bne woff1 ; a page változó 10 lesz clr.w page clr.b bit wmstart:btst #6,$bfe001 beq exit cmpi.l #0,partnrplay ; vár a zene elejére bne wmstart bra Restart ; minden kezdödik elölröl woff1: cmpi.b #$ff,page ; page változó = 255 ? bne woff2 clr.w page bsr coff moveq #5,d7 ; 6 név letörlése az 1. lapról lea namd1,a0 bsr WrPages woff2: cmpi.b #$fe,page ; page változó = 254 ? bne woff3 clr.w page bsr coff moveq #8,d7 ; 9 név letörlése a 2. lapról lea namd2,a0 bsr WrPages woff3: cmpi.b #$fd,page ; page változó = 253 ? bne woff4 clr.w page bsr coff moveq #8,d7 ; 9 név letörlése a 3. lapról lea namd3,a0 bsr WrPages woff4: cmpi.b #$fc,page ; page változó = 252 ? bne woff5 clr.w page bsr coff moveq #7,d7 ; 8 név letörlése a 4. lapról lea namd4,a0 bsr WrPages woff5: cmpi.b #$fb,page ; page változó = 251 ? bne woff6 clr.w page bsr coff moveq #8,d7 ; 9 név letörlése az 5. lapról lea namd5,a0 bsr WrPages woff6: cmpi.b #$fa,page ; page változó = 250 ? bne w clr.w page cmpi.w #0,namd6n ; csak az utolsó névnél veszi le bne nocolor ; a színt bsr coff nocolor:moveq #0,d7 ; három lépésben törli le a fucking lea namd6a,a0 ; lapot (Mr.Sister,Deft Hoop,A klub) clr.l d6 move.w namd6n,d6 ; a letörlendö név száma D6-ban mulu #10,d6 ; egy névhez 5 adat-word tartozik adda.l d6,a0 bsr WrPages cmpi.w #0,namd6n ; az utolsó névnél letörli a bne nofoff ; fucking táblát is lea gsf+4416,a0 move.l a0,gsfadd bsr gsfwr nofoff: subq.w #1,namd6n ; csökkenti a letörlendö név számát cmpi.w #$ffff,namd6n ; ha -1, visszírja 2-re bne w move.w #2,namd6n w: btst #6,$bfe001 ; várakozás bal egérgombra bne wpage1 ; ha nincs lenyomva, tovább várakozik exit: bsr end ; vége a zenének move.l Jadd+2,$6c ; visszaállítja a $6c vektort lea gfx,a1 ; az eredeti copper visszaírása move.l $4,a6 jsr -408(a6) move.l 38(a0),$dff080 rte ; kilépés kizárásból ; ; Egy tábla felírása. ; WrPages:clr.l d0 ; D7-be be kell írni a nevek számát cwrp7: move.w (a0)+,d0 ; 1. word a név offszetje lea Name,a1 ; a name táblán adda.l d0,a1 ; A1-ben a kiolvasási cím move.w d0,Noffs ; az offszetet beírja az Noffs-ba move.w (a0)+,d0 ; 2. word a kiírás offszetje lea Pic,a2 ; a screen-en adda.l d0,a2 ; A2-ben a kiírási cím moveq #15,d6 ; 16 sor cwrp6: moveq #5,d5 ; soronként 6 byte clr.l d4 cwrp5: move.b (a1)+,d4 ; adat D4-ben cmpi.w #3876,Noffs ; a Deft Hoop tábla 4 byte széles ! bne nDHoop cmpi.b #1,d5 ; az 5. byte-ot már nem írja ki bhi nDHoop clr.b d4 nDHoop: eor.b d4,20480(a2) ; XOR müvelettel írja fel a neveket eor.b d4,10240(a2) ; az 1., 2. és 3. bittérképekre, eor.b d4,(a2)+ ; hogy a következö rutinhíváskor dbf d5,cwrp5 ; visszaállítsa az eredeti képet adda.l #34,a1 adda.l #34,a2 dbf d6,cwrp6 ; következö sor dbf d7,cwrp7 ; következö név move.w (a0)+,d0 ; a következö word a pontok száma cwrpp0: move.w (a0)+,d1 ; a cím (offszet) move.w (a0)+,d2 ; az eltolás nagysága lea pic,a1 adda.l d1,a1 ; a pont képernyö címe A1-ben lea pont,a2 ; a pont adatainak címe A2-ben moveq #5,d7 ; 6 sor cwrpp7: move.w (a2)+,d6 ; 1. bittérképe a pontnak move.w (a2)+,d5 ; 2. bittérképe a pontnak lsl.w d2,d6 ; D2 hellyel eltolja lsl.w d2,d5 eor.w d5,20480(a1) ; XOR müvelettel felírja a screen-re eor.w d5,10240(a1) eor.w d6,(a1) adda.l #40,a1 dbf d7,cwrpp7 dbf d0,cwrpp0 rts ; ; A színek behozását végzö rutin. ; con: moveq #8,d7 ; 9 lépésben sötétednek be a színek lea namec,a0 ; a nevek színeinek címe A0-ban con7: btst #0,d7 ; a világosabb színt csak minden beq nsub ; második lépésben sötétíti sub.w #$111,2(a0) nsub: sub.w #$111,6(a0) move.w #$efff,d0 ; várakozás con0: dbf d0,con0 dbf d7,con7 rts ; ; A színek visszaállítását végzö rutin. ; coff: moveq #8,d7 ; 9 lépésben világosodnak ki a szinek lea namec,a0 ; a nevek színeinek címe A0-ban coff7: btst #0,d7 ; a világosabb színt csak minden beq nadd ; második lépésben világosítja add.w #$111,2(a0) nadd: add.w #$111,6(a0) move.w #$efff,d0 ; várakozás coff0: dbf d0,coff0 dbf d7,coff7 rts ; ; Erre a rutinra mutat a $6c vektor. ; Interr: bsr lev3interrupt ; stplayer movem.l d0-d7/a0-a6,-(a7) cmpi.w #0,flcnt ; a villogás színe változik ? bne nofl0 cmpi.l #0,chanel1 ; ha az 1. csatorna hangereje 0, beq nofl ; nem változik a FI-RE tábla színe sub.l #8,chanel1 ; csökkenti a hangeröt sub.w #$111,flash ; sötétíti az 1. színt add.w #$111,flash2 ; világosítja a 2. színt move.w #3,flcnt ; visszaállítja a villogás-számlálót nofl0: subq.w #1,flcnt ; csökkenti a villogás-számlálót nofl: cmpi.b #$ff,count ; ha a scroll-számláló = 255, akkor beq Iex ; nem megy a scroll (külsö tiltás) cmpi.b #0,count ; számláló = 0 ? beq cnt0 ; ha igen, akkor scrolloz subq.b #1,count ; különben csökkenti bra Iex ; és nem scrolloz cnt0: subq.b #1,bit ; csökkenti a scroll számlálót cmpi.b #$ff,bit ; ha ez -1, akkor új karakter jön bne nonew move.l txadd,a0 move.b #4,bit ; 4-re állítja a számlálót (5 lépés) newch: move.l txadd,a0 clr.l d0 move.b (a0),d0 ; beolvas egy karaktert addq.l #1,txadd ; növeli a szöveg címmutatóját cmpi.b #1,d0 ; 1 : várakozás bne nwait move.b 1(a0),count addq.l #1,txadd ; 2-vel növeli a string számlálót, clr.b bit bra Iex nwait: cmpi.b #2,d0 ; 2 : page indítását jelzi bne nspage move.b 1(a0),page ; a kód utáni byte a page száma addq.l #1,txadd ; számlálót növeli 2-vel bra newch ; jön a következö karakter nspage: cmpi.b #0,d0 ; az 0 kód a szöveg végét jelzi bne noend lea text,a0 ; ekkor kezdödik elölröl move.l a0,txadd move.b #$ff,count move.b #10,page bra Iex noend: sub.b #32,d0 ; csökkenti a kódot 32-vel mulu #40,d0 ; majd szorozza 40-el (1betü=40byte) lea lets,a0 ; a karakterképek címmutatójához adda.l d0,a0 ; hozzáadja a kapott értéket Blt2: move.l #0,a1 ; a láthatatlan területre beírja move.l #0,a2 ; az új karakter képét move.w #0,-40(a1) ; a legfelsö sor törli, hogy move.w #0,-40(a2) ; ne jöjjön vissza az elözö betü moveq #19,d0 cWrite: move.w (a0)+,d1 move.w d1,(a1) lsl.w #2,d1 move.w d1,(a2) adda.l #40,a1 adda.l #40,a2 dbf d0,cWrite nonew: move.w #$39f0,$dff040 ; az eltolást a blitter végzi move.w #$0002,$dff042 move.l #$ffffffff,$dff044 Blt0: move.l #0,$dff050 move.l #0,$dff054 move.w #0,$dff064 move.w #0,$dff066 move.w #$4d4,$dff058 bloop1: btst #14,$dff002 bne bloop1 move.w #$39f0,$dff040 move.w #$0002,$dff042 move.l #$ffffffff,$dff044 Blt1: move.l #0,$dff050 move.l #0,$dff054 move.w #0,$dff064 move.w #0,$dff066 move.w #$4d4,$dff058 bloop2: btst #14,$dff002 bne bloop2 Iex: movem.l (a7)+,d0-d7/a0-a6 jadd: jmp $0 ; ; Változók : ; count: dc.b $ff ; scroll számláló bit: dc.b 0 ; a scroll lépésszáma page: dc.w 0 ; a kiírandó lap száma flcnt: dc.w 0 ; a flash (FI-RE) számlálója Noffs: dc.w 0 ; az aktuális név offszetje txadd: dc.l 0 ; a scroll szöveg mutatója maskadd:dc.l 0 ; a maszk mutatója gsfadd: dc.l 0 ; gsf táblák címe itt van kiírás elött ; ; A scroll szövege : ; text: dc.b $01,$ee,$01,$ee,$01,$ee,"EGY 'J CSAPAT" dc.b " BEMUTATKOZ$ DEMOJ@T L@TJ@TOK, " dc.b "TAGJAI : " dc.b " FRICFORCE " dc.b $01,$44 dc.b " (B@RDOS FERENC 6300 KALOCSA MISKEI 'T 20)" dc.b " A GRAFIK@VAL ;S A ZEN;VEL, " dc.b " READYSOFT " dc.b $01,$44 dc.b " (PUNK J$ZSEF" dc.b " 8181 BERHIDA MAGYAR IFJ. 'T 27) A PROGRAMOZ@SSAL " s_Gr: dc.b "FOGLALKOZIK. SZUPER /DV%ZLET : ",2,1 dc.b $01,$d0 dc.b " " dc.b " HALLER J$ZSINAK " dc.b $01,$44 dc.b "<= <= <= " dc.b "AZ ;N NAGYSZER/, %NZETLEN SPREADER BAR@TOMNAK." dc.b " 23 C CREW-NAK " dc.b $01,$44 dc.b "<= <= <= " dc.b " A HATHAT$S ;S GYORS SEG&TS;G;RT." dc.b " GLM-NEK (GABO-NAK) " dc.b $01,$44 dc.b "<= <= <= " dc.b "A K/LD%TT ANYAG;RT, REM;LEM" dc.b " NEM MARADSZ SOK@IG G;P N;LK/L." dc.b " BALI OTE-NAK " dc.b $01,$44 dc.b "<= <= <= " dc.b "A DIGITALIZ@LT EFFEKTEK;RT. " dc.b " GERENCS;R FI'KNAK ",$01,$33 dc.b "<= <= <= " dc.b "AKIKT%L AZ ELS% STUFFOT KAPTAM." dc.b " ILLETVE AZ ;N TUD$S %CS;MNEK " dc.b "<= <= <= " dc.b " WICTOR-NAK " dc.b $01,$44 dc.b " ",2,255 greet: dc.b " NORM@L /DV%ZLETEK: ",2,2 dc.b $01,$e0 dc.b " A-TOM " dc.b $01,$33 dc.b "<= <= <= " dc.b "K%SZ%NET A" dc.b " SOK 'J STUFF;RT, REM;LEM A G;PED NEM " dc.b "GONOSZKODIK T%BB;." dc.b " BEAR " dc.b $01,$33 dc.b "<= <= <= " dc.b "AZ AMIG@SOK ISTENE @LDJON MEG A NAGYSZER/" dc.b " SOROZATOD;RT." dc.b " GOLDEN CHILD " dc.b $01,$33 dc.b "<= <= <= " dc.b "NINCS KEDVED N;H@NY KARAKTERK;SZLETET CSIN@LNI " dc.b "NEK/NK ",34 dc.b " FARKAS ANDR@S " dc.b $01,$33 dc.b "<= <= <= " dc.b "LESZ M;G AMIG@R$L SZ$L$ CIKKSOROZAT ",34 dc.b " K%SZ%NET AZ INTENZ&V PROGRAM" dc.b "CSER;;RT : " dc.b ".............. BALISOFT ",$01,$33 dc.b ".............. MARIO MAGNUS ",$01,$33 dc.b "<= <= <= " dc.b "LESZNEK GY%NGYSZEMEK ",34," " dc.b ".............. DAB OF LIVE ACT ",$01,$33 dc.b ".............. NEW GENERATION ",$01,$33 dc.b ".............. PATONAI SZABOLCS ",$01,$33 dc.b "<= <= <= ",2,254," ",2,3 dc.b ".............. T$TH LACI (TWIN) ",$01,$33 dc.b "K%SZ%N%M BAR@TOM A SEG&TS;GET ! " dc.b " " dc.b " HIGH VOLTAGE ",$01,$33 dc.b "<= <= <= " dc.b "HEAD !!! TUDOM, HOGY A DEFT HOOP BELETURK@LT A" dc.b " DOLGAIDBA, DE M@R MEGB@NTA. " dc.b " HA LEHET, BOCS@SS MEG" dc.b " NEKI (;N IS EZT TETTEM) !" dc.b " PPS ",$01,$33 dc.b "<= <= <= " dc.b "REM;LEM MINDKETTEN J$L J@RUNK MAJD ! " dc.b " MAJOR N@NDOR ",$01,$33 dc.b "<= <= <= " dc.b "NINCS KEDVED MOST M@R CSER;LGETNI ",34 dc.b " ROY BATTY ",$01,$33 dc.b "<= <= <= SZ&VESEN. " dc.b "/DV%ZLET EGY KALOCSAI ;LETM/V;SZ HAVEROMNAK," dc.b " KEREKI GYUL@NAK ",$01,$33 dc.b " (HA VALAKINEK J$ VIDEOFILMRE VAN SZ/KS;GE," dc.b " KERESSE (-N)) ! AZ UT$BBI ID%BEN ELT/N" dc.b "TETEK, MI VAN VELETEK ",34 dc.b " ........... SZAB$ MISI ",$01,$33 dc.b "........... MICROBOYS ",$01,$33 dc.b "........... GYARMATI ERVIN ",$01,$33 dc.b " ",34,2,253," ",2,4 dc.b " AJAXON ",$01,$33 dc.b "<= <= <= " dc.b "K%SZI A SOPRONI BUNK$KKAL KAPCSOLATOS INF$T." dc.b " JACK ",$01,$33 dc.b "<= <= <= " dc.b "VAL$BAN KOCK@Z" dc.b "ATOS EPSONT KAPCSOLNI AMIG@RA ",34 dc.b " (EGY;BK;NT CSAK SEMMI MEGGONDOLATLAN" dc.b " LEV;L&R@S ) !!!! " dc.b " FREEWAY ",$01,$33,"<= <= <= " dc.b "TARTOZOM M;G H@ROM LEMEZZEL, NEM KELL ",34," " dc.b " " dc.b "GREETINGS A MISKOLCI ISMER%S%KNEK : BOROS" dc.b " ZOLINAK, FARKAS ZSOLTNAK." dc.b " HOGY MEGY AZ /ZLET GOTTFRIED ",34 dc.b " AFTER SHAWE ",$01,$33,"<= <= <= " dc.b "EL%RE IS K%SZI A SZ&VESS;GET." dc.b " ",2,252," " dc.b " ",2,5," P@SZTOR GYURI ",$01,$33 dc.b "<= <= <= " dc.b "M;G MIND&G HARAGSZOL ",34," " dc.b " EZEN K&V/L /DV%ZLET MINDEN JELENLEGI ;S" dc.b " LEEND% ISMER%S/NKNEK, ELN;Z;ST MINDAZOKT$L, AKIK " dc.b " KIMARADTAK ! ",2,251 Fuck: dc.b " B...D MEG !! ",2,6," ",$01,$ee dc.b " MR. SISTER ",$01,$33 dc.b "<= <= <= " dc.b "N;MI K%PK%D;S UT@N " dc.b "ISM;T KIB;K/LT/NK ." dc.b ".................... ",2,250 dc.b "TEH@T GREETING MR.SISTER ",$01,$44 dc.b " (ATOM INCIDENS," dc.b " THE GREAT) ! " dc.b " DEFT HOOP ",$01,$33 dc.b "<= <= <= " dc.b "A SR@C BELENY'LT EGY LE&R@SOMBA," dc.b " DE M@R TISZT@ZTUK A DOLGOT. " dc.b " &GY .............. ",2,250 dc.b " /DV DEFT HOOP ",$01,$33 dc.b " " dc.b "AZONBAN VAN ITT EGY KUPAC TR@GYA, " dc.b " SOPRONI KLUB ",$01,$33 dc.b "- NAK @LC@ZVA (PF 308) AKINEK VAN FELESLEGES " dc.b "LEMEZE, K/LDJ%N NEKIK ! " dc.b " ",2,250 dc.b " H@T EGYENL%RE ENNYI. URAIM ! SENKI NE" dc.b " PR$B@LJON C64-ES ZEN;T AMIG@RA @T&RNI (" dc.b "MAZOCHIST@K EL%NYBEN) ! HAMAROSAN 'JRA " dc.b "JELENTKEZ/NK !!! <= <= <= " dc.b 2,7,1,$70,2,8,1,$70,2,9,1,$70,0 ; ; Scroll vezérlökódok: ; ; 0 : End 1,n : várakozás n ideig n:1byte ; 2,n : n. page indul 2,256-n : n. page törlése ; gfx: dc.b "graphics.library",0 even ; ; A Sprite-ok adatai. ; Spr0: dc.w $033a,$1f06 blk.l 31,$000ffff1 dc.l 0,0 Spr1: dc.w $03d0,$1f06 blk.l 31,$780047ff dc.l 0,0 Sprx: dc.w $feff,$ff00,0,0,0,0 ; ; A Copper lista. ; Copper: dc.w $120,0,$122,0,$124,0,$126,0,$128,0,$12a,0,$12c,0 dc.w $12e,0,$130,0,$132,0,$134,0,$136,0,$138,0,$13a,0 dc.w $13c,0,$13e,0 dc.w $2a01,$fffe,$180,0,$182,$16f,$184 flash: dc.w $ecc,$186,$bbb dc.w $188,$777,$18a,$bbb,$18c,$f00,$18e,$fe7,$190,$fe7,$192 flash2: dc.w $644,$194,$402,$196,$778,$198,$d23 dc.w $19a,$ff9 namec: dc.w $19c,$fe7,$19e,$fe7,$1a2,$f00,$1a4,0,$1a6,$fe7 dc.w $8e,$2c81,$90,$24ab,$92,$38,$94,$d0,$100,$4200 dc.w $102,0,$104,$24,$108,0,$10a,0 Bpls: dc.w $e0,0,$e2,0,$e4,0,$e6,0,$e8,0,$ea,0,$ec,0,$ee,0 dc.w $ffdf,$fffe,$0301,$fffe,$186,$2d,$18a,$8df,$18e,$cf dc.w $182,$bbb dc.w $1e01,$fffe,$182,$10e,$186,$bbb,$18a,$bbb,$18e,$aac dc.w $ffff,$fffe ; ; Maszkok a pontonkénti felrajzoláshoz. ; Mask: dc.w $400,$10,1,0,$8000,$100,$4,$80,$2000 dc.w $800,$2,$20,0,$200,$4000,$8,0,$40,$1000,$ffff Mask2: dc.w $400,$10,1,$8000,$100,$4,$80,$2000 dc.w $800,$2,$20,$200,$4000,$8,$40,$1000,0,$ffff ; GS Mask3: dc.w $400,$10,1,$8000,0,$100,$4,$80,$2000 dc.w $800,$2,$20,$200,$4000,$8,$40,$1000,$ffff ; ; Adatok a nevek felírásához. ; Namd1: dc.w 0,6098,6,4102,12,4216,18,3650,24,6770,30,2858 dc.w 3,6540,1,3982,10,7372,6,3458,2 Namd2: dc.w 640,5924,646,4577,652,3377,658,5502,664,2347 dc.w 670,6770,1280,4606,1286,3769,1292,4464 dc.w 6,5604,4,4256,0,6106,10,2948,4,7372,6,5010,10,4542,3 Namd3: dc.w 1298,3926,1304,6246,1310,6417,1920,3650,1926,2937 dc.w 1932,4576,1938,5703,1944,5816,3864,6771 dc.w 7,3688,10,6364,3,6540,0,2618,6,4256,6,6304,9,6456,5 dc.w 7372,6 Namd4: dc.w 1950,3685,2560,7091,2566,2977,2572,4577 dc.w 2584,3490,640,3066,2590,2427,3200,6337 dc.w 5,3484,10,7372,6,3578,6,4256,8,2104,0,6540,0 Namd5: dc.w 3206,2666,3212,4263,3218,4090,3224,3450,3230,2698 dc.w 3840,4097,3846,5103,3852,6769,3858,6456 dc.w 5,2504,4,3982,10,3298,0,5706,9,7372,6,7136,6 Namd6: dc.w 2578,3685,3876,6486,3870,5342 dc.w 2,3484,10,6564,3,5942,9 Namd6a: dc.w 2578,3685,0,3484,10 ; Amiga Club Namd6b: dc.w 3876,6486,0,6564,3 ; Deft Hoop Namd6c: dc.w 3870,5342,0,5942,9 ; Mr. Sister Namd6n: dc.w 2 Pont: dc.w 0,28,0,62,1,63,1,63,3,31,14,14 ; ; Adatok a screen-hez. (19736 byte) ; dat: lets: blk.b 2400,15 ; karakterkészlet FF: blk.b 1872,0 ; FRICFORCE tábla RS: blk.b 2088,0 ; READYSOFT tábla Crew: blk.b 3008,0 ; FI-RE CREW tábla Name: blk.b 4480,0 ; nevek gsf: blk.b 4416,0 ; S.Greet.,Greet.,Fuck. táblák tab: blk.b 1472,0 ; GSF táblák alatti terület ; ----------------------------------------------------- ; ------- D.O.C Soundtracker V2.3 - playroutine ------- ; ----------------------------------------------------- ; ---- Improved and optimized by Unknown of D.O.C ---- ; --------- Based on the playroutine from TJC --------- ; ----------------------------------------------------- output: cmp.w #0,chanel bne ch1 move.w 18(a6),chanel0 ch1: cmp.w #1,chanel bne ch2 move.w 18(a6),chanel1 move.w #$ecc,flash move.w #$644,flash2 ch2: cmp.w #2,chanel bne ch3 move.w 18(a6),chanel2 ch3: cmp.w #3,chanel bne bck move.w 18(a6),chanel3 bck: rts init: lea data,a0 add.l #$03b8,a0 moveq #$7f,d0 moveq #0,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: lea data,a0 lea sample1(pc),a1 asl.l #8,d2 asl.l #2,d2 add.l #$438,d2 add.l a0,d2 moveq #$1e,d0 init4: move.l d2,(a1)+ moveq #0,d1 move.w 42(a0),d1 asl.l #1,d1 add.l d1,d2 add.l #$1e,a0 dbf d0,init4 lea sample1(PC),a0 moveq #0,d0 clear: move.l (a0,d0.w),a1 clr.l (a1) addq.w #4,d0 cmp.w #$7c,d0 bne.s clear clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 clr.l partnrplay clr.l partnote clr.l partpoint move.b data+$3b6,maxpart+1 rts end: clr.w $dff0a8 clr.w $dff0b8 clr.w $dff0c8 clr.w $dff0d8 move.w #$f,$dff096 rts lev3interrupt: movem.l d0-d7/a0-a6,-(a7) bsr music movem.l (a7)+,d0-d7/a0-a6 rts music: addq.w #1,counter cool: cmp.w #6,counter bne.s notsix clr.w counter bra rout2 notsix: lea aud1temp(PC),a6 tst.b 3(a6) beq.s arp1 lea $dff0a0,a5 bsr.s arprout arp1: lea aud2temp(PC),a6 tst.b 3(a6) beq.s arp2 lea $dff0b0,a5 bsr.s arprout arp2: lea aud3temp(PC),a6 tst.b 3(a6) beq.s arp3 lea $dff0c0,a5 bsr.s arprout arp3: lea aud4temp(PC),a6 tst.b 3(a6) beq.s arp4 lea $dff0d0,a5 bra.s arprout arp4: rts arprout:move.b 2(a6),d0 and.b #$0f,d0 tst.b d0 beq arpegrt cmp.b #$01,d0 beq.s portup cmp.b #$02,d0 beq.s portdwn cmp.b #$0a,d0 beq.s volslide rts portup: moveq #0,d0 move.b 3(a6),d0 sub.w d0,22(a6) cmp.w #$71,22(a6) bpl.s ok1 move.w #$71,22(a6) ok1: move.w 22(a6),6(a5) rts portdwn:moveq #0,d0 move.b 3(a6),d0 add.w d0,22(a6) cmp.w #$538,22(a6) bmi.s ok2 move.w #$538,22(a6) ok2: move.w 22(a6),6(a5) rts volslide: moveq #0,d0 move.b 3(a6),d0 lsr.b #4,d0 tst.b d0 beq.s voldwn add.w d0,18(a6) cmp.w #64,18(a6) bmi.s ok3 move.w #64,18(a6) ok3: move.w 18(a6),8(a5) rts voldwn: moveq #0,d0 move.b 3(a6),d0 and.b #$0f,d0 sub.w d0,18(a6) bpl.s ok4 clr.w 18(a6) ok4: move.w 18(a6),8(a5) rts arpegrt:move.w counter(PC),d0 cmp.w #1,d0 beq.L loop2 cmp.w #2,d0 beq.s loop3 cmp.w #3,d0 beq.s loop4 cmp.w #4,d0 beq.L loop2 cmp.w #5,d0 beq.s loop3 rts loop2: moveq #0,d0 move.b 3(a6),d0 lsr.b #4,d0 bra.s cont loop3: moveq #$00,d0 move.b 3(a6),d0 and.b #$0f,d0 bra.s cont loop4: move.w 16(a6),d2 bra.s endpart cont: add.w d0,d0 moveq #0,d1 move.w 16(a6),d1 lea arpeggio(PC),a0 loop5: move.w (a0,d0),d2 cmp.w (a0),d1 beq.s endpart addq.l #2,a0 bra.s loop5 endpart:move.w d2,6(a5) rts rout2: lea data,a0 move.l a0,a3 add.l #$0c,a3 move.l a0,a2 add.l #$3b8,a2 add.l #$43c,a0 move.l partnrplay(PC),d0 moveq #0,d1 move.b (a2,d0),d1 asl.l #8,d1 asl.l #2,d1 add.l partnote(PC),d1 move.l d1,partpoint clr.w dmacon lea $dff0a0,a5 lea aud1temp(PC),a6 move.w #$00,chanel move.w #$00,chanel0 bsr playit lea $dff0b0,a5 lea aud2temp(PC),a6 move.w #$01,chanel ; move.w #$00,chanel1 ; egy másik rutin fokozatosan bsr playit ; csökkenti a ch1 hangerejét (flash) lea $dff0c0,a5 lea aud3temp(PC),a6 move.w #$02,chanel move.w #$00,chanel2 bsr playit lea $dff0d0,a5 lea aud4temp(PC),a6 move.w #$03,chanel move.w #$00,chanel3 bsr playit move.w #$01f4,d0 rls: dbf d0,rls move.w #$8000,d0 or.w dmacon,d0 move.w d0,$dff096 lea aud4temp(PC),a6 cmp.w #1,14(a6) bne.s voice3 move.l 10(a6),$dff0d0 move.w #1,$dff0d4 voice3: lea aud3temp(PC),a6 cmp.w #1,14(a6) bne.s voice2 move.l 10(a6),$dff0c0 move.w #1,$dff0c4 voice2: lea aud2temp(PC),a6 cmp.w #1,14(a6) bne.s voice1 move.l 10(a6),$dff0b0 move.w #1,$dff0b4 voice1: lea aud1temp(PC),a6 cmp.w #1,14(a6) bne.s voice0 move.l 10(a6),$dff0a0 move.w #1,$dff0a4 voice0: move.l partnote(PC),d0 add.l #$10,d0 move.l d0,partnote cmp.l #$400,d0 bne.s stop higher: clr.l partnote addq.l #1,partnrplay moveq #0,d0 move.w maxpart(PC),d0 move.l partnrplay(PC),d1 cmp.l d0,d1 bne.s stop clr.l partnrplay clr.w status ; itt eredetileg (st status) volt stop: tst.w status beq.s stop2 clr.w status bra.s higher stop2: rts playit: move.l (a0,d1.l),(a6) addq.l #4,d1 moveq #0,d2 move.b 2(a6),d2 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 nosamplechange JSR OUTPUT moveq #0,d3 lea samples(PC),a1 move.l d2,d4 asl.l #2,d2 mulu #$1e,d4 move.l (a1,d2),4(a6) move.w (a3,d4.l),8(a6) move.w 2(a3,d4.l),18(a6) move.w 4(a3,d4.l),d3 tst.w d3 beq.s displace move.l 4(a6),d2 add.l d3,d2 move.l d2,4(a6) move.l d2,10(a6) move.w 6(a3,d4.l),8(a6) move.w 6(a3,d4.l),14(a6) move.w 18(a6),8(a5) bra.s nosamplechange displace: move.l 4(a6),d2 add.l d3,d2 move.l d2,10(a6) move.w 6(a3,d4.l),14(a6) move.w 18(a6),8(a5) nosamplechange: tst.w (a6) beq.s retrout move.w (a6),16(a6) move.w 20(a6),$dff096 move.l 4(a6),(a5) move.w 8(a6),4(a5) move.w (a6),6(a5) move.w 20(a6),d0 or.w d0,dmacon retrout:tst.w (a6) beq.s nonewper JSR OUTPUT move.w (a6),22(a6) nonewper: move.b 2(a6),d0 and.b #$0f,d0 cmp.b #$0b,d0 beq.s posjmp cmp.b #$0c,d0 beq.s setvol cmp.b #$0d,d0 beq.s break cmp.b #$0e,d0 beq.s setfil cmp.b #$0f,d0 beq.s setspeed rts posjmp: not.w status moveq #0,d0 move.b 3(a6),d0 subq.b #1,d0 move.l d0,partnrplay rts setvol: move.b 3(a6),8(a5) rts break: not.w status rts setfil: moveq #0,d0 move.b 3(a6),d0 and.b #1,d0 rol.b #1,d0 and.b #$fd,$bfe001 or.b d0,$bfe001 rts setspeed: move.b 3(a6),d0 and.b #$0f,d0 beq.L back clr.w counter move.b d0,cool+3 back: rts aud1temp: blk.w 10,0 dc.w 1 blk.w 2,0 aud2temp: blk.w 10,0 dc.w 2 blk.w 2,0 aud3temp: blk.w 10,0 dc.w 4 blk.w 2,0 aud4temp: blk.w 10,0 dc.w 8 blk.w 2,0 partnote: dc.l 0 partnrplay: dc.l 0 counter:dc.w 0 partpoint: dc.l 0 samples:dc.l 0 sample1:blk.l 31,0 maxpart:dc.w 0 dmacon: dc.w 0 status: dc.w 0 arpeggio: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0 dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097 dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000 chanel: dc.w 0 chanel0:dc.w 0 chanel1:dc.w 0 chanel2:dc.w 0 chanel3:dc.w 0 data: mod: blk.b 110854,0 ; a zenemodul pic: blk.b 40960,0 ; a kép