SÜRAT İLLE DE SÜRAT
Commodore 64 ve 1541 Disk Drive ile ilgili çalışmaların büyük
bölümünü, bu gereçleri hızlandırmaya yönelik araştırmalar oluşturuyor. Karl Heinz Mulla'nın bu yazısında da 1541'i beş kat hızlandıracak birkaç makine rutini açıklanıyor. Bu rutinler sayesinde daha hızlı programlar elde edeceksiniz.
Turbo teyp programları bile bu sistemden daha hızlıdır. Halbuki 1541'in donanımı hiç de kötü değil, çünkü birkaç makine dili rutini ilave ederek yükleme zamanını beşte birine indirmek mümkün. Yalnız bu çeşit alt-programların büyük dezavantajı bir RAM bölgesine konmalarıdır. Bugün iyi yazılım © kadar geniştir ki, bazı programların bütün disk hafızasını doldurduğu görülür. Tabii böylece bizim hızlı yükleme programı silinir ve işlemci program silindiği için saçmalar. Bir başka dezavantaj da, bu hızlı yükleme programının önceden yüklenmesinin gerekiyor olması ve böylece zaman kaybedilmesidir. Yani bu şekilde fazla zaman kazanamayız... Velev ki, bir boot programı şeklinde asıl program adreslerini dikkate alarak yazılmış olsun. Bir başka metod ise bu programı bir CBM 80 koduyla bir arada olduğu halde $8004 adresine yazılması ve bir EPROM programlanmasıdır. Bu EPROM'un genişletme yarığına (Expansion port) takılması mümkündür ve böylece program işlemcinin çalışmasıyla birlikte çalışır duruma gelir. Maalesef burada da adreslerle aynı problemler ortaya çıkıyor ve karışık yer değiştirme rutinleri ile pek de yeterli olmayan bir uyumluluk sağlanabiliyor. Yani bize lazım olan, alt programlarımızı diğer yazılımların erişmeyeceği bir yere saklamaktır. Evvela böyle bir alt programın ne yaptığına bakalım. Her kompüterin bir işletim sistemine ihtiyacı vardır. Bazılarında işlemcinin çalışmasıyla hemen yükler, bazılarında ise bir ROM'a (yalnız yazılır bellek) yazılır. ROM'da yazılı bu işletim sistemine Çekirdek (Kernal) denir. Bizim C-64'de de durum böyledir. İşte ROM'daki bu Çekirdek sayesindedir ki bilgisayarı açar açmaz ekranda Commodore 64 BASIC V2.0 vs. yazılarını görürüz. Bir makine dili programıyla işletim sistemini gözden geçirmek mümkündür ama tabii ki ROM'da bir şey değiştirmek mümkün değildir. Bu yüzden 8 KB (kilobyte)'lık işletim sistemini önce RAM'da (yazılır-okunur bellek) bir yere kopya eder ve isteklerimize uydururuz. Şimdi bu yeni kernal (çekirdek)'i gösteren göstergeyi saklarsak bilgisayarı yeniden çalıştırdığımızda (warm start) alet asıl çekirdek rutinine atlayacağına yeni işletim sistemini kullanır. İşte bu hadise bizim hızlı yükleme programını başlatırken olur. Tabii ki aletin açılıp kapanması halinde bütün işin boşuna olacağı da anlaşılıyor. Bu sebepten şimdi bir adım ileri gideceğiz. Demin sözünü ettiğimiz işletim sistemini alıp 8 K'lık bir EPROM'a bu bilgiyi programlayacağız ve Çekirdek ROM'unun yerine (V 4) takacağız. Böylece alt programımızı oraya “yerleştirmiş” olacağız. Bu haliyle programımız hemen kullanılmaya hazır olup ayrıca RAM yüklemesinden daha HIZLI devreye girme üstünlüğüne de sahiptir. Çünkü artık RAM'dan yavaşça okumak durumunda değildir. Yükleme zamanı takriben 6'da birine iner. Bu da 202 blokun 28 saniyede yüklenmesi demektir. Bu iyi bir neticedir, ama bu iş daha hızlı da olur.
1541'in Çekirdeği HERE
1541'imizde de bir işletim sistemi ve RAM olduğunu biliyor muydunuz? Şimdi yeni program yazma ve EPROM programlama ile meşgul olduğunuz şu sırada hemen disket kernal'i (çekirdeği) ile de aynı şeyi yapalım. Başka herhangi bir donanım değişikliği yapmadan 202 blok 17 saniyede yüklenecek. Commodore'un tasarımcının tek günahı yavaş bir işletim sistemi tasarlamak değil, üstelik bunun için çok fazla yer de israf etmek. Hangimiz acaba ciddi olarak F tuşlarını programlamayı düşündü? Bunun için her seferinde bir sonraki reset'e (sıfırlama) kadar kalacak olan bir program yazmak zorunda kalıyoruz. Bu programlamalar için de çekirdekte yer vardır. Ben fonksiyon tuşlarını şu şekilde programladım.
F4- Basic programlarını liste koduna dikkate almadan listeler. F2- İlave edilmiş monitör programına geçiş. Komutlar: M,
GL .X F3- Run F4- F. tuşlarını veriyor. F5- Load F6- Save
F7- Katalog Hafızadaki Basic programını silmeden Directory'i yükler. F8- Disk sürücü numarasını 8'den değiştirmeye yarar. F9- Open (Yazıcıdan liste almak) F40- Hard copy (Ekranın yazıcıya kopya edilmesi) F44- Old silinmiş bir programı geri çağırır) F42- SYS 4096*.... (bir makine dili programına geçiş) Cx:- open 15,8,15: print
Ayrıca değiştirilmiş bir “Sıfırlar” (reset) de ilave edilmiş durumda. Boşluk ve reset tuşuna basarak adresine bakılmaz. Yani burada duran bir modül start yapamaz. Canı isteyen kendi kendine start yapan bir makine dili programını boşluk reset'le doldurur, F2'yle monitör'ü çağırır ve oradan programı Save eder. Bu yolla bir modülün içeriğine bakmak veya diskete yazmak mümkün oluyor. Bununla neredeyse işe yarar bir sistem meydana getirdik diyebiliriz. Şimdi daha hızlı olmak isteyen donanıma el atmalıdır. “Yatık” ile iki cihazın bağlanış şekli ifade edilir. Commodore'un C 64 için çok daha yavaş olan seri haberleşmeyi seçtiği açıktır. Buna bir paralel bağlantı ilave etsek ve 16 K ara hafızayı 1541'e taksak şimdilik C 64 sisteminden mümkün olan maximum verimi elde etmiş olacağız. C 64'ümde hemen birkaç işletim sistemini paralel koydum ve hem paralel hem de seri yarıklar ilave ettim. Öyle ki aynı anda haberleşiyor.
Tum.
Birkaç süreyi vereyim:
202 blok okuma .......... 5 saniye 202 blok yazma . 10 saniye 202 blok scratch veya validate 5 saniye 35 veya 20 Trak'i izi 749 blok 27 saniye Bir disketin kopyası 28 saniye Sıralı dosya okuma hızlı Sıralı dosya yazma 8x daha hızlı
Mühimi şimdiye kadar bu yeni sistemle çalışmayan programa daha rastlamamış olmam. Şayet bir gün böyle bir programa rastlanırsa Commodore 64'ü bir düğmeye basarak tekrar gayet yavaş ve kullanıcıya hoş gelmeyen normal haline çevirebilmek mümkündür. Burada MPS 802 yazıcıya sahip olan herkese duyuru: C64 işletim sistemini yaparken işlenen “suçlar” burada da işlenmiş. Yeni bir işletim sistemiyle 802 yazıcı şu işleri de öğrenecektir. Bütün yüksek seçicili (hi-res) grafikleri basmak. Print Shop Newsroom Hi-Easy'yle de çalışır ve hatta Music Shop için notaları basar. En fazla altı çeşit karakter seti ilave edilir. Epson RX-80'in escape kodları kullanılır. 801'den yüksek seçiciliğe rağmen 6 kare daha hızlı olur.
4); ) Boot prc tim sisten vaz deme | 'ogran