ACC 8000
The ACC 8000 was a personal computer built by the Hong Kong based Asia Commercial Company (ACC Ltd.). It was a computer that featured three different processors in one, and could run Apple DOS 3.3, CP/M (using the Z80) or FLEX. This gave the machine the ability to run a vast variety of software, but due to various factors, the computer was not commercially sucessful.
CPU - The Motorola 6502
The 6502 is an 8-bit MicroProcessor designed by MOS Technology. The team was led by Chuck Peddle and had also worked on the Motorola 6800. The 6502 is a simplified, but faster and cheaper design than the 6800.
The 6502 was introduced in 1975 and was the cheapest microprocessor on the market. Together with the Zilog Z80, the 6502 helped start the home computer revolution of the 1980s. The 6502 was used in a wide range of devices: the Atari 2600, the 8-bit Atari home computers, the Apple II, the Nintendo Entertainment System, the Commodore 64, the BBC Micro and many others. All used the 6502 or a variation of it.
The 6502 is a 1MHz design, while the 6502A is designed for 2MHz. The 6502A is 100% compatible with the original 6502.
Commodore soon bought MOS Technology, but conitnued to sell the microprocessor to competitors and licensed the design to other manufacturers.
Source: WikiPedia - MOS Technology 6502The 650x Instruction Set
| Mnemonic | Operation | Description |
|---|---|---|
| ADC | Add with Carry | Adds a memory location and the carry bit to the accumulator. |
| AND | Logical AND | Performs a logical AND between memory and the accumulator. |
| ASL | Arithmetic Shift Left | Shifts all bits one position to the left (in memory or accumulator). |
| BCC | Branch on Carry Clear | Branches to a new address if the carry flag is clear (0). |
| BCS | Branch on Carry Set | Branches to a new address if the carry flag is set (1). |
| BEQ | Branch on Equal (Zero Set) | Branches to a new address if the zero flag is set (1). |
| BIT | Bit Test | Tests bits in memory with the accumulator without modifying the accumulator. |
| BMI | Branch on Minus | Branches to a new address if the negative flag is set (1). |
| BNE | Branch on Not Equal | Branches to a new address if the zero flag is clear (0). |
| BPL | Branch on Plus | Branches to a new address if the negative flag is clear (0). |
| BRK | Force Break | Forces an interrupt request and pushes status and PC to the stack. |
| BVC | Branch on Overflow Clear | Branches to a new address if the overflow flag is clear (0). |
| BVS | Branch on Overflow Set | Branches to a new address if the overflow flag is set (1). |
| CLC | Clear Carry Flag | Clears the processor carry flag. |
| CLD | Clear Decimal Mode | Clears the processor decimal mode flag. |
| CLI | Clear Interrupt Disable | Clears the interrupt disable flag, allowing maskable interrupts. |
| CLV | Clear Overflow Flag | Clears the processor overflow flag. |
| CMP | Compare Accumulator | Compares the contents of a memory location with the accumulator. |
| CPX | Compare X Register | Compares the contents of a memory location with the X register. |
| CPY | Compare Y Register | Compares the contents of a memory location with the Y register. |
| DEC | Decrement Memory | Subtracts one from the value held at a specified memory location. |
| DEX | Decrement X Register | Subtracts one from the X register. |
| DEY | Decrement Y Register | Subtracts one from the Y register. |
| EOR | Exclusive OR | Performs a logical Exclusive OR between memory and the accumulator. |
| INC | Increment Memory | Adds one to the value held at a specified memory location. |
| INX | Increment X Register | Adds one to the X register. |
| INY | Increment Y Register | Adds one to the Y register. |
| JMP | Jump | Sets the program counter to a new address. |
| JSR | Jump to Subroutine | Pushes the return address to the stack and jumps to a new address. |
| LDA | Load Accumulator | Loads a byte of memory into the accumulator. |
| LDX | Load X Register | Loads a byte of memory into the X register. |
| LDY | Load Y Register | Loads a byte of memory into the Y register. |
| LSR | Logical Shift Right | Shifts all bits one position to the right (in memory or accumulator). |
| NOP | No Operation | Performs no operation, consuming 2 machine cycles. |
| ORA | Logical Inclusive OR | Performs a logical OR between memory and the accumulator. |
| PHA | Push Accumulator | Pushes a copy of the accumulator onto the stack. |
| PHP | Push Processor Status | Pushes a copy of the status flags onto the stack. |
| PLA | Pull Accumulator | Pulls a byte from the stack into the accumulator. |
| PLP | Pull Processor Status | Pulls a byte from the stack into the processor status flags. |
| ROL | Rotate Left | Rotates all bits one position left through the carry flag. |
| ROR | Rotate Right | Rotates all bits one position right through the carry flag. |
| RTI | Return from Interrupt | Pulls the processor flags and program counter from the stack. |
| RTS | Return from Subroutine | Pulls the program counter from the stack and resumes execution. |
| SBC | Subtract with Carry | Subtracts memory and the inverse of the carry bit from the accumulator. |
| SEC | Set Carry Flag | Sets the processor carry flag. |
| SED | Set Decimal Flag | Sets the processor decimal mode flag. |
| SEI | Set Interrupt Disable | Sets the interrupt disable flag, preventing maskable interrupts. |
| STA | Store Accumulator | Stores the contents of the accumulator in memory. |
| STX | Store X Register | Stores the contents of the X register in memory. |
| STY | Store Y Register | Stores the contents of the Y register in memory. |
| TAX | Transfer Accumulator to X | Copies the current value of the accumulator into the X register. |
| TAY | Transfer Accumulator to Y | Copies the current value of the accumulator into the Y register. |
| TSX | Transfer Stack Pointer to X | Copies the current value of the stack pointer into the X register. |
| TXA | Transfer X to Accumulator | Copies the current value of the X register into the accumulator. |
| TXS | Transfer X to Stack Pointer | Copies the current value of the X register into the stack pointer. |
| TYA | Transfer Y to Accumulator | Copies the current value of the Y register into the accumulator. |
CPU - The Motorola 6809
The Motorola 6809 is an 8-bit microprocessor with some 16-bit features. It was designed by Motorola's Terry Ritter and Joel Boney and introduced in 1978. Although source compatible with the earlier Motorola 6800, the 6809 offered significant improvements over it and 8-bit contemporaries like the MOS Technology 6502, including a hardware multiplication instruction, 16-bit arithmetic, system and user stack registers allowing re-entrant code, improved interrupts, position-independent code and an orthogonal instruction set architecture with a comprehensive set of addressing modes.
CPU - The Zilog Z80
The Z80 quickly became popular in the personal computer market, with many early personal computers, such as the TRS-80 and Sinclair ZX80, using the Z80 as their central processing unit (CPU). It was also widely used in home computers, such as the MSX range, SORD, and the Amstrad CPC, as well as in many arcade games. Additionally, it was also used in other applications such as industrial control systems, and embedded systems. The Z80 was widely used until the mid-1980s, when it was gradually replaced by newer microprocessors such as the Intel 80286 and the Motorola 68000.
The Z80 microprocessor was developed by Zilog, a company founded by Federico Faggin in 1974. The Z80 was released in July 1976, as a successor to the Intel 8080. It was designed to be fully compatible with the 8080, but also included new features such as an improved instruction set, more powerful interrupts, and a more sophisticated memory management system.
Originally the Z80 was intended for use in embedded systems, just as the 8080 CPU. But the combination of compatibility, superior performance to other CPUs of the era, and the affordability led to a widespread use in arcade video game systems, and later in home computers such as the Osborne 1, TRS-80, ColecoVision, ZX Spectrum, MSX, Sega's Master System and many more. The Z-80 ran the original Pac-Man arcade cabinet. The Z-80 was used even in the Game Gear (1990s), and the TI-81 and succeeding graphic calculators.
The Z-80 remained in production until June of 2024, 48 years after its original release. Zilog replaced the processor with its successor the eZ80, an 8-bit microprocessor that features expanded memory addressing up to 16 megabytes, and running up to 50MHz, comparable to a Z80 clocked at 150MHz.
MOS 6502
Zilog Z80
Motorola 6809
VRAM: 2kB
280x192 6 colors
560x192 2 colors
