Acesta este un remaster al ediţiei 7.2.0 CD Knoppix, făcut cu scopul de a pune la dispoziţie un sistem de operare celor care vor să folosească unele din utilitarele pe care le-am scris pentru calculatorul CoBra. Întrucît în zilele de faţă cei mai mulţi utilizatori par să fi migrat spre calculatoare pe 64 de biţi (eu nu mă număr printre ei) a trebuit să găsesc o cale de legătură între aceşti utilizatori şi utilitarele mele. Din cauză că le-am scris pentru Linux (iar cele compilate sînt pentru Linux pe 32 biţi), au fost unii utlizatori care au avut probleme încercînd să le folosească. Knoppix e o distribuţie Linux pe 32 de biţi, iar eu sînt foarte familiar cu remasterizarea şi modificarea lui.

DOWNLOAD IMAGINE ISO CD

MD5SUM: b825dca998815b9c2317900e972818b2

Ar fi cam trei metode de a folosi această imagine CD: poate fi scrisă pe un disc DVD (întrucît mărimea o depăşeşte pe cea a unui CD standard), poate fi transferată pe un flash drive de pe care se bootează calculatorul, sau poate fi folosită într-o maşină virtuală.

Am asamblat această imagine ISO în ideea de a fi folosită într-o maşină virtuală. Aceasta ar fi cea mai flexibilă şi uşoară metodă de folosire, de vreme ce primele două metode necesită un calculator fizic pe 32 de biţi pentru a boota de pe CD. O maşină virtuală poate fi creată foarte uşor, indiferent de ce tip de calculator ai, şi indiferent de software-ul de virtualizare pe care-l foloseşti (eu personal folosesc VirtualBox, care este gratuit şi Open Source, în Linux, şi care poate fi folosit şi în Windows, dar orice alt software de virtualizare poate fi folosit dacă se doreşte - VMWare, Parallels, Hyper-V Manager, QEMU etc.).

Pentru a folosi această imagine CD într-o maşină virtuală nu e nevoie decît de crearea unei maşini virtuale goale (FĂRĂ NICI UN HARDDISK) pentru un sistem de operare Linux pe 32 de biţi. Alocaţi-i cam 256-512 MB RAM, 128 MB de memorie video şi o unitate CD şi alocaţi-i de asemenea şi acces USB. Cea mai uşoară cale de a transfera fişiere cu această maşină virtuală este cu un flash drive USB înfipt în calculatorul gazdă şi apoi accesat din maşina virtuală.

Asta doar dacă nu reuşiţi să activaţi un "shared folder" între sistemul gazdă şi UtiLinux, caz în care nu mai e nevoie de nici un flash drive separat. Dacă folosiţi VirtualBox 4.3.14 sau mai recent ca software de virtualizare, veţi avea această facilitate din start, a se vedea comentariul de mai jos.

Deci, pentru a procesa nişte fişiere cu utilitarele CoBra de pe acest CD, puneţi aceste fişiere pe un flash drive USB, porniţi maşina virtuală de pe imaginea CD, apoi conectaţi flash drive-ul USB la maşina virtuală, copiaţi fişierele în Linux (creaţi un subdirector gol undeva în /home/knoppix) şi apoi rulaţi utilitarele CoBra cu aceste fişiere. Apoi copiaţi fişierele rezultate înapoi pe flash drive şi deconectaţi flash-drive-ul de la maşina virtuală.

Un aspect important care trebuie neapărat menţionat: atunci cînd creezi o maşină virtuală cu un sistem de operare grafic (Linux, Windows etc.), pentru a dispune de rezoluţii mai mari decît standardul (1024 x 768) în sistemul de operare găzduit, este de obicei necesară instalarea în sistemul găzduit a unui software furnizat de aceeaşi firmă care a scris software-ul de virtualizare.

De exemplu, în cazul VirtualBox este vorba de "VirtualBox Guest Additions", care este pur şi simplu o mică imagine ISO de CD conţinînd "drivere" pentru sistemul de operare găzduit, permiţînd rezolutii mai mari pentru display-ul virtual, acces la reţea, acces la directoare din sistemul de operare gazdă, acces la buffer-ul copy-paste din sistemul de operare gazdă etc.

În cazul VMWare de exemplu, acest software cu drivere se numeşte "VMWare Tools".

Întrucît eu folosesc VirtualBox versiunea 4.3.14, pe acest CD Linux am instalat VirtualBox Guest Additions 4.3.14. Ca urmare, dacă veţi folosi aceeaşi versiune de VirtualBox sau una mai recentă, veţi dispune din start de rezoluţii mai mari în acest CD Linux, plus toate celelalte facilităţi, fără a mai fi nevoie să instalaţi nimic altceva.

De aceea eu personal aş încuraja potenţialii utilizatori să folosească VirtualBox, dacă nu ultima versiune disponibilă, măcar 4.3.14 care se poate descărca de pe site-ul oficial AICI (versiunea 4.3.14 pentru Windows).
Acesta e un link de download direct pe care l-am luat de pe pagina oficială cu versiuni mai vechi unde puteţi găsi şi versiunea 4.3.14 pentru alte sisteme de operare gazdă.

Marele avantaj este că veţi putea transfera fişiere prin intermediul unui "shared folder" din sistemul gazdă, pe care UtiLinux îl va vedea ca director de reţea. Nu mai zic că veţi mai putea şi mări imediat rezoluţia display-ului virtual pur şi simplu redimensionînd cu mouse-ul fereastra maşinii virtuale (!!!)



Exemplu de setări pentru o maşină virtuală în VirtualBox pentru CoBra UtiLinux

Pentru cei nefamiliarizaţi cu maşini virtuale, am să prezint un exemplu de creare a unei maşini virtuale pentru această distribuţie Linux în VirtualBox. Folosesc versiunea 4.3.14 de VirtualBox pentru Linux, dar procedura este absolut identică în VirtualBox pentru Windows.

Porniţi VirtualBox şi daţi un click pe butonul "New" în toolbar. Va apare un dialog ca mai jos. Introduceţi ce se vede şi apăsaţi "Next":

În continuare alegeţi mărimea memoriei maşinii virtuale. Alegeţi un minim de 512 MB:

În continuare va apare un dialog pentru eventuale harddisk-uri ale maşinii virtuale. În cazul nostru nu avem nevoie de harddisk, aşa că selectaţi "Do not add a virtual harddrive" şi apăsaţi "Create":

Va apare un mesaj de avertisment în care apăsaţi pur şi simplu "Continue" pentru a trece mai departe:

În acest moment maşina virtuală este creată cu setările de mai jos. Mai este nevoie de cîteva mici modificări. Daţi un click pe "General" (sau pe butonul "Settings" din toolbar):

Selectaţi tab-ul "Advanced". Selectaţi ca mai jos "Bidirectional" în drop-down-urile "Shared Clipboard" şi "Drag'n'Drop" pentru a activa comunicaţia in ambele sensuri intre sistemul gazdă şi sistemul găzduit prin Copy-Paste şi Drag & Drop:

În partea stîngă selectaţi secţiunea "Display", după care în dreapta deplasaţi cursorul "Video Memory" pînă la maxim (128 MB). Puteţi bifa şi acceleraţia 3D dacă e nevoie:

În final, pentru a avea acces din Linux-ul găzduit la un director din sistemul de operare gazdă (cel mai probabil Windows în cazul vostru), în stînga selectaţi secţiunea "Shared Folders" după care în dreapta daţi un click pe butonul cu + pentru a selecta un director oarecare din sistemul gazdă:

Selectaţi un director (din sistemul gazdă), bifaţi "Auto-mount" şi apăsaţi OK.
"Auto-mount" vă va scuti de efortul suplimentar de a rula o comandă de genul "mount -t vboxsf tmp /home/knoppix/tmp" în Linux-ul găzduit. Un director cu numele "share_name" (cîmpul "Folder name" din dialogul de mai jos) care are şi optiunea de Auto-mount va fi disponibil în UtiLinux de la pornire în calea /media/sf_share_name. De exemplu în cazul de mai jos, share_name = tmp şi deci la pornirea UtiLinux va fi accesibil la /media/sf_tmp:



Setarea finală pentru "Shared Folders" va arăta cam ca mai jos:

Înainte de a porni maşina virtuală, din fereastra de setări la secţiunea "Storage" ataşaţi imaginea Linux CD ISO pentru CoBra (de oriunde o aveţi stocată prin sistemul gazdă) la unitatea DVD din maşina virtuală, după care apăsaţi OK:

În acest moment maşina virtuală este gata de pornire, aşa că apăsaţi butonul "Start" din toolbar şi distracţie plăcută!

O mică notă: pentru ca ceasul din UtiLinux să afişeze ora corectă (adică aceeaşi oră din sistemul gazdă, de ex. Windows) e nevoie de un mic truc: dezactivarea sincronizarii timpului între maşina virtuală şi software-ul de virtualizare. Am să prezint în continuare procedura de dezactivare pentru VirtualBox 4.3.14 şi pentru VMWare.

• Pentru VirtualBox, fie executaţi o comandă de genul:

VBoxManage setextradata VM_NAME "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
,
unde VM_NAME este numele maşinii virtuale pe care aţi creat-o pentru UtiLinux, fie deschideţi fişierul maşinii virtuale (.vbox) cu un editor de text şi la secţiunea <ExtraData> adăugaţi linia:
<ExtraDataItem name="VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" value="1"/>

• Pentru VMWare, deschideţi fişierul maşinii virtuale (.vmx) cu un editor de text şi adăugaţi următoarele linii de text:

tools.syncTime = "FALSE"
time.synchronize.continue = "FALSE"
time.synchronize.restore = "FALSE"
time.synchronize.resume.disk = "FALSE"
time.synchronize.shrink = "FALSE"
time.synchronize.tools.startup = "FALSE"

Aceasta e procedura luata de pe site-ul oficial VMWare.



Utilitare CoBra disponibile pe acest CD

Toate aceste utilitare sînt accesibile din meniul de start, în submeniul CoBra, iar pentru cele care sînt utilitare de consolă este dată o descriere completă a sintaxei de folosire atunci cînd sînt lansate din meniul de start.

bin2tap

Acesta este un script Bash care primeşte ca parametru un nume de fişier cu tot cu calea absolută sau relativă către el. Fişierul trebuie să conţină un bloc binar de cod Spectrum care se doreşte încărcat undeva în memoria Spectrum la o adresă NNNN (un număr hexa de 4 cifre). Pentru a fi folosit cu acest utilitar, fişierul trebuie denumit "FILENAME.hexdump.data.bin", unde FILENAME este orice nume de maxim 10 litere ales de utilizator dar restul numelui de fişier trebuie să fie exact ".hexdump.data.bin".

SINTAXĂ: într-o fereastră de consolă, rulaţi următoarea comandă:

bin2tap /path/to/FILENAME start=NNNN

unde /path/to este directorul conţinînd fişierul. Acest director trebuie să fie R/W (să poată fi scris de user-ul "knoppix").
Fişierul .TAP rezultat va fi salvat în acelaşi director sub numele de:
/path/to/FILENAME.tap

Am scris acest utilitar pentru a converti blocuri de cod Spectrum în fişiere .TAP, care apoi pot fi transferate mai departe într-o imagine floppy de dischetă DEVIL folosind utilitarul "CoBra DEVIL Disk Image Tool" descris mai jos.

CoBra CPM Disk Image Tool

Acesta este un program cu interfaţă grafică scris în C++ şi Qt (există două versiuni, una în Qt3 şi una în Qt4) care poate face transfer de fişiere între Linux şi o imagine RAW de dischetă CP/M CoBra. Un help complet este inclus în program şi poate fi văzut cu tasta F1. Spre deosebire de versiunea pentru Qt3, versiunea pentru Qt4 este ceva mai îmbunătăţită şi de exemplu poate transfera şi fişiere de mărime zero.

CoBra DEVIL Disk Image Tool

Acesta este un program cu interfaţă grafică scris în C++ şi Qt (există două versiuni, una în Qt3 şi una în Qt4) care poate face transfer de fişiere (.TAP) între Linux şi o imagine RAW de dischetă DEVIL CoBra. Un help complet este inclus în program şi poate fi văzut cu tasta F1. Este un instrument destul de avansat, zic eu, poate face operaţii nu numai între imagini floppy DEVIL şi fişiere Linux, dar si operaţii pe fişiere .TAP (ştergeri, redenumiri, creare bloc header, inserare de noi blocuri etc.). Este util şi celor care nu au de-a face cu un calculator CoBra dar au de-a face cu compatibile Spectrum în general sau chiar şi numai cu un emulator Spectrum pentru care vor să scrie sau să manipuleze software.

file-reverse

Acesta este un utilitar de consolă, scris în C, care acceptă ca parametru un nume de fişier cu tot cu cale relativă sau absolută (/path/to/filename). Conţinutul fişierului va fi extras în ordine inversă şi salvat într-un alt fişier în acelaşi director sub numele /path/to/filename-rev.
Am scris acest utilitar pentru a-mi fi mai uşor să dezasamblez codul CP/M salvat în ordine inversă în pistele sistem de pe unele dischete bootabile CoBra originale.

TD02RAW

Acesta este un script Bash care acceptă ca parametru un nume de fişier (fără extensie!!), plus alţi doi parametri (opţionali) - un număr de pistă de iniţială şi unul de pistă de finală. Fişierul trebuie să conţină o imagine Teledisk de dischetă şi să aibă extensia .TD0 (litere mari!!) iar numerele de pistă specifică un domeniu de piste care vor fi extrase din imaginea Teledisk şi salvate într-o imagine floppy RAW, care apoi poate fi folosită cu utilitarul "CoBra CPM Disk Image Tool" sau poate fi solosită cu un emulator floppy hardware ca de exemplu HxC.

Dacă pista iniţială nu e specificată, va fi considerată implicit 0 iar pista finală 79. Dacă pista iniţială e specificată dar pista finală nu e, pista finală va fi considerată implicit 79.