Maschinensprache

War in den 1980ern das Werkzeug, um der Taschen-Rechentechnik auf die Sprünge zu helfen. Den kybergenetischen Amateur-Forschern und ihren sinnfreien Entdeckungen soll hier eine endgültige Hommage gezollt werden. Wir zitieren aus der

Einführung in die Maschinensprache für S.-Taschencomputer
Carsten H. (F., Berlin 1989) ISBN 3-89374-027-9

„Da der Speicher des PC-140X zu klein für ein Programm ist, das die Mnemonics selbst verstehen könnte, ist es das Ziel dieses Buches, die Befehle direkt mit ihren Hex-Codes zu verbinden. […] Am Ende können Sie zu jeder Zahl zwischen 0 und 255 eine kleine Geschichte erzählen: die Bedeutung des Maschinenbefehls mit diesem Code und wie Sie es endlich geschafft haben, sich diesen Befehl zu merken …“

„Maschinensprache“ ist nämlich der Zaubertrick, der den Taschen-Rechnern enorme Geschwindigkeit und ungeahnte Fähigkeiten verleiht. Sozusagen eine geheime Ebene unter der Benutzer-Oberfläche, die in den offiziellen Anleitungen nur indirekt erwähnt wird:

Programs containing POKE or CALL commands written on the PC-1250 Series cannot be executed on the PC-1403. Execution of such programs may render all PC-1403 keys inoperable.

… obwohl beide Rechner denselben Prozessor haben. Die interne Speicher-Organisation und das Betriebssystem sind natürlich anders, und darüber geben diverse System-Handbücher ausführlich Auskunft (z.B. Georg N., „Systemhandbuch S. PC-1401“, Verlag Günter H., Hamburg 1985) – dort wird das Innenleben des Taschencomputers seziert. Oder es wird in der „Alles für S.-Computer“ ausgeplaudert, dem Magazin des S.-User-Clubs Deutschland. In den 1980ern entschlüsseln Amateure die Maschinensprache nämlich selbst: sie steigen in die geheime Ebene ein, probieren aus, wie kurze Zahlenfolgen ausgeführt werden, und ordnen diesen „Op-Codes“ Befehle zu. Edgar P. verdanken wir etwa die Gedankenstützen (mnemonics) für die Maschinen-Codes des Prozessors in der PC-1250 Reihe. Ein schönes Beispiel ist die September 1982 Sondernummer des Pocket Computer Newsletter aus Connecticut

… is the result of a truly monumental undertaking by Norlin R. (Iowa). … culmination of months of dedicated labor. In honor of his efforts, PCN proposes to refer to the mnemonics he has devised … as the R. mnemonics.

Nach ein paar Jahren gibt es auch die „offiziellen“ Sharp Mnemonics, die im Technical Reference Manual für den PC-1500 aufgedeckt werden:

… we have had great number of questions from users regarding the machine language of the PC-1500. To meet with such demand from ardent uses, we are now sending this text for study of the machine language of the S.’s original design […] Microprocessor …

Der Zugang der oben zitierten „Einführung“ ist inzwischen ziemlich überholt: das 1403H Modell hat immerhin einen Speicher von 32kB. Die Mnemonics zu „verstehen“ oder zu „übersetzen“, das ist dann der Job von Assembler-Programmen wie YASM, PockASM, PocketASM oder des universellen „Cross-Assemblers“. Die gibt es frei im Netz (für den „großen PC“).

Die Hommage soll eine Op-Code-Tabelle sein, in der die Befehle der Maschinensprache numerisch von 0x00 bis 0xFF (Jargon für hexadezimale geschriebene Zahlen zwischen null und zweihundert-sechsundfünfzig) aufgelistet werden. Stellt sich die Frage nach der Beschreibung

  • ein kurzer Satz
  • drei, vier Buchstaben (mnemonic)
  • eine kurze Formel

Bei Edgar P., im PCN oder im TRM gibt es Varianten für die mnemonics, ich habe mich hier an die ziemlich vollständige Liste von utz angelehnt, die an Information über das Handbuch von Georg N. hinausgeht. Weitere docs gibt es bei Laurent D., Laurent F. und im YASM Assembler von Yagshi.

Die „Einführung“ trifft die Wahl von Formeln. Dazu muss man ein paar Informationen über die internen Variablen (memory registers) des Prozessors haben, denen natürlich relativ beliebige Buchstaben zugeordnet werden können. (Zumal wenn man die Befehle selbst entschlüsselt.) Die Buchstaben sind an utz‘ Liste angepasst und unterscheiden sich vom Originaltext der „Einführung“.

Im Register (5F) gibt es Bits mit besonderen Funktionen: …

4.Bit (0x10) „l“/“o“: Ein Wechsel des Bit-Zustands von „o“ nach „l“ oder umgekehrt erzeugt einen „Klack“. (So ist „Musik“ möglich!!)

5.Bit (0x20) „l“ = Tongenerator an (tiefe Frequenz)

5.+4. (0x30) „ll“ = Tongenerator an (hohe Frequenz)

6.+5. (0x60) „ll“ = „Tonempfang“ einschalten, um Programme/Daten vom Band zu laden

Disclaimer. „Ich distanziere mich von dem Inhalt der verlinkten Seiten.“

Advertisements

Ein Gedanke zu “Maschinensprache

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s