• Please review our updated Terms and Rules here

Definitive TRS-80 Model I Memory Map - Including 3rd Party Devices?

kengr

Member
Joined
Sep 11, 2017
Messages
43
While working on a project that required using a few memory mapped locations on the TRS-80 Model I, I found myself pulling together information from a variety of sources to construct a memory map that included TRS-80 devices and third-party devices, so that I could make sure I chose addresses that were not already used by any other device.

Then I realized that such a memory map might exist somewhere. So, does anyone have a comprehensive TRS-80 memory map that includes the specific memory mapped areas used by all TRS-80 devices and all/most third-party devices?

If so, that would be great.

If not, I will be happy to share what I have and/or compile information from all my sources and from you, to publish a comprehensive memory map.

I'm specifically interested in the Model I, including Expansion Interface devices and anything that can be attached to the expansion port on the EI or the expansion port on the keyboard/CPU unit.

Of course, I realize there are some home-brew and/or never-reached-mainstream devices that none of us will know about. But I'd like to get as complete a map as is practically possible.

Thanks.
 
There's not too much to say about the memory map but it would be great to have a comprehensive overview.

There's a list of common I/O ports here:

http://www.vcfed.org/forum/showthread.php?73952-List-of-Standard-TRS-80-IO-Ports&p=609866#post609866

Here's the BASIC memory map with expansion interface devices (floppy and extra RAM):

Code:
R  $0000 - $2FFF  ROM
   $3000 - $37DF  -unmapped-
 W $37E0 - $37E3  DRVSEL
   $37E4 - $37E7  -unmapped-
RW $37E8 - $37E9  printer
   $37EA - $37EB  -unmapped-
RW $37EC          FDC command
RW $37ED          FDC track
RW $37EE          FDC sector
RW $37EF          FDC data
   $37F0 - $37FF  -unmapped-
R  $3800 - $38FF  keyboard
   $3900 - $39FF    keyboard mirror
   $3A00 - $3AFF    keyboard mirror
   $3B00 - $3BFF    keyboard mirror
RW $3C00 - $3FFF  display RAM
RW $4000 - $FFFF  RAM

The hole at $3000 was used as to add extensions to cassette BASIC for the Extratron Stringy Floppy and the Aculab Floppy Tape products. I've heard of people putting in 2K monitor ROMs there, too.

Several programmable character generator devices (e.gl., 80-Grafix, PCG-80) added I/O port functionality that changed the display RAM to access the character generator RAM.

I think some of the hires kits gave access to the high-res display at ROM addresses. At least letting you write to it and perhaps having some I/O port to give read access.

There were kits to allow RAM to be switched into the first 16K, generally to allow CP/M to run nicely.
 
Any more information on this would be appreciated. I've not heard of that, but am interested.

I with I could remember specifically. I think it was at the level of enthusiasts doing this on an individual basis. I don't think it was at the level of "80 Microcomputing article" or some 3rd-party commercial product.

The modern day Quinnterface (FreHD hard drive emulator adapter) does add a 2K utility ROM:

http://ianmav.customer.netspace.net.au/trs80/

Since the TRS-80 has no way to bootstrap these expansion ROMs, the common and wonderful solution is to have the user call an initialization routine as the second-easiest to remember address there is: 12345.

Code:
SYSTEM
*? /12345

12345 if $3039 in hexadecimal so it's just a little ways into the 2K "hole".
 
Don't forget the SYSTEM <enter> /12345 is the jump to the Aculab Floppy Tape start-up and, though I'm not sure about this, the Exatron Stringy Floppy, too
 
Back
Top