LST OFF ORG $6000 ******************************** * * * INTRO MURYADEN 1 * * (C)1989 BYTLEJUICE * * SOURCE BY DECKARD * * * ******************************** * Page 0 CPT_LIG EQU $0F ; compteur ligne Hires GBASL EQU $26 ; pointeur {cran calcul{ par HPOSN GBASH EQU $27 PTR_DATA EQU $3C ; pointeur datas {cran HPAG EQU $E6 ; $20=page 1 / $40 = page 2 CPT_LIG2 EQU $FE ; compteur ligne Hires CPT_COL EQU $FF ; compteur byte colonne Hires * Point d'entr{e = START_INTRO ($6270) CPT_ANIM_M EQU $0800 ; compteur mvt anim Muryaden H0800 EQU $0800 ; relocate : destination H1C00 EQU $1C00 ; relocate : fin destination+1 SCROLL EQU $0801 ; scroll message Deckard PLAY_ED EQU $1000 ; player Electric Duet UNPACK EQU $9000 CMP_PAG = UNPACK+$0B LDA_PAG = UNPACK+$0F H9600 EQU $9600 ; relocate : source RDOS EQU $BE00 * Images ou morceaux d'images compress{s PAK_AUTEURS EQU $6760 ; image auteurs (AUTEURS packed) PAK_IMG2 EQU $6E50 ; image monstre en extase (IMG2 packed) PAK_IMG1 EQU $8000 ; image monstre d{but (IMG1 packed) PAK_MVT1 EQU $8B2D ; mouvement 1 Muryaden (MVT1 packed) PAK_MVT2 EQU $8C19 ; mouvement 2 Muryaden (MVT2 packed) PAK_MVT3 EQU $8CEB ; mouvement 3 Muryaden (MVT3 packed) PAK_MVT4 EQU $8DB6 ; mouvement 4 Muryaden (MVT4 packed) PAK_MVT5 EQU $8E71 ; mouvement 5 Muryaden (MVT5 packed) PAK_VISAGE1 EQU $8F5D ; mouvement 1 visage (VISAGE1 packed) PAK_VISAGE2 EQU $8F89 ; mouvement 2 visage (VISAGE2 packed) * ROM STROBE EQU $C010 SPKR EQU $C030 TXTCLR EQU $C050 LOWSCR EQU $C054 HISCR EQU $C055 HIRES EQU $C057 HF3F2 EQU $F3F2 HPOSN EQU $F411 SETTXT EQU $FB39 HOME EQU $FC58 WAIT EQU $FCA8 *------------------------------- * 1er {cran : anim et musique * avec Muryaden et le monstre *------------------------------- PART1 LDA #PAK_IMG1 STA PTR_DATA+1 JSR UNPACK BIT TXTCLR BIT HISCR BIT HIRES JSR PREP_ECRAN1 ; {cran vert + affichage monstre JSR PLAY_ED ; musique avec anim Muryaden et monstre RTS DS 3,0 *------------------------------- * S{quence des animations * pendant la musique ED *------------------------------- ANIM1 LDA CPT_ANIM_M ; s{quence suivante INC CPT_ANIM_M CMP #9 ; derni}re valeur? BEQ H6061 ; oui CMP #1 BNE H602F JSR DO_MVT1 H602F CMP #2 BNE H6036 JSR DO_MVT2 H6036 CMP #3 BNE H603D JSR DO_MVT3 H603D CMP #4 BNE H6044 JSR DO_MVT4 H6044 CMP #5 BNE H604B JSR DO_MVT3 H604B CMP #6 BNE H6052 JSR DO_VISAGE1 ; anim visage monstre H6052 CMP #7 BNE H6059 JSR DO_MVT2 H6059 CMP #8 BNE H6060 JSR DO_MVT5 H6060 RTS H6061 JSR DO_VISAGE2 ; anim visage monstre LDA #0 ; init compteur anim Muryaden STA CPT_ANIM_M RTS *------------------------------- DS 22,$EA ; NOP *------------------------------- * Liste des anims sur IMG1 *------------------------------- DO_MVT1 LDA #PAK_MVT1 STA PTR_DATA+1 JSR UNPACK RTS DO_MVT2 LDA #PAK_MVT2 STA PTR_DATA+1 JSR UNPACK RTS DO_MVT3 LDA #PAK_MVT3 STA PTR_DATA+1 JSR UNPACK RTS DO_MVT4 LDA #PAK_MVT4 STA PTR_DATA+1 JSR UNPACK RTS DO_MVT5 LDA #PAK_MVT5 STA PTR_DATA+1 JSR UNPACK RTS DO_VISAGE1 LDA #PAK_VISAGE1 STA PTR_DATA+1 JSR UNPACK RTS DO_VISAGE2 LDA #PAK_VISAGE2 STA PTR_DATA+1 JSR UNPACK RTS DFB 0 *------------------------------- * Pr{paration {cran pour anim 1 *------------------------------- PREP_ECRAN1 JSR ECRAN_VERT JSR DSP_MONSTRE ; affichage monstre + muryaden LDA #0 ; init anim Muryaden STA CPT_ANIM_M RTS *------------------------------- DS 15,0 *------------------------------- * Rempli {cran HGR2 avec masque * vert et blanc *------------------------------- ECRAN_VERT LDA #$40 ; HGR2 STA HPAG NOP NOP NOP LDA #0 STA CPT_LIG LDA CPT_LIG H60FD LDY #0 LDX #0 JSR HPOSN ; positionne sur ligne courante LDY #0 ; affiche ligne verte sur l'{cran H6106 LDA LIGNE_VERTE,Y STA (GBASL),Y INY CPY #40 ; dernier octet de la ligne fini? BNE H6106 ; non JSR SON_SCRN_VERT ; bruitage {cran vert INC CPT_LIG LDA CPT_LIG CMP #192 ; derni}re ligne? BNE H60FD ; non RTS *------------------------------- * Bruitage {cran vert *------------------------------- SON_SCRN_VERT LDA CPT_LIG ADC #$30 TAX H6121 STA SPKR DEX BNE H6121 RTS *------------------------------- DS 4,0 *------------------------------- * Son sur l'extase du monstre *------------------------------- SOUND_MONS LDX #$FF STX H6185+1 LDA #$01 STA H6185 H6136 LDA #$30 STA $F0 H613A LDX H6185+1 H613D DEX BNE H613D BIT SPKR LDX H6185 H6146 DEX BNE H6146 BIT SPKR DEC $F0 BNE H613A DEC H6185+1 INC H6185 LDA H6185 CMP #$1B BNE H6136 H615D LDA #$30 STA $F0 H6161 LDX H6185+1 H6164 DEX BNE H6164 BIT SPKR LDX H6185 H616D DEX BNE H616D BIT SPKR DEC $F0 BNE H6161 DEC H6185 INC H6185+1 LDA H6185 CMP #$00 BNE H615D RTS *------------------------------- H6185 HEX 0000 ; octets pour son *------------------------------- HEX 8A48180000 ; not used *------------------------------- * 40 octets pour la ligne verte * et blanche *------------------------------- LIGNE_VERTE HEX 3E572B576A552A75 HEX 2A552A553A552A55 HEX 2A552A552B552A55 HEX 2A552A5D2A552A55 HEX 2E552A576A556B7D HEX 000000000000 ; not used *------------------------------- * Affichage monstre + Muryaden * sur HGR2 apr}s {cran vert. * Affichage de haut en bas avec * bruitage *------------------------------- DSP_MONSTRE LDA #0 ; commence en haut @ gauche STA CPT_LIG2 STA CPT_COL LDA #$20 ; HGR1 STA HPAG H61C4 JSR POS_LIG ; positionne sur ligne courante H61C7 LDA (GBASL),Y ; lecture octet HGR1 BIT SPKR TAX LDA GBASH STA $FD ; sauve adr HGR1 CLC ADC #$20 STA GBASH ; pointe maintenant sur HGR2 TXA LDY CPT_COL STA (GBASL),Y ; {criture sur HGR2 LDA $FD ; repart sur HGR1 STA GBASH INC CPT_COL ; colonne suivante LDA CPT_COL CMP #40 ; ligne termin{e? BEQ H61EC ; oui LDY CPT_COL ; colonne suivante de la ligne courante JMP H61C7 H61EC INC CPT_LIG2 ; ligne suivante LDA CPT_LIG2 CMP #192 ; derni}re ligne? BEQ H6205 ; oui => fin LDX #0 ; positionne sur 1}re colonne STX CPT_COL JMP H61C4 *------------------------------- * Positionne sur ligne $FE *------------------------------- POS_LIG LDA CPT_LIG2 LDX #0 LDY #0 JSR HPOSN RTS H6205 RTS *------------------------------- DS 10,0 *------------------------------- * S{quence des {crans *------------------------------- RUN_INTRO JSR PART1 ; anim Muryaden et le monstre LDA #PAK_IMG2 STA PTR_DATA+1 LDA #$40 STA CMP_PAG STA LDA_PAG JSR UNPACK BIT HISCR JSR SOUND_MONS ; son extase LDX #$F0 ; tempo H622E JSR WAIT INX BNE H622E LDA #$20 STA CMP_PAG STA LDA_PAG LDA #PAK_AUTEURS STA PTR_DATA+1 JSR UNPACK BIT LOWSCR *------------------------------- * Vide {cran HGR2 *------------------------------- CLR_HGR2 LDX #0 H624C LDA #0 H624E STA $4000,X INX BNE H624C INC H624E+2 LDA H624E+2 CMP #>$6000 BNE CLR_HGR2 *------------------------------- * Lance la suite *------------------------------- BIT STROBE JSR SCROLL ; smooth scroll HGR JSR HOME JSR SETTXT LDX #$60 JMP RDOS ; lance la suite NOP *------------------------------- * Recopie $9600-$A9FF vers * $0800-$1BFF *------------------------------- * Point d'entr{e de l'introduction Muryaden 1 START_INTRO LDX #$00 :1 LDA H9600,X :2 STA H0800,X INX BNE :1 INC :1+2 INC :2+2 LDA :2+2 CMP #>H1C00 BNE START_INTRO * Pr{paration {cran LDA #$20 ; efface HGR1 STA HPAG JSR HF3F2 LDA #$40 ; efface HGR2 STA HPAG JSR HF3F2 LDA #$A0 STA $DC JMP RUN_INTRO *------------------------------- * Not used *------------------------------- DS 47,0 JSR PLAY_ED RTS DS $490,0 SAV B6000.675F