RISC OS uitgediept deel 4
een nieuwe aflevering van deze serie door Kees Grinwis

In deel 3 heb ik ondermeer de commando's 'Set', 'SetEval' en 'SetMacro besproken. In dit deel zal ik het 'Alias' commando verder gaan bespreken en zal ik de diverse '!Boot'-commando's ('Repeat', 'Do', etc) behandelen.

In de inleiding heb ik het gehad over een 'Alias'-commando, maar feitelijk bestaat dit commando niet. Onder RISC OS 3.5 en hoger is er wel de mogelijkheid om deze optie als een commando te gebruiken maar in feite is het een Alias.

Ik denk niet dat ik met de voorgaande alinea duidelijkheid verschaft heb, dus zal ik nog verder in detail treden. Om een alias aan te maken moet met de volgende variabele gebruiken: Alias$<alias>. In het vorige deel heb ik al uitgelegd dat je variabelen via het 'Set'-commando in kunt stellen. Het is echter ook mogelijk om ze weer op te vragen, dit is mogelijk met het commando 'Show'. Als we dit gaan doen voor alle commando's die met een 'A' beginnen zal de eerste alinea van dit stukje (naar ik hoop) gelijk een stuk duidelijker worden.

Show Alias$A*

De asterisk aan het eind van dit commando is een joker, dat wil zeggen dat dit commando alle variabelen weer zal geven die beginnen met 'Alias$A', maar een joker is natuurlijk ook op andere manieren in te zetten. Indien u gebruik maakt van RISC OS 3.5 of hoger is het heel waarschijnlijk dat u in de rij dit door het 'Show'-commando weergegeven wordt de volgende regel voorkomt:

Alias$Alias : Set Alias$%0 %*1

Dit is de alias die er voor zorgt dat er een mogelijkheid is om het 'Alias'-commando te gebruiken. Ik zal dit vanaf nu ook doen, RISC OS 3.x gebruikers kunnen deze alias in hun !Boot instellen of voor 'Alias ' het commando 'Set Alias$' lezen.

Het commando om de alias in te stellen is:

Set Alias$Alias Set Alias$%0 %*1

De alias wordt intern door RISC OS heel vaak gebruikt, ik hoop er dan later nog wel eens uitgebreider op terug te komen, nu wil ik eerst de basis gaan bespreken. Feitelijk is het een mogelijkheid om een commando een andere naam te geven of met een commando een reeks commando's uit te voeren.

In dit voorbeeld ga ik uit van het maken van een RAM-disk van 800 kilobyte of juist het verwijderen van een RAM-disk.

Als eerst moeten we onszelf af gaan vragen hoe we een RAM-disk aan moeten maken, we kunnen dit vinden in de diverse handleidingen die bij RISC OS zijn meegeleverd. Maar ik zal het maar direct verklappen. Hiervoor is het commando 'ChangeDynamicArea' voor nodig. Als u de help van dit commando opvraagt dat ziet u gelijk dat er nog andere mogelijkheden zijn, deze zijn nu echter niet van belang. We willen via één commando een RAM-disk aan kunnen maken. In de help-informatie heeft u gezien dat hiervoor de optie '-RamFsSize <omvang>[K]' voor noodzakelijk is. Om dus een RAM-disk van 800 kilobyte aan te maken is het volgende commando noodzakelijk:

ChangeDynamicArea -RamFsSize 800K

Dit is alleen wel wat lang om als commando te moeten intikken, dus is het mooi als we dit korter zouden kunnen maken. Een mogelijkheid zou bijvoorbeeld kunnen zijn 'RAMdisk <size>' of 'RAMdsk800' om in één keer de omvang op 800 kilobyte in te stellen. Om dit te realiseren zonder 'Obey'-bestanden moeten we gebruik gaan maken van aliassen.

Het volgende commando zorgt ervoor dat er een RAM-disk van 800 kilobyte wordt gemaakt:

Alias RAMdsk800 ChangeDynamicArea 
-RamFsSize 800K

Het nut van een alias is een stuk groter als we meerdere commando's moeten gaan combineren, probeer maar eens een volle RAM-disk met één commando te verwijderen. Juist ja, dat is dus niet mogelijk.

Een mogelijke oplossing is het combineren van commando's. Bijvoorbeeld 'Wipe' en het al eerder genoemde commando 'ChangeDynamicArea'.

De uiteindelijke alias zou dan kunnen gaan worden:

Alias RAMdsk0 Wipe RAM::0.$.*|
MChangeDynamicArea -RamFsSize 0K

Een mogelijk probleem is echter wel dat er over het algemeen per bestand om bevestiging gevraagd wordt, het is echter mogelijk om dit uit te zetten. Dit kunt u echter zelf wel uitzoeken door heel goed naar de Help-informatie van het commando 'Wipe' te kijken en de alias 'RAMdsk0' bij te werken.

De mogelijkheden die aliassen bieden zijn nog veel groter dan wat ik hier gemeld heb. Maar kijk eens in de User Guide van RISC OS of probeer gewoon eens wat uit.

Mij werd ook nog gevraagd om eens te kijken naar de commando's die er in de nieuwe !Boot structuur gebruikt worden, voorlopig zal ik me beperken tot de commando 'Repeat' en 'AddApp'.

Met 'Repeat' is het mogelijk om op diverse bestanden in dezelfde map eenzelfde commando uit te voeren. Een goed voorbeeld is 'Filer_Boot', zelf maak ik hiervan gebruik bij het initialiseren (of booten) van mijn ANT Internet Suite. Feitelijk is dit initialiseren het uitvoeren van de !Boot in de !InetSuite-applicatie.

De laatste regel van dit bestand eindigt met het volgende commando:

Repeat Filer_Boot <InetSuite$Dir>.
^.Apps -applications -tasks

Kortgezegd worden nu alle applicaties geinitialiseerd die in de 'Apps'-map van de Internet Suite staan. Hoe werkt dit dan? Als eerste kunt u eens de help-gegevens van het 'Repeat'-commando opvragen. (Dit werkt waarschijnlijk alleen op RISC OS 3.7 en zeker niet op RISC OS 3.5, deze gebruikers kunnen proberen om alleen 'Repeat' in te tikken voor help-informatie)

De eerste parameter is het RISC OS commando dat uitgevoerd moet gaan worden. Dit is in dit geval 'Filer_Boot', maar ook andere commando's zijn mogelijk.

Als tweede parameter geeft u de map op waar de bestanden, mappen of applicaties in staan waarop dit commando uitgevoerd moeten worden.

Als laatste kunt u opgeven of u de commando's als een taak wilt starten (dit is noodzakelijk als u 'Repeat' in de desktop uit wilt voeren). Ook kunt u met de optie '-verbose' aangeven of er informatie gegeven moet worden van het uitgevoerde proces.

Als u dit voorbeeld niet goed begrijpt kunt u de help-informatie van 'Repeat' nog eens goed gaan bekijken en zelf eens gaan experimenten met dit commando, er zijn namelijk nog legio andere mogelijkheden.

De mogelijkheden die het 'AddApp' commando biedt zijn ook wel het noemen waard. Dit zorgt er namelijk voor dat de aan dit commando meegegeven applicaties aan 'ResourceFS' worden toegevoegd. (De applicatie is dan direct te benaderen via het Apps symbool op de symbolenbalk.)

Het is mogelijk om dit commando in een taakvenster te starten, het is echter logischer om dit commando tijdens het booten van de computer te gebruiken. U kunt bijvoorbeeld een 'Obey' bestand in Boot:Choices.Boot.PreDesk plaatsen waarin u de diverse 'AddApp'-commando's zet.

De syntax van 'AddApp' is heel erg simpel, de enige parameter die u mee moet geven is het pad naar de applicatie die aan ResourceFS toegevoegd moet worden. Het is hierbij toegestaan om gebruik te maken van jokers.

De inhoud van het 'Obey' bestand kan bijvoorbeeld zijn:

AddApp Apps:Editors.!Zap
AddApp Apps:DTP.!OvnPro
AddApp Boot:^.Utilities.!ChangeFSI
AddApp Apps:Viewers.!*

Merk op dat ik bij de laatste regel de joker vooraf laat gaan met een uitroepteken zodat er alleen applicaties toegevoegd worden. Het is namelijk niet mogelijk om mappen toe te voegen.

Volgende keer hoop ik nog verder op de !Boot commando's in te gaan en u kunt uiteraard ook vragen stellen waar ik op in hoop te gaan. Gebruik hiervoor het e-mail adres: asterisk@dune.demon.nl

Dat was het dan weer voor deze keer, bedankt voor uw aandacht en experimenteer er rustig op los onder het motto:

'Alles kan beter'

Kees Grinwis