coleco adam hardware design with comparison to modern pcs l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Coleco ADAM Hardware Design with comparison to “modern” PCs PowerPoint Presentation
Download Presentation
Coleco ADAM Hardware Design with comparison to “modern” PCs

Loading in 2 Seconds...

play fullscreen
1 / 59

Coleco ADAM Hardware Design with comparison to “modern” PCs - PowerPoint PPT Presentation


  • 1032 Views
  • Uploaded on

Coleco ADAM Hardware Design with comparison to “modern” PCs Dr. Richard F. Drushel ADAMcon 17 17 July 2005 Seminar Outline General introduction to computer hardware: pieces and parts The ColecoVision The MSX: a ColecoVision sort-of-clone The Coleco ADAM Current “commodity” PCs

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Coleco ADAM Hardware Design with comparison to “modern” PCs' - Antony


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
coleco adam hardware design with comparison to modern pcs

Coleco ADAM Hardware Designwith comparison to “modern” PCs

Dr. Richard F. Drushel

ADAMcon 17

17 July 2005

seminar outline
Seminar Outline
  • General introduction to computer hardware: pieces and parts
  • The ColecoVision
  • The MSX: a ColecoVision sort-of-clone
  • The Coleco ADAM
  • Current “commodity” PCs
  • Q & A, tomato pelting, rude noises, &c.
computer hardware
Computer Hardware
  • Get data
  • Store data
  • Transform data
  • Send the data somewhere
parts of a computer
Parts of a Computer

keyboard

mouse/joystick

modem/network

disk/tape

video screen

printer

modem/network

disk/tape

Modified from The Digital Small Computer Handbook

(Digital Equipment Corporation, 1967), p. 14.

getting data 1
Getting Data 1
  • Digital computers deal with data represented as binary numbers via strings of bits (1s and 0s)
  • Bits can be represented as 2 different levels of electrical voltage or current, or a closed vs. open switch.

42 decimal = 101010 binary

Often it is “1” = +5.0 or +3.3 volts, and “0” = 0.0 volts.

getting data 2
Getting Data 2
  • Integer data (whole numbers)
  • Floating-point data (numbers with a decimal point)

A count of system clock ticks; the ASCII code for a number or letter

character; the internal scan code for a keypress — all are whole numbers

that can be exactly represented by a finite number of bits. 8 bits can

represent non-negative numbers from 0 to 255.

Decimal fractions like 1/3 = 0.3333…, 1/4 = 0.25; math constants like π and e — represented in modern computers in a sort of “scientific notation” (mantissa and exponent) called floating-point binary. Some

floating-point numbers have an exact representation in floating point binary, but most don’t (just like 1/3 doesn’t have an exact decimal representation). 80 bits can represent non-negative numbers from 0 to about 10+300, and the smallest non-zero number is about 10–300.

getting data 3
Getting Data 3*
  • Analog-to-digital conversion:

Data vary continuously (floating-point), but we map them to integers to reduce storage size and increase usage speed. Special hardware does the work.

Original signal

Digital sample

Modified from http://www.dliengineering.com/vibman/analogtodigitalconversion.htm

*Transforming it, too :-)

storing data
Storing Data
  • Memory devices
  • Mass storage devices

Magnetic core RAM (read/write) vs. ROM (read-only; only the “1” cores

are included!) — obsolete

Semiconductor RAM (read/write) vs. ROM (read-only)

Dynamic RAM (must be constantly updated) vs. static RAM (stays

intact as long as chip is powered)

Write-once ROM (unchangable) vs. EPROM (erasable with UV light) and

EEPROM (electrically-erasable) and “flash RAM”

Paper media (punch cards, punched paper tape) — obsolete

Magnetic media (floppy disks, hard disks, tape reels and cassettes)

Optical media (CDs, DVDs, optical disks, memory crystals)

transforming data
Transforming Data
  • All kinds of mathematical operations!

RGB colour photo

Adobe Photoshop 7.0 Pointillize filter, radius 3, 8, and 20

inter device communication 1
Inter-Device Communication 1
  • SERIAL: one bit at a time on a single channel
  • PARALLEL: many bits at a time, multiple channels simultaneously (bus)

Slow, but you only need two wires (signal and ground) — e.g., modem/telephone.

Fast, but the more bits at a time, the more wires you need — can be expensive,

can run out of space on a 2-D printed circuit board; electrical interactions between

adjacent wires can cause signal loss.

inter device communication 2
Inter-Device Communication 2
  • via main memory (memory-mapped I/O)
  • via dedicated “ports” (port I/O)

Hardware is attached such that reading and writing to a certain memory

address talks to the hardware. Advantage is design simplicity (especially

the CPU). Disadvantage is that the memory addresses are no longer

available to store programs or data, and can create “holes” if the memory

size is expanded.

The CPU has a separate system to access external hardware that does not

use memory addresses. Advantage is contiguous main memory map (no

“holes”), all of which is available for user programs or data. Disadvantage is

extra control circuitry needed by the CPU, plus some lack of design “elegance”

(religious issue).

inter device communication 3
Inter-Device Communication 3

How does a device let me know that it has some data for me?

How do I let a device know that I have some data for it?

DIGITAL LOGIC

AND, OR, NAND, NOR, XOR, etc.

(Z80 example)

IF { /IORQ signal is low } AND { /RD signal is low } THEN

• the bit pattern on the address bus lines A0–A7 specifies an I/O port to READ

• a device waits for its specific port address bit pattern to appear (it does

nothing if the wrong pattern is present)

• the specified device then places its data on the data bus lines D0–D7

• the CPU can then transfer the data to internal memory

inter device communication 4
Inter-Device Communication 4
  • via “standard” connector ports (cables)
  • via expansion slots (cards, cartridges)

DB-25 (RS-232C serial, IBM parallel), DB-9 (IBM serial), Centronics

30-pin (parallel), modular telephone (modem), Centronics 60-pin (SCSI),

USB, FireWire, 10/100 Ethernet

S-100 bus, IBM PC bus (XT and AT), NuBus (68K Macs), PCI bus

(modern PCs and Macs), ColecoVision game cartridge slot, ADAM

internal and side-port expansion slots

BEWARE OF “STANDARD” CONNECTORS WITH

NON-STANDARD PIN CONNECTIONS!

colecovision design specs
ColecoVision Design Specs
  • Z80 CPU (3.58 MHz)
  • TMS9918 family VDP (16 colors, 32 sprites, 256 x 192 max screen resolution but not all-points-addressable) with 16K VRAM
  • SN76489 sound chip (3 voices, 1 noise channel)
  • 1K RAM, 8K ROM (OS-7 operating system)
  • 32K ROM max at game cartridge slot
  • 2 joystick ports, 60-pin expansion port
slide16

Outside the ColecoVision

CARTRIDGE

SLOT

POWER

and

RESET

EXPANSION

PORT

JOYSTICK with 2 buttons

and numeric keypad

slide17

ADAM game board (ColecoVision similar)

JOYSTICK

Note:

No RAM on

the ADAM

game board

(it’s moved

to a different

circuit board)

VRAM

VDP

VIDEO

MODULATOR

ROM

EXPANSION

PORT

(no buffers on

ColecoVision

Version)

SOUND

Z80 CPU

CARTRIDGE

SLOT

inside the colecovision
Inside the ColecoVision

VIDEO

MODULATOR

VRAM

VDP with

heatsink

(it gets

very hot!)

Z80 CPU

(under

project)

SOUND

JOYSTICK

CONNECTOR

OS-7 ROM

Showing homebrew project to add composite video and sound output

From http://www.a1k0n.net/projects/coleco/

colecovision design quirks 1
ColecoVision Design Quirks 1
  • The VRAM cannot be accessed directly by the Z80. Instead, it is accessed via I/O ports (control and data) that tell the VDP what to do. Screen reads and writes are done serially, one byte at a time! This is rather slow.

Texas Instruments really liked serial RAM and ROM for some reason. It killed their TI-99/4A home computer, which had only 256 bytes of CPU-attached RAM! User volatile data were stored in non-displaying “holes” in the 16K VRAM memory map, and every byte passed through the VDP to the CPU RAM.

colecovision design quirks 2
ColecoVision Design Quirks 2
  • The VDP does not allow adjacent screen pixels to be set to arbitrary colors in most graphics modes. This is a design limitation of the VDP, in an attempt to minimize expensive VRAM.

In the 256 x 192 mode, on a single scan line, unique foreground and background colors can be set only every 8 pixels. Clever use of the “transparent” color (which lets the background and screen border colors show through), sprites, plus careful graphic design can give the illusion of full-color graphics.

slide21

Full-colour original

TMS9918 VDP format (PowerPaint)

note distinct “columns” 8 pixels wide

Converted with BMP2PP for Win32 (Marcel de Kogel, 1997)

colecovision design quirks 3
ColecoVision Design Quirks 3
  • European (PAL) vs. North American (NTSC) TVs

PAL uses 50 Hz electricity, while NTSC uses 60 Hz electricity. The VDP and OS-7

use this frequency as a system clock (either 50 or 60 ticks per second). How do you

make games play at the “same” speed (subjectively) on each system?

Make separate PAL and NTSC versions of each game cartridge, hard-coding

the correct constant into the timing software. This is expensive duplication

and creates inventory distribution headaches…so instead:

Store the correct constant in a defined location in the OS-7 ROM (the AMERICA

byte, address 0069H), and require that programmers write their games to read

that location at startup and make the necessary adjustments to the timing, if it

is critical for game performance. This requires PAL and NTSC versions of the

OS-7 ROM, but that is just one ROM, very cheap.

colecovision expansions 1
ColecoVision Expansions 1
  • Expansion Module 1: Atari 2600 adapter
  • Expansion Module 2: driving adapter
  • Roller Controller: a trackball (upside-down mouse)
  • Super-Action Controller: souped-up joystick with extra buttons and a “spinner” wheel

An unauthorized and illegal clone of the Atari 2600 (Coleco were sued and they

stopped making it), it uses its own 6502 CPU and just hijacks the CV joystick ports and video modulator circuits. Games that use the Atari rotating paddles (e.g., Breakout) do not work with the CV joysticks.

slide24

Expansion Module 1

Expansion Module 2

Roller Controller

Super-Action Controllers

colecovision expansions 2
ColecoVision Expansions 2
  • Expansion Module 3: converts console to a full-fledged Coleco ADAM
  • A variety of aftermarket joysticks or joystick enhancers
  • Super Sketch drawing pad: plugs into the cartridge slot; “draw” with stylus on the pad, images appear on TV screen (but you can’t save them except on a VCR)
slide26

Expansion Module 3

(printer/power supply

not shown)

Super Sketch

(Commodore 64 version)

(The cartridge interface for

ColecoVision would be at the

end of the wire coming out

of the pad)

colecovision prototypes 1
ColecoVision Prototypes 1
  • “Stock” joysticks with spinners!

Spinner on bottom of keypad (note blue side-buttons;

also note alternate color/trim scheme on console)

Spinner on top of keypad

(note grey side-buttons)

colecovision prototypes 2
ColecoVision Prototypes 2
  • “Conversion” Module 1
a 1983 open standard computer architecture with colecovision design features
A 1983 “open standard”computer architecture withColecoVision design features
msx m achines with s oftware e x changability 1
MSX: Machines with Software eXchangability 1
  • Proposed by Kazuhiko Nishi (Microsoft Japan) in 1982
  • Core hardware: Z80 CPU, TMS9918 video, AY-3-8910 sound chip
  • BIOS ROM in lowest 16K
  • MSX BASIC ROM in 2nd 16K
  • 32K RAM or cartridge ROM
msx m achines with s oftware e x changability 2
MSX: Machines with Software eXchangability 2
  • Design evolved over 10 years from MSX 1, MSX 2, MSX 2+ (all Z80), MSX turbo R (Zilog R800 or Z80)
  • Improved TI family VDPs, audio with MIDI and synthesizers, bank-switched RAM up to 512K
  • Very popular in Europe and Japan, but a total bust in North America
msx m achines with s oftware e x changability 3
MSX: Machines with Software eXchangability 3
  • Because the core hardware (CPU, VDP, sound) is the same as (or software compatible with) that of the ColecoVision, and the memory map (OS vs. user code) is the same, it is very easy to port MSX cartridge games to the ColecoVision.
  • European MSX software developers are responsible for the current ColecoVision (and ADAM) emulators used on PC platforms today (Marat Fayzullin and Marcel de Kogel).
slide34

BLOCK DIAGRAM, PHILIPS HOME COMPUTER VG8000

BASIC

ROM

VIDEO/VRAM

CPU

RAM

KEYBOARD/CASSETTE

SOUND/JOYSTICK

the coleco adam
The Coleco ADAM
  • Start with ColecoVision (CPU, VDP, sound), including OS-7, game cartridges, and joysticks
  • Add 64K RAM, a new general-purpose operating system (EOS), and a word processor in ROM
  • Add a “smart” peripheral device network, (using peripheral microcontrollers in each device) to attach keyboard, printer, and mass storage devices
  • Add expansion slots for future growth
  • Sell an entire usable system with block-structured digital tape drive (not unreliable audio tape) and letter-quality printer for $800 US, everything you need in one (big) box
slide37

ADAM Memory and I/O Board

INTERCONNECT

TO GAME BOARD

PRINTER/

POWER

64K RAM

EOS

ROM

SmartWriter

ROM

SIDE

PORT

ADAMnet

PORTS

TAPE 6801

MIOC

MASTER6801

EXPANSION

SLOTS 1, 2, 3

ADAM

RESET

Modified from The ADAM Technical Manual (Coleco, 1984)

adamnet peripheral device network 1
ADAMnet Peripheral Device Network 1
  • Shared serial network (ADAMnet) using built-in capabilities of the Motorola 6800 CPU family.
  • Each peripheral has its own 6801 CPU and dedicated software to run that device and communicate over the network.
  • ADAM has a “master” 6801 CPU that communicates with the peripheral “slave” 6801s and the Z80 CPU.
  • A custom Memory Input/Output Controller (MIOC) contains the digital logic necessary for the Z80 and the Master 6801 to communicate, as well as to select memory maps (e.g., ADAM or ColecoVision, RAM or ROM).
adamnet peripheral device network 2
ADAMnet Peripheral Device Network 2
  • Each ADAMnet device listens for requests to come from the Master 6801.
  • If the request is for you, you do it, sending or receiving any other data as needed.
  • If the request is not for you, you go to sleep and ignore the network traffic until the transaction is completed.
adamnet peripheral device network 3
ADAMnet Peripheral Device Network 3
  • User programs (i.e., running on the Z80 CPU) make ADAMnet requests by (we hope) EOS functions that read from and write to special regions of memory that are shared with the Master 6801.
  • Each peripheral device detected by the Master 6801 is allocated its own 21-byte region (the device control block, DCB).
  • Devices can be added and removed in real time, as long as the Master 6801 is instructed to scan for new devices to update the DCB list.
adamnet peripheral device network 4
ADAMnet Peripheral Device Network 4
  • Character devices send/receive single characters at a time.
  • Block devices send/receive groups of characters at once, in a fixed number.

Examples: keyboard, printer, modem

Examples: floppy disk, hard disk, or digital data tape drive (1024 bytes)

adam expansions 1
ADAM Expansions 1
  • Coleco ADAMlink modem (300 bps) — left internal
  • Coleco Autodialer (pulse-dials phone from an address book) — side port
  • 64K banked expansion RAM (aftermarket 128K, 256K, 512K, 1MB, 2MB, and 4MB) — right internal

Memory banks are selected by number 0–255. Each bank is divided into a lower 32K and an upper 32K. There are dedicated bank-select and memory map-select I/O ports. Aftermarket XRAM above 64K requires 2 circuit boards occupying 2 internal slots: one with the RAM,

the other with the bank-select logic. This is due to lack of necessary Z80 control signals at the XRAM slot — thank you, Coleco!

adam expansions 2
ADAM Expansions 2
  • Expansion ROM — center slot
  • Parallel printer interface — center slot

For European ADAMs, Coleco provided “language cards” which had French or German

versions of the SmartWriter ROM word processor, including alternate graphics character

sets for use with corresponding daisy wheels for the ADAM printer. Three electrical

signals necessary to access these language cards are not implemented on ADAMs

built for North America. The ROMs themselves, however can be pried out and put into

the main ROM sockets on the lower circuit board, thus replacing the English version.

Some aftermarket multi-function center-slot cards feature a “boot prom” socket, into

which an expansion ROM executed at system startup may be inserted.

Also contains the bank select logic for XRAM greater than 64K.

adam expansions 3
ADAM Expansions 3
  • Serial interface — side port (Eve, Orphanware) and center slot (Micro Innovations)
  • 80-column video display — side port (includes Orphanware serial interface)
  • SydModem (1200 bps) — left slot
  • Trisyd Video Systems Audio Digitizer — cartridge slot
  • Midi-Mite 8-channel MIDI interface — side port
adam expansions 4
ADAM Expansions 4
  • Larger floppy disk drives (ADAMnet) — mostly reverse-engineered Coleco 160K drives except for the Micro Innovations 1.44 MB drive
  • Mini Wini hard drive (MFM) — Z80 socket on game board
  • PowerMate hard drive (IDE) — various center-slot cards
adam design quirks 1
ADAM Design Quirks 1
  • ADAM has all the VDP-related design quirks of the ColecoVision.
  • ADAM can be used with either a TV or a composite color monitor (CV is TV-only).
  • The ADAM 60-pin sideport connector works with Expansion Modules 1 and 2.
  • The 3 internal expansion slots have totally different electrical connections, so expansion cards must be designed for a particular slot, and are not interchangeable.
adam design quirks 2
ADAM Design Quirks 2
  • A single 6801 controls both internal tape drives, whereas each external floppy disk drive has its own 6801.
  • Digital data tapes cannot be formatted by any user software.
  • The cassette shell used for digital data tapes is designed not to fit into audio tape drives (though holes can be drilled to make them fit).
  • Similarly, audio cassette tapes will not fit into digital data drives without drilling extra holes.
  • Once the proper holes have been drilled, standard consumer-grade audio equipment can duplicate digital data tapes (including formatting information).
adam design quirks 3
ADAM Design Quirks 3
  • The ADAMnet connection to the printer is through the power supply cord. Other external ADAMnet devices attach through 6-conductor modular cords.
  • The ADAM power supply is in the printer, not the system console. If the printer goes bad and has to be sent out for repair (a frequent occurrence), you cannot use the computer.
  • The mean time to failure of the original ADAM printer demonstrated at COMDEX 1983 was one hour. “Failure” meant overheating and catching fire!
adam design quirks 4
ADAM Design Quirks 4
  • The EOS operating system (revisions 5 and 6) is designed to support hard drives up to 4 gigabytes!
  • However, aftermarket hard drives, as well as EOS revision 7, cut this to 64 megabytes as a result of code patching and compaction to add other features.
  • Aftermarket hard drives (Mini Wini, PowerMate, IDE, ADAMnet) are all electrically-compatible, but software-incompatible — either they all patch EOS in the same way, or the code required to support more than one type exceeds the 8K footprint allowed for EOS at the top of memory.
adam prototypes 1
ADAM Prototypes 1
  • Coleco ADAMnet serial/parallel device

Never released, though mentioned in the ADAM CP/M 2.2 manual. Implements

one ADAMnet serial port (DB-25) and one ADAMnet parallel port (Centronics

30-pin) with a single 6801 CPU. It is a box which attaches to the left side of

the system console at the ADAM printer port; the regular ADAM printer plugs

into the device, and power is passed through it to the system console. One

working example is known to be extant. A poor schematic and a dump of the

6801 firmware survive.

Driver support for serial and parallel printers exists in ADAM CP/M 2.2,

ADAMcalc, and SmartBASIC 2.0 (all software written by Lazer Microsystems).

The actual devices are write-only. In the 6801 firmware, the routines for serial

input have been patched out. It does not appear that they were ever completed.

slide51

PARALLEL

PORT

6801

CPU

SERIAL

PORT

ADAMnet

INTERFACE

Prototype ADAMnet

Serial/Parallel Interface

adam prototypes 2
ADAM Prototypes 2
  • ADAMnet hard drive (Micro Innovations)
  • ADAMnet “solid-state floppy” (Chris Braymen)
  • ADAMnet real-time clock (Chris Braymen)

Just one working example survives from an entire production run that was

otherwise destroyed by Mark Gordon due to unsolved firmware problems and

fear that the drives could never be sold. Bob Slopsema now has the drive.

A 256K battery-backed static RAMdisk. Chris demonstrated this at

ADAMcon IV. It is unique; presumably he still has it.

Perhaps 5 of these were made, some by end users from plans Chris published.

The ADAMnet interface is cannibalized from an ADAM keyboard. Rich Drushel

had the original prototype, but lost it at ADAMcon 12 (forgot it in his hotel room

when packing up).

adam prototypes 3
ADAM Prototypes 3

Coleco 5.25-inch drive (rumored to be 320K)

the ibm pc architecture
The IBM PC Architecture
  • 8088 CPU, 4.58 MHz; optional 8087 math coprocessor
  • 16–64K RAM on the motherboard
  • 4–16K VRAM (memory-mapped), with composite video, hi-res monochrome (MDA), lo-res color (CGA). Later EGA, VGA, XGA, SVGA…
  • System BIOS, Microsoft BASIC in ROM (no BASIC in clones)
  • Audio cassette data storage port (later 10 MB MFM hard drive; later ESDI and IDE hard drives)
  • ISA bus expansion slots (later AT, EISA, and PCI busses) for optional game controller port, serial interface, parallel interface, hard drive, memory expansion to 256K (later 640K)
slide55

Original

IBM-PC

Modified from The IBM

Personal Computer

Technical Reference

(IBM, 1984)

modern wintel pc
Modern Wintel PC
  • Pentium 4 CPU, 32-bit, 4 GHz; internal math coprocessor (since 80486 CPU)
  • 1+ GB RAM, 1 MB ROM
  • 128 MB VRAM, 2048 x 1024 true color
  • Stereo sound and digital MIDI synthesizer
  • 250+ GB IDE hard drive
  • DVD R/W and CD R/W “super drive”
  • USB or FireWire for “plug and play” for high-speed peripherals (mouse, modem, hard drives, video)
  • PCI and PCMCIA card expansion slots
  • 10/100/1000 Ethernet or wireless network
  • Legacy emulation of IBM PC/DOS machine
  • Disappearance of original RS-232C serial and Centronics parallel ports
summary
Summary
  • The basics of computer internals and expansion peripherals are the same in the ColecoVision, MSX, ADAM, and IBM PC systems.
  • The ADAM’s ADAMnet implemented “plug and play” long before USB and FireWire.
  • Capacity and speed have increased in 25 years.
acknowledgements
Acknowledgements
  • Terry Drushel (my Dad), for junking his ADAM in 1988 so I could have it
  • Erin MacLean (my Rin) for posing for the image-processing photos and putting up with me
  • ADAMcon 17 for allowing me to appear today
slide59

Q & A

(not T & A)

Winning entry, 2004

Ugly Professor Contest,

Alpha Phi Omega

service fraternity, Case

Western Reserve University

http://drushel.cwru.edu/ugly/