French CII's Mitra-15 in SIMH. Work in Progress
Summary
A work-in-progress simulator for the French CII Mitra-15 minicomputer, developed for the SIMH historical computer simulator, aiming to preserve and study this vintage computing hardware.
View Cached Full Text
Cached at: 08/27/26, 03:24 PM
JPLeRouzic/Mitra-15-for-SIMH
Source: https://github.com/JPLeRouzic/Mitra-15-for-SIMH
Mitra-15-for-SIMH
A Mitra-15 Simulator for SIMH
This is a preliminary version. For now, my code compiles, but it is still not a true Mitra-15 simulator; rather, it is a tentative effort. Many thanks to Pascal Chour for the very useful documentation available on his website: https://www.pascalchour.fr/ressources/cii/mitra15.htm
As my C is rusty (pun is intended) I started with an existing SDS 940 simulator for SIMH and slowly modified it towards Mitra-15’s characteristics.
The Mitra-15 is a microcomputer that features interesting concepts, such as the ability to program input/output peripherals using microcode, instead of using an external mechanism such as DMA. https://en.wikipedia.org/wiki/Mitra_15
The Mitra-15 was a 16-bit minicomputer developed by CII (Compagnie Internationale pour l’Informatique) in the early 1970s. It was widely used in industrial automation, scientific computing, education, and military applications. I never programmed on Mitra-15, but I learned CS on a CII 10070 and later I worked at France Telecom which had telephone exchanges piloted with the Mitra family.
Although it was once widespread in France, very little software and documentation has survived. This project contributes to the preservation of this important part of computing history.
This Mitra-15 simulator is intended to eventually include:
- System and optional instructions
- Extensive comments describing the original hardware behavior
- SIMH console support
- Memory management
- Interrupt, fast interrupt, suspensions and trap systems
* printer
* analogic interface
* punched_tape
* DRI fixed disk
* sagem fixed disk
* card reader
* magnetic tape reader
- Various I/O devices, but I lack documentation for many of those peripherals:
* asynchronous channels
* synchronous channels
* fast channel multiplexed
* fast channel ADM (no idea what it is)
* IOPs (if it's not the same as asynchronous channels).
To this day I did:
- search for and analyzed the few remaining documents (see /doc folder).
- create a working SIMH environment for SIMH (deposit/examine/run/break/etc)
- create a complete instruction decoder for each instruction and addressing mode
- create code for common Mitra and CII devices
- create a convincing (not tested) code for RD and WD instructions for simple communication with devices such as ASR33 or line printer.
- create a convincing (not tested) code for DRI disks (UK’s Data Recording Instrument) that uses the suspension system, the CII invention that aims at a similar goal as modern DMA.
- create a test program.
- test the branch instructions in RP (immediate in modern parlance) addressing mode, so at least this part should be correct.
- I have also set out to reconstruct CII’s MTR (Real-Time Monitor) from a hexadecimal dump found in a PDF file; however, as the OCR output is abysmal, I have to visually verify every single byte. This will likely be the only piece of original CII code against which my simulator is tested, as everything else will have to be inferred from the documentation. It is therefore crucial that this test be successful.
- It’s not useful but I have also created a rudimentary assembler (not tested).
On the long term I have plans to port RSX280 (RSX-11 clone) to the Mitra. Z80’s BC and DE are similar to L and G registers, IX is an index register as Mitra’s X, A and HL resemble to A and E. Main problems: Mitra has less registers, less addressing modes than the Z80, and it lacks a concept of a stack, which makes managing reentrancy complicated.
Requirements
- GCC or Clang
- Make
- Linux (tested)
- A recent version of openSIMH
Within the SIMH monitor, you can then load memory, examine registers, and execute Mitra-15 programs.
Acknowledgments
Many thanks to:
-
The SIMH developers for creating and maintaining the simulator
-
Everyone who has contributed to keeping the history of French computing alive but mainly Pascal Chour https://www.pascalchour.fr/ressources/cii/mitra15.htm
Similar Articles
Memo-1: A 6502 computer built from scratch, using a Minitel as its terminal
A description of the Memo-1, a 65C02-based computer built from scratch, designed for fun and learning, with detailed memory maps, VIA and ACIA specifications, and BASIC routines for joystick and tone generation.
Web-based IBM 1620 emulator and IPL-V from 1963
This project offers a web-based emulator for the IBM 1620 Model-2 computer system, focusing on recovering and running vintage software from the 1960s.
My web version of Mars MIPS, now have builtin C compiler
A web version of the Mars MIPS simulator now includes a built-in C compiler, allowing users to write and simulate MIPS assembly and C code in the browser.
I designed a nibble-oriented CPU in Verilog to build a scientific calculator
This project implements a fully functional scientific calculator in hardware using an FPGA, including a custom soft CPU, microcode firmware, and supporting tools. It provides a web-based simulator and open-source Verilog code.
Siemens PC-X (2015)
The article explores the Siemens PC-X, a 1984 PC that ran SINIX (a Unix-based OS) and featured unique hardware specifications and design, providing historical context for early computing.