mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-12-01 13:50:30 +00:00
52 lines
1.0 KiB
Plaintext
52 lines
1.0 KiB
Plaintext
|
|
||
|
processor 6502
|
||
|
include "vcs.h"
|
||
|
include "macro.h"
|
||
|
include "xmacro.h"
|
||
|
|
||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
; Variables segment
|
||
|
|
||
|
seg.u Variables
|
||
|
org $80
|
||
|
|
||
|
Temp .byte
|
||
|
|
||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
; Code segment
|
||
|
|
||
|
seg Code
|
||
|
org $f000
|
||
|
|
||
|
Start
|
||
|
CLEAN_START
|
||
|
|
||
|
NextFrame
|
||
|
lsr SWCHB ; test Game Reset switch
|
||
|
bcc Start ; reset?
|
||
|
; 1 + 3 lines of VSYNC
|
||
|
VERTICAL_SYNC
|
||
|
; 37 lines of underscan
|
||
|
TIMER_SETUP 37
|
||
|
TIMER_WAIT
|
||
|
; 192 lines of frame
|
||
|
TIMER_SETUP 192
|
||
|
; draw colors based on timer value
|
||
|
LRainbow
|
||
|
lda INTIM ; load timer
|
||
|
sta COLUBK ; store background
|
||
|
bne LRainbow ; loop until timer == 0
|
||
|
TIMER_WAIT ; timer is already 0, no-op
|
||
|
; 29 lines of overscan
|
||
|
TIMER_SETUP 29
|
||
|
TIMER_WAIT
|
||
|
; total = 262 lines, go to next frame
|
||
|
jmp NextFrame
|
||
|
|
||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
; Epilogue
|
||
|
|
||
|
org $fffc
|
||
|
.word Start ; reset vector
|
||
|
.word Start ; BRK vector
|