Sega Master System / Mark III / Game Gear|
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew
System pinoutsPosted: Sun Oct 16, 2011 7:30 pm
I've attached a CSV file with the cartridge B-side pinouts for the SG-1000, SC-3000H, Mark-III and Japanese SMS. I don't have any data for the SG-1000 II.
All this information came from PCB scans or checking the actual hardware. It seems a lot of online sources are making assumptions about pin functions which haven't been verified so I want to make an effort to correct this.
Can anyone who owns these systems help with filling in the blanks?
For example pin B19 on the SG-1000 comes from a TTL IC above IC13, but it is obscured by a heat sink so I can't tell what the other connections are. I suspect it outputs "A15 & !MREQ" but this is the kind of thing that needs to be positively identified.
I also updated my SC-3000H documentation and had to change the pin CA7 to RA7 as I had the DRAM rows and columns reversed by accident. There's a lot of other changes and a very detailed description of the DRAM interface.
||Posted: Thu Oct 20, 2011 9:21 pm|
Those are great additions to the SC-3000 Hardware notes, especially the HIC-1 IC notes and the extra detail about the behaviour of the hardware due to pull-up / down configuration etc.
I can't help with the SG-1000 / Mark II / III pinouts unfortunately, but I do have a couple of questions / suggestions about the SC-3000 notes.
1. Which parts of the 'Assistance Needed' section are still relevant?
eg. the datasheets should be pretty easy to find nowadays and I assume you've looked at how the cassette interface routines work in the ROM by now. I commented most of the cassette read routines in the IIIB ROM when I was doing some tape preservation work last year if that is helpful. (Basically the IIIB software samples the PPI input from cassette in port / HIC-1 several thousand times per second and decides whether a pulse should be treated as a zero, a 1, or discarded as noise based on the transition from high to low).
Do you still need or want any information about the SF-7000? eg. hi-res photos of an SF-7000 motherboard, the SF-7000 users manual, information on the ICs / memory used on the motherboard etc.
2. The comments on the SF-7000 memory map:
It would be worth noting that even when the ROM is mapped in, the RAM is still available for *writing*. eg. if the ROM is mapped in and you go ld a,($0000) then you read one byte from the ROM. But if you go ld ($0000),a then the value in a is written into the RAM at $0000.
That's how the bootstrap loaders work. eg. here's a typical example for loading an SG-1000 Game ROM from disk. This code sits in the boot sector of the disk and the IPL copies the 255 bytes from sector 0, track 0, to $FF00 then jumps to $FF20
; this is the disk boot sector loaded into RAM
FF20: 00 nop
FF21: 00 nop
FF22: 00 nop
; Load a ROM from disk into RAM (32KB)
FF23: DA 00 00 jp c,$0000 ; if there was an error reading boot sector, then restart
FF26: 11 00 00 ld de,$0000 ; start loading into RAM from $0000
FF29: 01 01 01 ld bc,$0101 ; start at sector 1, track 1
FF2C: 21 08 10 ld hl,$1008 ; finish at sector $10 (ie. 16), track 08 (ie. load 32KB of data into RAM)
FF2F: CD 10 00 call $0010 ; call the IPL read sector routine to load 255 bytes to address pointed to by de
FF32: DA 00 00 jp c,$0000 ; if there was an error reading sector, then restart
FF35: E5 push hl ; the next bit loops through all sectors from sector 1, track 1 to sector 16, track 8
FF36: B7 or a
FF37: ED 42 sbc hl,bc
FF39: E1 pop hl
FF3A: 28 0C jr z,$FF48
FF3C: 14 inc d
FF3D: 04 inc b
FF3E: 78 ld a,b
FF3F: FE 11 cp $11
FF41: 20 EC jr nz,$FF2F
FF43: 06 01 ld b,$01
FF45: 0C inc c
FF46: 18 E7 jr $FF2F
; the ROM is loaded into RAM now
FF48: 00 nop
FF49: 00 nop
FF4A: 00 nop
FF4B: 00 nop
FF4C: 3E 0D ld a,$0D
FF4E: D3 E7 out ($E7),a ; swap the IPL out
FF50: C3 00 00 jp $0000 ; run ROM we just loaded
3. The value returned for undefined blocks in the keyboard matrix
Based on your hardware research, do you have any thoughts on this?
The following is an excerpt from Mike Hadrup's hardware notes in the final August 1988 Sega Computer Magazine:
Also see the PNG below.
I'm pretty sure what he meant was that if you check an undefined value (like Port B row 1 / Port C column 2) then don't be surprised if you get different values on different machines.
That may seem like an odd warning to give, but I think the reason why is that an easy way to write a keyboard scanning routine would be to work your way programmatically through the columns and check for $FF on each column to see if anything is pressed. However that won't always work if there are undefined bits in the column that could be either zero or one.
Any thoughts? Does that seem like expected behaviour based on your hardware analysis?
||Posted: Thu Oct 20, 2011 10:57 pm|
Not much, I should have removed that part. Since 2004 (previous update) Bimbo72 contributed a full SF-7000 manual scan AFAIK, Maxim disassembled the IPL ROM, and I've located the various RAM datasheets.
A high resolution photo of the component side of the SF-7000 motherboard would be very nice. But only if it isn't too much of a hassle to disassemble the unit. :)
That would probably be sufficient for me to figure out the part numbers and locations from the photo alone.
Ah, very interesting! I'll definitely mention this in a future update. Sometime I need to sit down and read the entire SF-7000 manual from cover to cover to absorb all these little quirks.
Right, that's cleared up now. There are pull-up resistors on PA7-0 and PB3-0 so any row/column locations with no physical key corresponding to them will always be '1' and can never be zero in normal operation.
However because the keyboard has no key rollover support, you can still get phantom key presses by holding down certain combinations of keys. I guess software could be written to specifically check for this, but in practice it is unlikely the user will hold down enough keys to trigger it.
In the next update I'll try to describe this keyboard problem clearly instead of just listing example cases, and probably add a lot more TMS9918 information.
||Posted: Thu Oct 20, 2011 11:36 pm|
As they say on the cooking shows "and here are some I prepared earlier" :)
I took those a few months back and they were taken at night. Just let me know if you need a cleaner pic / close up of various parts of the board. A couple of the part numbers are a little hard to read.
This particular unit needs some repair - I have to replace at least one of the DRAMs and the I/O cassette needs work. You can see the IO Cassette here:
Note - this SF-7000 has had a couple of repairs previously and those 8KB MB8264A-12 DRAMs (64K x 1) are socketed, so I'm not sure if they are the originals or not. I'll check inside my other unit to see what is in there.
The IO Cassette is how the SF-7000 attaches to the SC-3000. The ICs in the photo are:
IC27 - SN74LS244N (this had been replaced previously before I got the unit, and I have subsequently socketed and replaced again - still something wrong with IO Cassette though)
IC28 - 74LS244 (original)
The 74LS244 is an octal buffer / line driver with 3 state outputs. I *assumed* this was designed to clean up the signal to / from the SF-7000 over the connector cable.
IC29 - 8X222J Cm 47
I assume this is a pull up / pull down resistor network (9 pins)
IC30 - 74LS367A - Hex Bus Driver with 3 state output
I didn't figure out what that one was for :)
The two empty IC slots (IC31 / IC32) look interesting too. I wonder what they were for?
You've been testing with an SC-3000H, right? I'll see if I can dig out one of my older SC-3000s and see if there is any obvious difference in the wiring like Mike Hadrup suggested there could be. I think our oldest motherboard is up at my parent's bach, but I have another under the stairs I can take a look at.
||Posted: Fri Oct 21, 2011 5:09 am|
Very nice pics - thank you very much!
Any idea what that unused connector (CN2-34) next to the floppy disc cable might be for? A second drive?
Is the part number of the 24-pin DIP chip above it SED8420C? I'm sure it's just something like a level shifter for the RS-232 output. Is the manufacturer's name legible near the logo?
There's a bit more logic than I expected, given the simplicity of the SF-7000. Were there ever any official or third-party schematics made? Surely somebody had the means to repair them, there's plenty of chips to fail over time.
Interesting, a 74LS245 should fit there which would be the proper chip for buffering the data bus. Instead they just use the pull-up resistors which is sort of a hack. I wonder why they omitted this part?
It looks like the 244s buffer the address bus and the 367 buffers the control bus.
IC32 has the right connections to be a quad 2-input gate. The output of one gate is run into both inputs of another, so it could likely be a NAND or NOR gate as you see that frequently for implementing inversion. The other one could be anything else, either more logic or an inverter or flip-flop.
Yeah. I probably need to take apart the keyboard to look for anything interesting inside it (diodes, resistors, etc.) but I'm not wild about unscrewing the ten million screws that hold it together. :)
Did the 3000 and 3000H come out at the same time? I assumed they were identical other than the keyboard. But who knows, maybe the SC-3000 is totally different on the inside.
||Posted: Fri Oct 21, 2011 8:45 am|
Yes, I'm pretty sure the second drive connector is wired up. All you have to do is send the correct command sequence to the FDC and you can hook up additional drives. From memory I think the FDC supports up to 4 drives - it may actually be possible to jump two drives off each connector - not sure.
One of the other SC-3000 Survivors crew did an interview with Barry Pycroft who ran the Wellington NZ Sega Users group. One of the things he did back in the 80s was create a modified bios to connect 3.5" and 5.25" drives to the SF-7000 as the 5.25" disks were about 20-30 times cheaper than the 3" disks the SF-7000 used.
That interview isn't up on the site yet. I'll ask the other guys if there is any particular reason it wasn't posted. Probably just too busy :)
It is SED9420C. No manufacturer name that I can see. I cleaned up the board a bit with some isopropyl alcohol and took some more snaps (see the 'top right' photo for a better look at that chip). I also took a shot of the underside of the board.
:) fair enough. I have a dead SC-3000 rubber keyboard, so I might be able to take a closer look at that.
I believe the hard keyboard was released a few months after the initial rubber keyboard. But I'm pretty sure the motherboards themselves are almost identical. I'll check over the next few days. For instance, you could buy an upgrade kit to replace the original rubber keyboard. And I took the hard keyboard off a dead SC-3000H and connected it to a working SC-3000 motherboard with a bad rubber keyboard about 10 years back. That was just a straight replacement, but I don't recall any obvious differences other than small things - like the exact choice of capacitor / resistor brand etc.
So probably very minor difference unless there is something internal to the keyboard mechanism. But I'll see what I can find out :)
There were a few places around that repaired them. I suspect a lot of it was good old kiwi ingenuity figuring it out on the fly :) The only schematics I've heard of were mentioned in an old SMS Power thread. I think this was it:
||Posted: Fri Oct 21, 2011 10:04 am|
Yes, the drive controller supports four drives and to use other drives you'd just have to replace all of the control codes, sector counts etc in the IPL with appropriate values.
SC3000 and SC3000H Keyboard PhotosPosted: Fri Oct 21, 2011 9:57 pm
I pulled apart an SC3000 Keyboard and an SC3000H Keyboard and took some photos. There are some major differences internally, but I don't know what difference this would make to the electrical characteristics of the system.
Anybody please feel free to correct any assumptions I've made. My knowledge of keyboard design comes from Wikipedia :)
First the SC-3000 Keyboard. It has an actual PCB and the rubber keyboard has a pile of (I assume) little magnets that cover the intermeshing traces on the PCB and complete the circuit through inductance. They weren't conductive (checked with multimeter).
Edit: wrong. Those pads are conductive. Resistance varies between approx 500 ohms and 15000 ohms depending on what part of the pads I touch and how hard. I guess that is why the rubber keyboard was so damn unreliable
Also, Charles' hardware notes say:
The SC3000 rubber keyboard PCB has the LED wired up on the PCB so it does use pin 10.
The SC3000H doesn't have a PCB. It has a flexible membrane inside it (which is folded back onto itself like a greeting card and the two halves glued together). Each key has its own seperate flexible rubber cup underneath it which again (I assume) has a little magnet in it.
Edit: Wrong - no magnets. See next post below.
Unlike the rubber keyboard PCB it does not have intermeshing traces. Rather the second half of the circuit is on the other folded back side of the membrane sheet. You can see me bending that apart in the photos.
||Posted: Sat Oct 22, 2011 7:35 pm|
I had a bit more time this morning to read through Wikipedia and I took a closer look at both keyboards. The SC3000 rubber keyboard is a classic chiclet keyboard with conductive pads on the underside of the keys that complete the circuit on the PCB when pressed (see revised comments above).
The SC-3000H keyboard is a membrane type keyboard with rubber actuators underneath the hard plastic keys.
Those rubber cups under each key are just rubber - no magnets in them. When the hard key presses down on the rubber cup actuator they push the two layers of the keyboard membrane together to complete the circuit.
The bit I missed last time is that there is a third layer in the membrane. In between the two halves of the folded over membrane is a thin plastic 'holes' layer. This is a mostly solid plastic sheet that has holes of approximately 6-8mm diameter where the top and bottom halves of the membrane overlap. This is enough to keep the circuit normally open, and it closes when you press the key and force the top and bottom layers together through the hole in the middle layer. See attached photo. The tweezers are pushed through the hole layer to try to make that a bit clearer.
I need to find out what the resistance on the circuit is when you close it with a keypress. I haven't been able to measure it yet, but it is a bit hard to do without 3 hands :)
||Posted: Sat Oct 22, 2011 8:05 pm|
Really neat stuff! Some things never change, I repaired a Microsoft keyboard a few weeks back and the three layer arrangement exactly as you described.
I think the material probably has very little resistance, or at least not enough to really impact operation.
Nice to see it used properly, I had wondered why they wired up the LED separately. It always looked like a hack in my unit that was hastily soldered in place. Perhaps my SC-3000H was a SC-3000 with the keyboard changed after purchase?
||Posted: Sun Oct 23, 2011 6:44 pm|
Correct. I ended up just measuring the resistance on just one of the pads and the material is approx < 10 ohms on surface contact.
So that gives us a very low resistance on a closed circuit for the hard keyboard, and much higher resistance on a closed circuit for the soft keyboard. I did a bit of research and that seems fairly typical for that keyboard / keypad design. Brand new keys *may* have a resistance as low as 100 ohms. 'Good' keys with no depress issues will generally be 500-1000 ohms. Bad keys will read several or tens of thousands of ohms.
Here's a rubber keypad repair kit
The steps in the application guide for that is worth a read if anyone wants to try this yourself
Here's an interesting cellphone keypad repair article discussing how some of those repair products have developed over the years. Search for 'Rubber Keypad Repair' to find out lots about the issue in general.
There are two ways those rubber contacts on the soft keyboard could have been made:
1. conductive rubber polymer. May be able to be repaired using acetone to roughen the surface slightly. Conflicting opinions on this one about whether acetone a good idea or not.
2. conductive coating on the surface of the rubber. Generally repaired by applying an adhesive to give a better surface for conductive paint to bond to. Some people have tried to repair by cutting out little foil rings and gluing them on to rubber contacts.
The SC3000 could have used either, but I *suspect* it was a conductive coating. I tried jamming the multimeter probes reasonably hard into one of the rubber contacts and that didn't make any real difference to the resistance reading, and cleaning the surface made no difference. But if you stick the probes on the exposed edges which were never exposed to direct contact pressure you generally get a reading somewhere around 500 ohms.
So that changing of resistance due to age could have been some of the behaviour of Mike Hadrup referred to when he said "depending on whether you have a soft or hard keyboard (and how old it is)". But I'd have thought the pull up resistors would have sorted that. I'll take a look at the motherboards some time for differences.
I think the seperate LED circuit board was just a practical measure as it would have been hard to solder an LED to the conductive paint on the membrane, unlike the soft keyboard which had an actual PCB.
There may be two things you can check.
First, check the serial sticker on the bottom of your SC3000 (see photos for examples). I have attached two examples. These look like Sega Japan stickers. One is labelled SC3000 and one is labelled SC3000H. I would *hope* that gives an accurate indication of what the original keyboard was.
The interesting thing here is that I *think* the SC3000 label below actually came from a machine with a hard keyboard on it (I have a couple of cases off, so only 90% sure). This gives you the second thing to look for
Check if your SC3000H keyboard is soldered onto the motherboard or not. I'm pretty sure that the first SC3000H unit I opened 10-12 years ago for that keyboard swap had the keyboard soldered onto the motherboard. However this other hard keyboard unit I'm using now (with the SC3000 label) had the ribbon cables poked into SIP sockets on the motherboard - ie. much easier for removal, and indicative of possible service on the computer at some point during its life.
SG-1000 II pinoutsPosted: Sun Nov 27, 2011 2:55 am
We're finally getting back on the original topic of this post after sidetracking into SC-3000 specifics :) I did a load of continuity testing with the multimeter today on the SG-1000 II
SG-1000 II pinouts to cartridge port
A01 => Z80 A0
A14 => Z80 A13
A15 => Z80 D0
A22 => Z80 D7
B01 => +5v
B02 => +5v
B03 => DSRAM
(this is an input into pin 12 on SN74LS32 OR gate. The other input is pin 18 on the 315-5066. The output goes to pin 18 on SRAM which I *think* is the SRAM /CE)
B04 => pin 19 on 315-5066 - this is probably the /CEROM2 signal / EXM1. I forget exactly what that is, but from memory it does something like go low for memory accesses in the $8000 to $BFFF range or something like that. I think)
B05 => Z80 /RD
B06 => Z80 /WR
B07 => NC
B08 => NC
B09 => NC
B10 => Z80 /MREQ
B11 => CONT (pin 3 on LS257 / pin 8 on Expansion connector)
B12 => NC
B13 => NC
B14 => NC
B15 => NC
B16 => NC
B17 => NC
B18 => A14
B19 => /MREQ + Z80 A15 (driven by pin 8 of LS32 OR gate. The inputs are /MREQ and Z80 A15)
B20 => NC
B21 => GND
B22 => GND
Note - NC means 'Not Connected'. This is actually difficult to be sure on because there is a second layer of white soldermask or silkscreen above the green soldermask layer which makes it difficult to see what is actually connected to the various IC pins and cartridge port pins.
Sega SF7000 SF-7000 picturesPosted: Sat Jul 04, 2015 4:27 pm
I have uploaded your SF-7000 pictures here:
Everyone, if there are pictures that you feel should be attached to the Development/Hardware section please add them or let someone know.