The board layout with the optional FMPAC ROM is ready. On the schematics that we have the ROM is connected to CS1 and SLTSEL pins of a slot. So my question to Jipe and other hardware gurus is: can this board conflict with any cartridges inserted into MSX slots?
CS1 is not a problem, but SLTSEL wlll cause a conflict. If slot 0 is expanded then best is, if there is SLT01, SLT02 or SLT03 free. If not then look for free SLT3* signals. This anyway always depends of the machine the expansion will be installed, so you can leave the problem to enduser.
Timo, thanks. Can I use only CS1 and avoid using SLTSEL signal? One of the hardware gurus in the Russian forum told me that I can only use CS1. Also I wonder why A14 line on the schematics is connected to +5v. On the 27c128 chip there doesn't seem to be a A14 line...
Timo, thanks. Can I use only CS1 and avoid using SLTSEL signal? One of the hardware gurus in the Russian forum told me that I can only use CS1.
No, I don't think so... AFAIK by using only CS1 you end up occupying all slots #4000-#7FFF area instead of only the one where you took the SLTSEL signal.
Also I wonder why A14 line on the schematics is connected to +5v. On the 27c128 chip there doesn't seem to be a A14 line...
I think you answered your self. In 27c128 there is no A14 pin... Instead the same pin that is used by ie. 27c256 as A14 pin is inverted programming pin (/PGM) in 27c128 and that is why it is connected to +5v (Not programming, but reading)
BTW when looking at DIP versions I noticed that today 27c256 chips are cheaper than 27c128 chips... Also 27c512 chips were even cheaper than 27c256 (What a messed up world this is) In the end you might want to use bigger chips even if the extra pins just stay idle.
Hmm... actually... If you want to get rid of extra wires, then how about if you replace /CS1 with A15?
It might not be orthodoxical, but should work well enough for all practical configurations.
Hmmm, I wonder should I connect the PGM pin of 27c128 to +5v as well? The flashing voltage is +12.5v but is 5v required for reading?
Hmmm, I wonder should I connect the PGM pin of 27c128 to +5v as well? The flashing voltage is +12.5v but is 5v required for reading?
You are mixing things together... Yes, if you use 27C128 you should connect +5V to /PGM. Consider it as input / output selection pin. Flashing voltage is indeed 12.5v, but that is connected to VPP. (Not connected when on MSX)
Clearly someone has checked the pin name from 27C256 manual. If you think you should connect Z80 A14 pin to +5v, then you are wrong. Do NOT do that. It will prevent Z80 from working. They really meant the /PGM pin that just happens to have the same pin number as A14 pin in 27C256.
---
I try to give you a bit deeper understanding of MSX specific pins:
As you are programmer, you probably understand the /CS* pin meanings, if I write that:
/CS1 = /A14 OR A15
/CS2 = A14 OR /A15
/CS12= A14 XOR /A15
/SLTSEL is combination of data from PPI and MSX-Engine and that is why you can't generate or replace it on board.
I try to explain this without talking too much about slots... On typical MSX2/MSX2+ setup there is 7 different /SLT* pins and one or two of them are typically not connected and free to be used as /SLTSEL. There is also 8th, single digit /SLT signal that has same first number than the two digit versions... That can't be used because it is used by MSX-engine internally to generate the two digit versions.
Few typical examples:
Example 1:
/SLT0 (always reserved by BIOS)
/SLT1 * (Typically reserved by cartridge slot 1)
/SLT2 * (Typically reserved by cartridge slot 2)
/SLT3 (reserved by MSX-engine)
/SLT30 *
/SLT31 *
/SLT32 *
/SLT33 *
Some of the /SLTSEL pins marked with "*" might be free... Some of them WILL be reserved by RAM. Also some of them can be reserved by RS-232, Disk drive, manufacturer program or similar extension. So called SUB-ROM typically shares same pin with extensions. This is possible because it uses logical /CS0 and therefore does not collide with devices using /CS1. Many times they are combined to same ROM chip and they use logical /CS01 that happens to be same thing as A15. (Just calculate the binaries and you get the point. The numbers on /CS* represent 16KB "bank" numbers)
Example 2:
/SLT0 (Always reserved by MSX-engine)
/SLT00 (Always reserved by BIOS)
/SLT01 *
/SLT02 *
/SLT03 *
/SLT1 * (Typically reserved by cartridge slot 1)
/SLT2 * (Typically reserved by cartridge slot 2)
/SLT3 * (Typically reserved by RAM)
The setup inside your computer can be also for example combination of both... and all MSX computers don't have 2 cartridge slots... There are lots of possibilities how your MSX can be built internally, but these are just few typical examples. Also older models don't have MSX-engine, but the same signals have been generated using other methods.
I hope I didn't mess you head too much.
I hope I didn't mess you head too much.
You did! It's a mess in my head. Did I understand correctly that CS* represents the position of the ROM inside the 64kb plane? CS0 selects 0000h-3FFFF and CS1 selects 4000-7FFF? And did I understand correctly that the SLT represents a 64kb memory plane that can be fully occupied or free/partially free?
If I understood everything correctly then CS1 will set the FMPAC ROM to 4000h address and SLTSEL will select the 64kb plane where it will be located. So I don't necessarily need to connect the SLTSEL to any of the 2 cartridge slots (to avoid conflicts with cartridges) and I can use the SLTSEL from a third slot that exists in Yamaha MSXs.
You’re right about CS*.
The MSX-ENGINE contains logic for one expanded slot, either slot 0 or slot 3, and outputs separate slot select signals for each of those that you can use. See the datasheet, other engines have similar pins. You need to pick one of those which is unused.
For the Yamaha CX5MII, as you can see in its service manual, all slots are already occupied. Most MSX computers won’t be this crowded, but because some Yamahas like the CX5MII have two extra expansion slots it’s all used up. So you’ll have to either sacrifice something, or think of something smart. In the case of the CX5MII, you probably actually want to sacrifice the “80 columns subrom”, or even better, replace it with a combined fmpac + msx2+ subrom rom.
I will be ordering the FMPAC/F4 combo boards soon. At least 6 will be available for sale. Timo, how many do you need?
You did! It's a mess in my head. Did I understand correctly that CS* represents the position of the ROM inside the 64kb plane? CS0 selects 0000h-3FFF and CS1 selects 4000-7FFF? And did I understand correctly that the SLT represents a 64kb memory plane that can be fully occupied or free/partially free?
If I understood everything correctly then CS1 will set the FMPAC ROM to 4000h address and SLTSEL will select the 64kb plane where it will be located. So I don't necessarily need to connect the SLTSEL to any of the 2 cartridge slots (to avoid conflicts with cartridges) and I can use the SLTSEL from a third slot that exists in Yamaha MSXs.
Yes! You got that 100% correct. Now if you use Z80 A15 as /SLTSEL the ROM will be visible in both #0000-#3FFF and #4000-#7FFF, but that is ok since MSX searches & initializes software ROMs only from #4000 and #8000.
I will be ordering the FMPAC/F4 combo boards soon. At least 6 will be available for sale. Timo, how many do you need?
It all depends of the details... Is it possible to get it with parts? assembled? with ROM burned? What is the price?
Yet again... I'm fine with DIP sized components, but smaller than that... It is total lottery do I get a working device or do I end up dismounting the traces from the board while desperately trying to fix my errors.