Tak Ü4-08-59 yazın. Artık hiçbir yaratık size dokunamayacak, Marble Madness Birinci düzeyde GOAL 'a gelmeden sol tarafa atlayın. Ba- şarılı atlayışınızdan ötürü puan alacaksınız. Bulunduğunuz yerde gizli bekleme yerini bulursanız sizli düzeye aktarılır- SINIZ. Exelon F tuşuna basarak tuş tanımlamaya geçin, tuşların karşı- ıklarına sıra ile Z,O,R,BLA yazın. Şimdi sonsuz hakkınız YAT. MAKİNE DİLİ Riraz da makıine dili uğraşalım. Amacımız “Garbape Collection” işlemini hızlarıdıracak bir program yapmak. Büyük bir program yazarken veya büvük karakter dizile- Ti ile uğraşırken bilgisayarın ağırlaştığım farketmişsinizdir. Hafızanın tamamı kullanıldığında, BASIC artık kullanılma- yan karakter dizileri ile ilgilenmeye karar verir. Böylece ki- mi zaman oldukça vakir alan bir iş başlamış alur. Bu işleme daha evvel de söylediğimiz. gibi “GARBAĞA COÖLLECTİON” (çöplük toplama) adı veriliyor. Sarbase Colection işleminin hafıza bitmeden evvel baş- lamasını istersek FRE() fonksiyonunu kullanmamız yeterli olur. BASIC bu işlemi gerçekleştirebilmek için ilk önce yük- sşek hafıza bölgesinde aktif durumda karakter dizisi arat, Bu- lunarn karakter dizisi mevcut olan en yüksek hafıza bölümüne kopya edilir. Eğer bu kısımda aktif olmayan karakter dizisi varsa aktif durumdaki karakter dizisi bunun üzerine yazıl- mış ölür. Bu işlem bütün aktif karakter dizileri kopyalanana kadar devam eder, Karakter dizisi miktarının karesi kadar süre “Garbağge Collection” işlemi sıraşında gidiyor. Ne kadar süre kaybedeceğiniz hakkmda fikir sahibi almak isterseniz aşa- gıdaki programı deneyin: l0 D- 530ü 320 DIİM AS(D) 30 FOR J-0 TG D 40 ASN - STREÇİN: 50 NEKT J GÜ PRİNT “İSLEM BASLIYOR...” JÜ T- TDJ - FRE(Ü) 80 PRİNT (TL-Ty/6S0;“SANIYE” 1Ö numaralı satırda D değişkeninin değerini değiştirerek artan sayıdaki karakter dizilerinin zamanı nasıl etkilediğini görebilirsiniz. Garbaze Collecrion sırasında zaman kaybını önlemek is- uyorsanız Program Döküm Eki'ndeki PROGRAM?'yi de- neyin. Programımız $CA20 iİle $CRFF (51744-52223) ara- sında yer alıyor. Programı yazmayı bitirdikten sonra çalış- Trmadan evvel muhakkak kasere veya diskete saklayın. Proğgramımızı disketten, LOAD“program-ısmı”',8,) kasetlen, LOAD“program-ısmı",L,1 şeklinde yükleyin. Program-ısmi yerine programı hangi isim altında sakladıysanız © ismi yazın. 8 Programı aktif hale getirmek için, SYS 51744 komutunu vermeniz yeterli olur. Programımız ilk olarak BASIC'i ROM'dan RAM'e geçi- riyor ve BASIC üzerinde bazı değişiklikler yapıyor. Deği- şiklik yapıldığını READY! yazısının değişik yazılışından an- layabilirsiniz. KUN STOP/RESTORE tuşu programı etki- Siz hale getirir. Tekrar çalışmasını sağlamak için SYS5 517d4 vermek yeterli olür. BASIC PROĞGRAMLAR Biraz da BASIC programlarıyla ilgilenelirmi. Konumuz ve- rileri ekrana formatlı olarak çıkarmak veya sayıların nok- tadan sonra gelen kısımlarını iki takama indirmek. Eğer ufak bir muhasebe programı yazmak isterseniz bâ- şiniz noktadan sonra gelen sayılarla derde girer. Noktadan sonra belirli miktarda sayı gelmesini istiyorsanız ne yapa- caksınız? Ne yazık ki, BASIC 2.0'da sayıları düzenleyerek yazma- yı sağlayan bir komut yok. Ç128'de bu sorun PRİNT USİNG komutu kullanılarak halledilmiş. C64'de böyle bir komut ol- madığı için 4.231246 gibi sayıları okurmmak zorundasınız. Ân- cak PRİNT USİNG komutunun görevini yerine getirecek ba- zi progğramlama yöntemleri sayesinde sayıları istediğirmiz for- mata sokabiliriz. Standart yöntemlerden birisini görelim: S- INT(V*100 -4 0.5)/100 V değişkeninde sayımız bulunuyor. Ancak, bu yöntemin zayıf noktası, eğer noktadan sonra sıfir varsa kayboluyar. Mesela 44 90001 sayısı 44.9'a dönüşüyor. Ama bizim iste- diğimiz değer 44.90'dı. Buna benzer sorunları çözmek için başka bir çözüm yü- lumuz var: SE — STRS(5 — (.001*56N(5)9) 5$ #LEFTS(NS,LEN(NSEL-I) Bu yöntem hemen hemen her zaman çalışıyor ama 837.149 sayısında hata yapıyor. Bu sayıda söonuç olarak 837.15100 sonucunu alıyaruz. Program Döküm Eki'nde PROĞGRAMI ve PROGRAMA bahseriğimiz yöntemlerin biraz daha gelişmişini kullanarak sayıları formatlıyor. PROGRAMI-1000 ile 1000 arasında te- sadüfi sayılar üretip bu sayıları formatlıyor. Bu programda kullanılan yöntem -9909999 99 ile 99990090 99 arasındaki sa- yıları formatlayabilir. 5000 ile 5090 satırları arasındaki kısmı kendi programla- rmızda kullanarak sayıları istediğiniz şekilde formatlayabi- lirsiniz. Programlarımıza CI — .S:€2 - İ:C3 — 100 satırını da eklemeyi unutmayın. V değişkenine formatlanmasını istediğiniz sayıyı yerleşti- rin ve GÖSÜR 5000 komutu ile rutinimizi çalıştırın. Böormat- lanma işlemi sona erdiğinde sayınızı yeni şekli ile N$ değiş- keninde bulabilirsiniz. PROĞRAM &Ü tane tesadüfi sayıyı ekrana veya yazıcıya basar. Sayılar 580 numaralı satır sayesinde sağa ararlı ola- rak basılır.