MAKİNE DİLİ EDİTÖRÜ

Program dökümü: MAKİNE DİLİ EDİTÖRÜ

Makine Dili Editörü (kısaca MDE), makine dilinde yazılmış programları daha kolay yazabilmeniz için hazırlanmış bir yardımcı programdır. MDE ile uzun DATA satırları yazmaktan artık kurtulmuş olacaksınız. Öncelikle 3 basamaklı sayılar yerine sadece 2 basamaklı 16'lık sistemde hesaplanmış sayılar gireceksiniz. Üstelik yazdığınız program bitince, programınız kesinlikle (!!) çalışacak; hiçbir hata vermeden...

Bunu mümkün kılan, her satırın sonunda vereceğiniz bir kontrol toplamı (check sum) olacak. Bunu açıklamak için MDE'nin nasıl çalıştığını biraz görelim.

Dergide, MDE ile yazacağınız programların genel görüntüsü aşağıdaki gibi olacaktır:

İlk bakışta oldukça garip gelen bu programın biçiminin aslında oldukça basit ve hızlı bir yazım sağladığını, MDE'yi kullanmaya başladığınızda hemen anlayacaksınız. Şimdi MDE'nin disket veya kaset üzerinde hazır olduğunu var sayalım. LOAD "MDE", 8 veya LOAD "MDE", 1 ile kullandığınız kayıt aracından MDE'yi bilgisayarınıza yükleyin ve RUN komutunu verin. Ekranın renkleri değişecek ve MDE sizi açılış ekranı ile selamlayacaktır. İlk olarak size yazılacak programın adı sorulacaktır. Buna karşılık olarak, dergideki program listesinin ilk satırındaki "program adı" olarak belirtilen adı yazın. Şimdi de programın bilgisayarın içbelleğinde hangi adresten başlaması gerektiği sorulacaktır. Buna da listenin ilk satırında verilen iki sayıdan ilkini verin. Bunun için MDE'yi çalıştırdıktan sonra, programın ismini yazın ve başlangıç adresi için L harfini verin. Yükleme işlemi bitince de CTRL ve P tuşlarına aynı anda basarak baskı işlemini başlatın.

Makine dili editörünü yazma

Bu sayımızda MDE'yi oluşturan bir program yayınlıyoruz. Ne yazık ki bu çok büyük kolaylık sağlayan programın kendisi oldukça uzun. Bu nedenle daha az sayı yazmanız için tüm DATA satırlarını 16'lık sistemde hazırladık. Ayrıca her DATA satırının sonuna bir kontrol toplamı yerleştirdik. Bu programı yazdıktan sonra Örneğin 0801 gibi.

Bir sonraki soru ise, programın bitiş adresini isteyecektir. Buna da ilk satırdaki ikinci sayı ile cevap verin. Örneğin 16f7 gibi. Sırası gelmişken daha önce 16'lık sistemle hiç ilişkisi olmamış okuyucularımız için bu sayıların ne anlama geldiğini biraz açıklayalım.

Özellikle makina dili ile yapılan programların bu sistem ile gösterilmesi, programcılar arasında bir alışkanlık haline gelmiştir. Ayrıca bu sistem, normalde kullandığımız onluk sistemde gösterdiğimiz sayıların, daha az basamakla gösterilmesini de sağlar. Bu sistemde kullanılan sayılar, 0-9 ve A-F karakterlerinden oluşur. Genellikle sayının başına $ işareti konularak, bu sayının 16'lık sistemde yazıldığı belirtilir. $A ile 10, $F ile de 15 belirtilmektedir.

16'lık sistemdeki bir sayıyı onluk sisteme çevirmek için şu işlemler yapılır:

$E8 = 16*14 + 1*8 = 232

$F02C = 4096*15 + 256*0 + 16*2 + 1*16 = 61484

Şimdi tekrar MDE'ye dönelim. Tüm soruları cevapladıktan sonra, ekran değişecektir. Artık ekranın en üst satırında programın adı, başlangıç ve bitiş adresleri yazılacaktır. Daha aşağıda ise başlangıç adresi yazılacak ve iki nokta üstüste konularak sizin sayıları girmeniz beklenecektir. Şimdi sırasıyla (yukarıda örneğimiz için) 08 01 00 00 9E 32 30 36 sayılarını girin. Göreceğiniz gibi, bilgisayar her iki basamağı yazdığınızda kendiliğinden bir boşluk yazarak bir karakter sağa kayacaktır. İlk sekiz sayıyı yazdıktan sonra sıra o

satırın kontrol toplamına gelecektir. Örneğimizde, 33 sayısını yazınca bilgisayar tatlı bir gong sesi çıkaracak, o satırı doğru yazdığınızı belirtecek ve yeni satır girmenizi bekleyecektir. Ancak ilk satırı girerken bir hata yaptınızsa veya kontrol toplamını yanlış yazdınızsa, dikkatinizi çekecek bir ses sinyali verilecek ve o satırdaki hatalı sayıyı düzeltmeniz beklenecektir. Hatalı olan sayıya gelinceye kadar DEL tuşuna basın ve o andan sonra gelen satırın geri kalan kısmını yeniden yazın. Bilgisayar yazdığınız satırı ancak doğru olarak kabul edecektir. Gördüğünüz gibi, MDE ile program yazarken ekrana bakmanız bile gerekmez. Her satırda çıkan uyarı sinyalleri, sadece dergiye ve klavyeye bakarak yazmanızı sağlayacaktır.

Programın en son satırını da yazdığınız zaman MDE size programı nereye kaydedeceğini soracaktır. Ekranın sol üst köşesinde çıkacak soruya D (disket için) veya T (teyp için) cevap verin. SAVE işlemi bitince bilgisayar yeniden başlangıç adresini vererek başa dönecektir. Artık RUN STOP/RESTORE ile çıkıp programınızı disket veya kasetten doldurup, o programın açıklamalarında belirtildiği gibi çalıştırabilirsiniz.

MDE'nin bazı değişik özellikleri de vardır. Şimdi de bunları görelim.

Diyelim ki çok uzun bir program yazmanız gerekiyor ve bu programı bir kerede yazamadınız. Programın yazımı sırasında da istediğiniz zaman CTRL ve S tuşlarına basabilirsiniz. Ekranın sol üst köşesinde çıkacak soruya D veya T ile cevap verin.

Başka bir zaman, yazmaya devam etmek istediğinizde MDE'yi yükleyin ve RUN komutunu verin. Programın adını verdikten sonra başlangıç adresi yerine L harfini verin. Böylece MDE, programı LOAD etmesi gerektiğini anlayacaktır. Ekranın sol üst köşesinde çıkacak soruya D veya T ile cevap verin.

Daha önce yazdığınız satırlar sırayla LIST edilecektir. Sizin yazmayı bıraktığınız satır ise tamamen AA kodu ile dolu olacaktır (kontrol toplamı hariç). O satırın numarasını akılda tutun. Şimdi RUN/STOP tuşuna basarak listeyi durdurun. CTRL ve N tuşuna basarak yeni başlangıç adresi olarak demin bulduğunuz satır numarasını yazın. Artık yazmaya, kaldığınız yerden devam edebilirsiniz.

Bir diğer emir ise CTRL-P'dir. Bu emir ile, kendi yazdığınız makine dili muhakkak(!!) kasete veya diskete kaydedilir.

Şimdi RUN komutunu vererek programı çalıştırın. Hangi DATA satırının okunduğu gösterilecektir. Tüm DATA satırlarını doğru olarak yazmışsanız, program kendi kendini silerek yerine asıl MDE programını oluşturacaktır. Artık oluşan programı SAVE "MDE" veya SAVE "MDE",8 ile kaydedebilirsiniz.

Hepinize bol programlı günler...

Bu yazıdaki programlar

Dergideki dökümlerden çıkarıldı; satırlar derginin kontrol toplamlarıyla doğrulandı ve programlar VICE emülatöründe denendi. Tarayıcıdaki C64'te çalıştırabilir, indirip bir emülatöre sürükleyip bırakabilir ya da gerçek bir C64'te LOAD "AD",8,1 ile yükleyebilirsiniz. "Sorun bulundu" yazanlarda bazı satırlar okunamadı ya da tutmadı; düzeltilmiş bir sürümünüz varsa contact@coze.org adresine gönderin.