Werken met Amos 137 """"""""""""""""""" UNPACK (Pak een samengeperst scherm uit) """""""""""""""""""""""""""""""""""""""" Pakt een samengeperst scherm uit wat eerder met SPACK of PACK samengeperst was. Elke samenpersroutine heeft zijn eigen speciale vorm van het uitpak kommando. SPACK """"" UNPACK b TO s Opent scherm s en bewaart het samengepakte scherm in bank b. Als dit scherm al bestaat wordt het geheel door het nieuwe plaatje vervangen. Is het scherm eenmaal uitgepakt, floept het netjes in beeld. PACK """"" Samengepeste schermen kunnen uitgepakt worden met twee aparte instrukties. Deze kunnen een plaatje van de geheugen bank halen en hem rechtstreeks in het bestaande scherm zetten. Waarschuwing! Het ontvangende scherm moet precies hetzelfde formaat hebben als je samengeperste plaatje, anders krijg je een illegal function error. Als je je schermen uitpakt, zie dat het effekt een beetje door elkaar gaat. Dat komt omdat het PACK kommando alleen bedoeld is voor het double buffering systeem. Aangenomen dat je scherm dubbel gebuffered is, krijg je een heerlijk boterzacht resultaat. UNPACK b Pakt het scherm uit op zijn oorspronkeliujke positie. UNPACK b,x,y Het tekent je plaatje op de koordinaten x,y. Indien het plaatje niet op het huidige scherm past, krijg je de bijbehorende foutmelding. Machine code """""""""""" Met AMOS Basic kan ook de gevorderde programmeur toegang krijgen tot in het binnenste van de Amiga hardware met een reeks kommando's. Geen van deze instrukties zijn voor algemeen programmeer gebruik natuurlijk. AMOS Basic is zorgvuldig ontworpen om alle Amiga mogelijkheden onder kontrole te krijgen met gebruikmaking van eenvoudige makkelijk te begrijpen Basic instrukties. Het is dus niet nodig om in het geheugen te gaan zitten spitten om je spellen te maken! Getal omzettingen """"""""""""""""" =HEX$ (Zet een getal om naar hedeximaal) h$=HEX$(v) h$=HEX$(v,n) HEX$ zet een integer v naar de hedeximale (16) schrijfwijze om. Het geeft een opeenvolgende reeks n hedeximale getallen in de string h$. Voorbeeld: Print Hex$(Colour(1),3) $A40 Print Hex$(65536) $10000 Print Hex$(65536,8) $00010000 =BIN$ (Zet een getal om naar een binaire string) b$=BIN$(v) b$=BIN$(v,n) Zet een getal om naar een binaire (basis 2) schrijfwijze. Net als met HEX$ kun je kiezen of alle cijfers in een getal of enkel een paar uitgevoerd moeten worden. Voorbeeld: Print Bin$(255) %11111111 Print Bin$(255,16) %0000000011111111 n bepaalt het aantal van de binaire getallen die opgegeven worden in b$. Elk getal kan alles bevatten van tussen de 1 en 32 getallen (1<=n<=31). Geheugen manipulatie """"""""""""""""""""" =PEEK (Pak byte op adres) v=PEEK(address) Geeft de 8-bit byte bewaard op adres. Load"AMOS_DATA:Sprites/Monkey.abk" Print Peek(Start(1)) For S=8 To 1 Step -1 C=peek(start(1) : Print CHR$(c); : Rem Dus daar staat de naam Next S