1 Temmuz 1986 Tarihli Commodore Gazetesi Sayfa 71

1 Temmuz 1986 tarihli Commodore Gazetesi Sayfa 71
Metin içeriği (otomatik olarak oluşturulmuştur)

ma adresini içerirler. 788 adresi dolaylı başlangıç adresinin low 'byte'ıni, 789 adresi de high byte - ını verir. Gerçek adresi bulmak için; AD — PEEK(X) 4 PEEK(X * 1)* 256 formülüne başvurmanız gereki- yor. Bu formülle standart interrupt kodunun gerçek adresini nesap- layabiliriz. AD —PEEK(788) 4 PEEK(789) *256:PRİNT AD Bu formül sonucunda elde ede- ceğimiz adres 59953 (SEA31) ola- caktır. Bu adresi bir kenara not edin, çünkü normal rufinimizin so- nunda ana bir JUMP yapmamız gerekecektir. Eğer bu sıçramayı yapmazsak sistem, keybodard'u ta- rayamaz ve sonuçta kilitlenir. Onun için kodumuzdaki son di- rektif şöyle olmalıdır: JMP SEA31 Anlamıyorum diye sinirlenme- yin, bunları yapmaya başladıkça konu açılık kazanacaktır. Örnek olarak vereceğimiz programlar yeni başlayanlar için olacaktır. commodore Interruptlar Nasıl Oluşturulur? Eğer assemblerla interrupt oluş- turacaksak şöyle kısa bir örnek verebiliriz. (aslında interruptları oluşturmanın hemen tek yolu ma- kina dilidir. Ancak okuyucuların çoğunda mMmonitor programı ol- madığı, olsa bile kullanmanın zor- luğunu düşünerek BASIC'e dönüş- türülmüş örnek progromlor ver- meyi tercih etltik.): MAKİNE DİLİ PROGRAM (NT 41 (M) (Monitör programıyla yazılabilir) . $COOO SEİ $COO4 LDA 3& $20 $C003 - STA $0314 $C0068 LDA #& $SCO $Cc008 STA $0315 $COOB CLI $C00C RİS $C020 LDX 5& $00 $C022 STX DO20STX $C025 DEX $C026 — BNE $C022 $C028: JMP $EA31 Programımızda $C020 kodu- muzun başlangıç noktası, JMP SEA31'de son yönergemizdir. Bu, ınterruptlarla çalışan yazılımlar oluşturmak için standarfttır, ancak bazı programcılar bu işlemler sı- rasında başlangıç için bazı şey- ler yapmak isteyebilirler. Bunun teknikleri üzerinde yerimizin sınırı ölçüsünde durmaya çalışacağız. Rutin bellekte 49152 ($C000) adresinde başlamaktadır. Burası BASIC INTERPRETER üzerine yerleş- tirilmiş bir RAM'dır. Her RAM böl- gesi -BASIC ya da SİSTEM DEĞİŞ- KENLERİ ile çatışma olmaması ko- şuluyla- kullanılabilir. Bazı bölge- leri belirtelim: $C000(49152)'den SOFFF (53347)'a: Burası yedek AK RAM'- dır. BASIC İNTERPRETER üstündeki normal BASIC RAM'ından ayrılmış olduğu için BASIC'den etkilen- ez. BASIC RAM $800(2048)'den SOFFF(40959)'a: Kodumuz bu ad- reslerde BASIC RAM'ın üstüne yer- leştirilecektir. Ancak korumazsak

Bu sayıdan diğer sayfalar: