MSE

Aus C64-Wiki
Zur Navigation springenZur Suche springen
MSE
MSE
Entwickler N. Mann, D. Weineck; M. Pousen
Verleger Markt & Technik
Release 1985
Lizenz Vollversion
Plattform(en) C64
Genre Eingabehilfe 64'er-Magazin
Steuerung Icon tastatur.png
Medien Icon disk525 1.png, Listing
Sprache(n) Sprache:englisch
Information Versionen 1.x, 2.x und 3

Der MSE ist die Abkürzung für MaschinenSpracheEditor und ist ein Programm für den C64, das der zur Eingabeerleichterung von Maschinenspracheprogrammen dient. Es wurde in der Computerzeitschrift 64'er erstmals in Ausgabe 02/1985[1] vorgestellt.

Benutzung[Bearbeiten | Quelltext bearbeiten]

Anstelle von langen DATA-Zeilen oder Assembler-Listings (z.B. Hypra-Ass) werden zweistellige Hexadezimalzahlen eingegeben. Zeilenweise Prüfsummen sichern die Eingabe gegen Tippfehler ab. Der MSE selber wurde als BASIC-Programm mit Maschinenspracheroutine veröffentlicht. Es sind verschiedenen MSE-Versionen erschienen.

Eingabedatenbeispiel für MSE V1.0: (ergibt kein lauffähiges Programm!)

0801: 1c 08 c4 07 8b 20 c2 28  48
0809: 36 35 35 33 34 29 b2 37  53

Eine verbesserte Version des MSE, die Version 2.0, erschien in der 64'er-Ausgabe 07/1990[2]. Durch die Verwendung von fast allen Buchstaben in einer 4-stelligen Buchstaben-Zahlen-Kombination waren die MSE-Listings schlanker.

Eingabedatenbeispiel für MSE V2.0: (ergibt kein lauffähiges Programm!)

0801: apd1 fa35 fhxc 11w6 7777 75e7  bu
0810: vn3t lbdy b77x qtgw pp7x ikdd  ft

Wegen eines Fehlers in der Prüfsummenroutine des MSE V2.0 erschien in der 64'er-Ausgabe 5/1991 ein Patch[3]. Der Fehler konnte in äußerst seltenen Fällen dazu führen, dass unterschiedliche Zeilen die identische Prüfsumme haben, also eine Abweichung aus einem leicht zu übersehenden Unterschied (z.B. "i" statt "j") aufweisen.
Die korrigierte Version mit dem Patch nannte sich dann MSE V2.1. Alle drei MSE-Versionen sind inkompatibel zueinander!

MSE-Version gültig für Ausgaben
1.0 2/85 bis 6/90
2.0 7/90 bis 4/91
2.1 5/91 bis 5/94

Ab der 64'er-Ausgabe 06/1994 entfiel das Abtippen der MSE-Listings, da die Programmservicediskette dem Heft monatlich beigelegt wurde.

Für BASIC-Programme leistet das Programm Checksummer vergleichbares.

Technische Details[Bearbeiten | Quelltext bearbeiten]

Der MSE V1.0 berechnet die Prüfsummen mit folgendem Algorithmus (Pseudo-Code)[4]:

tmp = adr & 255
for b in bytes:
  tmp = (tmp + b) << 1
checksum = (tmp >> 8 + tmp & 255 + 1) & 255

Quellen[Bearbeiten | Quelltext bearbeiten]