The Acorn Business Computer - ABC 310
The Acorn Businesss Computer 310 was a computer built around the Intel 80286 16-bit processor with a 6502 processor for I/O functions. The computer came with a whopping 1MByte of RAM, a color monitor, a 720k 5.25" Floppy Disk Drive, and a 10MByte Hard Drive. The operating system was DOS 286+, and the machine also came with the GEM graphical user interface.
The ABC 310 was the last in a series of eight ABC computers:
ABC Personal Assistant
6502 CPU @ 2MHz, 64kB RAM, 640kB FDDABC Terminal
6502 CPU @ 2MHz, 64kB RAM, No disk, VT100 terminal emulator in ROMABC 100
Z80 CPU, 6502 I/O CPU, 64kB RAM, dual 720k 5.25" FDD, CP/M 2.2ABC 110
Z80 CPU, 6502 I/O CPU, 64kB RAM, 720k 5.25" FDD, 10 MB HDD, CP/M 2.2ABC 200
32016 CPU, 6502 I/O CPU, 512kB RAM, Dual 720k 5.25" FDD, XenixABC 210
32016 CPU, 6502 I/O CPU, 1MB RAM, 720k 5.25" FDD, 10MB HDD, XenixABC 300
80286 CPU, 6502 I/O CPU, 1MB RAM, Dual 720k 5.25" FDD, DOS 286+GEMABC 310
80286 CPU, 6502 I/O CPU, 1MB RAM, 720k 5.25" FDD, 10MB HDD, DOS 286+GEM
DOS 256+ Operating System
DOS 256+ was a relatively obscure operating system that emerged in the 1980s as an experimental DOS-compatible environment designed to address the inherent 8-bit limitations of earlier CP/M-like and MS-DOS-inspired systems. Unlike traditional MS-DOS, which was constrained by the 640 KB conventional memory boundary and segmented memory addressing on the 8086/8088, DOS 256+ sought to extend usable memory space into a full 16 MB linear addressing model. This made it particularly attractive for systems based on the Intel 80286 and later 80386, which could switch into protected mode but still required DOS compatibility for a wide library of software.
Technically, DOS 256+ implemented a hybrid memory management scheme. Applications could be launched in a “real-mode compatible shell” for backward compatibility with DOS programs, but native DOS 256+ applications could exploit extended addressing through a flat 24-bit or 32-bit model, depending on the hardware. It also introduced improved multitasking primitives, allowing cooperative multitasking between applications, as well as a more advanced file system layer that was optimized for larger hard drives—something MS-DOS struggled with before FAT16’s widespread adoption. A core element of its design was the use of a 256-segment page map, which gave the OS its name.
Although technically interesting, DOS 256+ never achieved mainstream adoption. Its small developer community produced a limited number of native applications, and compatibility with mainstream MS-DOS software was imperfect, particularly with programs that relied on undocumented DOS or BIOS calls. By the time DOS 256+ reached maturity, MS-DOS had already cemented its dominance through IBM PC compatibility, and the transition toward graphical operating environments (Windows 3.x and OS/2) made alternative DOS-like systems less appealing. Still, DOS 256+ remains a noteworthy experiment in pushing DOS beyond its architectural ceiling and foreshadowed later DOS extenders and protected-mode environments.
CPU - The Intel 80286
The Intel 80286 is a 16-bit microprocessor introduced in 1982. It was the first 80x86 processor with a separate, address and data bus, the first to introduce protected virtual address mode or protected mode, as well as built in memory management abilities. The 80286 is instruction compatible with the 8086 and the 8088 processors. It contained all the 8086, the 80186 instructions, and also new instructions to handle protected mode.
Source: WikiPedia - Intel 80286CPU - The Motorola 6502
The 6502 CPU in the ABC x10 series was only used for I/O functions. The central CPU was the Z80 which ran the operating system CP/M. The 6502 was used in many of the ABC computers to control the floppy disk, hard drive and other peripherals.
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. |
6502 I/O CPU
256x192
20MB HDD
