Jump to content



1

Glossary


7 replies to this topic

#1 Ruffsta OFFLINE  

Ruffsta

    Star Raider

  • 78 posts

Posted Tue Dec 27, 2005 3:03 PM

was thinking there should be a full glossary here to help newbies..

VSYNC = vertical sync lines
VBLANK = vertical blank lines
WSYNC
NUSIZ0
NUSIZ1
COLUP0
COLUP1
COLUPF
COLUBK
CTRLPF
PF0
PF1
PF2
RESP0
RESP1
RESM1
AUDC0
AUDC1
AUDF0
AUDF1
AUDV0
AUDV1
GRP0
GRP1
ENAM1
HMP0
HMP1
HMM1
VDELP0
VDELP1
HMOVE
HMCLR
CXCLR
CXM1P
CXP1FB
CXM1FB
CXPPMM
INPT4
SWCHA
SWCHB
INTIM
TIM8T
TIM64T
ADC
AND
ASL
BCC
BCS
BEQ
BIT
BMI
BNE
BPL
.byte
CLC
CLD
CMP
CPY
DEC
DEX
EOR
INC
INX
JMP
LDA
LDX
LDY
LSR
NOP
ORA
ORG
ROL
SBC
SEC
SED
STA
STX
TAY
TXA

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.

#2 SeaGtGruff OFFLINE  

SeaGtGruff

    River Patroller

  • 4,547 posts
  • Location:Georgia, USA

Posted Tue Dec 27, 2005 6:40 PM

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.

View Post


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

Attached Files



#3 Ruffsta OFFLINE  

Ruffsta

    Star Raider

  • 78 posts

Posted Tue Dec 27, 2005 9:52 PM

cool! thank you.. i'm sure others will appreciate this topic

#4 djmips OFFLINE  

djmips

    Dragonstomper

  • 591 posts
  • scrolling
  • Location:Seattle

Posted Wed Dec 28, 2005 7:32 PM

INTIM = INterval TIMer

#5 SeaGtGruff OFFLINE  

SeaGtGruff

    River Patroller

  • 4,547 posts
  • Location:Georgia, USA

Posted Wed Dec 28, 2005 8:05 PM

djmips, on Wed Dec 28, 2005 9:32 PM, said:

INTIM = INterval TIMer

View Post


Thank you! That makes better sense now.

Michael Rideout

#6 brpocock OFFLINE  

brpocock

    Chopper Commander

  • 245 posts
  • Skyline hacker
  • Location:Jacksonville, FL

Posted Mon Jan 23, 2006 9:37 AM

SeaGtGruff, on Tue Dec 27, 2005 8:40 PM, said:

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

View Post


Looks good, but minor correction: It's missing "inc .a" and "dec .a" opcodes. Not sure if they belong with "inc/dec" (RAM) or with "inx/iny/dex/dey" ...

#7 brpocock OFFLINE  

brpocock

    Chopper Commander

  • 245 posts
  • Skyline hacker
  • Location:Jacksonville, FL

Posted Mon Jan 23, 2006 9:39 AM

brpocock, on Mon Jan 23, 2006 11:37 AM, said:

Looks good, but minor correction: It's missing "inc .a" and "dec .a" opcodes. Not sure if they belong with "inc/dec" (RAM) or with "inx/iny/dex/dey" ...

View Post


D'oh, stupid me.

They're absent on the pure 6502 and the 6507, of course.

My cheatsheet on the wall has 65c02 opcodes and I didn't notice the asterisk. Sorry.

#8 SeaGtGruff OFFLINE  

SeaGtGruff

    River Patroller

  • 4,547 posts
  • Location:Georgia, USA

Posted Mon Jan 23, 2006 10:20 AM

brpocock, on Mon Jan 23, 2006 11:37 AM, said:

SeaGtGruff, on Tue Dec 27, 2005 8:40 PM, said:

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

View Post


Looks good,

View Post


Aside from the very minor changes that I made-- mostly just adding the Atari 2600 color clock counts, and "fixing" the links so they still work even if the page is saved to your computer-- the entire document is by John Pickens, although the copy that's posted on the 6502.org web site says "Updated by Bruce Clark":

http://www.6502.org/...502opcodes.html

Michael Rideout




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users