processor 6502 include "vcs.h" include "macro.h" MAC LineaMarquee LDX #4 ; 192 Scanlines to Display LDY #0 .Draw_Picture ;LDA #0 ;STA PF0 ;STA PF1 ;STA PF2 LDA {1},Y ADC {2},Y STA $BE,X LDA {3},Y ADC {4},Y STA $C3,X LDA {5},Y ADC {6},Y STA $C8,X LDA {7},Y ADC {8},Y STA $CD,X LDA {9},Y ADC {10},Y STA $D3,X INY DEX BNE .Draw_Picture ENDM ; MAC LineaMarqueeEx ; LDA #8 ; STA $80 ;.DoblePasada ; STA WSYNC ; LDA $D9,Y ; STA PF0 ; LDA $DE,Y ; STA PF1 ; LDA $E4,Y ; STA PF2 ; SLEEP 12 ; LDA $E9,Y ; STA PF0 ; LDA $EE,Y ; STA PF1 ; LDA $F4,Y ; STA PF2 ; ; DEC $80 ; BNE .DoblePasada ; JMP Retorno ; ENDM MAC Linea1old LDX #4 ; 192 Scanlines to Display LDY #0 .Draw_Picture LDA #0 STA PF0 STA PF1 STA PF2 LDA {2},Y ADC {3},Y STA $92 LDA {4},Y ADC {5},Y STA $93 LDA {7},Y ADC {8},Y STA $94 LDA {9},Y ADC {10},Y STA $95 LDA #8 STA $80 .DoblePasada STA WSYNC LDA {1},Y STA PF0 LDA $92 STA PF1 LDA $93 STA PF2 SLEEP 12 LDA {6},Y STA PF0 LDA $94 STA PF1 LDA $95 STA PF2 DEC $80 BNE .DoblePasada INY DEX BNE .Draw_Picture JMP Retorno ENDM MAC Linea2old LDX #4 ; 192 Scanlines to Display LDY #0 .Draw_Picture2 LDA #0 STA PF0 STA PF1 STA PF2 LDA {2},Y ADC {3},Y STA $92 LDA {4},Y ADC {5},Y STA $93 LDA {7},Y ADC {8},Y STA $94 LDA {9},Y ADC {10},Y STA $95 LDA #8 STA $80 .DoblePasada2 STA WSYNC LDA {1},Y STA PF0 LDA $92 STA PF1 LDA $93 STA PF2 SLEEP 12 LDA {6},Y STA PF0 LDA $94 STA PF1 LDA $95 STA PF2 DEC $80 BNE .DoblePasada2 INY DEX BNE .Draw_Picture2 JMP Retorno2 ENDM MAC Linea1 LDA <#{1} STA $92 LDA >#{1} STA $93 LDA <#{2} STA $94 LDA >#{2} STA $95 LDA <#{3} STA $96 LDA >#{3} STA $97 LDA <#{4} STA $98 LDA >#{4} STA $99 JSR Linea JMP Retorno ENDM MAC Linea2 LDA <#{1} STA $92 LDA >#{1} STA $93 LDA <#{2} STA $94 LDA >#{2} STA $95 LDA <#{3} STA $96 LDA >#{3} STA $97 LDA <#{4} STA $98 LDA >#{4} STA $99 JSR Linea JMP Retorno2 ENDM MAC Linea1pir LDX #4 ; 192 Scanlines to Display LDY #0 .Draw_Picture LDA #0 STA PF0 STA PF1 STA PF2 LDA {2},Y ADC {3},Y STA $92 LDA {4},Y ADC {5},Y STA $93 LDA {7},Y ADC {8},Y STA $94 LDA {9},Y ADC {10},Y STA $95 LDA #8 STA $80 .DoblePasada STA WSYNC LDA {1},Y STA PF0 LDA $92 STA PF1 LDA $93 STA PF2 SLEEP 12 LDA {6},Y STA PF0 LDA $94 STA PF1 LDA $95 STA PF2 DEC $80 BNE .DoblePasada INY DEX BNE .Draw_Picture JMP Retorn ENDM MAC Linea2pir LDX #4 ; 192 Scanlines to Display LDY #0 .Draw_Picture2 LDA #0 STA PF0 STA PF1 STA PF2 LDA {2},Y ADC {3},Y STA $92 LDA {4},Y ADC {5},Y STA $93 LDA {7},Y ADC {8},Y STA $94 LDA {9},Y ADC {10},Y STA $95 LDA #8 STA $80 .DoblePasada2 STA WSYNC LDA {1},Y STA PF0 LDA $92 STA PF1 LDA $93 STA PF2 SLEEP 12 LDA {6},Y STA PF0 LDA $94 STA PF1 LDA $95 STA PF2 DEC $80 BNE .DoblePasada2 INY DEX BNE .Draw_Picture2 JMP Retorn2 ENDM Gris = 8 Marron = 4*8 Verde = 3*16 + 10 Naranja = 4*16 + 10 Celeste = 9*16 + 14 Azul = 11*16 + 4 Amarillo = 2*16 + 14 ; es amarillo? Rojo = 6*16 + 4 ; es rojo? PunteroRoom = $86 PunteroRoomBKP = $8C TieneObjeto = 1 Guante = 2 Lamp = 4 Llave = 8 PushQ = 16 Dia2 = 32 Inventario = $8E ControlBoton = $8F Temp = $91 DuracionNota = $A2 Noparray = $A8 Personaje = $A9 TogCamina = $AB ContaX = $AC Vueltas = $AD TogPersonaje = $AE Personaje1 = $AF Personaje2 = $B1 Vueltas1 = $B3 Vueltas2 = $B4 ContAnim = $B5 PuntAnim = $B6 SaltAnim = $B7 Noparray2 = $B9 RoomP1 = $BA RoomP2 = $BB Bck = $BC Bck2 = $BE Bck3 = $C0 ContaY = $C3 ColPir = $C4 ColPir2 = $C5 Toca = $C6 Agarra = $C7 AgFlag = $C8 CamFlag = $C9 EstadoJuego = $CA Puntaje = $F3 Backg3 = $F8 Backg = $FA Backg2 = $FC C_7 = 0 C_6 = 1 F_5 = 2 C_5 = 3 Gs_4 = 4 F_4 = 5 D_4 = 6 C_4 = 7 As_3 = 8 Gs_3 = 9 Fs_3 = 10 F_3 = 11 Ds_3 = 12 D_3 = 13 Cs_3 = 14 C_3 = 15 B_2 = 16 As_2 = 17 A_2 = 18 Gs_2 = 19 G_2 = 20 Fs_2 = 21 F_2 = 23 E_2 = 24 Ds_2 = 25 D_2 = 27 Cs_2 = 29 C_2 = 30 ;///////////////// Start of Code ///////////////////////////////////// SEG ORG $F000 JMP Sajmp Sabnk LDA $1FF8 NOP NOP NOP NOP JMP Start_Frame Sajmp Reset ; Clear RAM, TIA registers and Set Stack Pointer to #$FF SEI CLD LDX #$FF TXS LDA #0 Clear_Mem STA 0,X DEX BNE Clear_Mem LDA #$00 STA COLUBK ; Set Background to Black ;LDA #15*8 ;STA COLUPF ;LDA #0 LDA #TieneObjeto STA Inventario LDA #2 STA $81 LDA <#Habitacion1 STA PunteroRoom STA PunteroRoomBKP LDA >#Habitacion1 STA PunteroRoom + 1 STA PunteroRoomBKP + 1 ;LDA PunteroRoom ;ADC #4 ;STA PunteroRoom ;LDA <#WELCOME ;;LDY #0 ;;LDA (PunteroRoom),Y ;STA $82 ;LDA >#WELCOME ;;INY ;;LDA (PunteroRoom),Y ;STA $83 ;LDA <#SOMETHING ;;INY ;;LDA (PunteroRoom),Y ;STA $84 ;LDA >#SOMETHING ;;INY ;;LDA (PunteroRoom),Y ;STA $85 LDA <#CeroLin1;LineaMarqueeEx STA $82 LDA >#CeroLin1;LineaMarqueeEx STA $83 LDA <#IslaBack;CeroLine STA $84 LDA >#IslaBack;CeroLine STA $85 ;LineaMarquee W1,E2,L3,C4,O1,M1,E2,Cero, Cero, Cero LDA <#Isla;DibujaHabitacion3;Calle1 STA $88 LDA >#Isla;DibujaHabitacion3;Calle1 STA $89 ;LDA <#Pirata2;Calle2 ;STA $8A ;LDA >#Pirata2;Calle2 ;STA $8B LDA #1 STA AUDC0 LDA #0;10 STA AUDV0 LDA #34;150;146;10 STA $A1 LDA <#Melodia STA $A3 LDA >#Melodia STA $A4 LDA #80 STA $A5 ;LDA <#Nops7 ;STA $A6 ;LDA >#Nops7 ;STA $A7 ;LDA <#CeroP ;STA Personaje1 ;LDA >#CeroP ;STA Personaje1 + 1 ;LDA #2 ;STA Vueltas ;STA Vueltas1 ;LDA #3 ;STA Vueltas2 LDA #0 STA Vueltas STA Vueltas1 STA Vueltas2 LDA #0;13;14 STA ContaX ;LDA <#CeroP ;STA Personaje2 ;LDA >#CeroP ;STA Personaje2 + 1 LDA Personaje2 ADC #5 STA Personaje2 LDA #10;255;50 STA ContAnim LDA #18 STA Noparray2 LDA <#Arcos22 STA Backg LDA >#Arcos22 STA Backg + 1 LDA <#Arcos22_2 STA Backg2 sta Backg3 LDA >#Arcos22_2 STA Backg2 + 1 sta Backg3 + 1 LDA #0 STA HMP0 LDA <#ColorP STA Vueltas1 LDA >#ColorP STA Vueltas2 ;/////////////////// Picture Starts Here ///////////////////////////// Start_Frame lda #22 sta T1024T LDA Vueltas BEQ VCero LDA #0 STA Vueltas STA HMP0 JMP VSal VCero LDA #1 STA Vueltas VSal LDY PuntAnim LDA Anim,Y STA SaltAnim INY LDA Anim,Y STA SaltAnim + 1 JMP (SaltAnim) RetornoAnim lda #0 sta CamFlag ;JMP Marquesina RetornoMarq LDA #8 STA COLUPF ; Start VSYNC LDA #2 STA VSYNC STA WSYNC STA WSYNC STA WSYNC ; 3 Scanlines of VSYNC LDA #0 STA VSYNC ; End VSYNC ; 37 Scanlines of Vertical Blank... LDX #37 Vertical_Blank STA WSYNC DEX BNE Vertical_Blank LDA #0 STA VBLANK ; Enable TIA Output ;////////////// Start To Draw Playfield /////////////////////////////// LDX #4 ; Frase 1 empieza mas arriba Tiempo STA WSYNC DEX BNE Tiempo JMP ($82);Frase1 Retorno LDA Cero2 STA PF0 STA PF1 STA PF2 STA WSYNC STA WSYNC STA WSYNC STA WSYNC STA WSYNC STA WSYNC LDA #1 STA CTRLPF JMP ($84);Frase2 Retorno2 JMP CeroPers LDA TogPersonaje BEQ CeroPers LDA RoomP1 CMP RoomP2 BEQ HayPers JMP CeroPers HayPers LDA #0 STA TogPersonaje LDA Personaje2 STA Personaje LDA Personaje2 + 1 STA Personaje + 1 ;LDY Noparray2 ;LDA NopsArray,Y ;STA $A6 ;INY ;LDA NopsArray,Y ;STA $A7 ;LDA Vueltas2 ;STA Vueltas JMP CeroPersS CeroPers LDA #1 STA TogPersonaje LDA Personaje1 STA Personaje LDA Personaje1 + 1 STA Personaje + 1 ;LDY Noparray ;LDA NopsArray,Y ;STA $A6 ;INY ;LDA NopsArray,Y ;STA $A7 ;LDA Vueltas1 ;STA Vueltas CeroPersS LDA Cero2 STA PF0 STA PF1 STA PF2 LDA #1 STA CTRLPF JMP ($88) Retorno3 LDA #0 STA CTRLPF LDA Cero2 STA PF0 STA PF1 STA PF2 LDA #0 STA GRP0 STA GRP1 LDA $BD BEQ Retorno4 JMP Musica Retorno4 ;LDX #184 LDX #10; 90;50;30;50;90;112 DibujaCola STA WSYNC DEX BNE DibujaCola STA HMOVE LDA SWCHA AND #%00010000 BEQ DecisionNear LDA SWCHA AND #%01000000 BEQ Decision2Near LDA SWCHA AND #%00100000 BEQ Decision3Near LDA SWCHA AND #%10000000 BEQ Decision4Near ;BEQ TogImg LDA INPT4 BMI RetDeci JMP Boton;Decision DecisionNear JMP Decision Decision2Near lda #1 sta CamFlag lda RoomP1 cmp #1 ;2 beq CompaFF JMP Decision2 CompaFF lda ContaX cmp #$9e ; FF beq RetDeci jmp Decision2 Decision3Near JMP Decision3 Decision4Near lda #1 sta CamFlag lda RoomP1 cmp #$FE beq Compa JMP Decision4 Compa lda ContaX cmp #$9D beq RetDeci jmp Decision4 ;TogImg ; LDA $90 ; CMP #1 ; BEQ Uno ; LDA #1 ; STA $90 ; JMP RetDeci ;Uno ; LDA #0 ; STA $90 RetDeci lda EstadoJuego cmp #16 beq NoCambiarHabi ;JMP HabiChgS3 lda Backg2 cmp #(#PisoIzq - >#Arcos22 sta Backg + 1 JMP HabiChgS6;3 BordeDer LDA #$9f ;#%01110101 ;#$9F STA ContaX DEC RoomP1 INC Puntaje lda Backg sec sbc <#PisoIzq - <#Arcos22 sta Backg lda Backg + 1 ;clc ;sbc #0 ; resta el carry si hay sbc >#PisoIzq - >#Arcos22 sta Backg + 1 NoCambiarHabi JMP HabiChgS3 LDA ContaX CMP #14 BMI HabiChgS ;LDA #0 ;STA ContaX LDA #28 STA Noparray ;INC RoomP1 JMP HabiChgS6;3 HabiChgS LDA ContaX CMP #0 BMI HabiChgS2 JMP HabiChgS3 HabiChgS2 ;LDA #$9F;14 ;STA ContaX LDA #0 STA Noparray ;DEC RoomP1 HabiChgS3 LDA ContaY CMP #16 BMI HabiChgS4 LDA #0 STA ContaY ;LDA <#CeroP ;STA Personaje1 ;LDA >#CeroP ;STA Personaje1 + 1 LDA Personaje1 SBC #10 STA Personaje1 LDA <#ColorP STA Vueltas1 LDA >#ColorP STA Vueltas2 LDA Vueltas1 SBC #10 STA Vueltas1 LDA #0 STA TogCamina ;LDA #0 ;STA ContaY ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 ;INC RoomP1 INC Puntaje ;LDA Personaje1 ;SBC #7 ;STA Personaje1 JMP HabiChgS6 HabiChgS4 LDA ContaY CMP #0 BMI HabiChgS5 JMP HabiChgS6 HabiChgS5 LDA #16 STA ContaY ;LDA <#CeroP ;STA Personaje1 ;LDA >#CeroP ;STA Personaje1 + 1 LDA Personaje1 ADC #10 STA Personaje1 LDA <#ColorP STA Vueltas1 LDA >#ColorP STA Vueltas2 LDA Vueltas1 ADC #11 STA Vueltas1 LDA #0 STA TogCamina ;LDA #7 ;STA ContaY ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 ;DEC RoomP1 INC Puntaje ;LDA Personaje1 ;ADC #7 ;STA Personaje1 HabiChgS6 ;LDA RoomP1 ;CMP #5 ;BEQ Iglesia ;CMP #10 ;BEQ Altar ;LDA <#Arcos22 ;STA Backg ;LDA >#Arcos22 ;STA Backg + 1 ;JMP IglesiaS ;Iglesia ;LDA <#Arcos23 ;STA Backg ;LDA >#Arcos23 ;STA Backg + 1 ;JMP IglesiaS ;Altar ;LDA <#Arcos21 ;STA Backg ;LDA >#Arcos21 ;STA Backg + 1 ;IglesiaS LDA Agarra AND #128 BEQ NoSeAgarro jmp SeAgarro NoSeAgarro lda PuntAnim cmp #32 bmi Sig jmp Soltar Sig LDA Toca;CXP0FB AND #128 BEQ NoTocoPiso LDA #0 STA ColPir STA CXCLR sta AgFlag LDA <#Palanca CMP Backg BEQ MoverPalanca JMP MapaS MoverPalanca lda #16 sta EstadoJuego LDA <#Palanca2 STA Backg LDA >#Palanca2 STA Backg + 1 LDA <#Arcos_Escaler STA Backg2 LDA >#Arcos_Escaler STA Backg2 + 1 JMP MapaS NoTocoPiso LDA #1 STA ColPir LDA #0 STA CXCLR JMP MapaS LDA <#MapaMundi STA $D0 LDA >#MapaMundi STA $D1 LDY RoomP1 LDA ($D0),Y CMP #0 BEQ MapaCero LDA <#Arcos22 STA Backg LDA >#Arcos22 STA Backg + 1 LDA <#Arcos22_2 STA Backg2 LDA >#Arcos22_2 STA Backg2 + 1 JMP MapaS SeAgarro LDA AgFlag CMP #7 BEQ Sigue JMP MapaS Soltar lda #4 sta PuntAnim jmp MapaS Sigue LDA #0 STA CXCLR sta AgFlag lda #30 sta PuntAnim jmp MapaS MapaCero LDA <#Arcos0 STA Backg LDA >#Arcos0 STA Backg + 1 LDA <#Arcos0 STA Backg2 LDA >#Arcos0 STA Backg2 + 1 MapaS ;////////////// End Of Display //////////////////////////////////////// LDA #%01000010 ; Disable VIA Output STA VBLANK ; 30 scanlines of overscan... ; LDX #30 ;Overscan STA WSYNC ; DEX ; BNE Overscan OverscanLoop lda INTIM bne OverscanLoop sta WSYNC ; LDA $90 ; CMP #1 ; BEQ MostraImg JMP Start_Frame ;MostraImg ; JMP Start_Frame0 ; Build Next Frame ; Playfield generated by TIA Playfield Painter ; Mode Used = ASYMMETRICAL ; Playfields generated = PF0, PF1, PF2, PF3, PF4, PF5 ; Datas lines are reversed ; 192 Line(s) saved = 191 - 0 Decision ;LDA #0 ;STA SWCHA ;LDA #8 ;STA REFP0 LDA CXP0FB AND #128 BEQ EstaEnElAire ;Si esta en el aire no puede saltar JMP Aire EstaEnElAire LDA Agarra AND #128 BEQ EnAire2 JMP Aire EnAire2 JMP Decision5 Aire LDA Inventario CMP #85 BEQ VaIzq JMP VaDer VaIzq ;LDA #$20 ;STA HMP0 ;inc ContaX JMP VaS VaDer ;LDA #$E0 ;STA HMP0 ;dec ContaX VaS LDA #14 STA PuntAnim ;;INC Noparray ;;INC Noparray ;;DEC ContaX ;LDY Noparray ;LDA NopsArray,Y ;STA $A6 ;INY ;LDA NopsArray,Y ;STA $A7 ;INC Personaje1 ;INC Vueltas1 ;INC ContaY JMP Decision5 Decision2 LDA #0 ;STA SWCHA ;LDA #8 STA REFP0 LDA #$20 STA HMP0 LDA #85 ;codigo inventado para saber para donde va STA Inventario ;;INC Noparray ;;INC Noparray INC ContaX;DEC ContaX ;LDY Noparray ;LDA NopsArray,Y ;STA $A6 ;INY ;LDA NopsArray,Y ;STA $A7 ;;DEC Personaje1 ;;DEC ContaY JMP Decision5 Decision3 ;LDA #0 ;STA SWCHA LDA #0 STA HMP0 LDA #8 STA REFP0 ;;DEC Noparray ;;DEC Noparray ;;INC ContaX ;LDY Noparray ;LDA NopsArray,Y ;STA $A6 ;INY ;LDA NopsArray,Y ;STA $A7 DEC Personaje1 DEC Vueltas1 ;DEC ContaY JMP Decision5 Decision4 ;LDA #0 ;STA SWCHA LDA #8;0 STA REFP0 LDA #$E0 STA HMP0 LDA #32 ;codigo inventado para saber para donde va STA Inventario ;;DEC Noparray ;;DEC Noparray DEC ContaX;INC ContaX ;LDY Noparray ;LDA NopsArray,Y ;STA $A6 ;INY ;LDA NopsArray,Y ;STA $A7 ;;INC Personaje1 ;;INC ContaY JMP Decision5 Decision5 ;LDA TogCamina ;BEQ CeroCam ;LDA #0 ;STA TogCamina ;LDA Personaje1 ;SEC;CLC ;SBC #28 ;STA Personaje1 ;JMP CeroCamS CeroCam ;LDA #1 ;STA TogCamina ;LDA Personaje1 ;CLC;SEC ;ADC #28 ;STA Personaje1 CeroCamS ; LDA ContaX ;Necesito cambiar el alto de los pixeles con "Vueltas" porque el personaje a la derecha consume muchos ciclos con los "Nops" ; CMP #8 ; BMI CeroCamS2 ; LDA #2 ; STA Vueltas1 ; JMP CeroCamS3 ;CeroCamS2 ; CMP #3 ; BMI AA ; JMP BB ;AA LDA #4 ; STA Vueltas1 ; JMP CeroCamS3 ;BB LDA #3 ; STA Vueltas1 ;CeroCamS3 JMP RetDeci ; LDA PunteroRoom ; ADC #4 ; STA PunteroRoom ; LDY #8 ; LDA (PunteroRoom),Y ;La condicion, tener algo en el inventario ; AND Inventario ; BEQ Cuatro ; DEC $81 ; BEQ Cuatro ;Vuelta ; LDY #0 ; LDA (PunteroRoom),Y ; STA $82 ; INY ; LDA (PunteroRoom),Y ; STA $83 ; INY ; LDA (PunteroRoom),Y ; STA $84 ; INY ; LDA (PunteroRoom),Y ; STA $85 ; JMP RetDeci ;Cuatro ; LDA #2 ; STA $81 ; LDY #0 ; LDX #0 ; LDA PunteroRoomBKP,Y ; STA PunteroRoom,X ; INY ; INX ; LDA PunteroRoomBKP,Y ; STA PunteroRoom,X ; JMP Vuelta Boton LDA RoomP1 CMP RoomP2 BEQ Sabank JMP Sasabank Sabank LDA #100 STA ContAnim JMP Sabnk;LDA $1FF8 Sasabank ; LDA ControlBoton ; CMP #0 ; BEQ Boton2 ; INC ControlBoton ; CMP #7 ; BEQ ResetBoton ; JMP RetDeci ;Boton2 ; LDY #16 ; LDA <(PunteroRoom),Y ; ORA Inventario ; STA Inventario ; ;LDY #18 ;Carga la melodia ; ;LDA (PunteroRoom),Y ; ;STA $A3 ; ;INY ; ;LDA (PunteroRoom),Y ; ;STA $A4 ; ;LDA #10 ; ;STA AUDV0 ; ;LDA #10 ; ;STA $A1 ; ;LDA #0 ; ;STA DuracionNota ; LDY #10 ;Carga imagen ; LDA (PunteroRoom),Y ; STA $88 ; INY ; LDA (PunteroRoom),Y ; STA $89 ; LDY #24 ; LDX #0 ; LDA (PunteroRoom),Y ; STA Temp,X ; ;STA PunteroRoom,X ; ;STA PunteroRoomBKP,X ; INY ; INX ; LDA (PunteroRoom),Y ; STA Temp,X ; ;STA PunteroRoom,X ; ;STA PunteroRoomBKP,X ; LDX #0 ; LDY #0 ; LDA Temp,Y ; STA PunteroRoom,X ; STA PunteroRoomBKP,X ; INY ; INX ; LDA Temp,Y ; STA PunteroRoom,X ; STA PunteroRoomBKP,X ; INC ControlBoton ; JMP RetDeci;Vuelta;RetDeci ;ResetBoton ; LDA #0 ; STA ControlBoton JMP RetDeci ; ALIGN 256 MapaMundi .byte 0,0,0,0,0 Cero2 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 CeroLin1 Linea1 Cero2,Cero2,Cero2,Cero2 ;CeroLine ;Linea2 Cero2,Cero2,Cero2,Cero2 ;Linea2 D,A,Y,One Habitacion1 ALIGN 256 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 ;----------------------------------- .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000010 .byte #%00010101 .byte #%10010110 .byte #%01111100 .byte #%00111000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 PalancaDer .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000010 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00100000 .byte #%00000000 .byte #%00000000 Arcos22Der .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%11111111 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 ;------------------------------------------- .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Arcos21 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%11111111 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Palanca .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00010000 .byte #%00010000 .byte #%00010000 .byte #%01111100 .byte #%01000100 .byte #%00000000 .byte #%00000000 Arcos22 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%11111111 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 ;--------------------------------------------------- .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 ;------------------------------------------ .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00111000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00111000 .byte #%00000000 ;Palanca .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00001110 .byte #%00000000 .byte #%00111000 .byte #%00000000 .byte #%11101110 .byte #%00000000 .byte #%00111000 .byte #%00000000 .byte #%00000000 PisoIzq .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%11111111 .byte #%00000000 .byte #%00000000 ALIGN 256 .byte #%00000000 .byte #%00000000 .byte #%00000000 ;------------------------------------------ .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 ;------------------------------------------ .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Arcos22_2 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%11111111 .byte #%00000000 .byte #%00000000 Arcos23 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Palanca2 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%01000100 .byte #%01111100 .byte #%00010000 .byte #%00010000 .byte #%00010000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%11111111 .byte #%00000000 .byte #%00000000 ;--------------------- .byte #%00000000 .byte #%00000000 .byte #%00000000 ;----------------------- .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%11111000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%11111111 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11100000 Arcos_Escaler .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%00100000 .byte #%11111111 .byte #%00000000 .byte #%00000000 Arcos0 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 .byte #%11111111 Muelle .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Muelle2 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 MuelleC .byte #Azul .byte #Azul + 1 .byte #Azul + 2 .byte #Azul + 3 .byte #Azul + 4 .byte #Verde .byte #Azul + 5 .byte #Naranja .byte #Naranja + 1 .byte #Azul + 6 .byte #Azul + 7 .byte #Azul + 8 .byte #Azul + 9 .byte #Azul + 10 .byte #Azul .byte #Azul + 1 .byte #Azul + 2 .byte #Azul + 3 MuelleC2 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #0 .byte #Gris .byte #Gris ColorP .byte #Naranja; %00000000 .byte #Naranja; %00000000 .byte #Naranja; %00000000 .byte #Naranja; %00000000 .byte #Naranja; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #255; %00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 ;include "imagen4.txt" ;include "calle.btm" ;include "pirata.btm" Linea LDX #4 ; 192 Scanlines to Display LDY #0 Draw_Picture LDA #8 STA $80 DoblePasada STA WSYNC LDA ($92),Y STA PF0 LDA Cero2,Y STA PF1 LDA ($94),Y STA PF2 SLEEP 4 LDA ($96),Y STA PF0 LDA Cero2,Y STA PF1 LDA ($98),Y STA PF2 DEC $80 BNE DoblePasada INY DEX BNE Draw_Picture RTS Anim .word #Anim1 .word #Anim2 .word #Anim3 .word #Anim4 .word #Anim5 .word #Anim6 .word #Anim7 .word #Anim8 .word #Anim9 .word #Anim10 .word #Anim11 .word #Anim12 .word #Anim13 .word #Anim14 .word #Anim15 .word #swAnim8 .word #swAnim9 .word #swAnim10 .word #swAnim11 .word #swAnim12 .word #swAnim13 .word #swAnim14 .word #swAnim15 .word #swAnim16 .word #swAnim17 .word #swAnim18 .word #swAnim15_ Anim1 LDA #215 STA COLUP0 STA COLUP1 ;LDA #6 ;STA RoomP2 LDA #$40 STA HMP1 lda CamFlag beq Parat LDA <#Text1 STA Personaje1 LDA >#Text1 STA Personaje1 + 1 jmp Parats Parat lda <#Parado sta Personaje1 lda >#Parado sta Personaje1 + 1 Parats DEC ContAnim BEQ SumarAnim JMP RetornoAnim SumarAnim lda CamFlag beq Parat2 LDA <#Text2 STA Personaje1 LDA >#Text2 STA Personaje1 + 1 jmp Parats2 Parat2 lda <#Parado sta Personaje1 lda >#Parado sta Personaje1 + 1 Parats2 LDA #0 STA HMP1 INC PuntAnim INC PuntAnim LDA #5; 10 ;255;50 STA ContAnim JMP RetornoAnim Anim2 DEC ContAnim BEQ SumarAnim2 JMP RetornoAnim SumarAnim2 lda CamFlag beq Parat3 LDA <#Text3 STA Personaje1 LDA >#Text3 STA Personaje1 + 1 jmp Parats3 Parat3 lda <#Parado2 sta Personaje1 lda >#Parado2 sta Personaje1 + 1 Parats3 LDA #5; 10 ;255;50 STA ContAnim STA WSYNC ;para evitar el gris por lineas impares STA WSYNC INC PuntAnim INC PuntAnim JMP RetornoAnim Anim3 ;LDA #0 ;STA COLUBK ;JMP Start_Frame0 DEC ContAnim BEQ SumarAnim3 JMP RetornoAnim SumarAnim3 lda CamFlag beq Parat4 LDA <#Text4 STA Personaje1 LDA >#Text4 STA Personaje1 + 1 jmp Parats4 Parat4 lda ColPir beq Fling lda <#Volar2 sta Personaje1 lda >#Volar2 sta Personaje1 + 1 jmp Parats4 Fling lda <#Parado2 sta Personaje1 lda >#Parado2 sta Personaje1 + 1 Parats4 LDA #5; 10 ;255;50 STA ContAnim STA WSYNC STA WSYNC CLC LDA Backg ADC ColPir STA Backg LDA Backg2 ADC ColPir STA Backg2 LDA Backg3 ADC ColPir STA Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim4 DEC ContAnim BEQ SumarAnim4 JMP RetornoAnim SumarAnim4 lda CamFlag beq Parat5 LDA <#Text5 STA Personaje1 LDA >#Text5 STA Personaje1 + 1 jmp Parats5 Parat5 lda ColPir beq Fling2 lda <#Volar sta Personaje1 lda >#Volar sta Personaje1 + 1 jmp Parats5 Fling2 lda <#Parado sta Personaje1 lda >#Parado sta Personaje1 + 1 Parats5 LDA #5; 10 STA ContAnim STA WSYNC STA WSYNC CLC LDA Backg ADC ColPir STA Backg LDA Backg2 ADC ColPir STA Backg2 LDA Backg3 ADC ColPir STA Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim5 DEC ContAnim BEQ SumarAnim5 JMP RetornoAnim SumarAnim5 lda CamFlag beq Parat6 LDA <#Text6 STA Personaje1 LDA >#Text6 STA Personaje1 + 1 jmp Parats6 Parat6 lda ColPir beq Fling3 lda <#Volar sta Personaje1 lda >#Volar sta Personaje1 + 1 jmp Parats6 Fling3 lda <#Parado sta Personaje1 lda >#Parado sta Personaje1 + 1 Parats6 LDA #5; 10 STA ContAnim STA WSYNC STA WSYNC CLC LDA Backg ADC ColPir STA Backg LDA Backg2 ADC ColPir STA Backg2 LDA Backg3 ADC ColPir STA Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim6 DEC ContAnim BEQ SumarAnim6 JMP RetornoAnim SumarAnim6 lda CamFlag beq Parat7 LDA <#Text7 STA Personaje1 LDA >#Text7 STA Personaje1 + 1 jmp Parats7 Parat7 lda ColPir beq Fling4 lda <#Volar2 sta Personaje1 lda >#Volar2 sta Personaje1 + 1 jmp Parats7 Fling4 lda <#Parado2 sta Personaje1 lda >#Parado2 sta Personaje1 + 1 Parats7 LDA #5; 10 STA ContAnim STA WSYNC STA WSYNC CLC LDA Backg ADC ColPir STA Backg LDA Backg2 ADC ColPir STA Backg2 LDA Backg3 ADC ColPir STA Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim7 DEC ContAnim BEQ SumarAnim7 JMP RetornoAnim SumarAnim7 LDA #4 STA PuntAnim LDA #1 STA ContAnim STA WSYNC STA WSYNC CLC LDA Backg ADC ColPir STA Backg LDA Backg2 ADC ColPir STA Backg2 LDA Backg3 ADC ColPir STA Backg3 JMP RetornoAnim Anim8 LDA <#Tex1 STA Personaje1 LDA >#Tex1 STA Personaje1 + 1 STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 DEC ContAnim BEQ SumarAnim8 JMP RetornoAnim SumarAnim8 LDA <#Tex2 STA Personaje1 LDA >#Tex2 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim9 DEC ContAnim BEQ SumarAnim9 JMP RetornoAnim SumarAnim9 LDA <#Tex3 STA Personaje1 LDA >#Tex3 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim10 DEC ContAnim BEQ SumarAnim10 JMP RetornoAnim SumarAnim10 LDA <#Tex4 STA Personaje1 LDA >#Tex4 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim11 DEC ContAnim BEQ SumarAnim11 JMP RetornoAnim SumarAnim11 LDA <#Tex5 STA Personaje1 LDA >#Tex5 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim12 DEC ContAnim BEQ SumarAnim12 JMP RetornoAnim SumarAnim12 LDA <#Tex6 STA Personaje1 LDA >#Tex6 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim13 DEC ContAnim BEQ SumarAnim13 JMP RetornoAnim SumarAnim13 LDA <#Tex7 STA Personaje1 LDA >#Tex7 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim14 DEC ContAnim BEQ SumarAnim14 JMP RetornoAnim SumarAnim14 LDA <#Tex8 STA Personaje1 LDA >#Tex8 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 INC PuntAnim INC PuntAnim JMP RetornoAnim Anim15 DEC ContAnim BEQ SumarAnim15 JMP RetornoAnim SumarAnim15 LDA #4 STA PuntAnim LDA #1 STA ContAnim STA WSYNC STA WSYNC DEC Backg DEC Backg2 dec Backg3 JMP RetornoAnim Isla ;DibujaHabitacion4 ;Carpa LDX #18 ;10 ; 192 Scanlines to Display LDY #0 LDA $BE BEQ Isla2 LDA #0 STA $90 LDA #Naranja STA $A0 JMP Draw_PictureW2 Isla2 LDA #0;Verde;#Celeste ;SBC #13 ;LDA #219 STA $90 LDA #Naranja;Celeste;#Verde ;SBC #11 ;LDA #215 ;LDA #0 STA $A0 Draw_PictureW2 LDA #2; 4;Vueltas;#4 STA $80 ;LDA $90 ;ADC #1 ;STA $90 ;;INC $90 ;;INC $A0 DoblePasadaW2 ;STX COLUPF LDA $A0 STA COLUPF LDA $90 STA COLUBK STA WSYNC lda (Backg3),y ;LDA #0;Arcos12,Y STA PF0 LDA (Backg),Y ;Arcos22,Y STA PF1 LDA (Backg2),Y;#0;Arcos22,Y ;lda RoomP1;LDA ContaX ;para ver su valor en binario STA PF2 ;JMP ($A6) ;Nops NoOper ; LDA TogPersonaje ; BEQ CePers ; JMP HaPers CePers ; LDA (Vueltas1),Y ; STA COLUP1 ; LDA (Personaje),Y ; STA GRP1 ; JMP SaPers HaPers LDA (Vueltas1),Y STA COLUP0 LDA (Personaje),Y STA GRP0 cpy #11 bmi SaPers LDA CXP0FB sta Toca jmp SaSP SaPers cpy #5 bmi SaPe LDA #0 STA CXCLR jmp SaSP SaPe LDA CXP0FB sta Agarra lda AgFlag beq Pone7 jmp SaSP Pone7 lda #7 sta AgFlag SaSP ;STA RESP0 DEC $80 BNE DoblePasadaW2 INY DEX BNE Draw_PictureW2 JMP Retorno3 IslaBack LDX #18 ;10 ; 192 Scanlines to Display LDY #0 sec lda Backg3 sbc #18 sta Bck3 lda Backg3 + 1 sbc #0 sta Bck3 + 1 sec lda Backg2 sbc #18 sta Bck2 lda Backg2 + 1 sbc #0 sta Bck2 + 1 sec lda Backg sbc #18 sta Bck lda Backg + 1 sbc #0 sta Bck + 1 Draw_PictureW22 lda #2 sta $80 DoblePasada__ LDA #4;Vueltas;#4 STA $80 LDA #0;MuelleC,Y STA COLUBK LDA #Naranja;MuelleC2,Y STA COLUPF STA WSYNC LDA (Bck3),Y ;#0;Arcos12,Y STA PF0 LDA (Bck),Y ;Muelle,Y ;Arcos22,Y STA PF1 LDA (Bck2),Y ;RoomP1 ;para ver su valor en binario ;Muelle2,Y;#0;Arcos22,Y STA PF2 ;dec $80 ;bne DoblePasada__ INY DEX BNE Draw_PictureW22 JMP Retorno2 ; LDX #8 ; 192 Scanlines to Display ; LDA #Verde ; SBC #10 ; STA $A0 ;Draw_PictureW_Verde ; LDA #4 ; STA $80 ; LDA $90 ; ADC #1 ; STA $90 ; ;INC $90 ; INC $A0 ;DoblePasadaW_Verde ; ;STX COLUPF ; LDA $A0 ; STA COLUPF ; LDA $90 ; STA COLUBK ; STA WSYNC ; LDA Arcos12,Y ; NOP ;Si este nop lo pongo dos lineas mas arriba no funciona el juego paso de habitacion y se queda esperando, el puntanim de 6 vuelve a 2 y el roomp2 se pone en cero ??????? ; STA PF0 ; LDA Arcos22,Y ; STA PF1 ; LDA Arcos32,Y ; STA PF2 ; DEC $80 ; BNE DoblePasadaW_Verde ; INY ; DEX ; BNE Draw_PictureW_Verde ; ; JMP Retorno3 Musica LDA DuracionNota BEQ ResetNota DEC DuracionNota JMP RetornarA4 ResetNota LDA #20 STA DuracionNota LDA $A1 ;CMP #0 BEQ RetornarA4 LDY $A1 LDA ($A3),Y BEQ Volumen STA AUDF0 DEC $A1 DEC DuracionNota RetornarA4 JMP Retorno4 Volumen ;LDA #0 ;STA AUDV0 LDA #34;150 STA $A1 LDY $A1 LDA ($A3),Y STA AUDF0 DEC $A1 JMP Retorno4 Melodia .byte #0 .byte #0 .byte E_2 .byte D_2 .byte E_2 .byte F_2 .byte D_2 .byte C_2 .byte D_2;B_2 .byte C_2 .byte E_2 .byte D_2 .byte E_2 .byte F_2 .byte G_2 .byte A_2 .byte G_2 .byte F_2 .byte E_2 .byte D_2 .byte C_2 .byte E_2 .byte G_2 .byte C_3 .byte B_2 .byte C_3 .byte G_2 .byte G_2 .byte A_2 .byte F_2 .byte F_2 .byte G_2 .byte E_2 .byte D_2 .byte C_2 Text1 .byte #%00000000 .byte #%00110000 .byte #%00110000 .byte #%00110000 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00010100 .byte #%00001100 .byte #%00010100 .byte #%00010100 .byte #%00000010 .byte #%00001001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Text2 .byte #%00000000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%00110000 .byte #%00001000 .byte #%01110000 .byte #%00001000 .byte #%00111000 .byte #%01101100 .byte #%01100110 .byte #%00100011 .byte #%00100001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Text3 .byte #%00000000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%00110000 .byte #%00010000 .byte #%00010000 .byte #%00100000 .byte #%00111000 .byte #%00101000 .byte #%00101111 .byte #%00100001 .byte #%00100000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Text4 .byte #%00000000 .byte #%01000000 .byte #%01100000 .byte #%01100000 .byte #%00100000 .byte #%00100000 .byte #%11010000 .byte #%00110000 .byte #%00110000 .byte #%01110000 .byte #%00111000 .byte #%00010100 .byte #%00001000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Text5 .byte #%00000000 .byte #%01000000 .byte #%01100000 .byte #%01100000 .byte #%00100000 .byte #%00010000 .byte #%11101000 .byte #%00101000 .byte #%00010000 .byte #%00110000 .byte #%01101000 .byte #%01100100 .byte #%00100010 .byte #%00100010 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Text6 .byte #%00000000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%00010000 .byte #%01001000 .byte #%01010000 .byte #%00001000 .byte #%00011000 .byte #%00101000 .byte #%00101111 .byte #%00010001 .byte #%00010000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Text7 .byte #%00000000 .byte #%00000000 .byte #%01100000 .byte #%01100000 .byte #%00100000 .byte #%00010000 .byte #%01110000 .byte #%01010000 .byte #%00010000 .byte #%00110000 .byte #%00111110 .byte #%00010010 .byte #%00011000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex1 .byte #%00000000 .byte #%00000000 .byte #%00110000 .byte #%00110000 .byte #%00001100 .byte #%00011111 .byte #%00011101 .byte #%01100100 .byte #%00011000 .byte #%00011110 .byte #%00001010 .byte #%00000100 .byte #%00000110 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex2 .byte #%00000000 .byte #%00000000 .byte #%00110000 .byte #%00110110 .byte #%10001001 .byte #%01111000 .byte #%00011000 .byte #%00111100 .byte #%01111100 .byte #%01101100 .byte #%00100100 .byte #%00100111 .byte #%00000001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex3 .byte #%00110000 .byte #%00110000 .byte #%10000000 .byte #%01110000 .byte #%00011000 .byte #%00011100 .byte #%01110000 .byte #%01001100 .byte #%00101100 .byte #%01100100 .byte #%00000010 .byte #%00000011 .byte #%00000001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex4 .byte #%00000000 .byte #%00000000 .byte #%10100000 .byte #%01110000 .byte #%00110000 .byte #%00011000 .byte #%00011000 .byte #%00111000 .byte #%01011000 .byte #%10001100 .byte #%10000110 .byte #%00000011 .byte #%00000001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex5 .byte #%00000000 .byte #%01111000 .byte #%01111000 .byte #%00101100 .byte #%00001100 .byte #%01111100 .byte #%10001100 .byte #%00000010 .byte #%00000001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex6 .byte #%00000000 .byte #%01111000 .byte #%01101100 .byte #%00001010 .byte #%00011001 .byte #%01111000 .byte #%10011111 .byte #%00001100 .byte #%00000100 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex7 .byte #%00000000 .byte #%01111000 .byte #%01101110 .byte #%00001011 .byte #%00001000 .byte #%00011000 .byte #%01110110 .byte #%01111010 .byte #%01011000 .byte #%10000000 .byte #%10000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Tex8 .byte #%00000000 .byte #%00000000 .byte #%01100000 .byte #%01110000 .byte #%00001100 .byte #%00001010 .byte #%00001101 .byte #%00111000 .byte #%00110000 .byte #%00010000 .byte #%00001000 .byte #%00011000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Swin .byte #%01000000 .byte #%00100000 .byte #%01100000 .byte #%01110000 .byte #%00001100 .byte #%00001010 .byte #%00001101 .byte #%00011000 .byte #%00010000 .byte #%00010000 .byte #%00001000 .byte #%00011000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Swin2 .byte #%01000000 .byte #%00100000 .byte #%01100000 .byte #%01110000 .byte #%00011000 .byte #%00011000 .byte #%00011000 .byte #%00011000 .byte #%00010000 .byte #%00010000 .byte #%00010000 .byte #%00010000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Swin3 .byte #%01000000 .byte #%00100000 .byte #%01100000 .byte #%01110000 .byte #%00110000 .byte #%00110000 .byte #%00110000 .byte #%00110000 .byte #%00100000 .byte #%01000000 .byte #%10000000 .byte #%10000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Swin4 .byte #%01000000 .byte #%01000000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%01100000 .byte #%10000000 .byte #%10000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Swin5 .byte #%01000000 .byte #%00100000 .byte #%01100000 .byte #%01110000 .byte #%00001100 .byte #%00001010 .byte #%00001101 .byte #%00001000 .byte #%00001000 .byte #%00001000 .byte #%00000100 .byte #%00000100 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Swin6 .byte #%01000000 .byte #%00100000 .byte #%00010000 .byte #%00111000 .byte #%00001100 .byte #%00000110 .byte #%00000101 .byte #%00000100 .byte #%00000100 .byte #%00000100 .byte #%00000010 .byte #%00000001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Swin7 .byte #%01000000 .byte #%00100000 .byte #%00010000 .byte #%00011000 .byte #%00001100 .byte #%00000110 .byte #%00000111 .byte #%00000010 .byte #%00000010 .byte #%00000010 .byte #%00000001 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Parado .byte #%00000000 .byte #%01100000 .byte #%01110000 .byte #%00100000 .byte #%00011000 .byte #%00011100 .byte #%00111010 .byte #%10001001 .byte #%00010100 .byte #%00100100 .byte #%01000010 .byte #%00100010 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Parado2 .byte #%00000000 .byte #%01100000 .byte #%01110000 .byte #%00100000 .byte #%00111100 .byte #%00111010 .byte #%01011010 .byte #%10001001 .byte #%00010100 .byte #%00100100 .byte #%01000010 .byte #%00100010 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Volar .byte #%00000000 .byte #%00000000 .byte #%01100000 .byte #%01110000 .byte #%00001100 .byte #%00001010 .byte #%00001101 .byte #%00111000 .byte #%00110000 .byte #%00010000 .byte #%00001000 .byte #%00011000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 Volar2 .byte #%00000000 .byte #%00000000 .byte #%01100000 .byte #%01110000 .byte #%00001110 .byte #%00001001 .byte #%00001100 .byte #%00111000 .byte #%00110000 .byte #%00011000 .byte #%00000100 .byte #%00001100 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 .byte #%00000000 swAnim8 LDA <#Swin STA Personaje1 LDA >#Swin STA Personaje1 + 1 STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 DEC ContAnim BEQ swSumarAnim8 JMP RetornoAnim swSumarAnim8 LDA <#Swin2 STA Personaje1 LDA >#Swin2 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim9 DEC ContAnim BEQ swSumarAnim9 JMP RetornoAnim swSumarAnim9 LDA <#Swin3 STA Personaje1 LDA >#Swin3 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim10 DEC ContAnim BEQ swSumarAnim10 JMP RetornoAnim swSumarAnim10 LDA <#Swin4 STA Personaje1 LDA >#Swin4 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim11 DEC ContAnim BEQ swSumarAnim11 JMP RetornoAnim swSumarAnim11 LDA <#Swin3 STA Personaje1 LDA >#Swin3 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim12 DEC ContAnim BEQ swSumarAnim12 JMP RetornoAnim swSumarAnim12 LDA <#Swin2 STA Personaje1 LDA >#Swin2 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim13 DEC ContAnim BEQ swSumarAnim13 JMP RetornoAnim swSumarAnim13 LDA <#Swin STA Personaje1 LDA >#Swin STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim14 DEC ContAnim BEQ swSumarAnim14 JMP RetornoAnim swSumarAnim14 LDA <#Swin5 STA Personaje1 LDA >#Swin5 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim15 DEC ContAnim BEQ swSumarAnim15 JMP RetornoAnim swSumarAnim15 LDA <#Swin6 STA Personaje1 LDA >#Swin6 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim16 DEC ContAnim BEQ swSumarAnim16 JMP RetornoAnim swSumarAnim16 LDA <#Swin7 STA Personaje1 LDA >#Swin7 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim17 DEC ContAnim BEQ swSumarAnim17 JMP RetornoAnim swSumarAnim17 LDA <#Swin6 STA Personaje1 LDA >#Swin6 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim18 DEC ContAnim BEQ swSumarAnim18 JMP RetornoAnim swSumarAnim18 LDA <#Swin5 STA Personaje1 LDA >#Swin5 STA Personaje1 + 1 LDA #5 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 INC PuntAnim INC PuntAnim DEC AgFlag JMP RetornoAnim swAnim15_ DEC ContAnim BEQ swSumarAnim15_ JMP RetornoAnim swSumarAnim15_ LDA #30 STA PuntAnim LDA #1 STA ContAnim STA WSYNC STA WSYNC ;DEC Backg ;DEC Backg2 JMP RetornoAnim ;////////////// Set Vectors /////////////////////////////////////////// ORG $FFFA ; Interrupt Vectors .word Reset ; NMI .word Reset ; RESET .word Reset ; IRQ ;END END