LST OFF ORG $1000 ******************************** * * * Anim 1 pour Muryaden II * * (c)1991 LoGo * * Source par Deckard (2013) * * * ******************************** * Ressources P1 EQU $4000 ; image Extasie compress{e M1 EQU $7000 ; musique Electric Duet * Adresses ROM KEY EQU $C000 MAINWRT EQU $C004 AUXWRT EQU $C005 STROBE EQU $C010 RPAGE2 EQU $C01C SPKR EQU $C030 TXTCLR EQU $C050 TXTSET EQU $C051 MIXCLR EQU $C052 LOWSCR EQU $C054 HISCR EQU $C055 LORES EQU $C056 HIRES EQU $C057 *------------------------------- * Dhgr on STA $C001 ; 80STORE = 1 STA $C00D ; switch 80 colonnes STA MIXCLR ; full page STA LOWSCR ; page 1 STA HIRES ; mode graphique haute r{solution STA $C05E ; double hgr JSR EXTASIE : d{compresse l'image EXTASIE en m{moire JSR PLAY_ED ; musique Electric Duet et animation * Dhgr off STA $C05F ; double hgr off STA LORES STA LOWSCR STA TXTSET ; mode texte STA $C00C ; 40 colonnes STA KEY RTS *------------------------------- * Joue la musique Electric Duet * avec interruption pour anim * DHGR *------------------------------- PLAY_ED LDA #M1 STA $1F LDA #$01 STA $09 STA $1D PHA PHA PHA BNE PED_01 PED_02 INY LDA ($1E),Y STA $09 INY LDA ($1E),Y STA $1D PED_03 LDA $1E CLC ADC #$03 STA $1E BCC PED_01 INC $1F PED_01 LDY #0 LDA ($1E),Y CMP #$01 BEQ PED_02 BCS PED_04 PLA PLA PLA PED_05 LDX #$49 INY LDA ($1E),Y BNE PED_06 LDX #$C9 PED_06 BIT STROBE RTS PED_04 STA $08 JSR PED_05 STX PED_07 STA $06 LDX $09 PED_08 LSR DEX BNE PED_08 STA PED_10+1 JSR PED_05 STX PED_09 STA $07 LDX $1D PED_11 LSR DEX BNE PED_11 STA PED_12+1 JSR ANIM ; animation monstre sur {cran dhgr PLA TAY PLA TAX PLA BNE PED_13 PED_14 BIT SPKR PED_13 CMP #$00 BMI PED_16 NOP BPL PED_15 PED_16 BIT SPKR PED_15 STA $4E BIT KEY ; touche appuy{e? BMI PED_06 ; oui => arret DEY ; continue BNE PED_10 BEQ PED_17 PED_10 CPY #$36 BEQ PED_07 BNE PED_18 PED_17 LDY $06 PED_07 EOR #$40 PED_18 BIT $4E BVC PED_24 BVS PED_19 PED_19 BPL PED_20 NOP BMI PED_21 PED_24 NOP BMI PED_20 NOP BPL PED_21 PED_20 CMP SPKR PED_21 DEC $4F BNE PED_22 DEC $08 BNE PED_22 BVC PED_23 BIT SPKR PED_23 PHA TXA PHA TYA PHA JMP PED_03 PED_22 DEX BNE PED_12 BEQ PED_26 PED_12 CPX #$0C BEQ PED_09 BNE PED_27 PED_26 LDX $07 PED_09 EOR #$80 PED_27 BVS PED_14 NOP BVC PED_13 RTS *------------------------------- * Animation pendant musique ED *------------------------------- * Liste des windows: * 0 : MAIN.A.W * 1 : MAIN.B.W * 2 : BOUCHE.A.W * 3 : BOUCHE.B.W * 4 : HACHE.A.W * 5 : HACHE.B.W * * Cycle de s{quence des sprites: * * MAIN.A * MAIN.B + BOUCHE.A * MAIN.A * MAIN.B + BOUCHE.B + HACHE.A * MAIN.A * MAIN.B + BOUCHE.A * MAIN.A * MAIN.B + BOUCHE.B + HACHE.B ANIM LDA #$FC ; temporisation ok? BEQ H1104 ; oui, anim INC ANIM+1 ; suite attente RTS H1104 LDA #$FC ; fixe borne prochaine tempo STA ANIM+1 * Anim s{quence main monstre (MAIN.A / MAIN.B) H1109 LDA #0 ; position main en cours LDX #75 ; ligne LDY #0 ; colonne JSR DSP_WND ; affiche window INC H1109+1 ; anim suivante LDA H1109+1 ; a-t'on fini la main? CMP #2 BEQ H111D ; oui RTS * Anim s{quence bouche monstre (BOUCHE.A / BOUCHE.B) H111D LDA #0 ; repositionne sur MAIN.A STA H1109+1 H1122 LDA #2 ; position bouche en cours LDX #87 ; ligne LDY #5 ; colonne JSR DSP_WND ; affiche window INC H1122+1 ; anim suivante LDA H1122+1 ; a-t'on fini la bouche? CMP #4 BEQ H1136 ; oui RTS * Anim s{quence hache (HACHE.A / HACHE.B) H1136 LDA #2 ; repositionne sur BOUCHE.A STA H1122+1 H113B LDA #4 ; position hache en cours LDX #95 ; ligne LDY #10 ; colonne JSR DSP_WND ; affiche window INC H113B+1 ; anim suivante LDA H113B+1 ; a-t'on fini la hache? CMP #6 BEQ H114F ; oui RTS H114F LDA #4 ; positionne sur HACHE.A STA H113B+1 RTS *------------------------------- * Window displayer *------------------------------- * In : acc = sprite number [0,5] * X = num{ro ligne d{but * Y = num{ro colonne d{but DSP_WND STX H117D+1 STY H119B+1 TAX ; X=sprite number LDA TBL_SPRL,X ; pointeur lecture datas STA H119D+1 ; low LDA TBL_SPRH,X STA H119D+2 ; high LDA NBR_LIG,X ; nbr ligne+1 ADC H117D+1 ; ligne d{but STA H11C8+1 ; ligne borne fin LDA NBR_COL,X STA LAST_COL LDA H12C9,X ; mem aux/main STA H118E+1 H117D LDX #$FF ; index ligne H117F LDA DATALOW,X ; adresse {cran correspondante STA $FE LDA DATAHIGH,X STA $FF LDA #0 ; init compteur colonnes STA CPT_COL H118E LDA #0 ; switch sur la m{moire d{sir{e BNE H1198 STA HISCR JMP H119B H1198 STA LOWSCR H119B LDY #$FF ; index colonne H119D LDA $FFFF ; lecture d'un octet data STA ($FE),Y ; {criture {cran INC H119D+1 ; adr low data+1 lecture BNE H11AA INC H119D+2 ; adr high data+1 H11AA LDA CPT_COL CMP LAST_COL ; derni}re colonne? BEQ H11C7 ; oui INC CPT_COL LDA RPAGE2 BMI H11C1 INY STA HISCR JMP H119D H11C1 STA LOWSCR JMP H119D H11C7 INX ; ligne suivante H11C8 CPX #$FF ; ligne fin+1? BNE H117F ; non, pas encore fini RTS *------------------------------- * Unpack image format EXTASIE *------------------------------- EXTASIE STA TXTSET LDA #1 STA EXT_V01 STA KEY JSR EXT_01 LDA #0 STA EXT_V02 STA EXT_V03 STA EXT_V04 STA EXT_V01 JSR EXT_DECOMP ; exec unpack STA $C001 STA TXTCLR RTS *------------------------------- EXT_02 LDA #$00 STA EXT_V02 STA EXT_V03 STA EXT_V04 LDA #>P1+2 STA $09 LDA #P1+3 STA $19 LDA #H1500,#>H1600,#>H1940,#>H1980,#>H1700,#>H19B0 * Nombre de lignes+1 NBR_LIG DFB 32,32,7,7,40,40 * Nombre de colonnes NBR_COL DFB 6,6,3,3,12,12 * Affichage aux/main H12C9 DFB 0,0,1,1,0,0 *------------------------------- * Adresses {cran *------------------------------- DATALOW HEX 00000000000000008080808080808080 HEX 00000000000000008080808080808080 HEX 00000000000000008080808080808080 HEX 00000000000000008080808080808080 HEX 2828282828282828A8A8A8A8A8A8A8A8 HEX 2828282828282828A8A8A8A8A8A8A8A8 HEX 2828282828282828A8A8A8A8A8A8A8A8 HEX 2828282828282828A8A8A8A8A8A8A8A8 HEX 5050505050505050D0D0D0D0D0D0D0D0 HEX 5050505050505050D0D0D0D0D0D0D0D0 HEX 5050505050505050D0D0D0D0D0D0D0D0 HEX 5050505050505050D0D0D0D0D0D0D0D0 DATAHIGH HEX 2024282C3034383C2024282C3034383C HEX 2125292D3135393D2125292D3135393D HEX 22262A2E32363A3E22262A2E32363A3E HEX 23272B2F33373B3F23272B2F33373B3F HEX 2024282C3034383C2024282C3034383C HEX 2125292D3135393D2125292D3135393D HEX 22262A2E32363A3E22262A2E32363A3E HEX 23272B2F33373B3F23272B2F33373B3F HEX 2024282C3034383C2024282C3034383C HEX 2125292D3135393D2125292D3135393D HEX 22262A2E32363A3E22262A2E32363A3E HEX 23272B2F33373B3F23272B2F33373B3F ASC "LoGo for Deckard 01 09 91 " DS \,$FF *------------------------------- * Datas windows dhgr * Utilisation de Window-Maker * by LoGo * Module WM-DHGR pour la capture * Module A-DHGR pour l'affichage *------------------------------- * MAIN.A.W H1500 HEX A2C4A3E6CCD1AAA6C4A3E6CC91B3E0 HEX C4A3E6AC90B3A280A296AC84B3A284B3 HEX 96AC84B3A285B396AC84B3A685B396AC HEX 84B3AA84A0C48284A2A2C4B096A080B3 HEX E284B0968284B3A2D4B096E6848BAAC4 HEX B0B6E2848B8284A09482848BA6D4A097 HEX E2C4B0A285A0878284B3EAD4A087A080 HEX B3A2CCA0978684B3A2C8A097E684B3A6 HEX C8B094E684B3A2C8B096E684B3A2C8B1 HEX 96E684B3E288B094E684B3C08CA096A6 HEX 84A2C6C4B0B6E6848BC6C4B3B6E6C480 HEX C6C4B3B1E68C98C2C0B3B1E6CC98C2DC HEX B3B1E6CC98C2DCB3B1E6CC98C0DCA3B1 HEX E6CC98AE80A1B7E2CC99A0DCA3B7E6C4 HEX 99A29CA197E6CC89EEC9A387E2CC8000 DS \,0 * MAIN.B.W H1600 HEX A2C4A3E6CCD1AAA6C4A3E6CC91B3E0 HEX C08BE6CC91B382848AE6CC91B382848B HEX E1CC91B3A2858BE1CC91B3A6858BC1C8 HEX 91B38AC080E18C91A2828488E0CC91B3 HEX 828480E1CC91B382C499E1C291B38ACC HEX 98E1C291B382C480E1C291B386C49891 HEX CC91B3A2C180C1CC91B3EA8088C0CC91 HEX B3A2C09890CC91B3A2C09893CC91B3E6 HEX C09893CC91B3A2C09893CC91B3E2C098 HEX B3C291B382C088B3C291B3C0848893A2 HEX 9082C6C48BB3A69088C6C48BB3A6D080 HEX C6C48BB3E68498C2C0B3B1E6CC98C2DC HEX B3B1E6CC98C2DCB3B1E6CC98C0DCA3B1 HEX E6CC98AE80A197E2CC99A0DCA397E6C4 HEX 99A29CA197E6CC89EEC9A387E2CC8000 DS \,0 * HACHE.A.W H1700 HEX CC90B3E68C8DB2E6CC999AE4CCCC90 HEX B3E68C91B2E6CC99A2E4CC8891B3E6CC HEX 99B3E6CC99B3E6CCC890A2C48891A2C4 HEX 8891A2C488CC90B3E6CC99B3E6CC99B3 HEX E6CCCC90B3E6CC91B3E6CC99A3E6CCCC HEX 90B3E68C91B2E6CC99A2E4CCCC90B3E6 HEX 8C8DB2E6CC999AE4CCCC90B3E68C8DB2 HEX E6CC999AE4CCCC90B3E68C8DB2E6CC99 HEX 9AE4CCCC90B3E68C8DB2E6CC999AE4CC HEX C090B3E68C91B2E6CC99A2E4CCC290B3 HEX E6CC99B3868098B3E6CCC290B3E6CC99 HEX B3A8A581B3E6CCC290A2C48891C2AAA5 HEX 81A2C488E6DD93A7CE9CD5AAAA9DB9F2 HEX E4A69CB9F2E4C9D7AAAADD93A7CEA6DC HEX 93A7CE9CD5D2DA8AB9F2C4A2C4BBF2E4 HEX C9FBD2DACABBF7EEE6C4B8F7CEDCBBD5 HEX D5AA95F7E4E6CC88F7EEDDBBD5D5AAD5 HEX ADEEE2CC99F1E4C9ABADD5AAD5ADEEE2 HEX CC99F1CEDCABADD5AAD5ADEEAECC99F3 HEX EEDDAAF7D5AAEDF2EEAECC9993EEDDAA HEX F7D5AAEDF2EEEEC59993A2D4BAF7D5AA HEX EDF2EEEEDD98B3A6D4BAF7DEEA96F7EE HEX EEDD9BB3A6C5BBF7DEEA96F7EEEEDD8B HEX B3E6C4B8F7BEB795F7E4EEDDBBB1E6C4 HEX B8A7DEAAB9F7CEEEDDBB97AACCB8F7DE HEX CABBF7EEEEDDBBB7E2C4B8F7EEDDBBF7 HEX EEEEDDBB97AAC4B8F7EEDDBBF7EEE4DD HEX BB97A6C4BBF7EEDDBBF7EEE4DDBBD7A2 HEX C4BBF7EEDDBBF2EEEEDDBBD7AADCBBF7 HEX EEDDBBA7EEEEDDBBD5EEDDBBF7EEC9BB HEX F2EEEEDDBBD5EEDD93F7C4DCBBF7EEEE HEX DDABF5EEDDBBF7EEDDBBF7EEEEDDABF5 HEX EEDDBBF7EEDDBBF7EEEEDDABF7EEDDBB HEX F7EEDDBBF7EEEEDDABF7EEDDBBF7EEDD HEX 93F7EE00000000000000000000000000 HEX 00000000000000000000000000000000 HEX 00 * BOUCHE.A.W H1940 HEX B1E28088818280889180C0808180C0 HEX B090868C8081E28498B3A0C099B3868C HEX 98000000000000000000000000000000 HEX 00 DS 16,0 * BOUCHE.B.W H1980 HEX B1E28088818280889180CC8081E284 HEX B0B0A0C081B186CC99B3E6CC99B3E68C HEX 98000000000000000000000000000000 HEX 00 * HACHE.B.W H19B0 HEX CC90B3E68C8DB2E6CC999AE4CCCC90 HEX B3E68C91B2E6CC8BA2E4CC8891B3E6CC HEX 99B3E6BC8BB3E6CCC890A2C48C91A2C4 HEX B58BA2C488CC90B3E6C5D5F2AAB58BB3 HEX E6CCCC90B3E6D5D4D6AAB58BA3E6CCCC HEX 90B3E6D5D4D6AAB58BA2E4CCCC90B3E6 HEX D5D4D6AAB58B9AE4CCCC90B3E6D5D4D6 HEX AAB58B9AE4CCCC90B3E6D5D4D6AAB58B HEX 9AE4CCCC90B3E685D5F2AAB58B9AE4CC HEX C090B3E68CB5F1AAB58BA2E4CCC290B3 HEX E6CCB5B1AEB58BB3E6CCC290B3E6CCB5 HEX B1E6B58BB3E6CCC290A2C488D5A2C4B8 HEX 8BA2C488E6DD93A7CED492A7CE9CB9F2 HEX E4A69CB9F2E4CBBAF2E4C993A7CEA6C4 HEX 93A7CECA92A7CE9CB9F2C4A2C48891E2 HEX D5BAF2E4C993F7EEE6CC99B3A6C488F7 HEX CE9CB9F2E4E6CC89B3E6C489F7EEDDBB HEX F7EEE2CC99B1E6C489F1EEC9BBF2EEE2 HEX CC99B1E6CC89F1E4DDBBF7EEAEC499B3 HEX E6C48AF7EEDDBBF7EEEEC58891E2C48A HEX F1EE9DB9F7EEEEDDBBF7A2C48AF1EEDD HEX BBF7EEEEDDBBF7AED48AF7EEDDBBF7EE HEX EEDDBBF7AED5BAF7EEDDBBF7EEEEDDBB HEX F7EEB5B9F7EEDDBBF7E4EEDDBBF7EEB5 HEX B9A7EEDDBBF7CEEEDDBBF7EEB5B9F7EE HEX DDBBF7EEEEDDBBF7EEB5B9F7EEDDBBF7 HEX EEEEDDBBF7EECBBAF7EEDDBBF7EEE4DD HEX BBF7EECBBAF7EEDDBBF7EEE4DDBBF7EE HEX D5BAF7EEDDBBF2EEEEDDBBF7EED5BBF7 HEX EEDDBBA7EEEEDDBBF7EEDDBBF7EEC9BB HEX F2EEEEDDBBF7EEDD93F7C4DCBBF7EEEE HEX DDBBF7EEDDBBF7EEDDBBF7EEEEDDBBF7 HEX EEDDBBF7EEDDBBF7EEEEDDABF7EEDDBB HEX F7EEDDBBF7EEEEDDABF7EEDDBBF7EEDD HEX 93F7EE00000000000000000000000000 HEX 00000000000000000000000000000000 HEX 00 DS \,0 SAV A1