Software
System ROMs
Monitor
The Otrona boot ROM (U252) contains the following features:
- Read first floppy sector into 0xFE00 and attempt to boot on it
- Terminal mode
- System diagnostics
It is usually on a 2732 EPROM, but the socket also accepts 2764s. These images should be compatible with every motherboard revision.
Version | Notes | Downloads |
---|---|---|
Rev D | Partial reverse-enginering available here | ROM |
Rev E | No dump available yet | |
Rev F | Reduce CRT overscan. Terminal mode improvements. Misc. changes [1] | ROM |
Rev G | Fixes CRT controller initialization issue, now conforms to RS-170 [1] | ROM |
Rev H | Adds 8:16 card diagnostics | ROM |
Rev X | Identical to H, except for one byte (revision display). | ROM / Source (ZASM) / Source (ZASM, cleaned) |
[1]: See Technical Notes Manual for rev F & G changelogs
For Rev X, I recompiled from the source release using ZASM on RunCPM.
When reading sources, some characters may look corrupted. This is due to some CP/M editors adding page break markers by setting the most significant byte to 1. The cleaned source file also linked is the same without trailing spaces, MSB page breaks and trailing EOFs.
Character
The character ROM (U416) is the same on all the Otronas I’ve seen so far. From early Attachés to late 8:16s. It is usually labeled “CG 500”.
MD5: 346258b1cc3e3e88fa7e7e0b6a1984e7
The above picture contains, in order:
- [Alternate-1] Forms ruling set
- [Standard] ASCII upper and lower case
- [Alternate-2] Greek lower case and math
- [Alternate-3] Greek upper case and math
CP/M Operating System
The CP/M operating system is contained in the first 3 tracks (head 0) of a system diskette. The first sector contains a bootloader, which will be loaded and executed by the system ROM. This bootloader will then load all the remaining operating system from the floppy into memory.
From BIOS source:
[Boot sector is] loaded into FE00h by PROM. Boot code will be saved in sector 1 of track 0 and is […] one sector length ahead of the CCP.
Floppy layout:
0X0000 - 0x01FF (1 sector, 512) = BIOS boot sector
0X0200 - 0x09FF (4 sectors, 2k) = CCP
0X0A00 - 0x17FF (7 sectors, 3.5k) = BDOS
0x1800 - 0x3BFF (18 sectors, 9k) = Rest of BIOS
Memory layout (64KB total):
0x0000 - 0x00FF = CP/M Buffers, registers & instructions
0x0100 - 0xC3FF = TPA: Transient Program Area
0xC400 - 0xCBFF = CCP: Console Command Processor
0xCC00 - 0xD9FF = BDOS: Basic Disk Operating System
0xDA00 - 0xFFFF = BIOS: Basic Input/Output System
Versions
Below is a list of the OS versions I came across, along with the machine revision they came with:
Boot message | Source | Board | Drive | Notes |
---|---|---|---|---|
CP/M 2.2.3 Otrona ATTACHE <56K> | Own dump | Rev C, ROM D | 48 TPI | |
CP/M 2.2.5/48 Otrona 8:16 <56K> | Bitsavers & Don Maslin | ??? | ||
CP/M 2.2.5 Otrona ATTACHE <56K> | Sources | ??? | 96 TPI | No CCP & BDOS |
CP/M 2.2.5 Otrona ATTACHE <56K> | Own dump | Rev E, ROM H | 48 TPI |