430 likes | 571 Views
Encore: Atari’s Second System. Joe Decuir, Atari Alumnus Standards Architect, CSR Distinguished Lecturer, IEEE Consumer Electronics Society Jdecuir@ieee.org. Agenda. Lessons Atari learned from the Atari VCS (aka 2600) The competitive landscape in the late 1970s
E N D
Encore:Atari’s Second System Joe Decuir, Atari Alumnus Standards Architect, CSR Distinguished Lecturer, IEEE Consumer Electronics Society Jdecuir@ieee.org
Agenda • Lessons Atari learned from the Atari VCS (aka 2600) • The competitive landscape in the late 1970s • How we decided the target market • How we decided the hardware features • How we decided the software features • Ported Arcade games • Original games: Star Raiders • The development ecosystem • What we learned from the Atari PCS – visions for our third system
Our first success: Atari VCS • This was a good idea, executed surprisingly well • The hardware was cheap enough, to make it to market in 1977. • The hardware was flexible enough to enable great game designers • The market concept was simple: take relatively complex contemporary games and bring them home. • Technical Reference: Racing the Beam, MIT Press, Montfort & Bogost • Social history: Atari: Business is Fun, Goldberg & Vendel • Crucial: the 6502 was fast enough to allow a line-by-line display • A bit map would have been prohibitively expensive at that time.
Atari2600 system Modulated RF cable Video & Audio I/O Plug-in cartridge CPU System Local I/O ports Synthetic video Synthetic audio Console switches TV: Joystick User inputs User outputs
Lessons Atari drew from the VCS’ success • Make a flexible system; the programmers are smart • Bill Joy says: ‘design your product around the assumption that not all of the smart people in the world work for your company’. • Allow for self development: let programmers use the machine itself to develop new games and/or other applications • This would generate recursive feedback: the system with the biggest source of applications (e.g. games) would attract the most sales. • For games, allow the programmers to follow the beam, even if we don’t know what all they will do with that flexibility • In a new design that has a screen map (bit map or character map), use that memory efficiently.
1977: two kinds of competition Video Game consoles • Colecovision • Mattel Intellevision • Fairchild Channel F Personal Computers • S-100 machines • Apple II (next slides) • Commodore PET • Radio Shack TRS-80
Market Concept • Atari believed that the best home computer would play great games • This dichotomy constantly pulled in two directions: • What does it take to make a next generation game machine? • What does it take to make a useful home productivity computer? • Atari brought out two machines in parallel: • A great game console that could be a computer: Atari 400 • A personal computer that played great games: Atari 800 • From a software standpoint, they were identical • Physical differences: • membrane keyboard (400) vsfull travel keyboard (800) • fixed RAM (400, 8KB) or expandable RAM (800, 8 - 48KB)
Application requirements for a console The arcade world was pushing the boundaries: bigger and more complicated playfields and players • Bit maps, with multiple colors • Character maps, for repetitive detail • More moving objects • The ability to add playfield motion in two dimensions
Hardware requirements for a console • We could afford a screen map with resolution higher than 40 x 24 • We needed to be efficient with a screen display • The original design was 4KB; we got 8KB by buying defective parts. • We invented graphic character maps, making different use of the same hardware used for monochrome character maps • We added the ability to scroll a bit map or character map in 2 D • There is hardware support for horizontal and vertical scrolling • We also extended the ability to do ‘sprites’: • Four 8-bit objects and four 2-bit objects, all independently movable • We allowed the programmers to make adjustments in a screen vertically: change colors, move objects, scroll, change character sets, etc
Character maps and bit maps • ANTIC contained a Display List Processor • a simple parallel processor with a few instructions. • These instructions chose the graphics mode, scrolling, and interrupts • These graphics modes could be mixed on a logical line-by-line basis: • Bit maps: 320x1 bit (monochrome); 160x2 (4 color); 80x1; 80x2; 40x2 • Character maps: 40x8x8x1 (monochrome); 40x8x4x2 (4 color) • RAM budgets: • Hi res bit map: 320x192x1 =7680 bytes, almost all standard RAM (8KB) • 4 color bit map: 160x96x2 = 3840 bytes, almost all of the original RAM (4KB) • Monochrome alphanumeric characters: 40x24x8 = 960 bytes • 4 color character map: 960 bytes + 2048 byte character set • Note: monochrome or color character maps could be in ROM
Placeholder for demo • Atari monochrome character mode • Atari graphics character mode • Set character set pointer to random data in the OS • Atari graphics: 320x1, 160x2 • Type in a simple plot program
Application requirements for a computer The hardware requirements were driven by the killer software applications: • Word processing – e.g. Atariwriter • Spreadsheets – e.g. VisiCalc • Basic programming – Atari and Microsoft • Communications = terminal emulation over a modem
Hardware requirements for a computer • Character display • we limited ourselves to a home TV, so we had to accept a limit of 40 characters/line • Enough RAM for the applications • We used DRAM, not SRAM. This required refresh cycles • Mass storage on diskettes • A printer port • Serial communication for terminal emulation
The external I/O requirement problems • The Apple II has slots! • This made general I/O expansion easy • How they got slots: Apple did NOT include an RF TV modulator • Including one would subject them to FCC regulations that they could not meet • The base Apple II would drive a separate monitor • Wozniak did a great job of moving diskette IO functions from an expensive diskette controller ASIC to 6502 firmware • This made an Apple II with two diskette drives cost effective in 1979 • A simple expansion card could drive a Centronix printer • A more complicated card could hold an internal 300 bps modem
Atari had a new problem • Personal computer or video game console systems generate substantial radio frequency interference. • Modern systems need RFI shielding to pass FCC class B tests • The FCC had I Type requirements for anything connected to a TV antenna • This is before they relaxed them all in 1980 when they established class B • Atari’s decision to confine video to a TV required designing to pass FCC Type I, which were over 20 dB tougher than class B • The Atari 2600 was contained, and didn’t need peripherals • It was a victory when the FCC decided that changing cartridges didn’t matter • This raises the huge question: how could Atari expand a system?
Atari had two answers • For RAM expansion, Atari put expansion slots inside the Atari 800 case • That entire system fit within an aluminum casting about 1mm thick • In your physics classes, these are called Faraday cages • For all other expansion, Atari had to invent new: a Serial IO Bus. • The data rate was set to 19,200 kbps, quiet enough for the FCC • This was easily fast enough for external printer ports • This was easily fast enough for the dial up modems we imagined at the time • This was tolerable enough for diskette drives from the time, but those devices got a lot faster • This was completely inadequate for hard discs, but these were prohibitively expensive in 1979
Costs of Serial IO Expansion • The decision to use home TVs AND to support external computer I/O functions drove a lot of COST into a COMPLETE SYSTEM. • The Atari 810 single diskette device was a parallel computer subsystem with another 6502, ROM, RAM, SIO IO, diskette IO, the physical drive and power • The Atari 820 printer was another parallel computer with a 6502, ROM, RAM, SIO IO, a 40 column printer mechanism and power • The Atari 850 expansion devise had another 6502, RAM, ROM, SIO IO, a DB-25 Centronix printer interface, four DB-9 RS-232 serial interfaces and power • A complete useful system was too expensive to be competitive with an Apple II
SIO bus pins • Clock input • Clock output • Data Input • Ground • Data output • Ground • Command (PC to peripheral) • Motor Control (cassette) • Proceed (flow on) • +5v DC/Ready • Audio input (cassette) • +12v DC • Interrupt (peripheral to PC)
Atari system software – the Atari OS • Atari accepted that the system would come with an operating system • That would perform what we call a BIOS = Basic Input Output System • All the essential internal IO is abstracted via IO Control Blocks (IOCB) • Get character, put character, etc • This included drivers for bundled devices: • S: (Screen); K: (Keyboard); E: (Editor) • This also included drivers for anticipated SIO devices: • D: (disk); P: (printer); R: (RS-232 serial); C: (cassette) • The BIOS is 8K; we also added 2K of floating point math • The rest of the system was allocated to the Disk Operating System (DOS) • e.g. file management)
Personal productivity and education Personal Productivity and Communications • Atari produced Atariwriter • Software Arts produced VisiCalc, compatible with the Apple II version • Synapse produced a suite of tools: Syncalc; Syntrend; Synfile • Broderbund produced Print Shop • Atari Shipped Telelink I as a terminal emulator for BBS access Education • Atari produced the “Education System” cartridge, which used content on cassette – both digital content and recorded narration • Atari also produced the Pilot programming cartridge and toolkit. • Fisher Price produced “Linking Logic”
Ported Arcade Games Demo samples in hand: • Asteroids • Donkey Kong • Galaxian • Missile Command • PacMan • Space Invaders
Programming languages • Atari approached Microsoft for Basic • Their version took 12K • Microsoft went to Shepherd Microsystems (aka OSS) for an 8K version • Microsoft also sold their BASIC II as a ‘cross compatible’ version • Atari, OSS and Synapse produced 6502 Assemblers • OSS shipped Tiny C • OSS shipped Action! Which was optimized for game design • FORTH was available from the Atari Program Exchange (APX), and two other companies • LOGO was available, for educational uses • LISP was available
Development environment • This was the first ‘game console’ that could do ‘self development’ • The system documentation was very good: • from Atari, from APX (De Re Atari), and several 3rd parties • There were several self assemblers: Atari, OSS, Synapse • I am not aware of commercial single-step monitors; Atari had them • There were higher level languages: Action!, Tiny C • Programmers could write games directly to diskette for small markets • Their customers had to own an FDD, which cost a lot • The could also use PROM programmers to generate cartridge prototypes: • Example: Thompson Electronics’ Proburner fits into a cartridge slot
Lessons learned, and not learned As a game console: • We did provide good self-development tools to attract developers • The founders of Activision and Imagic had not left yet, so Atari was not afraid of third-party developers – that happened later As a computer: • Massive cost reduction possible after FCC changed the rules • The Commodore C64 passed Atari at this point • Atari should build a unit with integrated FDD • Atari could build an expansion unit with hardware slots
Concepts for a 3rd system As a game console: • Cartoon-level animation • Accelerate bit map manipulation in hardware • Synchronize with external video (genlock) As a computer: • 80 column character displays • Enough bit mapped memory for a Xerox Alto-like ‘window’ OS • Larger memory: 128KB or more • Built in 3.5” FDD • Expansion to HDD
Visions of a 3rd system: Amiga 1000 Read: “The Future Was Here” by Jimmy Maher, MIT Press
Resources: • Racing the Beam, MIT Press (eBook and hardcover) • The Future was Here, MIT Press (eBook and hardcover) • Atari: Business is Fun (softcover) • De Re Atari, Chris Crawford (softcover and web) • Atari Home Computer System: Hardware Manual; Operating System User Manual; Operating System Source Listing • Mapping the Atari, Chadwick • Your Atari Computer, Osborne • The Mythical Man-Month, Brooks • Art of the Video Game, Smithsonian • Web pointers