. TEKNİK AÇIDAN AMIGA
14. SPRITE
Sprite adı verilen grafik elemanı, bit noktalı bir gösterim elemanıdır. Pozisyonunu değiştirmek için, sadece sol üst köşesinin koordinatını yeniden vermek yeter. Sprite'lar, görüntü alanlarından bağımsızdır ve verilen önceliğe göre, bunların önünde veya arkasında görünebilirler. AMIGA'nın, donanım olarak belirlenmiş sekiz adet mevcuttur. Bunların her birinin üç değişik rengi olabilir. (Sprite'lar görüntü alanlarıyla karşılaştırılınca iki bit yüzeyi derinlikte oldukları görülür; bunun sonucunda dört renk kombinasyonu yaratılır. Bunlar, üç renk ve saydamlıktadır.) AMIGA'nın sprite'ları, 16 düşük çözünürlüklü nokta genişliğinde ve herhangi bir yükseklikte olabilir. Her bir sprite çifte, üç değişik renk palet değerini paylaşır. (Örneğin, 0 ve 1'inci sprite'lar 17, 18 ve 19 numaralı renk register'lerini, 2 ve 3'üncü sprite'lar 21, 22 ve 23 numaralı renk register'lerini, vs. kullanırlar.) Böylece 8 sprite, toplam olarak 12 değişik rengi kullanır. Çift olan sprite'lar birbirleriyle birleştirilebilirler. (Mesela, 0 ve 1 numaralı sprite'lar.) Bunun sonunda dört bit yüzeyi derinlikte sprite'lar elde ederiz. Birleştirilmiş sprite çifti 17'den, 31'inci renk register'ine kadar 15 değişik renk kullanabilir.
AMIGA'da genelde geçerli olan şey, görünen basitliğin altında zorluğun yattığıdır. Sprite, aslında o anki gösterim satırı üzerinde yer alan 16 bitlik bir değerdir. Bunu yaratmanın iki yolu vardır. Birincisi, manual yöntemdir. Her satırda, sprite'ın verilerini ekrana siz gönderirsiniz. (Tabii ki bu yöntem oldukça zor kullanımı olduğu için pratikteki kullanım değeri sıfır.) İkinci yöntem otomatik yöntemdir. Bunda, sprite'ların DMA kanalını aktive edersiniz. Sprite devresi hafızada belli bir yerde bulunan ve sprite'ın pozisyonunu ve satır satır tanımlanmış şeklini içeren veri yapısını alır ve çizer. Bundan başka, sprite'ın tanımını, daha o sprite çizilirken değiştirmeniz mümkün. Sprite devresi, sprite pozisyon ve tanımlarından oluşmuş bir listeyi kabul ediyor. Burada tek sınırlama, bir tanımlamanın sonu ile, bir diğerinin başı arasında en az bir video satırının bulunması. Dikkatinizi şuna çekmek isterim ki, burada COPPER'ı devreye sokmak gerekmiyor. (Tabii, Copper devreye girince söz konusu işlem otomatik olarak daha hızlı yürüyor.)
15. BLITTER
Blitter, animasyon (canlandırma) çipinin bir parçası olup, yaptığı işlem doğrular çizmek, grafik ekranında belli bir kapalı bölgeyi herhangi bir renkle çok yüksek bir hızda doldurmak ve görüntü alanının içindeki dikdörtgen bölgelerin işlenmesi ve taşınmasıdır. Dikdörtgen blokları işlerken blitter, ana işlem ünitesi ile yapıldığı zaman çok uzun sürecek ve ana işlem ünitesinin değerli zamanını çarçur edecek bazı işlemleri yerine getirir. Özel olarak bu iş için geliştirilmiş bir ünite olduğu için, yapılan işlemin çok daha hızlı yürüdüğünü söylemeye gerek yok. Yaptığı işlemlere örnek olarak herhangi bir grafik bölgesini başka bir yere taşımayı verelim. Bu sırada, okuduğu her word'un (1 word = 2 byte = 16 bit) içinden kendisine gerekli olan bitleri ayırır, oluşturduğu şekli, yerine yazabilmek için birkaç bit sağa veya sola kaydırır. Diğer bir örnek ise, bir bölgeyi sağda ve solda rastladığı sınırlara kadar doldurmak (bu, blitter'in alan doldurma kabiliyetinin temel ilkesini oluşturuyor). Blitter'i, benzer özel işlem ünitelerinden ayıran başlıca özelliği üç kay-
AYHAN KALAYLIOĞLU naktan gelebilen bilgiyi 256 değişik kombinasyondan biriyle birleştirip hedefe ulaştırması. (Üç kaynağı A, B ve C diye adlandırırsak; bunların tersleri -A, -B, ve -C olur. Bunlar da sekiz şekilde (AND işlemi) birleşirler: Elde edeceğimiz sekiz terimi 256 değişik kombinasyonla (OR işlemi) birleştirebiliriz. Bunca matematiksel safsatanın sonucu özetle şudur: Mesela, bir araba görüntüsünü, yol görüntüsünün üzerine otomatik olarak taşıtabiliyoruz. Araba şeklinin dışındaki yerlere hiçbir şey olmuyor ve arabanın camlarından arka taraf da görünüyor. Bu işlemleri bir program gerçekleştirseydi, bu programın çok karışık olması ve uzun süre alması gerekecekti. İşte, size Blitter'in faydaları!.. Doğru çizmek için kullanılırken blitter 0'larla veya 1'lerle veya belirlenmiş bir şekil kullanarak doğruyu oluşturur. Bir bit genişliğinde doğrular bilhassa doldurulacak bölgenin çevresini belirlemek için kullanılıyor. Gerek doğru çizme işlemi, gerek alan doldurma, gerek bölgeleri taşıma işleminden önce blitter'in parametrelerini belirlemek için belli bir miktar hesaplama yapmak gerekiyor. Sonuçta yapılan işin hızı ve basitliği göz önüne alınınca, bu işi gözümüzde fazla büyütmemek lazım. Kaldı ki, tüm bu işlemleri ROM'da bulunan grafik altprogramları hallediyor zaten.
16. ANİMASYON ALTPROGRAMLARI
Amiga'nın ROM'unda bulunan animasyon (canlandırma) altprogramları, kişisel bilgisayar piyasasının gördüğü en karışık renkli animasyon olayı için bir taban oluşturuyor. Örnek olarak ROBO-CITY adlı demo programını verebiliriz. Bu programda, beş adet çizgi film tipi yaratık ekranda dolaşmakta. Çözünürlük oldukça yüksek, ancak çok yakından bakılınca pürüzler görünüyor; yoksa elle çizilmiş çizgi filmden farkı yok. Animasyon olayı, animasyonda yer alacak cisimlerin listesini işleyecek bazı altprogramları çağırarak gerçekleşiyor. Animasyon sisteminde, asıl eleman GEL (graphic element — grafik elemanı) adını taşıyor. Dört tip GEL söz konusu, bunlar VSprites, BOBs, AnimComps, ve AnimObjs adlarını alıyorlar. VSprite “virtual sprite” deyiminin kısaltılmışı; anlamı ise suni sprite. VSprite hafızada belli bir yer kaplayan, normal sprite'larla gerçekleştirilen, animasyon altprogramları tarafından kumanda edilen özel bir veri yapısı. Bazı sınırlamalara uymak koşuluyla, bir ekranda sekizden fazla VSprite tanımlayabiliyoruz. Bu arada meydana çıkan, veri yapılarını ve bunlara ait göstergeçleri yenileme gibi işlemleri animasyon rutinleri otomatik olarak hallediyor. VSprite'lar da normal sprite'lar gibi, sadece ekranın belli bir bölgesinde görünebiliyor. BOB “blitter object” deyiminin kısaltılmışı olup, anlamı blitter'in yarattığı ve sprite gibi davranan cisim. Burada beliren başlıca fark, BOB'un görüntü alanının üstüne çizilmesi ve (isteğe bağlı olarak) alt tarafta kalan bilginin saklanabilmesi. Veri yapısı olarak da VSprite'lara benzeyen BOB'ların VSprite'lara göre başlıca üstünlüğü, BOB'un doğrudan görüntü alanının bir parçası haline gelmesi. Bu da BOB'larda 32 renge kadar kullanmayı mümkün kılıyor. Bundan başka, bir BOB'un boyutları için hiçbir sınırlama söz konusu değil. Fakat istenirse, BOB'lar da, ekranın sadece belli bir bölgesinde görünmek üzere sınırlanabilir. AnimComp kelimesi “animation component” deyiminin kısaltılmışı; anlamı ise animasyon parçacığı. Bu parçacık, AnimObj (animation object) yani animasyon cisminin bir parçası. Çok mu karışık oldu?.. Bir örnek verelim: Diyelim ki animasyon cismimiz (AnimObj) yürüyen bir insan; bunun animasyon parçacıkları (AnimComp) ise, gövde, kafa, iki kol ve iki bacak ile ilgili şekilleri içeren BOB'lar olacaklar. Her iki animasyon parçacığı söz konusu bölgenin birkaç görüntüsünü içerir. (Örneğin; bükülmüş kol, düz kol). Tabii ki, bir cismin değişik görüntülerinden bahsedebiliyorsak, bu değişik görüntülerin birbirleriyle bağlanabilmeleri için belli zaman dilimleri geçmesi gerekiyor. Böylece, bu değişik görüntülerin birbirini takip etmesi sağlanıyor. Sequenced drawing animation, canlandırması yapmak da mümkün. Burada, tekrarlı görüntüler listesi ve her tekrardan sonra cismin pozisyonuna eklenecek ofset (hareket miktarı) belirtilir. Bir örnekle görelim: Diyelim ki bir kedinin soldan sağa doğru yürüyüp giderken altı değişik pozunu çizdik. Fakat, bunlardan birbirine geçişini öyle güzel ayarladık ki 1'den 6'ya kadar gösterdikten sonra tekrar 1'e dönünce doğal geliyor. Böylece, bir hareket periyodu belirlemiş olduk. Bundan başka her periyod geçişinde pozisyonda oluşacak değişikliği (bu örnek için sağa doğru belli bir miktar) belirledik mi, animasyon rutinleri bu altı değişik görüntüyü peş peşe geçişli olarak çizip, verilmiş ofseti de değerlendirerek kendisinin ekranın en solundan başlayıp en sağına yürümesini sağlar. Bir başka animasyon modu da motion control animation. Burada BOB'un yeni pozisyonu, o andaki pozisyonu, x- ve y- yönündeki hız ve ivmelerinden hesaplanıyor. Bunlardan başka bir rutini de anlatalım. Adı DoCollision. Yaptığı işlem BOB'larla ilgili iki türlü görüntü çarpışmasını fark edebiliyor. Bu çarpışma tipleri, GEL ve GEL çarpışması ve GEL ile belirlenmiş bir sınırın çarpışması olabiliyor. Bu rutin, bu çarpışmaları fark ettikten sonra elde edilen bilgileri değerlendirmek üzere 16 adet collision-handling (çarpışma değerlendirmesi) altprogramından birini çağırıyor. GEL'ler değişik şekillerde kodlanarak, sadece istenilen tipte çarpışmaların algılanması sağlanabiliyor. Örneğin bir oyun programında, füze-hedef çarpışmasını algılamak, fakat füze-füze çarpışmasını algılamamak gibi...
17. YAZILAR
AMIGA, yazıları da bir tür grafik olarak değerlendiriyor. Yazı font'ları özel bir veri yapısı olarak saklanır ve yazının istenen her yükseklikte ve ister sabit aralıklı, ister orantılı aralıklı (i, l gibi harfleri daha sıkışık yazmak gibi) yazılmasını mümkün kılar. Her bir font'ta 1'den 255'e kadar karakter tanımlanabilir. Tanımlanan karakter sayısı sabit olmadığı için bu da bir parametre. AMIGA'nın ROM'unda iki font sabit olarak bulunuyor. Bunlar Topaz 8 ve Topaz 9 fontları. Topaz 8, düşük çözünürlükte 40, yüksek çözünürlükte 80 karakterin satır başında görünmesini sağlıyor. Diğer fontta ise bu rakamlar 32 ve 64.
“ Gereken diğer fontlar istenirse
RAM'e yüklenebiliyor veya işi bittiğinde atılabiliyor. ROM'da bulunan Text adlı rutin, gönderilen mesajın ekranın istenen bölgesine yazılmasını sağlıyor. Yazı yazma işlemi üç değişik biçimde gerçekleşebiliyor. Birincisi, karakterin belirtilmiş karakter rengiyle yazılması. İkincisi, karakterin kendisini bir renkle ve o karakterin arka planını da özel bir renkle yazıyor. Üçüncü mod ise komplementi alarak yazıyor. Yani karakterin her noktası kendi arkasına gelen noktanın içeriğini değiştiriyor (EXOR işlemi). Apple Macintosh'ta da olduğu gibi, AMIGA'da da fontlar birkaç değişik stilde kullanılabiliyor. Bu stiller şunlar: altını çizme (underline), yatık (italic), kalınlaştırma (boldface), genişletme (extended). Fakat Macintosh'tan farklı olarak, bir stil kullanılacağı zaman önce font dosyasında aranıyor. Şayet bulunamazsa Macintosh'taki yöntem uygulanıyor ve o stil standart karakter setinden birkaç özel algoritma yardımıyla üretiliyor. 18. SES DONANIMI Başta da belirttiğimiz gibi, AMIGA dört adet, DMA kontrollü ses kanalı içeriyordu. Bu ses kanalları 68000 ana işlem ünitesinden bağım-
37 dana çıkıyor.
e SAY SizK KAAN vor Aİ 20 | 01 | ExPANSION 40) » | ! co | RAM | | TİME CLOCK ( | A 1 CART cRosS- RESERVED ROM Fa |
Ses kanalları, gerektiğinde 68000'in kendisi tarafından doğrudan kontrol edilebiliyor. Böyle bir durumda, ses kanalları üzerinde tam anlamıyla kontrol söz konusu. Fakat, bu sefer 68000'i başka işler yapmaktan alıkoyuyorsunuz. Esas kullanılan yöntem ise daha farklı bir yöntem. Sesi elde etmek için gerekli ses DMA kanallarını açarsınız, bu kanal hafızadan bir tablodan çıkarılması gereken dalga türünün bir veya birkaç periyodunu içeren bilgileri alır ve sesi oluşturur. Böylece 68000 ana işlem ünitesi, ses ile
2MEG sız çalışma kabiliyetine sahip oldukları için örneklemeli sesleri verirken bile AMIGA sistemi tam hızında çalışmaya devam ediyor. Örnekler kanallardan verilirken, ses şiddetini değiştirmek veya geri verme frekansını değiştirmek gibi değişiklik olanakları da mümkün. Sistemin ROM kısmında bulunan “ses kontrol rutinleri” sayesinde bu özellikleri daha rahat ve daha yüksek ve kolay anlaşılır bir seviyede kullanmamız sağlanıyor.
Dört adet ses kanalı 0'dan 3'e kadar numaralanmış durumda, bunların çıkışları analog sinyallerine çevrilip ve alçak geçiren filtreler yardımıyla süzülüyor. Daha sonra kanallar ikişerli gruplar halinde (0 ve 3, 1 ve 2) karıştırılıyor ve iki adet, stereo kullanabilen, ses grubu oluşturuluyor. Kullanılan filtrelerin kesim frekansı 5.5 ila 7.5 kHz civarında bulunduğu için daha yüksek frekanstaki sesleri geçirmiyor. Bu yöntem 'aliasing' adı verilen bozulmaları (distortion) engellemekte kullanılıyor. Bu bozulma tipi, genelde düşük hızda örneklenmiş sesleri geri çalarken meşgul olmak zorunda kalmaz. Amiga'da her ses DMA kanalı, kendine ait ses şiddet registeri ve ses verileri (bu veriler her defasında bir word —2 byte olarak alınıyor ve çift adresli bellek birimlerinde bulunması gerekiyor.) göstergeç registeri içeriyor. Bunlardan başka bir de periyod registeri var. Bunun işlevi ses verilerine ait peş peşe iki byte'ın kullanımı arasında geçmesi gereken zaman. Bu register, her 279 ns sürede bir eksiltiliyor. Sıfıra ulaştığı zaman, bir sonraki veri byte'ını kullandırıyor ve ilk başlangıç değeriyle tekrar yükleniyor ki tüm işlemler periyodik olarak sürebilsin. Veri tablosu göstergeci son veri byte'ına ulaştı mı, tekrar veri bloğunun başlangıç adresiyle yükleniyor. Böylece sesin, (örneklenmiş dalga biçiminin) başka kimsenin karışması olmadan devamlı olarak, ta ki tümüyle susturulana kadar çalınması sağlanıyor. Sıfır ve iki numaralı ses kanalları, beraber çalıştıkları diğer kanalı modüle etme özelliğine de sahipler. (Sıfır biri, iki ise üçü modüle eder.) Şayet bir kanal bir diğerini modüle etmek için kullanılırsa, buna ait veriler artık ses örneklemesi için değil de, üzerinde modülasyon yapılan kanalın ses şiddeti ve periyodunu belirlemek için kullanılıyor. Böylece bu değerlerle oynayarak, ya genlik modülasyonu, ya frekans modülasyonu, ya da her ikisini birden yaratabiliyorsunuz.
19. SES YAZILIMI
Sistem ROM'unda dört tip ses altprogramı bulunuyor. İlki, kanal rezervasyon rutinleri. Ses oluşturmak istediğinizde bu altprogramı çağırıyorsunuz, o da size bir kanalı rezerve ediyor ve o kanalı kullanmanızı sağlıyor. Bu arada o kanalın numarasını belirtmiyorsunuz ve hangi numaralı kanalın size verildiğini bilmiyorsunuz bile. Bu yöntemle, aynı anda dört taneden fazla kanal açtıysanız, bunların en yüksek önceliğe sahip dört tanesi gerçek kanalları kullanma imkanına kavuşacaktır. Diğerlerinin gerçekte hiçbir çıkışı olmayacaktır. Ta ki kanallar boşalıp onlara sıra gelinceye kadar veya öncelik değerleri yükseltilinceye kadar. İkinci tip altprogramlar, DMA kontrol programları ile ses DMA kanallarını, register'leri değiştirerek ve ses veri tablolarını oluşturarak kontrol ediyor. Ek olarak, herhangi bir kanalın başka bir programa belli bir durumu belirleyen sinyal biti göndermesini sağlayabiliyorsunuz. Bu da başka bir işlemi tetikleyebilir. Diyelim ki ses kanalı, ses veri tablosunu evvelden belirlenen bir sayıda tekrarladı; bu olay asıl programa, bu sinyal yardımıyla bildirilebilir. Üçüncü tip altprogramlar, oldukça akıllı işlemler yapabiliyor. Bunlar sesin şiddetini, herhangi bir notanın gereksinimine göre değiştirebiliyorlar. Bu altprogramlar dört değişik parametreye gereksinim duyuyorlar. Bunlar, daha evvel de duymuş olabileceğiniz ADSR (attack, decay, sustain, release) parametrelerinden başkası değil. Bu parametreler, sırasıyla sesin maksimum şiddete hangi sürede ulaşması gerektiği; maksimum değerin ne olması gerektiği; bu değere ulaştıktan sonra, notanın esas şiddetine ne kadar sürede düşeceği; bu esas şiddetin ne olacağı; ve nota bitirildikten sonra sıfır seviyesine hangi hızda düşeceğidir. Bu parametreleri bir diyagramda (zaman, ses şiddeti diyagramı) gösterirsek, dört adet doğru parçasına ihtiyacımız olacaktır. AMIGA, bu diyagramı, doğruların eğiminden ve doğruların bitişindeki ses şiddeti değerinden algılıyor. Ses donanımının yaptığı gibi, bu tip altprogramlar da sesin (burada notanın) bittiğini belirten bir sinyal gönderebiliyor. Ses programları kütüphanesinde bulunan bir programdan da bahsetmeden geçemeyeceğiz. Bu “text-to-speech” diye adlandırılan ve yazıyı, konuşmaya çeviren bir program. Bu program ROM'da bulunmuyor ve gerektiği zaman diskten yükleniyor ve işi bittiğinde atılıyor. Yani tipik geçici tipte kütüphane (library) programı. Tabii, isterseniz bu programın, bilgisayar açık kaldığı sürece kalıcı olmasını sağlayabilirsiniz. Gelelim, programın kendisine. Program, kendisine verilmiş herhangi bir İngilizce metni, değişik frekanslarda, vurgularda ve hızlarda okuyabiliyor. Sonuçta meydana gelen konuşma bu programın şimdiye kadar görülen genel konuşma programları içinde, en anlaşılır olanlarından biri olduğunu gösteriyor. Ses biraz fazlasıyla vurgulanmış olarak algılanmasına karşın, kapalı gözlerle dinlenildiğinde bile konuşulan metin olduğu gibi anlaşılabiliyor. Bu tip genel konuşma programlarının yüzde sekseni, bu testi geçememiş olduğunu göz önüne alırsak, AMIGA'nın İngilizceyi oldukça iyi konuştuğunu söyleyebiliriz.
20. INTUITION
Intuition'ın ne olduğunu anlatmaya geçmeden, dilerseniz önce bir iki özel terimi ve kavramı açıklayalım. Önce user-interface teriminden başlayalım. User-interface (kullanıcı arabirimi), kullanıcının bilgisayarla arasındaki bilgi alışverişini sağlayan herhangi sesli, optik veya mekanik aletlerdir. Mouse joystick'e benzeyen fakat çok daha rahat bilgi girişi sağlayan bir alettir. Bununla ekrandaki bir oku herhangi bir yere rahat ve hızlı olarak götürebilir ve üzerindeki iki adet tuşa basarak istediğiniz herhangi bir işlemi seçebilirsiniz. Icon ise herhangi bir olayı, programı, dosyayı vs. simgeleyen bir görüntüdür. Intuition AMIGA'nın kullandığı user-interface sisteminin tümüne verilen addır. Genel hatlar olarak, Macintosh'un yaygınlaştırdığı window'lar, icon'lar ve mouse kullanımı içerir. Buna ek olarak, Intuition, bilgisayarda birçok işi window'larla belirlenmiş bölgelerde yürütmenizi sağlar. Her yapılan iş, kendine ait bir suni
memory”
10 terminal (window) açar. Bir programın birden çok window açması da mümkündür. Birden çok işin aynı anda yürütülmesi olayına “multitasking” (aynı anda birden çok işin yapılması) denir ve AMIGA'nın intuition'ı böyle bir çalışma tipini de destekler. Aynı anda birden çok programın çalışabilmesine rağmen belli bir zamanda yalnızca bir tanesi kullanıcıdan bilgi girişi alabilir. Hangi işe bilgi gireceğinizi belirlemek için, o işin window'unun üzerine gidip (mouse ile tabii ki) mouse'un tuşuna basarak onu seçmeniz gereklidir. Aynı anda, birden çok çözünürlük ve grafik modunu kullanabilmek için intuition, “screens” (ekranlar) kullanılır. Bunlar dikdörtgen şekilli olup genişlik olarak tüm ekranı kaplarlar. Ekranların, çözünürlüğü, renk paletleri, yükseklikleri önceden belirlenmiştir ve üzerlerinde bir veya birkaç window bulundurabilirler. Her ekranın üst tarafında bulunan yatay ve uzun dikdörtgen alan o ekranı tanımlar ve bu alandan tutup, o ekranı aşağı, yukarı hareket ettirebilirsiniz. Kenarlarında bulunan belirteçleri (gadget) sayesinde en öne veya en arkaya
Keyboard
cu mz
Console device
Sameporı device
Graphics atabilirsiniz. Bütün ekranlar, pull-down menüleri içerir. En üstteki dikdörtgen şerit şeklindeki bölgeye gidip mouse'un sağ tuşuna basarsanız, bu menüler görünür hale gelir. İstediğiniz menünün üstüne gidip, sağ tuşu bırakırsanız bu menü aktif olur. Yeni bir özellik olarak, menülerin iki seviyeye kadar derinlikleri olduğunu görüyoruz. Genelde aynı menüleri, kullanılan programa göre tuş takımından da seçmek mümkün. Geleneksel alışkanlıklarından vazgeçmeyenler de düşünülmüş oluyor böylece!.. Menüleri tasarlarken, programcılarla birçok esnek olanaklar sunulmuş durumda. Mesela, menüler kendilerine ayrılan bölgeden daha geniş görünebiliyor ve grafik içerebiliyorlar. Menüler seçildikleri zaman “check” işaretiyle belirlenebiliyorlar. Menülere ulaşmak için gerekli tuş takımı kombinasyonları (eğer varsa) gösterilebiliyor. Ekranların içinde yer alan window'lar, AMIGA'nın tüm grafik, ses, yazı ve animasyon özelliklerini destekliyor. Intuition'un window'larda işlettiği tüm programlar, kendilerine gerekli grafik, yazı ve renk miktarını belirlemeli veya yeni bir ekran yaratmalıdır. Intuition her türlü grafik, ekran ve window ihtiyacına cevap vermeye çalışır. Üst sınırı belirleyen öğe de hafıza miktarıdır. Başta da belirttiğimiz gibi, programlar yürürken en büyük sınırlama, belli bir anda sadece tek bir window'un kullanıcıdan bilgi alabileceğiydi. Eğer yürüyen program, böylece bir bilgiye gereksinim duymuyorsa, bu sınırlamadan etkilenmeyecektir. Herhangi bir window'u aktive etmek için, ya işaretleme okunu o window'un içine götürüp, mouse'un sol tuşuna bir kere basmak, ya da herhangi bir icon'u götürüp o window'un içine bırakmakla olur. Aktif olan bir window'u kapatmak, ondan bir önceki aktif olan window'u canlandırır (aktive eder). Bir window'un birçok değişik özellikleri olabilir. Bunlar, içeriği yatay ve dikey kaydırma bölgeleri, başlık bölgeleri, winpozisyonunu değiştirme bölgeleri (buralardan, window'u tutup başka bir yere bırakabilirsiniz), window'un derinliğini belirlemek için bölgeler (bunlar yardımıyla, window'u diğer window'ların önüne veya arkasına alabilirsiniz), window'un ölçüsünü belirleyen bölgeler ve window'u kapatma (tüm işlemlerini sona erdirme) bölgeleridir. Intuition, bunlardan başka bir de “backdrop windows” adlı window'ları yaratır. Bunlar, en arkada yer alırlar, hareket ettirilemezler, boyutları ve diğer window'lara göre olan pozisyonu değiştirilemez. Tüm uygulama programları, bu window'un ihtiyaçlarından ve içeriğinden sorumludurlar. Normal window'lar bu window'un önünde yer alırlar. Örneğin bir çizim programı, asıl çizim alanı olarak bu alanı kullanır. Diğer window'ları da renk paletini göstermek veya buradan renk seçimine olanak vermek için kullanır. Herhangi bir window açıldığında, alt tarafında kalan ve görünmez hale gelen bilginin dikkate alınıp alınmaması, programcı tarafından belirlenebilen bir öğedir. (Tabii, böyle bir durumda, o window daha fazla hafıza harcar.) Programcıya sunulan başka bir seçenek de “super bit map” olayı. Burada window'un içinde window'dan büyük bir cismi veya alanı görüntülemek söz konusu. Intuition gösterim sırasında yalnızca window'a sığacak kadarını gösterir. Window'un merkez noktasını kaydırarak, veya ebatlarını değiştirerek, söz konusu alanın diğer bölgelerini görmek mümkün. Programcıların karar vermesi gereken başka konular da, window'un nerede görüneceği, içinde hangi renklerin kullanılacağı, window'un içeriği ile ilgili bir başlık içerip içermeyeceğidir.
21. YARDIMCI EKRANLAR
Kullanıcının belirttiği ekranlardan başka yardımcı ekranlar da mevcuttur. Bunlar, işletim sistemi tarafından ğer, işletim sistemini yeterince iyi biliyorsanız, AMIGA'da hiçbir işiniz yarım kalmaz.
Requester (talep eden) tipi yardımcı ekranlar, sizden mouse veya tuş takımı yoluyla bazı bilgileri girmenizi ister. Normalde, işinize devam etmeniz için, requester ekranı içindeki OK, CANCEL vs. yazan bölgeye gidip mouse'un sol tuşuna basıp, işletim sistemini haberdar etmeniz gerekir. Fakat siz gene de başka bir window'a gidip başka bir işi yürütebilirsiniz. İlk ekrana geri döndüğünüzde ise o requester ekranını gene orada bulursunuz. (Mesela, oradaki programın bir disketin içindeki bir programa ihtiyacı oldu. O yüzden o disketi sizden isteyecektir. Fakat, o sırada yürümekte olan başka bir programın o diskete ihtiyacı olmadığı için onları sorunsuz olarak kullanmanız gayet doğal bir olay. Fakat, talepte bulunan programı kullanmaya devam etmek için onun isteklerini yerine getirmeniz gereklidir. İşletim sisteminin requester ekranlarını dileyen programcı, kendi programından da kullanabilir. Örneğin: “Please Insert Disk (Lütfen XXXXX Diskini Takın!)” requester'i. Özel bir requester kullanmak isterse, belirlemesi gereken birçok şey vardır. Bunlar “gadget”ler olabilir (aşağıda anlatılmıştır), requester'in yazısı olabilir, veya istenirse elde çizilmiş ufak bir grafik parçası olabilir. Diğer bir tip özel ekran da, alarm ekranlarıdır. Bu ekranlar oldukça önemli bilgiler taşırlar ve öncelikle bunların isteği yerine getirilmelidir. İki tip alarm vardır; birincisi “recovery” (kurtarıcı alarm) adı alır ve derhal tepki ve çözüm bekler. Diğeri ise “dead-end alerts” adını taşır ve artık yapılacak bir şey kalmadığını ve sistemin “crash” ettiğini gösterir. Bunlara cevap verildikten sonra, sistem kendiliğinden resetlenir (ilk açılış durumuna döner) veya seri porta bağlı bir terminal yardımıyla sistemi kurcalamanızı sağlar. Eğer, AMIGA'nın işletim sistemini yeterince iyi biliyorsanız, AMIGA'da hiçbir işiniz yarım kalmaz, çünkü kilitlenmiş bir AMIGA'yı bilinçli olarak kurcalayıp yeniden kaldığı yerden devam ettirmek, sanıldığı kadar da zor bir iş değildir. Ekranlar, window'lar, requester ekranları ve alarm ekranlarının hepsi gadget denilen çok basit bilgi giriş araçlarını kullanırlar. Sistem gadget'leri, window ebatları belirleme gadget'leri, window'u ön veya arka plana alma gadget'leri, window kapatma gadget'leri olabilir. Programcılar, gerektirdikleri için gerekli gadget tiplerini edebilirler. Bunların şeklini, rengini, üzerindeki seçim bölgesini, yazısını, hafızada kaplayacağı bölgeyi ve gadget'in nasıl davranacağını belirlemek gereklidir. Sistem gadget'lerinden ayrı olarak, programcı, mantıksal, string, sayısal veya orantı gadget'lerinden birini seçebilir. Mantıksal gadget'ler DOĞRU/YANLIŞ gibi durumlar alabilir veya yalnızca seçildikleri zaman sonuç gönderirler. String gadget'leri, tuş takımlarından bir string (RETURN ile biten karakterler dizisi) alır. Sayısal gadget'ler tuş takımından bir tamsayı girilmesini bekler ve girilen bilgiyi çağıran programa iletir. Orantı gadget'leri bulundukları pozisyonun, üzerinde bulundukları eksene (yatay, düşey) olan oranı ile ilgili bilgi iletir. Bunların kullanımına örnek olarak, ebat olarak içeriğinden küçük olan bir window'un merkez noktasını kaydırmak için kullanılan mekanizma verilebilir. (Bunun ne olduğunu anlamak için, AMIGA'nın üzerinde deneyin en iyisi!).
22. WORKBENCH
Workbench, intuition'un içerdiği, wimp (window icon mouse pull-down menu) sistemi ile çalışan bir komut arabirim programıdır. Workbench, dört renkli, 640x200 grafik çözünürlüklü bir ekranda çalışır. Aynı zamanda hem basit bir ekrandır, hem de bir uygulama programıdır. Ekran olarak disketleri icon olarak görüntüler; bunları açabilir, içindeki dosyaları icon'larıyla çağırabilmenizi sağlar. Uygulama programıdır, çünkü kendi elemanlarını kullanır (workbench objects) ve intuition window'larını kullanarak mesaj verir. AMIGA'yı ilk açtığınızda workbench içindeyse otomatik olarak çalışır. Workbench kütüphane programları kullanılarak, workbench'in fonksiyonlarına kendi programlarınızda da erişebilirsiniz. Workbench'te kullanıcı (hepsi icon'lar ve mouse'larla sembolize edildiği için), diskleri, kullanacağı araçları, projelerini (yapacağı veya yaptığı herhangi bir işi), çekmeceleri (drawer, yapılan işleri saklamak için kullanılır), not defterini ve çöp kutusunu (yukarıdakilerden bazılarını atmak için kullanılır, fakat çöpe atılan şey kaybolmaz, gerektiğinde geri alınabilir, aynı şekilde, çöpe atılan bir şey için ayrılmış hafıza alanı boşalmaz, kısacası çöp kutusu, o şeyin sadece icon olarak görünmesini engeller) açabilir, kapayabilir. Herhangi bir aracı AMIGA terminolojisinde herhangi bir uygulama programı bir “araç”tır) açmak, ekranda o aracı simgeleyen bir window'un açılmasına neden olur. Araçlar (uygulama programları) çalışırken projeler oluşturur. (Mesela, kelime işlemci programı aracımız olsun; bununla yaratılmış olan döküman dosyası bizim projemizdir.) Bir aracı açtığımızda, otomatik olarak bu araca ait tüm projeler de, araç window'u içinde listelenir. Tek başına sadece bir projeyi açarsanız, ona ait uygulama programı da (araç) otomatik olarak yüklenir. Workbench, genişletilmiş seçim (extended selection) olanakları da sağlamakta. Mesela bir kelime işlemci paketi ile üç dökümanı seçtiniz. Kelime işlemci çalışırken, bu üç dökümanla, seçtiğiniz sırada çalışacaktır. Çekmeceler (drawer) kendileri bir icon olup, workbench'in diğer tüm elemanlarını içerebilirler. Bunlar, araçlar, projeler veya diğer çekmeceler olabilir. Bir çekmece açıldığında, içeriği bir window'la ve içindekiler birer icon'la gösterilir. Bir çekmecenin içine bir başka elemanı daha almak istiyorsanız, o elemana ait icon'u tutup açılmış çekmecenin window'unun içine bırakın, veya o elemanı çekmeceyi kapalı şekilde gösteren icon'un üstüne götürün, çekmece o elemanı alacaktır. Bir elemanı yok etmek is-
AMIGA öncüllerinden farklı özellikler taşıdığından terminolojisi oldukça farklı ve yadırgatıcı kavramlara sahip.
tiyorsanız onun iconunu alıp çöp kutusu iconunun içine bırakın. Aslında çöp kutusu da bir tür çekmecedir. Fakat, diğer çekmecelerle karıştırılmasın diye çöp kutusu şekli verilmiştir. Not defteri (clipboard, aslında bu kelime yaptığı işlemi tam olarak açıklayamamaktadır) özel bir workbench elemanıdır ve araçlar arasında bilgi alışverişini sağlar. Not defteri, en son kullanılan yazı, grafik veya verileri RAM yapısında bir dosyada saklar (eğer dosya RAM'e sığmayacak kadar büyükse, diskette saklanır). Not defterini kullanarak, birçok program ve araç arasında çok hızlı bilgi transferi sağlayabilirsiniz. Workbench, bunlardan başka PREFERENCES adlı bir program içerir. Bunun yaptığı, mouse ve tuş takımının algılama süratini, çevresel birimlerle baud-rate olarak haberleşme hızını, mouse'un hareket ettirdiği okun hızını, monitör tipini, tuşların tekrar hızını, bağlı olan yazıcı pini, modem tipini, ekranın büyüklüğünü, ekranın monitör üzerindeki pozisyonunu, kullanılabilecek maksimum renk sayısını, ekran başlıklarını ve normalde kullanılan yazı fontunu ayarlamanızı sağlıyor. Preferences programı, ayrıca CLI (command line interface) adlı, tuş takımı yardımıyla AMIGA-DOS emirlerini algılayıp uygulayan, programa ulaşmanızı sağlıyor. CLI, Workbench'in içinde kendine ait bir window açıyor ve standart dökümanlarla CLI hakkında pek bilgi bulunmuyor. Bu yüzden normal workbench disketinde ona ait bir icon yer almıyor. CLI'a ait icon, ancak Preferences adlı programda CLI-ON pozisyonuna geçerseniz, görünür hale geliyor. Emirleri Microsoft'un MS-DOS işletim sistemi emirlerine oldukça benziyor. Bu emirlere örnek olarak, directory'leri (dizinleri) görme, programları çalıştırma, giriş ve çıkışı yeniden düzenleme gibi işlemleri verebiliriz. Kısacası CLI, kullanıcının Workbench'in altında kalan işletim sistemine ulaşmasını ve ona doğrudan hitap etmesini sağlıyor.
23. ÖNEMLİ NOTLAR
Bu yazıda ROM rutinleri diye bahsedilen altprogramlar AMIGA 1000 modelinde KICKSTART disketinden, özel bir RAM bölgesine yükleniyor. Daha sonra, bu bölge donanım seviyesinde, yazılmaya karşı korunuyor. AMIGA 500 ve AMIGA 2000 modellerinde, KICKSTART 1.2 işletim sistemi 256 KB'lık ROM'da sabit olarak yer alıyor. Kabul edersiniz ki, AMIGA gerek yazılım gerek donanım olarak kendisinden önceki diğer bilgisayarlardan oldukça farklı özellikler ve kavramlar içeriyor. Bu yüzdendir ki AMIGA'nın terminolojisi oldukça değişik ve ilk görüldüğünde yadırganıyor. Bu terminoloji henüz, anlamını koruyarak Türkçeye çevrilecek cinsten olmadığı için çoğu yerde orijinal kelimeleri kullandık ve bunların kısa bir açıklamasını da beraberinde vermeye çalıştık. Sonuç olarak, burada ortaya çıkan inceleme, AMIGA'yı gerçekten de teknik açıdan ele almasına rağmen tanıtıcı bir yazıdan çok tanıyan kişilere yol gösterici bir niteliğe büründü. AMIGA'yı tanımak isteyen bir kimseye bu yazının faydalı olabilmesi o kimsenin en azından AMIGA'yı görmüş ve biraz kurcalamış olması gerekiyor. Daha sonra bu incelemeye bir kere daha göz atarak gördüğü sistemin nasıl çalıştığı hakkında bir fikir sahibi olabilir.
Alice'i bir bilgisayarın yardımıyla bulmak dâhiyâne bir fikir. Bu fikir aklına eş seçiminde bilimsel yöntemler geliştirdiklerini iddia eden bir bilgisayar servisinin ilanını okurken gelmişti. Başlangıçta bunun işe yarayacağını düşünmemişti, ama şimdi sonucun tüm beklentilerini aştığını kabul ediyordu. Bu onun için, her şeyden önce bir yatırımdı. Peşinde olduğu, paralı ve daha sonra parasını alabileceği bir kadındı. Bu işi daha önce de yapmıştı ve artık canını sıkmaya başlayan bir ustalığa erişmişti. Bilgisayarın onun için kendi bulacağından daha iyi bir eş (daha doğrusu bulup bulamayacağını anlamak bu seferki işi biraz daha renklendirecekti. Bilgisayar servisindeki uzmana “oldukça varlıklı sayılırım” demişti “Bunun doğru olup olmadığını isterseniz kontrol edebilirsiniz. Bu nedenle bir para avcısının eline düşmek istemem. Bana uygun bulacağınız kadının da oldukça varlıklı olmasını istiyorum, böylelikle param onun beni tercih etmesi için bir neden olmaktan çıkar.” Uzman “anlıyorum efendim” diye yanıt vermişti. “İsteğinize uygun bir eş bulunması için gereken her çaba gösterilecektir. Yalnız uyumlu bir eş seçimi, pek çok kişilik özelliğinin ayrıntılı bir karşılaştırmasının yapılmasına ve hangi kişilik özelliklerinin bir araya gelmesinin, geçmişte ne şekilde ve nasıl başarısız evliliklere yol açtığının çözümlenmesine bağlıdır. Bu ancak bir bilgisayarın başarabileceği bir iştir. Bu nedenle müşterilerimizin, sonuçları bilgisayarımızın belleğinde saklı kalacak bir psikolojik testi yanıtlamasını Test soruları oldukça açıktı, bu nedenle mümkün olduğu kadar dürüst davrandı. Gizleyeceği ne vardı ki zaten? Para ve satın alabileceği şeylere düşkünlük kendi başına bir kusur sayılmazdı. Öyle olsaydı, hepimizin bir ölçüde utanması gerekirdi. Ayrıca soruların çok azı parayla ilişkiliydi. Tümü son derece masum görünüyordu. Belki de bilgisayar onun için zevkleri onunkinin tam zıttı olan bir eş seçecekti. Belki zıt kutupların birbirini çektiği sözünde doğruluk payı vardı. Soruları yanıtlarken dürüst davranmasının nedeni, her şeyden çok bilgisayarın onu nasıl bir kadınla eşleştireceğini merak etmesindendi. Nasıl olsa onun için önemli olan şey kadının parasıydı. Uzman, “soruların bazılarının yüzeyde göründüklerinden farklı olduklarını size söylemem gerekir” dedi. “Bilgisayar yanıtları bir bütün olarak inceler ve aralarında insanların kuramadığı ince bağlar kurar. Yani bu test hakkınızda sizin sandığınızdan çok daha fazla şey ortaya koyar.” Thomas bundan ötürü de endişeye kapılmadı. Gizleyeceği ne vardı ki zaten? Bir hafta sonra Alice Wyndham ile tanıştırıldı. Birbirlerini selamlayıp, gülümsediler. Uzman, “bilgisayarımız belleğindeki iki milyondan fazla insan arasında ikinizi birbirinize uygun buldu” dedi. “Hem de hiç tereddüt etmeden. Karar vermeden önce ek bilgi talebinde bulunma gereği bile duymadı. Bu sizin birbirinize ne kadar uygun olduğunuzu ve birlikte mutlu olma şansınızın yüksek olduğunu gösterir. İyi şanslar.” Alice erkekler ve evlilik konusunda yeni doğmuş bir bebek kadar masumdu. Orta yaşlara gelinceye kadar yaşlı annesine bakmıştı. Karşıt cinsle ilişkisi hemen hemen hiç olmamıştı. Ama çekici olmadığı da söylenemezdi. Giyinip, kuşandığı zaman güzel bir kadın oluyordu. Ayrıca başka özellikleri de vardı. Çok güzel yemekler yapan iyi bir ev kadınıydı. Thomas'ın nadir kitaplar ve sanat eserlerine düşkünlüğünü paylaşıyordu. Canlı sohbetiyle evdeki akşamlarına renk getirmişti. Tümünden önemlisi, Alice ona tapıyordu. Bağlılığı benliğini okşuyor ve hayata daha iyimser bakmasını sağlıyordu. Alice'e annesinden kalmış olan servet, inanılması güç bir şekilde, Thomas için önemini yitirmişti. İkisi de hayatlarında ilk defa gerçekten âşıktılar. Daha önceki evliliklerini ondan sakladı. Bir anlamda, bu doğruydu da. Şimdiye kadar hiç kendini gerçekten evli gibi hissetmemişti. Bilgisayarın yetenekleri karşısındaki hayranlığı sonsuzdu. Bir keresinde karısına, “seninle evlendiğim için kendimi daha iyi bir insan gibi hissediyorum” dedi. O, “ben de öyle” diyerek yanıt verdi ve devam etti: “Bak, aklıma ne geldi sevgilim. Bilgisayarın bizi bir araya getirmesine şükran borcu olarak mirasımızı bir bilgisayarlı eş bulma servisine bırakmaya ne dersin.” “İyi ve pratik bir fikrim var” diyerek yanıt verdi Thomas. “İkimiz de paramızı birbirimize bırakalım. Hayatta kalan eş de, tümünü bilgisayar servisine bırakır. Böylece hem hayatta kalanın rahat etmesi sağlanır hem de bilgisayar servisi eninde sonunda parayı almış olur.” “Tam benim önereceğim şeydi bu, eğer senin kadar pratik ve akıllı olsaydım.” Vasiyetnameler hazırlandıktan sonra eski içgüdüleri etkilerini göstermeye başladı. Bu evliliğe de bir iş projesi olarak adım atmamış mıydı? Diğerlerinden bir farkı yoktu, Alice hakkında biraz fazla duygusallaşmış olması dışında. Doğru, bu seferki eşi ve evliliği çok iyiydi ama yüzbinlerce dolarlık bir servete konmak için de atması gereken yalnızca bir adım vardı. Alice'ten kurtulduktan sonra bilgisayara yeni bir eş seçtirebilirdi. Bu seferki, yeniden aynı şeyi yapmaya kalkmaması için parasız olmalıydı. Tüm servetini ona bırakmayı vâdetmesini sağlamak inanılmaz ölçüde kolay olmuştu. Böyle bir fırsatı kaçırmak, Alice için olan duygularına rağmen çılgınlık olurdu. Onun naifliğini, saflığını düşünüp gülümsedi. Şimdi sıra yeniden duygusallaşmasına fırsat kalmadan, kuşku uyandırmayacak bir şekilde Alice'ten kurtulmaktaydı. Melinda'nın işini bir araba kazası, Sally'ninkisini ise dağcılık yaparken bir düşüş bitirmişti. Şimdi sıranın bir deniz kazasında olduğunu düşündü. Bu kadar kaza sigorta şirketlerine kuşku uyandıracaktı, ama bir şey kanıtlamaları mümkün değildi. Onun da mirasını Alice'e bırakacak olması kuşkuları dağıtabilecek bir etkendi. Ama şansını çok fazla zorlamaktan da kaçınmalıydı. Alice kesinlikle sonuncusu olacaktı. Ondan kalacak para yeterliydi.
Bilgisayarlar hakkında daha çok bilgi sahibi olmadığına ve bir bilgisayar edinmediğine hayıflandı. Bu en mükemmel suçun planlarını hazırlarken ondan yararlanabilirdi belki. Alice ile onu bir araya getirdikten sonra, bilgisayarın yeteneklerine güveni sınırsız derecede artmıştı. Evliliklerinin birinci yıldönümünü Tahoe gölünde geçirmeye karar verdiler. Stateline'da biraz kumar oynadıktan sonra bir tekne kiralayıp gölde birkaç gün geçireceklerdi. Los Angeles'ten gelirken, neredeyse fikrini bir kere daha değiştirecekti. Bu kadının karşı konulması güç bir cazibesi vardı. Keşke bu kadar çok parası olmasaydı. Ama kendini yeniden katılaştırmayı başardı. Alice bir keresinde ona “sevgilim, bir yıldır evli olmamıza karşın birbirimiz hakkında ne kadar az şey biliyoruz” dedi, “örneğin senin bir çeşit mavi sakal olmadığın ne malum.” Damarlarından kanının çekildiğini hissettiği halde, bu espriye kayıtsızca gülmeyi başarabildi. Stateline'da, kumarda bol bol kaybetti. Alice onu güçlükle oyun masasından kaldırdı. O sırada Alice'nin parasını ele geçirdikten sonra kumarda bilgisayar kullanmaya ve kendine bir bilgisayar almaya karar verdi. Ama şimdi sıra işteydi. “Bu kadar kumar yeter sevgilim” dedi. “Yarın bütün günü gölde, teknede geçireceğiz.” O gece kayıkhaneye gidip Alice'nin kullanacağı can yeleğinde bir delik açtı. Kaza eseri olmuş gibi görünecek kadar küçük ama suyun içeri dolup onu yavaş yavaş batırmasına yetecek kadar da büyüktü. Alice'in edinmemiş olduğu bir beceriydi yüzme. Teknenin sanki su altında bir kayaya çarpmış olduğu izlenimini uyandıracak bir delik açabilecek miktarda patlayıcı yerleştirdi gövdenin alt tarafına. Döndüğünde Alice uyuyordu. Ayışığında onun masum, güzel yüzünü görünce bir pişmanlık dalgası geçti içinden. Ondan sonra yanına uzandı ve birkaç dakika içinde uykuya kaldı. Sabah hava parlak ve açıktı. Hafif bir rüzgar gölün yüzeyinde dalgalanmalar yaratıyordu. Onun ve teknenin hareketinin dışında gölün yüzeyi kıpırtısızdı. Hava çam kokusuyla doluydu. Alice'e baktı. Alice kendinden geçmişti. “Biliyor musun?” dedi, “seninle bu kadar mutlu olmamın nedeni pek çok konuda aynı şeyleri yapmaktan hoşlanmamız.” “Ben de sık sık aynı şeyi düşündüm” dedi Alice, “örneğin evlilik yıldönümümüz için buraya gelmeyi öneren sendin ama benim de bundan çok isteyebileceğim bir şey yoktu.” Patlama zamanından önce oldu, ama kıyıdan yeterince uzaktaydılar ve bulundukları yerde göl yeterince derindi. Bu kadar çabuk olmasından memnun bile oldu, çünkü öbür türlü planını iptal edecek kadar yumuşayabilirdi. Alice o an bir çığlık attı. “Suyun altındaki bir kütüğe çarptık canım” dedi. “Dipte bir delik açıldı gibi görünüyor. Ama paniğe kapılmaya gerek yok. Can yeleğin batmanı önler, yardım gelene kadar böyle idare edebiliriz.” “Ama ben yüzme bilmiyorum.” “Biliyorum sevgilim. O seni suyun üstünde tutacaktır, endişelenme. Birkaç dakika içinde tekne battı. Alice'in can yeleği birazdan suyla dolup onu batıracaktı. “Sevgilim” diye bağırdı az ötesinden Alice. “Sana itiraf etmem gereken bir şey var.” Bir itiraf için ne uygun bir zaman diye düşündü. “Nedir o sevgilim?” “Seni gerçekten seviyorum. Seni şimdiye dek kimseyi sevmediğim kadar çok seviyorum. Sadece paran yüzünden yaptım bunu. Ben zayıf bir insanım, kendime hakim olamadım.” “Neden söz ediyorsun sen?” “Can yeleğinde bir delik açtım. Birkaç saniye içinde suyla dolup seni batıracak. Görüyorsun ya, senin de yüzme bilmediğini biliyordum. John ve Bill için hiçbir şey hissetmemiştim ama seninle başkaydı. Sana bunları söylememin nedeni -seni gerçekten sevdiğimi boğulmadan önce bilmeni istiyorum. Çok zayıf bir insanım, üzgünüm.” “Çıldırdın mı sen? Ben de senin can yeleğinde bir de...” Batmaya başladığını farkedince paniğe kapıldı. Bilgisayar onları öylesine iyi eşleştirmişti ki, zayıflıkları ve öldürme eğilimleri bile birbirini tutuyordu. Suyun üzerinde kalmaya çalışarak çırpınıyor ve küfrediyordu. Alice'in ona kulak asacak hali yoktu, çünkü o da çırpınmak ve bağırmakla meşguldü. Birkaç dakika içinde gölün yüzeyi sabahki durgunluğuna döndü. —