Apple Series III
Apple III   (1980)
◄ Back to Computers

Apple III

The Apple III was released by Apple Compute in 1980 as a business computer. It was the successor to the Apple II but failed to deliver. It featured a full 80-column display, a full-stroke keyboard with upper and lower case, ran on a Synertek 6502B processor at 1.8MHz and had 128KByte of RAM on board, upgradeable to 512KByte.

Because the Apple III failed to sell in large numbers, Apple reconsidered the plans to retire the Apple II, and instead took some of the features of the Apple III and incorporated them into later models of the Apple II

Apple's Sophisticated Operating System

Apple SOS (Sophisticated Operating System) was the disk operating system developed for the Apple III, released in 1980. Unlike Apple DOS on the Apple II, SOS was designed as a full-featured, modular operating system from the outset. It supported hierarchical directories, file attributes (read/write/locked, date/time stamps), and device-independent I/O through a standardized driver model. Written in 6502 assembly, SOS was structured with a kernel that provided file system services, a device driver layer, and an application interface based on system calls rather than patch tables. It could handle multiple file types, large volumes (up to 16 MB per disk), and offered random-access and record-oriented file operations, making it a much more business-oriented OS than its predecessor.

From a technical perspective, SOS treated all peripherals—including disks, screens, and serial devices—as logical files accessed through a uniform API. This abstraction allowed applications to be written in a hardware-agnostic way, simply opening and reading from devices as if they were files. Memory management was still bound by the 6502’s 64 KB address space, but SOS provided a well-defined application runtime environment with fixed entry points and system call conventions. Error handling and interrupt-driven device support were built in, ensuring higher stability than the patchwork approaches of Apple DOS. Although the Apple III hardware struggled with reliability, SOS itself was robust and forward-looking, influencing the later design of ProDOS and serving as Apple’s first real attempt at a professional-grade operating system.

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 6502

The 650x Instruction Set

Mnemonic Operation Description
ADCAdd with CarryAdds a memory location and the carry bit to the accumulator.
ANDLogical ANDPerforms a logical AND between memory and the accumulator.
ASLArithmetic Shift LeftShifts all bits one position to the left (in memory or accumulator).
BCCBranch on Carry ClearBranches to a new address if the carry flag is clear (0).
BCSBranch on Carry SetBranches to a new address if the carry flag is set (1).
BEQBranch on Equal (Zero Set)Branches to a new address if the zero flag is set (1).
BITBit TestTests bits in memory with the accumulator without modifying the accumulator.
BMIBranch on MinusBranches to a new address if the negative flag is set (1).
BNEBranch on Not EqualBranches to a new address if the zero flag is clear (0).
BPLBranch on PlusBranches to a new address if the negative flag is clear (0).
BRKForce BreakForces an interrupt request and pushes status and PC to the stack.
BVCBranch on Overflow ClearBranches to a new address if the overflow flag is clear (0).
BVSBranch on Overflow SetBranches to a new address if the overflow flag is set (1).
CLCClear Carry FlagClears the processor carry flag.
CLDClear Decimal ModeClears the processor decimal mode flag.
CLIClear Interrupt DisableClears the interrupt disable flag, allowing maskable interrupts.
CLVClear Overflow FlagClears the processor overflow flag.
CMPCompare AccumulatorCompares the contents of a memory location with the accumulator.
CPXCompare X RegisterCompares the contents of a memory location with the X register.
CPYCompare Y RegisterCompares the contents of a memory location with the Y register.
DECDecrement MemorySubtracts one from the value held at a specified memory location.
DEXDecrement X RegisterSubtracts one from the X register.
DEYDecrement Y RegisterSubtracts one from the Y register.
EORExclusive ORPerforms a logical Exclusive OR between memory and the accumulator.
INCIncrement MemoryAdds one to the value held at a specified memory location.
INXIncrement X RegisterAdds one to the X register.
INYIncrement Y RegisterAdds one to the Y register.
JMPJumpSets the program counter to a new address.
JSRJump to SubroutinePushes the return address to the stack and jumps to a new address.
LDALoad AccumulatorLoads a byte of memory into the accumulator.
LDXLoad X RegisterLoads a byte of memory into the X register.
LDYLoad Y RegisterLoads a byte of memory into the Y register.
LSRLogical Shift RightShifts all bits one position to the right (in memory or accumulator).
NOPNo OperationPerforms no operation, consuming 2 machine cycles.
ORALogical Inclusive ORPerforms a logical OR between memory and the accumulator.
PHAPush AccumulatorPushes a copy of the accumulator onto the stack.
PHPPush Processor StatusPushes a copy of the status flags onto the stack.
PLAPull AccumulatorPulls a byte from the stack into the accumulator.
PLPPull Processor StatusPulls a byte from the stack into the processor status flags.
ROLRotate LeftRotates all bits one position left through the carry flag.
RORRotate RightRotates all bits one position right through the carry flag.
RTIReturn from InterruptPulls the processor flags and program counter from the stack.
RTSReturn from SubroutinePulls the program counter from the stack and resumes execution.
SBCSubtract with CarrySubtracts memory and the inverse of the carry bit from the accumulator.
SECSet Carry FlagSets the processor carry flag.
SEDSet Decimal FlagSets the processor decimal mode flag.
SEISet Interrupt DisableSets the interrupt disable flag, preventing maskable interrupts.
STAStore AccumulatorStores the contents of the accumulator in memory.
STXStore X RegisterStores the contents of the X register in memory.
STYStore Y RegisterStores the contents of the Y register in memory.
TAXTransfer Accumulator to XCopies the current value of the accumulator into the X register.
TAYTransfer Accumulator to YCopies the current value of the accumulator into the Y register.
TSXTransfer Stack Pointer to XCopies the current value of the stack pointer into the X register.
TXATransfer X to AccumulatorCopies the current value of the X register into the accumulator.
TXSTransfer X to Stack PointerCopies the current value of the X register into the stack pointer.
TYATransfer Y to AccumulatorCopies the current value of the Y register into the accumulator.
Technical Details
Released
1980
Country
United States
Brand
Apple
Type
Apple Series III
Name
Apple III
CPU Class
650x
CPU
Synertek 6502A @2MHz
Memory
RAM: 128kB
RAM max: 512kB
Sound Chip
none
Sound
1-bit speaker
Display Chip
none
Display
80x48 16 colors
560x192 16 colors
Best Text
40x24
Best Color
16 colors
16 intensities
Graphics
560x192 in 16 colors
16 intensities
Sprites
no sprites
System OS
Apple SOS
Storage
Internal 5.25" Disk Drive
Original Price
$3495
External Links 🌐
Apple III
Wikipage for the Apple III
MOS 6502 CPU Wiki Page
The 6502 is an 8-bit MicroProcessor designed by MOS Technology.