| Mos Technology 6502 |
Article Index for Mos Technology |
Website Links For Mos |
Information AboutMos Technology 6502 |
| CATEGORIES ABOUT MOS TECHNOLOGY 6502 | |
| microprocessors | |
HISTORY AND USE The 6502 was designed primarily by the same engineering team that had designed the Motorola 6800 . After quitting Motorola en masse, they quickly designed the 6501 , a completely new processor that was pin-compatible with the 6800 (that is, it could be plugged into Motherboard s designed for the Motorola processor, although its instruction set was different). Motorola sued immediately, and although today the case would have been dismissed out of hand, MOS agreed to stop producing the 6501 and went back to the drawing board. The result was the "lawsuit-compatible" 6502, which was by design unusable in a 6800 motherboard; Motorola, apparently no longer feeling threatened, did not object. However, this left MOS with the problem of getting new developers to try their processor, so engineer Chuck Peddle designed the KIM-1 single-board computer. Much to their surprise, the KIM-1 sold in huge numbers to hobbyists and tinkerers as well as to the engineers it was intended for. The related Rockwell AIM 65 control/training/development system also did well. Another roughly similar product was the Synertek SYM-1 . The 6502 was released in September 1975 at $25, when the 6800 and Intel 8080 were selling for $179. At first many people thought it was some sort of a scam, but shortly both Motorola and Intel had dropped their chips to $79. But instead of saving Intel and Motorola from the upstart MOS, the price reductions legitimized the 6502, which started selling by the hundreds. One of the first "public" uses for the design was the Atari 2600 Videogame Console . The 2600 used an offshoot of the 6502 called the 6507 , which had fewer pins and, as a result, could address only 8 KB of RAM. Millions of the Atari consoles would be sold, each with a MOS processor. The 6502 was next used in the Apple II Family , and then appeared in various Commodore and Atari home computers, the BBC Micro family, and a huge number of other designs now lost to history. The 6510 , a direct successor of the 6502 with a digital I/O port and a tristate bus, was the CPU utilized in the extremely popular Commodore 64 home computer. (Commodore's disk drive, the 1541 , had a processor of its own—it too was a 6502.) Another important use of the 6502 was in the Nintendo Famicom , a Japan ese video game console. Its North America n and Europe an equivalent, the Nintendo Entertainment System , also used the processor. The 6502 used in the NES was a modified version (called 2A03 in NTSC consoles and 2A07 in PAL consoles, the difference being the clock divider ratio) that was produced exclusively for Nintendo . The custom NES processor lacked the 6502's Decimal Mode , but added 22 memory-mapped registers for sound generation, joypad reading, and sprite DMA . The efficient design of the 6502 also inspired the principal designers of the ARM RISC processor, and so the legacy of the 6502 may be said to transcend the original processor family. Its spirit lives on in the ARM design, which is used in several desktop computers as well as a plethora of handheld and other embedded systems and is sold as an IP block to be used in Systems-on-chip products. DESCRIPTION The 6502 is an 8-bit processor with a 16-bit Address Bus . The internal logic runs at the same speed as the external clock rate, but the seemingly slow clock speeds (typically in the neighborhood of 1 or 2 MHz ) were actually competitive with other CPUs running significantly faster. This is because the 6502 is a pipelined static processor, while most other CPUs of the era were microcoded and had internal speeds comparable with the 6502. (The Z80 internal clock, for instance, was divided by four.) Although this may sound like a "trick", it had the side effect of lowering the speed requirement of the peripherals attached to the CPU, thus lowering overall system cost; an important factor in getting design wins in the very price sensitive game console and home computer markets.)]] Unlike the to memory page $01, i.e. the address range $0100–$01FF (256–511). Software access to the stack was done via four implied addressing mode instructions whose function were to push or pop (pull) the accumulator or the processor status register. The chip used the index and stack registers effectively with several Addressing Mode s, including a fast "direct page" or " Zero Page " mode that accessed memory locations from address 0 to 255 with a single 8-bit address (it didn't have to fetch a second byte for the address) – code for the 6502 used the zero page much as code for other processors would have used registers. In most 6502-based microcomputers with an operating system, the OS itself used almost the entire zero page, leaving perhaps a handful of locations for the user. Addressing Mode s also included ''implied'' (1 byte instructions); ''absolute'' (3 bytes); ''indexed absolute'' (3 bytes); ''indexed zero-page'' (2 bytes); ''relative'' (2 bytes); ''accumulator'' (1); ''indirect,x'' and ''indirect,y'' (2); and ''immediate'' (2). Absolute mode was a general-purpose mode. Relative was used for conditional branch instructions, which could move the program counter 126 bytes backwards or 129 bytes forwards (commonly incorrectly documented as being 128 and 127 respectively). Accumulator mode used the accumulator as an effective address, and didn't need any Operand data. Immediate mode used an 8-bit Literal operand. The indirect modes were useful for Array processing and other looping. With the indirect,y mode, the 8-bit Y register was added to a 16-bit base located in zero page memory (a byte in the opcode denoted the zero page location). The 8-bit Y register was used as an offset rather than 'normal' index register usage. Incrementing Y in order to walk the array was a two-cycle 8-bit operation, even though the array might be located anywhere in 16-bit address space (given the 16-bit base read from the zero page). This is where the 6502 differs most from the Motorola 6800 . A superficial glance at the 6502's specs telling that there are only 8-bit index registers is thus quite misleading. With the less frequently used indirect,x mode the effective address for the operation was found at the zero page address formed by adding the second byte of the instruction to the contents of the X register. See the article for a simple but characteristic example of 6502 Assembly Language . DUBIOUS FEATURES
ACCELERATION Many users of 1 MHz 6502-based systems soon wished their computers could go faster. A number of companies sold replacement hardware to speed up those systems. Generally, 6502 system accelerators were based on:
6502 TRIVIA
SEE ALSO REFERENCES
EXTERNAL LINKS
|
|
|