1 / 59

Coleco ADAM Hardware Design with comparison to “modern” PCs

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

Antony
Download Presentation

Coleco ADAM Hardware Design with comparison to “modern” PCs

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Coleco ADAM Hardware Designwith comparison to “modern” PCs Dr. Richard F. Drushel ADAMcon 17 17 July 2005

  2. 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.

  3. Computer Hardware • Get data • Store data • Transform data • Send the data somewhere

  4. 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.

  5. 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.

  6. 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.

  7. 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 :-)

  8. 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)

  9. Transforming Data • All kinds of mathematical operations! RGB colour photo Adobe Photoshop 7.0 Pointillize filter, radius 3, 8, and 20

  10. 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.

  11. 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).

  12. 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

  13. 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!

  14. 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

  15. Outside the ColecoVision CARTRIDGE SLOT POWER and RESET EXPANSION PORT JOYSTICK with 2 buttons and numeric keypad

  16. 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

  17. 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/

  18. 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.

  19. 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.

  20. Full-colour original TMS9918 VDP format (PowerPaint) note distinct “columns” 8 pixels wide Converted with BMP2PP for Win32 (Marcel de Kogel, 1997)

  21. 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.

  22. 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.

  23. Expansion Module 1 Expansion Module 2 Roller Controller Super-Action Controllers

  24. 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)

  25. 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)

  26. 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)

  27. ColecoVision Prototypes 2 • “Conversion” Module 1

  28. A 1983 “open standard”computer architecture withColecoVision design features

  29. 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

  30. 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

  31. 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).

  32. A random MSX 1-compatible computer

  33. BLOCK DIAGRAM, PHILIPS HOME COMPUTER VG8000 BASIC ROM VIDEO/VRAM CPU RAM KEYBOARD/CASSETTE SOUND/JOYSTICK

  34. 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

  35. Modified from The ADAM Technical Manual (Coleco, 1984)

  36. 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)

  37. 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).

  38. 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.

  39. 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.

  40. 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)

  41. 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!

  42. 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.

  43. 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

  44. 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

  45. 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.

  46. 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).

  47. 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!

  48. 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.

  49. 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.

More Related