Making a simple development cartridge (Hardware MSX Forum)MSX Resource Center MSX Info Update - Finnish MSX madness at its best              
              
English Nederlands Español Português Russian         
 News
   Frontpage
  News archive
  News topics

 Resources
   MSX Forum
  Articles
  Reviews
  Fair reports
  Photo shoots
  Fairs and meetings
  Polls
  Links
  Search

 Software
   Downloads
  Webshop

 MRC
   Who we are
  Join our team
  Donate
  Policies
  Contact us
  Link to Us
  Statistics

 Search
 
  

  

 Login
 

Username

Password




Don't you have an account yet? Become an MSX-friend and register an account now!.


 Statistics
 

There are 57 guests and 2 MSX friends online

You are an anonymous user.
 

MSX Forum


MSX Forum

Hardware - Making a simple development cartridge

Goto page ( 1 | 2 Next Page )
Author

Making a simple development cartridge

tokumaru
msx lover
Posts: 83
Posted: November 14 2006, 21:24   
Hi everyone. I'm in the process of making a simple MSX devcart, using a cart that I already got. This cart has a 16KB EPROM, which I want to replace for a 64KB EEPROM. The pinouts for both chips are very similar, the only difference is the 2 highest address lines (A14 and A15), as expected.

Now, would it be enough to connect those address lines to A14 and A15 comming in from the cart connector? I'm asking because I don't have the cart here with me now, and I don't know if any "tricks" were used for the 16KB cart.

How does a 16KB cart work? Does it simply not use the highest address lines, meaning that the 16KB are mirred through the 64KB space? Or do they force the program to be present in only one of the pages somehow?

I want to use the full 64KB of my chip, even if I have to swap slots frequently to use RAM on the highest page or to use the BIOS. I don't care.

Thanks for the help!
arnold_m
msx lover
Posts: 81
Posted: November 14 2006, 22:44   
Apart from address and data lines the (e)eprom needs signals to indicate when it must be active.
These signals are readily available on the cartridge connector
For a 16 KiB eprom one would normally use /RD and /CS1 to make the rom appear at 0x4000 to 0x7fff. Cartridges with basic programs use /RD and /CS2 and appear at addresses 0x8000 to 0xbfff.

If you want your eeprom to appear in the whole address space of the cartridge slot you would need to use /RD and /SLTSL. Having 64 KiB of ROM seems a bit awkward to me though, no space left for the stack. You may be better of not using the top 16 KiB. Alternatively yo could try to make a simple rom-mapper.
tokumaru
msx lover
Posts: 83
Posted: November 15 2006, 01:05   
Oh, I didn't know the MSX provided signals indicating the range of addresses being accessed. That's cool. Is that handled in any way by the emulators?

So, if I wanted to use the whole addressing space, should I connect /SLTSL to /CE and /RD to /OE? Couldn't I get away with leaving the chip always enabled?

Everyone finds it a bit weird that I'd want 64KB of ROM without a mapper. I don't think it's that weird, 'cause I wouldn't have all pages mapped to the ROM all the time (I know, that would be impossible in a game!). The top page could contain only graphics or music, that is, data I can easily handle and output without needing memory or the stack (depending on the compression scheme - if any). When not decompressing/copying data, the top page would be mapped to RAM.

Of course, I also don't intend on using the BIOS routines either. But if I wanted to, I could switch slots on the lower page, right?

I may think about making a simple mapper (I just figured how some simple mappers in NES carts work, using simple 74161 and 7432) but that's a lot of modifications to do, and I want to start slow. Plus I really think that a full 64KB ROM as I described (top page mostly data) is pretty powerful.

EDIT: Ah... that page you posted says that Gradiente's Expert does not use that configuration. What exactly do they mean by that? 'Cause that happens to be my MSX. O_O!
HansO
msx addict
Posts: 375
Posted: November 15 2006, 09:05   
Quote:

Oh, I didn't know the MSX provided signals indicating the range of addresses being accessed. That's cool. Is that handled in any way by the emulators?

So, if I wanted to use the whole addressing space, should I connect /SLTSL to /CE and /RD to /OE? Couldn't I get away with leaving the chip always enabled?



No, that is not a good idea. It could damage your MSX.

Quote:


EDIT: Ah... that page you posted says that Gradiente's Expert does not use that configuration. What exactly do they mean by that? 'Cause that happens to be my MSX. O_O!


On some MSX 1 machines, e.g the Toshiba HX-10 and the GRadiente, there is one standard MSX cartridge slot and on the back an expansion connector with all the signals of a second cartrige slot. ITs is as arnold wrote not a standard conenctor, the signals are completely standard. I really liked that connector on my HX-10 since that is much easier to connect to for expansion.

Have a look at the MSX Technical manuals and some design examples. Good starting points would be this Books and the DIY pages.

tokumaru
msx lover
Posts: 83
Posted: November 15 2006, 16:16   
Quote:

No, that is not a good idea. It could damage your MSX.


OK, leaving the chip always enabled is bad (but how could it damage the MSX?). But is it OK to do it as I said before (/SLTSL to /CE and /RD to /OE)?

Quote:

On some MSX 1 machines, e.g the Toshiba HX-10 and the GRadiente, there is one standard MSX cartridge slot and on the back an expansion connector with all the signals of a second cartrige slot. ITs is as arnold wrote not a standard conenctor, the signals are completely standard. I really liked that connector on my HX-10 since that is much easier to connect to for expansion.


My MSX (Gradiente Expert) has 2 cartridge slots, and an expansion connector on the back. So the only non-standard thing here is the expansion port on the back? The cart connector have the pinouts described on that page?

I really never used any carts on my MSX, but yesterday I bought a "Ligue-se ao Expert" cart, that usually comes with the computer, to make my devcart. Since it comes with the computer, the computer and the cart could have non-standard pinouts than those on that page, and I'd never know. That's why I'm asking.

Quote:

Have a look at the MSX Technical manuals and some design examples.


Thanks for the links. I'll sure take a look.

Now, since there are these signals going into the cart telling which range of addresses is being read, and that cart could do anything with them, how do the emulators simulate that? I mean, how does an emulator know that if I give it a 32KB ROM it should be mapped at $4000-$BFFF, and not mirrored twice at $0000-$FFFF? That would be perfectly valid on a cart, right?

Also, do you think an emulator would handle the 64KB ROM correctly?
mars2000you
msx master
Posts: 1723
Posted: November 15 2006, 16:31   
Quote:

I mean, how does an emulator know that if I give it a 32KB ROM it should be mapped at $4000-$BFFF, and not mirrored twice at $0000-$FFFF?



Both blueMSX and openMSX have a system to detect automatically the rom type, but it is not perfectly working at 100 %. I know at least one rom for which the detection (mirrored rom) is not correct.

But these emulators use also an extended rom database that contains the correct rom type and uses a SHA1 checksum to detect which ROM is used. So, you can simply add your ROM in the database.

See this page of the blueMSX manual :

http://www.msxblue.com/manual/romdatabase.htm

This database is also used by openMSX in the same format.

Last option : you can precise manually the rom type when inserting it in blueMSX or by some parameters of the commandline in openMSX.

The automatic detection of the rom type is used only for roms that are not present in the database and for which the user does not have precised manually the rom type.

Quote:

Also, do you think an emulator would handle the 64KB ROM correctly?



The FM-PAC cartridge is a 64 Kb cartridge and is perfectly supported by blueMSX and openMSX, including the build-in software and the SRAM.

HansO
msx addict
Posts: 375
Posted: November 15 2006, 17:10   
Quote:


My MSX (Gradiente Expert) has 2 cartridge slots, and an expansion connector on the back. So the only non-standard thing here is the expansion port on the back? The cart connector have the pinouts described on that page?

I really never used any carts on my MSX, but yesterday I bought a "Ligue-se ao Expert" cart, that usually comes with the computer, to make my devcart. Since it comes with the computer, the computer and the cart could have non-standard pinouts than those on that page, and I'd never know. That's why I'm asking.


The MSX standard makes it highly improbable of having non-standard pinouts on a cartridge or a cartridge slot.

Have a look at the circuit diagram of a design of a 32k EPROM cart here.
That will give you an idea of the EPROM selection.

tokumaru
msx lover
Posts: 83
Posted: November 15 2006, 19:56   
Quote:

The FM-PAC cartridge is a 64 Kb cartridge and is perfectly supported by blueMSX and openMSX, including the build-in software and the SRAM.


But is it included in the database?

Can you guys confirm that connecting /SLTSL to /CE and /RD to /OE in my chip is the way to go?

Thanks again!
mars2000you
msx master
Posts: 1723
Posted: November 15 2006, 20:23   
Of course, the FM-PAC cartridge is included in the database. See also the long list of rom types that is used by blueMSX (also for the system roms).
manuel
msx guru
Posts: 3449
Posted: November 15 2006, 23:24   
If you're really curious, check the source code of blueMSX and/or openMSX. It's all online
tokumaru
msx lover
Posts: 83
Posted: November 16 2006, 00:41   
I used to have the patience to look through sources of complicated programs to find answers, but not any more! =D

Seriously, I find newer programs too complicate to track. I have a hard time locating the parts I want and all that.
HansO
msx addict
Posts: 375
Posted: November 16 2006, 08:40   
Quote:


Can you guys confirm that connecting /SLTSL to /CE and /RD to /OE in my chip is the way to go?

Thanks again!



Yes, that will work. And we already concluded that in this way you switch out RAM completely, including the stack.

I would personally add some mapping facility, like splitting 2x 32K e.g. at 4000. That will leave the upper 16K to current RAM and the lower to the BIOS.
Good example of such a simple mapper is the MSX-DOS 2 mapper as designed by Peter van Overbeek.
ARTRAG
msx master
Posts: 1686
Posted: November 16 2006, 08:56   
Samor
msx professional
Posts: 841
Posted: November 16 2006, 09:17   
...but it's not.
HansO
msx addict
Posts: 375
Posted: November 16 2006, 10:29   
My site is slow today indeed.
 
Goto page ( 1 | 2 Next Page )
 







(c) 1994 - 2008 MSX Resource Center Foundation. MSX is a trademark of MSX Licensing Corporation.