CoBra - BOOT Software
This page presents a few details about the BOOT software used in the CoBra computer. I'm talking about the code stored in the BOOT ROM, which runs immediately at startup in the startup hardware configuration. Traditionally, back in the day, as a BOOT ROM in CoBra they would use one 2KB EPROM. Nevertheless CoBra can access a BOOT ROM with a capacity of maximum 16KB and, as you will see next, I successfully took advantage of this prerogative.BOOT ROM images used in CoBraFor each BOOT ROM below, there are 2 links: one for the BOOT ROM code disassembly listing, a click on it will open the listing page, and a link for downloading that binary ROM image | |||||
For the 64K RAM configuration |
For the 80K RAM configuration | ||||
Standard BOOT (v.1) ROM Image (Right-click, Save As) Recompilable source (Right-click, Save As) |
This is the version I recovered from an EPROM I kept since the old days (1990-1992). I used it initially, when I brought up the first mainboard in the 64K RAM configuration. The code is identical with the "boot64k_v2.bin" file in the "Cobra_BOOT_roms.zip" archive posted on the forum by mihaila_ac. | Standard BOOT (v.1) ROM Image (Right-click, Save As) Recompilable source (Right-click, Save As) |
This is the version I recovered from the EPROM on the mainboards I built back then (1990-1992). I used it on both those mainboards after modifying them for 80K RAM. This version is almost identical to the one in the "boot80k_v3.bin" file in the "Cobra_BOOT_roms.zip" archive posted on the forum by mihaila_ac. | ||
Standard test BOOT ROM Image (Right-click, Save As) Recompilable source (Right-click, Save As) |
The standard test BOOT code for CoBra. It was initially written for the 64K RAM configuration. I modified it so that it can be run in both configurations (64K and 80K). | ||||
HOMOK Test BOOT ROM Image (Right-click, Save As) Recompilable source (Right-click, Save As) |
A BOOT code received from a friend, with hardware tests for CoBra in 64K RAM configuration | BOOT "Mastery Electronics" ROM Image (Right-click, Save As) Recompilable source (Right-click, Save As) |
A BOOT code received from a friend, essentially the same as the standard BOOT 80K code but with different graphics |
CoBra Boot Manager
Aside from these BOOT code versions, I personally wrote a code I named "Boot Manager", which is run instead of the usual BOOT code, from address 0000h. At startup a menu is displayed where one of the BOOT codes presented in the table above can be selected. My idea was to somehow make it possible at startup to choose one of these BOOT codes to execute, without having to pull out and replace the ROM chip on the mainboard. The purpose is rather historical, I wanted to somehow be able to preserve these different BOOT codes, written by various people for CoBra, as in some BOOT code museum, if I can say so.CoBra Boot Manager - Assembler source(MasterBoot-CoBra+CPM_rev.01.asm) (MasterBoot-CoBra+CPM_rev.01.bin) |
Memory map for the "Unified CoBra Boot" | ||
Free space | $3000-$3FFF | The file 16K_UNIFIED_BOOT_rev.01.bin you can download here ($3000 = 12288 bytes, since $1000 bytes are left unprogrammed) contain the image of a 16KB BOOT ROM for CoBra, which you can write to an EPROM and use in a CoBra computer, regardless of whether it has a 64KB or 80KB hardware configuration. I suggest using it in conjunction with the 64KB SYSTEM ROM image downloadable below, which also contains a CP/M system bootable directly from ROM (only in 80KB hardware configuration), using one of 4 possible key combinations (see the keys described below). |
"Mastery Electronics" 80K RAM BOOT | $2800-$2FFF | |
Standard 64K / 80K RAM test BOOT | $2000-$27FF | |
HOMOK 64K RAM test BOOT | $1800-$1FFF | |
Standard (v.1) 80K RAM BOOT | $1000-$17FF | |
Standard (v.1) 64K RAM BOOT | $0800-$0FFF | |
CoBra Boot Manager | $0000-$07FF | |
Memory map for the SYSTEM ROM usable with the "Unified CoBra Boot" | ||
Free space | $F34B-$FFFF | The file SYSTEM_ROM.bin which you can download here ($F34B = 62283 bytes, since $0CB5 = 3253 bytes are left unprogrammed) contains the image of a 64KB SYSTEM ROM for CoBra, which you can write into an EPROM and use in a CoBra computer, in conjuction with the 16KB "Unified CoBra Boot" image above, containing code for launching the CP/M system stored in this SYSTEM ROM (only in the 80KB hardware configuration), using one of 4 possible key combinations (see the keys described below). |
NMI routine | $F20E-$F34A | |
15 unused bytes ($00) | $F200-$F20E | |
80-text-columns CP/M | $C000-$F1FF | |
DEVIL | $8000-$BFFF | |
BASIC Spectrum | $4000-$7FFF | |
OPUS v.3.2 | $0000h-$3FFF | |
IMPORTANT!:
|
Boot Manager on 64K RAM CoBra |
Boot Manager on 80K RAM CoBra | ||
Startup menu displayed by the Boot Manager for the 64K RAM configuration. With the UP/DOWN arrow keys you can select one of the 3 BOOT codes available in the menu on the left, then with ENTER that code can be run. |
Startup menu displayed by the Boot Manager for the 80K RAM configuration. With the UP/DOWN arrow keys you can select one of the 3 BOOT codes available in the menu on the right, then with ENTER that code can be run. |
CoBra Boot Manager - anniversary version 2016
In 2016, being the 30th anniversary of the design and construction of the CoBra computer, I came up with the idea of adding an "animation with a dedication" to the Boot Manager, for the entire team who designed and built the computer back in 1986. So I got to work and I wrote a modified version of CoBra Boot Manager containing a vertical (upward) scroll of the CoBra logo, which moves into the upper third of the screen, after which, in its old place in the middle third, also by vertical scroll upwards is introduced the "30 ANI" logo ("30 YEARS"). Then in the lower third of the screen an anniversary message is displayed, after which all the names of the CoBra designer team members are introduced one by one. Next, the "30 ANI" logo starts a classic horizontal scroll, right-to-left, alternating with the left-to-right scroll (in the background) of a slanted banner with multicolored stars. I'm showing below the Assembler code for this version, which can be downloaded together with the binary code produced by assembly (MasterBoot-CoBra+CPM_rev.02_Anniversary_Edition.bin) with a right-click on each of the two links in the table header.CoBra Boot Manager - 30-year anniversary version - Assembler source(MasterBoot-CoBra+CPM_rev.02_30-Anniversary-Edition.asm) (MasterBoot-CoBra+CPM_rev.02_30-Anniversary-Edition.bin) |
Difficulties in writing the CoBra Boot Manager
When writing the Boot Manager I had to deal with two problems: