shock__ wrote:Wouldn't that mean, that one bank holds 4.5mb or is this assuming the 512kb chip is disabled when using the full 16MB?
In an ideal case I can see us/myself slapping a 16MB RAM chip onto the board, allowing one to set the banksizes via jumpers ... maybe 0kb (no ram - even tho would that make any sense? Even for debugging and/or testing), 1MB (256kb per bank), 4MB (1MB per bank), 16MB (4MB per bank) and maybe a 9MB setting (512kb on Bank 0 & 1 each, 4MB on Bank 2 & 3 each).
Let somebody correct me if I'm wrong, but IIRC InterWave chip can operate in two modes: native InterWave mode (thereafter - native mode) and classic GF1+CS4231A mode (thereafter - GF1 mode).
In native mode it doesn't require any RAM at all. It is the only mode that can be used on RAM-less cards such as the mentioned Expertcolor MED3201 or Philips PCA761AW with no SOJ soldered onboard.
In order to use GF1 mode the card has to bear some RAM, at least 256Kb in one bank. All other known cards utilise this option to some extent (either having a SOJ and/or 1 or 2 SIMM30 sockets). The main difference between original GUS PnP and PnP Pro versions consists in that Pro is GUS compatible out of the box as it already has 512Kb SOJ onboard, while GUS PnP (non-Pro) requires at least one SIMM30 installed (please refer to section E of the attached GUS PnP Manual).
While InterWave is in GF1 mode, only up to 1Mb of installed RAM (no matter - SOJ, SIMM30, SIMM72, etc.) is available to software. The patches are loaded into this available RAM in the same manner as they used to be loaded to original GF1-based GUS. All RAM exceeding the 1Mb limit is invisible to software written for original GF1-based GUS.
While InterWave is in its native mode, up to 16Mb of installed RAM (no matter - SOJ, SIMM30, SIMM72, etc.) becomes available. User may load large soundbanks (including the genuine 4Mb GS soundbank created by VoiceCrystal or other 3rd party soundbanks such as Utopia). Using the patch caching technique InterWave can upload to its local RAM only those parts of the soundbank it needs to play a specific composition.
Speaking about various memory configurations and their compatibility the following issue should be mentioned.
Official InterWave memory configurations do not include a series of alternatives that have proven to be functional, such as 8,5Mb, etc. Nevertheless, one can not be 100% sure that such configurations will be 100% compatible, even if they ran well with some games or software.
To sum up, the answer to your question might be: one bank can't hold 4,5Mb (such combination can be achieved by using a 4Mb SIMM30 together with the onboard 512Kb SOJ resulting in 3 occupied banks, and this combination will be an unofficial one), and in order to get full 16Mb (4 banks of 4Mb per each one) the onboard 512Kb SOJ should be disabled.
Regarding your proposed options for jumpers I would suggest the following (if putting 16Mb onboard):
1. 0Kb RAM - for debugging and hardware limiting the chip to native mode (might be used if a user has another GF1-based GUS in his system willing to use the replica in native mode in DOS while keeping the GF1 mode for the original card - an extremely doubtful scenario, but why not).
2. 8Mb RAM (2 banks of 4Mb per each one) - the maximum configuration that was realised by Gravis (for possible compatibility issues with 16Mb, however I can't recall a specific problem at the moment, but remember hearing about some in the past).
3. 16Mb RAM (4 banks of 4Mb per each one) - the ultimate configuration (default).
The easiest way to create such list of combinations (and even 2 more) would be to put 4 jumpers on the card. Each jumper would short one BKSEL line responsible for 1 4Mb bank.
Thus JP0 would toggle the Bank0, JP1 - Bank1, JP2 - Bank2, JP3 - Bank3, making available the following combinations: 0Kb, 4Mb, 8Mb, 12Mb, 16Mb.
All this can be achieved by either putting full 16Mb directly onboard, or putting a single SIMM72 (thus providing for possible other combinations, let's have a look:
- for 1Mb SIMM72: 0Kb, 256Kb, 512Kb, 768Kb, 1Mb - just what all GF1-concerned users may want,
- for 4Mb SIMM72: 0Kb, 1Mb, 2Mb, 3Mb, 4Mb,
- for 8Mb SIMM72: 0Kb, 2Mb, 4Mb, 6Mb, 8Mb,
- for 16Mb SIMM72: 0Kb, 4Mb, 8Mb, 12Mb, 16Mb.
Of course, all this has to be tested, but the SIMM72 socket would provide much wider choice of options even for the debugging phase. And removing the onboard SOJ will add simplicity to the final design (both for the PCB layout and for the jumper options).
Please, have a look at great article already mentioned here: http://web.archive.org/web/19980709192759/htt … pia/16mbgus.htm
It explains InterWave memory support quite well.