Intersil Intercept Junior
Durch Ebay-Kleinanzeigen habe ich jemanden Kennengelernt, der gegen Porto einige Handbücher entsorgte. Da war ich an ein paar Sachen interessiert und wir sind ins Gespräch gekommen. Er meinte da noch etwas im Schrank zu haben, und ich möge ihm sagen ob das noch etwas sei. Nachdem ich die Fotos gesehen hatte war ich sehr interessiert und so kam es, das der Junior den Schrank gewechselt hat. Nach ein paar Tagen habe ich das Gerät mit Batterien bestückt, und schon stand da eine Zahl nach dem Einschalten in der Segmentanzeige:
7777 6776
Das Gerät funktionierte, ich war recht zufrieden und so wurde das Handbuch zu Rate gezogen. Eine Lektion in acht Stunden zum Durcharbeiten. Danach sollte man das Konzept und die Programmierung einer PDP8 verstanden haben. Das wollte ich natürlich gerne in den zeitgemäßen Worten von damals geniessen. Aber als das geschrieben wurde, 1976, gingen die Uhren noch anders. Recht zäh der Text, bis ich an die Stelle kam, an der stand, wie die Zahl nach dem Einschalten aussehen sollte:
7777 5366
Hmmm, das war aber doch am Gerät anders? Mit etwas feuchten Händen versuche ich herauszufinden was das soll. Nach einer Weile war klar, das Handbuch war für das Vorgänger Board! Hinten drin lag eine 20 seitige „Change Notice“. Mit der war das Lesen kein Spaß, aber im Internet fand ich schnell das passende Dokument als Pdf.
Zu dem Board, quasi eine PDP8/e auf einem Chip, sind noch drei Zusatzkarten vorhanden. Eine Memory Karte mit 1k Wörtern und Batteriepufferung, eine Soundkarte und eine serielle IO Karte.
5.2019
Die serielle Karte ist in der Lage eine ASR-33 anzusprechen, falls diese entsprechend eingerichtet ist (duplex, 20mA Current Loop und „Tape Reader Control“). Es gibt auch ein alternatives BIOS, welches dann interaktiv mit dem 110Baud Terminal arbeitet. Das Bios ist als Listing im Handbuch ausgedruckt.
Der CHIP Intersil IM6312-001 hat dieses BIOS durch den Herstellungsprozess fest eingebaut.
Die Adaptierung der Intercept Junior an die ASR-33 erfolgt nach den Handbüchern. Wobei die Schwierigkeit darin besteht, den TAPE READER CONTROL nachzurüsten. Die mit den DEC Rechnern ausgelieferten ASRs waren entsprechend vorbereitet.
Die in meiner ASR enthaltenen zwei Zusatzplatinen lassen sich dazu „umbiegen“. Die eine Platine steuert den Reader an, wird ein Taste gedrückt, wird der Reader kurz gesteppt. Die andere Platine war durch Drähte so überbrückt, dass die Funktion der ersten Platine in LINE und LOCAL gleichermassen funktionierte.
Darum habe ich die Überbrückungen von der Platine gelöst und zusammengefasst. So wurde das Relais frei, welches ich parallel zu dem der ersten Platine geschaltet habe. Die Relaisansteuerung erfolgt wie in den Handbüchern angegeben über die Tape Control Pins der seriellen Schnittstellenkarte (Pin 6 und 7) direkt.
Pins 1,3,4 und 5 sind für current Loop zuständig. Da die zweite Platine die Relaisansteuerung am Kontaktblock #2 zur Verfügung stellt (+Pin 13, - Pin15) konnte das leicht adaptiert werden.
Der Anschluss gelingt, und die einfachen Beispielprogramme funktionieren. Zeichen können gelesen ausgegeben werden. Ein kleines Echo Programm macht die ASR REMOTE zur Schreibmaschine. Toll!
Die Tapereader Steuerung spricht den Reader an und sieht soweit gut aus.
Nun braucht es Papierstreifen im BIN Format!
Und die lassen gar nicht lange auf sich warten. Mit freundlicher Unterstützung von Klemens Krause vom Computermuseum Stuttgart bekomme ich aus der DECUS PROGRAM LIBRARY das Programm Micro-8 (DECUS Nr. 8-91, 1967). Es wurde an meine Speicherkonfiguration angepasst und beginnt ab Speicher 3000-3777(oktal) ins RAM passt. Auch wurden die Aufruf Adressen für die BIOS Aufrufe von und zur seriellen Karte angepasst. Lesen: CALL 7613 und Schreiben: CALL 7600
Das Einlesen von der ASR-33 gelingt auf Anhieb. (Einfach Tasten CONTROL OSR drücken, dann startet das Einlesen) Aber zuerst scheint das Programm nicht zu laufen. Ich merke etwas fehlt. In den Beispiel Programmen der Intersil Dokumentation wird zuerst die serielle Karte initialisiert und ein Timer ausgeschaltet. Mache ich das vorab von Hand, kann ich das Programm an 3000 starten.
Einzeln steppen durch:
0100 7340
0101 6402
0102 4161
0103 6340
(Initialisieren: CALL 6340 (4161 6340), disable CP request timer: 6402, Lesen: CALL 7613, Schreiben: CALL 7600)
11.08.2019 Ich möchte ein Programm schreiben, mit dem ich einen Namen eingeben kann, der dann menschlesbar auf den Papierstreifen gepunched wird. Das soll ein kleines Demo werden, denn ich habe mich für die diesjährige VCFB angemeldet. Mit der ASR-33 und der Intersil Junior.
Dazu wollte ich das im Frühjahr eingelesene Programm einmal wieder starten, aber es ist defekt im Speicher und läuft nicht. Abschnittsweise sehen die Speicherinhalte aus, als wären zum Ursprungswert 5 okal addiert worden.
Von dem Papertape von Klemens Krause hatte ich inzwischen eine direkte Kopie an meiner FACIT N4000 gemacht, und die wurde nun eingelesen (Tasten CONTROL OSR). Das hat wieder funktioniert, nach händischer Initialisierung startet das Programm. Nach Eingabe von:
0100 7340 CLA CLL CMA (clear AC, clear LINK, complement AC)
0101 6402 disable CP request timer
0102 4161 call zur Biosroutine 0161
0103 6340 Adresse der Initialisierung
0104 4545 springe zu dem was in 0105 steht
0105 3000 Startaddresse Micro 8
startet Micro 8 von 0100 aus.
17.08.2019 Mittlerweile kann ich selbst Papierstreifen schreiben. Das geht vom Raspberry aus, mit dem Crosscompiler palbart. Ein in PAL8 geschriebenes Programm wird mit palbart compiliert und dessen erzeugtes BIN-File an den Paperpunch geschickt. Als Paperpunch arbeitet ein seriell angeschlosses FACIT N4000.
Um nun für die Intersil zu programmieren, muss deren Speicheraufteilung beachtet werden. Das ist anders als bei einer PDP8, aufgrund des zugrunde liegenden ROM des Systems.
Adresse
0000 reserviert
0001 - 0137 frei
0140 - 0177 reserviert
0200 - 0377 frei
3000 - 4777 frei
6000 - 7777 ROM IM6312-002
21.08.2019 Um menschenlesbare Papierstreifen von der Intersil aus mit der ASR-33 herstellen zu können, suche ich ein entsprechendes Programm. Für die PDP8 werde ich bei David Gesswein fündig.
Die Programm passe ich versuchsweise für die Intercept Junior an und schaue dann mal, was ich draus machen möchte. Zuerst einmal bedarf es der Initialisierung der seriellen Schnittstelle und des Ausschaltens des CP request timers (aus den Intersil Handbuch Beispielen) :
7340 Set AC to 7777
6402 Disable CP request timer
4161 Call
6340 PIE initialization routine INPIE entry address
Dieser Code wird vorangestellt.
Dann werden bei der Intersil die Zeichen mit Hilfe non BIOS Routinen gelesen und geschrieben, dazu müssen diese entsprechend aufgerufen werden. Das funktioniert bei der PDP8 anders, daher müssen die Befehle gegen die ROM Aufrufe ausgetauscht werden. Da die original Sequenz 3 Worte hat, wird für die Intersil nach dem Aufruf ein NOP eingeführt, um die Codelänge beizubehalten.
PDP8 read PDP8 write Intersil read Intersil write
KSF SPF 4161 4161
JMP .-1 TSF 7613 7600
KRB JMP .-1 NOP NOP
Weiter ist noch der Speicherbereich zu beachten, und der ist ab 2000 frei. Die Anpassungen habe ich gemacht, mit palbart kompiliert, das Binary auf der Facit gepunched und über die ASR33 in die Intersil eingelesen.
Es klappt! Nach RUN bei Speicher 2000 werden an der ASR33 eingegebene Zeichen menschenlesbar auf den Papierstreifen gestanzt.