Forums

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

View topic - SC-3000 questions

Reply to topic
Author Message
  • Joined: 28 Sep 1999
  • Posts: 1197
Reply with quote
SC-3000 questions
Post Posted: Mon Feb 04, 2002 4:16 pm
I've got a few questions about the SC-3000, maybe someone can help. ;)

- How much RAM does it have? I think it's 1K, (I commonly see the stack top at $C3FF) but one website said 2K instead.
- How much RAM do the different Basic cartridges have? (Zoop, did my Mark-III manual mention this anywhere, like on the back page? ;)
- What other systems support a keyboard for SC-3000 software?

I had read that the SC-3000 uses a 8255 PPI to handle the inputs ports and keyboard, but the SMS I/O chip doesn't provide some of the functionality that the 8255 has. So I'd guess most (all?) pre-SMS systems would be compatible with the keyboard. At least the Mark-III is.

Also, does the SC-3000 only support cartridges? (or maybe there's a card-to-cartridge port adapter?) It seems to me that there is none of the slot selecting hardware that the SMS has, which explains the lack of a BIOS and how the SF-7000 can 'take over' the memory map with it's own ROM and RAM, without writing to port $3E beforehand.


  View user's profile Send private message Visit poster's website
Richard Atkinson
  • Guest
Reply with quote
Post Posted: Mon Feb 04, 2002 6:05 pm
Quote
> I've got a few questions about the SC-3000, maybe someone can help. ;)

I was going to post something about the PPI issue, but it looks like you've beaten me to it ;)

Quote
> - How much RAM does it have? I think it's 1K, (I commonly see the stack top at $C3FF) but one website said 2K instead.

Well, firstly let me say I have no SC-3000, or any other Sega console before the early SMSes. However, I would suspect 2K as the article that I read about the SG1000 quoted a 6116-alike chip. 2K SRAMs were fairly common in old computers and consoles; the Famicom has 2 of them. To make 1K, you either need 2 x 2114 1K x 4 bit SRAMs or the rather rare 1K x 8 SRAM as used in some Sinclair ZX81s, but this size doesn't fit into the normal 4x increment scheme.

Fortunately I have an SC3000H arriving from Australia soon (ish - it's travelling surface mail) so I hope to post the definitive answer if no-one else beats me to it ;)

Quote
> - How much RAM do the different Basic cartridges have? (Zoop, did my Mark-III manual mention this anywhere, like on the back page? ;)
> - What other systems support a keyboard for SC-3000 software?

I've heard there are Basic Level IIA, Level IIIA and Level IIIB. Obvious sizes of SRAM to include in these cartridges would be 8K (6264) and 32K (62256) though I haven't broken into a BASIC cartridge yet to find out. Will do when the aforementioned SC3000H arrives, of course :)

Quote
> I had read that the SC-3000 uses a 8255 PPI to handle the inputs ports and keyboard, but the SMS I/O chip doesn't provide some of the functionality that the 8255 has. So I'd guess most (all?) pre-SMS systems would be compatible with the keyboard. At least the Mark-III is.

I'm more interested in what the SG-1000 and SG-1000mkII contain. The SK-1100 keyboard connects to the expansion port, so it most likely contains its own PPI. I think the joystick ports use the same 12 input lines as the keyboard inputs, and the keyboard also has 4 output lines which are decoded using a 1 of 16 scheme in a typical matrix arrangement. Is it likely that the SG-1000 and SG-1000 mkII both contain full 8255 PPIs, even though they only use a small portion of its functionality?

BTW, someone should check that the SMS registers for handling joystick ports and bit directions are consistent with a full 8255 PPI's use of such registers. I'm concerned that they might be incompatible.

My hope is that since both chips (the 8255 PPI and the SMS I/O chip) use NMOS technology, they can both be decoded in the same address range and both respond to I/O accesses. This is assuming NMOS style open-drain behaviour on the data bus. Eg. if either the joystick plugged into the SMS registers a '0' (direction or buton pressed) or the keyboard in the SK-1100 registers a '0' (key pressed) then that particular bit will be asserted low on the databus when its I/O location is accessed.

Quote
> Also, does the SC-3000 only support cartridges? (or maybe there's a card-to-cartridge port adapter?) It seems to me that there is none of the slot selecting hardware that the SMS has, which explains the lack of a BIOS and how the SF-7000 can 'take over' the memory map with it's own ROM and RAM, without writing to port $3E beforehand.

There's a card catcher thingy, similar to one on MSX. It was designed for the SG-1000 originally, which only had a cartridge port, but may be used on the SC3000. There was one on Yahoo Japan a few days ago.

I suspect (and indeed hope) that the cartridge select line which the Master System has the 3Fh hardware for, is simply held low on earlier single slot machines. On the SMS 3F port, does it remain low as long as the revelant bit is asserted, or does it perform some other logic too such as only being low within a certain address range, or type of bus access, or both?


Richard
 
  • Joined: 28 Sep 1999
  • Posts: 1197
Reply with quote
Post Posted: Mon Feb 04, 2002 7:25 pm

Quote
> Well, firstly let me say I have no SC-3000, or any other Sega console before the early SMSes. However, I would suspect 2K as the article that I read about the SG1000 quoted a 6116-alike chip.

I agree. I'll also check memory accesses to see what ranges are commonly used, but I'm concerned about mirrored locations being accessed intentionally.

Quote
> Fortunately I have an SC3000H arriving from Australia soon (ish - it's travelling surface mail) so I hope to post the definitive answer if no-one else beats me to it ;)

If you ever have a chance to run your own software on it, I'd love to know if the 4K/16K select bit in the TMS9918A does anything. It has no use in the SMS 2 and an MSX website said it didn't work either.

If you want to risk taking it apart, it would be nice to know what chips the SC-3000H has. ;)

Quote
> I've heard there are Basic Level IIA, Level IIIA and Level IIIB. Obvious sizes of SRAM to include in these cartridges would be 8K (6264) and 32K (62256) though I haven't broken into a BASIC cartridge yet to find out. Will do when the aforementioned SC3000H arrives, of course :)

I'm not sure about 32K, I believe the ROM is 32K itself, leaving only 16K of free space left. On the other hand, I had read about sizes up to 48K (which could be incorrect), maybe some of the memory is banked in the larger cartridges.

Quote
> I'm more interested in what the SG-1000 and SG-1000mkII contain. The SK-1100 keyboard connects to the expansion port, so it most likely contains its own PPI. I think the joystick ports use the same 12 input lines as the keyboard inputs, and the keyboard also has 4 output lines which are decoded using a 1 of 16 scheme in a typical matrix arrangement.

You may want to check out this website, which explains pretty much the same thing you mentioned:

http://www.multimania.com/mavati/sf7000/

Quote
> Is it likely that the SG-1000 and SG-1000 mkII both contain full 8255 PPIs, even though they only use a small portion of its functionality?

IMO, yes. Maybe the necessary outputs from port C go to the expansion connector, instead of the keyboard having it's own PPI.

Quote
> BTW, someone should check that the SMS registers for handling joystick ports and bit directions are consistent with a full 8255 PPI's use of such registers. I'm concerned that they might be incompatible.

I don't believe port C and the control register at $DD/$DE are implemented - some SMS games use them, but it's safe to say they only existed in the Mark-III which is known to support a keyboard. And just from looking at the SMS I/O chip pin assignments, it doesn't have the necessary outputs to control the keyboard.

But it may be possible (if the control register existed) to affect how port A and B work, so I will look into that. I also wanted to check the MegaDrive which does have a 3rd I/O port which in theory could be used for something like this, though I think it probably will not work as expected.

Quote
> I suspect (and indeed hope) that the cartridge select line which the Master System has the 3Fh hardware for, is simply held low on earlier single slot machines. On the SMS 3F port, does it remain low as long as the revelant bit is asserted, or does it perform some other logic too such as only being low within a certain address range, or type of bus access, or both?

I'm not sure myself - the I/O chip only gets three address lines which it uses to decode ports 3E/3F and C0/C1, so I don't believe it could distinguish which memory addresses were being accessed. I'd guess that whatever slots are enabled stay that way, always.


  View user's profile Send private message Visit poster's website
  • Joined: 21 Apr 2000
  • Posts: 598
  • Location: Newcastle upon Tyne, England
Reply with quote
Post Posted: Mon Feb 04, 2002 10:09 pm
Quote
> > I suspect (and indeed hope) that the cartridge select line which the Master System has the 3Fh hardware for, is simply held low on earlier single slot machines. On the SMS 3F port, does it remain low as long as the revelant bit is asserted, or does it perform some other logic too such as only being low within a certain address range, or type of bus access, or both?

> I'm not sure myself - the I/O chip only gets three address lines which it uses to decode ports 3E/3F and C0/C1, so I don't believe it could distinguish which memory addresses were being accessed. I'd guess that whatever slots are enabled stay that way, always.


From my own experiments, the cartridge/card/expansion _CE lines are active for memory accesses (both reads and writes) across the whole address range when enabled via $3E (not $3F btw ;-) )

IOW they don't go low unless _MREQ goes low *and* the relevant bit of the slot select register is low.

Mike
  View user's profile Send private message Visit poster's website
Richard Atkinson
  • Guest
Reply with quote
Post Posted: Mon Feb 04, 2002 10:31 pm
Quote
> From my own experiments, the cartridge/card/expansion _CE lines are active for memory accesses (both reads and writes) across the whole address range when enabled via $3E (not $3F btw ;-) )

> IOW they don't go low unless _MREQ goes low *and* the relevant bit of the slot select register is low.

Ah, well, in that case, it's MREQ# on the earlier ports :)

MSX uses a similar scheme of "expanded" memory address ranges, but a single, shared I/O address space.


Richard
 
Richard Atkinson
  • Guest
Reply with quote
Post Posted: Mon Feb 04, 2002 10:41 pm
Quote
> > Fortunately I have an SC3000H arriving from Australia soon (ish - it's travelling surface mail) so I hope to post the definitive answer if no-one else beats me to it ;)

> If you ever have a chance to run your own software on it, I'd love to know if the 4K/16K select bit in the TMS9918A does anything. It has no use in the SMS 2 and an MSX website said it didn't work either.

That's probably a bit for refreshing early 4K dynamic RAMs. I've never actually seen any chips like that, but I'm told some early TRS-80 Color Computers have them. It shouldn't affect any other aspect of the chip's operation.

Quote
> If you want to risk taking it apart, it would be nice to know what chips the SC-3000H has. ;)

Of course I'm taking it apart!! It's going to get connected up to an SMS expansion port and have chips desoldered all over the place!! What's the point in owning something if you don't do cool things with it?!?

Quote
> > I've heard there are Basic Level IIA, Level IIIA and Level IIIB. Obvious sizes of SRAM to include in these cartridges would be 8K (6264) and 32K (62256) though I haven't broken into a BASIC cartridge yet to find out. Will do when the aforementioned SC3000H arrives, of course :)

> I'm not sure about 32K, I believe the ROM is 32K itself, leaving only 16K of free space left. On the other hand, I had read about sizes up to 48K (which could be incorrect), maybe some of the memory is banked in the larger cartridges.

I was told 32K RAM was the Basic Level IIIB expansion, but this is yet to be confirmed.

Quote
> > I'm more interested in what the SG-1000 and SG-1000mkII contain. The SK-1100 keyboard connects to the expansion port, so it most likely contains its own PPI. I think the joystick ports use the same 12 input lines as the keyboard inputs, and the keyboard also has 4 output lines which are decoded using a 1 of 16 scheme in a typical matrix arrangement.

> You may want to check out this website, which explains pretty much the same thing you mentioned:

> http://www.multimania.com/mavati/sf7000/

That is in fact where I derived that.

Quote
> > Is it likely that the SG-1000 and SG-1000 mkII both contain full 8255 PPIs, even though they only use a small portion of its functionality?

> IMO, yes. Maybe the necessary outputs from port C go to the expansion connector, instead of the keyboard having it's own PPI.

I agree. Cutting down a PPI would have been too expensive, and Sega's approach tended to be just to put together off-the-shelf chips.

Quote
> > BTW, someone should check that the SMS registers for handling joystick ports and bit directions are consistent with a full 8255 PPI's use of such registers. I'm concerned that they might be incompatible.

> I don't believe port C and the control register at $DD/$DE are implemented - some SMS games use them, but it's safe to say they only existed in the Mark-III which is known to support a keyboard. And just from looking at the SMS I/O chip pin assignments, it doesn't have the necessary outputs to control the keyboard.

I was wondering whether what the SMS does with DD/DE could be consistent with the PPI's registers at that location, assuming of course the incomplete address decoding. On the other hand of course, if the PPI isn't selected there, then it doesn't matter.

Quote
> But it may be possible (if the control register existed) to affect how port A and B work, so I will look into that. I also wanted to check the MegaDrive which does have a 3rd I/O port which in theory could be used for something like this, though I think it probably will not work as expected.

I'm going to look for 8255 PPI documentation. It's not a chip I've ever looked into before, even though it's used in MSX. 65xx has been more my scene ;)
 
Richard Atkinson
  • Guest
Reply with quote
Post Posted: Tue Feb 05, 2002 12:18 am
Quote
> Ah, well, in that case, it's MREQ# on the earlier ports :)

No it's not! MREQ# is pin 3. I wonder what on Earth it could be... I'll publish details of the SC3000H hardware there when I receive the machine, of course.

I'm also waiting for a (broken) Mark III to come from Japan. I should be able to release details of how the country code arrangement works (resistor values etc). I expect it will have the earlier hardware (0.078" shrink-DIP chips) though hopefully this will apply to later hardware (0.1" DIP) SMS2s too.
 
  • Joined: 28 Sep 1999
  • Posts: 1197
Reply with quote
Post Posted: Tue Feb 05, 2002 3:06 am

Quote
> I was wondering whether what the SMS does with DD/DE could be consistent with the PPI's registers at that location, assuming of course the incomplete address decoding. On the other hand of course, if the PPI isn't selected there, then it doesn't matter.

I checked this, ports $DE and $DF (err.. PPI port C and the control register) do not exist. Nothing I wrote to the control register changed the values returned from $DC, and furthermore the two joypad ports are mirrored at every two bytes from port $C0 to $FF, whereas if it had an 8255 it would be mirrored every four bytes.

The tests were with a SMS2 and Genesis btw, older systems could be different.

Quote
> I'm going to look for 8255 PPI documentation. It's not a chip I've ever looked into before, even though it's used in MSX. 65xx has been more my scene ;)

I found this page the other day, and thought it had a lot of useful information. (mainly the datasheet)

http://drew.hickmans.net/8255.htm


  View user's profile Send private message Visit poster's website
  • Joined: 28 Sep 1999
  • Posts: 1197
Reply with quote
Post Posted: Tue Feb 05, 2002 3:41 am

Quote
> From my own experiments, the cartridge/card/expansion _CE lines are active for memory accesses (both reads and writes) across the whole address range when enabled via $3E (not $3F btw ;-) )

Did you ever try enabling the card port on a MegaDrive (with the SMS adapter), and see what data was there?

I tried running a test program which allowed port $3E to be controlled by the user, and with a Genesis+PBC combination I found that the cartridge ROM data was always returned, regardless of what was enabled or disabled. However, I did not have a card inserted, just the cartridge.

This worked a bit differently with an SMS 2, the expansion connector and card slot always returned $B0, which happened to be the last byte read by the Z80. (in this case ED B0 for LDIR) The BIOS and cartridge port could be enabled and disabled like normal.

I also noticed a few other weird things:

- If you enable more than one slot at the same time, the highest bit set seems to determine which slot is enabled.
- If no slots are enabled, the last opcode read by the Z80 is returned for addresses $0000-$BFFF.
- Bits 3 and 2 (BIOS enable, I/O chip disable) have the following effects on the port layout:

Bit 3 Bit 2 Ports 00-3F Ports C0-DF
0 0 Random data I/O chip data
0 1 Random data Random data
1 0 Last byte off bus I/O chip data
1 1 Last byte off bus Last byte off bus

The random data is based on the R register. If I don't modify R, the data is mostly random. If I set R to a specific value before reading the port, it always returns the same value for each read, though it's not the same one that R is loaded with. (e.g. set R=$00 before each read, value returned is $C1)
I had tried a test where R was loaded with two different values for each alternating port read, but this made the machine lock up (not under an emulator though). Maybe the refresh is actually used for something and my fiddling with the R register caused a problem.

I don't know why the BIOS control bit would have anything to do with how the ports are configured, the other bits don't do anything.
And these results are only for the SMS2, not the Genesis.


  View user's profile Send private message Visit poster's website
  • Joined: 18 Sep 1999
  • Posts: 498
  • Location: Portland, Oregon USA
Reply with quote
Post Posted: Tue Feb 05, 2002 5:30 pm
There's some very good discussion going on here. Is anybody documenting this stuff? I'm having a little trouble following it all, otherwise I'd do it. Any takers?

--
Eric Quinn
  View user's profile Send private message Visit poster's website
  • Joined: 18 Sep 1999
  • Posts: 498
  • Location: Portland, Oregon USA
Reply with quote
Post Posted: Tue Feb 05, 2002 5:50 pm
Quote
> I also noticed a few other weird things:

> - If you enable more than one slot at the same time, the
> highest bit set seems to determine which slot is enabled.


This is very interesting. The working version of MesaDX (0.03) handles enabling/disabling slots, and goes to great lengths to detect "bus collisions" due to multiple slots being active. I always assumed the programmer just had to be careful to only enable one slot at a time. This was tested on a SMS2? Can it be tested on a SMS1? I may need to re-write my MIOH code...

--
Eric Quinn
  View user's profile Send private message Visit poster's website
  • Joined: 28 Sep 1999
  • Posts: 1197
Reply with quote
Post Posted: Tue Feb 05, 2002 7:55 pm

Quote
> This is very interesting. The working version of MesaDX (0.03) handles enabling/disabling slots, and goes to great lengths to detect "bus collisions" due to multiple slots being active. I always assumed the programmer just had to be careful to only enable one slot at a time. This was tested on a SMS2? Can it be tested on a SMS1? I may need to re-write my MIOH code...

I'd like to point out that on an SMS2, the only working slots are the cartridge and BIOS, so in my test where the cartridge and BIOS are enabled, the cartridge had precedence.

I may have gone too far in saying it was dependant on the highest bit, without being able to test this on an SMS first. (I don't have one, they seem to be unusually rare)


  View user's profile Send private message Visit poster's website
  • Joined: 18 Sep 1999
  • Posts: 498
  • Location: Portland, Oregon USA
Reply with quote
Post Posted: Tue Feb 05, 2002 8:31 pm
I'm not really finished building my SMSReader or SRAM cart, but I'd like to try your test on my SMS1 at some point. Maybe you'd be willing to post it or e-mail it to me? Thanks.

--
Eric Quinn
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8653
  • Location: Paris, France
Reply with quote
Can test
Post Posted: Tue Feb 05, 2002 11:56 pm
If you e-mail me usable sources.
I'm busy as hell since a week and probably for one more week or so, but I can do that.
  View user's profile Send private message Visit poster's website
Richard Atkinson
  • Guest
Reply with quote
Post Posted: Wed Feb 06, 2002 6:57 pm
Quote
> I'd like to point out that on an SMS2, the only working slots are the cartridge and BIOS, so in my test where the cartridge and BIOS are enabled, the cartridge had precedence.

> I may have gone too far in saying it was dependant on the highest bit, without being able to test this on an SMS first. (I don't have one, they seem to be unusually rare)

Charles, it's ridiculous that you don't have an SMS1. I was buying them at 50 GB pence typically for a loose Power Base with no extras. Would you like me to send you one? Specify type - SMS1 with old VDP or SMS1 with new VDP.


Richard
 
Reply to topic



Back to the top of this page

Back to SMS Power!