Felix C
From Wikipedia, the free encyclopedia
The Felix C family was a series of mainframe computers manufactured in Romania by ICE Felix from the early 1970s. The computers were widely deployed in Romanian computing centres and partially exported; they remained in productive use for approximately ten years, primarily for industrial control and administrative data processing. Based on a different architecture from the IBM System/360 clones produced under the Unified System (ESER) programme of the other socialist countries, the Felix C was not part of that computer family.

The designation Felix C-nnn indicates the available RAM capacity in kibibytes (32, 128, 256, 512, or 1024). The architecture derives from the French IRIS computers of the Compagnie internationale pour l'informatique (CII)—hence the name SIRIS for the operating system. The IRIS computers in turn were designed under license from the American SDS Sigma 7 by Scientific Data Systems, though they were not binary-compatible; the machine instructions were merely functionally equivalent. The SIRIS operating system was independently developed by CII and differed from SDS operating systems.
No functioning example survives today. However, the RASSIRIS simulator project,[1] based on the extensive surviving technical manuals, allows partial emulation of the system.
Hardware

The Felix C uses a hardwired control architecture. The arithmetic logic unit (ALU) supports integer operations (signed and unsigned), floating-point in single and double precision, and BCD-encoded decimal arithmetic. Main memory was implemented using ferrite cores; physical wiring used wire wrap technology.
Communication with peripherals was handled by a specialised unit called USM (Unitate de Schimburi Multiple, "Multiple Exchange Unit"), which had its own instruction set and implemented DMA. Supported peripherals included punched card readers, punched tape readers, magnetic tape drives, disk drives (small DIAM and large DIMAS types), and chain printers. From 1978, DAF 1001 video display terminals were available. The operator console was hardwired and consisted of a dedicated typewriter with ink ribbon.
Instruction format
The instruction format is fixed at 32 bits, divided into the following fields:
- I (1 bit) – indirect addressing
- B (3 bits) – base register for address relocation (R8 to R15, typically R14)
- Q (4 bits) – working register
- X (1 bit) – indexing
- F (7 bits) – opcode
- D (16 bits) – displacement or memory address
The machine has 16 general-purpose registers treated symmetrically—there is no dedicated accumulator. However, the two groups R0–R7 and R8–R15 are used differently in instructions. The instruction set is complex in the CISC sense, using several addressing modes, but otherwise has a simple and orthogonal structure.
A distinctive feature: the 16 registers are physically mapped to the first 64 bytes of main memory and can be addressed both via the B and Q instruction fields and via memory addresses starting at address 0.
The Felix C supports instructions operating on bytes, halfwords (16-bit), words (32-bit), doublewords (64-bit), and byte strings (up to 128 bits). Depending on the variant, floating-point, fixed-point, or character string operations were available. The Felix C-1024 included an EDIT instruction for formatting fixed-point numbers according to a COBOL PICTURE pattern. 64-bit operations used even-numbered register pairs. The Felix C-512 had an extended instruction set, which the Felix C-1024 further augmented.
Operating system
The SIRIS operating system supported multiprogramming with up to three fixed memory partitions established at system startup. Control was via a Job Control Language (JCL) similar in principle to that used on other systems (such as the IBM System/360) but system-specific.
SIRIS included:
- a file system called SGF (Système de Gestion des Fichiers), supporting COBOL-standard file formats;
- a librarian for source libraries (with change and version management), relocatable object libraries (BT format), and executable libraries (IMT format);
- a system generator for producing a bootable system image with configurable parameters;
- compilers for ASSIRIS (assembly language), MAGIRIS (macro generator), Fortran, COBOL, TTPL (a reduced APL variant), BASIC, and Lisp;
- the SOCRATE database management system;
- teleprocessing systems such as SESAM.
The Felix C-8000 used the HELIOS operating system instead of SIRIS.
Symbiont
Each program required at least two peripherals—one for input and one for output. During an I/O operation, program execution by the CPU was suspended until the peripheral responded. During this wait, the CPU could execute another program held in RAM. Memory partitioning allowed each partition to hold a program; the alternating peripheral accesses created the appearance of simultaneous execution (multiprogramming), improving CPU utilisation.
Since peripherals were expensive, not every program could have dedicated physical I/O devices. The solution was to handle I/O operations through files ("virtual devices") whose contents were supplied to or collected from physical devices as they became available.[2] Typically, jobs were processed partition by partition via separate job chains managed manually by the operator. As this procedure was not optimal, a supplementary application was developed to optimise job distribution according to required resources (e.g. memory) and I/O requirements.[3]
This application, called Symbiont, was developed by the National Institute for Research and Development in Informatics (ICI); the second version SY V2 appeared in 1978. Testing showed a 15–25% improvement in job throughput compared to classical multiprogramming.[2] However, the application's complexity[4] exceeded the typical qualification level of console operators—generally secondary school graduates—so usage remained limited and operators preferred simpler classical multiprogramming.
Variants
| Model | RAM | Notes |
|---|---|---|
| Felix C-32 | 32 KiB | Base model |
| Felix C-256 | 256 KiB | |
| Felix C-512 | 512 KiB | Extended instruction set |
| Felix C-515 | ||
| Felix C-1024 | 1024 KiB | Further extended instruction set, EDIT instruction |
| Felix C-5000 | ||
| Felix C-8000 | HELIOS operating system instead of SIRIS | |
| Felix C-8010 |
Price of a Felix C system: approximately 30,000,000 lei (1979).