Skip to content

Instantly share code, notes, and snippets.

Created September 28, 2017 00:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/67b32347d5ca97d21a4c9e69a3b1a1a3 to your computer and use it in GitHub Desktop.
Save anonymous/67b32347d5ca97d21a4c9e69a3b1a1a3 to your computer and use it in GitHub Desktop.
8bitworkshop.com {"platform":"vcs"}
;; Atari 2600 Recurse Center logo (or something resembling it...)
;; Julian Squires <julian@cipht.net> / 2017
processor 6502
include "vcs.h"
include "macro.h"
;; these macros are from 8bitworkshop
MAC TIMER_SETUP
.lines SET {1}
lda #(((.lines-1)*76-14)/64)
sta WSYNC
sta TIM64T
ENDM
MAC TIMER_WAIT
.waittimer
lda INTIM
bne .waittimer
ENDM
seg.u variables
org $80
seg code
org $f000
start
CLEAN_START
frame
VERTICAL_SYNC
TIMER_WAIT 37
;; colors!
lda #$0e
sta COLUBK
lda #$c6 ; or maybe $c2, $c3, $d0
sta COLUP0
sta COLUP1
lda #$00
sta COLUPF
lda #%11000
sta CTRLPF
TIMER_WAIT ; end of vbl
ldx #37
.vblank sta WSYNC
dex
bne .vblank
; Disable VBLANK
stx VBLANK
ldy #7
stx PF0
stx PF1
stx PF2
sta WSYNC
SLEEP 39
sta RESP0
sta RESP1
.initial_margin
sta WSYNC
dey
bne .initial_margin
;; 16 times:
ldy #16
next_line:
ldx #7
;; load next row of stuff
.1 lda #0
sta PF0
;lda pf1data,y
sta PF1
lda pf2data,y
sta PF2
lda grp0data,y
sta GRP0
;lda grp1data,y
;sta GRP1
lda nusiz0data,y
sta NUSIZ0
lda pf0data1,y
sta PF0
lda pf1data1,y
sta PF1
lda #0
sta PF2
;; loop for 7 lines
sta WSYNC
dex
bne .1
lda pf0data,y
sta PF0
.if 0
lda hmp0data,y
beq .2
sta HMP0
sta WSYNC
lda pf0data1,y
sta PF0
SLEEP 70
sta HMOVE
dey
bne next_line
.endif
.2
lda pf1data,y
sta PF1
lda pf2data,y
sta PF2
SLEEP 4
lda pf0data1,y
sta PF0
lda pf1data1,y
sta PF1
lda #0
sta PF2
sta WSYNC
dey
bne next_line
ldy #56
lda #$00
sta PF0
sta PF1
sta PF2
.3
sta WSYNC
dey
bne .3
lda #2
sta VBLANK
;; overscan
TIMER_SETUP 29
TIMER_WAIT
jmp frame
align $100
pf0data: .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
pf1data: .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
pf2data: .byte 0,$fc,$ac,$5c,$f8,$c0,$fc,$04,$f4,$f4,$f4,$f4,$f4,$f4,$04,$fc,0
pf0data1: .byte 0,$f0,$a0,$50,$f0,$30,$f0,0,$f0,$f0,$f0,$f0,$f0,$f0,0,$f0,0
pf1data1: .byte 0,$c0,$c0,$c0,$80,0,$c0,$40,$40,$40,$40,$40,$40,$40,$40,$c0,0
grp0data: .byte 0,0,0,0,0,0,0,0,0,0, $6c, 0, $a8, 0,0,0
nusiz0data: .byte 0,0,0,0,0,0,0,0,0,0, $37, 0, $37, 0,0,0
hmp0data: .byte 0,0,0,0,0,0,0,0,0,0,0,0, 0, 0, 0,0,0
org $fffc
.word start
.word start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment