1.2.15. Práca s magnetofónom
Ak vypneme počítač, program uložený v počítači je pre nás stratený. Keby sme museli každý program vložiť cez klávesnicu do počítača, bolo by to veľmi zdĺhavé a nezáživné. Je preto vhodné užitočné programy niekam "odložiť" a v prípade potreby ich vložiť späť do počítača. Jedným z najjednoduchších spôsobov je uchovávanie programov a dát na obyčajnej magnetofónovej kazete.
Použiť môžete ľubovoľný magnetofón, pripojenie k počítaču bolo popísané v úvode príručky.
Pre prácu s magnetofónom sú určené príkazy SAVE, LOAD, VERIFY a MERGE.
Program z počítača na kazetu nahráme príkazom SAVE. Predpokladajme, že v počítači je uložený tento program:
1 PRINT 1
2 PRINT 2
10 PRINT 10
20 LET x=20
Tento program chcete uložiť na kazetu. Zadajte príkaz
SAVE "test"
Test je názov programu, pod ktorým bude uložený na pásku. Názov programu môže mať až 10 znakov (písmená alebo číslice). Po odoslaní príkazu počítač vypíše:
Start tape, then press any key
čo znamená v preklade "pusti magnetofón a stlač nejaký kláves". Po stlačení klávesu uvidíte na okraji obrazovky vodorovné bledomodré a červené pruhy široké asi 1 cm, ktoré sa pohybujú pomaly hore po dobu asi 5 sekúnd. Potom nasleduje krátky úsek modrých a žltých pruhov, nasleduje normálna obrazovka a hneď opäť bledomodré a červené pruhy a nakoniec modré a žlté pruhy.
Informácie sú z počítača na magnetofón vysielané v dvoch blokoch, kde každý blok má zavádzaciu časť (bledomodré a červené pruhy), blok (hlavička záznamu) obsahuje názov a ďalšie informácie o zázname, druhý blok sú vlastné informácie (program a premenné). Biela časť medzi blokmi je medzera.
Praktický postup pri nahrávaní programu bude:
1) pripojte magnetofón k počítaču
2) nastavte kazetu na úsek, na ktorý chcete nahrávať (pozor na zavádzaciu časť kazety)
3) zadajte SAVE "test" a stlačte ENTER
4) nastavte úroveň pre záznam podľa návodu pre magnetofón a spustíte magnetofón na nahrávanie záznamu
5) stlačte nejaký kláves
6) pozorujte na obrazovke priebeh nahrávania; po ukončení nahrávania sa vypíše hlásenie
0 OK, 0:1
Potom môžete zastaviť magnetofón.
Nahratý program na páske doporučujeme ihneď skontrolovať príkazom VERIFY nasledovným postupom:
1) previňte kazetu pred začiatok záznamu
2) zadajte príkaz
VERIFY "test"
3) pustite magnetofón
Pokiaľ nie je na páske začiatok nahrávky, striedajú sa na okraji obrazovky farby červená a bledomodrá. Potom sa objaví rovnaký vzor pruhov ako pri zázname na pásku. Po prečítaní hlavičky sa objaví výpis
Program: test
a začína kontrola záznamu. Kontrola sa vykonáva tak, že záznam na páske sa porovnáva s obsahom pamäti v počítači (preto treba kontrolu vykonať ihneď bez zmeny programu v počítači).
Po úspešnej kontrole nasleduje známy výpis OK.
Ak sa tak nestalo, príčin môže byť viac. Skontrolujte prepojenie počítača a magnetofónu. Ak máte v magnetofóne reproduktor, mali by ste pri prehrávaní počuť zvuk podobný "morzeovke". Keď sa neobjavia vôbec pruhy ani výpis hlavičky, prepojenie je nesprávne alebo úroveň záznamu je zle nastavená.
Ak sa po výpise hlavičky prestanú zobrazovať pruhy, skontrolujte meno programu. Počítač totiž vypisuje všetky hlavičky na obrazovku, no čaká až na program zadaného mena.
Niekedy sa stane, že hlavička je vypísaná, ale objaví sa hlásenie
R Tape loading error
teda k chybe došlo v priebehu porovnávania. Nastavte kazetu pred záznam a skúste znovu príkaz VERIFY. Ak to nepomôže, nahrávka na páske je zlá (špinavá hlava, nekvalitná páska, ...) a treba skúsiť program nahrať znovu. Ak ani to nepomôže, skúste inú pásku.
Ak máte program nahratý na páske, pre nahratie do počítača použijeme príkaz LOAD v tvare:
LOAD "test"
Ak bol program uložený na pásku riadne skontrolovaný, nemal by byť problém pri použití príkazu LOAD. Problém môže byť však pri nahrávaní programu z pásky nehratej na inom magnetofóne. Postup v tomto prípade bol popísaný na začiatku príručky. Samozrejme, že programy pre iné typy počítačov (nekompatibilné so SINCLAIR) sa Vám nepodarí nahrať.
Upozorňujeme, že príkazom LOAD sa starý program premenné v počítači zmažú.
Ak starý program nechceme zmazať, použijeme príkaz MERGE v tvare:
MERGE "test"
ktorý nahradí odpovedajúce riadky programu a hodnoty odpovedajúcich premenných z nového programu, nové riadky pridá (ako keby sme riadky zadávali postupne z klávesnice).
Doteraz uvedené príkazy pre prácu s magnetofónom sú:
SAVE - nahráva program a premenné na pásku
VERIFY - kontroluje program a premenné na páske s tými,
ktoré sú v počítači
LOAD - maže starý program a premenné a nahradzuje ich
novými, ktoré číta z pásky
MERGE - je podobné ako LOAD s výnimkou toho, že neruší
starý program a premenné, pokiaľ sú riadky inak
očíslované a premenné majú iné označenie
V každom z týchto príkazov je kľúčové slovo nasledované menom programu, čo môže byť ľubovolný reťazec (môže to byť teda aj reťazcový výraz, nie iba reťazcová konštanta). Pre SAVE je to meno programu, pod ktorým má byť na pásku uložený, zatiaľ čo ďalšie 3 "hľadajú" program na páske. Počas hľadania sa vypisujú mená záznamov, na ktoré sa narazilo. Identifikácia mena môže byť dvojaká. Pre VERIFY, LOAD a MERGE môžete použiť prázdny reťazec ako meno, ktoré hľadáte. Potom sa počítač nezaujíma o meno, ale berie prvý program, na ktorý narazí. Ak nechceme nahrať premenné spolu s programom (môžu podstatne predĺžiť záznam), zmažeme ich príkazom CLEAR pred použitím príkazu SAVE.
Druhá možnosť príkazu SAVE je táto:
SAVE meno LINE číslo
Program je uchovaný tak, že pri spätnom čítaní pomocou LOAD sa automaticky skáče na riadok s udaným číslom, odkiaľ začína program pracovať. Zatiaľ jediným druhom informácií, ktoré sme uchovávali na páske, boli programy spoločne s ich premennými. Sú tu však ďalšie možnosti pre pole a časť pamäti.
S poľom sa pracuje trochu odlišne. Pole môžete uchovať pri použití DATA v príkaze SAVE:
SAVE reťazec DATA meno poľa ()
Reťazec je meno o uchovanom zázname na páske a pracuje rovnako, ako keď uchovávame program alebo byte. Meno poľa špecifikuje pole, ktoré chcete uchovať, ide o jedno písmeno (pre číselné pole) alebo písmeno a znak $ (pre reťazcové pole). Pamätajte na zátvorky za menom poľa. Možno si myslíte, že sú zbytočné, ale počítaču uľahčujú prácu. Musí Vám byť jasný rozdiel medzi reťazcom a menom poľa. Pokiaľ napr. zadáte
SAVE "udaje" DATA b()
potom príkaz SAVE berie pole b a ukladá ho na pásku pod menom "udaje". Keď napíšete
VERIFY "udaje" DATA b()
počítač bude hľadať číselné pole uložené na páske pod menom "udaje". Keď ho počítač nájde, oznámí:
Number array: udaje
a kontroluje ho spätne proti poľu b v počítači.
LOAD "udaje" DATA b()
hľadá pole na páske a potom, pokiaľ je pre neho v počítači miesto, zruší v počítači pole b (pokiaľ existuje) a nahrá nové pole b. Príkaz MERGE nemôžete použiť pri uchovaní polí.
Takisto môžete uložiť na pásku reťazcové pole. Keď ho počítač nájde na páske, vypíše:
Character array: meno
Keď nahrávate do pamäti reťazcové pole, neruší to len reťazcové pole s týmto menom, ale tiež reťazec s týmto menom.
Uložiť časť pamäti je možné bez ohľadu na jej ďalšie použitie. Mohol by to byť televízny obraz, užívateľom definovaná grafika, atď. Obsah obrazovky uložíme príkazom
SAVE "obrazovka" CODE 16384,6912
Jednotkou pamäti je byte (číslo medzi 0 a 255), každý byte má svoju adresu (číslo medzi 0 a 65535). Prvé číslo po CODE je adresa prvého bytu, ktorý sa má nahrať na pásku a druhé je počet bytov, ktoré sa nahrajú. V našom prípade je 16384 adrea prvého bytu v pamäti obrazovky a 6912 je počet bytov v nej obsiahnutých. Tak uložíme kópiu televíznej obrazovky. Skúste to! Meno "obrazovka" je meno, podobne ako u programu. Na nahranie späť do počítača použijeme
LOAD "obrazovka" CODE
Môžete použiť aj tvar
LOAD meno CODE začiatok, dĺžka
Keď počítač zistí, že dĺžka záznamu na páske je dlhšia, než príkaze LOAD, vypíše sa správa
R Tape loading error
Pokiaľ sa dĺžka vynechá, bude počítač čítať pásku bez ohľadu na dĺžku. Začiatok udáva adresu, kam sa má uložiť prvý byte (môže byť rozdielny od adresy v príkaze SAVE). Pokiaľ sú adresy rovnaké, môže sa adresa v príkaze LOAD vynechať (začiatočnú adresu počítač načíta z pásky).
Príkaz SAVE meno CODE 16384,6912 pre uloženie pamäti obrazovky je tak užitočný, že môžete použiť jednoduchší príkaz
SAVE meno SCREEN$
a pre čítanie z pásky zase
LOAD meno SCREEN$
Tu je zriedkavý prípad, kedy VERIFY nebude pracovať, lebo VERIFY po prečítaní hlavičky z pásky napíše meno na obrazovku (tým zmení pamäť obrazovky) a tak pri verifikácii, kedy je obraz zmenený, dochádza k verifikačnej chybe. Vo všetkých iných prípadoch by ste mali použiť príkaz VERIFY po použití SAVE.
Meno v uvedených príkazoch je akýkoľvek reťazec, pod ktorým je informácia uchovaná na páske. Mal by sa skladať z ASCII znakov, avšak môže ich byť maximálne 10.
Poznáme 4 druhy informácii, ktoré môžu byť uchované na páske:
program a premenné spolu, číselné pole, reťazcové pole, časť pamäti.
Keď VERIFY, LOAD a MERGE hľadajú informácie na páske s uvedeným menom, potom sa na obrazovke vypisujú mená záznamov na páske, ktoré sa našli. Pred menom záznamu je informácia o type záznamu:
program, number array, character array, bytes.
Pokiaľ bolo meno prázdny reťazec, vezme sa do úvahy prvý záznam zadaného typu bez ohľadu na jeho meno.
SAVE uchováva informáciu na páske pod daným menom. Hlásenie
F Invalid file name
sa vypíše vtedy, keď je meno prázdny reťazec alebo má viac ako 10 znakov. SAVE vždy vyvolá správu:
Start tape, then press any key.
a počítač čaká na stlačenie klávesu.
Teraz uvedieme kompletný zoznam štyroch príkazov pre prácu s magnetofónom.
Príkaz SAVE
-----------
1. Program a premenné
SAVE meno LINE číslo riadku
uchováva program tak, že po LOAD automaticky nasleduje
GOTO číslo riadku. Ak nie je daná časť LINE, program sa po
LOAD iba nahrá.
1. Časť pamäti
SAVE meno CODE začiatok, dĺžka
uloží časť pamäti, ktorá začína na uvedenej adrese a má
zadanú dĺžku
SAVE meno SCREEN$
je vlastne
SAVE meno CODE 16384,6912
a uloží televízny obraz
2. Pole
SAVE meno DATA písmeno () alebo
SAVE meno DATA písmeno$ ()
uloží pole, ktorého meno je zadané za DATA
Príkaz VERIFY
-------------
1. Program a premenné
VERIFY meno
kontroluje program na páske
2. Časť pamäti
VERIFY meno CODE začiatok,dĺžka
pokiaľ je záznam na páske, dlhší ako je zadaná dĺžka,
dostávame chybu. Inak porovnáva záznam s časťou pamäti
počítača od zadanej adresy.
VERIFY meno CODE začiatok
porovnáva záznam na páske s časťou pamäti a začína od
uvedenej adresy, dĺžka sa berie z hlavičky.
VERIFY meno CODE
porovnáva záznam na páske s časťou pamäti, adresa začiatku
a dĺžka sa berú z hlavičky
VERIFY meno SCREEN$ je to isté ako
VERIFY meno CODE 16384,6912
a bude iste chybné
3. Pole
VERIFY meno DATA písmeno () alebo
VERIFY meno DATA písmeno$ ()
kontrolujte pole na páske s poľom v pamäti.
Príkaz LOAD
-----------
1. Program a premenné
LOAD meno
ruší starý program a premenné, nahrá nový program a
premenné z kazety. Pokiaľ bol program uchovaný príkazom
SAVE meno LINE číslo
program sa automaticky odštartuje.
Chyba
4 Out of memory
sa objaví, keď nie je miesto pre nový program a premenné.
V tomto prípade starý program a premenné nie sú zrušené.
2. Časť pamäti
LOAD meno CODE začiatok,dĺžka
pokiaľ je dĺžka v hlavičke na páske viac než je
špecifikované, hlási sa chyba. Inak sa vykoná načítanie
záznamu do pamäti.
LOAD meno CODE začiatok
nahrá časť pamäti z pásky do počítača, začína sa ukladať
na začiatočnej adrese
LOAD meno CODE
nahrá časť pamäti z pásky do počítača podľa toho, ako bol
špecifikovaný v príkaz SAVE.
LOAD
meno SCREEN$
nahrá časť pamäti z pásky do video pamäti.
3. Pole
LOAD meno DATA písmeno () alebo
LOAD meno DATA písmeno$ ()
ruší akékoľvek pole nazvané písmenom alebo písmenom$ a
vytvára nové pole z pásky. Chyba
4 Out of memory
sa objaví, pokiaľ nie je miesto pre nové pole. Staré pole
potom nie je zrušené.
Príkaz MERGE
------------
1. Program a premenné
MERGE meno
spojuje program z pásky s programom v počítači, pripisuje
riadky programu alebo premenné do starého programu. Chyba
4 Out of memory
sa objaví, pokiaľ nie je dostatok miesta pre starý a nový
program spolu.
2. Časť pamäti - nie je možné použiť
3. Pole - nie je možné použiť