Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hardware:magic_system [2016/06/11 12:16]
ex_writer [Magic System]
hardware:magic_system [2016/06/11 12:35] (current)
ex_writer [Example: Space Invaders]
Line 89: Line 89:
 === Intercept Register (Collision Detection) === === Intercept Register (Collision Detection) ===
  
-Software reads the intercept register ([[i o ports|input port]] $8) to determine if an intercept occurred on an OR or XOR write. An intercept is defined as the writing of a non-zero pixel location that previously contained a non-zero pixel. A non-zero ​pixel is a pixel with a value of 01, 10, or 11. A 1 in the intercept register ​means an intercept has occurred. Bits 0–3 give the intercept information for all OR or XOR writes since the last input from the intercept register. An input from the intercept register resets these bits. A bit is set to 1 if an intercept occurs in the appropriate position and will not be reset until after the next intercept register input.+Software reads the intercept register ([[i o ports|input port]] $8) to determine if an intercept occurred on an OR or XOR write. An intercept is defined as the writing of a non-zero pixel (i.e., 01B, 10B, or 11B) location that previously contained a non-zero pixel. ​  
 + 
 +bit corresponding to the pixel position ​in the intercept register ​will be written to logical 1. Bits 0–3 give the intercept information for all OR or XOR writes since the last input from the intercept register. An input from the intercept register resets these bits. A bit is set to 1 if an intercept occurs in the appropriate position and will not be reset until after the next intercept register input.
  
 ^ Bit ^ Meaning ^ ^ Bit ^ Meaning ^
Line 101: Line 103:
 | 7 | Intercept in pixel 0 in last OR or XOR write | | 7 | Intercept in pixel 0 in last OR or XOR write |
  
 +From [[http://​www.ballyalley.com/​faqs/​BPA%20Video%20Hardware%20FAQ/​Bally_Professional_Arcade_Video_Hardware%20(2001)(Tony%20Miller).pdf|A Description of the Bally Professional Arcade Video Hardware]], p. 24:
 +
 +> "The Intercept register contains several flag bits which save the result of previous OR or XOR Magic Memory writes. If any of bits [3:0] are set, this indicates that the previous write to the corresponding pixel (bit[3] = pixel[3], etc.,) wrote a non-zero pixel with a non-zero value. Bits [3:0] track the last Magic memory write, while bits [7:4] track //any// write to the corresponding pixel (bit[7]=pixel[3],​etc.,​) since the last time the Intercept register was read. Thus, once any of bits [7:4] are set to logical 1, they will remain that way until the register is read, at which time these bits will be cleared to logical 0."
 === Example: Space Invaders === === Example: Space Invaders ===
  
Line 111: Line 116:
 </​code>​ </​code>​
  
-Directly after the pattern write, intercept status is loaded in A, then A is ORed to see if any bits are set (indicating an intercept). If the OR result is 0, no collision occurs, and the collision check subroutine exits.+Directly after the pattern write, intercept status is loaded in A, then A is ORed to see if any bits are set (indicating an intercept). If the OR result is 0, no collision occurs, and the collision check subroutine exits. ​(//​Football//​ uses an identical check.)
  
 ---- ----