WERKEN MET AMOS deel 69 """"""""""""""""""""""" =RAIN (Verandert de kleur van een individuele regenboog lijn) """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" RAIN(n,line)=c c=RAIN(n,line) Dit is de meest krachtige van alle regenboog kommando's, omdat je er de kleur van een individuele regenboog lijn mee kunt veranderen met elke waarde die je maar bedenken kunt. N is het nummer van de regenboog waarmee je wilt werken. Line is de individuele scan-lijn die je wilt veranderen. Voorbeeld: Curs Off : Centr "Een AMOS regenboog!" SET Rianbow 1,1,4097,"","","": Rem zet de regenboog met blinde waarden For Y=0 To 4096 Ran(1,Y)=Y : Rem Laadt de regenboog met een kleurwaarde tussen 1 en 4096. Next Y For C=0 To 4095-255 Rainbow 1,C,40,255 : Rem Laat regenboog van 256 lijnen zien vanaf 40 Next C Wait Key Dit scrollt heel zacht het hele palet door nummer een. ZOOM (Vergroot een deel van het scherm) """"""""""""""""""""""""""""""""""""""" ZOOM source,x1,y1,x2,y2 TO dest, x3,y3,x4,y4 ZOOM is en eenvoudige instruktie waarmee je de maat van elk rechthoekig stuk van het scherm kunt wijzigen. Source is het nummer van het scherm van waaruit je plaatje genomen wordt. Je kunt ook de LOGIC funktie gebruiken om een plaatje van aangewende logical venster te pakken. Het rechthoekige gebied wat bewerkt moet worden door deze instruktie wordt binnen gehaald met de koordinaten x1,y1,x2,y. x1,y1 bevatten de koordinaten van de linker boven hoek en de x2,y2 koordinaten van de rechter onder hoek. Dest bepaalt het ontvangende scherm voor je plaatje. Net als bij de bron kan het een scherm nummer, een logical scherm bepaald met LOGIC zijn. De afmetingen van dit scherm worden genomen vanuit de koordinaten x3,y3 en x4,y4. Deze bevatten de afmetingen van de rechthoek waarin het scherm deel geperst zal worden. Het effekt van deze instruktie hangt af van de maten die betrekking hebben op de bron en de ontvangende rechthoeken. Het bron plaatje wordt automatisch hermeten om precies in de ontvangende rechthoek te passen. Dus dezelfde instruktie kan gebruikt worden om je plaatjes te vergroten als dat nodig is. Hier een voorbeeld: F$=Fsel$("*.*","","Load screen") : If F$="" then Direct Load Iff F$,0 : Screen Open 1,320,256,32,Lowres Flash Off : Get Palette(0) Screen Display 1,,,,256: VIEW : LIMIT MOUSE Repeat Zoom 0,0,70,320,175 To 1,0,0,X Screen (X Mouse)+1,Y Screen (Y Mouse)+1 Until Mouse Key Het veranderen van een copperlist """"""""""""""""""""""""""""""""" De coprocessor (copper) van de Amiga geeft je de kontrole over elke lijn op je scherm. Deze copper is een aparte processor met zijn eigen interne geheugen en een heeft unieke set van instrukties. Via het programmeren van de copper is het mogelijk om een groot aantal verschillende scherm effekten te bereiken. Normaal gesproken wordt de copper automatisch door het AMOS systeem beheerd. Elk van de beschikbare coppper effketen kan direkt in AMOS Basic uitgevoerd worden zonder dat je je verliest in ingewikkelde machine taal. In de praktijk zullen deze instrukties meer dan voldoende blijken te zijn in de meeste gevallen. Het is overigens natuurlijk duidelijk dat niemand aan alles kan denken. Professionele programmeurs zouden mogen wensen dat ze direkt op de copper kunnen terug vallen om hun eigen speciale scherm modes te kunne maken. Maar wees gewaarschuwd: De copper list is ontzettend moeilijk te programmeren en als je niet precies weet wat je doet, zul je onvermijdelijk een crash van je Amiga oplopen. Voordat je in zee gaat om voor het eerst onderzoekingen te doen met je copper, raden wij je aan om eerst eens een van de vele referentie boeken over dit onderwerp te lezen. Goede verklaringen kunnen gevonden worden in de Amiga System Programmers Guide van Abacus. COPPER OFF (Zet de standaard copper lijst uit) """""""""""""""""""""""""""""""""""""""""""""" COPPER OFF Hiermee zet je de huidige AMOS copperlist af en zet je het schermzicht (screendisplay) volledig af. Je kunt nu zelf je eigen display maken via een aantal instrukties zoals COP MOVE en COP WAIT. Standaard zijn alle copperlijstem voor de gebruikers op een maximum van 12k gezet. Bovendien neemt elke copper instruktie twee bytes in beslag. Op die wijze is er plaats voor 6.000 instrukties. Zonodig kan dat verhoogd worden door een speciale optie van de CONFIG utility (gebruikje). Wij wijzen je er op dat alle copper instrukties op een aparte logical lijst geschreven wordt die je niet op het scherm zult zien. Zo stopt je programma tenminste niet terwijl de copperlist gemaakt wordt. Om je nieuwe scherm te aktiveren (te laten werken) moet je de physical en de logical lists heen en weer wisselen met het COP SWAP kommando. Het is ook belangrijk om de copperlists in de juiste volgorde te maken, beginnend vanuit de linker boven hoek van je scherm en opeenvolgend naar beneden naar de rechter onder hoek.