top of page
Suche
oscholz5

Adam and the RAMs!

Aktualisiert: 6. Jan. 2022

Now let's do some serious upgrading, like 32K RAM!

Some memory related rambling

As you probably know, the ColecoVision was planned to be upgradeable to an ADAM computer, and part of that was more RAM than the measly 1K that came with it in the 1980's. Now, the RAM chip on our mainboard is already 32K, why not use that? After all, Coleco had planned the 32K memory expansion including a tape drive called Super Game Module back in 1983. There were supposed to be games on tape utilising the extra RAM, but the module never came out.


So, how do we add the memory, which is already there? Well, the Z80 processor can address up to 64K of memory, 8 chunks of 8K each. Unmodified, the CV reserves the top 32K for the cartridge ROM, and the lowest 8K chunk for BIOS, leaving only 24K for RAM. Only 1K of those are used: the upper 8K block at $6000 contains 8 mirrors of the 1K, which unfortunately some (very few) games rely on!


The Coleco engineers realised this and thus created a memory configuration register (as described in the (Coleco ADAM technical manual, Chapter Software 2.5), which allowed software to change portions of memory, e.g. replacing BIOS or cartridge memory with RAM or ROM. So, to stay compatible, we need to recreate those memory registers, which are fortunately well documented.

Foreplay...

Since we want to add more expansion hardware later, let's install an address decoder that maps new registers in I/O space (note the orientation of these, they're upside down):

  • U35 74LS138D (SO16)

  • U37 74LS00D (SO14)

If you want to add a second sound chip in the future, now is also a good time to add the mixing resistors and capacitors, before soldering in the 40 pin socket for U17:

  • R70, R73 1k

  • R71, R72, R32, R33 2k2

  • C91, C92 1u/16V 5mm electrolytic capacitor

  • C98 100nF

  • U17 40 pin socket



Short test before we continue


We only added some decoding, so do a quick test with a game and then continue. This is also a good time to build the SGM test cart from user "nanochess" (available for download at AtariAge.com). When you run the test, it should report "ColecoVision detected: 1K" :



In medias res

Now, install

  • U36 74LS32D (SO14)

  • U38, U40 74LS74D (SO14)

  • Move solder jumper SJ8 to 1-2!

U36 generates the select signals for two (write only) registers

  • A three bit register at IO-Address $7F, Bits 1-3, implemented by U38 and U40

  • A one bit register at IO-Address $53 Bit 0, implemented by U38

Register $7F is the ADAM memory management register. Bit 1 (1 after reset) selects if the lowest 8K should be BIOS ROM or RAM. If this is changed to 0, BIOS disappears and 8K RAM appear.


Bits 2&3 manage the upper 32K from $8000-$FFFF. Both default to 1 after reset, meaning the upper 32K are available for a cartridge.


If both bits 2&3 are cleared, 32K RAM can be mapped instead of a cartridge. This only works if no cartridge is inserted, so software must ensure this is the case. Another requirement is that a 64K RAM chip is inserted instead of just 32K. Also, SJ18 must be set to enable upper 32K expansion RAM!


If these bits are set to "01", expansion ROM are mapped to the upper 32K. To enable this, SJ6 must also be set, and of course a 64K EPROM BIOS is required. This can be used to have a built-in app (aka game) that can be enabled by a custom BIOS (I'll show you later!). Before expansion ROM is enabled, you need to check that no cartridge is inserted!


So much for the ADAM memory register, which leaves the register at $53. Here, bit 0 (defaults to 1 after reset) selects, whether or not the machine is a ColecoVision (1K RAM) or ADAM (24K or more RAM). So, this bit controls the mirroring within the 8K block $6000-$7FFF as well as enabling the remainder or RAM.


Note: if you run a test now, the test cartridge will report a ColecoVision with 1K and memory error, because the test cart switches to ADAM Mode, but will not find more than 8K of unmirrored RAM!


Continue by installing:

  • U42 74LS32D (SO14)

  • U39, U41 74LS08D (SO14)

  • R54, R74 47k

  • R75 4k7

  • Remove SJ3, SJ4 (because U39 is installed)

  • Remove SJ7, SJ9, SJ17 (because U41 is installed)

  • Install SJ11

Also, if you want to add compatibility with games supporting the additional AY-3-8910 sound chip, you can just put it into socket U17 now.

Retest with SGM test module



If all went well, the board should be recognized as Colecovision, Super Game Module detected with 24K RAM plus 8K base RAM.


If you installed the AY 3-8910, you should enjoy 6 voice music using the SGM test module, in stereo (where available)!


Stereo or Mono?

If you want to be able to switch audio to mono, you can install:


SW5 SPPJ310500 ALPS_SPPJ310500.


Hint: this only works well for PAL ColecoVision, for NTSC you may need to modify the case and add a hole if you want Stereo/Mono switch, or add a switch elsewhere.







155 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen

Use protection, kids!

Comments


bottom of page