;vcshead.a02 - C02 Assembly Language Header file for Atari 2600
;based on  VCS.H Version 1.05, 13/November/2003
;https://github.com/munsie/dasm/blob/master/machines/atari2600/vcs.h

;TIA Registers - Write
VSYNC   EQU $00  ;0000 00x0   Vertical Sync Set-Clear
VBLANK  EQU $01  ;xx00 00x0   Vertical Blank Set-Clear
WSYNC   EQU $02  ;---- ----   Wait for Horizontal Blank
RSYNC   EQU $03  ;---- ----   Reset Horizontal Sync Counter
NUSIZ0  EQU $04  ;00xx 0xxx   Number-Size player/missle 0
NUSIZ1  EQU $05  ;00xx 0xxx   Number-Size player/missle 1
COLUP0  EQU $06  ;xxxx xxx0   Color-Luminance Player 0
COLUP1  EQU $07  ;xxxx xxx0   Color-Luminance Player 1
COLUPF  EQU $08  ;xxxx xxx0   Color-Luminance Playfield
COLUBK  EQU $09  ;xxxx xxx0   Color-Luminance Background
CTRLPF  EQU $0A  ;00xx 0xxx   Control Playfield, Ball, Collisions
REFP0   EQU $0B  ;0000 x000   Reflection Player 0
REFP1   EQU $0C  ;0000 x000   Reflection Player 1
PF0     EQU $0D  ;xxxx 0000   Playfield Register Byte 0
PF1     EQU $0E  ;xxxx xxxx   Playfield Register Byte 1
PF2     EQU $0F  ;xxxx xxxx   Playfield Register Byte 2
RESP0   EQU $10  ;---- ----   Reset Player 0
RESP1   EQU $11  ;---- ----   Reset Player 1
RESM0   EQU $12  ;---- ----   Reset Missle 0
RESM1   EQU $13  ;---- ----   Reset Missle 1
RESBL   EQU $14  ;---- ----   Reset Ball
AUDC0   EQU $15  ;0000 xxxx   Audio Control 0
AUDC1   EQU $16  ;0000 xxxx   Audio Control 1
AUDF0   EQU $17  ;000x xxxx   Audio Frequency 0
AUDF1   EQU $18  ;000x xxxx   Audio Frequency 1
AUDV0   EQU $19  ;0000 xxxx   Audio Volume 0
AUDV1   EQU $1A  ;0000 xxxx   Audio Volume 1
GRP0    EQU $1B  ;xxxx xxxx   Graphics Register Player 0
GRP1    EQU $1C  ;xxxx xxxx   Graphics Register Player 1
ENAM0   EQU $1D  ;0000 00x0   Graphics Enable Missle 0
ENAM1   EQU $1E  ;0000 00x0   Graphics Enable Missle 1
ENABL   EQU $1F  ;0000 00x0   Graphics Enable Ball
HMP0    EQU $20  ;xxxx 0000   Horizontal Motion Player 0
HMP1    EQU $21  ;xxxx 0000   Horizontal Motion Player 1
HMM0    EQU $22  ;xxxx 0000   Horizontal Motion Missle 0
HMM1    EQU $23  ;xxxx 0000   Horizontal Motion Missle 1
HMBL    EQU $24  ;xxxx 0000   Horizontal Motion Ball
VDELP0  EQU $25  ;0000 000x   Vertical Delay Player 0
VDELP1  EQU $26  ;0000 000x   Vertical Delay Player 1
VDELBL  EQU $27  ;0000 000x   Vertical Delay Ball
RESMP0  EQU $28  ;0000 00x0   Reset Missle 0 to Player 0
RESMP1  EQU $29  ;0000 00x0   Reset Missle 1 to Player 1
HMOVE   EQU $2A  ;---- ----   Apply Horizontal Motion
HMCLR   EQU $2B  ;---- ----   Clear Horizontal Move Registers
CXCLR   EQU $2C  ;---- ----   Clear Collision Latches

;TIA Regisers - Read                          bit 7   bit 6
CXM0P   EQU $00  ;xx00 0000   Read Collision  M0-P1   M0-P0
CXM1P   EQU $01  ;xx00 0000                   M1-P0   M1-P1
CXP0FB  EQU $02  ;xx00 0000                   P0-PF   P0-BL
CXP1FB  EQU $03  ;xx00 0000                   P1-PF   P1-BL
CXM0FB  EQU $04  ;xx00 0000                   M0-PF   M0-BL
CXM1FB  EQU $05  ;xx00 0000                   M1-PF   M1-BL
CXBLPF  EQU $06  ;x000 0000                   BL-PF 
CXPPMM  EQU $07  ;xx00 0000                   P0-P1   M0-M1
INPT0   EQU $08  ;x000 0000   Read Pot Port 0
INPT1   EQU $09  ;x000 0000   Read Pot Port 1
INPT2   EQU $0A  ;x000 0000   Read Pot Port 2
INPT3   EQU $0B  ;x000 0000   Read Pot Port 3
INPT4   EQU $0C  ;x000 0000   Read Input (Trigger) 0
INPT5   EQU $0D  ;x000 0000   Read Input (Trigger) 1

; RIOT Registers
SWCHA   EQU $280  ;Port A data register for joysticks:
                  ;Bits 4-7 for player 1.  Bits 0-3 for player 2.
SWACNT  EQU $281  ;Port A data direction register (DDR)
SWCHB   EQU $282  ;Port B data (console switches)
SWBCNT  EQU $283  ;Port B DDR
INTIM   EQU $284  ;Timer output
TIM1T   EQU $294  ;set 1 clock interval
TIM8T   EQU $295  ;set 8 clock interval
TIM64T  EQU $296  ;set 64 clock interval
T1024T  EQU $297  ;set 1024 clock interval

