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!