POKEY

Last updated
POKEY in an Atari 130XE POKEY chip on an Atari 130XE motherboard.jpg
POKEY in an Atari 130XE

POKEY, an acronym for Pot Keyboard Integrated Circuit, [1] is a digital I/O chip designed by Doug Neubauer at Atari, Inc. [2] for the Atari 8-bit family of home computers. It was first released with the Atari 400 and Atari 800 in 1979 and is included in all later models and the Atari 5200 console. POKEY combines functions for reading paddle controllers (potentiometers) and computer keyboards as well as sound generation and a source for pseduo-random numbers. It produces four voices of distinctive square wave audio, either as clear tones or modified with distortion settings. [3] Neubauer also developed the Atari 8-bit killer application Star Raiders which makes use of POKEY features.

Contents

POKEY chips are used for audio in many arcade video games of the 1980s including Centipede , Missile Command , Asteroids Deluxe , and Gauntlet . Some of Atari's arcade systems use multi-core versions with 2 or 4 POKEYs in a single package for more audio channels. The Atari 7800 console allows a game cartridge to contain a POKEY, providing better sound than the system's audio chip. Only two licensed games make use of this: the ports of Ballblazer and Commando .

The LSI chip has 40 pins and is identified as C012294. [4] The USPTO granted U.S. Patent 4,314,236 to Atari on February 2, 1982 for an "Apparatus for producing a plurality of audio sound effects". [5] The inventors listed are Steven T. Mayer and Ronald E. Milner.

No longer manufactured, POKEY is emulated in software by arcade and Atari 8-bit emulators and also via the Atari SAP music format and associated player.

Features

Versions

By part number:

Pinout

Atari POKEY (C012294) pin-out Atari POKEY.svg
Atari POKEY (C012294) pin-out
Pin NamePin Number(s)Description
A0 - A336, 35, 34, 33Memory Address Input
ACLK27Serial Clock Output
AUD37Audio Output
BCLK26Bi-direction Clock I/O
CS030Chip Select
CS131Chip Select
D0 - D738, 39, 40, 2, 3, 4, 5, 6Data Bus I/O
IRQ29Interrupt Request Output
K0 - K523, 22, 21, 20, 19, 18Keyboard Scan Output
KR1 - KR225, 16Keyboard Row strobe Input
P0 - P714, 15, 12, 13, 10, 11, 8, 9Potentiometer (Paddle) Scan
R/W32Read/Write I/O Control
SID24Serial Input Data
SOD28Serial Output Data
Vcc17Power +5 Volts
Vss1Ground
Ø27Phase 2 Clock Input

Registers

The Atari 8-bit computers map POKEY to the $D2xxhex page and the Atari 5200 console maps it to the $E8xxhex page.

POKEY provides 29 Read/Write registers controlling Sound, Paddle input, keyboard input, serial input/output, and interrupts. Many POKEY register addresses have dual purposes performing different functions as a Read vs a Write register. Therefore, no code should read Hardware registers expecting to retrieve the previously written value.

This problem is solved for some registers by Operating System "Shadow" registers implemented in regular RAM that mirror the values of hardware registers. During the Vertical Blank the Operating System copies the Shadow registers in RAM for Write registers to the corresponding hardware register, and updates Shadow values for Read registers from the hardware accordingly. Therefore, writes to hardware registers which have corresponding shadow registers will be overwritten by the value of the Shadow registers during the next vertical blank.

Reading values directly from hardware at an unknown stage in the display cycle may return inconsistent results (an example: reading potentiometers). Operating System Shadow registers for Read registers would usually be the preferred source of information.

Some Write hardware registers do not have corresponding Shadow registers. They can be safely written by an application without the value being overwritten during the vertical blank. If the application needs to know the last value written to the register then it is the responsibility of the application to implement its own shadow value to remember what it wrote.

NameDescriptionRead/WriteHex AddrDec AddrShadow NameShadow Hex AddrShadow Dec Addr
AUDF1 Audio Channel 1 FrequencyWrite$D20053760
POT0 Potentiometer (Paddle) 0Read$D20053760PADDL0$0270624
AUDC1 Audio Channel 1 ControlWrite$D20153761
POT1 Potentiometer (Paddle) 1Read$D20153761PADDL1$0271625
AUDF2 Audio Channel 2 FrequencyWrite$D20253762
POT2 Potentiometer (Paddle) 2Read$D20253762PADDL2$0272626
AUDC2 Audio Channel 2 ControlWrite$D20353763
POT3 Potentiometer (Paddle) 3Read$D20353763PADDL3$0273627
AUDF3 Audio Channel 3 FrequencyWrite$D20453764
POT4 Potentiometer (Paddle) 4Read$D20453764PADDL4$0274628
AUDC3 Audio Channel 3 ControlWrite$D20553765
POT5 Potentiometer (Paddle) 5Read$D20553765PADDL5$0275629
AUDF4 Audio Channel 4 FrequencyWrite$D20653766
POT6 Potentiometer (Paddle) 6Read$D20653766PADDL6$0276630
AUDC4 Audio Channel 4 ControlWrite$D20753767
POT7 Potentiometer (Paddle) 7Read$D20753767PADDL7$0277631
AUDCTL Audio ControlWrite$D20853768
ALLPOT Read 8 Line POT Port StateRead$D20853768
STIMER Start TimersWrite$D20953769
KBCODE Keyboard CodeRead$D20953769CH$02FC764
SKREST Reset Serial Status (SKSTAT)Write$D20A53770
RANDOM Random Number GeneratorRead$D20A53770
POTGO Start POT Scan SequenceWrite$D20B53771
SEROUT Serial Port Data OutputWrite$D20D53773
SERIN Serial Port Data InputRead$D20D53773
IRQEN Interrupt Request EnableWrite$D20E53774POKMSK$1016
IRQST IRQ StatusRead$D20E53774
SKCTL Serial Port ControlWrite$D20F53775SSKCTL$0232562
SKSTAT Serial Port StatusRead$D20F53775

In the individual register listings below the following legend applies:

Bit ValueDescription
0Bit must be 0
1Bit must be 1
 ?Bit may be either 0 or 1, and is used for a purpose.
-Bit is unused, or should not be expected to be a certain value
labelRefer to a later explanation for the purpose of the bit.

Audio

Pokey contains a programmable sound generator; four audio channels with separate frequency, noise and voice level controls.

Each channel has an 8-bit frequency divider and an 8-bit register to select noise and volume.

POKEY's sound is distinctive: when the four channels are used independently, there is noticeable detuning of parts of the 12-tone equal temperament scale, due to lack of pitch accuracy. Channels may be paired for higher accuracy; in addition, multiple forms of distortion are available, allowing a thicker sound. The distortion is primarily used in music for bass parts.

One of the sound-engines developed for the Atari 8-bit family was called the AMP engine (Advanced Music Processor). This was used by the musician Gary Gilbertson.

Audio Channel Frequency

The AUDF* registers control the frequency or pitch of the corresponding sound channels. The AUDF* values also control the POKEY hardware timers useful for code that must run in precise intervals more frequent than the vertical blank.

Each AUDF* register is an 8-bit value providing a countdown timer or divisor for the pulses from the POKEY clock. So, smaller values permit more frequent output of pulses from POKEY, and larger values, less frequent. The values $0hex/0dec to $FFhex/255dec are incremented by POKEY to range from $1hex/1dec to $100hex/256dec. The actual audible sound pitch is dependent on the POKEY clock frequency and distortion values chosen. See Audio Channel Control and Audio Control.

AUDF1 $D200 Write

Audio Channel 1 Frequency

AUDF2 $D202 Write

Audio Channel 2 Frequency

AUDF3 $D204 Write

Audio Channel 3 Frequency

AUDF4 $D206 Write

Audio Channel 4 Frequency

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
 ? ? ? ? ? ? ? ?

Audio Channel Control

The Audio Channel control registers provide volume and distortion control over individual sound channels. Audio may also be generated independently of the POKEY clock by direct volume manipulation of a sound channel which is useful for playing back digital samples.

AUDC1 $D201 Write

Audio Channel 1 Control

AUDC2 $D203 Write

Audio Channel 2 Control

AUDC3 $D205 Write

Audio Channel 3 Control

AUDC4 $D207 Write

Audio Channel 4 Control

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Noise 2Noise 1Noise 0Force VolumeVolume 3Volume 2Volume 1Volume 0

Bit 0-3: Control over volume level, from 0 to F.

Bit 4: Forced volume-only output. When this bit is set the channel ignores the AUDF timer, noise/distortion controls, and high-pass filter. Sound is produced only by setting volume bits 0:3 . This feature was used to create digital audio via pulse-code modulation.

Bit 5-7: Shift register settings for noises/distortion. Bit values described below:

Noise ValueBits ValueDescription
0 0 0$005-bit then 17-bit polynomials
0 0 1$205-bit poly only
0 1 0$405-bit then 4-bit polys
0 1 1$605-bit poly only
1 0 0$8017-bit poly only
1 0 1$A0no poly (pure tone)
1 1 0$C04-bit poly only
1 1 1$E0no poly (pure tone)

Generating random noises is served by reading 8 bits from top of 17-bit shift register. That registers are driven by frequency 1.79 MHz for NTSC or 1.77 MHz for PAL. Its outputs can by used independently by each audio channels' divider rate.

AUDCTL $D208 Write

Audio Control allows the choice of clock input used for the audio channels, control over the high-pass filter feature, merging two channels together allowing 16-bit frequency accuracy, selecting a high frequency clock for specific channels, and control over the "randomness" of the polynomial input.

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
17 vs 9 PolyCH1 1.79CH3 1.79CH2 + 1CH4 + 3FI1 + 3FI2 + 464 vs 15 kHz

"1" means "on", if not described:

Bit 0
$01: (15 kHz), choice of frequency divider rate "0" - 64 kHz, "1" - 15 kHz
Bit 1
$02: (FI2 + 4), high-pass filter for channel 2 rated by frequency of channel 4
Bit 2
$04: (FI1 + 3), high-pass filter for channel 1 rated by frequency of channel 3
Bit 3
$08: (CH4 + 3), connection of dividers 4+3 to obtain 16-bit accuracy
Bit 4
$10: (CH2 + 1), connection of dividers 2+1 to obtain 16-bit accuracy
Bit 5
$20: (CH3 1.79), set channel 3 frequency "0" is 64 kHz. "1" is 1.79 MHz NTSC or 1.77 MHz PAL
Bit 6
$40: (CH1 1.79), set channel 1 frequency "0" is 64 kHz. "1" is 1.79 MHz NTSC or 1.77 MHz PAL
Bit 7
$80: (POLY 9), switch shift register "0" - 17-bit, "1" – 9-bit

All frequency dividers (AUDF) can be driven at the same time by 64 kHz or 15 kHz rate.

Frequency dividers 1 and 3 can be alternately driven by CPU clock (1.79 MHz NTSC, 1.77 MHz PAL). Frequency dividers 2 and 4 can be alternately driven by output of dividers 1 and 3. In this way, POKEY makes possible connecting of 8-bit channels to create sound with 16-bit accuracy.

Possible channel configurations:

Potentiometers

POKEY has eight analog to digital converter ports most commonly used for potentiometers, also known as Paddle Controllers. The analog inputs are also used for the Touch Tablet controller, and the 12-button, video game Keyboard Controllers. Each input has a drop transistor, which can be set on or off from software. The timers can also be used to support a light pen, by connecting a photodiode to the drop transistor, which captures the timer when the electron beam in the television passes by the pen. The vertical position of the pen had to be read separately.

POT0 $D200 Read

SHADOW: PADDL0 $0270

Paddle Controller 0 Input

POT1 $D201 Read

SHADOW: PADDL1 $0271

Paddle Controller 1 Input

POT2 $D202 Read

SHADOW: PADDL2 $0272

Paddle Controller 2 Input

POT3 $D203 Read

SHADOW: PADDL3 $0273

Paddle Controller 3 Input

POT4 $D204 Read

SHADOW: PADDL4 $02704

Paddle Controller 4 Input

POT5 $D205 Read

SHADOW: PADDL5 $0275

Paddle Controller 5 Input

POT6 $D206 Read

SHADOW: PADDL6 $0276

Paddle Controller 6 Input

POT7 $D207 Read

SHADOW: PADDL7 $0277

Paddle Controller 7 Input

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
 ? ? ? ? ? ? ? ?

Each input has 8-bit timer, counting time when each TV line is being displayed. This had the added advantage of allowing the value read out to be fed directly into screen coordinates of objects being driven by the paddles. The Atari Paddle values range from 0 to 228, though the maximum possible is 244. The Paddle controller reads 0 when turned to its maximum clockwise position, and returns increasing values as it is turned counter-clockwise ending at its maximum value.

The Paddle reading process begins by writing to POTGO which resets the POT* values to 0, the ALLPOT value to $FF, and discharges the potentiometer read capacitors. The POT* values increment as they are being scanned until reaching the resistance value of the potentiometer. When the Paddle reading is complete the corresponding bit in ALLPOT is reset to 0.

The Paddle scanning process can take the majority of a video frame to complete. The Atari Operating System takes care of Paddle reading automatically. The Paddles are read and paddle scanning initiated during the stage 2 vertical blank. Paddle values are copied to shadow registers. (Note that Paddle triggers are actually joystick direction input read from PIA.)

A faster mode of scanning the Paddles is possible by setting a bit in SKCTL. The reading sequence completes in only a couple scan lines, but the value is less accurate.

ALLPOT $D208 Read

Potentiometer Scanning Status

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Paddle 7Paddle 6Paddle 5Paddle 4Paddle 3Paddle 2Paddle 1Paddle 0

Each bit corresponds to one potentiometer input (the POT* registers). When paddle scanning is started by writing to POTGO each paddle's bit in ALLPOT is set to 1. When a paddle's scan is complete the corresponding bit in ALLPOT is reset to 0 indicating the value in the associated POT* register is now valid to read.

POTGO $D20B Write

Start Potentiometer Scan

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
--------

Writing to POTGO initiates the potentiometer (Paddle) scanning process. This resets the POT* values to 0, the ALLPOT value to $FF, and discharges the potentiometer read capacitors. As each potentiometer scan completes the bit corresponding to the potentiometer in ALLPOT is cleared indicating the value of the associated POT* register is valid for reading.

Serial input output port

Contains:

POKEY is a sort of UART. Usually one of the doubled audio channels is used as baud rate generator. The standard baud rate is 19.2 kbit/s, the maximum possible baud rate is 127 kbit/s. A byte put into the SEROUT register is automatically sent over the serial bus. The data frame contains 10 bits: 1 start bit, 8 data bits, 1 stop bit. The voltage levels are 0 V (logical 0) and +4 V (logical 1). It is possible to connect the Atari serial port with an RS-232 port by means of a simple voltage converter.

Each input/output operation causes POKEY's internal shift registers to change value, so when programming for POKEY, it is necessary to re-initialise some values after each operation is carried out.

SKREST $D20A Write

Reset Serial Port Status (SKSTAT).

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
--------

A write to this register will reset bits 5 through 7 of SKSTAT which are latches to 1. The latches flag keyboard overrun, Serial data input overrun, and Serial data input frame error.

SEROUT $D20D Write

Serial port data output byte.

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
--------

This is a parallel "holding" register for the eight bit (one byte) value that will be transferred to the serial shift register for output one bit at a time. When the port is ready to accept data for output a Serial Data Out interrupt informs the Operating System that it can write a byte to this output register.

SERIN $D20D Read

Serial port data input byte.

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
--------

Like SEROUT, also a parallel "holding" register. This holds the eight bit (one byte) value assembled by the serial shift register reading the data input one bit at a time. When a full byte is read a Serial Data In interrupt occurs informing the Operating System that it can read the byte from this register.

SKCTL $D20F Write

Serial Port Control

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Serial BreakSerial Mode2Serial Mode1Serial Mode0Serial Two-ToneFast Pot ScanEnable KB ScanKB debounce

Bit 0: Enable "debounce" scanning which is intended to eliminate noise or jitter from mechanical switches. A value of 1 enables POKEY to use an internal comparison register while scanning keys. A key must be detected in two simultaneous scans before it is identified as pressed, and it must be seen released for two consecutive scans to be considered released. This should be enabled to maintain normal keyboard handling with the Operating System.

Bit 1: Set to 1 to enable keyboard scanning. This should be enabled to maintain normal keyboard handling with the Operating System.

Bit 2: Set to 1 to enable fast, though less accurate Potentiometer scanning. Fast Pot scanning increments the counter on every cycle and returns a usable result within two scan lines. The Operating System uses the slow Pot Scanning which increments the counter once every 114 cycles (scan line) taking a frame (1/60th second) to produce a result. The OS reads the Pot values during its Vertical Blank Interrupt (VBI) and copies the result to the potentiometer Shadow registers in RAM. It then resets POTGO for the next read during the next VBI.

Bit 3: Enable Serial port two-tone mode. When enabled, 1 and 0 bits output to the SIO bus are replaced by tones set by timers 1 and 2. This is ordinarily used for writing analog tones representing digital data to cassette tape.

Bit 4-6: Clock Timing Control for serial port operation. Bit values described below:

Port Control [6:4]Bits ValueInput ClockOutput ClockBidirectional Clock
0 0 0$00ExternalExternalInput
0 0 1$10Channels 3+4 (async)ExternalInput
0 1 0$20Channel 4Channel 4Output Channel 4
0 1 1$30Channel 3+4 (async)Channel 4 (async)Input
1 0 0$40ExternalChannel 4Input
1 0 1$50Channel 3+4 (async)Channel 4 (async)Input
1 1 0$60Channel 4Channel 2Output Channel 4
1 1 1$70Channel 3+4 (async)Channel 2Input

Bit 7: Forces a known 0 output, so that timer 2 can reset timer 1 in two-tone serial output mode.

SKSTAT $D20F Read

Serial Port Status

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Serial in frame errorSerial in overrunKB overrunRead Data readyShift KeyLast Key Still PressedSerial Input Busy-

KBCODE $D209 Read

SHADOW: CH $02FC

Keyboard Code

Eight IRQ interrupts

BREAK
Break (BREAK key interrupt)
K
Keyboard (keyboard interrupt)
SIR
if Serial Input Ready (read interrupt from serial rail)
ODN
if Output Data Needed (write interrupt from serial rail)
XD
if eXmitend Data (serial transmission end interrupt)
T1
Timer 1, timer 1 interrupt
T2
Timer 2, timer 2 interrupt
T4
Timer 4, timer 4 interrupt

Interrupts can be set on or off from software by register IRQEN. IRQSTAT register contains interrupts status.

Keyboard

Six key register of actually pushed keys (K0 K5), which contains values from 00 to 3F. Contains 2 control values. One of them acts as decoder of all 6 values. Second control values is used to decode special key values — CTRL, SHIFT and BREAK.

Related Research Articles

<span class="mw-page-title-main">Atari 5200</span> Home video game console

The Atari 5200 SuperSystem or simply Atari 5200 is a home video game console introduced in 1982 by Atari, Inc. as a higher-end complement for the popular Atari Video Computer System. The VCS was renamed to the Atari 2600 at the time of the 5200's launch. Created to compete with Intellivision, the 5200 wound up a direct competitor of ColecoVision shortly after its release. While the Coleco system shipped with the first home version of Nintendo's Donkey Kong, the 5200 included the 1978 arcade game Super Breakout which had already appeared on the Atari 8-bit family and Atari VCS in 1979 and 1981 respectively.

<span class="mw-page-title-main">Original Chip Set</span> Chipset used in Amiga personal computer

The Original Chip Set (OCS) is a chipset used in the earliest Commodore Amiga computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set (ECS) and greatly improved Advanced Graphics Architecture (AGA).

<span class="mw-page-title-main">Atari 8-bit family</span> Home computer series introduced in 1979

The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 as the Atari 400 and Atari 800. The series was successively upgraded to Atari 1200XL, Atari 600XL, Atari 800XL, Atari 65XE, Atari 130XE, Atari 800XE, and Atari XEGS, the last discontinued in 1992. They differ primarily in packaging, each based on the MOS Technology 6502 CPU at 1.79 MHz and the same custom coprocessor chips. As the first home computer architecture with coprocessors, it has graphics and sound more advanced than most contemporary machines. Video games were a major draw, and first-person space combat simulator Star Raiders is considered the platform's killer app. The plug-and-play peripherals use the Atari SIO serial bus, with one developer eventually also co-patenting USB.

<span class="mw-page-title-main">Intel 8085</span> 8-bit microprocessor by Intel

The Intel 8085 ("eighty-eighty-five") is an 8-bit microprocessor produced by Intel and introduced in March 1976. It is software-binary compatible with the more-famous Intel 8080 with only two minor instructions added to support its added interrupt and serial input/output features. However, it requires less support circuitry, allowing simpler and less expensive microcomputer systems to be built.

<span class="mw-page-title-main">TI MSP430</span>

The MSP430 is a mixed-signal microcontroller family from Texas Instruments, first introduced on 14 February 1992. Built around a 16-bit CPU, the MSP430 is designed for low cost and, specifically, low power consumption embedded applications.

<span class="mw-page-title-main">Game port</span> Computer device port

The game port is a device port that was found on IBM PC compatible and other computer systems throughout the 1980s and 1990s. It was the traditional connector for joystick input, and occasionally MIDI devices, until obsoleted by USB in the late 1990s.

<span class="mw-page-title-main">Television Interface Adaptor</span> Video/audio/input chip of the Atari 2600

The Television Interface Adaptor (TIA) is the custom computer chip, along with a variant of the MOS Technology 6502 constituting the heart of the 1977 Atari Video Computer System game console. The TIA generates the screen display, sound effects, and reads the controllers. At the time the Atari VCS was designed, even small amounts of RAM were expensive. The chip was designed around not having a frame buffer, instead requiring detailed programming to create even a simple display.

<span class="mw-page-title-main">ANTIC</span>

Alphanumeric Television Interface Controller (ANTIC) is an LSI ASIC dedicated to generating 2D computer graphics to be shown on a television screen or computer display. Under the direction of Jay Miner, the chip was designed in 1977-1978 by Joe Decuir, Francois Michel, and Steve Smith for the Atari 8-bit family of home computers first released in 1979 and was patented by Atari, Inc. in 1981. ANTIC is also used in the Atari 5200 video game system released in 1982, which shares most of the same hardware as the 8-bit computers.

<span class="mw-page-title-main">MOS Technology 6522</span> Microprocessor I/O port controller IC

The 6522 Versatile Interface Adapter (VIA) is an integrated circuit that was designed and manufactured by MOS Technology as an I/O port controller for the 6502 family of microprocessors. It provides two bidirectional 8-bit parallel I/O ports, two 16-bit timers, and an 8-bit shift register for serial communications or data conversion between serial and parallel forms. The direction of each bit of the two I/O ports can be individually programmed. In addition to being manufactured by MOS Technology, the 6522 was second sourced by other companies including Rockwell and Synertek.

<span class="mw-page-title-main">Intel 8253</span> Programmable interval timer IC

The Intel 8253 and 8254 are programmable interval timers (PITs), which perform timing and counting functions using three 16-bit counters.

<span class="mw-page-title-main">MOS Technology CIA</span>

The 6526/8520 Complex Interface Adapter (CIA) was an integrated circuit made by MOS Technology. It served as an I/O port controller for the 6502 family of microprocessors, providing for parallel and serial I/O capabilities as well as timers and a Time-of-Day (TOD) clock. The device's most prominent use was in the Commodore 64 and Commodore 128(D), each of which included two CIA chips. The Commodore 1570 and Commodore 1571 floppy disk drives contained one CIA each. Furthermore, the Amiga home computers and the Commodore 1581 floppy disk drive employed a modified variant of the CIA circuit called 8520. 8520 is functionally equivalent to the 6526 except for the simplified TOD circuitry.

The original Macintosh was a relatively simple machine, now of interest for its simplicity and for the fact that it was the first computer produced by Apple under the name Macintosh. The Macintosh used standard off-the-shelf components to the greatest extent possible, achieving a moderate price point by mixing complex LSI chips, readily customizable programmable array logic, and off-the-shelf components.

<span class="mw-page-title-main">DAI Personal Computer</span>

The DAI personal computer is an early home computer from the Belgian company Data Applications International. The DAI came to market in 1980. It provided many pioneering features such as high resolution color graphics, a maths co-processor, and a pre-compiling BASIC interpreter. However, it never became a commercial success.

The Panasonic JR-200 was a simple, relatively early (1983), 8-bit home computer with a chiclet keyboard somewhat similar to the VTech Laser 200. It's part of the JR Series.

<span class="mw-page-title-main">Atari 2600 hardware</span> Hardware of the Atari 2600 video game console

The Atari 2600 hardware was based on the MOS Technology 6507 chip, offering a maximum resolution of 160 x 192 pixels (NTSC), 128 colors, 128 bytes of RAM with 4 KB on cartridges. The design experienced many makeovers and revisions during its 14-year production history, from the original "heavy sixer" to the Atari 2600 Jr. at the end. The system also has many controllers and third-party peripherals.

<span class="mw-page-title-main">Keyboard controller (computing)</span>

In computing, a keyboard controller is a device that interfaces a keyboard to a computer. Its main function is to inform the computer when a key is pressed or released. When data from the keyboard arrives, the controller raises an interrupt to allow the CPU to handle the input.

<span class="mw-page-title-main">Atari SIO</span>

The Serial Input/Output system, universally known as SIO, was a proprietary peripheral bus and related software protocol stacks used on the Atari 8-bit family to provide most input/output duties for those computers. Unlike most I/O systems of the era, such as RS-232, SIO included a lightweight protocol that allowed multiple devices to be attached to a single daisy-chained port that supported dozens of devices. It also supported plug-and-play operations. SIO's designer, Joe Decuir, credits his work on the system as the basis of USB.

Doug Neubauer is an American integrated circuit designer, video game designer, and programmer best known for the logic design on Atari's POKEY chip and designing and programming the 1979 video game Star Raiders which became the killer app for the Atari 8-bit family.

<span class="mw-page-title-main">Atari joystick port</span> Computer port used for gaming controllers

The Atari joystick port is a computer port used to connect various gaming controllers to game console and home computer systems in the 1970s to the 1990s. It was originally introduced on the Atari 2600 in 1977 and then used on the Atari 400 and 800 in 1979. It went cross-platform with the Commodore VIC-20 of 1981, and was then used on many following machines from both companies, as well as a growing list of 3rd party machines like the MSX platform and various Sega consoles.

<span class="mw-page-title-main">COP400</span>

The COP400 or COP II is a 4-bit microcontroller family introduced in 1977 by National Semiconductor as a follow-on product to their original PMOS COP microcontroller. COP400 family members are complete microcomputers containing internal timing, logic, ROM, RAM, and I/O necessary to implement dedicated controllers. Some COP400 devices were second-sourced by Western Digital as the WD4200 family.

References

  1. "I. Theory of Operation". Atari Home Computer Field Service Manual - 400/800. Atari, Inc. pp. 1–11.
  2. Hague, James (2002-06-01). "Interview with Doug Neubauer". Halcyon Days. Retrieved January 14, 2008.
  3. "Chapter 7: Sound". De Re Atari. Atari, Inc. 1982.
  4. Michael Current, "What are the SALLY, ANTIC, CTIA/GTIA, POKEY, and FREDDIE chips?", Atari 8-Bit Computers: Frequently Asked Questions
  5. Atari, Inc. (1979-01-24). "Apparatus for producing a plurality of audio sound effects". United States Patent. Retrieved January 14, 2008.
  6. "Atari Pokey Differences".