ROM sprites (en meer) naar je eigen smaak
waarin Ab Steeman de kruiderijen toevoegt

In Asterisk nummer 16.10 vertelde Rogier Hartgring over de door hemzelf ontworpen sprites en zijn ergernis wanneer deze weer werden overschreven door de ROM sprites. Dit artikel laat zien dat Rogier niet geheel machteloos hoeft te staan.

Er bestaan applikaties die een module kunnen genereren waarin bepaalde, door jouwzelf samengestelde, bestanden in de plaats worden gezet van de originele in ROM aanwezige versies daarvan. Eenmaal opgestart met deze module geladen - door plaatsing in de PreDesk directory geschiedt dit automatisch - weet zelfs je eigen Acorn machine niet beter of deze bestanden behoren standaard tot de ROM bestanden. Een van de betere applikaties die dit kunnen verzorgen is !Resource van Terry Adams. Dit artikel bespreekt versie 3.15, daterend van 11 juni 1994.

Daarmee alleen is Rogier nog niet geholpen, want nog steeds loopt hij de kans dat de een of andere opdringerige applikatie zijn prachtige sprites overschrijft door middel van een 'Iconsprites' opdracht. Maar ook daar is een oplossing voor. De module IconLock (versie 1.01 dd 27 mei 1995) zorgt ervoor dat geen enkele sprite, in de Wimp spritepool voorkomend vóór de sprite 'LOCK' nog wordt overschreven.

Een kombinatie van beide toepassingen zal Rogier eindelijk zijn welverdiende nachtrust weer kunnen terugbezorgen. Laten we dus maar 'ns gauw gaan zien hoe het één en ander in de praktijk werkt, wat je er allemaal voor moet doen en natuurlijk ook voorál waar deze wondertjes van programmeertechniek (gratis, want het is Public Domain software!) verkrijgbaar zijn.

!Resource
Een dubbelklik op de applikatie installeert !Resource keurig netjes links op de Iconbar, naast het Apps ikoon. Gelukkig staat er geen 'Apps' onder, maar 'Write', want toevalligerwijze ziet mijn eigen Apps ikoon er precies zó uit! Een klik erop opent het werkvenster.

De bedoeling is nu dat je er een bestand naar toe sleept, waarna alle - tot nu toe nog lege -invulvelden worden voorzien van een - voorlopige - tekst, zoals het voorbeeld hierboven. De modulenaam (hier: ResourceFiles) kun je wijzigen in elke door jou gewenste benaming.

De positie waar het bestand in ROM moet worden neergezet wordt ingevuld in het onderste veld. Aangezien we hier bezig zijn onze Resources aan te passen is het begin van het noodzakelijke pad dat de plaats moet defeniëren, in ons geval altijd: "Resources:$.Resources". Afhankelijk van het bestand dat je er heen sleepte moet je er echter nog wel wat achter typen. In het voorbeeld hierboven werd een sprite-bestand gebruikt, wat de bedoeling heeft de ROM sprites te vervangen. Hier wordt daarom het pad afgemaakt met: ".WimpSprites" (let op de punt!)

Je kunt er meerdere bestanden naar toe slepen, waarbij je voor elk bestand een apart doelpad kunt opgeven. Het tweede bestand wat ik erheen sleepte betrof weer een sprite-bestand, ditmaal bestemd om mijn CD-ROM sprite op de Iconbar te verfraaien. De volledige plaatsaanduiding daarvoor luidt dus: "Resources:$.Resources.CDFSFiler".

Door te klikken op de pijltjes in het venster kun je alle bestanden die je er naartoe gesleept hebt, en dus ook in de module verwerkt gaan worden, stap voor stap doorlopen, waarbij de juiste bestandsnaam en het uiteindelijke doel wordt getoond in de betreffende velden en het nummer tussen de pijltjes het bestandsnummer weergeeft. Een klik op 'Delete' verwijdert het bestand uit het geheugen. Een klik op 'Object list' toont de bestanden welke tot nu toe geladen zijn. Als je alle bestanden die je nodig acht naar het Resource-venster hebt gesleept, voor ieder bestand het juiste bestemmingspad hebt ingevuld en eventueel de modulenaam naar eigen smaak hebt gewijzigd, rest je alleen nog de taak om de module naar een voorlopige plaats weg te schrijven.

Door het menu in het Resource-venster op te klikken kun je het 'Save as' venster bereiken. Typ een passende bestandsnaam in en sleep je module naar zijn plek. Vanuit het menu kun je ook het venster oproepen waarin je je standaard instellingen kunt vastleggen.

Hier bestaat de mogelijkheid om het voorkeur-pad in te stellen (bij mij dus: "Resources:$.Resources"), zodat je zo min mogelijk in hoeft te typen voor de uiteindelijke bestemming.

Er zijn nog meer instellingen mogelijk, betreffende het al dan niet meteen 'runnen' van de module na het wegschrijven, waardoor de module ook meteen aktief wordt. Dit kun je dus beter naar eigen smaak instellen wanneer je een beetje ervaring hebt opgedaan met het programma.

De bestanden zelf
De hoofdzaken zullen nu wel duidelijk zijn, maar er rest nog één belangrijk ding: wat voor bestanden moet je in die module verwerken, hoe moeten ze heten en vooral: waar moeten ze in ROM geplaatst worden? Om te beginnen moet je natuurlijk weten wat je allemaal in ROM kunt zetten en het antwoord zal je verbazen: Alles!
Je kunt er nieuwe directories in creëren wanneer je wilt, in bestaande directories applikaties en bestanden toevoegen, kortom: alles wat je wilt is mogelijk.

Hier zie je mijn Resources directory en de directory 'Resources' dáárin heeft in zijn eentje 111 - éénhonderd en elf! - directories. (Hoezo 77 als maximum bestanden in een directory?) In die directories kun je straffeloos bestanden vervangen (let wel: vervàngen, niét aan-vullen!) en het is aan jezelf om uit te zoeken wèlk van de bestanden in wèlke directory in jouw geval waard is om behandeld te worden. In míjn geval (en dat zal ook voor Rogier gelden) zijn dat de bestanden:

  1. Resources:$.Resources.Wimp.Sprites22
  2. Resources:$.Resources.CDFSFiler.Sprites22

Maar even gemakkelijk verander je op deze wijze templates, messages en noem maar op!

Belangrijk:
Schrijf het bestand wat je wijzigen wilt éérst ergens op een werkplekje weg, vul het aan en/of wijzig wat je wilt en gebruik dit resultaat om in je module te verwerken. De bestandsnaam blijft dezelfde! En het in te vullen pad is uiteraard precies gelijk aan dat van het origineel.

Een inventief iemand met heel veel tijd kan dus op deze wijze een geheel Nederlandstalige desktop creëren, zonder gebruik te maken van het onvolprezen werk van Kees Grinwis en zijn medezwoegers, de applikatie !Territory. Maar dat is wèl monnikenwerk, hoor! !Territory gebruiken is veel eenvoudiger.....

Voor elke andere wijziging die je wilt aanbrengen wens ik je veel plezier met het ombouwen!

IconLock
Over IconLock, die je de zekerheid gaat verschaffen dat de door jou met veel moeite samengestelde sprites ook inderdaad zichtbaar blíjven, valt veel minder te vertellen.

Het enige wat nodig is, is een sprite genaamd 'LOCK' - niet: 'lock'!), waarbij de IconLock-module ervoor zorgt dat, nádat deze sprite is ge-'iconsprited' er voor de sprites die hem vóór waren absoluut nooit meer een vervanger kan komen. En dat is prettig! Wanneer je ervoor zorgt dat eerst je module met je eigen Wimp sprites wordt geladen en dat daarná de sprite 'LOCK' wordt gebruikt, dan ben je eindelijk zeker van je eigen desktop.

Die sprite 'LOCK' is niets bijzonders, zijn naam wèl. Je kunt er desnoods elke willekeurige sprite voor gebruiken, maar die naam kun je alleen maar bewerkstelligen door een sprite 'lock' te maken en het resulterende spritebestand in je teksteditor te laden, waarmee je mogelijkheid krijgt de naam 'lock' om te zetten naar hoofdletters.

Je kunt natuurlijk ook de applikatie !MyDesktop te pakken zien te krijgen, waarin ik alles reeds geregeld heb, waarin !Resource en IconLock worden bijgeleverd, en waar de benodigde sprite 'LOCK' ook in is verwerkt. Je moet natuurlijk wel de aanwezige module 'MyDesktop' vervangen door een door jouwzelf gemaakte, waarin je jouw eigen sprites gezet hebt. Maar dat zal zich wel vanzelf wijzen, neem ik aan.

Wanneer je !MyDesktop in de directory PreDesk zet, gaat alles verder vanzelf. Maar niets weerhoudt je ervan de verschillende onderdelen apart te gebruiken natuurlijk.

Verkrijgbaarheid
Alle hier besproken applikaties en bestanden zijn op verschillende manieren verkrijgbaar:

  1. Voor de mensen zonder Internet-toegang is alles verkrijgbaar bij (minimaal) BBS de Randstad.
  2. Voor de mensen met Internet-toegang staan er twee wegen open:

Als geen van deze methoden voor jou beschikbaar is dan is de enig mogelijke oplossing nog het toezenden van een lege flop (en denk eraan: inclusief gefrankeerde en aan jezelf geadresseerde retour-enveloppe!) aan:

Ab Steeman
Hogeschoorweg 19a
5911 EJ Venlo

Waarna alles netjes bij je thuis wordt afgeleverd.
Veel succes!