;----------------------------------------------------------------- ;***************************************************************** ;************** DINO/YKS INTRO 1.2 BY ORIENS ************ ;***************************************************************** ;----------------------------------------------------------------- ;** TO FIND TEXTS ,TAPE : SEKA>LTEXTE: (TWICE) ** ;** AND TAPE YOUR SCROLL. ** ;** ** ;** THEN ASSEMBLER ( SEKA>A [CR] OPTIONS> [CR] ) ** ;** ** ;** AND LOAD DATA ,WITH SEKA>Y ** ;** ** ;** AND FINNALY, A MUSIC'S MODULE TO LOAD ; ** ;** YOU 'VE THE CHOICE OF 2 MUSICS , ACCORDING THE FREE ** ;** DISK'S SPACE. ** ;** ** ;** -DATA1= COOL ZIC (44300 Kb) (NEVER USED,IMPROVED BY ME) ** ;** ** ;** -DATA2= SMALLER ONE (6970 Kb) BUT ALREADY KNOWN. ** ;** ** ;** ** ;** USING DATA1: HIT SEKA>RI [CR] ** ;** ----- FILENAME>DATA1 [CR] ** ;** BEGIN>MODULE [CR] ** ;** END>[CR] ** ;** ** ;** TO SAVE : HIT SEKA>WI [CR] ** ;** FILENAME>INTRO [CR] ** ;** BEGIN>ST [CR] ** ;** END>DATA1 [CR] ** ;** ** ;** USING DATA2: HIT SEKA>RI [CR] ** ;** ----- FILENAME>DATA2 [CR] ** ;** BEGIN>MODULE [CR] ** ;** END>[CR] ** ;** ** ;** TO SAVE : HIT SEKA>WI [CR] ** ;** FILENAME>INTRO [CR] ** ;** BEGIN>ST [CR] ** ;** END>DATA2 [CR] ** ;** ** ;** TEST INTRO WITH : SEKA>J ST ( BUT REASSEMBLE AFTER IF ** ;** YU WANT TO SAVE IT !!!! ) ** ;** ** ;** FOR CRUNCHING : LOAD MEGACRUNCHER ( OR SMTHG ELSE!) ** ;** USE ABSOLUTE FILE SYSTEM AND GIVE $20000 TO THE JUMPING ** ;** ADDRESS. ** ;** ** ;** WITH LIGHT PACKING : ** ;** INTRO1 (WITH DATA1) MAKES 34000 Kb ** ;** INTRO2 (WITH DATA2) MAKES 11000 Kb ** ;** ** ;** SO MAKE YOUR CHOICE ... ** ;** ** ;** ** ;** ORIENS/HAWK ** ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ;----------------------------------------------------------------- ORG $20000 LOAD $20000 ;----------------------------------------------------------------- ;----------------------------------------------------------------- T: ;---------------------------------------------------------------- LEA $3FFD2,A0 ; ERASE MEM MOVE.W #$FFFE,D0 ERASE1: MOVE.W #0,(A0)+ DBRA D0,ERASE1 ;---------------------------------------------------------------- MOVE.W #0,$DFF064 MOVE.W #6,$DFF066 MOVE.L #$09F00000,$DFF040 MOVE.L #$FFFFFFFF,$DFF044 ;---------------------------------------------------------------- MOVE.L #O,$DFF050 ; COPY LOGO TO WORKMEM MOVE.L #$4FF00,$DFF054 MOVE.W #7*64+20,$DFF058 BSR TEST ;---------------------------------------------------------------- LEA DEG,A0 MOVE.W #176,D4 MOVE.B #$4C,D0 CONSTRUIT_COPPER: MOVE.B D0,(A0)+ MOVE.B #$E1,(A0)+ MOVE.W #$FFFE,(A0)+ MOVE.L #$01820000,(A0)+ MOVE.L #$01020000,(A0)+ ADD.B #1,D0 DBRA D4,CONSTRUIT_COPPER ;---------------------------------------------------------------- BSR SAVE_ALL ; FORBID & SAVE POINTEURS BSR BPINIT ;---------------------------------------------------------------- CMP.W #1,PASSE_ONE ; CONVERT TEXT BEQ CONS BSR TRANSTEXT ;---------------------------------------------------------------- CONS: BSR CONS_FIRST ;--------------------------------------------------------------- INIT: LEA $DFF000,A6 MOVE.W #$7FFF,$9A(A6) MOVE.W #$7FFF,$96(A6) MOVE.L #$026439D1,$8E(A6) MOVE.W #$1200,$100(A6) CLR.L $102(A6) MOVE.L #$00060006,$DFF108 MOVE.L #$003800D0,$92(A6) MOVE.L #COPP,$DFF080 CLR.W $DFF088 ;--------------------------------------------------------------- MOVE.L #IRQ,$6C MOVE.W #%1100000000010000,$9A(A6) MOVE.W #%1000001111000000,$96(A6) ;--------------------------------------------------------------- ATTEN: BTST #6,$BFE001 BNE ATTEN BSR RESTORE_ALL RTS ;---------------------------------------------------------------- IRQ: MOVE.L D0,-(SP) MOVE.W $DFF01C,D0 AND.W $DFF01E,D0 BTST #4,D0 BEQ FINIRQ BSR EFF BSR SCR BSR SCROLL_COLOR BSR SCROLL_COLOR_FOND BSR SCROLL_COLOR_D BSR BPMUSIC MOVE.W #$10,$DFF09C FINIRQ: MOVE.L (SP)+,D0 RTE ;--------------------------------------------------------------- ; SCROLL PRINCIPAUX. ;--------------------------------------------------------------- VITESSE0:DC.W $F VITESSE1:DC.W $8 ;--------------------------------------------------------------- SCR: ; 2 SCROLLS BSR SCROLLY ADD.W #1,CHAPI_CHAPO MOVE.W VITESSE0,D0 MOVE.W CHAPI_CHAPO,D1 CMP.W D1,D0 BNE SUITE_LIS MOVE.W #0,CHAPI_CHAPO BSR LIS SUITE_LIS: BSR SCROLLY1 ADD.W #1,CHAPI_CHAPO1 MOVE.W VITESSE1,D0 MOVE.W CHAPI_CHAPO1,D1 CMP.W D0,D1 BNE SUITE_LIS1 MOVE.W #0,CHAPI_CHAPO1 BSR LIS1 SUITE_LIS1: RTS ;--------------------------------------------------------------- CHAPI_CHAPO:DC.W 0 CHAPI_CHAPO1:DC.W 0 ;--------------------------------------------------------------- COMPTEUR_SCROLLY:DC.W 0 ;--------------------------------------------------------------- ; COMPTEUR SUR TABLES (COLORS VERT,COLOR HORIZONTALES ET DECALAGE) ;--------------------------------------------------------------- C_COLOR:DC.W -2 C_COLOR1:DC.W -2 C_COLOR2:DC.W -2 C_COLOR3:DC.W -2 C_COLORC:DC.W -2 C_COLORD:DC.W -2 ;--------------------------------------------------------------- ; SCROLL DES COLOR DANS LES LIGNES VERTICALES. ;--------------------------------------------------------------- SCROLL_COLOR: LEA C_COLOR,A0 LEA D_COLOR,A1 LEA T_COLOR,A2 LEA COLOR,A3 BSR SCROLL_C LEA C_COLOR1,A0 LEA D_COLOR1,A1 LEA T_COLOR1,A2 LEA COLOR1,A3 BSR SCROLL_C1 LEA C_COLOR2,A0 LEA D_COLOR2,A1 LEA T_COLOR2,A2 LEA COLOR2,A3 BSR SCROLL_C LEA C_COLOR3,A0 LEA D_COLOR3,A1 LEA T_COLOR3,A2 LEA COLOR3,A3 BSR SCROLL_C1 RTS ;--------------------------------------------------------------- SCROLL_C: ADD.W #2,(A0) MOVE.W (A0),D0 MOVE.W (A1,D0.W),D0 CMP.W #$FFFF,D0 BNE BON_C MOVE.W #-2,(A0) BRA SCROLL_C BON_C: move.W #0,$dff064 move.W #0,$dff066 move.l #$09f00000,$dff040 move.l #$ffffffff,$dff044 ;---------------------------------------------------------------- ADD.L #2,A2 move.l A2,$dff050 ; COPY LOGO TO WORKMEM SUB.L #2,A2 move.l A2,$dff054 move.w #1*64+24,$dff058 BSR TEST MOVE.W D0,46(A2) MOVE.W #23,D0 DD: MOVE.W (A2)+,2(A3) ADD.W #4,A3 DBRA D0,DD RTS ;--------------------------------------------------------------- SCROLL_C1: ADD.W #2,(A0) MOVE.W (A0),D0 MOVE.W (A1,D0.W),D0 CMP.W #$FFFF,D0 BNE BON_C1 MOVE.W #-2,(A0) BRA SCROLL_C1 BON_C1: move.W #0,$dff064 move.W #0,$dff066 move.l #$09f00000,$dff040 move.l #$ffffffff,$dff044 ;---------------------------------------------------------------- SUB.L #2,A2 move.l A2,$dff050 ADD.L #2,A2 move.l A2,$dff054 move.w #1*64+24,$dff058 BSR TEST MOVE.W D0,(A2) MOVE.W #23,D0 DD1: MOVE.W (A2)+,2(A3) ADD.W #4,A3 DBRA D0,DD1 RTS ;--------------------------------------------------------------- SCROLLY: SUB.W #1,COMPTEUR_SCROLLY BMI MAKE_IT BRA FIN_SCROLLY MAKE_IT:MOVE.W #0,COMPTEUR_SCROLLY MOVE.L #$4002A+2,$DFF050 MOVE.L #$4002A+0,$DFF054 MOVE.W #0,$DFF064 MOVE.W #0,$DFF066 LEA DECALAGE0,A3 MOVE.L (A3),$DFF040 MOVE.L #$FFFFFFFF,$DFF044 MOVE.W #16*64+22,$DFF058 BSR TEST FIN_SCROLLY: RTS ;--------------------------------------------------------------- DECALAGE0:DC.L $F9F00000 DECALAGE1:DC.L $E9F00000 ;--------------------------------------------------------------- COMPTEUR_SCROLLY1:DC.W 0 ;--------------------------------------------------------------- SCROLLY1: SUB.W #1,COMPTEUR_SCROLLY1 BMI MAKE_IT1 BRA FIN_SCROLLY1 MAKE_IT1: MOVE.W #0,COMPTEUR_SCROLLY1 MOVE.L #$4102A+2,$DFF050 MOVE.L #$4102A+0,$DFF054 MOVE.W #0,$DFF064 MOVE.W #0,$DFF066 LEA DECALAGE1,A3 MOVE.L (A3),$DFF040 MOVE.L #$FFFFFFFF,$DFF044 MOVE.W #16*64+22,$DFF058 BSR TEST FIN_SCROLLY1: RTS ;--------------------------------------------------------------- TEST: BTST #6,$DFF002 BNE TEST RTS ;--------------------------------------------------------------- TEST_EFFETS0: CMP.B #$A1,D1 BNE TEST01 MOVE.W #$F,VITESSE0 MOVE.L #$F9F00000,DECALAGE0 BRA FIN_FIN_FIN TEST01: CMP.B #$A2,D1 BNE TEST02 MOVE.W #8,VITESSE0 MOVE.L #$E9F00000,DECALAGE0 BRA FIN_FIN_FIN TEST02: CMP.B #$A3,D1 BNE TEST03 MOVE.W #4,VITESSE0 MOVE.L #$C9F00000,DECALAGE0 BRA FIN_FIN_FIN TEST03: CMP.B #$A4,D1 BNE TEST04 MOVE.W #$0,CHAPI_CHAPO MOVE.W #2,VITESSE0 MOVE.L #$89F00000,DECALAGE0 BRA FIN_FIN_FIN TEST04: CMP.B #$A5,D1 BNE TEST05 MOVE.W #$0,CHAPI_CHAPO MOVE.W #1,VITESSE0 MOVE.L #$19F00000,DECALAGE0 BRA FIN_FIN_FIN TEST05: CMP.B #$A6,D1 BNE TEST06 MOVE.W #200,COMPTEUR_SCROLLY BRA FIN_FIN_FIN TEST06: BRA CONT ;--------------------------------------------------------------- COMPTTEXT:DC.W -1 ;--------------------------------------------------------------- LIS: CMP.W #0,COMPTEUR_SCROLLY BNE FIN_FIN_FIN LEA TEXTE,A0 ADD.W #1,COMPTTEXT MOVE.W COMPTTEXT,D0 CLR.W D1 MOVE.B (A0,D0.W),D1 CMP.B #$FF,D1 BNE SUITE_SUITE_11 MOVE.W #-1,COMPTTEXT BRA LIS SUITE_SUITE_11: BRA TEST_EFFETS0 CONT: LEA ADDRESSE,A4 MULU #2,D1 MOVE.W (A4,D1.W),ABS LEA POL,A0 ADD.W ABS,A0 MOVE.L A0,$DFF050 MOVE.L #$4002E+42,$DFF054 MOVE.W #38,$DFF064 MOVE.W #44,$DFF066 MOVE.L #$09F00000,$DFF040 MOVE.L #$FFFFFFFF,$DFF044 MOVE.W #16*64+1,$DFF058 BSR TEST FIN_FIN_FIN: RTS: ;---------- EFF: MOVE.L #$4D000,$DFF050 MOVE.L #$4002E-2,$DFF054 MOVE.W #38,$DFF064 MOVE.W #44,$DFF066 MOVE.L #$09F00000,$DFF040 MOVE.L #$FFFFFFFF,$DFF044 MOVE.W #16*64+1,$DFF058 BSR TEST MOVE.L #$4D000,$DFF050 MOVE.L #$4102E-2,$DFF054 MOVE.W #38,$DFF064 MOVE.W #44,$DFF066 MOVE.L #$09F00000,$DFF040 MOVE.L #$FFFFFFFF,$DFF044 MOVE.W #16*64+1,$DFF058 BSR TEST RTS ;--------------------------------------------------------------- TEST_EFFETS1: CMP.B #$A1,D1 BNE TEST1 MOVE.W #$F,VITESSE1 MOVE.W #$D,CHAPI_CHAPO1 MOVE.L #$F9F00000,DECALAGE1 BRA FIN_FIN_FIN1 TEST1: CMP.B #$A2,D1 BNE TEST2 MOVE.W #8,VITESSE1 MOVE.W #$6,CHAPI_CHAPO1 MOVE.L #$E9F00000,DECALAGE1 BRA FIN_FIN_FIN1 TEST2: CMP.B #$A3,D1 BNE TEST3 MOVE.W #$2,CHAPI_CHAPO1 MOVE.W #4,VITESSE1 MOVE.L #$C9F00000,DECALAGE1 BRA FIN_FIN_FIN1 TEST3: CMP.B #$A4,D1 BNE TEST4 MOVE.W #$0,CHAPI_CHAPO1 MOVE.W #2,VITESSE1 MOVE.L #$89F00000,DECALAGE1 BRA FIN_FIN_FIN1 TEST4: CMP.B #$A5,D1 BNE TEST5 MOVE.W #$0,CHAPI_CHAPO1 MOVE.W #1,VITESSE1 MOVE.L #$19F00000,DECALAGE1 BRA FIN_FIN_FIN1 TEST5: CMP.B #$A6,D1 BNE TEST6 MOVE.W #200,COMPTEUR_SCROLLY1 BRA FIN_FIN_FIN1 TEST6: BRA CONT1 ;--------------------------------------------------------------- COMPTTEXT1:DC.W -1 ;--------------------------------------------------------------- LIS1: CLR.L D0 CMP.W #0,COMPTEUR_SCROLLY1 BNE FIN_FIN_FIN1 LEA TEXTE1,A0 ADD.W #1,COMPTTEXT1 MOVE.W COMPTTEXT1,D0 CLR.W D1 MOVE.B (A0,D0.W),D1 CMP.B #$FF,D1 BNE SUITE_SUITE_111 MOVE.W #-1,COMPTTEXT1 BRA LIS1 SUITE_SUITE_111: BRA TEST_EFFETS1 CONT1: LEA ADDRESSE,A4 MULU #2,D1 MOVE.W (A4,D1.W),ABS LEA POL,A0 ADD.W ABS,A0 MOVE.L A0,$DFF050 MOVE.L #$4102E+42,$DFF054 MOVE.W #38,$DFF064 MOVE.W #44,$DFF066 MOVE.L #$09F00000,$DFF040 MOVE.L #$FFFFFFFF,$DFF044 MOVE.W #16*64+1,$DFF058 BSR TEST FIN_FIN_FIN1: RTS ;--------------------------------------------------------------- ABS:DC.W 0 ;--------------------------------------------------------------- TRANSTEXT: CLR.L D0 LEA CODETABLE,A0 LEA TEXTE,A1 BSR DO_TRANS CLR.L D0 LEA CODETABLE,A0 LEA TEXTE1,A1 BSR DO_TRANS CLR.L D0 LEA CODETABLE,A0 LEA TEXTE_CONS,A1 BSR DO_TRANS MOVE.W #1,PASSE_ONE RTS ;--------------------------------------------------------------- DO_TRANS: TT1: CLR.L D1 MOVE.B (A1),D1 MOVE.B (A0),D0 CMP.B (A1),D0 BNE TT2 MOVE.B 1(A0),(A1) TT3: CMP.B #255,(A1) BEQ ENDTT LEA CODETABLE,A0 ADD #1,A1 BRA TT1 TT2: ADD #2,A0 BRA TT1 ENDTT: RTS ;--------------------------------------------------------------- PASSE_ONE:DC.W 0 ; DEJA CONVERTI TEXT =1 ;---------------------------------------------------------------- SAVE_ALL: MOVE.B #$87,$BFD100 ; STOP DRIVE MOVE.L $00000004,A6 JSR -132(A6) MOVE.L $6C,SAVEIRQ MOVE.W $DFF01C,SAVEINT OR.W #$C000,SAVEINT MOVE.W $DFF002,SAVEDMA OR.W #$8100,SAVEDMA RTS ;--------------------------------------------------------------- C_CONS:DC.W -1 ;--------------------------------------------------------------- CONS_FIRST: MOVE.W #38,$DFF064 MOVE.W #44,$DFF066 MOVE.L #$09F00000,$DFF040 MOVE.L #$FFFFFFFF,$DFF044 LEA $45000,A4 LEA $45000,A3 MOVE.W #8,D4 SECOND_PASS: MOVE.W #19,D5 FIRST_PASS: CLR.L D0 LEA TEXTE_CONS,A0 ADD.W #1,C_CONS MOVE.W C_CONS,D0 CLR.L D1 MOVE.B (A0,D0.W),D1 CONS_SUITE: LEA ADDRESSE,A2 MULU #2,D1 MOVE.W (A2,D1.W),ABS LEA POL,A0 ADD.W ABS,A0 MOVE.L A0,$DFF050 MOVE.L A3,$DFF054 MOVE.W #16*64+1,$DFF058 BSR TEST ADD.L #2,A3 DBRA D5,FIRST_PASS ADD.L #46*19,A4 MOVE.L A4,A3 DBRA D4,SECOND_PASS FIN_FIN_FIN_CONS: RTS ;---------------------------------------------------------------- ; SCROLL DES DECALAGE DU FOND . ;---------------------------------------------------------------- DO_ITD:DC.W 0 ;---------------------------------------------------------------- SCROLL_COLOR_D: ADD.W #1,DO_ITD CMP.W #2,DO_ITD BEQ GOODD BRA BIBID GOODD: CLR.W DO_ITD LEA C_COLORD,A0 LEA D_COLORD,A1 LEA T_COLORD,A2 LEA DEG,A3 SCROLL_CCD: ADD.W #2,(A0) MOVE.W (A0),D0 MOVE.W (A1,D0.W),D0 CMP.W #$FFFF,D0 BNE BON_CCD MOVE.W #-2,(A0) BRA SCROLL_CCD BON_CCD: move.W #0,$dff064 move.W #0,$dff066 move.l #$09f00000,$dff040 move.l #$ffffffff,$dff044 move.l #T_COLORD+2,$dff050 move.l #T_COLORD,$dff054 move.w #1*64+352,$dff058 BSR TEST MOVE.W D0,352(A2) MOVE.W #170,D0 ADD.L #10,A3 DDCD: MOVE.W (A2)+,(A3) ADD.L #12,A3 DBRA D0,DDCD BIBID: RTS ;---------------------------------------------------------------- ; SCROLL DES COLOR DU FOND . ;---------------------------------------------------------------- DO_IT:DC.W 0 ;---------------------------------------------------------------- SCROLL_COLOR_FOND: ADD.W #1,DO_IT CMP.W #2,DO_IT BEQ GOOD BRA BIBI GOOD: CLR.W DO_IT LEA C_COLORC,A0 LEA D_COLORC,A1 LEA T_COLORC,A2 LEA DEG,A3 SCROLL_CC: ADD.W #2,(A0) MOVE.W (A0),D0 MOVE.W (A1,D0.W),D0 CMP.W #$FFFF,D0 BNE BON_CC MOVE.W #-2,(A0) BRA SCROLL_CC BON_CC: move.W #0,$dff064 move.W #0,$dff066 move.l #$09f00000,$dff040 move.l #$ffffffff,$dff044 move.l #T_COLORC+2,$dff050 move.l #T_COLORC,$dff054 move.w #1*64+352,$dff058 BSR TEST MOVE.W D0,352(A2) MOVE.W #170,D0 ADD.L #6,A3 DDC: MOVE.W (A2)+,(A3) ADD.L #12,A3 DBRA D0,DDC BIBI: RTS ;--------------------------------------------------------------- bpinit: lea samples(pc),a0 lea bpsong(pc),a1 clr.b numtables cmpi.w #'V.',26(a1) bne.s bpnotv2 cmpi.b #'2',28(a1) bne.s bpnotv2 move.b 29(a1),numtables bpnotv2: move.l #512,d0 move.w 30(a1),d1 ;d1 now contains length in steps moveq #1,d2 ;1 is highest pattern number mulu #4,d1 ;4 voices per step subq.w #1,d1 ;correction for DBRA findhighest: cmp.w (a1,d0),d2 ;Is it higher bge.s nothigher ;No move.w (a1,d0),d2 ;Yes, so let D2 be highest nothigher: addq.l #4,d0 ;Next Voice dbra d1,findhighest ;And search move.w 30(a1),d1 mulu #16,d1 ;16 bytes per step move.l #512,d0 ;header is 512 bytes mulu #48,d2 ;48 bytes per pattern add.l d2,d0 add.l d1,d0 ;offset for samples add.l #bpsong,d0 move.l d0,tables moveq #0,d1 move.b numtables,d1 ;Number of tables lsl.l #6,d1 ;x 64 add.l d1,d0 move.l #14,d1 ;15 samples add.l #32,a1 initloop: move.l d0,(a0)+ cmpi.b #$ff,(a1) beq.s bpissynth move.w 24(a1),d2 mulu #2,d2 ;Length is in words add.l d2,d0 ;offset next sample bpissynth: add.l #32,a1 ;Length of Sample Part in header dbra d1,initloop rts bpmusic: bsr bpsynth subq.b #1,arpcount moveq #3,d0 lea bpcurrent(pc),a0 move.l #$dff0a0,a1 bploop1: move.b 12(a0),d4 ext.w d4 add.w d4,(a0) tst.b $1e(a0) bne.s bplfo move.w (a0),6(a1) bplfo: move.l 4(a0),(a1) move.w 8(a0),4(a1) tst.b 11(a0) bne.s bpdoarp tst.b 13(a0) beq.s not2 bpdoarp: tst.b arpcount bne.s not0 move.b 11(a0),d3 move.b 13(a0),d4 and.w #240,d4 and.w #240,d3 lsr.w #4,d3 lsr.w #4,d4 add.w d3,d4 add.b 10(a0),d4 bsr bpplayarp bra.s not2 not0: cmpi.b #1,arpcount bne.s not1 move.b 11(a0),d3 move.b 13(a0),d4 and.w #15,d3 and.w #15,d4 add.w d3,d4 add.b 10(a0),d4 bsr bpplayarp bra.s not2 not1: move.b 10(a0),d4 bsr bpplayarp not2: lea $10(a1),a1 lea $20(a0),a0 dbra d0,bploop1 tst.b arpcount bne.s arpnotzero move.b #3,arpcount arpnotzero: subq.b #1,bpcount beq.s bpskip1 rts bpskip1: move.b bpdelay,bpcount bpplay: bsr.s bpnext move.w dma,$dff096 ;move.l #$1f4,d0 ;is this a waste ????? bpxx: ;dbra d0,bpxx moveq #3,d0 move.l #$dff0a0,a1 moveq #1,d1 lea bpcurrent(pc),a2 lea bpbuffer(pc),a5 bploop2: btst #15,(a2) beq.s bpskip7 bsr bpplayit bpskip7: asl.w #1,d1 lea $10(a1),a1 lea $20(a2),a2 lea $24(a5),a5 dbra d0,bploop2 rts bpnext: clr.w dma lea bpsong(pc),a0 move.l #$dff0a0,a3 moveq #3,d0 moveq #1,d7 lea bpcurrent(pc),a1 bploop3: moveq #0,d1 move.w bpstep,d1 lsl.w #4,d1 move.l d0,d2 lsl.l #2,d2 add.l d2,d1 add.l #512,d1 move.w (a0,d1),d2 move.b 2(a0,d1),st move.b 3(a0,d1),tr subq.w #1,d2 mulu #48,d2 moveq #0,d3 move.w 30(a0),d3 lsl.w #4,d3 add.l d2,d3 move.l #$00000200,d4 move.b bppatcount,d4 add.l d3,d4 move.l d4,a2 add.l a0,a2 moveq #0,d3 move.b (a2),d3 tst.b d3 bne.s bpskip4 bra bpoptionals bpskip4: clr.w 12(a1) ;Clear autoslide/autoarpeggio move.b 1(a2),d4 and.b #15,d4 cmpi.b #10,d4 ;Option 10->transposes off bne.s bp_do1 move.b 2(a2),d4 and.b #240,d4 ;Higher nibble=transpose bne.s bp_not1 bp_do1: add.b tr,d3 ext.w d3 bp_not1: move.b d3,10(a1) ; Voor Arpeggio's lea bpper(pc),a4 lsl.w #1,d3 move.w -2(a4,d3.w),(a1) bset #15,(a1) move.b #$ff,2(a1) moveq #0,d3 move.b 1(a2),d3 lsr.b #4,d3 and.b #15,d3 tst.b d3 bne.s bpskip5 move.b 3(a1),d3 bpskip5: move.b 1(a2),d4 and.b #15,d4 cmpi.b #10,d4 ;option 10 bne.s bp_do2 move.b 2(a2),d4 and.b #15,d4 bne.s bp_not2 bp_do2: add.b st,d3 bp_not2: cmpi.w #1,8(a1) beq.s bpsamplechange cmp.b 3(a1),d3 beq.s bpoptionals bpsamplechange: move.b d3,3(a1) or.w d7,dma bpoptionals: moveq #0,d3 moveq #0,d4 move.b 1(a2),d3 and.b #15,d3 move.b 2(a2),d4 cmpi.b #0,d3 ; Optionals Here bne.s notopt0 move.b d4,11(a1) notopt0: cmpi.b #1,d3 bne.s bpskip3 move.w d4,8(a3) move.b d4,2(a1) ; Volume ook in BPCurrent bpskip3: cmpi.b #2,d3 ; Set Speed bne.s bpskip9 move.b d4,bpcount move.b d4,bpdelay bpskip9: cmpi.b #3,d3 ; Filter = LED control bne.s bpskipa tst.b d4 bne.s bpskipb bset #1,$bfe001 bra.s bpskip2 bpskipb: bclr #1,$bfe001 bpskipa: cmpi.b #4,d3 ; PortUp bne.s noportup sub.w d4,(a1) ; Slide data in BPCurrent clr.b 11(a1) ; Arpeggio's uit noportup: cmpi.b #5,d3 ; PortDown bne.s noportdn add.w d4,(a1) ; Slide down clr.b 11(a1) noportdn: cmpi.b #6,d3 ; SetRepCount bne.s notopt6 move.b d4,bprepcount notopt6: cmpi.b #7,d3 ; DBRA repcount bne.s notopt7 subq.b #1,bprepcount beq.s notopt7 move.w d4,bpstep notopt7: cmpi.b #8,d3 ;Set AutoSlide bne.s notopt8 move.b d4,12(a1) notopt8: cmpi.b #9,d3 ;Set AutoArpeggio bne.s notopt9 move.b d4,13(a1) notopt9: bpskip2: lea $10(a3),a3 lea $20(a1),a1 asl.w #1,d7 dbra d0,bploop3 addq.b #3,bppatcount cmpi.b #48,bppatcount bne.s bpskip8 move.b #0,bppatcount addq.w #1,bpstep lea bpsong(pc),a0 move.w 30(a0),d1 cmp.w bpstep,d1 bne.s bpskip8 move.w #0,bpstep bpskip8: rts bpplayit: bclr #15,(a2) tst.l (a5) ;Was EG used beq.s noeg1 ;No ?? moveq #0,d3 ;Well then copy move.l (a5),a4 ;Old waveform back moveq #7,d7 ;to waveform tables eg1loop: move.l 4(a5,d3.w),(a4)+ ;Copy... addq.w #4,d3 ;Copy... dbra d7,eg1loop ;Copy... noeg1: move.w (a2),6(a1) ;Period from bpcurrent moveq #0,d7 move.b 3(a2),d7 ;Instrument number move.l d7,d6 ;Also in d6 lsl.l #5,d7 ;Header offset lea bpsong(pc),a3 cmpi.b #$ff,(a3,d7.w) ;Is synthetic beq.s bpplaysynthetic ;Yes ?? clr.l (a5) ;EG Off clr.b $1a(a2) ;Synthetic mode off clr.w $1e(a2) ;Lfo Off add.l #24,d7 ;24 is name->ignore lsl.l #2,d6 ;x4 for sample offset move.l #samples,a4 move.l -4(a4,d6),d4 ;Fetch sample pointer beq.s bp_nosamp ;is zero->no sample move.l d4,(a1) ;Sample pointer in hardware move.w (a3,d7),4(a1) ;length in hardware move.b 2(a2),9(a1) ;and volume from bpcurrent cmpi.b #$ff,2(a2) ;Use default volume bne.s skipxx ;No ?? move.w 6(a3,d7),8(a1) ;Default volume in hardware skipxx: move.w 4(a3,d7),8(a2) ;Length in bpcurrent moveq #0,d6 move.w 2(a3,d7),d6 ;Calculate repeat add.l d6,d4 move.l d4,4(a2) ;sample start in bpcurrent cmpi.w #1,8(a2) ;has sample repeat part bne.s bpskip6 ;Yes ?? bp_nosamp: move.l #null,4(a2) ;Play no sample bra.s bpskip10 bpskip6: move.w 8(a2),4(a1) ;Length to hardware move.l 4(a2),(a1) ;pointer to hardware bpskip10: or.w #$8000,d1 ;Turn on DMA for this voice move.w d1,$dff096 ;Yeah, do it rts bpplaysynthetic:move.b #$1,$1a(a2) ;Synthetic mode on clr.w $e(a2) ;EG Pointer restart clr.w $10(a2) ;LFO Pointer restart clr.w $12(a2) ;ADSR Pointer restart move.w 22(a3,d7.w),$14(a2) ;EG Delay addq.w #1,$14(a2) ;0 is nodelay move.w 14(a3,d7.w),$16(a2) ;LFO Delay addq.w #1,$16(a2) ;So I need correction move.w #1,$18(a2) ;ADSR Delay->Start immediate move.b 17(a3,d7.w),$1d(a2) ;EG OOC move.b 9(a3,d7.w),$1e(a2) ;LFO OOC move.b 4(a3,d7.w),$1f(a2) ;ADSR OOC move.b 19(a3,d7.w),$1c(a2) ;Current EG Value move.l tables,a4 ; so far so good,now what ?? moveq #0,d3 ;Pointer to waveform tables move.b 1(a3,d7.w),d3 ;Which waveform lsl.l #6,d3 ;x64 is length waveform table add.l d3,a4 move.l a4,(a1) ;Sample Pointer move.l a4,4(a2) ;In bpcurrent move.w 2(a3,d7.w),4(a1) ;Length in words move.w 2(a3,d7.w),8(a2) ;Length in bpcurrent tst.b 4(a3,d7.w) ;Is ADSR on beq.s bpadsroff ;No ?? move.l tables,a4 ;Tables moveq #0,d3 move.b 5(a3,d7.w),d3 ;ADSR table number lsl.l #6,d3 ;x64 for length add.l d3,a4 ;Add it moveq #0,d3 move.b (a4),d3 ;Get table value add.b #128,d3 ;I want it from 0..255 lsr.w #2,d3 ;Divide by 4->0..63 cmpi.b #$ff,2(a2) bne.s bpskip99 move.b 25(a3,d7.w),2(a2) bpskip99: moveq #0,d4 move.b 2(a2),d4 ;Default volume mulu d4,d3 ;default maal init volume lsr.w #6,d3 ;divide by 64 move.w d3,8(a1) ;is new volume bra.s bpflipper bpadsroff: move.b 2(a2),9(a1) cmpi.b #$ff,2(a2) bne.s bpflipper ;No ADSR move.b 25(a3,d7.w),9(a1) ;So use default volume bpflipper: move.l 4(a2),a4 ;Pointer on waveform move.l a4,(a5) ;Save it moveq #0,d3 ;Save Old waveform moveq #7,d4 ;data in bpbuffer eg2loop: move.l (a4,d3.w),4(a5,d3.w) addq.w #4,d3 ;Copy dbra d4,eg2loop tst.b 17(a3,d7.w) ;EG off beq bpskip10 ;Yes ?? tst.b 19(a3,d7.w) ;Is there an init value for EG beq bpskip10 ;No ?? moveq #0,d3 move.b 19(a3,d7.w),d3 lsr.l #3,d3 ;Divide by 8 ->0..31 move.b d3,$1c(a2) ;Current EG Value subq.l #1,d3 ;-1,DBRA correction eg3loop: neg.b (a4)+ dbra d3,eg3loop bra bpskip10 bpplayarp: lea bpper(pc),a4 ext.w d4 asl.w #1,d4 move.w -2(a4,d4.w),6(a1) rts bpsynth: move.l #3,d0 lea bpcurrent(pc),a2 lea $dff0a0,a1 lea bpsong(pc),a3 lea bpbuffer(pc),a5 bpsynthloop: tst.b $1a(a2) ;Is synthetic sound beq.s bpnosynth ;No ?? bsr.s bpyessynth ;Yes bpnosynth: lea $24(a5),a5 lea $20(a2),a2 lea $10(a1),a1 dbra d0,bpsynthloop rts bpyessynth: moveq #0,d7 move.b 3(a2),d7 ;Which instr. was I playing lsl.w #5,d7 ;x32, is length of instr. tst.b $1f(a2) ;ADSR off beq.s bpendadsr ;Yes ?? subq.w #1,$18(a2) ;Delay,May I bne.s bpendadsr ;No ?? moveq #0,d3 move.b 8(a3,d7.w),d3 move.w d3,$18(a2) ;Reset Delay Counter move.l tables,a4 move.b 5(a3,d7.w),d3 ;Which ADSR table lsl.l #6,d3 ;x64 add.l d3,a4 ;This is my table move.w $12(a2),d3 ;Get ADSR table pointer moveq #0,d4 move.b (a4,d3.w),d4 ;Value from table add.b #128,d4 ;Want it from 0..255 lsr.w #2,d4 ;And now from 0..63 moveq #0,d3 move.b 2(a2),d3 ;Current Volume mulu d3,d4 ;MultiPly with table volume lsr.w #6,d4 ;Divide by 64=New volume move.w d4,8(a1) ;Volume in hardware addq.w #1,$12(a2) ;Increment of ADSR pointer move.w 6(a3,d7.w),d4 ;Length of adsr table cmp.w $12(a2),d4 ;End of table reached bne.s bpendadsr ;No ?? clr.w $12(a2) ;Clear ADSR Pointer cmpi.b #1,$1f(a2) ;Once bne.s bpendadsr ;No ?? clr.b $1f(a2) ;ADSR off bpendadsr: tst.b $1e(a2) ;LFO On beq.s bpendlfo ;No ?? subq.w #1,$16(a2) ;LFO delay,May I bne.s bpendlfo ;No moveq #0,d3 move.b 16(a3,d7.w),d3 move.w d3,$16(a2) ;Set LFO Count move.l tables,a4 move.b 10(a3,d7.w),d3 ;Which LFO table lsl.l #6,d3 ;x64 add.l d3,a4 move.w $10(a2),d3 ;LFO pointer moveq #0,d4 move.b (a4,d3.w),d4 ;That's my value ext.w d4 ;Make it a word ext.l d4 ;And a longword moveq #0,d5 move.b 11(a3,d7.w),d5 ;LFO depth tst.b d5 beq.s bpnotx divs d5,d4 ;Calculate it bpnotx: move.w (a2),d5 ;Period add.w d4,d5 ;New Period move.w d5,6(a1) ;In hardware addq.w #1,$10(a2) ;Next position move.w 12(a3,d7.w),d3 ;LFO table Length cmp.w $10(a2),d3 ;End Reached bne.s bpendlfo ;NO ?? clr.w $10(a2) ;Reset LFO Pointer cmpi.b #1,$1e(a2) ;Once LFO bne.s bpendlfo ;NO ?? clr.b $1e(a2) ;LFO Off bpendlfo: tst.b $1d(a2) ;EG On beq bpendeg ;No ?? subq.w #1,$14(a2) ;EG delay,May I bne bpendeg ;No tst.l (a5) beq.s bpendeg moveq #0,d3 move.b 24(a3,d7.w),d3 move.w d3,$14(a2) ;Set EG Count move.l tables,a4 move.b 18(a3,d7.w),d3 ;Which EG table lsl.l #6,d3 ;x64 add.l d3,a4 move.w $e(a2),d3 ;EG pointer moveq #0,d4 move.b (a4,d3.w),d4 ;That's my value move.l (a5),a4 ;Pointer to waveform add.b #128,d4 ;0..255 lsr.l #3,d4 ;0..31 moveq #0,d3 move.b $1c(a2),d3 ;Old EG Value move.b d4,$1c(a2) add.l d3,a4 ;WaveForm Position move.l a5,a6 ;Buffer add.l d3,a6 ;Position addq.l #4,a6 ;For adress in buffer cmp.b d3,d4 ;Compare old with new value beq.s bpnexteg ;no change ?? bgt bpishigh ;new value is higher bpislow: sub.l d4,d3 ;oldvalue-newvalue subq.l #1,d3 ;Correction for DBRA bpegloop1a: move.b -(a6),d4 move.b d4,-(a4) dbra d3,bpegloop1a bra.s bpnexteg bpishigh: sub.l d3,d4 ;Newvalue-oldvalue subq.l #1,d4 ;Correction for DBRA bpegloop1b: move.b (a6)+,d3 neg.b d3 move.b d3,(a4)+ ;DoIt dbra d4,bpegloop1b bpnexteg: addq.w #1,$e(a2) ;Next position move.w 20(a3,d7.w),d3 ;EG table Length cmp.w $e(a2),d3 ;End Reached bne.s bpendeg ;NO ?? clr.w $e(a2) ;Reset EG Pointer cmpi.b #1,$1d(a2) ;Once EG bne.s bpendeg ;NO ?? clr.b $1d(a2) ;EG Off bpendeg: rts null: dc.w 0 bpcurrent: dc.w 0,0 ;periode,instrument =(volume.b,instr nr.b) dc.l null ;start dc.w 1 ;length (words) dc.b 0,0,0,0 ;noot,arpeggio,autoslide,autoarpeggio dc.w 0,0,0 ;EG,LFO,ADSR pointers dc.w 0,0,0 ;EG,LFO,ADSR count dc.b 0,0 ;Synthetic yes/no, Volume Slide dc.b 0,0 ;Current EG value,EG OOC dc.b 0,0 ;LFO OOC,ADSR OOC dc.w 0,0 dc.l null dc.w 1,0,0 dc.w 0,0,0,0,0,0,0,0,0 dc.w 0,0 dc.l null dc.w 1,0,0 dc.w 0,0,0,0,0,0,0,0,0 dc.w 0,0 dc.l null dc.w 1,0,0 dc.w 0,0,0,0,0,0,0,0,0 bpstep: dc.w 0 bppatcount: dc.b 0 St: dc.b 0 tr: dc.b 0 bpcount: dc.b 1 bpdelay: dc.b 6 arpcount: dc.b 1 bprepcount: dc.b 1 numtables: dc.b 0 even dma: dc.w 0 tables: dc.l 0 bpbuffer: blk.b 144,0 dc.w 6848,6464,6080,5760,5440,5120,4832,4576,4320,4064,3840,3616 dc.w 3424,3232,3040,2880,2720,2560,2416,2288,2160,2032,1920,1808 dc.w 1712,1616,1520,1440,1360,1280,1208,1144,1080,1016,0960,0904 bpper: dc.w 0856,0808,0760,0720,0680,0640,0604,0572,0540,0508,0480,0452 dc.w 0428,0404,0380,0360,0340,0320,0302,0286,0270,0254,0240,0226 dc.w 0214,0202,0190,0180,0170,0160,0151,0143,0135,0127,0120,0113 dc.w 0107,0101,0095,0090,0085,0080,0076,0072,0068,0064,0060,0057 samples: blk.l 15,0 ;--------------------------------------------------------------- RESTORE_ALL: MOVE.L SAVEIRQ,$6C MOVE.W #$7FFF,$DFF09A MOVE.W SAVEINT,$DFF09A MOVE.W #$7FFF,$DFF096 MOVE.W SAVEDMA,$DFF096 MOVE.L $00000004,A6 LEA NAME,A1 MOVEQ #0,D0 JSR -552(A6) MOVE.L D0,A0 MOVE.L 38(A0),$DFF080 CLR.W $DFF088 MOVE.L D0,A1 JSR -414(A6) JSR -138(A6) RTS ;--------------------------------------------------------------- SAVEINT:DC.W 0 SAVEDMA:DC.W 0 SAVEIRQ:DC.L 0 NAME:DC.B "graphics.library",0 EVEN ;---------------------------------------------------------------- ; ** ; ** CARACTERS AVAILABLE : ; ** ; ** ' , . : ( ) " " - ? ! ; ** ; ** ACCEPTE MINUSCULES ET MAJUSCULES ... ; ** ; ** VITESSE : ¹ ² ³ ¢ ¼ = [ALT] + [1] OU [2] ...... [5] ; ** ; ** PAUSE : ½ = [ALT] + [6] ; ** ; ** AND MUST BE FINISHED BY $FF,$FF ; ** ;---------------------------------------------------------------- TEXTE: DC.B "¼ YANKEES! ½ PROUDLY PRESENTS ½ ¼ ¢ ³ ² " DC.B "THE VERSION 3.5 OF THIS SHORT INTRO!!!!! ² ³ ........" DC.B "......." DC.B " YOU KNOW WHAT!? .... I LOVE THIS KOOL INTRO! YO!....." DC.B " I'M HAPPY! YES! COZ I GOT 12/20 (A L'ORAL DE FRANCHECH!!! " DC.B " YO!) ..... EH! LES MECS! JE PASSE EN TA2 (TERMINALE A2!!" DC.B " C'EST POUR LES LITTERAIRES! OUI MON CHER! STILL YO!) " DC.B " ¹ HA! ² HE! ³ HO! ¢ HI! ¼ YO!! ½ " DC.B "³ KILEBO! LE LAVABO!!!!!!!! YO!!! ......... LATER!..... " DC.B $FF,$FF EVEN ;--------------------------------------------------------------- TEXTE1: DC.B "¼ -THE HANDSHAKES- ½ ¼ ¢ ³ ² SUM YO'S TO THOSE FELLOWZ! " DC.B ": ³- HAWK (ORIENS,JOHNNY B, ARAGORN) - PARADOX (INTOX, KICKMAN)" DC.B " - STINGER/TRANSCOM - DRAGONS (CORSAIR,MR.VIDEO) - [NAF.WOLF] -" DC.B " G.SVR/SQUADRON - NICK/EUROPE - VIDEOKID/ICE CREW -" DC.B " LONE/IRIS ... AND MY PALS IN YKS (POWER,HAZE,BOCADERF!?,MAGN" DC.B "UM,WILDHAWK!?) ... ALSO DRUNK AND GENIUS!!! ....... CUL8R!" DC.B " " DC.B $FF,$FF EVEN ;--------------------------------------------------------------- TEXTE_CONS: DC.B " DINO! " ; 20 CARACTERES PAR DC.B " OF " ; LIGNE DC.B " --YANKEES!-- " ; SINON ..... DC.B " PROUDLY PRESENTS " DC.B "--------------------" DC.B "- INTRO V3.5! -" DC.B "-'GUESS IT'S COOL! -" DC.B "--------------------" DC.B " RELEASED: 11/06/90 " DC.B $FF,$FF EVEN ;--------------------------------------------------------------- ;--------------------------------------------------------------- ; DATAS COULEURS POUR LIGNES ET DECALAGES ;--------------------------------------------------------------- ;--------------------------------------------------------------- ; COULEURS SCROLL 1 ,RATSER DU HAUT ;--------------------------------------------------------------- D_COLOR: DC.W $0000,$0011,$0022,$0033,$0044,$0055,$0066 DC.W $0077,$0088,$0099,$00AA,$00BB,$00CC,$00EE DC.W $00FF,$00EE,$00CC,$00BB,$00AA,$0099,$0088 DC.W $0077,$0066,$0055,$0044,$0033,$0022,$0011 DC.W $FFFF ;--------------------------------------------------------------- ; COULEURS SCROLL 1 , RATSER DU BAS ;--------------------------------------------------------------- D_COLOR1: DC.W $0000,$0011,$0022,$0033,$0044,$0055,$0066 DC.W $0077,$0088,$0099,$00AA,$00BB,$00CC,$00EE DC.W $00FF,$00EE,$00CC,$00BB,$00AA,$0099,$0088 DC.W $0077,$0066,$0055,$0044,$0033,$0022,$0011 DC.W $FFFF ;--------------------------------------------------------------- ; COULEURS DU RASTER HAUT DU 2 EME SCROLL ;--------------------------------------------------------------- D_COLOR2: DC.W $0000,$0111,$0222,$0333,$0444,$0555,$0666 DC.W $0777,$0888,$0999,$0AAA,$0BBB,$0CCC,$0EEE DC.W $0FFF,$0EEE,$0CCC,$0BBB,$0AAA,$0999,$0888 DC.W $0777,$0666,$0555,$0444,$0333,$0222,$0111 DC.W $FFFF ;--------------------------------------------------------------- ; COULEURS DU RASTER BAS DU 2 EME SCROLL ;--------------------------------------------------------------- D_COLOR3: DC.W $0000,$0111,$0222,$0333,$0444,$0555,$0666 DC.W $0777,$0888,$0999,$0AAA,$0BBB,$0CCC,$0EEE DC.W $0FFF,$0EEE,$0CCC,$0BBB,$0AAA,$0999,$0888 DC.W $0777,$0666,$0555,$0444,$0333,$0222,$0111 DC.W $FFFF ;--------------------------------------------------------------- ; SCROOL DE COULEURS POUR LE TEXTE CENTRAL. ;--------------------------------------------------------------- D_COLORC: BLK.B 2468 DC.W $FFFF ;--------------------------------------------------------------- ; DECALAGE POUR TEXTE CENTRAL. ;--------------------------------------------------------------- D_COLORD: ; DC.W 0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, ; DC.W 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1 ; DC.W 2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2 ; DC.W 1,1,1,1,1,0,0,0,0,0,1,1,1,1,2,2,2,3,3,2,2,2,1,1,1,1 ; DC.W 0,1,2,3,4,5,6,7 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8 DC.W 7,6,5,4,3,2,1,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 DC.W 14,13,12,11,10,9,8,7,6,5,4,3,2,1 DC.W 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8 DC.W 7,6,5,4,3,2,1,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 DC.W 14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,4,3,2,1,0 ; DC.W $7,$7,$7,$8,$8,$8,$8,$8,$8,$8,$9,$9,$9,$A,$A,$B,$B,$C,$C ; DC.W $C,$D,$D,$E,$E,$E,$E,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F ; DC.W $F,$F,$F,$F,$F,$F,$E,$E,$E,$E,$D,$D,$C,$C,$B,$A,$A ; DC.W $9,$9,$9,$8,$8,$8,$8,$8,$7,$7,$7,$6 ; DC.W $6,$6,$6,$6,$6,$6,$6,$6,$6,$6,$6,$6,$6,$7,$7,$7,$7,$8,$8 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8 DC.W 7,6,5,4,3,2,1,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 DC.W 14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,4,3,2,1,0 DC.W $FFFF ;--------------------------------------------------------------- ; TAMPON OU TOUTE LES VALEURS SONT SCROLLEES. ;--------------------------------------------------------------- T_COLOR:BLK.W 24,0 T_COLOR1:BLK.W 24,0 T_COLOR2:BLK.W 24,0 T_COLOR3:BLK.W 24,0 T_COLORC:BLK.W 480,0 T_COLORD:BLK.W 480,0 ;--------------------------------------------------------------- ; DEBUT DE LA COPPER LIST ;--------------------------------------------------------------- COPP: DC.L $01006600,$01020000,$01800000,$0182000F,$01920FFF ;--------------------------------------------------------------- ; POINTEUR PLAYFIELD 1 SUR VIDE DC.L $00E00004,$00E2C000,$00E80004,$00EAC000,$00F00004,$00F2C000 ;--------------------------------------------------------------- DC.L $0301FFFE P1: DC.L $00E40004,$00E6C000 ;PLANS RESERVE POUR LOGO P2: DC.L $00EC0004,$00EEC000 ;2EME PLAYFIELD P3: DC.L $00F40004,$00F6C000 ; ;--------------------------------------------------------------- DC.L $2735FFFE COLOR: DC.L $01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000 ;--------------------------------------------------------------- LIGNE1: DC.L $2801FFFE,$0182000F,$00E00004,$00E20000 DEC1: DC.L $01020000,$01040040 DC.L $2A01FFFE,$01820999 DC.L $2C01FFFE,$01820aaa DC.L $2E01FFFE,$01820bbb DC.L $3001FFFE,$01820ccc DC.L $3201FFFE,$01820ddd DC.L $3401FFFE,$01820eee DC.L $3601FFFE,$01820fff ;--------------------------------------------------------------- DC.L $3A35FFFE COLOR1: DC.L $01800000,$01800000,$01800000,$01800000,$1800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000 ;--------------------------------------------------------------- ; POINTEUR PLAYFIELD 1 SUR VIDE DC.L $3935FFFE,$00E00004,$00E2C000,$00E80004,$00EAC000,$00F00004,$00F2C000 ;--------------------------------------------------------------- ; POINTEUR PLAYFIELD 1 SUR TEXTE CENTRALE (PLAN 1) DC.L $4935FFFE,$00E00004,$00E24F1A,$01820000 ;--------------------------------------------------------------- DEG: BLK.B $84C,0 ; COPPER CONSTRUITE ;--------------------------------------------------------------- DC.L $FFE1FFFE DC.L $FFF0FFFE ; WAIT OF 2ND PART OF SCREEN ;--------------------------------------------------------------- DC.L $0B35FFFE COLOR2: DC.L $01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000 ;--------------------------------------------------------------- LIGNE2: DC.L $0D01FFFE,$01820008,$00E00004,$00E2102E DEC2: DC.L $01020000,$01040088 DC.L $0F01FFFE,$01820099 DC.L $1101FFFE,$018200aa DC.L $1301FFFE,$018200bb DC.L $1501FFFE,$018200cc DC.L $1701FFFE,$018200dd DC.L $1901FFFE,$018200ee ;--------------------------------------------------------------- DC.L $1F35FFFE COLOR3: DC.L $01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000,$01800000 DC.L $01800000,$01800000,$01800000,$01800000,$01800000 ;--------------------------------------------------------------- ; SIGNATURE OF THE MASTER !!! ( EHEH DON'T TRY TO REMOVE !) ;--------------------------------------------------------------- DC.L $21E1FFFE,$018E0000,$00E40004,$00E6FF00,$00EC0004,$00EED000,$00F40004,$00F6D000,$01920004 DC.L $22E1FFFE,$01920606,$23E1FFFE,$01920808 DC.L $24E1FFFE,$01920B0B,$25E1FFFE,$01920D0D DC.L $26E1FFFE,$01920B0B,$27E1FFFE,$01920808 DC.L $28E1FFFE,$01920606,$29E1FFFE,$01920404 ;--------------------------------------------------------------- DC.L $009C8010,$FFFFFFFE ; END COPPER ;--------------------------------------------------------------- CODETABLE: DC.B "A",0,"B",1,"C",2,"D",3,"E",4,"F",5,"G",6,"H",7,"I",8 DC.B "J",9,"K",10,"L",11,"M",12,"N",13,"O",14,"P",15,"Q",16 DC.B "R",17,"S",18,"T",19,"U",20,"V",21,"W",22,"X",23,"Y",24,"Z",25 DC.B "A",0,"B",1,"C",2,"D",3,"E",4,"F",5,"G",6,"H",7,"I",8 DC.B "J",9,"K",10,"L",11,"M",12,"N",13,"O",14,"P",15,"Q",16 DC.B "R",17,"S",18,"T",19,"U",20,"V",21,"W",22,"X",23,"Y",24,"Z",25 DC.B "0",26,"1",27,"2",28,"3",29,"4",30,"5",31,"6",32,"7",33,"8",34 DC.B "9",35,",",36,"'",37,".",38,":",39,"(",40,")",41,"[",42,"]",43 DC.B "?",44,"!",45,"/",46,"-",47," ",48 DC.B "¹",$A1,"²",$A2,"³",$A3,"¢",$A4,"¼",$A5,"½",$A6 DC.B 255,255 EVEN ADDRESSE: DC.W 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,640,642,644,646,648,650,652,654,656,658,660,662,664,666 DC.W 668,670,672,674,676,678,1280,1282,1284,1286,1288,1290,1292,1294,1296,1300,1302 DC.W 1304,1306,1308,1310,1312,1314,1318 EVEN ;---------------------------------------------------------------- DATA: O: ;BLK.B 280 POL=O+280 ;:BLK.B 1960 BPSONG=POL+1960 ;:BLK.B 42000,0 ;TAILLE DU MODULE DATA2=BPSONG+9000 DATA1=BPSONG+11920 ;---------------------------------------------------------------- ; POLICE + SIGNATURE DU CHEF CODER ! HIHI ;---------------------------------------------------------------- >EXTERN "DF0:COL",D_COLORC >EXTERN "DF0:G/O",O >EXTERN "DF0:G/OK3",POL ;----------------------------------------------------------------