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

Dergide vereceğimiz programların özelliklerini daha sonra açıklayacağımız aşağıdaki MDE isimli programla girmeniz gerekmektedir. Fakat program çok uzun olduğu için DATA satırları çok dikkatli girilmelidir.

Programın listesi Türkçe COMMODORE dergisinin MART 1986 tarihli 1. sayısının PROGRAM DÖKÜM EKİ’nden yazılmıştır. Yazım sırasında küçük “l” harfi ile “1” sayısına dikkat edin.

0 dimh (75) : for i=0 to 9 
1 h(48+i) : h(65+i)=i+10 : next 
2 for i=49152 to 50911 : read a$ 
3 h=asc(left$(a$,1)) : l=asc(right$(a$,1)) 
4 d=h(h)*16+h(l) : s=s+d : poke i,d 
5 a=a+1:if  a<20 then next : a= -1 
6 print “satir:”1000+z; 
7 read v : z=z+1 : if v=s then 9 
8 print “toplama hatası !  satir :”999+z : stop 
9 if a<0 then sys 50865 
10 s=0 : a=0 : print : next : sys 50865 
1000 data 00,0b,08,0a,00,9e,32,30,36,31,00,00,00,a2,08,a9,36,85,a4,a9, 1247 
1001 data 08,85,a5,a9,00,85,a6,a9,b0,85,a7,a0,00,b1,a4,91,a6,c8,d0,f9, 2888 
1002 data e6,a5,e6,a7,ca,d0,f2,a9,36,85,01,4c,00,b0,20,d1,b1,a9,06,8d, 2787 
1003 data 21,d0,a9,03,8d,20,d0,8d,86,02,a0,b3,a9,74,20,ff,b1,a0,b3,a9, 2667 
1004 data b9,20,ff,b1,a0,00,20,cf,ff,99,01,02,c8,c8,0d,d0,f5,88,f0,d2, 2912 
1005 data c0,0f,90,02,a0,0e,8c,00,02,20,ea,b1,a0,b3,a9,cf,20,ff,b1,20, 2323 
1006 data 8e,b4,85,fc,85,62,20,8e,b4,85,fb,85,61,20,a7,b4,d0,20,a0,b3, 2864 
1007 data a9,e5,20,ff,b1,20,8e,b4,85,60,20,8e,b4,85,5f,20,a7,b4,d0,0a, 2624 
1008 data a5,61,c5,5f,a5,62,e5,60,90,06,20,43,b3,4c,3a,b0,a9,aa,a0,00, 2379 
1009 data 91,fb,e6,fb,d0,02,e6,fc,20,3f,b2,90,ef,4c,fb,b4,a2,02,86,58, 3118 
1010 data a9,a6,a0,9d,20,f2,b1,20,e4,ff,f0,fb,c9,30,90,0c,c9,47,b0,08, 2970 
1011 data c9,3a,90,0b,c9,41,b0,07,c9,14,d0,0f,4c,0b,b1,20,d2,ff,a6,58, 2322 
1012 data 95,f7,c6,58,d0,d2,60,ae,8d,02,f0,26,c9,0c,d0,03,4c,0b,b6,c9, 2685 
1013 data 13,d0,03,4c,8b,b5,c9,0d,d0,03,4c,ba,b4,c9,10,d0,03,4c,68,b5, 2282 
1014 data c9,0e,d0,06,20,5f,b4,4c,64,b1,4c,92,b0,a5,f9,20,02,b1,0a,0a, 2132 
1015 data 0a,0a,85,f9,a5,f8,20,02,b1,05,f9,60,c9,3a,90,02,69,08,29,0f, 1950 
1016 data 60,a6,59,e0,08,90,1f,a6,58,e0,02,b0,06,20,d2,ff,4c,8e,b0,c6, 2509 
1017 data 59,a0,14,a9,92,20,f2,b1,ca,d0,fa,84,57,68,68,4c,8b,b1,a6,d3, 2891 
1018 data e0,08,b0,03,4c,92,b0,20,d2,ff,a6,58,e0,02,90,09,c6,59,20,d2, 2468 
1019 data ff,c6,58,d0,f9,4c,8e,b0,48,4a,4a,4a,4a,20,59,b1,68,29,0f,c9, 2419 
1020 data 0a,90,02,69,06,69,30,4c,d2,ff,a2,fc,9a,20,d1,b1,20,48,b2,20, 2261 
1021 data ea,b1,20,9f,b2,a5,fc,20,4e,b1,a5,fb,20,4e,b1,20,ed,b1,a9,3a, 2860 
1022 data a0,20,20,f2,b1,a9,00,85,59,20,8e,b0,20,ed,b1,a4,59,20,ef,b0, 2530 
1023 data 91,fb,c8,84,59,c0,08,90,ec,20,10,b2,a9,12,20,d2,ff,20,8e,b0, 2657 
1024 data 20,ef,b0,c5,ff,f0,0d,20,43,b3,a9,14,a0,14,20,f2,b1,4c,a2,b1, 2665 
1025 data a9,92,20,d2,ff,20,33,b2,20,e0,b2,20,3f,b2,90,9f,4c,8b,b5,a9, 2648 
1026 data 93,20,d2,ff,a2,00,a9,03,9d,00,d8,9d,00,d9,9d,00,da,9d,00,db, 2476 
1027 data e8,d0,ef,60,a9,0d,2c,a9,20,4c,d2,ff,20,d2,ff,98,4c,d2,ff,20, 2965 
1028 data e4,ff,f0,fb,60,84,5d,85,5c,a0,00,b1,5c,f0,06,20,d2,ff,c8,d0, 3100 
1029 data f6,60,a5,fb,85,5a,a0,00,84,5b,b1,fb,18,65,5a,85,5a,90,02,e6, 2606 
1030 data 5b,06,5a,26,5b,c8,c0,08,90,ec,a5,5a,65,5b,85,ff,60,18,a5,fb, 2467 
1031 data 69,08,85,fb,90,02,e6,fc,60,a5,fb,c5,5f,a5,fc,e5,60,60,a0,b3, 3106 
1032 data a9,fb,20,ff,b1,a0,01,b9,00,02,20,d2,ff,cc,00,02,c8,90,f4,a9, 2692 
1033 data 10,ed,00,02,aa,20,ed,b1,ca,d0,fa,a5,62,20,4e,b1,a5,61,20,4e, 2453 
1034 data b1,20,ed,b1,a5,60,20,4e,b1,a5,5f,20,4e,b1,a9,9f,20,d2,ff,20, 2575 
1035 data ea,b1,24,5e,10,01,60,a9,12,20,d2,ff,a2,28,20,ed,b1,ca,d0,fa, 2646 
1036 data a9,92,4c,d2,ff,a5,d6,c9,16,b0,01,60,a9,a0,85,a4,a9,78,85,a6, 2945 
1037 data a9,04,85,a5,85,a7,a2,13,a0,27,b1,a4,91,a6,88,10,f9,ca,f0,19, 2671 
1038 data 18,a5,a4,69,28,85,a4,90,02,e6,a5,18,a5,a6,69,28,85,a6,90,e0, 2503
1039 data e6,a7,4c,b6,b2,a9,91,4c,d2,ff,a9,0f,8d,18,d4,a9,00,8d,05,d4, 2776 
1040 data a9,f7,8d,06,d4,a9,11,8d,04,d4,a9,32,8d,01,d4,a9,00,8d,00,d4, 2413 
1041 data a0,80,20,09,b3,a9,10,8d,04,d4,60,a2,ff,ca,d0,fd,88,d0,f8,60, 2914 
1042 data a9,0f,8d,18,d4,a9,2d,8d,05,d4,a9,a5,8d,06,d4,a9,21,8d,04,d4, 2385 
1043 data a9,07,8d,01,d4,a9,05,8d,00,d4,a0,ff,20,09,b3,a9,20,8d,04,d4, 2250 
1044 data a9,00,8d,01,d4,8d,00,d4,60,38,20,f0,ff,8a,48,98,48,18,a0,06, 2179 
1045 data a2,18,20,f0,ff,a0,b4,a9,0a,20,ff,b1,20,12,b3,20,e4,ff,f0,fb, 2931 
1046 data a2,1d,a9,14,20,d2,ff,ca,d0,fa,68,a8,68,aa,18,4c,f0,ff,0d,0d, 2704 
1047 data 0d,20,20,20,20,20,20,20,20,20,20,4d,41,4b,49,4e,41,20,44,49, 939 
1048 data 4c,49,20,45,44,49,54,4f,52,55,20,20,20,20,0d,0d,20,20,20,20, 1003 
1049 data 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, 640 
1050 data 20,20,20,20,20,20,00,0d,0d,0d,20,20,20,50,52,4f,47,52,41,4d, 863 
1051 data 20,41,44,49,20,20,3a,20,00,0d,0d,20,20,20,42,41,53,4c,41,4e, 947 
1052 data 47,49,43,20,41,44,2e,3a,20,24,00,0d,0d,20,20,20,42,49,54,49, 966 
1053 data 53,20,41,44,52,45,53,49,20,3a,20,24,00,92,05,20,50,52,4f,47, 1208 
1054 data 52,41,4d,20,20,3a,20,00,12,20,20,2a,2a,2a,20,20,20,59,41,4e, 914 
1055 data 4c,49,53,60,56,45,52,49,20,20,20,2a,2a,2a,20,20,92,00,0d,0d, 1096 
1056 data 2a,2a,2a,20,53,4f,4e,20,2a,2a,2a,20,00,13,05,20,20,12,44,92, 908 
1057 data 49,53,4b,20,56,45,59,41,20,12,54,92,45,59,50,0d,00,13,20,20, 1186 
1058 data 49,2f,4f,20,2d,20,48,41,54,41,53,49,00,20,d1,b1,20,48,b2,a0, 1610 
1059 data b3,a9,cf,20,ff,b1,20,8e,b4,85,fc,20,8e,b4,85,fb,c5,61,a5,fc, 3207 
1060 data e5,62,90,23,a5,fb,c5,5f,a5,fc,e5,60,b0,19,20,a7,b4,d0,14,60, 2860 
1061 data 20,a7,b4,f0,0c,85,f9,20,a7,b4,f0,05,85,f8,4c,ef,b0,68,68,20, 2749 
1062 data 43,b3,4c,5f,b4,20,cf,ff,c9,4c,d0,09,20,d1,b1,20,48,b2,4c,0b, 2372 
1063 data b6,c9,0d,60,a9,00,85,5e,20,5f,b4,20,ea,b1,20,0d,b5,24,5e,30, 2042 
1064 data 05,20,e4,ff,f0,fb,20,e1,ff,f0,26,20,9f,b2,24,5e,10,09,20,4e, 2435 
1065 data b5,20,0d,b5,20,60,b5,20,33,b2,20,3f,b2,90,d7,a0,b4,a9,28,20, 2190 
1066 data ff,b1,20,e4,ff,c9,0d,d0,f9,a9,00,85,5e,a5,61,85,fb,a5,62,85, 3056 
1067 data fc,20,e0,b2,4c,64,b1,a5,fc,20,4e,b1,a5,fb,85,ff,20,4e,b1,a9, 3003 
1068 data 20,a0,3a,20,f2,b1,a0,00,20,ed,b1,b1,fb,20,4e,b1,c8,c0,08,90, 2566 
1069 data f3,20,ed,b1,24,5e,30,03,a9,12,2c,a9,20,20,d2,ff,20,10,b2,a5, 2190 
1070 data ff,20,4e,b1,a9,92,20,d2,ff,4c,ea,b1,a9,ff,85,b8,85,b9,a9,04, 3073 
1071 data 85,ba,20,c0,ff,a2,ff,4c,c9,ff,20,cc,ff,a9,ff,4c,c3,ff,20,5f, 3315 
1072 data b4,a9,80,85,5e,20,4e,b5,20,48,b2,a2,24,a9,2d,20,d2,ff,ca,d0, 2596 
1073 data fa,20,ea,b1,20,ea,b1,20,60,b5,4c,c1,b4,20,b8,b5,a6,5f,a4,60, 2812 
1074 data a9,61,20,d8,ff,b0,0a,20,b7,ff,29,bf,d0,03,4c,fb,b4,a9,01,20, 2577 
1075 data c3,ff,20,68,b6,a0,b4,a9,4f,20,ff,b1,20,f9,b1,4c,fb,b4,20,68, 2921 
1076 data b6,a9,37,a0,b4,20,ff,b1,20,f9,b1,a2,08,c9,44,f0,06,a2,01,c9, 2717 
1077 data 54,d0,f1,a9,01,a8,20,ba,ff,a0,00,e0,01,f0,1a,a9,40,8d,20,02, 2403 
1078 data a9,3a,8d,21,02,b9,01,02,99,22,02,c8,cc,00,02,90,f4,c8,c8,d0, 2182 
1079 data 0c,b9,01,02,99,20,02,c8,cc,00,02,d0,f4,98,a2,20,a0,02,4c,bd, 2018 
1080 data ff,20,b8,b5,a5,ba,c9,08,90,33,a6,b9,86,57,a9,01,20,c3,ff,a9, 2800 
1081 data 60,85,b9,20,c0,ff,b0,28,a5,ba,20,b4,ff,a5,b9,20,96,ff,20,a5, 2911 
1082 data ff,85,61,a5,90,4a,4a,b0,13,20,a5,ff,85,62,20,ab,ff,a5,57,85, 2663 
1083 data b9,a9,00,20,d5,ff,90,03,4c,a3,b5,86,5f,84,60,a5,ba,c9,01,d0, 2639 
1084 data 0a,ad,3d,03,85,61,ad,3e,03,85,62,4c,fb,b4,a9,13,20,d2,ff,a2, 2300 
1085 data 1c,20,ed,b1,ca,d0,fa,60,aa,aa,aa,aa,46,ad,00,c0,8d,00,08,ee, 2732 
1086 data b2,c6,ee,b5,c6,d0,f2,ee,b3,c6,ee,b6,c6,ad,b6,c6,c9,0f,d0,e5, 3882 
1087 data a9,b0,85,2d,85,2f,85,31,a9,0e,85,2e,95,30,85,32,4c,74,a4,aa, 2137

MAKİNE DİLİ EDİTÖRÜNÜ YAZMA Oldukça uzun olan bu programı hatasız olarak yazdıktan sonra mutlaka kasete veya diskete kaydedin. Çünkü programı çalıştırdığınızda, eğer tüm DATA satırlarını doğru olarak yazmışsanız, program kendi kendisini silerek yerine asıl MDE programını oluşturacaktır. Şimdi RUN komutunu vererek programı çalıştırın. Ekranda hangi data satırının okunduğu gösterilecektir. Eğer hatalı bir satır varsa, satır numarası belirtilecektir. Hatalı satırı düzelttikten sonra yeniden RUN komutu verin. Tüm DATA satırları okunduktan sonra bilgisayar işini bitirecektir. Artık oluşan asıl MDE programını SAVE “MDE” ile kasete veya SAVE “MDE”,8 ile diskete kaydedin.

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 kurtulacaksınız. Üstelik programlarınız kesinlikle çalışacaktır. Bunu mümkün kılan, her satırın sonunda bulunan bir kontrol toplamı (CHECKSUM) 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. Program: program adı 0801 16f7 ------------------------------ 0801 : 08 01 00 00 9e 32 30 36 33 0809 : 34 3a a2 00 00 00 49 a9 7b 0811 : 8e 20 d2 ff a2 ff e8 bd ad

İlk bakışta oldukça garip gelen bu program 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 üstünde hazır olduğunu kabul edelim. LOAD “MDE”,8 veya LOAD “MDE”,1 ile kullandığınız kayıt aracından MDE’yi bilgisayara yükleyin ve RUN komutuyla çalıştırın. Ekran renkleri değişecek ve MDE sizi açılış ekranı ile selamlayacaktır. İlk olarak size yazılacak programın adı sorulacaktır. Bu soruya karşılık olarak, dergideki program listesinin ilk satırındaki “PROGRAM ADI” 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 birincisini verin. Örneğin 0801 gibi. Bir sonraki soru ise, programın bitiş adresini soracaktır. Buna da ilk satırdaki ikinci sayı ile cevap verin. Örneğin 16f7 gibi. 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 sizden sayıları girmeniz beklenecektir. Şimdi sırasıyla (yukarıdaki ö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 çıkararak o satırı doğru yazdığınızı belirtecek, kendiliğinden bir alt satıra geçip bir sonraki satır numarasını yazacak ve yeni satırı girmenizi bekleyecektir. Ancak bir satırı girerken bir hata yaptıysanız veya kontrol toplamını yanlış yazdıysanız dikkat çeken bir ses çıkacak ve o satırdaki hatalı sayıyı düzeltmeniz beklenecektir. Hatalı olan sayıya gelinceye kadar DEL tuşuna basın ve o sayıyı ve ondan sonra gelen satırın geri kalan kısmını yeniden yazın. Bilgisayar yazdığınız satırı ancak doğru olarak yazdığınızda kabul edecektir. Gördüğünüz gibi MDE ile program yazarken ekrana bakmanız bile gerekmez. Her satırda çıkan sesler sadece dergiye ve klavyeye bakarak yazmanızı sağlayacaktır. Programın en son satırını da yazdığınız zaman MDE programı nereye kaydedeceğinizi soracaktır. Ekranın sol üst köşesinde belirecek bu soruya D (disket için) veya T (teyp için) ile cevap verin. SAVE işlemi bitince bilgisayar yeniden başlangıç adresini vererek başa dönecektir. Artık RUN/STOP RESTORE ile MDE’den çıkarak, yazmış olduğunuz programı yükleyip çalıştırabilirsiniz. MDE’nin bazı özellikleri de vardır. Şimdi de bunları görelim. Diyelim ki uzun bir program var ve yazarken birden işiniz çıktı gitmeniz gerekiyor. Böyle durumlarda istediğiniz zaman CTRL ve S tuşlarına basarak SAVE edebilirsiniz. Çıkan soruya D veya T ile cevap vererek diğer işlerinizle ilgilenebilirsiniz. Başka bir zaman yazmaya devam etmek istediğinizde MDE’yi yükleyin ve çalıştırın. Programın adını yazın ve başlangıç adresi olarak “L” harfini verin. Çıkan soruya uygun yanıt vererek yarım kalan programınızı yükleyin. Yükleme bittiğinde başlangıç ve bitiş adresleri hesaplanacaktır. Şimdi de CTRL ve M tuşlarına basın. Çıkacak soruya ekranın üstündeki başlangıç adresi ile cevap verin. Daha sonra BOŞLUK tuşu ile programı yazarken bıraktığınız satırı bulun. Yazmayı bıraktığınız satır ve devamı AA kodu ile dolu olacaktır (kontrol toplamı hariç). O satırın numarasını not alın. Şimdi RUN/STOP tuşuna basın ve işlemi durdurun. CTRL ve N tuşlarına basarak yeni başlangıç adresi olarak not aldığınız adresi girin. Yazmaya kaldığınız yerden devam edebilirsiniz. Bir başka komut ise CTRL P’dir. Bu komutla herhangi bir programı MDE şeklinde bir printere yazdırabilirsiniz. Bunun için önce MDE’yi çalıştırın ve program ismini yazın. Başlangıç adresi olarak L harfini girin. Yükleme bitince CTRL ve P tuşlarına basarak yazma işlemini başlatın. MDE’yi yazmak isteyenlere şimdiden kolay gelsin.