Kill the Bit für HP2116B
Aufgrund einer Anzeige bei Ebay über eine HP2116B kamen Gespräche zustande. Mir sind die HP Geräte recht fremd, aber weil die Maschine im Bekanntenkreis gelandet ist, habe ich ein wenig drüber gelesen. Gerne wollte ich ein paar Maschinenanweisungen zusammenstellen. So habe ich etwas im simh gespielt und schnell war ich bei dem Gedanken, eine Frontpanelmaschine mit Switchregister? Na klar: Kill the Bit. Also habe ich ein wenig nach dem Maschinencode gesucht. Herausgekommen ist die derzeit kürzeste Version, denn die HP kann XOR und beim Rotate geht das Bit direkt vom rechten Rand nach links. Nicht erst in ein Link Register wie bei der PDP8. Das macht den Code extrem kurz:
dep 002000 002404 CLA, INA A löschen und inkrementieren (Initialisierung)
dep 002001 001300 RAR A eine Position nach rechts rotieren
dep 002002 036012 ISZ mit Brems (volle 1. Bremsschleife)
dep 002003 026002 JMP eine Adresse zurück (Bremsschleife)
dep 002004 036012 ISZ mit Brems (volle 2. Bremsschleife)
dep 002005 026004 JMP eine Adresse zurück (Bremsschleife)
dep 002006 072013 STA A im Speicher1 ablegen
dep 002007 102501 LIA Switchregister nach A laden
dep 002010 022013 XOR Speicher1 mit A in A XORen
dep 002011 026001 JMP zum Programmstart
dep 002012 000000 Brems (Laufzeitvariable)
dep 002013 000000 Speicher1 (Laufzeitvariable)
Das dep bedeutet DEPOSIT und kann so in simh eigegeben werden. (Nur die ersten drei Spalten). Laut Rückkopplung funktioniert das Programm!