Bu sayfadaki yazılar
Sayfanın metni
Sayfa 57
bilirsiniz. Makine dili programları, grafik karakterleri veya sprite'lar için 4K ayırmak için direkt moddan şu rutini kullanın:
POKE 51.0:POKE 52,144:POKE 55,0:POKE 56,144:CLR
Bu komutlarla 36864-40960 ($9000-$9FFF) adresleri arasında kalan 4K'lık bölgeyi BASIC'ten ayırmış olursunuz.
POKE 51,0:POKE 52,160:POKE 55,0:POKE 56,160:CLR
Makineyi normal hale döndürür.
CURLIN 0039-003A - 57-58
En son girilen BASIC satır numarası.
OLDLIN 003B-003C - 59-60
Bir önceki BASIC satır numarası. Bu adreslerin belirttikleri satırları aşağıdaki komutla görebilirsiniz:
PRINT PEEK(57) + 256 * PEEK(58)
OLDTXT 003D-003E - 61-62
Bu adreslerde, BASIC program STOP komutu ile durdurulduğunda daha sonra BASIC kodun devam edeceği adres saklanır ve CONT komutu tarafından kullanılır. Eğer bellekte bir program yoksa bu adres BASIC'in başlangıcını (2048) gösterir.
DATLIN 003F-0040 - 63-64
DATA satırı numarası. Bu adresler bir program içinde yer alan ilk ya da o anda okunmakta olan DATA ifadesinin satır numarasını saklarlar. Bu programı çalıştırdığınızda o anki data satırı olarak 600 sayısını verecektir. Bunun gibi bir rutin kullanarak zaman zaman uzun data satırlarına sahip programları READ komutu ile okuttuğunuzda ortaya çıkan OUT OF DATA ERROR? gibi hataları düzeltmeniz kolaylaşacaktır, çünkü en son hangi satırda kaldığınızı ve bütün DATA ifadelerinizin okunup okunmadığını bu şekilde anlayabilirsiniz. DATPTR 0041-0042 - 65-66
Pointer: O anki DATA parçasının adresi. Eğer hiçbir DATA ifadesine rastlanmamışsa, bu adres 2048 olur.
PROGRAM ADI 1 PRG-2
00100 DIM 00200 FOR TO 3 0863986 READ INZCI) 06468 NEXT
©0600 DATA 1,2,3
60500 PRINT
<043> <a45> <156> <158)>
Her değişik DATA parçası bellekte değişik uzunluklarda saklanırlar. Tamsayılar 2 bayt, karakterler ve floating-point sayılar 4 bayt olarak saklanırlar.
INPPTR 0043-0044 - 67-68
Sistem INPUT buffer'ın bulunduğu yer (512-600 adresleri arasında kalan 78 bayt'lık bölge) bu adreslerde gösterilir. Bu bölgenin uzunluğunu değiştirmek için bu adreslere POKE yapmak mümkün değildir. Buffer'a saklayabileceğinden daha fazla bilgi koyarsanız ilk 78 karakter kaybolur.
VARNAM 0045-0046 - 69-70 O anki BASIC değişken ismi. Eğer değişkenin ismi tek harften oluşuyorsa, ilk adres ismin ASCII değerini verir, ikincisi ise 0 olur. VARPNT 0047-0048 - 71-72 Pointer: O anki BASIC değişken bilgileri. Normalde 2084'te bulunan —
BASIC değişken tablosunun taban adresini gösterir.
FORPNT 0049-004A - 73-74
Pointer: FOR/NEXT döngüleri için indeks değişkeni.
004B-0060 - 75-96
Geçici pointer/bilgi bölgesi. Bu 16 adreslik alan KERNAL ROM'da saklanan floating-point aritmetik rutinlerin yeridir. BASIC içinde kullanılabildikleri gibi assembly dili programcılarının iki sayı (akümülatör #1 ve #2) üzerinde aritmetik işlemler yapabilmelerine olanak tanırlar. Ayrıca bu adresler BASIC'ten çağırılan makine dili altrutinleri için de oldukça kullanışlıdırlar. Burada makine dili ile ilgili fazla detaya girmeden adresleri incelemeye devam ediyoruz.
FACEXP 0061 97 ver akümülatör 4 1: is.
FACHO 0062-0065 - 98-101 Floating akümülatör # 1: Mantis. FACSGN 0066 102 Floating akümülatör # 1: İşaret. SGNLG 0067 103
Pointer: Seri değerlendirme değişmezi.
BITS 0068 104 Floating akümülatör # 1: Taşma (overflow) hanesi. ARGEXP 0069 105 Floating akümülatör # 2: İşaret.
ARGHO,
006A-006D 106-109 Floating akümülatör # 2: Mantis ARGSGN 006E 110
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 56
merkezi işlemcisi olan 6510 çipini adres adres dolaşmayı sürdürüyoruz.
VARTAB 002D-002E - 45-46
Pointer: Bu iki adres, BASIC değişkenlerin başlangıcını belirtir.
ARYTAB 002F-0030 - 47-48
Pointer: BASIC matris dizilerinin başlangıcı.
STREND 0031-0032 - 49-50
Pointer: BASIC matris dizilerinin sonu, (Esasında burada belirtilen adrese 1 eklemelisiniz.) Bu adreslerin görevi 43-46 adreslerine benzer. Örneğin BASIC'te bir programın içinde bir matris dizisi açacak olursanız (DIM komutu ile) dizilerin saklandıkları bölge, bu adreslerde gösterilir. Eğer yazı matris dizilerinden kısa makine dili rutinler saklıyorsanız, çoğu kez bunların baştır. Aşağıdaki örnek program üç ayrı dizi oluşturarak bilgisayarın bunları nasıl sakladığını size gösterecektir. Herhangi bir tuşa basarak değişik adreslere bakabilirsiniz. Programdan çıkmak için RUN/STOP tuşuna basın.
FRETOP 0033-0034 - 51-52
Pointer: Yazı karakterlerinin saklandığı son adres.
FRESPC 0035-0036 - 53-54
Yazı karakterleri için pointer. Bu iki adres, “MERHABA” veya “BENİM ADIM COMMODORE” gibi yazı karakterleri için ayrılan Rasgele Erişimli Belleğin (RAM) sonunu gösterir. Deneyimli programcılar sık sık bu ve bundan sonraki iki adresi, belleğin belli kısımlarını bilgisayardan saklamakta kullanırlar. Örneğin,
CAN ÖZTÜRK rutinlerine ayırmak isteyebilirsiniz. Bundan sonraki iki adresle bunun nasıl yapıldığını inceleyelim.
MEMSIZ 0037-0038 - 55-56
Pointer: BASIC'in yeralabileceği üst adres. Başka bir deyişle BASIC programlarınızı bu iki adreste gösterilen değerin ötesinde saklamanız mümkün değil. Normalde bu de-
makine kodunda bir oyun yazarken — ğer 40960 adresini göstermektedir, belleğin büyük bir kısmını makine dili — ancak isterseniz bu değeri değiştire- PROGRAM ADI 1 PRG-İ 60100 REM DIZI ÖRNEKLERİ ##& 001106 DIM <176> 1 <096)> 00130 REM #&& DIZI POİNTER FN #&& <183> 00140 DEF 00150 1 <186> 00160 REM DİZİLERİ SIRALAMA 00170 FOR Izi TO 5 <014> 00188 00190 <a239> 00200 FOR TO <886> 00210 1 <186> 00220 REM BELLEKTEKİ DİZİLERİ BULMA ** 00230 DIZI BASLANGICI <163> 00240 DİZİ SONU <a08) 00250 1 <a26) 00260 REM DİZİLERİ YAZ #88 00270 Fi TsAS TO AE <asa> 08280 T,PEEKCT) <153)> 00290 197,64,64:REM BIR TUSA BASIN <134)> 00306 NEXT T <218> 00318 CLR <170> 00320 REM #xx CIKMAK ICİN RUN/STOP <877>