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.
Ecranul de pornire a acestui remaster Knoppix pentru CoBra arată ca mai jos:
Imaginea ISO a acestui remaster conţine deja instalate cinci utilitare pe care le-am scris pentru Linux, plus încă trei pe care nu le-am scris eu, dar care sînt utile la lucrul cu software pentru CoBra (un hex editor, un Z80 asamblor şi un Z80 dezasamblor). Odată ce sistemul este complet lansat de pe acest CD, e nevoie doar de o consolă text în care să se introducă orice comandă care foloseşte utilitarele. Utilitarele sînt descrise la sfîrşitul acestei pagini.
Două din aceste utilitare sînt scrise folosind o interfaţă grafică Qt, celelalte sînt utilitare de consolă (în mod text).
Toate aceste utilitare au cîte o intrare în meniul de start din taskbar:
Utilitarele grafice sînt complet lansate din meniu, iar cele de consolă, atunci cînd sînt lansate din meniu deschid o fereastră de consolă în care afişează un mic help pentru modul de utilizare, după care prompterul aşteaptă introducerea unei comenzi.
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 (!!!)
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.
VBoxManage setextradata VM_NAME "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
<ExtraDataItem name="VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" value="1"/>
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"
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.
Acest utilitar 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
/path/to/FILENAME.tap
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.
Lansată din meniul de start, versiunea pentru Qt3 arată cam aşa:
iar versiunea pentru Qt4 arată cam aşa:
De remarcat aici este că acest utilitar poate funcționa și numai în mod text în consolă, precum și în mod grafic, lansat fie din consolă fie fără nici un fel de consolă.
Atunci cînd este lansat în mod grafic dintr-o consolă (așa cum este lansat din meniul de start), consola va afișa diverse mesaje în timpul folosirii utilitarului, care mesaje nu sînt altfel vizibile doar din interfața grafică.
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.
Lansată din meniul de start, versiunea pentru Qt3 arată cam aşa:
iar versiunea pentru Qt4 arată cam aşa:
De remarcat aici este că acest utilitar poate funcționa și numai în mod text în consolă, precum și în mod grafic, lansat fie din consolă fie fără nici un fel de consolă.
Atunci cînd este lansat în mod grafic dintr-o consolă (așa cum este lansat din meniul de start), consola va afișa diverse mesaje în timpul folosirii utilitarului, care mesaje nu sînt altfel vizibile doar din interfața grafică.
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.
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.
man hexedit
chmod ugo+rw filename).