1 Ağustos 1990 Tarihli Commodore Gazetesi Sayfa 50

1 Ağustos 1990 tarihli Commodore Gazetesi Sayfa 50
Metin içeriği (otomatik olarak oluşturulmuştur)

ram çalıştırabilir veya ekrana yazılar yazabilirsiniz. Ge- lelim interrupt vektörünün gösterdiği programın nasıl olması gerektiğine; Öncelikle programınızda kesinlikle SEİ ve CLIİ komutu kullanmayın. Programınızın İşlemi bittiğinde “JMP SEA31” ile kontrolü sistem rutinine devretmelisiniz. Ay- rıca interrupt saniyede 60 kez devreye girdiğinden yaptığınız proğramın fazla uzun olmaması ve fazla za- man harcamaması gerekir. Eğer çok zaman harca- yan bir program yazdıysanız alet yavaş çalışmaya başlar ve ekranda istenmeyen saçmalamalar oluşur. Bunu önlemek için “SWIİTCH” yani “ANAHTAR” sistemini kullanmak gerekir. Bu sistemi daha sonra gösterece- ğiz. Şimdi bu konuda kısa bir program yazalım $C000 SEİ — > Tüm kesintileri önler. $C0O04 LDA # SA0 — > A'ya alt byte'i yükle. $C003 STA $0314 — >A'yı $50314'e koy. $C006 LDA # $C0 — > A'ya üst byte'i yükle. $CO0OO STA $0315 — > A'yı $0315'e koy. $COOC RTS (veya) JMP $474 — > İşletim sistemine ge- ri dön veya ekrana READY yazarak geri dön. Yukarıdaki program interrupt'i ayarlayan program- dı. Şimdi interrupt'ta çalışmasını istediğimiz programı yazalım. $COAB LDX # $00 $COA2 STX $DO20 SCOAS İNX SCODAS BEE $COAB $CDAS8 JMP SCOA2 SCOAB JMP SEAS1 Bu program kenar yani border renklerini devamlı değiştirmektedir. Bu sırada siz takipçiyi kullanabilirsi- niz. Yani sizinde anladığınız gibi interrupt aletin işle- tim sisteminden bağımsız çalışmcaıktadır. Ancak üstteki programın en sonundaki “JMP SEA31” yerine “JMP SEAB1” veya “JMP $FEBC” koyarsanız ekranda takipçi görünmeyecektir. Sizin tüm müdahaleleriniz etkisiz ka- lacaktır. Çünkü siz interrupt'ı bu şekilde ayarlarsanız bilgisayar takipçiyi vermemektedir. Bu sayede inter- —— Ç, < A İ İ -— et | —| T Bmerenali AAT LAİDAİA rupt programınız daha hızlı çalışır. Yukarıda anlattı- gımız interrupt şekli en basit halidir. İnterrupt'ın deği- şik şekilleri ve özellikleri vardır. Ancak biz bu sayıda bu kadarlık bir kısmı gösterdik. Şimdi sizi interrupt ile daha fazla sıkmadan ilginç bir konuya geçelim. İnterrupt konusunu basiftçe gördükfen sonra artık int- rolardaki alt programları (Sub-routine) anlatmaya başlayalım. İlk önce her intro veya demonun ana bö- lümünü oluşturan hatfta oyunlarda da sıkça kullanı- lan bir teknikten bahsedelim. Bu tekniğin adı “SCROLL” yani “KAYDIRMA”, Ancak soroll'un titreye- rek kayması hiçbirimizin hoşuna gitmez. Bu yüzden biz size “SMOOTH SCROLL” yani “DÜZ KAYDIRMA”yı an- latacağız. Bu tekniğin mantığı şu şekilde açıklanabi- lir. C-ö4'ün içindeki SDO16( 53270) adresi ekran kay- dırması ile ilgili olan adrestir. Daima bu adresle so- roll'u yapacağız. 5DO1â adresi 0'dan 7'ye kadar de- gerler almaktadır. Bu değerleri verdiğinizde ekran sol- dan sağa doğru kayar. Ancak harfler bir karakter ya- na kaymamaktadır. İşte seroll ile bu harflerin bir yan karaktere kayması sağlanır. Eğer seroll'u bir satırda yapmak istiyorsanız bu olayı şöyle anlatabiliriz. $DO16 adresine 7'den O'a kadar değerler verdikten sonra o satırdaki tüm karakterler bir sola atılır. Bunu daha önce anlattığımız transfer ile yapabilirsiniz. Küçük bir program örneği vermek gerekirse şöyle bir alt-rutin ya- zabiliriz. 1000 SEl > Kesinti önleme bit'ini 1 yap 1004 LDY $14100 > Y'ye $1100'deki değeri yükle 1004 STY $0427 > YV'deki değeri 50427'ye koy 1007 LDX # S00 > X'e 00 yükle 1009 LDA 50401,X > S0401'den X kadar uzaklıkta- ki değeri accumulator'e yükle 100C STA $0400,X > Accumulator'deki değeri $0400'den X kadar uzaklığa koy 4100FİNX > X'I bir arttır 10410 CPX # 527 > Xi 27 İle karşılaştır 1042 BNE $1009 > X—27 olana kadar 5$1009'a git 1014 LDX# $97 > X'e 07 yükle 1046 STX $DO16 > X'i $DÜ16'ya koy 1019 LDA $DO12 > $DO412'deki değeri A'ya yükle 10140 CMP #583B> A'yı 3B ile karşılaştır 104E BNE $1016 > A—3B olana kadar 1016'ya git 1020 LDA # $00 > A'ya 08 yükle 1022 STA $5DO16 > A'yı $DO1ö adresine koy

Bu sayıdan diğer sayfalar: