Risc OS uitgediept
aan ons voorgeschoteld door Kees Grinwis

Risc-OS is redelijk gemakkelijk opgebouwd, maar voor sommigen is dit toch nog niet gemakkelijk genoeg. Met dit artikel probeer ik wat dingen uit te leggen en het gebruik van Risc OS voor iedereen gemakkelijker te maken.

De meeste mensen zullen alleen gebruik maken van de desktop (de WIMP), maar in Risc OS zijn er nog twee andere belangrijke modules, de eerste is de Command Line (afgekort: CLI) en de 2e is de BASIC-module.

Voorlopig zal ik BASIC links laten liggen en me beperken en concentreren op de Command Line, de Nederlandse vertaling hiervan is overigens Commando Regel. Op deze Command Line of Commando Regel kunnen zeer veel com-mando's ingetikt worden, feitelijk loopt veel verkeer (dat niet WIMP-georiënteerd is) via dit soort commando's.

Een heel belangrijk commando binnen de Risc OS omgeving is het commando '*Help', met dit commando is het mogelijk om de ins en outs van andere com-mando's op te vragen. Vaak staat hier al zoveel informatie dat je bijna al aan de slag kunt. Bijna dus, want het is niet altijd even duidelijk wat zo'n commando nu precies doet.

Andere zeer belangrijke commando's binnen Risc OS zijn het 'If'-commando en het 'Set'-commando, deze commando's kunnen respectievelijk vergelijkingen uitvoeren en systeem-variabelen instellen of wijzigen. Het is een goed idee om op de CLI alvast eens help over deze com-mando's op te vragen, de syntax van het help commando is:

   *Help [<commando>] 

De tekst-haken geven aan dat de optie die er tussen staat niet verplicht is en de tekst '<commando>' moet vervangen worden door het commando waar help over opgevraagd wordt.

Help opvragen voor het 'If' commando gebeurt dus door op de CLI in te tikken:

   *Help If 

Op eenzelfde wijze kunt u meer informatie opvragen over het 'Set'- commando en andere commando's die later nog aan bod zullen komen. Door er wat mee te experimenteren zult u er achter komen dat het Help-commando zeer nuttig is.

Veel programma's, of beter alle pro-gramma's onder Risc OS maken gebruik van het commando 'Set', ze stellen er mee in wat hun eigen directory (map in het Nederlands) is en houden er nog andere zaken mee bij. Zelfs Risc OS zelf gebruikt deze systeem-variabelen om een aantal instellingen voor de gebruiker zichtbaar te maken. Met deze kennis kunnen we bijvoorbeeld controleren of de tekst-editor Zap of de browser Fresco al bij het systeem bekend zijn, simpelweg controleren of deze programma's hun gegevens al ingesteld hebben bij Risc OS.

Voor Zap kan dat bijvoorbeeld met het commando:

   *If "<Zap$Dir>"<>"" Then
    Echo Zap is bekend Else
    Echo Zap is niet bekend

(alles achter elkaar op één regel intikken!) Dit voorbeeld is nog niet erg praktisch, het geeft wel aan wat er binnen Risc OS allemaal mogelijk is. Het enige wat er nu gebeurt als je dit commando uitvoert op de CLI is dat er een mededeling komt of Zap bekend is of juist niet, dit gebeurt door het commando 'Echo', vraag maar eens meer informatie over dit commando op en u zult zien dat dit ook juist datgene is waar 'echo' voor bedoeld is.

Zoals al aangegeven, het is niet erg praktisch om alleen aan te geven dat het pro-gramma bekend is of juist niet, het zou juist mogelijk moeten zijn om Zap te starten als het bekend was en een foutmelding te geven als Zap niet bekend is (of een andere editor zoals !Edit te starten). Gelukkig kan dit ook, maar hiervoor zijn er nog wat andere commando's nodig.

Als je onder Risc OS een programma wilt starten kun je dit op verschillende manieren doen, je gaat met behulp van de Filer naar de juiste map en dubbelklik op de applicatie. De applicatie wordt gestart en kan gebruikt worden, maar stel je nu eens voor dat we al weten waar de applicatie staat en we willen niet de gehele map-structuur doorgaan om deze te starten. Dan is het met een simpel commando mogelijk om de applicatie direct te starten, vraag maar eens de help-informatie voor het commando 'Filer_Run' op. In de Nederlands-talige versie van Risc OS staat er de volgende tekst:

'*Filer_Run is gelijk aan 
  het dubbelklikken op een object'

Hierna geeft het help-commando ook nog de syntax van het commando, ik ga er vanuit dat u de help informatie opgevraagd heb en probeer nu een klein beetje zinniger voorbeeld te geven dan ik al gedaan heb.

Stel je eens voor dat je voor een bepaalde actie de browser Fresco nodig hebt. Maar ja, is deze browser bekend en zo ja is deze dan al geladen? Op deze laatste vraag kan ik nu niet direct een oplossing geven, maar gelukkig controleert Fresco zelf ook of hij al geladen is en geeft dan een foutmelding. Op de vraag of de browser al bekend is kunnen we op eenzelfde wijze antwoord krijgen als we dat gehad hebben bij de editor Zap, namelijk door te controleren of de systeem-variable Fresco$Dir al bestaat.

Als dit niet zo is dan genereren we een fout-melding met het commando 'Error' dat we Fresco niet kunnen vinden (of beter dat Risc OS hem nog niet tegen gekomen is), maar als Fresco wel bekend is dan proberen we hem te starten.

Hoe het commando 'Error' gebruikt moet worden, dat moet u zelf maar eens opvragen met het 'Help'-commando. Het uiteindelijke commando om dit onder Risc OS uit te voeren is:

   *If "<Fresco$Dir>"<>"" 
    Then Filer_Run
    <Fresco$Dir>.!Run Else
    Error Fresco is niet bekend
    bij Risc OS!

Ook nu geldt weer dat u alles achter elkaar op 1 regel in moet tikken wat een regelovergang is in de tekst is een spatie in de tekst die u intoetst.

Commando's op zich intikken mag soms handig zijn (zelf gebruik ik het nog wel eens als ik vlug wat wil doen binnen Risc OS, zoals een map openen of een module killen of bij het opvragen van de help-informatie van een programma) het zou veel beter zijn als je de commando's als een soort programma achter elkaar kon uitvoeren.

Alle programma's zijn tenslotte opgebouwd uit meerdere regels en bij dit soort commando's zou dit ook wel handig zijn. Goed, gelukkig is dit onder Risc OS mogelijk. Acorn heeft hiervoor een aantal bestands-typen voor gereserveerd, deze zijn onder andere het 'Exec'-, het 'Obey'- en het 'TaskObey'- bestandstype.

De eerste is een overerving uit het roemruchte BBC, Electron en BBC-Master tijdperk en kan soms nog nuttig ingezet worden, het Obey en TaskObey type hebben echter veel betere eigenschappen. Om deze reden zal ik Exec dan ook niet behandelen en juist mee aandacht schenken aan de 2 andere bestandstypen.

Als u een Obey-bestand wilt maken kan dat simpelweg door met !Edit een tekstbestand aan te maken en deze te bewaren, hierna selecteer je het bestand met de Filer en veranderd het bestands-type in 'Obey', hierna kun je er op dubbelklikken en het bestand wordt gestart. Nu kunnen de eerder besproken commando's nog veel nuttiger worden ingezet.

Al eerder in dit artikel is er een voorbeeld geweest met de browser Fresco. Nu kunnen we echter toch meerdere comman-do's uitvoeren, dus wat let ons om er eentje te maken die een web-site voor ons gaat ophalen. (Hierbij ga ik er vanuit dat u de Ant Internet Suite gebruikt, of een ander internet-pakket dat het commando 'URL'ondersteunt.)

Het eerste wat dit bestand gaat doen is kijken of de Ant Internet Suite bekend is, als dat zo is dan gaat ons Obey-bestand er vanuit dat Fresco bekend is bij het systeem en probeert het een website op te halen, of 2 zoals in dit geval.

   *If "<InetSuite$Dir>"="" 
    Then Obey¿  URL http://www.dune.
    demon.nl/¿  URL  http://www.
    nedernet.nl/~bigben/¿

(De commando's op één regel intikken en alleen een nieuwe regel beginnen bij het '¿' teken en het teken zelf niet intikken, maar dit is nog zo gemakkelijk fout te doen ;-) U start op de normale wijze de Ant Internet Suite en maakt verbinding met uw internet provider.

Daarna voert U bovenstaande Obey-bestand uit. (En veel succes op de web-sites die u voorgeschoteld krijgt. Dit was het voor deze keer, volgende keer gaan we verder experimenteren met Obey-files en gaan we kijken hoe we hiermee ook onze 'eigen' Sprites kunnen gebruiken voor bijvoorbeeld de standaard mappen van Risc OS.