----------------------------------------------------------------- | BALLY SSIO TEST EPROM | ----------------------------------------------------------------- COPYRIGHT 1997 REVISION NUMBER: 1.1 REVISION DATE: 16 March 1997 CREATED BY: Clay Cowgill STANDARD DISCLAIMER: -------------------- REMEMBER, NO WARRANTIES, EXPRESS OR IMPLIED, ARE GIVEN. USE THIS INFORMATION AT YOUR OWN RISK. I AM NOT RESPONSIBLE FOR ANY DAMAGES THAT MAY OCCUR TO YOUR PERSON OR PROPERTY. --------------------------------------------------------------------- GENERAL OVERVIEW: ----------------- After getting frustrated *way* too many times trying to debug MCR game sound boards (The "Super Sound I/O" in Tron, Satan's Hollow, Spy Hunter, Two Tigers, Wacko, Solar Fox, Kick, Domino Man, Timber, Discs of Tron, etc, etc, etc... ;-) I finally sat down and wrote my own test ROM for the little monsters. It's pretty simple-- you replace ROM 0 on the SSIO and fire up the system. Depending on the setting of the dip switches on the board, different tests are run. The list is: 1) onboard RAM test (thorough!) 2) Sound chip output test 3) Sound output filter test 4) Panning test 5) Sound chip I/O test 6) Chip select tester (hits all I/O selects) The main reason for this is because even when the whole game board is running, it's tough to debug sound-- you have to go to the self test screen, select the sound test, choose "all sounds" and then poke around the board tracing the sound paths. The annoying part is that the "game" sound tests use different sounds on different sound channels, so if you're trying to find a problem with Sound channel "B" on the second sound chip, you can only test while the "all sounds test" cycles by a sound that's on channel "B". This is even tougher if you've got the thing on the bench without any controls hooked up. Grrrr... So, my ROM gets around that. You don't even need the rest of the game board working to get the SSIO fixed and operational. As long as you've got power and the test ROM you can work everything over... The sound test puts out constant square waves from each sound channel at different frequencies so it's easy to track them around the board. The sound output tests exercise the parallel ports on the 8910 chips. Panning and filter use the parallel ports to control the sound shaping circuits. The RAM test gives the 2K SRAM a severe beating. I don't trust the built-in SSIO RAM test... The Chip Select test goes out and pounds on each address in the address map so you can make sure that everything is decoding OK and getting its chip selects... INSTRUCTIONS: ------------- Remove the program ROM 0 at location "A7" on the SSIO board. Place the SNDTEST ROM in the "A7" socket. (Note: SSIO boards may be jumpered for use with 2732 or 2532 type EPROMs. Your SNDTEST ROM type should match the rest of the ROMs on the SSIO board you're going to test.) Once the SNDTEST ROM is installed, locate dip-switch block SW3 near the edge of the PCB and verify that all the switches are in the "OFF" position. Apply power to the board. The SSIO can remain connected to the rest of boards in the system (CPU, Video Generator, etc.). (The CPU will complain that there is a problem with the sound board, don't worry about it.) The LED at location LED3 should be OFF. Once power is applied there are six tests that can be performed by the SNDTEST ROM simply by pushing one of the first six switches on SW3. (Switches 7 and 8 are not used.) Note: You'll definately want the schematics handy when you're working on one of these boards to get full use out of the SNDTEST ROM! RUNNING THE TESTS: ----------------- When you want to run a test, set SW3 to all "OFF" and hit the reset switch. LED3 will be dark and you can run a test by closing the appropriate switch. When you're done with a test, return SW3 to all "OFF" and hit reset. Then choose another test with SW3. SWITCH 1 -- Test 8910 at F7 Closing switch one will program the 8910 at location F7 to output three maximum volume square waves. The outputs appear at Pins 3,4, and 38. Each of the square waves output will have a different duty cycle so you should be able to see/hear the difference between them as you trace through the circuit. (Note: I do all this testing with a scope, so I'm not real sure what it'll sound like with the amp connected. I picked values to make the waves look ok on a scope, they might sound pretty nasty. Let me know if it is annoying.) When the commands have all been sent to the sound chip, LED3 will light. SWITCH 2 -- Test 8910 at F6 Same as above test, except for the sound chip as F6. SWITCH 3 -- Test LED3 This test simply lights LED3 to make sure it's working. It'll probably get replaced by another test when needed. If LED3 does not light, there is either a problem with the latch driving the LED, or some other CPU error (bad Z80 at A12, bad buffers on the Z80 address/data lines, shorted lines etc.) SWITCH 4 -- Test 8910 I/O Ports Closing switch 4 starts an I/O port output test on both sound chips. Pins 6 through 21 will produce square waves, each twice the frequency of the previous, starting with pin 21 (IOA0) and pin 13 (IOB0). (So on a scope, starting at pin 13 and working up to pin 6 you should series of square waves each twice the frequency of the previous.) If you encounter any "dead" lines during this test, try another 8910 chip. If that doesn't help, look for shorted traces or bad IC's hanging off the line. LED3 will light when the test is running. SWITCH 5 -- Test RAM at A6 Closing switch 5 runs a fairly thorough RAM test on the RAM chip at A6. The test does pattern tests, walking bit tests, and full on/off tests and should find most bad RAMs. The test only takes a fraction of a second to run (it's only 2K!) and LED3 will light IF THE RAM IS GOOD. If LED3 doesn't come on immediately, return SW3 to all off, hit reset and close switch 5 again. Watch LED3 very closely (or probe it with a scope) and you'll see a brief flash as the test runs. Replace the RAM and try again. SWITCH 6 -- Test chip selects This test goes out and hits every location that the SSIO Z-80 uses in it's memory decoder arrangement. (74ls138's at B12 and B13) Using a scope or logic probe you can verify and trace chip selects for the following segments: SSIO Memory Map --------------- 0xF000 SW3 switches (d0-d5 only) B13 pin 7 0xE000 Clear Processor Interrupt (CLPINT*) B13 pin 9 0xD000 LED Latch (d0-d5, d0 is LED 3) (TLED*) B13 pin 10 0xC000 Write Status Latch (WSTAT*) B13 pin 11 0xB000 8910 at F6 B13 pin 12 0xA000 8910 at F7 B13 pin 13 0x9000 Read Interface RAM (RIRAM*) B13 pin 14 0x8000 Program RAM select (PRAM*) B13 pin 15 0x3000-0x3fff ROM3* B12 pin 12 0x2000-0x2fff ROM2* B12 pin 13 0x1000-0x1fff ROM1* B12 pin 14 0x0000-0x0fff ROM0* B12 pin 15 Note that there's a large undecoded segment on B12 that has available chip selects for 0x4000-0x7fff. Kinda interesting. CONCLUSION: ---------- I hope this code helps you out! Let me know if you need a copy of the SSIO schematics, since this ROM isn't very helpful without them. I'm working on an automated pan/filter test for SW3-3, but I wasn't very happy with it so I'm leaving it out for now. The most recent copy of the test ROM is located at http://www.wwwpro.com/clay/MCR_test.html One thing to watch out for -- Pin 6 (IOB7) on F6 is used as a "MUTE" control for the audio channels! If you happen to have that line stuck, you won't get any signals at all through the audio mixer. Check it with the Sound I/O Port Test as it goes into (and out of) the 7406 at A1 on pins 11 and 10. Also, the square waves coming off the 8910's are pretty easy to follow around the board until the final output filter at D3 (an LM3900). There's a cap/diode array that does some REALLY funky waveshaping. Feel free to contact me if something isn't clear, or you need help! -Clay ---------------------------------------------------------------------- | END | ----------------------------------------------------------------------