Jump to content
rietveld

How does 1mb of memory work on the Adam?

Recommended Posts

How is 1 MB  addressable? An Adam has an 8-bit CPU / 16-bit memory addressing. 64 KB should be its limit. 

Share this post


Link to post
Share on other sites
Posted (edited)

I know that the z80 uses a seperate i/o line to bank switch but i am not sure how that allows the adam to use the full 1 mb

Edited by rietveld

Share this post


Link to post
Share on other sites
Posted (edited)

I’m not sure on all the tech stuff, but I assume a bank switching method is used to access 64K chunks at a time.

 

There were Memory Expanders made up to 2MB but honestly a 64K ME will suffice for the majority to insure that they can use everything in the software archive. Anything more is nice as a RamDISK or copy buffer, but not really needed.

Edited by NIAD

Share this post


Link to post
Share on other sites
1 hour ago, NIAD said:

I’m not sure on all the tech stuff, but I assume a bank switching method is used to access 64K chunks at a time.

 

There were Memory Expanders made up to 2MB but honestly a 64K ME will suffice for the majority to insure that they can use everything in the software archive. Anything more is nice as a RamDISK or copy buffer, but not really needed.

Wasn't there a particularly high level of expansion RAM needed for PowerPAINT?

Share this post


Link to post
Share on other sites
2 hours ago, timepilot said:

Wasn't there a particularly high level of expansion RAM needed for PowerPAINT?

Nope, Powerpaint only needs a 64, to access a full page of graphics.  any memory expander needs to bank switch the memory, that is why any expander greater than 64k needs an addressor card in the center slot wired to it.  The signal for use above 64k is not available in the right memory slot.

Share this post


Link to post
Share on other sites

I just finished implementing this in a Coleco ADAM emulator I'm working on... 

 

You are correct that the maximum addressable space is 64K. The ADAM breaks this into 2 chunks of 32K - an upper and a lower.

 

Using Port I/O writes, software is able to tell the ADAM what to put in the upper and lower banks as follows:

 

// ================================================================================================
// Setup Adam based on Port60 (Adam Memory) and Port20 (AdamNet)
// Most of this hinges around Port60:
// xxxx xxNN  : Lower address space code.
//       00 = Onboard ROM.  Can be switched between EOS and SmartWriter by output to port 0x20
//       01 = Onboard RAM (lower 32K)
//       10 = Expansion RAM.  Bank switch chosen by port 0x42
//       11 = OS-7 and 24K RAM (ColecoVision mode)
// 
// xxxx NNxx  : Upper address space code.
//       00 = Onboard RAM (upper 32K)
//       01 = Expansion ROM (those extra ROM sockets)
//       10 = Expansion RAM.  Bank switch chosen by port 0x42
//       11 = Cartridge ROM (ColecoVision mode).
// 
// And Port20: bit 1 (0x02) to determine if EOS.ROM is present on top of WRITER.ROM at 0x6000
// ================================================================================================


The ADAM powers up in computer mode with Port60 and Port20 and Port42 all at 0x00 .... so by default it's Onboard ROM (minimal boot and Smart Writer ROM) in the lower half + 32K of instrinsic RAM in the upper half.

If booted in 'Coleco Cartridge' mode, it will set Port60 to 0x0F and you end up with OS-7 and 24K RAM in the lower bank and 32K of cart ROM in the upper bank.

 

Dave

  • Thanks 1

Share this post


Link to post
Share on other sites
20 hours ago, timepilot said:

Wasn't there a particularly high level of expansion RAM needed for PowerPAINT?

With a 64K ME, PowerPaint provides 4 cells (individual screens) which equates to half of an 8 1/2”x11” sheet of paper.

 

i never had a 128K ME, so not sure what more PowerPaint provides with that.

 

A 256K ME or larger will give one 8 cells to work with which is a full page.  You will also have a RamDISK available with these larger ME.

 

if you have an Eve Speech Synthesizer/Clock Card, you will hear a short introduction.

 

All printer output is directed to a Parallel Interface and printer codes can be edited within the program.

 

PowerPaint, SpritePower, FontPower and Clipper are great for creating graphics, clip-art, font sets, character graphics and sprites that can be used in SmartBasic or ML programs.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...