CoBra - Software de BOOT
Această pagină prezintă cîteva aspecte legate de software-ul de BOOT folosit pe calculatorul CoBra. Este vorba de programul scris în ROM-ul de BOOT, care se lansează imediat la pornirea calculatorului în configuraţia hardware de start. În mod tradiţional, ca BOOT ROM pentru CoBra pe vremea respectivă se folosea cîte un EPROM cu capacitate de 2KB. Totuşi CoBra poate accesa un BOOT ROM cu capacitatea de maxim 16KB, şi după cum veţi vedea în continuare eu m-am folosit cu succes de acest prerogativ.BOOT ROM-uri folosite cu CoBraPentru fiecare BOOT ROM de mai jos, sînt disponibile două link-uri: unul cu listingul dezasamblării codului de BOOT ROM, un click pe el va deschide pagina cu listingul, şi un link pentru descărcarea imaginii binare ROM respective | |||||
Pentru configuraţia cu 64K RAM |
Pentru configuraţia cu 80K RAM | ||||
BOOT standard (v.1) Imagine ROM (Right-click, Save As) Listing recompilabil (Right-click, Save As) |
Aceasta e versiunea recuperată dintr-un EPROM păstrat de mine de pe vremea respectivă (1990-1992). L-am folosit iniţial, cînd am pornit prima placă de bază în configuraţia cu 64K RAM. Codul este identic cu fişierul "boot64k_v2.bin" din arhiva "Cobra_BOOT_roms.zip" postată pe forum de către mihaila_ac. | BOOT standard (v.1) Imagine ROM (Right-click, Save As) Listing recompilabil (Right-click, Save As) |
Aceasta e versiunea recuperată din EPROM-ul de pe plăcile de bază construite de mine pe vremea respectivă (1990-1992). L-am folosit pe ambele plăci de bază după ce le-am modificat pentru 80K RAM. Această versiune este aproape identică cu cea din fişierul "boot80k_v3.bin" din arhiva "Cobra_BOOT_roms.zip" postată pe forum de către mihaila_ac. | ||
BOOT de test standard Imagine ROM (Right-click, Save As) Listing recompilabil (Right-click, Save As) |
Codul de BOOT de test standard pentru CoBra. Acest cod a fost iniţial scris pentru configuraţia cu 64K RAM. Eu l-am modificat în aşa fel încît să poată fi rulat în ambele configuraţii. | ||||
BOOT de test HOMOK Imagine ROM (Right-click, Save As) Listing recompilabil (Right-click, Save As) |
Un cod de BOOT provenit de la un prieten, cu teste hardware pentru CoBra în configuraţie de 64K RAM | BOOT "Mastery Electronics" Imagine ROM (Right-click, Save As) Listing recompilabil (Right-click, Save As) |
Un cod de BOOT provenit de la un prieten, în esenţă este codul standard de BOOT 80K dar cu o grafică total diferită |
CoBra Boot Manager
Afară de aceste versiuni de BOOT, eu personal am scris un cod pe care l-am denumit Boot Manager şi care este lansat în loc de codul de BOOT obişnuit, de la adresa 0000h. La pornire este afişat un meniu din care se selectează unul din codurile de BOOT prezentate în tabelul de mai sus. Ideea mea a fost să fac cumva să pot alege la pornire unul din aceste coduri de BOOT, fără să fie nevoie să schimb ROM-ul din soclul de pe placa de bază. Scopul este unul mai degrabă istoric, acela de a face cumva să păstrez aceste coduri de BOOT diferite, scrise de diverse persoane pentru CoBra, ca într-un muzeu de BOOT-uri, dacă se poate spune aşa.CoBra Boot Manager - sursa în Assembler(MasterBoot-CoBra+CPM_rev.01.asm) (MasterBoot-CoBra+CPM_rev.01.bin) |
Harta memoriei pentru "Boot-ul CoBra Unificat" | ||
Spaţiu liber | $3000-$3FFF | Fişierul 16K_UNIFIED_BOOT_rev.01.bin pe care-l puteţi descărca aici ($3000 = 12288 octeți, întrucît $1000 octeți rămîn neprogramați) conţine imaginea unui BOOT ROM de 16KB pentru CoBra, pe care-l puteţi scrie într-un EPROM şi folosi într-un calculator CoBra, indiferent că are configuraţie hardware de 64KB sau 80KB. Recomand folosirea lui în conjuncţie cu imaginea SYSTEM ROM de 64 KB descărcabilă mai jos, care conţine şi un sistem CP/M rulabil direct din ROM (numai în configurația cu 80 KB RAM), cu una din 4 combinaţii de taste posibile (vezi tastele descrise mai jos). |
BOOT "Mastery Electronics" 80K RAM | $2800-$2FFF | |
BOOT de test standard 64K / 80K RAM | $2000-$27FF | |
BOOT de test HOMOK 64K RAM | $1800-$1FFF | |
BOOT standard (v.1) 80K RAM | $1000-$17FF | |
BOOT standard (v.1) 64K RAM | $0800-$0FFF | |
CoBra Boot Manager | $0000-$07FF | |
Harta memoriei pentru SYSTEM ROM utilizabil cu "Boot-ul CoBra Unificat" | ||
Spaţiu liber | $F34B-$FFFF | Fişierul SYSTEM_ROM.bin pe care-l puteţi descărca aici ($F34B = 62283 octeți, întrucît $0CB5 = 3253 octeți rămîn neprogramați) conţine imaginea unui SYSTEM ROM de 64KB pentru CoBra, pe care-l puteţi scrie într-un EPROM şi folosi într-un calculator CoBra, în conjuncţie cu imaginea de "Boot CoBra Unificat" de 16KB de mai sus, care conţine cod pentru lansarea sistemului CP/M stocat în acest SYSTEM ROM (numai în configurația cu 80 KB RAM), cu una din 4 combinaţii de taste posibile (vezi tastele descrise mai jos). |
Codul rutinei NMI | $F20E-$F34A | |
15 octeți nefolosiți ($00) | $F200-$F20E | |
CPM 80 coloane text | $C000-$F1FF | |
DEVIL | $8000-$BFFF | |
BASIC Spectrum | $4000-$7FFF | |
OPUS v.3.2 | $0000h-$3FFF | |
Precizare importantă:
|
Boot Manager cu CoBra 64K RAM |
Boot Manager cu CoBra 80K RAM | ||
Imaginea de start afişată de Boot Manager pentru configuraţia de 64K RAM. Cu săgeţile SUS/JOS se poate selecta unul din cele 3 coduri de BOOT disponibile din meniul din stînga, apoi cu ENTER se lansează acel cod. |
Imaginea de start afişată de Boot Manager pentru configuraţia de 80K RAM. Cu săgeţile SUS/JOS se poate selecta unul din cele 3 coduri de BOOT disponibile din meniul din dreapta, apoi cu ENTER se lansează acel cod. |
CoBra Boot Manager - versiune aniversară 2016
Cu ocazia aniversării a 30 de ani de la proiectarea CoBra, mi-a venit ideea să adaug în Boot Manager o "animaţie cu dedicaţie" pentru întreaga echipă care a proiectat calculatorul în 1986. Ca atare m-am pus pe treabă şi am scris o versiune modificată de CoBra Boot Manager conţinînd o defilare în sus a logo-ului CoBra care se mută în treimea superioară a ecranului, după care în treimea de mijloc este introdus tot prin defilare verticală logo-ul "30 ANI". Apoi în treimea de jos a ecranului este afişat un mesaj aniversar, după care sînt introduse pe rînd toate numele membrilor echipei de proiectanţi CoBra. Mai departe, logo-ul "30 ANI" începe să defileze în stilul clasic, de la dreapta la stînga, alternativ cu defilarea de la stînga la dreapta (în fundal) a unei benzi înclinate cu steluţe multicolore. Redau mai jos sursa în Assembler a acestei versiuni, care poate fi descărcată, la fel ca şi codul binar rezultat prin asamblare (MasterBoot-CoBra+CPM_rev.02_Anniversary_Edition.bin) cu cîte un right-click pe fiecare din cele două link-uri din capul tabelului.CoBra Boot Manager versiune aniversară 30 ani - sursa în Assembler(MasterBoot-CoBra+CPM_rev.02_30-Anniversary-Edition.asm) (MasterBoot-CoBra+CPM_rev.02_30-Anniversary-Edition.bin) |
Dificultăţi specifice în scrierea Boot Manager-ului CoBra
Problemele de care m-am lovit în scrierea Boot Manager-ului au fost două: