Ruffsta, on Tue Dec 27, 2005 5:03 PM, said:
was thinking there should be a full glossary here to help newbies..
<snip - see below>
i know some more, but i do not know all of them, so if someone could fill in the rest it would be greatly appreciated.

Quote
VSYNC = vertical sync lines
VSYNC doesn't output any lines. You can call this "vertical sync pulse," but I think it's usually called just "vertical sync." When you turn this on (move a 2 to it), the Atari starts to send a vertical sync pulse to the TV or monitor. You leave it on for 3 scan lines (i.e., strobe WSYNC 3 times, or count cycles, or use the timer), then you turn it off (move a 0 to it). If you're crunched for time and need every cycle you can scrape up, you can perform other instructions while you're waiting for the 3 scan lines to finish.
Quote
VBLANK = vertical blank lines
Again, VBLANK doesn't output any lines. I think this is usually called just "vertical blank," or "vertical blanking," but I prefer to call it "video blanking," because you can turn it on and off anywhere and anytime, even in the middle of a scan line, so I think "video blanking" is a more accurate description, whereas "vertical blanking" implies that it's used exclusively during the vertical blanking interval. It's true that that's the way most 2600 programmers use it (for the VBI only), since the 2600 handles the horizontal blanking interval automatically, but VBLANK can be used to lengthen the HBI, or even to draw on the screen in black (but the timing issues prevent that from being a very useful thing to do, except perhaps in static screen displays such as a title screen).
Brief descriptions for the rest of the register names and opcodes are as follows:
WSYNC - wait for horizontal sync
By the way, I like to think of this in terms of a "carriage return/line feed" or "end of line" when I'm counting scan lines in a program. If you count cycles exactly, you can perform instructions all the way across the scan line and you won't need to use WSYNC-- like typing a paragraph and letting the words wraparound to the next lines automatically. But due to the timing differences that are caused by using branch instructions or crossing page boundaries, it's frequently necessary to use WSYNC to ensure that the instructions for the next line will line up exactly.
NUSIZ0 - number and size of player 0 and missile 0
NUSIZ1 - number and size of player 1 and missile 1
COLUP0 - color (or hue) and luminance of player 0 and missile 0
COLUP1 - color (hue) and luminance of player 1 and missile 1
COLUPF - color (hue) and luminance of the playfield and the ball
COLUBK - color (hue) and luminance of the background
CTRLPF - control settings for the playfield, ball, and object priorities
PF0 - the graphics register for playfield 0
PF1 - the graphics register for playfield 1
PF2 - the graphics register for playfield 2
RESP0 - reset the horizontal position of player 0
RESP1 - reset the horizontal position of player 1
RESM1 - reset the horizontal position of missile 1
AUDC0 - audio control 0
AUDC1 - audio control 1
AUDF0 - audio frequency 0
AUDF1 - audio frequency 1
AUDV0 - audio volume 0
AUDV1 - audio volume 1
GRP0 - the graphics register for player 0
GRP1 - the graphics register for player 1
ENAM1 - enable control for missile 1
HMP0 - horizontal movement register for player 0
HMP1 - horizontal movement register for player 1
HMM1 - horizontal movement register for missile 1
VDELP0 - vertical delay for player 0
Actually, it might be more correct to call this "video delay for player 0," because it doesn't delay player 0 for a scan line, it really delays player 0 until player 1 gets updated.
VDELP1 - vertical delay for player 1
Again, it might be more correct to call this "video delay for player 1," because it really delays player 1 until player 0 gets updated.
HMOVE - horizontal movement command
HMCLR - horizontal movement registers clear
CXCLR - collision registers clear
CXM1P - collision detection between missile 1 and player 0 or player 1
CXP1FB - collision detection between player 1 and the playfield or ball
CXM1FB - collision detection between missile 1 and the playfield or ball
CXPPMM - collision detection between the players or the missiles
INPT4 - input port 4
SWCHA - switches for port A
SWCHB - switches for port B
INTIM - inspect or interrogate (?) the timer (check the value in the timer)
TIM8T - set the timer to 8 times the number of indicated cycles
TIM64T - set the timer to 64 times the number of indicated cycles
The preceding list of registers is incomplete, and the descriptions I've given them may be kind of funky (I tried to expand the abbreviations, e.g., "INspect TIMer," but I don't think I've ever seen a clear explanation of what some the abbreviations stand for). For detailed information about the various registers, see the "Stella Programmer's Guide," found here:
http://atarihq.com/d...iles/stella.pdf
Most of the following are 6502 opcodes:
ADC - add with carry
AND - logical and
ASL - arithmetic shift left
BCC - branch on carry clear
BCS - branch on carry set
BEQ - branch on equal
BIT - test bits
BMI - branch on minus
BNE - branch on not equal
BPL - branch on plus
.byte - define a byte of data (an assembler instruction, not a 6502 opcode)
CLC - clear carry flag
CLD - clear decimal flag
CMP - compare accumulator
CPY - compare Y register
DEC - decrement
DEX - decrement X register
EOR - exclusive or
INC - increment
INX - increment X register
JMP - jump
LDA - load accumulator
LDX - load X register
LDY - load Y register
LSR - logical shift right
NOP - no operation
ORA - logical or accumulator
ORG - origin (an assembler instruction, not a 6502 opcode)
ROL - rotate left
SBC - subtract with carry
SEC - set carry flag
SED - set decimal flag
STA - store accumulator
STX - store X register
TAY - transfer accumulator to Y register
TXA - transfer X register to accumulator
You can find information on the 6502 opcodes here:
http://www.6502.org/tutorials/
Also, I've updated the HTML document by John Pickens to include the color clock counts for the Atari 2600. I hope that's okay with the powers that be (that HTML document has been reproduced on many web sites, so I figured it was probably okay). I'm attaching my slightly updated version to this post. The Atari 2600's color clock counts are in the column labeled "CLKS."
Michael Rideout