Iz prakse: Kasetofon za novo vreme
Originalna Galaksija je, kao i većina tadašnjih kućnih računara, snimala programe i podatke na audio-kasete. Četrdeset godina kasnije, kasete su zamenjene EEPROM-om i sve radi mnogo brže i lakše. Ali je za to bilo potrebno napisati puno softvera…
Umesto na kasetofon, nova Galaksija upisuje programe i podatke u svoju flash memoriju (preciznije rečeno, EEPROM) kapaciteta 512 kilobajta. Zvuči jednostavno i logično, ali to što se upisuje nije jedan blok memorije koji zauzima čitav raspoloživ prostor. Korisnik će poželeti da snima razne bejzik i mašinske programe, podatke, sadržaj ekrana… Povremeno će neke podatke brisati, snimati druge umesto njih, i sve će se događati kao na disku vašeg PC-ja.
Fajlovi u EEPROM-u
Da bi sistem za rad sa fajlovima pouzdano funkcionisao, operativni sistem mora da obezbedi niz servisa, da deli programe i podatke u blokove i da neprekidno brine o konzistentnosti sistemskih tabela. Sve to je u ranim godinama razvoja kućnih računara napravljeno pod imenom nalik na disk file system, i taj sistem su dobili Apple, IBM PC i drugi računari, uglavnom ne u svojoj prvoj verziji. Sada je došlo vreme da nešto slično dobije i Galaksija.
Galaksijin file system za svoje informacije rezerviše zonu od 8 KB na fizičkom početku sadržaja EEPROM-a. Tu je upisana tabela zauzetih sektora (FAT, File Allocation Table) i druge sistemske informacije. Za korisnikove programe i podatke ostaje 1008 blokova po 512 bajta, dakle 516,096 bajta. Projektom je predviđeno da maksimalno dopušteni broj datoteka u ovoj memoriji bude 480, pri čemu ime svake od njih može da ima do 14 znakova.
Nove naredbe
Na početku rada treba formatirati ovaj prostor, što se radi komandom FORMAT. Napominjemo da će izvršavanje ove komande obrisati sav raniji sadržaj flash memorije, pa treba biti oprezan kod primene. Galaksija će ispisati kontrolno pitanje pre nego što stvarno formatira EEPROM.
Počnimo od najjednostavnijeg: da biste snimili bejzik program koji je smešten u memoriju, kucate SAVE „IME“ pri čemu je IME naziv koji dajete svom programu. Kasnije ga možete učitati u radnu memoriju komandom OLD „IME“.
Za korisnikove programe i podatke u EEPROM-u ostaje 1008 blokova po 512 bajta, dakle 516,096 bajta. Projektom je predviđeno da maksimalno dopušteni broj datoteka u ovoj memoriji bude 480, pri čemu ime svake od njih može da ima do 14 znakova
Kada radimo sa mašinskim programima ili nekim drugim podacima, potrebna je mogućnost snimanja dela memorije, ma kakav se sadržaj u njoj nalazio. Za to će nam poslužiti naredba SAVE „IME“, mmmm, nnnn, pri čemu mmmm označava početnu, a nnnn krajnju adresu memorije čiji se sadržaj snima. Da bismo, na primer, snimili mašinski program koji se nalazi u ćelijama memorije čije su adrese od &3C30 do zaključno sa &3FFF, otkucaćemo komandu SAVE „PROGRAM“, &3C30, &3FFF.
Kod učitavanja komandom OLD „IME“, Galaksija će učitane bajtove smestiti na iste adrese na kojima su se nalazili pre snimanja. Ponekad je potrebno da učitavamo podatke na neke druge adrese. Ako želimo da program bude učitan na adrese koje su za 1024 veće od originalnih, koristićemo OLD „IME“, 1024 (ili, što je isto, OLD „IME“, &400) – program iz prethodnog primera onda ne bi bio učitan na adrese &3C30-&3FFF, nego na &4030-&43FF. Da je pomeranje trebalo da bude negativno (prema početku memorije) otkucali bismo OLD „IME“ –1024 ili OLD „IME“ -&400.
Da bismo videli spisak svih programa upisanih u flash memoriju, koristićemo komandu DIR, koja će nas ujedno obavestiti i o raspoloživom slobodnom prostoru. Ako iza DIR navedemo neko ime, recimo DIR „JACK“, onda će biti ispisana samo imena fajlova u čijem nazivu postoji tekst „JACK“, recimo igra Jumping Jack.
Da biste obrisali neki nepotreban fajl iz flash memorije, koristite komandu ERASE „IME“. Pazite da je ne pomešate sa DELETE koja briše niz sukcesivnih linija bejzik programa. Budite oprezni kada brišete fajlove, jer greškom obrisani fajl ne možete povratiti (osim ako neko jednom ne napiše UNDELETE za Galaksiju, kao nekad za PC računare). Zato je dobro da važne fajlove povremeno prebacite na PC i tamo ih sačuvate. Najzad, za promenu imena nekog fajla koristićete MOVE „STAROIME“, „NOVOIME“ – opet, pazite da ne iskoristite komandu REN, jer je ona na Galaksiji RENUMBER, promena linijskih brojeva programa u memoriji.
Pomenimo i dve komande vezane za administriranje sadržaja flash memorije. Komanda BLOCKS ispisuje logičku strukturu EEPROM-a u smislu zauzetosti blokova. Šest redova će biti popunjeno grafičkim karakterima (16×64 piksela) kako biste videli zauzeti i slobodni prostor. Ukoliko bi se (možda zbog nehotičnog gašenja računara u toku upisa podataka u EEPROM) broj realno slobodnih blokova razlikovao od onoga što je upisano sistemskoj sekciji diska, podatke možete da uskladite komandom RESCAN.
Skraćenice sa tastature
Ako u toku razvoja nekog programa želite da snimite kompletan sadržaj RAM memorije, možda da biste posle nekog kraha vratili sve u prethodno stanje, pritisnite Shift+Esc i onda, držeći te tastere pritisnute, pritisnite drugom rukom strelicu nagore. Sadržaj će biti snimljen pod imenom MEMORY. Da biste ga vratili u memoriju, takođe pritisnite Shift+Esc i strelicu nadole. Pri tom budite oprezni jer će ovom operacijom tekući sadržaj memorije biti nepovratno izgubljen.
Potencijala za rast će biti i nakon objavljivanja finalnog projekta, jer ostatak prostora u velikom ROM-u od
32 KB prosto poziva da se smišljaju neke nove stvari…
Na sličan način sa Shift+Esc i strelica ulevo možete da snimite kompletan sadržaj ekrana – nastaće fajl pod imenom SCREEN. Taj sadržaj po potrebi vraćate na ekran sa Shift+Esc i strelica udesno. Tokom razvoja softvera za Galaksiju napravljeno je još nekoliko zgodnih skraćenih komandi, o kojima će
biti reči u uputstvu za upotrebu ovog računara.
Uvođenjem novih komandi i mogućnosti računar Galaksija raste, a potencijala za rast će biti i nakon objavljivanja finalnog projekta i pune verzije sistemskog softvera, jer ostatak prostora u velikom ROM-u od 32 KB prosto poziva da se smišljaju neke nove stvari…