Document Title: [AtariVecInstructions.html (html file)]
Compiled from Atari schematics and specifications
Eric Smith 7/2/92
---------------------------------------------
NOTE: The vector generator is little-endian. The instructions are 16 bit
words, which need to be stored with the least significant byte in the
lower (even) address. They are shown here with the MSB on the left.
The stack allows four levels of subroutine calls in the TTL version, but only
three levels in the gate array version.
inst bit pattern description
---- ------------------- -------------------
VCTR 000- yyyy yyyy yyyy normal vector
zzz- xxxx xxxx xxxx
HALT 001- ---- ---- ---- halt - does CNTR also on newer hardware
SVEC 010y yyyy zzzx xxxx short vector - don't use zero length
STAT 0110 ---- zzzz cccc status
SCAL 0111 -bbb llll llll scaling
CNTR 100- ---- dddd dddd center
JSRL 101a aaaa aaaa aaaa jump to subroutine
RTSL 110- ---- ---- ---- return
JMPL 111a aaaa aaaa aaaa jump
- unused bits
x, y relative x and y coordinates in two's complement (5 or 13 bit,
5 bit quantities are scaled by 2, so x=1 is really a length 2 vector.
z intensity, 0 = blank, 1 means use z from STAT instruction, 2-7 are
doubled
for actual range of 4-14
c color
b binary scaling, multiplies all lengths by 2**(1-b), 0 is double size,
1 is normal, 2 is half, 3 is 1/4, etc.
l linear scaling, multiplies all lengths by 1-l/256, don't exceed $80
d delay time, use $40
a address (word address relative to base of vector memory)
Notes:
Quantum:
the VCTR instruction has a four bit Z field, that is not
doubled. The value 2 means use Z from STAT instruction.
the SVEC instruction can't be used
Major Havoc:
SCAL bit 11 is used for setting a Y axis window.
STAT bit 11 is used to enable "sparkel" color.
STAT bit 10 inverts the X axis of vectors.
STAT bits 9 and 8 are the Vector ROM bank select.
Star Wars:
STAT bits 10, 9, and 8 are used directly for R, G, and B.