Amiga Dünyası sayı 29, sayfa 76

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 76

DECLARE AllocRemember& LIBRARY DECLARE OpenScreen& LIB- RARY LIBRARY" :bmaps/intuition.library" LIBRARY" :bmaps/graphics.library"

DEFINT a-z HAMScreen Sern& ViewPort&-Sern&*44 RastPort&-Sern&*84 SetRGBA& ViewPort&,0,0,0,0 Modus1-0 : Modus2-16 : Modus3-32

— Modus",

-Modus1416 : IF Modus1>48 THEN

Modus1-16 Modus2-Modus2416 : IF Modus2>48 THEN Modus2-16 Modus3-Modus3416 : TF Modus3>48 THEN

O 0-(R MOD 4)*58 2341NT(R/4)*56 FOR y-YPos TO YPos415 YPos SetAPen& RastPort&,Modusl1*R RectFill& RastPort&,XPos-2,RY,XPos- 2,RY43 SetAPen& RastPort&,Modus2-4y-YPos RectFill& RastPort&,XPos-1,RY,XPos- 1,RY43 FOR x-XPos TO XPos415 TF INKEY$-CHR$(27) THEN Ende RX-(x-XPos)*34XPos RY-(y-YPos)*34 YPos SetAPen& RastPort&,Modus34x-XPos RectFill& RastPort&,RX,RY,RX43,RY43 NEXT x NEXT y NEXTR WHİLE INKEY$-"" : WEND SetAPen& RastPort&,0 RectFill& RastPort&,0,12,320,256 GOTO Basla

YPosz.

Ende: CloseScreen& Sern& LIBRARY CLOSE END

SUB HAMScreen (Titel$,ScreenPointer&) STATIC TitelAdr&-SADD(Titel$) RAMTyp&-2465536&

HAM ve BASIC

Remember&-0 RememberKey&- VARPTR(Remember&) Memory&-AİlocRemember& (RememberKey&,32&,RAMTypP&) TF Memory&-0 THEN FreeRemember& RememberKey&,-1 : EXIT SUB

ENDİF NewScreenStruktur: POKEW Memory&,0 Koordinatı POKEW Memory&*2,0 * Y Koordinatı POKEW Memory&*4,320 *Eni POKEW Memory&-*6,256 * Boyu POKEW Memory&-8,6 * Derinliği POKE Memory&-*10,0 * Yazı rengi POKE Memory&-l1,1 * Arka rengi POKEW Memory&*12,2048 * HAM POKEW Memory&*14,15 * Ekran tipi POKEL Memory&*16,0 * Font için Ptr POKEL Memory&*20,TitelAdr& * İsim için Ptr POKEL Memory&*24,0 * Gadget için Ptr POKEL Memory&-*28,0 *Bitmapler için Ptr

ScreenPointer &-OpenScreen& (Memory&) FreeRemember& RememberKey&,-1 END SUB

Evet, BASIC'e pek az benzeyen bu program biraz gelişmiş tekniklerle dolu. Her şeyden önce yine külliyetli derecede library kullanımı istiyor. Dahası ismi HAMSCREEN olan bir alt program kullanıyor. Üstüne üstlük, tüm ekran parametrelerini ve çizimleri POKE'larla hallediyoruz. Sırayla değinelim. İlk olarak alt program. Bu son derece basit. Alt program, sık kullanılan ve bütünlüğü olan program kısımlarını bir araya toplamaktan ibaret. GOSUB emri ile arasındaki önemli fark, kullanılan değişken değişimi. Sadece gönderilen değişkenler SUB ismini alan program kısmı içinde kullanılıp etkileniyor. Peki diyeceksiniz, burada HAMSCREEN sadece bir kere kullanılıyor, neden SUB yapılmış? Yazarın amacı, kullanıcıların bu SUB bölümünü kendi programlarına ekleyerek kullanabilmelerini sağlamak. Dikkat edin, başla diye isimlendirilen kısma gelindiğinde, elinizde BASIC'ten kullanılabilen bir HAM ekran olacak. Ne var ki, bu ekrana normal çizim komutları ile erişmek mümkün değil. Bu yüzden library komutları kullanılıyor. Bu programı yazmakta amacımız, aslında size programın tüm detaylarını anlatmak değil; sadece değişik ve renkli bir örnek vermek. Başla ile adlandırdığım kısımda son derece sevimli bir şekilde ekrana kutucuklar çiziliyor, matematikle ilgilenenlerin hoşlanacağından eminim.

Gelecek ay bana gelen soruların tümünü cevaplayacağım. O zamana dek hoşça kalın.

Klavyeyle gezinmek için ← ve → tuşları.