Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
project:atari_asteroids_autoplay [2013/03/12 16:16] – [Electronics Notes] smark | project:atari_asteroids_autoplay [2013/03/17 04:46] – [3/16/2013 @ 9:07pm] smark | ||
---|---|---|---|
Line 21: | Line 21: | ||
===== Electronics Notes ===== | ===== Electronics Notes ===== | ||
+ | ==== Electrohome Input Pin Assignments (Deflection Amplifier - P703) ==== | ||
^ Pin No ^ Description ^ Impedance ^ Voltage ^ | ^ Pin No ^ Description ^ Impedance ^ Voltage ^ | ||
| 1 | X | 1K Ohms | +/- 10V (0V Center) | | | 1 | X | 1K Ohms | +/- 10V (0V Center) | | ||
Line 29: | Line 30: | ||
| 6 | Key | | | | | 6 | Key | | | | ||
| 7 | GND | | | | | 7 | GND | | | | ||
- | * Source: {{: | + | Source: {{: |
===== Programming Notes ===== | ===== Programming Notes ===== | ||
Line 38: | Line 39: | ||
==== 3/12/2013 @ 8:35am ==== | ==== 3/12/2013 @ 8:35am ==== | ||
Started the write up and research for the project. | Started the write up and research for the project. | ||
+ | |||
+ | ==== 3/12/2013 @ 7:18pm ==== | ||
+ | Did some investigation with the oscilloscope. I made this video:\\ | ||
+ | \\ | ||
+ | [[http:// | ||
+ | \\ | ||
+ | I'm not sure if I'm going to be able to use the vector output as the input into the computer it moves awful fast and I'm not sure serial communications are going to be able to keep up. Another approach I may be able take is to investigate the possibility of watching the input and output to the vector RAM and looking at that for WHERE the objects are. So I'll have to draw them myself. | ||
+ | |||
+ | ==== 3/13/2013 @ 1:20pm ==== | ||
+ | So I need to catch up from my experimentation lastnight. I discerned a lot. I made images of all of the Atari schematics: | ||
+ | \\ | ||
+ | {{: | ||
+ | \\ | ||
+ | And then got to work. I looked around and made a few posts:\\ | ||
+ | \\ | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | \\ | ||
+ | A very helpful person on Reddit showed me the world of Logic Analyzers. I found a device online: [[http:// | ||
+ | \\ | ||
+ | I then got to thinking that now I need to determine where I am going to intercept the data. This is where I found an AMAZINGLY detailed page:\\ | ||
+ | \\ | ||
+ | [[http:// | ||
+ | \\ | ||
+ | I have also created a local copy (don't kill me Jed!) simply because I know a lot of these times of sites phase in and out of existence. I would hate for all of this great information to disappear. You can find the local copy {{: | ||
+ | \\ | ||
+ | Basically I believe I need to intercept the outputs of XVLD, YVLD, and BVLD. This is where all of the digital signals are condensed into the X, Y, and On/Off digital stream. From here it goes to the DACs which convert it to output to the Electrohome. I hooked an oscilloscope up to one of the leads of one of the LS134(?) chips which I think is XVLD or YVLD. Using the test pattern (which keeps the picture static) I was able to get a good look at the signal going through there. It looks like how I think a digital signal would look on an analog oscillocope... Lines at 0 and Lines at positive whatever voltage with no connections in between. Almost like _-_-_-_-_ or something. | ||
+ | |||
+ | ==== 3/16/2013 @ 9:07pm ==== | ||
+ | So I haven' | ||
+ | \\ | ||
+ | I'm currently going around and around unable to decide where the best place is to intercept the data. I've found out where I can intercept it but it takes 8+ leads to get anything valuable out of it. XVLD/YVLD turned out to be a dead end as all they do are tell whether or not there is a valid value there. I'm torn in a few different directions...\\ | ||
+ | \\ | ||
+ | Get the outputs from DACX1-10* / DACY1-10* / BLVD. The X/Y ends up being 10 bit values which are fed to the actual DACs (B11/D11). I hooked the logic analyzer up to B11 pins 13 thru 6 (DACY10-3*) where Pin 13 (DACY10*) is the most significant bit (512). It can be visualized as follows: | ||
+ | |||
+ | |||
+ | ^ DACY#* | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | | ||
+ | ^ B11 Pin | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | | ||
+ | ^ Logic Channel | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | N/A | N/A | | ||
+ | ^ Sample Value | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | | ||
+ | ^ Digit Weight | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | | ||
+ | ^ Value | 512 | 0 | 128 | 0 | 64 | 32 | 0 | 16 | 0 | 0 | | ||
+ | ^ Total | 692 |||||||||| | ||
+ | |||
+ | Now whats important to note is that the DAC does not have an internal register so it doesn' | ||
+ | \\ | ||
+ | Anyway, I hooked the logic analyzer up to B11 Pins 13 thru 6, which leaves off pins 5 and 4, which means you lose the last two bits of accuracy. I'm not sure if it is important at this point or not. That means the last two bits are always considered 0. The Saleae Logic software is pretty cool. You end up getting data that looks like this: | ||
+ | |||
+ | |||
===== Major Challenges ===== | ===== Major Challenges ===== | ||
===== Resources Used ===== | ===== Resources Used ===== | ||
[[http:// | [[http:// | ||
- | {{: | + | {{: |
- | {{: | + | {{: |
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | [[http:// |