Werken met Amos 113 """"""""""""""""""" LINE (Teken een lijn) """"""""""""""""""""" Line x,y """""""" Het LINE kommando tekent een lijn vanaf de huidige cursor positie naar de grafisch koordinaten x,y. SLINE (Bepaal een lijn patroon) """"""""""""""""""""""""""""""" SLine p """""""" SLINE bepaalt de soort lijn die voor alle volgende LINE kommando's het bit patroon n bevat. Omdat er geen doorloop van de uitdrukking is, moet dit patroon altijd omgezet worden in decimale schrijfwijze voor het gebruik. BAR (Teken een balk (bar) """"""""""""""""""""""""" BAr x,y """"""" Dit tekent een rechte balk vanaf de cursor positie naar x,y. PATTERN (Teken een patroon) """""""""""""""""""""""""" Pattern n """"""""" Wijzigt het vul patroon gebruikt door de Bar instruktie op stijl n. OUTLINE (Omsluit de balk met een buitenrand) """""""""""""""""""""""""""""""""""""""""""" OUtline flag """""""""""" OUTLINE tekent een rand in de huidige outline kleur (ink 3) rond alle volgende balken. Een waarde van een stelt de rand in werking en een waarde van nul verwijdert de rand. ELLIPSE (Teken een ellipse(ovaal)) """""""""""""""""""""""""""""""""" ELlipse r1,r2 """"""""""""" ELLIPSE tekent een ovaal met een straal van r1 en r2 op de huidige cursor koordinaten. Om een cirkel te tekenen moet je de straal r1 gelijk houden aan de straal r2. PROC (Roep een procedure op) """""""""""""""""""""""""""" Proc NAME """"""""" De PROC instruktie staat je toe om een AMOS Basic procedure op te roepen direkt binnen in een menu regel. De opgeroepen procedure mag geen parameters bevatten, anders krijg je een syntax fout melding. Met dit kommando kun je zelfs je menu aan je behoeftes aan passen zonder dat je gebonden bent aan de menu kommando's. Om al deze mogelijkheden uit te buiten moet je toch het een en ander daarvan in theorie weten. Aan het begin van je prcedure worden de volgende waarden in de 68000 processor registers gehouden. DREG(0) X-Coord """"""""""""""""""" Dit bevat het grafische X koordinaat van de linker boven hoek van het huidige menu onderdeel. Teken je grafieken niet aan de linker kant van dat deel op je scherm omdat anders het menu tekenen in de war raakt en leidt tot ongewilde effekten. DREG(1) Y-Coord """"""""""""""""""" Register D1 bevat het Y koordinaat van je menu onderdeel. Net als met het X kordinaat moet je je teken operaties beperken tot het gebied net onder dit punt om eventuele fouten te vermijden. DREG(2) Toestand van de teken operaties """"""""""""""""""""""""""""""""""""""""""" Dit register bevat de huidige toestand van de menu operaties. Als deze een waarde van nul (Niet waar) bevat wordt het menu onderdeel getekend. In dit geval moet je DREG(0) laden en DREG(1) met de koordinaten van de rechter onder kant van je menu gebied en direkt teruggaan uit je procedure. If DREG(0)=-1 (waar) ben je vrij om de grafische operaties uit te voeren. Nadat je klaar bent moet je de koordinaten opgeven van de rechter onderhoek van je onderdeel in DEG(0) en DREG(21) als eerst. DREG(3) Toestand van een menu onderdeel """"""""""""""""""""""""""""""""""""""""""" D3 wordt geladen met een waarde van -1(waar) als het menu oplicht en het eerst menu getoond wordt, anders krijgt hij een waarde nul. DREG(4) """"""" D4 wordt gezet op waar als de menu tak begonnen is te openen. AREG(1) Adres van een gereserveerd gebied (zone) """""""""""""""""""""""""""""""""""""""""""""""""""" Dit is het adres van het gebied wat gemaakt is met RESERVE. Het wordt gebruikt om verschillende procedures met elkaar te laten samen werken. Zie RESERVE voor meer bijzonderheden. De algemene struktuur van een menu procedure is: Procedure ITEM If Dreg(2) X=DREG():Y=DREG(1) REM...Teken de item(onderdeel... Endif DREG(0)=BX:Rem X Koordinaat van de rechter onder hoek van een menu onderdeel DREG(1)=BY:Rem X koordinaat van de onder hoek van het onderdeel Endproc De afmetingen van het menu onderdeel wordt op het scherm getoond met gebruik making van de koordinaten BX en BY. Deze moeten in de registers D0 en D1 geladen worden voor je je procedure verlaat omdat ze nodig zijn om de uiteindelijke menu balk te maken. Terwijl binnenin je procedure je de meeste AMOS instrukties kan zetten inklusief andere procedures. Maar sommige instrukties zijn absoluut verboden! Als je die kommando's gebruikt krijg je geen foutmelding, maar crashed de Amiga volledig onverwacht. * Verander nooit het huidige scherm binnen in een menu. Dat crashed bijna altijd je Amiga * Bepaal of herschrijf nooit een scherm zone. * Vermijd instrukties zoals: WAIT, WAIT KEY of INPUT of INKEY$ die de werking van je programma bevatten. * Diskette bewerkingen zijn helemaal verboden! * Elke fout opzoeker in je programma wordt geheel genegeerd. Verschijnt er toch een fout, dan sluit het menu en je programma keert terug naar de editor. Met bedachtzaam gebruik kan het PROC kommando adembenemende effekten voortbrengen.