User Tools

Site Tools


base:simple_sprite-multiplexer_using_sprite_1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

base:simple_sprite-multiplexer_using_sprite_1 [2015-04-17 04:33] (current)
Line 1: Line 1:
 +     !to "multiplexer.prg",cbm 
 +      
 +    ;--------------------------------------------------------------------------- 
 +    ; 
 +    ; 
 +    ; 
 +    ; Basics : IRQ 
 +    ; @L       Wait for Y-Pos 
 +    ;          write (new) Y-Position             
 +    ;          write (new) Sprite-Pointer  
 +    ;          set some other registers according to the sprite 
 +    ;          wait 21+1 (Spriteheight+1) Rasterlines  
 +    ;          JMP @L 
 +    ; 
 +    ; 
 +    ; 
 +    ; Compiler : ACME   
 +    ; 
 +    ; Michael Sachse, 20. Maerz 2007  
 +    ; 
 +    ;--------------------------------------------------------------------------- 
 +      
 +     
 +    ;-- Basicstart 
 +     
 +    *= $0800 
 +    !byte $00,$0c,$08,$0a,$00,$9e,$32,$30,$36,$34,$00,$00,$00,$00 
 +          
 +     *= $0810 
 +       
 +    ;--------------------------------------------------    
 +              
 +             lda #00 
 +             sta $d020 
 +             sta $d021         
 +             lda #147 
 +             jsr $ffd2         
 +             jsr setup_sprite ; init Sprite 1  
 +    ;-------------------------------------------------- 
 +    ;  New Raster-IRQ 
 +    ;-------------------------------------------------- 
 +              
 +             sei   
 +             lda #<int 
 +             sta $0314 
 +             lda #>int 
 +             sta $0315        ; new IRQ 
 +             lda #$00 
 +             sta $d012         
 +             lda #$7f 
 +             sta $dc0d        ; Timer off 
 +             lda #$01 
 +             sta $d019 
 +             sta $d01a         
 +             cli 
 +             jmp * 
 +     
 +    ;-------------------------------------------------- 
 +     
 +    int      lda $d019 
 +             and #$01 
 +             sta $d019         
 +             bne irq 
 +             jmp $ea81 
 +               
 +    ;--------------------------------------------------            
 +     
 +    irq      lda #$00 
 +             sta $d012 
 +     
 +             jsr animate      ; move on x-axis 
 +     
 +     
 +    l0       lda $d012 
 +             cmp #78          ; y = 78 
 +             bne l0      
 +             sta $d001 
 +             lda #$28         ; Spritepointer Sprite 1  
 +             sta $07f8        ; $0a00 = $28*$40 
 +     
 +    l1       lda $d012 
 +             cmp #100         ; y = 100 
 +             bne l1 
 +             sta $d001           
 +             lda #$29         ; write Sprite-Pointer again 
 +             sta $07f8 
 +             lda #6           ; a new color 
 +             sta $d026 
 +     
 +    l2       lda $d012 
 +             cmp #122         ; y = 122       
 +             bne l2 
 +             sta $d001           
 +             lda #$28         ; write Sprite-Pointer again 
 +             sta $07f8 
 +             lda #3 
 +             sta $d026 
 +     
 +    l3       lda $d012 
 +             cmp #144          ; y =144      
 +             bne l3 
 +             sta $d001             
 +             lda #$29          ; write Sprite-Pointer again 
 +             sta $07f8 
 +             lda #2 
 +             sta $d026         ; a new color 
 +     
 +    le       lda $d012 
 +             cmp #255 
 +             bne le         
 +             jmp $ea81 
 +              
 +    ;-------------------------------------------------- 
 +    ;   move sprite 
 +    ;--------------------------------------------------     
 +     
 +    animate   inc $d000 
 +              lda $d000 
 +              bne ex 
 +              lda #50 
 +              sta $d000         
 +    ex        rts 
 +     
 +    ;-------------------------------------------------- 
 +    ;   Sprite 1 init 
 +    ;-------------------------------------------------- 
 +     
 +    setup_sprite 
 +     
 +              lda #1           ; Colors 
 +              sta $d025 
 +              lda #11 
 +              sta $d026 
 +              lda #15 
 +              sta $d027        ;  
 +              lda #64 
 +              sta $d000        ; X-Position 
 +              lda #$01         ; 
 +              sta $d015        ; Sprite 1 on 
 +              sta $d01c        ; Multicolor 
 +              rts 
 +     
 +    ;-------------------------------------------------- 
 +    ;   2 Sprites  
 +    ;-------------------------------------------------- 
 +     
 +    *=$0a00 
 +      
 +    !byte $ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f0  
 +    !byte $00,$00,$b0,$00,$00,$A0,$00,$00,$AC,$00,$00,$F8,$00,$00,$FE,$0E  
 +    !byte $f0,$aa,$a9,$7c,$aa,$aa,$5b,$ab,$ea,$aa,$eb,$fa,$ab,$03,$f0,$00  
 +    !byte $03,$f0,$00,$03,$c0,$00,$03,$00,$00,$00,$00,$00,$ff,$ff,$ff,$ff  
 +     
 +    ; $0a40 
 +      
 +    !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF 
 +    !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF   
 +    !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF   
 +    !byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
base/simple_sprite-multiplexer_using_sprite_1.txt · Last modified: 2015-04-17 04:33 (external edit)