Obsluha disku na počítači Thomson MO5

Existují věci, které nepotkáte třeba ani jedenkrát za život. Letět do vesmíru, provádět neurochirurgický zákrok, stanout na nejvyšší bedně na olympijských hrách, případně připojit disketovou jednotku k Thomsonu MO5.

Naprosté většině populace by to mohlo být úplně jedno. O existenci počítačů značky Thomson u nás ví snad jen ten, kdo je viděl na Foreveru. A i tam jsou pro mnoho lidí jen divnou francouzskou platformou, na které se nějací nadšení amatéři snaží, a to ne vždy úplně úspěšně, o demotvorbu napodobující styl výtvorů z Commodore, Atari nebo ZX Spectra. A fakt, že většina z těch několika málo existujících titulů opravdu připomíná spíš demotvorbu na Ondrovi nebo PMD-85, tomu moc nepomáhá. Tím menší pozornost na sebe strhává Thomson MO5, který je z celé té skupiny nejjednodušší, tedy i nejomezenější a nejlimitovanější (já vím, oboje znamená totéž), ale i nejroztomilejší.

Jako standardní záznamové zařízení se samozřejmě u počítače z roku 1984, který má být francouzskou obdobou ZX Spectra, tedy co nejlevnějším strojem do domácností a do škol, používal kazetový magnetofon. Firemní datakordér se připojuje jednoduše, obsluhuje snadno a čte vcelku spolehlivě.
Stejně většina software pro MO5 vyšla na kazetách, když se podíváte na weby shromažďující software pro MO5, zjistíte, že jich nebylo úplně málo (a mezi tehdy běžnými standardními kravinami, co nehezky vypadají a nedobře se hrají, najdete i výtvory, které uchvátí kvalitním zpracováním, zdařilou grafikou, neotřelým nápadem a lákavou hratelností).

http://dcmoto.free.fr/programmes/_html/support_mo_k7.html

(Nezapomeňte, že kazetové soubory pro MO řadu zahrnují i tituly pro MO6 a jeho bratříčka, MO5NR, který, navzdory názvu, je ve skutečnosti MO6, tedy MO5E s videočipem z TO8, v krabici od MO5E, což byla MO5 se zabudovaným interface se zvukovým rozšířením a připojením joysticků).

Když to srovnáte s tím, co je k dispozici pro MO na disketě, je nabídka mnohem, mnohem užší (a navíc je zde titulů pro MO6, nespustitelných na běžném MO5, v podstatě převaha).

http://dcmoto.free.fr/programmes/_html/support_mo_fd.html

Disketová jednotka a řadič jsou z těchto důvodů velmi vzácné. Na eBayi takovou sestavu můžete najít za “příznivou cenu“. Není tedy lehké se k ní dostat.

Ať už se k vám ale Thomson disketovka dostane jakkoli, jedno zjistíte brzy: Po připojení k počítači a jeho zapnutí disketovka blikne, hrábne, a pak počítač naběhne jako obvykle, jako by tam nebyla. Ona je totiž potřeba bootovací disketa.

Bootovací diskety se dají naštěstí najít na webu, respektive jejich image. Upozorňuji, že se liší Disk Basic pro MO a DOS pro TO řadu, dále se liší Disk Basic v rámci jedné řady pro řadič s mechanikami 5,25″ a 3,5”. Takže si vyberte z těch čtyř ten svůj správný.

Dále, pro Disk Basic není k dispozici manuál, a to ani na této stránce: http://dcmoto.free.fr/documentation/thomson.html
Přitom člověk potřebuje minimálně několik věcí:

  • vypsat si obsah diskety
  • zformátovat si disketu
  • vytvořit si kopii systémové diskety, případně se naučit kopírovat i jiné věci z diskety na disketu

Protože Disk Basic nepřidává jenom povely pro práci s disketovou jednotkou, ale i další, jako kreslení čar (s využitím grafického subjazyka DRAW podobně jako na MSX), kružnic a plnění ploch, rozšířenou práci s textovými řetězci, vyhledávání nebo přečíslování Basicu, ukládání a načítání výřezu obrazovky do proměnné (jakési sprity), a je toho dohromady opravdu hodně, zabralo by to spoustu místa, času, a nikoho to ve skutečnosti nezajímá, nebudu se věnovat všemu, ale jen příkazům diskovým.

Tedy, disketovka, ke které jsem se dostal, je 5,25″ (stejná jako na eBayi), na disketách k ní přiložených byl naštěstí Disk Basic jak pro TO, tak pro MO řadu.
Děkuji tímto předchozímu majiteli (který ji měl zřejmě u TO7), že bootovací disketu pro MO nezahodil, protože jinak všechny ostatní diskety obsahují programy pro TO, takže část věcí z toho na MO funguje špatně a část nefunguje vůbec, ale alespoň je jasné, že disketovka opravdu funguje, jak má.
Připojil jsem ji ke svému MO5 (MO5 má obvykle černou barvu. Nedivte se, že je na fotce bílé. Je to limitovaná edice “Michel Platini”, což je francouzský fotbalista, který tehdy pomáhal propagovat gramotnost v Basicu a počítače Thomson).

https://plus.google.com/photos/118173345312865914668/albums/6087636499767387617
(obrázek)

Disk Basic na MO nedodržuje některé zvyklosti Microsoftu na jiných platformách – disketové jednotky nejsou značeny písmeny, ale čísly 0-3.

Takže, chceme-li disk naformátovat, použijeme příkaz
DSKINI 0
(celá syntaxe je DSKINI číslo disku, proklad – kde proklad je nepovinný a standardně je 4).

Po bootu se snaží nahrát soubor AUTO.BAT, pokud existuje.

Pro zkopírování celé diskety použijete příkaz
BACKUP 0
pokud se pracuje s jednou disketovou jednotkou.
(Celá syntaxe je BACKUP zdrojová jednotka TO cílová jednotka.)

Disk Basic pracuje standardně s disketou, takže pro nahrání programu stačí
LOAD “filename”
Není potřeba ani uvádět koncovku .BAS – podobně při SAVE, kde lze doplnit ještě parametr A pro ukládání v ASCII podobě místo tokenů
SAVE “filename”,A
Při více disketových jednotkách má smysl uvést i číslo drivu:
LOAD “0:filename”
LOAD “1:filename”

Obsah diskety vypíše známý příkaz
DIR
nebo též DIR číslo jednotky
Během výpisu lze použít klávesy STOP nebo CNT+C.

Přejmenování provede povel
NAME “fileold.ext” AS “filenew.ext”
(zde se tedy musí uvádět i koncovka .BAS u basicových souborů).

DSKF() je funkce, vracející počet volných bloků na disku.
PRINT DSKF(0)
? DSKF(0)

Mazání obstará příkaz
KILL “filename.ext”

Ke kopírování (a případné změně jména kopie) slouží povel
COPY “filename.ext”
COPY “fileold.ext” TO “filenew.ext”

a při kopírování z jedné disketovky na druhou
COPY “0:fileold.ext” TO “1:filenew.ext”

Povel VERIFY pracuje trochu jinak, než u ZX Spectra – ověření správnosti zápisu se může provádět automatisky po zápisových operacích (SAVE, COPY, BACKUP, DSKINI):
VERIFY ON
VERIFY OFF

Při běžných operacích se nemusí číslo disketové jednotky uvádět, defaultní disketovou jednotku lze přesměrovat povelem
DEVICE “1:”

přibyla i práce se sekvenčními soubory.
OPEN “směr”,#kanál,”filename”
Směr je “O” jako output nebo “I” jako input, “D” je pro “přímý přístup” do souboru, u něj se dá nastavit i délka jednoho záznamu (standardně 128 bytes),
OPEN “D”,#kanál,”filename”,délka záznamu

Příkazy PRINT #kanál,výstup, INPUT #kanál,vstupní proměnná nebo CLOSE #kanál nemá smysl podrobněji rozebírat, jsou dostatečně známé z jiných platforem.

Kromě diskových souborů lze použít i zařízení CASS:, KYBD:, LPRT:, SCRN: a tam, kde je instalován sériový interface, i COMM:.

Funkce EOF() má jako parametr číslo kanálu a vrací, zda byl dosažen konec souboru.
Funkce LOF() vrací číslo posledního sektoru (sektor má standardně 128 bytes) v souboru s přímým přístupem.

U souborů s přímým přístupem se nastavuje čtecí/zapisovací kurzor s přesností na celé sektory (sektor je standardně 128 bytes):
GET #kanál,sektor
PUT #kanál,sektor

Povely INPUT a PRINT pak pracují v nastaveném místě.

Celý sektor lze zapsast pomocí
WRITE #kanál,výstupní data
Při délce sektoru 128 bytes se při zápisu řetězcové proměnné vejde jen 124 bytes – zbytek je konec řádku a další znaky (celkem 4 řídicí znaky)!

Pole v záznamu se vytvoří povelem
FIELD #kanál,délka AS jméno proměnné,délka AS jméno proměnné, …
Zápis do pole se provede povelem LSET nebo RSET (zapíše zarovnaně do levé nebo pravé části pole – LSET je dobré na řetězce, RSET pro zarovnání čísel).
LSET jméno proměnné=data
Záznam se pak uloží normálně pomocí PUT.

OPEN “D”,#1,”soubor”,40
FIELD #1,15 AS jmeno#,15 AS prijmeni$
LSET jmeno$=”Josef”
LSET prijmeni$=”Novak”
PUT #1,1
CLOSE #1

Korektní uzavření sekvenčních souborů, pokud nebylo možné použít příkaz CLOSE #kanál, provede povel
UNLOAD
nebo
UNLOAD číslo drivu

přímé čtení a zápis sektoru na disku provede povel
DSKO$ disk,stopa,sektor,data
a funkce
DSKI$ (disk,sektor,stopa)