Created
October 30, 2018 10:38
-
-
Save rdeioris/2450daeec8276d9095e697ee7e10d153 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| BACKGROUND_COLOR = $5100 ; assign the background color | |
| BACKGROUND_SCROLL_X = $5101 | |
| BACKGROUND_SCROLL_Y = $5102 | |
| ; write to chr rom | |
| CHR_COL = $5103 | |
| CHR_ROW = $5104 | |
| CHR_PIXEL = $5105 | |
| INPUT = $5106 | |
| SPRITE0 = $5000 | |
| SPRITE1 = $5004 | |
| SPRITE2 = $5008 | |
| SPRITE3 = $500c | |
| ; bit 0 -> 8/16 mode bit 1-2 select background | |
| BACKGROUND_MODE = $5107 | |
| BACKGROUND0 = $4000 | |
| BACKGROUND1 = $4400 | |
| BACKGROUND2 = $4800 | |
| BACKGROUND3 = $4c00 | |
| LDA #$01 ; 16x16 mode | |
| STA BACKGROUND_MODE | |
| LDA #$03 | |
| STA BACKGROUND_COLOR | |
| LDA #$04 ; set color 4 to chr ram 0,0 | |
| STA CHR_PIXEL | |
| LDA #127 | |
| STA SPRITE0 ; tile | |
| LDA #100 | |
| STA SPRITE0+1 ; x | |
| LDA #100 | |
| STA SPRITE0+2 ; y | |
| LDA #$29 | |
| STA SPRITE0+3 ; flags 0=enable/disable 1=flip_x 2=flip_y 3=8/16 4-7=scale | |
| LDA #127 | |
| STA SPRITE1 ; tile | |
| LDA #148 | |
| STA SPRITE1+1 ; x | |
| LDA #100 | |
| STA SPRITE1+2 ; y | |
| LDA #$2b | |
| STA SPRITE1+3 ; flags 0=enable/disable 1=flip_x 2=flip_y 3=8/16 4-7=scale | |
| LDA #127 | |
| STA SPRITE2 ; tile | |
| LDA #100 | |
| STA SPRITE2+1 ; x | |
| LDA #148 | |
| STA SPRITE2+2 ; y | |
| LDA #$2d | |
| STA SPRITE2+3 ; flags 0=enable/disable 1=flip_x 2=flip_y 3=8/16 4-7=scale | |
| LDA #127 | |
| STA SPRITE3 ; tile | |
| LDA #148 | |
| STA SPRITE3+1 ; x | |
| LDA #148 | |
| STA SPRITE3+2 ; y | |
| LDA #$2f | |
| STA SPRITE3+3 ; flags 0=enable/disable 1=flip_x 2=flip_y 3=8/16 4-7=scale | |
| ; load content of BACKGROUND 0 | |
| LDX #0 | |
| fill0: | |
| LDA map0,X | |
| STA BACKGROUND0,X | |
| INX | |
| BNE fill0 | |
| ; load content of BACKGROUND 1 | |
| LDX #0 | |
| fill1: | |
| LDA map1,X | |
| STA BACKGROUND1,X | |
| INX | |
| BNE fill1 | |
| ; game loop | |
| loop: | |
| JMP loop | |
| vblank: | |
| right: | |
| LDA INPUT ; read input into accumulator | |
| AND #$04 ; check bit 3 | |
| BEQ left | |
| INC BACKGROUND_SCROLL_X | |
| BNE left | |
| LDA BACKGROUND_MODE | |
| EOR #$02 ; invert bit 1 (switch horizontal background) | |
| STA BACKGROUND_MODE | |
| left: | |
| LDA INPUT | |
| AND #$08 ; check bit 4 | |
| BEQ end_input | |
| DEC BACKGROUND_SCROLL_X | |
| LDA BACKGROUND_SCROLL_X ; reload BACKGROUND_SCROLL_X in the accumulator so we can CMP | |
| CMP #$FF | |
| BNE end_input | |
| LDA BACKGROUND_MODE | |
| EOR #$02 ; invert bit 1 (switch horizontal background) | |
| STA BACKGROUND_MODE | |
| end_input: | |
| RTI | |
| map0: | |
| .byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 | |
| .byte 6,1,1,1,1,1,1,88,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,88,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 | |
| map1: | |
| .byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,6 | |
| .byte 1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,6 | |
| .byte 1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6 | |
| .byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 | |
| .segment "VECTORS" | |
| .word vblank |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment