Fluke 9010a Question regarding 8080 Pod

orion3311

Well-known member

Donor 2013
Joined
Nov 25, 2008
Messages
5,217
Reaction score
30
Location
Blue Bell, Pennsylvania
Anyone who uses a Fluke 9010a know if it can read the input ports of an 8080? If so, how do you do it? I'm really confused when it comes to this topic - I understand in regards to its basically a command but is there a way to emulate/read it on the Fluke 9010a?

Long story short i'm just trying to get it check/read the dipswitches/inputs or play sounds on a Midway 8080 board.
 
Not sure if you are looking for specifics and this isn't specific, but if it works how I think it does then:

1. You have to know or figure out at what address the dip switches/inputs are located
2. Read that address(s)
 
Thats the confusing part - the 8080 doesn't work that way (or it doesn't have to). It has a specific instruction "IN or OUT" that it can use to read these "ports". Yeah normally it would be an address mapped IO but this seems to be different, hence my confooshun.
 
As long as you have the IO map then you should be able to read it, unless you are saying you don't know how to put it into IO mode?

Maybe your question is how do you switch between reading between IO and Memory mode? Unfortunately, I don't have the answer, but seems like a realatively easy question for anyone who has one.
 
Well I've not worked on any Midway boards as of yet.

But you will need the address map.

For example on Asteroids the saucer fire sound is at address 3C01
so if I WRITE @ 3C01 = 80 then do a loop it will give me the saucer fire sound on a loop. Making it easy enough to use a logic probe to check TTL states.

You could also do a read if you wanted to check the dip switches by doing a Read @ 2801 then a loop so you could see the state change when the signal is changed.

But then Atari is nice enough to provide a memory map so you know where everything is.

astmap.JPG
 
Yeah I'm familiar with reading the memory mapped io, but the 8080 cpu does it differently, its not a memory address, its an actual CPU command. Using Asteroids as an example, instead of the game code reading 0x2400-0x2404 for the switch inputs, it would just say "IN1" and get back an instant 8 bit answer. Thats what I finally understand, but I was trying to figure out how to perform that command from the Fluke, which only does basic memory read/writes like that Asteroids memory map. (In fact I also may write a nice Asteroids script to test all that stuff too).

For example, one use of this, is if I'm testing a sound on an SI board. Sure I have the test rom but that tests each sound one at a time then resets the board. If I already have the Fluke plugged in, I can have it display a menu of sounds, then choose to play one once or have it loop that sound for troubleshooting. Easy to do with Asteroids, just write to 3c04 for a sound, but with this I have to emulate the game code saying "OUT5".

However, I read something last night that didn't sink in until I was driving to work today....simply have the fluke write the command to ram, say at 0x2000, tell the board to execute starting at 0x2000, have the command send the results (if any) to a different part of ram (like 0x2100), then have the fluke read it back. A little kludgy but it would work! I could even mod the test rom to talk to the Fluke - that would be cool! In fact that would be awesome considering all the sound and memory testing programs are already in the test rom. Damn why didn't I think of that yesterday?!?!

The only downside to the idea of the Fluke writing cpu commands to ram, is if the ram is bad, you're screwed anyway lol. This is ESPECIALLY true on Midway 8080 boards.

Oh and FYI - incase anyone ever messes with the 8080 pod and writes 9010A scripts for one, You MUST include the pod file with the script (include 8080.c), and have "enable ready" and "enable hold" in the setup section or none of your scripts will work and you will curse, cry, pout, and take your pod apart trying to figure out why the Fluke stops working when you try to run a script. Just ya know, saying.
 
PS - anyone that says Mame kills games, I've had to use the mame driver sources for notes to fix at least 5-6 boards. They're awesome!

Another idea I had this week...wanna know if any games use a particular chip? Google the chip # plus mame. For example, copy this into google 74ls157 mame and you'll see various games that have a 74LS157 in them. Not 100% accurate but pretty cool when it comes to stocking up parts!
 
Those MAME ROM files and source files are MANNA!

Another great one is to look up the game in MAME then at the bottom of the page, click the link to Caesar for it. You'll find descriptions as to what all the ROMs do in Caesar.

That makes it MUCH easier when trying to understand data flows through different areas of the board.
 
Orion,

Are you a member over on the Fluke9010 forum? If you could put what you know out there it would be great. :)

I'm about to start digging through some non-working pods and will be documenting the repairs out there as well as in my repair logs.

Also, if you ever take a pod apart, please send me a dump of the ROM from inside it. I'm starting a collection and hope to be able to put them up on my site - as long as Fluke doesn't care.

Raymond
 
Last edited:
Check the ftp site at flippers.com - he might have those roms already. I opened up my 8080 pod last night because I think it might have a problem - keeps reporting bad power supply even though when I measured the power lines (+12,-5v,+5) at the cpu socket they were all dead on accurate. I figured out it was opened before and someone lost one of the screws, and the plug connecting the two boards was pretty far open too.

I also had that little issue about the scripts not working, I seriously thought the pod was f--ed until I really started comparing every setting and realized that enable ready and enable hold were both off, and the script wouldn't take them unless you included the 8080 file, I was so happy to actually have a lousy one line script work lol. I guess it was a good learning experience that even for any little function you still have to configure it first. I just got it like 6 months ago, and went from not really knowing a thing about digital electronics to going into Johnny-Five mode over the past year and learning a LOT, both from books, web sites, and especially here.

I downloaded all the manuals to this thing and have been leafing through them...its not a hard unit to use and reading the manuals I found a nice handful of little shortcuts and tricks. The quarterarcade site is awesome for it and can even generate basic scripts right from the mame drivers, however there is a glitch - if it saves the file name with more than 7 characters (from the mame name) - it won't work. This is also true if it makes sub-programs with larger names, they all have to conform to dos standards.

Definitely get the FIDE program from Quarterarcade's site if you haven't already. Its not perfect but an awesome little app nontheless! I told Anthony to give that James guy a thank you on putting that all together.

I actually started to use the probe on the last repair and thought it was pretty cool how it can sync to the read or write states.
 
Last edited:
I think I may have found the answer to this...on the Fluke, use address 10000 to 100FF for the ports! Holy crap I gotta try that tonight!
 
I...don't think so. At least not in a way that I can understand. It let me read those addresses, and it "seemed" like address 10000 was somehow affected by the dip switches, but not in a way that made sense anyway.

It also seemed to repeat, like 10000 read something, 10001 read something else, then it repeated at 10002 and so on.
 
Bumping an old thread....

I've been diving into the daughterboard schems of SI lately, trying to ressurrect some of the ones I have. Just realized the "port" per se, is really decoded address lines 8,9,10 on the 7442 @ E3. So that said, yeah I should be able to write to an address to trigger a sound. I'll try this out soon enough, no energy left today (got approx 45 min sleep last night).

The whole point of those was twofold - be able to read/test the inputs, and trigger sounds on an SI/SI DLX board via a Fluke 9010a for testing purposes.
 
Bumpage in case anyone figured this out - been working on a NIGHTMARE si board with a bad sound and it would be AWESOME if I could just trigger the sound using the Fluke instead of using clip leads.
 
Does the attached help? It seems that the CPU doesn't really differentiate in any way between an "IN" or "OUT" ("port") instruction, and a read or write to memory. I simply puts the "port number" on the address bus (8 bits, duplicated high and low), then either either gets the data present on the data bus, or places the specified value on the data bus in the case of an OUT. There doesn't appear to be any pin on the CPU which indicates a "port" vice a "memory". It's up to the hardware to decode the address bus properly. So it really is just memory mapped I/O, with the address repeated (i.e. port 0x05 is memory address 0x0505).

EDIT: I just looked at the SI Deluxe schematics ("game logic PCB, A082-90700-A000"). It appears that part of the high byte (A8 A9 & A10) of the address bus is decoded to determine which sound hardware to activate. This decoding is performed by the 7442 @ E3. Its outputs activate the flip-flops E4 & E5, which take 6 bits from the data bus and place it on its outputs (to make sounds). So, it looks to me like any write addressing 0x03XX (or 0x05XX) could send data to the sound hardware; the OUT opcode is just a convienent way to do it, with 1 less byte of code used.

Of course, you'll also need to know the proper data to write to each "port" to create the disired sounds...
 

Attachments

  • page.jpg
    page.jpg
    56.2 KB · Views: 21
Last edited:
Yeah there's two parts...one activates the main LM3900 (main amp so to speak) and then the second is to figure out what to write to trigger this sound. Its probably the same first step every time with only one bit to fire each sound. Since each sound is a circuit on itself nothing really changes there, unless you have this possessed board that the sounds come and go.

Somewhere someone posted the source code to the test rom...seriously considering taking that and just making a rom that triggers this sound over and over, but I was hoping to use the Fluke for that.

Hopefully if I get out of work before midnight I'll mess with it again tonight and see what I come up with. The other problem is there are several variations of the board so the schematics dont always match the circuits.
 
Correction to the above. It seemed to me that reading LDA $0202 would be the same as IN $02, and STA $0303 would be the same as OUT $03.

But alas, that is incorrect (it even seemed a little odd).

I was reading the "Intel 8080 Microcomputer Systems Users Manual", and it turns out the CPU uses the data bus to output a "STATUS" byte at the beginning of each cycle. Bits on this status byte can then be latched and used by the hardware to differentiate between IN/OUT opcodes and LDA/STA (and thus enable different hardware, as approprate).

So, I guess this leaves you where you were... not knowing how to make your Fluke activate the I/O ports. Sorry for the false alarm.
 
I'm going to say its officially not a supported function under the Fluke, at least not without probably writing a script at the minimum. If I run into a step here at work where I can whip out the 8080 pod manual I'll take a look again.
 
Back
Top Bottom