WERKEN MET AMOS deel 70 """"""""""""""""""""""" COPPER ON (Herstart de copperlist) """"""""""""""""""""""""""""""""""" COPPER ON COPPER ON herstart de AMOS copperlist berekeningen en toont de huidige AMOS schermen. Aangenomen dat je niets hebt getekend sinds de COPPER OFF instruktie, wordt het scherm precies neergezet in zijn oorspronkelijke staat. COP MOVE (Schrijf een MOVE instruktie in de logical copperlist) COP MOVE addr, value (waarde) Berekent een MOVE instruktie in de logical copperlist. addr is en adres van een 16 bit register die veranderd moet worden. Die moet in de normale copper DATA ZONE ($7F-S1bE) liggen. value (waarde) is een woord-grootte integer die in de gevraagde register geladen wordt. COP MOVEL (Schrijf een lange MOVE instruktie in de copperlist) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" COP MOVEL addr,value Dit is hetzelfde als de standaard COP MOVE instruktie, behalve dan dat adrr nu verwijst naar een 32-bit copper register. value bevat een lange woord integer. COP WAIT (Copper WAIT instruktie) """"""""""""""""""""""""""""""""" COPY WAIT x,y[x mask,y mask] COP WAIT schrijft een WAIT instruktie in je copperlist. De copper wacht nu totdat de koordinaten x,y bereikt zijn en geeft de kontrole terug aan de hoofdprocessor. Let op het feit dat lijn 255 automatisch door AMOS behandeld wordt. Dus daarover hoef je je helemaal niet ongerust te maken. x mask en y mask zijn bit maps die je in staat stellen om te wachten totdat een juiste kombinatie bits in de scherm koordinaten zijn gezet. Als standaard krijgen de beide masks automatisch $1FF toegewezen. COP RESET (Herstelt de copperlist pointer) """""""""""""""""""""""""""""""""""""""""" COP RESET COP RESET herstelt het adres die door de volgende copper instruktie aan het begin van de copperlist gebruikt werd. =COP LOGIC (Address (adres) van de copperlist) De COP LOGIC funktie geeft de waarde op van de absolute adressen in het geheugen van de logical copperlist. Hiermee kun je je copper instrukties direkt in de buffer poken, waarschijnlijk met gebruik van de assembler taal. Hints en tips """"""""""""" Voordat je een scherm maakt met een door de gebruiker bepaalde copperlist, moet je eerst wat geheugen toewijzen voor de bedoelde bit-maps. Hoewel je de instruktie RESERVE kan gebruiken in dit geval, is het veel makkelijker om een leeg scherm met het SCREEN OPEN kommando te maken. D copper registers kunnen ingeladen worden met de adressen van de verlangde bit-maps met de LOGBASE funktie. Nu ben je in staat om op al je standaard AMOS schermen teken instrukties uit te voeren. Om de juiste hoeveelheid geheugen te kunnen reserveren moet je het aantal kleuren op maximum zetten die je in je nieuwe scherm gebruikt. Dit mag misschien zonde zijn maar het vereenvoudigt de dingen wel enorm. Het is heel goed mogelijk om deze door de gebruiker gemaakt schermen te kombineren met AMOS bobs. Wil je echter dubbel buffering gebruiken, dan moet je een aparte copperlist opzetten voor beide schermen het logical en het physical scherm. Dat kan gedaan worden met de volgende procedure: 1 Maak je copperlist voor het eerste scherm 2 Wissel het logical en de physical scherm met COP SWAP 3 Wissel de physical en de logical schermen met SCREEN SWAP 4 Bepaal je copper list voor het tweede scherm Dit verzekert je ervan dat je bobs steeds goed herschreven worden op je nieuwe schermen. Al de normale AMOS kommando's kunnen gebruikt worden inklusief AMAL.