; ; gscats ; ; Created by Quinn Dunki on 7/9/17 ; .include "macros.s" .include "equates.s" .include "loader.s" mainBank2: SYNCDBR BITS8 lda #$f0 sta TEXTCOLOR BITS16 ; Set up SCBs jsr initSCBs SHRVIDEO lda #basePalette sta PARAML0 lda #0 jsr setPalette ldx #$2222 jsr colorFill jsr generateTerrain mainGameLoop: ldy mapScrollPos ; jsr renderTerrainColumns jsr renderTerrain jsr kbdScan lda quitRequested beq mainGameLoop CLASSICVIDEO jml (proDOSLongJump) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; kbdScan ; Processes keyboard input ; ; Trashes A ; kbdScan: EMULATION kbdScanLoop: lda KBD bpl kbdScanLoop sta KBDSTROBE cmp #(8 + $80) beq kbdScanLeftArrow cmp #(21 + $80) beq kbdScanRightArrow cmp #(32 + $80) beq kbdScanSpace NATIVE kbdScanDone: rts kbdScanLeftArrow: NATIVE lda mapScrollPos beq kbdScanDone dec sta mapScrollPos bra kbdScanDone kbdScanRightArrow: NATIVE lda mapScrollPos cmp #TERRAINWIDTH/4-80 beq kbdScanDone inc sta mapScrollPos bra kbdScanDone kbdScanSpace: NATIVE lda #1 sta quitRequested bra kbdScanDone basePalette: .word $0000,$0080,$0000,$000F,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 mapScrollPos: ; 4-pixel columns .word $0000 quitRequested: .word $0000 .include "graphics.s" .include "terrain.s" .include "trigTables.s" endMainBank2: ; Suppress some linker warnings - Must be the last thing in the file ; This is because Quinn doesn't really know how to use ca65 properly .SEGMENT "ZPSAVE" .SEGMENT "EXEHDR" .SEGMENT "STARTUP" .SEGMENT "INIT" .SEGMENT "LOWCODE"