AMOS
Retro bilgisayarSelam everybody! Yine, bizimle birlikte geçirecek olduğunuz zaman dilimine girmiş bulunuyorsunuz. Bu ay, program ağırlıklı bir köşe ile karşınızdayız. Bu programların açıklamalarını ilerleyen paragraflarda bulabilirsiniz. Bu programları kendiniz yazabilece- .
ğiniz gibi, dergimizden de talep edebilirsiniz. Bunun dışında, AMÖOS COM-PILER'ın kullanımına da değineceğiz. AMOS COMPILER Bildiğiniz gibi, AMOS, çıktığından bu yana büyük gelişmeler kaydetti. Bu gelişme zincirinin son halkaları AMOS COM-PILER ve AMOS 3D programları. Bunlardan AMOS 3D, üç boyutlu (3D) objeler dizayn edip onları hareketlendirmenize yarıyor. AMOS 3D ile ilgili ayrıntılı bilgi ve komutları yazı dizimizin ilerleyen bölümlerinde — bulabileceksiniz. — AMOS COMPILER programı ise, AMOS'un Türkiye'de bulunan son versiyonu olan AMOS 1.3 ve AMOS 3D ile hazırlamış olduğunuz programları makine diline çevirmeye yarıyor. Hemen paniğe kapılmayın. AMOS 1.3, daha önceki versiyonlarla tamamen uyumlu. Bu yüzden, daha önceki versiyonlarla yazmış olduğunuz programları AMOS 1.3'de yükleyip, saklayarak kolayca AMOS COMPİLER'ın kullandığı formata dönüştürmüş olursunuz. AMOS programına sahipseniz, bir AMOS programını compile edebilmek için üç seçeneğiniz var olur: 1 Compiler AMOS programı ile (AMOS'tan). 2) Compile komutu ile (AMOS'tan). 3) ACMP komutu ile (CLI'dan). veya ACMP komutlarından biri ile compile edecekseniz, program isminin haricinde birtakım parametreleri de kullanmak zorundasınız. Bu parametreler * (eksi) işareti ile başlar ve birer harfle adlandırılır. Bu parametrelerin en önemlileri şunlar: (Oprogram ismi): Bu parametreyi kesinlikle kullanmalısı- İsi bu ile verilen am compile edilen programınızın hangi isim altında ve saklanacağını gösteriyor. Yani program ismi ile birlikte “Disk Path'ını da verebilirsiniz.
ÖRNEK: -Oram:MyProg -T (-Tn): Bu parametre, compile işleminin modunu belirler. Burada, *n”' yerine yazılabilecek değerler ve anlamları şunlar: -TO0 : Workbench modunda compile et. Workbench modunda compile ettiğiniz programları, Workbench ekranından, standart bir Workbench programı gibi çalıştırabilirsiniz (COMPILER tarafından, standart bir ikon eklenecektir.). -T1 : CLI modunda compile et. Bu modda compile ettiğiniz programla- Tı, CLI veya SHELL'den çalıştırabilirsiniz (Programınıza ikon eklenmez.). *T2 : CLI modunda compile et, ancak multitask yüklensin. Bu şekilde compile edilen bir program, yüklenip çalıştıktan sonra, çalıştırıldığı CLI veya SHELL penceresini meşgul etmez. Yani AMOS'u arkaplana atarak bu pencerelerden komut vermeye devam edebilirsiniz. -T3 : AMOS modunda compile et. Bu modu kullanarak compile ettiğiniz programları sadece AMOS'tan kullanabilirsiniz. Bu programlarınızı, AMOS'un normal yükleme ve çalıştırma komutlarıyla herhangi bir AMOS programı gibi ça- Tıştırabilirsiniz. Programa, AMOS'un standart library rutinleri eklenmediğinden dolayı, ilk üç moda göre oldukça kısa olacaktır. -D (Dpr): Bu parametre, compile işlemi sırasında hafıza kullanımının belirlenmesinde kullanılır. *p” yerine yazılacak bir sayı, kaynak dosyanın (compile edilecek AMOS programı), disk ortamından RAM'a, tamamının mı yoksa diskten satır satır okunup mu yükleneceğini gösterir. Pp>0 ise, program tamamen RAM'a yüklenerek compile işlemi yapılır. p-İ ise, program satır satır okunarak compile işlemi yapılır. *r” yerine yazılacak sayı, hedef dosyanın (compile edilmiş module), tamamının RAM'da oluşturulup da mı, yoksa satır satır mı kaydedileceğini gösterir. r-0 ise, hedef dosya RAM'da oluşturulup, sonra kaydedilir.
rzl ise, hedef dosya bölüm bölüm RAM'da oluşturularak diske aktarılır.
: Tüm program RAM'a aktarılsın ve compile edilsin. Tüm işlemler bittikten sonra kaydedilsin (Bu şekilde compile işlemi oldukça hızlanacaktır.). -D10 : Kaynak dosya hafızaya yüklensin ancak, hedef dosya kayıt ortamında oluşturulsun. : Compile edilecek dosya önce RAM'a aktarılsın ve compile işlemi esnasında diske, bölüm bölüm kaydedilsin. -Dl1 : Hafıza minimum kullanılsın ve tüm işlemler disk üzerinde adım adım gerçekleştirilsin (Bu mod, 512K'da çalışanlar için idealdir ve max. 70K hafıza kullanılr.) -E (-Es): Bu parametre, compile edilen programın hata mesajlarını içerip içermeyeceğini gösterir. Eğer (-E0) ise, hata mesajları compile edilen programa eklenmez, s-1 (- El) ise, hata mesajları ekleniyor ve bir hata oluştuğunda ekrana gelir. Hata mesajları, programın compile ediliş türüne göre, farklı şekillerde ekrana yansır: * AMOS modu: Normal AMOS programlarındaki gibi ekrana gelir. * WB modu: Bir ALERT BOX içinde ekrana yansır. * CLI modları: CLI'da, text olarak gö-
Tülür. -S (-Sg): Bu parametreyle compile edilen program çalıştıktan sonra, default ekranın açıaçılmayacağı belirlenir. Bu ekran, AMOS'un standart 320x200x16 formatındaki lowres ekranıdır. -S0 verildiğinde, default ekran açılmaz. -SI verildiğinde ise açılır. “W (-Wx): Bu parametre ile compile edilen programınız yüklendikten sonra WB ekranının görünürde kalıp kalmayacağı belirlenir. -WO verildiğinde, AMOS sistemi ön planda kalır. “WI verildiğinde, WB ekranı ön planda kalır. Bu işlem, Amos To Front komutunun sonucu ile aynıdır.
Çok çok uzun bir programı compile ettiğinizde, compiler programı bazen | “Program Structure Too Long mesajını verebilir. Bu durumda, programınızı *L opsiyonu ile compile etmelisiniz. ACMP KOMUTU İLE COMPILE ETME: AMOS COMPILER programını veya kopyasını disket sürücüye koyun; ancak, yüklenmesini ile durdurarak CLI'ya geçin. Ardından şu komutu vererek istediğiniz programı compile edebilir- | siniz: ('Program.AMOS' yerine kendi programınızın ismini yazın.)
| 1> AMOS SYSTEM/ACMP program-
“amos -Oprogram -T1 -DO0 -S0 -El Burada örnek olarak verdiğimiz parametreler ile, *program.amos' isimli progrTamımız, “program' adı altında, hata mesajlarını da içerecek şekilde (-E1), default ekran açılması engellenerek (-SO), compile işleminde minimum RAM kullanılarak CLI modunda (-T1) compile edilir. “-0O” parametresinde hedef dosyanın path'ını belirtmediğimiz için, o anki path kullanılarak, açılışta kullanılan diske kaydedilmek istenir. Artık, şu komutu kullanarak programınızı çalıştırabilirsiniz: 1> program Compile KOMUTU İLE CÖMPILE ETME: AMOS COMPİLER diskini takın ve AMOS yüklenene kadar bekleyin. Ardından, direkt moda geçin ve eğer hafızanız 512K ise Close 0” ile default ekranı kapadıktan sonra şu komutu deneyin: yerine kendi programınızın ismini yazın.) AMOS> Compile "Program- *AMOS -Oprogram -T1 -DO0 - SO-E1" Bu compile işlemi ve anlamları için ACMP komutunun açıklamasına bakınız. Sevgili arkadaşlar! Kusura bakmayın, AMOS 1.3'ün ekstra komutlarını yer sorunu nedeniyle bu ay veremedik. İnşallah gelecek aya... Hala program göndermemekte ısrar ediyor olmalısınız. Bu direncinizi kırmak için ne yapmak gerekli? A bientot !
akk ak
*
AMOS (C) 1990
* Europress Software, Ltd. *
*
** PALET DEĞİŞTİRME PROG. *
*
A$-Fsel$("","","Bir IFF Resim Seçiniz")
If A$—"" Then Edit
Load Iff A$,0
DISCOLOUR)|0,2,21
BOSdure SCR. CONT
IS-Screen
Goto SCR CONT
SCRS»LefSISCRS.LeNSCRS)-I)+*O*
SCR CONT:
On Error Goto HELP
For A-B To 7
SCR$-SCR$4"1" : BzA
Screen A
Next
Screen 1S
End
Procedure DISCOLOUR(FR,YR,CR)|
Dim W(5),Y(2)
SCR CONT
Screen To Front Screen
Colour : Paper FR
If Then Pop Proc
If YR>SC or FR>SC Then Pop Proc
If CR>SC or FR<-CR Then Pop Proc
SCW-Screen Width
Height
If SCW<80 or SCH<160 Then Pop Proc
Limit Mouse 128,42 To SCW-4-128,SCH
450
XX-X Curs : YY-Y Curs : Curs Off
Reserve Zone SC420
Get Cblock 4114,0,0,80,160
Cls FR,0,0 To 80,160
Pen YR : Ink CR,FR
For Az0 To 15
göstergesini "ekrana basar.
A$-SIr$(A)-" "
If A>9 : Read A$ : End If
Text 41,127-A*8,A$
IFA<8
SCR$-Param$
SCR- Val(Mid$(SCR$,A41,1))
If
If SC>2
If
Pen 3 Else Pen YR
End If
End 1f
Locate A41,18
Print Str$(A)-" "; : Pen YR
Set Zone A41,A*848,144 To A*84-16,152
End If
End If
'R, G, B kutularını 'çizer ve set zone "komutuna tanımlar.
W(A)-56
Box D,0 To D48,129
Set Zone 94A,D,2 To D48,127
End If
Next
Locate 0,17 : Print "OK"
Set Zone 12,0,136 To 16,144
For To SC-I
"renk kareciklerini" ekrana basar ve "set zone" komutuna tanımlar. B1=(A/4+1)*8-6
B2-B146
mod 441)*10
Cis To A1,B2
Set Zone A413,A1-8,BI To A1,B2
Next
Do
“mouse ile hangi
"ikona basıldığını
“kontrol eder.
If NoO
Repeat
While Mouse Key
Multi Wait
Wend
Repeat
Repeat
Multi Wait
Zone
Until M>O
N=M : MK=0
and NEM
Multi Wait : MK-Mouse Key
N—Mouse Zone
Wend
If
Y-Y Screen(Screen)
YzInt(Y/8)
Exit 2
End If
Until MK
Until and M<>0
End If
If N-0 Then :
and N<8
"ekran değiştirilirken "eski blok eski ekrana
Screen N-1
Screen To Front N-1
Exit
End If
Put Cblock 4114,0,0
Del Cblock 4114
Exit
End If
If and Y<16
"hangi rengin seçildiğini "kontrol eder
Locate 3,
Print "Renk-";RENK$;
Print Space$(2-Len(RENK$))
"seçilen rengin ikonlarını çizer
WSHUMRENKOU 32
6*WO3)
L-W(3)*256)/16
15-W(4))*841
6*W(4)
15-W(5))*841 :
For A-0 To 2
K-l10*A452
W(A43)-Y(A)
Cls FER,K,W(A) To K45,W(A)4-8
Cls CR,K,W(A43) To
Next
End If
and N<12 and Y<16
VERI
"ikonlar yardımıyla renk "ayarlanmasını sağlar. eski ikonları silerek, “yeni yerlerine çizer.
: :
If
R>256*Z
End If
Cls FR,X,K To X45,K4-8
Cls CR,X,W To X45,W-4-8
Ci 'olour RENK,A
End If
RENK$-RENK $4-Space$(9-
Print
Loop
Locate XX,YY
End Proc
kak
AMOS (C) 1990 Europress Software, Ltd.
SÜRPRİZ PROGRAM
ak ak ak ak
Set Buffer 15
Dim X(55,7,7)
HARFLER
ACILIS
Paper 0 : Pen 31
Print At(0,14)4" Adınız Nedir..:"
HARF GIRISI17,14,17,4
Procedure VERİ
For LIK-0 To 15
Read X,Y,M,B$
mod 4,0)
Next
Read X,Y,M,E$
PRG|Y,X,M,E$,0,0,31)
Wait Key
Shift Up 2,1,30,1
Wait Key
Data 0,12,1
Data "HAYRETTİN YILDIZ"
Data 1,11,1
Data "MURAT YILDIZGÖRER"
Data 2,13,1
Data " SUCKLINGS"
Data 3,13,
a MILK"
Mil BOYS"
ata '"MILK CHILDS"
Data "MILK CHILDREN"
Data 9,15,2
Data "MILK MANS"
Data 12,16,3
Data "MILK MEN"
Data 13,11,3
Data "WHICHEVER SUCK-
LING"
Data 14,2,3
Data "THEİR MOUTH 1S
TO SMEELİNG THE MİLK."
Data 15,9,3
Data "HE'S
GREENHORK
JUST A
UCKLNG LAMBS"
Data 19,12,4
Data "FOSTER
HERS"
Data 20,15,4
Data "FOSTER SON"
Data 21,5,4
Data HIS BETWEEN
BROT
End Proc
Procedure ACILIS
Screen Open 0,320,256,32,Lowres
Hide : Curs Off : Flash Off : Cls 0
For A-0 To Screen Colour-1
Read C : Colour A,C
Next
Wait Vbl
Data 0,$F00,$F30,$F60,$F90,$ECO
Data
End Proc
Procedure HARFLER
Shared X()
Screen Open 0,32,32,2.
Screen Hide
Cls 0 : Paper 0
Curs Off: Ink 1
,Lowres
Home : Print
For X—0 To 7
For Y-z0 To 7
X(A,Y,X)-Point(X,Y)
Next
Next
Next
End Proc
Procedure CIZIM|XE,YE,B$,CM,R,ER,
RENK|
Shared X(),K,X,Y
$4"OÖPORSŞTUÜVWXYZ"
' 0123456789"
D-YE*84-Y
C$-Mid$(B$,K,1)
SCzScreen Colour-2
Hf H>-1
VERİ-X(H,Y,X)
If VERİ<>0O
mod SC)41
If CM-0
R-Rnd(SC)41
End If
If RENK<>FR
R-RENK
End 1f
Plot C,D,R
Else
Plot C,D,FR
End If
End If
End Proc
Procedure HARF GIRISIX,Y,C,M,ER,
AS-"ABCDEFGHUKLMNO-PORS-
AS-AS+ [V"&_7_0123456789"
CM,RENK|
TU- VWXYZ"
B-X
' 0123456789 "
$)
B$-İ Mid$(C$, Instr(D$,B$),1)
Exit
End 1f
B$-Upper$(B$)
S-Scancode
Exit If InstrÇA$,B$)>0 or or
Sz65 and X>B
Dec X :
ENTRY$-Left$(ENTRY$,Len
(ENTRY$)-1)
PRG|X,Y,M,B$,FR,CM,RENK |
End If
If Len(ENTRY$)<C41
If S<>65 and S<>68
|
ENTRY$-ENTRY$4B$
Inc X
End If
End 1f
Exit If S-68 or C>X-B
Loop
End ProcJENTRY$)|
Procedure PRG|XE,YE,M,B$,FR,CM,
RENK|
Shared X(),K,X,Y
UzLen(B$)
or
For To U
:
To 7
:
For To7
If and(X mod 3)-0
End If
If
F-Y:G-X
Swap X,Y
End If
CIZIM|XE, YE,B$,CM,R,FR,RENK|
X-G :
End If
Next
Next
Next
End 1f
If M>2 or
For To7
: İnc R :
For X-0 To 7
If CM>2 : İnc R : End If
If M->3
F-Y:G->X
Swap X,Y
End If
For K-1 To U
I£ CMX3 and(K mod 3)-0
End 1f
CIZIM|XE,YE,B$,CM,R,FR,RENK |
Next
If M->3
X-G :
End If
Next
Next
End 1f
End Proc