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.