SORD M5 Creative Computer

 

     

 

SORD Japan logo



Popis počítače

Koncepce počítače SORD M5 je podobná jako u většiny domácích osobních osmibitových počítačů z osmdesátých let minulého století. Pro zadávání informací do počítače slouží výhradně klávesnice, myš ani jiné polohovací zařízení není v systému implementováno, vyjma křížových ovladačů (joypady, joysticky), které využívají hry.

Jako zobrazovací jednotka slouží standardní TV přijímač nebo videomonitor s CVBS vstupem (composite, CINCH). Zvukový výstup je monofonní (CINCH). K počítači je možné připojit tiskárnu se standardním rozhraním Centronics (avšak M5 má nestandardní konektor).

Jako datové úložiště M5 využívá běžný magnetofon, byť v některých případech M5 nabízí možnost využít i pružný disk, tedy disketu, konkrétně 3 palce. Ano 3 nikoli 3,5 palce. Počítač umí magnetofon do jisté míry i ovládat (konkrétně PAUSE/UNPAUSE). Dále je možné připojit křížové ovladače (joypady, joysticky) pro dva hráče.

Napájecí adaptér

Napájení počítače M5 je řešeno vnějším síťovým zdrojem, který převádí vstupní síťové napětí 220V~ až 240V~ (viz fotografie štítků) na +12V= , +5V= a -12V= (japonské modely pracují nepochybně s jiným vstupní napětím).

Zadní strana

Počítač M5 je na zadní straně vybaven konektory tohoto významu (na fotografii zleva): pro připojení napájecího zdroje, magnetofonu, tiskárny, dvou křížových ovladačů (joypady, joysticky), audio zesilovače, videomonitoru a jako poslední je konektor pro připojení k televiznímu přijímači. Na vrchní straně je slot pro moduly (kartridže).

Horní strana

V základní sestavě počítače byl M5 prodáván společně s modulem jazyka BASIC-I. Dále bylo možné dokoupit moduly s jazyky BASIC-G a BASIC-F, tabulkový procesor FALC, kreslící program Paint Designer, modul přídavné paměti 32KB s rozdvojkou EC-5 a 12 modulů s profesionálními hrami.

SORD M5 with cartridge BASIC-I

Existovala ještě celá řada dalších vnějších zařízení, která se ale v československé obchodní síti neobjevila. Například: kazetový magnetofon DR-5, termotiskárna PT-5, rozšiřující kartridž s napájecím zdrojem EB-5, jednotka pro 3" pružný disk FD-5, kartridže pro paralelní a sériový styk PI-5 a SI-5. Dokonce i plastový cestovní kufřík. Viz stránka letáky

Použité paměti

Počítač M5 využívá ke své činnosti obvyklé druhy pamětí, tedy typu ROM (Read Only Memory) a RAM (Random Access Memory). Použité technologie jsou jak DRAM (Dynamic RAM), tak i SRAM (Static RAM). Vedle toho má M5 ještě VRAM (Video RAM). Platí, že do paměti typu ROM je program uložen už při její výrobě, nelze jej přepsat a nezmizí ani při vypnutí napájení. U tohoto typu paměti dochází při činnosti počítače pouze ke čtení uložených informací. Paměť RAM je určena pro krátkodobé uchování dat během práce mikroprocesoru. Lze do ní tedy data jak ukládat, tak z ní data i číst. Při vypnutí napájení všechna data uložená v paměti RAM zmizí.

Po domácku opravovaná a pro CP/M upravená základní deska M5

V počítači jsou použity paměti ROM (konkrétně PROM), RAM (SRAM) VRAM (DRAM). V modulech BASIC-G a BASIC-F jsou paměti ROM (konkrétně EPROM) a RAM (SRAM). V modulu EM-5 32KB je RAM (DRAM). Jak jsou jednotlivé paměti rozmístěny v adresním prostoru mikroprocesoru je popsáno zde.

Provozování počítače

Před prvým zapnutím počítače věnuj pozornost a dbej níže uvedených zásad:

  • Před zapojením síťového zdroje do sestavy počítače musí být jeho vypínač v poloze OFF, tzn. vypnuto. Teprve potom je možné jej zasunout do počítače a posléze do sítě.
  • Při KAŽDÉ výměně kartridže musí být počítač vypnut. Jde o to, že elektronické obvody musí mít vždy na všech vývodech správné napětí, což při zasouvání do a vyjímání ze slotu nelze zajistit.

Při zapojování sestavy počítače postupuj následovně:

  1. zasuň do TV přijímače anténní kabel plnou koncovkou a veď kabel tak, aby dosáhl do míst, kde budeš mít položený počítač. Dbej na to, aby kabel nijak nepřekážel.
  2. umísti počítač tak, jak ti to bude nejlépe vyhovovat a zasuň do zdířky označené RF televizní kabel.
  3. do zdířky označené CASSETTE zasuň konektor šňůry, na jejímž konci jsou 3 konektory JACK, máš-li i ovladače, zasuň je do zdířek označených CONTROLLER a pokud chceš používat i zesilovač, připoj jej svou vlastní šňůrou ke zdířce SOUND.
  4. zkontroluj, zdali je vypínač napájecího síťového zdroje v poloze OFF a pak zasuň jeho kabel do zdířky označené POWER.
  5. nyní zasuň do počítače příslušný modul a jazykem BASIC nebo FALC. Pokud chceš používat i paměť EM-5, musíš odejmout odklopné víčko a zasunout nejprve modul a paměť do rozdvojky EC-5 a tu potom zasunout do počítače.
  6. teď je možné zapojit a zapnout síťový zdroj (poloha vypínače ON). Na počítači se rozsvítí červená kontrolka.
  7. Nalaď TV přijímač přibližně na 36. kanál a dolaď si obraz. Musí se objevit (příklad pro BASIC-I):
    Basic-I

    Ready
    [L]

Pozor! Občas se stane, že se vlivem používání konektoru RF "vyrobí" na přívodech modulačního obvodu studené spoje a počítač potom nevysílá TV signál nebo v signálu chybí zvuk. Proto je potřeba nechat studený spoj co nejdříve opravit.

Možné modifikace M5 oproti standardně prodávané sestavě

Změny v hardware, které realizovali fandové počítače.

  1. V sestavě počítače může chybět modul s jazykem BASIC-I. Je to dáno tím, že paměť ROM s jazykem lze zabudovat přímo do počítače, a proto je možné provozovat počítač bez zasunutého modulu, což by normálně nemělo nastat. Zasunutím jiného modulu s jazykem se BASIC-I automaticky odpojí. Pokud se tak nestane, nastala v počítači hardwarová závada.
  2. V modulech BASIC-G a BASIC-F nemusí být přítomna paměť 4KB SRAM. Standardně jsou při použití modulu EM-5 odpojeny a nevyužity, proto je lze z modulu vyletovat. Nevýhodou je, že bez použití EM-5 má uživatel k dispozici paměť jen do adresy &7FFF oproti standardu &8FFF (tzn. jen 4KB RAM na místo 8KB RAM).
  3. Počítač může být vybaven modulem 64 KBI, což je 64KB paměti RAM. Tato paměť plně nahrazuje EM-5 a lze ji provozovat v těchto režimech (pomocí mechanického přepínače):
    32KB RAM - stejně s EM-5
    48KB RAM - připojen je MONITOR ROM a BASIC-I (0000-3FFF ROM, od 4000 RAM)
    56KB RAM - připojen je jen MONITOR ROM (0000-1FFF ROM, od 2000 RAM)
    64KB RAM - není připojena žádná paměť ROM
    Modul se ovládá softwareově (příkazem OUT) a hardvareově (přepínačem) takto:
    OUT &6C,1 - odpojí ROM, jejíž velikost záleží na přepínačích
    OUT &6C,0 - připojí ROM
  4. Počítač může být vybaven modulem 64 KBF, 64 KRD nebo 64 KRX (platí přibližně totéž co pro 64 KBI)
  5. Počítač může být vybaven modulem 64 CPM (platí přibližně totéž co pro 64 KBI, navíc je přítomna ještě disketová jednotka)

Komunikace uživatele s počítačem

Uživatel vstupuje do styku s počítačem pomocí klávesnice. Obrazovkový editor mu umožňuje psát nebo opravovat program a provádět různé funkce na obou obrazovkách systému.

Klávesnice počítače M5

Klávesnice je až na několik specifických tlačítek a přemístěný mezerník totožná s klávesnicí psacího stroje. Po zapnutí počítače je stisknutí každého znakového tlačítka indikováno zvukově a současně se na obrazovce objeví příslušný znak na pozici kurzoru. Pípnutí je možné programově změnit nebo úplně zakázat. Přidržením některého znakového tlačítka se po určité prodlevě začne znak opakovaně tisknout se současnou zvukovou indikací. Tato funkce se nazývá AUTOREPEAT a i tu lze programově měnit.

Po zapnutí počítače je kurzor vyznačen blikajícím inverzním písmenem L a na obrazovku se píší malé znaky abecedy nebo číslice a další speciální znaky z ASCII tabulky. Tlačítka <SHIFT> v levém a pravém spodním rohu fungují jako zvednutí vozíku u psacího stroje pro psaní velkých písmen abecedy. Tlačítko <SHIFT> je nutno držet současně s tlačítkem znakovým. Tlačítko <FUNC> na levé straně klávesnice umožňuje změnit režim klávesnice a lze s jeho pomocí vypisovat příkazy, které jsou napsány na většině tlačítek. Stiskne-li se <FUNC> a jedno z tlačítek <1>, <2> nebo <3> mění se režim klávesnice buď na malá písmena (letters), velká písmena (capitals) nebo na grafické symboly (graphics). Kursor se zároveň mění na inverzní L, C nebo G. Ve všech režimech fungují i tlačítka <SHIFT>. Při psaní textu můžeme kursor posunovat na libovolnou pozici obrazovky pomocí šipek, které jsou dostupné přes tzv. CTRL funkci (Viz část Obrazovkový editor). Šipka se aktivuje při současném stisku klávesy <CTRL> a příslušného tlačítka.

Obvyklý dlouhý mezerník psacího stroje je zde zastoupen klávesou <SPACE> v pravé části klávesnice. Jako odesílací (exekuční neboli prováděcí) klávesa slouží tlačítko <RETURN> v pravé části klávesnice.

Celoobrazovkový editor počítače M5

Pohyb kursoru po obrazovce je možný všemi čtyřmi směry pomocí následujících CTRL funkcí (<CTRL>+<klávesa>). <klávesa>:

  1. : (šipka →) - vpravo
  2. ; (šipka ←) - vlevo
  3. @ (šipka ↑) - nahoru
  4. / (šipka ↓) - dolů
  5. ^ - nahoru
  6. ] - vlevo
  7. _ - dolů

Přemístění kurzoru provádí následující CTRL:

  1. B - kursor na začátek řádku
  2. I - tabelátor. Doplní mezery k nejbližší 8. pozici vpravo od kurzoru a na tuto pozici umístí i kurzor
  3. J - LF - kurzor na další řádek. Na konci obrazovky způsobí její odrolování
  4. K - kurzor na pozici HOME (tzn. 0,0 daného VIEW)
  5. N - posune kurzor na začátek další řádky. Do konce obrazovky provádí CR+LF. Na konci obrazovky provádí jen CR (nezpůsobí odrolování)
  6. W - provádí CR+LF, na konci obrazovky způsobí její odrolování

Rolování obrazovky provádí následující CTRL:

  1. C - rolování obrazovky dolů
  2. D - rolování obrazovky vlevo
  3. E - rolování obrazovky nahoru
  4. F - rolování obrazovky vpravo

Ostatní funkce provádí následující CTRL:

  1. G - pípnutí (BEL)
  2. H - smazání znaku na kursoru a posunutí textu o jeden znak zpět. Je-li na kurzoru znak CHR(0) smaže se znak před kursorem a kursor se posune o jeden znak vlevo. (Ekvivalentní DEL)
  3. L - smazání obrazovky (lze použít pouze v příkazu PRINT, mimo běh programu je ignorováno - nic se neprovede)
  4. M - provede totéž, co stisknutí klávesy <RETURN>
  5. O - zrušení režimu INSERT
  6. P - nastavení režimu INSERT
  7. Q - nastavení režimu MULTICOLOR
  8. R - nastavení režimu GII
  9. S - nastavení režimu GI
  10. T - nastavení režimu TEXT
  11. U - umístí pohled i kursor na obrazovku 0
  12. V - přepne pohled i kursor na opačnou obrazovku
  13. X - maže všechny znaky vpravo od kursoru dokud nenarazí na CHR(0). Pokud na CHR(0) nenarazí do konce obrazovky, začne mazat znaky od pozice 0,0 dokud nenarazí na CHR(0)
  14. Y - přepne pohled na opačnou obrazovku
  15. Z - umístí kursor na opačnou obrazovku
  16. \ - DELETE (viz CTRL+H)

Ostatní klávesy ignorují stisk CTRL:

  1. A - nic se netiskne
  2. [- nic se netiskne
  3. - - tiskne se minus
  4. , - tiskne se čárka
  5. . - tiskne se tečka
  6. 0 až 9 - tiskne se číslice
  7. <RETURN> - provádí se <RETURN>
  8. <SPACE> - tiskne se mezera
  9. <RESET> - zastaví běh programu, mimo běh programu je stisk této kombinace kláves ignorován

Režimy práce počítače

Je-li do počítače zasunutý modul s jazykem BASIC, může počítač pracovat v režimu okamžitého výpočtu nebo v režimu programování. Jazyky BASIC umí pracovat s dekadickou (desítkovou) a hexadecimální (šestnáctkovou) soustavou. Dekadická čísla se zadávají normálně jako na běžném kalkulátoru. Před čísla hexadecimální soustavy se píše znak & (čili CHR(38)). Zadávají se maximálně čtyřznaková šestnáctková čísla.

Režim okamžitého výpočtu

Obrazovkový editor popsaný v předchozí části pracuje s textem v rozsahu jedné obrazovky. Text na obrazovce je zároveň uložen v paměti VRAM (viz rozložení paměti VRAM - obsah obrazovky 0). Napíšeme-li na obrazovku libovolný text, který počítač není schopen interpretovat jako příkaz nebo příkazy a stiskneme-li prováděcí klávesu <RETURN>, objeví se na následující řádce chybové hlášení jazyka BASIC "Err 2 in 0" a na další řádce "Ready". Klávesa <RETURN> totiž přerušuje činnost obrazovkového editorů a způsobuje přesun textu z obrazovky (tedy z paměti VRAM) do paměti RAM, odkud ji počítač začne zpracovávat. V případě odeslání textu nesrozumitelného pro počítač, se objeví chybové hlášení. Texty, pokud chceme, aby je uměl počítač zpracovat, tedy mohou nabývat pouze tvaru příkazu v režimu okamžitého výpočtu nebo ve tvaru programových řádek.

Příkazy v režimu okamžitého výpočtu jsou krátké povely uživatele pro počítač, které se po napsání a po odeslání (klávesou <RETURN>) okamžitě provedou. Názorným příkladem je příkaz PRINT. Za mezerou za tímto příkazem může být libovolný aritmetický výraz, jehož výsledek se objeví po odeslání na následující řádce. Jako příklad můžeme napsat:
PRINT ((2+3)*(8+2))/10
Po odeslání bude na obrazovce:

PRINT ((2+3)*(8+2))/10
5
Ready
[L]

(Pozn.: [L] je označen kursor. Fyzicky by se měly stisknout klávesy v tomto pořadí: <FUNC>+<P>,<SPACE>,<SHIFT>+<8>+<8>,<2>,<SHIFT>+<;>,<3>,<SHIFT>+<9>,<SHIFT>+<:>,
<SHIFT>+<8>,<8>,<SHIFT>+<;>,<2>,<SHIFT>+<9>+<9>,</>,<1>,<0>,<RETURN>)

Čísla ve výrazu (tzn. 2, 3, 8 a 2) se nazývají číselné konstanty.

V režimu okamžitého výpočtu můžeme za sebou napsat několik příkazů, které ale musí být mezi sebou odděleny dvojtečkami. Při dopsání na konec obrazovky samočinně odroluje (pokud to nebylo programově zakázáno). Pro smazání obrazovky je určen příkaz CLS.

Číselné a řetězcové proměnné

Každé celé číslo, se kterým počítač pracuje, je uloženo ve dvou paměťových buňkách (jedna buňka se nazývá byte), kde může nabývat libovolných hodnot v rozsahu -32 768+32 767. Takováto čísla, která mohou měnit svou hodnotu, se nazývají číselné proměnné. Proto, aby počítač věděl, kterou proměnnou má zpracovávat, je nutné, aby každá proměnná měla své jméno. Jméno proměnné musí vždy začínat abecedním znakem, ostatní znaky názvu mohou být i číslice a další speciální znaky. Délka jména proměnné je omezena na 32 znaků. Jazyk BASIC umí zpracovávat i text (řetězec znaků) a ten lze ukládat v řetězcových proměnných. Číselné proměnné se ještě dělí na celočíselné a reálné. V celočíselné proměnné lze uložit pouze celé číslo (tzn. bez části za desetinnou tečkou) z výše uvedeného rozsahu. V reálné proměnné lze uložit číslo i s částí za desetinnou tečkou. S reálnými čísly však umí pracovat jen BASIC-F. Poslední znak jména proměnné nemůže být vždy libovolný, protože určuje, o jaký typ proměnné se jedná. Typ se rozlišuje podle následující tabulky:

  1. $ - řetězcová proměnná jazyku BASIC-I, BASIC-G a BASIC-F
  2. # - reálná proměnná jazyka BASIC-F
  3. % - celočíselná proměnná jazyka BASIC-F

V jazycích BASIC-I a BASIC-G může být poslední znak jména celočíselné proměnné jakýkoli, avšak musí být různý od znaku $.

S názvy proměnných se v příkazech pracuje stejně, jako se pracuje s číselnými konstantami. Jako názornou ukázku si můžeme napsat následující řádky. Každý řádek musí být odeslán (aby jej počítač mohl zpracovat), to znamená, že na konci musí být stisknuta klávesa <RETURN>. Od této chvíle považujme v textu odeslání za implicitní úkon a nebudeme na něj tedy pokaždé znovu upozorňovat.

DRAHA=200
CAS=4
RYCHLOST=DRAHA/CAS
PRINT RYCHLOST

Příkaz <jméno proměnné>=<nějaký výraz nebo konstanta> nazýváme přirazení, protože se vlastně přiřazuje jménu proměnné výsledek nějakého výrazu (zde např. proměnné RYCHLOST výsledek dělení DRAHA/CAS) nebo hodnota nějaké konstanty (zde např. proměnné DRAHA konstanta 200). Příkaz PRINT v tomto příkladu potom vytiskl obsah proměnné RYCHLOST. Zrovna tak může vytisknout hodnotu výrazu. Např.:
PRINT DRAHA/CAS

Práce s řetězcovými proměnnými je obdobná práci s číselnými proměnnými. Řetězcovou konstantou se rozumí libovolná kombinace znaků uzavřená v uvozovkách. Uvozovky slouží jako oddělovače textu a proto v příkazu přiřazení nemohou být použity v textu přímo. Toto omezení je však jen formální a lze jej snadno obejít. Vyzkoušejme si teď práci s řetězcovými proměnnými:

SLOVO1$="VYSLEDEK"
SLOVO2$="NASOBENI":MEZERA$=" "
VYRAZ$="2*3=":VYSLEDEK=2*3
PRINT SLOVO1$;MEZERA$;SLOVO2$;MEZERA$;VYRAZ$;VYSLEDEK

Všechny informace a data, s nimiž se v jazycích BASIC pracuje, jsou ve formě jednoduchých nebo indexovaných číselných a řetězcových proměnných. Jednoduché číselné a řetězcové proměnné jsme právě stručně probrali. Indexované proměnné se nazývají též pole.

Proměnné typu pole

Proměnná 'pole' kromě svého názvu potřebuje ještě k svému jednoznačnému určení i pořadové číslo. Protože číselná pole budeme potřebovat různě velká, je potřeba jim vyhradit v paměti počítače odpovídající místo. Jestliže chceme používat například proměnnou JMENO$, která bude obsahovat 11 položek (0 až 10), musíme napsat před prvním použitím této proměnné příkaz DIM ve tvaru:
DIM JMENO$(10)
Na jednotlivé prvky pole se pak lze odkazovat přímo indexem. Např.:
JMENO$(0)="JAN"
JMENO$(1)="PAVEL"
JMENO$(2)="FRANTISEK"
JMENO$(3)="MARTIN"
JMENO$(10)=JMENO$(3)+" a "+JMENO$(2)
PRINT JMENO$(1)

Když teď vyjedeš kursorem na řádek PRINT, změníš 1 na 2 a odešleš, vytiskne se ti obsah proměnné JMENO$(2). Z tohoto úkonu také vyplývá, že počítač zpracovává text, který je zobrazený na obrazovce od začátku řádky do jejího konce, nehledě na pozici, na které se nachází na této řádce kursor a nehledě na to, jakým způsobem byla řádka na obrazovce vytvořena.

Režim programování

Do režimu programování se počítač přepne vždy sám, je-li odeslán příkazový řádek začínající číslicí. Příkazový řádek se po odeslání nevykoná, ale uloží do paměti (pokud je to možné). V této fázi počítač rozliší chyby typu příliš dlouhá vstupní řádka a neukončený řetězec znaků.

Základy tvorby programů v jazyce BASIC

Program v jazyce BASIC má tvar očíslovaných programových řádků, přičemž čísla řádků mohou nabývat velikostí 1 až 32767. Čísla řádků může uživatel vypisovat ručně, nebo mohou být vypisovány automaticky po každém odeslání zadáním příkazu AUTO (s příslušnými parametry) před začátkem programování (podrobnosti k jednotlivým zde uvedeným příkazům viz příručky jazyků BASIC-I, BASIC-G a BASIC-F). Pokud chceme zařadit do programu nový řádek, stačí jej napsat a odeslat. Počítač už si jej sám zařadí na správné místo, které je dáno právě číslem řádku. Pochopitelně, pokud chceme zařadit řádek mezi dva řádky, které jdou po sobě s krokem 1, např. mezi řádky 10 a 11, tak to nejde, protože řádek s číslem 10.5 zadat nelze. Proto se při psaní programu doporučuje používat krok 10. Chceme-li opravit nebo doplnit některý řádek programu, musíme si jej, pokud není na obrazovce, zobrazit příkazem LIST s parametry (nebo i bez nich). Např. chci-li opravit řádek 20, odešlu příkaz:
LIST 20,20
který mi zobrazí řádek s číslem 20. Teď je možné řádek podle potřeby opravit a doplnit. Poté lze řádek odeslat. Chceme-li smazat jeden programový řádek, stačí napsat jeho číslo a odeslat. Chceme-li smazat více programových řádků, použijeme příkaz DEL s parametry. Pro smazání celého programu slouží příkaz NEW. Je-li program hotový, nebo chceme-li vyzkoušet jeho část, lze jej spustit příkazem RUN. Uvede-li se za příkazem RUN číslo řádku, program se spustí od tohoto řádku. Běh programu lze zastavit programově, tzn. v programu příkazem END nebo STOP, nebo z klávesnice stisknutím následujících kombinací:

  1. <SHIFT>+<RESET> - odpovídá příkazu END
  2. <CTRL>+<RESET> - odpovídá příkazu STOP

Doběhne-li program na svůj fyzický konec (tzn. nenásleduje již žádný programový řádek) zakončí se jeho běh jako při provedení příkazu STOP, s tím, že se nevypisuje žádná hláška.

Příkaz RUN, jak již bylo uvedeno, spustí program. Avšak před jeho vlastním během smaže obsah všech proměnných, které byly použity před zadáním příkazu RUN (například jsme něco počítali v režimu přímého výpočtů, nebo jsme již jednou měli program spuštěný). Pokud potřebujeme mít obsah proměnných zachován, nelze tedy program spustit příkazem RUN, ale příkazem GOTO s uvedením programové řádky, od které má program běžet. Chceme-li mít rovněž obsah proměnných zachován po skončení programu, musíme jej ukončit příkazem STOP, nebo jeho ekvivalentem (<CTRL>+<RESET>, nebo neuvedením END).

Chceme-li, aby program používal CTRL kódy (například v příkazu PRINT "UTS", kde U, T a S jsou řídící kódy CTRL+U, CTRL+T a CTRL+S), lze je zobrazit tak, že se současně stiskne klávesa <CTRL>, <SHIFT> a příslušný znak. Řídící znak se pak vytiskne jako inverzní písmeno. Jsou-li v uvedeném příkladu za PRINT inverzní znaky U,T a S, potom tento příkaz tyto znaky nevytiskne, ale provede, což v tomto konkrétním příkladu znamená, že přepne pohled a umístí kursor na obrazovku 0, nastaví na této obrazovce režim TEXT a v zápětí režim GI (čímž se inicializuje generátor tvarů znaků, zruší případný VIEW a smaže se obrazovka).

Práce s magnetofonem

Připojení magnetofonu

Standardně se do sestavy počítače připojuje kazetový magnetofon. Nejlépe vyhovuje monofonní kazetový magnetofon s nahráváním a dálkovým ovládáním (Pause/Play). Kabel magnetofonu je zakončen třemi konektory JACK, jejichž funkce jsou následující:

barva konektorů funkce konektorů zdířka na magnetofonu
bílý vstup dat do počítače EARPHONE nebo SPEAKER
červený vstup dat do magnetofonu MICROPHONE
černý dálkové ovládání motorku REMOTE CONTROL

Pokud uživatel vyžaduje pouze vstup dat do počítače, vystačí si i s obyčejným přehrávačem, do kterého zasune bílý jack.

Kabel pro magnetofon

Doplnění k příkazům, které operují s magnetofonem

Následující příkazy spínají relátko dálkového ovládání magnetofonu a vyžadují vstup dat z magnetofonu nebo na magnetofon data vysílají:
OLD, CHAIN, TAPE, SAVE, VSAVE, VERIFY, SKIP a varianty LIST "<file name>"

V případě, že je v jazyce BASIC-F implicitní zařízení jiné, než magnetofon (například disketa nebo ramdisk), musí se uvádět jméno zařízení magnetofon, což je CMT: - tedy například:
OLD "CMT:<file name>"

Rozlišení typů záznamů

Jestliže počítač nahrává program nebo data z magnetofonu do modulu Basic-G nebo Basic-F jiným příkazem nežli TAPE, vypisuje:
Find "<file name>.<ID>"
a za každých načtených 256 bytů vytiskne tečku. Pokud daný program nebo data přeskakuje, vypisuje:
Skip "<file name>.<ID>"

<ID> vyjadřuje typ záznamu:

ID typ souboru
BI program v BASIC-I
BG program v BASIC-G
BF program v BASIC-F
FC data nebo program ve FALC
CM data nebo program ve strojovém kódu (CPU memory)
DT záznam dat - program nebo proměnné v BASIC-F
LS záznam dat - program v BASIC-G (Listing)
SC záznam dat obrazovky (Screen)
VM záznam dat (Video memory)

Provádění příkazu OLD v modulu BASIC-I

Jazyk informuje o nahrávání nebo přeskakování programů nebo dat následujícími způsoby:

zobrazeno význam
<file name>* Soubor je z kazety načítán do paměti RAM nebo VRAM od adresy, která je uvedena v hlavičce souboru. Poznámka: Načítají se i programy .BG a .BF avšak za normálních okolností lze zobrazovat, spouštět a editovat jen program v .BI
<file name> Soubor je přeskočen

Provádění příkazu TAPE

Příkaz TAPE informuje o nahrávání nebo přeskakování programu nebo dat následujícími způsoby:

zobrazeno význam
*<file name> Soubor je z kazety načítán do paměti RAM od adresy, která je uvedena v hlavičce souboru. Spustitelný program je po načtení spuštěn od adresy, která je uvedena v hlavičce souboru. Jinak se nahrává další program nebo data. Poznámka: Načítají se i programy .BI, .BG a .BF avšak po načtení se nespustí a načítá se další soubor.
<file name> Soubor .VM nebo .SC je přeskočen

Příkaz TAPE nelze přerušit stiskem <RESET> ani kombinacemi <SHIFT>+<RESET> nebo <CTRL>+<RESET>. Stiskem některé této kombinace se pouze přeruší načítání (pokud se načítá) a příkaz čeká na další program nebo data. Příkaz lze regulérně zakončit pouze nahráním spustitelného programu .CM (nebo resetem či vypnutím počítače).

Poznámka: příkazy OLD v jazyce BASIC-I a příkaz TAPE ignorují <file name> typu .LS a .DT.

Otazníková konvence

Použije-li se ve jménu souboru - programu nebo dat (tzn. ve <file name>) otazník (znak CHR(63)), počítač při provádění příkazu OLD, CHAIN, SKIP a VERIFY porovnává jména souborů na pásce s uvedeným jménem jen k otazníku a zbývající znaky ignoruje. Například příkaz OLD "MO?" nahraje první soubor začínající znaky MO, například MOTORKA (pokud je soubor typu, který lze do daného modulu nahrát).

Chybové hlášení

Chybové hlášení Err 18 in xxx, kde xxx je číslo řádky, se vypisuje, je-li z magnetofonu načten chybný blok dat. Příčinou Erroru 18 však nemusí být vždy jen chyba na magnetofonové pásce, ale třeba i to, když při provádění příkazu VERIFY nesouhlasí data na pásce s daty uloženými v paměti, tzn. načítá se jiný či změněný soubor, nebo když při OLD bylo stisknuto tlačítko <RESET>. Příkaz TAPE žádnou hlásku při načtení chybných dat nevypisuje, ale pokračuje dál, to znamená, že chybný soubor již dál nenačítá a čeká na další soubor.

7. Obecné vlastnosti jazyků BI, BG, BF ******************************************** Proměnné: celočíselné (např.: A, B, C, POCET, ...) z rozsahu: -32768 - +32767; 0 - &FFFF. Zabírají 2 byte řetězcové (např.: A$, MESIC$, JMENO$, ...) o obsahu 0-18 znaků. Zabírají 19 byte Proměnné typu pole: celočíselné i řetězcové. Maximální počet dimenzí je 256, rozsah položky: 0 - 65535 Maximální délka jména proměnné je 32 znaků. Řádkování programu: 1 - 32767 (lze používat navěstí) Zobrazovací režimy: TEXT - 40 znaků 24 řádek znak 5*8 GI - 32 znaků 24 řádek znak 8*8 GII - 32 znaků 24 řádek znak 8*8 MULTICOLOR - blokové 64*48 bloků o rozměru 4*4 Jemná grafika: režim obrazovky GII souřadnice (lze -32767 až +32767): X: 0 - 255, Y: 0 - 191 16 barev, 8 bodů na 1 lince znaku dvěma barvami Sprite: 32 spritů, zobrazit lze nejvýš 4 sprity na jedné lince Nelze používat v režimu TEXT Zvuky: tónový generátor - 3 kanály - 8 oktáv šumový generátor - 1 kanál Periferie: zobrazovač - TV v normě PAL, nebo VIDEOMONITOR tiskárna - paralelní ve standardu CENTRONICS magnetofon - přenosová rychlost 2030 Bd (lze měnit) joystick - 2 kusy (v páru páčkové nebo s kolečkem) 7.1 Aritmetické operace ============================ operace operátor příklad Platí AOS při provádění operací: ------------------------------------- -------------------------------- součet - + - X+Y závorky rozdíl - - - X-Y funkce součin - * - X*Y znaménko podíl - / - X/Y násobení mocnina - ^ - X^3 dělení zbytek po dělení - MOD - X MOD Y MOD součet a rozdíl relační operace logické operace 7.2 Logické operace 7.3 Relační operace ======================== ======================== logický součin - AND rovnost - = logický součet - OR nerovnost - <> logický exklusivní součet - XOR menší nez - < logická negace - NOT větší nez - > menší nebo roven - <=, =< větší nebo roven - >=, => 8. Doplňující informace k práci s grafickými příkazy ********************************************************** 8.1 Příkazy operující se souřadnicemi X,Y ============================================== X,Y - je absolutně zadaná pozice. POZOR! Pokud je souřadnice bodu 0,0 v levém horním rohu obrazovky, potom je vždy v levém horním rohu AKTIVNÍ části obrazovky. To znamená, že se se změnou VIEW posune i bod 0,0, přičemž útvary umístěné na X,Y starého VIEW se již nepřemístí. STEP X,Y - je relativně zadaná pozice přírůstkem v osách vůči pozici grafického kursoru (v BASIC-G a v BASIC-F). 8.2 Pomůcka pro lepší spojení jemné grafiky a spritů ========================================================= @ číslo spritu - dosadí za X,Y středovou souřadnici spritu # číslo spritu - dosadí za X,Y rohovou souřadnici spritu Příklady: DRAW 0,0,STEP 22,56 GMOVE @0:CIRCLE 10 (jen v Basic-G) LOC 1 TO 100,100 LOC #1 TO 100,100 LOC @1 TO 100,100 9. Používání desítkové a šestnáctkové soustavy **************************************************** Všechna čísla začínající znakem & počítač zpracovává jako čísla o základě 16, tedy v šestnáctkové soustavě. Šestnáctková soustava používá k vyjádření čísla znaky 0 až 9 a znaky A až F. Konverze mezi desítkovou (DEC) a šestnáctkovou (HEX) soustavou je zachycena následující tabulkou: dec: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... hex: 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 ... Normálně tedy platí, že 0=&0000 a 65535=&FFFF, protože ale počítač používá i záporná celá čísla, je střed uměle posunut a platí tedy: &8000 = -32 768 &FFFF = -1 &0000 = 0 &0001 = 1 &7FFF = 32 767 Příklad: FOR I=0 TO 20:PRINT "Dekadicky:";I;" Hexadecimálně: &";HEX$(I):NEXT I 9.1 Převod čísel mezi HEX a DEC ==================================== Potřebujeme-li převést číslo z hexadecimální soustavy na číslo o základě 10 (tzn. do dekadické soustavy), můžeme použít přímo příkaz PRINT. Například "PRINT &AF". Potřebujeme-li převést číslo vyjádřené dekadicky na číslo o základě 16, použijeme funkci HEX$. Například "PRINT HEX$(25328))". Konstanty lze pochopitelně libovolně nahrazovat výrazy. 10. Práce s byty ********************* 10.1 Adresování jednoho a dvou bytů ======================================= Rozložení bytu v paměti RAM má následující strukturu (příklad): adresa - 1 byte - 2 byte &7300 - 00 - 0100 &7301 - 01 - 0201 &7302 - 02 - 0302 &7303 - 03 - 0403 &7304 - 04 - xx04 - xx - ... je tedy zřejmé, že dva byte se nečtou a neukládají za sebou v pořadí od nejvýznamějšího po nejméně významý, ale používá se endianita "little-endian", kdy je jako první v paměti uložen naopak byte s nejnižším významem podle vztahu (příklad čtení dvoubajtového slova naráz a čtení po jednotlivých bajtech): PEEKW(X)=PEEK(X)+256*PEEK(X+1) 10.2 Práce s binární soustavou ================================== Práce s jednotlivými bity a jeden bytě v binární formě vypadají následovně: bít: 76543210 obsah: 00000000 - hodnota čísla nula obsah: 00000001 - hodnota čísla jedna obsah: 00000010 - hodnota čísla dva obsah: 00000011 - hodnota čísla tři atd... setovani jednoho bitů: bít: 76543210 - pozice (KTERY) obsah: 011X0010 - původní hodnota (OLD) obsah: 01110010 - nová hodnota (NEW) NEW=OLD oř (2^KTERY) resetovani jednoho bitů: bít: 76543210 - pozice (KTERY) obsah: 011X0010 - původní hodnota (OLD) obsah: 01100010 - nová hodnota (NEW) NEW=OLD and (255-2^KTERY) negování bytu: bít: 76543210 obsah: 01100010 - původní hodnota (OLD) obsah: 10011101 - nová hodnota (NEW) NEW=not OLD testování jednoho bitů: bít: 76543210 - pozice (KTERY) obsah: 01110010 - původní hodnota (OLD) obsah: -----?-- - zjištěna hodnota (ASK) ASK=(OLD and (2^KTERY))/2^KTERY negování jednoho bitu: bit: 76543210 - pozice (KTERY) obsah: 011X0010 - původní hodnota (OLD) _ obsah: 011X0010 - nová hodnota (NEW) NEW=OLD xor (2^KTERY) Příklad jednoduchého programu pro převod čísla do dvojkové soustavy: 10 CLS:REM SMAZANI OBRAZOVKY 20 POKE &701A,PEEK(&701A)AND(255-2^7):REM VYPNUTI ZVUKU 30 FOR I=0 TO 1000 40 PRINT "K";I,:REM INVERZNI K 50 A=INP(55):REM ZADANI CISLA - CTENI JOYSTICKU 60 GOSUB $BIN 70 A$="":NEXT 80 POKE &701A,145 90 END 100$BIN 110 FOR J=7 TO 0 STEP -1 120 BIT=(A AND (2^J))/2^J 130 A$=A$+NUM$(BIT) 140 NEXT 150 PRINT A,A$; 160 RETURN 11. Pár slov k videoprocesoru ********************************** 11.1 Paměť VRAM =================== Videoprocesor (VDP) má 16kB své vlastní RAM (označované jako VRAM), kterou lze adresovat &0000 až &3FFF. Čtení a zápis se z basiku uskutečňuje příkazy VPEEK a VPOKE. Paměť je organizovaná následovně: a) generátor tvarů znaků b) generátor předloh pro sprity c) vlastní obrazovka přičemž generátory obsahují 8 byte informace o každém z 256 znaků. Generátor zabírá tedy 8*256 byte tj. &0800 - 2kB VRAM. Binárně lze potom každou jednotlivou osmici zobrazit přímo jako tvar znaku: 1. byte - &3C - 00111100 2. byte - &42 - 01000010 3. byte - &42 - 01000010 4. byte - &42 - 01000010 5. byte - &7E - 01111110 6. byte - &42 - 01000010 7. byte - &42 - 01000010 8. byte - &00 - 00000000 Obrazovka zabírá 32*24 t.j &0300 byte paměti, přičemž jeden její byte označuje přímo ASCII hodnotu znaku, který se na obrazovce nalézá. Tvar znaku je brán z generátorů tvarů znaků, z adresy odpovídající danému znaku. Je-li na obrazovce znak A jehož kód je 65, začíná jeho tvar na adrese o 8*65 byte větší než je začátek generátoru. Tvar znaku, který je na obrazovce, se mění s každou změnou 8mi bajtů začínajících na této adrese. Příkaz "PRINT CHR$(I)", kde I je číslo z rozsahu 0 až 255, vytiskne na obrazovku znak odpovídající znaku I v ASCII tabulce. Pozor! Prvních 32 znaků, (tj. 0 až 31) se netiskne, ale provádí, to znamená, že příkaz provede totéž, jako když se stiskne <CTRL> + <klávesa> (viz kapitola Obrazovkový editor). V podstatě to znamená, že znaky ASCII 32 až 255 se tisknou tak, že se do obrazovky "vpoukne" jejich kód, zatím co znaky 0 až 31 příkaz PRINT netiskne, ale volá rutiny v MONITORu ROM, které dané CTRL kódy provádějí. VDP disponuje 32 sprity s větší prioritou než má zobrazování znaků (to znamená, že sprity překrývají znay/grafiku na obrazovce). Sprity jsou speciální animovatelné objekty. Jsou určeny tvarem, barvou, pozicí a všechny jednotnou velikostí. Velikosti spritu jsou zde možné dvě a lze je případně dvakrát zvětšit. Základní velikost je 8*8 bodů, druhá je 16*16 bodů. Sprity se definují podobně jako znaky, do zvláštního spritovského generátorů předloh. Jednomu spritu lze určit jednu ze 16ti barev. Pozice se určují v rastru 256*192 bodů. Údaje o pozici, barvě a číslu předlohy jsou uloženy v tabulce vlastností spritů. Formát položek je následující (BIT): N 7 6 5 4 3 2 1 0 ------------------------------------- | 0 | Y-ová pozice | | 1 | X-ová pozice | | 2 | kód předlohy | | 3 |ECB| 0 | 0 | 0 | barva | ------------------------------------- ECB bit nemá význam pokud je nulový. Nenulový ECB znamená, že sprite se bude zobrazovat o 32 bodů vlevo, než má udáno v pozici X,Y. Toto slouží ke schovaní spritu za levý okraj obrazovky. Pro zobrazování spritů ale platí omezení, že na jedné TV řádce nelze zobrzit více jak 4 sprity. Pokud jich má více stejnou souřadnici Y, není nejvzdálenější (kódově) sprite zobrazen (případně i část z něj) a informace o tomto spritu je udána ve status registru. Pozice X a Y jsou absolutní souřadnice obrazovky. Při použití příkazu LOC X TO 0,0 je na Y pozici -1. 11.2 Nevyžité bloky VRAM ============================= |---------------------------+-------------+-------------| | nevyužito | obrazovka 0 | obrazovka 1 | |---------------------------+-------------+-------------| | 0000 - 2800 = 10240 bytes | TEXT | TEXT | | 0000 - 2000 = 8192 bytes | TEXT, GI | TEXT, GI | | 3BA0 - 3BFF = 96 bytes | GI | -- | | 3BC0 - 3BFF = 64 bytes | TEXT | -- | | 3FA0 - 3FFF = 96 bytes | -- | GI | | 3FC0 - 3FFF = 64 bytes | -- | TEXT | | 3B80 - 3BFF = 128 bytes | GII | -- | | 3F80 - 3FFF = 128 bytes | -- | GII | ----------------------------+-------------+-------------| Na adresách &0000 až &1FFF je v BG dalších 8 obrazovek. 12. Organizace paměti ROM a RAM ************************************ Paměť lze adresovat dvoubytovou adresou v rozsahu &0000 až &FFFF. V oblasti adres &0000 až &1FFF (8kB) se nachází základní programové vybavení počítače, tj. MONITOR ROM. Od adresy &2000 do adresy &6FFF je vyhrazený prostor pro zásuvné moduly. Při zasunutém modulu rozšiřující RAM (EM-5) se od adresy &7000 do adresy &FFFF se nachází paměť RAM. Některé místa v paměti RAM nemůže uživatel využít pro své potřeby, protože je využívá systém. Jsou to tato místa: &7000 - &72FF - zde se nacházejí systémové proměnné (viz příručka SYSVAR) Další prostor je vyhrazen pro potřeby jazyků basic: &7300 - &7382 - BASIC-I &7300 - &7459 - BASIC-G &7300 - &77F1 - BASIC-F ... &FF00 - &FFFF - zásobník návratových adres procesoru. Poznámka: &FF00 je přibližná hodnota, zásobník se nestále mění. ------------------------------------------------------------------------------ Podle různých materiálů a na základě vlastních zku- šeností sestavil a napsal LZR Soft. V Kladně 1988. Vydání třetí,počet výtisků dle potřeby. Vytištěno na tiskárně LA120 firmy DEC. ------------------------------------------------------------------------------

Původní verze příručky

Původní podoba příručky: SORDM5.SM5 (41KB, plain text including escape sequences for the LA120 DECWriter III) od LZR Soft.