EKRAN ALT PROGRAMI
Retro bilgisayarAmaç: Bildiğiniz gibi Commodore 64'lerin Basic komutları arasında ekranda yazılacak ve bilgi girişi yapılacak alanların kolay tayin edilmesine yardımcı komutlar yoktur. Bunların eksiği programcıları bir takım kurnazlıklarla bu komutların yerine geçecek yöntemler uygulamaya yöneltmektedir. İşte ekran alt programı da bu nedenlerden dolayı her isteyenin kendi programının ihtiyacı doğrultusunda ekranını dizayn etmesine, bilgi girişi esnasında, körsörün bağımsızca hareket etmesine, belirtilen field uzunluğunda bilgi girilmesine, sadece nümerik veya alfa nümerik bilgi girilmesine ve daha birçok başka kullanım alanlarının yaratılmasını mümkün kılan bir programdır.
Programın bazı özellikleri, öncelikle relatif file ile çalışacakları ilgilendirmektedir. Bildiğiniz gibi relatif file ile açılan tüm kütüklerde kayıtların aynı uzunlukta olması gerekmektedir. Sistem boş kalan alanları tanımlayamamaktadır. Ekran alt programı incelendiğinde 60709 no'lu satırda girilen datanın uzunluğuna girilmesi gereken uzunluğa erişinceye kadar boşluk eklenmektedir. Bir de uzunluk eşitlemesinden sonra fazla bir karakter daha (chr2(13)) eklenmekte, bu ise daha sonra kaydın okunması esnasında son derece gerekli olacaktır. Ancak bu ekleme nedeni ile kütüğün toplam kayıt uzunluğu birer karakter fazlalaşmaktadır. Kütük açılırken bu fazla karakterlerde gözönüne alınarak uzunluğu tayin etmek gerekir. Ekran alt programının bir amacı da dolu bir kayıttan okunan bilgilerin gene aynı dizaynda ekrana getirilmesidir. Ancak bu arada unutulmaması gereken nokta bu fazladan eklediğimiz (chr$(13) Return) karakteri ekran dizaynımızı etkileyerek bozmasıdır. Bu bozulmayı engellemek için alt programa geçmeden önce ileride daha detaylı açıklayacağımız XW$ (x) değişkeninin en sonundan bir karakteri silmemiz gerekir.
Konunun daha iyi anlaşılması için isterseniz programın satır, satır açıklamasını yapalım.
5 no'lu satır ekranı temizler ve renklerini ayırır.
10 no'lu satır Q$ ve XW$ değerlerine ait boyutları belirler.
20 ile 33 no'lu satırlar programın belkemiğini oluşturan satırlar olup yazmayı düşündüğünüz program doğrultusunda değiştirmeniz gereken satırlardır. Örnek olarak ilk satırı alarak açıklamasını yaparsak anlamları daha iyi belirtilmiş olur. Yalnız burada bir kavram kargaşasına yol açmamak için küçük bir örnekte sık kullanılacak iki deyimi açıklığa kavuşturmak isterim. Bunlar:
FİRMA
Değişken tanımı
BİMPA LTD.ŞTİ.
Değişken
Örnek data satırı
1. Data (2) Değişken tanımın ekran üzerinde yazılmaya başlayacağı satır
2. Data (1) Değişkenin tanımının ekran üzerinde yazılmaya başlaacağı sütun
3. Data (FİRMA) Bilgi girilmesi istenen değişken tanımı.
4. Data (16) Girilecek değişkenin uzunluğu. Ekranda 16 karakter uzunluğunda bir hat çizilir.
5. Data (1) Değişkenin mutlak surette girilmesi isteniyorsa (0) değeri verilir. Böylece program çalışırken kullanan operatör bilgi girişi yapmadan
bu değişkeni boş geçemez. Uzunluğun tamamının doldurulması gerekmez.
6. Data (1) Değişkenin tipini belirler (0) olması durumunda sadece nümerik değer girilmesine müsaade eder. (1) ise Alfanümerik değer almasını temin eder.
7. Data (0) Değişken tanımının ekranda yazılacak rengini belirler. 0-16 arasında bir değer verilebilir.
8. Data (0) Girilecek değişkenin rengini belirler.
40 no'lu satır dataları okur ve tekrar okumak üzere hazırlar.
50 no'lu satır değişmez tanımlayıcımız olan XW$ değişkenini boşaltır. 60 no'lu satırdan sonra yazmaya başlayacağımız kendi özgün programımızdan kullanacağımız değişkenlere XW$'leri atarken daima 1. boyut daima ilk data satırındaki değişken tanımı son numaralı boyut son data satırındaki değişken tanımı olacak şekilde atama yapmamız gerekir. Aynı şekilde şayet dolu bir kayıttan bilgi okuması yapmış isek bu defa tam tersini yaparak ekran alt programına geçmemiz gerekir.
60 no'lu satırda alt programda kullanılacak değerler sıfırlanıyor.
XQ girilecek data adedidir.
XB her satırda basılan tuş sayısıdır.
XD XW$'lerin boyut tanımlaması
XC ise kaydın okunduktan sonra boş veya dolu olup olmadığını kontrol eder.
XC sıfır değeri ile ekran alt programına gönderilirse program bilgi girişi yapılacak şekilde değişkenler boş olarak gelir. Kütükten kayıt okunduktan sonra XC'nin değeri değiştirilerek alt programa geçilirse program kaydı standart dizaynında ekrana yazdıktan sonra 60032 nolu satırdan 60600 nolu satıra atlayarak 60602 nolu satır ile 60604 nolu satırlar arasında istenen değişiklikleri yapmak üzere yeniden şartlandırılabilir. Program dökümünde bu satırlar programın çalışmasını etkilememek için RUN komutu ile geçiştirilmiştir, bunların mutlaka düzeltilmesi gerekir.
XU ile kaydın uzunluğu sıfırlanır.
6000 nolu satır ile ekran alt programı başlar. İleride sıkça kullanılacak olan standart ekran formülü tanımlanır.
60040 ile 60030 nolu satırlar ekranın dizaynını sağlar.
60032 nolu satır yukarıda anlatılan XC değerinin kontrolünü yapar.
60050 ile 60051 nolu satırlar körsırın konumunu belirler.
60053 nolu satır ile 60058 nolu satırlar arasında girilecek değişkenin uzunluğunda tuş basılması, şayet uzunluk dolmuş ise otomatikman bir sonraki değişkenin ilk konumuna körsırın kaymasının ve körsırın o an bulunduğu konumun denetimi yapılır. 60059 nolu satır GET komutu ile kaybolan körsırın tekrar görünmesini temin eder. (POKE 204,0) .POKE 646,xxx ise körsırın altındaki rengi (data satırındaki 8 nolu değer) tayin eder. POKE 198,0 keyboard buffer'i boşaltarak sadece son basılan tuşun hafızada kalmasını temin eder. İstendiği takdirde bu komut kaldırılarak programın daha hızlı çalışması temin edilir.
60060 nolu satır herhangi bir tuşa basılana kadar bekler.
60061 basılan tuşun ASC kodu tayin edilir. POKE 207,0:POKE 204,1 ise körsırın tekrar kaybolmasını temin eder. Aksi takdirde ekranda körsırın lekeleri kalacaktır. 60062 nolu satır basılan tuş şayet CLR-HOME tuşu ise işleme konmadan başa döner. 60063 nolu satır, değişkenin boş geçilip geçilemeyeceğini kontrol eder. (Data satırlarında verilen değer doğrultusunda) şayet değer sıfır ise 60540 nolu satıra iner 60540 nolu satırda basılan tuşun körsır hareket tuşları olup olmadığı denetlenir XW$ değerinin de boş olup olmadığı gözönüne alınarak program yönlendirilir.
60064 nolu satır girilecek değişkenin alfanümerik veya nümerik olup olmadığını denetler. Duruma göre işlem yapılmasının temini için 60550 nolu satırdan başlayan alt programı çağırır.
60067 nolu satır ile 60074 nolu satırlar körsırın hareket yönünü ve normal işlevlerini denetler.
Programın diğer satırları bu kontrol satırları ile işlem gören alt programların satırlarıdır.
NOTLAR:
10 nolu satırdaki dimension komutunu dataları arttırdıkça veya eksiltikçe değiştirin.
Data adetlerinin değiştirilmesi esasında 40 nolu satırdaki for-Next döngüsünü 60 nolu satırdaki XQ değerinin değiştirilmesi gerekir.
Alanlar arası geçişleri körsır kontrol tuşları ile yapabilirsiniz. En son girilen tüm bilgilerden emin iseniz, F1 fonksiyon tuşuna basarak alt programdan çıkılır. Bu tuş 60075 nolu satırda kontrol edilir. İstendiğinde bu tuş değiştirilebilir.
Home tuşu ile körsır nerede olursa olsun ilk değişken tanımının bulunduğu konuma döner.
Alt programda kullanılmış olan aşağıdaki listedeki değişkenleri kendi programınızda kullanmayınız.
Q$, XW$, XQ, XB, XD, XC, XX, XY, XE, XG QI, XU, XB$, QI$