ROM card for MSX with Dual 32KB ROM Mode | Kero's Mac Mods

Kero's Mac Mods

Introducing my Macintosh and Apple II mods, writing in English and Japanese. Ask if you have any questions, about the same time, I have a post in the FB group.
Our website here:
https://www.kerosmm.com

It's been a while since I designed this ROM card, but since I didn't understand the MSX mapper, I've been improving it. The final version, V1.4, incorporates advice from Finnish Timo Soliamaa (Aka, Nyyrikki). He explained it carefully, and even I'm not familiar with MSX, could understand it well. Thank you Timo!

 

 

Arrived as a new product here!!!

https://en.infinityproducts.co.jp/product-page/smc-27cxxx-rom-kit-for-msx

 

 

 

  Specification of our 27CXXX ROM card for MSX

 

 

 

 Available EPROMs

 

ROM product number, ROM program capacity that can be flashed (backward compatible)

 

27C64, 8KB

27C128, 16KB

27C256, 32KB

27C512, 64KB and Dual 32KB Mode

If you want to buy EPROM from now on, 27C512 or 27C256 is recommended. Most popular cartridges for early MSX are 32KB. So I think we should keep the standard at 32KB.

 

 Jumper pins and switches

 

 

 JP1 settings

 

The device is selected by connecting the EPROM's 22-pin OE (output enable) to the CS (chip select) connector on the MSX side. This depends on the software being flashed, so setting it correctly will allow the processor to read data from the device specified here.

CS12 is the most common destination when you don't know what to do. If CS12 doesn't work, try RD, CS1 or CS2. Please note that there are also small ROMs (like Juno First or Sparkie) that require /RD to be selected.

 

The target setting: /RD = max 64K ($0000-$FFFF), /CS12 = max 32K ($4000-$BFFF) and CS1 ($4000-$7FFF) & CS2 ($8000-$BFFF) = max 16K although this might sound a bit technical. It may anyway help to understand the working.

 

Most of the time selecting too big memory area is just fine, so practically /RD can be used ALMOST always. Even if it is wrong, it usually affects only ROM software that supports disk drive or other kind of tool software.

so usually wrong setting does not effect games. Even when you have "too big" setting and the software is effected, it might still work ok in the end, but you just notice something weird like computer taking too long to boot or cart initializing texts appearing two times. Naturally having "too small" setting likely causes much more dramatic problems, complete hang or that computer does not seem to notice the card at all.

 

 JP2 settings

 

Here we will set the combination of address lines A14 and A15.

27C512:

Normally, in the case of 27C512, jump between 1 and 2,  3 and 4. In other words, connect all the same addresses

 

27C256:

In most cases, 2 and 3 are connected and shifted by $4000 bytes.(*There is a detailed explanation in the Flash ROM to EPROM section)

Since many ROMs are 32KB, it is good to have a lot of 27C256s in order to enjoy flashing easily.

 

27C64, 27C128:

The 27C64 and 27C128 do not have A14 and A15, so they can be left unconnected (there is no problem if they are connected).

 

27C512 Dual-32K-Mode:

Connect 1 and 2, and connect 4 and 5, SW1 of EPROM to allow pull up and pull down. By doing this, you can switch addresses and use two different 32KB programs by switching. This is dual mode. (*In addition, JP1 in the previous chapter is set to CS2.) Flashing the ROM is a little tricky, so I'll explain how to do it later.

 

 

 SW1 Settings

 

SW1 is effective only when 4 and 5 of JP2 are connected, it's called Dual 32KB ROM Mode. Switching low enables ROM1(1st half), switching high enables ROM2(2nd half). In other words, you can switch and play two 32KB games without exchanging cards.

 

 Jumper pin example

 

 

*JP2 is number 1 from the right.

 

1, using 27C512, the program is 64KB

JP1 Jumper RD

JP2 Jumper 1 and 2, Jumper 3 and 4

2, using 27C256, the program is 32KB

JP1 Jumper CS12

JP2 Jumper 2 and 3

3, using 27C128, the program is 16KB

JP1 Jumper CS12 (could be CS1, CS2)

JP2 No jumper

4, using 27C64, the program is 8KB

JP1 Jumper CS12 (could be CS1, CS2)

JP2 No jumper

5, using 27C512, dual mode program 2 32KB

JP1 Jumper CS12

JP2 Jumper 1 and 2, Jumper 4 and 5

SW1 HI:ROM1, LO:ROM2

 

 

  Assemble the ROM card

 

Remember that all parts must be soldered to the front side. The LED and 10uf tantalum capacitor are directional, but the other chip parts are not. Assemble as shown in the conceptual diagram.

R1 330Ω 1206 resistor

R2 10KΩ 1206 resistor

C1 0.1uF 1206 multilayer ceramic capacitor (non-directional)

C2 10uF 1206 tantalum capacitor (direction: line + side)

LED1 RED 1206LED (Direction: The table line of the parts is on the - side *Please see this blog for detailed direction notation)

SW1 DPDT Slide Switch (no directivity)

JP1 2x4 pin header

JP2 1x5 pin header

U1 28pin IC socket (set the recessed part of the top in the same way as the silk screen of the board)

 

The kit consists of bare PDB and parts. All you need is some assembly tools (soldering iron, tweezers, etc.) and an EPROM.

 

 

  Flash ROM to EPROM

 

Note: A supplementary explanation was given for flashing a 32K program to the 27C256. See jumper pin example 2. Normally you would offset the mapping by 4000 addresses (16KB would have to be split in half and flipped upside down), but this saves time. This card is designed to connect A14 and A15, and if it is 32KB, you can flash the program as it is. This is a measure so that when the processor accesses address 4000 he accesses ROM address 0000. So if you want to flash a 32KB program to a 27C256, you can apply the address as-is.

 

Use the flash tool that conforms to the ROM programmer. Currently, there is Xgecu's T48 (successor to TL866IIplus) as a cheap popular machine, and it is convenient because it supports many ROMs. The tool is Xgpro V12, which is the latest version at the moment (June 26, 2023).

 

Basically, just specify the EPROM to be used (searchable on the App), specify the program to flash, and flash.

Set the value of "To Buffer Strat Addr (HEX):" on the program selection screen to 04000 only when flashing a 32KB ROM alone to a 64KB EPROM. This is required on the mapper.

EPROM is backward compatible. If you're flashing 8KB or 16KB into a 27C256 EPROM, or an 8KB ROM into a 27C128, you should be able to just flash it.

If you use small software (like 8K or smaller) to bigger ROM chip (like 16K or 32K), you may need to write the software multiple times, one copy after another to place it in all needed memory areas.

 

*Since the address mapping is already in the software, the pattern cannot be automatically identified.

 

 

 Flash to Dual 32K ROM Mode

 

When placing two 32KB ROM programs on the 27C512 the first half and the second half contain different program. In vast majority of cases each 32KB ROM program's upper 16KB and lower 16KB needs to be swapped before combining and writing. First, divide the "32k.ROM" you prepared in advance into two parts, part1.ROM and part2.ROM respectively by runing the program bincut2 at CMD-prompt.

 

For the "bincut2 folder", specify any bincut2 program folder on your PC that has been unzipped. Also place your 32K ROM files to be split and integrated in this route.

 

 

cd "bincut2 folder"

bincut2 -o part1.ROM -l 4000 32k.ROM

bincut2 -o part2.ROM -s 4000 -l 4000 32k.ROM

 

Part1.ROM and part2.ROM will be created in the bincut2 folder.

Next, these 16KB are reversed and combined.

 

copy /b part2.ROM+part1.ROM 32swapped.ROM

 

32swapped.ROM will be created in the bincut2 folder.

 

** Repeat this process twice to create two 32swapped.ROMs. For the sake of clarity, the ROM created later is 32swapped2.ROM. **

Combine the finished ROMs to make the final 64KB ROM.

copy /b 32swapped.ROM+32swapped2.ROM 64dualmode.ROM

 

64dualmode.ROM is created in the bincut2 folder, so just flash it!

*It is a good idea to check the completed file with a Hex editor before flash.

 

It will be released after a more detailed check. Stay tuned!

 

https://en.infinityproducts.co.jp/shop-1