Werken met Amos deel 61 """"""""""""""""""""""" HAM mode splitst de Amiga kleurwaarden in vier aparte groepen: * Kleurregisters 0-15: De eerste 16 kleuren nemen direkt een waarde vanuit een kleurregister. Deze kleuren worden hetzelfde behandeld als op een 16 kleurenscherm. * Rode delen 16-31: Is echter een punt op een kleur nummer tussen de 16 en de 31 gezet, dan wordt de kleurwaarde geladen aan linker zijde van de aangewezen pixel. Het rode deel van deze kleur wordt nu vervangen door een waarde tussen 0 en 15 die volgens volgende de formule berekend wordt: Intensiteit=kleur inde-16 * Groene delen 32-47: Hetzelfde, een kleurnummer tussen 32 en 47 neemt de huidige sterkte en verandert het groene deel. De helderheid van deze kleur wordt gezet op een waarde van kleur-32. * Blauwe delen 48-63: Deze kleurnummers nemen de kleurwaarde aan de linker zijde van de pixel en laadt een nieuw blauwdeeltje vanuit kleur nummer zoals dit: helderheid=kleur index-48 De kleur van een bepaalde punt hangt af van de kleuren van alle punten aan de linkerzijde daarvan. Hiermee kun je zachte overgangen van een kleur maken die ideaal voor vleeskleuren zijn. Hoewel je niet iedere kleur individueel van het scherm kunt veranderen. In de praktijk kost het je drie punten om een kleur te veranderen. Toen de Amiga voor het eerst uit kwam, werd HAM eigenlijk min of meer als een bijzonderheid ervaren. Tegenwoordig is de situatie anders met vooruitstrevende pakketten als Photonpaint . AMOS geeft je ook de mogelijkheid om alle grafische- en tekst uitvoer op zo'n HAM scherm uit te laten plaatsvinden. Een ander punt om in overweging te nemen, is dat HAM schermen met de normale SCREEN DISPLAY en SCREEN OFFSET kommando's bewerkt kunnen worden. Hier zijn een paar richtlijnen: * Het eerste punt in elke horizontale lijn moet op een nummer van 0 tot 15 gezet worden. Deze dient als een begin punt voor alle schakeringen op de huidige lijn. * Probeer niet om een HAM scherm horizontaal te laten scrollen. Als je een van die schermen probeert te scrollen, krijg je kleur storingen aan de zijkanten van je plaatjes. Die worden veroorzaakt door de veranderingen van de begin punten voor elke lijn. Er zijn voor de vertikale scrolling geen beperkingen. * Storingen daarbij kunnen ook optreden door het kommando SCREEN COPY. De oplossing hiervoor is dat de rand van het gebied getekend wordt met een kleur tussen 0 en 15. Zo ben je er van verzekerd, dat je HAM schermen opnieuw getekend worden op hun nieuwe positie met hun originele kleuren. Het laden van scherm """"""""""""""""""""" LOAD IFF (Laad een IFF scherm van de disk) LOAD IFF "filenaam"[,scherm] LOAD IFF laadt een plaatje in IFF formaat van de disk. Het IFF formaat wordt tegenwoordig door veel tekenpakketten voor de AMiga gebruikt, dus zul je niet veel moeite hebben om een IFF plaatje die je zelf gemaakt hebt in AMOS Basic in te laden. Screen bepaalt het nummer van het scherm wat geladen wordt met je plaatje. Dit scherm wordt automatisch voor gebruik geopend. Bestaat het al, dan wordt alles wat zich erin bevindt gewist door het nieuwe plaatje. Om een plaatje in het huidige scherm te laden, type je de filenaam kompleet met de parameters. Voorbeeld: Load Iff"AMOS_DATA:IFF/AMOSPIC.IFF",1 Het bewaren (saven) van een scherm """""""""""""""""""""""""""""""""" SAVE IFF (Save een IFF scherm) SAVE IFF "filenaam"[,compression] SAVE IFF saved het huidige scherm als een plaatjes (picture) file op de disk. compression is een toevoeging (flag) waarmee je kunt kiezen of je je plaatje wilt samenpersen of niet voordat het gesaved wordt. Met een waarde van 1 geef je op dat je de data van het plaatje wilt samenpersen. Met nul wijzigt het plaatje niet en blijft het in het IFF formaat. Standaard worden alle AMOS schermen samengeperst. SAVE IFF voegt automatisch een kleine IFF "chunk" aan je plaatjes file toe. Hierin staat hoe je scherm eruit ziet inklusief de bepalingen SCREEN DISPLAY, SCREEN OFFSET en SCREEN HIDE/SHOW. Wil je dan deze file weer in AMOS Basic laden, dan wordt dit scherm precies zo weer gegeven als je het eerst neergezet had. Deze extra data worden door teken pakketten zoals DPAINT III niet herkend en gebruikt, DPAINT laadt dus je plaatje weer gewoon in. Merk op dat het niet mogelijk is om double buffered of tweevoudige speelvelden met dit kommando te saven. Het bewegen van een scherm """""""""""""""""""""""""" SCREEN DISPLAY (Het zetten van een scherm op de juiste plaats) SCREEN DISPLAY n[,x,y,w,h] Heb je je scherm gedefinieerd (bepaald) met SCREEN OPEN, dan is het nog nodig om dit scherm op de goede plaats te zetten. Anders dan andere komputers is het mogelijk met de Amiga om plaatjes neer te zetten waar je maar wilt. Dit kan makkelijk gedaan worden en je bereikt daarmee verbazingwekkende "bouncing" (dans) effekten. Met AMOS Basic is het zelfs mogelijk deze animaties te doen met gebruik van interrupts (onderbrekingen) (zie AMAL). Een andere mogelijkheid is om je schermen halverwege over elkaar heen te leggen. Dan kun je het getoonde beeld uit verschillende scherm keuzes samen stellen. n bepaalt het nummer van het scherm wat op zijn plaats gezet moet worden. x en y bepalen de plaats van het scherm met behulp van de hardware koordinaten. De koordinaten van een scherm kunnen tussen de 0 en 448 liggen en worden automatisch afgerond op de dichtstbijzijnde 16-pixel omgeving. Alleen de plaatsen tussen 112 en 448 zijn eigenlijk op je monitor zichtbaar en wij raden aan om geen x koordinaat te gebruiken die kleiner is dan 112. De y koordinaten liggen tussen 0 en 312. Het zichtbare gebied hangt hoofd zakelijk af van je monitor, maar ze zullen liggen tussen de 30 en de 300, waaraan je in de meeste gevallen genoeg aan hebt. Gedurende de gehele tijd van het schrijven van AMOS komt er steeds een klein foutje bovendrijven in de Amiga's HAM mode. Deze plaatjes kunnen niet getoond worden met de preciese y koordinaat van 256. Dus je moet de waarden 255 of 257 gebruiken. We weten nog niet of dit een hardware of een software fout is, maar je hebt er verder geen enkele hinder van. w zet de breedte van je scherm in pixels. Wanneer dit afwijkt van de oorspronkelijke maten, wordt er slechts een deel van je plaatje getoond, beginnend bij de linker boven hoek van het zichtbare beeld. Net als de x koordinaten wordt de scherm breedte afgerond op de dichtstbijzijnde 16-picxel omgeving. Op dezelfde manier zet h de ogenschijnlijke hoogte van het scherm. Verandering van deze waarde vermindert de diepte van je plaatje. In het algemeen kiest het SCREEN OPEN kommando een standaard positie van je scherm, deze positie is door AMOS vastgelegd in de konfiguratie file. Is het scherm groter dan wat je ziet, dan gaat AMOS automatisch over op overscan. SCREEN DISPLAY stelt je in staat om op een simpele manier deze standaard waarden te veranderen. Elk van de parameters x,y,h en w mogen gebruikt worden. De onveranderde waarden worden automatisch op standaard gezet en moeten door komma's gescheiden zijn.