The coco 5 idea is based on the original coco 4 idea I had in the ninety's but with the 6309 cpu's replaced by an FPGA implementation, the IR interface replaced by Bluetooth and a few other minor changes and many refinements.
Before
looking at this page you may want to know what the motivation behind
the idea is if so click
here to view the History and Philosophy behind the CoCo5 idea.
The main points are listed below click the description for more details or (Click here to go to the top of the details section) :
↓ |
|
↓ |
Point #1 To give the system a nice
retro look and feel it will be designed on a board that will lineup
with all standard coco ports. The bottom half of the case will be
designed to be able to use the top half of a standard
CoCo3 case although a CoCo5 specific top half will ba an available
option.
The bottom half of the case will differ from the standard in that
instead of having a .25 inch greater width at the top of the left
and right sides the greater width will continue the full width the
full 1 1/8 inch height of the base.
The base also differs by having a Molex or USBc power connector just
below where the power wire would come in in the CoCo3.
For other differences lets take a walkabout of the CoCo5.
The Top View looks very much like a CoCo 3 except for the lable and the two extra keys on the keyboard.
- The Fn Key toggels function keys on/off allowing keys 1 ... 0 to act as functiomn keys F1 to F10.
- The "Tandy" key cycles the keyboard focus through CPU's.
- Unshifted #3 --> #0 --> #1 --> #2 --> #3.
- Shifted #3 --> #2 --> #1 --> #0 --> #3
- Note also that F1 and F2 are replaced by M1 and M2.
The Top View might also show another difference if both external Cartrige ports are occupied.
Here we have a view with a CoCo DAC in the top slot and a CoCo SDC in the bottom.
The top external cartridge (Cart-T3) is in the same place as the standard coco 3 cartrige slot.
The bottom external cartridge (Cart-B2) is imediately below the coco 3 cartrige slot requireing the special case bottom.
The left side view features a removable aproximately one inch square grate that may be replaced with a port mounting interface or be left as is for internal speakers, cooling fans or passive cooling.
The back view which in this case includes the side on view of two cartridges from left to right has the following items on the top case as seen from the back,And on the bottom case from left to right has the following as seen from the back,
- Reset Button
- Sterio Audio Out (3.5 mm Jack)
- Composite Video Out RCA
- System Startup Mode Switch
- Cutout for future item*
- Enhanced Cassette / Audio Digitizer Port.
- Enhanced Bit Banager
- Right Joystick Port DIN-6
- Left Joystick Port DIN-6
- Power ON/OFF Botton
*
- Strain Relief Point for USB cable pluging into the Underside.
- VGA Video Port
- DB-9 High Speed Serial Port
- Right Joystick Port miniDIN-6
- Left Joystick Port miniDIN-6
- Molex Power Connector
This Right Side View shows a CoCo 5's two external Cartrige Slots and the "Ventalation" slot.
Note the CoCo 5 is exactly the same height as the Color Computer 3.
This Front View shows the CoCo 5's Internal Cartridge access port.
- This Picture shows access port open.
- To put a cartrige in the internal slot the case must be opened.
- Case opening same as CoCo 3.
- Install CartrigeLabel Up.
- Optionally tighten clamps on cartrige to prevent wiggle.
- Clamping recomended for long cartriges as wiggle could short Cartrige pins.
- Mounting for one Internal 3.5 inch device such as an IDE Hard Drive is attached to the inside bottom case.
- Access port position not ideal for all Cartriges.
- If you do not need this port a cover blending with the case hides the hole.
- The cover can be used regardless of wether the Cartrige port (Cart I1) is occupied or not.
This Front View shows the CoCo 5's Internal Cartridge access port open allowing access to the CF card of a SuperIDE Interface Cartrige.
The front access port works well for Cloud 9's SuperIDE, DISTO's Super Controler* Mini Bus Expansion.
(* of course an internal floppy drive would not be of much use although I can imagine some case hacks that would fix that.)
The Underside View is quite similar to a color computer 3 except:
The RGB out port has been replaced by a USB 1.1 port. The cable run raceway follows a different route to a different exit on the back. The Pocket Port is gone. The Serial Numbers start at 5 000 001.
Point #2 The three standard cartridge ports compatible with all coco disk cartridges and remapable into various configurations if the CoCo 5 is in Managed Hardware Mode.
Point #3. The CPU's unlike those specified by Sock Master will each have a distinct role. These CPU's are designated #0 to #3.
- #0 = The Executive Control CPU
- #1 = The Hardware Allocation CPU
- #2 = The Virtual CoCo2
- #3 = The Virtual CoCo3
C.P.U.
DesignationMMU Memory Access Modes
Functional Modes
Comments
Standard
Extended
Tri-CoCo
Dual-CoCo
#0
2048K
:maped: 8x8K8192K
:maped: 4x8K+1x32KExecutive System Controler Executive System Controler +
Limited Hardware Shareing
As Executive System Controler this CPU allways runs at full 8x speed which is 7.14 MHz. and primarly deals with the keyboard and video it also provides some API shareing functions to the other CPU's.
#1
2048K
:maped: 8x8K4096K
:maped: 4x8K+2x16KCoCo BLUE
Hardware Allotment
Manager.
In Dual-CoCo mode this CPU acts as Hardware Allotment Manager and is used to setup hardware ownerships and shareing between CoCo_Green & CoCo_RED.
In Tri Coco mode it acts as a the 512K CoCo_BLUE and hardware allotment is fixed and shareing limited.
In either mode speed is 1x ..to.. 8x where x=0.894885(the coco2's speed) which makes the max speed 7.159 MHz.#2
2048K
:maped: 8x8KN/A
CoCo Green
The Virtual CoCo_Green is set as a 64K coco2 or a 256K coco3 based on NVR Settings in Tri-CoCo mode and can be setup flexibally as a CoCo 2 or 3+ in Dual-CoCo mode.
#3
2048K
:maped: 8x8KN/A
CoCo RED
The Virtual CoCo_RED is set as a 2 Meg. CoCo3+ in Tri-CoCo mode and can be setup flexibally Dual-CoCo mode.
CLICK to CHOOSE: Return to List or More Details.
Each CPU's function will be described in more detail later but what follows is a short summary.
- #0 = Executive Control CPU
The Executive Control CPU controls the system boot process all keyboard and screen access.
This CPU always runs at 7.14 MHz and has two memory access modes allowing up to 8MB memory access.- #1 = Hardware Allocation CPU
The Hardware Allocation CPU controls the assignment of hardware to CPU's #2 and 3 and their access to udisk,vtape settings and buffers.
In it's default mode it can access 4MB of memory.
CPU #1 has an alternate mode where it acts as a third CoCo in which case each of the virtual CoCo's only have access to their default hardware.
- #2 = Virtual CoCo2
Depending on a value set in settings memory it will either act as a 64K coco2 or a CoCo 3.- #3 = Virtual CoCo3
This CPU acts as CoCo3
Point #4. The effective use of RAM.
RAM use is at the core of this design and is best described with reference to RAM layout "Image Map". The main points areThe overall memory organization is described by the 8 Meg. Memory Map below each small block in the map is 8 killobytes (ie. the smallest area that can be mapped into the 6x09's 64K address space).
- The Memory Management Unit manages six different memory mappings one standard mapping for each virtual CPU and two enhanced mappings..
- All four CPU's have a standard mode for memory access that uses eight 8-bit registers to map there home 2MB of address space this works just like a standard modern 2 Meg Coco3's mapping.
- The Memory Management Unit also has a second set of five registers for CPU #0 in "Control Mode" where the first four 8-bit registers map the low 32K of the CPU to a set of four 8K blocks in a 2 Meg address space. and the final register maps the top 32K of the 64K CPU address space into a single 32K block anywhere in the full 8Meg handled by the MMU. This we will call Enhanced Memory Management Mode #0 eMMU0 for short.
- The Memory Management Unit also has a second set of six registers for CPU #1 in "Allocation Mode" where the first four 8-bit registers map the low 32K of the CPU adress space to a set of four 8K blocks in a 2 Meg address space. and the two remaining registers map the top 32K of the 64K CPU address space into a two 16K blocks in a 4Mg address space handled by the MMU This we will call Enhanced Memory Management Mode #1 eMMU1 for short
- Each CPU has it's 512K "exclusive" access area not available to the other CPU's in Standard Mode.
- 2.5 MB is shared by various CPU's in standard mode for a total of 4.5 MB of memory accessible to programs written in 6309 code with standard GIMME block switching.
- 2.0 MB of memory is available only to CPU #0 in eMMU0 and CPU #1 in in eMMU1.
- 1.5 MB of memory is available only to CPU #0 in eMMU0 and the GIMME-GPU.
To get more details about how the CoCo5 uses each area of memory just click on that area of RAM Memory Map.
![]()
Point #5. The Advanced graphics chip backwards compatible with GIMEx .
This GPU has the following features.For an in depth discussion of the GIMMEx32 click here.
- GPU clocks at 28.6 MHz.
- A VGA and a Composite output are supported and work as two independent monitors.
- VGA resolutions as high as 1280x720
- Composite resolutions to 720x480 NSTC or 720x576 PAL
- Support for up to 3 levels of blending screen and 8 sprite planes as well as One VGA background screen and a status/control bar and two overlay screens per monitor are available.
- For more details
- Planes may be assigned a degree of transparency from 0="See Through" to 16="Opaque" and a Z coordinate 1 to 6.
- "Blender" support to display the mixed color when planes overlap.
- One color in each plane may be designated as "See Through".
- Support for at up to 256 colors in a lo res plane.
- A palette of at least 512 colors which includes all 64 coco RGB and all 64 coco composite available for all screens and a selection of three 1024 color paletts available for the background screen.
- Horizontal Hardware Scrolling supported limited only by what's possible in the 1536K video ram.
- Vertical Hardware Scrolling supported limited to 1080 pixels.
- The GPU may do quick block moves of data to/from anywhere in the 8M standard space or if installed anywhere in up to a 32M space with it built in DMS Blitter.
- GPU has a total address space capability of 32MB.
The origional idea behind this was that all the standard 8 Meg would be available but that a future upgrade "video card" could add as much as an additional 24 Meg. The origional for implementation of this consisted of:
- 20 Address lines and 32 Data Lines for the GPU.
- The GPU would have 8 block registers.
- Each block register would be an 8 bit register.
- Each block would be 128 KB.
- So the GPU while only being able to address 1 MB directly can access a 32 Meg. address space.
- All GPU integer instrctions would require only one clock cycle
- GPU real value instrctions would require three clock cycles and use 80 bits to specify the real number
- The GPU has 24 of it's own 32 bit integer regesters
- The GPU has 6 of it's own 80 bit real registers
- It's math co-processing capabilities would be similar to the Intel 8087's
- Polygon and Fill instructions available at least for the background screen.
- Color mixing handeled seperately from the main 28.6 MHz GPU perhaps by an analog circuit or two parallel Blender Processors at 57.2 MHz.
Point #6. The TV out port is not used but available for a future interface and the RGB port is replaced by a usb 1.1 port..
The usb 1.1 port has three functions:
- Used to install update files for FPGA and ROM from a PC.
- Used with three button scroll mouse for the advanced function interfaces.
- Used with a mouse to replace the missing Fn and Tandy keys if only a standard coco 3 keyboard is being used.
Part of the space where the TV out interface had been located on a coco 3 is replaced by a hatch for future interfaces.
( The picture in the "walk arround" shows the hatch removed but no card installed. )
Some possible interface cards couls be:
- A Composite IN port for video digitizing.
- A RGB port for use with an RGB monitor.
- A DVI port for modern Video Output.
Point #7. All other ports are the same, and additional joystick ports may be added below existing joysticks..
Click here for a visual summary of the available ports on the back of the CoCo.The two options for additional joystick ports are:
- Two Coco Joystick compatible mini-DIN 6 ports or
- An Atari Joystick compatible DB-9 or a DB-15 designed to split into two Atari Joystick interfaces.
Point #8. 256K of the ram is NVRAM ant there is a 256K system ROM and a 128K of user EEPROM.
Actual implementation of this need not be NVRAM,ROM,EEPROM as origionally envisioned but in whateve makes the most sense in the 2020's.
These blocks have the following functions:
- The "NVRAM" provides.
- 56 K of Settings Memory
- 40 K "QtrDisk" ud9 to emulate an OS9 boot from ROM.
- 160K "Disk Zero" ud0 to store an RS-DOS disk.
Note this final item may not be used if you set up in the "UnDisk memory a 1.44 MB floppy".- The 256K System ROM provides.
- Coco 2 & 3 6809 RAM Images for copying to CPU's #1 2 and 3 as needed at startup.
- The 6809, 6309, Turbo9 and GPU code necessary to implement the advanced functionality of the CoCo5
- The 6309 code necessary for backwords compatability with the CoCo 4.
- A very basic assembly language monitor.
- System Integrity Check, Fallback and Code Upgradeing.
- The 128K "EEPROM" provides
- A Developers testing area for system development
- A User accessible area to upload Games or Applications.
- An area to place extensions to the assembly language monitor.
Point #9. Modes for CoCo 2. 3 compatibility as well as tape and disk compatibility.
- In tape mode if a Virtual CoCo is not attached to a Disk controler it will act as a tape system
and if a disk controler is attached then the DOS in the controler will be used.- In Disk mode the built in "Disk Extended Color Basic 5.0 is used.
- In Settings memory the Virtual Coco's GREEN and RED can independently to CoCo 2,3 or 4 Mode.
Return
Operation
- System Startup
- Some Example Scenarios
- Upgrade an Maintenance
- Online
Return
Optional Features and Extras
- Atari Joysticks
- Bluetooth
- Keyboard Support
- CoCo Net
- Audio
- Joy
- Lefty
Return
Possible Implementation Ideas
- Integrated
- Modular
Return
Appendix
- Glossary
- Keyboard
Return