;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