; vcsdrive - Simple Atari VCS driving game ; ; Copyright (C) 2024 Ian Cowburn (ianc@noddybox.demon.co.uk) ; ; This program is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with this program. If not, see . ; ; ------------------------------------------------------------------------- ; ; Code ; processor 6502 option output-file,vcsdrive.bin include vcs.asm bgcolour equ $81 org $f000 ; Set up stack pointer start: sei cld ldx #$ff txs ; Initialise page zero lda #0 .zero: sta $0,x dex bne zero ; Start frame next_frame: lda #2 ldy bgcolour sta VBLANK sty COLUBK iny sta VSYNC sty COLUBK iny sta WSYNC sty COLUBK iny sta WSYNC sty COLUBK iny sta WSYNC sty COLUBK iny lda #0 sta VSYNC ; Do VBLANK ldx #37 .vblank: sta WSYNC dex bne vblank lda #0 sta VBLANK ; Draw 192 visible scan lines ldx #192 .scanlines: sty COLUBK sta WSYNC iny dex bne scanlines ; Complete the frame lda #2 sta VBLANK ldx #30 .complete: sty COLUBK iny sta WSYNC dex bne complete dec bgcolour jmp next_frame ; Set start adresses and pad ROM org $fffc word start word start