Web-based IBM 1620 emulator and IPL-V from 1963
Retro-1620: A Digital Resurrection of the IBM 1620
This project, hosted on GitHub by pkimpel, provides a comprehensive web-based emulation environment for the IBM 1620 Model-2 computer system.
Project Mission: The primary objectives are to develop a browser-accessible emulator for the Model 2 variant and to recover as much legacy software for this system as possible.
🖥️ Overview of the IBM 1620
The IBM 1620 was a transistor-based computer from the 1960s. It was specifically engineered as a cost-effective tool for engineering and scientific tasks. Unlike modern binary systems, it was a decimal machine featuring variable field lengths and magnetic-core memory.
Production History
Approximately 2,000 units were manufactured, split roughly equally between two iterations:
- Model 1 (1959): The original release.
- Model 2 (1962): A significant redesign that maintained object-code compatibility with the first model.
Model 1 was the standardModel 2 became the refined successor.
⚙️ Technical Architecture
Memory and Data Structure
The system's memory ranged from a base of digits up to a maximum of digits. Data was handled digit-sequentially.
Digit Composition: Each single digit was composed of:
- A 4-bit Binary-Coded Decimal (BCD) value.
- A "flag" bit (used for field delimitation and arithmetic signs).
- An odd-parity "check" bit.
Instruction Format
Instructions were standardized at a length of 12 digits:
OO PPPPP QQQQQ
| Component | Length | Description |
|---|---|---|
| Opcode | 2 Digits | The operation to be performed. |
| P Address | 5 Digits | Typically the destination operand. |
| Q Address | 5 Digits | Typically the source operand or a literal value. |
📊 Model Comparison: 1 vs. 2
The transition from Model 1 to Model 2 brought significant performance gains and hardware integration.
| Feature | Model 1 | Model 2 |
|---|---|---|
| Memory Cycle | per 2 digits | per 2 digits |
| Addition | Memory lookup table | Hardware-based |
| Multiplication | Memory lookup table | Memory lookup table |
| Division | Optional | Standard |
| Indirect Addressing | Optional | Standard |
| Floating Point | Optional | Optional (Extra cost) |
| Q-Operand Fetch | Standard | Optimized (2 digits per fetch) |
Model 2 Exclusive Options:
- Index Register Modification: Address modification using registers stored at
00300-00399(replacing the Model 1 add table). - Binary/Octal Support: Bit-wise operations, octal-to-decimal conversion, and binary paper tape I/O.
🔌 Peripherals and Specializations
Hardware I/O
The 1620 supported various devices. Alphanumeric data was stored in memory as pairs of adjacent digits.
- Basic I/O: Typewriters and paper tape.
- Card Handling: The
1622card reader/punch (adapted from the IBM 1401's1402unit). - Advanced Peripherals:
1443Line Printer.1311Disk Drive (utilizing removable packs).1627Plotter.
Process Control
The 1620 served as the brain for the IBM 1710 and 1720 process-control systems. In these configurations, the machine gained:
- A multi-level interrupt system.
- A specialized set of additional instructions.
💾 Software Ecosystem
The 1620 boasted a wide array of user-created and IBM-provided software.
- Languages: Most development occurred via
FORTRAN IIor theSPSassembler. - Operating System: Systems equipped with the
1311disk drive utilized a basic batch OS called "Monitor."
Project Status
- Create web-based Model 2 emulator
- Recover all available legacy software
- Expand documentation
🔗 Resources & Links
| Resource | Link |
|---|---|
| Live Emulator | phkimpel.us/IBM-1620/ |
| Project Wiki | GitHub Wiki |
| Project Blog | Retro Emulation Blog |
| Documentation | Bitsavers PDF |
| Software Archive | Bitsavers Software |
| General Info | Wikipedia |
License: This project is distributed under the MIT License.
{
"repository": "pkimpel/retro-1620",
"platform": "GitHub",
"target_system": "IBM 1620 Model-2",
"language_focus": "Decimal"
}