Grafisch werken op de Amiga wordt een heel stuk eenvoudiger als het mogelijk is complete schermen met informatie in de computer te laden. Het is dan niet meer nodig te tekenen in uw eigen pro- gramma, het tekenen kan gedaan worden in een veel beter daarvoor geschikt tekenprogramma zoals DPaint, Express Paint of Photon Paint. Veel commercieele programma's werken op die manier. Het probleem is nu het binnenladen van een scherm met een te- kening. Zo'n tekening is meestal op diskette gezet door het tekenprogramma in het zogenaamde IFF-format. Het IFF-format is niets anders dan een afspraak hoe een file op diskette wordt gezet. Voor een grafisch-file, een tekening, geldt een speciale afspraak. In het file staan alle gegevens die een programma moet weten over het plaatje. Er staat o.a. : de maat van het plaatje, hoeveel kleuren/bitplanes er gebruikt worden, welke de kleuren zijn en natuurlijk het plaatje. Maar dat plaatje staat op een speciale manier, en indien het mo- gelijk is samengeperst volgens een bepaalt patroon. Nu kun je in Basic een programma schrijven dat zo'n file kan le- zen en vertalen naar een plaatje op het scherm. Omdat het file zo lastig op diskette staat kan het laden van een tekening met 32 kleuren zo'n 2 minuten duren. Te lang dus. Nu heeft Commodore een oplossing voor dit probleem. Ze trekken zich niets aan van het IFF-format en schrijven een tekening een- voudig naar de diskette, zonder samenpersen en zonder extra ge- gevens. De programmeur weet immers hoe het file er uit ziet. Die manier van wegschrijven heet ACBM-format. Om het file op die manier naar diskette te schrijven is eerst een vertaling van IFF-format naar het ACBM-format nodig. Het programma dat een file vertaalt is daarmee ongeveer 5 minuten bezig. Het file kan dan niet meer door een tekenprogramma gelezen worden !!! Is het file eenmaal aangepast dan gaat het laden in Basic een stuk sneller. I.p.v. 2 minuten duurt het laden nu 20 seconden. Maar voor een mooi programma is het nog steeds te langzaam. Basic zelf biedt geen uitkomst meer. Nu komt het voordeel van machinetaal naar voren. We kunnen in machinetaal wel een snelle scherm-load-routine schrijven. We heb- ben ook gezien dat we die machinetaal-routine eenvoudig kunnen laden in AmigaBasic. Het laden duurt nu slechts nog enkele secon- den. Het volgende programma laadt een tekening binnen. De tekening staat op de diskette in de voorbeelden-directory onder de naam Tekening. Allereerst moeten de defenities komen die de funkties aan Basic bekend maken. DEFLNG a-Z DECLARE FUNCTION LoadSeg LIBRARY REM UnLoadSeg heeft geen declaratie nodig. LIBRARY "dos.library" LIBRARY "exec.library" Dan moeten we een scherm openen waarop we het plaatje willen la- den. We moeten de maat van het scherm weten en het aantal bit- planes. De tekening heeft een maat van 320 bij 256 puntjes en bestaat uit 5 bitplanes, 32 kleuren. SCREEN 4,320,256,5,1 WINDOW 4,,,0,4 Nu moeten we de machinetaal inlezen : BCPL&=LoadSeg& (SADD("SYS:M-Taal/LoadScreen"+CHR$(0))) IF BCPL&=0 THEN PRINT "FOUT in lezen machinetaal" : GOTO Einde Segment&=BCPL&*4 Routine&=Segment&+4 Nu is het scherm en het bijbehorende venster aanwezig. Rest al- leen nog het laden. We doen dat door het aanroepen van de routine met de schermnaam : Naam$="SYS:Voorbeelden/Tekening"+chr$(0) x&=WINDOW(7) Routine& SADD(Naam$),x& WHILE MOUSE(0)=0 : WEND : REM Wachten op muisknop. Einde: WINDOW CLOSE 4 SCREEN CLOSE 4 END Dit kleine programma doet alles. Wat nu het voordeel van het binnenladen van een tekening is ziet u in de tekst over het PUT- en GET-kommando. Het programma uit deze tekst staat op de diskette onder de naam 'LeesScherm'. Om u te laten zien hoe hetzelfde file, tekening, op de oude ma- nier geladen werd staat op deze diskette ook het programma 'LeesScherm-Oud'. Het programma leest dezelfde tekening, in IFF- format, binnen.