MSE — Abtippen sicher und leicht gemacht
Ähnlich wie der »Checksummer« ist auch der MSE ein Hilfsmittel bei der Eingabe von Listings, diesmal jedoch bei reinen Maschinensprache-Programmen.
Im Gegensatz zum »Checksummer« aber ist die Eingabe nicht ohne den MSE möglich. Der MSE verringert die Tipparbeit um ein Drittel und schließt Fehleingaben vollkommen aus. Außerdem können Sie die DATAs blind eingeben, ohne andauernd auf den Bildschirm schauen zu müssen. Dies wird durch akustische Meldungen realisiert.
Sicher kennen Sie die Situation: Man hat ein langes Listing mit DATA-Zeilen abgetippt, versucht es, das erste Mal zu starten und — nichts läuft. Dann beginnt nach der mühseligen Tipperei die noch mühseligere Fehlersuche. Als letzter Ausweg bleibt dann nur noch der Anruf bei der Redaktion oder dem Verfasser, ob vielleicht doch ein Druckfehler…
Damit ist es jetzt vorbei. Ab dieser Ausgabe werden die Maschinenprogramme im 64’er mit dem MSE abgedruckt. MSE ist ein Maschinenspracheditor, mit dem ein Vertippen ausgeschlossen ist. Eine abgetippte Zeile wird nur angenommen, wenn sie richtig ist. Wie ist das möglich ? Eine Checksumme am Ende jeder Zeile prüft, ob die richtigen Werte in der richtigen Zeile an der richtigen Stelle stehen. Wenn nicht, ertönt ein Warnsignal, und man beseitigt den Fehler.
War die Zeile korrekt, erklingt ein Gong, und die nächste Zeilennummer wird ausgegeben. Damit ist also auch »blindes« Eintippen möglich; Sie können sich voll auf den Text konzentrieren.
MSE verringert die Tipparbeit um ein Drittel. Anstelle von dreistelligen DATAs brauchen Sie nur noch zweistellige Hex-Zahlen einzugeben, die direkt in den Speicher gePOKEt werden.
So arbeitet man mit MSE
Laden und starten Sie MSE. Zuerst wird der Programmname und die Start- und Endadresse erfragt. Diese Angaben entnehmen Sie dem Kopf des jeweiligen abgedruckten Listings. MSE meldet sich dann mit der Zeilennummer der ersten Zeile. Wenn Sie die Zeile richtig eingegeben haben, erscheint die nächste Zeilennummer und so weiter bis zum Ende. Zum Schluß wird das fertige Programm mit »CTRL-S« auf Diskette oder Kassette abgespeichert. Dazu sind keine weiteren Angaben mehr erforderlich. Das Programm kann dann ganz normal wieder absolut geladen und gestartet werden. Wenn Sie nicht alles auf einmal tippen wollen, können Sie jederzeit unterbrechen und den eingetippten Teil mit »CTRL-S« abspeichern. Wollen Sie weiterarbeiten, laden und starten Sie MSE wieder. Geben Sie auf die Frage nach der Startadresse aber jetzt »L« ein, um Ihr Teilprogramm zu laden. Jetzt können Sie mit »CTRL-N« die Adresse eingeben, an der Sie weitertippen müssen. Wenn Sie sich nicht gemerkt haben, wie weit Sie gekommen sind, geben Sie nach dem Laden »CTRL-M« ein.
Auf die Frage nach der Startadresse antworten Sie mit der Anfangsadresse, die links in der Kopfzeile auf dem Bildschirm steht. Nun wird Ihr Programm aufgelistet. Mit »SPACE« wird das Listen fortgesetzt, mit »STOP« abgebrochen. Das Ende Ihres Programmteils erkennen Sie sehr einfach daran, daß nur noch der Wert »AA« in der Zeile steht. Die Adresse dieser Zeile müssen Sie anschließend mit »CTRL-N« eingeben. Das Programm ist nur mit »STOP/RESTORE« zu verlassen. Speichern Sie aber vorher unbedingt immer Ihren Text ab.
Wollen Sie selbst Programme mit MSE ausdrucken, laden Sie Ihr Programm wie oben beschrieben und geben anschließend »CTRL-P« ein. Die Druckausgabe läßt sich mit »STOP« jederzeit abbrechen.
Hinweise zum Abtippen
Vor dem Abtippen oder späteren Wiederladen des MSE-Laders müssen Sie unbedingt folgende Zeile eingeben:
POKE 43,1: POKE 44,32: POKE 8192,0: NEW
Beachten Sie bei der Eingabe die Hinweise im »Checksummer«. Speichern Sie den »MSE Lader« nach dem Abtippen unbedingt ab. Starten Sie das Programm mit RUN. Fehlerhafte Zeilen werden angezeigt und müssen korrigiert werden, bis der Lader zum »READY« durchläuft. Jetzt müssen Sie das fertige MSE-Programm abspeichern. Dazu brauchen Sie nur »RETURN« zu drücken, weil die erforderlichen Angaben schon auf dem Bildschirm stehen. (Kassettenbesitzer müssen in Zeile 343 die letzte Zahl in »1« abändern). Abjetzt können Sie »MSE V1.0« direkt, also ohne den DATA-Lader benutzen. MSE V1.0 wird ganz normal mit »,8« geladen. Heben Sie das Programm gut auf, Sie werden es noch häufig brauchen.
(N. Mann/D. Weineck/gk)DEL | löscht die letzte Eingabe. |
CTRL-S | speichert das eingetippte Programm ab. |
CTRL-L | lädt ein Programm. Start- und Endadresse werden automatisch ermittelt. |
CTRL-M | listet den Speicherinhalt. Abbruch mit STOP-Taste, weiter mit Leertaste |
CTRL-N | erlaubt die Eingabe einer neuen Adresse zum Weitertippen. |
CTRL-P | gibt ein MSE-Listing auf dem Drucker aus. |
1 rem ******************************** 2 rem * ++++ mse - lader ++++ * 3 rem * von * 4 rem * d.weineck & n.mann * 5 rem * fleetrade 40, 2800 bremen 1 * 6 rem * tel. 0421/493090/231401 * 7 rem ******************************** 8 : 9 : 10 dim h(75) : for i=0 to 9 20 h(48+i)=i : h(65+i)=i+10 : next 30 for i=2048 to 3755 : read a$ 40 h=asc(left$(a$,1)):l=asc(right$(a$,1)) 50 d=h(h)*16+h(l) : s=s+d : poke i,d 60 a=a+1:if a<9 then next : a=-1 65 print "zeile:";1000+z; 70 read v : z=z+1 : if v=s then 85 80 print" pruefsummenfehler !";999+z:stop 85 if a<0 then 341 90 s=0 : a=0 : print : next : end 95 : 96 : 341 print"{clr}pO43,1:pO44,8:pO45,172:pO46,14" 342 poke 631,19:poke 632,13:poke 633,13:poke 198,3 343 print"{down}{down}{down}save"chr$(34)"mse v1.0"chr$(34)",8 344 end 360 : 370 rem ************** 380 rem * datas * 390 rem ************** 395 : 1000 data 00,0b,08,0a,00,9e,32,30,36, 339 1001 data 31,00,00,00,a2,08,a9,36,85, 575 1002 data a4,a9,08,85,a5,a9,00,85,a6, 1107 1003 data a9,b0,85,a7,a0,00,b1,a4,91, 1291 1004 data a6,c8,d0,f9,e6,a5,e6,a7,ca, 1817 1005 data d0,f2,a9,36,b5,01,4c,00,80, 1059 1006 data 20,d1,b1,a9,06,8d,21,d0,a9, 1144 1007 data 03,8d,20,d0,8d,86,02,a0,b3, 1000 1008 data a9,74,20,ff,b1,a0,b3,a9,b9, 1442 1009 data 20,ff,b1,a0,00,20,cf,ff,99, 1271 1010 data 01,02,c8,c9,0d,d0,f5,88,f0, 1246 1011 data d2,c0,0f,90,02,a0,0e,8c,00, 877 1012 data 02,20,ea,b1,a0,b3,a9,cf,20, 1192 1013 data ff,b1,20,8e,b4,85,fc,85,62, 1402 1014 data 20,8e,b4,85,fb,85,61,20,a7, 1167 1015 data b4,d0,20,a0,b3,a9,e5,20,ff, 1444 1016 data b1,20,8e,b4,85,60,20,8e,b4, 1114 1017 data 85,5f,20,a7,b4,d0,0a,a5,61, 1087 1018 data c5,5f,a5,62,e5,60,90,06,20, 1062 1019 data 43,b3,4c,3a,b0,a9,aa,a0,00, 1055 1020 data 91,fb,e6,fb,d0,02,e6,fc,20, 1601 1021 data 3f,b2,90,ef,4c,fb,b4,a2,02, 1295 1022 data 86,58,a9,a6,a0,9d,20,f2,b1, 1325 1023 data 20,e4,ff,f0,fb,c9,30,90,0c, 1411 1024 data c9,47,b0,08,c9,3a,90,0b,c9, 1071 1025 data 41,b0,07,c9,14,d0,0f,4c,0b, 779 1026 data b1,20,d2,ff,a6,58,95,f7,c6, 1522 1027 data 58,d0,d2,60,ae,8d,02,f0,26, 1197 1028 data c9,0c,d0,03,4c,0b,b6,c9,13, 913 1029 data d0,03,4c,8b,b5,c9,0d,d0,03, 1032 1030 data 4c,ba,b4,c9,10,d0,03,4c,68, 1050 1031 data b5,c9,0e,d0,06,20,5f,b4,4c, 993 1032 data 64,b1,4c,92,b0,a5,f9,20,02, 1123 1033 data b1,0a,0a,0a,0a,85,f9,a5,f8, 1012 1034 data 20,02,b1,05,f9,60,c9,3a,90, 964 1035 data 02,69,08,29,0f,60,a6,59,e0, 746 1036 data 08,90,1f,a6,58,e0,02,b0,06, 845 1037 data 20,d2,ff,4c,8e,b0,c6,59,a0, 1338 1038 data 14,a9,92,20,f2,b1,ca,d0,fa, 1446 1039 data 84,57,68,68,4c,8b,b1,a6,d3, 1196 1040 data e0,08,b0,03,4c,92,b0,20,d2, 1051 1041 data ff,a6,58,e0,02,90,09,c6,59, 1175 1042 data 20,d2,ff,c6,58,d0,f9,4c,8e, 1458 1043 data b0,48,4a,4a,4a,4a,20,59,b1, 842 1044 data 68,29,0f,c9,0a,90,02,69,06, 628 1045 data 69,30,4c,d2,ff,a2,fc,9a,20, 1294 1046 data d1,b1,20,48,b2,20,ea,b1,20, 1143 1047 data 9f,b2,a5,fc,20,4e,b1,a5,fb, 1457 1048 data 20,4e,b1,20,ed,b1,a9,3a,a0, 1120 1049 data 20,20,f2,b1,a9,00,85,59,20, 906 1050 data 8e,b0,20,ed,b1,a4,59,20,ef, 1288 1051 data b0,91,fb,c8,84,59,c0,08,90, 1337 1052 data ec,20,10,b2,a9,12,20,d2,ff, 1146 1053 data 20,8e,b0,20,ef,b0,c5,ff,f0, 1489 1054 data 0d,20,43,b3,a9,14,a0,14,20, 692 1055 data f2,b1,4c,a2,b1,a9,92,20,d2, 1391 1056 data ff,20,33,b2,20,e0,b2,20,3f, 1045 1057 data b2,90,9f,4c,8b,b5,a9,93,20, 1225 1058 data d2,ff,a2,00,a9,03,9d,00,d8, 1172 1059 data 9d,00,d9,9d,00,da,9d,00,db, 1125 1060 data e8,d0,ef,60,a9,0d,2c,a9,20, 1202 1061 data 4c,d2,ff,20,d2,ff,98,4c,d2, 1476 1062 data ff,20,e4,ff,f0,fb,60,84,5d, 1582 1063 data 85,5c,a0,00,b1,5c,f0,06,20, 932 1064 data d2,ff,c8,d0,f6,60,a5,fb,85, 1764 1065 data 5a,a0,00,84,5b,b1,fb,18,65, 1026 1066 data 5a,85,5a,90,02,e6,5b,06,5a, 876 1067 data 26,5b,c8,c0,08,90,ec,a5,5a, 1164 1068 data 65,5b,85,ff,60,18,a5,fb,69, 1221 1069 data 08,85,fb,90,02,e6,fc,60,a5, 1281 1070 data fb,c5,5f,a5,fc,e5,60,60,a0, 1541 1071 data b3,a9,fb,20,ff,b1,a0,01,b9, 1409 1072 data 00,02,20,d2,ff,cc,00,02,c8, 905 1073 data 90,f4,a9,10,ed,00,02,aa,20, 1014 1074 data ed,b1,ca,d0,fa,a5,62,20,4e, 1447 1075 data b1,a5,61,20,4e,b1,20,ed,b1, 1172 1076 data a5,60,20,4e,b1,a5,5f,20,4e, 918 1077 data b1,a9,9f,20,d2,ff,20,ea,b1, 1445 1078 data 24,5e,10,01,60,a9,12,20,d2, 672 1079 data ff,a2,28,20,ed,b1,ca,d0,fa, 1563 1080 data a9,92,4c,d2,ff,a5,d6,c9,16, 1458 1081 data b0,01,60,a9,a0,85,a4,a9,78, 1188 1082 data 85,a6,a9,04,85,a5,85,a7,a2, 1232 1083 data 13,a0,27,b1,a4,91,a6,88,10, 1022 1084 data f9,ca,f0,19,18,a5,a4,69,28, 1214 1085 data 85,a4,90,02,e6,a5,18,a5,a6, 1193 1086 data 69,28,85,a6,90,e0,e6,a7,4c, 1285 1087 data b6,b2,a9,91,4c,d2,ff,a9,0f, 1399 1088 data 8d,18,d4,a9,00,8d,05,d4,a9, 1073 1089 data f7,8d,06,d4,a9,11,8d,04,d4, 1149 1090 data a9,32,8d,01,d4,a9,00,8d,00, 883 1091 data d4,a0,80,20,09,b3,a9,10,8d, 1046 1092 data 04,d4,60,a2,ff,ca,d0,fd,88, 1528 1093 data d0,f8,60,a9,0f,8d,18,d4,a9, 1282 1094 data 2d,8d,05,d4,a9,a5,8d,06,d4, 1096 1095 data a9,21,8d,04,d4,a9,07,8d,01, 877 1096 data d4,a9,05,8d,00,d4,a0,ff,20, 1186 1097 data 09,b3,a9,20,8d,04,d4,a9,00, 915 1098 data 8d,01,d4,8d,00,d4,60,38,20, 891 1099 data f0,ff,8a,48,98,48,18,a0,06, 1119 1100 data a2,18,20,f0,ff,a0,b4,a9,0a, 1232 1101 data 20,ff,b1,20,12,b3,20,e4,ff, 1208 1102 data f0,fb,a2,1d,a9,14,20,d2,ff, 1368 1103 data ca,d0,fa,68,a8,68,aa,18,4c, 1306 1104 data f0,ff,0d,0d,0d,20,20,20,20, 662 1105 data 20,20,20,4d,41,53,43,48,49, 533 1106 data 4e,45,4e,53,50,52,41,43,48, 674 1107 data 45,20,2d,20,45,44,49,54,4f, 551 1108 data 52,20,0d,0d,20,20,20,20,20, 300 1109 data 20,20,20,56,4f,4e,20,4e,2e, 495 1110 data 4d,41,4e,4e,20,26,20,44,2e, 514 1111 data 57,45,49,4e,45,43,4b,00,0d, 531 1112 data 0d,0d,20,20,20,50,52,4f,47, 434 1113 data 52,41,4d,4d,4e,41,4d,45,20, 622 1114 data 3a,20,00,0d,0d,20,20,20,53, 295 1115 data 54,41,52,54,41,44,52,45,53, 682 1116 data 53,45,20,3a,20,24,00,0d,0d, 336 1117 data 20,20,20,45,4e,44,41,44,52, 526 1118 data 45,53,53,45,20,20,20,3a,20, 490 1119 data 24,00,92,05,20,50,52,4f,47, 531 1120 data 52,41,4d,4d,20,3a,20,00,12, 441 1121 data 20,20,2a,2a,2a,20,46,41,4c, 433 1122 data 53,43,48,45,20,45,49,4e,47, 614 1123 data 41,42,45,20,2a,2a,2a,20,20, 422 1124 data 92,00,0d,0d,2a,2a,2a,20,45, 399 1125 data 4e,44,45,20,2a,2a,2a,00,13, 392 1126 data 05,20,20,12,44,92,49,53,4b, 532 1127 data 20,4f,44,45,52,20,12,54,92, 610 1128 data 41,50,45,0d,00,13,20,20,49, 383 1129 data 2f,4f,20,2d,20,46,45,48,4c, 522 1130 data 45,52,00,20,d1,b1,20,48,b2, 851 1131 data a0,b3,a9,cf,20,ff,b1,20,8e, 1353 1132 data b4,85,fc,20,8e,b4,85,fb,c5, 1500 1133 data 61,a5,fc,e5,62,90,23,a5,fb, 1436 1134 data c5,5f,a5,fc,e5,60,b0,19,20, 1267 1135 data a7,b4,d0,14,60,20,a7,b4,f0, 1290 1136 data 0c,85,f9,20,a7,b4,f0,05,85, 1151 1137 data f8,4c,ef,b0,68,68,20,43,b3, 1225 1138 data 4c,5f,b4,20,cf,ff,c9,4c,d0, 1330 1139 data 09,20,d1,b1,20,48,b2,4c,0b, 796 1140 data b6,c9,0d,60,a9,00,85,5e,20, 920 1141 data 5f,b4,20,ea,b1,20,0d,b5,24, 980 1142 data 5e,30,05,20,e4,ff,f0,fb,20, 1185 1143 data e1,ff,f0,26,20,9f,b2,24,5e, 1257 1144 data 10,09,20,4e,b5,20,0d,b5,20, 574 1145 data 60,b5,20,33,b2,20,3f,b2,90, 955 1146 data d7,a0,b4,a9,28,20,ff,b1,20, 1260 1147 data e4,ff,c9,0d,d0,f9,a9,00,85, 1456 1148 data 5e,a5,61,85,fb,a5,62,85,fc, 1388 1149 data 20,e0,b2,4c,64,b1,a5,fc,20, 1236 1150 data 4e,b1,a5,fb,85,ff,20,4e,b1, 1346 1151 data a9,20,a0,3a,20,f2,b1,a0,00, 1030 1152 data 20,ed,b1,b1,fb,20,4e,b1,c8, 1361 1153 data c0,08,90,f3,20,ed,b1,24,5e, 1163 1154 data 30,03,a9,12,2c,a9,20,20,d2, 725 1155 data ff,20,10,b2,a5,ff,20,4e,b1, 1188 1156 data a9,92,20,d2,ff,4c,ea,b1,a9, 1468 1157 data ff,85,b8,85,b9,a9,04,85,ba, 1382 1158 data 20,c0,ff,a2,ff,4c,c9,ff,20, 1460 1159 data cc,ff,a9,ff,4c,c3,ff,20,5f, 1536 1160 data b4,a9,80,85,5e,20,4e,b5,20, 1027 1161 data 48,b2,a2,24,a9,2d,20,d2,ff, 1159 1162 data ca,d0,fa,20,ea,b1,20,ea,b1, 1546 1163 data 20,60,b5,4c,c1,b4,20,b8,b5, 1155 1164 data a6,5f,a4,60,a9,61,20,d8,ff, 1290 1165 data b0,0a,20,b7,ff,29,bf,d0,03, 1099 1166 data 4c,fb,b4,a9,01,20,c3,ff,20, 1191 1167 data 68,b6,a0,b4,a9,4f,20,ff,b1, 1338 1168 data 20,f9,b1,4c,fb,b4,20,68,b6, 1283 1169 data a9,37,a0,b4,20,ff,b1,20,f9, 1309 1170 data b1,a2,08,c9,44,f0,06,a2,01, 1025 1171 data c9,54,d0,f1,a9,01,a8,20,ba, 1290 1172 data ff,a0,00,e0,01,f0,1a,a9,40, 1139 1173 data 8d,20,02,a9,3a,8d,21,02,b9, 763 1174 data 01,02,99,22,02,c8,cc,00,02, 598 1175 data 90,f4,c8,c8,d0,0c,b9,01,02, 1196 1176 data 99,20,02,c8,cc,00,02,d0,f4, 1045 1177 data 98,a2,20,a0,02,4c,bd,ff,20, 1060 1178 data b8,b5,a5,ba,c9,08,90,33,a6, 1286 1179 data b9,86,57,a9,01,20,c3,ff,a9, 1227 1180 data 60,85,b9,20,c0,ff,b0,28,a5, 1274 1181 data ba,20,b4,ff,a5,b9,20,96,ff, 1440 1182 data 20,a5,ff,85,61,a5,90,4a,4a, 1139 1183 data b0,13,20,a5,ff,85,62,20,ab, 1081 1184 data ff,a5,57,85,b9,a9,00,20,d5, 1239 1185 data ff,90,03,4c,a3,b5,86,5f,84, 1183 1186 data 60,a5,ba,c9,01,d0,0a,ad,3d, 1101 1187 data 03,85,61,ad,3e,03,85,62,4c, 778 1188 data fb,b4,a9,13,20,d2,ff,a2,1c, 1306 1189 data 20,ed,b1,ca,d0,fa,60, 1202