AMİGA BASIC ~2~
Retro bilgisayar

İlk sayımızdaki Amiga BASIC yazısı ile Basic ile tanıştınız değil mi? Bu sayıda, aynı örnek ile birazcık oynayacak ve BASIC ile ilgili anlatımlarımızı sürdüreceğiz.
LİSTE PENCERESİNDE NASIL HAREKET EDİLİR?
Liste penceresinde satırlar arasında yukarı ve aşağı hareket etmek için, klavyede bulunan yukarı ve aşağı ok tuşları, kursor'u aynı satırda sağa ve sola hareket ettirmek için ise sağa ve sola ok tuşları kullanılır.
Program listesini pencere pencere yukarı kaydırmak için SHIFT ve yukarı ok tuşuna birlikte basmak gerekir. Listeyi aşağı kaydırmak için ise SHIFT ve aşağı ok tuşları kullanılır.
Program listesinin ilk satırına gitmek için ALT ve yukarı ok tuşları, son satırına gitmek için ise ALT ve aşağı ok tuşları birlikte kullanılır.
Kursor'u bir satırın sağ kenarına yani satırın başına yerleştirmek için ALT ve sağ ok tuşu; sol kenara yani satırın sonuna getirmek için ise ALT ve sol ok tuşu kullanılır.
SHIFT tuşu ile sağ ve sol ok tuşlarına basmak, bir program satırında sağ ve sol kenara doğru °7o 75 kayma sağlar.
BİR AMİGA BASIC PROGRAMINI EDİTLEME:
Amiga BASIC liste penceresinde bir programı editlemek yani düzenleme ve düzeltme yapmak, aynen bir kelime işlem programında olduğu gibidir. Bu tür programlardan tanıdığınız Cut, Copy ve Paste gibi komutlar, Amiga BASIC'te Edit menü başlıı altında sıralanmıştır.
Bir program satırında araya yeni yazı sokmak için, önce seçim düğmesi istenen yerde kliklenerek kursor yerleştirilir. Sonra da yeni yazının karakterleri girilir.
Satırdan bir karakteri ya da bir karakter grubunu silmek için yine kursor karakterlerin silineceği yere yerleştirildikten sonra; BACKSPACE tuşu ile kursor'un solundan bir karakter, DEL tuşu ile de kursor'un sağındaki bir karakter silinebilir.
Bir kelimeyi seçmek için, işaretçi kelimenin üzerine getirilerek mouse'un seçim düğmesi ile iki kez klik yapılır. Bu işlem yapıldığında, kelime seçildiğini belirten portakal rengi bir çubuk ile kaplanır.
Geniş bir proram parçasını seçmek için kullanılabilecek iki yol vardır. Birinci yol, kursor seçilecek kısmın başına yerleştirildikten sonra bölüm sonunda SHIFT tuşunu basılı tutarak seçim düğmesi ile klik yapmaktır. İkinci yol ise, bölümün başında seçim düğmesi ile klik yapmak ve düğmeyi bırakmadan mouse'u çekerek İstenen yere kadar işaretlemektir, îstenen bölümün sonuna gelindiğinde seçim düğmesi bırakılır. Seçilmiş bu blok artık kelime işlem programlarında olduğu gibi, Amiga BASIC'te de Cut ya da Copy işlemlerine tabi tutulabilir. Liste penceresini genişletmek isterseniz, bu işlemi herhangi bir Workbench penceresini genişletir gibi yapabilirsiniz.
PICTURE PROGRAMININ SATIR SATIR AÇIKLAMASI:
Picture program satırlarında değişiklik yapmadan önce istersiniz program akışını satır satır inceleyelim. Bu sayede yapılacak değişikliklerin daha rahat anlaşılacağından eminiz.

[A] BASIC tamsayılar için P ile Z arasında bir harf ile başlayan değişken isimlerini kabul edecektir. [B] 2500 eleman boyutunda bir dizi ya-
ratır.
[C] Çıktı penceresini siler.
[D] (0,0) ve (120,120) noktaları ile ta-
nımlanmış bir dikdörtgen çizer ve içini doldurur. [El ASPECT değişkenine 0.1 değerini
yerleştirir.
[F] ASPECT 20 olduğu sürece aşa-
ğıdaki işlemleri yapar.
[G] Merkezi (60, 60), yarıçapı 55, rengi
0 (mavi) ve elips parametresi =
ASPECT olan bir elips çizer.
[H] ASPECT değerini artırır.
[I] ASPECT = 20 olduğunda dön-
güden çıkar. [J] Pencerenin bu kısmının içeriğini P
dizisine kopyalar.
[K] Mouse durumunu kontrol eden
CheckMouse adlı bir rutin başlar. [Ll Mouse'un seçim düğmesine basılana kadar bekler. [M] Mouse X yönünde en az 3 nokta hareket etmişse, program MovePicture'a dallanır. [N] Mouse Y yönünde en az 4 nokta ha-
reket etmişse, program CheckMou-
se'a dallanır.
[O] MovePicture adlı rutini başlatır ve
P dizisine saklanmış resmi hareket ettirir. [P] Resmi eski yerleşiminden siler. [Q] Mouse'un yeni koordinatlarını X ve
Y'ye yerleştirir. [R] Resmi yeni X ve Y yerleşimine P di-
zisine kopyalar.
[S] CheckMouse rutinine geri döner.
PROGRAMA YENİ BİR SATIR EKLEMEK:
Programa satırları arasına, ekrana ikinci bir elips çizdiren komut ekleyelim. Bu elipsin merkezi 200,60 ve yarıçapı yine 55 olsun. İkinci elips resminin mavi değil de portakal rengi çizilmesini sağlayalım.
Yeni satırı, ilk elips çizdirme satırı olan KUTU1'deki [G] satırı altına yazacağız. Bunun için önce CIRCLE komutunun bulunduğu satırın sonuna kursor'u yerleştirerek RETURN tuşuna basalım. Bu işlem, satırın altında boş bir satır açacak ve kursor'u buraya yerleştirecektir. Şimdi bu satıra yeni komutumuzu girebiliriz:
• CIRCLE (200,60), 55,3,,ASPECT Bu komutu girdikten sonra programı çalıştırırsanız, eklediğiniz komutun yarattığı değişikliği göreceksiniz.
BİR PROGRAM SATIRINI DEĞİŞTİRME:
KUTU1'de [J] harfi ile etiketlenmiş GET yönergesini ilave ettiğimiz satırla bağlantılı olarak değiştirelim. Komut satırının tamamını seçelim ve Edit menüden "Cut" komutunu seçerek satırı silelim. Bu işlemi yaptığımızda satırdaki komut silinir, ancak ilgili satır boş kalır. Bu boş satıra yönergeyi yeni şekliyle girelim:
GET (0,0)-(327,127),P Bu yeni GET yönergesi ile mouse kliklendiğinde hareket edecek alan arttırılmış olur.
Şimdi de 2500 elemanlık P dizisini 6000'e çıkartalım. Kursor'u boyutun tanımlandığı [B] satırındaki 2500 sayısına yerleştirdikten sonra istediğiniz şekilde silerek yerine 6000 yazın. Artık iki şekil mouse'u kliklediğinizde ya da çektiğinizde birlikte hareket edeceklerdir.
RENK DEĞİŞTİRMEK:
Biliyorsunuz programın çizdiği ilk elips mavi zemin üzerine beyaz bir dikdörtgen çizildikten sonra, buraya beyaz olarak yerleştiriliyordu. Gelin bunu ters çevirelim:
Önce kursor'u LINE yönergesindeki BF'nin sonuna yerleştirerek F harfini silelim.
İlk elipsi çizen CIRCLE komutunda [G] 0 olarak verilen renk numarasını 1 olarak değiştirelim.
Şimdi programı çalıştırdığınızda yeni program sonucunu göreceksiniz.
PROGRAMIN KAYDEDİLMESİ:
Programda yapacağımız değişiklikler bu kadar. Artık programı yeni şekliyle disketinize kaydetmelisiniz. Diskete kayıt için kullanılacak iki seçenek var: Her ikisi de Project menü altında bulunan Save ve Save As seçenekleri. Save programı yüklendiği isimle ve onun üzerine kaydeder. Yani eski program kaybolur, onun yerine yeni program yerleşir. Save As seçeneği ise, yeni bir isimle programı kaydetmek için kullanılır. Orijinal programa zarar vermemek için, siz de Save As seçeneğini kullanarak programınızı yeni bir isimle kaydetmelisiniz.
Bunun için: Project menüden "Save As" kalemini seçin. Ekrana program ismini gireceğiniz bir istek penceresi gelir. Pencerenin isim girilecek bölümünde programın orijinal ismi yazılıdır.
İsim kutusunu klikleyerek kursor'u yerleştirin ve ismin sonuna 1 ekleyin. Yeni program isminiz Basicdemos/picture 1 olacaktır.

RETURN tuşuna basarak ya da OK kutusunu klikleyerek programın diskete kaydedilmesini sağlayın.
Amiga BASIC başlık çubuğunda sıralanan 4 menü başlığı vardır: Project, Edit, Run, Windows. Menü seçeneklerinin klavye karşılıkları varsa komutun yanında belirtilmiştir. Şimdi bu menü seçeneklerinin ne işe yaradığını kısaca açıklayalım:
PROJECT MENÜ:
Program dosyaları ile ilgili işlemlerde kullanılan 5 seçeneğe sahiptir.
NEW: Amiga BASIC'e yeni bir program girişine hazır olmasını bildirir. O anda mevcut program listesini ekrandan ve bellekten siler. Çıktı penceresinden doğrudan modda yazılan NEW komutu ile aynıdır.
OPEN: Diskette mevcut bir programı çağırmak için kullanılır.
SAVE: Programı o anki ismiyle diskete kaydeder.
SAVE AS: SAVE ile aynı işleve sahiptir. Sadece program ismini değiştirmenize olanak sağlar.
QUIT: Amiga BASIC'e Workbench'e dönmesini bildirir. Çıktı penceresinden doğrudan modda yazılan SYSTEM komutu ile aynı işleve sahiptir.
EDİT MENÜ:
Edit menü program girişi ve editlemede kullanılacak 3 seçeneğe sahiptir. Bu seçenekler sadece liste penceresinde kullanılırlar.
CUT: Seçilen yazı parçasını liste penceresinden siler ve clipboard'a yerleştirir. Aynı işlem klavyeden Amiga-X tuşları ile yapılabilir.
COPY: Seçilen yazı parçasını liste penceresinden silmeksizin clipboard'a yerleştirir. Aynı işlem klavyeden Amiga-C tuşları ile yapılabilir.
PASTE: Clipboard'un içeriğindekiler ile o anda seçili olan kısmı değiştirir. Seçili bir şey yoksa, clipboard'un içindekiler kursor'un sağından itibaren yazının arasına sokulur. Aynı işlem klavyeden Amiga-P tuşları ile yapılabilir.
RUN MENÜ:
Programın çalışmasının kontrolünde kullanılan 6 komuta sahiptir.
START: Bellek ve ekranda yüklü bulunan programı çalıştırır. Çıktı penceresinde doğrudan modda RUN yazmak veya Amiga-R tuşlarına basmak da aynı işi yapar.

STOP: Programın çalışmasını keser. Çıktı penceresinde doğrudan modda STOP yazmak, Amiga-nokta veya CTRL-C tuşlarına basmak da aynı işi yapar.
CONTINUE: Tamamen ya da geçici olarak durdurulan (pause) bir programı çalıştırır. Doğrudan modda CONT komutu verilerek de aynı işlem yaptırılabilir. Bu menü seçeneği yalnız aktif olarak durdurulmuş ve devamı mümkün olan hallerde çalışır. Program bir hata nedeniyle durmuşsa ve bu arada programda bir değişiklik yapıldıysa, program "Can't continue" (Devam edemez) mesajı verir.
SUSPEND: Programı herhangi bir tuşa ya da Amiga-S tuşlarına basılana kadar geçici bir süre durdurur. Amiga-S ya da CTRL-S tuşlarına basmak da aynı işi yapar. Suspend, bir programın çalışması esnasında da mümkündür.
TRACE ON/OFF: Hata ayıklama işlemi için izleme olanağını açmak ya da kapatmak için kullanılır. Tracing (izleme) açık (ON) olduğunda liste penceresinde çalışan her komut sırayla dikdörtgen içine alınarak işaretlenir. Bu olanak, bir hata ortaya çıktığında programın nerede takıldığını anlamanıza yardımcı olur. Trace off yapıldığında, izleme işlemi durdurulmuş olur. Çıktı penceresinde doğrudan modda Trace On seçmek yerine TRON, Trace Off seçmek yerine de TROFF yönergeleri verilebilir.
STEP: Programı bir anda bir adım olarak çalıştırır. Eğer bir program çalıştırılmış ve durdurulmuşsa; Step, STOP yönergesini takip eden ilk yönergeyi çalıştırır ve doğrudan moda geri döner. Eğer satırda birden fazla yönerge varsa, her yönergeyi tek tek çalıştırır ve durur. Step'i klavyeden Amiga-T tuşları ile de çalıştırabilirsiniz. Liste penceresi görüntüde ise, çalışmakta olan yönergenin çevresi içi boş bir dikdörtgen ile çevrilerek belirtilir. Bu komut size bir programı adım adım izleyebilme şansını verir.
WINDOWS MENÜ:
Amiga BASIC ekranında pencereleri açmak için kullanılan iki seçenek vardır.
SHOWLIST: O anki programın liste penceresini açar. Liste penceresi açıksa fakat çıktı penceresi tarafından kapatılmış durumda ise, Show List komutu bu pencereyi öne alır. Menüden seçmek yerine Amiga-L tuşlarına basmak ya da doğrudan moddan LIST komutunu vermek yoluyla da liste penceresinin görüntülenmesi sağlanabilir.
SHOW OUTPUT: Çıktı penceresini açar. Liste penceresinin çıktı penceresinin önünde olduğu durumda, çıktı penceresini klikleyerek öne alabilirsiniz.
AMİGA BASIC'İN İŞLETİM KURALLARI:
Şu ana kadar Amiga Basic'in yüklenmesi, program dosyalarının çağrılması, editlenmesi ve kaydedilmesi işlemlerini örneklerle gördük. Bu bölümde de bu işlemleri kuralları ile sınırlayalım:
Amiga Basic'i Çalıştırma
Bu işlem için iki yol var: • Workbench'ten Amiga Basic ikonunu açmak.
• CLI ekranında, 1 > AmigaBasic yazarak RETURN tuşuna basmak.
• Workbench'te herhangi bir Amiga Basic programının ikonunu çift klik yaparak yüklemek. Bu işlem yalnızca Amiga Basic'i açmakla kalmaz, aynı zamanda seçtiğiniz programı da yükler ve çalıştırır.
Amiga Basic'ten Çıkmak ve Workbench’e Dönüş
Bu işlem için de aşağıdaki iki yoldan biri kullanılabilir:
• Menü çubuğundaki Project menü başlığı altındaki "Quit" komutunu seçmek.
• Çıktı penceresine system yazıp RETURN tuşuna basmak ya da bir Amiga Basic program içine SYSTEM komutunu yerleştirmek.
Amiga Basic'te Yazılmış Bir Program Dosyasını Yüklemek:
Mevcut bir Amiga Basic programını çalıştırmak için, önce bu programın belleğe yüklenmesi gerektiğini biliyorsunuz. Programın belleğe yüklenmesi için birçok yol var:
• Workbench'te iken Amiga Basic program ikonuna mouse'un seçim düğmesi ile çift klik yapmak.
• Amiga Basic açılmış ise, Project menüden "Open" komutunu seçerek çıkan istek penceresine programın ismini girmek ve RETURN tuşuna basarak ya da OK kutusunu klikleyerek işlemi onaylamak.
• Amiga Basic açılmış ise, çıktı penceresinden,
LOAD "program adı" ya da RUN "program adı" komutlarından birini vererek RETURN tuşuna basmak.
• Bir Amiga Basic programı halihazırda yüklü ise, bir başka programı yüklemek ve çalıştırmak için CHANGE yönergesi kullanılabilir.
Bir Amiga Basic Programı Kaydetmek:
Yeni bir Amiga Basic programı kaydetmek için ya Project menüdeki "Save As" seçeneği kullanılır ya da çıktı penceresinden SAVE yönergesi verilir. Daha önce yazılarak kaydedilmiş bir programı değiştirerek tekrar kaydetmek için ise; yine çıktı penceresinden SAVE yönergesi verilebileceği gibi, Project menüden "Save" seçeneği kullanılabilir.
Amiga Basic normalde tüm programları sıkıştırarak kaydeder. Bir programın bozulmasını önlemek için korumalı ya da bir kelime işlem programından okunabilmesi veya MERGE komutu ile kullanılabilmesi için ASCII kodları ile kaydetmek isterseniz, programı gereken opsiyonları belirterek çıktı penceresinden vereceğiniz SAVE komutu ile kaydetmelisiniz. Kullanılabilecek opsiyonlar ve anlamları komut açıklamalarında verilecektir. ASCII kodları ile kaydedilmiş bir dosyayı sonradan sıkıştırılmış bir dosya haline çevirmek için, herhangi bir opsiyon kullanmaksızın sadece SAVE komutunu vermelisiniz.
AMİGA BASIC'İN İŞLETİM MODLARI:
Amiga Basic'i açtığınızda, çıktı penceresi BASIC ismi ile komut kabulüne hazır olarak görüntülenir. Bu noktada Amiga Basic'in üç modundan birini kullanabilirsiniz: doğrudan mod, edit modu ve program çalıştırma modu.
Doğrudan Mod: Bu modda Amiga Basic komutları bellekte saklanmaz, çıktı penceresine girildiklerinde derhal yerine getirilirler. Gereken matematiksel veya mantıksal işlemlerin sonuçları doğrudan buradan alınabilir. Bu mod özellikle hata ayıklama işlemleri için çok faydalıdır.
Program Çalıştırma Modu: Bir program çalıştırıldığında, Amiga Basic bu moda geçer. Program çalıştığı sürece doğrudan moddan bir komut veremez ve liste penceresinde herhangi bir değişiklik yapamazsınız.
Edit Modu: Liste penceresindeki çalışmalarınız sırasında içinde bulunduğunuz moddur. Burada verilen komutlar program çalıştırılmadıkça yerine getirilmez.

GENEL GİRİŞ/ÇIKIŞ CİHAZLARI
Bu bölümde sisteme bilgi giriş ve çıkışının nasıl yapıldığını, Amiga Basic'in dosya ve cihazları nasıl kullandığını inceleyeceğiz. Bunun dışında dosyaların yönetimi ve Amiga Basic ile kelime işlem programları arasında data transferi konularına da açıklık getirmeye çalışacağız.
Amiga Basic, bilgisayarların genel kullanımındaki standart giriş/çıkış cihazlarını destekler. Bunun anlamı, bu tür cihazlara bir disket dosyasına erişilmiş gibi erişebildiğidir. Desteklenen bu cihazlar şunlardır:
SCRN: Dosyalar çıkış için ekran cihazına açılabilir. Tüm dataların hedefi olan bu cihaz da o anki aktif penceredir.
KYBD: Dosyalar giriş için klavye cihazına açılabilir. Dosyaya girecek tüm datalar Amiga klavyesinden okunur.
LPT1: Dosyalar çıkış için printer cihazına açılabilir. (Bu, PRT: cihazı ile aynıdır.) Tüm datalar LPT1: olarak açılan satır yazıcısına (yine printer) gönderilir.
LPT1:, bir Microsoft cihaz ismidir. Bu yolla farklı bilgisayarlar arasında standardizasyon sağlanmıştır.
Cihaz LPT1:BIN belirtilmişse, Amiga Basic satır yazıcısına binary (ikili) çıktı gönderir. Binary opsiyonu, tabları boşluklar içine yaymaz ve printer genişliği aşıldığında Return koymaya zorlamaz.
COM1: Dosyalar giriş ya da çıkış için bu cihaza açılabilir. Bu, Amiga'nın seri portundan iletişim kurulan bir cihazdır. Amiga Basic, aşağıdaki parametreleri "COM1:" dosya adının parçaları olarak tanır:
COM1:[baud-rate|,[parity],[databits].[stop-bits]]|
Buradaki değerler iletişim kurulan seri cihazın el kitabında da belirtilir.
Baud rate: Amiga iletişim hızıdır. Bu rada belirtilen hız, Preferences bölümünde verilen değere göre öncelikli duruma geçer, yani bu değer kullanılır. Baud rate şu değerlerden biri olabilir: 110, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 9600 veya 19200. Parity: Oluşabilecek iletim hataları için bir tekniktir. Tanımlı değer E'dir. Parametrenin değeri O (Odd = Tek), E (Even = Çift) veya N (None = Hiçbiri) olabilir.
data-bits: İletilen her byte içindeki bitlerdir. Bunlar gerçek datalardır ve parity bitleri ve stop bitlerini aşamazlar. Parametre değeri 5, 6, 7 ya da 8 olabilir.
stop-bits: İletilen "byte"ın sonunu işaretlemek için kullanılır. Baud rate 110 iken tanımlı stop bits 2'dir. Diğer tüm baud rate değerlerinde, bu alan 1 olarak tanımlı gelir. 2 stop bits, 5 data bits belirtilmişse 1.5 stop bits kullanılır.
ÖRNEK:
ÖPEN "COMİ: 300, N, 7, 2" AS 1
PRİNTER SEÇİMİ:
Amiga, Workbench'teki Preferences aracında listelenen çeşitli printerleri destekler. Amiga Basic çıkışınızda marjın ayarlamaları, italik yazı stili gibi özellikler kullanmak isterseniz, bunların özel printer kodlarını belirtmelisiniz.
Amiga desteklediği her printer için bir "Printer Driver"ına yani her yazıcının kendi özel karakterlerini, karşılık gelen standart printer kodlarına çeviren bir program içeren sürücüye sahiptir.
Amiga DOS'ta üç printer cihazı vardır: PRT:, SER: ve PAR:. PAR: ve SER: cihazları, çıkışı paralel ya da seri porttan gönderir. Bunlar printer kodlarını değiştirmezler. Seri uygulamalar terminal emülatörü ya da bilgisayarlar arası data transferi gibi çalışırlar ve COM 1: cihazı ile aynı parametreler belirtilir.
PRT: cihazı, LPT1:'e karşılık gelir. Program çıktınız için özel format isterseniz, programınızın PRINT yönergesinde uygun printer kodlarını vermelisiniz.

AMİGA BASIC™ DOSYA İSİMLENDİRME:
Amiga Basic'te dosya isimlendirme konusunda pek çok sınırlama vardır. Dosya ismi, opsiyonel bir disket adı (ya da sürücü numarası) ve/veya bir ya da daha çok iç içe geçmiş alt directory ismi ile başlar. Dosya için tüm bu bildirimler "pathname" olarak isimlendirilir.
DOSYA İSMİ:
Amiga Basic pathname'leri 1'den 255 karaktere kadar uzunlukta, büyük ya da küçük harf alfanümerik karakterlerden oluşur. Büyük ve küçük harflerin kombinasyonu da kullanılabilir. Geçerli dosya isimlerine DOSYA, kaydırma, Grafik-1, Adres KAYIT gibi örnekler verilebilir.
Herhangi bir Amiga Basic program dosyası ilave bir sürücüde takılı ayrı bir disketten ya da aynı sürücüden, ancak program disketi dışında başka bir disketten çağrılacaksa, disket sürücü ya da disket adı (Volume) pathname'in parçası olarak belirtilir. Bunun için sürücü veya disket adı, program ismi önüne yazılarak iki nokta üst üste ile ayrılır: Programlar: Deneme ya da DF1: Grafik gibi. Volum yani disket adı, diskete verilen isimdir ve Workbench ekranında disketin altında görüntülenir.
Pathname içinde, bir alt directory içinde bulunan programı belirtmek için, alt directory ismi program ismi önüne yazılarak bir "/" işareti ile ayrılır:
DOSYALAR/Adres, DF1:Resimler/resim1 gibi.
AMİGA BASIC İLE KELİME İŞLEM PROGRAMLARI ARASINDA DATA TRANSFERİ NASIL YAPILIR?
Bir Amiga Basic programın istediğiniz herhangi bir kelime işlem programından okunabilmesi için, programın mutlaka ASCII kodları ile kaydedilmiş olması gerekir. Bu işlem için programı kaydetme esnasında Save komutu doğrudan modda aşağıdaki gibi verilmelidir:
SAVE programadı, A
Bu komutla diskete ASCII olarak kaydedilen program dosyası, kelime işlem programları tarafından okunabilir.
Bu ayki Amiga Basic dersimiz bu kadar. Gelecek sayıda Amiga Basic'in yapısal özelliklerini inceleyeceğiz. Sonra da Basic komutlarını teker teker öğrenmeye başlayacağız. Soru ve eleştirilerinizi yazmayı ihmal etmiyorsunuz değil mi?
