DOSYA SIKIŞTIRICI
Retro bilgisayarSanırım programlarınızı disketten yüklerken, kaybettiğiniz vakitten şikayetçisinizdir. C-64 için yazılmış olan bu programımız ile derdinize biraz olsun çare bulmaya çalışacağız. Programımız BASIC ve diğer tipteki dosyaları özel bir yöntemle kısaltacak, böylece programlarımız diskette daha az yer kaplayacak. Bu bize hem diskette daha fazla yer, hem de programı yüklerken vakit kazandıracak. Programınızı çalıştırdığınızda, programlarınızı kısaltarak kaydedebilir veya kısaltılmış programlarınızı yükleyebilirsiniz.
Programımız SC200 ve SC617 adresleri arasında yer alıyor. Programı diskete sakladıktan sonra, LOAD"DOSYA SIKIŞTIRICI",8,1 ile yükleyebilirsiniz. Programın yüklenmesi bittikten sonra NEW komutu vererek önemli BASIC belirteçlerinin sıfırlanmasını sağlayın.
Basic Programları Kısaltma
Programımız iki değişik şekilde kullanılabilir. İlk yöntem ile BASIC programlarınızı sıkıştırılmış şekilde yükleyebilir veya saklayabilirsiniz. Programımızı çalıştırmak için öncelikle yükleyin ve SYS50600 yazdıktan sonra RETURN tuşuna basın. BASIC bir programı sıkıştırılmış şekilde saklamak için o programı hafızaya yükledikten sonra SAVE yazıp RETURN tuşuna basın. Bilgisayar sizden dosya adı girmenizi istediğinde bir isim vererek RETURN tuşuna basın. Programınız diskete verdiğiniz isimde sıkıştırılmış olarak kayıt edilecek. Sıkıştırılmış bir BASIC programı yüklemek için LOAD-yazıp RETURN tuşuna basın ve yüklemek istediğiniz dosya ismini girin.
Veri Sıkıştırma
Dosya sıkıştırma programımız, herhangi bir hafıza bölgesinin de sıkıştırılarak saklanmasını sağlamaktadır. Bu hafıza bölgeleri, hı-res grafik ekranı, sprite şekilleri veya her tür çeşitten veri olabilir. Sıkıştırarak sakladığınız verileri de tekrar normal hale getirebilirsiniz.
DOSYA-1 adlı küçük program size hafızanın belirli bir bölgesinin nasıl saklanacağını göstermekte.
Programımız SYS komutu ile aktif hale gelmeden evvel, saklamak istediğimiz hafıza bölgesinin başlangıç ve bitiş adreslerini 679-690 ve 681-682 numaralı adreslere POKE ediyoruz. Bundan başka dosya ismi için ASCII karakterleri 832 numaralı adresten başlayarak yerleştirmek zorundayız. Programda 10006 numaralı satırda dosya isminin sonuna P, W ve buna da CHR$(0) eklendiğine dikkat edeceksiniz. DOSYA-2 adlı programda sıkıştırılarak saklanmış bir dosyayı yükleyecektir.
Bu yordam da, saklama yordamına benzemekte, fakat bu sefer sadece programın başlama adresini vermemiz yeterli olmakta.
Programın Çalışma Sistemi
Elbette bu programın nasıl çalıştığını bilmeden kullanabilirsiniz, fakat biz programın nasıl çalıştığının kısa bir açıklamasını yapalım. Programın çalışma şeklindeki temel amaç devamlı olarak tekrarlanan bilgilerin ekonomik bir şekilde saklanmasıdır. Hemen hemen birçok veride devamlı olarak tekrarlanan yerlere rastlarız. Mesela birçok metinlerde sesli harfler oldukça sık kullanılırlar. Bizim programımız bu sık sık kullanılan bilgileri alışılmıştan daha az bir yerde saklayarak yer kazanmayı amaçlamakta. Bunu anlamak için bilgisayarın verileri nasıl
sakladığına bir bakalım.
C-64 bütün verileri byte'lardan oluşmuş seriler halinde saklar. Bir byte sekiz bit'ten oluşmuştur, her bit ise 1 veya 0 değerini almaktadır. İkilik düzende 00000000 sayısı 0'a 11111111 ikilik sayısı da onluk düzende 255 sayısına eşittir. Bu durumda bir byte 0 ile 255 sayıları arasında bir değer alabilir. Her byte sekiz bit'ten oluştuğu için, bilgisayar bir byte'ın nerede bitip diğerinin nerede başladığını anlamak için bitleri sayar. Sekizinci bite ulaştığında bir sonra gelecek bitin bir sonraki byte'ın ilk biti olacağını anlar.
Bu arada şunu unutmayalım, bir byte değeri kullanıldığı yerlere göre değişik anlamlara gelebilir, mesela bir kelime işlem programının metin kısmında geçen ASCII 65 değeri 'a' harfine karşılık gelirken, bu değer bir sprite tanımlamasında bir dizi noktaya karşılık gelecek, makine dili programında geçiyorsa EOR komutunu ifade edecek.
Bizim programımız çok sık kullanılan kodları sekiz bit yerine daha az sayıda bit'e sığdırmaya çalışmaktadır, bunu şu şekilde açıklayalım: Mesela bir kelime işlem programı ile yazılmış bir metni sıkıştırarak saklamak istiyorsunuz, programınız saklama işlemine başlamadan evvel saklanacak veriyi tarayarak en sık geçen yedi karakteri belirleyecek. Belirlediği değerlere göre bir kodlama tablosu oluşturulduktan sonra bu tablo hafızaya olduğu gibi disketteki dosyanın başına da yerleştirilir. En çok kullanılan değerin saklanması için sadece bir bit yeterli olmakta, SAVE işlemi sırasında bu kodlar normal sekiz bitlik gösterimin yerini almakta. Programı yükleyeceğimiz zaman önce kod tablosu okunup program bu kodlama tablosuna göre normale çevrilerek yüklenir.