DE2262725A1 - Programmierbarer elektronischer rechner - Google Patents
Programmierbarer elektronischer rechnerInfo
- Publication number
- DE2262725A1 DE2262725A1 DE2262725A DE2262725A DE2262725A1 DE 2262725 A1 DE2262725 A1 DE 2262725A1 DE 2262725 A DE2262725 A DE 2262725A DE 2262725 A DE2262725 A DE 2262725A DE 2262725 A1 DE2262725 A1 DE 2262725A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- register
- key
- computer
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/02—Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/02—Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
- G06F15/0225—User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems
- G06F15/0233—User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems with printing provisions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Calculators And Similar Devices (AREA)
- Input From Keyboards Or The Like (AREA)
- Digital Computer Display Output (AREA)
- Document Processing Apparatus (AREA)
- Complex Calculations (AREA)
- Debugging And Monitoring (AREA)
Description
Hewlett-Packard Company, 1501 Page Mill Road, Palo Alto
California,USA
PROGRAMMIERBARER ELEKTRONISCHER RECHNER
Die Erfindung bezieht sich auf einen programmierbaren
elektronischen Rechner mit einem Eingabe-Tastenfeld zum
Eintasten alpha-numerischer Informationen in den Rechner, mit einem Eingabe-Speicherregister zum Zwischenspeichern
in den Rechner eingegebener alpha-numerischer Informationen,
mit einem Schreib-Lese-Speicher zum Abspeichern vom Eingabe-Speicherregister übertragener alpha-numerischer Informationen,
mit einer Logik-Einheit zum Festlegen einer Anzahl Programme und Unterprogramme, welche vom Rechner beim Verarbeiten
und Speichern in das Eingabe-Speicherregister eingegebener alpha-numerischer Informationen durchgeführt werden
sollen, mit einer Verarbeitungs-Einheit zum wahlweisen Durchführen eines oder mehrerer dieser Programme und Unterprogramme
zum Zwecke des Verarbeitens und Speicherns in das Eingabe-Speicherregister eingegebener alpha-numerischer Informationen
309832/0343
Volkebenk Böblingen AG. Kto. 8 458 (DLZ 60 390 220) · Postscheck: Stuttgart 896 SS
und mit einer Ausgabe-Einheit zum Liefern einer Ausgangs-Anzeige der Resultate aus den vom Rechner verarbeiteten
alpha-numerischen Informationen.
Die Erfindung betrifft allgemein einen programmierbaren Rechner, der sowohl mit Hilfe einer Tastenfeld-Eingabe-Einheit
von Hand als auch automatisch von einem gespeicherten Programm gesteuert werden kann, welches über die Tastenfeld-Eingabe-Einheit
oder einen externen Aufzeichnungsträger in den Rechner eingegeben worden ist.
Numerische Berechnungen können mit Hilfe eines Tischrechners, d.h. einer zweckorientierten tastengesteuerten Rechenmaschine,
die programmierbar sein kann oder nicht, von Hand durchgeführt werden oder mit Hilfe eines Universalrechners.
Die Lösung einer numerischen Aufgabe von Hand ist häufig sehr zeitraubend, und zwar in vielen Fällen
in einem solchen Maße, daß sie eine unpraktische, kostspielige und wenig wirkungsvolle Verwendung der menschlichen
Fähigkeiten darstellt, insbesondere, wenn andere Möglichkeiten für die Lösung der numerischen Aufgabe bestehen.
Für viele relativ einfache numerische Aufgaben können schon
nichtprogrammierbare Rechner wirkungsvoller eingesetzt werden als manuelle Methoden. Die Tastenfeld-Bedienung und
die hierfür erforderlichen Regeln sind bei diesen Rechnern in ihrer Struktur jedoch so trivial, daß für die Lösung
309832 /08 43
eines einigermaßen allgemeinen arithmetischen Problemes
viele Tastenbetätigungen erforderlich sind. Viele weitere numerische Aufgaben können mit programmierbaren Rechnern
in einer Geschwindigkeit gelöst werden, die einige hundertmal größer ist als diejenige von manuellen Rechenverfahren.
Die bei solchen Rechnern der Tastenfeld-Bedienung zugrunde liegenden Regeln sind aber in ihrer Struktur immer
noch relativ einfach, so daß viele Tasten-Betätigungen nötig werden, um eine allgemeinere arithmetische Aufgabe
zu lösen.
Ein weiteres Grundproblem, das bei fast allen Tastenfeld-"Sprachen"
auftritt, die bei den üblichen programmierbaren und nichtprogrammierbaren Tischrechnern verwendet werden,
liegt darin, daß sie die Eigenheiten der "hardware" des Rechners also seines technischen Aufbaues, dem Benutzer
bewußt werden lassen. So muß der Benutzer für gewöhnlich mit Daten-Bewegungen auf der Bauelemente-Stufe arbeiten,
und muß z. B. sicherstellen, daß die Daten sich in bestimmten Speicherregistern befinden, bevor er die Operationen
angeben darf., die mit den Daten durchgeführt werden sollen. Ihm werden noch weitere solche "housekeeping"-Funktionen
zugemutet, also Arbeiten, die mit dem technischen Ablauf im Rechner zusammenhängen.
Bisher hatten programmierbare und nichtprogrammierbare Tischrechner für gewöhnlich sehr begrenzte Speicher,
wodurch der Umfang der numerischen Aufgaben erheblich
309832/0843
eingeschränkt war, welche mit ihnen gelöst werden konnten.
Wegen dieser erheblichen Einschränkungen waren die relativ einfache Struktur der Tastenfeld-Programmiersprachen
dieser Tischrechner und die mit ihren Programmiersprachen verbundenen "housekeeping"-Anforderungen vergleichsweise
geringfügige Nachteile. Mit den Fortschritten in der Technologie sind jedoch die Kosten der Speicher so weit gesunken,
daß es wirtschaftlich vertretbar wurde, in programmierbaren Tischrechnern auch größere Speicher vorzusehen.
Diese größeren Speicher ermöglichten es nun, immer größere Aufgaben mit programmierbaren Tischrechnern zu lösen. Dadurch
aber gewannen die Nachteile der üblichen Programmiersprachen dieser Rechner an Gewicht und es entstand ein Bedarf
nach Tastenfeld-Programmiersprachen einer höheren Stufe.
Zusätzlich zu den erwähnten Nachteilen besitzen die üblichen programmierbaren Tischrechner für gewöhnlich weniger Möglichkeiten
und Flexibilität als sie für die Anforderungen vieler Benutzer benötigt werden. Beispielsweise können diese
Rechner meist nicht in einfacher Weise erweitert und von dem Benutzer angepaßt werden, um den Umfang des Programmund
Datenspeichers zu vergrößern oder spezielle Tastenfeld-Funktionen durchzuführen, die an den Bedürfnissen des Benutzers
orientiert sind.
Bei einigen üblichen programmierbaren Rechnern kann ein in
309832/0843
dem Rechner gespeichertes Programm auf einem externen magnetischen Aufzeichnungsträger festgehalten und später
von diesem wieder in den Rechner eingegeben werden. Die in diesen Rechnern gespeicherten Daten und Programme können
jedoch für gewöhnlich nicht getrennt auf dem externen magnetischen Aufzeichnungsträger aufgezeichnet und dann
später wieder getrennt von diesem in den Rechner zurückgebracht werden. Darüber hinaus besteht bei diesen Rechnern
in der Regel keine Möglichkeit, ein Programm gegen unbeabsichtigte oder unbefugte Veränderungen zu sichern, wenn
es auf dem externen magnetischen Aufzeichnungsträger gespeichert
ist. Das Programm kann auch von jedem beliebigen · Benutzer kopiert oder in seinen einzelnen Programm-Schritten
ausgeforscht werden, wenn es wieder in den Rechner eingegeben worden ist.
übliche programmierbare Tischrechner mit eingebauten Ausgabe-Sichtgeräten
haben meist nicht die Möglichkeit einer alphabetischen Zeichendarstellung und können meist nur
den Inhalt eines oder weniger ausgewählter Register wiedergeben. Sie sind daher im allgemeinen nicht in der Lage,
eine Zeile aus ein oder mehreren alpha-numerischen Aussagen
bestehende Zeile darzustellen oder eine alphabetische Nachricht, die zum Beispiel dafür verwendet kann, um den
Benutzer über die Art und Weise zu informieren, wie er ihm
unbekannte Programme verwenden kann. Derartige Möglichkeiten sind sehr nützlich für den Verwender, beispielsweise beim
309832/0843
Edieren oder Überarbeiten von Programmen und beim Vereinfachen
ihrer Anwendung.
In ähnlicher Weise haben übliche programmierbare Tischrechner mit eingebautem Ausgabedrucker meist nur eine sehr
begrenzte Alphabet-Schreibmöglichkeit mit einigen Wenigen ausgewählten Zeichen, die noch dazu auf bestimmte Spalten
des Druckes beschränkt sind. Mit ihnen kann daher im allgemeinen kein für jedes in dem Rechner gespeicherte Programm
typisches Merkzeichen ausgedruckt werden. Weiterhin können diese Drucker auch keine Kennzeichnungen für Eingabewerte
und Ausgabewerte des Rechners ausdrucken oder Nachrichten für den Benutzer, die ihm sagen, wie er ein ihm unbekanntes
Programm anwenden muß. Auch diese Möglichkeit wäre für den Benutzer sowohl beim Edieren als auch beim Vereinfachen von
Programmen sehr nützlich.
Um einen programmierbaren Tischrechner wirtschaftlich zur Lösung vieler nicht-trivialer numerischer Aufgaben einsetzen
zu können, müssen dem Benutzer Bedienungsbefehle gegeben werden, die bei richtiger Befolgung, eine Auflistung
der errechneten Resultate ergibt. Da die üblichen Tischrechner nicht sowohl ein eingebautes Sichtgerät mit wechselnder
Anzeige als auch einen eingebauten Ausgabedrucker aufweisen, von denen jede die Möglichkeit einer Alphabet-Darstellung
besitzt, werden die Bedienungsbefehle für gewöhnlich entweder als Ziffern auf dem Sichtgerät oder als alpha-
309832/0843
numerische Nachrichten auf der ausgedruckten Liste dargestellt,
jedoch zerstreut zwischen den errechneten Resultaten.
Die Darstellung der Bedienungsbefehle als Ziffern auf dem Sichtgerät ist jedoch unerwünscht, weil der Be- nutzer
diese Ziffern entweder auswendig lernen oder die zugehörigen Bedienungsbefehle nachschlagen muß. In ähnlicher
Weise ist die Darstellung der Bedienungsbefehle auf einer ausgedruckten Liste zerstreut zwischen den errechneten
Resultaten ebenfalls unerwünscht.
Die üblichen programmierbaren Rechner haben meist wenig
oder gar keine Möglichkeit zum Edieren von Tastenfeld-Eingaben oder in dem Rechner gespeicherten Programmen. Beispielsweise
haben sie meist keine Möglichkeit zum Entfernen, Ersetzen und Einfügen von Informationen in einem
Eingabewert oder einem intern gespeicherten Programm, insbesondere nicht Zeichen für Zeichen oder Zeile für Zeile.
Weiterhin haben sie beispielsweise keine Möglichkeit, eine beliebige Zeile eines intern gespeicherten Programmes mit
mehreren Zeilen alpha-numerischer Angaben unmittelbar aufzurufen. Diese Möglichkeiten wären für den Benutzer sehr
nützlich beim Edieren von Programmen.
Universalrechner haben zwar erheblich größere Möglichkeiten
als die üblichen programmierbaren Tischrechner, doch für viele numerische Aufgaben bietet der Universal-'-
309832/0843
Rechner wenig oder gar keine wirtschaftlichen Vorteile
gegenüber manuellen Losungsmoglichkeiten, weil Schwierigkeiten
in dem "interface" zwischen dem Benutzer und der Maschine auftreten, also Schwierigkeiten in der Kommunikation
zwischen beiden. Diese Schwierigkeiten äußern sich in einem geringen Durchsatz bei Massenberechnungen oder,
gegen der universellen Natur des Rechners, in einer langen Lernperiode für den Benutzer. Normalerweise wird für den
Einsatz eines Universalrechners ein ausgebildeter Programmierer benötigt. Wegen dieser Umstände sind die normalen
Universalrechner besser für die Verarbeitung großer Datenmengen geeignet oder für die Lösung stark iterativer oder
sehr verwickelter Rechenaufgaben.
In der älteren deutschen Anmeldung P 22 28 742.9 der gleichen Anmelderin ist nun ein programmierbarer elektronischer
Rechner der eingangs genannten Art vorgeschlagen worden, der äußerst zufriedenstellend arbeitet. Bei ihm kann jedoch
nur jeweils ein einziges Zeichen abgespeichert werden und es ist nur der Modus "Programm" und der Modus "Speichern"
möglich.
Der Erfindung liegt nun dem gegenüber die Aufgabe zugrunde, einen programmierbaren elektronischen Rechner dieser Art
zu schaffen, der dadurch eine erheblich größere Flexibilität aufweist, daß jeweils ganze Zeilen mit alpha-numerischen
Angaben dargestellt werden und sodann gewählt werden kann,
309832/0843
ob die einzelne Zeile verarbeitet oder abgespeichert wird. Dieser Rechner soll insgesamt gesehen eine größere
Rechenkapazität und Flexibilität aufweisen, als übliche programmierbare Rechner, kleiner, billiger und leistungsfähiger
beim Berechnen elementarer mathematischer Funktionen · sein, als übliche Rechnersysteme und einfacher zu bedienen
sein als derartige Rechner und Systeme.
Dies wird erfindungsgemäß dadurch erreicht, daß das Eingabe-Tastenfeld
eine Anzahl Datentasten, mit welchen aus jeweils ein oder mehreren alpha-numerischen Aussagen bestehende·
Zeilen in den Rechner eintastbar sind, eine Verarbeitungs-'taste, mit welcher der Rechner zum Verarbeiten einer eingegebenen,
aus ein oder mehreren alpha-numerischen Aussagen bestehenden.Zeile veranlaßbar ist, und eine Speichertaste
aufweist, mit welcher das Abspeichern einer eingegebenen, aus ein oder mehreren alpha-numerischen Aussagen bestehenden
Zeile in den Rechner auslösbar ist, daß das Eingabe-Speicherregister eine in den Rechner eingegebene aus ein oder mehreren
alpha-numerischen Aussagen bestehenden Zeile zwischenzuspeichern vermag, daß der Schreib-Lese-Speicher von dem Eingabe-Speicherregister
übertragene, jeweils aus ein oder mehreren alpha-numerischen Aussagen bestehende Zeilen abzuspeichern
vermag, daß die Logik-Einheit eine Anzahl Programme und Unterprogramme festzulegen vermag, welche vom Rechner beim Verarbeiten
und Speichern in das Eingabe-Speicherregister eingegebene, Jeweils aus ein oder mehreren alpha-numerischen Aus-
309832/0843
sagen bestehender Zeilen durchgeführt werden sollen, daß die Verarbeitungs-Einheit auf eine Betätigung der Verarbeitungstaste
im Anschluß an das Eintasten einer aus ein oder mehreren alpha-numerischen Aussagen bestehenden
Zeile in das Eingangs-Speicherregister anzusprechen vermag, um wahlweise eine oder mehrere dieser Programme und Unterprogramme zum Zwecke des Verarbeitens dieser aus ein oder
mehreren alpha-numerischen Aussagen bestehenden Zeile durchzuführen und auf eine Betätigung der Speichertaste im
Anschluß an das Eintasten einer aus ein oder mehreren alphanumerischen Aussagen bestehenden Zeile in das Eingangs-Speicherregister
anzusprechen vermag, um zusätzlich diese aus ein oder mehreren alpha-numerischen Aussagen bestehende
Zeile in dem Schreib-Lese-Speicher abzuspeichern, und daß die Ausgabe-Einheit eine alpha-numerische Anzeigeeinheit
aufweist, mit welcher jede in das Eingabe-Speicherregister eingegebene aus ein oder mehreren alpha-numerischen
Aussagen bestehende Zeile optisch darstellbar ist.
Die Einrichtung gemäß der Erfindung weist eine Reihe von Vorteilen auf, von denen im folgenden einige als Beispiele
aufgeführt sind:
Der programmierbare elektronische Rechner nach*der Erfindung
verwendet eine unmittelbar anwendbare Tastenfeld-Programmiersprache hohen Niveaus, welche die meisten betriebsbedingten
Anforderungen an die Bedienungsperson un~
309832/08 4.3
nötig machen, welche für gewöhnlich mit den Programmiersprachen üblicher programmierbarer elektronischer Rechner
und Computer verbunden sind.
In dem Rechner nach der Erfindung kann der Umfang des dem
Benutzer zur Verfügung stehenden Programm- und Datenspeichers erweitert werden, und der dem Benutzer zusätzlich zugänglich
gemachte Programm- und Datenspeicher wird von dem Rechner automatisch berücksichtigt und der Benutzer wird jedesmal
darauf aufmerksam gemacht, wenn die Kapazität des Programmund Datenspeichers überschritten worden ist.
Die von dem Rechner ausgeführten Funktionen können von dem Benutzer leicht erweitert und an seine Anforderungen angepaßt
werden, wobei, die zusätzlichen Funktionen von dem Rechner automatisch berücksichtigt werden.
Der Benutzer kann in dem Rechner zusätzliche, von dem Rechner auszuführende Tastenfeld gesteuerte Funktionen definieren
und abspeichern. Er kann jeder solchen definierten tastenfeldgesteuerten Funktion eine eigene, wählbare Taste des
Tastenfeldes zuordnen und kann jede solche definierte tastenfeldgesteuerte Funktion dadurch ausführen und/oder
als Teil eines Programmes abspeichern lassen - entweder je für sich oder als Teil eines arithmetischen Ausdruckes - .,
indem er die Verarbeitungstaste bzw. die Speichertaste des
Tastenfeldes betätigt/nachdem die zugehörige wählbare Taste
3098 32/0,8 A3
und eine oder mehrere andere zur Eingabe der Parameter der definierten tastenfeldgesteuerten Funktion in den
Rechner benötigten Tasten gedrückt worden sind.
Der Anwender kann in dem Rechner von diesem auszuführende Unterprogramme definieren und abspeichern, kann jedem so
definierten Unterprogramm eine Aufruffolge zuordnen, die gegebenenfalls eine zugeordnete wählbare Taste des Tastenfeldes
und auch Parameter des definierten Unterprogrammes enthalten kann, kann durch Betätigen der Verarbeitungstaste bzw. der Speichertaste des Eingabe-Tastenfeldes unmittelbar
im Anschluß an die Aufruffolge jede solche Aufruffolge verarbeiten und/oder als Teil eines Programmes
abspeichern und er kann jedes solches einer Aufruffolge zugeordnete definierte Unterprogramm dadurch ausführen lassen,
daß er die zugehörige Aufruffolge ausführen läßt.
Der Benutzer kann in dem Rechner von diesem zu verarbeitende Unterprogramme definieren und abspeichern, kann jedem
so definierten Unterprogramm, das keine Parameter aufweist, eine eigene wählbare Taste der Tastenfeld-Eingabe-Einheit
zuordnen und er kann jedes solche parameterlose Unterprogramm sofort ausführen lassen, indem die zugehörige wählbare
Taste betätigt.
In dem Rechner nach der Erfindung wird jedem definierten, in dem Rechner gespeicherten und von dem Benutzer einer
309832/0843
eigenen wählbaren Taste der Tastenfeld-Eingabe-Einheit
zugeordneten Unterprogramm eine Folge von Zeilennummern zugeteilt, die unabhängig von den Zeilennummern einer anderen
Funktion, eines anderen Unterprogrammes oder eines
anderen Programmes ist, das ebenfalls in dem Rechner gespeichert sein kann. .
In' dem Rechner wird jedes Unterprogramm und jede zusätzliche
definierte, in dem Rechner gespeicherte und von dem Benutzer einer eigenen wählbaren Taste der Tastenfeld-Ein-
gabeeinheit zugeordnete Tastenfeldfunktion automatisch gegen ein versehentliches Ändern oder Zerstören durch den Benutzer
geschützt.
Die für Tastenfeldfunktionen, für Unterprogramme und für vom Benutzer definierte und in dem Rechner gespeicherte zusätzliche
Tastenfeldfunktionen vorzusehenen Parameter können aus Eingabedaten bestehen, welche numerische Werte umfassen,
Registerbezeichnungen und arithmetische Ausdrücke, oder aus Ausgaberegisterbezeichnungen.
Die von dem Benutzer definierten, in'dem Rechner gespeicherten
und einer eigenen wählbaren Taste der Tastenfeld-Eingabe-Einheit zugeordneten Unterprogramme können sowohl lokale
als auch überörtliche Variable enthalten.
Datenspeicher-Register können unmittelbar durch den ganzzahligen
Wert eines errechneten arithmetischen Ausdruckes
3 09832/0843
adressiert werden, der wiederum den Inhalt eines oder mehrerer in ähnlicher Weise adressierter Datenspeicherregister
umfassen kann. Diese Einsatzmöglichkeit kann sowohl zum Aufrufen und Abspeichern von Informationen verwendet
werden als auch für eine leistungsfähige Handhabung von Aufreih- und Matrix-Operationen.
Der Benutzer kann jedes in dem Rechner gespeicherte Programm als gesichert bezeichnen, wenn es auf einem externen magnetischen
Aufzeichnungsträger für eine spätere Wiedereingabe in den Rechner aufgezeichnet wird. Der Benutzer kann kein
gesichertes Programm noch einmal aufzeichnen oder irgendeinen Hinweis auf dessen einzelne Programmschritte erlangen, sobald
dieses gesicherte Programm wieder in den Rechner eingegeben worden ist. Der magnetische Aufzeichnungsträger mit dem gesicherten
Programm kann auch nichtgesicherte Daten enthalten.
Der Rechner kann jedes alphabetische oder numerische Zeichen und viele andere Symbole einzeln oder im Rahmen von Nachrichten
ausdrucken oder in einer alphanumerischen Anzeige darstellen.
Dem Rechner können Fragen gestellt werden, und .es können
von einer alphanumerischen Anzeige Bedienungsbefehle und andere Nachrichten gegeben werden. Die Antworten oder Ausgabedaten
werden von einem alphanumerischen Drucker mit einer Kennzeichnung, aber ohne die Fragen, Bedienungsbefehle oder
Nachrichten ausgedruckt.
309832/0843
Der Rechner kann eine numerische Darstellung für jede
numerische Eingabe über das Tastenfeld und für jedes errechnete numerische Ergebnis ausdrucken und dabei die
numerische Eingabe von dem numerischen Ergebnis unterscheiden. . . ■ .
Die in dem Rechner gespeicherten Programme können wirkungsvoller ediert und bearbeitet werden als in den üblichen
programmierbaren Rechnern.
Der Benutzer kann von dem Tastenfeld eine Zeile mit einer oder mit mehreren alphanumerischen Aussagen in den Rechner
eingeben, er kann eine alphanumerische Anzeige eines Teiles der Zeile oder der ganzen Zeile betrachten/ und zwar sowohl
bei als auch nach der Eingabe,· um die Eingabe auf Fehler zu überprüfen, und er kann nach Feststellung, daß die eingegebene
Zeile fehlerfrei ist, diese wahlweise sofort von dem Rechner ausführen lassen und/oder als ein Programm oder als
Teil eines Programmes in dem Rechner abspeichern.
Der Benutzer kann jede aus ein oder mehreren alphanumerischen
Aussagen bestehende Zeile, die in dem Rechner als Programm oder als Teil eines Programmes gespeichert ist, wahlweise
und ohne sie zu zerstören wieder aufrufen und eine alphanumerische Anzeige eines Teiles der wiederaufgerufenen Zeile
oder der ganzen Zeile betrachten, um diese auf Fehler zu überprüfen·.
309832/08A3
Das gleiche gilt für jede in dem Programmspeicher des Rechners gespeicherte Zeile, die weiterhin ediert werden
kann, ohne daß das in dem Programmspeicher gespeicherte Programm geändert wird. Diese edierte Zeile kann dann an
Stelle der entsprechenden nichtedierten Zeile wieder in
dem Programmspeicher abgespeichert werden.
Der Benutzer kann eine Vorwärtstaste und eine Rückwärtstaste
des Tastenfeldes verwenden, um in Einzelschritten in Vorwärts- oder Rückwärtsrichtung durch eine aus ein oder mehreren
alphanumerischen Aussagen bestehende Zeile zu schreiten, die aus dem Tastenfeld in den Rechner eingegeben oder aus
einem in dem Rechner gespeicherten Programm wieder aufgerufen worden ist. Er kann eine alphanumerische Anzeige eines
Teiles dieser Zeile oder die ganze Zeile betrachten, wobei
das letzte Zeichen der Anzeige das letzte in Einzelschritten erreichte Zeichen des Rechners ist.
Beim Durchschreiten einer aus einem in dem Rechner gespeicherten Programm wieder aufgerufenen Zeile kann beim Erreichen
des vorderen oder des hinteren Endes der wieder aufgerufenen Zeile die nächstfolgende bzw. vorhergehende Zeile
des Programmes automatisch wieder aufgerufen werden.
In dem programmierbaren elektronischen Rechner nach der Erfindung kann der Benutzer jeden Teil einer aus ein oder mehreren
alphanumerischen Zeichen bestehenden Zeile betrachten, die
309832/0843
von dem Tastenfeld in den Rechner eingegeben oder von
einem in dem Rechner gespeicherten Programm wieder auf ge-*
rufen worden ist. Er kann entweder falsche oder unerwünschte Teile einer betrachteten Zeile wahlweise löschen oder
ersetzen oder korrigierte oder zuvor ausgelassene Teile der betrachteten Zeile von dem Tastenfeld aus Zeichen für
Zeichen oder Zeile für Zeile wahlweise einfügen.
Bei Entdeckung eines Syntaxfehlers in einer in den Rechner eingegebenen, aus ein oder mehreren alphanumerischen Aussagen
bestehenden Zeile hat die Betätigung jeder Taste, die nicht bei der Feststellung, Beseitigung oder Korrektur
eines Fehlers verwendbar ist, keinen Einfluß auf den Rechner und die' Ausführung einer von dem Rechner gerade bearbeiteten
Zeile wird angehalten und kann erst v/eitergeführt werden, wenn der Fehler beseitigt oder korrigiert ist.
Syntaxfehler in einer durch das Tastenfeld in den Rechner ■
eingegebenen, aus ein oder mehreren alphanumerisehen Aussagen
bestehenden Zeile werden automatisch festgestellt und bei ihrem Auftreten sofort dem Benutzer angezeigt.
Semantikfehler in einer durch das Tastenfeld in den Rechner eingegebenen oder in dem Rechner als Teil eines Programmes
gespeicherten, aus ein oder mehreren alphanumerischen Aussagen bestehenden Zeile werden automatisch festgestellt,
wenn die eingegebene oder gespeicherte Zeile ausgeführt wird. Jeder solche auftretende Fehler wird dem Benutzer ange-
30 9 832/0843
zeigt und im Falle eines in einer als Teil eines Programmes gespeicherten Zeile auftretenden Fehlers wird auch die
Nummer der Zeile in dem Programm in welcher der Fehler aufgetreten ist, dem Benutzer angezeigt.
Syntax- und Semantikfehler werden durch alphanumerische Nachrichten angezeigt. Sie können mit Hilfe einer Fehlertabelle
bestimmt werden, welche alle solche alphanumerischen Nachrichten und die möglichen Fehler aufführt, welche solche
alphanumerischen Nachrichten erzeugen können.
Bei Entdeckung eines Syntaxfehlers in einer durch das Tastenfeld eingegebenen Zeile kann der Benutzer die Vorwärtstaste
des Tastenfeldes betätigen, um den Rechner schrittweise bis zu dem fehlerhaften Eingabewert durchzutasten und eine alphanumerische
Anzeige des Teiles der eingegebenen Zeile einschließlich des fehlerhaften Eingabewertes zu erhalten·
Der Benutzer kann in diesem Falle aber auch die Rücktaste des Tastenfeldes betätigen, um den Rechner schrittweise
bis zu dem Tastenfeld-Eingabewert durchzutasten, der dem
fehlerhaften Eingabewert unmittelbar vorangeht, und eine alphanumerische Anzeige des Teiles der eingegebenen Zeile
bis zu dem fehlerhaften Eingabewert, aber ohne diesen einzuschließen, zu erhalten.
Bei Entdeckung eines Semantikfehlers in einer von dem
Rechner ausgeführten Zeile kann der Benutzer eine Wieder-
309832/08A3
2282725
aufruftaste des Tastenfeldes betätigen, um eine alpha- .
numerische Anzeige der Zeile oder eines Teiles der Zeile zu erhalten, in welcher der Fehler aufgetreten ist..
Bei dem Rechner nach der Erfindung kann der Benutzer mehrmals die Wiederaufruftaste des Tastenfeldes betätigen,
um Zeile für Zeile durch eine Anzahl von Zeilen aus ein oder mehreren alphanumerischen Aussagen fortzuschreiten,
die als Programm oder als Teil eines Programmes in dem Rechner gespeichert sind, und um eine alphanumerische Anzeige jeder Zeile oder eines Teiles jeder Zeile zu erhalten,
während diese wieder aufgerufen wird.
Der Benutzer kann in einem in dem Programmspeicher des Rechners gespeicherten Programm mit einer oder mehreren
Zeilen alphanumerischer Aussagen zu jeder Zeit vor oder während der Ausführung des Programmes einen Suchbefehl
einfügen'oder durch das Tastenfeld eingeben, um ein alphanumerisches
Ausdrucken der·Nummer jeder von dem Rechner
ausgeführten Zeile, des Wertes jeder dort durchgerechneten numerischen Aufgabe und jedes darin enthaltenen Druckbefehles
zu erhalten. Der Benutzer kann in dem Programm an jeder Stelle hinter dem Suchbefehl einen normalen Befehl
einfügen oder er kann jederzeit nach dem Suchbefehl durch das Tastenfeld den normalen Befehl eingeben, um den Suchbefehl
zu beenden.
309832/0843
-2Dr-
Dor Benutzer kann einen Suchbefehl ausführen, um eine
alphanumerische Logbuch-Eintragung jeder von dem Rechner ausgeführten oder als Teil eines Programmes in dem Rechner
gespeicherten Zeile aus ein oder mehreren alphanumerischen /\ussagen zu erhalten. Im Falle einer als Teil eines Programmes
in dem Rechner gespeicherten Zeile wird auch die Nummer dieser Zeile aufgezeichnet.
Der Benutzer kann eine alphanumerische Programm-Auflistung
der Nummer und des Inhaltes jeder als Teil eines Programms,
als definierte Funktion oder als Unterprogramm in dem Programmspeicher des Rechners gespeicherten Zeile aus ein oder
mehreren alphanumerischen Aussagen erhalten.
Der Benutzer kann entweder unmittelbar oder als Teil einer
Programmauflistung einen alphanumerischen Ausdruck der Anzahl der noch nicht verwendeten Datenspeicherregister erhalten
, die dem Benutzer jeweils noch zur Verfügung stehen.
In dem Rechner nach der Erfindung wird jede ausgedruckte Programmauflistung automatisch in einem Abstand über einem
Papierabschneider angeordnet.
Der Rechner hat eine Anzoigetaste, welche es dom Benutzer
ermöglicht, von Hand oder vom Programm her die Ergebnisse eines arithmetischen Ausdruckes, eino alphanumerische Nachricht
oder den Inhalt eines beliebigen Datenregisters ont-
309832/0843
COPY
BAD ORIGINAL
BAD ORIGINAL
v/oder einzeln odor als Folge anzuzeigen, wobei die Datenregistor
nicht verändert v/orden.
Die Anzeigetaste kann air, programmierbare Pausentaste verwendet
v/erden, indem sie die Ergebnisse eines arithmetischen Ausdruckes, eine alphanumerische Nachricht, den Inhalt
eines beliebigen Datenregisters oder irgendeine Kombination
hiervon vorübergehend anzeigt, ohne eines der Datenregister
zu verändern.
In dom Rechner können sov/ohl a LplKiboLische als auch numerische
Informationen ohne Verändern ιΚτ Datenregister angezeigt
v/erden.
Dor Kochnor hat. Tasten "Fcnt-N" und "Gleit-N", welche es dem
Benutzer ermöglichen, von Hand enk-r vom Programm her für die
anzuzeigenden Werte entweder Festkomma- oder Gleitkomma-Darstellung
zu fordern. N ist dabei ein Parameter, der die Anzahl der rechts vom Komma darzustellenden Ziffern angibt.
Der Benutzer kann wahrend der Progrrmmausführung durch Betätigen
einer einzigen Taste von Festkomma- zu Gleitkomma-Darstellung und zurück wechseln.
Der Hochner nach der Erfindung hält mit Hilfe einer einzigen
Procjramnuuseago die Programmausführung an und ermöglicht es
dom nonutzor, einen oder mehrere Worte einzugeben. Hierdurch
worden dio Werto automatisch in Registern gespeichert, die
in dor Progrnminnussage angegeben nind.
309832/0043
COPY BAD ORIGINAL
Der Rechner kann beim Anhalten zum Eingeben von Daten entweder eine Registorbozeichnung odor eine damit zusammenhängende
numerische Nachricht darstellen.
Der Rechner setzt beim Anhalten der Programmausführung
zum Zwecke der Eingabe von Daten eine Marke, wenn der Benutzer e:ine Fortsetzung des Programmes ohne die Eingabe
von Daten wünscht. Hierdurch wird eine Beendigung ■'" nr Eingabe
aufeinanderfolgender Daten ermöglicht, deren genaue Anzahl ;;um Zeitpunkt der Programmerstellung noch unbekannt
ist.
In dem Rechner kann eine Verarbeitungsfolge eine unbedingt.e
Verzweigung zu absoluten, zu symbolisch bezeichneten, zu relativen und zu errechneten relativen Zeilen des gespeicherten
Programmes umfassen.
Die Verarbeitungsfolgo des gespeicherten Programmes kann
Unterprogramm-Aufrufe zu absoluten, zu symbolisch bezeichneten und zu relativen Zeilen des gespeicherten Programmes
umfassen.
Nach Wahl des Benutzers kann die Ausführung einos gespeicherten
Programmes mit unbedingter Verzweigung mit Aufnahme von errechneter relativer Verzweigung gegenüber der normalen
.Programmausführung !-,geschwindigkeit beschleunigt worden.
Die Ausführung einer unbedingten, nichtorrechnotcn VorzwoigungsauRsage
in einem Programm erfolgt nicht eher, bin
309832/0843
COPY
BAD ORIGINAL
BAD ORIGINAL
andere Aussagen in dor gleichen 'Zeile ausgeführt worden
sind, wodurch mehrfache bedingte Verzweigungen erleichtert worden.
In dem Rechner nach der Erfindung steht dem Benutzer eine Vielzahl von Marken als Boole'sehe Veränderliche zum Aufbau
beliebiger Programmaussagen zur Verfügung.
In dem Rechner nach der Erfindung wird beim Auftreten eines mathematisch unzulässigen Ausdruckes oder eines arithmetischen
Unter- bzw. Überlaufs während der Ausführung eines Programmes
eine Marke gesetzt, eine Fehlernachricht in der Anzeigeeinrichtung dargestellt und die ProgrammausfUhrung angehalten.
In diesem Falle kann der Benutzer die Fehlernachricht und das Anhalten des Programmes unterdrücken, indem er vorher
eine andere Marke setzt.
Eine Marke ist für die Verwendung als Boole'sehe Veränderliche
vorgesehen, die zum Aufbau von Programmaussagen dient und während der Programmausführung durch Betätigen einer
einzigen Taste von Hand eingestellt werden kann.
In dem Rechner nach der Erfindung ist eine Magnetkarten-Lose-
und -Aufzoichen-Einheit zum Transferieren von Programmen
Daten und beliebigen Kombinationen davon zwischen dem Rechner und einem externen magnetischen Aufzeichnungsträger in
Form einer Magnetkarte vorgesehen.
309832/0843
COPY
BAD ORIGINAL
BAD ORIGINAL
Zur Steuerung der Magnetkarten-Einheit sind Lade- und Aufzeichen-Tasten
vorgesehen, die programmierbar sind.
Zwischen dem Rechner und einer externen Magnetkarte transferierte Programme enthalten eine Angabe über den Aufbau
der steckbaren ROM-(Auslesespeicher-)Modulen des Rechners. Wenn der Benutzer versucht, eine Karte zu lesen, welche
zuvor von einem Rechner mit einer hiermit nicht vereinbaren ROM-Modul-Anordnung aufgezeichnet worden ist, wird eine
Fehlernachricht angezeigt.
der steckbaren ROM-(Auslesespeicher-)Modulen des Rechners. Wenn der Benutzer versucht, eine Karte zu lesen, welche
zuvor von einem Rechner mit einer hiermit nicht vereinbaren ROM-Modul-Anordnung aufgezeichnet worden ist, wird eine
Fehlernachricht angezeigt.
Für den Fall, daß ein besonders großer Programm- oder Daten-Block,
der mehr als eine Magnetkarte beansprucht, zwischen den Magnetkarten und dem Rechner transferiert werden soll,
wird automatisch eine Nachricht angezeigt, die zusätzliche Magnetkarten anfördert.
In dem Rechner nach der Erfindung stehen dem Benutzer programmierbare
Operatoren =, ^,r^,^=»- zum Darstellen von Beziehungen
zur Verfügung, die in eine beliebige Aussage des Rechners eingefügt werden kann, um einen Boole'sehen Test
des Verhältnisses zweier numerischer Konstanten, zweier Registerinhalte oder zweier Resultate von arithmetischen
Ausdrücken zur Verfügung zu haben.
In dem Rechner ist eine Anzahl festzugeordneter Datenregister vorgesehen, die feste Bezeichnungen und Speicherplätze besitzen
und jeweils durch Betätigen einer einzigen Taste für
309832/0843
einen angezeigten algebraischen Ausdruck aufgerufen werden können. Bei Betätigung der Verarbeitungstaste wird der . ·
Inhalt dieser Register entsprechend dem algebraischen Ausdruck verarbeitet und das Resultat angezeigt.
Die verschiedenen aufeinanderfolgenden Tastenbetatigungen
zugeordneten Merkzeichen erscheinen in einer mehrstelligen alphanumerischen Anzeige und werden automatisch nach links
aus der Anzeige herausgeschoben, wenn bei voller Anzeige weitere Tasten betätigt werden.
Eine angezeigte" Folge von Merkzeichen kann dabei durch Betätigen
einer von zwei Tasten jeweils um ein Zeichen nach links oder rechts verschoben werden.
Zur Anzeige des /\nfangs und des Endes einer dargestellten
Zeile aus einem gespeicherten Programm sind SpezialZeichen "Zwischenraum" und " J-" vorgesehen..
Die Anzeige-Einrichtung kann unabhängig von irgendwelchen Daten- und/oder Programmspeicher-Registern gelöscht werden.
Die Anzeige-Einrichtung dient zum Darstellen der Merkzeichen betätigter Tasten und zum Darstellen numerischer oder alphabetischer
Resultate von tastenfeljl·- oder programm-gesteuerten
Rechnungen.
30 9.8 32/0843
Das alphabetische Zeichen "E" wird dazu verwendet, die Ziffern des Exponenten zu bezeichnen, wenn Zahlen in Gleitkomma-Darstellung
angezeigt werden.
Alle Speichereinrichtungen des Rechners, einschließlich des als Schreib-Lese-Speichers ausgebildeten Hauptspeichers,
der steckbaren Au.slesespeicher-(ROM-)Moduln verwendet, des system- und anwender-orientierten Schreib-Lese-Speichers
und der wahlfreien Schreib-Lese-Speicher werden mit Hilfe einer gemeinsamen Adressenregister-Technik adressiert. Hierdurch
können sowohl Schreib-Lese-Speicher als auch Auslese-Speicher wechselweise als Auslesespeicher verwendet werden
und es können Befehle in der Programmiersprache der Mikro-Verarbeitungseinheit als normales Unterprogramm in den
anwender-orientierten Schreib-Lese-Speicher für einen Zugriff durch ein vom Tastenfeld zusammengestelltes Programm eingegeben
werden.
Die Magnetkarten-Schreib- und -Lese-Einheit dient zum Laden
über das Tastenfeld zusammengestellter Programme oder etwaioor
Programme in der Sprache der Mikro-Vercirbeitungs-Einheit
in den Benutzerteil des Schreib-Lese-Speichers des Rechners.
Für einen Zugriff zu einer Erweiterung des Schreib-Lesc--Speichcrs
werden keine neuen Befehle benötigt.
Mit Hilfe einer programmierbaren Ta etc "N-Zwischenräume"
kann das Papier des internen Druckers um "K-Schritte" weiter-
309832/0843
1}
bewegt v/erden, wobei N ein Parameter ist.
Vorbestimmte Tasten des Tastenfeldes können dadurch mehrere Funktionen auslösen, daß die Taste entweder einmal
oder zweimal gedrückt wird.
Die anwender-orientierten Register und Programme sind gegeneinander
gesichert, obwohl sie wechselweise den' gleichen Bereich verwenden können.
Die Eingabe/Ausgabe-Einrichtungen des Rechners sind so ausgebildet,
daß externe Einrichtungen die Zentraleinheit des Rechners zu unterbrechen vermögen. - ·
Die Eingabe/Ausgabe-Einrichtungen des Rechners ermöglichen es externen Speichereinrichtungen unmittelbar mit dem internen
Speicher zu verkehren, ohne dabei die Zentraleinheit des Rechners benützen zu müssen.
Für den Fall, daß der Anwender versucht, den Ausgabedrucker zu betätigen, wenn dessen Papiervorrat erschöpft ist, wird
eine Fehlernachricht angezeigt.
Wenn in dem Rechner unter Programmsteuerung von einer externen Magnetkarte ein Programm geladen worden ist, beginnt die
Ausführung automatisch entweder von Zeile 0 oder von der ersten Zeile des gerade geladenen Programmes.
30 9 832/0843
Abhängig von dem Wortlaut einer Aussage löst eine in dem Rechner vorgesehene Minustaste entweder eine Subtraktion
aus oder - bei Funktionen einer einzigen Veränderlichen einen Vorzeichenwechsel.
Der Rechner nach der Erfindung bietet die Möglichkeit für eine implizierte Multiplikation, d.h. für eine Multiplikation
ohne die Verwendung des multiplikativen Operators.
Die Ausführung einer Zeile algebraischer Aussagen erfolgt in dem Rechner nach der Erfindung nach vorbestimmten Prioritäten.
Diese Prioritäten sind, geordnet von der höchsten zur niedrigsten, wie folgt: Funktionen, Exponenten-Erhebung,
implizierte Multiplikation, Vorzeichenwechsel, Multiplikation und Division, Addition und Subtraktion, und die Verhältnisse
ausdrückenden Operationen <r,~^. , = , ψ .
In dem Rechner kann ein Zuteilungsoperator beliebig oft in einer Aussage verwendet werden, um Zwischenergebnisse abzuspeichern.
Die Argumente der über das Tastenfeld wählbaren Funktionen,
einschließlich derjenigen, die sich auf die steckbaren ROM-Moduln beziehen, können numerische Konstanten/ RegisterInhalte
oder arithmetische Ausdrücke sein.
In dem Rechner ist eine vom Tastenfeld steuerbare Funktion vorgesehen, mit der die Zahl 10 in eine beliebige Potenz
309832/08A3
JiS
erhoben werden kann.
In dem Rechner nach der Erfindung können vorgegebenen Funktionen, die sich auf eine steckbare ROM-Modul für vom
Anwender wählbare Funktionen beziehen, von dem Anwender mit eigenen Merkzeichen versehen v/erden. Weiterhin können
sie beliebigen Tasten zugeordnet werden, die nicht, von anderen steckbaren ROM-Moduln belegt sind.
Im folgenden wird die Erfindung an Hand einiger in der beigefügten
Zeichnung dargestellter Ausführungsbexspiele näher erläutert. Der mehr ins einzelne gehenden Beschireibung
sind v/eitere Merkmale, Vorteile und Ausgestaltungen der Erfindung zu entnehmen. Es zeigen:
309832/0843
- So -
Fig. 1 eine perspektivische Vorderansicht eines Ausführungsbeispieles für einen programmierbaren elektronischen
Rechner nach der Erfindung,
Fig. 2A-B vereinfachte Blockschaltbilder des Rechners nach Fig. 1,
Fig. 3A-B einen Speicherplan der Speichereinheit des Rechners nach den Fig. 1 und 2,
Fig. 4 einen ausführlichen Speicherplan des fest zugeordneten
Bereiches des Datenspeicherteils in dem Schreib-Lese-Speicher der Speichereinheit nach den Fig. 2 und 3,
Fig. 5 eine Draufsicht auf die Tastenfeld-Eingabe-Einheit
des Rechners nach den Fig. 1 und 2 zur Darstellung, wie die Tastenfeld-Eingabe-Einhoit durch ein steckbares
Auslesespeicher-Modul beispielsweise für Alphabetdarstellung, umdefiniert werden kann,
Fig. 6, 7 und 8A-C Draufsichten auf Tastenfeld-Schablonen
für steckbare Auslesespeicher-Moduln zur Durchführung trigonometrischer Funktionen, Steuerfunktionen für
Anschlußgeräte und vom Benutzer wählbctre Funktionen, wie sie in einem Rechner nach Fig. 1 und 2 verwendet
werden können,
Fig. 9A-B ein funktionelles Blockdiagramm für den programmierbaren
elektronischen Rechner,
Fig. 10A-C vereinfachte Flußdiagrammc der gesamten Stouerfolge
für die Verarbeitung von Tastensignalen,
Fig. 11 ein Blockdiagramm der Speichcrcinheit nach Fig. 2,
Fig. 12A-D ein ausführliches Schaltbild der Spcioheradro^s-Register
nach den Fig. 2 und 3,
309832/0843
Fig. 13A-D ein ausführliches Schaltbild ,der Steuerschaltungen
nach den Fig. 2 und 3,
Fig. 14A-D ein ausführliches Schaltbild der Speicherzugriffs-
Fig. 14A-D ein ausführliches Schaltbild der Speicherzugriffs-
Register nach den Fig. 2 und 3 und Fig. 15A-D ein ausführliches Schaltbild der Anzeige-Einheit
des prograitimierbaren elektronischen Rechners nach
Fig. 1.
309832/0843
Beschreibung eines Ausführungsbeispiels Allgemeine Beschreibung
In Fig. 1 ist ein anpassungsfähiger programmierbarer
elektronischer Rechner 10 dargestellt, der sowohl eine Tastenfeld-Eingabe-Einheit 12 zur Eingabe von Informationen
und zur Steuerung der Arbeitsweise des Rechners als auch eine Magnetkarten-Ablese-^ und -Aufzeichen-Einheit 14 enthält
zur Aufzeichnung von in dem Rechner gespeicherten Informationen auf eine oder mehrere externe Magnetkarten 16
und zur anschließenden Einspeicherung der auf diesen oder anderen ähnlichen Magnetkarten gespeicherten Informationen
zurück in den Rechner. Der Rechner enthält weiterhin eine Festkörper-Anzeigeeinheit 18 zur Darstellung in dem Rechner
gespeicherter alphanumerischer Informationen. Er kann auch einen Ausgabedrucker 20 zum Ausdrucken alphanumerischer
Informationen auf einem wärmeempfindlichen Papierstreifen 22 enthalten.
Wie aus dem vereinfachten Blockschaltbild nach den Fig. 2A-B hervorgeht, enthält der Rechner weiterhin eine Eingabe-Ausgabe-Steuereinheit
44 (die im folgenden auch als 1/0-Steuereinheit bezeichnet wird) zur Steuerung der Informationsübertragung
von und zu den Eingabe- und Ausgabegeräten, eine Speichereinheit 46 zur Speicherung und Bearbeitung von in
den Rechner eingegebenen Informationen und zur Speicherung von Programmen und Unterprogrammen aus von dem Rechner auszu-
309832/0843
führenden Grundbefehlen, und weiterhin eine zentrale Verarbeitungseinheit
48 (die im folgenden auch als CPU bezeichnet wird) zur Steuerung der Durchführung von"Programmen und Unterprogrammen
der in dem Rechner gespeicherten Grundbefehle wie es zur Verarbeitung der in den Rechner eingegebenen oder
in diesem gespeicherten Informationen erforderlich ist. Der Rechner weist weiterhin ein Sammelschienensystem auf, welches
eine S-Schiene 50, eine T-Schiene 52 und eine R-Schiene 54 umfaßt', die zur Informationsübertragung aus dem Speicher und
der I/O-Steuereinheit an die CPU, von der CPU an den Speicher und die I/O-Steuereinheit und zwischen verschiedenen Bereichen
der CPU dienen. Der Rechner enthält ferner eine Energieversorgung zur Versorgung des Rechners und der Anschlußgeräte
mit Gleichspannung, und zur Lieferung eines Steuersignales
•POP, wenn Energie an den Rechner geliefert wird.
Die I/O-Steuereinheit 44 umfaßt ein Eingabe-Ausgabe-Register
(das im folgenden auch als I/O-Register bezeichnet wird),
eine zugeordnete Eingabe-Ausgabe-Steuerschaltung 58 (die im folgenden auch als I/O-Steuerschaltung- bezeichnet wird) und
eine Eingabe-Ausgabe-Steuerlogik 60 (die im folgenden auch als I/O-Steuerlogik bezeichnet wird) ·. Das I/O-Register 56
besitzt ein universelles 16-Bit-Schieberegister, in welches
Informationen übertragen werden können, und zwar entweder in Bit-Serienform von der CPU 48 über die T-Schiene 52 oder
in Bit-Parallelform von dem Tastenfeld 12, der Magnetkarten-Einheit
14 und periphercn Eingabe-Einheiten 28, beispiels-
309832/0843
weise über Eingabe-Vielfache 62 von einem Lesegerät für markierte Karten. Informationen können auch von dem I/O-Register
56 entweder in Bit-Serienform über die S-Schiene 50 an die CPU 48 oder in Bit-Parallelform an die Magnetkarten-Einheit
14, die Anzeige-Einheit 18, den Ausgabedrucker 20 und an periphere Anschlußgeräte 28 übertragen
werden, beispielsweise über 16 Ausgabe-Vielfache 64 an ein X-Y-Zeichengerät oder eine Schreibmaschine.
Die I/O-Steuerschaltung 58 besitzt Steuerschaltungen zur
Steuerung der Informationsübertragung von und zu dem I/O-Register 56 abhängig von ausgewählten I/O-Qualifizier-Steuersignalen
der CPU 48 und von ausgewählten I/O-Steuerbefehlen der I/O-Steuerlogik 60. Sie besitzt weiterhin eine
Unterbrechungs-Steuerschaltung 65, eine periphere Steuerschaltung 66, eine Magnetkarten-Steuerschaltung 67, eine
Drucker-Steuerschaltung 68 und eine Anzeige-Steuerschaltung 69 zur entsprechenden Steuerung der Eingabe-und Ausgabegeräte
und zur Abgabe von Steuersignalen QFG und EBT über zwei Ausgabeleitungen 71 und 7 2 an die I/O-Steuerlogik
Diese zuletzt erwähnten Steuerschaltungen führen abhängig von dem Steuersignal POP der Stromversorgung, von den·I/O—
Qualifizier-Steuersignalen der CPU 48, von den I/0-Steucrbefehlen
der I/O-Steuerlogik 60 und von Steuer-Signalen des
Tastenfeldes 12 ihre verschiedenen Steuerfunktionen aus. Die Unterbrechungs-Steuerschaltung 65 löst die Informationsübertragung
von dem Tastenfeld 12 in das I/O-Register 56 oder die Unterbrechung der poripheren Anschlußgeräte 28
aus, beispielsweise des Lesegerätes für markierte Karten,
309832/08^3
und liefert über Ausgabeleitungen 73 ein Qualifizier-Steuersignal
QNR an die CPU 48. Die periphere Steuerschaltung befähigt in den Rechner eingesteckte Schnittstellen-Module
30, auf Informationen des I/O-Registers 56 zu reagieren,
die zugeordneten peripheren Anschlußgeräte 28 zu steuern.
Informationen an die zugeordneten peripheren Anschlußgeräte 28 zu übertragen und/oder solche von diesen zu empfangen
und in einigen Fällen die Informationsübertragung von den Schnittstellen-Modulen 30 selbst an das I/O-Register 56 einzuleiten.
Die Magnetkarten-Steuerschaltung 67 befähigt die Magnetkarten-Einheit 14, auf Informationen in dem I/O-Register
56 zu reagieren und entweder Informationen von einer Magnetkarte 16 in das I/O-Register 56 einzulösen oder Informationen
von dem I/O-Register 56 auf einer Magnetkarte aufzuzeichnen. Die Drucker-Steuerschaltung 68 und die Anzeige-Steuerschaltung
69 befähigen die Ausgabe-Anzeige-Einheit bzw. den Ausgabedrucker 20, auf Informationen aus dem I/O-Register
56 anzusprechen.
Wenn ein von der Speichereinheit 46 erhaltener I/0-Grundbefehl
auszuführen ist, überträgt die CPU 48 durch Aussendung von 2 I/O-Mikrobefehleh PTR und XTR die Steuerung' an
die I/O-Steuerlogik 60. Im Ansprechen auf diese I/0-Mikrobefehle
der CPU 48 des Signals POP der Stromversorgung, der Steuersignale QFG und EBT der I/O-Steuerschaltung 58 und
der I/O-Qualifizier-Steuersignale der CPU 48 sendet die I/O-Steuer
logik 60 selektiv einen od,er mehrere I/O-Steuerbe-
309832/0 8 43
fehle an die I/O-Steuerschaltung 58, wie es zur Durchführung der von der CPU A festgesetzten I/O-Grundbefehle
erforderlich ist, und sendet über Ausgabeleitungen 44 bis
77 Steuersignale TTX, XTR, QRD und SCB an die CPU 48. Die von der SPU 48 an die I/O-Steuerlogik 60 und die I/O-Steuerschaltung
58 gesendeten Qualifizier-Steuersignale sind von dem auszuführenden I/O-Grundbefehl abgeleitet. Diejenigen
Qualifizier-Steuersignale, welche an die I/O-Steuerlogik
abgegeben werden, markieren die von der I/O-Steuerlogik 60 auszusendenden speziellen Ί/0-Steuerbefehle, während die
an die I/O-Steuerschaltung 58 abgegebenen Steuersignale ausgewählte
Steuerschaltungen bestimmen, die zur Durchführung der I/O-Grundbefehle benutzt werden.
Die Speichereinheit 46 besitzt einen in Modulform aufgebauten Schreib.-Lese-Speicher 78 mit wahlfreiem Zugriff (im
folgenden als RWM bezeichnet), einen ebenfalls in Bausteinform aufgebauten Auslesespeicher 80 (im folgenden mit ROM
bezeichnet), ein Speicheradressregister 82 (im folgenden als M-Register bezeichnet), ein Speicherzugriffs-Register
(im folgenden als T-Register bezeichnet) und eine Steuerschaltung 85 für diese Speicher und Register. Der RWM-Speicher
78 und der ROM-Speicher 80 enthalten MOS-Halbleiter-Speicherelemente.
Wie in dem Speicherplan der Fig. 3A-B gezeigt, sind sie in neun "Seiten" zu je 1 024 Worten organisiert.
Der RWM-Speicher 78 enthält im Grundausbau einen Zuordnungssystem-Speicherbereich mit 256 Wörtern zu je
309832/0843
16 Bit, die sich auf Seite O von Adresse 1 400 bis zu der
Adresse 1 777 erstrecken und einen getrennten Speicherbereich für das Anwenderprogramm und/oder für Datenspexcherung mit
76'8 Wörtern zu je 16 Bit, die sich auf Seite 7 von der Adresse 16 400 bis zu der Adresse 17 777 erstrecken. Alle
Adressen auf dem Speicherplan sind in Oktalform dargestellt.
In dem Bereich zwischen den Adressen 20 000 und 21 777 können dem Benutzer auf Wunsch 1 024 Wörter zu je 16 Bit
im RWM-Speicher zugänglich gemacht werden. Hierzu wird eine Deckelplatte 90 des in Fig. 1 dargestellten Rechners entfernt
und eine zusätzliche Druckschaltungsplatte mit dem zusätzlichen Speicher eingesetzt. Der Zusatz zu dem RWM-Speicher
wird von dem Rechner automatisch berücksichtigt.
Wie in dem ausführlicheren Speicherplan der Fig. 4 dargestellt, umfaßt der Zuordnungssystem-Speicherbereich des RWM-Speichers
12 Wörter (an den Adres.sen 1 414-1 427) , die dem Benutzer als vier Wörter fassende^ Arbeitsregister X, Y und
Z zur Verfügung stehen, und 12 Wörter (an den Adressen 1 400-1 413), welche dem Benutzer als vier Wörter fassende
Speicherregister A, B und C zur Verfügung stehen. Ein' 25. Wort von 16 Bit Länge (an der Adresse 1430) enthält
Marken, die dem Benutzer bei der Aufstellung von Programmen für den Rechner zur Verfügung stehen.
Die Adressen 1430-1437 enthalten Speicherbereiche für den Systemstapel und den Eingabepuffer. Das Ende dieses Bereiches
3 09832/0843
mit den höheren Adressen enthält die Tastenkodes wie sie bei dem Aufbauen einer Aussage in dem Rechner von dem Tastenfeld
eingegeben werden. Wenn der eingegebene Tastenkode in bezug auf die vorher eingegebenen Tastenkodes die richtige
Syntax aufweist, wird dieser Tastenkode in dem Eingabe-Puffer-Bereich
abgespeichert. Das Ende dieses Speicherbereiches mit den niedrigeren Adressen ist der System-Stapel-Bereich
und wird von der CPU 48 beim Aufbauen von algebraischen Ketten in Boole'sehe Schreibweise benützt. 57 Wörter (an
den'Adressen 1540 bis 1626), die jeweils mit einem Merkzeichen benannt sind, enthalten Informationen, die in den
"firmware-" bzw. Geräte-Programmen, gemäß den Fig. 9A-B verwendet werden. Ein dem beschriebenen Speicherbereich ähnlicher
Bereich besteht an den Adressen 1701 bis 1715. Ein weiterer Speicherbereich (an den Adressen 1627-1647) des RWM-Speichors
erhält Informationen, die es den steckbaren· ROM-Speicher-Moduln ermöglicht, mit den Schaltungen des Grundsystems über
die sich bildende Schnittstelle zusammenzuarbeiten. Ein Informationsspeicherbereich von 8 Wort Länge (an den Adressen
1650-1657) ist für die Verwendung durch die steckbaren ROM-Speicher-Moduln vorgesehen. Der folgende Speicherbereich von
16 Wort Länge wird in zwei Pufferbereiche aufgeteilt, einem
Anzeigepuffer (an den Adressen 1660-1667) und einem 1/0-Puffer
(an den Adressen 1670-1677). Diese beiden Bereiche werden dazu verwendet, gemäß ASCII kodierte Informationen
zu speichern, die entweder über die Anzeigeeinheit 18 odor den Ausgabedrucker 20 nach Fig. 1 ausgegeben werden sollen.
309832/0843
Di,e Informationen, die ausgedruckt werden sollen, werden
zunächst in dem Anzeigepuffer gespeichert und dann mit Hilfe von in dem ROM-Speicher des Rechners gespeicherte
Drucker-Geräte-Programmen dem Drucker übermittelt. Gemäß ASCII kodierte Zeichen, welche anzuzeigende Informationen
darstellen, können sich entweder in den I/O-Puffer oder
in dem Anzeige-Puffer befinden.
Weitere festverdrahtete Programme werden zum Zwecke der Wiedergewinnung von Informationen in Form von ASCII-kodierten
Zeichen zum Zwischenspeichern in dem Anzeige- oder dem I/O-Puffer verwendet. 18 Wörter (an den Adressen 1716-1737
in Fig. 4) werden zürn vorübergehenden Speichern von Informationen
verwendet, während die Steuerung von einem Programm zu einem anderen übergeht. 8 Wörter (an den Adressen 1744-1747
und 1754-1757) werden als vier Wörter fassende Arbeitsregister ARl und AR2 eingesetzt, um arithmetische Operationen
mit binär-kodierten Dezimalzahlen ausführen zu können. Weitere 8 Wörter (an den Adressen 1740-1743 und 1750-1753)
dienen als Arbeitsdatenregister Xc und Yc für die Realisierung der trigonometrischen Funktionen in Zusammenarbeit
mit dem steckbaren trigonometrischen ROM-Speicher-Modul. Das Wort an der Adresse 1760 wird zum Speichern des Inhaltes
eines der Arbeitsregister der CPU 48 während eines Unterbrechungs-Arbeitsspiels verwendet. Ein "System-Unterprogramm-Stapel"
variabler Länge (an den Adressen 1761-1776) wird zum Speichern von Wiederkehradressen verwendet, die von
30983270843
■ 7262725
Programmen in dem ROM-Speicher 80 benötigt werden, als auch als Zwischenspeicher für "Haushalts-"Informationen,
die von der CPU 48 benötigt werden. Das letzte Wort in dem RWM-Speicher des Systems (an der Adresse 1777) dient zum
Speichern eines Zählwertes, der die nächste zur Verfugung stehende Stelle für die Wiederkehradresse für den nächsten
Unterprogramm-Aufruf innerhalb des Grundsystems angibt.
Wie in dem Speicherplan der Fig. 3A-B angegeben, enthält der Speicherbereich für das Anwenderprogramm und/oder die
Datenspeicherung des RWM-Speichers 78 einmal 692 Wörter (173 Register) die dem Benutzer (an den Benutzeradressen
16 510 und 17 777) zum Speichern von Programmen und/oder Daten zur Verfügung stehen, und zum anderen 72 Wörter, die
für die Verwendung durch die CPU 48 vorgesehen sind. Weitere 1024 Programmschritt- und/oder Daten-Wörter (256 Register)
können dem Benutzer (an den Benutzeradressen 20 000-21 777) zur Verfügung gestellt werden.
Der ROM-Speicher 80 enthält, wie ebenfalls aus dem Speicherplan der Fig. 3A-B hervorgeht, 7 168 Wörter von 16 Bit Länge,
die sich auf Seiten O von den Adressen 0000 bis 1377, auf
Seite 3 von den Adressen 2001 bis 7777 und auf Seite 7 von den Adressen 16 000 bis 16 377 erstrecken. In diesen Teilen
des ROM-Speichers 80 sind die Programme und Unterprogramme mit Grundbefehlen zum Ausführen der Grundfunktionen des
Rechners sowie Konstanten gespeichert, die von diesen Pro-
309832/08^3
grammen und Unterprogrammen verwendet werden. Zusätzliche
3072 Wörter des ROM-Speichers von 16 Bit Länge können auf den Seiten 4, 5 und 6 in Gruppen von 512 und 1024 Wörtern
hinzugefügt werden. Dies wird dadurch bewerkstelligt, daß in einfacher Weise steckbare ROM-Speicher-Moduln 9 2 in
Fassungen 94 eingesteckt werden, die hierfür in der Deckelplatte 90 des Rechnergehäuses vorgesehen sind, wie in Fig.
an Hand des teilweise eingesteckten ROM-Speicher-Moduls auf der linken Seite dargestellt ist. Wenn ein steckbares
ROM-Speicher-Modul 92 in eine dieser Fassungen 94 eingeführt
wird, klappt eine federbelastete Klappe 95 am"Eintritt der der Fassung nach unten und gestattet den Durchgang des
steckbaren ROM-Speicher-Moduls. Wenn das Modul vollständig eingeführt ist, wie in Fig. 1 durch das Modul auf der
rechten Seite dargestellt, kommt eine in dem ROM-Speicher-Modul enthaltene Druckschaltungsplatte 96 in Kontakt mit
einer Kanten-Steckerfassung, die in dem Rechner befestigt ist,
In jedem "der steckbaren ROM-Speicher-Module 92 sind Programme
und Unterprogramme von Grundbefehlen (und die benötigten Konstanten) gespeichert, um den Rechner in die Lage zu versetzen,
viele zusätzliche Funktionen auszuführen. Der Benutzer kann den Rechner somit schnell und einfach an viele
auf seine speziellen Erfordernisse ausgerichtete zusätzliche Funktionen anpassen, indem er einfach ROM-Speicher-Module
seiner Wahl in den Rechner einfügt. Zusätzliche ROM-Speicher-Module werden automatisch durch den Rechner berücksichtigt,
309832/08^3
indem kurzzeitig die Stromzufuhr unterbrochen oder die Taste "Speicherlöschung" betätigt wird. Sie werden einem
definierbaren Bereich 91 der Tastenfeld-Eingabe-Einheit 12 zugeordnet oder zur Erweiterung der von diesem und anderen
Bereichen des Eingabe-Tastenfeldes durchzuführenden Funktionen
benutzt.
Wie aus Fig. 3 ersichtlich, enthält das Speicher-Adressen-Register
82 (das sogenannte M-Register) der Speichereinhe.it ein umfaufendes Serien-Schieberegister von 16 Bit Länge,
in welches über die T-Schiene 52 Informationen in Bit-Serienform von der CPU 48 und aus welchem über die S-Schicne
50 Informationen in Bit-Serienform an die CPU 48 übertragen v/erden können. Die in das M-Register 82 hineingeschobene
Information kann zur Adressierung eines Wortes in dem RWM-Speicher 78 oder in dem ROM-Speicher 80 über 15 Ausgabeleitungen
106 genutzt werden.
Das Speicher-Zugriffs-Register 84 (das sogenannte T-Register)
der Speichcreinheit besitzt ein umlaufendes Serien-Schieberegister
von 16 Bit Länge, in welches Informationen entweder in Bit-Serienform von der CPU 48 über die T-Schienc
52 oder in Bit-Parallelform von einem adressierten Wort in dem RWM-Speicher 78 oder dem ROM-Speicher 80 über 16 Parallel·
Eingabeleitungen 108 übertreujon werden können. Aus dem
T-Register 84 können die Informationen entweder in Bit-Serienform
über die S-Schieno 50 an dio CPU 48 oder in
309832/08^3
Bit-Parallelform über 16 Parallel-Ausgabeleitungen 110 an
ein addressiertes Wort in dem RWM-Speicher 78 übertragen werden. Die vier Bits mit der geringsten Wertigkeit der in
dem T-Register 84 enthaltenen Information können eine binärkodierte Dezimalzahl darstellen- und von dem T-Register über
drei Parallele mit der S-Schiene 50 geführte Ausgabeleitungen 112 parallel an die CPU 48 übertragen werden.
Die Steuerschaltung 85 der Speichereinheit steuert diese Informationsübertragungen in und aus dem M-Register 82 und
dem T-Register 84, steuert die Adressierung der und den Zugriff zu dem RWM-Speicher 78 und dem ROM-Speicher 80 und erneuert
den Inhalt des RWM-Speichers 78. Sie führt diese Funktionen abhängig von Speicher-Mikrobefehlen, Speicher-Taktimpulsen
und Schiebeimpulsen der"CPU 48 aus.
1N.
Die CPU 48 besitzt eine Registereinheit 114, eine Arithmetik-Logik-Einheit
116 (die im folgenden als ALU bezeichnet wird), einen programmierbaren Taktgeber 118 und einen Mikrorechner
120. Die Registereinheit 114 umfaßt vier umlaufende Schieberegister 122, 124., 126 und 128 von 16 Bit Länge und ein Schieberegister
130 von 4 Bit Länge. Die Schieberegister 122 und 124 dienen als serielle Akkumulator-Register von 16 Bit Länge
(im folgenden als Α-Register und als B-Register bezeichnet), in welche über die T-Schiene 52 in Bit-Serienform Informationen
von der ALU und aus welchen über die R-Schiene 54 Informationen in Bit-Serienform an die ALU 116 übertragen werden können.
309832/08A3
Die vier Bit-Stellen des A-Registers 122 mit der geringsten Wertigkeit dienen auch als paralleles Akkumulator-Register
von vier Bit Länge, in welches die vier Bits einer binärkodierten Dezimalzahl über vier parallele Eingabeleitungen
132 parallel von der ALU 116 und aus welchen die vier Bits einer binär-kodierten Dezimalzahl über drei Parallele auch
zusammen mit der R-Schiene 54 verlaufende Ausgabeleitungen
134 parallel an die ALU 116 übertragen werden können.
Das Schieberegister 126 dient als Programmzähler von 16 Bit Länge (und wird im folgenden als P-Register bezeichnet), in
welches Informationen von der ALU 116 in Bit-Serienform über die T-Schiene 52 und aus welchem Informationen an die ALU
in Bit-Serienform über die R-Schiene 54 übertragen werden können. Die in den Bit-Stellen des P-Registers 126 mit der
geringsten Wertigkeit enthaltenen Informationen können auch als Qualifizier-Steuersignal QPO über eine Ausgabeleitung
135 an den Mikrorechner 120 übertragen werden.
Das Schieberegister 128 dient als Qualifizier-Register von
16 Bit Länge(und wird im folgenden auch Q-Register), in
welches Informationen von der ALU 116 in Bit-Serienform über die T-Schiene 52 und aus welchem Informationen in Bit-Serienform
über die R-Sammelleitung 54 an die ALU 116 übertragen
werden können. Die in den fünf Bit-Stellungen des Q-Registers 128 mit der geringsten Wertigkeit enthaltenen Informationen
werden in Form von fünf einstelligen I/O-Qualifizier-Steuersignalen
Q00-Q04 über fünf parallele Ausgabeleitungen 136
309832/0843
an die I/O-Steuerschaltung 58 übertragen und die in den
sechs Bit-Stellungen des Q-Registers 128 mit der nächst höheren Wertigkeit enthaltenen Informationen werden in Form
von sechs einstelligen I/O-Qualifizier-Steuersignalen QO5--QlO
an die I/O-Steuerlogik 60 übertragen.
In ähnlicher Weise können die Informationen in den sieben Stellen geringster Bedeutung, in der 9. und 11. Stelle und
in den Stellen höchster Bedeutung des Q-Registers 128 sowie aus der 13,, 14. und 15. Bit-Stelle des Q-Registers abgeleitete
Informationen als 11 einstellige Mikrorechner-Qualifizier-Steuersignale
Q00-Q06, Q08, QlO, Q15 und QMR über Ausgabeleitungen 140 übertragen werden. Die in der 12. bis
15. Bit-Position des Q-Registers 128 enthaltene Informationen können als vierstellige Primäradresse über vier parallele
Ausgabeleitungen 142 an den Mikrorechner 120 übertragen werden,
Das Schieberegister 130 dient als vierstelliges Serien-Ausbau-Register
(im folgenden auch als Ε-Register bezeichnet), in welches Informationen entweder von der ALU 116 über die
T-Schiene 52 oder, von den Bit-Positionen des T-Registers 84 mit der geringsten Wertigkeit über Eingabeleitungen 144
übertragen werden können. Die Infornmtionen können aus dem
E-Register 130 auch über die R-Schiene 54 an die ALU 116 übertragen werden.
Die Registereinheit. 114 umfaßt weiterhin eine Steuersclmltung
14 6 zur Steuerung der Übertragung von parallelen binär-ko-
309832/0Ö43
dierten Dezimalzahlen in und aus dem A-Register 122 und
zur Steuerung der Übertragung von Serien-Binär-Informationen in und aus dem A-Register 122, dem B-Register 124, dem
P-Register 126, dem Q-Register 128 und dem E-Register 130. Dies erfolgt abhängig von Register-Mikrobefehlen des Mikrorechners
120, von Steuersignalen TTX und XTR von der I/O-Steuerlogik 60 und von Schiebeimpulsen des programmierbaren
Taktgebers 118. Die Steuerschaltung 146 besitzt ein Flip-Flop 148 (im folgenden auch als A/B-Flip-Flop bezeichnet)
zur Ermöglichung einer Informationsübertragung in und aus entweder dem A-Register 122 oder dem B-Register 124, was
durch den Zustand des A/B-Flip-Flops festgelegt wird. Der Zustand des A/B-Flip-Flops 148 wird anfänglich durch eine
Information Q 11 bestimmt, welche von der zwölften Bit-Stelle des Q-Registers 128 an das A/B-Flip-Flop übertragen
wird, und kann dann im folgenden ein oder mehrmals durch einen Mikrobefehl CAB des Mikrorechners 120 komplementiert
werden.
Die Arithmetik-Logik-Einheit (ALU) 116 kann entweder seriell
einstellige binäre arithmetische Ope^itionen an Daten auf;
führen, welche sie über die S-Schiene 50 von dem T-Register
84 oder dem M-Register 82 und/oder über die R-Schiene 54 von einem anderen Regj.ster der Registereinhoit · 114 empfangt
oder sie kann parallel vierstellige binär-kodierLo Dezimalrechnungen
an Daten ausführen, welche sie über die Ausgaboleitungen
112, die mit der S-Schiene !30 geführt worden, von
309832/08^3
den T-Register 84 und/oder über die mit der R-Schiene-54
geführten Ausgabeleitungen 134 von dem A-Register 122 empfängt. Sie kann auch Logik-Operationen an Daten durchführen,
welche sie von der Speichereinheit 46 und/oder der Register 114 über eine dieser Leitungen erhalten hat. Die
durchgeführten arithmetischen und logischen Operationen werden durch ALU-Mikrobefehle von dem Mikrorechner 120 bestimmt
und abhängig von diesen Mikrobefehlen von Schiebeimpulsen des programmierbaren Taktgebers 118 und von einem ·
Steuersignal SCB der I/0-Steuerlogik 60 ausgeführt. Die
Informationen werden auch von der ALU 116 über die Ausgabeleitungen 132 an das- A-Register 122 oder über die T-Schiene
52 an das I/O-Register 56, das M-Register 82, das T-Register
84 oder ein beliebiges Register der Registereinheit 114 abhängig von Mikrobefehlen und Steuersignalen, welche
an diese Register angelegt werden, übertragen. Wenn ein Übertrag auftritt, wenn die ALU 116 entweder seriell einstellige
binäre arithmetische Operationen oder parallel vierstellige binär-kodierte dezimale Operationen ausführt,
gibt die ALU 116 ein entsprechendes Qualifizier-Steuersignal QBC und QDC über eine von zwei Ausgabeleitungen 152 und
154 an den Mikrorechner 120 weiter.
Der programmierbare Taktgeber 118 enthält einen quarzgesteuerten Impulsgeber 156, einen Umsetzer 158 und ein Ausgangstor
160. Der Impulsgeber 156 gibt regelmäßige Taktimpulse über eine Äusgangsleitung 162 an den Umsetzer 158
weiter ab.· Abhängig von diesen Taktimpulsen des Impulsgebers
309832/0843
156 und von einem vierstelligen Taktkode des Mikrorechners 120 gibt der Umsetzer 158 über eine Ausgabeleitung 164
Gruppen von η Schiebeimpulsen an die ALU 116, das M-Register 82, das T-Register 84 und an alle Register der Register-Einheit
114. Diese Gruppen von η Schiebeimpulsen werden zum
Verschieben einer entsprechenden Anzahl von Bits einer Serieninformation
in eines oder aus einem dieser Register benötigt oder zum Verschieben eines iJbertragsbits in der ALU 116. Die
Anzahl η der Impulse jeder dieser Gruppen kann von 1 bis IC schwanken, was von der Anzahl der Bits der Serieninformation
abhängt, die zu der auszuführenden Operation erforderlich
ist.
Abhängig von einem Steuersignal CCO des Mikrorechners 120 unterbindet das Ausgangstor 160 die Vielter leitung von Schiebeimpulsen
an die-ALU oder an eines der Register. Nach Beendigung
jeder Gruppe von η Schiebeimpulsen gibt der Umsetzer 158 über eine Ausgabeleitung 166 einen ROM-Taktimpuls an den
Mikrorechner 120 und über eine Ausgabeleitung 16 8 einen 1/0-Taktimpuls
an die I/O-Steuerlogik 60. Abhängig von den regelmäßigen
Taktimpulsen des Impulsgebers 156 gibt der Umsetzer 158 auch entsprechend regelmäßige Speicher-Taktimpulse über
eine Ausgabcleitung 170 an die Speichereinheit 46.
Der Mikrorechner 120 sendet selektiv über zwei Ausgabeleitungen 17 2 zwei I/O-Mikrobefehle an die I/O-Steuerlogik 60, über
sechs Ausgabeleitungen 174 sechs Speicher-Mikrobefehle an die Speicher-Einheit 46, über 13 Ausgabeleitungen 176
309832/0843
13 Register-Mikrobefehle an die Registereinheit 114 und
über fünf Ausgabeleitungen 178 fünf ALU-Mikrobefehle an
die ALU 116. Er gibt auch mit jedem dieser Mikrobefehle
über vier Ausgabeleitungen 180 einen vierstelligen Taktkode an den Umsetzer· 158. Diese Mikrobefehle und zugehörigen
Taktkodes werden erzeugt, wie es durch das Steuersignal POP der Stromversorgung, durch die elf Mikrorechner-Qualifizier-Steuersignale
des Q-Registers 128, durch den vierstelligen Primäradressenkode des Q--Registers 128 und den
fünf Mikrorechner-Qualifizier-Steuersignalen der I/0--Steuer~
logik 60, der Unterbrechungs-Steuerschaltung 65, der ALU
116 und des P~Registers'126 bestimmt wird.
Die Ablauf-Diagramme nach den Fig. 9K-B der festgespeicherten
Programme des Rechners (die im folcfenden im Gegensatz zu den üblichen Bezeichnungen "software" und "hardware" mit "firmware"
bezeichnet worden) illustrieren die Grundbestandteile dieser firmware des Rechners. Diese Bestandteile umfassen
in den ROM-Speicher 80 des Rechners festgehaltene Programme und dienen dazu, das Betriebssystem des Rechners zu verwirklichen.
In de]: Zeichnung sind Stcuerinforrnationen zwischen
den einzelnen Programmen durch ausgezogene Linien dargestellt, während gestrichelte Linien eine Informationsübertragung
zwischen den System- und Anwender-Teilen des RWM-Spcichers einerseits und den firmware-Programrnen andererseits darstellen.
Wie aus den Fig. 9A-B ersichtlich, wird die hardware des Rechners durch die in dem ROM-Speicher 80 enthaltenen firm-
BAD ORIGINAL 30983 2/0843
ware-Programme gesteuert. Diese hardware-Einheiten des
Rechners umfassen einen Netzschalter 182, die Tastenfeld-Eingabe-Einheit
12, die Anzeigeeinheit 18, den Ausgabedrucker 20 und die Magnetkarteneinheit 14.
Der Betrieb des Rechners wird dadurch eingeleitet, daß der Netzschalter in seine Ein--Stellung gebracht wird, wodurch
die interne hi\rdware des Rechnern gezwungen wird, den Befehl an der Adresse 0000 des ROM--Speichere CO auszuführen.
Dieser Befehl überträgt, die Steuerung an das Startprogramm
200, welches in dem Speicherplan der Fig. 1JA-Vt
(an den Adressen 2127-2226) dargestellt ist (und ausführlich
beschrieben auf den Seiten 18 und 19 der Aufstellung der firmware des Grundsystems) . Der Zweck dieses Programm;?;7:
1st es, den RWM-Speicher 78 in seinen Aniangszustand zu versetzen,
die Adresse des Stapelzühlers auf 1777 cinzusteller;,
die Darstellungsweise der numerischen Ausgabe auf "Gleitkomma 9" zu setzen, bestimmte Veränderliche in dem System-Speicherbereich
des RVJM- S pe ich er s für eine spätere Verwendung
durch andere firmware-Programme in den Anfangszustand zu versetzen, einen Konfigurationskode aufzustellen, der angibt,
welche wählbaren Blocke in Verwendung .sind und eine Me.vkzeichen-,
Syntax- und Ausf ührungs-Verbi ndimg zu den w.'shlbMiM,
Blöcken zu errichten. Diese Verbindungen worden in dem Kl1H--Speicher
78 an den Adressen 1G27 bis 1647 untergebracht, wu>
es in dem ausführ Ii clicren Speicherplan der Fig. 4 dargrst ivll L.
ist.
3098 3 2/0843
Nach Beendigung des Startprogramms wird die Steuerung an
das System-Überwachungsprogramm 202 übertragen (Adressen G221-6235), welches alle Tastenkodes zu ihren richtigen
Verarbcitungsprogrammen leitet. Eine ausführliche Beschreibung dieses Programmes ist auf Seite 91 der Aufstellung
der firmware des Gruridsystems wiedergegeben.
Fig. 1OA zeigt die oben beschriebenen Folgen von dem Einschalten
über das Startprogramm bis zu- dem System-Überwachungsprogramm 202. Weiterhin ist eine ausführlichere
Darstellung der Systemüberwachung angegeben. Bei Aufruf der System-Überwachung durch den Start wird auch das Anzeigeprogramm
204 (Fig. 9A-B) aufgerufen. Die Steuerung verbleibt dort, bis auf dem Tastenfeld 12 eine weitere Taste betätigt
wird. Während des; oben erwähnten Versetzens in den Anfangszustand
bei dem Startprogramm wird dem Eingabepuffer die
erste Zeile des Benutzerbereichs des RWM-Speichers 78 zugeteilt. Dadurch erscheint die Anzeige zu Beginn des Anzeigeprogramms
als O:END. Die Anzeige wird dazu verwendet, das Auftreten von Rückstellungen beim Betrieb des Rechners darzustellen.
"
Wie aus den Fig. 9A-B hervorgeht, liegt nun die Steuerung
bei dem Anzeigeprogramm 7204, nachdem dieses durch den Befehl,
den Inhalt des Eingabepuffers anzuzeigen, die Steuerung von
dem System-Überwachungsprogramm übernommen hatte. Das Anzeigeprograjimi
behält solange die Steuerung, bis eine neue Taste
309832/0843
Sl
betätigt wird und übergibt dann die Steuerung an ein Anzeige-Treibcr-Programm
206, sobald es notwendig ist, eine Anzeige vorzunehmen. Das Anzeige-Treiber-Programm nimmt
gemäß ASCII kodierte Information entweder von dem Anzeige;-puffer oder dom I/0-Puffer, wie zuvor beschrieben, entgegen
und setzt diese Information in eine Matrix von 5x7 Bit um, wie sie von der mit Licht, aussendenden Dioden (LED) bestückten
Anzeigeeinheit 18 benötigt wird. Nach jedem vollständigen Durchgang durch den Anzeigepuffer kehrt die Steuerung wieder
an das Anzeigeprogramm 204 zurück, welches wiederum das Wort mit dem Merkzeichen .WMOD überprüft, um festzuotellen,
ob eine neue Taste betätigt worden ist. Bei Eingabe eines neuen Tastenwertes geht die Steuerung auf das Unterbrechung.?-
Grundprogramm 208 über, welches die Tastenkode-Information
in dem RWM-Speicher 78 des Systems abspeichert und gleichzeitig eine Hcirkc setzt, die anzeigt, daß eine neue Taste
betätigt worden ist. Wenn das Anzeigeprogramm 204 feststellt, daß eine neue Taste betätigt worden ist, geht die Steuerung
wieder auf das Systein-Uberwachungsprograinm 202 über.
Aus Fig. 10Λ ist zu ersehen, daß bei Eingabe eines neuen
Tastenwertes die Antwort auf die Frage nach einer neuen Taste "ja" ist und daß die Verarbeitung des Tastenwertes
beginnt.
Wie aus den Fig. 10Λ-Β ersieht],ich, ist das Kodieren unterhalb
des mit SMON bezeichneten Punktes als Unterprogramm
309832/ 0843
realisiert, welches von dem System bei der Verarbeitung bestimmter Tastenwerte aufgerufen wird. Das Verarbeitungsprogramru
für jede Taste wird dadurch bestimmt, daß die Klasse des Tastenkodes, eine vorbeeinflußte Steuernummer
CN und ein Tafelstatuswort TSW untersucht werden. Das Statuswort TSW kann Werte zwischen 1 und 6 annehmen und benutzt
sein Vorzeichen Bit als Marke. Für TSW gleich 1 wird über das Tastenfeld eine Zeile aufgebaut. TSW gleich 2 zeigt
an, daß die vorliegende Zeile aus dem Benutzerteil das RWM-SpeiclKors
78 aufgerufen worden ist. TSW gleich 3 bedeutet, daß ein Tastenkode eingefügt und nicht ersetzt werden soll.
Bei TSW gleich 4 besitzt der übersetzer die Steuerung über das System, TSW gleich 5 zeigt den Zwischenmoduszustand an.
Bei TSW gleich 6 ist die vorliegende Zeile ausgeführt worden.' Außer bei TSW gleich 3 bedcuLet ein eingestelltes Vorzeichen
Bit, daß in der vorliegenden Zeile ein Zeilenendzeichen ( I--) vorhanden int. Bei TSW gleich 3 zeigt ein eingestelltes Vorzeichen
Bit einen überlauf in dem Anwonder-Programm-Boroich
an. Der Wort von TSW zeigt einen bestimmten Zustand des in den Fig. 9A-B gezeigten System-Überwachungsprogramms 202 an.
Die KlciSfie und die Steuernummer werden durch Daten in MTABL
bestimm!:., welches die Adressen 0005-0204 des ROM·-Speichers
80, wie. in dem ausführlichen Speichcrplan den: Fig. 3A-B geneigt,
ciiiniiiant. Eine; ausführliche Zusammenstellung der in
MTABL gespeicherten Information bezüglich jeder Taste erscheint
auf den Seiten 5 bis 7 der Zuriammonste.! lung der
BAD ORIGINAL
309832/08A3
5*
firmware des Grundsystems.
Das Format jedes Wortes von IG Bit Länge in MTABL ist v/ie
folgt: Die 6 Bits mit der höchsten Wertigkeit stellen die
Steuernummer dar, die dem betreffenden Kastenkode zugeordnet ist; die folgenden 2 Bits bezichen sich auf die Klasse; die
nächsten 4 Bits zeigen die Priorität in dem Stapelspeicher oder den wählbaren Block an, aus welchem der Tastenkode herrührt;
die 4 Bits mit der geringsten Wertigkeit zeigen den Pr-ioritüLsvergleich oder den relativen Wert des Tasterik^c'es,
wenn es sich um eine Tasi.'.· für eine wählbaren 1-1 ock handelt,
der einem steckbaren ROM-Modul zugeordnet ist. Wenn ein
Tastenkode verarbeitet worden soll, wird das entsprechende 16 Bit lange Wort von MTARl, in das CODE eingegeben. Der Wert
des Tastenkcdes wird in SKEY abgespeichert; die Steuortiumnior
wird ausgewertet und an die Stelle CW für das Merkzeichen gebracht;
d;ie Klasse wird dein Wort nur dann entnommen, wenn
sie benötigt wird. Die einzelnen Klar;sen der Tasten sind wie
folgt: Klasse O sind die programmierbaren Tasten; Klasse .1.
sind die Tasten für die wählbaren Blöcke; Klasse 2 sind die
durch ei.n Anwenderprogramm unterbrechbar en Tasten, Klasse 3
sind die Steuertasten, Die Tasten der Klasse 2 umfassen die.
Tasten mit den Bezeichnungen STOP, FIXED N (fesL) , FLOa'!1 N
(Gleitkoiiiina) , NORMAL, TUACiC (Aufsuchen) und SET-FLAG (rj.ake
setzen). Die Tar; I en der Klasse 3 um fass on d.ie Tasten mi.l
dem liezeichm.mgon RUN (Lauf) , EX)ICUTK (Ausführen) , LIST
(Auflisten) , STORE (Speichern) , INSERT (Einfügen) , rOlU-.'nKl)
(Vorwärts), RECALL (Wi ederauirufen) , CLEAR (Löschen) , DIlLE']'!'
309832/0843
SS
(Entfernen) und BACK (Rückwärts) .
Die Adressen der oben erwähnten und in dem Flußdiagramm der Fig. 10/\~-C dargestellten Verarbeitungspirogramme sind zwei-·
dimensional eingeordnet, wobei die Stellen in dieser Anordnung
durch das Tafelstatuswort TSVi und die vorbeeinflußte
Steuernummer CN bestimmt wird. Diese Adressen werden reihenweise abgespeichert. Die Verarbeitungsprograrnme tragen Be*-
zeichnungen, die den Wert von TSW und CN angeben. A.12 auf
dem Pfad der Speichertasten-Information bedeutet, daß TSW g.leJch 1 und CN gleich 2 iät. Die Verarbeitungsprogramme
im unteren Teil des Flußdiagramms veranschaulichen allgemeine
Betrachtungen beim Verarbeiten bestimmter Tastenkodes und es sind nicht alle Programme dargestellt. Für eine ausführlichere
Erläuterung der Verarbeitungsfolge kann die Aufstellung der
firmware des Grundsystems herangezogen werden.
Wie aus den Fig. 9A-B ersichtlich, ist die Steuerung bei dem System-tiberwachungsprogramm 202 verblieben, nachdem sie bei
Betätigung einer neuen Taste des Tastenfeldes 12 von dem Anzeigeprogramm 204 an dieses Programm übertragen worden war.
Im Falle einer programmierbaren Taste wird die Steuerung an ein Compiler-Programm 210 weitergegeben. Wie ±n dem ausführlichen
Speieherplan der Fig. 3A-B dargestellt, befindet sich
das Compiler-Programm an den ROM-Adressen 4055-4546; es kann auf den Seiten 50 bis 64 der Aufstellung der firmware des
Grundsystems studiert v/erden. Das Compiler-Programm wird zur Umwandlung algebrciischer Ausdrücke von der "infix"-Darstellung
309832/08A3
5*
in die "polnische" Darstellung verwendet, um die Programm-Ausführung
zu beschleunigen. Sie dient weiterhin zur Überprüfung der Zulässigkeit von Aussagen, die aus dem Tastenfeld
in den Rechner eingegeben werden. Wie in den Fig. 9A-B dargestellt, wird die Steuerung, sobald die Verarbeitung
durch das Compiler-Programm 210 beendet worden ist, an das System-Überwachungsprogramm 202 zusammen mit Information
über Syntax-Fehler zurückgegeben. Wenn der vorliegende Tastenkode im Rahmen der vorher eingegebenen Tastenwerte richtig
ist, ist kein Syntaxfehler aufgetreten und das System-Überwachungsprogramm fährt fort, von den Tastenkodes in dem Eingabepuffer
gemäß ASCII kodierte Informationen aufzubauen und sie für eine Anzeige durch das Anzeigeprogramm 204 in den
Anzeigepuffer einzugeben. Die Steuerung bleibt dann solange
bei dem Anzeigeprogramm, bis eine neue Taste betätigt wird.
Der oben beschriebene Vorgang läuft weiter ab, bis das Zeichen für das Zeilenende ( /-) erreicht ist. Der Benutzer
hat dann eine Reihe von Wahlmöglichkeiten. Er kann die vorliegende Zeile als Programmzeile in einem Programm abspeichern;
in diesem Fall betätigt er die Speicher-Taste STORE und übergibt damit die Steuerung an das System-Überwachungsprogramm
202. Bei Betätigung der Speichertaste STORE werden die Informationen in dem Compilerbereich von dem Systembereich des
RWM-Speichers zu dessen Anwenderbereich gebracht und in das dort befindliche Programm eingefügt. Danach wird die Steuerung
an das System-Überwachungsprogramm 202 zurückgegeben, damit
309832/084 3
in dem Anzeigepuffer die richtige Anzeige aufgebaut wird für eine Verwendung durch das Anzeigeprogramm.
Wenn die Programmlauf-Taste RUN-PROGRAM betätigt wird, geht
die Steuerung von dem Anzeigeprogramm 204 auf das Systemüberwachungsprogramm 202 über und sodann zu dem Interpreter-Programm
214, welches aus dem Anwenderteil des RWM-Speichers Programminformation in "polnischer" Darstellung herauszieht.
Wäre an Stelle der Taste RUN PROGRAM die Ausführungs-Taste EXECUTE betätigt worden, hätte das Interpreter-Programm die
Information aus dem Compiler-Ausgabebereich entnommen.. Das Interpreter-Programm 214 nimmt die Adressen 4547-5700 des
ROM-Speichers ein, wie es in dem Speicherplan der Fig. 3A-B dargestellt und ausführlich auf den Seiten 65-84 der Aufstellung
der firmware des Grundsystems beschrieben ist. Während das Interpreter-Programm die Tastenkodes aus dem
Speicher herausholt, werden deren Verarbeitungsp.rogramme aufgerufen. Das System fährt in diesem Zustand fort, bis ein
Programmfehler auftritt oder ein Stoppbefehl gegeben wird. Tasten, die bei einem laufenden Programm eine Unterbrechung
des Systems bewirken können, sind die oben als Tasten der Klasse 2 erwähnten programm - unterbrechenden Tasten. Sie umfassen
die Tasten STOP, FIX N (fest), FLOAT N (Gleitkomma), NORMAL, TRACE (Aufsuchen) und SET FLAG (Marke setzen).
Wie zuvor beschrieben wird das Wort mit dem Merkzeichen TSW (Tafel-Status-Wort) gleich 4 gesetzt, wenn die Steuerung
309 832/084
bei dem Programm-Unterbrechungsprogramm 216 liegt. Wenn in diesem Zustand Tasten betätigt werden, werden nur diese verarbeitet,
die zu diesem Zeitpunkt gültig sind. Wenn die betätigte Taste eine unterbrechende Taste der Klases 2 ist,
wird die Steuerung von dem Interpreter-Programm an das System-Uberwachungsprogramm
und sodann an das Programm-Unterbrechungsprogramm übergeben. Nach Beendigung der Verarbeitung durch
dieses Programm kehrt die Steuerung an das System-Überwachungsprogramm 202 und sodann an das Interpreterprogramm 214 zurück,
sofern die betätigte unterbrechende Taste nicht die Taste STOP gewesen ist. Nach Beendigung der Verarbeitung
durch das Interpreterprograjran geht die Steuerung wieder zu
dem System-Überwachungsprogramm zurück. Bei Betätigung der
Tasten RUN PROGRAM und EXECUTE ruft das System-Überwachungsprogramm ein Formatprogramm 218 auf, welches sich an den
Adressen 2227-2535 des ROM-Speichers befindet und auf den Seiten 20-27 der Aufstellung der firmware des Grundsystems
ausführlich beschrieben ist. Das Formatprogramm wandelt numerische Information von der internen Darstellung in gemäß
ASCII kodierte Zeichen um und bringt diese in den Anzeigepuffer. Wenn diese Bearbeitung beendet ist, geht die Steuerung
an das System-Überwachungsprogramm 202 und sodann an das Anzeigeprogramm 204 über und das Resultat wird angezeigt.
Bei Betätigung der Auflist-Taste LIST übergibt das Systemüberwachungsprogramm die Steuerung an ein Programm-Auflistprogramm
220 weiter, welches ein Entcompiler-Programm 222 zum Zwecke der Umwandlung algebraischer Ausdrücke von
309832/0843
"polnischer" in "infix" Darstellung und der Eingabe des Resultats in den Eingabepuffer aufruft, woraufhin die
Steuerung an das Programm-Auflistprogramm zurückgegeben
wird. Das Programm-Auflistprogramm 220 wandelt dann die in dem Eingabepuffer enthaltene Information in gemäß ASCII
kodierte Information um und bringt diese in den Anzeigepuffer,
woraufhin die Steuerung zum Ausdrucken von 16 . Zeichen durch den Ausgabedrucker 20 an ein Drucker-Treiber-Programm
224 weitergegeben wird. Die Steuerung geht dann wieder an das Programm-Auflistprogramm 220 zurück, welches
prüft, ob noch mehr Zeichen benötigt werden, um die Ausgabe der Zeile beenden zu können. Wenn noch mehr Zeichen benötigt
werden, wird das Drucker-Treiber-Programm 224 noch einmal aufgerufen und das Programmauflisten wird fortgesetzt, bis
ein Programmendezeichen (-1) auftritt oder in dem Tastenfeld 12 die Taste STOP betätigt wird. Wenn das Auflisten beendet
ist, berechnet das Programm-Auflistprogramm die Anzahl der
für das Programm zur Verfügung stehenden Datenregister, ordnet
das Druckerpapier so an, daß die darauf befindliche Auflistung von dem Ausgabedrucker 20 abgerissen werden kann und stellt
die Programmzähler auf den Anfang des Programms zurück. Die Steuerung wird dann an das System-Überwachungsprogramm 202
und das Anzeigeprogramm 204 weitergegeben.
Ein Magnetkarten-Treiberprogramm 226 wird durch ein Aufzeichen-
und Hauptzoilen-Programm aufgerufen, welches ein Teil der
Verarbeitungsprogramme ist, die sich im InterpreterrProgramm 214 befinden. Dem Aufzeichen- und Hauptzeilen-Programm wird
309832/08 4 3
ω -
die Steuerung übertragen, wenn das Interpreter-Programm auf einen Lade- und Aufzeichen-Befehl trifft. Das Magnetkarten-Treiberprogramm
226 übernimmt Datenregister- oder Programm-Information von dem Anwenderteil des RWM-Speichers
78 und überträgt Wörter von 16 Bit Länge auf eine externe Magnetkarte.
Ausführliche Informationen über die Anordnungs-Programm-Sprache, die sich auf alle hier beschriebenen firmware-Programme
und -Unterprogramme bezieht, kann aus dem Speicherplan der Fig. 3A-B und der Aufstellung der firmware des
Grundsystems entnommen werden.
309832/0 8 43
Sämtliche von dem Rechner durchzuführenden Operationen
lassen sich durch die Tastenfeld-Eingabeeinheit und/oder durch über die Tastenfeld-Eingabeeinheit, die Schreib- und
Leseeinheit für Magnetkarten oder periphere Anschlußgeräte, wie die Lese-Einrichtung für markierte Karten, steuern oder
einleiten und als Prograinmschritte in dem Programm-Speicherbereich des RWM-Speichers abspeichern. Der Rechner reagiert
auf die Tastencodes grundsätzlich in der gleichen Art, ob er diese nun von der Tastenfeld-Eingabeeinheit oder von dem
Programm-Speicherbereich des RWM-Speichers erhalten hat. Im folgenden wird nun eine Beschreibung der Wirkungsweise der
Tastenfeld-Eingabeeinheit unter spezieller Bezugnahme auf Fig. 1, sofern nichts anderes gesagt wird, gegeben.
Wenn der Netzschalter an der Vorderseite des Rechners in
seine Stellung EIN gebracht wird, erscheint folgende Anzeige:
0 : END h
Der Rechner ist dann betriebsbereit.
Der Rechner ist dann betriebsbereit.
Die Lösch-Taste ERASE hat die gleiche Wirkung, wie ein kurzzeitiges
Ausschalten des Rechners. Sie löscht alle gespeicherten Daten und Programme aus dem Speicher und beseitigt die Resultate
aller vorangegangenen Rechnungen und Operationen.
309832/0843
Der Verkehr mit dem Rechner erfolgt über die Anzeigeeinheit.
Im allgemeinen müssen zwei grundlegende Schritte ausgeführt werden, wenn Operationen durchgeführt werden sollen:
1. Durch Betätigen der entsprechenden Tasten wird ein Satz von Anweisungen in die Anzeigeeinheit eingeschrieben.
2. Der Rechner hat dann diese Anweisungen zu befolgen, und das Ergebnis einer numerischen Operation wird automatisch
angezeigt. Bei tastenfeldgesteuerten Berechnungen besteht
dieser Schritt lediglich aus einer Betätigung der Verarbeitungs-Taste EXECTUE.
Diese beiden Schritte bilden die grundlegende Benutzeroperation. Mit wenigen Ausnahmen bilden alle Operationen, wie das Ausführen
von Berechnungen, das Laden und Laufenlassen von Programmen, das Geben von Anweisungen an den Ausgabedrucker usw. lediglich
in einer Variation dieser grundlegenden Benutzeroperatxon.
Zusätzlich zur Anzeige von Zahlen, Anweisungen und Rechenergebnissen
zeigt der Rechner auch diagnostische Bemerkungen an, um den Benutzer über aufgetretene Fehler oder über spezielle
Situationen zu informieren. Die grundlegenden Bemerkungen sind von 01 bis 16 durchnumeriert (verschiedenen steakbaren ROM-Modulen
sind jedoch höher numerierte Bemerkungen zugeordnet). Die Nummer der Bemerkung gibt dabei die Art des Fehlers oder
der Situation an. Die Bemerkung NOTE 01 zeigt z. B. an, daß dem Rechner eine Anweisung gegeben worden ist, die dieser
309832/0843
nicht verstehen kann. Die Bemerkung NOTE 16 gibt' an, daß
der Papiervorrat des Ausgabedruckers zu Ende gegangen ist. Eine Aufstellung der grundlegenden Bemerkungen und eine
kurze Beschreibung ihrer Bedeutung ist im Anhang am Ende dieses Absatzes über die Wirkungsweise der Tasten angegeben.
Wenn bei der Programmausführung der Zustand "Bemerkung"
auftritt, wird angehalten. Die Anzeigeeinheit gibt dann die Bemerkung wieder zusammen mit der Nummer der Programmzeile,
in der sie aufgetreten ist, z.B.
NOTE 02 ·IN 4
Diese Anzeige gibt an, daß in Zeile 4 die Bemerkung 02 aufgetreten
ist.
Anweisungen werden durch Betätigen entsprechender Tas.ten in
die Anzeigeeinheit eingeschrieben. Wenn der Benutzer beispielsweise 2 zu 4 addieren und das Ergebnis ausdrucken will, werden
die Tasten PRINT 2+4 betätigt. Der Rechner befolgt diese /mweisungen jedoch so lange nicht, bis die Verarbeitungs-Taste
EXECUTE betätigt wird. Er druckt dann das Resultat 6 aus (und zeigt es gleichzeitig an).
Zahlen werden wie bei einer üblichen Büromaschine dadurch in die Anzeige-Einheit eingetastet, daß in der erforderlichen
Reihenfolge die Zifferntasten (0 bis 9) und die Dezimalpunkttaste betätigt werden. Wenn die Zahl negativ ist, muß zuvor
das Minuszeichen eingegeben werden. Kommas dürfen nicht ver-
309832/0843
wendet werden, auch nicht zum gruppenweisen Abteilen einer Zahl. Wie in dein Fall einer Anweisung wird eine eingegebene
Zahl, obwohl sie angezeigt wird, nicht eher von dem Rechner ausgeführt, als bis die Taste EXECUTE betätigt wird.
Normalerweise soll jeweils nur eine einzige Zahl ausgeführt werden. Die Zahl wird für gewöhnlich in einem Satz von Anweisungen
untergebracht, und es werden dann die Anweisungen ausgeführt.
Löschen
Die Lösch-Taste CLEAR löscht die Anzeigeeinheit, läßt aber
den Speicher unverändert. Sie wirkt unmittelbar und braucht nicht von der Taste EXECUTE gefolgt zu werden. Wenn die Taste
CLEAR betätigt wird, erscheint in der Anzeigeeinheit ein Zeilenendzeichen ( h), welches anzeigt, daß der Rechner sich
im Leerlauf befindet. Es ist nicht erforderlich, die Anzeigeeinheit vor der Eingabe der nächsten Anweisung zu löschen,
sofern die vorhergehende Anweisung ausgeführt worden ist. In diesem Fall ist die Verwendung der Taste CLEAR freigestellt,
Wenn jedoch nach der Eingabe der letzten Anweisung keine Programmausführung stattgefunden hat, muß die Lösch-Taste
CLEAR betätigt werden.
Arithmetische Berechnungen
Für arithmetische Berechnungen besteht die grundlegende
Anwenderoperation im Einschreiben eines arithmetischen
309832/0843
·- 65 -
Ausdruckes in die Anzeigeeinheit und dann im Betätigen
der Verarbeitungs-Taste EXECUTE, um den Rechner anzuweisen, diesen Ausdruck auszuwerten. Ein arithmetischer Ausdruck
wird dadurch in die Anzeigeeinheit eingegeben, daß die Tasten in der gleichen Reihenfolge betätigt werden, wie
wenn auf Papier geschrieben werden soll, d.h. eine Taste pro Zeichen oder Symbol. Der arithmetische Ausdruck kann ■
dann einfach durch Betätigen der Taste EXECUTE ausgeführt werden. Dies wird durch das folgende Beispiel illustriert:
Tastenfolge | ■Anzeige | |
3 | + 6 EXECUTE | 9.00 |
9 . | 3-6 EXECUTE | 3.30 |
- 7 EXECUTE | -7.00 | |
6 * ( | - 7 ) EXECUTE | ' -42.00 |
8 . 2 | 5 * 4 EXECUTE | 33.00 |
6*3/ | (11-2) EXECUTE | 2.00 |
3 | EXECUTE | 1.7.3 |
4 + | 5 EXECUTE | 7.00 |
( 4 + | 5 )■ EXECUTE | 3.00 |
Wie in den vorstehenden Beispielen werden Größen in. Klammern wie eine einzige Größe behandelt. So ist V(4+5) äquivalent
mit V~9, während V4+5 lediglich 5 zu der Quadratwurzel 4
addiert. Der Ausdruck 4 (3+2) ist äquivalent mit dem Ausdruck 4* (3+2). Der Multiplikationsoperator (. . bzw.-*·). ist impliziert,
d. h. stillschweigend vorgesehen, ,und seine Benutzung daher freigestellt. KlcJimnern können ineinandergeschachtelt
309832/0843
werden (entsprechend der üblichen Darstellungsweise Jründe
Klammern in eckigen Klammern und diese in geschweiften Klammern), aber diese Klammern müssen ausgewogen sein, d.
h. es müssen auf der linken Seite genau so viel Klammern vorhanden sein wie auf der rechten Seite.
Die arithmetische Hierarchie
Wenn arithmetische Ausdrücke mehr als einen Operator aufweisen, wie in einigen der vorstehenden Beispiele, ist
eine bestimmte Ausführungsreihenfolge vorgeschrieben. Dabei muß der Ausdruck richtig geschrieben werden, oder es wird
eine falsche Antwort erhalten.
Die Reihenfolge der Ausführung, die sobezeichnete Hierarchie, ist wie folgt:
1. Mathematische Funktionen, z. B. Quadratwurzel,
2. Implizierte Multiplikation,
3. Multiplikation und Division und
4. Addition und Subtraktion.
Wenn ein Ausdruck zwei oder mehr Operatoren aus der gleichen Stufe der Hierarchie aufweist, werden diese in der Reihenfolge
von links nach rechts ausgeführt. Die Verwendung von Klammern ermöglicht es, die Reihenfolge der Ausführung zu
verändern. So wird in dem Ausdruck ^T4+5) der Additionsoperator vor dem Quadratwurzeloperator ausgeführt, obwohl
der Additionsoperator auf einer niedrigeren Stufe in der
309832/0843
Hierarchie steht.
Überschreitung der Anzeige
Die Länge eines Ausdruckes ist nicht auf die Länge der Anzeige begrenzt. Beim Eintasten überzähliger Symbole
verschiebt sich die Anzeige nach links, um hierfür Platz zu machen. Die maximal zulässige Länge eines Ausdrucks
schwankt zwischen 35 und 69 Anschlägen und hängt von der 7vrt des Ausdruckes ab. Wenn zu viele Tasten betätigt v/erden,
gibt die Anzeige die Bemerkung NOTE 09 wieder (siehe unten). Abhängig von der Art des Ausdruckes erscheint die Bemerkung
entweder bevor oder nachdem die Verarbeitungs-Taste EXECUTE gedrückt wird. In beiden Fällen muß die Bedienungsperson
die Lösch-Taste CLEAR tätigen und einen kürzeren Ausdruck angeben.
Die Tasten BACK und FORWARD (rückwärts und vorwärts) ermöglichen es, einen angezeigten Ausdruck zu ändern oder zu
korrigieren, ohne die ganze Folge noch einmal eintasten zu müssen. Wenn beim Schreiben eines Ausdruckes eine falsche
Taste gedrückt wird, kann sie sofort anschließend durch Drücken der Rück-Taste BACK und der richtigen Taste korrigiert
werden, beispielsweise folgendermaßen:
Tastenfolge . " ■■ Anzeicye
. 2 + BACK .< 4 2 ¥ 4
Ein angezeigter Ausdruck kann gelöscht werden, und zwar Taste
3 Ö 9832/084 3"
für Taste, in umgekehrter Reihenfolge, indem für jedes angezeigte Zeichen die Taste BACK einmal betätigt wird.
Die gelöschten Zeichen können dann in die Anzeigeeinheit Zeichen für Zeichen zurückgegeben werden, indem die Taste
FORVJARD gedrückt wird. Wenn ein Ausdruck ein falsches Zeichen enthält, wird die Taste BACK gedrückt, bis das
Zeichen gelöscht ist, dann die richtige Taste betätigt und sodann die Taste FORWARD gedrückt, um die folgenden
Tasten (und gegebenenfalls zusätzliche Tasten) eingeben zu können. Wenn beispielsweise die Zahl 123456789 fälschlicherweise
als 123444789 in die Anzeige eingegeben worden war, kann der Fehler durch die folgenden Schritte korrigiert werden:
Tastenfolge Anzeige
BACK BACK BACK BACK BACK 1234
5 6 FORWARD FORWARD FORWARD 123456789
Wenn der falsche Ausdruck bereits ausgeführt worden war, aber seitdem keine weitere Taste betätigt worden ist, kann der
Ausdruck (durch Betätigen der Taste BACK) wieder in die Anzeigeeinheit zurückgeholt, wie zuvor korrigiert, und dann
wieder ausgeführt werden.
Jede Zeile eines gespeicherten Programmes kann in die Anzeigeeinheit
zurückgeholt und dann durch wiederholte Betätigung der Taste BACK vollständig gelöscht werden. Eine weitere Betätigung
der Taste BACK bringt die gesamte vorhergehende '/eile
309832/0843
des gespeicherten Programmes in die Anzeigeeinheit. Es ist
dann möglich, durch diese Zeile rückwärts zu schreiten und dann deren Vorgänger .in die, Anzeigeeinheit zu holen usw.
In analoger Weise kann die Taste FORWARD wiederholt betätigt werden, um die einer vorliegenden Zeile folgenden
Zeilen in die Anzeigeeinheit zurückzuholen.
Zur Beseitigung eines Teiles einer Zeile wird die Taste BACK wiederholt betätigt, bis das äußerste, rechte Zeichen, Symbol
oder Merkzeichen des zu beseitigenden Teiles zu dem äußersten rechten Bestandteil der Anzeige geworden ist. Sodann wird für
jedes zu beseitigende Zeichen, Symbol oder Merkzeichen einmal die Beseitigungs-Taste DELETE betätigt. VJe η η dann der
äußerste rechte Bestandteil der Zeile nicht mehr in der Anzeige sichtbar ist, wird wiederholt die Taste FORWARD betätigt.
Der Benutzer kann dann mit dem Schreiben der Zeile fortfahren, sie ausführen oder sie abspeichern lassen, wie. es. angebracht
erscheint. In dem folgenden Beispiel sei angenommen, daß von der folgenden Zeile der unterstrichene Teil entfernt werden
soll:
FXD 2;X4Y;PRT (A+B)/A;GTO 4
Dies wird durch wiederholte Betätigung der Taste BACK bewirkt,
bis die Anzeige folgendermaßen aussieht:
;X->Y; PRT (A+B)/A
Anschließend wird die Taste DELETE dreizehn mal betätigt. Zuerst verschiebt sich die Anzeige nach rechts, so daß der
erste Teil" der Zeile in Sicht kommt, in diesem Fall FXD 2.
309832/0843
FXD erscheint jedoch nicht eher, als bis in der Anzeige Platz für alle vier Zeichen zuzüglich des Zwischenraumes
zwischen D und 2 ist. Nachdem dieser erste Teil-der Zeile
in Sicht kommt, scheint sich die Zeile dadurch zu verkürzen, daß sie auf der rechten Seite der Anzeige jedesmal reinen
Bestandteil verliert, wenn die Taste DELETE betätigt wird, während der Rest der Zeile stationär bleibt. Nachdem diener
Abschnitt entfernt worden ist, wird wiederholt die Tasi:
FORVIARD betätigt, bis das Ende der nun modifizierten Zeile
wie folgt in Sicht kommt:
FXD 2;GTO 4
Der Benutzer kann nun fortfahren, diese Zeile zu schreiben,
und sie ausführen oder abspeichern zu lassen.
Zum Hinzufügen nines Abschnittes in das Innere einer Zeile wird die Taste BACK wiederholt betätigt, bis der äußerste
rechte in der. Anzeige sichtbare Bestandteil das Zeichen, Symbol oder Merkzeichen ist, welches dem hinzuzufügenden
Abschnitt unmittelbar vorangeht. Dann v/ird die Taste INSERT betätigt, und es werden die Tasten gedrückt, welche' den gewünschten
Abschnitt beschreiben. Anschließend wird mehrmals die Taste FORWARD gedrückt, bis das Ende der Zeile in Sicht
kommt. Beim Betätigen der auf INSER-T folgenden, aber dem FORWARD vorangehenden Tasten werden deren Merkzeichen in
die Zeile eingegeben, ohne daß andere Bestandteile der Zeile verlorengehen. Der rechte Teil der Zeile v/ird nach rechts
hinausgeschoben, um Platz für zusätzliche Bestandteile zu
schaffen. Dieser Vorgang v/ird fortgeführt, bis eine der
309832/0843
Tasten BACK, FORWARD, DELETE, CLEAR, EXECUTE- oder STORE
betätigt wird. Für gewöhnlich wird die Einfügung eines Teiles einer Zeile mit der Taste FORWARD beendet, um an
das Ende der Zeile zurückzugelangen. Es sei beispielsweise angenommen, daß der Teil
eingefügt werden soll in die Zeile
10->A;30->C
Zum Durchführen der Einfügung wird mehrmals die Taste BACK betätigt, bis das Semikolon der äußerste rechte Bestandteil
in der Anzeige wird. Dann wird die Taste INSERT gedrückt und anschließend die Tastenfolge 20 B eingegeben. Anschließend
wird die Taste FORWARD betätigt, bis die ganze Zeile wie folgt sichtbar v/ird:
Wenn bei der Eingabe eines Teiles einer Zeile, der in eine
bereits vorhandene Zeile eingefügt werden soll, von dem Benutzer ein Fehler gemacht wird, kann der fehlerhafte Bestandteil
durch Betätigen der Taste DELETE wieder entfernt werden. Der Benutzer kann dann mit dem Schreiben des gewünschten
Zeilenteiles fortfahren, nachdem die Taste INSERT betätigt worden ist.
Zusätzlich zu dem eben besprochenen Modifizieren einzelner Zeilen eines Programmes ist es auch möglich, ganze Zeilen in
das Innere eines in dem Speicher abgespeicherten Programmes einzufügen' oder ganze. Zeilen von diesem zu entfernen. Wenn
309832/0843
beispielsweise zwischen zwei vorhandenen Zeilen 4 und 5 eine Zeile hinzugefügt werden soll, wird die hinzugefügte,
Zeile die neue Zeile 5, während die alte Zeile 5 die neue Zeile 6 wird. Wenn in ähnlicher Weise eine Zeile 3 von
einem Programm entfernt werden soll, wird die alte Zeile 4 die neue Zeile 3 und die alte Zeile 5 wird die neue Zeile
4 usv/. In beiden Fällen wird nach Durchführung der Änderung die Anzahl der zur Verfügung stehenden R-Register automatisch
geändert.
Zum Einfügen einer Zeile in ein Programm wird der Programmzeilenzähler
zuerst auf die Nummer der Zeile eingestellt, die der neuen Zeile zugeordnet werden soll. Dies kann beispielsweise
durch Betätigen der Taste GO TO bewirkt werden und durch anschließendes Drücken der Zifferntasten, welche
die Zeilennummern wiedergeben, sowie der Taste EXECUTE. Die neue Zeile wird dann in die Anzeigeeinheit eingeschrieben,
und es werden anschließend die Tasten INSERT und STORE betätigt. Die neue Zeile wird abgespeichert und alle folgenden
Zeilen des Programms zusammen mit ihren Zeilennummern werden entsprechend verschoben, uni Platz zu schaffen.
Zum Entfernen einer Zeile eines Programmes wird der Programmzeilenzähler
zunächst auf die Nummer der Zeile eingestellt, die entfernt werden soll. Anschließende Betätigung'der Tasten
RECALL und DELETE entfernen die Zeile und verschieben alle
309832/0843
folgenden Zeilen und ihre Zeilennummern, um die Lücke zu schließen.
Der Rechner enthält in seinem Grundausbau 179 Register: sechs Speicher-und Arbeitsregister (A, B, C, X, Y und Z)
und 173 Programm- und Datenspeicherregister (RO bis R172). Zusätzliche 256 R-Register (R173 bis R428) können hinzugefügt
werden, so daß sich insgesamt 435 Register ergeben.
Die Register A, B, C, X, Y und Z werden durch Betätigender
zugehörigen Tasten Ä, B, C, X, Y und Z ausgewählt, während die R-Register durch Betätigen der Taste R( ) und
der passenden Zifferntasten 0 bis 172 oder 428 ausgewählt werden. Das Argument der Taste R( ) kann ein Rechenergebnis
sein. So wird beispielsweise durch Betätigen der Tasten R( ), (r 7, 0, /, 2, ) das Register R35 bezeichnet. Das Argument
der Taste R( ) kann auch eine Veränderliche sein." Wenn beispielsweise
das Register A die Zahl 15 enthält, wird durch Betätigen der Tasten R( ) und A das Register R15 bezeichnet.
Wenn in ähnlicher Weise das Register R5 die Zahl 10 und das Register C die Zahl 25 enthält, wird durch Betätigen der
Tasten R( ), (, R( ), 5, +, C, ) das Register R35 bezeichnet.
Das durch die Tastenfolge R( ), R( \., R( ) . .. R( \ gefolgt
von einer oder mehrerer Zifferntasten bezeichnete Register wird «bestimmt durch die von den Zifferntasten angegebene
30 98*32/08^3
Nummer und die. in den verschiedenen Registern enthaltenen
Nummern. Beispielsweise bezeichnet die Tastenfolge R( ), R( ), 2 das Register R8, wenn R2 die Zahl 8 enthält.
Wenn die der Taste R( ) folgende Zahl keine ganze Zahl ist, wird der Dezimalbruchanteil der Zahl nicht beachtet. Beispielsweise
bezeichnet die Tastenfolge R( ), 3, 5, 6, ., 6
das Register R35. Ein Pluszeichen unmittelbar im Anschluß an die Taste R( ) wird fallen gelassen, wenn die es enthaltende
Zeile abgespeichert wird. Beispielsweise wird die Tastenfolge. R( ),+,/,% als R( ) 35 abgespeichert. Ein der
Taste R( ) unmittelbar folgendes Minuszeichen ist nicht zulässig und bewirkt einen Syntax-Fehler (Bemerkung NOTE 01) ,
Wenn der Taste R ( ) eine Quantität folgt, deren Wert entweder negativ oder größer ist als die Anzahl der zur Verfügung
stehenden R-Register, tritt bei der Ausführung ein Fehler auf(abhängig von den tatsächlichen Umständen wird
dann eine der Bemerkungen NOTE 05 oder NOTE 06 gegeben).
Einige der steckbaren Auslesespeicher-Moduln benötigen für sich einenTeil des Speichers. Wenn eine dieser Moduln eingesteckt
wird, beansprucht es automatisch die benötigten Register, wobei mit dem Register mit der höchsten Nummer begonnen
und nach unten fortgeschritten wird. Diese Register
sind dann solange nicht für die Speicherung von Programmen und Daten verfügbar v/ie das Modul eingesteckt bleibt.
309832/0843
Wenn Programme gespeichert werden, beginnen sie in dem R-Register mit der höchsten zur Verfügung stehenden Nummer
und füllen hintereinander den Speicher nach unten. In den Registern A, B, C, X, Y und Z können keine Programme gespeichert
werden. Zweckmäßigerweise werden daher Daten zuerst in den Registern A, B, C, X, Y und Z und dann erst in
den R-Registern mit niedrigen Nummern gespeichert. Wenn der Speicher kein Programm enthält (d.h. beim Einschalten oder
wenn die Taste ERASE betätigt worden ist), stehen alle Register (bis auf die für eingesteckte Auslesespeicher-Modul
benötigten) für die Datenspexcherung zur Verfügung. Wenn der Speicher jedoch ein Programm enthält, können die höher numerierton
Register nicht für die Datenspexcherung verwendet werden. Falls die Bedienungsperson versuchen sollte, in einem
nicht zur Verfügung stehenden Register Daten zu speichern, wird die diagnostische Bemerkung NOTE 06 angezeigt.
Die /anzahl der zur Verfügung stehenden R-Register kann jederzeit
durch Betätigen der Tasten CLEAR LIST STOP bestimmt werden. Der Ausgabedrucker beginnt dann das Programm aufzulisten
(mit Hilfe der STOP-Taste braucht nicht die Auflistung
des gesamten Programmes abgewartet zu werden). Am Ende der Liste erscheint eine Nummer, der der Buchstabe R vorangestellt
ist, welche die Anzahl der zur Verfügung stehenden R-Register angibt. (Das Register mit der kleinsten Nummer ist RO; von
der ausgedruckten Zahl muß somit 1 abgezogen werden, um die Nummer des höchsten Registers zu erhalten, das für die Datenspexcherung
zur Verfügung steht).
3 09832/0843
Datenspeicherung **
Jedes Register kann eine Daten-Zahl enthalten. Es ist nicht erforderlich, ein Register vor dem Eingeben einer Zahl zu
löschen, da die zu speichernde Zahl automatisch eine bereits gespeicherte Zahl ersetzt. Beim Einschalten oder beim Betätigen
der Taste ERASE wird jedoch der gesamte Speicher gelöscht. Zum Speichern von Daten wird die Taste —>
benötigt. Beispielsweise wird durch Betätigen der Tasten
12.6 —> A EXECUTE
in dem A-Register 12.6 gespeichert. In ähnlicher Weise wird durch betätigen der Tasten
6 * X EXECUTE
in den X-Register 6 gespeichert und durch Betätigen der
Tasten
1 9 ^ r( ) χ 2 EXECUTE
in dem Register R12 die Zahl 19. Eine gespeicherte Zahl
kann betrachtet werden durch Verwendung entweder der Taste DISPLAY oder der Taste PRINT. Zum Beispiel wird durch
DISPLAY A EXECUTE
die derzeit in A gespeicherte Zahl angezeigt (wobei die Zahl in A gespeichert bleibt). In ähnlicher Weise wird durch
PRINT R( ) 12 EXECUTE
der Inhalt von R12 ausgedruckt (wobei die Zahl in R12 gespeichert bleibt) .
309832/0843
Falls eine gespeicherte Zahl langer als hur vorübergehend
aufbewahrt werden soll wird diese im allgemeinen nicht in
dem Z-Kegister abgespeichert, da das Ergebnis jedes arithmetischen
Ausdruckes automatisch in das Z-Register eingegeben wird, wenn keine andere Speicherstelle vorgegeben wird. Der
Ausdruck
14.2 EXECUTE ist somit äquivalent mit
14.2 —>Z EXECUTE ·' '
Da bei beiden Ausdrücken der angezeigte Wert 14.2 ebenfalls
in dem Z-Register abgespeichert wird. In ähnlicher Weise
3 # 4 + 1 6 / 3 EXECUTE äquivalent mit
3*4 + 16/3 -^Z EXECUTE.
Eine Aussage, die eine numerische Aktivität umfaßt, enthält für gewöhnlich einen Befehl, wie PRT, DSP oder —>
. Wenn kein solcher Befehl vorhanden ist, wird für gewöhnlich automatisch die -{Quantität—^Z oder /mathematischer Ausdruck)
—> Z angenommen, wenn die Zeile ausgeführt oder abgespeichert
wird.. "
Die automatische Hinzufügung von Z an das Ende einer Aussage
wird "impliziertes Speichern in Z" genannt.
Wenn die Bedienungsperson zum Beispiel die Tasten A EXECUTE
betätigt, um den Inhalt von A zu betrachten, wird tatsäch-
309832/0843
lieh die Zeile A—>Z ausgeführt. Der Inhalt von A wird
sichtbar, weil das die numerische Quantität ist, die dem letzten Zuweisungsbefehl zugeordnet ist, der in der Zeile
ausgeführt worden ist. Inzwischen ist der Inhalt von Z durch denjenigen von A ersetzt worden und damit verloren
gegangen. Das bevorzugte Verfahren zum Betrachten eines Registerinhaltes ist daher die Verwendung der Tasten PRINT
oder DISPLAY, weil diese den Inhalt keines der Register stören.
Wegen der implizierten Speicherung in Z wird das Z-Register für die Speicherung von Daten bei vom Tastenfeld aus durchgeführten
Berechnungen nicht empfohlen, außer in bestimmten Situationen. Wenn die Bedienungsperson beispielsweise eine
Anzahl von Zahlen n,, n2 n_, ... addieren will, wird durch
Ausführung der Zeile 0 —>Z das Register zuerst auf 0 gesetzt.
Dann werden die Zahlen folgendermaßen addiert:
Xi1 + Z
n2 + Z n3 + Z
Wegen der implizierten Speicherung in Z geschieht tatsächlich folgendes:
nj^ + Z—^Z H1 + 0-»Z ,
n2 + Z -» Z n2 + n.^ —»Z
n- + Z
309832/0843
Arithmetische Ausdrücke können mit Registerbezeichnungen
an Stelle von tatsächlichen Zahlen geschrieben werden. Wenn der Ausdruck ausgeführt wird, werden die gerade in
diesen Registern gespeicherten Werte automatisch für die .Registerbezeichnungen substituiert, um den Ausdruck auszuwerten.
Wenn der Benutzer beispielsweise die folgenden SpeicherZuweisungen gemacht hat:
12.6 6
19
ist die Tastenfolge . ' ·
ist die Tastenfolge . ' ·
A + R ( ) 1 2 - X EXECUTE .
äquivalent mit der Tastenfolge
12.6+19-6 EXECUTE
Andere in diesen Registern gespeicherte Werte ergeben für
diesen Ausdruck selbstverständlich andere Ergebnisse.
Gemäß folgendem Beispiel:
3 * 1 2 . 6 + 4 - 6 EXECUTE
können Zahlen und Registerbezeichnungen in einem Ausdruck auch gemischt werden.
in | A |
in | X |
in | R12 |
309832/0843
Fest- und Gleitkomma-Zahlen
Zahlen können entweder in Festkomma- oder Gleitkomma-Darstellung
in das Sichtgerät eingetastet und dort angezeigt werden. In Festkomma-Darstellung erscheint die Zahl
in dem Sichtgerät wie sie üblicherweise geschrieben wird,
und zwar mit richtig angeordnetem Komma (allerdings wegen der amerikanischen Schreibweise als Dezimalpunkt dargestellt)
Gleitkomma-Zahlen werden so dargestellt, daß der Dezimalpunkt auf die erste Stelle folgt (wobei führende Nuinlen unberücksichtigt
bleiben) und der erforderliche Faktor durch einen Exponenten angegeben wird. Der Exponent, eine positive
oder negative Potenz der Grundzahl zehn, gibt die Richtung und die Anzahl der Stellen an, in welcher bzw. um welche
der Dezimalpunkt verschoben werden müßte, um die Zahl als Festkomma-Zahl darzustellen. Der Exponent kann in dem Rechner
eine ganze Zahl in dem Bereich von -99 bis +99 sein. Das Folgende sind Beispiele von Festkomma- und Gleitkomma-Darstellung:
Festkomma Gleitkomma 1234.5 = 1.2345 X 103 0.0012345 « 1.2345 X 10~3 (Exponent)
1.2345 = 1.2345 X 10°
Die Taste FIXED N (Fest N) wählt die Festkomma-Darstellung für die anzuzeigenden Ergebnisse aus. Der Buchstabe N gibt
dabei an, daß nach Betätigung dieser Taste eine der Zifferntasten (0 bis 9) gedrückt werden muß, um die Anzahl der
309832/0843
rechts vom Komma darzustellenden Stellen auszuwählen.
Die Taste FLOAT N (Gleit N) arbeitet in der gleichen
Weise wie die Taste FIXED N, nur daß jetzt eine Gleitkomma-Darstellung
ausgewählt wird, wobei N die erforderliche Potenz von zehn angibt. (Wenn der Rechner eingeschaltet
wird, ist automatisch FLOAT 9 eingestellt.) Beispielsweise wird die Zahl 123.456789 in der Darstellung FLOAT 9
dargestellt als 1.234567890E02; Der Buchstabe E in der Anzeige gibt an, daß die nächsten beiden Stellen den Exponenten
darstellen. Wenn der Exponent negativ ist, folgt dem E ein Minuszeichen:
Tastenfolge ■ Anzeige
.001234. EXECUTE 1.234000000E-03
Es können nicht mehr als zehn geltende Stellen' dargestellt werden. Wenn daher eine Zahl zu groß wird, um richtig als
Festkomma-Zahl dargestellt zu werden, wird sie automatisch als Gleitkomma-Zahl angezeigt. Wenn die Zahl zu klein wird,
werden nur Nullen angezeigt, aber die Zahl kann dennoch betrachtet werden, wenn dann Gleitkomma-Darstellung gewählt
wird.
Die Taste ENTER EXPONENT (Exponenteneingabe) wird dazu benutzt, den Exponenten E zu bestimmen, wenn Zahlen in Gleitkomma-Darstellung
eingetastet werden, wie im folgenden dargestellt:
309832/0843
Tastenfolge ^ Anzeige
FLOAT N 4 EXECUTE
2.56 ENTER 2 EXECUTE 2.5600E 02
EXP
4.7 3 ENTER - 2 EXECUTE 4.7300E-02 EXP
Rechenbereich
, -gg , Der Bereich des Rechners geht von ZIlO bis Z. 9.999999999
χ 10 . Wenn dieser Bereich während einer Rechnung überschritten
wird, erscheint auf dem Sichtgerät die diagnostische Bemerkung NOTE 10. Rechnungen, die normalerweise eine
Null ergeben, wie die Subtraktion einer Zahl von einer ihr gleichen Zahl, bewirken keine Bereichsüberschreitung.
Die Taste PRINT (Drucken) wird dazu benutzt, sowohl numerische Werte als auch alpha-numerische Nachrichten auszudrucken,
wobei die Form des Abdruckes in der gleichen Weise durch die Tasten FIXED N und FLOAT N geändert wird, wie
beim Sichtgerät. Dies wird durch die folgenden Beispiele illustriert (bei denen angenommen wird, daß die Tasten
FIXED N, 2 und EXECUTE gedrückt wurden, um die Form des Ausdruckes festzulegen):
pruckoperation Tastenfolqe Abdruck
pruckoperation Tastenfolqe Abdruck
Zahl PRINT 12 3 EXECUTE 123.00
Rechenresultat PRINT 6 + 8 /2 EXECUTE 10.00 Speicherregister- PRINT A EXECUTE (Inhalt von Λ)
inhalt ·
309832 /08 A3
OJ
Zum Ausdrucken einer alpha^numerisehen Nachricht muß zu
Beginn und am Ende der Nachricht die Anführungs"Taste (")
betätigt werden (das Anführungszeichen wird jedoch nicht
ausgedruckt),. wie in dem folgenden Beispiel dargestellt:
Tastenfolge PRINT " MESS A G-E SPACE NO . 2 " EXECUTE
Abdruck MESSAGE NO.. 2
In jeder Zeile einer Nachricht können höchstens 16 Zeichen
(einschließlich der Zwischenräume) gedruckt werden und
jede Zeile muß in Anführungszeichen eingeschlossen werden.
Wenn die Zeilen auf ein und denselben Befehl PRINT folgen,
müssen sie durch Komma voneinander getrennt werden, wie folgt ' '
PRINT " " , " *n EXECUTE
Hierdurch werden zwei Zeilen ausgedruckt. Wenn Nachrichten
und numerische Werte gemischt ausgedruckt werden sollen, müssen sie durch ein Komma voneinander getrennt werden,
wie in dem folgenden Beispiel dargestellt, in welchem angenommen
wird, daß in dem Α-Register die'Zahl 456 gespeichert
ist:
PRINT " A= " , A EXECUTE A=456.00
Die Taste SPACE N (spationieren) bewirkt, wenn sie von
einer oder mehreren Zifferntasten gefolgt wird, Vielehe
eine der Zahlen O bis 15 angeben, daß der Drucker in senk-
309832/0843
rechter Richtung spationiert (wobei die angegebene Zahl die Anzahl der Zeilenschaltungen bestimmt). Dies wird
durch das folgende Beispiel illustriert:
PRINT "DAYS" EXECUTE DAYS
SPACE N 2 EXECUTE
PRINT 4 EXECUTE 4.00
Die meisten Tasten bewirken, wenn sie innerhalb einer
Nachricht verwendet werden, den Abdruck des Zeichens, das auf der Taste angegeben ist. Die folgenden Tasten bilden
jedoch Ausnahmen:
1. SPACE druckt einen Zwischenraum
2. GO TO druckt q)
' 3. R( ) druckt :
' 3. R( ) druckt :
4. STOP · druckt 1
5. ENTER druckt t
EXP
EXP
Die folgenden Tasten können entweder in einer Nachricht nicht benutzt werden oder sie bewirken den Abdruck eines
sinnlosen Zeichens:
1. Alle Halbtasten an der Oberseite des Tastenfeldes und die vier Leertasten im linken Tastenblock.
2. Die Tasten EXECUTE, RUN PROGRAM und STORE.
3. Die Tasten JUMP, END, IF, GO TO/SUB, FLAG N, RETURN und SET/CLEAR FLAG N.
309832/0843
Programme
Ein Programm ermöglicht es dem Rechner, die Tasten-Anweisungen automatisch auszuführen, die zur Lösung eines
bestimmten Problemes erforderlich sind. Zuerst muß das Programm in den Speicher des Rechners geladen werden, um
dem Rechner anzugeben, welche Tastenfolgen benötigt werden und in welcher Reihenfolge die Anweisungen ausgeführt werden
sollen. Wenn ein Programm geladen ist, bewahrt der Rechner dieses Programm bis ein neues Programm an seine
Stelle gebracht oder der Rechner abgeschaltet wird. Ein häufig benötigtes Programm braucht nicht jedesmal neu eingetastet
zu werden, denn ein gespeichertes Programm kann auf Magnetkarten aufgezeichnet werden. Solche aufgezeichneten
Programme können dann jederzeit später neu in den Rechner eingeladen werden. Wenn ein Programm geladen ist, wird es
in den Anfangszustand gebracht und sodann durch Betätigung
der Taste RUN PROGRAM (Programmablauf) seine Ausführung begonnen.
Ein vollständiges Programm besteht aus Programminformations-Zeilen,von
denen jede über das Tastenfeld einzeln in den Speicher des Rechners geladen werden kann, indem nach Beendigung
der Zeile die Taste STORE (Speichern) betätigt wird. Das Zeilenend-Symbol f- wird automatisch am Ende jeder
Zeile angezeigt, nachdem diese Zeile abgespeichert worden ist. Ein Programmzeilen-Zähler verfolgt laufend, welche
Zeile eines Programmes gerade ausgeführt wird oder ausgeführt oder abgespeichert werden soll. Vor dem Abspeichern
309832/0843
einer Zeile in den Speicher des Rechners kann sie mit Hilfe der Tasten BACK, FORWARD, CLEAR, DELETE und die in INSERT
ediert, d.h. in die der Dar Stellungsform geändert werden. Nachdem alle Zeilen eines Programmes abgespeichert sind,
können einzelne Zeilen zum Edieren oder für andere Zwecke wieder in das Sichtgerät zurückgerufen werden. Ein solcher
Rückruf wird dadurch bewirkt, daß nacheinander die Tasten CLEAR und GO TO und daran anschließend die Zifferntasten
betätigt werden, welche die Nummer der Zeile angeben, welche zurückgerufen v/erden soll, und schließlich die Taste RECALL
gedrückt wird. Zum Wiederabspeichern der rückgerufenen Zeile oder deren edierte Fassung braucht nur die Taste
STORE betätigt zu werden.
Zum dauernden oder vorübergehenden Speichern von Programmen
und Daten wird eine Magnetkarte 16 benutzt, wie sie in Fig. 1 dargestellt ist. Beide Seiten der Karte können unabhängig
voneinander zum Speichern von Daten oder Programmen verwendet werden, es können jedoch auf der gleichen Seite
einer Karte keine Daten und Programme gemischt werden. Wenn eine Kartenseite aufgezeichnet worden ist, kann sie dadurch
gegen ein versehentliches Löschen geschützt werden, das ein entsprechender Sicherheits-Abriß von der Karte abgetrennt
wird. Die Aufzeichnung auf einer so geschützten Kartenseite kann nicht mehr verändert werden.
309832/0843
Ein in den Speicher geladenes Programm· kann dadurch auf
einer Magnetkarte aufgezeichnet werden, daß folgende Tasten gedrückt werden:
END EXECUTE RECORD EXECUTE
Hierdurch läuft der Motor des Kartenlesers an und es kann jetzt eine ungeschützte Karte in den Kartenleser eingeführt
werden. Das Programm kann aus der Karte wieder in den Speicher zurückgeladen werden, indem nacheinander die Tasten
ERASE (zum Löschen des Speichers), END, EXECUTE, LOAD und EXECUTE gedruckt werden und daran anschließend die Karte in
den Kartenleser eingeführt wird.
Obwohl die Zeilen eines Programmes in dem gleichen Speicher untergebracht werden wie die Daten, steht die Länge der
einzelnen Zeilen in keinem Zusammenhang mit der Länge eines
Registers. Der Rechner verwendet einfach so viele Register, wie zur Aufnahme einer bestimmten Zeile erforderlich ist.
Die Länge einer Zeile wird durch den Programmierer bestimmt und hängt von den Anforderungen des Programmes ab. Die Zeilenlänge
ist jedoch in der gleichen Weise durch den Rechner begrenzt, wie ein einzelner Ausdruck. Wenn eine Zeile zu lang
ist, erscheint entweder vor oder nach Betätigung der Taste STORE die diagnostische Bemerkung NOTE 09. Wenn diese Bemerkung
auf dem Sichtgerät angezeigt wird, hat die Bedienungsperson die Taste CLEAR zu betätigen und sodann eine vollständige·-
aber kürzere - neue Zeile einzutasten.
309832/0843
Die Zeilennununern werden durch den Rechner automatisch
in strenger numerischer Reihenfolge zugeteilt, wobei mit Zeile 0 begonnen wird. Die Bedienungsperson muß daher
wissen, welche Zeilennummer jeweils zugeteilt wird, wenn in seinem Programm GO TO-Anweisungen enthalten sind. Die
Zeilennummern bilden keinen Teil des Programmes, da sie automatisch verändert werden, wenn das Programm an eine
andere Stelle des Speichers übertragen wird. Es sei beispielsweise
angenommen, daß ein Programm (Mr. 1) zehn Zeilen umfaßt (Zeilen 0 bis 9) und bereits in dem Speicher
enthalten ist. Wenn nun ein zweites Programm (Nr. 2) unterhalb Programm Nr. 1 geladen werden soll, dann wird die
erste Zeile des Programms Nr. 2 die Zeile 10, wohingegen, wenn das Programm Nr. 2 das einzige Programm in dem Speicher
gewesen wäre, seine erste Zeile die Zeile 0 gewesen wäre. Natürlich müssen durch den Programmierer alle GO TO-Anweisungen
geändert werden, um solche Zeilennummer-Änderungen zu berücksichtigen.
Eine Zeile kann eine oder mehrere Aussagen enthalten, die jeweils durch Semikolon abzutrennen sind. Die tatsächliche
Anzahl der Aussagen in einer Zeile ist für gewöhnlich ohne Bedeutung, weil es wichtiger ist, die Aussagen in der
richtigen Reihenfolge als in einer bestimmten Zeile zu haben, Die Lage einer Aussage wird jedoch bedeutsam, wenn eine
Zeile eine IF-Aussage enthält oder wenn eine Verzweigung ge-
309832/0843
macht werden soll. Im ersten Fall müssen die bedingt auszuführenden
Aussagen in der gleichen Zeile enthalten sein, wie die IF-Aussage und müssen dieser folgen. Im letzteren
Fall wird eine Verzweigung stets aum Anfang einer Zeile ge-*
macht. Die erste nach einer Verzweigung auszuführende Aussage muß daher die erste Aussage der Zeile sein, zu welcher
die Verzweigung gemacht wird. Eine Zeile sollte nicht zuviel
Aussagen enthalten, da eine kurze Zeile leichter wieder zu ändern ist als eine lange Zeile.
Dateneingabe .
Programmaussagen, die von der Betätigung der Taste ENTER,
herrühren, werden dazu benutzt, das Programm während seiner Ausführung anzuhalten, so daß die Bedienungsperson Daten
eintasten kann. Die einfachste Aussage enthält nur die Bezeichnung
eines Registers; diese wird angezeigt, wenn'die Programmausführung angehalten wird. Die während des Halts
eingetasteten Daten werden in dem bezeichneten Register abgespeichert,
wenn anschließend die Taste RUN PROGRAM betätigt wird. Die Tastenfolge ENT A bewirkt z.B. daß die eingetasteten
Daten in dem Α-Register abgespeichert werden. Eine solche ENTER-Aussage kann mehrere Registerbezeichnungen enthalten,
die durch Komma voneinander getrennt werden müssen. Das Programm wird dann nacheinander für jedes Register anhalten.
Beispielsweise ist die Folge ENT A, R13, X; gleichbedeutend mit den drei Aussagen ENT A; ENT R13; ENT X;. Der Registerbezeichnung
kann eine Kennzeichnung vorangestellt werden (die von einem Komma gefolgt wird). In diesem Fall wird an .
309832/0843
Stelle der Registerbezeichnung die Kennzeichnung angezeigt,
wenn der Programmhalt auftritt. Zum Beispiel wird auf die Folge ENT "A=?",A; die Kennzeichnung A=? angezeigt und die
darauffolgende Dateneingabe in das A-Register eingespeichert.
Programmzeilen werden normalerweise in ihrer numerischen Reihenfolge ausgeführt. Einige Aussagen bewirken jedoch eine
Abänderung dieser Ausführungsfolge. Bei einer solchen Verzweigung geht das Programm nicht zu der nächstfolgenden
Zeile, sondern verzweigt sich zu einer anderen vorgegebenen Zeile und führt dort die Programmausführung weiter. Es gibt
zwei Arten von Verzweigungen, die bedingten und die unbedingten
Verzweigungen. Unbedingte Verzweigungen werden durch die Tasten GO TO, JUMP und GO TO SUB ausgelöst und bedingte
Verzweigungen werden durch die Taste IF bewirkt.
Bs gibt drei Arten unbedingter Verzweigungen mit der Anweisung
GO TO. Bei der ersten Art, dem absoluten GO TO, besitzen die Aussagen die Form GO TO N, wobei N eine ganze
Zahl ist, die sich auf eine bestimmte Prograaunzeile bezieht.
Die »weite Art ist das relative GO TO. Hier besitzt die Aussage die Form GO TO + N oder GO TO - N, wobei N eine ganze
Zahl lit. Diese Aussage gibt die Anweisung, N Programmzeilen
vorwärts oder rückwärts zu schreiten. Die dritte Art ist das GO TO mit Kennzeichnung. Bei dieser Art besitzen die
Aussagen die Form GO TO "LABEL", wobei LABEL eine ganz be-
309832/0843
stimmte alpha-numerische Zeichengruppe ist und in Anführungszeichen
eingeschlossen werden muß. Die Anzahl der Zeichen in der Kennzeichnung ist praktisch unbegrenzt, jedoch wertet
der Rechner nur die letzten vier Zeichen einer Kennzeichnung aus. Wenn eine solche GO TO "LABEL"-Anweisung ausgeführt wird,
verzweigt das Programm zu einer Programmzeile mit dieser Kennzeichnung als erste Aussage dieser Zeile. Es werden jedoch
nur die letzten vier Zeichen der ursprünglichen Kennzeichnung berücksichtigt. Wenn zwei Programmzeilen dieselbe
Kennzeichnung aufweisen, verzweigt das Programm stets zu der
ersten solchen Zeile. '■
In einem Programm bewirkt eine GO TO-Anweisung, daß die'Program-Ausführung
bei der Zeile fortfährt, deren Zeilennummer angegeben· ist. Wenn eine solche GO TO-Anweisung vom Tastenfeld aus eingegeben
und von der Taste RUN PROGRAM gefolgt wird, bewirkt die GO TO-Anweisung, daß die Programmausführung bei der Zeile
beginnt, deren Nummer angegeben ist. Wenn jedoch eine GO TO- ' Anweisung vom Tastenfeld aus eingegeben und von der Taste
EXECUTE gefolgt wird, läßt die GO TO-Anweisung den Rechner
zu der angegebenen Zeile gehen, aber nicht die Programmausführung beginnen. Das folgende Verhalten hängt dann von der
nächsten betätigten Taste ab. Eine Zeilennummer ist nur dann
1 . i
gültig, wenn ein gerade gespeichertes Programm eine derartig bezeichnete Zeile besitzt, oder wenn sie die nächst höhere
Nummer nach derjenigen der letzten gespeicherten Zeile ist. Alle anderen Zeilennummern sind ungültig und bewirken, wenn . ·
309832/0843
sie in einer GO TO-Anweisung verwendet werden die Anzeige der diagnostischen Bemerkung NOTE 08.
Die Taste JUMP ermöglicht eine relative Verzweigung. Diese
Anweisung kannf anders als die GO TO-Anweisung, eine numerische
Konstante, eine Registerbezeichnung oder jeden zulässigen Rechnerausdruck als Parameter besitzen. Die Anweisung JUMP-6
bewirkt, daß das Programm sechs Zeilen zurückgeht. Bei JUMP A springt das Programm um soviele Zeilen, wie der ganzzahlige
Wert von A angibt, d.h. wenn A den Wert 6.23 enthält, um sechs Zeilen. Wenn A den Wert 6.23 enthält und B den Wert 2,
dann ist die Anweisung JUMP (A + B) zulässig und ein Befehl, acht Zeilen in dem Programm zu überspringen.
Es ist häufig erwünscht, die gleichen Operationen an verschiedenen
Stellen eines Programmes auszuführen. Man kann natürlich einfach eine Gruppe von Programmzeilen wiederholen,
aber dies kann zeitraubend und fehleranfällig sein. Vor allem aber wird durch eine unnötige Wiederholung von Programmzeilen
Speicherplatz vergeudet. Der Rechner hat die Möglichkeit, einen Satz Programmzeilen einmal zu speichern und ihn dann
vom Programm her beliebig oft aufzurufen. Solch ein Satz Programmzeilen wird Unterprogramm genannt.
Wenn ein Unterprogramm aufgestellt und im Speicher untergebracht ist, kann innerhalb eines Programmes auf das Unterprogramm
verzweigt werden. Dieser Vorgang wird Unterprogramm-
309832/0843
Aufruf genannt. Das Programm, welches das Unterprogramm aufruftf
wird für gewöhnlich als Hauptprogramm oder als Rufprogramm
bezeichnet. Wenn die Unterprogramm-Ausführung beendet ist, wird zu dem Rufprogramm zurückverzweigt und die Ausführung
des Hauptprogrammes an der Stelle wieder aufgenommen, an der sie durch den Unterprogramm-Aufruf unterbrochen worden
war. Die Verzweigung von dem Unterprogramm zu dem Hauptprogrararri
wird Rückkehr genannt. Es ist zu beachten, daß die Rückkehr zu der Zeile N + 1 erfolgt, wenn das Unterprogramm
in Zeile N aufgerufen worden ist.
Die Verzweigung zu einem Unterprogramm wird durch die Anweisung GO TO SUB bewirkt. Diese Anweisung wirkt fast genauso
wie GO TO und kann für eine Verzweigung zu einer absoluten, 'relativen oder durch eine Kennzeichnung bestimmten Adresse
erfolgen. Der Unterschied zwischen den Anweisungen GO T.O und GO TO SUB besteht darin, daß der Rechner die Zeilennummer
für die Rückkehradresse abspeichert, wenn die Anweisung GO
TO SUB für die Verzweigung verwendet wird. Für die Rückkehr-Verzweigung wird am Ende des Unterprogr amines die Anweisung
RETURN gespeichert. Der Rechner liefert dann selbst die Adresse für die Rückkehr-Verzweigung.
Die Anweisung IF ermöglicht die besonders leistungsfähige
bedingte Verzweigung, die es dem Rechner gestattet, zu entscheiden,
ob er die folgenden Anweisungen in der gleichen Zeile wie diese IF-Anweisung ausführt oder nicht. Die An-
t.
309832/0843
Weisung IF ist noch durch die jeweilige Bedingung zu ergänzen, z.B. zur Anweisung IF A-B;. Die Zeile, in welcher
eine IF-Anweisung auftritt, kann dann noch mit weiteren
Anweisungen gefüllt werden. Die Arbeitsweise ist dann folgendermaßen. Zuerst wird die Bedingung, welche dem IF folgt,
ausgewertet, um zu überprüfen, ob diese Bedingung· erfüllt ist. Wenn dies der Fall ist, wird die auf die IF-Anweisung
folgende Anv/eisung ausgeführt. Wenn die Bedingung nicht erfüllt ist, fällt die Programmausführung bei der folgenden
Zeile fort. In dem angegebenen Beispiel wird zuerst A-B berechnet, um festzustellen, ob der Inhalt des A-Registers
gleich demjenigen des B-Registers ist. Wenn dies der Fall ist, wird der Rest der Zeile ausgeführt. Wenn dies jedoch nicht
zutrifft, wird der Rest der Zeile nicht beachtet und die Programmausführung bei der nächsten Zeile forgesetzt.
Die Bedingungen in einer IF-Anweisung verwenden stets eine der folgenden Tasten, um das Verhältnis zweier Werte, Registerinhalte,
arithmetische Ausdrücke oder Marken zu prüfen:
1. > (größer als)
2. is (kleiner als oder gleich)
3. = (gleich)
4. φ (ungleich)
Wenn das Verhältnis so ist, wie auf der Taste angegeben, wird die Antwort "richtig" (Eins) gegeben, anderenfalls
die Antwort "falsch" (Null). Wenn beispielsweise der Inhalt von A und B gleich 2 ist, speichert
309832/0843
A = B —> C 1 Jfiach C
A φ B —>C O nach C
A + B = A -> C O nach C
Hierfür kann wieder jeder beliebige Ausdruck verwendet
werden. Der Ausdruck A + B (A = B) + AB (A ^ B) + (A + B + C) (A >
B) ~> C speichert beispielsweise 2 + 2(1) 4-4
(1) + 6(0), d.h. 8 nach C. . .
Die Taste STOP hält die Prograiranausführung an, wenn sie als
Anweisung in einem Programm verwendet oder während des Programmablauf es -betätigt wird. Sie sollte nur benutzt werden, !
wenn ein Programm beseitigt werden soll, etwa weil es nicht mehr benötigt wird, oder weil die Programmaüsführung noch
einmal von Anfang an begonnen, werden soll.
Die Taste END dient dem doppelten Zweck, die Programmaus-
■ - i führung anzuhalten und den Rechner in seinen Anfangszustand . S
zu bringen, um die Programmausführung bei Zeile 0 zu be- I ginnen. · i
i Die Marken
Der Rechner stellt dem Benutzer 16 Marken zur Verfügung.
Sie können durch die Taste FLAG N (Marke N) ausgewählt werden, wenn Zifferntasten folgen, die eine der Marken
0 bis 15 kennzeichnen. Die Anweisung FLAG N 4 wählt beispielsweise die Marke 4 aus. Für gewöhnlich werden Marken
'309832/0843
als Teil einer IF-Anweisung verwendet, um es dem Benutzer
zu ermöglichen/ einen speziellen Zustand zu definieren.
Die in dem Rechner zur Beschreibung der Marken verwendete Schreibweise ist recht einfach! Wenn eine Marke gesetzt,
also gewissermaßen eine Signalfahne gehoben wird, besitzt die Marke den Wert 1 und wenn die Marke gelöscht, d.h. die
Signalfahne gesenkt wird, den Wert 0.
Die Marken werden mit Hilfe der Taste SET/CLEAR FLAG VN gesetzt
und gelöscht. Diese Taste wird zum Setzen einer Marke einmal und zum Löschen dieser Marke zweimal betätigt. Beispielsweise
bewirkt die einmalige Betätigung der Taste SET/ CLEAR FLAG N gefolgt von den Zifferntasten 1 und 2 das Setzen
der Marke 12.- In ähnlicher Weise lös-cht eine doppelte Betätigung
der Taste des SET/CLEAR FLAG N gefolgt von der Zifferntaste 7 die Marke 7. Eine einmal gesetzte Marke
bleibt solange gesetzt, bis sie ausdrücklich gelöscht wird. Beim Abschalten des Rechners, bei Betätigung der Taste
ERASE oder bei Ausführung einer END-Anweisung werden jedoch alle Marken automatisch gelöscht.
Solange kein Programm ausgeführt wird, kann der Zustand jeder Marke dadurch untersucht werden, daß die Taste FLAG
N gefolgt von einer Zifferntaste, welche die fragliche Marke bezeichnet, sowie der Taste EXECUTE betätigt wird.
3 09832/0843
Es wird sodann der Zustand der Marke, v*d.h. der zugehörige
Wert, angezeigt. Eine solche Prüfung ändert den Zustand der Marke nicht.
Zusätzlich zu ihrer normalen Verwendung dienen die Marken 0 und 13 einem besonderen .Zweck. Die Marke 0 kann vom Tastenfeld
aus gesetzt werden, während ein Programm bereits lauft, und zwar durch Betätigen der Taste SET/CLEAR FLAG N. Die
Marke 13 wird automatisch gesetzt, wenn das Programm für eine ENTER-Anweisung anhält und sodann die Taste RUN PROGRAM
betätigt wird, ohne daß Daten eingetastet werden.
Die Taste LIST (Auflisten) erleichtert das Auflisten eines intern gespeicherten Programmes mit Hilfe des Ausgabedrucker^
des Rechners. Die Auflistung enthält die Zeilennummer jeder Zeile zusammen mit einem alpha-numerischen Merkzeichen dieser
Zeile. Am Ende der. Auflistung wird dann eine Angabe über die Anzahl der noch verbleibenden Speicherregister ausgedruckt.
· ■
Eine Programmauflistung wird dadurch bewirkt, daß zuerst
der Programmzeilenzähler auf die Zeile eingestellt wird, mit der die Auflistung beginnen soll. Dies kann dadurch erfolgen,
daß die Taste GO TO gefolgt von Zifferntasten für die Zeilennummer und.der Taste EXECUTE betätigt wird. Anschließend
wird die Taste LIST betätigt, um die Auflistung
309832/0843
zu beginnen, welche dann mit der letzten gespeicherten Programmzeile endet.
Ein Verfolge-Modus des Rechners ermöglicht es dem Benutzer,
ein gedrucktes Betriebsprotokoll zu erlangen. Die Form dieses gedruckten Protokolls ist von der Art der durchgeführten
Operationen abhängig.
Der Rechner kann durch die Betätigung der Tasten TRACE und EXECUTE oder durch Programmausführung der Anweisung TRACE
in den Verfolge-Modus versetzt werden. In seinen Normalzustand kann er dann zurückversetzt werden durch Betätigen der
Tasten NORMAL und EXECUTE oder durch Pr ograrnmaus führung der Anweisung NORMAL. Beim Einschalten wird der Rechner automatisch
in seinen Normalzustand versetzt.
Im Verfolge-Modus druckt der Rechner eine Darstellung jeder über das Tastenfeld ausgeführten Zeile und das Ergebnis
solcher ausgeführten Anweisungen aus, welche einen Betrag erzeugen, der als Resultat betrachtet wird. Einige Tastenanweisungen,
wie CLEAR, werden nicht ausgedruckt.
Das folgende Beispiel veranschaulicht den erhaltenen Abdruck, wenn der Rechner in seinem Verfolge-Modus arbeitet:
309832/0843
0.00 w
0.1
Li 10.<
2.00 20.00 ERT11A=",A, "B=",
A= 2.00
B= 2.00
Wenn ein Programm in dem Verfolge-Modus abläuft, druckt der Rechner die Zeilennummer jeder ausgeführten·Zeile und
darunter alle Werte, die durch diese Zeile in Register eingespeichert werden. Das Ablaufenlassen eines Programmes in
dem Verfolge-Modus kann sehr nützlich bei der Beseitigung von Programmfehlern sein, wenn die bei der Ausführung des
zu prüfenden Programmes gespeicherten Zahlen untersucht
werden. Ein Programm kann ohne Änderungen dadurch in einfacher Weise in dem Verfolge-Modus ablaufen, das nacheinander
die Tasten TRACE und EXECUTE betätigt werden, bevor die Ausführung des Programmes begonnen wird. Weiterhin kann
der Rechner während der Ausführung eines Programmes, welches leine Anweisung NORMAL enthält, dadurch in den Verfolge-Modus
gebracht, werden, daß einfach die Taste TRACE gedruckt wird.
309 832/0843
ι I . !, I ' ι I ',1
Eft leb nicht erforderlich, vorher die JProgrammausführung
anzuhalten.
Die folgenden diagnostischen Bemerkungen und zugehörigen
Erläuterungen werden angezeigt, wenn bestimmte Programmoder Bedienungsfehler von dem Rechner festgestellt werden.
NOTE 01: Im Zusammenhang mit den vorhergehenden Tastenanschlägen ist die zuletzt betätigte Taste für den
Rechner unverständlich. Beispiel: Ein Multiplikationsoperator im Anschluß an die Taste R( ). Die
Bemerkung NOTE 01 1st die häufigste Bemerkung und wird für gewöhnlich sofort angezeigt, wenn die
falsche Taste betätigt wird.
NOTE 02: Versuch, einen Befehl auszuführen, der von einem unzulässigen Wert gefolgt wird. Beispiel: Taste
FIX N gefolgt von einer Zahl größer als 9. Die Quadratwurzel ist ein Spezialfall:
a) /tr bewirkt NOTE 01, wenn minus eingegeben
wird,
b) y/ (-4) oder νΆ (wobei A eine negative Zahl
enthält) bewirkt bei der Ausführung NOTE 02.
NOTE 03: Die Anweisung hat eine überzählige linksseitige
Klammer oder eine fehlende rechtsseitige Klammer
NOTE 04: Die Anweisung hat eine überzählige rechtsseitige
Klammer oder eine fehlende linksseitige Klammer
* 309832/0843
- ιοί ■* -' ; ^s , r-i·,. ν;Λ
C Ι,- 0 -- .J . q ■ ' i
0 ') $t-
NOTE 05: a) Versuch der Verwendung eines nichtestiatiöJieiiv* ; ■
den oder nicht zur Verfügung stehendenR-1Retjlslers
als Wert in einem Ausdruck»
b) Versuch eine Marke mit einer Zahl gröBer als
15 zu bezeichnen. . ; ;
NOTE 06: a) Versuch, in ein nicht existierendes odör ein
nicht zur Verfügung stehendes R-Register eirtau*
speichern. ■ , *
b) Versuch, eine Zahl einzugeben» derenExponent
:
ψ
einen Absolutwert größer als 99 besitzt. NOTE 07: Versuch, ein RET auszuführenf 4sii» nicht ein passen4"
des GSB vorangegangen ist. ■
NOTE 08: Versuch, ein GTO auszuführeni das .von einer ungülti* gen Zeilennummer oder Kennzeichnung gefolgt wird.
NOTE 08: Versuch, ein GTO auszuführeni das .von einer ungülti* gen Zeilennummer oder Kennzeichnung gefolgt wird.
Trifft ebenfalls auf GSB und JMP zu. NOTE 09: a) Schreiben, Ausführen und Speichern eines zu
langen Ausdruckes oder einer au langen Programm-*
b) Zu starke Verschachtelung von Unterprogrammen.
NOTE 10: Zwischen- oder Endergebnis einer Rechnung über·*
schreitet den Bereich des Rechners· NOTE 11: a) Betätigung einer Halbtaste in den drei linken
Tastenblöcken .
1, wenn sie nicht Teil eines Anführungsfeldes ist
(z.B. PRT"...") und v ■;■:■,
2. wenn sie nicht durch eine ROM-Steckeinheit definiert ist
309832/0843
> } t ι t
1 ' ι" · ' Ί
ι
b) Versuch, eine ENTER-Anweisung Über das Tastenfeld
und nicht über daa Programm auszuführen.
NOTB 121 a) Überschreitung des Speicherbereiches beim Einspeichern
einer Programmzeile oder beim Laden eines Programmes oder von Daten aus einer Magnetkarte.
b) Kein GTO oder GSB vor LOD, wenn unter der
Steuerung eines vorhandenen Programmes ein Programm aus einer Magnetkarte geladen wird.
b) Kein GTO oder GSB vor LOD, wenn unter der
Steuerung eines vorhandenen Programmes ein Programm aus einer Magnetkarte geladen wird.
NOTE 13s Versuch, auf einer geschützten Magnetkarte aufzuzeichnen.
NOTE 141 Beim Aufzeichnen auf oder Lesen von Magnetkarten
wird eine weitere Kartenseite benötigt. Taste EXECUTE
betätigen und nächste Kartenseite einfügen.
NOTE 15: Wenn diese Bemerkung auftritt, nachdem ein Programm
aus einer Magnetkarte geladen worden ist, zeigt sie an, daß der Rechner nicht die gleichen ROM-Speicher
(in den gleichen Aufnahmeschlitzen) aufweist, wie
beim Aufzeichnen der Karte. Dies beeinflußt den Programmablauf so lange nicht, als die für das vorliegende Programm benötigten ROM-Speicher sich in den
gleichen Aufnahmeschlitzen befinden. Taste CLEAR
betätigen und das Programm in der üblictfen Weise ablaufen lassen. ·
beim Aufzeichnen der Karte. Dies beeinflußt den Programmablauf so lange nicht, als die für das vorliegende Programm benötigten ROM-Speicher sich in den
gleichen Aufnahmeschlitzen befinden. Taste CLEAR
betätigen und das Programm in der üblictfen Weise ablaufen lassen. ·
Aufzeichnungen ohne eingesetzte ROM-Speicher bewir-
ken keine Bemerkung NOTE 15, wenn sie in Rechner
geladen werden, die solche ROM-Speicher aufweisen.
NOTE 16t Versucht 'den Drucker zu verwenden, wenn der Papierw ] vorrat erschöpft ist. Fortsetzung ohne Druckpapier:
NOTE 16t Versucht 'den Drucker zu verwenden, wenn der Papierw ] vorrat erschöpft ist. Fortsetzung ohne Druckpapier:
' 309832/08 A3
ι ■ < ι ; ί
* C
I 11
22Β2725
Wenn der Befehl PRINT vom Tastenfeld kam, Taste
CLEAR betätigen, wenn er vom £irogramm kam, Tasten
STOP und RUN. PROGRAM betätigen.
Die folgende Tabelle zeigt-die Symbole und Merkzeichen
für die Tasten des Rechners sowohl für die Verwendung innerhalb
als auch außerhalb eines Anführungsfeldes (einige Tasten haben unter diesen beiden Bedingungen verschiedene Symbole
oder Merkzeichen).
Symbole und Merkzeichen für die Tasten des Rechners
Taste | Anführungsfeld | ja ' | Taste | AnfÜhruhgsfeld | ia |
nein | 1 | nein | Uli | ||
1 | 1 | 2 | R( ) * | R | 1 S=SS |
2 | 2 | 3 | 's=== | -:= | |
3 | 3 | .4 | » t | ||
4 | 4 | • 5 | |||
.5 ' | 5 | 6 | 9 | ||
6 | 6 | 7 | GO TO | GTO/? | BEMER KUNG 2 |
7 | 7 | 8 | GO TO SUB |
GSB^ | BEMER KUNG 2 |
8 | 8 | 9 | RETURN | R E TP | |
9 | 9 | 0 | .•STOP | S. T P^ | BEMER KUNG 2 |
O | 0 | END | E N Oi> |
309832/084 3
Taste | I Anführun nein |
tgsfeld ja |
A | Taste ** | Anführungsfeld nein la |
BEMER KUNG 2 |
• | O | JUMP | J M Pb | BEMER KUNG 2 |
||
ENTER | E. | B | IF | I Fb | ||
+ | + ' 4 |
FLAG IM |
F L Gb | BEMER | ||
_. | _ | _ | SET | S F Gi? | KUNG 2 | |
CLEAR FLAG N |
BEMER KUNG 2 |
|||||
ft | ft J λ | SET SET :lear clear fLAG N FLAG N |
C F Gt) | BEMER KUNG 2 |
||
/ | / / | FIXED N | F X Db | BEMER KUNG 2 |
||
τΓ | ιΓ V" | FLOAT M | PLT6 | BEMER KUNG 2 |
||
ί | ( ( | ENTER | E N'T£ | • | ||
) | ) ) | DISPLAY | D S Pi) | BEMER KUNG 2 |
||
j | P R Tb | BEMER KUNG 2 |
||||
SPACE N | S P Cb | BEMER KUNG 2 |
||||
11 | η BEMER KUNG 1 |
NORMAL | N O Rb | BEMER- I KUNG 2 |
||
TRACE | TRCb | S | ||||
LOAD | L O Db BEMER KUNG 2 |
S | BEMER KUNG 3 |
T | ||
RECORD | R E C £ BEMER KUNG 2 |
t | BEMER KUNG 3 |
U | ||
A ι |
A | U | BEMER KUNG 3 |
V | ||
B | B | •' ν | BEMER KUNG 3 |
309832/0843
- X05 -
Ot t>
ί ο 0
Anführi nein |
mgsfeld ja |
Taste \ | 2202725 | ngsfald | Diese Tasten haben keine. Merkzeichen oder Syjnbole ; |
- · | -. ■■* | |
Tagte | C | c· | W | . AnlUhru neiji |
EXECUTE | |||
C | X | X | B | BEMER KUNG 3 |
-.-■ · | STORB | * tm | |
X | Y | Y | % | BEMER KUNG 3 |
"1 | RUN PROGRAM |
— | - '·* .- |
Y | Z | Z . | ' & | BEMER KUNG 3 |
ft ■ -■ | CLEAR | ·♦- | |
Z | BEMER KUNG 3 |
D | ■ | BEMBRf KÜNÖ 3 |
* | ERASE | . ■· - | |
d | BEMER— KUNG 3 |
E | 7 | BEMER— KUNG 3 |
BACK | - : | . -- . | |
β | BEMER KUNG 3 |
F | SPACE | 'BEMER KUNG 3 |
FORWARD | |||
f · | BEMER KUNG 3 |
G | BEMER KUNG 3 |
DELETE | ||||
g | BEMER KUNG 3 |
H | INSERT | — | ||||
H | BEMER KUNG 3 |
i | RECALL « |
|||||
I | BEMER KUNG 3 |
J | LIST | |||||
j | BEMER KUNG 3 |
K | ||||||
K | BEMER KUNG 3 |
|||||||
I» | BEMER KUNG 3 |
M: | ||||||
M | BEMER KUNG 3 |
N | ||||||
N | BEMER KUNG 3 |
0 | ||||||
0 | BEMER KUNG 3 |
P | ||||||
P | BEMER KUNG 3 |
Q | ||||||
• Q | BEMER KUNG 3 |
R | ||||||
R | ||||||||
309832/0843
X, Das Anführungszeichen (") tritt niemals innerhalb eines
Anführungsfeldes auf; es wird ausschließlich zu Beginn und am Ende eines Anführungsfeldes verwendet.
2. Diese Taste erzeugt ein Zeichen mit willkürlichem Muster. Zuweilen ändert sich dieses Muster abhängig von 'den verwendeten ROM~Speichern·
3 t Wenn diese Taste at Serhalb eines Anführungsfeldes verwendet
wird, tritt die Bemerkung NOTE i1 auf, sofern die Taste nicht durch eine ROM-Steckeinheit definiert ist» in diesem
Fall wird das Merkzeichen oder Symbol durch den ROM-Speicher bestimmt,
4. Das Zeichen 6 bedeutet Leerraum.
Die Mathematik-Steckeinheit stellt in dem Rechner zusätzliche mathematische Funktionen zu Verfügung. In Fig. 6 ist
die zugehörige Tastenfeld-Schablone dargestellt. Die zusätzlichen mathematischen Funktionen umfassen den natürlichen
und den gewöhnlichen Logarithmus, Exponentialfunktionen, trigonometrische und inverse-trigonometrische Funktionen
(in Grad, Bogenmaß oder Neugrad) und andere. Die, Verwendung dieser Funktionen erfordert keine speziellen Programmiertechniken.
Sobald die Steckeinheit eingesetzt ist, werden seine Funktionen ein Teil des Rechners in der gleichen Weise
wie beispielsweise die Quadratwurzel-Funktion ein Teil des Rechners ist.
309832/0843
- 107 -■ - .· : ■';..■",
( ι ■ <
ι ■ ,
Die Funktionen der Mathematia-Steckeinheit sind einfach
anzuwenden; in den meisten Fällen b.enötigen sie nur wenige zusätzliche Erläuterungen. Die Regeln und die Rangfolge*/ ' ·
die sich auf die bereits beschriebenen mathematischen Operationen bezieht, treffen auch auf die durch die Mathematik-Steckeinheit
zur Verfügung stehenden Operationen zu. Die im· folgenden angegebene Rangfolge entspricht genau der bereItB
gegebenen Beschreibung:
Erste: Funktionen
,, Exponentenerhebung
Minus mit einer Veränderlichen . . Implizierte Multiplikation
Explizierte Multiplikation und Division
Addition und Subtraktion und Plus mit einer Veränderlichen
Letzte: Ein Verhältnis betreffende Operatoren -
Einige Steckeinheiten verringern den Umfang des programmierbaren
Speichers, der dem Benutzer zur Verfügung steht, durch automatische Inanspruchnahme eines Teiles dieses Speichers
für ihren internen Gebrauch. Die Mathematik-Steckeinheit stellt keine solchen Anforderungen und beeinflußt nicht den
zur Verfügung stehenden Speicherplatz.
Die folgende Tabelle beschreibt alle Funktionen der Mathematik-Steckeinheit.
Wie aus der Tabelle ersichtlich, wird eine Vortaste (v) zur Neudefinierung bestimmter anderer
Tasten benutzt. Jeder neu zu definierenden Taste muß jedesmal die Vortaste vorangestellt werden, die Vortaste wirkt
30983 2/0843
nicht über eine größere Zeitspanne.
Wenn die Vortaste betätigt wird, erscheint in dem Sichtgerät ein Dreieck. Wenn die nächste Taste gedrückt wird/
wird das untere der beiden Merkzeichen dieser Taste an Stelle
des Dreieckes dargestellt (z.B. ASN wenn die Sinus-Taste betätigt wird). Das Dreieck kann nicht durch Betätigen der
Rücktaste BACK zurückgeholt werden. Das Merkzeichen für die beiden Tasten (die Vortaste und die folgende Taste) wird,
einmal erzeugt, so behandelt, als wäre es von einer einzigen Taste erzeugt worden.
Es ist zu beachten, daß das Argument und sein Vorzeichen in Klammern eingeschlossen werden muß, wenn das Argument
einer Funktion negativ ist.
SIN (-40) und nicht SIN -40
Die durch die Mathematik-Steckeinheit zur Verfügung gestellten Funktionen sind in der folgenden Tabelle zusammen mit
Angaben über die Syntax und einigen typischen Beispielen dargestellt. Die linke Seite der Tabelle befindet sich dabei
auf einer Seite und die rechte Hälfte der Tabelle auf der folgenden Seite.
309832/0843
Funktionsart
Funktion
Syntax
Merkzeichen = Leerraum
Tasten
natürl. log χ
In χ
log
Logarithmen
und inverse
Logarithmen
und inverse
Logarithmen
(. Menge) LN oder
frAus drück))
Mb
log;1 χ antiloge χ
κυρ
EXP
EXP
oder
(lAus druck»
(lAus druck»
ι· 11 D
gewöhnl.log.x x
(Menge) LOG oder
((Ausdruck)]
- LOG/?
logto χ
anti log ίο χ
anti log ίο χ
TNt
((Ausdruck))
TNt/)
UJ
'—--j
cm cm
Auswahl der Kreiseinheiten
TBL
(Menge) Wert = 1-Grad 2-Radian
3-Neugrad
Sin χ
sin χ
SIN
%ef
((Ausdruck))
((Ausdruck))
Kreisfunktionen und
inverse
Kreisfunktionen
inverse
Kreisfunktionen
sin"·1 x arc sin χ
ASN
(VAus druck))
Cosin χ cos χ
COS
<Menge> der
d
d
,,oder
((Ausdruck))
((Ausdruck))
cos"* χ
arc cos χ
Tangens χ tan χ
ACS
(Menge) oder
,oder
(<Ausdruck)y
(<Ausdruck)y
oder
((Ausdruck))
((Ausdruck))
tan~l χ arc tan χ
< Menge)
- OQSTC
((Ausdruck))
TBL/)
SIN/) RSN/) COS/)
TRH/) RTN/)
cm
cm cm
' cm
i -ü W
Ganzer Wert von χ :.
int χ
int χ
Verschiedene
Funktionen
Funktionen
Absolutwert χ (x)
Exponentenerhebung
((Ausdruck)^
(Menge) ABS oder
((Ausdruck))
(Menge) (Menge)
. oder A/ oder ((Ausdruck)) "((Ausdruck))
pi
-Τ
3.14159265360
-Τ
3.14159265360
Konstante
IHTb
•n
cm
c—λ
Anfangszustand
Dat ens pe i eher und Marken löschen
TBL Menge
Wert -
Wert -
4-B-Register
5-Alphab etre gis ter
5-Alphab etre gis ter
6-Marken .... .
loschen
TBL δ
θ Θ
309832/0843
Ausgedruckte Anweisung | Bereich | Bemerkungen | - | Einheiten bleiben bis zu bewußtem Wechsel eingestellt Beim Einschalten wird automatisch "GracJ" ge wählt |
LN 6.2; LN A; LN (X-I); -5LN (4(X-I)); |
X>0 | |||
EXP .4; EXP B; EXP (-1); 3((EXP A-EXP C-A))/2)- X; |
-225.65<X <227.95 |
Nur Hauptwert: O-siiT1*;-^«^« +90° |
||
Ähnlich LN | X>0 | |||
Ähnlich EXP | |XK 10* | Nur Hauptwert 0=cos~lx;0°*0 st+180° |
||
TBL 1; TBL 2; TBL 3; TBL 0;(laufende Einheiten) |
||||
SIN 30; SIN B; SIN (-45); A 2((1-COS B)t2+(SIN B)f2)-C; |
|x| 61 χ id' | Nur Hauptwert O » tan χ;-90°ά 04+90c |
||
ASN .707; ASN (-.3); | |XK1 | Beseitigt Bruchanteil, beeinfluß: Zeicnen.u.gan2 zahligen Anteil nicht |
||
Ähnlich SIN | I χ lsi χ ίο" | Stellt auf positiv ohne Wert zu verändern |
||
Ähnlich ASN | IXlSl | -2 t 4 - -16; (-2)t4 - +16. |
||
Ähnlich SIN | iXlfilXlO" | |||
Ähnlich ASN | ixi^io11 | Siehe "Auswahl der Kreiseinheiten" für TBL 0, 1, 2, 3 TBL 7, 8, 9 werden nicht verwendet |
||
MT 4.6; INT A; INT (-7.2); INT (A/B+1.03); |
||||
AB8 (-4); ABS A; ABS (A/B+1.03); | ■ ... | |||
5 t 2; 5f(-2)i (A+B)t (X/Y-3) ; | Für "AtB, A<0, B muß ganz sein |
|||
2rA; 180B/1T+C; | , | |||
TBL 4; löscht alle verfügb.Register TBL 5; löscht Register A.B.C.X.Y.und Z TBL 6» löscht Marken 0 bis 15 |
309832/0843
- Ill -
2162725
Die Zusatzeinrichtung des Rechners für ;yom Benutzer definierbare
Funktionen ("User Definable Functions") enthält eine ROM-Steckeinheit mit 1024 Bit und drei Schablonen für je
zehn Tasten, die in den Fig. 8A-C dargestellt sind. Fünf Tasten werden für. die Steuerung verwendet und 25 Tasten stehen für
die Definierung zur Verfügung, wenn keine weiteren ROM-Steck-
einheiten in den Rechner eingefügt sind. 15 Tasten sind verfügbar,
wenn eine weitere RQM-Steckeinheit benutzt wird und fünf, wenn beide der übrigen ROM-Einsteckschlitze ausgenutzt
werden. Die Verwendung dieser Zusatzeinrichtung wird im folgenden beschrieben.
In einem Programm tritt häufig die Notwendigkeit auf, einige Grundrechnungen an verschiedenen Stellen auszuführen. Es ist
lästig, überflüssig und fehleranfällig, jedesmal die erforderlichen Anweisungen zu wiederholen und erheblich einfacher
und angenehmer, sie nur einmal aufzustellen und sich dann, wenn es die Rechnung erfordert, lediglich auf sie zurückzubeziehen.
Diese Möglichkeit wird durch Unterprogramme und Funktionen gegeben. Im folgenden werden die grundlegenden
Möglichkeiten des Rechners für die Ausführung solcher Unterprogramme
und Funktionen beschrieben und wie diese durch die Zusatzeinrichtung für die vom Benutzer definierbaren Funktionen
erarbeitet werden können.
Die grundlegende Möglichkeit des Rechners, Unterprogramme ausführen zu können, wird durch die Tasten GO SUB und RETURN
("Verzweigung zum Unterprogramm" und "Rückkehr") gegeben.
309 832/0 843
Diese Tasten ermöglichen es, eine oder mehrere Zeilen
des Hauptprogranunes als Unterprogramm aufzurufen, um dem mit einer Anweisung GO SUB zu der ersten Zeile gesprungen
und durch eine Anweisung RETURN zum Hauptprogramm zurückgekehrt wird. Beispielsweise kann es notwendig sein, an
mehreren Stellen des Programmes die ersten zehn R-Register auf Null zu setzen. Dies kann mit dem folgenden Programm
erreicht werden, das ein Unterprogramm ZERO ("Null-Setzung") wie folgt verwendet:
0 : GO SUB "ZERO"
on · . rn srm "7FRn"
20 . GO SUB ZERO
35 : GO SUB "ZERO"
Programm mit drei Aufrufen
40 : | "ZERO" | ■ Z; O | -►RZ; |
41 : | 10 -> Z | ; GTO | + O |
42 : | Z - 1 -» | ||
IF ΖλΟ | |||
43 : | RETURN | ||
Unterprogramm ZERO
Die Aufrufe von ZERO in den Zeilen 0, 20 und 35 bewirken, daß die ersten zehn R-Register gelöscht werden und daß
sodann zu den Zeilen 1, 21 bzw. 36 zurückgekehrt wird. Die Verwendung des Unterprogrammes ZERO spart eindeutig
Speicherplatz ein, weil die Anweisungen in den Zeilen 41 bis 43 nur einmal gespeichert werden müssen. Weiterhin
wird ein Programm durch Unterteilung in Unterprogramme leichter zu lesen und zu verstehen. Wenn ein Unterprogramm
auch für andere verwendbar ist, kann es in deren Programme
309832/0843
eingefügt werden, nicht nur um Speicherplatz, sondern auch um Zeit für die Programmerstellung zu sparen.
In diesem einfachen Beispiel führt das Unterprogramm ZERO
stets genau die gleiche Aufgabe aus: die ersten zehn R-Register auf Null zu setzen. Ein etwas allgemeineres Unterprogramm
hätte die Möglichkeit, beliebige aufeinanderfolgende zehn R-Register, beginnend bei einem Register R (J) auf
Null zu setzen. Um dies zu bewirken, muß das Unterprogramm geändert werden und der Wert des Parameters J muß bekannt sein
oder dem Unterprogramm zugänglich gemacht werden. Dieser Wert kann in dem X-Register vor dem Aufruf des Unterprogrammes
gespeichert werden und das Programm könnte wie folgt lauten: 0:. 0-»X; GO SUB "ZERO 1"
20: 40-»X; GO SUB "ZERO 1" " .
35: 30-^X; GO SUB "ZERO 1"
40: "ZERO 1" 41: 10 ■* Ζ 42: Z-I-A-Z; 0 ■* R(XH-Z), if Z>0; GTO + 0
43: RETURN
Das Unterprogramm ZERO lvlöscht R-Register 0-9, 40-49 und
30-39 ausgehend den Zeilen 0, 20 bzw. 35. Der Programmierer
muß jedoch beachten, daß die Unterprogramme sowohl das X-
J- :
als auch das Z-Register benutzen. Der Inhalt dieser Register
309832/Q843
muß daher vor dem Aufruf des Unterprogrammes gespeichert werden, wenn er eine irgendwie wertvolle Information darstellt. Diese "Buchhalterarbeit" erschwert die Verwendung
des Unterprogrammes, macht es für den Benutzer wenig anziehend und läßt es anfällig für Fehler werden. Dieses Problem
wird noch schwerwiegender, je mehr Parameter dem Unterprogramm zugänglich gemacht werden müssen und je mehr Arbeitsregister,
wie das Z-Register, zur Verfügung gestellt werden müssen. Diese Probleme werden durch die fortschrittlichen
Möglichkeiten der ROM-ßteckeinheit für die durch den Benutzer definierbaren Funktionen vermieden.
Das vom Benutzer definierbare ROM enthält weiterhin den Begriff der "Funktion". Eine Funktion unterscheidet sich
dadurch von einem Unterprogramm, daß mit dem Namen einer Funktion ein Wert verbunden ist. Funktionsnamen können daher
in beliebigen arithmetischen Ausdrücken auftreten und sich hinsichtlich der ihnen zugeordneten Werte auf die Register
A, B, C, X, Y, Z und R beziehen. Zum Beispiel sind
SIN, COS, LN und EXP
Funktionen, mit deren Namen Werte verbunden sind, und der Ausdruck
SIN (LN A) - COS (EXP B) -* X
ist ein gültiger arithmetischer Ausdruck, der mehrere Funktionen enthält.
Während einige Grundfunktionen in dem Rechner fest verdrahtet sind, ist es wünschenswert, andere Funktionen definieren zu
309832/0843
können und sie in der gleichen Weise arbeiten zu lassen,
wie die Funktionen sin, cos, In, exp usw.. Wenn z.B. eine Aufgabe die Auswertung hyperbolischer Funktionen benötigt,
ist es wünschenswert, diese Funktionen zu definieren und Ausdrücke wie -
SINH (A + B) - COSH (A - B) -* X aufstellen zu können.
Die beim Definieren von Funktionen auftretenden Probleme
sind ähnlich denen, die beim Aufstellen von Unterprogrammen auftreten. Die Parameter der Funktionen (deren Argumente)
müssen bekannt sein oder der Funktion zugänglich gemacht werden und die Arbeitsregister müssen der Funktion zur Verfügung gestellt werden, so daß bei der Rechnung Zwischenergebnisse
abgespeichert werden können. Das Definieren von Funktionen unterscheidet sich vom Aufstellen von Unterprogrammen
dadurch, daß der Funktion ein Wert zugeordent werden muß. Der Block mit den vom Benutzer definierbaren Funktionen
(USER DEFINABLE FUNKTION) liefert die Möglichkeiten, diese Probleme zu lösen.
Dieser wahlweise verwendbare Block hat die in den Fig.8A-C
dargestellten Tastenanardnungen. Die Tasten FA, FB, FC, FD und FE können einem von fünf Unterprogrammen bzw. Funktionen
zugeordnet werden. Die Tasten GA bis GJ und HA bis HJ können ebenfalls zugeordnet werden, wenn die beiden anderen
ROM-Blöcke nicht verwendet werden, wodurch die Kapa-
309832/0843
zität auf 15 oder 25 Funktionen oder Unterprogramme erhöht
werden kann. Die übrigen fünf Tasten ermöglichen die Definierung und den Aufruf dieser Funktionen und Unterprogramme.
Die durch den Block "User Definable Funktion" definierten Unterprogramme und Funktionen ähneln in ihrer Struktur dem
Hauptprogramm: Jedes Programm ist eine Liste von einer oder mehreren Anweisungen, die von Null an numeriert sind und von
einer Anweisung END gefolgt werden. Zum Definieren eines einfachen Unterprogrammes beispielsweise zur Berechnung des Inhaltes
einer Kugel, wobei dieses Unterprogramm der Taste FA zugeordnet wird, sind folgende Schritte auszuführen:
Zuerst sind die Tasten zu betätigen
GTO FA EXECUTE
Hierdurch wird der Rechner in den Modus "Unterprogramm definieren",
und·zwar hinsichtlich der Taste FA, gebrächt. An
Stelle dieser Taste FA kann jede andere zuordnungsfähige Taste verwendet werden. Zur Definierung des Unterprogrammes
für die Inhaltsberechnung wird anschließend gedrückt:
STORE -
0: 4/3* TfZZZ-+Z
1: END
Die Anweisung END führt den Rechner wieder in seinen normalen Arbeitsmodus zurück. Für die Verwendung dieses Unterprogrammes
zum Berechnen des Inhaltes einer Kugel vom Radius 5 wird gedrückt:
5; FA EXECUTE
309832/0843
was gleichbedeutend ist mit **
5 ·*· Z; GSB FA EXECUTE
Der Inhalt des Z-Registers wird angezeigt. Vom Aufruf des
Unterprogramms aus einem Programm wird gedrückt - - .' '
STORE
3: 5. ·* Z; GSB FA.
Die fünf Steuertasten (die linken Tasten in Fig. 8A) erweitern diese grundlegenden Möglichkeiten zum Ausführen von
Unterprogrammen dahingehend, daß Unterprogramme für die Sofort
aus führung, die ParameterZuweisung und die Ausführung
von Funktionen zur Verfügung gestellt werden. Diese Tasten ■ werden im folgenden beschrieben.
Sofortausführung. Die Taste IEX für die Sofortausführung bewirkt, daß der Rechner sofort auf die Betätigung einer
Taste anspricht, ohne daß die Taste EXECUTE gedrückt,werden
muß. Die Anweisung IEX muß die erste innerhalb des Unterprogrammes
sein, damit die Taste in dieser Weise wirkt; Wenn die einem solchen Unterprogramm zugeordnete Taste betätigt
wird, läuft das Programm ab, ohne daß die Taste EXECUTE betätigt werden muß. Wenn beispielsweise das vorhergehende
Programm folgendermaßen abgeändert wird:
0: IEX
1: 4/3 * ITZZZ Z
2: END,
dann braucht nur
dann braucht nur
■5 FA
309332/0843
gedrückt zu werden, um dieses Programm ,auszulösen. Dieser
spezielle Ausführungsmodus ist bei der Vereinfachung der Tastenfeld-Betätigung sehr wertvoll, um den Wirkungsgrad
und den Ausstoß zu erhöhen, wenn unter der Steuerung des Tastenfeldes mehrere ähnliche Rechnungen durchgeführt werden
müssen.
Aufruf (CALL). Zum Aufruf eines Unterprogrammes mit Parametern
muß die Taste CLL benutzt werden. Sie zeigt an, daß der·Bezeichnung des Unterprogrammes eine Parameterliste folgt.
Sonst wird diese Taste genauso verwendet, wie die Taste GSB:
GSB FA (keine Parameter)
CLL FA (A, 5, B+X) (mit Parametern)
Die Anweisung CLL sollte die letzte einer Zeile sein. Die Parameter brauchen nicht in Klammern eingeschlossen zu werden.
Parameter. Die Taste P() dient dem Zugriff zu Parametern, die den Unterprogrammen und Funktionen zugänglich gemacht
werden sollen und ist möglicherweise die am häufigsten benutzte Taste dieses ROM-Blockes. Abgesehen von dem Zugriff
zu Parametern kann die Taste P() dazu verwendet werden, einen Speicherbereich zu erzeugen und zugänglich zu machen, der
vorübergehend für Arbeitsregister benutzt wird, während das Unterprogramm ausgeführt wird. Der Zugriff zu den Parametern
und Arbeitsregistern geschieht mit Hilfe der Taste P(), ohne daß die Register A, B, C, X, Y, Z oder R beeinflußt werden.
Die Taste P () wird in genau der gleichen Weise verwendet
309832/0843
wie die Taste R(J, sie bezieht sich lediglich auf eine
Folge von Parameter-Registern und nicht auf eine solche von R-Registern. Wenn beispielsweise das Unterprogramm FB mit
drei Parametern aufgerufen wird, bezieht.sich Pl auf den ersten Parameter, P2 auf den zweiten usw.,d.h.
CLL FB.(Ä, 5, X-B) i I i
Pl P2 Pt3
Bei diesem Aufruf (CLL) bezieht sich Pl auf das A-Register
und P2 und P3 beziehen sich auf Speicherstellen, an welchen während der Ausführung des Unterprogrammes FB die Werte 5
bzw. X-B vorübergehend gespeichert sind. Vor Ausführung des Unterprogrammes FB wird jedesmal wenn die Anweisung CLL ausgeführt
wird, X-B berechnet und vorübergehend abgespeichert.
Mit Hilfe der Taste P() können vorübergehend Arbeitsregister erzeugt und zugänglich gemacht werden, indem Indizes angegeben
werden, deren Wert größer ist als die Anzahl der zugänglich gemachten Parameter. Da beispielsweise das Unterprogramm
FB drei Parameter hatte (Pl, P2, P3), können P4, P5 usw als
Arbeitsregister benutzt werden. Natürlich ist die Anzahl solcher Register begrenzt/ da der Rechner dann keinen internen Speicher
mehr hat. Eine genaue Grenze kann jedoch nicht angegeben werden, da sie von der Verfügbarkeit des Speichers abhängt,
wenn das Unterprogramm eingeleitet wird.
Als erstes Beispiel sei das Umschreiben des Unterprogrammes ZERO 1 betrachtet, um die angegebenen zehn R-Register zu
309832/0843
löschen, ohne den Wert des X- oder Z-Registers zu beeinträchtigen,
wie es das vorhergehende Unterprogramm getan hat. Ein Parameter Pl muß zur Verfügung gestellt werden, welcher
X ersetzt, und an Stelle von Z muß ein Arbeitsregister P2 verwendet werden. Die erforderlichen Anweisungen sind wie
folgt:
PRESS GTO FA EXECUTE
STORE 0: "ZERO 1"
STORE 0: "ZERO 1"
1: 10 ·* P2
2: P2-1-*P2; 0-+R(Pl + P2) ; IP P2>0; GTO+0
3: END
Dann wird CLL in der Form
Dann wird CLL in der Form
40+X; GO SUB "ZERO 1" ersetzt durch Betätigen von
CLL FA 4 0 STORE
das angezeigt wird als
das angezeigt wird als
20: CLL ZERO 1 40
da das Unterprogramm mit der Bezeichnung "ZERO 1" begonnen hatte. Das neue Unterprogramm arbeitet wie vorgeschrieben
ohne die Werte in den Registern X und Z zu beeinträchtigen, so daß diese für andere Zwecke zur Verfügung stehen.
Ein anderes Beispiel ist das Unterprogramm zur Erhöhung des Inhaltes eines Registers. Der eine Parameter dieses
Unterprogrammes gibt das Register an, dessen Inhalt erhöht werden soll:
309832/0843
PRESS · 1^FC EXECUTE
STORE O: "INCR"
1: Pl+l+Pl
2: END
Das Unterprogramm INCR wird aufgerufen durch
1: Pl+l+Pl
2: END
Das Unterprogramm INCR wird aufgerufen durch
10: CLL INCR A um das Α-Register oder
20: CLL INCR R(A+B)
um das R-Register mit der Nummer (A+B) zu erhöhen. Dieses Beispiel zeigt, daß ein Parameter sowohl zum Rückführen"
eines Ergebnisses als auch zum Zugänglichmachen eines Wertes verwendet werden kann. Beim Aufruf eines Unterprogrammes kann
eine beliebige Anzahl von Parametern verwendet werden«
Definieren (DEFINE), Eine Funktion unterscheidet sich dadurch
von einem Unterprogramm, daß sie einen ihrer Bezeichnung zugeordneten Wert besitzt und daher Teil eines Ausdruckes
sein kann. Die Taste DEF/-»F ermöglicht es, in dem Rechner
Funktionen zu definieren. Sie hat, wie ihre Bezeichnung andeutet, zwei Verwendungsmöglichkeiten. Einmal setzt sie den '
Rechner in den Modus DEF zur Funktions-Definierung, und zum
anderen (-*F) ordnet sie der Funktion einen Wert zu, wenn sich
der Rechner in diesem Modus zur Funktions-Definierung befindet.
Um den Rechner in den Modus zur Funktions-Definierung zu versetzen,müssen folgende Tasten gedrückt werden:
PRESS DEF FA EXECUTE
309 83 2/08 43
Dies entspricht dem Versetzen des Rechners in den Modus
"Unterprogramm-Definierung", d.h. der Betätigung der Tasten
GTO FA EXECUTE
Wenn der Rechner in dem Modus "Funktions-Definierung" ist,
wird die Funktion in der gleichen Weise definiert wie ein Unterprogramm mit Parametern, nur daß -*F es ermöglicht,
der Funktion einen Wert zuzuordnen.
Als ein Beispiel hierfür soll die Aufstellung einer Funktion betrachtet werden, welche die Funktion "hyperbolischer
Sinus" definieren soll:
χ -x Sinh X = - e
und zwar im Zusammenhang mit der Taste FD. Zuerst wird der Rechner in den Modus "Funktions-Definierung" gebracht:
PRESS DEF FD EXECUTE Zur Definierung der Funktion sinh:
STORE 0: "SINH"
1: (EXP Pl - EXP (-Pl) )/2-*F
2: END
Zur Verwendung dieser Funktion wird auf die Taste FD in der gleichen Weise Bezug genommen, wie auf die Taste SIN. Zum
Beispiel
PRESS FD ( 5 ) + FD ( 4 ) EXECUTE was angezeigt wird als
SINH ( 5 ) + SINH ( 4 )
bevor die Taste EXECUTE betätigt wird, da die Definierung mit der Bezeichnung "SINH" begonnen hat. In ähnlicher Weise
kann
309832/0843
5: SINH t A+B) / SINH,., ( A-B ) -* A
als Programmzeile gespeichert werden. Der Rechner verhält
sich dann so, als hätte er die Möglichkeit, den hyperbolischen. Sinus zu berechnen, fest eingebaut,
· ■
Als »zweites Beispiel hierfür sei die Funktion Maximalwert programmiert. Diese Funktion hat zwei Parameter und nimmt den Wert des größeren dieser beiden Parameter an. Dies geschieht folgendermaßen:
Als »zweites Beispiel hierfür sei die Funktion Maximalwert programmiert. Diese Funktion hat zwei Parameter und nimmt den Wert des größeren dieser beiden Parameter an. Dies geschieht folgendermaßen:
PRESS DEF FE EXECUTE und STORE 0: "MAX"
1: Pl -* F
2: IF P2>P1; P2*F
3: END
Es ist zu beachten, daß hier angenommen worden ist, daß Pl
der größere der beiden Parameter in Zeile 1. ist, und daß Zeile 2 eine Korrektur durchführt, wenn dies nicht der Fall
ist. Diese Funktion kann dazu verwendet werden, das Produkt zweier Maximalwerte zu berechnen und abzuspeichern:
MAX (6, 9 ) MAX'. ( -5, -4 ) -» RA
Oder MAX ( AB - C, 5 J MAX (Zt3, 5-A) ■* RC
Die Durchführung ähnlicher Aufgaben ohne die Möglichkeit einer solchen Funktionen-Ausführung würde verschiedene Register
zum Speichern von Zwischenergebnissen benötigen und würde demgegenüber sehr schwer zu lesen und zu verstehen
sein.
309 8 32/0843
Streichen CSCRATCH). Die Taste SCR wird für verschiedene Aufgaben benötigt. Ihre Hauptanwendung besteht darin, ein
vom Benutzer definiertes Unterprogramm oder eine solche Funktion vom Speicher zu entfernen und es dadurch zu ermöglichen,
daß eine Taste für andere Programme verwendet werden kann, oder daß der für das Hauptprogramm zur Verfügung
stehende Speicherplatz wieder entsprechend vergrößert wird. Die Beseitigung der Funktion FA geschieht folgendermaßen:
PRESS SCR FA EXECUTE Die Beseitigung von zwei oder mehr Funktionen durch
PRESS SCR FB, FC EXECUTE
Spezielle Funktionen dieser Taste umfassen das Aufzeichnen
und Laden von Programmen. Zum Aufzeichnen aller Programme des Speichers in der gespeicherten Reihenfolge müssen folgende
Tasten betätigt werden
PRESS GTO SCR; REC EXECUTE Zum Laden dieser Programme PRESS GTO SCR; LOD EXECUTE
Zum Aufzeichnen einer Funktion oder eines Unterprograrames je Halbkarte muß ein Unterprogramm oder eine Funktion in
den Rechner gegeben und sodann eingetastet werden:
PRESS GTO FA (oder eine andere definierte Taste);
REC EXECUTE
Um in ähnlicher Weise einen Rechner aus einer in dieser Art gebildeten Programmbibliothek zu strukturieren, müssen die
Funktionen und Unterprogramme geordnet und dann folgende
309832/0843
- 125 - ■'.';..
Tasten betätigt werden:
PRESS GTO FAj LOD EXECUTE GTOFB; LOD EXECUTE
ETC.
Beim Auflisten der Funktion FA geschieht durch PRESS GTO FA LIST
Die Möglichkeit/ einen Rechner in dieser. Weise zu strukturieren
ermöglicht es, einen Rechner von Problem zu Problem neu anzupassen, ohne ihn neu programmieren und ohne die
benötigten Funktionen und Unterprogramme neu eingeben und fehlerfrei machen zu müssen. Diese Fähigkeit zusammen mit.
der Möglichkeit des Rechners, das Tastenfeld durch eine Anzahl ROM-Steckeinheiten zu modifizieren, ermöglicht eine
Wendigkeit, wie sie nie zuvor in einem Tischrechner gefunden worden ist.
Zusammenfassend erweitert die Steckeinheit USER DEFINABLE
FUNCTIONS die Fähigkeiten des Rechners ganz erheblich* Wie beschrieben, kann dieser Block dazu verwendet werden,, allgemein
verwendbare Unterprogramme und Funktionen aufzustellen Diese trogramme arbeiten derart mit dem Hauptprogramm zu-/
sammen, daß sie Parameter zuweisen und es innerhalb des Unter programmes ermöglichen, Arbeitsregister aufzustellen und auf
sie Zugriff zu nehmen. Diese Merkmale ermöglichen es dem Benutzer, Programme aufzustellen, welche keine der Register
A, B, C,, Xf Y, Z oder R benötigen oder deren Inhalt beein-
'' 309832/0843
flüssen. Dem Programmierer wird dadurch die ganze "Buchhaltungsarbeit"
abgenommen, die mit dem Aufruf eines Unterprogrammes
verbunden ist, wenn Parameter in vorgegebene Register eingegeben werden müssen, deren Inhalt vor dem
Einspeichern der Parameter sichergestellt und nach dem Ablauf des Unterprogrammes wieder eingespeichert werden muß.
Ohne eine solche Möglichkeit werden solche Programme unhandlich, verworren, schv/er fehlerfrei zu machen und ganz allgemein
solcher Art, daß sie davor abschrecken, solche Unterprogramme und Funktionen überhaupt zu verwenden.
Ein weiterer Vorteil der ROM-Steckeinheit USER DEFINABLE FUNCTIONS ist ihre Fähigkeit, sogenannte Funktionen zu definieren,
also Unterprogramme, die mit ihrer Bezeichnung, wie SIN und LN einen zugehörigen Wert verbunden haben, welche
die Wirkung einer fest in den Rechner eingebauten Funktion genau nachbilden. Dies hat die Fähigkeit des Rechners zur
Folge, in natürlicher Weise erweitert zu werden, wenn ein Problem auftritt, das auf verschiedene Funktionen basiert.
Dieser wahlweise einsetzbare Block ermöglicht es, eine Programm-Bibliothek allgemein verwendbarer Unterprogramme
und Funktionen aufzustellen und in einfacher Weise zu benutzen. Diese Fähigkeit befreit den Programmierer weitgehend
von unnötiger Arbeit, weil sie es erlaubt, mit geringem . Aufwand auf Programme Dritter zurückzugreifen.
Di· Zusatzeinrichtung mit den von dem Benutzer definierbaren
309832/0843
Funktionen erweitert die Möglichkeiten des Rechners und macht ihn einfacher und natürlicher zu programmieren.
Möglicherweise ist sie die für den Benutzer wertvollste Zusatzeinrichtung des Rechners.
Die Zusatzeinrichtung "Anschlußgeräte-Steuereinrichtung I" umfaßt einen Zusatz zu dem Auslesespeicher von 1024 Bit
Länge und eine Tastenfeld-Schablone nach Fig. 7 zur Identifizierung der zu dieser Zusatzeinrichtung gehörenden zehn
Tasten. Von diesen zehn Tasten werden fünf für den Betrieb eines X-Y-Zeichengerätes benötigt, zwei für die Schreibmaschine
und die restlichen drei für die allgemeine Steuerung
von sowohl der Eingabe als auch der Ausgabe dienenden peripheren Anschlußgeräte. Es folgt eine Beschreibung dieser
zehn Tasten, und zwar zunächst eine der fünf Zeichengerätetasten.
Maßstab (SCALE). Diese Taste ermöglicht es dem Benutzer,
den Maßstab hinsichtlich der physikalischen Begrenzungen des X-Y-Zeichengerätes und der gewünschten-Einheiten zu
wählen. Die Syntax dieser Tasten ist wie folgt:
SCL X . , X , Y . , Y'
min' max min max
Die vier Grenzen nach der Anweisung SCL folgen den Regeln
des Rechners für alle ParameterIlsten. Nachdem SCL ausgeführt
worden ist, kann sich der Verkehr mit dem X-Y-Zeichengerät
innerhalb der Bereiche abspiele,n, die durch die Maßstabs-Anwqisungen
gegeben sind. Wenn der Benutzer beispiels-
.309832/0843
- 128'- " · ; ■ _ '■ ; ■'■" ■ ' : : ■'■
' · · .' ti" '■' j ■ ■
2262728
Weise Y · 8sinX aufzeichnen will für -2«£ χέΐι und >lo£
Yi: IQ, muß er angeben ι
SCL -2i , 2i , -10, 10
Dieses Beispiel wird auch bei der Beschreibung anderer
Tasten verwendet werden.
- Achsen (AXES). Diese Taste ermöglicht es dem Benutzer,
mit einem einzigen Befehl in seiner Zeichnung sowohl die X-
ale auch die Y-Achse darzustellen. Die Syntax hierfür ist
wie folgt»
AXE X0, Y0, ΑΧ» Ä Y
Hier geben X und YM die Werte in von dem Benutzer vorgege-
" ι ο ο "
benen Einheiten', für den Punkt auf der maßstäblichen Zeichnung
an, an welchem sich die Achsen kreuzen. Die frei wählbaren Werte Ax und4Y geben den Abstand zwischen punktförmigen Markierungen
auf der X- bzw. Y-Achse an. Diese punktförmigen Markierungen werden vom Nullpunkt ausgehend erzeugt. Für das
zuvor angegebene Beispiel glitt
AXE O, 0, n/4, .1
AXE O, 0, n/4, .1
- Stift hoch (PEN UP). Dieser Befehl wird ohne Parameter benutzt und weist das X-Y-Zeichengerät an, den Schreibstift
vom Papier abzuheben und in der jeweiligen X- und Y-ßteilung
tu verbleiben.
■ Buchstabe (LETTER). Dieser Befehl mit seiner zugehörigen
Ptrameterliste stellt das X-Y-Zeichengerät zur Darstellung
! alpha-numerischer Zeichen ein. Es gilt folgende Syntaxι -
309832/0843
■'. ' - 129 - ■· " ;■ -,
. - - ■ * . ι t . . ί r, (. * οι . ί ν υ ν. ν υ (*
LTR X, V, hw· Γ
Hier geben die Werte X und Y die X- und Y-Btelle in vpro , ....
Benutzer vorgegebenen Einheiten an, an welcher die linke r
untere Bake des ernten alpha-numeriechen «eichene dargestellt
werden soll, hwe ist eine dreistellige Zahl, welche die Seichenhöhe
und die Schraibrichtung angibt, h ist eine Ziffer im Bereich 1 - h -9 welche die Zeichenhöhe 'angibt. Die tat*
sächliche Höhe ist 0,64h, d.h. 64 % der Oesamthöhe (d.h.
V —Y '
max min, wenn waagerecht geschrieben wird). In ähnlicher
Weise ist w eine Ziffer im Bereich 1 - w = 9, welche die" >'
Zeichenbreite angibt. Die tatsächliche Breite ist wieder O,64w,
d.h. 64 % der Gesamtbreite (d.h. X__ '· Xm4„ wenn waagerecht
IuäX IuX IV ,-
dargestellt wird).
" Der Wert β muß in dem Bereich 1 — θ ~ 4 fallen. Der Wert 1
ermöglicht eine waagerechte Darstellung von links nach, rechtsι
der Wert 2 eine senkrechte Darstellung von unten nach oben
(von rechts zu lesen), der Wert 3 eine waagerechte Darstellung
von rechts nach links (verkehriherum) und der Wert 4 eine .
senkrechte Darstellung von oben nach unten (von links ssu lesen).
Zur Einstellung einer Bezeichnung für das angegebene Beispiel wird getastet:
, LTR π/2, 8, 321
, LTR π/2, 8, 321
Die tatsächliche Darstellung des alpha-numerischen Zeichens
erfolgt mit dem weiter unten beschriebenen Zeichenschlüssel.
r- Zeichnen (PLOT) . Diese Anweisung bewirkt drei Dinge, sie
309832/0843
ermöglicht daa Aufzeichnen eines Punktee, da· Aufzeichnen
einer alpha-numerischen Bezeichnung und das Aufzeichnen
numerischer Ergebnisseι
PLT X, Y
Diese Syntax wird für das Aufzeichnen eines Punktee verwendet.
Sie muß zwei Parameter aufweisen, für welche die gleichen
Beschränkungen gelten wie für andere Parameter des Rechners. Wenn der Stift des X-Y-Seichengerätes bei Ausführung dieser
Anweisung vom Papier abgehoben ist, bleibt der Stift abge-
■ · ■
hoben, läuft zu der angegebenen X-Y-Stelle und geht dann
dort auf das Papier hinunter· Wenn der Stift bei Ausführung dieser Anweisung auf dem Papier aufliegt, bleibt er dort
während er zu der X-Y-Stelle läuft und zeichnet dadurch eine Linie von der alten Stelle bis zu der angegebenen Stelle.
Um die Sinuskurve in dem vorhergehenden Beispiel aufzuzeichnen kann unter der Annahme, daß die Variable X sich in dem
X-Register befindet, mit dem folgenden Programm der Maßstab gewählt, jede Achse gezeichnet und die Kurve dargestellt
werden:
Oi TBL 2 (setzt den Rechner auf Bogenmaß)
Ii SCL -2k, 2h, -10, 10 2i AXE O, O, */4, .1
3i -2* + X
4: PLT X, 10 sin X 5: -1 + X->X
6: IF X 6 2m GTO 4
309832/0843
- 131 - ·' ' «■'«■".■
J··*·*· , r ( t HI ■ t . . « l'<
·
(1(1
2282725
Die Anweisung PLT "Aufzeichnen" (PLOT) wird daz-u verwendet,
alpha-numerische Bezeichnungen mit einem einzigen Komma in
Anführungszeichen eingeschlossenen Parameter darzustellen:
PLT M (alpha-numerische Bezeichnung)41
Die Fortsetzung des obigen Programmes und die Darstellung
einer Überschrift benötigt eine Zeichenanweisüng und eine Aufzeichnungsanweisung: ,
7: LTR π/2, 8, 321
8: PLT "SIN X VS. X"
* - ■
Die abschließende Syntak für das Aufzeichnen ist
Die abschließende Syntak für das Aufzeichnen ist
PLT (numerischer oder arithmetischer Ausdruck)
wo wiederum nur ein Parameter vorhanden ist. Bei der Ausführung
wird hierdurch der numerische Wert des arithmetischen Ausdruckes in dem durch die Tasten FIXED N oder FLOAT N des
Rechners angegebenen Format aufgezeichnet. Das als Beispiel angegebene Programm kann so erweitert werden, daß eß für die
äußerste linke punktförmige Markierung auf der X-Achse eine
Bezeichnung aufzeichnet: .
9: FXD 3
10: LTR -2π, -1, 211
11: ' PLT -2π · ·
Dies gibt an der Stelle (r2Tt, -1) die Bezeichnung
-6.283.
Damit wäre die Beschreibung der fünf ZeiehengerHte-Tasten
beendet. Es folgen die beiden Schreibmaschinentasten.
309632/0843
FORMAT. Diese Taste ermöglicht die Angabe eines Formates für die Ausgabe von alpha-numerischeη Zeichen. Dieses besitzt
die Form:
FMT Spec I, Spec 2 ... Spec n
Worin Spec 1 usw. entweder Umwandlungsanweisungen zur Umwandlung
der rechnerinternen Gleitkomma-Zahlen in eine gewünschte Ausgabeform oder Edieranweisungen sind, die eine
Veränderung der örtlichen Lage,eine alpha-numerische Ausgabe
und die Steuerung spezieller Schreibmaschinenbefehle ermöglichen.
Die Umwandlungsanweisungen können eine von drei Formen annehmen :
r FLT w.d Gleitkommazahl (w - d + 7) r FXD w.d Festkommazahl
r FXD w.ο Ganze Zahl ohne Dezimalpunkt In diesen drei Fällen gibt r die Anzahl an, mit welcher diese Umwandlungsanweisung wiederholt werden soll. FLT oder FXD rührt von der Betätigung der Tasten FLOAT N oder FIXED N des Rechners her. w gibt die gesamte Feldbreite für diese Ausgabe an und d die Anzahl der Stellen rechts vom Dezimalpunkt, r, w und d müssen ganze Zahlen sein.
r FXD w.ο Ganze Zahl ohne Dezimalpunkt In diesen drei Fällen gibt r die Anzahl an, mit welcher diese Umwandlungsanweisung wiederholt werden soll. FLT oder FXD rührt von der Betätigung der Tasten FLOAT N oder FIXED N des Rechners her. w gibt die gesamte Feldbreite für diese Ausgabe an und d die Anzahl der Stellen rechts vom Dezimalpunkt, r, w und d müssen ganze Zahlen sein.
Edieranweisungen können die folgenden Angaben umfassen:
nX
Diese Angabe schreibt ein Leerfeld von η Zeichenlänge vor. η muß eine ganze Zahl sein, X ist die Taste X des Rechners.
309832/0843 ^^
r/
Diese Angabe schreibt r mal Wagenrücklauf-Zeilenvorschub
für die Schreibmaschine vor. r muß eine ganze Zahl sein,
/ ist die Taste / ("divide" = dividieren) in dem Tastenfeld des Rechners.
Normalerweise wird am Ende jeder Anweisung FMT automatisch
ein Waagenrücklauf-Zeilenvorschub gegeben. Wenn in der FMT-Anweisung der Tastenkode Z enthalten ist; wird dieser automatische
Wagenrücklauf-Zeilenvorschub unterdrückt. r "(alpha-numerische Bezeichnung &
Schreibmaschinensteuerung)" ; '
Hierin ist r wiederum eine ganze Zahl, welche die Anzahl der
Wiederholungen dieser Anweisungen angibt. Innerhalb der Anführungszeichen
kann eine Vielzahl von Rechner-Tasten verwendet werden, um mit der Schreibmaschine das Folg. nde ausgeben
zu können: * Großbuchstaben des Alphabets Kleinbuchstaben des Alphabets Spezialsymbole
# % * ' 7 Zwischenraum /■*-■+ . ,
Rotschreibung/ Schwarzschreibung, Rücktaste, Tabulator, Zeilenvorschub,
Wagenrücklauf, Tabulatorlöschung und
Tabulatoreinstellung
Die Tastenzuordnungen für diese Zeichnungen und Steuersignale in dem Tastenfeld des Rechners sind in Fig. 11 darr
309832/Qm
- JLJ4 -
gestellt. Um bei der begrenzten Anzahl von Tasten eine diese Symbole unterbringen zu können, ist es notwendig,
die Umschalttaste zu verwenden. Diese Taste ist die normale Taste DISPLAY (Anzeige). Wenn diese Taste innerhalb eines
in Anführungsstriche eingeschlossenen Feldes benutzt wird, wird in dem Sichtgerät das SpezialsymbolC angezeigt. Die Umschalttaste
ist dabei als Kippschalter ausgebildet. Die Eingabe in ein in Anführungsstriche eingeschlossenes Feld setzt
jedesmal das Tastenfeld in den Zustand Großbuchstaben (nicht umgeschaltet). Bei jedem Auftreten des Symbols -C wird dann
der Tastnnfeldmodus zwischen Großbuchstaben-Schreibung (nicht umgeschaltet) und Kleinbuchstaben-Schreibung (umgeschaltet)
hin und her gekippt. Um beispielsweise den Namen "Bill Hewlett" auf der Schreibmaschine auszugeben, muß folgende
Programmzeile ausgeführt werden:
FMT "BHILLC HHEWLETT"; TYP
TYPE (Schreiben). Der Ausdruck FMT gibt zwar die tatsächliche Ausgabeanweisung, aber löst die eigentliche Ausgabe
nicht aus. Hierfür wird die Taste TYPE benötigt. Ihr folgt eine ParameterIlste, in welcher die Parameter Zahlen, Registerbezeichnungen
oder Ausdrücke sind. Wenn TYP zuerst ausgeführt wird, wird das zuletat angetroffene FMT erhalten.
Die Anweisung FMT wird nacheinander von links nach rechts abgetastet, wobei an der äußersten linken Seite begonnen
wird. Dann werden an die Schreibmaschine Edieranweisungen ausgegeben, bis die erste Umwandlungsanweisung erreicht ist
309832/014 3
(oder alle Anweisungen ausgeführt worden sind). Dann wird .
der erste Parameter in der Anweisung TYP ausgewertet und dies mit der ersten Umwandlungsanweisung von FMT aufgegeben. Die Abtastung der FMT-Anweisung wird dann fortgesetzt/
wobei Edieranweisungen ausgegeben werden, bis die nächste Umwandlungsanweisung erreicht wird. Dann wird wiederum die
TYP Parameterliste gefragt und der zweite Parameter ausgewertet und mit dieser Umwandlung an die Schreibmaschine ausgegeben.
Dieser Vorgang wird fortgesetzt, bis das Ende entweder der Anweisung FMT oder der TYP-Parameter erreicht ist.
Wenn das Ende der FMT-Ariweisung vor dem Ende der TYP-Anweisung
erreicht ist, wird ein Wagenrücklauf-Zeilenvorschub gegeben
und der oben beschriebene Vorgang wird fortgesetzt, wobei er wieder mit dem Anfang der FMT-Anweisung beginnt.
Wenn das Ende der Anweisung FMT gleichzeitig mit demjenigen
der TYP-Parameterliste erreicht ist, wird Wagenrücklauf-Zeilenvorschub
gegeben und das Rechnerprogramm wird bei der nächsten Anweisung fortgesetzt.
Wenn nach dem Auftreten einer Umwandlungsanweisung in der
Anweisung FMT kein entsprechender TYP-Parameter mehr vorhanden ist (wegen Beendigung der Parameterliste)>
wird ein Wagenrücklauf-Zeilenvorschub gegeben und die Programm-Ausführung
bei der nächsten Anweisung fortgesetzt. In diesem Falle beginnt die nächste TYP-Anweisung wiederum mit der
309832/0843. ί I
ersten FMT-Anweisung und nicht dort, wo sie vorher abgebrochen wurde.
Sobald eine Umwandlungsanweisung eine auszugebende Zahl
nicht unterbringen kann, wird zunächst ein Versuch gemacht, auf Gleitkomma-Darstellung überzugehen (mit demselben w.d). Wenn trotzdem noch ein Überfluß auftritt, wird das gesamte
Feld mit dem ^-Zeichen gefüllt.
nicht unterbringen kann, wird zunächst ein Versuch gemacht, auf Gleitkomma-Darstellung überzugehen (mit demselben w.d). Wenn trotzdem noch ein Überfluß auftritt, wird das gesamte
Feld mit dem ^-Zeichen gefüllt.
Das folgende Beispiel illustriert die Anweisungen TYP und FMT, wobei die folgende trigonometrische Tafel ausgegeben
werden soll:
Trigonometrische Tafel Grad SIN COS TAN
0 0.000 1.000 0.000
1 .018 1.000 .016
2 .035 .999 .035
89 1.000 .018 57.29
90 1.000 0.000 $$$$$$$
Hierzu wird folgendes Programm benötigt:
0: SFG 14; TBL 1
1: FMT 5X, "TRIGONOMETRISCHE TAFEL",/ 2: TYP
3: FMT "GRAD SIN COS TAN",/
309832/0843
4: TYP . 5: 0-X 6:, FMT FXD 6.0, 2 FXD 8.3, 2X FXD 7.3,/ 7: TYP SIN X, COS X, TAN X
8: 1 + X - X
9: IF X - 90; GTO 7 10: STP
In dem Rechner steht ein frei wählbarer Versäumnis-Zusatz zur Verfügung, wenn keine FMT-Anweisung gegeben wird. Dieser
Zusatz hat vier Merkmale:
1. Für die Ausgabe von Daten wird die durch die Tasten
FIXED N und FLOAT N des Rechners gegebene Einstellung verwendet. ■ .
2. Für die Feldbreite quer über die Seite werden vier Felder von je 18 Zeichenlänge angenommen.
3. Die Parämeterliste der Anweisung TYP kann nunmehr Bezeichnungsparameter
enthalten, d.h. "(alpha-numerische Bezeichnung)". Diese werden dann in den Feldern von 18
Zeichenlänge ausgegeben. Diese Bezeichnungen können nur nicht-umgeschaltete, Zeichen, d.h. solche in Großbuchstaben-Darstellung,
enthalten. Sie können soviele Felder von 18 Zeichenlänge umfassen, wie notwendig.
' 4. und letztens werden alle Angaben in den Feldern von 18
Zeichenlänge rechtsbündig ausgedruckt.
Das folgende Beispiel wird dies veranschaulichen;
30983270843
TYP" HEADING"
HEADING
1-A; 2-B; 3-C; FXD O
TYP A, B, C
1 2 3
FXD 2
TYP "X=", 1.345
X= 1.35
■ Die. letzten drei Tastenbetätigungen dieser Anordnung sollen
gesondert behandelt werden; sie dienen der allgemeinen ■ Steuerung peripherer Anschlußgeräte und verwenden den Begriff
der Auswahlkodes. Der Auswahlkode ist eine Zahl, die ■■
einem bestimmten Anschlußgerät zugeordnet ist, um dieses zu identifizieren. So mag ein Analog-Digital-Wandler den Auswahlkode
3 besitzen, ein Papier streifenlocher den Auswahlkode usw. Der Selektkode wird mit SC bezeichnet, er ist für gewöhnlich
eine Zahl, eine Registerbezeichnung oder ein arithmetischer Ausdruck. Bei seiner Auswertung wird nur sein ganzzahliger
Wert benutzt.
- WRITE (Schreiben). Diese Taste ist die Ausgabetaste und wird wie die Taste TYP zusammen mit der Taste FMT verwendet. Sie
besitzt jeodch keinen Versäumniszusatz wie die Taste TYP. Ihre Wirkungsweise ist identisch mit derjenigen der Taste TYP,
abgesehen von der genannten Ausnahme. In diesem Falle muß das periphere Anschlußgerät, an welches ausgegeben werden
soll, durch SC identifiziert werden. Dies muß der erste
309832/080
Parameter in der WRT-Parameterliste sein. Die tatsächlich
aus dem Rechner ausgegebenen Werte sind im ASCII-Kode dargestellt. Wie diese, übersetzt werden, wird von dem Anschlußgerät
bestimmt. Die Fernschreiberübersetzung der Tastenfeld-Tastenkodes ist in Fig. 12 dargestellt.
READ (Lesen). Diese Anweisung ermöglicht die Angabe von Daten von externen Peripheriegeräten aus. Die verwendete
Syntax ist:
RED SC, A, B, R12
Der erste Parameter muß der Auswahlkode des eingebenden
Anschlußgerätes sein. Die folgenden Parameter müssen Registernamen sein, welche die Register bezeichnen, welche die
eingegebenen Daten aufnehmen sollen. Bei der Ausführung sendet der Rechner Befehle aus, welche das Anschlußgerät
einschalten, und wartet dann auf eingehende Zeichen in ASCII-Kodierung. Er nimmt die Zeichen 0-9 . , / - + E
(Exponenteneingabe) und beliebige andere Zeichen entgegen,
außer führenden Zwischenräumen. Ein Zwischenraum, welcher
der Exponenteneingabe (E) folgt, wird als Begrenzungszeichen betrachtet, das die Abspeicherung der eingegebenen Zahl in
das eingegebene Register bewirkt. Die Folge wird für jedes Register der Parameterliste wiederholt.
TRANSFER (Übertragung). Diese Taste wird dazu benutzt, unmittelbar
von einem externen Peripheriegerät zu einem anderen zu transferieren: · ' . .
309832/0843
TFR SC1, SC
Dies bewirkt eine unmittelbare Datenübertragung von dem Anschlußgerät mit dem Auswahlkode SC, zu dem Anschlußgerät
mit dem Auswahlkode SC„, z.B. von einem Papierstreifenleser
zu einer Schreibmaschine. Die übertragung wird eingeleitet, wenn die Anweisung TFR ausgeführt wird, und beendet,
wenn der 8-Bit-Kode 00 000 011 übertragen wird.
309832/0843
r- 141 -
Jedes Programm und jedes Unterprogramm des Rechners besteht aus einer Folge von einem oder mehreren von 71 Grundbefehlen
von jeweils 16 Bit Länge. Diese 71 Befehle werden von der Mikroprogrammeinheit serienmäßig in einer Zeitspanne
ausgeführt, deren -Länge von dem jeweiligen Befehl abhängt, ob er indirekt ist und ob Sprungbedingungen er- '
füllt worden sind.
Nach Beendigung der Ausführung jedes Befehls wird der Programmzähler
(P-Register) um eins erhöht, bis auf die Befehle JMP, JSM und die Sprungbefehle, bei welchen die
Sprungbedingung erfüllt ist. Das M-Register erhält den gleichen Inhalt wie das P-Register. Der Inhalt der adressierten
Speicherstelle und die Register A und B bleiben, sofern nicht anders angegeben, unverändert. '
Die 14 Speicherbefragungsbefehle beziehen sich jeweils auf eine bestimmte Adresse im Speicher, die durch daa Adressen- ·
feld <m>, durch das Bit "Seite Null/laufende Seite" und durch das Bit "DIREKT/INDIREKT" gegeben ist. Das seitenmäßige
und das indirekte Adressieren sind dabei im Zusammenhang mit dem Rechner HP 2116 der Anmelderin bereits im
einzelnen bekannt.
Das Adressenfeld <m> ist ein Feld von 10 Bit Länge und
309832/0843
enthält die Bits O bis 9. Das Bit "Seite Null/laufende Seite"
ist das Bit Nummer 10 und das Bit "DIREKT/INDIREKT" ist das Bit 15, bis auf den Fall des Zugriffes zu den Registern A
und B, wo das Bit Nummer 8 das Bit "DIREKT/INDIREKT" ist.
Ein indirekter Zugriff wird durch <.,I>wie folgt von der
Adresse ^my bezeichnet. :
und B, wo das Bit Nummer 8 das Bit "DIREKT/INDIREKT" ist.
Ein indirekter Zugriff wird durch <.,I>wie folgt von der
Adresse ^my bezeichnet. :
Zugriff zum A- oder B-Register: Wenn bei einem Speicherzugriffsbefehl
anstelle von (Ίη) die Speicherstelle <A>
oder (B^ verwendet wird, behandelt der Befehl den Inhalt des A-
oder B-Registers genau so wie den Inhalt der Speicherstelle <m> . Für den direkten Zugriff zu dem A- oder B-Register besteht jedoch eine Einschränkung, auf die weiter unten eingegangen wird.
oder B-Registers genau so wie den Inhalt der Speicherstelle <m> . Für den direkten Zugriff zu dem A- oder B-Register besteht jedoch eine Einschränkung, auf die weiter unten eingegangen wird.
ADA m,I "addiere zu A". Der Inhalt der adressierten Speicherstelle
m wird binär zu dem Inhalt des Α-Registers addiert, die Summe verbleibt im Α-Register. Falls vom Bit 15 ein
tibertrag auftritt, wird in das E-Register 0001 eingegeben, sonst bleibt das Ε-Register unverändert.
ADB m,I "addiere zu B". Sonst identisch zu ADA.
CPA m/I "vergleiche mit A und überspringe wenn ungleich".
Der Inhalt der adressierten Speicherstelle wird mit dem Inhalt des Α-Registers verglichen. Wenn die zwei sechzehnstelligen
Wörter verschieden sind, wird der nächste Befehl übersprungen, d.h. P- und M-Register werden nicht
309832/0843
um eins, sondern um zwei weitergeschaltet. Sonst
wird der nächste Befehl in der normalen Reihenfolge ausgeführt. '
CPB m,I "vergleiche mit B und überspringe wenn ungleich".
Sonst identisch mit CPA.
LDA m,I "lade in A". Das Α-Register wird mit dem Inhalt der adressierten Speicherstelle geladen.
LDB m,I "lade in.B". Sonst identisch mit LDA.
STA m,I "speichere A". Der Inhalt des Α-Registers wird in die adressierte Speicherstelle gespeichert. Der frühere
Inhalt der adressierten Speicherstelle geht verloren.
STB m,I "speichere B". Sonst identisch mit STA.
IOR m,I "inklusives ODER mit A". Der Inhalt der adressierten
Speicherstelle wird gemäß der logischen Operation "INKLUSIVES ODER" mit dem Inhalt des Α-Registers verknüpft.
ISZ m,I "erhöhe und überspringe wenn Null". Zu dem Inhalt
der adressierten Speicherstelle wird eins addiert. Wenn das Ergebnis dieser Addition Null ist, wird der nächste
Befehl übersprungen, d.h. die Register P und M werden nicht um eins, sondern um zwei weitergeschaltet. Der
erhöhte Wert wird an die adressierte Speicherstelle zurückgeschrieben. Die Verwendung des Befehls ISZ im
08832/0843
Zusammenhang mit den Registern A und B ist, wie weiter
unten angegeben, auf den indirekten Zugriff beschränkt.
AND m,I "logisches UND mit AM. Der Inhalt der adressierten
Speicherstelle wird mit dem Inhalt des Α-Registers gemäß der logischen Operation "UND" verknüpft.
DSZ m,I "vermindere und überspringe wenn Null". Von dem
Inhalt der adressierten Speichefstelle wird eins abgezogen.
Wenn das Ergebnis dieser Operation Null ist, wird der nächste Befehl übersprungen. Der verminderte
Wert wird in die adressierte Speicherstelle zurückgeschrieben. Die Verwendung des Befehls DSZ im Zusammenhang
mit den Registern A und B ist, wie weiter unten Angegeben, auf den indirekten Zugriff beschränkt.
JSM ΐΐι,Ι "springe zu Unterprogramm". Der Befehl JSM ermöglicht
den Sprung tu einem Unterprogramm sowohl im Speicher ROM als auch im Speicher RWM. Der Inhalt des
P-Registers wird an der Adresse abgespeichert« die an 4er Stell· 1777 enthalten ist (Stapelzeiger). Der Inhalt
des Stapelseigere wird um eins erhöht und die Register M und P mit der befragten Speicherstelle beladen
.
JMP m,I "Sprung". Dieser Befehl überträgt die Steuerung an
den Inhalt der adressierten Speicherstelle. Die befragte Speicherstelle wird ffowohl in das M-Register
3 0 9 8 3 2 / 0 S i 3
als auch in das P-Register geladen, wodurch ein Sprung an diese Stelle bewirkt wird.
Die acht Schiebe-Drehungs-Befehle enthalten jeweils ein vierstelliges Schiebefeld
<n>, welches eine Verschiebung von ein bis 16 Bits ermöglicht,, d.h. 1_<
η < 16. Wenn die Angabe <n>
weggelassen wird, folgt eine Verschiebung um ein Bit.. Der Schiebekode in den Bits 8, 7, 6 und 5 ist der
Binärkode für n-1, bis auf SAL und SBL, wo der Komplementärkode
für n-1 verwendet wird.
AAR η "arithmetische Rechtsverschiebung von A". Das
Α-Register wird um η Stellen nach rechts verschoben,
wobei die. Vorzeichenstelle (Bit 15) alle leer gewordenen Stellen füllt. Dies bedeutet, daß die n+1
bedeutsamsten Stellen gleich der Vorzeichenstelle' werden. . .
ABR η "arithmetische Rechtsverschiebung von B". Sonst identisch zu AAR. . -
SAR η "Rechtsverschiebung von A". Das Α-Register wird um
η Stellen nach rechts verschoben, wobei alle geleerten ' Stellen gelöscht werden. Dies bedeutet, daß die η
bedeutsamsten Stellen gleich Null werden.
SBR η "Rechtsverschiebung von B", Sonst identische mit SAR*
309832/08 4 3
SAL η "Linksverschiebung von A". Das Α-Register wird um
η Stellen nach links verschoben, wobei die η unbedeutendsten Stellen gleich Null werden.
SBL η "Linksverschiebung von B". Sonst identisch mit SAL.
RAR η "rotiere A rechts". Das Α-Register wird um η Stellen
nach rechts rotiert, wobei das Bit 0 nach Bit 15 eingeschrieben wird.
RBR η "rotiere B rechts". Sonst identisch:.\mit RAR.
Ändern - überspringen
Die sechzehn ändern-überspringe Befehle enthalten jeweils
ein fünfstelliges Überspringfeld in <.'n> , welches eine relative
Verzweigung zu einer von 32 Stellen ermöglicht, wenn die Überspring-Bedingung erfüllt ist. Die Bits 9, 8, 7, 6
und 5 sind für eine positive oder negative relative Verzweigung kodiert, bei welcher die Zahl <n>
gleich der zu der laufenden Adresse zu addierenden Zahl ist (überspringen in Vorwärtsrichtung) und die Zahl
<-n> diejenige, die von der laufenden Adresse abgezogen werden muß (überspringen in
Rückwärtsrichtung). Wenn der Wert <n> weggelassen wird, wird dieser als eins ausgelegt. -^*
Rückwärtsrichtung). Wenn der Wert <n> weggelassen wird, wird dieser als eins ausgelegt. -^*
309832/0843
=0 CODE=OOOOO wiederhole den gleichen Befehl
<n> =1 CODE=OOOOl führe nächsten Befehl aus
<n>=2 CODE=OOOlO überspringe einen Befehl
<n> =15 CODE=OlIIl addiere 15 zur Adresse
< n> =-1 . CODE=IIlIl führe vorhergehenden Befehl aus.
<n> =-16 CODE=IOOOO subtrahiere 16 von Adresse
keine Angabe CODE=OOOOl führe nächsten Befehl aus
Die Änderungsstellen bestehen aus den Bits 10 und 4» Ein dem Befehl folgender Buchstabe in(iä>
führt in Bit 10 eine Eins ein, wodurch das geprüfte Bit nach der Prüfung eingestellt wird.
In ähnlicher Weise bewirkt der Buchstabe Cc>
daß in Bit 4 eine eins eingeführt wird, um das Prüf-Bit zu löschen. Falls
sowohl ein Setz- als auch ein Lösch-Bit angegeben werden, überwiegt die Setz-Anweisung. Die Anderungs-Bits beziehen
sich nicht auf die Befehle SZA, SZB, SIA und SIB.
SZA ft "ttberspringei-wenn A Null41. Wenn alle 16 Bits des
Α-Registers Null sind, wird die durch η angegebene Stelle
übersprungen. ;
SZB η "überspringe wenn B Null". Sonst identisch alt
RZA η "überspringe wenn h nicht HuIlVo Gegenteil von*
RZB. N "überspringe wenn B nicht Null". Sonst identisch mit
SIA η "überspringe wenn A Null, dann erhöhe Ä"o Das ^-
018 32/0843
wird auf Null geprüft, dann um eins erhöht. Wenn alle 16 Bits vor der Erhöhung Null waren, überspringe die
durch η gegebene Stelle.
SIB η "überspringe wenn B Null, dann erhöhe B". Sonst
identisch mit SIA.
RIA η "überspringe wenn A nicht Null, dann erhöhe A".
Gegenteil von SIA.
RIB η "überspringe wenn B nicht Null, dann erhöhe B". Sonst identisch mit RIA.
SLA n,S/C "überspringe wenn unbedeutsamstes Bit von A Null",
Wenn das unbedeutsamste Bit (Bit Null) des A-Registers Null ist, überspringe die durch η gegebene Stelle.
Wenn entweder S oder C vorhanden ist, wird das Prüf-Bit nach der Prüfung entsprechend geändert.
SLB n,S/C "überspringe wenn unbedeutsamstes Bit von B Null", Sonst identisch mit SLA.
SAM n,S/C "überspringe wenn A minus". Wenn die Vorzeichen-,
stelle (Bit 15) des Α-Registers eins ist, überspringe die durch η gegebene Stelle. Wenn entweder S oder C .
vorhanden ist, wird Bit 15 nach der Prüfung geändert.
SBM n,S/C "überspringe wenn B minus". Sonst identisch mit SAM.
309832/0843
SAP YifS/C "überspringe wenn A positiv". Wenn die Vorzeichenstelle
(Bit 15) des Α-Registers Null ist, überspringe die durch η gegebene Stelle. Wenn entweder
S oder C vorhanden ist, wird nach der Prüfung Bit geändert.
SBP n,S/C "überspringe wenn B positiv". Sonst identisch
mit SAP. ' : .
SES n,S/C "überspringe wenn unbedeutsamstes Bit von E
eingestellt". Wenn das Bit 0 des Ε-Registers eine eins enthält, überspringe die durch η gegebene Stelle. Wenn
entweder S oder G vorhanden ist, wird das gesamte Ε-Register eingestellt bzw. gelöscht.
SEC n,S/C "überspringe wenn unbedeutsamstes Bit von E
gelöscht". Wenn das Bit 0 des Ε-Registers eine Null enthält, überspringe die durch η gegebene Stelle.
Wenn entweder S oder C vorhanden ist, wird das gesamte Ε-Register eingestellt bzw. gelöscht.
Die folgenden sieben Befehle umfassen Komplementieroperationen und verschiedene Spezialbefehle, die das Ausdrucken und
Operationen mit dem erweiterten Speicher beschleunigen.
CMA "komplementiere A". Das Α-Register wird durch sein Einer-Komplement ersetzt.
309832/0843
CMB "komplementiere B". Das B-Register wird durch sein Einer-Komplement ersetzt.
TCA "Zweier-Komplement von A". Das Α-Register wird durch
sein Einer-Komplement ersetzt und um eins erhöht.
TCB "Zweier-Komplement von B". Das B-Register wird durch
sein Einer-Komplement ersetzt und um eins erhöht.
EXA "führe A aus". Der Inhalt des Α-Registers wird als
laufender Befehl behandelt und in der üblichen Weise ausgeführt. Das Α-Register bleibt unverändert, sofern
nicht der Befehlskode eine Änderung von A bewirkt.
EXB "führe B aus". Sonst identisch mit EXA.
DMA "direkter Speicherzugriff". Der direkte Speicherzugriff
im erweiterten Speicher wird dadurch wirksam gemacht, daß das indirekte Bit in M eingestellt und ein Befehl -
WTM gegeben wird. Der nächste ROM-Taktimpuls überträgt
A nach M und die folgenden beiden Arbeitsspiele B nach M. Der ROM-Taktimpuls bleibt solange gesperrt, bis er
von der DMA-Steuerung wieder freigegeben wird.
Spezielle Einschränkung für den direkten Zugriff zu den Registern A und B
Für die fünf Registerzugriffsbefehle, die bei ihrer Ausführung
eine Schreiboperation umfassen, muß ein Registerzugriff zum A- oder B-Register auf einen indirekten Zugriff
309832/0843
■ - 151 -
beschränkt werden. Die Befehle sind STA, STB, ISZ, DSZ und
JSM. Ein direkter Zugriff zu den Registern A und B bei diesen Befehlen kann einer Programmänderung bewirken.(Dies
ist hier anders als beim Rechner HP 2116, bei welchem ein. Speicherzugriff zum A- oder B-Register als Zugriff zu den
Speicherstellen 0 bzw. 1 behandelt wird.) Ein Zugriff zu den Speicherstellen 0 oder 1 bezieht sich tatsächlich auf
die Speicherstellen 0 oder 1 in dem Auslesespeicher ROM.
Die elf Eingabe- Ausgabe- Befehle werden, wenn sie zusammen
mit einem Auswahlkode gegeben werden, zum über-
prüfen, Einstellen oder Löschen von MarkierungsrBits und
zum Steuern von Flipflops verwendet, wie zum übertragen von Daten zwischen den Registern A und B und den I/O~Registern.
STF <SC> "Markierungs-Bit einstellen". Es wird das
Markierungs-Flipflop des durch den Auswahlkode <SC>
angezeigten Kanals eingestellt.
CLF <SC> "lösche Markierungs-Bit". Es wird das Markierungs-PJLipflop
des durch den Auswahlkode ^SC > ange- ·
zeigten Kanals gelöscht.
SFC <SC> "überspringe wenn Markierungs-Bit gelöscht".
Wenn in dem durch <; SC > gegebenen Kanal das
Markierungs-Flipflop gelöscht ist, wird der nächste
Befehl übersprungen.
309832/08 4 3
SFS <SC> H/C "überspringe wenn Markierungs-Bit gesetzt".
Wenn in dem durch <SC> angegebenen Kanal das Markierungs-Flipflop eingestellt ist,
wird der nächste Befehl übersprungen. H/C zeigt dabei an, ob das Markierungs-Flipflop
in seiner Stellung belassen oder nach Ausführung des Befehls SFS gelöscht werden soll.
CLC <SC> H/C "lösche Steuerung". In dem durch <SC> angegebenen
Kanal wird das Steuer-Flipflop gelöscht. H/C zeigt dabei an, ob das Flipflop in seiner Stellung belassen oder nach Ausführung
des Befehls CLC gelöscht werden soll.
STC <SC> H/C "setze Steuerung". In dem durch
<SC> angegebenen Kanal wird das Steuer-Flipflop eingestellt.
H/C zeigt dabei an, ob das Flipflop in seiner Stellung belassen oder nach Ausführung
des Befehls STC gelöscht werden soll.
OT* <SC y H/C "Ausgabe A oder B". Sechzehn Bits des A/B-Registers
werden an das I/O-Register ausgegeben. H/C ermöglicht ein Beibehalten der
Stellung oder ein Löschen des Markierungs-Flipflops nach Ausführung des Befehls Ot".
Die verschiedenen Auswahlkodes ermöglichen es, verschiedene Funktionen ablaufen zu lassen,
309832/0843
nachdem das I/O-Register geladen worden
SC=OO Die Daten vom A- oder B-Register
werden bei jedem auftretenden OT Befehl jeweils zu 8 Bits gleichzeitig ausgegeben. Das A- oder B-Register
wird dann um 8 Bits nach rechts rotiert.
SC=Ol Das I/O-Register wird mit 16 Bits vom
A/B-Register geladen.
SC=02 Die Daten vom A/B-Register werden zum Zwecke der übertragung an den
Magnetkartenleser jeweils ein Bit pro Οτ^-Befehl ausgegeben. I/O-Register
bleibt unverändert.
SC=04 Das I/O-Register wird mit 16 Bits vom
A/B-Register geladen und sodann das Steuer-Flipflop für den Drucker ein-"
gestellt.
SC=08 Das I/O-Register wird mit 16 Bits vom '
A/B-Register geladen und sodann das Steuer-Flipflop für die Anzeige eingestellt. ,
08832/0143
A/B-Register geladen und sodann der Inhalt der I/O-Register an die
Schalter-Verriegelungsschaltungen übertragen.
M* <01> H/C "A oder B laden". Vom I/O-Register werden
16 Daten-Bits in das A/B-Register geladen. H/C ermöglicht ein Halten oder Löschen des
Markierungs-Flipflops, nachdem der Befehl
Jfe
LI ausgeführt worden ist.
LI ausgeführt worden ist.
LI <*OO> Die unbedeutsamsten 8 Bits des I/O-Registers
werden in die bedeutsamsten Bits des A- oder B-Registers geladen.
MI* <01> H/C "mische in A oder B". Mische 16 Daten-Bits
aus dem I/O-Register in das A/B-Register durch Ausführen des "inklusiven ODER". H/C ermöglicht
das Halten oder Löschen des Markierungs-Flipflops nachdem der Befehl MI* ausgeführt
worden ist.
MI <OO> Die unbedeutsamsten 8 Bits des I/O-Registers
werden durch das "inklusive ODER" mit den unbedeutsamsten
8 Bits des A- oder B-Registers kombiniert und in die bedeutsamsten Stellen des A- oder B-Registers rotiert.
309832/084 3
Es stehen insgesamt 16 MAC-Befehle für den Betrieb zur Verfügung:
(a) mit den gesamten Gleitkomma-Daten (Transfer, Verschiebung usw.), oder
(b) mit jeweils zwei Gleitkomma-Datenworten, um bei arithmetischen Programmen die Stellen- oder Wort-Schleifen
zu beschleunigen.
^A0-3;-' bedeutet dabei Inhalt der Bits 0 bis 3 des
A-Registers.
ARIl ist ein Merkzeichen für die arithmetischen
Pseudo-Register, die in dem RWM-Speicher an den Adressen 1744 bis 1747 (oktal) angeordnet
sind.
AR 2 ist ein Merkzeichen für die arithmetischen Pseudo-Register, die in dem RWM-Speicher
an den Adressen 1754 bis 1757 (oktal) angeordnet sind. ■
D. bedeutet: Mantissen der i-ten Dezimalstelle;
bedeutsamste Stelle ist D·,, unbedeutsämste Stelle ist D12 und der Dezimalpunkt (das
Komma) liegt zwischen Dl Und D2
Jede Operation mit Mantissen, ist eine binär kodierte
Dezimaloperation.
309832/0843
- A3O -
RET "Bückkehren".
Die 16-stellige Zahl an der höchsten in Anspruch genommenen
Adresse des Stapels wird an die P- und M-Register übertragen. Der Stapelzeiger (=nächste freie
Adresse im Stapel) wird um eins erniedrigt. , <B>, <E>
bleiben unverändert.
MOV "Bewege überlauf".
Der Inhalt des Ε-Registers wird nach A„__ übertragen.
Der Rest des Α-Registers und des Ε-Registers werden mit Nullen gefüllt.
<B>bleibt unverändert.
<B>bleibt unverändert.
CLR "Lösche ein Gleitkomma-Datenregister im RWM-Speicher
an der Speicherstelle <A>".
<A>, <B>, <E>
bleiben unverändert.
XFR "Gleitkornma-Datentransfer innerhalb des RWM-Speichers
von Speicherstelle <A> nach Speicherstelle<B>" .
Das Programm beginnt mit dem Transfer des Exponentenwortes. Die Daten an der Speicherstelle
<;A> bleiben unverändert.
<E> bleibt unverändert.
<E> bleibt unverändert.
MRX Die Mantisse ARl wird η-mal nach rechts verschoben. Das Exponentenwort bleibt unverändert.
<BQ _> = η (binär verschlüsselt)
309832/0843
lte Verschiebung: <AQ _>-iö,; Di*Di+i' Di2 9eht verloren
j te Verschiebung: θ "* D]/ Di^Di+i' Di2 9eht verloren
nte Verschiebung: θ -^ D1; Di^Di+i' Di2 "^ AO-3
θ 4 E, A4-15
jede Verschiebung:<BQ_3
>- 1 "^ B o_3
<B4_,_ > bleiben unverändert
MRY "Die Mantissen AR2 werden η-mal nach rechts verschoben". Sonst identisch zu MRX.
MLS "Die Mantissen AR2 werden einmal nach links verschöben1.1.
Das Exponentenwort bleibt unverändert.
θ -VD1; D1 ^D1+1; D1 ->
AQ_3
< B > bleibt unverändert
DRS "Die Mantisse ARl wird einmal nach rechts verschoben?.
Das Exponentenwort bleibt unverändert. θ ^D1; D1 *Di+1; D12 * AQ_3.
NULL ■* E und A4^5
<B> bleibt unverändert
DLS "Mantisse ARl wird um eins nach links verschoben".
Das Exponentenwort bleibt unverändert.
<B> bleibt unverändert
309 8 32/084
FXA "Festkomma-Addition".
Die Mantissen in den Pseudo-Registern AR2 und ARl werden aufaddiert und das Ergebnis wird in AR2 eingeschrieben.
Beide Exponentenworte bleiben unverändert. Wenn ein überlauf auftritt, wird in das E-Register
0001 eingegeben, andernfalls ist ^E>Null.
< AR2 > + <AR1> + DC ·>
AR2
DC = θ wenn vor Ausführung des Programms <E^ = 0000
DC = 1 wenn vor Ausführung des Programms <E >= 1111
< B>, <AR1> unverändert
FMP "Schnelle Multiplikation".
Die Mantissen in den Pseudo-Registern AR2 und ARl werden <"BQ _>-mal aufaddiert und das Ergebnis wird in AR2 eingeschrieben.
Der gesamte dezimale überlauf wird in AQ_3
eingegeben. Beide Exponentenworte bleiben unverändert.
<AR2> + <AR1> *<BQ_3>+DC >
AR2
DC = 0, wenn vor Ausführung des Programmes <E> = 0000 DC = 1, wenn vor Ausführung des Programmes
<E>= 1111 NULL ■>
E, A4-15
<AR1> unverändert
<AR1> unverändert
FDV "Schnelle Division".
Die Mantissen in den Pseudo-Registern AR2 und ARl werden so oft aufaddiert, bis ein erster dezimaler überlauf
auftritt. Das Ergebnis wird in AR2 eingegeben. Beide Exponentenworte bleiben unverändert. Jede Addition ohne
309832/0843
überlauf bewirkt eine Erhöhung von ^B
> um +1.
lte Addition: <AR2> + <ARl>
+ DC ■> AR2
DC = 0, wenn vor Ausführung des Programmes
<E > = 0000 DC = 1, wenn vor Ausführung des "Programmes <E > = 1111
nächste Additionen: <AR2 > + < ARl>
■* AR2 NULL ·* E
<AR1> unverändert
CMX Das Zehnerkomplement der Mantisse ARl wird in ARl zurückgeschrieben
und das Ε-Register wird auf Null gesetzt. Das Exponentenwort bleibt unverändert.
<B> bleibt unverändert.
CMY Das Zehnerkomplement der Mantisse AR2, sonst identisch
mit CMY.
MDI "Dezimalerhöhung der Mantisse".
Die Mantisse an der Stelle <A>wird auf der Stufe D12
um eine dezimale Eins erhöht. Das Ergebnis wird an die"
gleiche Stelle zurückgeschrieben und in das E-Register wird null eingegeben. Das Exponentenwort bleibt unverändert.
Wenn ein Überlauf auftritt, ergibt sich die . Mantisse zu 1,000 0000 0000 (dezimal)
und in das Ε-Register wird 0001 (binär) eingegeben,
bleibt unverändert.
NRM "Normalis ation"« - '
Die Mantisse in dem Pseudo-Register AR2 wird nach links
309832/0843
rotiert,- um D, ^ 0 zu erreichen. Die Anzahl dieser vierstelligen Linksverschiebungen wird in binärer
Form in BQ_3 gespeichert. (<B4_15>=0)
wenn ^Bo_3>= 0,1,2,. . . ., 11 (dezj -><E>= 0000
wenn<BQ_3>= 12 (dez) *· Mantisse = null und<E>= 0001
Das Exponentenwort bleibt unverändert.
<Ά> bleibt unverändert.
Die Binär-Kodes aller oben angeführten Befehle sind in der folgenden Kodiertabelle angeführt. Hierbei bedeutet ein '
das A- oder B-Register, D/I direkt/indirekt, A/B A-Register/B-
Register, Z/C Seite null (Ausgangsseite) /laufende Seite,
H/S Prüfbit Halten/Einstellen und H/C Prüfbit Halten/Löschen.
Die Werte D/I, A/B, Z/C, H/S, und H/C werden als 0/1 kodiert.
309832/08A3
KODIERTAFEL
GRUPPE
OKTAL
BEFEHL
15
13 12 11 .10 9 8 7 6
2
MEMORY
REFERENCE
GROUP
SPEICHER
ZUGRIFFS
GRUPPE
ZUGRIFFS
GRUPPE
-O
-1-
-2—— -3
_4
-4
-5
— ζ «·«-*>
—
-6
-6
AD* CP* LD*
IOR ISZ AND DSZ JSM JMP
Ψ-
Mi
Ψ
ΪΙ
O
O
O
O
1
1
1
1
1
1
ο ■ 1 1 O O O
O 1 1
O 1 O 1 O O
1 1 O -
% <r
Vj
ι
vc
0 %
1 ^C
0SHIFT
^ROTATE
^ROTATE
SCHIEBEN
-DREHEN
-DREHEN
07—
07—
07—
07—
07—
07—
07—
-O -2 -4 -6
A* R S*R
O
O
O
O
O
O
O
1
1
1
1 1 1 1
1 ^
ι y5
ι Vs
1
K
«■SHIFT— . CODE
SCHIEBE KODE
- O O O
- ο ο ι ο
- O 1 O
- O 1 1
ALTER-
o SKIP
GROUP
GROUP
< ÄNDERN -
ÜBERSPRINGEN
07—
07—
07—
07—
07—
07—
07—
07—
07—
-O -O -O -O
-1 -2 -3 -4
r-5
SZ1K RZ* SI*
SES SEC
O
O
O
O
O
1
1
1
1
1
1
1
1
1
1 1 1 1
1 1
1 1 1
1 1 1 1 ^
ι· VJ
1 1
O 1 O 1
—SKIP-CODE
SPRUNG KODE
O O
1' 1
1 1 1 1 1
«£ Yc
Vc
0 0
0 0
0 0
0 0
O C O ] 0 10 10
fs) CD
KODIERTAFEL·- Fortsetzung
GRUPPE
OKTAL
BEFEHL
14.. 13 12 11 10 9 8 7 6 5 4 3 2 1 O
REGISTER
REFERENCE
GROUP
REGISTER
ZUGRIFFS
GRUPPE ·
ZUGRIFFS
GRUPPE ·
ω
ο
«ο
07—17 07—37 07—57 07—77 07—17
07-557 07-577 07—17
07—57 07-677 07-717
07—37
ADA ADB CPA CPB LDA
STA STB IOR
AND DSZ JSM
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Hi
rs
1 %
1 %
1 W
0 0
0 0
0 0
0 .0
0
0
0
1
1
1
1
1
1
1
1
0
0
Ό
0
0 0 0 1
0 0
1 1
1 1
1 0
1 1
0 0
0 1
1 1 1
1 0 111 0 0 1
0 11
1 0
1 1
1 1
1 1 1 1
1 1
111
111
111
1 1
1 1
111
111
111
1 11
111
111
111
111
111
> BERECHNEN
^ -AUSFÜHREN
^ -AUSFÜHREN
070036 07-056 07-076
DMA CM* TC*
1 1 1?3 -----001110
1 1 1 0 ------011110
ο ι ι ι -Vj -----loiiio
1 1 IV? -----111110
Ν*
2725
KDDIERTAFEL - Fortsetzung
GRUPPI
OKTAL
BEFEHL
15
13 12 11 10 9 8 7 6 5 4 3 2 1
INPUT
OUTPUT
GROUP
I/O
GRUPPE
ω
σ
co
σ
co
OO
IaJ
ro
ο
co
co
1727— 1737— 17-7— 17-5 — 17-5 — , 17-6 —
17-1— 17-2 — 17-0—
STF
CLF
SFC
SFS
CLC
STC
OT*
LI*
MI*
CLF
SFC
SFS
CLC
STC
OT*
LI*
MI*
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
O 1. 1-1.1 11 %' 1 1 1
"L ι ο ίο
1 «—SELECT-CODE
AUSWAHL KODE
*/c
1 1
%. O Vc O
ι. ι ο .ο
1 O
0 0
1 1
MAC
GRUPPE
GRUPPE
170402 170002 170000 170004 174430 174470 171400 120410
175400 170560 171460 170420 174400 170400
170540 τ -71 /ι cn
RET
MOV
CLR
XFR
MRX
MRY
MLS
DRS
DLS
FXA
FMP
FDV
CMX
CMY,
MDI
MtJM
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1-
1 ,
0 0 0 0 1 1 0 0 1 0 0 0 1 0 0
0
0
ο
0
ο ο
0
0 0 0
1 0 1
0
0
0
0
0
C
η ι
1 0 0
ο ο
0 0 0 0 0 0 0 0 0 0
1 1
1 1 1 1
0
0
0
0
0
0
Q Q
0
0
1 0
0 0
0 0
0
0
1 1 0
O 0
0
0 1 0 0 0 0
0 0
1 1
σ ο
1 0
0
0
0
0
poo
0 0
ooo
0 1
1 1
0
0
0
0
0
0
0
0
0
0
0
0
0
ο σ
ro -J ro
cn
Ausführliche Aufstellung der Programme und Unterprogramme mit den Grundbefehlen
Im folgenden wird eine vollständige Aufstellung aller Programme und Unterprogramme^ mit den von dem Rechner verwendeten
Grundbefehlen gegeben sowie alle in diesen Programmen und Unterprogrammen verwendeten Konstanten. Alle diese
Programme, Unterprogramme und Konstanten sind entweder in dem Grund-Auslesespeicher ROM oder in den hiermit verwendeten
steckbaren ROM-Moduln gespeichert. Jede Seite einer bestimmten Gruppe von Programmen, Unterprogrammen und Konstanten ist an
der linken oberen Ecke durchnumeriert und jede Zeile einer Seite ist links in der ersten Spalte getrennt durchnumeriert.
Hierdurch soll die Bezugnahme auf bestimmte Teile der Aufstellung erleichtert werden. Weiterhin werden in der Aufstellung
Zwischenüberschriften verwendet, um Programme, Unterprogramme, Konstantengruppen, verschiedene Teile des Auswahlspeichers
RM, die steckbaren ROM-Moduln usw. näher zu bezeichnen. Jeder Befehl eines Programmes oder Unterprogrammes
und jeder in dem Auswahlspeicher ROM oder in einem steckbaren ROM-Modul gespeicherte Konstante wird in der dritten Spalte
der Seite sechsstellig in Oktalform dargestellt. Die Adresse der ROM-Speicherstelle, an welcher jeder solche Befehl oder
jede solche Konstante gespeichert ist, wird in der zweiten Spalte der Seite in fünfstelliger Oktalform dargestellt.
In der vierten Spalte von links einer jeden Seite werden für die meisten Konstanten und für viele der Befehle Merkzeichen
309832/0843
angegeben, die als symbolische Adressen oder als Kurssbezeichnungen
dienen, um die Bezugnahme auf die Konstanten und Befehle sowie auf zugeordnete Befehle zu erleichtern.
In der fünften Spalte von links sind die Merkzeichen der Grundbefehle und der Pseudo-Befehle angegeben.. Wie bereits
erwähnt, wird jeder Grundbefehl als Programmschritt eines aus mindestens einem Grundbefehl bestehenden Programmes
oder Unterprogrammes verwendet und besitzt daher eine ROM-Adresse.
Pseudo-Befehle wie ORG, EQU usw., welche nicht unter den oben angegebenen 71 Grundbefehlen auftreten und
als Pseudobefehle erkennbar sind, werden zur Steuerung des Assemblers benutzt, der die symbolische Kodierung der Merk-:
zeichen in den vierten, fünften und sechsten Spalten in die Adressen und den Inhalt der ROM-Register übersetzt, welche?,
in den zweiten und dritten Spalten auftreten. (Näheres ist dem Kapitel des Hewlett-Packard-Anweisungsheftes "Assembler
Programmer's Reference Manual" vom April 1970 zu entnehmen.) Pseudo-Befehle werden nicht als Programmschritte in von dem
Rechner ausgeführten Programmen und Unterprogrammen verwendet und besitzen daher keine ROM-Adresse. In der sechsten
Spalte von links jeder Seite, sind Operanden-Kodes in Merkzeichenform
angegeben und rechts davon Bemerkungen mit weiteren Erläuterungen. Das Format, die Anordnung und die
Verwendung dieser Aufstellung sind in dem oben erwähnten Änweisungsheft ausführlich beschrieben.
309832/0843
• 009· •010· «011* •012·
«013· •014· «015· •016· •017·
0018· «019·
• 022· •023· 0024· «025· «026·
6027»
ASHBtAtL
with the exception or 16 words the (Programm-Anschluß un<l· Systemkon&tanten;
SYMBOL TRANSFORH TABLE TOR THE
SX7 CHARACTER GENERATION FOR THE PRINTER · ·
»no the display uses, (Symbol-Umsetzertafel für die Bildung
285—262 46 words von 5x7-Zeichen für Drucker und
;- .Sichtgerät)
.DSPl OEF 3000B (SEE I/O SUP LINE 133)
.DBUF DEF 166UB (SEE I/O SUP LINE 134)
206 207
211 212
225 226
245 246 247 250 251 252
253 254 255 256
.TABl DEF 101564B (SEE I/O SUP LINE .TAB3 DEF 0ΒΛ203Β (SEE I/O SUP LINE
.LOD .REC
.TAB5
.TA06
.TAB7
.PRTl
.DSP
.ΒΓ3Ι
.BF5A
SKCD
LlflA
»TA84
DEF 3171B DEF 3043B
DEF 3470B OEF 2100B DEF 1626B
DEF 2536B DEF 27150 DEF 2C323
DEF 2051B DEF 7017B DEF 2227B
DEF 000430B
(SEE I/O SUP LINE (SEE I/O SUP LINE
(SEE (SEE (SEE (SEE
ICEE «SEE
(SEE (SEE (SEE (SEE
I/O SUP I/O SUP
i/o sup
I/O SUP
i/o sup
I/O St1P
i/o sup
I/O SUP I/O SUP I/O SUP
LINE LINE LINE LINE LINE LIME
LINE LINE LINE LINE
136) 137)
140) 141)
144) 145) 146) 147) 148) 149) 150) 151) 152)
153)
LINKAGE TO THF. BASIC ARITHMETIC OPERATORS USES:
263—275
THE NEXT AREA 276—554 175 WORDS IS USED BY THE SYSTEM FOR COMMON CONSTANTS
AND NEEOED LINKAGFS. THE ARFA IN WHICH THE
CONSTANT IS USED IS INDICATED BY THE FOLLOWING KEYi
COLUHN 1 BASIC ΗλΤΗ AREA tMATH 1·
2 I/O SUPERVISOR
3 MAG CARO LOAO *ND RECORD
4 COMPHER/INTERPRETER
5 CONTROL SUPERVISOR
6 UNCOMPILER
(Allgemeine Konstanten und erforderliche
Anschlüsse)
00276 00277 60303
00301
003(13 «0304
02flPf>0 Kl OCT 20060
OP2270 .FHT DEF 2270B
G3?5?5 .BXFP OEF 2525R
C33271 SYNTX OEF 327113
503273 EXEOX DEF 3273B
M3365 OUT DEF 3365B
602241 .FLT DEF 2241B
309832/0843
«058 | 603(35 | B02251 | .rxD | DEF | 2251B | 2 | 5 |
6059 | 6O306 | 002022 | .BF5G | DEF | 20228 | Z | 5 - |
0060 | 60307 | 006226 | KY6 | DEF | 6226B | 5 | 4 |
«061 | £6310 | Pß2260 | .FMT2 | DEF | 2260B . | 2 | CHECKSUM |
«062 | 00311 | ©16645 | UNCPL' | OEF | 16045B | 6 | 4 |
«063 | 03312 | 006723 | ENT? | DEF | 6723B | 5 | 5 |
«064 | 60313 | 004ß55 | CHSET | DEF | 4G55B | 4 | 12 |
«065 | C0314 | Π04671 | CMPLR | DEF | 407 IB | 4 | 1 |
«066 | C8315 | P04547 | IHTRP | DEF | 4547B | 4 | 1 |
0067 | 60316 | ee5ß47 | XEOL | DEF | 5047B | 4 | 4 |
«068 | 60317 | 607312 | .CSIN | DEF | 7312B | 5 | 1 |
0069 | ßf5320 | i5B7712 | RGTO | DEF | 7712B | 5 | 1 |
607B | C6321 | ©07346 | EKiD | DEF | 7346B | 5 | 1 |
0071 | 6C5322 | 6163B3 | TABl | DEF | 16303B | 1 | |
Θ072 | 60323 | 016C36 | SMON | DEF | 16006B | 2 | |
0073 | 0S324 | «532470 | .PNOl | DEF | 2470B | 12 | |
0074 | 05325 | 10P470 | CKSl | OCT | 102470 | 15 | |
«075 | S0326 | B05616 | RECY | DEF | 5616B | 2 | |
6076 | G0327 | J5324S3 | K2 | OCT | 2400 | 2 | |
C077 | 60330 | 177762 | M14 | DEC | -14 | 2456 | |
607B | ϋί)331 | 177431 | K3 | OCT | 177401 | 4 | |
Ö079 | 03332 | 931750 | K4 | DEF | 1750B | 25 | |
0000 | 63333 | C0B521 | K5 | OCT | 521 | 25 | |
«081 | CP334 | e/i7la(5 | K6 | OCT | 47100 | 156 | |
0062 | 0S335 | O72S30 | K7 | OCT | 72000 | 56 | |
λ not | 0G336 | r»r \ /. r*fX | KG | OCT | £. \.f.nn | 46 | |
6084 | 6S337 | 013732 | RA | DEF | 6106 | 5 | |
0065 | 0(3340 | C60141 | K9 | OCT | 60141 | 245 | |
€086 | C0341 | P256 | DEC | 256 | 34 . | ||
0087 | C0342 | 630377 | P255 | DEC | 255 | - 5 | |
0088 | ßfi343 | CS53220 | P144 | DEC | 144 | 24 | |
6089 | 08344 | (500203 | P128 | DEC | 128 | 235 | |
0090 | fiO345 | 600-177 | P127 | DEC | 127 | 4 | |
«091 | G P346 | 634570 | XJ | DEF | 4570B | 4 | |
0892 | 0(5347 | C001?0 | P80 | DEC | 00 | 245 | |
«093 | C0350 | OD01O0 | P64 | DEC | 64 | 24 | |
0094 | C0351 | OB0ß77 | P63 | DEC | 63 | 246 | |
C 09 5 | {!3352 | 60Ρ621 | P17 | DEC | 17 | 2456 | |
C096 | ßff353 | 030364 | P52 | DEC | 52 | 245 | |
0097 | 63354 | G07436 | UNCl | DEF | 7436B | 46 | |
C098 | 00355 | ßßP06O | P48 | DEC | 48 | 146 | |
C099 | G0356 | C0P057 | P47 | DEC | 47 | 4 | |
§100 | GS357 | C37417 | ISTOR | DEF | 7417B | 145 | |
0101 | 03360 | C3O040 | P32 | DEC | 32 | ||
ei02 | (50361 | O0C.O37 | P31 | "DEC | 31 | ||
0103 | C3362 | G04560 | XRH | DEF | 4560B | ||
0104 | 00363 | 171464 | K10 | OCT | 171464 | ||
0105 | 0S364 | C-00320 | P16 | DEC | 16 | ||
©106- | G3365 | C0iiqi7 | P15 | DcC | 15 | ||
Θ107 | C 3366 | CÖC316 | P14 | DEC | 14 | ||
0108 | C 3367 | C0O-315 | P13 | DEC | 13 | ||
C109 | (50370 | 003314 | P12 | DEC | 12 | ||
0110 | 60371 | CB3Q13 | Pll . | DEC | 11 | ||
«111 | 00372 | OB0312 | P10 | DEC | 10 | ||
0112 | GB373 | 030311 | P9 | DEC | 9 | ||
0113 | 6Ö374 | S002I10 | P8 | DEC | β |
309832/0843
•0375 | 000007 | BASE PAGE 205B—554B 140fiB—1777Θ | P7 | DEC | 7 | 2345 | 3 | |
•in | 00376 | C00006 | P6 | OEC | 6 | 2345 | 56 | |
0115 | 00377 | C3000S | P5 | OEC | 5 | 1245 | 124 ,- | |
• 116 | 00400 | PBO004 | P4 | DEC | 4 | 12345 | 2 · .. ■ . | |
• 117 | 00401 | ΟβΒ003 | P3 | OEC | 3 | 123456 | ■ | |
·11β | 00402 | CO3P02 | P2 ' | DEC | 2 | 123456 | 6 " | |
• 119 | 00403 | 000001 | Pl | DEC | 1 | 123456 | ||
0120 | 00404 | £00105 | KIl | OCT | 105 | 2 | 2 | |
• 121 | 00405 | 177777 | Hl | DEC | -1 | 123456 | 124 | |
• 122 | 80406 | 177776 | M2 | OEC | -2 | 24S | 2 | |
• 123 | 03407 | 177775 | H3 | DEC | -3 | 1245 | 2 | |
«124 | 03410 | 177774 | H4 | DEC | -4 | 1245 | 2 | |
• 125 | 03411 | 177773 | HS | DEC | -5 | 125 | 25 | |
• 126 | • 8412 | 177772 | H6 | DEC | -6 | 3 | 2 . | |
0127 | 00413 | 177771 | H7 | DEC | -7 | 24 | 2S | |
0128 | 09414 | 601570 | AlSP | DEF | 1570B | 45 | 2 | |
«129 | 00415 | 177766 | HlO | OEC | -10 | 124 | ||
• 130 | 63416 | 177765 | MIl | DEC | -11. | 1 | 24 | |
0131 | 0(5417 | C02771 | RNTER | OEF | 2771B | 25 | 2 | |
0132 | 00420 | 177760 | M16 | DEC | -16 | 1*6 | 2 | |
6133 | 03421 | 177715 | MSl | DEC | -51 | 2 : | ||
βΐ 34 | 0(542? | 177747 | M25 | OEC | -25 | 2 | ||
C135 | 00423 | 177740 | H32 | DEC | -32 | 12 | ||
• 136 | Cfl424 | 177700 | M64 | DEC | -64 | 12 | ||
Θ137 | 03425 | 176400 | H76B | DEC | -768 | 4 | ||
• 138 | 60426 | 177753 | M21 | DEC | -21 | 46 | ||
• 139 | Of.427 | 177400 | H256 | DEC | -256 | 4 | ||
0140 | 00430 | 0C2136 | .INT2 | DEF | 2136B | 4 ' | ||
0141 | C3431 | PIß 300 | OBl | OEF | 10000B | 35 | ||
0142 | 60432 | 0120(10 | 082 | DEF | 120000 | 4 | ||
0143 | 00433 | P14ßO0 | 0B3 | DEF | 140009 | 45 | ||
0144 | 00434 | O74302 | K12 | OCT | 74302 | 5 | ||
0145 | >Gfl435 | 1BCG30 | K13 | OCT | 100000 | 2 | ||
0146 | 0(3436 | Π2Θ3Ί0 | K14 | OCT | 20040 | 46 | ||
0147 | GC437 | 600135 | P93 | DEC | 93 | 2 | ||
0148 | 00440 | 031761 | K15 | DEF | 17618 | |||
0149 | 00441 | C31777 | RSTK | OEF | 17778 | |||
O1S0 | e 0442 | C01400 | K16 | DEF | 1400B | |||
ClSl | «0443 | C-42131 | K17 | OCT | 42101 | |||
0152 | 69444 | (540100 | K18 | OCT | 40100 | |||
0153 | 60445 | 034000 | K19 | OCT | 34000 | |||
0154 | C3446 | C04090 | P2048 | DEC | 2048 | |||
<U05 | C3447 | 031744 | K20 | DEr' | 1744B | |||
0156 | 03450 | Ca 1754 | K21 | DEF | 17S4B | |||
<J157 | 00451 | C3O024 | P20 | DEC | 20 | |||
(1158 | 00452 | 000025 | P21 | DEC | 21 | |||
0159 | 03453 | C03026 | P22 | DEC | 22 | |||
0160 | 00454 | Γ-0ΒΡ27 | P23 | DEC | 23 | |||
0161 | 83455 | SOiU10 | P72 | DEC | 72 | |||
0162 | 60456 | P31757 | K22 | OEF | 1757B | |||
0163 | 00457 | 030032 | P26 | DEC | 26 | |||
0164 | 33460 | P16373 | ENOSR | DEF | 16373Π | |||
0165 | 03461 | 125252 | CKßO2 | OCT | 125252 | |||
0166 | 00462 | C3P153 | P107 | DEC | 107 | |||
0167 | 00463 | 051535 | K23 | OCT | 51505 | |||
• 168 | 00464 | 000137 | GAZ | OCT | 137 | |||
0169 | ||||||||
309832/0843
BASE PAGE 205B—554B 1400B--1777B
«170 | «0465 | 000141 | EOL | OCT | 141 | S |
0171 | Ö0466 | P33140 | BOL | OCT | 140 | 5 - |
0172 | C0467 | 000122 | R | OCT | 122 | 5 |
«173 | SJ0470 | »0G372 | P58 | DEC | 58 | " 5 |
0174 | C0471 | 177377 | M257 | DEC | -257 | 5 |
0175 | 60472 | 0376(30 | K24· | OCT | 37600 | 5 |
«176 | G 0473 | Eß26?7 | .SPAC | DEF | 2627B | 2 |
0177 | 6Ρ474 | Gl6367 | CNTÄB | DEF | 16367B | 5 |
«17B | 09475 | G0Pfl73 | ENSTM | OCT | 73 | 56 |
«179 | 60476 | 016114 | .TABl | DEF | 16114H | S |
«180 | 60477 | «J31740 | K25 | DEF | 1740B | 56 |
«181 | 00500 | P01600 | APHA | DEF | 16008 | 5 |
«162 | 00501 | 001723 | K26 | DEF | 1723B | 1 |
0183 | 00502 | 177767 | H9 | DEC | -9 | s 246 |
«184 | 60503 | C30Ö50 | P40 | DEC | 40 | 46 |
0185 | 80504 | OS3061 | P49 | DEC | 49 | 4 |
β1Β6 | C0505 | 0Ö9132 | P90 | DEC | 90 | 4 |
0187 | 0S506 | 600150 | P104 | DEC | 104 | 4 |
0186 | GC507 | D3SU52 | P106 | DEC | 106 | 456 |
0189 | S3510 | PS0242 | P162 | DEC | 162 | 4' |
el 90 | eo5H | C3S154 | P103 | DEC | IBS | 46 |
0191 | «S512 | K27 | OCT | 37gg ' | 4 | |
βΐ92 | £0513 | 174ß37 | K28 | OCT | 174007 | 34 |
«193 | 00514 | 12Ö263 | K29 | OCT | 123263 | 4 |
0194 | C0515 | 003777 | K30 | OCT | 3777 | 2 |
0195 | 0C516 | 177770 | K8 | DEC | -8 - | 4 |
5196 | fßS17 | irss442 | K31 | OCT | 442 | 4 |
0197 | £0520 | 003335 | K32 | DEF | 1757 | 4 |
0198 | 60521 | 106535 | K34 | OCT | 106535 | 45 |
0199 | 00522 | G52525 | CKGDl | OCT | 52525' | 236 |
6200 | e?.s?.3 | P07122 | STLN | DEF | 7122B | 5 |
0201 | 60524 | 004561 | XRI | DEF | 4561B | 4 |
«202 | 60525 | C37516 | CKSTP | DEF | 75163 | 5 |
0203 | 00526 | C03035 | P29 | DEC | 29 | S ' |
6204 | C0527 | £5Ö2S55 | P45 | DEC | 45 | 26 |
0205 | Cß530 | G30ß56 | P46 | DEC | 46 | 26 |
0206 | 00531 | G32771 | RESOP | DEF | 2771B | 2 |
0207 | CP532 | S01537 | K35 | DEF | 15378 | 5 |
0208 | C 0533 | G03265 | RETl | DEF | 3265R | 2 |
0209 | C0534 | C06670 | ENTER | DEF | 6670B | 5 |
0210 | C0535 | J501432 | K36 | DEF | 1432B | 45 |
021L | 06536 | (531726 | K37 | DEF | 1726B | 4 |
0212 | 0C537 | COCl-341 | P33 | DEC | 33 | 235 |
0213 | ί0540 | S16'ii*0 | BRWM | DEF | 164008 | 2 |
(3214 | 03541 | pi3PC51 | P41 | DEC | 41 | 6 |
0215 | Ö8542 | C01727 | K38 | DEF | 17278 | 6 |
0216 | E 054 3 | P-32731 | L2F | DEF | 2731B | 15 |
0217 | Θ0544 | 003053 | P43 | DEC | 43 | 26 |
0210 | C0545 | 000054 | P44 | DEC | 44 | 56 |
0219 | 00546 | OB3042 | P34 | DEC | 34 | 456 |
0220 | C0547 | C07453 | RECH | DEF | 7453B | 5 |
022) | 50550 | 177634 | M100 | DEC | -100 | 24 |
0222 | 6P551 | 016347 | OPTN | DEF | 163478 | 5 |
0223 | 00552 | C04575 | SXJ | DEF | 4575B | 4 |
0224 | 60553 | f?0Pll33 | RUN | OCT | 133 | 5 |
0225 | 00554 | 001670 | .IBIJF | DEF | 1670B | 2 |
309832/0843
#001 | MTABL | 150000 | ASHBtAtL | ca | ORG | • | END-OF-LINE HARKER | ( | ) |
•002» | 15COO0 | Cl | SPECIAL MARKER FOR ENTER TYPE STMTS | MULTIPLY · | |||||
0003* | «0005 | 66746Q | C2 | OCT | 5B | STORE | ADDITION ♦ | ||
0004· | 6734C0 | C3 | OCT ] | CLEAR | t | ||||
«005 | 00(105 | 1054R0 | C4 | OCT | 150000 | LIST | SUBTRACT - | ||
«006· | PM06 | 120321 | • | CS | OCT | 15000η | LOAD | • | |
«00? | ßG007 | 14P000 | C6 | OCT | 67400 | CLEAR FOR OPTION BLOCKS ! | DIVIDE / | ||
«00β | ßC3l0 | 150ΟΠ0 | C7 | OCT | 73400 | ILLEGAL | 0 | ||
0009 | c ca π | 126425 | C10 | OCT | 105400 | K15 | 1 | ||
«0)0 | 00012 | 126426 | CIl | oct | 120021 | K16 : ·-. * | |||
Coil | 0C013 | C32252 | C12 | OCT | 140000 | •(IMP! | |||
•012 | Ρ0Θ14 | 142021 | C13 | OCT | 150600 | CLEAR FLAG | |||
«013 | ceai5 | 176CP0 | C14 | OCT | 126425 | 6OTO FLAG {ROUTE TO OPTION BLOCK) | |||
«014 | {■6016 | 132401 | C15 | OCT | 126426 | OPTION #3 | |||
«015 | eeoiT | 126427 | C16 | OCT | 2252 | K17 | |||
60)6 | 0)3020 | 126430 | C17 | oct | 142021 | K18 f | |||
«017 | flflt»21 | 075021 | C20 | OCT | 176000 | NORMAL · | |||
caio | cea22 | O77C21 | C21 | OCT | 132401 | TRACE " : " . | |||
C019 | CO023 | 1G1P21 | C22 | OCT | 126427 | FIXED | |||
βθ?0 | S0324 | 1B3321 | C23 | OCT | 126430 | FLOAT | |||
«021 | t'B925 | 06632t | C 24 | OCT | 7S021 | ENTER | |||
fiö22 | EO026 | 116021 | C25 | OCT | 77021 | OISPLAY | |||
€023 | G0327 | H2C21 | C26 | OCT | 101021 | .SPACE | |||
eo24 | <?O930 | 114021 | C27 | OCT | 103021 | ||||
0625 | PfiZ31 | 122021 | C30 | OCT | 66021 | RECORO | |||
0026 | 00032 | 054021 | C31 | OCT | 116021 | JMP | |||
• 027 | C0333 | 124021 | C32 | OCT | 112321 | END | |||
«028 | Ü0334 | O7G321 | C33 | OCT | 114021 | RETURN · ■ | |||
«029 | P0035 | 110021 | C34 | OCT | 122021 | IF | |||
0030 | CO036 | C6B021 | C 35 | OCT | 54021 | GOSUB ■ . | |||
0031 | C0337 | 106315 | C36 | OCT | 124021 | FLAG | |||
«032 | OR040 | 105021 | C37 | OCT | 70021 | SET FLAG | |||
0033 | C6P.41 | 126431 | C40 | OCT | 110021 | K19 SPACE | |||
«034 | PP042 | 073321 | C41 | OCT | 60021 | STOP | |||
«035 | 00343 | 052P03 | C42 | OCT | 106315 | ■1 | |||
«036 | PP044 | 0BP146 | C43 | OCT | 105021 | # | |||
«037 | C,"ß4S | 126420 | C44 | OCT | 126431 | K10 $ | |||
0038 | C!(5B46 | 126421 | C45 | OCT. | 73021 | KIl % | |||
«039 | C0347 | 126422 | C46 | OCT | 52003 | K12 & | |||
0040 | 00350 | 126423 | C47 | OCT | 146 | K13 ι | |||
0041 | Ct?flSl | C44035 | C50 | OCT | 126420 | ||||
«042 | 0t>052 | 84^-002 | C51 | OCT | 126421 | ||||
«043 | 00953 | 012210 | C52 | OCT | 126422 | ||||
• 044 | CC654 | 016167 | C53 | oct | 126423 | ||||
«045 | CC055 | 050343 | C54 | OCT | 44035 | ||||
6046 | 00056 | 023167 | C55 | OCT | 46002 | ||||
«047 | P0057 | 036330 | C56 | OCT | 12210 | ||||
«048 | O P(160 | 014210 | C57 | OCT | 16167 | ||||
«049 | 68061 | 032000 | C60 | OCT | 50043 | ||||
«050. | 0006? | 034001 | C61 | OCT | 20167 | ||||
«051 | i?P063 | OCT | 36000 | ||||||
«052 | 0PS64 | OCT | 14210 | ||||||
C053 | 0P065 | 32000 | |||||||
0054 | ÖB066 | 34H01 | |||||||
6055 | |||||||||
0056 | |||||||||
309832/0843
•057 | BO067 | 034002 | C62 | OCT | 34002 | 3 |
•058 | 00070 | D34ÖP3 | C63 | OCT | 34003 | |
6059 | «JO071 | 034004 | C64 | OCT | 34004 | 5 |
«060 | fiP072 | 034005 | C65 | OCT | 34005 | 6 |
•e&i | 60.973 | B34B36 | C66 | OCT | 34006 | 7 |
«062 | CB074 | 034307 | C67 ' | OCT | 34007 | 8 |
0063 | 00075 | C34010 | C70 | OCT | 34010 | 9 |
4064 | P0076 | B34311 | C71 | OCT | 34011 | R-REG |
«065 | flß077 | C30315 | C72 | OCT | 30315 | t |
«066 | 00100 | Ö56C31 | C73 | OCT | 56001 | |
#067 | 013101 | 004146 | C74 | OCT | 4146 | 3 |
«066 | 00102 | S06146 | C75 | OCT | 6146 | > -1 |
«069 | 00103 | 010146 | C76 | OCT | 10146 | Kl* ? |
• 070 | eei£>4 | 126424 | C77 | OCT | 126424 | GOTO P; |
«071 | ßßl05 | C62S21 | C100 | OCT | 62021 | A |
6072 | C01G6 | 04?eC53 | C101 | OCT | 42000 | B |
• 073 | B0107 | e-42ce4 | C102 | OCT | 42004 | C |
«074 | 00110 | Q42310 | C103 | OCT | 42010 | K20 D |
«075 | coin | 130440 | C104 | OCT | 13B440 | ' KHl E |
«076 | C'6112 | 13i?44l | C105 | OCT | 133441 | K22 F |
6077 | ÜB113 | 133442 | C106 | OCT | 13R442 | K23 G- |
«07Β | 60114 | 13C443 | C107 | OCT | 130443 | K24 H |
«079 | €0115 | 13&444 | C110 | OCT | -130444 | K25 I |
6060 | G0116 | 130445 | ClIl | OCT | 130445 | K26 J |
0081 | eeii7 | 135446 | C112 | OCT | 130446 | K27 K J |
Ο0β2 | C0120 | 133447 | C113 | OCf | 13Ö447 | K28 L |
6083 | CC 121 | 13S450 | C114 | OCT | 130450 | K29 M : |
«084 | 00122 | 13C451 | C115 | OCT | 133451 | K30 N |
«085 | CB123 | 132460 | Cl 16 | OCT | 132460 | K31 O |
8086 | B0124 | 132461 | C117 | OCT | 132461 | K32 P --i |
€087 | eei25 | 132462 | C120 | OCT | 132462 | K33 Q ' |
«088 | CCl 26 | 132463 | C121 | OCT | 132463 | K34 R |
C089 | CB127 | 132464 | C122 | OCT | 132464 | K35 S |
«090 | e-0130 | 132465 | C123 | OCT | 132465 | K36 T |
«091 | 0ßl3l | 132466 | C124 | OCT | 132466 | K37 U |
€892 | G3132 | 132467 | C125 | OCT | 132467 | K38 V |
«093 | C0133 | 132470 | C126 | oct | 132470 | K39 W |
β094 | eei34 | 132471 | C127 | OCT | 132471 | X |
6095 | 00135 | 042214 | C130 | OCT | 42014 | Y |
0096 | 00136 | C42S?0 | C131 | OCT | 42020 | Z |
«097 | 60137 | O420?4 | C132 | OCT | 42024 | RUN PROGRAH · |
«098 | {50140 | 1974-30 | Cl 33 | OCT . | 107400 | SORT |
«099 | C0141 | 024315 | C134 | oCT | 24315 | EXECUTE |
«100 | Ö0142 | 065431 | C135 | OCT | 65401 | ENT EXP ♦" |
fllßl | 00143 | 04PS33 | C136 | OCT | 40000 | GAZIMTA ♦ |
«102 | 00144 | C26263 | C137 | OCT | 26263 | Recall bglne |
fllC3 | 60145 | 877433 | C140 | OCT | 77400 | DELETE ENLNE |
ei 04 | 00146 | Ö75403 | C141 | OCT | 75400 | INSERT f |
«105 | flel47 | 071400 | C142 | OCT | 71400 | FORWARD |
«106 | 60150 | 1014GU | C143 | OCT | 101400 | BACK |
«107 | 80151 | 133400 | C144 | OCT | 103400 | RESET |
eißo | C0152 | iSflcna | C145 | OCT | 150000 | OPTION «1 |
«109 | C0153 | 126401 | C146 | OCT | 126401 | OPTION #2 |
flllß | 00154 | 130401 | C147 | OCT | 130401 | U- |
«111 | 00155 | C22211 | C153 | OCT | 22211 | ILCEGAL |
• 112 | G0156 | 150000 | ClSl | OCT | 150000 | |
309832/.0843
- X I Δ
• 113 | 60157 | 136000 | C152 | OCT | 13600B |
ein | 00160 | 150000 | C153 | OCT | 15000H |
0U5 | £0161 | 134090 | C154 | OCT | 134000 |
0116 | H0162 | 126432 | C155 | OCT | 126432 |
0117 | eci63 | 126433 | C156 | OCT | 126433 |
011B | C0164 | 126434 | C157 | OCT | 126434 |
«119 | CP165 | 126435 | ci6a | OCT | 126435 |
0120 | eci66 | 126436 | C161 | oct | 126436 |
0121 | 0P167 | 1264 37 | C162 | OCT | 126437 |
0122 | 60170 | 13E452 | C163 | OCT | 130452 |
0123 | 00171 | 13:i453 | C164 | OCT | 130453 |
012* | 60172 | 133454 | C165 | OCT | 130454 |
0125 | 00173 | 1.30455 | C166 | OCT | 130455 |
0126 | 60174 | 13S456 | C167 | OCT | 130456 |
C127 | 00175 | 13C457 | C17G | OCT | 130457 |
0128 | 00176 | 132472 | C171 | OCT | 132472 |
0129 | 08177 | 132473 | C172 | OCT | 132473 |
0130 | C0230 | 132474 | C173 | OCT | 132474 |
OJ 31 | C0231 | 13P475 | C174 | OCT | 132475 |
0132 | C02O2 | 13P476 | C175 | OCT | 132476 |
0133 | GP,203 | 13?477 | C176 | OCT | 132477 |
dl 34 | 00204 | 140C00 | C177 | OCT | 140000 |
0135 | END | ||||
• NO | ERRORS» · |
NULL
SKIP NEXT CODE FOR UNCOMPRER
ALPHA
THE FOLLOWING ASCII CODES ARE SPARE CODES FOR THE OPTION BLOCKS.
309832/Q8U
0001 β003·
0004 0005« 0006° <5007* €008
<S009 ß0l0 0011 0012 0013 6014«
β015«
©017 601G C019 6020 6021
C022 6023 ©02'»
0025 €026 6027 €028
CB29 C030 0Ö31 • 0032
0033 0034 0035 0036 C037 «038 6039
Ö040 6041 0042 6043 «044
C 04 5 0046 0047
0046 3049
β050
00000
ASHBtAfL
ORG 0Β (Start und Tastenfeld-Anschluß
plus Konstante)
START-UP AND KEYBOARD LINKAGE PLUS CONSTANT
00000
60001 {10002 60003 00004
00205
164003 O43ß60 000000
002127
000000
JHP 3BtI OCT 43060 1
.INT 1 ' 20SB
BSS DEF BSS ORG go to initialization routine
system constant
link word to the initialization routine
KEYcooE το Symbol table
TRANSFORM. (Umsetzung Tastenkode-Symboltafel)
00205
60210 00211 0B213
B03033 080000
056127
Ö6215 00216 50217
£5 0220 Ö0221 Ö0222
011427
0Ö54H7 Ö35517 Ö37477
031467 C215G7 025347 Q51533 ÖOO057
C0224 6Ρ225 00227 00238
C3O0O3 0553000
C-0232 Ö0233 60234
00235 00236 00237 C024&
60241 00242 60243 00
00245.
30257 Ö3260
00261 80262
(J3Ö0S0 090000
030000
080020 044Ö30
00OiIQO G30BO0
017400 OÖ0OS0
OO00S0 04Ö0O0
.BF5H DEC BSS OCT BSS DEC DEC DEC DEC DEC
DEC
- DEC OCT DEC DEC
- BSS DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC BSS DEC
DEC DEC DEC
27
56127
4887
2823
15183
3903
13111
9031
10791
51533
47
18432
7936
10
0 0
16384 LOO »I CFG
NOR TRC FXD FLT ENT DSP SPC PRT REC JMP ENO RET IF GS8 FLG SFG
STP ·· #
5 7 9 T
GTO A
B C
X Y Z
E ASSIGN
309832/0843
•052·
«053·
0054·
«055
•056
•057
• 058
• 059
«060
•061
•062
«063
«065
0066
«067
0068
«069
«070
«071
«072
«0/3
«074
0075
«076
«077
C07ß
«079
0080
«081
«082
«083»
«084·'
0085·
0086
«087
«088
«089
«090
«091
«092
0093
«094
«095
«096
0097
0098
«099
«100 '
«101
«102
«103
«104
6105
«106
• 107·
EOU WOROS
«1625 «1626 «0321
«1556 01557 «1546 «1542 61377
01550 «1744 «1754 «1754 01755
«1756 00315 CB316 00320 «1572 «1265
81352 «1351 00314 99525
01544 Ö1561 01575 01620 01702
.SE
.ILl
.ENOl
APl
AP2
CHA
ENDS
MAW
.STPT
ARl
AR2
.REC.
.SYM
.LOD.
INTRP
XEOL
RGTO
NRSLT
XRR
RBAO
BAD
CMPLR
Ul
SKEY
CODE
QUOTE
NCOOE
GTS
EOU EOU EOU EGU LUU
EOU EOU EOU EOU EOU EOU EOU ECU ECu
EGU EOU EOU EOU EQU
EOU EOU EOU EO«J EGU EOu EOU EOU EQU
01716 81716 01717 G1720
«1721 «1722 Ö1723 «1724
01725 01726 01727 «1730
01731 01732 C1733 «1734 «1735 01736
«1737 «1730 «1731
Il
12
13
14
15
16
17
18
TEMP
WDCNT
EQU EOU EOU EOU
EOu EOU EOU EOU EOU EQU EOU EOU EOU EOU EOU EOU EOU
EOU EOU EuU EOU
1625* SYSTEM SECURITY WORO
1626« SYSTEM OPTION BLOCK TABLE
321B SYSTEM EnD ROUTINE LINK WORD
1556B STACK POINTER 1
1557B STACK POINTER 2
1546B' PROGRAM MEMORY ADDRESS
1542B PRESENT LOCATION OF THE LAST WORD OF PROGRAM
1377B UPPER LIMIT OF R/W MEMORY
1550B LAST RESULT TO BE PLACED IN THE DISPLAY
1744B MATH REGISTER 1
1754B MATH REGISTER 2
ΑΠ2 LINK WOHO FOR MaG CARD RECORD DRIVER
3153 SETUP ROUTINE FOR RUN TIME STACK
3163 EXECUTE END OF LINE LINK WORD
320B RESET GTO'S AND GSB1S
1572B HOLDS OLD ADDRESS OF .STPT
1265B EXECUTE END-OF-lINE LINK WORD
1352B
1351B ROUTINE TO SET ERROR CODE AND FLAG
3UB COMPLIER ENTRY AOORESS
525B UNCOMPLI EP COMTIH1JE ftODMESS
1S44B CONTAINS ACTUAL KEYCnDE PETNG PROCESSED
1561B CONTAINS CODE WORD FOR KEYCODE BEING PROCESSED
1575B FLAG USED TO INDICATE PRESENTS OF QUOTE FIELD
1620B SWITCH FOR OBTAINING NEXT MNEMONIC CHARACTER
1702B GSB/GTO FLAG
(Gerneinsamer R/\7-Spe icher)
1716B START OF SHARED AREA
D*0 I
DM J
D*2 K
D»3 L
0*4 M
0*5 N
0*6 P
D»7 R
D*8 S
0*9 T
D»10 Il
D»ll 12
D»12 13
D»13 14
0*14 15
D»15 16
D»16 17
0*17 18
11 USED BY THE MAG CaRO FOR ADDRESS POINTER
12 USED BY THE MAQ CARD FOR WORO COUNT
309832/0843
• I/O SUPERVISOR
fll0B* | NON-SHARED | R/W STORAGE | EQU | \ |
«109· | EQU | |||
«110 | 01660 | .BUF | EQU | 1660B |
Olli | öl 700 | .NS | EQU | 1700B |
0112 | 01701 | .WKC | EQU | .NS«-1 |
01.13 | 01703 | .WPRT | EQU | .NS*3 |
Öll4 | ti 1704 | .WBUF | EQU | • NS*4 |
«115 | B1705 | .WMOO | EOU | .NSV5 |
0116 | 01706 | .POS | EQU | • NS+6 |
0117 | 01710 | .END2 | EQU | '.NS+8 |
6118 | Ö1560 | OSW | 1560B | |
€119 | 01543 | LIMl | EQU | 1543B |
<J120* | EQU | |||
öl 21 | S1563 | TSW | EQU | 1563B |
<5122 | 01604 | NMA | EQu | 1604B |
6123 | 01615 | BSTK | EQU | 1615B |
612'» | 01554 | PCNT | EQU | 1554B |
0125 | ßl555 | PADD | 15550 | |
0126 | 01250 | XSTP | 1250B | |
(Nicht-gemeinsamer R/W-Speicher)
BEGINNING OF 16 WORD BUFFER AREA START OF NON SHARED AREA
TEMP STORAGE OF ENERED KEYCODE
WORD FOR FXD/FlT FORMAT CONVERSION ADDRESS FOR STORAGE OF NEXT CHARACTER
SYSTEM STATUS WORD HI/LO CHARACTER POSITION WORD START OF END LINKAGE
SWITCH FOR ROUTING KEYCODES DURNlNG SYNTAX ADDRESS OF THE START OF THE PROGRAM AREA
STATUS WORD
CONTAINS ADDRESS OF NEXT LINE TO BE PROCESSED CONTAINS NUMBER OF WORDS FOR SYSTEM EXECUTION STACK
CONTAINS NUMBER OF PARAMETERS DURING RECORD CONTAINS NEXT PARAMETER ADDRESS DURING RECORD
STOP ROUTINE. SETS STOP BIT IN «WMÖD
309832/0843
I/O SUPERVISOR
«126«» «129«
0130· «131 «132· «133 «134 0135
6136 «137 0138· «139 «140
ROM ADDRESS CONSTANTS
«142· 0143 «144 0145
0146 6147 «148 «149 0150
0151 0152 0153 «154· 0155 0156 0157
0150 0159 C160 «161 0162 0163
0164 0165 0166 0167· 0168
©169 0170 0171 (ROM-Adressen, Konstanten)
00206
ORG 206B LED DISPLAY DRIVER START OF DISPLAY BUFFER
80206 003000 - DEF .DSPl
G0207 001660 .DBUF DEF .8UF
60210 006000 BSS
60211 101564 .TABl DEF .IL1-42B»I ADJUSTED ADDRESS OF OPTION BLOCK ADDRESS TABLE
80212 600203 .TAB3 DEF .BF5H-2 KEYCoDE TRANSLATION TABLE
00225
00225 C03171
00226 003043
ORG 225B DEF .LOD DEF .REC
00245 G0245 C0246
06247 GO250
C0251 CB252 Ö0253
C0254 C (4255 G0256
C0276
003470
OS 1636 C02536 C02715
OB2S02 032051
GC22H7
Θ0Β430
ORG
.TABS DEF
.ΤΛΒ6 DEF
.TAB7 DEF
DEF
DEF
DEF
OEF
SKCO BSS
DEF
.TAB4 DEF
2458 L4-0« .BF5F-1 .ILl
.OSP
.BF3I
.BF5A
LISA
K2-1
C0277 CO3O0
C0301 CO302 CO303
Ö03H4 ΡΠ3β5 00306
E0307 00310
020060 KlS
C02270
P325P5
033271 .IL2
003273
00-3030
Ü32241
OiWSl
U02Ö22
Ο3ΠΡ30
ß0226ß
00324 CC324 002470
C0473 00473 032627
ORG 276B OCT 20060 DEF .FMT DEF .BXFR DEF SYNTX
DEF EXEOX BSS DEF .FLT DEF .FXD DEF .BF5G BSS DEF .FMT2
ORg 324B DEF .RND-I
ORG 473D
DEF .SPAC MAG CARD LOAD ROUTINE MAG CARD RECORD ROUTINE
5X7 PATTERN TABLE STAfJDARD 3 LETTER KEYS
LINKAGE AREA FOR ADD-ON BLOCKS THERMO STRIP PRINTER DRIVER DISPLAY MONITOR · STORE CHARACTER ROUTINE
MNEMONIC GENERATOR
CLEAR AND RESET BUFFER POINTERS ADD-ON BLOCK ADDRESSES
ASCII BLANK AND ASCII 0 FORMAT CONVERSION BUFFER TRANSFER
REJECT TABLE FOR OPTION BLOCKS
SET FLOAT MODE AND VALUE SET FIXED MODE AND VALUE SET MNEMONIC LENGTH
DISPLAY RESULT - USE .SPST
LINK ADDRESS FOR ROUNDING SPACE STRIP PRINTER
309832/0843
#173» | ROM CONSTANTS | 177762 | DH14' | (ROM-Kc | 330B |
em· 0175* |
008000 | -14 | |||
β176· | 60330 | 660141 | BGNLE | org | 7 |
8177 | 60330 | G00400 | DP256 | DEC | 060141 |
C178 | C0331 | 033377 | DP255 | bSS | 430 |
8179 | 00340 | S00220 | 0P144 | OCT | 377 |
0180 | G0341 | 000200 | DP128 | OCT | 220 |
0131 | 60342 | Ü00177 | DPI 27 | OCT | 200 |
0182 | C0343 | O3S00ß | XJ | OCT | 177 |
61Β3 | Β0344 | DP80 | oct | 1 | |
fllB4 | 00345 | 000100 | 0P64 | OCT | 120 |
β185 | G0346 | 000000 | 8SS | 100 | |
β166 | C0347 | G00B60 | 0P48 | OCT | 4 |
6187 | ßß350 | C-30000 | OCT | 60 | |
0188 | G0351 | G3ß340 | DP32 | BSS | 2 |
0189 | 06355 | 030037 | DP31 | OCT | 40 |
«190 | 6G356 | 030000 | BSS | 37 | |
0191 | C0360 | C0PO20 | 0P16 | OCT | 2 |
0192 | CP361 | 630017 | DP15 | OCT | 20 |
«193 | 00362 | e-ßßßl6. | DP14 | BSS | 17 |
0194 | C 0364 | eeaal5 | DP 13 | OCT | 16 |
β195 | BR365 | C-0G314 | DP12 | OCT | Ϊ5 |
β196 | Ü0366 | 000030 | oct | 14 | |
0197 | 00367 | ß3ß?.07 | DP7 | OCT | 4 - |
6iv8 | 8037β | 600000 | OCT | 7 | |
Ö199 | 80371 | 630035 | DP5 | BSS | 1 |
0200 | 00375 | 60R004 | DP4 | OCT | 5 |
©201 | Cß376 | G0fl{303 | DP3 | BSS | 4 |
0202 | Θ3377 | 000392 | DP2 | OCT | 3 |
C2B3 | £6400 | CO0001 | DPl | OCT | 2 |
0204 | Gß40l | C00lö5 | K6 | OCT | 1 |
0205 | 60402 | 177777 | DMl | OCT | 105 |
6206 | Ö04S3 | 177776 | DM2 | OCT | 177777 |
6207 | 66464 | 177775 | DM3 | OCT | 177776 |
€208 | 60405 | 177774 | DM4 | OCT | 177775 |
6209 | {50426 | 177773 | D115 | OCT | 177774 |
C210 | Sß407 | £-00000 | OCT | 177773 | |
0211 | C0410 | 177 771 | DM7 | OCT | 1 |
6212 | G0411 | CflflßvJfl | OCT | 177771 | |
€213 | 66412 | 177 766 | DM10 | BSS. | 1 |
<22Ϊ4 | G^413 | 177 765 | DMIl | OCT | 177766 |
(-215 | 60414 | 032771 | BSS | 177765 | |
C216 | 06415 | 177760 | DM16 | OCT | RNTER |
0217 | C0416 | 000030 | OCT | 177760 | |
0218 | 60^(17 | 177740 | DM32 | DtF | 2 |
C219 | eo-!i23 | 177700 | DM64 | oct | 177740 |
β220 | ÖC421 | l764f!0 | K16 | BSS | 177700 |
0221 | «0423 | CÖ0000 | . | OCT | 176400 |
0222 | C 64 24 | 177400 | DM256 | OCT | 1 |
0223 | 00425 | OCT | 17740(5 | ||
0224 | 00426 | 002136 | BSS | ||
6225 | Θ0427 | OCT | .INT2 | ||
0226 | |||||
0227» | 00430 | DEF | |||
6228 | |||||
BEGINNING OF LINE CHARACTER
DELAY USED FOR STRIP PRINTER POP MACHINE BUT DO NOT CLEAR MEMORY
309 8 3 2/0843
1/0 SUPERVISOR
0229 | fli!431 | 010000 | K2 | OCT | 10000. |
60432 | 012000 | ||||
C0433 | 014000 | ||||
«230 | G 04 34 | C74302 | KS | SOR | 7 |
C231 | Ö0435 | 160000 | K7 | OCT | 100003 |
0232 | C 04 36 | 020040 | K9 | OCT | 20040 |
C233 | «B437 | OiM'135 | 0P93 | OCT | 135 |
0234 | P0440 | 001761 | K12 | OCT | 1761 |
C235 | 00441 | G01777 | K13 | OCT | 1777 |
$236 | 00442 | 081433 | K14 | OCT | 1400 |
«237 | 6Ö443 | 042101 | Kl | ASC | ItDA |
0238 | 00444 | 040100 | K19 | OCT | 40100 |
fl239 | 68445 | (.'34080 | K20 | OCT | 340B0 |
«240 | 00446 | 034000 | K21 | OCT | 4000 |
02Al | CP447 | CiH 744 | DARl | OEF | ARl |
0242 | G0450 | 001754 | DAR2 | DEF | AR2 |
0243 | BÖ451 | eßo00fl | BSS | 4 | |
0244 | E 0455 | OCWlI 0 | 0P72 | DEC | 72 |
0245 | Ö0456 | fcaaoßo | BSS | 3 | |
0246 | C0461 | 125252 | KIlO | OCT | 125252 |
0247 | 6 0462 | Cflfi000 | BSS | 1 | |
0248 | 60463 | 051505 | K8 | OCT | 51505 |
0249 | 60464 | C3ß0O0 | BSS | 14 | |
(!250 | C0502 | 177767 | DH9 | ÜEC | -9 |
0251 | C-0503 | CO6CC0 | BSS | 10 | |
£>2Γ>2 | {30515 | •J37777 | K22 | OCT | 37777 |
0253 | C 0516 | c.;a30(i0 | BSS | 4 | |
0254 | 00522 | C52525 | KIl | OCT | 52525 |
0255 | C0523 | 033000 | STLN | BSS | I |
0256 | 60524 | O3f)030 | BSS | 3 | |
0257 | Cu527 | C0KO55 | DP45 | OCT | 55 |
0258 | ßS530 | GOO056 | DP46 | OCT | 56 |
ß259 | Cß531 | CT 2731 | ÜEF | L2F ■ | |
6260 | 0ß532 | 030000 | BSS | 1 | |
0261 | G0533 | G03265 | DEF | L7A | |
fi262 | 60534 | 000000 | USS | 3 | |
e263 | P0537 | C?CI041 | DP33 | OCT | 41 |
0264 | 0054(1 | 6164ΘΒ | K3 | OCT | 16400 |
0265 | eesu | Gfl00C0 | BSS | 2 | |
0266 | 00543 | C32731 | DEF | L2F | |
0267 | 00544 | (V03053 | DP43 | OCT | 53 |
0268 | 00545 | O0OÜO0 | BSS | 3 | |
0269 | 60550 | 177634 | DM100 | OCT | 177634 |
fi270 | 00551 | C30G0O | BSS | 3 | |
0271 | 00554 | 001670 | .IBUF | DEF | .BUF*e |
OCT 10000,12000t14000 OPTION BLOCK ADDRESSES
2 ASCII RLANKS
FISRT WORD OF I/O BUFFER 309832/0843
I/O SUPERVISOR
«273»
(SZT*
S275
8276
e277
6276
C279
C280
«281
6282
«283
. 0284
0285
6286
6287
B288
6289
0290
0291
0292
6293
ß294
C295
€296
0297
C29S
£3299
(SZT*
S275
8276
e277
6276
C279
C280
«281
6282
«283
. 0284
0285
6286
6287
B288
6289
0290
0291
0292
6293
ß294
C295
€296
0297
C29S
£3299
0301
C302
6303
<*3G4
0305
C306
0307
C302
6303
<*3G4
0305
C306
0307
03605
63605 000000
B3610
S3615
ß3622
03627
S3634
63641
03646
63653
G366B
03665
63672
(53677
03704
ß3711
63716
63723
63730
ß3735
0374?
C3747
G3754
Θ37&1
δ 37 66
«3773'
S3615
ß3622
03627
S3634
63641
03646
63653
G366B
03665
63672
(53677
03704
ß3711
63716
63723
63730
ß3735
0374?
C3747
G3754
Θ37&1
δ 37 66
«3773'
0080<50
Ö0-3B26
311142
033300
O08G30
C'04ßl0
Ö0-3B26
311142
033300
O08G30
C'04ßl0
«J37ßfl0
021442
021442
036162
Ö33060
008000
6B4424
008000
6B4424
64β&5
64012
G4017
G4024
S4031
G4036
G4043
64050
64012
G4017
G4024
S4031
G4036
G4043
64050
023Θ77
G77476
C540577
077476
677400
G77476
C540577
077476
677400
nail 77
Ö77577
077476
077476
077462
040176
073176
061540
641410
001020
C1B010
00&177
077476
077476
077462
040176
073176
061540
641410
001020
C1B010
00&177
org rlink bss
SUp
L4 DEC ' DEC DEC DEC DEC DEC DEC DEC DEC
DEC DEC DEC DEC DEC DEC OEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC
DEC DEC DEC DEC DEC DEC DEC
3605B 3 5X7 BIT PATTERNS" (Bit-Muster)
(Ma^netkarten-Treitoer-Anscliluß)
HAG CARD DRIVER LINKAGE AREA
00000, 00000, «0125,00000 ,00!0PlU
00022,24596 **)0n28, ?4596 , 00052
04706,10852»32523,1077l,ß9251
13324,18792,13680,00512,01280 00000,00065,15934,16640,00000
02056,1«760,07230,1p760,02056
00008, «3336, 03592, <*flii08, 00008
0000?, 05)772 , 00776, c* (atf 16 , 00032
15872,17697,18815,20737,15872 08994,17729,13761,18761,12593
03186,05201,09297,32593,01102
07744,10567,13760,10768,01632 13872,18761,18761,18762,13884
00000,13933, 13934,00(300,00903
02324,05396,60930,16660, 0f)020
1668R, 08768, 05139, p. 212.0 t 00048
09791,18760,20043,]6712,15935
32574»]8753,1B753, 1θ753,13358
16767,32585,16713ι16713*15937
32574,1^497,13497,1A581,16455
32512,02113,02175,P2113,32512
{"/{1639, fiw264,.03?76 »00290, 32321
32639,0328Bt 150283, ?S288,00383
32574,04161,02113,01039,32574
32574,13497,1550],19498,12349
32562»!8505,19529,19017,12582
16510,16385,32513,16385,16510 28798,R3B73,«0782,«3»73,28793
25440,fiS136,02063,05136,25440
17160,17695,1870A,20767,24864
0052-8,1 6152, 0H220 ^8216,08208
041«4,08200,32298,00220»04104
00127,00008,00008,00008t00008
BLANK 1
t. »
0 | 1 |
2 | 3 |
4 | 5 |
6 | ? |
8 | 9 |
• * |
I |
<= | |
> - β |
? A |
B | C |
D | E |
F | G |
H | I |
J | K |
L | M |
N | O |
P | Q - - |
R | S |
T | U |
V | W |
X | Y |
Z | PI |
SQR | INV |
+ | ASSIGN |
BOL | EOL |
3098 32/0843
I/O SUPERVISOR
BUFFER STORING MNEMONIC TRANSFORM ROUTINES
(Puff erspeicher-Merkse icher)
0311 02001 ORG 20018
β3ΐ 2· Umwandlgs. -Programme)
0314·
0315· .bf3* is used to store the 8 blt character found in
Location κ into the next available location of the.i/o»
and display buffers respectively.
β2?,01 031723 62082 0257C6
02003 074710 62004 074744 62305 035706
ezaoe 121704
C2P07 02310 02011
0316· «317· «318· «319
«320 «321 0322 0323 6324
0325 0326 0327 0328 0329
0330 C331 C332 0333 C 334
0335 6336·
c337· .r^sg determines the number of letters -1 neeoeo for the
«1338· translation of a keycode to a displayed iwemonlc. calling
0339· sequence:
fl340· 0341· LDA KEYCODE
Θ74113 070346 053427
C2C12 041720 02013 C74113
G2Ö14 Q201S
070346 131704 62ÖI6 074153
02317 074112 C2C2G C45704 02021 170402 L6H
STA K
BF3I LOB .POS SZB L6H SBL STB .POS LDA .WOUF.I
SBP ·*2 RAR AND 0M256 IOR K
SBP »*2 RAR
STA .WDUF,1 S2B »*3 SBH »*2
ISZ .WBUF RET
SAVE CHARACTER
6ET POSITION COOE
IF ZERO EXIT ROUTINE
ELSE SHIFT CODE LEFT ONE
6ET POSITION COOE
IF ZERO EXIT ROUTINE
ELSE SHIFT CODE LEFT ONE
AND SAVE
GET BUFFFR WORD
IF CHARACTER TO BE STORED IH HI PART OF WORD
GET BUFFFR WORD
IF CHARACTER TO BE STORED IH HI PART OF WORD
POSITION BUFFER WORD TO LOW PART
MASK OUT LOW PART OF WORD INCLUDE NEW CHARACTER TO BE STORED
REPOSITION IF CHARACTER
IS PEING STORED IN THE HIGH PART OF WORO
STORE WORD BACK INTO THE SUFFER
IF CHARACTER HAS IN THE LOW PART
INCREMENT BUFFER ADDRESS RETURN
0342· | JSH .8F5G | IS MADE | WITH N-I | IN A. | SKEY | IF TRANSLATION IS NECESSARY |
0343· | CONTAIN | MNEMONIC | WORD» | 1 | ELSE B=0. | |
β 344· | Return | .ΤΛΒ3 | ||||
0345» | B WILL | KEYCODE | CLASS FOR | OPTION | AtI | BLOCK. |
0346» | SKEY | |||||
0347· | CHECK | 160254 ♦ | BF5G JSM | SKCOtI | GET KEYCODE CLASS | |
0348· | 010403 | CPA | DPI | ♦♦2 | OPTION BLOCK? | |
0349 | 62022 | 066645 | JMP | L6A | ö | YESt GO TO L6A |
035ß | 62023 | DP255 | ||||
C351 | 02324 | E IS FOR | BASIC MACHINE. | A | GET COUNT AND MNEMONIC. | |
0352» | DP 3 | |||||
0353» | KEYCOO | CI21544 | LOA | «♦4 | GET KEYCODE | |
0354· | 07fS02 | SAR | DIVlOE RY 2 | |||
(1355 | 02P25 | 008212 | ADA | AMD ADD .TAB3 AOORESS | ||
0356 | C2026 | 070517 | LDA | load symrol information | ||
0357 | 02327 | 025544 | LDB | GET KEYCODE | ||
0358 | C2O30 | 074056 | CMB | AND SKIP | ||
β 359 | G 20 31 | 074111 | SLB | IF EVEN | ||
C360 | C 2032 | 070342 | SAR | REPOSITION SYMBOL WORD | ||
ί»361 | B2033 | 05Π3'.2 | ANO | MASK OUT HIGH PART | ||
0362 | 02334 | Ö70137 | LDD | SET SYMBOL LENGTH-I | ||
0363 | C2035 | Cse401 | AND | IN A | ||
0364 | 02036 | 074210 | SZ0 | IF B=Hi NO TRANSLATION NECESSARY - RETURN | ||
0365 | {12037 | |||||
0366 | 02040 | |||||
309832/0843
226272ί
0367 | (52041 | 074042 | SBR | 2 | 021561 | KEYCOOE. | m | CODE | GET RELATIVE ADDRESS | . CALLING | sequence: | > | KEYCODE TO BE TRANSFORMED | JSH .BF5A | RE MADE WITH THE NEXT | SYMBOL TO,BE STORED IN Κ» Μ IS | I 0» CALLING .BF5B | Ö21720 | .BF5A LDA | WILL GIVE | K | THE NEXT SYMBOL UNTIL M GOES | 035717 | Ö21717 | STB | J | SAVE MNEMONIC CODE | L | GET MNEMONIC CODE | J | SET A«-J |
6368 | 02842 | 004246 | ADB | .TAR6 | 053365 | DP15 | ADD TABLE ADDRESS | SFT TO N-I WHERE N IS THE TOTAL NUMBER OF SYMBOLS TO QE STORED*' | Ϊ0 ZERO. | 66PC22 | JSH | «RF5G | 074117 | LDA | B | SET A<B | Π | POSITION NEXT 5 BIT CODE IN LOW PART OF" | |||||||||||||
0369 | 02043 | 074537 | LOB | B,I | Ö04211 | L6A LDA | .TABl | SET R=MNEMONIC CODE | IF M i | Ö71452 | SAH | L6A-1 | 070446 | RAR | 10 | POSITION 1ST 5 BlT CODE IN LOW PART OF A | L | SAVE MNEMONIC CODE ' | |||||||||||||
Ö370 | Β2044 | 170402 | RET | Ö74737 | AND | 8,1 | RETURN | RETURN WILL | P2051 | 076Ö76 | TCA | LOAD A WITH KEYCODE | 666065 | JMp | • BF5D | CONTINUE | DP31 | SAVE LOW 5 BITS | |||||||||||||
0371» | ADB | C 2852 | 831722 | STA | M | GET LEWTH AND MNEMONIC CODE | DP64 | FORM ASCII CODE | |||||||||||||||||||||||
0372* | transfer control to option block« | Takes | JMp | the a register contains | 62Ö53 | 075310 | SZB | L6A-1 | IF Λ NEGATIVE«RETURN | IS THE | CONTINUATOR FOR A MULTIPLE CHARACTER SEQUENCE. | K | AND STORE IN K | ||||||||||||||||||
β373· | THE RELATIVE | C2054 | SET COUNT NEGITIVE | RETURN | |||||||||||||||||||||||||||
0374» | 02055 | translation | AND SAVE IN M | 021721 | LDA. | ||||||||||||||||||||||||||
0375 | G2045 | SET RELATIVE KEYCODE FOR | 02056 | IF B=Bt THEN NO TRANSLATION NECESSARY | 070506 | RAR | M | INCREMENT AND CHECK MNEMONIC COUNT | |||||||||||||||||||||||
β376 | G2046 | OPTION BLOCK | 031721 | .BF5D STA | .BF5D-2 | NOT DONE, FORM NEXT CHARACTER | |||||||||||||||||||||||||
Β377 | 02047 | TRANSFER TO MNEMONIC GENERATOR OF OPTION | IS NECESSARY. POSITION MNEMONIC WORD AND | 050361 | AND | ||||||||||||||||||||||||||
(1378 | 32050 | IMPLIED RETURN | GET FIRST CHARACTER. | 0353=30 | ADA | ADD A SPACE» ELSE GET LAST | |||||||||||||||||||||||||
0379» | t>31 7?0 | STA | |||||||||||||||||||||||||||||
6380« | .BF5A | THE KEY CODE STORED IN K AND GENERATES A 1 | 02057 | 170432 | RET | ||||||||||||||||||||||||||
0381« | TO 4 CHARACTER SEQUENCE | O2Ö60 | |||||||||||||||||||||||||||||
0382« | 02361 | 045722 | .BF5R ISZ | ||||||||||||||||||||||||||||
0383» | 02062 | S66R63 | JMp | ||||||||||||||||||||||||||||
0384» | ST» K | ||||||||||||||||||||||||||||||
0385» | .BF5B | SPACE | SUPPRESION» | ||||||||||||||||||||||||||||
C386» | CHARACTER | ||||||||||||||||||||||||||||||
«387» | S2063 | ||||||||||||||||||||||||||||||
9388» | 02364 | 02074 | LDA | ||||||||||||||||||||||||||||
0389* | 02Ö6S | ||||||||||||||||||||||||||||||
0390» | 62066 | ||||||||||||||||||||||||||||||
C391 | 02067 | ||||||||||||||||||||||||||||||
G392 | C2070 | ||||||||||||||||||||||||||||||
Ö393 | 02071 | ||||||||||||||||||||||||||||||
6394 | |||||||||||||||||||||||||||||||
0395 | S207? | ||||||||||||||||||||||||||||||
©396 | £»2073 | ||||||||||||||||||||||||||||||
0397* | |||||||||||||||||||||||||||||||
0398» | IF NO | ||||||||||||||||||||||||||||||
ß399« | |||||||||||||||||||||||||||||||
0400» | |||||||||||||||||||||||||||||||
0401 | |||||||||||||||||||||||||||||||
0402 | |||||||||||||||||||||||||||||||
6403 | |||||||||||||||||||||||||||||||
0404 | |||||||||||||||||||||||||||||||
0405» | |||||||||||||||||||||||||||||||
6406» | |||||||||||||||||||||||||||||||
6407» | |||||||||||||||||||||||||||||||
6408 | |||||||||||||||||||||||||||||||
0409 | |||||||||||||||||||||||||||||||
S410 | |||||||||||||||||||||||||||||||
0411 | |||||||||||||||||||||||||||||||
0412 | |||||||||||||||||||||||||||||||
β413 | |||||||||||||||||||||||||||||||
0414 | |||||||||||||||||||||||||||||||
Ö415« | |||||||||||||||||||||||||||||||
0416 | |||||||||||||||||||||||||||||||
0417 | |||||||||||||||||||||||||||||||
6418» | |||||||||||||||||||||||||||||||
0419» | |||||||||||||||||||||||||||||||
0420» | |||||||||||||||||||||||||||||||
0421» | |||||||||||||||||||||||||||||||
«422 |
309832/0843
«423 | ·?β75 071312 | SAM | .BF5D-2 | IF A<0 THEN SUPPRESS SPACE AND FORM LAST CHAR | DEC | • 0F58 | FLT |
«424 | B2076 020360 | LOA | DP32 | ELSE | DEC | 6548 | FXD |
0425 | «2077 C66070 | JHP | .BF5DO | FORM SPACE | DEC | 6916 | SPC |
«426· 0427· |
The following is | the table containing THF three (Dreistellige Merk ζ ei | DEC | 19971 | NOR | ||
0428· | letter nmemonics' | for the 5Τανπλ»ο key codes. . für die Standard-Tar: | DEC | 14Θ34 | TRC | ||
0429· | DEC | 21059 | LOD | ||||
0430 | 6210B 002072 KlH | DEF | DEC | 12772 | GTO | ||
£-431 | 02101 014624 .BFSF DEC | DEC | 7Θ23 | END | |||
<J432 | fl2102 0154P4 | OCT | 5572 | CSB | |||
0433 | fl21P3 C470O3 | DEC | 7770 | IF | |||
0434 | 021P4 034762 | DEC | 22300 | SJP | |||
0435 | 02105 051103 | OCT | 20112 | REC | |||
C436 | 02106 030744 | DEC | 16595 | JHP | |||
0437 | «2107 017217 | DEC | 24660 | ENT | |||
0438 | P2110 G12704 | DEC | 5588 | PRT | |||
«439 | β2111 017142 | DEC | 16983 | E- | |||
0440 | B2112 O223ß0 | DEC | -2764B | RET | |||
C441 | C2113 C47220 | DEC | 18612 | R | |||
0442 | 02114 044243 | OCT | -14336 | OSP | |||
«443 | 32115 024660 | DEC | •V720 | FLG | |||
04 A4 | G2116 012724 | DEC | 14607 | CFG | |||
fi445 | P2117 041124 | 3271 | SFG | ||||
6446 | €2120"112Ü33 | 19655 | |||||
6447 | G2121 044264 | ||||||
C44C | C2122 l4<.ßO0 | ||||||
«449 | C2123 Ü1H62 | ||||||
6450 | P2124 P14fi07 | ||||||
6451 | <i?125 C063O7 | ||||||
C452 | «2126 D46307 |
309832/0843
I/O SUPERVISOR
0454* ©455* |
INITIATION ROUTINE | 172741 .INT- | STF | SET LIMl | LDA | 1 | K3 | 020321 | LDA" | .ENDl | "(Start | OF SYSTEM R/W MEMORY. | - | • | SET LIMl TO POINT TO | LINK | LINK | CODE. |
«456· | P24442 | LDB | SET .STPT TO | STA | K14 | LIMl | 031710 | STa | .END2 | 16400B - START OF USER R/W MEMORY . | SET SYNTAX LINK. | HAVE ADD-ON BLOCK | ||||||
<3457· | 070742 | SAR | SET OSW | LDA | 16 | DMl | DISABLE KEYBOARO | SET FOR NON NUMERIC ANSWER | SET EXECUTION | |||||||||
β458· | 015377 | CPB | SET UNCTR | STA | MAW ' | .STPT | SET UP LINKAGE FOR | 6ET ADDRESS OF 1ST WORD OF SYSTEM R/W MEMORY | • | |||||||||
0459 | 066136 | JMP | SET NCODE | •♦3 | NRSLT | tuen | SET A<-0 | |||||||||||
0460 | 074557 | STa | 026540 | BiI | CMPLR | DONE? | GET NOMAL COMPILER ENTRY ADDRESS | |||||||||||
0461 | 677670 | RIB | 031543 | *-3 | OSW | 1. | YES. JUMP OUT OF LOOP | SET IT INTO SWITCH OSW | ||||||||||
C462 | DISABLE KEYBOARD AND CLEAR ALL | 0284ß5 | K10 | 2. | STORE <B>*0 | . GET NORMAL MNEMONIC CONTINUE ADDRESS | ||||||||||||
fi463 | JSM STACK POINTER | 031550 | AND SET | NCODE | 3. | RECYCLE | SET IT INTO SWITCH NCODE | |||||||||||
0464 | 62127 | 031572 | DP72 | 4. | BSTK<-72 | |||||||||||||
0465 | C2130 | 020440 »INT2 | C52Ö314 | K12 | BSTK | 5. | FLOAT 9 AND FIXED 0. | SET SYSTEM EXECUTION STACK SIZE | DO ITS INITIATION AND RETURN. | |||||||||
β466· | Π2131 | 139441 | 031560 | K13»I | ||||||||||||||
Ö467* | G2132 | 623343 | O2?lß0 | DP144 | AOD DAISY CHAIN END LINK WORD. | ELSE | SET A«-1761B (FIRST WORD USED BY RET STACK) | - | ||||||||||
«468« | 02133 | G31703 | Ö31620 | .WPRT | SAVE IN STACK POINTER (1777) | |||||||||||||
Ö469 | 02134 | 020455 | C2155 | SET .WPRT TO BE FLOAT 9 | GET NORMAL END ENTRY ADDRESS | |||||||||||||
6470 | 62135 | DO THE FOLLOWING | 031615 | Ö2156 | WHEN THE MACHINE IS TURNED ON | SET IT INTO LINK WORO .EMD2 | ||||||||||||
C471 | ||||||||||||||||||
e472 | Reset | 1. | ADD-ON BLOCKS. IF BLOCK IS PRESENT | |||||||||||||||
6473«» | 2. | ADDRESS OF Ac, | DO THE FOLLOWING | |||||||||||||||
C474» | C2136 | 4. | - | |||||||||||||||
6475» | £2137 | 5. | ||||||||||||||||
ß476* | 32140 | 6. | SET CONFIGURATION | |||||||||||||||
G477· | 02141 | G2142 | LDA | SET MNEMONIC | ||||||||||||||
6478» | S2143 | STA | ||||||||||||||||
€479* | 02144 | LDA | ||||||||||||||||
0480» ΛΑ Ο ^ Λ |
G2145 | STa | ||||||||||||||||
C482 | C2146 | STA | ||||||||||||||||
6403 | C2147 | LDA | ||||||||||||||||
6484 | 62150 | STA | ||||||||||||||||
0485 | C2151 | LDA | ||||||||||||||||
C486 | C2152 | STA | ||||||||||||||||
6487 | 62153 | LDA | ||||||||||||||||
ß488 | 02154 | STA | ||||||||||||||||
ß489 | ||||||||||||||||||
«490 | ||||||||||||||||||
C491 | ||||||||||||||||||
C492 | ||||||||||||||||||
C493« | ||||||||||||||||||
0494* | ||||||||||||||||||
0495· | ||||||||||||||||||
ß496 | ||||||||||||||||||
0497 | ||||||||||||||||||
0498» | ||||||||||||||||||
0499° | ||||||||||||||||||
O50R» | ||||||||||||||||||
0501· | ||||||||||||||||||
G5ß2» | ||||||||||||||||||
0503« | ||||||||||||||||||
0504« | ||||||||||||||||||
«5ßS« | ||||||||||||||||||
0506» | ||||||||||||||||||
0507· | ||||||||||||||||||
0508» | ||||||||||||||||||
S509» |
30 9332/0843
0530 0531 0532 «533 CS34
1. SET REJECT SYNTAX LINK. 3. REJECT MNEMONIC LINK.
THE AOD-ON BLOCK ΜλΥ NOT USfT THE FOLLOWING SHARED R/W MEMORY
WORDS DUPNING ITS INITIATIONS: LtMtfc N.
62157 C20247 LOA .TAB7 FORM ADDRESS OF OPTION BLOCK
02160 03fi401 ADA DP3 LINKAGE AREA
«2162 02G3O1 . LOA .IL2 A*SYNTAX REJECT LINK WORD
92164 020302 LDa .IL2*1 A*EXECUTION REJECT LINK WORD
02166 020303 LDA . IL2»2 A*-MNEMONIC «EJECT LINK WORO
«2170 «2171 12172
82173 C2174 S2175 C2176
«2177 62200 62201 82202
P2203 P2204 «2205
02206 C2207 «2210
02211 «2212 62213
02214 82215 02216 82217
Ö2220 02221
020247 031722 OP0407
031723 020256 O2C433
Γ/31721 121721 .IB 031720 025722
031717 121720 L6F Ο7Β410
141721 074557 ß457?0 004401 C45717
066204 161720
C45722 L6B 045721 C45723
066177 164317
β2222 024436 .IA
«2223 131722 62224 045722
02225 077730
02226 170402
LOA .ΤΑΘ7 STORE ADDRESS OF OPTION BLOCK
STA M TARLE IN M
LOA DM3 SET
STA N N«·-3
LDA .TAB4 SET
ADA DPI L«-.TA94*1
STA L (LINK ADDRESS TO 1ST OPTION BLOCK)
LDA LtI GET BASE ADDRESS OF OPTION BLOCK
STA K ANO SAVE
LOB M SET B*OPTION BLOCK TABLE ADDRESS
LDA DM4 SET J«-4
STA J
LDA KtI READ OPTION BLOCK WORD
SZA L6B IF ZEROi SKIP TO NEXT BLOCK
IOR LtI ELSE AOD RASE ADDRESS
STa BtI AND SAVE IN THE TABLE
ISZ K INCREMENT OPTION BLOCK ADDRESS POINTER
ADB DP3 ADVANCE TABLE ADDRESS BY
ISZ J LINKAGE FINISHED?
JMP L6F NO, CONTINUE TO LOOP
JSM KtI YES» LET OPTION BLOCK DO IT«S INITIALIZATION
ISZ-M INCREMENT TABLE ADDRESS
ISZ L INCREMENT OPTION BLOCK LINK WORO
ISZ N ALL THR(TE BLOCKS DONE?
JMp .IB NO, CONTINUE TO LOOP
JHP 317BtI . YESt GO TO SYSTEM END ROUTINE
LOB DM2 SET B«--2
STa Mtl <M>*(A>
ISZ M INCREMENT M
RIB «-2 IF 000· THFN B«-B»l AND LOOP
RET ELSE RETURN
LIRA IS USED TO RESF.T EITHER THE DISPLAY OR I/O
BUFFER WITH BLANKS. CALLING SEQUENCE
309832/0843
I/O | SUPERVISOR | 031722 | U8A STA | H | |
•566· | LOA (BUFFER ADDRESS» | 031704 | STa | ♦ WBUF | |
«567· | JSM L18A | 020436 | ■ ' LDA | K9 | |
0568· | 024413 | LOB | DM7 | ||
«569 | Θ2227 | 131722 | STa | M, I | |
«570 | €2230 | P45722 | ISZ | M | |
Ö571 | «2231 | 077733 | RIB | •-2 | |
0572 | «2232 | 620522 | LDA | KIl | |
C573 | G2233 | 031706 | STA | .POS | |
6574 | 62234 | 170402 | RET | ||
6575 | ß 2235 | ||||
6576 | 02236 | ||||
fi577 | 62237 | ||||
0578 | 62240 | ||||
ffORMAT ROUTINES
IN M AND .WBUF A«-2 ASCII BLANKS B«~7
STORE BLANKS
IN ALL 8
BUFFER WORDS RESET
HI/LOW POINTER (52525) RETURN
226272!
(Formatprogramrae)
309832/0843
I/O SUPERVISOR
«580» 05β1· β5Β2·
0583· «584· «585· 0586· 0587»
6588· 0589» 0590 0591 0592
C593 «594 C595 C596
6597 C598 0599 0630
6601 0602 0603 6604
.flt and .fxo set the display format for the 9000a.
calling sequence is:
lda parameter count ldb signle digit,
jsm .flt (or' .fxd)
IF B IS NEGITIVE THEN DON'T.CHANGE SETTING OF N.
N ACCORDING THE VALUE FOUND IN THE B REGISTER.
OTHERWISE SET
02241
C2242
C2243
02244
C2245
«2246
02247
62250
02251
C2252
02253
Ö2254
S2255
02256
Ö2257
C2242
C2243
02244
C2245
«2246
02247
62250
02251
C2252
02253
Ö2254
S2255
02256
Ö2257
C21703 070073 074552 078146
650420 074217 073546 066256
C217G3 C72C-52 074152 05(5420
074217 031783
17fl402
.FLT
.FXO
L6C
LDA | .WPRT | CLEAR FIXED FLAG | TO L6C |
SAP | •♦itC | ||
SBM | L6C | IF NO DIGIT SENTt GO | |
RAR | 4 | ELSE POSITION | OF .WPRT |
AND | DM16 | AND SET NEW VALUE | |
ior | B | N FOR FLOAT PART | |
RAR | 12 | ||
JMp | L6C | GO TO L6C | |
LDA | .WPRT | SET FIXED | TO L6C |
SAH | •♦1»S | FLAG | |
SBM | L6C | IF NO DIGIT SENT» GO | .WPRT |
ANO | 0H16 | ELSE SET NEW VALUE OF | |
IOR | B | M FOR FIXED PART OF | |
STA | .HPRT | SAVE .HPRT | |
RET | RETURN | ||
309832/0843
I/O SUPERVISOR
«606·
5607· .fmt2 is used by the system for rebuilding the previous
€608« result, when called» .fmt2 will take the last result of
s609« the stack and if it is a nuhfric result* tt will rebuild
6610* the result according to the present format. otherwise»
«611» it will transfer the ascii string found in .ibuf for display.
0613 | C2260 | 021550 | .FMT2 LDA .STPT |
C614 | 62261 | C70744 | SAL 1 |
C615 | 02262 | 070132 | Sam **2»c |
€616 | 62263 | C62267 | JSH .FMT-I |
P617 | Ö2264 | 020554 | LDA .IBUF |
0618 | 62265 | 024207 | LDB .OBUF |
6619 | 62266 | 066525 | JMp .BXFR |
A<-ADDRESS OF LAST RESULT SHIFT A LFFT 1
IF A<0 THEN RESULT IS ALPHA - SKIP FMT ROUTINE
ELSE CONVERT LAST NUMERIC RESULT TRANSFER I/O BUFFER
TO DISPLAY BUFFER IMPLIED RETURN
fl621»
0623«
ß624* THE FORMATTER CONVERTS THE DATA WORD SPECIFIED BY THE ADDRESS
§625« FOUND IN THE A REGISTER ACCOROING TO THE FORMAT STORED IN THE
e626» 982BA. THE OUTPUT IS PLACED IN THE I/O BUFFER ON RETURN.
G627*
C629» 6630» G631»
C632
0633
0634
C636* 0637«
0638* 0639
fi640
G641
€642« €643* 0644«
6645° 0646· 0647» 0648» 6649» 6650»
Ö651· Ö652
RESET 1/0 REGISTER.
C2267 O700C2 - SAr
62270 031734 .FMT STA
02271 020554 LDA .IBUF
Θ2272 062227 JSH L18A
CHECK FOR FIXED OF FLOAT FORMAT
C2273 021703 C2274 Ö70113
02275 066353
LDA .WPRT SAP FLOAT JMP FIXED
REPOSTION ADDRESS FOR .FMT2 ROUTINE SAVE ADDRESS OF DATA WORD
RESET I/O BUFFER AND IT'S POINTERS
A«·. WPRT
IF A(15)«l THEN FLOAT CONVERSION ROUTINE ELSE FIXED CONVERSION ROUTINE
FLOATING POINT ROUTINE. USE FOLLOWING FORMAT. SX.XXXXXXXXXESXX
IF FLOAT N IS LESS THEN 9» THEN S IS MOVED TO THE RIGHT (9-N) PLACES AND THE HOLE IS FILLED WITH RLANKS.
FIRST ROUND THE <N*2> OIGIT OF THE MANTISSA.
02276 B21703 FLOAT LDA .WPRT A«-.WPRT
3 0 9832/084 3
I/O SUPERVISOR
«653 | 0Ρ277 | C70146 | 021754 | RAR | 4 | GET VALUE OF FLOAT N | AR2 | GET AND POSITION EXPONENT |
«654 | «23P0 | C50365 | 070340 | AKD | DP15 | AND SAVE | 8 | |
«655 | 023CU | 031732 | 070113 | STA | 13 | IN 13 | •♦2 | IF EXPONENT >*99 |
«656 | 02302 | 030502 | O7R076 | ADA | DH9 | STORE 9-(FLOAT N) | ||
0657 | 02303 | 062440 | G24355 L246 | JSM | L24A | BLANKS IN I/O BUFFER | DP48 | THEN TRANSFER ORGINAL |
«658 | 023(14 | 021734 | 035720 | LDA | 15 | ROUND DATA WORD IS | K | NUMBER INTO AR2 |
«659 | fl23ß5 | 025732 | 031722 | LDB | 13 | IN THE N«2 DIGIT | H | |
0660 | 023C6 | 034402 | 038415 | ADB | DP2 . | DM10 | SET E«-0 TO | |
0661 | 02307 | C62471 | 070152 | jsh | .RNO | •♦3 | STORE SIGN OF MANTISSA IN TO THE BUFFER | |
0662· | 045720 | K | STORE 1ST DIGlT | |||||
0663· | CHECK | THE VALUE OF | 066342 | THE | EXPONENT | AND IF IT IS OUTSIDE OF THE | • -4 | INTp THE BUFFER |
«664· | Range | OF *99· THEN | 062002 | USE | THE OHIGlNAL NUH-3ER WITHOUT ROUNDING. | .BF3I | STORE DECIMAL POINT | |
«665· | 021722 | M | INTO THE BUFFER | |||||
0666 | 02310 | Ö21754 | 033355 | LDA | ARZ | DP48 | IF I3«0 THEN | |
«667 | 02311 | 073340 | 066001 | AAR | 8 | .BF3I-1 | STORE N OIGITS | |
«668 | β2312 | O3Q550 | ADA | DM100 | INTO THE BUFFER | |||
«669 | 92313 | 070212 | SAh | L24H | STORE ASCII E | |||
«670 | 02314 | 021734 | LDA | 15 | INTO THE BUFFER | |||
«671 | C2315 | 024450 | LDB | DAR2 | SET E*l TO | |||
6672 | 02316 | 170034 | XFR | STORE SIGN OF THE. EXPONENT INTO THE BUFFER | ||||
«673 | 02317 | 079075 L24H | SEC | •♦1»C | ||||
«674 | 02320 | 062447 | JSH | L24B | ||||
«675 | 02321 | C2E403 | LDA | DPI | ||||
€676 | C2322 | C62457 | JSh | L24C | GET EXPONENT AND | |||
6677 | 02323 | 020530 | LDA | DP46 | POSITION | |||
0678 | 62324 | 062001 | jsh | •BF3I-1 | IF EXPONENTS | |||
«679 | S2325 | 021732 | LOA | 13 | THEN A«--A | |||
0680 | 02326 | 070110 | sza | •♦2 | STORE ASCII "0" | |||
0681 | 02327 | C62457 | JSH | L24C | IN K | |||
«682 | 02333 | C204 84 | LDA | K6 | SAVE LAST RESULT | |||
6683 | β 2331 | C620U1 | JSm | .BF3I-1 | DECREMENT A BY 10 | |||
«684 | 62332 | 072054 | SES | «♦l.S | EXIT LOOP IF A<0 | |||
β685 | 02333 | 062447 | JSh | L24B | ELSE INCPEHENT κ | |||
0686« | ANO COMTINUE TO LOOP | |||||||
6687° | CONVERT AND STORE | HANTISSA. | STORE 1ST DIGIT OF EXPONENT | |||||
C6ß8· | FORM 2ND ASCII DIGIT OF | |||||||
0689 | 02334 | LOA | THE EXPONENT AND STORE IT IN THE BUFFER | |||||
G690 | «2335 | AAR | IMPLIED RETURN | |||||
«691 | 02336 | SAP | ||||||
0692 | C2337 | TCA | ||||||
«693 | 02340 | LOB | ||||||
0694 | 02341 | SIB- | ||||||
0695 | 02342 | STA | ||||||
0696 | 92343 | ADA | ||||||
0697 | C2344 | SAH | ||||||
C698 | 02345 | ISZ | ||||||
Φ699 | C 234 6 | JMP | ||||||
«700 | «2347 | JSH | ||||||
«701 | 02350 | LDA | ||||||
0702 | 02351 | ADA | ||||||
0703 | 82352 | JMP | ||||||
309832/0843
■*# ■ ■ ■ 226272!
I/O SUPERVISOR 0705· β706· in fixed mode» the format contains a sign (blank for plus),
0707» a decimal point» and up to tfn digits. lfading zeroes up
«708« to the rfcimal point are suppressed· the f.ntire format is
«709· rignt justified in the right most 12 columns» the decimal
«710· point is in column n»i, where ν is the decimal setting
0711· over the range 0 to
C713» FIRST. CHECK TO SEE THaT DATA WORD HILL FIT INTO FIXED FORMAT.
671'»· IF NOT» USE FLOAT FORMAT.
C715» .
«716 C2353 G50365 FIXED AND DP15 GET FIXED N
6717 C2354 031731 STA 12 AND SAVE IN
C718 62355 121734 LDA I5tl GET AND POSITION
(3719 02356 076340 AAR 8 EXPONENT
C720 02357 Ö30403 ADA DPI ADD 1 TO DETERMINE NUMBER OF DIGITS TO THE
C721 02360 C31733 STA IA LEFT OF THE DECIMAL POINT AND SAVE IN 14
3722 62361 C31731 AOA 12 ADD NUMBER OF DIGITS TO RIGHT OF THE DECIMAL POINT
(5723 62362 031732 STA 13 TO BE DISPLAYED AND SAVE TOTAL DIGITS FOR DISPLAY
{$724 Ö2363 03(3416 ADA OMIl IF THE AROVE NUMBER IS
>
e725 G2364 !570112 SAM **2
6726 02365 Ü66276 JMP FLOAT THEN THE FLOAT CONVERSION MUST BE USED
Ö727· - - ,
0728* ROUND THE (N+l) DIGIT AFTER THE DECIMAL POINT. IF MANTISSA
0729* OVERFLOW OCCURES, INCREMENT 13 & 14«
C731 82366 G21734 LDA IS ROUND DATA POINT
(5732 02367 025732 LDB 13 IN DIGIT 13*1
Q733 9237P 0344(33 ADB DPI . .(1ST DIGIT NOT To BE DISPLAYED)
C734 Q2371 G62471 JSm .RND
Ö735 Ö2372 074253 SBP L6D IF NO CARRY OCCURED ON ROUNDING, GO TO L6D
€736 G2373 G45732 ISZ 13 ELSE INCREMENT NUMBER OF DIGITS TO
Ö737 »62374 070855 SEC »«-1 THE LEFT OF THE DECIMAL POINT
0738 «52375 C-45733 ISZ 14 INCREMENT TOTAL NUMBER OF DIGITS TO
S739 82376 070355 SEC ««-1 BE DISPLAYED
6741· SET UP LEFT MOST BLANK FIELD AND STORE SIGN OF MANTISSA.
0743 62377 025733 L6D LDQ 14 B«- NUMBER OF DIGITS TO THE LEFT OF THE DECIMAL POINT
«744 02400 021732 LDA 13 A«-TOTAL NUMBER OF DIGITS TO BE DISPLAYED
5745 ß24ßl 074113 SBP »+2 IF R<0 THEN SET A«-I2
6746 Ö2402 021731 LDA- 12 (NUMBER OF DIGITS TO RIGHT OF DECIMAL POINT)
fl747 02403 C25731 * LDB 12 IF 12=0 (INTEGER DISPLAY)
0740 (52404, 076110 R2B * + 2 THEN DECREMENT VALUE
{$749 G2405 083405 ADA DMl OF THE NUMBER OF CHARACTERS TO BE DISPLAYED
0750 «2406 030330 ADA DM14 DETERMINE THE NUMBER OF LEADING BLANKS
Θ751 «2407 062440 JSM L24A AND THEN STORE THEM IN THE BUFFER
6752 02410 070075 SEC «*1»C SET E«-0 TO
C753 Ö2411 G62447 JSm L24B STORE SIGN OF THE MANTISSA IN THE BUFFER
0755« STORE DIGITS TO RIGHT OF DECIMAL POINT IF ANY. THEN
0756· ADO DECIMAL POINT.
0758 02412 021733 LDA 14 ' IF I4>0
0759 B2413 O7O210 S2A **4
8760 Ö2414 Ö70152 SAM **3
309832/0843
0761 | «2415 | 862*57 | 021733 | JSM | LDA | L24C | THEN STORE IA DIGITS IN TME BUFFER |
0762 | 02416 | C6f>423 | 070413 | JMP | SAp | L6G | AND SKIP TUE INTEGER TEST |
fl763 | t24l7 | C21731 | C3I721 | LDA | sta | 12 | IF 12 H fl (NON-INTEGER MODE) |
«764 | «12420 | 072150 | 021706 | RZA | LDA | L6G | THEN GO TO L6G |
«765 | D2421 | 02P276 | U73650 | , LDA | SZA | K15 | ELSE STORE AN INTEGER 0 |
0766 | B2422 | 1317B4 | 020355 | STa | LDA | .WBUFtI | IN THE BUFFER |
0767 | 82423 | C22530 | 'J62001 | L6G LOA | JSM | DP46 | STORE A DECIMAL POINT |
C768 | «2424 | C620O1 | C45721 | JSM | ISZ | .BF3I-1 | IN THE BUFFER |
«769· | C66430 | JMP | |||||
0770» | STORE | ZEROES | 021731 | AS NEEDED | L6E LDA | AND THEN | DIGITS TO RIGHT OF |
«771· | DECIMAL POINT | 066457 | • | JMP | |||
0772· | |||||||
0773 | 02425 | 14 | IF 14 NOT < 0 | ||||
0774 | 02426 | L6E | THEN GO TO L6E | ||||
0775 | 62427 | L | SAVE THE VALUE OF THE NUMBER OF ZEROES TO BE STORED | ||||
S776 | Ö2433 | • POS | BUFFER FULL? | ||||
C777 | 02431 | L24E | YESf EXIT ROUTINE | ||||
S778 | 02432 | DP48 | NO, STORE ANOTHER | ||||
C779 | 02433 | .BF3I-1 | • ASCII ZEHO IN THE BUFFER | ||||
07ßß | 02434 | L | MORE ZEROS NEEDED? | ||||
07Sl | Ο 2435 | •-5 | YESt CONTINUE TO LOOP | ||||
0782 | «2436 | 12 | NO, STORE 12 DIGITS | ||||
0783 | 62437 | L24C | IMPLIED RETURN | ||||
070313 L24A 031723
02440 C2441
02442 O2P360
02443 C6?C6l «2444
«2445 02446
C45723 066442 170402 L24E
SAP L24E
STA N
LOA DP32
JSM
ISZ
JHP
RET
.BF3I-1
•-3
if a not < 0 then ret save count store ascii
blank tn the ruffer kore blanks needed?
yes» continue to loop
no. return
E=O E=I
MANTICSA EXPONENT
62447 C21754 L24B
02453 070114 62451 070036 C2452 070153
02453 P20527 82454 U66031
B2455 «2456
02fl36fl C660O1
SES **2 IF En0
SAP ·*3 IF A(IS)=I
«812· BEFORE EACH DIGIT IS STORED, A CHECK IS MADE TO SEE
309832/0843
0813·
0814«
0814«
7HAT I/O BUFFER IS NOT FULL.
0816
6817
6817
β819
€821
6823
,6824«
€825*
«826*
6827*
,6824«
€825*
«826*
6827*
Q2457 031721 L24C 62460 021706
Q2461 671250 S2462 171490
(52463 030355 02464 062001 62465 055721
02466 066460
02467 1764S2
STA L
LDA .POS
SZA L2AE
MLS
ADA DP48
JSH .BF3I-1
DSZ L
JMP L24O1
RET SAVE THE COUNT IF THE BUFFER IS FULL
THEN EXIT THIS ROUTINE GET NEXT DIGIT
FORM ASCII CHARACTER BY ADDING THE OFFSET STORE THE CHARACTER IN THE BUFFER MORE DIGITS?
YES CONTINUE TO LOOP NO» RETURN
0829«
0838«
0831*
6832»
0833*
€1834«
€835*
0836
6837
6838
.RNO IS USED TO ROUND DIGIT N OF A DATA WORD STORED 11$ STANDARD
INTERNAL MÄCHINE FORM. THE GUARD DIGITS ARE ALSO ROUNDED.
THE CALLING SEQUENCE IS:
LDA ADDRESS OF DATA WORD TO BE ROUNDED. LDB DIGIT POSITION TO BE ROUNDED
JSH .RND
JSH .RND
IF MANTISSA OVERFLOW OCCURES, BOTH THE MANTISSA AND EXPONENT
WILL BE ADJUSTED AND THE A REGISTER SET TO -1.
«840
β 841
C842
Ö843
«844
0845
CB46
G847*
6848*
G2470 82471
Ö2472 B2473 62474 C2475 62476 62477 625 PB E25D1 62502
Ö2472 B2473 62474 C2475 62476 62477 625 PB E25D1 62502
024367 B3573Ö 075652 S75610 024450 17(3034
02ß447 17OÖ30 02(3377
025730 174430
► RND
LDB DP13 STB Il SBM *-3 SZB »-4 LDB DAR2 XFR
LDA DARl CLR
LDA DPS LDB Il MRX
also round digit
C850 .
C851
CB52
G853
C854
C8556
G2503 G20347
02504 041747
02505 031747 CP.506 i)7fi075
C2507 170560
LDA DP80 IOR AR1*3 STA AR1+3
SEC **1»C FXA.
test for mantissa overflow.
6857»
{!858
C859
0Ö61
€862
C863
(J864
C865
0866
0867
©868
€862
C863
(J864
C865
0866
0867
©868
02510 02511 f-2512
82513 02514 02515 62516
02517 02523 P2521
62522
S21757 253427
031757 17C)Cfl2 073350 07CI37
174470 025754 004341 035754 024405
LDA AR2+3
AND DM256
STA AR2*3
MOV
SZA L24F
LDB A
MRY
LDB AR2
ADB DP256
STB AR2
LDfl DHl USED INEQUALITIES SAVE DIGIT POSITION
IF B NOT > 0 THEN RETURN TRANSFER DATA WORD TO BE
ROUNDED INTO AR2 CLEAR ARl
SET A 5 INTO DIGIT POSITION OF ARl THAT IS TO BE ROUNDED
INCLUSIWE OR A 5 INTO DIGIT 11 (LEADING GUARD DIGIT) OF ARl
SET E«-0
DO Λ FLOATING ADD
ZERO DIl AND .012
IF A=0 THE RETURN MOVE THE CARRY DIGIT INTO MANTISSA FIELD
INCREMENT EXPONENT VALUE
309832/0843
0869 | 62523 | P2C.50 L24F | 031721 .BXFR | LDA | DAR2 | ?DS IN | OF BUFFER <A> TO BUFFER <B>. |
«870 | 62524 | 17C4E2 | 035720 | RET | L | LENGTH. | |
6871» | 024413 | K | SAVE L*A | ||||
0872» | .RXFR | TRAMSFERS THE | 121721 | CONTENTS | DM7 | AND Κ+β | |
«873· | ALL TRANSFERS ARE. 8 | 131720 | W ΟΓ | L,I | SET B«-7 | ||
0875 | 452525 | G45721 | STA | KtI | TRANSFER ALL 8 WORDS | ||
e876 | 02526 | 045720 | STB | L | FROM BUFFER L TO BUFFER K | ||
«877 | CP527 | 077630 | LDB | K | |||
«878 | 02530 | 1704C2 | LDA | ||||
«879 | G2531 | STA | IF NOT DONE THEN CONTlHUE TO LOOP | ||||
«880 | «2532 | ISZ | RETURN | ||||
6881 | f?2533 | ISZ | |||||
0882 | B2534 | RlQ | |||||
0883 | C2535 | RET |
309832/0843
I/O SUPERVISOR
226272!
PRINTEHf ROUTINES (Druckerprogramme)
«885»
0887·
Θ888·
€889* The bit pattern for the thermo printer is as follows:
0890»
fl891» | DDDDDCCCCCXXXSGG 2 | ND WO | RD . | A = 1ST | CHARACTER | ADVANCE | CODE | • | 69 03*** β ♦**♦«*« »**«»*»»«■«·*« **»»*«»β»«*» | SET ROW COUNT | C3204I3 | G62662 | » SHIFT COUNTt | DM7 | 021726 | C62672 | L3 LDA | FORM BIT PATTERN | S | AND MASK. · | P REGISTER. | ■ | • |
0892» | B n 2ND | CHARACTER | USED | 0904* | 031727 | 066554 | T | 000423 | 025725 | AOA | DM32 | GET PATTERN INFORMATION FOR NEXT CHARACTER | |||||||||||
0893« | . BBBBBAAAAAXXXXXX 1ST WORD | C = 3RD | CHARACTER | 0905« | C2536 | 02S434 | ,PRTl LDA | K5 | 631726 | 070742 | sta | S | SET ROW COUNT TO -7 | L3B*1 | B+BIT MASK· | ||||||||
0894» | D = 4TH | CHARACTER | Ö9S6» | 62537 | .031726 | STA | S | 025725 | LDa | R | AND SAVE IT IN T | R | A«-0 | ||||||||||
6895» | where | G s 1 OF 4 GROUP | -6907 | C2540 | 020444 | LDA | K19 | 074092 | SBR | 1 | SET "SGR" 7» INSTRUCTION | 16 | |||||||||||
€896* | S = ROW | C908 | 02541 | 0317-25 | STA | R | £135725 | stb | R | ' AND SAVE IT IN S | |||||||||||||
S897» | X .= NOT | 0939 | S 2542 | LDA | 020423 | L3A LDA | DH16 | SET BIT MASK | |||||||||||||||
0898» | #910 | S 2543 | INITIALIZE Il | STA | 13. | 031720 | STA | K | AND SAVE Π IN R | ||||||||||||||
6899» | 5911 | 022207 | LDA | .DBUF | |||||||||||||||||||
«900» | C'912 | C2S44 | t I2t AND | L3F | 031721 | sta | L | ||||||||||||||||
«901* | €913» | Ö2545 | L3A | ||||||||||||||||||||
(1902» | 69)4» | JSM | DO SUBROUTINE | AND CLEAR | INITIALIZE 11» 12» ANO 13 | ||||||||||||||||||
0915» | JHP | THEN | CONTINUE AT L3A | ||||||||||||||||||||
0916 | COUNT» BUFFER | 02560 | L3C JSm | ||||||||||||||||||||
€917 | ADVANCE PRINTER ONE ROW | AnO MODIFY SHIFT COUNT | 02561 | LDB | |||||||||||||||||||
6918»' | SET CHARACTER | C2562 | SAR | ADDRESS» MASK, " · | |||||||||||||||||||
0919* | 02546 | ||||||||||||||||||||||
Ö92G» | 02547 | ||||||||||||||||||||||
(«921» | C2550 | DECREMENT SHIFT | |||||||||||||||||||||
Θ922» | C25S1 | INSTRUCTION BY 1 | |||||||||||||||||||||
6923 | G2552 | AND SAVE IT " | |||||||||||||||||||||
6924 | C 2553 | SHIFT BIT MASK RIGHT | |||||||||||||||||||||
0925 | C'2554 | BY ONE | |||||||||||||||||||||
€926 | 02555 | AND SAVE IT | |||||||||||||||||||||
0927 | €2556 | SET CHARACTER C0UNT+-16 | |||||||||||||||||||||
«928 | 62557 | AND SAVE IT IN K | |||||||||||||||||||||
C929 | GET ADDRESS OF CHARACTER BUFFER | ||||||||||||||||||||||
0930 | AND SAVE IT IN L | ||||||||||||||||||||||
C931 | |||||||||||||||||||||||
C932 | |||||||||||||||||||||||
C933» | |||||||||||||||||||||||
0934* | |||||||||||||||||||||||
fl935» | |||||||||||||||||||||||
6936 | |||||||||||||||||||||||
0937 | |||||||||||||||||||||||
0938 | |||||||||||||||||||||||
C939» | |||||||||||||||||||||||
C940» | |||||||||||||||||||||||
309832/0843
«941· C942 »943
0944 «945 «946
«947 C948
«976 <J977» 0978·
0979· C980· €981 C982 ß983 C984 (5985
0986 ß987 C988· 0939· 0990· 0991 «992 «993·
C994· 6995· «996·
«2563 «31724 Ll «2564 121722
P2565 074257 B25f)6 041724
«■2567 0707fl6 e2570 045722
62571 P45723 B2572 066563
LOa Μ»! AND B IOR P
RAR ISZ M ISZ N JHp Ll
SAVE LAST RESULT
GET 7 BIT PATTERN MASK PROPER BIT
INCLUDE LAST PATTERN RESULT
POSITION PESULT LEFT 1 INCRFMEMT ADDRESS TO GET NEXT PATTERN
HAVE ALL 5 BITS BEEN GATHERED? NO, CONTINUE TO LOOP
«950· position and mask 5 bits.
«952· β953 C954 β955 <3956
«957 C958 0959 C960* 6961·
«!962» «963· 0964 «965 6966
0967 «ι968
6969 0970· C971» 0972* 0973·
{1974
02573 C2574 02575 «2576
62577 02600 C2601
070137 073114 074346 021726 070016 074117 050361
LDB A SES «*2 RBR LDA S
E*A LDA AND DP31
YES, POSlTIOM IT LOW SET A«-VARIABLE SHIFT INSTRUCTION
EXECUTE THE INSTRUCTION FOUND IN A A*B
SA.VE ONLY LAST 5 BITS
041732 IOR 13 INCLUDE LAST 5 RIT PATTERN
O7C206 RAR 5 POSITION NEW RESULT
Ö45731 ISZ 12 FIRST UORD FILLED?
066610 JhP *»3 NO. SKJP 2 INSTRUCTIONS
(331733 STa 14 YES» SAVE I'k-a
070742 SAr 16 ANÜ SET Α«·β
02602 02603 02604 C2605
02606 02607 (13=0 OTHERWISE)
CONTINUE PROCESSING. STORE A IN 13 AND TEST TO SEE IF
GROUP IS READY FOR OUTPUT.
C2610 031732 P2611 045730
C2612 066622
STa ISZ Il JMP LlA
SECOND WORO FILLED? NO, CONTINUE AT LlA
INCLUDE GROUP COUNT AND OUTPUT PATTERN. INTITI ALI ZE II» 12, AND 13.
THEN
Θ2613 02614 Ρ2Λ15
02616 02617 62623 62621
C21720 C.I (1364 P/0042
0^1732 C25733 C62642
C62662
02622 045720 LlA
02623 066560
LDA | K | K |
ADA | DP16 | L3C |
SAR | 2 | |
IOR | 13 | |
LDB | 14 | |
JSH | L3E | |
JSH | L3F | |
COUNT. | ||
ISZ | ||
JMP |
COMPUTE NUMBER OF CHARACTERS
PROCFSSFD SO FAR DIVIDE RY 4 TO GET GROUP CODE
INCLUDE SECOND WORD 5 !3IT PATTERNS LOAD fl«-FlRST WORD 5 RIT PATTERNS
PRINTER OUTPUT SUBROUTINE RESET II, 12» AND 13
ALL 16 CHARACTERS PROCESSED?
NO, LOOP TO PROCESS NEU CHARACTER AT L3C
check row count. if done advance printer 3 rows, turn on The interrupt systemi and return.
I/O SUPERVISOR
626P4 02625
1004 10Ö5 1006 1C07
1008 1009· 1010* 1011* 1012»
1013 1014 1015* 1016* 1017« 1018 1019 1020 1021 1022
i623 1024 1025 1626 1027 1028 -Ϊ029»
1030» 1031« 1032« 1033 1034
1035 1036 1037
02627 C2630 62631 P?632 S2633 C2634 C2635
S2636 B2637
Θ45727 066546 ß2ß40l S70076 .SPAC 031727 P62640 -
366631 172734 066634 173741 170402
isz t all 7 rows finished?
jmp l3 no, loop to process new line at l3
lda dp3 set a«-3
tca set a«—a
sta t and save in τ
jsm l3d advance printer 1 row
ISZ T DONE?
JMP »τ2 . NO, CONTINUE TO LOOP
SFC 4 ' WAIT FOR PRINT OPERATION TO FINISH
JMP »-1
CLF 1 TURN ON THE INTERRUPT SYSTEM
RET RETURN
L3D SETS UP THE A ANO B REGISTERS TO ADVANCE THE PRINTER
ONE ROVi.
62640 Ö20401 L3D 82641 £74742
LDA DP3 A«-6R0UP A CODE AND NON-PRINTING PATTERN SBR 16 B+NON-PRINTING PATTERN
L3E CHECKS THE PRINTER FLAG AND OUTPUTS THE A AND B REGISTERS.
Ö2642 02643 62644 €2645 62646 02647
C 2650 Ö2651 C2652 G 2653 02654
031723 L3E
«20425
070470 172794 666644 S21723
173741 172741 176141 172144 176402
STA N LDA K16 SlA L3G SFC JMP *-.2
LDn N CLF STF OTß ΟΤΛ RET
SAVE N<-A
SET A<-TIME COUNT
IF A=0 THEN GO TO L3G ELSE Λ<-Λ«·1
IF PRINTER FLAG SET ' THEN CONTINUF TO LOOP
ELSE RESTORE Λ<·Ν
TURN ON THE INTERRUPT SYSTEM TURN OFF THE INTERRUPT SYSTEM OUTPUT 1ST WORD
TURN ON THE INTERRUPT SYSTEM TURN OFF THE INTERRUPT SYSTEM OUTPUT 1ST WORD
OUTPUT 2ND WORD. IMPLIED STC RETURN
PRINTER OUT OF PAPER. OR EXEC KEYCODE.
SET ERROR MESSAGE AND WAIT FOR STOP
62655 024364 L3G C2656 C55777 C2657 C-63251
C2660 170402 92661 966536
LOB DP16 DSZ 1777B JSM L7
RET ■ JMP .PRTl
1639» L3F SETS UP II» 12» AND 13,
1G41 02662 Ö20410 L3F LDA DM4
1042 C2663 031730 STA Il
1043 (52664 O2G406 LDA DM2
1044 C2665 031731 STA
1045 G2666 070742 SAR
1046 C2667 D31732 STA
1047 02670 170432 RET
SET A«-ERROR
DECREMENT JSM STACK DISPLAY ERROR MESSAGE AND WAlT FOR KEYCODE
STOP KEY. EXIT PRINT ROUTIUE EXECUTE KEY· RE-ENTER PRINT ROUTINE
SET Il «--4
13*0 RETURN
309832/08^3
1050· | GET BIT PATTERN / | 173750 L3B | VDORESi | 8 |
1051· | INCREMENT BUFFER | 025720 | 5» SET | K |
1052· | 121721 | ADDRESS AS | L, I | |
1053 | «2671 | 074151 | •♦3 | |
1054 | P2672 | 67034 6 | CLF | 8 |
Iß55 | 02673 | 04*5721 | . LDB | L |
1056 | 32674 | 070346 | LDA | 8 |
1057 | 02675 | 350345 | SLB | 0P127 |
1058 | 82676 | O70C75 | RAR | •♦ltC |
1059 | £2677 | (170131 | ISZ | •♦2,C |
106 EJ | S2703 | 072054 | RAR | ♦♦ltS |
1061 | B2701 | 070137 | AND | A |
1062 | 82702 | 074092 | SEC | 1 |
1063 | 02703 | 970706 | SLA | 15 |
1064 | 02704 | 072037 | SES | Λ |
1065 | ß27ß5 | 004245 | LOB | .TAB5 |
1066 | 62706 | 035722 | SBR | M |
1067 | 62707 | 524411 | RAR | DK5 |
1068 | «32710 | 035723 | ADB | N |
1069 | 62711 | 170402 | ADB | |
1079 | 02712 | STB | ||
1071 | P2713 | LOB | ||
1072 | ß27l4 | STB | ||
RET | ||||
AND INCREMENT BUFFER ADDRESS POINTER POSITION CHARACTER FROM HIGH TO LOW PART OF A
SAVE ONLY THE LAST 7 BITS OF A SET E+0
IF A{0)=1 (ALSO SET A(0>*0 IN ANY CASE)
THEN SET E«-l
COMPUTE A*5*A/2
TO FORM RELATIVE ADDRESS OF THE PATTERN ARRAY
AND SAVE M«-A
SET N«~5
RETURN
309832/0843
I/O SUPERVISOR
DISPLAY ROUTINES
1074·
1076»
1077· the following is the complete driver for the display
1078* will perform the following functions.
1079»
1080· 1. CHECK For KEYCODES. ViHEN A KEYCoDE IS ENTERED.
.WHOD IS RESET AND CONTROL WILL RETURN TO THE CALLING, PROGRAM WITH THE ENTERED KEYCODE IN THE
A REGISTER.
(Sichtgerät-Programme)
IT
DRIVE THE DISPLAY AS FOLLOWS
A. THE CONTENTS OF THE DISPLAY BUFFER IF NO ERROR HAS OCCURED.
B.
1081· 1082· 1083* 1084· 1085· ; 1086»
1087· 1088· 1089· 1090· 1091*
Ϊ092* 1093»
1095* 1096« ON ENTRY CHECK FOR ERROR.
1097·
1098 02715 062749 .DSP JSH L2B CHECK FOR ERROR
1099 C2716 C66723 JMp L2A
DO A DISPLAY CYCLE AFTER FIRST DETERMING WHETHER TO USE THE.DISPLAY OR I/O REGISTER.
ALTERNATE BETWEET THE ERROR MESSAGE AND THE CONTENTS OF THE DISPLAY REGISTER IF AN ERROR
HAS OCCUREO.
1101· 1102* 1103· 1104 1105
1106 1107 1108» 1109» 1110»
1111· 1112·
1126* 1127·
1128·
«2717 021704 L2E
0272? 031721
02721 C63000
02722 666726
LDA .WBUF STA L JSH .DSPl JMP L2A+3
SAVE ADDRESS OF THE BUFFER TO BE DISPLAYED DISPLAY DRIVER SUBROUTINE
CHECK FOR KEYCODE ENTERED. IF ENTERED» RESET .WMOD* .IBUF» AND
EXIT WITH KEYCODE IN A REGISTER.
62723 02724 62725 C2726
ß2727 C2733 62731 02732 C2733
-32734 62735 C2736 02737
021704 L2A
D52777
031704
021705
071433
031705
020554 L2F
062227
023340
1317C4
ß2l7ei
G5CJ342
170462 RET
LDA .WBUF AND DH8 STA-.WBUF
LDA .WHOD SAP L2E»C STA .WHOD
LDA .IBUF JSM LlOA LDA BGNLE STa .WBUF,I
LDA .WKC AND DP255 RET
NO ERROR SET UP TO DISPLAY .DBUF
IF .WMODi15)=0 THEN CONTINUE
TO DISPLAY AT L2E
FLAG FROM .WMOD RESET .IBUF
STORE A BEGINNING OF LIME
CHARACTER INTO BUFFER SPECIFIED BY .WBUF A4-KEYC00E
SAVE ONLY BITS 0-7
SAVE ONLY BITS 0-7
SET-UP ERROR MESSAGE INTO I/O REGISTER. 02740 Θ21705 L2B LDa .WHOD
3 0 9 8 3 27O 8 A 3
- JL3O. -*
.I/O SUPERVISOR 226272:
1130 | 82741 | 070102 | SAR | 062740 | RNTFR JSm | 3 |
1131 | 02742 | 850342 | AND | 5545704 | JSZ | DP255 |
1132 | 02743 | 071610 | S2A | 022778 | LOA | RET |
1133 | 02744 | 331722 | SlA | 1317C4 | STA | H |
113* | 02745 | 022757 | LÜA | CI457C4 | ISZ | L2D |
1135 | C2746 | G24554 | ■ LOB | 164523 | JMP | .IBUF |
1136 | 02747 | 062525 | JSm | .OXFR | ||
1137 | C2753 | S20554 | LDA | 177770 | DM8 DEC | .IHUF |
113G | 02751 | U334G2 | ADA | DP2 | ||
1139 | 62752 | 031704 | STA | .WBUF | ||
1140 | 02753 | 029461 | LDA | KIlO | ||
1141 | 62754 | O317G6 | STA | .POS | ||
1142 | 62755 | 021722 | LOA | M | ||
1143 | 02756 | 066340 | JMP | L24G | ||
1144» | ||||||
1145· | ERROR | MESSAGE | ||||
1146» | ||||||
1147 | 02757 | 032760 | L2D DEF | «•♦1 | ||
1148 | C2760 | 047117 | ASC | 8,NOTE | ||
1149 | 02770 | 044516 | IN ASc | Ii IN | ||
1150* | ||||||
1151» | RUN TIME ERROR MESSAGE | |||||
1152· | ||||||
1153 | 02771 | L28 | ||||
1154 | C2772 | .WBUF | ||||
HSS | C2773 | IN | ||||
1156 | C2774 | .WBUF,I | ||||
1157 | 02775 | .WBUF | ||||
1158 | 02776 | SfLNtI | ||||
1159· | ||||||
1160 | C2777 | -8 | ||||
A*AODRESS ASCII MESSAGE TO BE PLACED IN THE DISPLAY
B«-ADDRESS OF THE I/O BUFFER
DO AN η WORD TRANSFER
FORM MIOVESS OF THE OTH
WORD OF THE I/O BUFFER SAVE .WOUF*A
.POS*HI/LO POSITION WORO (52525B)
A«-ERROR CODE
DO ERROR NUMBER CONVERSION AND STORAGE
309832/0843
133
I/O SUPERVISOR
1165· 1166*
1162*
the f0ll0win6 is the display sio driver for the system,
the bit pattern for the led is:
xxeeeffffbbbbbbb
where b ts the column bit pattern
e is the 1 of 8 code address
f is the bcd address
x are the unused bits.
e is the 1 of 8 code address
f is the bcd address
x are the unused bits.
1168* 1169* 1170«· 1171· 1172* 1173«
1174*
1176· 1177« 1178° 1179· 1180
1182» 1183* 1184»
1185 1186 1187 1188 Ϊ189*
1190* 1191* 1192 1193
1195 1196 1197 1193 1199 .
1200
1202* 1203* 1204»
1205* 1206 1237 1238 1209
1210
1212 1213 1214 1215» 1216·
1217·
ON ENTRY, L MUST HAVE ALREADY BEEN SET TO THE ADDRESS OF THE BUFFER TO BE OUTPUT.
G3000 023420
03001 Ö31720
.DSPl LDA DM16 STA K
SET BCD COUNTER & ADDRESS HORD.
03002 020415 Ö3003 031725
63034 070742 C3S05 531726
LDA DM10 STA R SAR STA S
START PROCESSING NEW CHARACTER.
{13006 03007 03310 S3011
03012 63013 035114
63015 G3C16 03017
C62671 L4D
121722
(370114
078346
050345
C41726
173750
173741
172741
172150
JSM L38 LDA H.I SES **2
RAR AND DP127
I OR CLF CLF STf
OTa SET K*~16
, !NEGATIVE CHARACTER COUNT)
, !NEGATIVE CHARACTER COUNT)
R*—10
. (NEGATIVE BCD COUNT)
(LED ADDRESS INFORMATION)
GET PATTERN INFORMATION FOR NEXT CHARACTER GET 7 BIT PATTERN
PATTERN IN HIGH PART OF WORD?
YESt POSITION IT TO LOW PART OF A SAVE ONLY LAST 7 BITS
INCLUDE LED ADDRESS INFORMATION CLEAR DISPLAY FLAG TURN OF THE INTERRUPT SYSTEM
TURN OFF THE INTERRUPT SYSTEM OUTPUT DISPLAY INFORMATION. IMPLIED STC
CHANGE AODRESS WORD. -INCREMENT BCD COUNT AND IF 0» DO SECOND
CHANGE ON ADDRESS WORD AND RESET BCD COUNT.
03020 83021 G3322
63323 03R24
83025 63326 03027 83030
Ö21726
Γ.Β0344
045725-
067039
050445
000446
024415
Ö35725
531726
LDA | S | INCREMENT BCD ADDRESS PART | { | SAVE S«-A " |
ADA | DP128 | . OF WORD S | ||
ISZ | R | BCD OVERFLOW? | ||
JMp | •♦5 | NO« SKIP 4 INSTRUCTIONS | ||
AND | K20 | SAVE AND INCREMENT 1 OF 8 | ||
ADA | K21 | CODE PART OF S | ||
LDB | DM10 | RESET R«—10 | ||
STB | R | |||
STA | S |
INCREMENT BUFFER ADDRESS AND CHARACTER COLUMN COUNT. IF DONE
CHECK CHARACTER COUNT, ELSE FINISH PRESENT CHARACTER.
3 0 9 8 3 27 0 8 4 3
I/O SUPERVISOR
increment pattern array address pointer all 5 columns done?
no, continue to loop at l4d*1
if done then exit» else start
COLUMN THAT WAS OUTPUT TURN OFF OISPLAY TURN ON THE INTERRUPT SYSTEM
RETURN
1236·
1216· | 03031 | 045722 | 045720 | ISZ M |
1219 | 03032 | 045723 | C67006 | ISZ N |
1220 | 03033 | »67007 | JMP L4D»1 | |
1221 | 3FF DISPLAY | |||
1222· | increment character | COUNT. | ||
1223· | new character. | 02(3410 | ||
1224· | 072030 | |||
1225· | fl3034 | 173750 | ISZ K | |
1226 | 03035 | 173741 | JMP L4D | |
1227 | 176402 | |||
1228» | TURN ( | |||
1229· | ||||
1230· | 03036 | LOA DM4 | ||
1231 | G3337 | RlA · | ||
1232 | 03040 | CLF 8 | ||
1233 | Q3C41 | CLF 1 | ||
123* | 03042 | RET | ||
1235 | ||||
3 u a a j z / O 8 ι* 3 "
MAGNETIC CARD ROUTINES (Magnetkarten-PiOgrammfe)
(Lade- und Auf zeichen ^roirramme) ■ . ·
LOAD AND RECORD ROUTINES FOR MAGNETIC CARD» 2 262 / 2. C
ir So»
1239* .REC IS USED FOR RECORDING PROGRAM AND/OR DAlA INFORMATION
1240» ON MAGNETIC CARDS IN EITHER A SECURE OR UnSECURE MODE.
1241»
1245 | C3043 | C'63146 | 125555 | .REC JSM | L5S | TO SYSTEM« |
1246 | B3ß44 | 670410 | P74117 | SZA | L5D | |
1247 | B3045 | 074517 | 07B642 | LDA | BoI | PADDtI |
1248 | 03046 | 050515 | S7fll50 | AND | K22 | B |
1249 | S3047 | 07C517 | 024402 | LDA | AtI | 14 |
1250 | C3050 | Gl0463 | G671-41 | CPA | K8 | **3 |
1251 | C3S51 | C67143 | JMP | L5H | DP2 | |
1252 | C3052 | 01ß443 | CPA | Kl | L5F*1 | |
1253 | C3S53 | 067100 | JMP | L5R | ||
1254 | 63ί'.54 | 063134 | L5D JSM | L5P | ||
1255 | 03055 | 045554 | ISZ | PCNT | ||
1256 | ß 3 056 | 667101 | JMp | L5R+1 | ||
1257» | ||||||
1258» | SET ADDRESS | OF NEXT DATA WORO. I | ||||
1259* | set error 2 | AND RETURN | ||||
1260* | ||||||
1261 | 03057 | L5E LDB | ||||
1262 | 03360 | LDA | ||||
1263 | G3061 | SAR | ||||
1264 | B3S62 | S2a | ||||
1265 | Θ3063 | LDB | ||||
1266 | 03064 | JMP | ||||
1242» FIRST SET UP NECESSARY PARAMETERS AND CHECK TO SEE IF SECURE
1243* OR DATA MODE HAS BEEN SET.
SET LINK WORDS FOR RECORD IF NO PARAMETERS RCORD ONLY PROGRAM B«-AODRESS OF FIRST PARAMETER
SAVE BITS 0-13
GET FIRST WORD OF FIRST PARAMETER IF A="SE» (SECURE MODE)
THEN GO TO L5H IF A=«DA» (DATA ONLY) - ·
RECORD PROGRAM
CHECK PARAMETER COUNT FOR DATA
IF TEmP. OR ALPHA INFORMATION* «
A<-ADDRESS OF NEXT DATA WORD
B«-A
IF A(15-14)=0 (REGISTER REFERENCE) THEN SKIP 2 INSTRUCTIONS
ELSE B«-ERROR NUMBER 2 DISPLAY ERROR NUMBER
1267» 1268* IS ADDRESS OUTSIDE OF SYSTEM MEMORY? IF YESt SET RECORD LENGTH
1269» FOR R REGISTERS FROM MAW TO ADDRESS SPECIFIED. ELSE SET LENGTH
1270» To -4. IN EITHER CASE» LENGTH IS NEGITIVE. 12716
1272 03Π65 020441 LDA K13 A<-1777B - TOP END OF SYSTEM R/W MEMORY
1273 - ß3«66 ß70376 TCA A«--A
1274 63867 074017 · ADA B ADD AODRESS OF DATA WORD
1275 C3070 070153 SAP **3 IF A,B»C*X*Y>OR Z REFERENCE
1276 03071 S32G410 LDA DM4 THEN A«—4 (4W0R0S IN THE DATA MODE)
1277 63372 £67077 JMP »*5 SKIP 4 INSTRUCTIONS
1278 C3073 C-21377 LDA MAH A«-LAST WORD OF MEMORY+1
1279 C3374 C7P.376 TCA A«--A
1280 03375 074017 ADa'B ADD ADDRESS OF DATA WORD TO GET LENGTH
1281 03076 076952 SBM ■»♦ltS ΒΠ5Χ-1 TO INDICATE RFLATIVF ADDRESS STRUCTURE
1282 C3377 C63120 JSH L5B RECORD DATA
1283* 1284& check parameter count and if done return to system.
1285«
1286 03100 055555 L5R DSZ PADD DRECEMENT POINTER TO ADDRESS OF NEXT DATA WORD
1287 03101 055554 DSZ PCNT MORE PARAMETERS?
1288 33102 067057 JMp L5E YESt PROCESS AT L5E , ■
1209 031Ö3 165755 JHP .SYMtI NOt TURN OFF MAG CARD
1290»
1291· LINK WORD SETUP FOR HAG-CARD 1292· LOAD AND RECORD 1293*
309 832/0843
LOAD ANO RECORD ROUTINES FOR MAGNETIC CARD.
RECORD CONFIGUHATION CODE ANO SECURITY WORD.
226272
03104 3?16?5 LSP
Θ3135 070110 G3H16 066136
C3107 E3110
C3111 63112 03113
020410 624447 161754 070110 067122
L50
LOA | .SE |
SZA | •♦2 |
JMP | .INT2 |
LDA | DM4 |
LOB | DAfU |
JSM | • REC. |
S2A | •♦2 |
JMP | L5B + 2 |
GET SECURE WORD IF ZERO ALLOW RECORDING OF CURRENT PROGRAM
ELSE RESET SYSTEM
LOAD A-REG WITH WORD COUNT LOAD R-REG WITH AOOKESS OF DATA
RECORD CONFIGURATION CODE
Record program information starting at prfsent location of
program counter (cha» to enoi. if cma=enos then skip program
recording.
03114 021546 63115 C7O076
03116 031542 63117 C25546
LDA CMA TCA
ADA ENDS LOB CHA
L58 IS USED TO CALL THE RECORD DRIVER AND CHECK FOR ERROR
CODES ON RETURN. THE CODES ARE! ·
A=O NORMAL
1 S»OPT CfP.O
2 CtRD PROTTCTED
3 CARD NOT IN AND STOP PRESSED
ERROR 14 - CALL .DSP ERROR 13 - RETURN
MO ERROR - RETURN -
03120 161754 L5B B3121 071110
0312? 038406 33123 070S53
JSM .RECl CALL MAG CARD RECORD SUBROUTINE
SZA L5P-1 IF A=RiNO ERROR SO RETURN ADA DM? ELSE LOOK FOR CAUSE OF STOP
SAP L5C · IF - SHORT CARD
DISPLAY ERROR MESSAGE 14 AND WAIT FOR STOP OR EXEC KEYCODE.
C3124 03125 03126 G3127 03133
P3131 03132 G3133
C3134 03135
161755 L5T 024366 063251 067136 024405
O3S727 025730 021731 071212
P67107
C3136 055777 L5C P3137 C72150 S3140 024367 L5F
03141 061351 «3142 165755
jsm .sym,ι
LDb 0P14 JSM ι?
JMp L5C LOB DMl STb T LDB TEMP LÜA MOCNT
SAM L50 JMP L50
DSZ 1777Π RZA LSF*2 LDB 0Ρ13
JSM BAD JMP DISPLAY ERROR 14 AND WAIT FOR KEYCODE
STOP KEY. GO TO L5C EXECUTE KEY.
SET T*-l
SET T*-l
B*CONTINUATION ADDRESS
A «-WORD COUNT
IF COUNT - DATA CONTINUE RECORDING ELSE PROGRAM;PUT CONFIGURATION ON NEXT PASS
IF COUNT - DATA CONTINUE RECORDING ELSE PROGRAM;PUT CONFIGURATION ON NEXT PASS
IF NOT ZERO STOP PRESSED
ORIGINAL INSPECTED
309832/0843
LOAD AND RECORD ROUTINES FOR MAGNETIC CARD.
1349· SECURITY RECORDING. SET SECURITY WORD» ADJUST PARAMETERS. AND
1350» OO RECORDING OF PROGRAM AND/OR OATA.
1351*
1352 «3143 655744 L5H OSZ ARl SET SECURITY VOVtD
1353 03144 G6310A JSH L5P RECOPD PROGRAM
135'+ β3145 K67100 J»P L5R CHECK FOR MORE PARAMETERS
1356« 1357«
1358* 1359» 1360» 1361» 1362»
1363 1364 1365 1366 1367 1368 1369» 1370 1371 1372 1373 1374 1375«
1376 1377 1378 1379 13B0 ' 1381 1382 1383
RECORD AND LOAD SET UP.
SETUP LINK ADDRESSES TO DRIVERS OF THE MAG-CARD GET PARAMETER COUNT» PARAMETER ADDRESS, AND TRANSFER
CONFIGURATION CODE.
03146 623605 L5S
03147 031754 33150 023686 C3151 031755
C3152 023607
03153 031756
03154 02G405 L5A
03155 C31727
03156 63(3247
Θ3157 !Γ/2Λ447
6316«
S3161 S3162 03163 03164 03165 Ö3166 G3167
«3178
G21556 Ö7C076
C315S7 031554 325557 684405
G35555 17B492
LDA RLINK STA .REC. LDA RLINK*1 STA »SYH
LDA RLINK*2
SlA «LOD.
LOA DMl STA T ADA .ΤΛΒ7,
LDB DARl XFR
LDA API TCA
ADA AP2 STA PCNT LDB AP2 ADB DMl STB PADD RET LINK WORD TO MAG-CARD RECORD
LINK WORD TO MAG-CARD SHUTDOWN LINK WORD TO MAG-CARD LOAD
A* ADDRESS OF CONFIGURATION CODE TABLE
B«-AODRESS OF ARl " DO A A WORD TRANSFER
COMPUTE # PARAMETERS SAVE COUNT
SET !«-ADDRESS OF 1ST PARAMETER ADDRESS
RETURN
309832/0843
1385·
13fl6·
1387·
138B·
1389·
1390
1391
1392
1393
139*
1395
1396
1397
1398
1399·
1400·
1412
1413
1414
1415
1416
1417
1MB
1419
1420
1421·
1422·
1423°
1424·
1425·
1426·
1427
1428
1429
1430
1431·
1432
1433
1434
1435·
1436
1437
1438
1439
1440
.LOD WILL LOAD A MAGNETIC CAPD INTO THE 9820A MEMORY AND CHECK
FOR PROPER CONFIGURATION CODE.
«3171 C63146 .LOD 63172 021563
C3173 ö7i»152 C 3174 1*21664
03175 073110 83176 067205
«3177 024370 «3200 C61351 «3201 164346
L5S
LDA TSW SAM ·*3 LOA NMA
SZA ·*2 JMP L5G LDB DP12
JSM BAD JHP XJ,I
IF TSW NOT<0
OR NMA=G
CALL DPIvER TO LOAD FROM CARD AND CHECK FOR THE FOLLOWING
ERRORS ON RETURN.
1402· 1403·
1404*
1485·
1406·
1407*
1408
1439
1410
A=0 NORMAL
1 STOP
2 SHORT CARD
3 MEMORY OVERFLOW
NO ERROR - CONT. NO FRROR - RETURN FRROR 14 - CALL «OSP
ERROR 12 - RETURN
03202 C24366 L5J C3203 C-63251
B32C4 C67216
LDQ DP14 JSM L7 JMP LSK
C3206 073137 63267 161755 C3210 CC44C6
«3211 074252 03212 075410
B3213 324370 LSN
03214 C61351
03215 067237
LDB A JSM .SYMd ADB DM2 SBM L5K SZb L5J
LDB DP JSM DAD JMp L5L*2
LOOK FOR WHY STOP?
STOP KEY OR NORMAL RETURN
SHORT CAPO
ELSE MEHOPY OVERFLOW OCCURED
SET ERROR 12
store security word. if non-zero, system can only run program,
check configuration code. if code read fpom the card is
a zero 0» matches that of the machine, thfn set ends to
The present value of cma. else set error is.
«3216 02S447 L5K 03217 031717
03220 020247
03221 031716
«3222 021744 03223 070110
«3224 Ö31625
63225 024406 Ö3226 045717 L5M
03227 121717 03230 070250
«3231 111716
LOA OARl STa J LOA .TAB7 I
LDA ARl SZa «»2
SiA .SE
LDB 0M2 ISZ J LOA J,I
SZA L5L CPA ItI
AREA OF CARD LOADED CONFIGURATIOM
AREA OF SYSTEM CONFIGURATION
GET WORD FROM CARD CONFIGURATION IF WORD ZERO DON'T CHECK CHECK AGAINST SYSTEM
309832/0843
- 2O5 -
LOAD AND RECORD ROUTINES FOR MAGNETIC CARD.
B67235
JHP LSL
HATCH
83234
03235
83236
83236
03237
93240
«!3241
03242
03243
S3244
93240
«!3241
03242
03243
S3244
024365
S67214
S67214
045716 L5L 877430
160320
255702
C45702
831604
160315
164316
255702
C45702
831604
160315
164316
LDB JMP
ISZ RIB
DP15 L5NU
I L5M
NO HATCH,ER"OR #15
JSH RGTO,I DSZ GTS ISZ GTS STA NMA JSM INTRP,I
JMP XEOLiI reset all gtois and gs8»s,a-reg has mainline add.
what type link? gto or gspj if skip—gto;then start where card was loaded
not skip—gsbistart at beginning of main lime
setup run time stack
LDA ERROR CODE JSM L7
... STOP RETURN ... NORMAL RETURN
«3232
1442*
1442*
1443 «3233
1444
1445«
1446
1447
1448»
1449
1459
1451
1452
1453
1454
1455*
1456*
1444
1445«
1446
1447
1448»
1449
1459
1451
1452
1453
1454
1455*
1456*
1457* L7 IS THE ERROR MESSAGE ROUTINE THAT WILL CALL THE DISPLAY 1458* ROUTINE ANO WAIT FOR EITHER Λ STOP OR EXEC KEYCODE. THE
1459» CALLING SEQUENCE IS AS FOLLOWS:
1460* 1461* 1462* 1463* 1464Ο
1465*
1466 «33245 e6I25ß JSH XSTP
1467 33246 074742 SBR 16
1468 S3247 061352 JSM RBAO
1469 C3250 C67320 JMP 33208
1470 G3251 061351 L7 JSM BAD
Ϊ471 63252 £20207 LDA .DBUF
1472 03253 S62732 JSM L2F*1
1473 -«3254 662715 JSM .DSP
1474 03255 016401 . CPA DP3
1475 C3256 G67245 JMp L7-4
1476 33257 010537 CPA DP33 1477. 02260 067245 JMp L7-4
Ϊ478 i?3261 <?10437 CPA DP93
1479 .03262 067264 JHP «+2 148B 03263 Ö67254 JMP L7+3
1481*
1482 03264 Ö63246 JSH L7-3
1483 63265 025777 L7A LDß' 1777B
1484 33266 034405 ADQ DMl
14B5 03267 D74637 ISZ B,I
I486 83273 1704S2 RET 1487*
1488** β **«*■»·» «f»»»**«»»«*««»«»««
1489Ο ADD ON BLOCK REJECT ROUTINES
1493»
1491 03271 021575 SYNTX LDA QUOTE
1492 03272 073710 R2A °-2
Ö3273 024371 EXEOX LDB 371B 93274 Ö65351 JHP BAD
END 226272!
SET STOP GlT
SET A-RER=3 SET ERROR USING
BAD ROUTINE
1493
CLEAR DISPLAY BUFFER CALL DISPLAY MONITOR
CLEAR KEY IF STOP KEY THEN RETURN IF KEY=EXECUTE THEN SKIP 1 INSTRUCTION
GET THE JSM STACK POINTER DECREMENT THE ADDRESS INCREMENT THE RETURN ADDRESS
FOR SYNTAX AND EXECUTION
IF CODE IS IN QUOTE FIELD ALLOW IT
ERROR
1495
• NO
• NO
ERRORS*
309832/0843
00131 0002· 0003»
0304· 0005·
0006· 0007·
0008· «009·
0010· C011* C012» 0013· 0014·
©015· «016· «017· β01Β·
C019· «020* 0021·
0022· C023· 0024· 0025·
6027· 0028· 0029· 0030· 0031
6032 0033 0034 0035 0036 C037
0038 0039 0040 6041 0042
C043 0044·
0046 0047 0048 0049 6050·
0051 S052 C053 0054 0055 0056
ASMR,AtL MAGNETIC CARD DRIVER ROUTINE
Ulogne tkar 1 en-Tre i be r-Prograinrn)
Ulogne tkar 1 en-Tre i be r-Prograinrn)
ALL OF THE FOl LOWING ARE OUTPUTS FROM THE 9820 TO
THE MAG CARD READER AND ARE POSITIVE TRUE LOGIC
BTT 0 (000) IS THE LSB OF THE DATA BYTE «CHANNEL A)
BIT 1 JDOl) IS THE NEXT LSR OF TnE DATA RYTF. (CHANNEL B)
(DO?) IS THE MSB OF-IHF DATA BYTE (CHANNEL C)
IS THE STROME DATA BIT
IS THE INHIBIT CONTROL (0/1, OFF/oN)
BIT BIT
8IT 4 „.„ - ... . --
8IT 5 (005) IS THE MOTOR CONTROL (0/1, OFF/ON)
(D03) (D04>
STC fl? (HLS) IS TUE 5 BIT LATCH CLOCK
STF 82 (HCR) IS THE STROOE BIT LATCH CLOCK
THE FOLLOWING ARE INPUTS TO THE 9820 FROM THE MAG CARD READER AND ARE NEGATIVE TRUE POLARITY
BIT BIT BIT BIT BIT BIT
BIT
0 (010) (DIl) (DI2) (013)
(DU) (015) (016)
IS THE LSB OF THE DATA BYTF (CHANNEL A»
IS THE NEXT LSn OF THE DtTi BYTE (CHANNEL B)
IS THE MSR OF ThE DATA BYTF (CHANNEL C) .
IS THE END CF CARD SIGNAL WHEN RECORDING (SENSOR 1)
IS THE CASD IN SIGNAL (SENSOR 2)
IS THE PROTECTFO CARD SIGNAL (SENSOR 3)
IS THE END OF CAPD SIGNAL VHEK LOADING (SENSOR 4)
THE DATA FLAG (HFL) IS THE DATA SAMPLING MARKER
IF IS
€3306 633B6 «3307
C3316 63311 B3312 03313 03314
β3315 B3316 63317 U3320 Ä3321
THE LIGHT TO A SENSOR IS GROUND OR A LOGICAL
ORG 3366(3
070550 .REC. SZA ·*11 SlA WDCNT
STB ADHOO SBM FIX,C STß TEMP
ISZ T JHP DOIT LDA DATST
(131731 635733
C74072
035730 FIX
045727
C67331
020356
063500
076150
JSm CRDIN R2ß JMPl
P-204ßl JMP20 LD,V DP3
172432 RET
Ä3322 C70252 JMPl
03323 029425
Λ3324 063553 63325 »120402 JHp2
83326 17ö4fl2
63327 320513 NTYET «333« 072030
IT3331 C21731 DOIT 63332 061523
C3333 021731 §3334 070513
SAM NTYET LDA SETUP JSM 0UT2
LDA 0p2 RET
LDA WAIT RIA · LDA WOCNT
JSm WRDST LDA HDCNT SAP JMP3 BLOCKED, THE OUTPUT LEVEL
A-REG « WORDS. IF ♦ PROGRAHiIF - DATA
B-REG ADDRESS OF A«R«C*X*Y»Z IF ADDRESS*
IF ADDRESS (B-REG) NEGATIVE DATA IS RO. SET BIT15=0 SAVE ADDRESS
Ttf -1 CAPD IS IN PROCESS AND RECORDING CAN CONTINUE
T=-l
CHECK CARD IN
B=BtSTOP KEY ENTERED. ABORT OPERATION ERROR «3 SENT TO CALLING ROUTINE(A-REG)
_ NnT PROTECT,JUMP TO DELAY CARD IS PROTECT
START SHUT DOWN PROCESS
ERROR «2
START SHUT DOWN PROCESS
ERROR «2
DELAY CAPD.lINCH.PREVENTS ERRORS WHEN LOADING DUE TO
SLIGHT POSITIONAL DIFFERENCES OF THE CARD-IN SENSO
1ST WORD OH CARD IS WORD COUNT. FOUR TYPES
OF BLOCKS POSSIBLE! CONFIGURATION,PROGRAM,ABCXYZ,R
CHECK FOP TYPE OF !»LOCK.
WORD COUNT POSITIVE» PROGRAM BLOCK
309832/0843
0=1 IBS
aavo ovH ν 9Niav3a aoj
νο-νηπι
3DVJÜ31UI οι mdino
llä JJO HOIOH QVOl
AV130 .
H0SN3S QNOAlH aaVD
313A33a 1Η9Π 9NIX3018 SI UaV3 I=JI
STUB 01NI (91Ι8)9ΝΐανθΊ bOJ 0.UV3-J0-C1N3 NOIiISOd
N011VWHQJNI U0SM3S 139
m aoaas 1X3N aaoo3a »aavo jo aN3 0N*i=suia Ji
SI1I8 NI IV) lI8-abV0-J0-GN3 'flOHISOd
vivo aosN3s 139
SQaOH 380H INfIOO QdOH M33H3
-1X3N aoj ss3aoav 13s
3Hl NO OaOM V 3DVId Ol 3NlIOOa 11V3
jo xooiii SNiaaoo3a aoj 3Niinoa Ainim
1X3H aoj
3AlIISOd 1ΝΠ03 (laOM 13S
Aavss3D3N aavQ 3aow
AMVSS333N 3>JV S0bV3 3äüH 0frV JI
(iMno3 Hvaooad wsisas) vwd ni sssyaov sihi iss
aaos hv«9oad ixsn jo ssaaaav 139
NOllVWäQJMI JO
iNnoa
3AI1V93N 1ΝΩ03 3»VW*WVa90ad SI MD018
•»3018 NOIIVHMOJNI
3HI JO 9NiaaO33a 3I3ldW03 aOj 03033M 3«' S0dV3
IVNOIHOQV JI AaVSS333N M=Sl ilö dW31 13S*- JI
AVXO dW3l ♦ JI
SS3H0av lVNi9iaO 139
NOIIVWHOJNI JO >I3O~IU 0a033a
•»Dona JO SS3äüüV 3H01S
VIVO SI Χ30ΊΗ SnHI 3AUV93N INOOD
1 | vis | •αοτ | IZLlZQ | LOKU | zn» | 13a | HSNIJ | 2DV01T | S0VC9 | «801 ö | 13a | 13 | 20V3II | ViCCS | »9600 |
91 | avs | 2VIBiO | 90VCÖ | IUO | JlD | IViCiI | V0VC9 | 1019 | VOl | C8V32a | CICCB | S60S | |||
•au» | Hsr | CSSC90 | C0VCO | 90(9 | HVS | 2ICU0 | 21CC0 | V609 | |||||||
ff·»«»»*»««··»··*«·«·*·«»»»#»»#601 β | ναι | I9c02ß | 2HVC 9 | S01O | ava | dHQXX | 9VlSiS | UCCS | C60Ö | ||||||
via | oceaiff | lovca | V0I9 | Hsr | 9ISC9S | 0iCCO | 269» | ||||||||
ναι | 00VCB | C0IO | 13a | 20V011 | I9CC9 | 1609 χι (\ Art ft |
|||||||||
I | WVS | 2UU0 | ÜCC3 | 20l> | aBS | 100 | 2ViVlO | 99CC3 | VUQUEr 6809 |
||||||
2ΐηο | ivs | VVCSIQ | 9ICC O | 1019 | avs | 2Vi»i0 | S9CC9 | 8900 | |||||||
JJO | Hsr | *0Ν3· | 91SC90 | SlCCO | 0019 | dwr | 0iCi9G | V9CCS- | 1803 | ||||||
« | 6609 | ZSI | IClSVO | C9CCS | 9809 | ||||||||||
AV130 | «8603 | ZSI | 0CiSVO | 29CCS | S&09 | ||||||||||
•ÜN3· | »»β«»·*»»*»*» »*■»»»&*»■»·»»■»»# β »»i600 | Hsr | dwnax | C2SC9Ü | 19CC0 | V800 | |||||||||
6 | ναι | OtIUl | 09fC0 | C803 | |||||||||||
139 | HHHHHH | Z809 | |||||||||||||
Ida | ******* 1^ | **#***i | »1809 λ ^ Λ Λ j*· ί% |
||||||||||||
dwnax | iaa | 2BV9II | isceo | »»0ÖBV #6109 |
|||||||||||
ν | ais | IZLSZO | 9iieC3 | 810& | |||||||||||
139 | 8Di | iidnr | 9IßVig | SSCC5 | Ü03 | ||||||||||
aai | ICIS2Q | VSGCii | 9100 | ||||||||||||
9t | vzs | 0l20iö | CSCCD | S10» | |||||||||||
91 | a is | 9VSSC0 | 2SCC 3 | Vi0O | |||||||||||
dwaxx | aai | 0CIS23 | iseco | C10 9 | |||||||||||
INOOK | Hsr | 09CC9O | 0SCC(J | 2108 | |||||||||||
dH31 | vis | EdHr | ICilCö | iVCC» | U00 | ||||||||||
isaart | VDl | 9ißßiö | 9VCCB | 0LQ9 | |||||||||||
*drt31 | 6903 | ||||||||||||||
3AV31 | «8909 | ||||||||||||||
13a | oa | 20V0II | sveea | »♦1903 ♦9909 |
|||||||||||
8iS | BCiSCO | VVCGS | S90O | ||||||||||||
lNDQft | Has | 2Sß910 | cvcca | V909 | |||||||||||
aai | 0C152O | 2VC C 8 | C909 | ||||||||||||
1Ν3α* | das | Cl2ViO | IVCC3 | 2909 | |||||||||||
V+* | ,801 | CCiS2a | 0VCCB | 1909 | |||||||||||
VW3 | Hsr | SI9CC9Ö | iccca | 093Ö | |||||||||||
dW3l | Hsr | C2SC9D | 9CCC S | 6S09 | |||||||||||
dwoax | ναι | CC112Ü | sccca | 8S00 | |||||||||||
1N3Q« | IS0O | ||||||||||||||
»β»»«· | |||||||||||||||
dW3I | |||||||||||||||
s*oa | |||||||||||||||
dW31 | |||||||||||||||
3AV31 | |||||||||||||||
OOHGV | |||||||||||||||
dWOOX | |||||||||||||||
isaan | |||||||||||||||
QOWQV | |||||||||||||||
- LOZ -
«113 | 03410 | 020405 | YESCD | LOA | SETUP | fl3451 | 063556 | LOAD | • | DAT IN |
0114 | P3411 | 9635CiJ | JSH | CRDIN | 03452 | 076253 | JSh | JMP9 | ||
«115 | B3412 | »75050 | szb | El | C3453 | C45727 | RZb | T | ||
«116· | C 34 54 | C67325 | ISZ | JMP? | ||||||
0117 | «53413 | 063556 | jsh | DATIN | C 3455 | Ö63472 | JHp | FIXAO | ||
0118 | 03414 | B76?l« | R2B | JHPU | 03456 | 067325 | JSM | JMP2 | ||
«119 | (»3415 | 821731 | JMPIl | LOA | WOCNT | JMP | ||||
«120 | P3416 | Ö71350 | SZA | FINSH | 03457 | 025730 | JMP9 | TEMP | ||
0121 | 03417 | 067325 | JMP | JMPZ | 03460 | 0176(13 | LOB | ASE | ||
0122· | C 3461 | 067463 | CPB | •♦2 | ||||||
«123 | 83420 | 07H352 | SAM | JMP8 | .03462 | 131730 | JMp | TEMP,I | ||
0124 | 63421 | 070076 | TCA | 03463 | 045730 | STA | TEMP | |||
0125 | E3422 | 031731 | sta | WDCNT | 113464 | 045731 | ISZ | WDCNT | ||
0126 | 63423 | 023405 | LDA | DMl | B3465 | 167451 | ISZ | LOAD | ||
0127 | 03424 | 631727 | STA | T | JMP | |||||
«128 | 83425 | 021546 | JMPB | LOA | CHA | |||||
«129 | 03426 | «67442 | JHP | MAXAO | ||||||
«130» | f §41140 I | |||||||||
{j ι j ι wi 0132* |
||||||||||
«133 | 03427 | 031731 | STA | WDCNT | ||||||
«134 | 83430 | J563556 | JSM | DATIN | ||||||
«135 | 23431 | Ö7C473 | SAP | MAXAD,C | ||||||
0136 | 03432 | 321731 | LDA | WOCNT | ||||||
0137 | ß3433 | fifll377 | ADA | MAW | ||||||
6138 | G3434 | Ö31730 | STA | IEMP | ||||||
C139 | S 34 35 | 376076 | TCA | |||||||
0140 | Θ3436 | 001542 | ADA | ENOS | ||||||
«141 | 33437 | S31615 | HAXAD | ADA | BSTK | |||||
«142 | 63440 | 070413 | SAP | OVFLO | ||||||
«143 | «3441 | 867451 | JHP | LOAD | ||||||
0144» | ||||||||||
0145 ' | 03442 | Ö31730 | sta | TEMP | ||||||
0146 | C 344 3 | 001615 | aoa | BSTK | ||||||
0147 | 03444 | B70056 | OVFLO | CHA | ||||||
0148 | 63445 | B31377 | ADA | MAW | ||||||
0149 | 83446 | U01731 | AOA | WOCNT | ||||||
«156 | C3447 | 070113 | SAP | LOAO | ||||||
0151 | 03450 | »6732Ö | JMP | JMP20 | ||||||
0152· | ||||||||||
0153·····♦«······»······«···#····· | ||||||||||
0154· | ||||||||||
0155 | ||||||||||
0156 | ||||||||||
«157 | ||||||||||
«158 | ||||||||||
0159 | ||||||||||
0160 | ||||||||||
0161· | ||||||||||
«162 | ||||||||||
«163 | ||||||||||
«164 | ||||||||||
• 165 | ||||||||||
• 166 | ||||||||||
«167 | ||||||||||
• 168 | ||||||||||
A-REG HAS COHOITION FOR REAOlNG (HOTOR-ONi INHIBIT»
IF B=0 STOP KEY
GET FIRST WORD FROM CARD IF B«0IA-pEG HAS WOHD COUNT
GET WORO COUNT
IF ZERO RETURN TO CALLING ROUTINE MORE WORDS BUT EOClERROR «2
TEST WORD COUNT TO DETERMINE TYPE OF BLOCK IIF ♦
PROGRAMISET VORD COUNT NEGATIVE
SET T=-l TO DENOTE PROGRAM REING LOADED GET ADDRESS OF WHERE TO START LOAO PROGRAM
CHECK IF PROGRAM WILL FIT IN MEMORY
(END$*8STk)-TEMP
IF RESULT POSITIVE ERROR»JUMP TO OVERFLOW
REAO BLOCK
CHECK FOR PROGRAM FIT IN MEMORY. SAVE LOAD ADDRESS WORDS NECESSARY FOR INTERPRETER STACK.
MAW>=LOAO AODRESS*#WOROS*BSTK
IF TRUE JUHP TO READ CARD ELSE SET ERROR #3
UTILITY ROUTINE V/HICH READS A BLOCK OF INFORMATION
GET A WORD. IF B=0»ENO-OF-CARD FOUND
T«-l,RETURN ERROR «2,ALSO MUST BE DATA DON'T FIX ADD·
T=-l»READING PROGRAM FIX ADDRESS (CMA AND ENO*I
IS STORE ADDRESS SECURE WORD? YES SKIP STORE
CONTINUE TO STORE WORDS
309832/0843
226272
βΐ 69 | Ö3466 | §45727 | FlXAD | ISZ | T | ZEROtCHECK T=-l PROGRAMt Τ0-Ϊ DATA |
«170 | 03467 | 067413 | JHP | YESCD | data;rlock complete | |
fll71 | 63470 | C63472 | JSH | FIXAD | PROGRAM RLOCK COMPLETEOtFIX CMA AND ENDS | |
0172 | Ö3471 | 667413 | JMP | YESCD | RETURN | |
0173* | ||||||
0174 | 63472 | S21730 | LDA | TEMP | GET NEXT STOREAGE ADDRESS | |
C175 | 63473 | S31546 | HHHHHH | STA | CHA | PLACE IN SYSTEM PROGRAM POINTER |
0176 | 63474 | 331542 | STA | ENDS . | SET ENDS(PoINTER TO END-OF-PROGRAM AREA) | |
8177 | B3475 | i'2ff405 | CRDIN | LOA | DMl | |
0178 | C3476 | 131542 | STa | ENDS.I | STORE -1 AT END OF PROGRAM | |
0179 | B3477 | 170402 | LOOK | RET | RETURN TO CALLING ROUTINE | |
0180· «Int -j |
* -W--M- mi | |||||
3182» | IHHHHHiiH | |||||
0183 | 03500 | 172741 | STF | 1 | CHECK FOR CARD-IN. TURN-OFF INTERRUPT | |
8184 | G3501 | G63553 | jsh | 0UT2 | SET CONDITION IN A-REG INTO MAG CARD INTERFACE | |
0185 | «3502 | S63516 | jsh | GET | GET SENSOR INFORMATION | |
0186 | 33503 | 978146 | JMP10 | RAR | 4 | PLACE CARD-IN-BIT (4) IN LSB |
fll87 | E35P4 | 870211 | SLA | JMPl 0 | BIT0=0 CARD -NOT IN JUMP TO CHECK IF STOP | |
€188 | P3505 | 37P046 | RAR | 2 | CHECK IF LEADING EDGE OF CARD | |
0189 | C35B6 | 079111 | SLA | JMP10 | ||
6190 | 63507 | 178402 | RET | CARD IS IN! | ||
0191 | «3510 | 8257Ö1 | LDB | .WKC | LOAD KEYCOOe - ' | |
6192 | «3511 | CI4537 | CPß | STPKY | IS IT STOP? | |
0193 | 33S12 | 374742 | SBR | 16 | YES, B-REG=0 | |
0194 | 63513 | C7735B | R2b | LOOK | B«0»RECYCLE (LOOK FOR CARD IM) | |
0195 | 33514 | 622495 | LDA | SETUP | B=O SET UP CONDITION"TO GET CARD THRU CARD READER | |
0196 | 33515 | 067553 | JMP | 0UT2 | INHIBIT AND TURN ON MOTOR | |
«197·
β 199· C200 03516 820423 GET LDA MASK
6201 | 63517 | 172141 | OTA | 01 |
0202 | Ö3520 | 172741 | STF | 01 |
0203 | B3521 | 172241 | LlA | 01 |
6204 | B3522 | 173402 | RET | |
0235· | 4|f 11 w Jt ti >C J | H* if Φ9Φ | ||
0207» | rH Willrft Wi | |||
02ß8 | 03523 | 924412 | WRDST LDB | H 6 |
0209 | 03524 | 535734 | STB | BTCNT |
0210 | 63525 | 024522 | LDB. | FMTOT |
0211 | C3526 | 070356 | CHA | |
C212 | 03527 | Ö31732 | BTOUT STA | HOLD |
0213 | 03530 | J55Ä375 | AND | DP7 |
C214 | 03531 | 043423 | IOR | MASK |
0215 | C3532 | 063550 | JSh | OUTl |
0216 | 03533 | 92G422 | LDA | 422B |
0217 | C3534 | 072030 | RIA | « |
0218 | P3535 | 176141 | OTB | öl |
0219 | C3536 | 172742 | STF | 02 |
8220 | C3537 | 374036 | KBR | 1 |
•221 | 03540 | 020422 | LDA | 422B |
0222 ■■ | 33541 | C72O30 | RIA | * |
•223 | 03542 | 045734 | ISZ | BTCNT |
0224 | 03543 | 067545 | JMP | JHP14 |
ALL l'S IN MOST SIGNIFICANT BITS OF I/O REGISTER ALLO
LOADING OF THE SENSOR'S AND DATA INFORMATION FROM THE MAG CARD INTERFACE
MOVE 128IT WORD FROM I/O REGISTER TO A-REG
MOVE 128IT WORD FROM I/O REGISTER TO A-REG
UTILITY POUTINE USED TO STORE 16 BITS ON A MAG CARD SET BYTE COUNT TO 6 (3BITS/BYTE)
LOAD B-RFG ALTERNATING BIT PATTERN
BECAUSE OF INPUT REOUIREMENTS(PEADING)COHPLEMEnT
DATA. SAVE IT
GET 3 BITS
SET MSB FOR ADDRESS OF MAG CARD
OUTPUT WORD TO INTERFACE
-25
-25
DELAY FOP STROBE WHICH PLACES IT .003 INCH FARTHER A
SET STRORE BIT INTO RIT3 (ALTERNATING BIT PATTERN) ·
CLOCK FOR STRORE BIT LATCH
POSITION FOR NEXT STROBE BIT
-25
-25
DELAY FOR NEXT DATA ENTRY.(.003 INCH) CHECK BYTE COUNTER
NOT ZERO, GO POSITION FOR NEXT BYTE
309832/0843
0225 | Β3544 | 170402 | JMP14 | RET | HOLD | 03556 | 070742 | OATIN | SAr | 16 |
0226 | 03545 | 021732 | LOA | 3 | C3557 | 031732 | STA | HOLD | ||
0227 | Β3546 | 070106 | RAR | BTOUT | 93560 | 024412 | LDB | M6 | ||
C22B | 83547 | G67527 | JMp | 03561 | C35734 | STB | BTCNT | |||
β229· | OUTl' | 01 | β 3562 | 173742 | WORLD | CLF | 02 | |||
0230 | 03550 | 172141 | OTA | 02 | 83563 | 063516 | FLAG | JSM | GET | |
0231 | 83551 | 172602 | STC | G3564 | 172502 | SFS | 02 | |||
0232 | 83552 | 170402 | RET | 03565 | C676S0 | JMP | EOCL | |||
<J233· | Hi #· H 4 4 | ► IHHI ·β #ί | 0UT2 | }#**! | OUTl | C3566 | £63->ΐ6 | JSM | GET | |
0235 | 83553 | «63550 | JSM | 02 | 63567 | (57? 144 | SAL | 13 | ||
0236 | β3554 | 17?742 | STF | B357S | ίίί.1732 | IOR | HOLD | |||
8237 | 03555 | 170402 | RET | C3571 | 245734 | ISZ | BTCNT | |||
β23β· | 0239·····*······»»··*·*··*···*··*· | C357? | C67575 | JMp | JMPA | |||||
0240· | C3573 | 070646 | RAR | IA | ||||||
0241 | Ü3574 | 170402 | RET | |||||||
0242 | ||||||||||
€243 | 03575 | 070106 | JMP4 | RAR | 3 | |||||
6244 | 03576 | 331732 | STa | HOLD | ||||||
C245 | «3577 | 667562 | JMp | WDBLD | ||||||
6246 | ||||||||||
0247 | 03600 | 070306 | EOCL | RAR | 7 | |||||
0248 | 83601 | 071112 | SAM | FLAG | ||||||
ö249 | Β3602 | 067366 | JMP | OUT*1 | ||||||
025B | ||||||||||
C251 | «3603 | 601625 | ASE | DEF | 1625B | |||||
C252 | ||||||||||
G253 | 03604 | 000000 | BSS | 1 | ||||||
0254 | 03605 | Ο033Ε6 | DEF | .REC. | ||||||
0255 | 83606 | G33375 | DEF | .END. | ||||||
0256· | 63607 | 003406 | DEF | .LOO. | ||||||
0257 | ||||||||||
0258 | ||||||||||
0259 | ||||||||||
0260· | ||||||||||
0261 | ||||||||||
0262 | ||||||||||
0263 | ||||||||||
0264· | ||||||||||
0265 | ||||||||||
C266· | ||||||||||
0267 | ||||||||||
0268 | ||||||||||
0269 | ||||||||||
6270 | ||||||||||
0271·
0274 00300 DELAY EOU 0
8275 01546 CMA EQu 1546B
0276" ei730 TEMP EOU 1730H
•277 Ö1731 WDCNT EOU 1731B
fl278 81732 HOLO EOU 1732Π
8279 81733 ADMOD EOU 1733B
82Θ8 80513 WAIT EOU 513B
ZEROt RETURN WORD RECORDED
POSITION TO OUTPUT NEXT BYTE RECYCLE
OUTPUT DATA TO I/O REGISTER LATCH DATA INTO INTERFACE CARD
CALL OUTPUT TO I/O REGISTER ROUTINE SET STROBE LATCH
UTILITY ROUTINE FOR GET A 16 BIT WORD FROM CARD CLEAR BUFFER WORD
SE'T BYTE COUNTER TO SIX CLEAR FLAG FLIP-FLOP ON CARD INTERFACE GET DATA WORD
IS DATA PRESENT?
NO» GO CHECK FOR END-OF-CARD '.
YES.PLACE DATA BITS (3) IN HSD
OR IN DATA BI rs FROM HOLD CHECK BYTE COUNT NOT ZERO, MORE BYTES NECESSARY
ZERO,NECESSARY TO OBTAIN CORRECT DATA FORMAT
READY MOLD TO RECEIVED NEXT 3 BIT BYTE SAVE IT
JUMP TO GET NEXT BYTE
POSITION END-OF-CARD BIT INTO BITlS IF BlTlS=I MORE CARD LEFT» CHECK FOR DATA STROBE
END-OF-CARD SET 0=0
CHECKSUM
LINKAGE TO MAG CARO ORlVERS
US 8 J i! /1U 84 3
f2Bl | C1734 | Ö33365 | BTCNT | EOU | 1734B |
«282 | Cl 727 | T | EQU | 1727H | |
0283 | 03356 | 177772 | DATST | EQu | 3568 |
0264 | C1615 | BSTK | EQU | 1615B | |
©285» | 57 | 177715 | |||
6266 | 064(55 | SETUf> | EQU | 40SB | |
β287» | 77 | S52525 | |||
«238 | «1377 | HAW | EQU | 1377B | |
β289 | 60537 | ;* | STPKY | EQU | 537B |
0290* | 22 | ||||
6291 | 60522 | FMTOT | EQU | 522B | |
G292» | |||||
«293 | MASK | EQU | 423B | ||
6291« | |||||
€295 | M6 | EQU | 412B | ||
6296* | |||||
0297 | OFF | EQU | 361B | ||
0293 | DPI | EQU | 403B | ||
β299 | DP2 | EQU | 462B | ||
6360 | 0P3 | EQU | 40 IB | ||
Ε3Θ1 | 0P4 | ECU | 4g0B | ||
ö3C2 | DP6 | EQU | 376B | ||
0303 | C52525 | DP7 | EQU | 375B | |
β304 | ÖC423 | .KKC | EQU | 1701B | |
0305 | DMl | EQU | 405B | ||
C306 | 177743 | ENDS | EOU | 1542B | |
0307« | €0412 | ||||
0308 | ORG | 3G3B | |||
6309 | 177712 | DEF | OUT | ||
(3310 | 00361 | ORG | 412B | ||
0311 | COA03 | DEC | -6 | ||
6312 | CB402 | ORG | 421B | ||
C313 | 66401 | OCT | 177715 | ||
<J3U | eS5400 | ORG | 522B | ||
«315 | BS376 | OCT | 052525 | ||
6316 | C0375 | END | |||
* NO | G1701 | ||||
06405 | |||||
öl 542 | |||||
60303 | |||||
ÖB303 | |||||
S0412 | |||||
aC412 | |||||
GB421 | |||||
6S421 | |||||
BE522 | |||||
S0522 | |||||
ERROR? | |||||
ft OF WORDS REGUIRED FOR INTERPRETER
309832/0843
01266
ASMBtAtL
1266B COMPLIER SUBROUTINES
(Compiler-Unterprogramme)
ca ie C01i
Cß32 ■■
01266 021430 RECRR LOA FLAG
01267 072053 SAP »*ltS 01270 031430 STA FLAG
β 1271 !170744 SAL I C1272 073252 SAM ·*5
01273 065351 JMP BAD
disallow implied storage e1274 025681 disis ldb stat
«1275 074071 (11276 035601
C1277 170402
SLO »*ltC
STb STAT RET
Gl300 G14452 CL
C1301 C456C2 01302 014457
C 1303 (165317
Cl 01305 01306 C1307 61310
01311 0131? 01313
01314 01315 «1316
021544 CPl
025545 CP2
Ü74233
074617
074557
076230
P70444
074557
076053
035545
Ü65362
01317 O24403 El 61320 065351
CPB CNFO ISZ G CPB CNFY JMp El
LOA SKEY LDB PSP SBP **4»C
IOR BtI STA BtI RIB ·*4 SAL STA BtI
SBP «*ltS STB PSP JMP EXIT
LOB DPI JMP BAD
SET FLAG 15
CHECK FLAG 14
(SEE PAGE 5 FOR DETAILS!
ENTER HERE FOR LITERAL STRING INCREMFNT G IF ENO OF QUOTE
ERROR IF EOL, SINCE A QUOTE CANNOT BE CARRIED INTO NEXT LINE
THESE «!ASE-PAGE »OUTHIES ARE AVAILABLE TO THE REST OF
THE SYSlEM FOR UTILITY PURPOSES
309832/0843
226272
0045»
fi046»
Ö047»
004 8
G349
€050
0252
G053
0054
6055
C 056
C063
C 06'*
G0G5
C366
ß068
C269
CONVERT-TO-INTEGER
01321 C1322 01323
ßl324 61325 G1326 C1327 01330
B1331
B1332 61333 β 1334 fll335 01336 Ö1337 01340 61341 0Ϊ342 öl 343 61344 ß 1345 α 1346 61347
B1332 61333 β 1334 fll335 01336 Ö1337 01340 61341 0Ϊ342 öl 343 61344 ß 1345 α 1346 61347
121556 (373073 U24453 173034
074742 123450 Ü73712
ÜC5Ö427 031721 074117
Ο0&363 070613
G74744 (535717 0747S4 035717
1714Β3 Ö7VJ037
C21721 071213 «7G111
074076 17S462
FIXPT LDA SAp
• LDB XFR SBR
LDA
SAH
ADA STA LDA ADA SAP SBL STb SBL ADB -LS ADB LDA
SAp SLA TCB RET
APItI *+l»C
A0R2
16
ADR2tI
«♦14
DM256
Hl
H3276
»♦12
Tl 2 Tl
A Hl
6071*
β 1350 S24372
LDB OPiB API POINTS TO NUMBFR TO BE CONVERTED
CLEAR TEMPORARY BIT ADDRESS OF AR2 .· MOVE THE NUMBER TO AR2 INITIAL FIXED-POINT RESULT =
LOOK AT EXPONENT DONE IF 10«S EXPONENT. IS <0 ELSE DECR 10»S EXPONENT
AND SAVE IT
TEST FOR INTEGER OVERFLOW SKIP IF OVERFLOV/ MULTIPLY PREVIOUS RESULT BY
2 « RESULT 8 * RESULT
'SHIFT AR2 LEFT ADD IN NEXT DIGIT CURRENT ANSWER IS IN B-REGlSTER
TEST SIGN OF MANTISSA REPRESENT NEGATIVE NUMBER AS 2·S COMPLEMENT
RETURN WITH RESULT IN B-REGlSTER
ERROR
ERROR «10 (INTEGER OVERFLOW) WILL USUALLY BE MASKED BY SOME OTHER E^RORt SUCH AS ILLEGAL SUBSCRIPT
C073»
Ö274*
G075»
Ö076«
0077»
0078·
ß079*
0080» FLOATING-POINT NUMBER FORMAT:
0081*
THIS MAY NOT BE THE CASE· IF AN OPTION BLOCK USES THE
CONVERT-TO-INTEGER ROUTINE
0083»
«084*
Ö085*
«084*
Ö085*
WORD 1: EEEEEEEE S
WORD 2: DDDD DDDD DDDD DDDD
WORO 3: DDDD DDDD DDDD DDDD
WORD 4: DDDD DDDD DDDD DDDD
MOST SIGNIFICANT DIGITS HIGH-CORE END OF U
30983270843
ORIGINAL !NSPECTED
0037· 0088· Error EXIT «089« «090 0391
«092 C093
0095 0096 C097 Ο09β·
0399 0100·
01351 045603 BAD C1352 074644 91353 O217B5
01354 058513 Ö1355 074217
81356 031705 C1357 024405 C1360 17C402
«1361 000000 NORMAL EXIT
0102» β 103 OJ 04 6105
0106
0103 0109 0110
0111 0112 0113
ens 0116 β117· Olle«*
C119· 0120· 0121· 0122· fll23·
6124· β125· 0126·
01362 Ö1363 C 1 G1365 G1366 01367
01370 B1371 C1372
C1373 61374
021603 EXIT
073610
025566
074073
021545
073973
Ü7üO56
074017
070152
C7474Ü
170402
ISZ ERRS SBL LDA .WMOD
AND ERM2 IOR B STa .WMOO
LDB DMl RET
NOp
LDA ERRS
31375 024373 E9A 61376 B65351
LDB CP SBp **1,C LDA PSP SAP *«1»C
CHA ADA B SAM ·*3 SBR RET
LDB DP9 JHP BAD SET ERRORS FLAG POSITION THE ERROR BITS
FOR INSERTION INTO .WMOD
"AND" OUT OLD ERROR NUMBER "OR» IN NEW ERROR NUMBER
STORE THE INDICATOR WORD .WMOD INDICATE ERROR
TO CALLING PROGRAM
TO CALLING PROGRAM
RESERVED FOR CHECKSUM WORD
compare ep and psp for a POSSIOLE OVERLAP OF THE SAME
R/W MEMORY AREA BY ARITHMETICALLY COMPARING THE TWO ADDRESSES THEY ARE ABOUT TO OVERLAP
ALL OK
ONE OF TWO CIRCUMSTANCES UNDER WHICH AN OVERLAP OCCURS
EXIT FROM THE COMPILER IS ALWAYS THROUGH ONE OF THE AROVE
TWO ROUTINES
n0rm4l exit must check for previous errors rather than assume that all is o.k. so far
this is mainly because an error may have occured in a subroutine internal to the compilert in which case the
error Return is to the compiler
■WfrfrO 2-Λ0 O * 3-
'. 226272$
cqmph.fr begins here
β128*
6130* CONVERTS
0132» FLAGS:
G134* G
6138» PS
infix notation to polish notation
STAT
β 145« 0146» Öl 47»
«148»
0152» the
C155* 6156« 0157*
0158*
0161* 0162» 0163« G164«
Cl 65° C166« C167«
0168» 0169» G170«
6175· 0176*
0177· tl78»
IF ZERO* PROCESS INPUT CHARACTER NORMALLY IF NONZERO» GO TO SPECIAL ROUTINE INDICATED
IN THE TABLE TT82 (SEE PAGE 40}
STATE VARIABLE FOR SYNTAX CHECKING
GOVERNED BY THE SYNTAX TABLE ON THE NEXT PAGE
CONTROLS USe OF CO«MA» QUOTE» IMPLIED STORAGE
bit 0 set allows implied storage bit 1 set allows comma
bit 2 set allows ouote
errs signals at least one error has been detected
dp several flags used at various sd stages of number es syntax checking
conversion algorithm:
all operands are moved directly to the polish output
string via the routi1ne cpl <see page 2)
cp2 is a special entry used when a character other than the contents of skey needs to be moved out
each operator is.assigned a compare priority and a stack
priority
the compare priority of the newly encountered operator is checked against the stack priority of the operator
currently on top of a last-in fi*st-out stack
if the compare priority of the new operator is greater than this stack priority, the new operator is added to
the stack
othepwise the operator on top of the stack is removed
from the stack and place" in the polish output string and the relative priority test is repeated
in the case of gto or gsn an extrjy (blaw) machine word
is placed in thl polish string for use at execution tire when a high-speed access address is filled in by the
INTERPRETER
30 98 32/08 A3
• lßS»
• 106· «187· βΙΒβ·
0189· 0190· «191· β 192* β 193· «194·
«195· «196» «197»
β198· 0199· «200· «2β1·
LECALI
HOOE PS=Si
The row coRRrr.pOhniNr, το ps is checked to determine whether
OPND (
FCN
OLO NEXT CHAR STATE
SBO
QUOT
OPNO β IM IM IM OK OK OK OK CHK OK ERR 1
0203· «204· «205· 0206·
«207· 020β·
0210* •211·
«212· 0213·
0214· 021Ε· «216· 0217»
021β· «219» «220·
«221· β222· «223·
Β224· 0225· «226»
0227· 622Θ· 0229·
OPRTR
INITL STATE
PROC
INITL STATE
ENTER
FCN
OK OK
OK OK OK OK
OK
OK ERR ERR U* U- ERR ERR ERR
OK ERR ERR U* U- ERR DEL OK
OK OK OK £UR ERR U* U- ERR OK CHK
( INITIAL STATE FOR ENTER STMTS-- SOME PROC IN ERROR»
OK
ERR « ERROR
U* * DEL
A TftRLE OF STACK AND COMPARE PRIORITIES IS PRESENTED ON
PAGE 14
309832/0843
β231 | 84055 | 024535 CMSET | 031606 CM | 025540 CMPLR | G61274 GAZ | ORG | 4055B | • | CN | 073250 SQO | RZA | CPS2 |
β232· | 635545 | 023017 | 614355 | Ö73350 UPARO | DP4B | 366311 | JMP | |||||
0233* | C24456 | C24372 | A65373 | Ö66305 | EXim | |||||||
«234· | 035541 | 062317 | £•14351 | DP63 | ||||||||
6235 | COMPILER SETUP | 674742 | 065373 | LOB | TOPS | exzT+9 | ||||||
«236 | 035693 | COMPILER ENTRY | 014353 | STB | PSP | DP52 | ||||||
«237 | 04055 | 135541 | 665317 | LOB | OPST | El | ||||||
6230 | 64056 | 666273 | Ö4071 | STB | OP | |||||||
6239 | {!4357 | C4S72 | 021602 | SBr | 16 | G | ||||||
0240 | C4060 | IMPLIED MULTIPLY | 04073 | G7221Ö | STB | ERRS | ||||||
6241 | «4061 | 04074 | STb | OP, I | ||||||||
Ö242 | Ö4062 | 04S65 | β/, 075 | 021606 | JHP | CR | PS | |||||
«243» | Θ4063 | 04066 | 04076 | 607720 | TABl | |||||||
0244« | 64064 | ß4067 | 04077 | S74737 | Bsi | |||||||
0245* | C4070 | |||||||||||
«246 | 04100 | 003731 | STA | PS | TÄB2 | |||||||
0247 | S4101 | 670737 | LDA | IMUL | ||||||||
€248 | LDB | AMUL | ||||||||||
C249 | 041(52 | GAZINTA | JSM | CCl | ||||||||
0250* | C4103 | |||||||||||
«251· | 64104 | 64107 | DISIS | |||||||||
0252« | 04110 | |||||||||||
0253 | 84105 | 04111 | LDB | CPS6 | ||||||||
6254 | B4106 | CPB | ||||||||||
C25S | JMP | STRICTLY BINARY OPERATOR | ||||||||||
0256 | CPB | |||||||||||
C257 | JHP | S4I12 | ||||||||||
6258 | CPB | 64113 | ||||||||||
6259 | JMP | |||||||||||
0260* | ||||||||||||
0261 | LDA | |||||||||||
«262 | RZA | |||||||||||
9263* | ||||||||||||
0264 | LDA | |||||||||||
«265 | ADB | |||||||||||
0266 | JMP | |||||||||||
0267» | ||||||||||||
6268 | ADA | |||||||||||
0269 | JMP | |||||||||||
0270» | ||||||||||||
0271» | ||||||||||||
0272* | ||||||||||||
«273 | jsm | |||||||||||
6274 | rza | |||||||||||
0275 | JMP | |||||||||||
0276« | ||||||||||||
δ277· | ||||||||||||
«278» | ||||||||||||
6279 | ||||||||||||
«289 |
THIS SECTION INlTIaLlZES CERTAIM
FLAGS AND POINTERS.
then initializes the remainder
AN IMPLIED MULTIPLY MUST BE INSERTED IN THE STRING
FIRST LOOK AT THE CONTROL # CONTROL & 48
IGNORE CONTROL »63 ERROR ΪΓ CONTROL Ii
THEM LOOK AT G
EF G is ZERO THEN BRANCH TO A ROUTINE DETERMINED BY CN
VIA TABLE TABl
OTHERWISE BRANCH VIA TABLE TAB2 TO A SPECIAL ROUTINE
NO IMPLIED STORAGE IF 6AZINTA
THIS INCLUDES BINARY OPERATORS EXCEPT FOR ο AND ->
.
309832/0843
β282· | plus | 071710 | PLU | SZA | SBO | O7C310 | (ΠΒ210 | FCN | SZA | •♦6 |
0283· | 066305 | i>70742 | JMP | CPS6 | ||||||
0284· | «4114 | 164303 | IGNR. | JMP | OUT, I | £5316(56 | ||||
C2fi5 | OPERAND | C653B4 | ||||||||
(1286· | 64)15 | |||||||||
J237 | Θ4130 | 0204 02 | OPD | SZA | »♦4 | |||||
02Ö8· | MINUS | 071610 | MIN | SZA | SBO | 84131 | !566(565 | SAR | 16 | |
«32>39· | 114132 | STA | PS | |||||||
0290· | 64116 | Ö10376 | CPA | DP6 | 84133 | JMP | CPl | |||
0291 | 065317 | JHP | El | |||||||
β292· | «4117 | 154134 | LDA | DP2 · | ||||||
0293 | U4120 | 0?0402 | LDA | DP2 | Ö413S | JMp | CM | |||
«294 | 031636 | STA | PS | |||||||
<J295· | «4121 | 023155 | LDA | IUMN | ||||||
C296 | Θ4122 | 024506 | LDB | AUMN | ||||||
C297 | C4123 | 066317 | JMp | CCl | ||||||
0298 | 04124 | |||||||||
0299 | 04125 | FUNCTION, SUBSCRIPTED VARIABLE | ||||||||
0300 | ||||||||||
0301· | B4126 | |||||||||
C332» | 04127 | |||||||||
0333» | ||||||||||
0304 | ||||||||||
0305 | ||||||||||
«306· | ||||||||||
C307» | ||||||||||
0338» | ||||||||||
0309 | ||||||||||
0310 | ||||||||||
0311 | ||||||||||
C312 | ||||||||||
0313» | ||||||||||
«314 | ||||||||||
§315 | ||||||||||
IT MAr BE A U«. A=0 THEN BINARY OPERATOR
IGNORE ROUTINE.SET AtB-REGS ZER0
IT MAY BE A U-. A=0 THEN BINARY OPERATOR U- CANNOT FOLLOW
CHANGE THE REGULAR - TO A U-BY SWAPPING CODES
THE R-REGISTERS ARE TREATED THE SAME AS THE FUNCTIONS
OPERANDS GO DIRECTLY TO THE POLISH OUTPUT STRING (SEE PAGE 5»
INSERT AN IMPLIED- MULTIPLY ACCORDING TO SYNTAX TABLE
309832/0843
■- 219 -
«317»
#3!Β·
6319»
C328
C321
«322
6323·
8324
C325
0326
C32T,
6323
8329
0330
0331
0332
«333
633*·
©335
B3S&
β337·
C33S»
©339·
6346
6341
0343*
C344·
6345
S346
6347 .
«349
δ350 *
S351*
6352
84136 Β4137
84140
C4141 Β4142 Β4Ι43
S4i44 &4145 «4146 S4147
04150 S4I51 84152
«4153 64154
S41S5 64156
§4157
64160
64161
€4162.
Θ4163
64164
070650 LBR
020403
Β31606
125541
674604
C74113
Ö20402
62S601
S74404
031601 621561 D66317
G20403 G&6C65
072410 RBR 666315
010403 COM
665317
021601
C76002
B70111
G66313
SZA ·*13 Ll)A DPI STA PS
LDB OP,I SOL 4 SBP «*2
LDA DP2 LDB STAT SBL 8 ADB ALPR STA STAT LDA CODE JMP CCl
LOA OPl JMP CH
AGAIN THERE IS THE POSSIBILITY OF IMPLIED MULTIPLY
WHAT IS INSIDE THE BRACKETS?
«4165 065317
JMp CC
CPA DPI JMP El LDA STAT SAR 1
SLA ·*2 JMp CPSl
JMP El
INSERT AN IMPLIED MULTIPLY ACCORDIHG TO SYNTAX TABLE
THE RIGHT BRACKET MUST FOLLOy &N OPERAND
ERROR IF PS =1 ALSO HAVE TO CHECK STAT BIT I MUST BE SET
THE COMMA IS OK
THE COMMA IS ILLEGAL
«354· | FLAGS | 924372 STF | 662422 IF | 024376 LR | G62422 RET | LDB | DP10 |
«355· | Β4166 | Ö35602 | «566313 | 1)35631 | 066307 | STB | G |
«357 | β'. 167 | 062420 | JSh | CHKOl | |||
C 358 | C4170 | U66313 | METURNtSTOP | RETURNtSTOPtEND | tDISPLAY | JMP | CPSl |
(J359 | R4171 | Ö4211 | S4213 | ||||
«360 | 014546 GE10 | G4212 | 64214 | 024376 PD | CPB | CNFG | |
«361· | 6417? | 666175 | 035601 | JMP | «♦2 | ||
«362 | 04173 | C66236 | JMP | STZG | |||
«363 | β4174 | Θ55777 ' | tFIXEDtFLOATtl | DSZ | 1777Π | ||
0364 | «!'»ns | 163764 | 84215 | JSH | DRECPtI | ||
0365* 6366 |
Ö4176 | 024371 | 04216 | C62420 SFFNT | LDB | ACLF | |
9367 | 04177 | 160354 | 066307 | JSH | 354BtI | ||
036Β | «4203 | C45541 | SPACE | IS2 | OP | ||
0369 | C4201 | 073742 | SAR | 16 | |||
0370 | 64202 | 031602 | C4217 | STA | G | ||
β37ΐ | 64233 | Ö2Ö371 | 04220 | LDA | ACLF | ||
C372 | Β4234 | 160254 | JSh | SKCDtI | |||
0373 | 34205 | Ö66315 | JMp | CC | |||
6374 | 04206 | ||||||
«375 | IF· JUMP | ||||||
0376* | |||||||
«377» | 04267 | JSH | CHKB | ||||
β37β· | 04210 | JHP | CPSl | ||||
0379 | |||||||
038(5 | |||||||
0301· | LOB | DP6 | |||||
0332· | STB | STAT | |||||
β JUJ* 6334 |
|||||||
6335 | |||||||
«386·1 | JSH | CHKB | |||||
6387» Λ 'S Q DA |
JMP | CPS4 | |||||
β job· 6339 |
|||||||
«390 | |||||||
8391· | |||||||
«392· | LDB | DP6 | |||||
0393· | STB. | STAT | |||||
β394 | |||||||
0395 | NORH | tTRACEtf | |||||
β396· | |||||||
β397· | JSH | CHKOl | |||||
0396· | JMp | CP S4 | |||||
0399 | |||||||
«400 | |||||||
SET G=IB SO NEXT KEYCODE CAN BE LOOKED AT
CHECK FOR PROPER SYNTAX KEY OKAY
IF SAME KEYCODE AS LAST TIME CHANGE CODE TO CLF ELSE PROCESS PRESENT KEY
SETUP RETURN TO BUILD DISPLAY MOVE POINTER OVER SFG
STORE CLF IN INPUT BUFFER REMOVE STF FROM STACK
SETUP SKEYtCODEtAND CN
IF AND JMP MUST BE FOLLOWED BY AN ALGEBRAIC EXPRESSION
WHEREAS THESE CODES MAY BE COMPLETE IN THEMSELVES
NO COMMAS APPEAR WITH THESE CODES BUT THEY MAY APPEAR ALONE
0402· | ENTER | B62422 | ENT | JSh | CHKB |
Θ403* | 020433 | LOA | DPI | ||
6404» | «4221 | C31632 | STa | G | |
(*405 | 04222 | 065384 | JMP | CPl | |
0406 | 64223 | ||||
6407 | Ö4224 | 014454 | GEl | cpb | CNFE |
{5408 | Γ-66232 | JMP | »♦4 | ||
<3409* | β4225 | G14457 | cpb | CNFY | |
C4I0 | ί>4226 | 666233 | JMP | **2 | |
6411 | 84227 | Ü65304 | JMP | CPl | |
t-412 | iJ4230 | ||||
6413 | 04231 | O205O7 | SNLL | LDA | NULL |
<!414 | 061335 | jsm | CP2 | ||
0415· | 04232 | 02(5403 | LDA | DPI | |
0416 | 64233 | D61305 | JSM | CP2 | |
C417 | 04234 | 07ί!742 | STZG | SAR | 16 |
0418 | 04235 | (J31632 | STA | G | |
0419 | C4236 | ß&6ß7l | JMP | CMPLR | |
«420 | C4237 | ||||
0421 | Ü4240 | ||||
C422 | |||||
ENTER DOES A LITERAL TRANSFER OF CHARACTERS TO THE STRING AREA
UNTIL THE END OF THE STATEMENT
LOOK ODT FOR EOS OR EOL WHICH SIGNALS THE END OF
THE STATEMENT . ALLOW EOL
KEEP GOING
A NULL CHARACTER AT THE END SIGNALS THE REVERSE COMPILER
SIGNALS END OF ENTER STMT
TO DO A LITERAL TRANSLITERATION BACK TO ALGEBRAIC FORM
3 09832/0843
0424· | ENO-OF-LINE | 062254 | EOL | JSH | EOS |
0425· | |||||
0426· | 04241 | 12C535 | LDA | TOPS,I | |
0427 | 072G53 | SAP | •♦1»S | ||
042β· | C4242 | 132535 | sta | TOPStI | |
«429 | C 424 3 | 025545 | LDB | PSP ■ | |
0430 | C4244 | 074133 | SBP | •♦2,C | |
0431 | C4245 | 074070 | SIB | ••1 | |
0432 | 04246 | Ö35545 | STb | PSP | |
0433 | β 4 247 | O2C405 | LOA | DMl | |
0434 | C4253 | 131545 | STA | PSP, I | |
0435 | C4251 | 665362 | JMP | EXIT | |
6436 | 04252 | ||||
0437 | Ö4253 | ||||
8438 | |||||
C439· | t | 01C401 | EOS | CPA | DP3 |
0440· | 866272 | JMP | EO | ||
0441· | C4254 | ||||
0442 | 04255 | 010377 | DPS | ||
0443 | 066272 | JMP | EO | ||
0444· | 04256 | ||||
fl445 | 04257 | R7O104 | SAL | 14 | |
0446 | 073110 | SZA | •♦2 | ||
0447« | 04263 | U05317 | JMP | El | |
0448 | C4261 | ||||
0449 | &4H62 | C62315 | jsh | CC | |
5';5ß | (i2160l | LDA | STAT | ||
0451* | 04263 | Ο7Π251 | SLA | «♦5 | |
0452 | C4264 | (520505 | LDA | AZRG | |
0453 | 04265 | C61305 | JSH | CP2 | |
0454 | (*4?66 | 'J20464 | LDA | AGNZ | |
0455 | 04267 | 061305 | JSH | CP 2 | |
0456 | C4270 | ||||
G457 | C4271 | 061304 | EO | JSM | CPl |
f)45ß | |||||
0459» | 04272 | 02C401 | CR | LOa | DP3 |
046ß | 025563 | LDB | TSW | ||
0461· | C4273 | 014377 | CPB | DP5 | |
6462 | S4274 | O2fl377 | LDA | DPS | |
0463 | 34275 | 031636 | STA | PS | |
6464 | C4276 | G20'<03 | LDA | DPI | |
B465 | B4277 | C31601 | STa | STAT | |
0466 | 043?ö | 079742 | SAR | 16 | |
B467 | C43iU | 031632 | sta | G | |
3460 | C4302 | 065362 | JMP | EXIT | |
Ϊ.469 | 643»3 | ||||
3470 | 04304 | ||||
J471 | |||||
1472« | |||||
SET THE SIGM BIT AT THE START OF THE POLISH OUTPUT
MAKE SURE THAT PSP POINTS TO THE BEGINNING OF A LINE
BOUNDARY FOR COHPILER OUTPUT AREA
OF THE POLISH STRING
DOES EOS BEGIN THE LINE? YES
NECESSARY BECAUSE ENTER IS IMITAL PS=S
IS THE LlHE COMPLETE AS IT STANDS?
NO, ERROR
THIS SECTION IS ALSO USED BY THE COMPILER SETUP SEQUENCE
(SEE LINES 228-238)
Requirements on the format of the polish string are !474· further described in other listings
(476· THE HIGHLIGHTS ARE:
(477·
1478» 1) THE LIMITS OF THE PROGRAM AREA ARE BOUNOED BY HACHINE
»479· WORDS CONTAINING -1
309832/0843
i 2) EACH LINE BEGINS WITH A MACHINE HORD WITH THE SIGN
(1482· BIT SET till'· 3) THE LAST STATEMENT IN THE MAIN PROGRAM IS END-EOL
309832/0
■-' 224 -
0487· | STACK | ROUTINE | CPS6 | Vo t; | DP6 |
0488· | • ♦6 | ||||
0489 | «4305 | 024376 | CPS'4 | LDB | DP4 |
C490 | G4306 | 066314 | JMp | »♦4 | |
0491 | G4307 | (124400 | CPS2 | LDB | DP2 |
C492 | C4310 | 066314 | JMP | «♦2 | |
0493 | C4311 | 024402 | CPSl | LOB | DPI |
0494 | G4312 | t)66314 | JMp | PS | |
ß495 | 64313 | 024403 | LDB | ||
0496 | 04314 | 035606 | CC | ST8 | CODE |
0497· | SKEY | ||||
0498 | 64315 | 021561 | LDa | ||
0499 | 04316 | 025544 | CCl | LOB | THIS |
0500» | Tl | ||||
0501 | C4317 | 031716 | STa | ||
C502 | C4320 | 035717 | CCB | STB | DP15 |
0503» | OP,I | ||||
«504 | 04321 | Ö53365 | AND | 12 | |
C5555 | 04322 | 125541 | LOB | ||
6506 | C4323 | G74542 | SBR | A | |
6507 | ft 4324 | 074056 | CMB | OP,I | |
O50B | 04325 | 07R037 | ADB | f!H | |
0509 | G4326 | 121541 | LDA | «*9 | |
0510 | C4327 | 050345 | AND | ||
0511 | C4330 | 974453 | SBp | ALPR | |
C512· | E3 | ||||
ß513 | 04331 | 010503 | CPA | CP2 | |
C514 | 04332 | 066337 | JMP | OP | |
0515 | C4333 | 061305 | JSM | THIS | |
0516 | »4334 | 045541 | ISZ | CCB | |
0517 | G4335 | 021716 | LDA | ||
C518 | 04336 | Ü6J6321 | E3 | JMP | DP3 |
«519* | BAD | ||||
0520 | 04337 | 024401 | LDB | ||
0521 | S4340 | C65351 | JMP | THIS | |
6522* | IRPR | ||||
C523 | 04 341 | {525716 | LDB | WRBK | |
6524 | 04342 | 014056 | CPB | THIS | |
0525 | C4343 | 066360 | JMp | 4 | |
0527 | 54344 | P21716 | LOA | 12 | |
e528 | 04345 | 070142 | SAR | Tl | |
0529 | 04346 | 070204 | STSK | SAL | OP |
6530 | C4 347 | £41717 | ior | OP, I | |
0531 | 04 350 | 655541 | DSZ | OP | |
C532 | C 4 351 | 131541 | STa | ||
6533 | 0435? | 021541 | LOA | OPLM | |
0534 | 04353 | 370376 | TCA | **?. | |
0535 | P4354 | C30536 | AOA | EXIT | |
0536 . | C4355 | Ö7flll3 | SAP | E9A | |
0537 | C4356 | 065362 | JMP | ||
C538 | 04357 | 065375 | WRBK | JMp | ALPR |
C539· | •♦3 | ||||
0540 | C4360 | 010503 | CPA | ||
0541 | 04361 | 066364 | JMP | ||
(Stapelspeicher-Programm)
riRST RESET PS PROPERLY
with these initial entry points
SET IT TO It 2» OR h
GET THE INTERNAL AND EXTERNAL FORMS OF THE CODE
AND TEMPORARILY SAVE THEM FOR LATER USE
COMPARE RELATIVE PRIORITIES BY SUBTRACTING ONE FROM THE OTHER
ALSO REMEMBER WHAT IS ON TOP OF THE STACK RIGHT NOW
UNSTACK A CHARACTtR SINCE NEW PRIORITY IS NOT
HIGHER THAN TOP OF STACK
LOOP BACK TO REPEAT THE TEST PAREN ERROR — EXTRA
<
IS THIS A >?
YES
YES
ADD NEW CHARACTER TO STACK
FIRST DECREMENT THF. POINTER THEN STASH THE CHARACTER
next Check for stack overflow
OPLM-OP<0 OR BAD
IT WAS A )
309832 /Ό843
0542 | «4362 | 024400 Ε4 | LD8 | DP4 |
β543 | 34363 | GG5351 | JMp | BAD |
0544 | G4364 | 121541 | LDA | OPtI |
©545 | 64365 | G7fl604 | SAL | 4 |
0546 | €4366 | 070542 | SAR | 12 |
C547 | G4367 | 031601 | STA | STAT |
ß548 | 04370 | G45541 | ISZ | OP |
C549 | S4371 | 065362 | JMP | EXIT |
PAREN FP-ROR — EXTRA )
0551 64372 600000 NOP 0552*
6553«
0554* PRIORITY TABLE FOR ST/yCK ROUTINE
0555*
6556« STACK COMPARE
C557* SYMBOL PRIORITY PRIORITY RESERVED FOR CHECKSUM HORD
Ö560*
C562* 0563*
0564» 0565» ß566»
fi567* «568« 6569»
0570» 0571» 6572«
6573» 6574* fi575» C576»
C577» C578* C579O
0560* 0581·
0582* 8583*
OR
AND
NOT RELATIONAL
♦ «
IMP» + FCN PROCEDURE
U 1 2 3 4 5 6 7 8 8
10
11
12
13
10
11
13
see page 5 for a further discussion
important locations:
skey -- contains current keycode in ascii form
code ~ contains current keycode in internal form
309832/08U
5585· 0586» 0587· 0588 0589
6590 C591 ©592 C593 «594
0595 Ö596 C597 β59β 0599 0600·
C601» €•602·
6T0/6SB
0604 C635 0606
0607· 6608· 0609· «610 0611
β612 0613 0614 C615· 0616« Ö617· G618
0619 0620 C621
0622 Ö623 fl624» 0625»
0626» C627» «628·
(34373 H4374 C 4
C4376 C4377 04400 β4401 04402
Ö44Ö3 «4404 04405 64406
062422 GTO Ö20376 £531632
C61304 025545 Ö74133 'S74070
070742 074557 074070 035545 065362
G=9 GO ff
64407 ei4366 GE9 04410 065334
C4411 014367 R4412 065334
G=O GO END
G 4413 614454 GE8 C4414 1566232
04415 014457
04416 Γ66232 «4417 065317
BEGINS CHECK
JSM CHKB LOA DP6 STA G JSm CPl LDB PSP
SBp »*2,C
sia ·*ι
SAR STA B,I SlB »*1 STB PSP
JMp EXIT
CPB CNFD JHP CPl CPB CNF2 JMP CPl
CPB CNFE JHP SNLL CPB CNFY JMP SNLL JMP El
04420 010377 CHKBl CPA DPS
04421 C65274 64422 ClL'401 CHKB
C4423 065274 84424 055777 04425 C65317
JKP DISIS CPA DP3 JMP DISIS
DSZ RSTAK JMP El GTO ANR GSB MUST BEGIN THE STATEMENT
THEIR SYNTAX IS IDENTICAL
ADJUST PSP TO BEGIN A MACHINE WORD
LEAVE Λ BLANK WORD FOR THE FAST-ACCESS AODRESS
GENERAL PROCEDURE!
FIND OUT EXACTLY WHAT KINO OF GTO OR GSB THIS IS BY LOOKING AT THE FIRST CHARACTER
TO BE TERMINATED BY A NULL CHARACTER SO THAT TKE REVERSE
COMPILFP CAN SKIP OVER THE LITERAL INFORMATION
ALLOWS CODE TO BE USED FOR ENTER STMTS
CODE ALLOWED IF IT BEGINS A STMT
IF THERE IS AN ERROR, THE JSM TO THIS SECTION MUST BE CHUCKED
0630· β631· C632·
the fast-access woi?ds are set by the gto/gsb routines
in the course of normal execution
hencc each gto/gsb is executed slowly once and
only once
The fast-access words are reset whenever the program
could be modified
309832/0843
C634» Ö63S«
0636« «637 0638 Θ639 β 640
0641 0642 G643 0644»
6645 C&46
«647 6648 0649 «650 6651 6652*
f,653 6654 «655
0656 C657» C658* G659·
C661 Ö662 6663 G664
C66S β666 C667 6668 6669 6670*
0671« 0672« C673O
C674°
QUOTE
04426 910401 OUO
«4427 C66444 64438 010463
B4431 066435 84432 61ο4«8
04433 C66435
04434 G65317
Ϊ54435 C21545 CHQ C4436 07B152
04437 623510 64440 C-31544
C4441 0216S1 ß4442 Ö73042
04443 071451
84444 O2P4S0 ROU
C4445 £31682
64446 061274
«4447 Ö653S4
G=5 END QUOTE
Ö4450 076742 Gc5
64451 Ü31602
64452 Ö316S6 G4453 514451
G4454 C66071 04455 S14454
64456 C66071 C4457 014457
64460 066S71 04461 065317
S676* 0677* C678*
C679« C68Ö»
6681» C682«
CPA DP3 JMP ROU CPA DPI
JMP CHQ CPA DP4 JHP CHQ '
JHP El
LDA PSP SAM **3
LDA SQT STft SKEY
LDA STAT SAR SLA »-7
LOA DP4 STa JSH DISIS JHP CPl
SAR STA G STA PS CPB CNFC JKP CHPLR CPB CNFE
JHP CMPLR CPB CNFY JHP CMPLR JHP El DOES THE " BEGIN A STATEMENT?
yes, it is ok
otherwise check against the syntax table
otherwise check against the syntax table
cpa has the wrong sense
IS CHARACTER TO 8E STORED IN LEFT-HALF?
YES.MAKE SKEY SPECIAL "
HAVE TO CHECK STAT
THE QUOTE IS DEFINITELY OK SO SET G TO OO A LITERAL TRANSFER THERE IS K1O IMPLIED STORAGE
OF A QUOTE STRING
AT THE CLOSING " RESET G ·
THE STRING MUST BE FOLLOWED BY A COMMA OR THE END OF THE
STATEMENT OR LINE
<36B4« 0685·
there are two main uses for quotes:
ij as a label for a line
ij as a label for a line
2) as alphameric information for an output routine such as print oh display
λ larfl for a line is "interpreted·· by building the
alphameric cooes in the run-time stack
this is a haste of time» but otherwise does no harm
the gto λνο gs8 routines scan the beginning of each
line in search of a label» when necessary for alpha gto or gsb
309832/0843
«687·
β668· |
numeric (Ziffern) | 072150 NUM | RZA | 025543 | LOB | •♦3 |
«689» | C234fl2 | LDA | U14366 GE2 | CFB | DP2 | |
©690 | «4462 | 066065 | JMP | D66521 | JMP | CM |
C691 | C4463 | 023724 | LDA | 014367 | CPB | ADPS |
«692 | «4464 | 170P30 | CLR | 066521 | JHP | |
C693 | 64465 | 0234(32 | LOA | 014365 | CPB | 0P2 |
0694 | C4466 | G316C2 | STA | G66524 | JMP | C |
(J695 | §4467 | O2C511 | LDa | G14364 | CPß | ALPl |
0696 | 04470 | 061305 | JSm | U66531 | JMP | CP2 |
«697 | «4471 | |||||
6698 | 64472 | 6=2 ANALYZE NUMERIC CHA | C216J3 | LDA | RACT | |
Ö699· | 372110 | SZA | ||||
«700· | 04473 | 066236 | JMP | CN | ||
0701· | 64474 | CNFO | ||||
C702 | 04475 | 021607 | LDA | CO | ||
8703 | 04476 | 070056 . | CMA | CNFZ | ||
©70ί» | C4477 | 651611 | AND | CO | ||
€705 | C4500 | 070310 | SZA | CNFP | ||
C7B6 | 84501 | 045657 | ISZ | CDP | ||
fl707 | 64502 | 014374 | CPB | CNFX | ||
C708 | Ö4503 | C65304 | JMp | CE | ||
C709 | 014375 | CPß | ||||
C710 | 245C4 | (365362 | JMP | SD | ||
0711» | C45S5 | 065317 | JMp | *»2 | ||
«712 | Ö4506 | STZG | ||||
€713 | 020403 CO | LDA | ||||
«714 | 04507 | 031610 | STA. | DP | ||
0715* | 84510 | 065334 | JMp | |||
«716 | G4511 | ES | ||||
C717 | 04512 | 021607 COP | LDA | •♦6 | ||
0716 | 64513 | 0'-.16Il | I OR | DP | ||
β719 | C4514 | C73510 | rza | CNFS | ||
€720, | G4515 | 045607 | ISZ | CPl | ||
0721 | 04516 | Ö65334 | JMP | CNFA | ||
C722 | 64517 | EXIT | ||||
0723 | 04520 | 021610 CE | LDA | El | ||
«724 | «70056 | CMA | ||||
«725 | G4S21 | 051607 | ANO | DPI | ||
«726* | 04522 | C41611 | IOr | SD | ||
6727 | 04523 | 073150 | R2A | CPl | ||
«728 | ||||||
0729 | 04524 | DP | ||||
9730» | C4525 | ES | ||||
0731 | C4526 | e-6 | ||||
0732 | «4527 | DP | ||||
0733 | «453(1 | CPl | ||||
«734·
«735 |
||||||
«736 | «4531 | SD | ||||
«737· | 84532 | |||||
C738 | «4533 | OP | ||||
• 739 | 04534 | ES | ||||
«740 | «4S3S | •-13 | ||||
«741 | ||||||
«742 |
STORE AW ALPHA CHARACTER TO SIGNAL THE BEGINNING OF THIS NUMBER
OOES IT START WITH A DIGIT OR DEC? FIND OUT BY LOOKING AT THE
CONTROL NUMBER
IT WAS NOfs'E OF THESE» SO IT MUST BE THE END OF TlC NUMRER STRING
OR THE »OR - EXPONENT SIGNS
WRAP IT UP
WERE THERE ANY MANTISSA DIGITS? NO, JUST AN ISOLATED DEC
STORE THE - EXPONENT SIGN SCRAP THE ♦ EXPONENT SIGN
INDICATE AT LEAST ONE MANTISSA DIGIT WAS ENTEREO. THEN STORE THAT DIGIT
309832/0843
0743· 0744 0745 0746 C747 0748
0749 3750 ö751 0752
C753» 0754* <J75S·
0756« 0757« 0758*
0759« 0760ο 0761«
0762» 0763« 0764« §765» 0766«»
04536 64537 64540
C 4 04542 04543 C 4544
045611 C70742 031607 025610 031618
076150 020594
C4545 061305 04546 Ö65304
ISZ | ES |
SAR | 16 |
STA | OP |
LOB | so |
STA D 7 η |
SD |
KiQ LOA |
**3 AONE |
JSM | CP2 |
JHP | CPl |
DOES THE EXPONENT SPECIFICATION STAND ALONE OR WEFiE THERE MANTISSA DIGITS?
IT STANDS ALONE
the numeric routine does no conversion to internal format
ITS MAIN FUNCTIONS
1) CHECK FOR PROPEN NUMBER SYNTAX
2) CHANGE ... EEX TO ... 1 EEX
EXPONENT OVERFLOW/UNDERFLOW IS CHECKED AT RUN TIME
SINCE ADJACENT NUMBERS MAY APPEAR IN THE REVERSE POLISH
OUTPUT STRING, A SPECIAL CHARACTER (ALPHA CHARACTER) IS USED TO SEPARATE NUMBERS
309832/0843
6769* 0776»
0772« 0772« 0773' 0774"
0775* £776* 0777» 077ß»
0779* 67C0«
07B3* 0784»
interpreter begins here
interprets the polish notation produced by the compiler
ThE INTERPRETER CONSISTS OF a CONTROL ROUTINE. DESIGNED
to fetch codes from the program and route control to the appropriate run-tihe routine
and the run-tihe routines themselves
sohe op* the run-time routines are the math routines
which are in a separate listing
The individual run-τικγ routines
are numerous rut straightforward
ThE INTERPRETER MAINTAINS A STACK TO HANAGE OPERAND ADDRESSES AND TEMPORARY RESULTS :
0707« 07ßß» 0789* C790«
0791» 079?»
079Ί» 0795« 6796*
0797* 0790» Ö799»
ÖÖO0* 0801»
0802» 0803«
3005
0807« O80C« ößCl9»
0810» 0811»
C813« 68U»
• itoct«
309332/08Λ3
; .· - 231 -
0816* API POINTS TO THE CURRENTLY VALID TOP ADDRESS
0818· THE API SIGN BIT SIGNIFIES!
682β· IF CLEAR - THE ADDRESS IS A PERMANENT REGISTER
0822· IF SET - THE ADDRESS IS A TEMPORARY RESULT IN
0823· THE UPPER STACK
6827* AP2 POINTS TO LINK INFORMATION FOR THE LAST-EXECUTED
6828» GSB
0830· THE ENTIRE SET OF LINK WORDS IS STORED IN A
6831* CHAINED LIST TERMINATED BY THE -1 AT THE BOTTOM OF
0832* THE STACK
6835· v
€836* WHEN A GSB IS EXECUTED A REMINDER FLAG (GTS) IS SET
0838* THEN AT THE END OF THE LINE THE RETURN INFORMATION
β839· IS ACTUALLY STORED
es4i* this is done mainly ,because a gto could cancel a
0842* PREVIOUS GSB
§844* (CONSIDER ALTERNATING IF AND GTO OR GSB STATEMENTS)
©848» THE FOLLOWING KEYCODES ARE EXECUTED IN ROUTINES
0849» EXTERNAL TO THE INTERPRETERS
0851« ALL MATH
0852» ENTER
6853* STOP
6854* NORMAL
6855· TRACE
6856° FlXEO
©857· FLOAT
«858· ■ SPACE
β859· PRINT
0866» DISPLAY
Θ861* LOAD
0862* RECORD
6863· END
S864* ALL OPTION BLOCK CODES
309832/0343
«666· | INTERPRETER SETUP | S21542 | INTRP | (MAIN | JSm | ENTRY) | IMAtI |
«867· | CAp/,07 | ADA | •♦3tC | ||||
«668· | G4547 | 631614 | LDA | LDA | ENDS | ||
C869 | «4550 | 031615 | ADA | EXA | DM3 | BtI | |
«870 | «4551 | C3P401 | STA | JMP | TPP | • ♦4 | |
«871 | C4552 | 031557 | ADA | BSTK | BtI | ||
«872 | «4553 | ß2f!405 | ADA | DP3 | 7 | ||
«873 | 64554 | 131557 | STA | AP2 " | •♦ltS | ||
«874 | S 4555 | 170402 | LOA | DMl | |||
0875 | «4556 | 0356)35 | XRH | STA | ΛΡ2 ti | IMAtI | |
«876 | «4557 | RET | RH | ||||
«877 | «4560 | STB | IMA | SKEY | |||
C878 | TADD | ||||||
«879· | I | 070742 | XRI | AtI | |||
«880· | 031604 | code | |||||
«881» | «4561 | 031702 | SAR | 16 | 10 | ||
«882 | • 4562 | K25614 | XR | STA | NMA | CN | |
«683 | «4563 | 035551 | STA | GTS | |||
«884 | C4564 | 025557 | LDB | TPP | |||
«885 | «4565 | 035556 | STb | TP | |||
«β86 | «4566 | LDB | AP2 | ||||
0887 | «4567 | EXECUTE | STB | API | |||
«888 | |||||||
«889· | GO TO | C62575 | : routine | ||||
«890» | 033701 | ||||||
«891· | €4570 | O7S51.7 | XJ | SXJ | |||
0092 | 64571 | 07Pßl6 | TA03 | ||||
«893 | 6457? | 066570 | A,I | ||||
#894 | S4573 | ||||||
«895 | «4574 | JP NEXT | XJ | ||||
0696 | |||||||
<»897· | PICK < | 125605 | CODE | (SUBROUTINE) | |||
«898» | 074173 | ||||||
C899· | 64575 | SXJ | LDB | ||||
«96*0 | «4576 | 074517 | SBp | ||||
«901 | 076230 | ||||||
«902· | «4577 | 074517 | LDA | ||||
«903 | 64600 | (370382 | RIB | ||||
«904 | 04601 | 076053 | LDA | ||||
0906 | C4602 | SAr | |||||
0907 | C4603 | 1356S5 | SBP" | ||||
«908 | C5f>3't5 | ||||||
09Β9· | 64604 | C315'.4 | STB | ||||
0910 | 04605 | t?0fl377 | ANO | ||||
C911 | 04606 | C70517 | STA | ||||
091? | 04607 | 031561 | ADA | ||||
0913 | 046 IC | 070442 | LDA | ||||
«914 | 04611 | 931540 | STA | ||||
0915 | 0461? | 170402 | SAR | ||||
C916 | 04613 | STA | |||||
«917 | 134614 | RET | |||||
«918 | |||||||
FIRST SE^ UP THE REOWRED POINTERS
FOR THE RUN-TIME STACK
SAVE THE STARTING PROGRAM ADDRESS
RESET THINGS IN PREPARATION FOR A NEW LINE
RESET THINGS IN PREPARATION FOR A NEW STATEMENT
LOOK UP THE NEXT CnOE TO RE EXECUTED AND BRANCH TO AN EXECUTION ROUTINE
VIA TABLE TAB3
THIS SUB&OUTINE GETS THE NEXT CODE
FROM THE MEMORY ARFA DESIGNATED BY
IMA AND EXTRACTS PERTINENT FIELDS OF INFORMATION FOR LATER USE
PERTINENT INFORMATION! SETUP SKEYiCODEtANO CN
309832/0843
•8920» | SETUPS | 125556 | 355556 | XBSET | LOB | API,I |
0921» | 345556 | 021561 | ISZ | API | ||
0922» | «4615 | 074473 | 050345 | * | SBP | «♦9,C |
0923 | C4616 | U80442 | ||||
3924 | 04617 | 035553 | 131556 | stb | 0PND2 | |
0925 | C21551 | lda | TP | |||
C926* | 04620 | 125556 | 025556 | lob | APIiI | |
C927 | (!'«621 | Ö74673 | Θ74056 | SBp | »+13,C | |
«928 | 04622 | 005551 | ||||
«929 · | Ö4623 | 000410 | 004374 | ADA | DM4 | |
G930 | (531551 | 07A113 | STA | TP | ||
3931» | 64624 | 035555 | 066570 | stb | RESLT | |
«932 | £14625 | 066643 | JMP | XU2 | ||
<3933 | 64626 | 024373 | ||||
«934 | 64627 | 035553 | 066705 | stb | 0PND2 | |
0935 | ||||||
<5936» | Ö4630 | 125556 | XUSET | LDB | API.I | |
0937 | 074173 | SBp | «♦3tC | |||
»3938» | C4631 | |||||
0939 | 64632 | 035555 | stb | RESLT | ||
0940 | 066643 | JKP | »♦7 | |||
0941» | C4633 | |||||
0942 | 04634 | 521551 | LDA | TP | ||
Ö943 | CQ04SS | ADA | DP4 | |||
0944* | «4635 | 031551 | STA | TP | ||
6945 | 04636 | 031555 | sta | RESLT | ||
0946 | 04637 | Ö72053 | SAp | **l9S | ||
0947 | C4640 | 131556 | STA | APl9I | ||
0948 | S4641 | |||||
«949 | G4642 | 035554 | XU2 | STB | OPNDl | |
6950 | 025540 | LDB | CN | |||
6951« | Ö4643 | 034514 | ADB | ARITH | ||
0952 | 64644- | 074737 | JHP | Bo! | ||
0953 | 04645 | |||||
0954 | 04646 | OPERAND | ||||
0955 | ||||||
3956« | C4647 | XOPD | DS2 | API | ||
6957» | 04650 | LDA | CODE | |||
695$· | 64651 | AND | RH | |||
0959 | C4652 | ADA | ADOP | |||
«96* | 04653 | STA | APIfI | |||
096* | ||||||
0962 | 04654 | OVLP | LDB | API | ||
Ö963 | £14655 | CMB | ||||
0964· | 04656 | ADB | TP | |||
096S | C4657 | ADB | DPS | |||
«966 | G4660 | SBP | **2 | |||
0967 | 04661 | JHP | XJ | |||
«968 | ||||||
«969 | C4662 | E9B | LDB | 0P9 | ||
Ö970 | B4663 | JMP | EXER | |||
0971» | ||||||
0972 | ||||||
«973 | ||||||
THIS ROUTINE UPDATES THE STACK POINTERS IN PREPARATION FOR A BINARY ARITHMETIC OPERATION
UNARY OPERATOR
THIS ROUTINE UPDATES THE STACK POINTERS IF REQUIRED FOR A UNARY ARITHMETIC OPERATION
THIS ROUTINE BRINGS AN OPERAND TO THE RUN-TIME STACK
MAKE SURE NO OVERLAP OCCURS BETWEEN THE TWO STACKS
ALL OKt SO GET NEXT CODE MEMORY OVERFLOW
30 983 2 /08h3
0975· 6976· GAZINTA 6977· β978 «4664 125556 XGAZ LOB APItI
fl979 (!4665 074153 , SBp »♦!
Β4666 024376 Ε6 LOB DP6 C4667 066705 JMp EXER
C981
0983 0984 0985
0906 0987 0988* 0989 0990 β991 6992
0993 0994» «1995· 0996· 0997
6998 0999 jause
1801 1002 1033»
04670 G35550 STß .STPT
04671 045556 ISZ API «Η672 121556 XGAZl LDA APItI
G4673 O7C073 ■ SAP **ltC
B4674 170004 XFR
1007 1008 1009
1010 1011 1012 1013 1014· 1015 1016
Ö4675 P217C5 C4676 070151
64677 160310 S47«!«l 16Π250
Θ4701 S66570
R-REGISTJTR
LOA .WMOO
JSk .FHTZtI JSh .PRTItI
JMP XJ
04702 C51321 SUBSC JSH FIXPT
C4703 074213 SBp ·*4 04704 C24377 £5 LOB 0P5
Ö4705 061351 EXER
C4766 066570
64707 074704 ß4710 004401
04711 074056
04712 005712
04713 021542 C4714 R01615
04715 070056 C4716 074017
C4717 071252
C4720 135556 04721 0665/0
JSK BAD JHP XJ
SBL ADB DP3 CHB ADB RR
LDA ENDS AOA BSTK CMA ADA B SAM »-I1
STb API ti XJ THIS ROUTIUE STORES AN ARITHMETIC
VALUE IN A PERMANENT REGISTER (ONLY»
ILLEGAL STORE
RECORO THE STORE FOR TRACE OR DISPLAY PURPOSES
OO THE TRANSFER
IS TRACE REQUIRED?
YES
GET ADDRESS OF AN R-REGISTER BY FIRST CONVERTING TO INTEGER SUBSCRIPT OUT OF RANGE
309 832/0843
1019* | OUOTE | C24485 XQUO | LDB | DMl |
1020· | C356I3 | STb | N | |
1021 | •4722 | C55556 | DSZ | APl |
1022 - | i4723 | G21551 | LDA | TP |
1023 | §4724 | (ΪΡ3400 | AOA | DP4 - |
1024 | 04725 | 031612 | STA | M |
1025 | C4726 | 040262 | IOR | ALPH |
1026 | €472-7 | 131556 | STA | APItI |
1027 | 84730 | 062575 XGE4 | JSM | SXJ |
1028 | Ö4731 | 01C452 | CPA | CNFQ |
iß30 | 04732 | C66751 | JMP | XENQ |
1®31 | §4733 | |||
1032 | 64734 | 655613 | DSz | N |
1©33* | 621544 | LDA | SKEY | |
1034 | 84735 | 025612 | LDB | M |
1035 | «S4736 | Ö74233 | SBP | •♦4»C |
1036 | 64737 | 074617 | IOR | B, I |
1037 | £4740 | C74557 | STA | B»I |
1638 | 64741 | G76230 | RlB | **4 |
J 039 | Ö4742 | 670404 | SAL | 8 |
1040 | 64743 | G74557 | STA | B*I |
1041 | Ö4744 | C76C53 | SBP | «♦ItS |
1042 | Β4745 | 035612 | STB | H |
1043 | 64746 | C'66732 | JMP | XGE4 |
1044 | S4747 | |||
1645 | 04750 | &25612 XENQ | LDB | H |
1046* | C74273 | SBp | **StC | |
1047 | 64751 | 074517 | LDA | BtI |
1048 | 04752 | OAS360 | IOR | ABLK |
1049 | 04753 | 074557 | STA | BrI |
1050 | 64754 | 674070 | SIB | »♦1 |
1051 | 04755 | |||
1052 | 04756 | 621613 | LDA | N |
1053* | 074557 | STA | BtI | |
1054- | C4757 | 004407 | ADB | DM3 |
1655 | 84760 | C35551 | STB | TP |
1056 | 64761 | C66654 | JHP | OVLP |
1057 | C4762 | |||
105β | 34763 | |||
THIS ROUTINE PLACES ALPHAMERIC INFORMATION IN THE TEMPORARY STACK FOR USE Br OUTPUT ROUTINES
THE INFORMATION IS PACKED TWO CHARACTERS PER MACHINE WORD
LOOK OUT FOR THE ENDING QUOTE
NO ENDING QUOTE YETt SO PLACE NEXT
CHARACTER IN STACK
STACK THE CHARACTERS IN PACKED FORMAT
COUNTER N IS THE CHARACTER COUNT IN 1»S COMPLEMENT FORK
LOOP BACK TO GET NEXT CHARACTER ENDING QUOTE FOUND
PAD THF STRING WITH A BLANK IF REQUIRED TO ELIMINATE GARBAGE
READJUST ALL POINTERS AND GO CHECK FOR OVERLAP
309832/084
1060» | SPACE» | FIXED» | FLOAT | LDA | FXD |
1(561* | JMP | ·*?. | |||
Ϊ062« | «4764 | C23305 | FIX | ||
1063 | €4765 | C66767 | LDA | FLT | |
1064 | STa | T2 | |||
1065· | 04766 | C2O304 | FLO | ||
1066 | B4767 | Ö31720 | LDB | NRSLT | |
1C67 | STß | .STPT | |||
1068· | 64770 | 025572 | LDB | OMl | |
1069 | 64771 | 035550 | LDA | APl | |
1270 | 04772 | Ü244C5 | CPA | AP2 | |
1071 | 94773 | 021556 | JHP | T2»I | |
1072 | <?4774 | 011557 | |||
1073 | 64775 | 165720 | JSM | FIXPT | |
1074 | LDA | B | |||
1075· | 64776 | C61321 | SAH | o*4 | |
1076 | H4777 | 076117 | ADA | OM10 | |
1077 | 65080 | O7C?12 | SAp | •♦2 | |
1078 | S5001 | 088415 | |||
1079 | 85002 | 070113 | JHP | T2,I | |
1080 | |||||
1061· | 05003 | 165720 | LD3 | DP2 | |
1082 . | JHP | BAD | |||
1083· | G50E4 | C24402 | E2 | ||
J.t/84 | ß5ßß5 | 055351 | LDA | OP10 | |
1065 | LDB | APl | |||
1CG&» | 05B06 | C20372 | SPA | CPB | AP2 |
1037 | C5O07 | 025556 | JHP | SPCtI | |
1008 | C5010 | G15557 | |||
1089 | 65011 | 164473 | JSH | FIXPT | |
1090 | LDA | B | |||
1091· | 65012 | 061321 | SAH | E2 | |
1092 | C5013 | 074117 | SZA | • ♦0 | |
1093 | 05014 | 071412 | ADA | DM16 | |
1094 | 05015 | 079410 | SAP | E2 | |
1095 | G5G16 | Oß0420 | SBL | 1 | |
1096 | 05017 | 071253 | LDA | B | |
1097 | C5C22 | 074744 | SBL | 2 | |
1098 | esezi | 074117 | AD/V | O | |
1099 | ti582? | C74704 | JHP | SPCtI | |
Il CO | 65023 | 074017 | |||
llßl | 05G24 | 164 473 | RET | ||
lie? | |||||
1103· | 65025 | 173402 | |||
1104 | |||||
THESE ROUTINES GET THE PARAMETER FOR FIXED, FLOAT» AND SPACE
THE ACTUAL OPERATION OF THE ROUTINES IS DESCRIBED IN THEIR RESPECTIVE
LISTINGS
IN GENFRALt THE PARAMETER IS FETCHED
AND CONVERTED TO FIXED-POINT
IF NO PARAMETER IS SUPPLIED» A SUBSTITUTE IS FURNISHED BY DEFAULT
309832/0843
1106· | IF | Ö61321 | XIF | NONX | JSM | FIXPT |
1107«» | 074150 | SZß | »♦3 | |||
1108» | C5026 | 066570 | « | JMP | XJ | |
1109 | C$027 | |||||
1110 | 05030 | 035604 | STB | NMA · | ||
1111 | ||||||
1112· | Ö5031 | 121605 | LDA | IMAfI | ||
1113 | 07B373 | SAp | »♦liC | |||
1114* | 65032 | 070070 | SIA | *+l | ||
1115 | G5033 | 070537 | LOB | A,I | ||
Π16 | C5034 | 075713 | SBP | •-2 | ||
1117 | 85035 | 131605 | STA | IMA.I | ||
1118 | 05036 | G67047 | JMP | XEOL | ||
1119 | 65037 | |||||
1120 | 05040 | |||||
1121 | ||||||
Ϊ122» | JUMP | 061321 | XJMP | JSM | FIXPT | |
1123· | CJ35613 | MOVE | STß | N | ||
1124» | 05041 | 125605 | LDß | IHA»I | ||
1125 | S5042 | C63472 | JSM | RELG | ||
1126 | ß5343 | 075213 | SBP | *~12 | ||
1127 | 65344 | B65357 | JMP | BAD+6 | ||
1120 | C5045 | |||||
1129 | C5046 | |||||
1130 - | ||||||
1131» | EOL | 021705 | XEOL | LDA | .WMOD | |
1132* | G5P512 | AND | ERMl | |||
1133» | 05047 | 073650 | RZA | »-3 | ||
1134 | 05050 | 021732 | LDA | GTS | ||
1135 | C5SS1 | 073110 | SZA | »♦2 | ||
1136 | Ü5352 | 067164 | JMP | XGSS | ||
1137 | 05C53 | 0216S4 | XRR | LDA | NMA | |
1138 | 65054 | 072210 | RZA | ««4 | ||
Π39 | C5055 | 121605 | LDA | IMA, I | ||
1140 | 45056 | 07Π133 | SAP | **2tC | ||
1141 | 05057 | 07B070 | SIA | *+l | ||
1142 | 05060 | 131605 | STA | IMAfI | ||
1143 | 05361 | |||||
1144 | C5062 | 021705 | LDA- | .WMOD | ||
1145 | 072110 | RZa | «♦2 | |||
1146» | 05063 | G66561 | JMP | XRI | ||
1147 | C5064 | |||||
1148 | C5C65 | 065373 | JMP | EXIT*9 | ||
1149 | ||||||
1150· | C5066 | EXECUTION | ||||
1151 | ||||||
1152» | ABORT | 1617.10 | JSM | XEND»I | ||
1153· | 667047 | JMP | XEOL | |||
1154« | 05067 | |||||
1155 | C5070 | |||||
1156 | ||||||
DEPENDING ON WHETHER ITS PARAMETER IS ZERO OR NONZERO RESPECTIVELY
JUMP WILL SKIP A VARIABLE NUMBER OF STATEMENTS ACCORDING TO ITS
PARAMETER
DID WE SKIP OUT OF RANGE? YES
NEXT DETERMINE IF A GSB MUST BE COMPLETED
NEXT DETERMINE.IF A PREVIOUS GTO OR GSB CAUSED A TRANSFER
INSURE THAT NEXT LINE IS BEGUN PROPERLY
NEXT DETERMINE-IF TRACE MODE IS SET
NO TRACE SO CONTINUE
309832/0843
1158·
1159» |
(Drucken) | 623725 | XPRNT | LDA | 021557 | GMORE | LDA | .PRTl | |
1160· | JMp | 031612 | STA | •♦2 | |||||
1161 | «5071 | 020253 | 031611 | • | 011556 | CPA | |||
1)62 | 05072 | ß67074 | C67110 | JMP | |||||
1163· | |||||||||
1164· | DISPLAY | XDISP | LDA | 026405 | GTR | LDA | ADSP | ||
1165· | 031550 | STA | |||||||
1166 | 05073 | STA | 055612 | DSZ | ES | ||||
1167· | 121612 | LDA | |||||||
1168 | Θ5074 | GET MIXEO PARAMETERS | 031550 | STa | |||||
1169· | C73744 | SAL | |||||||
1170· | 65075 | C76732 | SAH | AP2 | |||||
1171· | 05076 | 160310 | JSM | M | |||||
1172 | 05077 | 161611 | JSh | APl | |||||
1173 | 05100 | G21705 | LDA | GTR | |||||
1174 | 07(5313 | SAP | |||||||
1175 | 05101 | 021563 | LDA | OMl | |||||
1176· | 05102 | CC0410 | ADA | .STPT | |||||
1177 | 05103 | 072250 | RZA | H | |||||
1178 | 051R4 | 16e525 | JSh | M, I | |||||
1179 | 05105 | C70152 | GALPH | SAH | .STPT | ||||
1180 | C51B6 | Γ21612 | LOA | 1 | |||||
1101 | G5107 | 011556 | CPA | GALPHfC | |||||
1182 | 05)10 | 066570 | JMP | .FMT2tI | |||||
1103 | 35111 | C67103 | JMP | ES,I | |||||
1185* | 05112 | .WMOD | |||||||
1186 | 85113 | . | »♦6 | ||||||
1187 | G5114 | 070092 | SAR | TSW | |||||
ηββ | (15115 | P31717 | STA | DM4 ■ | |||||
1189 > | 65116 | C23554 | LDA | •♦5 | |||||
1190 | 05117 | 031720 | STA | CKSTPfI | |||||
1191 | 05120 | 160255 | JSM | •♦3 | |||||
1192 | 05121 | 024516 | LOQ | M | |||||
1193 | 05122 | 121717 | LDA | APl | |||||
1194 | 05123 | 070252 | SAH | XJ | |||||
1)95 | «35124 | 1317P0 | STA | GMORE | |||||
1196 | 045717 | ISZ | |||||||
1197 | 04S720 | ISZ | |||||||
1198· | «5125 | 077570 | Rin | 1 | |||||
1199· | Ö5126 | 067110 | JMP | Tl | |||||
1200 | 05127 | .IBUF | |||||||
1201 | 05130 | T2 | |||||||
1202 | 05131 | L18A,I | |||||||
1203 | C5132 | DH8 | |||||||
1204 | 05133 | T).I | |||||||
1205 | flSI34 | •♦5 | |||||||
1206 | 05135 | T2.I | |||||||
1207 | 45136 | Tl | |||||||
1208 | 05137 | T2 | |||||||
1209 | 05140 | •-5 | |||||||
1210 | 85141 | GTR | |||||||
1211 | |||||||||
1212 |
enter here for print
enter here for display
save address of print or display
these routines get the actual parameters for print and display
skip if no parameter supplied first determine what type of parameter
m points to next parameter save address for later display if - alphameric
- IF STOP KEY
this routine moves alphameric info to .ibuf
Tl s SOURCE
T2 = DESTINATION CLEAR BUFFER
309832/0843
1214· 1215*
display routine (Sichtgerät-Programm)
1216»
1217 65142 620516 ROSPY LDA DM8
1218 1219 1220 1221 1222 1223 1224
<25143 Ö316B7
S5144 S2C237 RDSl-
65145 031721
65146 168206
35147 65150 65151
645697 C67144 17B402
STA DP LDA .DBUF
.L
.DSPIiI
DP
RDSl THIS ROUTINE CALLS THE DISPLAY ROUTINE (ALSO WATCH FOR NEH KEY)
STA JSM ISZ JHP RET
3098 32/084
1226* | RETURN | 125557 | 020333 | XRET | LDB | AP2,1 |
1227· | 014405 | 025563 | CPB | DMi | ||
1228» | Ρ5152 | 067162 | 014400 | JMP | E7 | |
1229 | C5153 | 0455S7 | 12)625 | ISZ | AP2 | |
1230 | C51S4 | 121557 | 07Ö133 | LOA | ΛΡ2.Ι | |
1231 | C5155 | 0316C4 | 07(1070 | SlA | HMA | |
1232 | 0515t. | 035557 | SlB | AP2 | ||
1233 | «5157 | 066570 | 025556 | JHP | XJ | |
123* | 05160 | G344r,5 | ||||
1235 | 05161 | C24375 | a/4557 | E7 | LDB | DP7 |
1236 | 0667öS | G344fl5 | JHP | EXER | ||
1237» | 05162 | 021557 | ||||
123Θ | 05163 | GSB SETUP | 035556 | |||
1239 | 935557 | |||||
1240» | 05164 | 131557 | XGSS | LDä | ASTEN | |
1241· | 05165 | LOB | TSW | |||
1242· | C5166 | G74056 | CPB | DP4 | ||
1243 | 05167 | C355S1 | LDA | IMA.Γ | ||
1244 | !55170 | 004400 | SAP | «♦2tC | ||
1245 | Ö5171 | C74113 | SIA | • ♦1 | ||
1246 | C67055 | |||||
1247 | C5172 | B66662 | XGSS2 | LDB | APl | |
1248 | C5173 | ΛΟβ | DHi | |||
1249· | 05174 | STA | B.l | |||
1250 | 051 75 | ADB | DMl | |||
125Ϊ | ß5176 | LDA | AP2 | |||
1252 | C5177 | XGSSl | STB | APl | ||
1253 | G520P, | STB | AP2 | |||
1254 | 05201 | STa | AP2tI | |||
1255 | ·■ ■ | |||||
1256 | 05202 | CMB | ||||
1257 | 05203 | ADB | TP | |||
125Β· | G52R4 | AOB | DP4 | |||
1259 | 55205 | SBP | »♦2 | |||
1260 | C52C6 | JHP | XRR | |||
1261 | 65207 | JMP | E9B | |||
1262 | ||||||
1263 | ||||||
1264 | ||||||
THIS ROUTINE OBTAINS THE RETURN ADDRESS FROM THE RUN-TIME STACK
THE R.A.
RET HAS NO MATCHING GSB
THIS ROUTINE STASHES THE RETURN ADDRESS INTO THE RUN-TIME STACK
THIS IS DONE AFTER EOL IS ENCOUNTERED
A "FAKE" RETURN ADORESS IS SUPPLIED IF GSB WAS EXECUTED FROM KEYBOARD
CHECK FOR OVERLAP
ALL OK
1266* | GOTO | S61253 XGSB | JSH | XfJSTP |
1267« | 02i54g3 | LDA | DPI | |
1268» | 0521(1 | 067214 | JMP | »♦2 |
1269 | £■3211 | 073742 XGTO | SAR | 16 |
1270 | C5212 | 031702 | STA | GTS |
1271 | C5213 | 12ΚΌ5 | LDA | IMA, Ϊ |
1272 | 05214 | 070133 | SAP | **2>C |
1273 | 05215 | 870370 | SIA | **1 |
1274 | 05216 | 025567 . | LOB | MPH |
1275 | C5217 | 076550 | RZB | *m |
1276 | G5220 | 07B537 | LDB | A,I |
1277 | 05221 | 074450 | SZB | **9 |
1278 | G5222 | 035604 | STb | NHA |
1279 | C5223 | 035546 | STB | CMA |
1280 | 05224 | CJ7f!G70 | SIA | *>*1 |
1281 | .05225 | 131605 | STA | I HA» I |
1282 | C5226 | 062575 | JSM | SXJ |
1283 | G5227 | 010356 | CPA | CIJFN |
1284 | CB233 | 666578 | JMP | XJ |
1205 | C'5231 | 067230 | JMP | *-3 |
1206 | 05232 | |||
.1287 | 05233 | 031717 | STA | Tl |
1288 | 07607ß | SIA | a*l | |
1289* | 0523': | !31695 | STA | I IiA i I |
1290 | G'5235 | 062575 | JSH | SXJ |
1291 | «5236 | Ü74742 | SBR | 16 |
1292 | S5237 | 010452 | CPA | CIJFO |
1293 | 05243 | P67313 | JMp | OGTO |
1294 | 05241 | Öl «3351 | CPA | CUFO |
1295 | 05242 | 165623 | JHp | GOTFiI |
1296 | 05243. | 035613 | STB | N |
1297 | 0.5244 | «27722 | LDB | TAB5 |
1298 - | 05245 | 035720 | STB | T2 |
1299 | ß5?46 | 010375 | CPA | CtJFA |
1390 | 05247 | 067255 | JHP | GA |
1301 | 05253 | 010374 | CPA | CUFS |
1302 | 65251 | G67256 | JHP | GS |
13Β3 | 05252 | 067262 | JMP | XG 4 |
1304 | 05553 | |||
1305 | «5254 | |||
1306 | ||||
ACCORDING TO WHETHER GTO OR GSB
NEXT CHECK FAST-TRANSFER WORD
IF MPH=0 FAST GTO MODE OKAYfELSE NOT
FAST' TRANSFER BEGINS HERE BY UPDATING NMA» CMA» S. IMA
SKIP ALONG TO EHD^OF STATEMENT
FOUND IT
SLOW GTO BEGINS-HERE
LOOK AT NEXT CODE'TO DETERMINE TYPE OF GTO OR GSB
IT IS ALPHAMERIC IT IS TO AN OPTION BLOCK
IT IS NUMERIC IS IT RELATIVE OR ABSOLUTE?
30 9832/0843
1308· | «5255 | 1545720 | GA | ISZ | T2 |
1309 | C52S6 | 045720 | GS | ISZ | T2 |
1310 | |||||
1311· | «5257 | G6?575 | XGE5 | JSM | SXJ |
131? | eS260 | IH 0356 | CPA | CNFN | |
»313 | C5261 | 165720 | JHP | Τ2.Ϊ | |
13H | |||||
1315» | 05262 | 025613 | XG4 | LGB | N |
1316 | «5263 | 0747Λ4 | SfJL | 1 | |
1317 | 05264 | 035612 | STB | H | |
1318 | PS265 | Ü747C4 | SBL | 2 | |
1319 | Θ5266 | 035612 | AÜB | M | |
1320 | C5267 | 021561 | LDA | CODE | |
1321 | PS270 | C50365 | AND | OPlS | |
1322 | C5271 | 070337 | AOB | A | |
1323 | S5272 | •035613 | STQ | N | |
132'» | 155273 | 067257 | JMp | XGE5 | |
1325 | |||||
IT IS RELATIVE
EXTRACT THE OIGITS
CONVERT TO A DISPLACEMENT BY MULTIPLYING PREVIOUS ANSWER RY 10
AND ADDING IN NEXT DIGIT O^ STATEMENT #
SAVE NFW DISPLACEMENT
309832/0843
1327· | ABSOLUTE GOTO | R63526 | C21613 | 125605 | GABS | JSM | GTOP |
1328· | C63472 | 070076 | 063472 | XGl . | JSM | RELG | |
1329* | «5274 | G74212 | 031613 | 075512 | XG2 | SBM | ««4 |
1330 | C5275 | 035546 | 135717 | STB | CMA | ||
1331 | C5276 | (535604 | skip forward | G67330 | STB | NHA | |
1332 | 65277 | 135717 | STB | TIiI | |||
1333 | ß5300 | C66570 | 05306 | GOTO | JMP | XJ | |
1334 | C53S1 | 053S7 | |||||
1335 | (55302 | SKIP BACKWARD | S5310 | G35721 | |||
1336 | ß5311 | G35722 | |||||
1337* | 65303 | «5312 | GMNS | LOA | N | ||
1338» | 05304 | C62575 | TCA | ||||
1339· | 65305 | ALPHA | 01(3452 | STA | N | ||
1340 | Ö67333 | ||||||
1341 | S5313 | ||||||
1342 | C5314 | 021721 | |||||
1343ο | O7S404 | GPLS | LOB | IHAjI | |||
1344» | 65315 | Ö25722 | JSM | RELG | |||
1345« | :-«5316 | 074342 | SBM | GMNS-I | |||
1346 | "05317 | 074217 | STB | Tl,I | |||
1347 | 031721 | JMP | XG2*2 | ||||
1348 | ß532fl | 021722 | |||||
1349 | 05321 | 070404 | |||||
1350 | 05322 | C41544 | |||||
1351* | G5323 | 031722 | QGTO | STB | Hl' | ||
1352« | 05324 | C67315 | STB | H2 | |||
1353· | C5325 | ||||||
1354 | C5326 | 663526 | XGEl | JSM | SXJ | ||
1355 | 65327 | 0634 öl | CPA | CNFQ | |||
1356« | 65330 | 014435 | JMP | GQl | |||
1357 | Θ5331 | 066570 | -· | ||||
1358 | B5332 | 010517 | LDA | Hl | |||
1359 | 667342 | SAL | 8 | ||||
1360» | ß5333 | 067334 | LDB | H2 | |||
1361 | P5334 | 074073 | SBR | 8 | |||
1362 | e5335 | 035720 | IOR | B | |||
1363 | C5336 | STA | Hl | ||||
1364 | 05337 | LDA | H2 | ||||
1365 | 85340 | SAL- | 8 | ||||
1366 | B5341 | IOR | SKEY | ||||
1367 | «5342 | STA | H2 | ||||
1368 | 85343 | JMP | XGEl | ||||
1369 | |||||||
1370 | GQl | jsm | GTOP | ||||
1371 | GQ2 | JSM | GAS2 | ||||
1372» | CPB | DMl | |||||
1373 | JMP | XJ | |||||
1374 | cpa | BQT | |||||
1375 | JMp | •♦2 | |||||
1376 | JMP | *-S | |||||
1377 | GQ4 | SBP | «♦l»C | ||||
1378 | STB | T2 | |||||
1379· | |||||||
1361 | |||||||
1382 | |||||||
FIRST GO TO TOP OF PROGRAM THEN DO A RELATIVE GTO
IT IS A RELATIVE - GTO SO CHANGE SIGN OF DISPLACEMENT
IT IS A RELATIVE ♦ GTO
IT IS AN ALPHAMERIC GTO
BUILD THF. COMPARISON WORD IM Hl AND H2
SEARCH PROGRAM FOR THIS LABEL FIRST FIND ANY LABEL WHATSOEVER
A LABEL HAS BEEN FOUND
1383 | 05344 | 674742 | SBR | 16 |
1384 | β53'»5 | 035723 | ST0 | H3 |
13B5 | «5346 | 035724 | STB | H4 |
1386 | f5347 | 0634(50 GQ3 | JSM | GASl |
1387 | 0535fl | ΟΓ0546 | CPA | QUOTE |
1388 | 05351 | £67366 | JHP | HATCH |
1389 | 05352 | 031561 | STA | CODE |
1390 | #5353 | P21723 | LDA | H3 |
1391 | 05354 | 070404 | SAL | 8 |
1392 | C5355 | Ö25724 | LOB | H4 |
1393 | 65356 | 074342 | SOR | 8 |
1394 | 05357 | 074217 | I OR | B |
1395 | 65360 | 331723 | STA | H3 |
1396 | 05361 | 021724 | LOA | H4 |
1397 | f536? | 070404 | SAL | 8 |
1398 | e5363 | 041561 | IOR | CODE |
1399 | C5364 | 031724 | STA | H4 |
1400 | «5365 | S67347 | JHP | G03 |
1401· | ||||
1402 | «5366 | C21721 MATCH | loa | Hl |
1403 | 65367 | 011723 | cpa | H3 |
1404 | 05379 | 667372 | JMp | »♦2 |
1405 | 05371 | C67334 | JMP | GQ2 |
1406 | C5372 | 021722 | loa | H2 |
1407 | e5373 | Γ.11724 | CPA | H4 |
14 KB | P5374 | {167376 | JHP | •♦2 |
1409 | G5375 | 067334 | JMP | G02 |
1410 | 65376 | C25720 | LOB | T2 |
1411 | P5377 | 067276 | JMP | XG2 |
1412· | ||||
1413 | 05400 | 025612 GASl | LDB | H |
1414 | B5401 | 074233 GAS2 | SBP | »♦4»C |
1415· | ||||
1416 | C5402 | 074517 | LOA | BtI · |
1*17 | 65403 | 050345 | AND | RH |
1418 | 054C4 | 076330 | RID | «♦6 |
1419· | ||||
1420 | 05405 | 074517 | LOA | BtI |
1421 | 054P6 | 010405 | CPA | Owl |
1422 | 05407 | 067524 | JMP | EO |
1423 | »5410 | C703G2 | SAR | 7 |
1424 | 05411 | 076053 | SBP | •♦1»S |
1425· | ||||
1426 | 05412 | G35612 | STB | H |
1427 | 05413 | 170402 | RET |
extract the label characters the ending quote has been found
build the alphameric field in h3 and h4
CHECK AGAINST THE COMPARISON WORO
ONLY THE LAST FOUR CHARACTERS WILL BE SIGNIFICANT (ALLOWS FOR SUFFIX)
ROUTINE TO GET SYMBOLS FROM PROGRAM
THIS ROUTINE IS -SIMILAR TO THE BASIC ROUTINE SXJ
JUMP IF LABEL CANNOT BE FOUND
309832/0843
1429» | FROM | FLAG | JSM | BMSK |
1430° | CPß | DP5 | ||
1431» | Θ5414 | 063454 STFF | JHP | EXER |
1432 | 65415 | 014377 | ||
1433 | 05416 | 066705 | AND | B |
1434 | LDB | A | ||
1435« | G54I7 | P742S7 | LDA | AP1»I |
1436 | 65420 | 070137 | SAm | **7tC |
143? | G5421 | 12T556 | LDA | TP |
1439 | 05422 | 070372 | ADA | DP4 |
1440 | «5423 | C21551 | STA | TP |
1441 | G5424 | 030400 | SAP | *+l»S |
1442 | 05425 | 031551 | STA | API,I |
1443 | G5426 | 672S53 | SAp | tt+l »C |
1444 | Ö5427 | 131556 | ||
1445 | £5430 | ß7ßO73 | CLR | |
1446 | S2ß | *+4 | ||
1447* | C5431 | 170030 | SIA | *♦! |
144B | C 5432 | 074210 | LDB | BCOl |
1449 | 05433 | 070079 | STb | A,I |
1450 | Ö5434 | 024431 | JHP | XJ |
1451 | f5435 | 07(1577 | ||
1452 | ß 54 3 6 | 066570 | • | |
1453 | LDB | DMl | ||
1454» | INTO | FLAG . | JMP | •0+2 |
1455* | C 54 37 | 624405 STFI. | ||
1457 | Ö5440 | S67442 | SBR | 16 |
1458 | STB | T2 | ||
1459* | Ö5441 | 074742 CLFI | ||
1460 | 85442 | 635720 | JSk | BMSK |
1461 | CPB | DP5 | ||
1462» | 05443 | 063454 | JMP | EXER |
1463 | 65444 | 014377 | ||
1464 | C 54 45 | C667G5 | IOR | B |
1465 | CMB | |||
1466* | C 5446 | 074217 | ISZ | T2 |
1467 | 05447 | 074056 | AND | B |
1468 | <Ϊ5450 | «45720 | STA | FLAG |
1469 | f:5451 | 074257 | JMp | XJ |
1470 | C5452 | 031430 | ||
1471 | 05453 | C66570 | ||
1472 | ||||
THESE ROUTINES RETURN THE VALUE OF A DESIGNATED FLAG
THESE ROUTINES SET THE VALUE OF A DESIGNATED FLAG
309832/0843
1474· | BUILD | (T | JSM | en~bi |
1475» | MASK V1 | SBP | ||
1476» | β 54 5 4 | LDB | ||
1477 | C5455 | Ö61321 BHSK | RET | FIXPT |
147Ö | ß5456 | 0741 S3 | ADD | «*3 |
1479 | C 545 7 | 024377 | SGp | DP5 |
148« | P546fl | 178402 | ||
1481 | 65461 | P044?0 | CHB | DM16 |
1482 | 075653 | SOL | •-3 | |
1483° | 0546? | LDA | ||
1484 | e5463 | C74056 | IOR | |
1485 | C5464 | 074544 | LDa | 5 |
I486 | C5465 | 023717 | EXA | FROT |
1487 | 05466 | 074217 | LOA | B |
1488 | 05467 | 024403 | RET | DPI |
1489 | 65470 | G70316 | ||
1490 | 05471 | 021430 | FLAG | |
1491 | 170402 | |||
ildunß)
BUILD Λ MASK CONTAINING A "ONE"1 IN BIT POSITION N FOR FLAG N
309832/0843
1493* 1494«* |
SKIPPING UTILITIES | 074173 RELG | (ί | 3ρrung-Möglichkeiten) | DO A RELATIVE GTO | φ | • | '■ | - |
1495» 1496 |
65472 | e67475 | SBP | »♦3,C | |||||
1497 | G5473 | JMP | ♦+2 | ||||||
1498* | (504405 | ||||||||
1499 | 05474 | 074517 | AOB | DMl | GTO OR GSB OUT OF BOUNDS | ||||
15Ö0 | 65475 | 071713 | LOA | B,I · | |||||
1501 | £5476 | 01ß4',')5 | SAp | *-2 | THIS ROUTINE FINDS THE TOP OF | ||||
15Z2 | £5477 | C67524 | CPA | DMl | THE PROGRAM | ||||
1583 | 65500 | 021613 | JMp | E8 | |||||
1504- | 65501 | 070450 | LDA | N | |||||
15S5 | 65502 | Λ70513 | SZA | «♦9 | |||||
1506 | S5503 | SAP | «♦10 | ||||||
15B7« | 004405 | • | |||||||
1508 | 05504 | 074517 | ADB | DMl | |||||
1509 | ß5505 | 071713 | LDA | B?I | |||||
1510 | C5506 | G104G5 | SAP | »-2 | |||||
1511 | E55Ö7 | G67524 | CPA | DMl- | |||||
1512 | 05510 | 045613 | JHp | EQ | |||||
1513 | G5511 | 067504 | ISZ | N | |||||
1514 | 05512 | 170402 | JMP | «-6 | |||||
1515 | G5513 | RET | |||||||
1516» | 674517 | ||||||||
1517 | 25514 | S7S313 | LDA | B..I | |||||
1518 | P5515 | C55613 | SAP | «*6 | |||||
1519 | 65516 | C67521 | OSZ | N . | |||||
1520 | (35517 | 170432 | JMP | «♦2 | |||||
1521 | 05520 | 0184-05 | RET | ||||||
1522 | ß5521 | 067524 | CPA | DMl | |||||
1523 | 05522 | 077470 | JMP | E8 | |||||
1524 | C5523 | 024374 E8 | RIB | «.-7 | |||||
1525* 1526 |
:- C 5524 |
065351 | LDB | DP8 | |||||
1527 I Con a |
65525 | 025546 GTOP | JMp | BAD | |||||
1529 | 05526 | 074073 | LDB | CHA | |||||
1530 | C5527 | 904405 | SBP | *«ltC | |||||
1531 | 05530 | 074517 | ADB | DMl | |||||
1532 | 05531 | 074070 | LDA | BtI | |||||
1533 | C5532 | 01Θ465 | SI3 | »♦1 | |||||
1534 | fc<5533 | 170402 | CPA | DMl | |||||
1535 | C-5534 | C34406 | RET | ||||||
1536 | S 5535 | 067531 | ADB | DM2 | |||||
1537 | Ö5536 | JMP |
303832/0 8-4 3
1539·
1540» BUILD NUMBER
(Ziffern-Bildung)
1542
1543
1544
1545
1546
1547
1548
1549
1550»
1551
1552
1553
1554
1555
1556
1557
1558
1559
1569
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572·
1573
1574
1575
1576
1577
1578
1579
15RO
1581
1582
1583
1584
1585
1586
1587
1588
1589
15-30
1592
1593
1594·
1593
1594·
05537 G 554 3 C5541
C5542 05543 65544
P5545 05546
05547 (55550 C 5551 «5552
C5553 C5554 £5555
B5556 B5557
P5561 C556? C5563 05564 C5565
05566 C5567 05570 05571 C5572 05573
C 5574 C5575 05576 C5577 05602
05601 G5602 <!56ß3 C5604 C5605
05606 65607
C56J0 05611 056 12 65613 05614
05615 05616 C5617 G5620
G2045O XNUM
023724
024370 Ö35613 024405 D35612
C62575 910366 067621 Ο1{1367
067641 010365 (567650 010364
067652 021606 025611 074110
07G076 CO 1612 970137
074113 Γ74 034550 P74152
024372 066705
171450 070154 070404 130450
028450 025551 C044P0 035551
XGE2
E10
STNM
055556 025551 076053 135556 925556 074056
C05551 034400 074153 02154
(166571 066662
RECY
LÜA ADR2
CLR
LDA ADPS
CLR
LDB DP12
SlO N
LDB DMl
STB M
JSM SXJ CPA CNFD JMP XD CPA C(IFZ JHp XZ CPA CNFP JMP XOP
CPA CNFX JMP XF.E LDA PS
LDO ES SZB TCA ADA M LDB A SBP TCB
ADB OM100 SBM **3
LOB DP10 JMP EXER
NRM SES
STA A0R2tT LOA A0R2
LDB TP ADB OP'* STB TP XFR" DSZ API
LOB TP SBP **1»S STB APItI
LDB API CHB
ADB TP AOB 0P4 SBP »*3 LOa CN
JMP XJtI JMP F.98 this routine converts a string of
digits to internal format
GET A DIGIT
NUMERIC OVERFLOW
WRAP IT UP
RECYCLE THE CURRENT CODE WITHOUT PICKING UP A NEW ONE
09832/0843
1595 | (55621 | 025607 | XD | • | XZ | LDB | DP |
1596 | 05622 | C76150 | PZB | **3 | |||
1597 | 05623 | D45612 | ISZ | H | |||
1598 | C5624 | 367625 | JHP | «♦1 | |||
1599 | C5625 | 045610 | ISZ | SD | |||
160Β | S5626 | (525613 | LDO | N | |||
1631 | 05627 | G76110 | KZB | »♦2 | |||
1602 | C 563 3 | 567547 | JHP | XGE2 | |||
1603 | C5631 | ÖO4405 | XOP | ADB | DHl | ||
1604 | 65632 | 035613 | STB | N | |||
1605 | G5633 | 171480 | MLS | ||||
1626 | β 5634 | 021561 | XEE | LDA | CODE | ||
1607 | Ö5635 | 05β365 | AND | DP 15 | |||
1638 | C5636 | 140520 | IOR | ADRNtI | |||
1639 | G5637 | 13C520 | XGE3 | STA | ADRN»I | ||
1618 | 05640 | C67547 | JHP | XGE2 | |||
1611« | |||||||
1612 | €5641 | 025610 | LDD | SD | |||
1613 | fl 5642 | 9Τ4110 | SZQ | **2 | |||
1614 | 65643 | Ö67621 | JHP | XD | |||
1615 | 05644 | 025637 | LDB | DP | |||
1616 | 05645 | £.74110 | S.70 | »♦2 | |||
1617 | €■5646 | Ö55612 | DSZ | H | |||
1618 | C5647 | R67S47 | JMP | XGE2 | |||
1619» | |||||||
1628 | 65658 | Ö45607 | ISZ | DP | |||
1621 | 05651 | £6704? | JKP | XGE2 | |||
1622« | XK | ||||||
1623 | G5652 | C74742 | SBR | 16 | |||
1624 | S 5653 | 035610 | STB | SD | |||
1625» | |||||||
1626 | «5654 | C52575 | JSM | SXJ | |||
1627 | 65655 | 010366 | CPA | CNrD | |||
1620 | G5656 | Ρ67666 | JMP | XK | |||
1629 | S5657 | 010367 | CPA | CNFZ | |||
1638 | 05663 | Ρ67666 | JHP | XK | |||
1631* | |||||||
1632 | 05661 | 025610 | LDS | SD | |||
1633 | G 5662 | Ö74110 | SZ3 | «♦2 | |||
1634 | Ρ5663 | Ö6756Ö | JHP | XF | |||
1635« | |||||||
1636 | 65664 | 045611 | ISZ | ES | |||
1637 | 65665 | 067654 | JHP' | XGE3 | |||
1638» | |||||||
1639 | Ρ5666 | (545610 | ISZ | SO | |||
1640 | C5667 | 025606 | LD0 | PS | |||
1641 | ß567O | 074744 | SBL | 1 | |||
1642 | C567I | 035717 | STB | Tl | |||
1643 | C5672 | Ρ7/.7-34 | SOL | 2 | |||
1644 | CS 567 3 | O0S717 | ADB | TI | |||
1645 | C 5674 | G21561 | LDA | CODE | |||
1646 | 05675 | G50365 | ANO | DP15 | |||
1647 | C5676 | Π70037 | ADB | A | |||
1648 | 05677 | D356ß6 | STB | PS | |||
1649 | 05700 | 067654 | JHP | X6E3 |
309832/0843
THE INTERPRETER USES THIS TABLE
ADDRESS TABLE FOR INTERPRETER ROUTINES
(Adressentafel für interpreter-Programme)
1651· | (55701 | 005702 | ΤΛΒ3 | DEF | •♦1 | 0 | NOT s |
165? | 1 | IMP · | |||||
1653· | Θ5702 | 062615 | JSH | XOSET | 2 | — K | |
1654 | 05701 | 062615 | JSH | XBSET | 3 | S | |
1655 | C5704 | r-62615 | jsh | XOSET | 4 | > | |
1656 | C570S | C62615 | jsm | XBSET | 5 | * | |
1657 | P5706 | 062615 | JSh | XOSET | 6 | ||
1656 | Γ5707 | £62615 | jsh | XOSET | 7 | ♦ | |
1659 | C571Ö | C62615 | jsh | XBSET | β | - | |
1660 | 85711 | D62615 | jsh | XBSET | 9 | U- | |
1661 | 65712 | C62615 | jsm | XBSET | 10 | SQRT | |
1662 | 05713 | G62631 | jsh | XUSET | 11 | 4- | |
1663 | C5714 | C62631 | JSh | XUSET | 12 | R | |
166'» | Ö5715 | C56664 | JHP | XGAZ | |||
1665 | G5716 | 066702 | JMP | SUBSC | |||
1666 | G5717 | 074P36 | FROT | OCT | 074036 | * | |
1667 | 057?« | 1B5767 | ΤΛ01 | OEF | TTBUI | ||
166B | 155721 | 106051 | ΤΛΒ2 | DEF | TTGZ-ItI | 17 | ABCXYZ |
1669 | C5722 | 116353 | TAB5 | DEr | TTP5»I | 18 | ( |
167 a | C5723 | 066647 | JKP | XOPD | 19 | ) | |
1671 | 05724 | S31606 | AOPS | DEF | PS | 20 | f |
1672 | C5725 | 025142 | ADSP | DEF | RDSPY | 21 | Il |
1673 | 05726 | 066570 | JHP | XJ | 22 | JUMP | |
1674 | 05727 | f.66722 | JHP | XOUO | 23 | ( | |
1675 | C5730 | Ü67041 | JKP | XJMP | 24 | GSB | |
1676 | «5731 | 066564 | JHP | XH. | 25 | GTO | |
1677 | C5732 | C67210 | JHP | XGSB | 26 | EOL | |
1678 | 05733 | C67213 | JMP | XGTO | 27 | ENT | |
1679 | 05734 | 057G47 | JKP | XEOL | 2β | RET | |
16ßß | 05735 | 164534 | JMP | XENT.I | 29 | STOP | |
1681 | 05736 | C67152 | JHP | XRFT | 30 | NORMAL | |
1682 | 05737 | 061250 | jsh | XSTOP | 31 | TRACE | |
1683 | 05740 | C61256 | JSh | XNORH | 32 | FIXED | |
1684 | 05741 | 061262 | JSH | XTKAC | 33 | FLOAT | |
1685 | C574? | C62764 | JSm | FIX | 34 | SET FLAG | |
1686 | 0 574 3 | 062766 | JSH | FLO | 35 | FLAG | |
1687 | 65744 | C67437 | JHP | STFI | 36 | IF | |
16t!8 | B574S | C67414 | JHp | STFF | 37 | SPACE | |
1689 | 65746 | C67026 | JHP | XlF | 38 | ||
1690 | 05747 | 063ÖP6 | JSH | SPA | 3^ | DISPLAY | |
1691 | S5750 | Π67071 | JHP | ■ XPRNT | 40 | LOAD | |
169? | C5751 | 067 073 | JHP | XOISP | 41 | RECORD | |
1693 | C 575 2 | 164225 | JHP | LOAOX1I | 42 | END | |
1694 | 05/53 | 16Π226 | JSH | RCROX,I | 4 3 | OPTION #1 | |
1695 | C5754 | 16171P | JSH | XENO.I | 4'« | OPTION »2 | |
1696 | P5755 | 165634 | JHP | 0PT1.I | 45 | OPTION «3 | |
1697 | 05756 | 165635 | JHP | 0PT2.I | 46 | ALPHA | |
1698 | 65757 | 165636 | JMP | 0PT3»I | 47 | NULL | |
1699 | C5760 | C67537 | JMP | XNUM | 48 | ABORT | |
17BO | 05761 | C66570 | JHP | XJ | 49 | CLF.AR FLAG | |
17Cl | B5762 | 067067 | JMP | NONX | |||
170? | C5763 | C67441 | JHP | CLFI | CHECK SUM | ||
17C3 | G5764 | Oil/355 | ORECP | OEF | 7355B | 1 | |
1704 | 05765 | 000000 | NOP | 52 END OF ENTER STMT | |||
1705 | B5766 | C66570 | JHP | XJ | |||
1706 | |||||||
309832/0843
1708· 1709· 1710 |
C5767 | 604112 TTBl | DEF | SBO | 0 | 1 | 2 | NOT = . |
1711 | 65773 | 604112 | OEF | SBO | 3 | IMP » | ||
1712 | G5771 | C34112 | DEF | SBO | 4 | |||
1713 | 05772 | C04112 | DEF | SBO | 5 | = | ||
1714 | C5773 | P04112 | DEF | srJO | 6 | > | ||
1715 | C5774 | £34112 | DEF | SBO | 7 | |||
1716 | G5775 | t'34112 | DEF | SBO | 8 | |||
1717 | Ö5776 | 004114 | DEF | PLU | 9 | ♦ | ||
1718 | 05777 | 004116 | DEF | MlN | 10 | - | ||
1719 | C6ß!S<3 | 094115 | DEF | IGNR | Il | U- | ||
1720 | G6301 | 004126 | DEF | FCN | 12 | SQRT | ||
1721 | 06902 | £504107 | DEF | GAZ | 13 | «- | ||
1722 | 06003 | G04126 | DEF | FCN | 14 | R | ||
1723 | Q60G4 | C04462 | DEF | NUM | 15 | 0 | ||
1724 | 06205 | G04462 | DEF | NUM | 16 | 1 - 9 | ||
1725 | 66<?06 | G04462 | DEF | NUM | 17 | * | ||
1726 | 66007 | U04462 | DEF | NUM | 18 | EEX | ||
1727 | O6P10 | 004130 | DEF | OPD | 19 | abcxy; | ||
1728 | S6ßl 1 | C-04136 | DEF | LBR | 20 | ( | ||
1729 | 06012 | 094155 | DEF | RBR | 21 | ) | ||
1730 | 06Gl 3 | 004157 | DEF | COM | 22 | t | ||
1731 | 06014 | 004426 | DEF | QUO | 23 | Il | ||
1732 | Ö6315 | C34207 | DEF | IF | 24 | JMP | ||
1733 | 66316 | 0i!4254 | DEF | EOS | 25 | t | ||
1734 | C6S17 | 034373 | DEF | GTO | 26 | GSB | ||
1735 | C602O | P04373 | DEF | GTO | 27 | GTO | ||
1736 | 06021 | CS4241 ' | DEF | EOL | 28- | EOL | ||
1737 | 06022 | 004221 | DEF | ENT | 29 | ENT | ||
1738 | • 06023 | 034213 | DEF | RET | 30 | RET | ||
1739 | B6324 | Γ304213 | DEF | RET | 31 | STOP | ||
1740 | «6ß25 | 004217 | DEF | SFFNT | 32 | NORMAL | ||
1741 | C6026 | 004217 | DEF | SFFNT | 33 | TRACE | ||
1742 | 06Γ527 | C04217 | DEF | SFFNT | 34 | FIXED | ||
1743 | 0633« | ÖB4217 | DEF | SFFNT | 35 | FLOAT | ||
1744 | S6031 | «34166 | DEF | STF | 36 | SET FLAG | ||
1745 | 06032 | C34126 | DEF | FCN | 42 | FLAG | ||
1746 | 66033 | 004207 | DEF | IF | 3fl | IF | ||
1747 | 06034 | 034217 | DEF | SFFNT | 39 | : END | ||
1748 | {36335 | 084215 | DEF | PD | 40 | ι PRINT | ||
1749 | «6636 | 034215 | DEF- | PD | 41 | ' DISPLAY | ||
1750 | 66(137 | fJ0421l | DEF | LR | 42 | ι LOAD | ||
1751 | C 6040 | G34211 | DEF | LR | .43 | RECORD | ||
1752 | C 6041 | Ö04213 | DEF | RET | 44 | END | ||
1753 | Ö6C542 | 4Ό1362 | DEF | EXIT | 45 | OPTION #1 | ||
1754 | G6R43 | {131362 | OEF | EXIT | 46 | OPTION «2 | ||
1755 | 66944 | P01362 | DEF | EXIT | 47 | OPTION #3 | ||
1756 | 06345 | C04115 | DEF | IGNR | 48 | ALPHA | ||
1757 | 06S46 | 004115 | DEF | IGNR | 4«; | NULL | ||
1758 | 06047 | t'84115 | DEF | IGNR | 5f | IGNORE | ||
1759 | O6B50 | GO4170 | DEF | STF*2 | > CLEAR FLAG | |||
1760 | C6051 | 004110 | DEF | UPARO | > * | |||
ADDRESS TABLE FOR COMPLIER ROUTINE»^^^ ' ^
(Adressentafel für Compiler-Programme)
THE COMPILER USES THIS TABLE
09832/0843
1762» | 06052 | C042?5 | 014452 | TTB2 | 014366 | 035274 | GE3 | DEF | GEl | ORG | 16353Θ |
1763 | 86fl53 | 604474 | 0661dl | 005303 | DEF | GE2 | |||||
1764 | C6tt54 | (536072 | 014375 | 014367 | C05306 | DEF | GE3 | DEF | GABS | ||
1765 | C605S | C0133R | 066103 | C56C77 | DEF | CL | DEF | GMNS | |||
1766 | Ü6056 | O0AAS0 | 014374 | 065317 | DEF | GES | DEF | GPLS | |||
1767 | <5f-e57 | 066103 | DEF | GE6 | |||||||
1768 | C6G60 | 031390 | 024373 | SET9 | DEF | CL | |||||
1769 | 06261 | 08'f413 | S661C4 | DEF | GE8 | ||||||
1770 | C6062 | ί?24375 | GQT | DEF | GE9 | ||||||
1771 | 06863 | C24172 | C66104 | DEF | GE10 | ||||||
1772 | 0244S1 | GRL | |||||||||
1773· | 6=6 GO TYPE | »35602 | |||||||||
177«· | 065304 | ||||||||||
1775· | C6064 | GE6 | CPB | CNFQ | |||||||
1776 | C6C65 | JHP | GOT | ||||||||
1777 | C6P66 | ADDRESS 61C6E | CPB | CNFA | |||||||
1778 | 06067 | ARE USEO 8Y 1 | JHp | GRL | |||||||
1779 | ß 6« 7 a | CPB | CNFS | ||||||||
1780 | C6371 | 16353 | JMP | GRL | |||||||
1781 | |||||||||||
178?» | 6=3 GO η BEGIN | 16353 | |||||||||
1783» | 1635S4 | ||||||||||
178*· | 06072 | 16355 | CPB | CNFO | |||||||
1785 | JH.p | sett·; | |||||||||
1786 | C 60 74 | CPB | CNFZ | ||||||||
1787 | esc75 | JHP | SET9 | ||||||||
1788 | 06076 | JHP | El | ||||||||
1789 | |||||||||||
1790« | C6077 | LDB | DP9 | ||||||||
1791 | t'Mßfi | JMp | • ♦4 | ||||||||
1792 | C6101 | LDB | DP 7 | ||||||||
1793 | C61P2 | JMp | «♦2 | ||||||||
179* | G6103 | LDB | DP3 | ||||||||
1795 | 0610Ί | STB | G | ||||||||
1796 | 06)05 | JMp | CPl | ||||||||
1797 | |||||||||||
1798· | |||||||||||
1799· | ) THROUGH | 6116B | |||||||||
1800· | :nequal.ities | ||||||||||
1801· | |||||||||||
1802· | |||||||||||
1803 | |||||||||||
1884« | TTB5 | ||||||||||
1805 | |||||||||||
1806 | |||||||||||
1807 | |||||||||||
table of g-routines for compiler
INTERPRETER SUBROUTINES (int e rpre te r-Un te rprograrnrne )
309832/08/-3
226272
0255° CONTROL SUPERVISOR
0257» fi/3/79
ÖH58» EEO
6259»
ÖH58» EEO
6259»
ö260° The: control supervisor
β261» loadfd by the keyboard-0262»
proper handling routine G263Ö
CONTROL SUPERVISOR SUBROUTINES
(Un t er ρ r ogramme)
(.CS) DIRECTS ALL KEYCODES
INTERRUPT ROUTINE TO THE-
6266 | 16000 | 177744 | M28 | ORG | . | ADB | 16000B |
0267* | stb | ||||||
3260 | 16000 | P21563 | INTRR | DEC | LOA | -28 | |
0269» | 006000 | CPA | |||||
G270 | 16B01 | 010430 | LOA | RET | TSW | ||
0271 | l6Gß2 | C66016 | ADB | LOB | M28 | ||
6272 | 16003 | C66014 | CPA | stb | P 4 | ||
0273 | 16C104 | JHP | LOB | PRG* 2 | |||
C274 | 16305 | 16Ρ,2Γι4 | SMON | JMP | CPB | PRG | |
0275» | G02406 | CS | LDB | ||||
G276 | 16206 | 071450 | JSM | STB | 254B,I | ||
0277 | 16007 | 0355403 | ADA | LDB | M2 | ||
0279 | 16016 | Ü70110 | SZA | JMP | INTRR | ||
C2S0 | 16011 | 070613 | ADA | .OEF | Pl | ||
0281 | 16012 | SZA | PRG | ||||
2202 | 16Θ13 | 024371 | PRG | SAP | CONTR | ||
0283» | 021563 | ||||||
0284 | 16314 | G35717 | LDB | Pll ' | |||
0285 | If, β 15 | 074704 | LDA | TSW | |||
0286 | 16016 | C35717 | STb | TEMPI | |||
0287 | 16017 | ß05717 | SBL | 2 | |||
C 2 88 | 16020 | t'50365 | ADB | TEMPI | |||
0289 · | 16C21 | 073037 | ADB | TEMPI | |||
{3290 | 16P22 | GS6044 | AND | MASK7 | |||
ß291 | 16Ö23 | 021563 | ADB | A | |||
0292 | 16024 | 074737 | ADB | .ATBL | |||
£293 | 16025 | LDA | TSW | ||||
6294 | 16026 | [Ι? Ί422 | CONTR | JHP | BtI | ||
{1295« | 035717 | ||||||
0296 | 16027 | 17.21563 | M25 | ||||
6297 | 16030 | 0115400 | TEMPI | ||||
0298 | 16C31 | 17ß4«2 | TSW | ||||
0299 | 16032 | 024 354 | P4 | ||||
ß300 | 16033 | 035621 | |||||
6331 | 1C034 | 025563 | UNCl | ||||
0302 | 16035 | ΰ 14431 | KSTOR | ||||
0303 | 16336 | 024403 | TSW | ||||
ö304 | 16337 | 035563 | P3 | ||||
03.35. | 16040 | 025717 | Pl | ||||
0306 | 16041 | 066017 | TSH | ||||
0307 | 16Π42 | 106110 | .ATBL | TEMPI | |||
0308 | 16043 | PRGO | |||||
ö309 | 16044 | .TB3-7 | |||||
tsw=4 if running user program if interrupt hodfi ajust cn keycode execution
yes interrupt kode^leave as is
not interrupt,set cn=h for programmable key
KEYCLASS IS IN A-REG!^PROGRAMMABLE«I=OPTION
2=PR0GRAM INTERRUP 1 AßLE»3=C0.N fROL IF
A-REG=0,CODE IS PROGRAM INTERRUPTABLE
AFTER ADDING *1 A-REG=0 INDICATES OPTION BLOCK
A-REG * ,KEYCODE IS CONTROL CLASS
SET CN--11 FOR PROGRAMMABLE KEYS
GET TARLE AnDRESS=BASE+<TSW+6(CN)>
THE-CONTENTS OF THE AOOReSS POINTS TO THE PROCESSING
ROUTINE. THIS TABLE OF ADDRESSES CAN BE CONSIDERED AS Λ MATRI* OF SIZE (6,1I)WHERE
EACH ELLEMENT IS FOUt-JD BY (TSW,CN) WHERE TSW IS THF CONTROLLING FLAG FOR .CS AND CN IS THE
MODIFIED CONTROL NUMnER FOUND IN "MTABL"
Fi-REG HAS ADDRESS OF PROCESSING ROUTINE .
jump το the routine
CONTROL KEYS (CN) BIASED BY *26 SAVE MODIFIED CONTROL NUMBER
IN PROGRAM RUNNING MODE?(TSW=4?) YES,00 NOT PROCESS
SET KSTOR SWITCH FOR
SET KSTOR SWITCH FOR
REPLACEMENT STORAGE VS INSERT STORAGE
IF INSERT MO0E(TSW=3)
RESET TSW=I
RESET TSW=I
RESTORE CN TO B-REG
GO COMPUTE PROCESS ADDRESS WITH OLD TSW
GO COMPUTE PROCESS ADDRESS WITH OLD TSW
30 9 832/0843
ORlGWAL INSPECTED
ADDRESS TABLE FOR CONTROL SUPERVISOR ROUTINES
06117 | 006247 | ORG | 6117B | (Adrensentafel | für Contro1-Sudοrvinor | 5 | 6 | 2 | 3 | 4 | 5 | 4 | 5 | 6 | (RECALL HOOF.) | Il Il | MOOE)(INTR.)" " STOP KEY | |
06117 | 636247 | .TB3 DEF | A.11 | Programme) | 6 | (INSERT CHARACTEP MODE) " » | ■1 Il | |||||||||||
«311 ■ ^t^a |
(16120 | 036247 | DEF | A.11 | 1 | 1 | (RUN PROGRAM | Il Il | ||||||||||
©313 | £31253 | . DEF | Λ.11 | TSW=I(KEYnOARD ENTRY HODE) EXECUTE KEY(I) | 2 | 1 | 2 | (ENTFR MODE) | ||||||||||
0314 | C61?2 | 036255 | DEF | STP | 2 | 3 | 2 | 3 | (EOL MODE) | STORE KEY (2) | ||||||||
C315 | 06123 | S36247 | DEF | A.51 | 3 | 4 | 3 | 4 | ■I H | |||||||||
0316 | 06124 | DEF | A.11 | 4 | 5 | 5 | Il II' | |||||||||||
C317 | 006272 | 6 | 6 | Il Il | ||||||||||||||
ö318 | 861?5 | Ρί'6272 | DEF | A.12 | ||||||||||||||
0319« | 361 ?6 | 036265 | DEF | A.12 | 1 | 1 | NORMAL KEY | Il Il | ||||||||||
6320 | 36127 | 031256 | DEF | A.32 | 2 | IGNORE | ||||||||||||
0321 | 36130 | 105)533 | DEF | 0.72 | 3 | 3 | INSERT KEY (3) | |||||||||||
0322 | 86131 | 006272 | DEF | RETl.I | 4 | Il Il | ||||||||||||
β323 | 06132 | DEF | A. 12 | 5 | 5 | H Il | ||||||||||||
032'» | C06461 | 6 | 6 | Il Il | ||||||||||||||
0325 | C6133 | 036463 | DEF | A.13 | ||||||||||||||
«326· | 66134 | 006460 | DEF | Ae23 | 1 | TRACE KEY | Il Il | |||||||||||
0327 | «6135 | Oil 1262 | DEF | A. 33 | ||||||||||||||
0323 | 86136 | C-M463 | DEF | D. 73 | CLEAR KEY (4) | |||||||||||||
032-ί | 06137 | Ü06456 | OEF | A.23 | ||||||||||||||
0330 | 86143 | DEF | Λ.63 | Il Il | ||||||||||||||
C331 | 066413 | |||||||||||||||||
6332 | 06141 | (WM ι ? | DEF | A. 14 | Il Il | |||||||||||||
0333» | «614? | 026413 | DFF | A s ?A | Il Il | |||||||||||||
0334 | 06143 | 1 Ηίί3ίϊ5 | DEF | A.14 | ||||||||||||||
C335 | Ü6144 | 006414 | OE F | FXDiI | DELKTE KEY (5) | |||||||||||||
6336 | 06145 | 006413 | DEF | A. 54 | Il II. | |||||||||||||
0337 | 06146 | DEF | A. 14 | Il Il | ||||||||||||||
C33B | 036537 | |||||||||||||||||
(3339 | 66147 | C.16523 | DEF | A, 65 | ||||||||||||||
0340» | Ο61Β0 | 00654b | DEF | A. 25 | Il Il | |||||||||||||
ί)34 1 | 06151 | 1«θ3{?4 | DEF | A.35 | ||||||||||||||
0342 | «6152 | 036537 | OEF | FLTtI | RECALL KEY (6) | |||||||||||||
0343 | 06153 | C36537 | DEF | A.65 | Il Il | |||||||||||||
C344 | G6154 | DEF | A. 65 | Il Il | ||||||||||||||
0345 | 0Ρ6423 | Il Il | ||||||||||||||||
C 34 6 | 06155 | C36427 | DEF | A.16 | ||||||||||||||
0347» | Ρ6156 | f'!16423 | DEF | 0K4 | SFG KEY | •I Il | ||||||||||||
0348 | Ü6157 | 016373 | DEF | A.16 | IGMORE | |||||||||||||
0349 | 0616» | 103533 | DEF | B.77 | FORWARD (7) | |||||||||||||
C35Ö | «6161 | 006427 | DEF- | RET 1«I | U | |||||||||||||
0351 | C616? | DEF | 0K4 | Il | ||||||||||||||
0352 | C>?6467 | |||||||||||||||||
C353 | C6163 | C36504 | DEF | A.17 | Il | |||||||||||||
0354» | Π6164 | 036467 | OEF | A.27 | Il | |||||||||||||
C355 | C6165 | 007754 | DEF | A.17 | ||||||||||||||
C 356 | 06166 | C06467 | .KBR3 DEF | .KBR | ||||||||||||||
0357 | 06167 | 006467 | DEF | A.17 | ||||||||||||||
035Β | 86170 | DEF | A.17 | |||||||||||||||
0359 | ||||||||||||||||||
0360 | ||||||||||||||||||
309832/08U
5"-
0375»
0382*
8336 '
Ö369»
P6171 C6172 06173 0617/«
66175 £«6176
006435 036437 036434 00(5000
006437 Θ06435
66177 3H6562 G6208 096565
£6201 100533 C6202 016014 C6203 1Ö0533
66204 Θ06565
.PRG
S6205 S06656 CJ62R6 S36655
Ö6207 1SÖ533 ß621ß C2fl0G0 B13
06211 Cß6775 C6212 ßfl666l
06213 037066 £!6214 0S7«66
06215 P07C66 C6216 C'36ii4b
C6217 0^7061 S6220 CS7C66 TBLE
16356
16356 101631 TBl
16357 101632 16360 101633
1 2 3
5 6
1 2 3
5 6
1 2 3
5 6
.2 3
RACKSPACE
Il
(O)
LIST.KEY
Il Il
(9)
OEF A.IG DEF A.28
DEF A.38 BSS DEF A*28 OEF A.18
DEF A.19 DEF L2 DEF RET1,1
DEF PRG OEF RET1»I DEF L2
DEF A.110 DEF Λ.210 OEF RETUI
OCT 245000 DEF ASSG DEF A.110*3
DEF P02 DEF P02 DEF P02 DEF RET
DEF A„511 DEF ΡΟΗ
ORG 16356B
DEF 1631B,I POINTER TO OPTION BLOCK SYNTAX ROUTINE #f 1
DEF 1632RtI FOR OPTION BLOCK </2
DEF 16338»! FOR OPTION BLOCK #3
IGNORE IGNORE
IGNORE
Il
0395»
0396*******4*********°************
0397* THE FOLLOWING IS THE MAINLINE
«398·
«399 | 06221 | 160251 | * | .NKK | ORG | Tf3LE*l |
0430· | 163323 | .CS | ||||
0401 | 06221 | C62P25 | JSm | .DSP»T | ||
0402 | 86222 | Ö66221 | ΚΥ5 | JSm | .SMON, | |
«403 | 06223 | JSh | KY6 | |||
6404 | C6224 | 035577 | ΚΥ6 | JMp | .NKK | |
0405» | 021795 | |||||
6406 | 06225 | 970712 | STB | ERST | ||
«407 | Ö6226 | LDA | .WMOD | |||
C408 | 66227 | 07ΡΙ742 | CR0 | SAH | RET | |
0409· | 1331571 | |||||
G410 | 06230 | C63112 | SAr | 16 | ||
0411 | 156231 | Ö62242 | STa | LINCT | ||
0412 | β6232 | 06Jl16 | CR2 | JSm | CLDQ | |
0413 | 86233 | 067210 | JSh | CTSW2 | ||
04K | C623A | JSm | .STLN | |||
0415 | 06235 | 021542 | .10 | JMP | .LOC. | |
0416· | 063153 | |||||
0417 | 06236 | G31543 | LDA | ENDS | ||
0416 | 06237 | 072230 | JSM | FKIl | ||
6419 | €624 0 | G21563 | CTSH2 | STA | LIHi | |
0420 | 06241 | 050365 | κιλ | RET | ||
0422* | Ο62'»2 | 010432 | LDA | TSW | ||
0423 | 662 A 3 | 170402 | RET | AND | MASK7 | |
C424 | Ρ6244 | cpa | P2 | |||
0425 | 06245 | RET | ||||
(System-U'bcrwachun^s-Programm)
FOR THE KEYROARD.I.Ε.».NKK
CALL DTSPtAY «RIVER (ROUTINE IN I/O SUP)
PROCESS KFYCODE
SETUP DISPLAY BUFFER(HORMAL RETURN) DISPLAY LINE OR RESULT(ALPHaNUMERIC RESULT RETURN)
B=0 LINE AS COMPILED OKAYl-I AN ERROR OCURRED
IF NEW KEY RETURN
ELSE nUILD DISPLAY
2ERO CHARACTER COUNTER OF LINE CLEAR DISPLAY BUFFER
2ERO CHARACTER COUNTER OF LINE CLEAR DISPLAY BUFFER
TSW=2?
YEStBUiLD lINE # FOR DISPLAY
BUILD DISPLAY
BUILD DISPLAY
.18 IS A UTILITY ROUTINE FOR SETTING SYSTEM STACK ROUTINE STARTS AT ENDS LOOKING FOR
NEXT -1 ViHlCII MARKS REGINNIHG OF MAIN PROGtUM
♦ 1 NECESSARY FOR MAG-CARD ROUTINE AND END
«426 '66246 164533
JHP RETl,t 309832/08Λ3
226272
0428»
0430» 0431* 0432« 6433 C434
0435 C436 0437» 0438
0439 0440*
ß441 0442 (3443 0444 0445* 6446
0447 6448»
0449 0450
The following routine processes the execute1key.
06247 063646 A.11 P6253 066646
fl6251 062253 Ö6252 1.64533 -
Ö6253 32(3376 T5W6
Ü6254 C67576
C6255 863647 A.51 Ö6256 £566263
G6257 G62261
06260 164533
06261 G20377 TSW5 86262 Ü67576
66263 062261 Ö6264 Ö66647
•JSm RKHUF JMp RU71
JSM TSVf6 JMP RETl»I
LOA P6 JMP EXl
JSh RKBUF+1
JMP TSW5+2
JSH TSW5
JMP RETl,I
LDA PS JMP EXl
JSM TSW5 JMP .A7 EXECUTE KFYBOARD BUFFERJIF NO-STOP USE SAME
(STOP RETURN) POINTER IN PROGRAM AREA
SET TSW=6
TSW=(I)6
EXECUTE KEYBOARD BUFFER (NO INTRP) NORMAL RETURN ERROR RETURN
TSW=(I)S
309832/0 8 43 0RlGWAl INSPECTED
6452·
0454»
The following routines process the store
0456· 6457 0458 Ö459 «460
«461 6462» 6463 0464 6465
0466 0467 β468 <J469 ß470 0471 0472
6473 Ö474 0475 C476 0477 Ö478
0479 0480 6481
0402 0403 0484 0405
0486 0487 0488« C409 (5490
0491 0492 C493 0494 G495 C496 f.497« 0498
C499
0501 β532·
36265 063557 A.32'
86266 074453 C'6267 C21563 .11?
3627Ö 041*262
06271 Ü67577
Ö504 6505 0506 0507
06272 C6273 S6274 C6275
Ρ6276 126277 Ö63P3 06331
(16302 C6303 063Ö4
6 63?. «J6306 C6307 Ü6310
£6311 C6312
66313 C6314 C6315
06316 Q6317 0632(1 06321 C6322
S6323 06324 66325 Ö6326 06327
C633B C6331 P6332
66333 G6334 06335 06336
C6337 06340 66341 06342 86343
C63557 A.12
075612
062242
STR2
063472 «45567 07474? C61352 D2C1535
07Ü376 D01545 031542 {!31722
031725 OOU. Ö7!t,e56
031377 O7EM3 S2A37D
063135
020401 Ö63576 164533
025542
Ü66333 07A517
131725
.10
055725 066324
07^517
131725 021722 031542
020535 011545 066402 070537
135546
JSM EXEOT SBP STR2 LDA TSW I OR BT14
JMp EXl»1
JSH EXEQT SBM .112
JSH CTSW2 JSh DRCMA JSH DELT ISZ HPH SBR JSM RBAD LDA TOPS
TCA
ADA PSP ADA ENDS
STA TEMP2 TEMP3 BSTK CMA
ADA MAW SAP .Iß-1
LDb MXERR JSh BAD JSH DSNO JSh CRZ LDA P3
JSM EXl JMp
LDR ENDS
CPQ CMA JMp LDA B.I STA.TEMP3.I
ADB Ml DSz TEMPI JMP .If)
LDA B,I STA TEMP3.I
LDA TEMP2 STa ENDS
LDA TOPS CPA PSP JHp LDfJ A, I
STß CMAiI IF ERROR ON EOL FOR STORE SET BIT14 IN TSW
TSW=2?
yes,store in current line
delete old line set for slow gto'S
cohputew-of-words used to compile the
CURRENT INPUT LINE. T0PS-PSP=<«OF WORDS
INCREASE END-OF-PROGRAM MARKER THE NECESSARY AMOUNT SAVE NEW ENDS
TEMP3 USfD IN EXPANDING MEMORY FOR INSERTING NEW LIN
SYSTEM STACK MOVtS WITH ENOS. SEE IF NEW LINE FITS
IN USER MEMORY.
MAW-W;-0F-W0R0S*EN0t*72+l)IF POSITIVE LINE FITS
ELSE ERROR ERROR tt\2 FOR MEMORY OVERFLOW
setup .wmoo (Routine on base page)
build line number call routine to build line with line numfjer
SET TSW=3
SET RIT15 ON TSV)(SAYS ERROr=MEMORY OVERFLOVO
RETURN FOR DISPLAY
SET D-REG aS POINTER TO OPEN MEHORV FOR NEW LINE
IS OPENING COMPLETE?
YES,PREPaRE TO INSERT NEW LINE
GET IT
STORE WORD IN NEW LOCATION
RECYCLE
GET NEW FND-OF-PROGRAM MARK STORE IT IN ENDt AND COMPUTE NEW BSTK
SET A-REG TO FIRST WORD IN COMPILER OUTPUT AREA HAS TRANSFER BEEN COMPLETED?
YES
NO,GET WORD
STORE IT IN USER PROGRAM AREA
STORE IT IN USER PROGRAM AREA
309832/08A3
0508 | 06344 | 045546 | .15 | < | .110 | ISZ | CMA |
0509 | fl63'»5 | Ö73570 | HlA | .12 | |||
0510« | |||||||
€511 | 06346 | 021546 | .17 | lda | CMA | ||
0512 | Ö6347 | 0705576 | TCA | ||||
0513 | 66350 | 031543 | ADA | LIMl | |||
«514 | C6351 | 070452 | SAM | .17 | |||
0515 | 66352 | 121546 | .T6 | LDA | CMAtI | ||
0516 | 06353 | 010405 | STRl | CPA | Ml | ||
ö517 | 06354 | 066357 | JHP | .110 | |||
C51B | G6355 | 020406 | LDA | M2 | |||
6519 | D6356 | 131546 | STA | CMAtI | |||
0520 | C6357 | 161710 | JSM | .END2,I | |||
6521 | C6363 | O3160Ö | STA | PMA | |||
6522 | C6361 | 066413 | JKP | A.14 | |||
0523 | Ö6362 | £!21546 | LDA | CMA | |||
es24 | 06363 | G31542 | STA | ENDS | |||
0525 | 06364 | 0253435 | LDA | Ml | |||
0526 | 06365 | 131542 | STA | EN1DStI | |||
0527 | Ö6366 | G63406 | JSM | DRCMA | |||
05H8 | C63&7 | Üc34ß2 | LDA | P2 | |||
0529 | C6370 | 363044 | .13 | JSM | NWLNE+1 | ||
C530 | 06371 | 063540 | JSM | UNCPl-I | |||
6531« | .14 | ||||||
ß532 | 06372 | 063604 | JSM | SCANl | |||
C533 | G6373 | C217B5 | LDA | .WMOO | |||
C534 | C 6374 | (373151 | SLA | «♦3 | |||
0535 | 06375 | 063Θ55 | JSM | NWl | |||
ß536 | 06376 | C162616 | JSM | L5 | |||
Ö537 | 06377 | O2C402 | LDA | P2 | |||
6538 | 664ß0 | 063576 | JSM | EXl | |||
C539 | S6401 | 164333 | JMP | OUT, I | |||
0540» | |||||||
6541 | 66402 | C63055 | JSM | NWl | |||
0542 | C 6403 | Ö62236 | JSM | .18 | |||
6543 | C 64 04 | 063457 | JSM | FETCH | |||
0544 | 66405 | 310465 | CPA | ENLNE | |||
0545 | 86406 | Ö66366 | JMp | .16 | |||
Cl 546 | C64ß7 | 310457 | CPA | END. | |||
fl547 | Ö6410 | 066346 | JMP | .15 | |||
6548 | G6411 | 066484 | JMP | .14 | |||
LOOK TO SEE IF IN DEFINE FUNCTION AREA
IF TRUE DON'T CHANGE ENDS ELSE CHANGE AT LABEL .17
END WAS STORED IN DEFINE FUNCTION AREA
LOOK TO SEE IF CMA IS POINTING TO -1
YEStDON'T STOPE-2 ΛΤ CMA.
STORE-2.CLEAN-UP ROUTINE IS CALLED BY END LINK
And removes old program from -2 το α -ι
CALL CLEAN-UP VIA END LINK ON RETURN FROM END LINK
CMA IS RACK TO MAIN-PROGRAM. SET PMA BACK ALSO JUMP TO CLEAR ROUTINE
END WAS FOUND IN INPUT AND MAIN-LINE-PROGRAM
UPDATE ENDS
MOVE CMA TO POINT TO BEGINNING OF LAST LINE
TRACE MODE PRINT PROGRAM LINE
RESET CP TO BEGINNING OF INPUT STRING ADJUST LIMl POINTER(MECESSaRY IF DEFINE FUNCTION)
LOOK TO SEE IF END WAS IN INPUT STRING
YEStSEARCH OF INPUT STRING COMPLETED IS CHARACTER END?
YESt PREPARE To UPDATE ENDS NOtCONTlNUE SEARCH OF INPUT STRING
YESt PREPARE To UPDATE ENDS NOtCONTlNUE SEARCH OF INPUT STRING
8 3 2/0843
«55β·
β552·
β553· THE FOLLOWING ROUTINES PROCESS THE CLEAR KEY.
«554*
«555 86412 063406 A.2'4 JSm DRCMA
0556·
β557 86413 020376 A.14 LDA P6
0558·
C559 06414 063044 A.54 JSm NW0-1
«560 06415 667557 JMp EXEOT
0561·
8562 C6416 G20376 CLRl LDA P6
0563 Ö6417 363020 JSM SKCD*1
0564 Ü6420 161560 JSm OSW»I
0565 C6421 021544 LDA SKEY
0566 66422 067020 JMP SKCD*1
SET TSW=6
A-REG INTO TSWICLEAR INPUT AREA PUT EOL IN INPUT
CLEAR CODE TOR OPTION BLOCKS SETUP CODE AND CN SEND CLEAR CODE TO PTlON BLOCKS
RESET CODE AND CN FOR THE PRESENT KtYCODE
309832/0843
-2. CvA
226272
0560»
0569« THE FOLLOWING ROUTINE PROCESS THE-RECALL KEY.
0570·
ß571 | 06423 | 063363 | A.16 | JSh | CKERR |
eS72 | 66424 | 663646 | JSm | RKBUF | |
C573 | 06425 | C66427 | ■ JMP | «♦2 | |
0574 | Ö6426 | 170402 | RET | ||
C575 | C6427 | C61363 | 0K4 | JSM | CKERR |
fl576 | C6430 | 121546 | LDA | CMA»I | |
ß577 | 06431 | C1O405 | CPA | Ml | |
C578 | Q6432 | £66600 | JMP | SPREG | |
C579 | 06433 | £66367 | RCLL | JMp | STRl |
IF SYNTAX ERROR — NOP
EXECUTE INPUT LINE · NORMAL RETURN
ERROR RETURN
ERROR RETURN
ARE WE AT END-OF-PROGRAM YES,OUTPUT ff OF R-REG
06433 066367 RCLL JMP STRl
0580»
C5S1« THE FOLLOWING ROUTINES PROCESS THE BACKSPACE KEY.
0582» (3583* ENTRY IF MEMORY OVERFLOW AND INSERT
SAVE BITS 1SS.14 PREPARE TO SET TSW=I
CLEAR SIGN BIT. ENTRY FOR RECALL MODE SET TSW
NORMAL DRECREMENT OF CP FOR BACKSPACE BACKSPACE OVER BEGINNING-OF-LINE?
NOiRECOMPILE CORRECTED LINE "
G6445 063367 B4 JSm INCP
66446 66H242 . JSH CTSW2 TS
£6447 C66451 JMP **2
06450 067604 JMp SCANl
66451 C63406 JSH DRCMA
S6452 063406 JSM DRCMA
36453 010405 CPA MI
C6454 (167604 JMp SCANl
Ö6455 066433 JMP RCLL N 0633*
06C 4»* **«*«·*»«#«»«■*» #»****« »*·*■»«·■»*
O6C55*
G606* THE FOLLOWING ROUTINES ALLOW INSERTING CHARACTERS
C6ß7« RECALLED LINE.
G608» 0609 06456 670253 A
6610 S6457 066413 0611« G612 06460 G7S3I2 A.33 SAm A.23*3
0613* 0614 86461 04f!40l A.13
G615 66462 031563 6616» 0617 86463 063363 A.23 GET ADDRESS OF INSERT ROUTINE
STORE IN STORE LINK WORD
0584 | 06434 | 070742 | A.38 | SAR | 16 |
6585 | 06435 | £·5Π262 | A.18 | AND | 262B |
0586 | Ö6436 | C40403 | IOR | Pl | |
0587 | G6437 | 070(573 | A.28 | SAp | **1 »C |
«588 | S6440 | C31563 | STA | TSW | |
0589 | G 6441 | £63355 | jsh | DRECP | |
0590 | C 64 42 | 015565 | cpb | BP | |
C591 | £!6443 | 066445 | JMP | 04 | |
C 5Ό 2 | C 6444 | C67684- | 32 | JMP | SCANl |
C593« | |||||
{3594 | G6445 | 063367 | B4 | JSm | INCP |
G595 | 66446 | 66H242 | JSH | CTSW2 | |
6596 | £6447 | C66451 | JMP | »♦2 | |
C597 | 06450 | 067604 | JMP | SCANl | |
G59B | 66451 | C63406 | JSH | DRCMA | |
eS99 | S6452 | Ö63406 | JSM | DRCMA | |
C600· | iJ6453 | öl 0405 | CPA | MI | |
C6B1 | C6454 | ('67604 | JMP | SCANl | |
C602 | Ö6455 | 066433 | JMP | RCLL |
63
SAP A.23 JMP A.14
IOR P3 STA JSW OF LINE INCREMENT TO FIRST POSITION
TSW-2?
YES
YES
NO JUMP TO RESET COMPILER RECALL PRECEEDING PROGRAM LINE
REQUIRES DRECREMENTING CMA TWICE
BEGINNING OF PROGRAM AREA YEStJUMP TO RESET COMPILER NOtRECALL NEW PROGRAM LINE ,
IN A
TSW=6 Alir» INSERT KEY. IF POSITIVE SET INSERT MODE
ELSE ACT LIKE CLEAR KEY
i=I AND INSERT KEYISET FOR CHARACTER INSERT MODE
Ö6464 020357 «6465 031621 06466 164303
JSH CKERR LDA ISTOR STA KSTOR JMP OUTiI
309832/0843
0622·
0624· | THE | FOLLOWING | ROUTINE | JSm | PROCESS |
0625· | stb | ||||
0626· | 06^67 | 071752 A | .17' SAM | STn | ♦-1 |
0627 | 06473 | C-70744 | SAL | sin | 1 |
0628 | 06471 | C7P252 | SAM | JSm | Λ.27Ρ- |
0629 | 0647? | 063361 | JSm | JMP | CKERR-2 |
0630 | ß6473 | 021566 | LDA | CP | |
0631 | S 64 74 | 063367 | JSH | INCP | |
0632 | 06475 | (267611 | JMp | SCAN3 | |
0633 | |||||
0634· | C6476 | 063361 A | .27P JSH | CKERR-2 | |
0635 | Ö6477 | C63457 | JSM | FETCH | |
C636 | 56503 | 063355 | JSH | DRECP | |
C637 | 06501 | C1C465 | CPA | ENLNE | |
0638 | E650? | 066272 | JMP | A.12 | |
0639 | C6503 | C66473 | JMP | A.17*4 | |
C640 | C650't | 071513 A | .27 SAP | Λ.27Ρ | |
0642 | C6505 | 121546 | LDA | CMA. I | |
C643 | 065C6 | C10405 | CPA | Ml | |
3644 | 06M7 | 164 333 | JMP | OUT»I | |
0645 | 06510 | tf204fl2 | LDA | P2 | |
0646 | (56511 | DÖ7044 | JSm | NWLNE+1 | |
0647 | 06512 | 1)6354β | JSm | UNCPl-I | |
0648 | S 61Jl 3 | 063055 | JSm | NWl | |
C649 | C6514 | 062416 SCMP JSM | CLRl | ||
C650 | 06515 | 16-3313 | RSCMP,I | ||
P651 | 06516 | 035575 | QOTE | ||
C652 | 065)7 | 035564 | ENTSW | ||
C653 | C65?O | 035577 | ERST | ||
t'654 | G 6521 | Γ/61352 | RBAO | ||
0655 | 06522 | 164333 | OUTfI | ||
C656 | |||||
EOL IF -
IF BIT14 CHECK FOR STORE LINE
NO ERROR
BRING NEXT CODE INTO SYSTEM
BRING NEXT CODE INTO SYSTEM
MOVE POINTE» BACK IS CHARACTER FOL?
YES STOPE CURRENT LINE NO PROCESS NEW CHARACTER
TSW NEGATIVE»LOAD FIRST WORD OF NEXT LINE IS IT ENn OF PROGRAM?
YESjClEAR A&B REG
RESET OPTION BLOCK COMPILATION RESET COMPILER
309832/0843
6658» 0659»
6661* «662»
6663» «664* C665» G666 C667
©668 e669 €670 G 671
0672 (5673 C674 C675 0676 C677
0678» «679 C680 0681 0682 »683 Ö6B4*
6685 0686 0687 Θ688 C6B9
β690 ß691 (3692 0693
the following routine processes the delete key
D6523 06524 P6525 06526 06527
«6530 36531 66532 Ö6533 66534
36535 C6536
070653 A.25
G63486
D63472 DELN
121546
010405
D66532
C66433
C63406
Ö39403
073650
1352413
S66277
Dl
06537 071152 A.65 Ö6S4G 070113 A.35
66541 {566277 86542 C62544 A.15 C6543 Ö676Q4
C695 C696 Ö697 0698
06544 G6545 B6546 G 654
06550 06551 06552 66553 06554
06555 Ü6SS6 C6557 C6560
{56561
025566 DELC
035573
Ö63355
Ö35722
C15565
067367
063453
07Gl37
079150
C63436
(/66552
t:63436
025722
C67373
SAP A.35 JSH DRCMA JSM DELT LOA CMA»I
CPA Ml JMP Dl JMP RCLL JSM DRCMA ADA Pl RZa Dl-I
JSM A.14 JMP STR2
SAM «-13
SAP A.15 JMP STR2 JSM DELC JMP SCANl
LDB CP STB CPl JSm DRECP STB TEMP2 CPB BP
JMP INCP JSM FECH LDB A SZA **3 JSm MSTOR
JMP »-it JSM MSTOR
LDB TEMP2 JMP INCPl IF TSW=H AND öl5=0 THEN DELETE LAST CHAR SHOWN ·
ELSE MOVE CHA BACK TO F3EGINN1NG oF LINE SHOWN IM
PREPARATION FOR DELETEING LINE HAS ENDS PEEN MOVED OVER THE DELETED LINE?
YES ,
NOiDISPLAY LINE THAT NOH OCCUPPIES THE DELETED LINE
NOiDISPLAY LINE THAT NOH OCCUPPIES THE DELETED LINE
IS MEMORY NULL?
IF NONZERO MO
YEStMAKE PROGRAM SEGMENT NULL
IF - RECALL INPUT
DELETE KEY IN MEMORY OVERFLOW;TAKE NO ACTION .CALL INSERT TO REGENERATE ERROR MESSAGE
RECOMPILE CORRECTED LINE
SET POINTER FOR FETCHING CODES FROM INPUT AREA MOVE STORAGE POINTER ONE POSITION
SAVE NEXT VALUE FOR CP DELETTIN6 BEGINNING LINE CHARACTER?
YESfMOVE STORAGE POINTER FORViARD
NO»GET CHARACTER TO BF. MOVED BACK MSTOR WORKS WITH CHARACTER IN B-REG
LAST CHARACTER IF ZERO STORE CHARACTER IN NEW POSITION CONTINUE MOVING INPUT CHARACTERS
STORE LAST CHARACTER
RESET INPUT POINTER
309 832/0843
«700· | The following | 063646 | ROUTINES | PROCESS |
«701· 0702· |
U66S65 | |||
0703»
0704· |
170402 | |||
«735» | 66562 | A.19 JSM | RKBUF ■ | |
0706· | 66563 | 063363 | JMP | • ♦2 |
0707 | 06564 | 1363135 | RET | |
0708 | 121546 | |||
0709 | «6565 | 010405 | L2 JSM | CKERR |
0710· | 66566 | C66600 | JSH | OSNO |
0711 | 6656? | Ρ635145 | LDA | CHAtI |
0712 | 66570 | 363541 | CPA | Ml |
0713 | Β6571 | 063355 | JMP | SPREG |
0714 | 06572 | C62616 | JSH | NW0 |
0715 | 06573 | 945547 | JSH | UNCPl |
0716 | 66574 | 071413 | JSh | NWl |
0717 | 0657S | JSH | L5 | |
0718 | 06576 | 06311? | ISZ | SNO |
0719 | 66577 | C63347 | SAP | L2*2 |
6720 | C2G467 | |||
0721 | 66600 | C63114 | SPREG JSM | CLDP. |
0722· | 06601 | Ü21542 | JSH | ENO* 1 |
8723 | 06602 | 031615 | LDA | R |
0/24 | «6603 | (J70H56 | JSH | .STCD |
0725 | 66604 | 031712 | LDA | END'S |
6726 | Ö6605 | C70042 | ADA | BSTK |
0727 | 66606 | U63126 | CHA | |
0723 | '06607 | 160250 | ADA | RR |
0729 | 216610 | 02(5347 | SAR | 2 |
0730 | e6611 | 160473 | JSH | .STLlO |
0731 | Ö6612 | (366413 | JSH | .PRTl,I |
0732 | Ö6613 | L7 · LDA | EIGLN | |
8733 | 66614 | 063116 | JSM | SPACtI |
β734 | 66615 | 160250 | JHP | A.14 |
0735 | 063112 | |||
0736 | 06616 | 020400 | L5 JSH | .STLN |
0737· | 66617 | C63577 | JSh | .PRTItI |
0738 | 06620 | 063516 | JSH | CLDB |
0739 | 66621 | D7B752 | LDA- | P4 |
0740 | 06622 | U23364 | JSH | EX1*1 |
0741 | C6623 | C31573 | JSH | CKSTP |
β742 | 66624 | G61257 | SAM | •SC3*? |
0743 | 66625 | Ο7Ρ450 | LDA | P16 |
0744 | 06626 | CU4405 | STA | COUNT |
6745 | «6627 | C66636 | .SCl JSH | .FDCH |
0746 | 66630 | 063367 | SZA | .SC3 |
0747 | Β6631 | C63234 | CPß | Ml |
074Β | «6632 | 066627 | JHP | • SC2 |
0749 | 06633 | (!63376 | JSh | INCP |
0750 | 66634 | 160250 | jsm | TRANS |
075Γ | 66635 | JMP | .SCl | |
0752 | 66636 | •SC2 JSH | .OOTE*1 | |
«753 | 66637 | JSH | .PRTItI | |
0754 | ||||
«755 | ||||
IF INPUT STATEHENT EXECUTE IT NORMAL RETURN
ERROR RETURN
YEStPRINT «OF R-REGISTERS CLEAR INPUT AREA
UNCOMPILE POLISH CODE
SET CP TO BEGINNING CHARACTER CALL ROUTINE TO PRINT PROGRAM LINE
INCREMENT LINE #
IF A ♦ RECYCLEHF- STOP
SET CMA TO BEGINNING OF HAIN PROGRAM PLACE "R" IN OUTPUT RUFFER
(RR-(EN0S*RSTKtl))/4=«0F R-REG
CONVERT HINARY NUMBER TO ASCII PRINT «-OF-R-REGISTEPS
SET UP FOR 8-LINE SPACE(80) CALL SPACE ROUTINE JUMP TO CLEAR ROUTINE. DISPLAY EOL
CHECK FOR STOP KEY
A-REG - IF STOP KEY SET ft OF CHARACTERS PER LINE TO BE
16
WITH CODE IN A-REG.IF ZERO ENO OF LINE
B-REG INDICATES STATUS OF HUFFERI-I BUFFER OVERFLOW
NO OVERFLOW SFT POINTER TO NEXT CODE GET NMEMONIC FOR CODE CONTINUE LOOP
OUFFER OVEIiFLOWJWAS OVERFLOW CHARACTER " YES RESET
309832/0843
226272!
0756 | 06640 | G66620 | JMP | LS + 2 |
0757 | 66641 | 021573 | .SC3 LDA | COUNT |
0758 | C6642 | 010364 | CPA | P16 |
S759 | B6643 | 1704132 | RET | |
0760 | 06644 | 164250 | JHP | .PRT1,1 |
GET REST OF LTNE
ALL CHARACTERS OF LINE-ARE THERE CHARACTERS IN
THE DISPLAY BUFFER? IF COUNT 16 NO CHARACTERS NO MORE CHARACTERS
YES CHARACTERS IM BUFFER;OUTPUT!THEN GET NEXT LINE
3 09832/08A3
«762» 0763» 676A·
β765· 0766· fl767· Β768»
β769· 8770 «771 β772 β773 077Α
C775 0776 6777 β778· 0779 0780 0701
0782 0783
THF FOLLOWING ROUTINE PROCESSES THE RUN-PROGRAM KEY
Θ66Α5 O62A13 RU7 866A6 062253 P.U71
86647 16PI310 .Λ7
06650 02BA05 β6651 025550
0665? 031550
06653 035572
06654 16A533
JSM TSW6
LDA Ml
LDB .STPT
G70S
06655 f/6656 ÖM.57
Q6660 06661 06662 06663
O6?413
6707 ß7ö8 8709
(!6665 06666 C 66 6
066661 Ö66251 Ö21546
031630 (Ü2H50O
031605 Ö63656
066251
A.210 JSm A.110 JSM JMP JMp LDA STA
LDA STA
RUA JSm JMP JMP
A.IA
RKRUF
•♦2
A. 11*2
CMA
ΡΜΛ
APMA
IMA
RPBUF
RU7
A. 11+2 EXECUTE KEYBOARD BUFFER (STOP RETURN)
ERROFi IiETURN
EXECUTE PROGRAM AREA STOP RETURN CHECK TSW=2
309832/0843
β791· β792 «793 (J794
«795 β796· 6797 β798 0799 0800
«801 .ββ02 β803·
«804 fl805 0806 0807 fl808 0809 «810·
«en 0812 t'813
0815 6816« «817
«818 6019 0820 (3821
S022 <J823*
C824 «825 6826
66670 962715 ENTER «6671 067037 66672 062725
06673 Β66705
66674 160251 ΕΝΤ3
66675 010553
66676 t'66702 06677 160323
06700 062225 Ö6701 .066674
06702 025577 C6703 075452
86704 160323 06705 Ö74113 ΕΝΤ4 Θ6706 067035
C6707 Θ71252
06710 Θ2Β400 ENDE S6711 031563
06712 Θ20532 66713 031565 C6714 164326
JSM TENTR JHP Ρ04+5 JSH ENTS
JHF ΕΝΤ4
JSM .DSP»1 CPA RUN JHP «*4
JSM.SMON,I JSM KY6 JMP ENT3
LDB ERST SBM ENT3 JSM .SMON,I SBP **2
JMP P04*3 SAM ENT3
LDA P4 STA TSW LDA XB STA BP JHP RECYtI
8828 €829
0830 C831 0832 0833 6834 «835·
β836 0837 0838 0839 6840
0841 0842
«843 «844 «845 «646
66715 021624 TENTR LDA DISEN 06716 072210
Ö6717 C21563
66720 010400
66721 164533
Ü6722 164302
66723 062715 ENT2
66724 867034 C6725 121605 ENT5 06726 031600
66727 6205β0 ENTl 66730 031605
06731 063112 66732 020377 £6733 063044
C6734 024532 «6735 (135566
ß6736 16055? STOVl 36737 063375
.06740 Ö74110 Ö6741 666762
Ö6742 010507
06743 066767
06744 010403
06745 170402
06746 010545
06747 066767 «6750 »10546
LDA TSW CPA P4 JMp RETl,I JMP Ell.I
JSM TENTR JHP P04+2 LDA IMA»I STa PMA LDA APMA
STA IMA JSM CLDB LDA P5 JSh NW0-1 LOB"XB
STB CP
JSm SXJ,I JSm .0OTE SZB **2
JMP ST0V3 CPA ETA JMP ENDV CPA Pl RET
cpa comma
JMP ENDV CPA QUOTE ENTER OKAY TO EXECUTE
NO STMT IS FROM KEYBOARD YES
DATA DELIMITER IS RUN PROGRAM KEY
DISPLAY INPUT
DATA DELIMITER
ERROR RECALL PROGRAM LINE IF A-REG NEGATIVE MORE PARAMETERS
ELSE COMPLETE
IF NONZERO DO NOT ALLOW ENTER MODE
ARE WE IN RUN PROGRAM M0DE?(TSW=4) YES
no set error ii
DON'T EXECUTE ENTER STMT(ERROR RETURN)
SET TSW=5 AND READY INPUT BUFFER SET CP AT BEGINNING OF INPUT AREA
USE INTERPRETER ROUTINE TO FETCH CODES FROM ENTER
SETUP TFST FOR OUOTE FIELD • B-REG=I IF IN QUOTE FIELD
IF PRESENT CHARACTfR QUOTE GOTO ST0V3
IS CHARACTER END-OF-ENTER STMT MARK? LAST PARAMETER
END-OF-ENTER STRING
YES
END-OF-ENTER STRING
YES
IS CHARACTER »?
YES.END OF VARIABLE SETUP FOR DATA IS IT "?
«847 | 667Sl | 066757 | ST0V4 | JMP | ST0V4 |
«848 | «675? | 025544 | LDB | SKEY | |
β θ 49 | 06753 | 063436 | JSM | MSTOR | |
0850 | 06754 | 625564 | STOV3 | LDB | ENTSW |
0Β51 | P675S | Ö74351 | SLB | ST0V2 | |
0852 | 86756 | 066736 | ST0V2 | JMP | STOVl |
β853 | «6757 | 16P552 | JSM | SXJ,I | |
0854 | C6760 | 045564 | ISZ | ENTSW | |
0Θ55 | Β6761 | 066736 | JMP | STOVl ■ | |
8856 | 66762 | 010546 | ENOV | CPA | QUOTE |
«857 | 66763 | 866736 | JMP | STOVl | |
C85B | &6764 | 021544 | LDA | SKEY | |
0Θ59 | 66765 | B63234 | JSM | TRANS | |
«860 | 66766 | 066736 | JMP | STOVi | |
C861· | |||||
0862 | 06767 | 024475 | LOB | ENSTM | |
0863 | 06770 | C363436 | ASSG | JSm | MSTOR |
0864 | C6771 | 075712 | SBM | •-2 | |
0865 | C6772 | 035565 | stb | BP | |
0866 | 06773 | C63055 | JSm | NWl | |
0867 | 06774 | 067566 | JMP | EX3 | |
β86β· | |||||
6869 | 06775 | 070253 | SAP | •♦5 | |
9870 | 06776 | 021430 | LDA | FLG | |
0871 | 66777 | 04?210 | ASS63 | IOR | B13 |
«872 | C7000 | 031430 | STA | FLG | |
β873 | 97Rfll | 066727 | JMP | ENTl | |
C874 | 8700? | P20532 | LDA | XB | |
C875 | C7C33 | 031573 | SlA | CPl | |
C876 | C70H4 | C24464 | LDB | ASSM | |
β877 | <!7Cß5 | 661436 | jsm | MSTOR | |
0878 | «7006 | 663453 | ASSG2 | JSM | FECH |
C879 | 07007 | C70137 | LDB | A | |
0880 | 07B10 | 610475 | CPA | ENSTM | |
6881 | 07011 | ('67013 | JMp | ASSG2 | |
C832 | «17012 | 067Ö05 | JMP | ASSG3 | |
0β83· | |||||
0«84 | 87013 | 063436 | JSM | MSTOR | |
0885 | «7014 | 063647 | JSm | RKBUF*1 | |
0886 | 07015 | G66727 | JMP | ENTl | |
0887 | «7016 | Ö65357 | JMP | 1357B | |
closing quote ignore
Save variable was theke a label field? no,place variable in display
yes,get next character comma is next character ignore
set label field flag
IT
IF CODE IS OUOTE IGNORE
GET NEXT CODE PLACE CHARACTER IN A-REG GET NMEMONIC AND PLACE IN DISPLAY BUFFER
RECYCLE
VARIABLE HAS* BEEN FOUND
STORE I AFTER VARIABLE MAKE CP POINT TO LEFT HALF-OF-WORD
STORE POINTER IN ΠΡ THIS PROTECTS SAVING OF VARIABLE
STORE BEGIMNING-OF-LTNE CHARACTER AT BP
EXECUTE AN EOL AND RETURN FOR OATA ENTRY
CONTINUE ENTRY. IF Λ ♦ STORE DATA IN VARIABLE ELSE SET FLAG 13
GET NEXT PARAMETER IN ENTER STMT
SET POINTFR TO RETRIEVE VARIABLE GAZlNTA FOR END OF KFYBOARD ENTRY
STORE CODES AT END OF INPUT STRING FETCH VARIABLE COOES
IS IT J?
YES,ALL VARIABLES RETRIEVED NCRECYClE
STORE »I» NEEDED TO COMPILE LINE PROPERLY EXECUTE INPUT
NORMAL RETURN
ERROR RETURN
NORMAL RETURN
ERROR RETURN
309832/0863
226272!
0889· | 07017 | C31544 SKCD | sta | SKEY |
0890 | C7020 | 000377 | ADA | MTABL |
0891 | 07021 | 070517 | LDA | A, I |
«892 | Ö7022 | 63)561 | STA | COOE |
C893 | Ö7023 | 025561 SKCDl | LDB | CODE |
0894 | Ö7024 | 021561 | LDA | CODE |
C895 | C7025 | 070342 | SAR | 8 |
flü96 | 07026 | £'50401 | ANO | MASKl |
ft897 | 67027 | 674442 | SBR | 10 |
0898 | 07030 | 035540 | STB | CN |
0899 | 67031 | 170402 | RET | |
0930 | ||||
0901» | Ö7032 | 062514 P04 | JSM | SCMP |
0902 | 67033 | 961250 | JSM | STP |
0903 | 87034 | 055777 | DSZ | RSTAK |
0904 | 67035 | 020500 | LDA | APMA |
C905 | «7036 | 031695 | STA | IMA |
Ö906 | 07037 | 160552 | JSM | SXJ, I |
0907 | 07040 | Ö10457 | CPA | P26 |
6908 | 87041 | 066712 | JMP | ENDE*2 |
C909 | G7042 | 067037 P05 | JMP | «-3 |
0910 | ||||
•THIS ROUTINE IS USED TO SETUP SKEY,CODE,AND CN
(CONTROL «».ENTER WITH ASCII CODE IN A-REG/
AOD TABLE ADDRESS
GET CODE WORD.lftBIT WORD DIRECTS KEYCODE THRU SYSTEM
RE-ENTERED HERE AFTER GOING TO OPTION BLOCKS
POSITION WORD FOR KEYCODE CLASS
CLASS IN A-REG,d=PROGRAM,l-0PTI0N,2=INTER.»3=C0NTR0L
POSITION WORD FOR CONTROL #,CN
STORE IM CN <■ .
ERASE RETURN OF CALLING ROUTINE FOR ENTER
GET CODE FROM PROGRAM AREA
IS IT EOL?
IS IT EOL?
YES RETURN TO INTERPRETER
RECYCLE
RECYCLE
0.9 832/0843
β912· Ö1J13 ·<
«914· 8915· 6916· β917· 0918
«919· 0920
e following routines process all the programmable keys and option rlock keys.
C922
β924· β925 «926*
C927 0928 £929 8930
0932 0933 0934 0935 «936
0937 <?938 «939 C 940
0941· 0942 Ö94 3 0944
0945 0946 6947» 0946
C949 3950 0951
0952 0953 0954 0955 0956 0957 0950 0959
0960 «961 0962 0963 ■3964 0965 0966
•967
16347
ORG 16347F)
16347 004322 OPTN ADB TABl
16350 074717 JSM B»I
16351 166352 JHP SKC02.I
16352 B07023 SKCD2 DEF SKCDl
87043
B7043 07(144 G7045 07046 G7047
07053 C7051 07052 C7053
Θ7054 C7055 07356 07057 G7060
020403 031563
C25565 S70742 Ul5545
D67Ü55 074557 304405 C670S0
321565 Ü31566 024466 067437
NWLNE LOA SlA
NW0 JSm
NW3 LOB
SAr
CPr
JHP
NWl
P05*l
Pl
TSW
SCMP
BP
16
PSP
ADfJ JKP LOA
STA LDB JMP
B,I
Ml
e-4
BP CP
BGLNE MST0R*l CALL SYNTAX ENTRY ON OPTION BLOCKS ALLOWS OPTION BLOCKS TO CHANGE CODE AND CN FOR PROC.
ROUTINE CALLED TO START A NEW LINE SET TSW=I
RESET COMPILATlOfHB=0 ON RETURN
GET ADDRESS OF FIRST WORD IN INPUT STRING
ARE WE UP TO COMPILER OUTPUT AREA? YES»COMPLETEU ZEROING INPUT AREA
NO.ZERO WORD IN INPUT AREA MOVE POINTER
RECYCLE
RECYCLE
BEGINNING CHARACTER IN INPUT STRING
STORE IT
P7061 Π25544 A.511 LDn SKEY ENTFiY FOR USING KEYBOARD IN ENTER MODE
Ü7062 014537 CPß STOP IS CODE STOP.USED TO ABORT ENTER MOOE
67(163 067032 JMP P04 YES
R7064 070233 SAp P02*2,C NO»IF BITl5=ß NOT FIRDT CHARACTER SO CONTINUE
P7065 D63044 JSm NWLNE*! Bins=! RESET FOR NEW LINE.TSW MUST REMAIN 5
07066 C7Ö67 C7070 0 7071 07072
07373 07074 07075 07076 07077
67101 C 710? 07103 67104
07105 €7106 071H7
07110 07111
13 C63043 D63363
C63375 076310 063017 O1C403
160551 Sl4355
067131 161560 Ö35722 C21544
050345 070137 014437 Ö24465
161621 0257?2
P02
SAp **2
JSm NWLNE JSm CKERR
JSm .0OTE
JSM. SKCD CPA Pl JSm OPTNl.I
CP|3 BYPS
POl
P03
170402 LAST
jsm OSw,ι stb temp?
LDa SKEY AND MASK9 LD» A
CPB EXEC LDB ENLNE JSm KSTOR,I LDl) TEMP2
RET NORMAL ENTRY FOR PROCESSING PROGRAMMABLE KEYS BlTlS=I RESET FOR NEW LINE
IS CHARACTER ΡΛΠΤ OF QUOTE FIELD?
IF YES fl = l ALLOW ANY CODE IF NO r? = v). TFST FOR LEGAL CODE
RETUFiN WpH CLASS IN A-REG.IS CODE OPTION BLOCK(A = I)
YES CALL OPTION FiLOCK SYNTAX NO,CONTPOL NUMnER=4R?
YES,OSW SWITCH BYPASS
SEND CODF TO COmP]LEP(CALL ROUTINE THRU SWITCH OSV/)
SAVE B-RFGdF NFGaTIVE -1 COMPILE« RF.JEcTF.O CODE)
get phesfnt keycode option block usfs bits in skey to flag compiler
is code fol?
yes change it to code for fol in input string store codf in input area.switch word use for replace
or insert. restore status of error to b-reg
309832/08^3
IN dwr 092990 «79218 I00I
Iia 33Vai 13S ld aoi Eß^ÖVG C9210 0SBl
aowH* von zl'q sb£I2o 2921s 6660
· .«/.660
•A3» 33Vai 3Hl S3SS330ad 3NlIfIOa 9NIM0110J 3Hl «9669
•C666 13a 20WI 19210 2663
QOWH· vis in saneo 09210 I66»
Iia 33Vai/waON aV313 2W ONV 90^050 iS2la 066Ö
QOW«· Vai 2Λ*Θ S0AI2O 9SZIa 6969
•A3» IVWaON 3Hi S3SS330ad 3NIiOOa ONlMOH^OJ 3Hl ·9Θ69
' " »C86Ö
IN dwr aa 092S9O SS2I9 206»
S»SVW ONV 11*059 "?S2la I860
UV313 Ol Q3Sn 3NIlf»0a QOHM· VOI dlSN SBIUo €S2l9 0866
•6I6Ö OiJOH 3U01S 0109 IN dwr 092S9Ö ZS2IS 8Λ6»
(Z iia)iia dois i3s *id3» si *>d aoi 00voyfj iszia
sniVis 3a3Hft aao« i39*a3m dois aoj SNiinoy νοιιΠ33Χ3 oowm* van dis sa/.i2ß 05210
sniVis 3a3Hft aao« i39*a3m dois aoj SNiinoy νοιιΠ33Χ3 oowm* van dis sa/.i2ß 05210
•Si.69 Ö0S2I 9aO · 0S2I» *iLb$
«C/.60
dOlS 3Hl S3SS330ad 3NlIOOa 9NlMOTlOJ 3Hl «2i69-
«••»«••»»«•»»»••••β ••««»»••»••0/.6Ο
1004« 1005« 1006· 1007· THE FOLLOWING ROUTINES PROCESS THE FIXED ANF FLOAT KEYS
1008·
1009 16367 ' OHG 16367R
1010·
1011 16367 154360 .TBA DEC -1000
DEC -1000
OEC -100
DEC -10
1012 1013
16370 176030
16371 177634
16372 177766 DM10 101S·
1017· 1018·
1019· The following routine processes the sfg
1020· 1021· 1022 16373 C21430 B.77 LDA FLG
SLA «H
STa FLG
RET TABLE OF CONSTANTS USED IN CONVERTING BINARY TO ASCII
1023
1024
1025
1026·
1027
1028»
1029
1030
1031
1032·
1033
1034
16373 C21430 B.77
16374 P7P051
16375 Ö31430 BRBl
16376 170402
GET FLAG WORD
SET FLAG ß.INTERRUPT FOR SFG RETURN TO STOREAGE LOCATION
16377 000000
67112
07112 O2PI207
G7113 164255
BSS
ORG LASTM
LOa .DRUF JMP LlBAtI
SYSTEM MONITOR ROUTINE (CONT.)
07114 C31720 .STCD STa K C7115 164252
JHP .BF3D,I LOAD AODRFSS OF Ol SPI. AY BUFFER
CALL ROUTINE TO CLEAR THIS RUFFER
A-REG HAS CODE TO BE STORFO IN DISPLAY BUFFER
CALL ROUTINE TO STORE THIS CHARACTER IN DISPLAY BUFR
309832/0843
1036» 1037· 1038» 1039»
1040 1041 1042 1043 1044* 1045 1046* 1047 1048 1049 1050 1051 1052
1053 1054 1055 1056 1057» 1058 1059 1060
1061 1062 1063 1064 1065 1066 Iß67.
1068 1069 lß70 1071 1072» 1073 1074
1075 1076 1077
The following routines-are the display and.
printer routines used to output' user system commands.
«711fi'ß63112 67117 063123
67120 »63204 B7121 667114
.STLN JSM CLDB
• JSh .STLl
JSM COLN
JMP .STCD
67122 063135 STLN 'JSm OSNO
£7124 67125 Ö7I26 37127 G7130
67131 S7132 27133 67134
G7135 67136 07137 Ö7140 E7141
(37142 C7143 fJ7144 &7145
37146 Ö7147 S71S0 67151 07152
C71S3 67154
67155 67156 67157
070742 B31571 021547 063160 063114
021725 Ö10460 1.70402 063165
G67127
070742 031^47 G21546
663153 07Co7fl
Ul1546 170402 07Po70
078537 R75713
045547 (Jl 4435 170402 £367
.STLl SAR
STA LINCT LDA SNO JSM SBA JSm .STCD LOA TEMP3
CPA ENDSR RET
JSM CBA JMP *-5
DSNO SAR STA LOA JSM SlA
DSl CPA RET
DS2 SIA
ton
S(3P ISZ CPB RET 0S3 JMP
16
SNO CMA FMIl
«-♦1 CMA
»♦1
Λ»Ι DS2 SNO Ml
OSl
FMIl
B70537 ßl44fJ5 170482
C67153
ADA Ml LÜB A,I CPB Ml RET JMP. *-4
ROUTINE USFD TO RUILO LINE H CALL ROUTINE TO CONVERT BINARY U TO ASCII
PLACE COLON WITH ft ' ' STORE : IN DISPLAY
ZERO LOCATION WHICH WILL HOLD « OF CHARACTERS IN
LINE η
GET CURRENT LINE ft
GET CURRENT LINE ft
CONVERT IT
STORE AN ASCII CHARACTER
GET POINTE« TO TABLE OF DECIMAL CONSTANTS ARE FINISHED WITH CONVERSION PROCESS?
GET POINTE« TO TABLE OF DECIMAL CONSTANTS ARE FINISHED WITH CONVERSION PROCESS?
YES
NO,CONTINUE CONVERSION PROCESS RECYCLE
ROUTINE USED To DETERMINE CURRENT LINE #.CLEAR LINE
ADDRESS OF CURRENT. PROGRAM LINE CALL ROUTINE TO FIND REGINNING OF PROGRAM
ADOHESS OF FIRST LINE IS A-REGU ON RETURN "
IS'THAT THE CURRENT LINE?
YES RET
INCREMENT SEARCH POINTER
GET NEXT WORD
GET NEXT WORD
IF 8IT15=1 THEN BEGIWNING-OF-NEW-LINE ELSE RECYCLE
FOUND NEW LINE INCREMENT LINE » COUNTER ARE WE AT END-OF-PROGRAM?
YES RETURN TO- CHECK IF FOUND CORRECT LINE
ROUTINE USED TO FIND REGlNNING OF CURRENT PROGRAM starting address is in a-reg. get word
is it -1?<-1 is used as boundary markers for program area).yes-found-it
RECYCLE
309832/0843
1079· | 07160 | 031573 | SRA | • | CBA | sta | COUNT |
1080 | «7161 | Ö20474 | LÜA | CNTAR | |||
1001 | 67162 | 031725 | STA | TEHP3 | |||
1082 | «7163 | 070742 | SAR | 16 | |||
1083 | • 7164 | 867172 | JHf | ΓϋΒΤΙ-ι | |||
108'» | |||||||
1085» | £71 'C | SUBTl | LDA | 060 | |||
Ö7166 | C45725 | ISZ | TEMP3 | ||||
ΐοβν | 87167 | 025725 | LDB | TEMP3 | |||
1088 | • 7170 | 014460 | CPB | ENDSR | |||
1089 | 67171 | C67206 | JMP | LOIGT | |||
1090 | C7172 | 025573 | OVFLW | LOB | COUNT | ||
1091 | C7173 | 105725 | ADB | TEHP3,I | |||
1092 | «7174 | 074212 | SBH | OVFLW | |||
1093 | 67175 | 035573 | STi) | COUNT | |||
1094 | β7176 | 000403 | COLN | ADA | Pl | ||
1095 | C7177 | 067173 | JMp | SUBTl | |||
1096 | 67200 | 071310 | LOIGT | SZA | COA *1 | ||
1097 | G72P1 | 040355 | IOR | 060 | |||
1090 | 67202 | C45571 | ISZ | LINCT | |||
1099 | 07203 | 170402 | .LOC. | RET | |||
1130 | 67204 | Q28470 | LDA | COLLN | |||
1101 | €7205 | C67201 | JHP | OVFLW+1 | |||
1102 | 07206 | 021573 | LDA | COUNT | |||
1103 | 87207 | C67201 | JHp | OVFLW+1 | |||
1104 | |||||||
1105· | Ö72ie | 025566 | Κ2 | LDB | CP | ||
1106 | G7211 | C35574 | STB | CPE | |||
1107 | 47212 | £•21571 | LDA | LINCT | |||
1108 | 37213 | 070076 | TCA | ||||
1109 | 67214 | C30364 | ADA | P16 | |||
1110 | 87215 | 031573 | STA | COUNT· | |||
Uli | Ρ7216 | 063355 | JSh | OHECP | |||
1112 | 07217 | 063257 | JSh | .FDCH | |||
1113 | Ö7220 | 010465 | CPA | ENLNE | |||
1114 | Β7221 | 067216 | JHP | K2 | |||
11)5 | 67222 | CU 0466 | Κ3 | CPA | BGLNE | ||
1116 | 87223 | C67230 | JHP | STOl | |||
1117 | 67224 | 075513 | SBp | K2 | |||
1118 | 67225 | 014407 | CPB | H3 | |||
1119 | «7226 | 067230 | JHP | STOl | |||
1120 | |||||||
1121· | »7227 | 063367 | JSm | INCP | |||
1122 | |||||||
CONVERT SET UP ROUTINE.»IN A-REG ADDRESS OF POWERS OF 1 :* CONSTANTS
STORE IN POIfJ1ER TO THIS TARLE
Λ-ηεο HERO. USED TO SUPPRESS LEADING ZEROS GOTO GET FIRST CHARACTER
Λ-ηεο HERO. USED TO SUPPRESS LEADING ZEROS GOTO GET FIRST CHARACTER
AFTER FINOlNG FIRST NONZERO CHARACTER CONT. ENTRY PT
INCREMENT POWERS OF TEN TABLE POINTER
ARE WE COMPUTING LAST DIGIT?
YES LAST DIGIT
NO.GET REMAINDER OF BINARY #
SUBTRACT OUT NUMBER OF CURRENT TENS POSITION DIGIT IF MINUS OVERFLOW.TERMINATE DIVIDE NO OVERFLOW SAVE DIGIT
SUBTRACT OUT NUMBER OF CURRENT TENS POSITION DIGIT IF MINUS OVERFLOW.TERMINATE DIVIDE NO OVERFLOW SAVE DIGIT
OVERFLOW OCCURRED.IF ZERO NO NONZERO DIGIT FOUND MAKE DIGIT ASCII
INCREMENT CHARACTER COUNTER
RETURN WITH ASCII DIGIT
SET CHARACTER TO BE COLON
LAST DIGIT» THUS COUNT CONTRAlNS OCD DIGIT
MAKE IT ASCII
ROUTINE USED TO DETERMINE CHARACTERS FOR DISPLAY.
SAVE CURRENT INPUT STRING POSITIOfJ(IS NEXT AVIALU)
DETERMINE " OF POSITION LINE # WILL TAKE UP
16-LINCT
IS THE ti OF POSITIONS LEFT FOR CHARACTERS IN DISPL
STORE RESULT IN COUNT
MOVF. CP RACK TO GET KEYCOt)E FROM INPUT AREA CALL ROUTINE THAT RETPNS WITH STATUS OF DISPLAY BUFR
A-REG HAS CURRENT KEYCoDF R-REG STATUS OF BUFR.
EOL CONTINUE SCAN INPUT STRING BACKWARD BOL CHARACTER?
YES START OF INPUTSTRING FOR TRANSLATION HAS BEEN FOUNO.
IF B=-3 PRESENT KEYCODE VHLL FILL BUFFER
POINTER OF TRANSLATION PROCESS
B-REG=-!. THUS LAST CHARACTER WILL OVERFLOW RUFFER
309832/0843
1124» | 67230 | 063634 | STOl JSm | * | .S4 |
1125 | G7P31 | 063376 | JSM | TRANS JSm | .0OTEvI |
1126 | G7232 | 063234 | JSM | JSM | TRANS |
1127 | 07233 | 067230 | JMP | LDA | STOl |
1128 | S2A | ||||
1129· | C7234 | 063242 | JSM | .SRB. | |
1130 | C7235 | 160252 | JMP | .BF3D,I | |
1131 | (57236 | Ö21722 | M | ||
1132 | 67237 | 070610 | .SRB. LOB | .5RS3+2 | |
1133 | 07240 | 161620 | STa | NCODE,I | |
1134 | 07241 | 067235 | cpa | ||
1135 | »«·«««< | HHHHHHM | JMp | ||
1136·' | G7242 | 025575 | CPA | OOTE | |
1137 | G7243 | 031720 | JMP | K | |
1138 | C7244 | Ö10465 | SZB | ENLNE | |
1139 | 07245 | 067251 | .SRB3 SBR | .SRB3 | |
1140 | G7246 | 010466 | stb | BGLNE | |
1141 | G7247 | C-67251 | RET | .SRB3 | |
1142 | «7250 | 074210 | JSM | » + 4 | |
1143 | 07251 | Ö74742 | SAP | 16 | |
1144 | G7252 | G35722 | JMp | M | |
1145 | C7253 | 170402 | |||
1146 | G7254 | 160253 | .BF5A,I | ||
1147 | 07255 | 071713 | ö-2 | ||
1148 | 67256 | 074737 | B» I | ||
1149 | |||||
SET INPUT STRING INTO DISPLAY BUFFER
SETUP QUOTE FIELD TRANSLATE CODE RECYCLE.
CALL ROUTINE WHICH RETURNS WITH FIRST CHARACTEK.STORE Π IN OISPLAY BUFFER
IF M//R MOpE CHARACTERS IN MNEMONIC
LINK WORD FOR GETTING NEXT CHARACTERS RECYCLE
LOAD CONDITION OF OOTE STORE KEYCODE IN K
IS CODE EOL?
YES TRANSLATION NECESSARY IS CODE BOL?
YES TRANSLATION NECESSARY IF B-REG=O NO QUOTE FIELD THUS TRANSLATE
ELSE NO TRANSLATION SET M FOR ONE CHARACTER
CALL ROUTINE To GET FIRST CHARACTER IF B1T15 SET ON A-REG THEN GENERAL MNEMONIC ROUTIN
OY OPTION BLOCK.LINK FOR FIRST CHARACTER B-REG.
309832/0843
1151· | 67?57 | «63457 | .FOCH | JSh | FETCH |
1152 | 87260 | P31544 | STA | SKEY | |
1153 | «7261 | 06T355 | JSm | DHECP | |
1154 | «7262 | !17(1650 | SZa | *»13 | |
1155 | P7?63 | 010465 | cpa | ENLNE | |
1156 | (57P64 | £67271 | JMP | .Fl | |
1157 | 0726S | 010466 | CPA | BGLNE | |
1158 | C7266 | 067271 | JHP | .Fl | |
1159 | 07267 | 063375 | JSm | .00TE | |
1160 | C7270 | 074150 | szb | «♦3 | |
1161 | G7271 | 070742 | .Fl | SAR | 16 |
1162 | G7272 | Ö67274 | JMp | •♦2 | |
1163 | |||||
1164· | 07273 | 160306 | JSm | .BF5G.I | |
1165 | 07274 | 070073 | SAp | •♦1»C | |
1166 | 67275 | 003403 | ADA | Pl | |
1167 | 67276 | G70076 | TCA | ||
116Θ | 87277 | 0^1573 | AOa | COUNT | |
1169 | β730<3 | 373412 | SAM | .F2 | |
1170 | 67301 | t)7C250 | SZA | .F3 | |
1171 | 0730? | 074742 | SBR | 16 | |
1172 | 67303 | 031573 | sta | COUNT | |
1173 | C73CJ4 | 021544 | .F4 | LDA | 5KEY |
1174 | 07305 | 170402 | RET | ||
1175 | |||||
1176· | 67306 | 024407 | .F3 | LDB | M3 |
1177 | 07337 | C67303 | JMp | .F4-1 | |
1178 | |||||
1179· | 07310 | 024405 | .F2 | LDB | Ml |
1180 | 07311 | 067304 | JMP | .F4 | |
1181 | |||||
ROUTINE FOR DETERMINE THE «OF KEYCOOES THAT WILL FIT
IN DISPlAY.
FETCH ADVANCE CP. THUS MOVE IT BACK IF KFYCODE IS ZFRO.FIX TO INDICATE NO CHANGE
IF EOL OR BOL
B=fl NO OUOTC FIELD.FIND OUT ABOUT MULTICHARACTER.
SPECIAL HANDLING OF EOL AND BOL
THIS CODE.REMOVE GIT15 IF SET. · A-REG HAS * OF CHARACTER-1
SOME POSITION LEFT THUS I3-REG=0 ON RETURN
UPDATE COUNT
MORE ROOM IN DISPLAY BUFFER
LAST CHARACTER OVERFLOWED DISPLAY BUFFER
309832/0843
1183»
1184· ThF FOLLOWING ROUTINES ARE SYSTEM ROUTINES
1185» FOR THE CONTKOL SUPERVISOR.
1136»
1188· 1199*
1190 07312 024405 .CSIN LDB Hl
1191 | €7313 | 135543 | STB | LIMItI |
1192 | 67314 | 035431 | ST0 | 143 IB |
1193 | 67315 | 021543 | LDA | LIMl |
1194 | 67316 | 031715 | STA | DFUN |
1195 | G7317 | 070070 | SlA | «ti |
1196 | C7320 | 031542 | STA | ENDS |
1197 | ί!7321 | CJ45542 | ISZ | ENDS |
1198 | 67322 | 135542 | STb, | ENDS»I |
1199 | «37323 | 024521 | LDB | STEN |
1200 | •37324 | 070577 | STB | A,I |
1201 | £7325 | 031600 | STA | PMA |
1202 | 07326 | 021377 | LDA | MAW |
1203 | 07327 | 031712 | STA | RR |
1204 | €7330 | t-)??166 | LDA | .KBR3 |
1205 | 07331 | 031711 | STA | ILINK |
1206 | Β7332 | 02Θ532 | LDA | XB |
1207 | Ö7333 | Π31565 | STA | BP |
1208 | Ö7334 | 023354 | LDA | UNCl |
12P9 | 07335 | 031552 | STA | UNCOT |
1210 | G7336 | 070742 | SAR | 16- |
1211 | G7337 | 031625 | STA | 1625B |
1212 | 07340 | 161710 | JSM | .END2» |
1213 | 67341 | 061253 | JSH | NSTP |
1214 | G7342 | C63055 | JSH | NWl |
1215 . | e7343 | 062433 | JSM | RCLL · |
1216 | 67344 | 063496 | JSh | DRCMA |
1217 | 67345 | Ö66223 | JMP | .CS+1 |
1218* | ||||
1219 | Ö7346 | 061250 END | JSM | STP |
1220 | 67347 | C63712' | JSM | RGTO |
1221 | 07350 | «31546 | STa | CMA |
1222 | Β7351 | 031604 | sta | NMA |
1223 | 07352 | 074742 | SBR | 16 |
1224 | 87353 | 035430 | STB | FLG |
1225 | G73S4 | 170402 | RET |
CSIN CONTINUATION
OF THE INITIALIZATION ROUTINE ON PWR UP.-l FOR SET BOUNDARY FOR COMPILER OUTPUT AREA
MAIN-PfiOßRAM BOUNDARY MARKER.
INITIALIZE DEFINABLE FUNCTION AREA TO BE MAIN-PRG. A-REG POINTS TO FIRST WORD OF USER-PROGRAM AREA
SETUP END$
FIRST WORD IN PROG AR^A .SET TO ENO EOL THUS *1 ENDS
SET -1 FOR END-OF-PROGRAM MARKF.R
STORE "ENO EOL" FIRST PROGRAM LINE· SET PMA (INTERPRETER POINTER TO MAIN-PROG.)LINE
SET BEGINNING R-REG POINTER'TO HIGHEST ADDRESS
SET INTERRUPT LINKAGE TO NORMAL KEYBOARD RETURN
SET INPUT STRING AREA TO BEGINNING WORD SET UNCOMPILER OUTPUT TO INPUT STRING AREA
CLEAR SECURE PROGRAM PROTECT FLAG EXECUTE "FND"
CLEAR STOP FLAG
NEEDED TO SETUP CP
PECALL LIfJE 0 OF PROGRAM AREA
NEEDED TO SETUP CP
PECALL LIfJE 0 OF PROGRAM AREA
PUT PROGRAM LINE BACK TO FIRST LINE JMP CONTROL SUPERVISOR
ROUTINE IS ONE OF THE PIECES IN THE TOTAL END LINK
CLEAR ALL "FLAGS"
309832/0843
Ϊ227·
1229·
1230 «7355 »255*6 ORECP LDB CP
1231 C73S6 074672 St)M iNCPltC
1232 «7357 (134403 ■ ADB Pl
1233 07360 076553 SUP lNCPltS 123'»·
C7361 974742 S8R
fl7362 3M352 JSh RBAD
«7363 025577 CKERR LDß ERST
07364 074413 SUP INCP1«1
87365 055777 RET2 OSZ RSTAK
07366 170402 KET
1237 1236 1239 1240 1241 1242 1243· 1244ν·*······«···β«·»»αβαβα···β»
1245* Ö7367 0255*i6 INCP LDR CP
07370 ί'7Μ53 SBP **3»S
07371 074073 SBp «*1,C
07372 OB4405 ADB Ml
1246 1247 1240 1249 1250
1251 1252
07.171 035566 INCPl STß CP 07374 170402
RET
1254· 1255 1256 1257 1258 1259 1260
1262 1263 1264·
1266·
1268 1269 1270
1272 1273
1275
07375 021544 .QOTE LDA SKEY
07376 025575 LDB QOTE P7377 01(1546 CPA QUOTE »7400 Ü674f!2 JMP
07401 170402 RET B7402 076111 SLB E74fi3 074071 SLB
(57404 015575 SlB QOTE «7405 170402 RET
«7406 055546 DRCMA DSZ CMA
«7407 021542 LDA ENDS
«7410 Ol1546 CPA CMA
07411 173402 RET
07412 121546 LDA CMAiI
C7413 071553 SAP «-5 07414 010405 CPA Ml
P7415 045546 ISz CMA 97416 170402 RET
UTILITY ROUTINE FOR DRECEMENT CP
RESET ERROR NUMBER IN .WMOD IF ERROR B-REG=-HIF ♦ RETURN
UTILITY ROUTINE FOR INCREMENT CP
routine: sets flag for presents tor quote fieio
present keycode in a-reg.flag (qote) in b-reg
COMPLEMENTS LSB OF D-REG IF A-REG HAS QUOTE KEYCODE
UTILITY ROUTINE USED
IF CMA IS POINTING AT PROGRAM ENO RETURN
TO POINT PROGRAM-LINE-POINTER(CMa)TO PRECEEOING
LINE
IF BOUN1OARY MARKER FOUND CORRECT CMA
309832/0843
1277» | 07417 | G35544 | INSTK | STb | SKEY |
87420 | C21566 | LDA | CP | ||
07421 | 031574 | • | STa | CPE | |
C7422 | 063457 | JSM | FETCH | ||
07423 | 073750 | RZA | fl-l | ||
07424 | 063355 | JSM | DRECP | ||
1278··· ··«·*·*··» ··»«**«·«*·♦«*«»# | 07425 | C63355 | JSM | DRECP | |
1279· | 07426 | 063457 | JSM | FETCH | |
1280 | Θ7427 | 070137 | LDB | A | |
1281 | 07430 | 063436 | JSM | MSTOR | |
1282 | «7431 | 063355 | JSM | DRECP | |
1283 | 07432 | C15574 | CPB | CPE | |
1284 | 07433 | £67435 | JHP | **2 | |
•1285 | 07434 | 067424 | JMP | ft—A | |
1286 | 07435 | 025544 | LDB | SKEY | |
1287 | tu ##·&<} ^ | HHHHHHM | |||
1288 | |||||
Ϊ289 | 87436 | 021566 | MSTOR | LOA | CP |
1290 | 87437 | 070133 | SAP | •♦2,C | |
1291 | 87440 | 076052 | SBM | **1 tS | |
1292 | 87441 | 031717 | STA | TEMPI | |
1293 | 97442 | 121717 | LDA | TEMPItI | |
1294 | 07443 | 074173 | S8P | ■"•«•3»C | |
1295» | 57444 | 050472 | AND | MLMl | |
I c ύ o w 1297« |
07445 | 067450 | JMp | »♦3 | |
1298 | 07446 | 050345 | AND | MASK9 | |
1299 | C7447 | 074444 | SBL | 7 | |
13<*6 | S7450 | 074217 | IOR | B · | |
13»1 | C7451 | 131717 | STA | TEMPItI | |
1302 | 07452 | 067367 | JMP | INCP | |
1303 | |||||
1304 | C7453 | 025573 | FECH | LDB ( | :pi |
1305 | G 74 54 | C63462 | JSM | SUQ2 | |
1306 | 67455 | Ö35573 | STB | CPl | |
1307 | 07456 | 170432 | RET | ||
1308 | 67457 | 025566 | FETCH | LDB | CP |
1309 | 07460 | 061462 | JSM | SUB2 | |
1310 | 87461 | 067373 | JMP. | INCPl | |
1311· | |||||
1312 | (37462 | 874232 | SUB2 | SBM | FECHItC |
1313 | 07463 | 074517 | LDA | BtI | |
1314 | Q7464 | 070302 | SAR | 7 | |
1315 | 07465 | 076213 | SBP | EXXtS | |
1316 | C7466 | G74517 | FECHl | LDA | BtI |
1317 | B7467 | 050345 | AND | MASK9 | |
1318 | B7470 | 004405 | ADB | Ml | |
1319· | 07471 | 170402 | EXX | RET | |
1320 | |||||
1321 | |||||
1322 | |||||
1323 | |||||
1324 | |||||
1325 | |||||
1326 | |||||
1327 | |||||
UTILITY ROUTINE FOR INSERTING'CHARACTERS INTO INPUT STRING
save present address for new keycode move cp to end of input string
move cp back to last character
GET CHARACTER '
STORE IT ONE POSITION FORWARD PARTIAL ADJUSTMENT ON CP
IS ROOM MAKING COMPLETE? YES, STORE NEW CHARACTER
UTILITY ROUTINE USED TO REPLACE-STORE KEYCODES IN THE INPUT BUFFER APEA.GET POINTER IN A-REG. BIT15
USED TO INDICATE WHICH HALF WORD =0 LEFT HALF
ADDRESS OF WORD IN TEMPI GET WORD
b-reg has keycode.bit 15 is now flag for which half
right-half storeage.clear the location
left-half storeage.clear the location left adjust
or into word
store word in input ruffer area increment cp to next avialable location
utility routine use to fetch from input area with pointep cpl.determine which half to fetch.
cpl has been increment to next character.(same
scheme of addressing as arove) utility routine use to fetchfrom input area with
pointer cp.
adjust cp to point to next character
adjust cp to point to next character
if bit15 set fetch right-half left-half fetch.get word
right justify
adjust pointer in b-reg right-half fetch.get word-REMOVE LFrT-HALF ■ ADJUST POINTER IN B-REG
adjust pointer in b-reg right-half fetch.get word-REMOVE LFrT-HALF ■ ADJUST POINTER IN B-REG
•309 832/08 A 3
1330···········*·«······«**· | fl7472 | 021546 | DELT LDA | ο·»·«·· |
1331· | β7473 | »3)717 | . STa | |
1332· | 07474 | 011542 | CPa | |
1333 | C747S | 067513 | JMP | CMA |
1334 | 07476 | 070537 | LDB | TEMPI |
1335 | «7477 | 014405 | CPB | ENDS |
1336 | 07500 | 17R402 | RET | .AB |
1337 | 07501 | 070073 | SIA | A.I |
1338 | 0750? | 070517 | LDB | Ml |
1339 | (57503 | 075713 | SBP | |
1340 | •♦I | |||
1341 | 07504 | 135717 | .A4 STB | A,I |
1342 | 075e5 | 011542 | CPA | •-2 |
1343· | B7506 | 067513 | JMP | |
1344 | (57597 | 045717 | ISZ | TEMPI,I |
1345 | «7510 | 070070 | SlA | ENDS |
1346 | 07511 | 07R537 | LDB | .Λ8 |
1347 | 07512 | 067504 | JMp | TEMPI |
1348 | 07513 | 021717 | .A8 LDA | •♦1 |
1349 | 075)4 | 031542 | STA | A,I |
1350 | 07515 | 066236 | JMp | .A4 |
1351 | TEMPI | |||
1352 | ■ Im ^* ^ »■ Wl Wt ^ " ^* | ENDS | ||
1353 | 07516 | 0217C5 | CKSTP LDA | .18 |
1354· | P7517 | 070273 | SAP | |
1 -* -> j 1356· |
C7520 | »31705 | STA | |
1357 | 07521 | 021701 | LDA | .WMOD |
1358 | 07522 | 160323 | JSM | •♦5tC |
1359 | 07523 | 021705 | LDA | .WMOO |
1360 | «7524 | 870144 | SAL | .WKC |
1361 | 07525 | 170402 | • RET | .SMON,I |
1362 | .WMOD | |||
1363 | 13 | |||
1364 | ||||
UTILITY POUTINE USED TO OFLETE A PROGRAM LINE
POINTED TO BY CMA. SAVE CURRENT CMA ARE WE TPYIUG TO DELFTF ROUMDARY MARKER
YES,DON'T LOOK FOR END OF CURRENT PROGRAM LINE GET AWORD IN PROGRAM LINE
IS IT -I?(COULD HAPPEN IN DEFINE-A-KEY) YES
IS IT -I?(COULD HAPPEN IN DEFINE-A-KEY) YES
MOVE POINTER
GET WORD
IF BIT15=1 FOUND BEGINNING OF NEXT LINE ELSE RECYCLE
GET WORD
IF BIT15=1 FOUND BEGINNING OF NEXT LINE ELSE RECYCLE
MOVE WORO BACK (ALL OF THE PROGRAM IS MOVED BACK) OVER THE LINE TO BE DELETED. HAS AREG REACHED ENDS
YES TRANSFER COMPLFTE.
INCRFMFNT STOREAGE POINTER
INCREMENT FETCH POINTER
GET NEXT WORD
RECYCLE
TEMPI NOW HAS NEW LOCATION OF BOUNDARY MARKEO ADJUST ENDS
ADJUST LIMl.NECESSARY IF WORKING IN OEFIN.FUNCTION
UTILITY POUTINF USE TO CHECK FOR STOP ENTRY.THE ROUTINE WILL ALLOW THE INTERRUPT CLASS OF KEYCODES
THERE HAS BEEN A NEW KEY ENTRY. GET KEYCOOE ALLOW SYSTEM TO TRY AN EXECUTE IT.
«MOVE STOP SIT TO SIGN POSITION
309832/0843
1366·
1367·
1367·
1369·
1370*
1370*
07526 0217f!5 TRAC LDA 07527 O7S211
07530 063055
07531 S62620
97532 06?253 G7533 624535 07534 035570
87535 024414
67536 035605 07537 065250
1372
1373
1374
1375
1376
1377
1378
1379
13B0
1381»
1382
INT
WMOD SLA INT JSM NWl JSM L5*2 " JSM TSH6
Lon tops
STB ISP LDB AISP STo IMA JMP STP
JSm DSNO
07540 063135 1383·
13Θ4 07541 021546 UNCPl LDA CMA
97542 031663
07543 Ö31662
1387 | 07544 | G7O070 |
1388 | 07545 | 070537 |
1389 | C7546 | C75653 |
1390 | 07547 | 031546 |
1391 | 57550 | 025663 |
1392 | 07551 | t<63716 |
1393 | 07552 | 163311 |
1394 | S 7553 | C21573 |
1395 | 87554 | 031566 |
1396- | C7555 | 164303 |
226272
CHECK FOR TRACE MODE
TRACE MODE
PRINT INPUT
PRINT INPUT
6ET ADDRESS OF FIRST WORD TN COMPILER OUTPUT AREA STORE IN POINTER FOR INTERP. WHEN WORKING WITH
COMPILER OUTPUT AREA. PUT ADDRESS OF POINTER B-REG
STA 1663B STA 1662B SIA LDB SBp *-3
STA CMA LDB 1663B JSm RG0
JSM UNCPLtI LDA CPl STA CP JMP OUT,!
SAVE STARTING ADDRESS OF CURRENT LINE SET UP FOR UNCOHPILER
GET WORD FROM LINE
FOUND NEXT LINE;PLACE ADDRESS OF CURRENT LINE IN 8
RESET GTfli AND GSB'S ADDRESSES
1398»
1399·
1400·········#•»•ο»···«·»«··*««»·· 1401·
1400·········#•»•ο»···«·»«··*««»·· 1401·
1402 67556 021563 LDA TSW
1403 07557 025577 EXEQT LOB ERST
1404 07560 974452 SUM EX3*3
1405 07561 070412 SAM EX3O
1406 07562 063355 JSM DRECP 1437 87563 063457 JSm FETCH
14fl8 C7564 010475 CPA ENSTM 1409 07565 067601 JMP EX4
J410 «7566 020437 EX3 LOA EXEC
1411 β7567 ß63017 JSm SKCD
1412 «7570 563109 JSm POl
1413 fl7571 074352 SßM EX1*2
1414 B7572 025575 LDfJ QOTE
1415 07573 074111 SLn **2
1416 «7574 C65317 JMP 1317B
1417 07575 021563 LDA TSW
1418 «7576 072052 EXl SAM »«1»S
1419 07577 031563 STa TSW 142B 87600 170402 RET
jsm dpecp
JSh SCANl JMP EX3
1422 07601 063355 EX4
1423 (17602 C63604
1424 87603 067566
A-REG HAS TSWtIF SIGN BIT SET EOL ALREADY PRESENT
SO RETURN
LOOK AT LAST CHARACTER IN INPUT STRING
IS IT "1"?
YES,GO RECOMPILE LINE NO,LOAD COMPILER EOL CODE
SET UP SKEYt COI)Ei CN
SEND TO COMPILER
IF -1 COMPILER DIDN'T EXECEPT EOL CHECK QUOTE FIELD FLAG
DO "«S BALANCE?
EROOR «1 SYNTAX ERROR.
EROOR «1 SYNTAX ERROR.
SET EOL FLAG IN TSW
X FOUND AT END OF INPUT STRING RECOMPILE LINE
PLACE EOL IN LINE
PLACE EOL IN LINE
309832/08^3
ORIGINAL INSPECTED
1426»
1428· 1429 1430
1432 1433 1434 1435 1436· 1437 1438 1439 1440 1441 1442 1443 1444 1445
1446 1447 1448 1449 1450· 1451 1452 1453 1454 ' 1455 1456 1457 1458
1459 1460 1461 1462 1463 1464» 1465 1466 1467 1468 1469 1470 1471 1472
1473 1474· 1475 1476 1477 1478 1479 1400 1481
07604 062514 SCANl
07605 Cf20354 β7606 031621 €7607 C321565
B7610 025566 87611 031566 SCAN3
07612 035574
07613 67614 07615 67616
67617 07620 C7621 C7622 97623
67624 C7625 07626 07627
07638 C7631 07632 «37633 57634 67635
07636 G7637 07640 G7641 G7642 97643 07644
063634 .Sl
063017
021544
010466
C67613
C563355
074742
O7B250
016465
067557
162202
075253
17G402 .S2
SBR SZA
.S3
.S4
063457
P63376
010465
063572
C25S66
015574
Ϊ567642
C21705
071412
067457
G55777
061253 RET3
1643553
LDA SAM
ß7645 067365 07646 160315 RKBUF 67647 063556 97650 C75652
07651 663526 fl7652 160524 07653 074752
Ö7654 063523 07655 071312
07656 020420 RPBUF LOA P4 67657 C31563
07660 C63407 e7661 C61516 Ö7662 071552
«7663 070704 07664 070213
JSM SCMP LDA UNCl STA KSTOR LOA BP LDB CP
STA CP STB CPE
JSM .S4 JSM SKCD LOA SKEY CPA BGLNE JMP .Sl JSM DRECP
16
.S2 CPA ENLNE JMP EXEOT JSM .PRGtT SBP .Sl
RET
JSM FETCH
jsm .οοτε+i
CPA ENLNE JSM EX3*4 LDB CP CPß CPE JMP »«-4
.WMOD .S4-4 JMP FETCH DSZ RSTAK JSm NSTP JMP OUT,I
JMP RET2
JSM INTRP,I
JSH EXEQT-I
SBM *-3
JSM TRAC
JSM XRI,I
SBM RUN3
JSM CKSTP+5
SAM RET3
RESET COMPILATION « SET STORE TO REPLACE MODE
GET BEGINNING POINTER GET CURRFNT POINTER MOVE CP BACK TO FIRST CHARACTER
SAVE VALUE OF CP UPON ENTRY TO ROUTINE
CHECK FOR END STRING OR FETCH KEYCODE
IS CHARACTER BEGINNING LINE CHARACTER»BOL
YES RECYCLE RESET POINTER TO INPUT AREA
IF CHARACTER ZERO INPUT STRING COMPLETELY SCANNED CHARACTER EOL JUMP TO EOL ROUTINE
PROCESS KEYCOOE(FORCE KEY TO BE PROGRAMMABLE)
DID SYSTEM "EXCEPT IT? IF ♦ YES NO
IS SCANNING COMPLETE? YES
IF NEW KEY RECYCLE UNTILL CP=CPE NO NEW KEY
USED BY RKBUF AND RPBUF
SETUP RUN TIME STACK EOL THROUGH SYNTAX IF ERROR CANCELL RETURN PRINT LINF. IF TRACE;SETUP
<IMA)->ISP CALL INTERPRETER
STOP FLAG
STA TSW
jsm drcma*1 JSm ckstp
SAM RPBUF-I SAL SAP «♦/»
MOVE CHA RFGINNING LINE ALLOWS INTERRUPT KEYSiSETS UP
IF - STOP FLAG TRACE BIT IN BlTlS
.WMOD
3.0 9 8 32/08 A3
1482 | ί>766<; | 063135 | JSh | DSNO | TPACE MODFlCET LINE * |
1483 | «7666 | Ρ63116 | " JSm | .5TLN | |
1484 | «7667 | 160250 | JSm | .PRTl,! | |
1485 | 0 767β | 16β5?4 RUNl | JSm | XfU. I | CALL INTERPRETER |
I486 | 07671 | C67675 | JMP | ·♦/♦ | |
14 87 | β767? | 021563 RUH3- | LDA | TSW | |
1488 | 07673 | 000410 | ΛΟΛ | Μ4 | |
1489 | 67674 | P72S10 | KZA | RUf J 4 | |
1490 | 07675 | 121605 | LOA | IHA,I ' | |
1491 | «7676 | 070073 | SAP | °*1»C , | |
1492 | (17677 | 03154 6 | STA | CMA | |
1493 | Θ770Ο | 075Β13 | SBP | RPRUF+p | IF ♦ NO ERROR |
1494 | β 7 7 01 | 063496 | JSM | DRCHA | ERROR |
1495 | 07702 | 160417 | jsm | RNTER»I | |
1496 | «7703 | 063045 | JSM | NW0 | |
1497 | 97704 | 063556 | JSm | EXCOT-I | |
1498 | W7705 | 067707 | JMP | •♦2 | |
1499 | C7706 | 062230 HUN4 | jsm | CR0 | BUILD DISPLAY |
1500 | 07707 | Ü61253 | jsm | NSTP | |
1501 | 0771(3 | Ü66650 | JMP | .Λ7*1 |
309832/0843
1503· 1504 1505» 1536 1507 1508 1509 1510
1511* 1512 1513
07711 800145 RESET OCt 226272E
1515 1516 1517 1510 1519« 1520
1522 1523· 1524 1525 1526 1527 1528 1529
1530 1531 1532 1533 1534 1535 1536 1537· 1538 1539 1540 1541 1542 1543-
07712 870742 RGTO
07713 031567
07714 025715 B7715 621542
67716 031722 RGB
07717 015722 RGl
07720 Ö66236
07721 074517
07722 050472
07723 070302 G7724 976052
07725 067731
07726 074517 RG2
07727 050345 07730 574070
07731 07732 Ö7733 «7734 07735
07736 07737 07740 07741 07742
Ö7743 «7744 07745
Ö7746 07747 37750 07751
S7752 07753
035723 "RG3
063376
076410
R10350
067746
010526
C'67746
Ö25616
374119'
G747-17
025723
075132
067717
G25723 RG4
Ο7Θ742
074133
S74Ö70
374557
377530 RGG
SAR STa MPH LDB DFUN
LDA ENOS STA TEMP2
TEMP2 JMP LDA B»I AND MLHl
SAR SBM °+l»S JMP RG3
LOA B,I AND MASK9
STB TEMP7 JSM «QOTE+1
RZb »+8 CPA GTO JMP RG4 CPA GSB JMP RG4 LDB ERASE SZB 0+2
JSM BtI LDB TF.MP7
SBM RG2,C JMP RGl
LDB TEMP7 SAR SBP «*2»C SIB
STA B,I RIB RG4-1 SET FOR FAST GTO»S
ENDING "
LOOK THROUGH COMPLETE PROGRAM FOR GfO*S AND GSb»S
SET LIMl .
LEFT HALF REMOVE BIT 14 AND 15. RIGHT JUSTIFY KEYCODE
UPDATE WORD POINTER jump το check code for gto or gsb
RIGHT HALF GET RIGHT-HALF CODE UP-DATE WORD POINTER
SAVE CHARACTER POINTER CHECK FOR QUOTE FIELD B=I FOR PRESENTS OF QUOTE FIELD
IS CODE GOTO?
YES
IS CODE GOSUB?
IS CODE GOSUB?
YES
CHECK TO SFE OPTION WANTS CONTROL IF ZERO CONTROL STAYS WITH THIS ROUTINE
ELSE B HAS ADDRESS OF EXPANSION ROUTINE " RETURN CHARACTER POINTER TO FJ-REG.
PRESENT CODE LEFT-HALF GO FETCH RIGHT HALF ELSE GFT LEFT HALF
RETURN CHARACTER POINTER TO B-REG.
ADJUST POINTER FOR ZEROING WORD FOLLOWING GTO OR GSB.
CLEAR WORD
NEXT CODE IS IN LEFT-HALF
NEXT CODE IS IN LEFT-HALF
309832/0843 '
OR/GiNAL INSPECTED
1545·
1546< 15'« 7 1548· 1549·
1550· 1551· 1552* 1553· 155'*· 1555· 1556· 1557· 1558
1559 }560 1561 1562 1563· 1564 1565 1566 1567 1568 1569· 1570 1571· 1572 1573 157/*
1575 1576 1577 1578 1579 15βΟ 15ί»1 1582
1503 15R4 15Η5 1506
1507 1518 1509 1590 1591· 1592 1593
»3275
32758
in the 9α20λ one level of interrupt is
proviofo. for the π λ ϊ. ι c systfm this level
is occuppieo by the keyboard. however
by providing a r/w switch wodd.that
nopmal links to the keyboaro routinei
option blocks can exleno the interrupt
handling capability of the 9p?0A to 12 devices
(Un t0rb re c he r-P rogrnmm)
83275 172700 INTER SFc «3276 067302
33277 031760 C3300 020204
033Pl 165711
JMp SPINT STA SAVEA
LUA KYOD JMp RINK,!
031562 SPINT STa SAVAS
Ö3303 020537 LDa STOP
03304 167305 JMp »*1»I
C3395 007761 DEF .KBRI
00204 ΚΥΒΟ EQU 204B
07754
07754 «7755 07756 017757 07763 67761 fl7762
G7763 07764 07765 07766 07767 67770 S7771
«7772 07773 «7774 ß7775 67776
172160 172741 172240 37B342 050345
031701 013711 064000 O7B210 021705
072352 031705 C21562
17376(1 172700 170402 021760
173741
170402
07777 07777 B00000
STF LlA
SAR
.KBR
.KRRl STA CPA JMp
LDA SAM SlA LDA CLF
SFC RET LDA CLF RET
RG6*1
16
MASK9
.WKC
RESET
0B
«♦4
.WMOD
«♦l.S
.WMOO
SAVAS
16
I)
SAVEA 1
1595 • NO ERRORS·
ORG 7777H BSS
END IF STOP KEY PROCESS YES.STOP KEY
SAVE A-REG
ADDRESS OF KEYBOARD(12) NO.ALLOW FOR EXPANSION OF INTERRUPT
STOP INTERPUPT;SAVE A-REG LOAD STOP CODE
GO SET NEW KEY FLAG
(Fort·;. )
SYSTEM MONITOR ROUTINE (CONT.) ENABLE KEYBOARD TO PLACE COOE ON INPUT LINEStRESET
load keYCoDE into i/o reg
TRANSFER J/O-REG TO A-REG POSITION DATA TO LSB GET SEVEN BIT CODE
SAVE CODE
IS ENTRY RFSET KEY?
YESfINITIALIZE MACHINE IF KEYCODF IS NULL IGNORE
SET NEW KEY FLAG
RESTORE A-REG IF STOP INTERRUPT RESET STOP INTCRRUPT
IF STOP DON'l TURN-ON INTERRUPT
RESTORE A-REG
TURN-ON INTERRUPT
TURN-ON INTERRUPT
CHECKSUM WORD
309832/0843 ORI0NAL INSPECTED
zm-
0001 | 00311 | ASMB.A.L | 311B |
000? | 60311 | ORG | UNCPL |
0003 | 016045 DEF | ||
6004· | |||
0005· | 16045 | 16045 | |
0006 | • ORG | ||
Ö010» B-PEG HAS THE ADDRESS OF THE LINE
UNCOMPIIER ROUTINE (Decorapiler-Pro^ramm)
C013» | 16045 | Θ21545 | UNCPL LDA | PSP |
C014 | 16046 | 031573 | STA | CPl |
6015 | 16047 | 072052 | SAM | «♦1,S |
ί!016 | 16050 | Ö31660 | STA | ADD |
8017 | 16051 | 055663 | DSZ | BGSTR |
6018 | ||||
6019» | 1605? | 021625 | LDA | 1625B |
G020 | 16Ρ53 | 079610 | SZa | LOOP |
6021 | 16054 | 164430 | JMP | 430B,I |
«022 | ||||
ENTRY POINT FOR UNCOMPILER.R-REG POINTER TO LINE TO BE UNComPILED.SET UP POINTER FOR OUTPUT OF UNCMPLR
SET BIT15 FOR RIGHT-HALF POSITION STORE POINTER,USED TO LOCATE OUTPUT CHARACTER.
BGSTR USED AS FINISH MARKER FOR UNCOMPILER
SECURITY CHECK
IF NONZERO SECURE PROGRAM IN MEMORY CLEAR USER PROGRAM.'
3 0 9 8 3 2/0843
ORIGINAL INSPECTED
RPOL HAS AN ADDRESS WHICH POINTS TO THE NEXT AVAILABLE WORO
IN THE REVERSE POLISH STRING.
ADD
HAS THE AODRESS OF UNCOMPLIED IMFO.
«025· «026»
• 027·
0020»
• 029» 0030»
«031· 0032·
8034*
«035» SET UP STACK.
«036·
«037
6038
C039
6040
Λ041
β OA 2
6043
«044
CBUS
«046
16055 0622C0 .11 JSM C
16056 06P3G5 SETUP JSM STNEW
16057 G2PIS42 LDA STACK
16060 031664 STa POINS
028475 LOA SMCOL
131664 STA POINS,I
Ö70742 SAR
031564 STA
16061
16062 16063 16064
16065 031666
16066 831667
STA
16
IMMFG POPR
STA OSKP
UNCOMPILER OUTPUT AREA. STORE STARTING ADDRESS OF OPERATOR STACK
CLEAR FLAG WHICH MARKS THE OCCURRENCE OF BINARY OP· HOLDS LAST REMOVE OPERATOR FROM STACK
309832/0843 ■
ORIGINAL
226272!
«048*
«049*
«050*
0051
«052
«053
0054
0055
«056
READY TO START THE LOOP
G058
«059
«060
«06]
«062
«063
0064
β065·
β066
€1067
0068
9069
C070
«071
«072
«073
0074·
0075
6076
«077
C078
C079
#080·
0081
«082
«083·
0084
0085
«086-
«087
«088
«089
«090
β091
0092·
«093
«094
«095
«096
0097
0098
0099
«100·
8101
«102*
«103
16067 16370 16071 16072 16073 16074
16375 16076 16077 16100 16101 16102 16103
16104
062323 LOOP
010403
SS62244
021544
010475 Ul
066055
010437
066056
C10462
066176
Ö10546
066341
010507
066257
16105 014353 Sl 16)06 066067 16137 034426
16110 074612
16111 870742
16112 Ö31666
16113 004410
16114 076310
16115 070742 UOP
16116 031564
16117 062305
16120 Ö62200
16121 066067
16122 Ο74353
16123 066143
16124 062246 OPERR
16125 {!25666 ' Ϊ6126 Ö45666
16127 074150 -
16130 07B213
16131 062246 POPER
16132 07fll52
16133 070110
16134 062235
16135 C21561 BB
16136 070142
16137 (J50365
16140 025544
16141 062276
16142 066066
JSm NEXTS CPa ONE JSM OPTIN LDA SKEY
CPA SMCOL JMP
CPA EXEC JMp SETUP CPa B153 JMP .SK CPA M42
JMP QUOTE CPA B152 JMP GOTO
CPB D52 JHP LOOP ADB Ml3
SUM OPERR SAR STA POPR ADB M4 PZB **6
SAR 16 „ SlA IMMFG
JSm STNEW JSm C JHP LOOP
SBP POPER JMp NUMBR
JSM CHECO LD8 POPR ISZ POPR
SZB **3 SAP BB-I JSM.CHECO SAM BB SZA BB
JSM INSTK LDA CODE SAR AND Ml7
LDB SKEY JSH STORE JMP LOOP-I
16143 025564 NUMBR LOB IMMFG
16144 «20403 LOA Pl
16145 031564 STA IMMFG
ON RETURN A-REG HAS THE SYMBOL
IS CODE ;?
YES» DUMP. OPERATOR STACK.INITIALIZE FOR NEW STMT EOL?
INITIALIZE OPERATOR STACK SKIP CODE?
YES» SKIP NEXT CODE ·'?
YES«BUILD QUOTE IN OUTPUT "GO TO" OR "GOSUB"
. ILLEGAL CODE SKIP IT GET NEXT COOE
B-REG HAS CODE CONTROL H IF CN<13.C0DE IS AN OPERATOR
GREATER THEN I3
ZERO BINARY OPERATOR FLAG
ADD -4 TO REMAINDER
code is for the variables a»b»c»xty»z
clear numeric — imp » flag place in algebraic stringdump
operator stack thru binary operator continue unfcompilling
if positive »remaining codes are fun or proc else numeric
code is most likely binary operator.ckeck precedence
Load binary flag
UPDATE
IF NONZERO CHANGE ALGORITHM TO STACK C ON EQUALITY
IF NONZERO CHANGE ALGORITHM TO STACK C ON EQUALITY
COMPARE INHAND PRECEDENCE WITH LAST OPERATOR THEN TOP OF STACK. IF INHAND<THEN STACKiSTACK
< WHICH IS TRUE IF A ♦
INSTk PLACES ( IN STACK OUTPUTS ) TO OUTPUT
GET INHANO COMPARE PRIORITY
• PLACE OPERATOR UNHAND KEYCODE IN B-REG)
• IN
• STACK
SET NUMERIC FLAG
3 0 9 832/0843 * original inspected
ΙΛΟ
«105
«107 «108 «109 one «in·
βΐ 12· 0113· en*
0115 0116 ein «118 «119
«120 «121 el22 «123
«125 «126 • 127 0128
«129 «130
ei3i·
(1132·
«133
«134
16146 074110
16147 1)62215
16150 062305 NUMl
16151 962323
16152 014530
16153 C66120
16154 066150
JMP U0P*3 YES
16155 062200 EXIT
16156 160547
16157 015660
16160 066166
16161 970137
16162 010437
16163 024465
16164 161552
16165 366156
16166 025566
16167 935573 1617Λ Q15545
16171 066175
16172 Ö74742
16173 161552
16174 066170
16175 1704fl2 SUBROUTINES FOLLOW
16176 062323 .SK
16177 966067
JSm jsm cpb
JHP LOQ CPA LDB JSH
JHP
ldb
STB
cpb
JMP SBR JSm JMP
RET
FECHfI
ADD
•♦6
EXEC
ENLNE
UNCOT.I
•-7
CP
CPl
PSP
•♦4 16
UNCOT.I •-4
STRING APfA.USE CPl FETCH CORE.
B-REG HAS NEXT CODE LOCATION.ARE WE FINISHED
SWITCH DIRECTS COOE TO OUTPUT ROUTINE (MSTOR)
RECYCLE
HAVE WE USED ALL OF THE INPUT AREA YES
RECYCLE
RETURN
JSM NEXTS SKIP NEXT CODE
JHP LOOP RECYCLE
309832/0843 · ORIÖinaunspected
β 136· | THIS SURROUTINE | PULLS | OPERATC |
β137· | TS ANY. | ||
0138· | |||
β 139· | 16200 024S42 C | • LOB | STACK |
0140» | 16201 274356 | CHB | |
0141 | 16202 905664 | ADB | POINS |
0142 | 16203. 075512 | SBM | *-6 |
0143 | 16204 121664 | LDA | POINStI |
0144 | 16205 £-55664 | DSZ | POINS |
β145 | 16206 070137 | LDB | A |
β146 | 16207 Θ74302 | SBR | 7 |
«147 | 16210 035667 | STB | osKP |
β148 | 16211 050345 | AND | RH |
0149 | 16212 031571 | STA | LOPR |
«150 | 16213 010372 | CPA | IMPMT |
6151 | 16214 066231 | JMp | C2 |
fll52 | 16215 062306 | JSm | STNEW*1 |
β153 | 16216 {J7B742 Cl | SAr | 16 |
C154 | 16217 S31564 | STA | IMMFG |
«155 | 16220 E21571 | LDA | LOPR |
0156 | 16221 025667 | LDB | OSKP |
6157 | 16222 0165(56 | CPA | UNAYM |
0158 | 16223 066230 | JMP | C |
β159 | 16224 014370 | CPB | IU2 |
C160 | 16225 C66200 | JMp | C |
(5161 | 16226 014403 | CPB | ONE |
fll62 | 16227 066200 | JMP | C |
0163 | 16230 164303 | JMP | OUTtI |
0164 | |||
6165 | 16231 Θ55564 C2 | DSZ | IMMFG |
β 166* | 16232 866216 | JMP | Cl |
«167 | 16233 020403 | LDA | Pl |
0168 | 16234 066217 | JMP | Cl*l |
0169 | |||
6170 | |||
IF STACK EMPTY RETURN LOAD WORD IN TOP OF STACK
MOVE POINTER NEXT LOCATION
RIGHT JUSTIFY STACK PIORITY SAVE IN OLD STACK PIORITY WORD (OSKP)
CODE IN A-REG
SAVE IT
NO.»IF CURRENT OPERATOR IS »(IMP) DON'T OUTPUT
SAVE IT
NO.»IF CURRENT OPERATOR IS »(IMP) DON'T OUTPUT
STORE IN OUTPUT STRING
PUT CODE BACK INTO A-REG STACK PIORITY BACK IN B-REG
OPERATORS DUMPED THRU A BINARY OPERATOR.
CODE WAS UNARY MINUS CONTINUE UNSTACKINO
IS OPERATOR A FUNCTION
YES CONTINUE DUMPING IS COOE PROCEDURE TYPE.EXAMPLE PRT
YES CONTINUE DUMPING
NUMERIC NOT CAUSING DUMP NUMERIC CAUSING DUMP AND IMP« BEING DUMPED
309-8-32/0843
ORIGINAL INSPECTED
0172
«Π 73
«174
<J175
«176
0177
C176
«179·
0)60
0181
0182· 01Β3
16235 020403 INSTK LOA ΟΝΕ
C185
0186
0187
Cl B8
β189
0190
«191
0192·
0193·
C194
C195
0196
β197
0198
0199
C260
0201
0202
0203
«2ö5
«2(S6
0207
0208
0289·
0210·
«211·
&212·
0213
6214
6215
6216
«217
9218
0219
16236 024503
16237 062276
16240 270742
16241 331564
16242 020541
16243 066306
LÖß LEFT JSM STORE SAR STA IMMfG
LOA RIGHT JMp STNEW*1
STACK PIORITY FOR LEFT PR£N.
CODE FOR LEFT PREN. INPUT PrI. WAS LESS THAN STACK
16244 020405 OPTIN LOA Ml
16245 164551 JMp OPTN,I
16246 0256^7 CHECO LDQ OSKP
16247 376150 R2ß CHECK +
16250 125664 CHECK LOf] POINS, I
Ö743P2
16251
16252 021561
16253 650365 CH
16254 970076
16255 074017
16256 170402
16257 16260 16261 16262
16263 16264 16265 16266 16267 16270 16271 16272 16273
16274 16275
062323 GOTO
321544
010462
Ö66274
Cl4353
G66257
014351
066257
C62305
Ü21544
010475
066057
066257
C62323 GTl
066257
SBR LDA CODE AND M17
TCA AOA ß RET
JSM NEXTS LDA SKEY CPA B153 JMP GTl
CPß D52 JMP GOTO CPB B77 JMP GOTO JSm STNEW LDA SKEY
CPA SMCOL-JMP SETUP*1 JMp GOTO JSM NEXTS
JMP GOTO SO PLACE LEFT PREN. IN STaCKJOUTPT RIGHT PRENt
CALL OPTION BLOCK SYNTAX WITH -1 IN A-REG
CHECK INHAND COMPARE PRIORITY WITH LAST STACK PRIORIT
IF 0 CHARACTER TO BE COMPARED IS IN STACK
STACK.
B-REG STACK PIORITY
INHANO COMPARE PIORITY IN A-REG (STACK -INHANO)
YES,SKIP NEXT CODE IGNORE CODE (FOR ZERO KEYCODE)
YES
GOTO FLAG FOR OPTION RLOCkS? YEStOELETE IT
WAS IT END-OF-STATEMENT "»"
YESfGTO OR GS8 UNCOMPRED
NO RECYCLE
SKIP NEXT CODE
RECYCLE
SUBROUTINE TO STORE CHAR In STACK
16276 014464 STORE CPß. GOSIN
16277 020401 LDA P3
SAL
16300 070444
16301 »74217
16302 P.45664 16301 131664 16304 164303
.KN
IOR Q ISZ POINS SlA POINS,I
JMP OUT,1
CHANGE STACK PR. OD GOESINTO CHANGE STACK PIORITY TO 3
POSITION PIOPITY TO RE INCLUDED WITH KEYCODE PLACE PloMTY WITH CODE
SET NEXT AODRESS
STORE OPERATOR IN STACK
309832/0843 QRlQiNAL INSPECTED
226272!
«221* «222*
0223 C224 «225
0226 0227 0228 6229
ß230 C231 0232 0233 C234 C235 β236
fl237· fl238· fl239· 0240«
C241 «242 0243
0244 β245 8246 «247 0248
fi249 Ö250 0251 C252 0253 C254
0255· 0256* 0257· 0258» 0259 0260
0261 6262 0263 «264· «265
SURROUTINE TO STORE THE NEW STRING
16305 021544 STNEW LDA SKEY
16306 01fi506 CPA UNAYM
16307 P20527 LOa MINUS
16310 025573 · LDB CPl
16311 074333 SBp ·*6»0
16312 070444 SAL
16313 074617 IOR B,I
16314 Ϊ574557 STa B»I
16315 035573 STB CPl
16316 170402 RET
16317 076070 " RIB *♦!
16320 074617 IOR B1I
16321 074557 STa B.I
16322 077553 SBP *-5tS
GET CODE TO PLACE IN OUTPUT IS IT UMARY MINUS?
YEStCHANGE To SUBTRACT CODE
GET ADDRESS OF NEXT OUTPUT LOCATION WHICH HAlF-OF WORD
Left-half.position code
store code in output cpl has been updated save it
right-half
store code in output UPDATE CPl·60 SAVE IT
SUBROUTINE TO GET THE NEXT SYMBOL
16323 16324 16325 16326 16327 16330 16331 16332 16333 16334 16335 16336
16337 16340
025662 015663 P66337 074172 074517 076213 074517
ß703ß2 634405 035662 059345
164254 055777 866155
NEXTS LOB CPB JMp SBH LDA SBP
NEXl LDA SAR ADB
NEX2 STB
EE
JMP DSZ JMP
RPOL
BGSTR
EE
NEXItC
B,I
NEX2»S
BiI
Ml
RPOL
RH
.CS3.I
SUB
EXIT
THIS TAKES CARE OF QUOTES
16341 862335 QUOTE JSh, STlJEW
16342 062323 · JSm NEXTS
16343 014452 CPß CNFO
16344 066115 JMP.UOP
16345 666341 JMP QUOTE
GET ADDRESS OF NEXT CHARACTER IN POLISH STRING HAVE WE TAKEN ALL CODES FROM LINE?
YES
WHICH HALF OF WORD IS NEXT CODE RIGHT-HALF
LEFT-HALF
RIGHT JUSTIFY CODE · UPDATE TO NEXT-CODE ADDRESS
SAVE IT
SAVE ONLY SEVEN BIT CODE
ALL CODES TAKEN FOR POLISH STRING ERASE RETURN TO CA ROUTINE.MOVE UNCOMPILER OUTPUT TO BEGINNING INPUT
store » in output
get next code in quote fielo is it " marking end of quote-field? yes.treat quote field as an operand RECYCLE
get next code in quote fielo is it " marking end of quote-field? yes.treat quote field as an operand RECYCLE
00301
WUNSD EQU «-UNCFL
30983 2/0843 ' original 'inspected
β 267· | •0254 | «533177 | .CS3 | EOU | 254B |
0268 | «1552 | UNCOT | ECU | 1552R | |
0269 | «1561 | 003077 | CODF | FCU | 1S61R |
0270 | «1544 | SKEY | EOU | 15/.4B | |
0271 | • 1660 | caao64 | AOD ' | EOU | 1660R |
0272 | 01661 | SAVE | EOU | 1661B | |
C273 | «1662 | 690017 | RPOL | ECU | 1662R |
627« | 01663 | 000016 | BGSTR | fOU | 1663B |
0275 | 01664 | Ρ00315 | POINS | EOU | 1664B |
β276 | • 1665 | 003314 | TEMP? | ECU | 166SB |
«277 | • 1666 | 008013 | POPR | EOU | 1666B |
ί!27β | 01667 | eopoi? | OSKP | ECU | 1667B |
β279 | «1571 | 63Ρ3Ο0 | LOPR | ECU | 1571« |
£280 | 01777 | 000003 | SUB | EOU | 1777B |
0281 | 01564 | ösean2 | IMHFG | EOU | 1564B |
0282 | • 1565 | oepfloi | BP | EOU | 1565B |
0283 | 01566 | 900000 | CP | EOu | 1566R |
6284 | • 1545 | 177777 | PSP | ECU | 15/.5B |
«285 | 01573 | 177776 | CPl | ECU | 1573B |
«286 | 01540 | CN | EQU | 1540B | |
C287 | «0403 | 177774 | Pl | ECU | 403B |
0288 | «0372 | IHPMT | EOU | 372B | |
€289 | «0303 | 177747 | OUT | EOU | 303B |
«290 | |||||
C291· | «0345 | 177763 | ORg | 345B | |
C292 | C0345 | RH | OCT | 177 | |
C293 | 00351 | 000135 | ORG | 35lB | |
0294 | C9351 | Θ77 | OCT | 77 | |
β295 | C0352 | 000025 | M21 | OCT | 21 |
0296 | 00353 | 052 | DEC | 52 | |
Β297 | «9365 | ORG | 365B | ||
6298 | C0365 | H17 | OCT | 17 | |
0299 | 00366 | Ml 6 | OCT | 16 | |
0300 | 03367 | H15 | OCT | 15 | |
«301 | • 0370 | H12 | OCT | 14 | |
6302 | «0371 | Mil | OCT | 13 | |
β 3(13 | «Λ172 | P10 | OCT | 12 | |
0304 | «0373 | BSS | 6 | ||
fl3ß5 | •0401 | P3 | OCT | 3 | |
43306 | C9402 | TWO | OCT | 2 | |
€307 | 00403 | ONE | oct- | 1 | |
0308 | (•0404 | BSS | 1 | ||
«309 | •0405 | Ml | OCT | 177777 | |
0310 | 00406 | M2 | DEC | -2 | |
0311 | •0410 | ORG | 410B | ||
0312 | •Ρ410 | H4 | DEC | -4 | |
C313 | •0422 | ORG | 422F1 | ||
«314 | 00422 | MNUM | OCT | 177747 | |
031S | •0426 | ORG | 426B | ||
0316 | 00426 | M13 | DEC | -13 | |
0317 | «0437 | ORG | 437B | ||
«318 | •0437 | EXEC | OCT | 135 | |
€319 | •0452 | ORG | 452B | ||
«320 | •0452 | CNFO | OCT | 25 | |
«321 | ••462 | ORG | 462B | ||
• 322 | |||||
AOORESS LINK To SKCD (SEE CONTROL SUPERVISOR)
R/W LTNK WORD. DIRECTS OURPUR OF UNCOMPJLER
16 BIT WORD ΤΗΛΤ DIRECTS COOES IN COMPILINGtINTERPRE
KEYCODE IN PROCESS
END MARKER FOR MOVING UNCOMPILER OUTPUT HOLDS NEXT PROGRAM LINE
POINTER FOR RETRFVIMG CODES FROM POLISH STRING
END MARKFW FOR RETREVING CODES FROM POLISH STRlMG
OPERATOR STACK POINTER
TEMPERARY STOREAGE
FLAG FOR LAST CODE PROCESSED WAS OPERATOR
HOLDS STACK PIORITY OF LAST REMOVED OPERATOR
SAVES CURRENT OPERATOR BEING DUMPED SYSTEM RETURN STACK POINTER NONZERO IF NUMERIC CAUSING OUMP--.
BEGINNING MARKER OF INPUT STRING AREA
NEXT AVlALABLE ADDRESS FOR INPUT STRING NEXT AVIALABLE ADDRESS FOR COMPILER OUTPUT
ADDRESS NFXT CODE IN INPUT STRING USED WITH FETCH RO CONTROL NUMBER OF CURRENT KEYCODE
309832/0843
OHlQi1NAL INSPECTED
•323 | Ö0462 | 000153 | B153 | 00530 | 000056 | ALPH | OCT | 153 |
«1324 | 00465 | 60530 | ORG | 465B | ||||
8325 | 80465 | Θ00141 | ENLNE | 00532 | 001537 | XB | OCT | 141 |
6326 | 00466 | 000140 | BGLNE | 00532 | OCT | 140 | ||
«327 | 00475 | P0535 | 001432 | TOPS | ORG | 475B | ||
0328 | 20475 | 000073 | SMCOL | 00535 | OCT | 73 | ||
<5329 | C0502 | 00541 | 000051 | RIGHT | ORG | 502B | ||
6330 | 00502 | 177767 | M9 | (50541 | 001727 | STACK | DEC | -9 |
0331 | (3R503 | B00050 | LEFT | 20542 | OCT | 50 | ||
0332 | e05fl4 | B00000 | BSS | 2 | ||||
C333 | 6P506 | 000150 | UNAYM | G0546 | 600042 | M42 | OCT | 150 |
0334 | 60507 | P00152 | B152 | 60546 | OCT | 152 | ||
6335 | e<3511 | • | e{U*64 | 030137 | GOSIN | OPG | 511B | |
β336 | 68511 | 000154 | M154 | SD464 | OCT | 154 | ||
0337 | 60527 | GB547 | 600000 | FECH | ORG | 527B | ||
0338 | G0527 | 000055 | MINUS | S 0547 | OCT | 55 | ||
6339» | NEH CONSTANTS | |||||||
0340» | 00551 | 600000 | OPTN | |||||
6341 | 00551 | ORG | 530B | |||||
0342 | OCT | 56 | ||||||
B343 | ORG | 532B | ||||||
0344 | ERRORS» | OCT | 1537 | |||||
(9345 | ORG | 535B | ||||||
0346 | OCT | 1432 | ||||||
C347 | ORG | 54 IB | ||||||
6348 | OCT | 51 | ||||||
β349 | OCT | 1727 | ||||||
6350* | ||||||||
C351 | ORG | 54 6B | ||||||
Ö352 | OCT | 42 | ||||||
0353 | ORG | 464B | ||||||
«354 | OCT | 137 | ||||||
0355 | org | 547B | ||||||
fl356 | BSS | 1 | ||||||
6357· | ||||||||
C358 | ORG | 551B | ||||||
«359 | BSS | 1 | ||||||
β360· | ||||||||
β361· | ||||||||
0362 | END | |||||||
• NO |
ORIGINAL INSPECTED ! 30983 270843
t)0l6· 0017· 0018·
0019· 0020· «021· 0022· 8023·
0024· C025· 0026·
9820A PLOTTER/TyPEWRITTEH OPTION BLOCK 2262725
(wählbarer Block, Kurvenschreiber/Schreibmaschine)
ASMBtA»L 12000 ORg 120008
12000 B00031 ID QCT 1 OPTION BLOCK IDENTIFICATION CODE
12001 000021 · def synt-id relative address of compile s. uncomplie routine
12302 000043 def exec-io relative address of the fxecution routine
12003 b01613 def mnem-id relative address of the mnemonic routine
the above is the table of linkage words used bf the 9b20a
to communicate with this option block.
the relative keycodes are as follows:
KC = 1 2 3
6 7
TYPE
FORMAT
WRITE
READ
TRANSFER
SCALE
AXES
PEN-UP O LETTER 9 PLOT
3Q9832/0843
initialization routines. (Start-Programme)
0028» 0029*
0030» 0031· €032 {J033
6034 0335 0036
0037 Ö038· 6039« 0040» 6041
Ö042» «043« 0044»
β045 3046 0047 β tf 4 8 0049 βΟ50
get the adoress the user area.
12004 e6?U0 12035 G35716
12006 625543 12307 070577
12010 «04453
12011 035543 - ,
NEXT SET-UP DEF
12012 062070
OF KWm WORD POINTING TO THIS BLOCK RWM IN
THEN MOVE LIWl ACCORDINGLY.
JSM LlA A«-ADDRESS OF OPTION RLOCK OF.niCATED R/W WORDS
• STb S SAVE BASE ADDRESS OF THE OPTION BLOCK
LOB LlMl SAVE PRESENT ADDRESS OF THE FIRST WORO OF
STB A,I USER MEMORY IN THE DEDICATED WORD
ADB P22 RESERVE ?2 WORDS FOR THE I/O BLOCK
STb LIMl AND SAVE THE NEW VALUE OR LIMl
TABLE FOR THIS BLOCK.
JSM .DEF.*l SET UP LINK WORDS NEEDED FOR THIS BLOCK
DAISY CHAIN THE END LINKAGE.
12013 021710
12014 131651
12015 P?5716 1201G CR7700
12017 635710 12020 170402 L3
LDA .END2 STa DEND»I LDB S AOB INTE
STB .END2 RET
SAVE PRSENT "END" LINK WORD
IN <DENl"»
GET OPTION BLOCK BASE ADDRESS ADD RELATIVE ADORESS OF OPTION BLOCK ENO ROUTINE
AND SAVE IN THE SYSTEM LINK ADDRESS RETURN
3 09832/0843
SUSPECTED
MNEMONIC GENERATION AND SYNTAX CHECK.
(Merkzeichenbildung und Larrstellungsprüfung)
0052· | WHFN | MNEM IS | CALLED» THE A RfGISTe« CONTAINS THE RELATIVE | T TO N-I WHERE N IS THE | CONTAIN | THE CODED | MNEMONIC. | A«-RELATIVE KEY CODE ♦ LDB ·*1 INSTRUCTION |
0053* | KtYCODE. ON | RETURN A WILL RF $t~- | NUMRfTR OF CHaRACTFPS IN THE MNEMONIC AND THE B REGISTER | • | EXECUTE THE INSTRUCTION FOUND IN A. | |||
β054· | WILL | GET THE | : MNEMONIC | WORD. | A<-3 - NUMBER OF CHARACTERS-1 | |||
β055· | RETURN | |||||||
9H3S6· | FIRST | ORG | 136133 | |||||
0057· | 003617 | MNEM AOA | TABl | RELATIVE INSTRUCTION USED TO LOAD MNEMONIC CODE | ||||
0058· | 13613 | 670016 | exA | TYP | ||||
0059· | 13613 | 020401 | LOA | P3 | FMT | |||
C060 | 13614 | 170402 | RET | WRT | ||||
0061 | 13615 | RED | ||||||
C062 | 13616 | P27620 | TABl LOB | •♦1 | TfR | |||
0063 | 651460 | OEC | 21296 | SCL | ||||
0064 | 13617 | 014664 | DEC | 6580 | AXE | |||
0065· | 13620 | 057124 | DEC | 24148 | PEN | |||
0066 | 13621 | 044244 | OEc | 13596 | LTR | |||
0067 | 13622 | 050322 | DEC | 20690 | PLT | |||
0068 | 13623 | (546154 | DEC | 19564 | ||||
0069 | 13624 | 633405 | DEC | 1797 | ||||
0070 | 13625 | C40256 | OEC | 1655B | ||||
0071 | 13626 | 031222 | DEC | 12946 | ||||
Β072 | 13627 | 640624 | DEC | 167B8 | ||||
0Ö73 | 13630 | |||||||
0074 | 13631 | |||||||
0075 | ||||||||
0076 | ||||||||
FOR ROTH FORWARD AND REVERSE COOE=C1FMT" OR "RED"). ELSE
12021
12021 C21561 SYNT
12022 050365 12Ö23 024034
12024 010401 12325 024031
12026 010403
12027 624031
12030 e3556l
12031 170402
ORG L3»l LDA CODE AND P15 LOB 34B
CPA P3 LÜB 31B CPA Pl LDB. 31B STB CODE
RET
COMPILINGt SET CODE=11ENT" IF
SEl CODE=11PRT".
AND SAVE OITS 0-3 TO GET RELATIVE KEY CODE
B«-SYSTEM TABLE FNTRY FOR PRINT A=RELATlVE KEY CODE FOR "REO"?
YES» fUSYSTEM TABLE ENTRY FOR ENTER
A=RELATIVE KEY CODE FOR "FMT"?
YESt B*SYSTEM TABLF ENTRY FOR ENTER
CODE*B - CODE TO BE USED BY THE SYSTEM RETURN
309832/0843 original inspected
KM ' ■ ■
end linkage (End~Anschluß) 2262725
0094· END LINKAGE. DO THE FOLLOWING. ·
0095· '
0096· SET STANDARD FORMAT.
0097* DO PEN-UP
β098· ' · :
6099 12032 062067 ELINK JSM ,DEF. SET UP LINK TORDS NEEDED BY THIS BLOCK
0100 12033 062110 JSM LlA B<-BASE ADDRESS OF THF OPTION BLOCK
0101 12034 607781 ADB SFMT FORM ABSOLUTE ADDRESS OF THE STANDARD FORMAT
U102 12035 135650 STß DFMTtI <DFMT>«-R - ADDRESS OF NEXT FORMAT TO BE EXECUTED
6lß3 12336 062717 JSM L12D DO A PEN-UP FOR PLOTTER
0104 12037 070742 SAR 16 CLEAR INPUT STATUS BUFFER
8105 12040 131661 · STa DIN»I ' AND SAVE" IN DIN»I
Ö106 12041 121651 LDA DENO.I GET LINK WORD OF NEXT SEGMENT OF END ROUTINE
6107 12042 B70737 JMP A»I JUMP TO THE NEXT SEGMENT OF THE END ROUTINE
30983 2/O δ A3 '
ORIGINAL
execution »ranch routine. (Ausführung Verzweigungs-Programm)
0110· Olli· 0112· 3113· 0114 0115 4116 0117 one
0119 0120 0121 β122·
3123 0124 0125 0126 3127 0128 G129 0130
0131 6132 0133 8134
T SPT-UP DEF TABLE FOR OPTION BLOCK.
EXFC WILL PERpORM A HHAnCh To ThE CORRECT EXECUTION ROUTINE
USING THE RELATIVE KEYCODE AND TAB2.
12043 062067 EXEC·
12044 G21561
12045 050365
12046 602053
12047 070016
12050 642066
12051 070016
12052 164346
12053 12054 12355 12056 12057
12060 12061 12062 12063
12064 12065 12066
022054 TAB2
001173
000726
G01323
P31352
001564
000136
COO302
000717
000425
000205
062000 INSTl
.DEF. LDA CODE AND P15 AOA TA02 EXA
IOR INSTl EXA JMP XJiI
LDA »*1 DEF TY.E-ID
DEF FM.E-ID DEF WR.E-1D DEF RE.E-ID
OEF CO.E-ID DEF SCE-ID DEF AX.E-TD
DEF PE.E-TO DEF LE.E-TD DEF PL.E-ID
JSm ID SET UP LINK WORDS NEFDED FOR THIS OPTION BLOCK
A«-CODE - SVSTEM CODE WORD
SAVE BITS 0-3 - RELATIVE KEY CODE
A«-RELATIVE KEY CODE ♦ LDA »*1 INSTRUCTION
EXECUTE THE INSTRUCTION FOUND IN A
A«-RELATIVE ADDRESS OF ROUTINE ♦ JSM ID INSTRUCTION
EXECUTE INSTRUCTION FOUND IN A
RETURN TO SYSTEM THROUGH <XJ>
INSTRUCTION TO GET RELATIVE ADDRESS OF ROUTINE
FORMAT WRITE
CONTROL SCALE
PEN-UP LETTER
INSTRUCTION TO CALL PROPER SUBROUTINE
309832/0843
ORIGINAL INSPECTED
(Programm zum Einstellen der DEF-Tafel)
9136»
0137·
β13β·
0139»
0140»
0141·
6142·
0143·
0144»
Gl45»
0146·
6147»
β148·
Ö149»
0137·
β13β·
0139»
0140»
0141·
6142·
0143·
0144»
Gl45»
0146·
6147»
β148·
Ö149»
eise
C151
«152
Ö153
3154
6155
0156
0157
0158·
0159
6160
0161
6162
Θ163
0164
6165
6166
6167
C16B*
0169»
fll70·
0171*
«172·
C173·
0175
0176
0177
6178
0179
0180«
0181
8132-
«133
el84 '
0185
0186
• 187
SET UP DFFiS IN CORE AS FOLLOWS:
1650 FORMAT
1651 END LINK WORD
1652 X POSITION*
1653 Y POSITION
1654 LETTER INFORMATION
1655 BX
1656 AX
1657 BY
1660 AY
1661 INPUT BUFFER STATUS
10Λ
226272
12067 062110
12070 070517
12071 827702
12072 G35663
12073 624415
12074 035662
12075 (527651
12076 066104
.DEF.
JSM LlA LDA AtI LDB DLINK STo J LDB M10
STb I LOB K2 JMp LIE
12077 12100 12101 12102 12103
12104 12105 12106 12107
{»45663 LlF
674006
000403
074113
(30(4401
131663 LIE
Θ45662
S66077
170402
J 1
ISZ RBR ADA Pl SBP LIE ADA P3 STa JtI
ISZ I JHP LlF RET A«-ADDRESS OF DEDICATED R/W OPTION BLOCK WORD
A«-AODRESS OF R/W MEMORY RESERVED BY THE OPTION BLOCK
J«-AODRESS OF FIRST WORD" WHERE LINK
WORDS ARE TO RE STORED
I«-10
I«-10
NUM8ER OF LINK WORDS IN THE TABLE
b«-k2 - code word for ι or'4 word storage
CONTINUE AT LIE
INCREMENT TABLE ADDRESS
POSITION STORAGE CODE WORD
INCREMENT R/W MEMORY POINTER LAST PARAMETER NEEDED 4 WORDS?
POSITION STORAGE CODE WORD
INCREMENT R/W MEMORY POINTER LAST PARAMETER NEEDED 4 WORDS?
YES, ADO·3 MORE TO R/W MEMORY POINTER SAVE NEW LINK WORD IN THE TABLE
ALL .NINE LINK WORDS FORMED?
NO, CONTINUE TO LOOP
YES, RETURN
get address of rwh user storage by doing λ search for a
comparison of the id word with those founld in the system
option block table area. whfn a match is found, compute The link address, set β with absolute address of id.
12110 12111
12112 12113 12114
12115
12112 12113 12114
12115
12116 12117 12120 12121
12122 12123 12124
12122 12123 12124
024247 074517 Ö59441
512000 066116 077630
970076 «74417
»70137 070402 000247 000400 170402
LlA
LDB | .TAB7 |
LDA | B,I |
AND | K8 |
CPA. | ID |
JHP | «♦2 |
RIB | β-4 |
TCA | |
ADA | B.I |
LOB | A |
SAR | 9 |
ADA | • TAB7 |
ADA | Ph |
RET |
B«-ADORESS OF TABLE CONTAINING ID CODES
ADOPTION HLOCK IO CODE
SAVE RITS 0-9 . -
SAVE RITS 0-9 . -
DO THEY MATCH WITH THIS BLOCK?
YES, EXIT LOOP
NO, INCREMENT ADDRESS AND CONTINUE TO LOOP
REMOVE ID CODE TO GET BASE ADDRESS OF THIS BLOCK B«-A
FORM ADDRESS OF DEDICATED R/W WORDS FOR THIS OPTION BLOCK
RETURN
309832/0343
ORlGiNAL INSPECTED
utility routines (Versorgungs-Programme)
0139·
3190·
0191·
0192
0193
0194
«195
6196
«197·
0198·
0199·
6200
0231
8202
0203
0204»
0205»
0206·
6287»
(1208·
6209·
β210·
0211*
0212»
0213·
0214·
0215·
β216·
β217·
102
12125 021556
12126 031664
12127 070076
12130 901557
12131 170402
.PAR. LDA API
STA K • TCA ADA AP2
RET
Κ«·Α - SAVE POINTER
12132 121664 L2A LDA K,I
12133 045664 ISZ K
12134 853647 AND Kl
12135 170402 RET
A4-AD0RESS OF THE NEXT PARAMETER
INCREMENT ADDRESS POINTER
SAVE «ITS U-13
RETURN
the math routines in the basic machine can be, called through
The linkage table found on the base page as follows«
jsm hath*0.i <=
2 3 4 5 6
09832/0843 ORlGlNAC INSPECTED
scale execution for 9B20A calculator. (Maßstab-Ausführung)
0219· 0220· 0221· «222«
β223· β2?4· 8225 0226
0227 0228 0229
«230» 0231*
0232« Ö233· 0234
C235 «236 6237 6238 6239
6240* 0241
0242· 0243»
0244· 6245»
6246· C 247 0248 β249
6250 C 251 C252
6253 0254 6255· fl256 6257
€258 6259 0260 C261 C262 6263
ί)264 G265
the following is the scale execution routine.
GET THE PARAMETER COUnT.
IF PARAMETER COUNT IS NOT EOUAL TO 4, DO AN ERROR EXIT.
12136 962125 SCE
12137 010400 12140 066143
1?141 Ö24402 L10I3 12142 065351
JSm .PAR. A«-NUMBER OF PARAMETERS PASSED
CPA P4 IF A=4 THEN
JMP «+3 SKIP 2 INSTRUCTIONS
LOB P2 ELSE SET ERROR 2
JMP BAD IMPLIEO RETURN
SET VALUES OF AYt BY« AX» AND IN THE PLOT ROUTINE.
FOR USE IN SCALEING
12143 021660
12144 031662
12145 062151
12146 021656
12147 031662 12150 Ö66151
LDA DAY 1+ADDRESS OF THE Y AXIS
STA I SCALE FACTOR
JSM L10 COMPUTE Y SCALE VALUES
LDA DAX I«-ADDRESS OF THE X AXIS SCALE FACTOR
STA I A1JD COMPUTE X SCALE VALUES
JHP L10 IMPLIED RETURN
• COMPUTE THE VALUES OF A* AND B* AS FOLLOWS!
A* = 9999/(MAX-MlN)
B« = -<A*)«MIN.
12151 062132 L10
12152 G31554
12153 062132
12154 S31663
12155 &31553
12156 S21662
12157 631555 12160 160273
0267· 0268 6269 0270 6271
0272 · 0273 0274
12161 12162 12163 12164 12165
12166 12167 12170 12171 12172 12173
12174 12175 12176 12177 12200
12201 12202
P20477 031554 170000 C237B6
Ö31741
G70346 031740 021662 031553 160271
Ö21663 C31554 021662 00H410
631662 031555 160270
JSM L2A STA OPl JSK L2A STA J
STA 0P2 LDA STA 0P3 JSM-.MATH*6»I
LDA «DTI
STA OPl
CLR
LDA D9999
STA .Tl+1
LDA"P3
RAR
STa .Tl
LDA I
STa 0P2
JSM MATH+4,1
LDA J
STa OPl
LDA I
ADA M4
STA I
STA 0P3
JSM MATHO»!
A«-ADDRESS OF MAX AXIS VALUES
SAVE ADDRESS in MATH POINTER OPl A<-AODRESS OF MIN AXIS VALUE
SAVE ADDRESS IN J
AND IN MATH POINTER 0P2 A+AODRESS OF AXIS SCALE · FAC-TOR
AND SAVE IN MATH POINTER 0P3 SUBTRACT MlN VALUE FROM. MAX VALUE
A+ADORESS OF TEMPORARY .REGISTER
ANB SAVE IN MATH POINTER"'OPl
CLEAR TEMPORARY REGISTER 1 STORF. 4 BCD 9»S IN THE HIGH ORDER
DIGITS OF TEMPORARY REGISTER FORM EXPONENT OF +3 AND STORE IN EXPONENT
PART OF TEMPORARY REGISTER A+ADDP-ESS OF AXIS SCALE FACTOR
ANO STORE IN MATH POINTER 0P2 DIVIDE 9999 BY (MAX-MIN)
A+ADORESS OF MIN VALUE
AND SAVE IN MATH POINTER OPl A+I-4
FORM ADDRESS OF AXIS OFFSET VALUE AND SAVE IN I
AND MATH POINTER 0P3 MULTIPLY MlN VALUE BY SCALE FACTOR
309 832/0843
ORiOiNAL /NSPEGTED
plot EXECTION routine. (Kurvenschreiber-Ausführung)
• 278· 0279· 0260·
0261· β2Β2· 0283»
0284· 0285 «286
Β287 C2B8 0289 <J290
6291·
• 292· 6293· 0294 6295
C296 C297 0298 0299 03130·
0301· 0392· C303· 0304·
«305 0336 $307 0398
«309· 0310 03)1 0312· C313·
β315· 0316· «317» β3ΐβ·
0319· Θ320· 0321· «322·
• 323· 032/»· β 325·
• 326·
• 327·
• 328· 0329· 0330 0331 0332
• 333
GET THE PARAMETER COUNT AND 00 THE FOLLOWING*
P » I GOTO LETTE« ROUTINE.
2 PLOT POINTS X AND Y AFTER SCALING.
ELSE EXIT WITH EHROR.
ELSE EXIT WITH EHROR.
12205 062125 PL.E JSm .PAR..
122C6 010402
1??07 666213
12210 010403
12211 066445
12212 S66141
CPA P2 JHP LIlE CPA Pl JMp LE.EP
JMp L10B
A«-NUmBER OF PARAMETERS PASSED
IF A=2
then skip 2 instructions
IF A=I
THEN GO TO LETTER ROUTINE IMPLIED RETURN
SET ROUNf)ARY INDICATOR AND GET SCALED VALUES OF X AND Y,
12213 073742 LIlE
12214 e31736
12215 C62227
12216 131653
12217 062233 12220 131652
SAR 16 S16*0
STA S16 RESET PLOTTER RANGE FLAG
JSM LIlH SCALE ANn CONVERT Y COORDINATE
SlA OYP,I AND SAVE VALUE IN Y AXIS POSITION WORD
JSH LIlA SCALE ANO CONVERT X COORDINATE
STa DXPtI AND SAVE VALUE IN X AXIS POSITION WORO
IF POINT IS IN RANGE» HOVE PFN 70 THE NEW POSITIONS OF X AND Y
AMO PUT PEN DOWN. ELSE LIFT PEN AMD THEN MOVE TO THE NEW
POSITIONS OF X AND Y AND OO NOT PUT THE PEN DOWN.
12221 021736
12222 070150
12223 062717
12224 C66656
12225 062656 LlU
12226 S66713
LDA S16 A«-S16 - PLOTTER RANGE FLAG
SZA LIlJ IF POINTS ARE IN RANGE (A=O) THEN SKIP 2 INSTi
JSM L120 ELSE LIFT PEN AND MOVE TO NEW POSITION
JHP L12B IMPLIED RETURN
JSM L12B MOVE TO NEW POSITION
JMP L12C IMPLIED RETURN
LlIA IS USED TO .SCALE THE NEXT PARAMETER IN THE STACK AND
MAKE SURE THAT IT IS WITHIN THE RANGE OF a TO 9999.
S AND Sl ARE USED AS FOLLOWS:
S=-2 USE Y SCALE -1 USE X SCALE
51=-1 AOD IN OFFSET
ELSE OON'T ADD IN OFFSET
ON EXIT FROM ROUTINEt S*S-1.
FIRST SCALE THE NEXT PaRAHETER AS FOLLOWS:
(A·)<<AP1>)*<B»>
FIRST SCALE THE NEXT PaRAHETER AS FOLLOWS:
(A·)<<AP1>)*<B»>
12227 C20405 LIlH LOA Ml
12230 031662 STa I
12231 020406 LOA M2
12232 031716 SU S
!♦A - OFFSET COMPUTATION FLAG S«-2
309832/08^3
226272
0334 6335
8336 «337 0338 <J339 C340
6342 «S343·
0344 £345 0346 C347, C348
fl349 0350 0351 0352 C353 0354
0355» 0356» C357«
0358» €359* 0360» C361
0362 G363 6364 0365 fl366
0367 0368 0369 0370 0371
β372 0373 e374 0375 β376· 3377
β378 0379 0300
12233 362132 LIlA
12234 031554
12235 621656
12236 045716
12237 021660
12240 031553
12241 4320477
12242 031555
12243 160270
12244 12245 12246 12247 12250
12251 12252 12253 12254 12255 12256
045662 066256 020477 031554
021655 655716 C45716 021657
031553 160272 055662 LUG
JSM L2A STa OPl
LDA OAX ISZ S LDa DAY STa OP2
LDA .DTl STa 0P3 JSM MATHOtI
ISZ I
JMP LUG LDA .DTl STA OPl LDA DBX DSZ S ISZ S LDA DBY
STA 0P2 JSM MATH*5,I DSZ I A«-ADDRESS OF DATA WORD TO BE CONVERTED
SAVE ADRRFSSS IN MATH POINTER OPl A+ADDRES5 OF X AXIS SCALE FACTOR
IF S#-l
THF.N A«-ADDRESS OF Y AXIS SCALE FACTOR
SAVE ADDRESS OF AXIS SCALE FACTOR IN 0P2 A «-ADDRESS OF TEMPORARY REGISTER 1 SAVE ADDRESS IN MATH POINTER 0P3
MULTIPLY COORDINATE 8Y SCALE FACTOR
IF I#-l
THEN RY PASS OFFSET COMPUTATION A+ADDRESS OF TEMPORARY REGISTER 1
AND SAVE IN MATH POINTER OPl A<-ADDRESS OF X AXIS OFFSET
IF Stt-l
THEN A*ADDRESS OF Y AXIS OFFSET SAVE ADDRESS IN MATH POINTER 0P2
ADD IN OFFSET TO SCALED VALUE !«•1-1
convert the pcd number to a binary number. then check the value
of the converted number to make sure that it is within in the Range of 0 and 9999. if the value is outside of the
set it eoual to 0 0« 9999 as the case may be.
12257 12260 12261 1226? 12263
12264 12265 12266 12267 12270 12271 12272
12273 12274 12275
121555
B70340
600410
C70613
021555
C61322
074153 L118
045736
Ö74742
074117
007711
074152
023707 LIlC
045736
170402
12276 070742 LIlD
12277 125555
12300 075551
12301 066274
SBP »«-3 IF B<0
SBR 16 AND B«-0
LDA B A«-8
ADB KIl IF B>= 10000
SBM «»3
LDA P9999 THEN A«-9999
RET- RETURN
SAR 16 A«-0
309832/0843
axes execution routine. (Achsen-Ausführunß)
0382·
0383· THE SYNTAX FOR AXES IS AS FOLLOWS!
0385· | AXES X(ORIGIN)»Υ(ORIGIN)LX(TIC)»Υ(TIC)J | CONSTANT | AXIS ORIGIN. | LOCATION OF CONSTANT AXIS POSITION. | 023710 AX | FOR No INCREMENT. | SKIP | ■ | TIC MARK SET UP | 062125 | MESSAGE. | • |
0386· | INCREMENT AXIS ORIGIN. | LOCATION OF INCREMENT AXIS POSITION. | 0.11730 | SET UP TIC HARK VALUES | 010402 | JSM .PAR. A«-NUMBER OF PARAMETERS PASSED | ||||||
0387· | INCREMENT VALUE. | VALUE. | 031737 | .E LDA K10 S10«-S17«-10000 | ELSE ERROR | 066324 | CPA P2 IF A=2 | |||||
0388· | AODRESS | VALUE. | STa S10 SET TIC INCREMENT TO | Clf|4ß0 | JMp L14B THEN BY PASS TIC MARK SET UP | |||||||
0389· | To ImPLImENT THIS-. THE FOLLOWING TABLE HAS BEEN SET UP. | ADDRESS | OTHER INCREMENT VALUE. | SlA S17 FULL SCALE VALUE | 12305 | B66313 | CPA P4 IF A=4 | |||||
0390· | HIGH TIC | 12306 | 066141 | JMp o*2 ■ THEN SFT UP TIC MARKS | ||||||||
0391· | S2 | LOW TIC | set sia and sis | NEXT GET PARAMETER COUNT AND DO THE FOLLOWING. | 12307 | JMp L10B IMPLIED RETURN | ||||||
0392· | S9 | 12310 | ||||||||||
0393· | S10 | 12302 | A=2 | 12311 | ||||||||
0394· | SIl | 12303 | 4 | 12312 | ||||||||
0395· | S12 | 12304 | ||||||||||
0396· | S13 | |||||||||||
0397· | S14 | |||||||||||
0398· | S17 | |||||||||||
0399* | ||||||||||||
0400 | ||||||||||||
0401 | ||||||||||||
0402 | ||||||||||||
0403· | ||||||||||||
0404* | ||||||||||||
0405· | ||||||||||||
0406· | ||||||||||||
0407· | ||||||||||||
0408· | ||||||||||||
0409* | ||||||||||||
0410 | ||||||||||||
0411 | ||||||||||||
0412 | ||||||||||||
0413 | ||||||||||||
0414 | ||||||||||||
0415 |
0417·
041B·
0419·
0420
0421
0422
0423
0424
0425
0426
0427
0428
12313 020406
12314 062230
12315 072110
12316 023710
12317 031737
12320 062233
12321 072110 1232? P23710
12323 031730
TlC | MARKS. |
loa' | M2 |
JSm | L11H*1 |
kza | •♦2 |
LDA | K10 |
STA | S17 |
jsm | LIlA |
rza | • ♦2 |
LDA | K10 |
SlA | S10 |
A«·-2 - SET FLAG TO RY PASS OFFSET COMPUTATION
A«-VALUE OF Y TlC MARK INCREMENT
IF A=H
THFN AO0000 SAVE Y INCREMENT VALUE
A*VALUE OF X TlC MARK INCREMENT IF A=0
THEN A«-10000 - FULL SCALE VALUE SAVE X INCREMENT VALUE
309832/0843
ORIQiNAL INSPECTED
AXES EXECUTION ROUTINE.
0430*
»432« 6*33·
fl444· 0445» 0446·
6452* 0453· 6454·
COMPUTE VALUES FOR LOCATION OF THE ORIGIN AND If THEY ARE OUT
OF RANGE. SET ERROR 21 AND RETURN.
12324 070742 L14B SAr 16 S16<-0
12325 031736 ' sta s16 reset plotter limit flag
12326 0622?7 jsh llih a«-y value of coordinate origin
12327 $531720 sta s2 save valuf in s?
12330 b62233 jsm lila a«-x value of coordinate origin
12331 031727 sta s9 save value in s9
12332 6j21736 lda s16 if s16=0 (coordinates on scale)
12333 070150 sza **3 then skip 2 instructions
12334 024452 ' ldb p21 else set error 21
12335 s65351 jmp bad implied return
set up rest of table and draw χ axis.
12336 921653
12337 031731
12340 C21652
12341 031732
12342 C62355
LDA DYP STA SU LDA DXP STA S12 JSM L14A
S11«-ADDRESS OF Y AXIS PLOTTER POSITION
S12«-A.DDRESS OF X AXIS PLOTTFR POSITION PLOT X AXIS AND TIC MARKS
RF-ARRANSE TABLE AND DRAW Y AXIS AND Do PEN-UP«
12343 021720
12344 025727
12345 035720
12346 G31727
12347 321737
12350 631730
12351 Ö55731
12352 045732
12353 062355
12354 C66717
LDA S2 A«-S2 -Y AXIS ORIGIN
LDB S9 B<-S9 -X AXIS ORIGIN
STB S2 CONSTANT AXIS«-B
STA S9 INCREMENT AXIS+A
LDA S17 S10«-S17
STA S10 INCREMENT VALUE«-X TIC INCREMENT
DSZ SlI SET X AXIS CONSTANT
ISZ S12 SET Y AXTS VARIABLE
JSH L14A PLOT Y AXIS AND TIC MARKS
JMP L12D IMPLIED RETURN
«466» «467« «468»
0469» β470· 0471· 0472» 6473»
9481·
(Programm zum Zeichnen der Achsen)
ROUTINE FOR ORAWNING AXIS.
START BY DOING THE FOLLOWING
1. DO A PEN-UP
2. MOVE TO 0 OF AXIS TO BE DRAWN.
3. DO A PEN-DOWN.
12355 062717 L14A JSM L12D
12356 021720 LOA S2
12357 131731 STa Sl1»I
1236CI 070742 SAR
12361 131732 STA S12.I
12362 062656 JSH L12R
12363 062713 JSM L12C
OO A PEN-UP
<S11>4-S2
<S11>4-S2
SET CONSTANT AXIS ORIGIN <Sl2><-0
SET VARIABLE AXIS TO 0 POSITION MOVE PEN TO NEW POSITION
PUT THE PEN DOWN
309832/0843
" ORIGINAL INSPECTED
axes execution routine. «482· set the high and low values for the tic marks and make sure
«483· THAT THEY ARE WITHIN BOUNDS.
12364 025720 LDB S2 B«-S2»47
«486 12365 0H4356 ADB P47 HIGH VALUE OF TIC MARK
«487 12366 062265 · JSM LlIB A«-VALUE RETWEEN 0<=B<=9999
«488 12367 031733 STa S13 S13*A - HIGH VALUE OF TlC MARK
«489·
«490 12370 025720 LOB S2 B*S2-48
•491 12371 007645 ADB M48 LOW VALUE OF TIC MARK
«492 12372 062265 JSM LIlB A«-VALUE RETWEEN 0<=B<=9999
«493 12373 031734 STa S14 S14*A - LOW VALUE OF TIC MARK
«494·
«495· FIND LOCATION OF JHF. FIRST TIC MARK BY SUBTRACTING THE VALUE
«496· OF THE INCREMENT FROM THE ORIGIN LOCATION UNTIL THE RESULT
6497·.IS NEGITIVE. THEN ADD THE VALUE OF THE INCREMENT FOR THE
«498· FIRST TIC MARK. «499·
8530 12374 021727 LDA S9 A«-S9 - VARIABLE AXIS ORIGIN
«501 12375 025730 LDB S10 B«-Sl0 - INCREMENT VALUE
«SS!2 12376 074076 TCB B«~Β
6503 12377 074017 ADA B ' WHILE 0<A
«504 12400 071753 SAp «-1 DO A*A»B
«505·
«506 12401 074076 TCB Β«-- Β
«507 12402 »74017 AOA B A«-A*B - FIRST POSITIVE TIC MARK
«508·
«509· MOVE TO COMPUTED LOCATION-AND DRAW TIc MARK.
0510·
0511 12403 131732 L14D STa S12,I SAVE VARlAPLE AXIS POSITION
«513 12405 021733 LOA S13
<S11>*S13
«514 12406 131731 STA SIl,I CONSTANT AXIS*HIGH VALUE OF TIC MARK
«515 12407 062656 JSM L12B MOVE PEN
«516 12410 021734 LDA S14 <S11>«-S14
0517 12411 131731 STA SIl,I CONSTANT AXIS^LOW VALUE OF TIC MARK
«518 12412 06?656 JSM L12B MOVE PEN
«519 12413 021720 LDA S2
<S11>«-S2
0520 12414 131731 STa SIl,I CONSTANT AXIS«- VARIABLE AXIS ORIGIN
«521 12415 062656 " JSm L12B MOVE PEN
«522·
0523· AOD INCREMENT TO PRESENT POSITION. IF NO OVERFLOW OCCURESi
«524· MOVE TO MEW COMPUTED POSITION. OTHERWISE. MOVE TO LOCATION
C525» 9999 AND RETURN. 0526»
0527 | 12416 | 125732 | LDB | S12.I |
«528 | 12417 | P05730 | ADB | S10 |
0529 | 12420 | 062265 | JSm | LH« |
0530 | 12421 | «J7S112 | SBM | L140 |
«531· | ||||
«532 | 12422 | 023707 | LDA | P9999 |
«533 | 12423 | 131732 | STa | S12.I |
«534 | 12424 | 066656 | JMP | L12B |
ADD INCREMENT VALUE TO VARIABLE AXIS POSITION A«-VALUE PFTWEEN 0<=B<=9999
IF NEW POSITION < lflflflf» THEN CONTINUE TO LOOP
MOVE TO END OF AXIS IMPLIED RETURN
309832/0843
ORIGINAL INSPECTED
226272E
letter execution routines. (Buchstaben-Ausführung)
• 536·
β537· SET LETTER PARAMETERS.
GET PARAMETER COUNT. THE SYNTAX FOR LETTER IS AS FOLLOWS:
LTR X (CORD)» Y-(CORD) !»HEIGHT/WIDTH/DIReCTIONJ
thus if parameter count is not 2 or 3» set error 2 and return.
0539» 0540· 6541· 0542«
β543· 0544*
6546 0547 0548
«549 fi550 0551· ©552· 6553·
0554 S555 6556 (5557 0558» 0559* 0568°
0561· 6562 e563 0564 · 0565 G566 9567
12425 Ö6P125 LE.E JSM .PAR.
12426 010402 CPA P2
12427 066437 JMp L15A
12430 010401 · CPA P3
12431 066433 JMP »«-2
12432 066141 JMP LlBB
A+NUMBER OF PARAMETERS PASSED IF A=2
THEN SKIP LETTER FORMAT SET UP IF A=3
THEN DO LETTER FORMAT SET UP
IMPLIED RETURN
12433 G62132
12434 000403
12435 Ü70517
12436 131654
compute the x and y. positions using the scaling routine and save the values, do a pen-up and move to the specified position.
12437 ©63227 LISA
12440 131653
12441 IV62233
12442 131652
12443 062717
12444 Ö66656
JSM LIlH A«-Y COORDINATE OF NEXT LETTER
STA DYP,I ANO SAVE POSITION INFORMATION
JSM LIlA A«-X COORDINATE OF NEXT LETTER
STA DXP,I AND SAVE POSITION INFORMATION
JSM L12D DO PEN UP AND MOVE To NEH POINT
JHp L12B IMPLIED RETURN
309832/0843
LETTER EXECUTION ROUTINES.
•569·
•570·
«571·
0572·
•573·
execution of plot ".. "
set up either alpha or numepic letter field.
«5β1·
•584·
(585·
•586·
0603·
0604·
•60S·
12445 121664 LE.EP LDA K»I
1H446 070744 SAL
12447 673272 SAH ALPHA,C
12450 070002 SAR
12451 663270 JSH L21F 1245? 055717 DSZ Sl
12453 066456 JMP ALPHA*2
12454 070002 ALPHA SAR
12455 062571 JSh L16E
12456 12457 12460 12461 12462
12463 12464 12465 12466 12467 12470 12471
12472 12473 12474 12475
125654 862564 031730 ©62564
031731 f»74U7 070542 050401 070704
O0B405 1559365 070544 342632
027735 070016 035732
LIFT PEN 12476 «62717
LDB DLI.I JSH L16D STA SlH
JSM L16D STA SU LDA B SAR AND P3 SAL ADA Ml AND P15
SAL I OR K4 LDB K9 EXA STB S12
JSH L12D
continue at alpha+2
shift a right 1
set up parameters for alpha string
FORM 4 BIT SHIFT INFORMATION
POSITION SHIFT COUNT INCLUDE ROTATE INSTRUCTION B«-DIRECTION WORD
EXECUTE INSTRUCTION FOUND IN A REGISTER SAVE DIRECTION INFORMATION
LIFT PEN
0608·
•609· START NEXT LETTER.
•610· MORF. CHARACTERS.
•611·
12477 121652 L17A
12500 031726
12501 121653
12502 031727
12503 345717
12504 «66506
12505 170462
•619· «620· OO FOLLOWING:
SET NEXT LETTER POSITION AND CHECK FOR IF DONEi EXIT.
LOA DXPtI STA S8 LDA DYP,I SlA S9 ISZ Sl
JMP REl
s8*current x position S9*current y position
INCREMENT Sl
THEN SKIP 1
ELSE RETURN
ELSE RETURN
AND IF Sl#0 (MORE CHARACTERS LEFT) INSTRUCTION
0 9 8 3 2/0843
MA
«621· B622·
β623· • 624* β625·
«630»
0632»
0640*
«641» 0642» C643*
6644« β645<»
0646»
0650»
1. SET COUNTERS.
2. GET NEXT CHARACTER.
3. SET CHARACTER VECTORS«
12506 020410
12507 031723
12510 070100.
12511 031724
12512 Θ62630
12513 12514 12515 12516 12517
12520 12521
070706 903671 070016 035725 070070
070016 035733
LOA | M4 |
STA | S5 |
AAR | 3 |
STA | S6 |
JSH | L16G |
RAR | 15 |
ADA | K5 |
ΕΧΛ | |
STB | S7 |
SIA | »♦1 |
EXA | |
STB | S13 |
S5«~4 NUMBER OF VECTORS/WORD
S6«--l
A«-2»A
DRAW NEXT VECTOR.
SF.T VALUE OF S3 FOR NEXT HEIGHT SEGMENT. TF S3=-3» CHARACTER
IS FINISHED. EXIT TO Ll7C. ELSE COMPUTE HEIGHT PART OF NEW VECTOR.
0655» Ö656«
G6S7«
C662» 6663»
«664*
«667» «660» ©669»
12522 662642 L17B
12523 Ö1B407
12524 066550
12525 021730
12526 025732 lP.527 074046 12530 062603
JSH L16H CPA M3-JHP L17C
LDA S10 LDB S12 RBR JSM L16F A«-NEGATIVE INCREMENT COUNT.
IF A=-3
S3 ALSO SET,
A<-HEIGHT INCREMENT VALUE BIDIRECTIONAL INFORMATION
POSITION HEIGHT DIRECTION INFORMATION GENERATE NEXT HEIGHT VECTOR
compute width part of new vector.
12531 662642
12532 021731
12533 025732
12534 ß62603
12535 062656
12536 062713
JSM L12B MOVE PEN TO NEW POSITION JSM L12C ELSE PUT PEN DOWN
CHECK STATUS OF VECTOR WORDS, \ .
12537 C45723 ISZ S5 INCREMENT S5 AND IF S5«0 (MORE VECTORS LEFT IN THE W
12540 666522 JMP L17B THEN CONTINUE TO LOOP AT L17B
12541 045724 ISZ S6 INCREMENT S6 AnO IF S6«0 (NO MORE VECTOR WORDS LEFT)
12542 C66550 JMP L17C THEN EXIT LOOP AND GO TO L17C
12543 020410 LDA M4 S5«—4
12544 Ö31723 STa S5 NUMBER OF VECTORS/WORD
12545 021733 LDA S13 S7*S13
309832/0843
ΙΛΖ.
11679·
«680·
β681·
0682·
0683·
C686 «687 (»688 3689 0690
C691 0692 0693 0694 β695
12546 031725 STa S7
12547 066522 JHP L17B
GET ANn SAVE SECOND VECTOR WORD CONTINUE TO LOOP AT L17B
12550 062717 L17C JSH L120 LIFT PEN
12551 020407 LDA H3 S3»--3 '
12552 031721 STa S3 INCREMENT COUNT FOR SPACING TO NEXT CHARACTER
12553 021731 LDA SIl A«-WIOTH INCREMENT VALUE
12554 025732 LDB Sl? B«-WIDTH DIRECTION INFORHATION
12555 C62603 ' JSH L16F GENERATE WIDTH SPACE VECTOR
12556 070742 SAR 16 S3+0
12557 031.721 STA S3 0 HEIGHT INCREMENT
12560 025732 LDB S12 B'-DIRECTION INFORMATION
12561 074046 R8R 2 POSITION HtIGHT DIRECTION INFORMATION
12562 062603 JSH L16F GENERATE HtfIGHT SPACE VECTOR
12563 066477 JMP L17A . GO TO L17A AND START NEXT CHARACTER
B697» 0698· 0699· Ö700·
ί>701·
C707· 0708· C709·
0710· «711· β712· 0713·
0714· 0715· 8716· 0717· «718·
«719·
«72β·
SUDROUTINES USED FOR LETTER.
L16D IS USED TO EXTRACT LETTER PARAMETERS FROM THE VECTOR TAHLE.
12564 074546 L16D RBR
12565 074117 LOA B
12566 050365 AND P15
12567 070544 SAL 12570 170402 RET
A(0-3)*O(12-15)
A«-32*A
RETURN
L16E SETS UP PARAMETERS FOR ALPHA STRINGS.
CALLING SEQUENCE:
LDA ADORESS OF LABEL JSM L16E ... RETURN
Sl=-(COUNT*1> S2=52525
12571 031716 L16E
12572 031717
12573 32CI522
12574 031720
12575 121717
12576 O7PI152
12577 045717 12600 066575
STA S STA Sl LDA K3 STA S2
LDA S1,1 SAH ·*3
ISZ Sl JMP »-3
SAVE ADDRESS OF ALPHA STRING S2«-52525R
SET HIGH/LOW POINTER IF NF.XT WOPD IN ALPHA STRING<0
THEN EXIT LOOP
ELSE INCREMENT ADDRESS POINTER AND CONTINUE TO LOOP
ELSE INCREMENT ADDRESS POINTER AND CONTINUE TO LOOP
309832/0843
6731· 0732* 0733· β734· 0735*
0736· 0737· 0738»
12601 031717
12602 170402
STA Sl RET
SI«—(NUMRER OF CHARACTERS*!)
RETURN
1)749·
«762» 0763*
0774· fl775· «776·
0782·
the CALLTHG sequence is:
LDA INCREMENT
LDB DIRECTION INFORMATION . JSH L16F
12603 074006 L16F RBR 1 ROTATE B RIGHT 1
126P4 (374111 SLB **Z IF B(H) = I (NEGATIVE INCREMENT)
12605 070076 TCA THEN A«~Λ
12606 031744 STA ARl SAVE INCREHENT VALUE
12607 021726 LDA S8 Α«·Χ REFERFNCE POSITION
12613 074113 SBp *»2 IF B(15)=l
12611 021727 LDA S9 THEN A<-Y REFERENCE POSITION
12612 D35722 STß S4 SAVE DIRECTION INFORMATION
12613 055721 DSZ S3 INCREMENT S3
12614 Ö66616 JHp **2 SKIP I INSTRUCTION
12615 C01744 ADA ARl A«-A*AR1 - AOD INCREMENT
12616 045721 ISZ S3 INCREMENT S3 AND IF S3#0
12617 G66615 JMp *-2 . THEN CONTINUE TO LOOP
12620 070137 LDB A B«-A
12621 06P265 JSH LIlB A«-VALUE RFTWEEN 0<=B<=9999
12622 02S7?2 LOB S4 B«-DIRECTJON INFORMATION
12623 074153 SBP **3 IF B(15)=l
12624 131653 STA DYP,I THF.N SAVE VALUE IN Y COORDINATE POSITION
12625 170402 RET AND RETURN
12626 131652 STa ΟΧΡ,Ι ELSE SAVE VALUE IN X COORDINATE POSITION
12627 170402 RET AND RETURN
L16G IS USED TO GET ThE NEXT CHARACTER FROM THE ALPHA STRING.
12630 121716 L16G LDA S»I A«-WORD FROM ALPHA STRING
12631 025720 LDB S2 8*-HlGH/|_OW POINTER
12632 074006 K4 RBR 1 ROTATE POINTER I PLACE
12633 935720 SlB S2 AND SAVE POINTER
12634 674153 SBp **3 IF B(15)=l (CHARACTER IN HIGH PART OF WORD)
12635 070346 WAR 8 THEN ROTATE HALF WAY
12636 066640 JMP »*2 AND SKIP I INSTRUCTION
12637 045716 ISZ'S ELSE INCREMENT BUFFER ADORESS
12640 050345 AND P127 SAVE BITS «-7
12641 170402 RET RETURN
L16H IS USED TO SET-Up THE NEXT DIRECTIONAL VECTOR.
12642 021725 L16H LDA S7
12643 070646 RAR 14
12644 P3I725 STA S7
12645 050401 AND P3
12Λ46 070076 ICA 12647 031721 STA S3
12650 170402 RET
A«-VECTOR INFORMATION WORD
ROTATE A !'♦
AND SAVE VECTOR WORD SAVE BITS 0-1
A«-A
S3«-(INCREMENT VALUE -1) RETURN
309832/0843
plotter drivers (Kurvenschreiber-Treiber)
07P6· PLOTTER STATUS CHECK 0787·
0788· Request status and set pen position information into the sign bit,
(1789·
G«-PLOTTER SELECT COOE
SAVE SELECT CODE IN S15 GET STATUS
ROTATE A RIGHT 12
RETURN
0790 | 12651 | 027677 Ll2A- | LDB | P.SC |
f791 | 12652 | 035735 | SlB | S15 |
C792 | 12653 | 063555 | JSm | L20B*1 |
f793 | 12654 | 074546 | HBR | 12 |
0794 | 1265S | 170402 | RET |
0796·
0797· MOVE PLOTTER PEN.
0798»
6800» POSTIONS TO PLOTTER IN FOUR PASSES.'
FOLLOWS;
then output χ and υ
«803· | β-3 | BCD DECADE I | OR | 100 |
0804· | 4-7 | BCO OECAOE 1(5 | OR | 10000 |
08K5· | B | SYNC/NOT SYNC | ||
£806· | 9 | BCD/BINARY | ||
«BfiS7* | 10 | UP/OOWN | ||
«808» | U | DATA/PEN | • | |
ββΟ9· | ||||
€810 | 12656 | 323677 L12B | LDA | P.SC |
0811 | 12657 | 031735 | STA | SlS |
C812 | 12660 | 920410 | LOA | M4 |
β813 | 12661 | 031662 | STA | I |
C614 | 12662 | 320406 | LDA | M2 |
0815 | 12663 | 031663 | SlA | J |
C816 | 12664 | 121652 | LOA | DXP,I |
6617 | 12665 | 072054 | SES | •♦If S |
«1818 | 12666 | 066670 | JMP | •♦2 |
6819· | ||||
C820 | 12667 | 021664 L13B | LDA | K |
C821 | 12670 | 070346 | RAR | 8 |
C822 | 12671 | 031664 | STA | K |
6823 | 12672 | 0.50342 | and' | P255 |
0824 | 12673 | 078134 | SES | •♦2,C |
«825 | 12674 | 040341 | IOR | P256 |
«826 | 12675 | 025662 | LDB | I |
0827 | 12676 | 074056 | CMB | |
C 828 | 12677 | 074044 | SBL | 15 |
«829 | 12700 | 074242 | SBR | 6 |
«830 | 12701 | 074217 | IOR | B |
«831 | 12702 | 063535 | JSM | L20A |
0832 | 12703 | 070075 | SEC | •♦i,c |
«833· | ||||
0834 | 12704 | 045662 | ISZ | I |
0835 | 12705 | 066707 | JMP | •♦2 |
C836 | 12706 | 170402 | RET |
TOTAL NUMBER OF SEGMENTS J«~2
NUMBER OF SEGMENTS/COORDINATE A«-X COORDINATE POSITION
E+l
SKIP 1 INSTRUCTION
A«-DATA WORD TO BE OUTPUT
ROTATE WORO HALF ViAY
AND SAVE DATA WORO SAVE BITS 0-7
IF E = I ΛΝΓ>
Ε«·0
GENERATE BINARY CONTROL BIT • FOR EVERY OTHER OUTPUT WORD
INCLUDE BINARY CONTROL BIT OUTPUT DATA WORD
INCREMENT 1 ANO IF I «PI (MOPF SEGMENTS»
THEN SKIP 1 INSTRUCTION AND CONTINUE ELSE RETURN
309832/0843
PLOTTER DRIVERS
6837*
a838 | 12707 | 845663 | ISZ | J |
CB39 | 12710 | 366667 | JHP | L13B |
6840 | 12711 | 121653 | LDA | DYPtI |
βΒ41 | 12712 | Ö66670 | JMP | L133*l |
•INCREMENT J AND IF J«0 (NEED 2ND SEGMANT OF COORDINA
THEN LOOP TO OUTPUT NEXT SEGMENT A«-Y COOROTNATE POSITION
LOOP AND OUTPUT Y SEGMENTS
0843*
6845» flB46» C647»
ti 848* 0649«
0850»
PEN UP/DOWN ROUTINES.
FIRST CHECK STATUS AND IF THE POSITION, EXIT THE HOUTINE.
0852 0853 G854 «855«
«856* 6857» 6858
CB60 0861 «862 C863
0864« £865
PEN DOWN
12713 062651 L12C
12714 028431
12715 Ö74253
12716 170402
PEN UP
12717 662651 L12D l?72fl C75713
12721 02?/402
12722 071610 L13C
12723 Ü70246
12724 067535
12725 0000S0
JSH L12A LDA P3 SBP L13C RET
JSH L12A SBP *-2 LDA P2 S2A L120-1
RAR JHP L20A
BSS PEN IS ALREADY .IN THE CORRECT
A+PLOTTER STATUS Α«·3 ~ PEN DOWN CONTROL BITS
IF B(IS)=O (PEN UP) THEN GO TO L13C ELSE RETURN
ALLOTTER STATUS IF B(15)=H (PEN UP) THEN RETURN
Λ<·2 - PFNUP CONTROL BITS IF A=0 (7.ER0 STATUS) THEN RETURN
POSITION CONTROL BITS OUTPUT PEN COMMAND. IHPLIED RETURN
CHECKSUM WORD
309832/084 3
equates (Gleichsetzen)
βΟ67·
«868·
0869·
C870
0871
«872
{1873
0874
C875
0876
0877
0878
«880
C881
6803
0885·
0886
B8B7
0888
0889
0890
0091
0892
ff 893
0896
t-897
C898
C699
«900
«901
0902
0903
0904·
C935
0936
0907
0908
«939»
0910
0911
0912
0913
0914
0915
0916
0917
0916
0919
0920
0921
β92^
SOU'S
01650 «1650 «1651 «1652
01653 Cl 654 β 1655 01656
01657 ei 660 01661 01662
01663 «1664 01665
01716 S1717 01720 01721 01722 01723
C1724 61725 01726 C1727 01730
01731 0173? C1733 01734 61735
01736 01737
«1740 01741 «1742 81743
01556 01557 00346 B1S54
01553 01555 01543 «1710 00247 01740 01744
01701 00265
DFMT
OXP
DYP
DLI
DQX
DAX
DBY
DAY
DIN
Sl
S2
S3
S4
S5
S6
S7
S8
S9
S10
SIl
S12
S13
S14
S15
S16
S17
RFP.C REP.Λ FW CC
API
AP2
XJ
OPl
0P2
0P3
LIMl
.END?
• ΤΛΒ7
.Tl
ARl
.WKC
MATH
EOU 1650B EOU D EOU D»l
EOU D»2 EQU 0*3
EOU D»4 EOU 0*5 EOU 0*6
EQU D»7 EOU 0*8
EOU 0*9 EOU 0*10 EOU 0*11
EOU 0*12 EQU 0*13
EQU 17168 EOU S»l
EOU S*2 EOU S*3 EQU S*4 EOU S^5
EOU S«6 EQU S»7 EQU S*fl
EOU S*9 EQU S*1B EOU S*ll
EOU 5*12 EOU S*13 EOU S»14
EOU S»15 EOU S*16 EQU S*17
EOU S»1H EOU S*19 EOU S»20
EOU S*21
EQu 1556B ECU 1557B EQU 346H
EQU 1554B 1S53B 1S55B 1543B
1710B
ECU ECU EOU EOU
SYSTEM OPTION BLOCK TABLE TO ADDRESS OF LAST FORMAT
TO ADDRESS OF NEXT END ROUTINE SEGMENT
TO X COORDINATE POSITION TO Y COORDINATE POSITION TO LETTER FORMAT INFORMATION
TO X
TO X
TO Y
EOU 247B EOU 1740B EOU 1744B EQU 1701B
EQU 265B
ADDRESS OF LINK WORp LINK WORn
LINK WORD LINK WORD LINK WORn
LINK WORn LINK WORD LINK WORD LINK WORD
LINK WORO I
J
3 Ü 9 8 3 2 TO 8 U3
0923
fl924
C925
0926
0927
β92β
0929
<J930
«5931
β932
8933
0934
(5935
0936
«937·
0938*
0939»
β 940
0941
6942
C943
6944
fl945
0946
0947
6948
0949
0950
0951
0952
€953
β95'4
8955
0956
0957
β958
0959
6960
«961
0962
6963
0964
0965
0966
3967
0968
α969
0970
0971
0972
β973
β974·
8975
«976
0977
•976
01561 01351 00552
01544 00326 01605 60277
61703 00323 Ö0312
Cl 322 12717 00533
EQUATES
CODE
BAD
SXJ
SKEY
RECY
IMA '
.FMT
.IBUF
.WPRT
SMON
ENT2
FIXPT
PE.E
.X3
constants
00341 00342 C0345
fi0466 00553 30505 00404 00356 G0530
P 05 27 CB545 Ö0544
S0537 03360 00453 00452 00451
00352 (10365 00366 00367 00372 63376
S0400 03401 00402 00403 30405
30406 00407 C0410 C0415
00420 00424
00522 00446
«0441 00442
EOU 1561B EOU 1351B EOU 552R
EQU 1544» EQU 3260
EOU 1605B EOU 277B ECU 554F) , EOU 1703B
EOU 323R EQU 3IRB EOU 1322B
EOU L12D EQU 533B
P256
P255
P127
P96
P91
P90
P69
P47
P46
P45
P44
P43
P33
P32
P22
P21
P20
P17
P15
P14
P13
P10
P6
P4
P3
P2
Pl
Ml
M2
M3
M4
M10
M16
M64
K3 K7 K8 K13
EQU 34 IB EQU 342B EOU 345B
EQU 466B EQU 553B EQU 505B EQU 404B EQU 356B
EQU 530B EQU 527B EQU 545B ECU 544B EQU 537B EQU 360B
EOU 453B EQU 452B EQU 45IB EQU 352B
EOU 365B EOU 366B EQU 367B EOU 372B EQU 376B
EOu 400B EQU. 40IB EQU 402B EOU 403B
EOU 405B EQU 406B EOU 407B
EQU 410B EOU 415B EOU 420R
EOU 424B
EQU 5220 EQU 446B
EOU 44 IB EQU
226272
•979 «0477
.DTl EOU <»77β
309832/0843
ORSGJNAi IMSPECTED
WRITE EXECUTION ROUTINE (Schreiben-Ausführung)
1*53· | GET SELECT CODE. | 045652 L23A | TF ERROR OCCURS | GO BUCK TO | go το the select code error |
145'»· | ROUTINE. CONTROL | »67334 | WILL | THE SYSTEM. | |
1455· | 067326 | DXP | |||
1456· | 13331 | 063260 | ISZ | •♦2 | INCREMENT OXP AND IF DXP=0 |
1457 | 1333? | 067337 | JHP | L238 | (NO MORE PARAMETERS) |
1458 | 13333 | 667326 | JMP | L21E | THEN GO TO ERROR ROUTINE |
1459 | 13334 | JSH | **Z | IF NEXT PARAMETER=ALpHA | |
1460 | 13335 | B61322 | JMP | L23B | |
1461 | 13336 | 374146 L23C | JMP | THEN GO TO ERROR ROUTINE | |
1462 | 835735 | FIXPT | |||
1463· | 13337 | C74546 | JSM | 4 | RECONVERTED BINARY INTEGER DATA WORD |
1464 | 13340 | 004405 | RBR | sis | ROTATE B RIGHT 4 |
1465 | 13341 | 074113 | STR | 12 | SAVE SELECT CODE |
1466 | 1334? | »67326 | HQR | Hl | ROTATE B RIGHT 12 |
1467 | 13343 | «!07655 | ADB | •♦2 | IF SELECT CODE<1 |
1468 | 13344 | S74112 | SBP | L23B | |
1469 | 1334S | 967326 | JMp | M15 | THEN GO TO ERROR ROUTINE |
1470 | 13346 | 170402 | AOB | ·*?. | IF SELECT CODE>15 |
1471 | 13347 | SBH | L23R | ||
1472 | 13358 | JMP. | THEN GO TO ERROR ROUTINE | ||
1473 | 13351 | RET | RETURN | ||
1474 | |||||
0 9 8 3 2/0843 0WGHNAL INSPECTED
READ EXECUTION ROUTINE (Lesen-Ausführung)
first ret'select code and make sure that «<sc<16. also a
COMMA MUST FOLLOW THE SELECT CODE. IF AN EWOR OCCURES» LOOK
FOR THE NULL CHARACTER IN THfZ STRING AND THEN" SET THE ERROR
CODE AND RETURN TO ThE SYSTEM.
13352 E570742 RE.E
13353 S31730
13354 160552
13355 Ö10352
13356 067591
13357 663141
13360 067354
13361 610451
13362 067367
SAr 16 . S10«-0
STA Sl0 INITIALIZE THE NUMBER BUILDER ROUTINE
JSM SX J» I A«-NEXT CHARACTER FROM MEMORY
CPa P17 IF A=A REFERENCE TO A»B»C»X.Y» OR Z
JMP L26E THEN GO TO L26E
JSM L18C IF A IS A NUMBER
JMP «-4 THEN LOOP AND CONTINUE TO BUILD NUMRER
CPA P20 IF A=COMMA
JHP L26A THEN SKIP TO L26A
ERROR ROUTINE - SEAKCHFOR NULL CHARACTER.
13363 0103Se L26Z
13364 Z67327
13365 160552
13366 £67363
13367 025730 L26A 13370 S63340
CPA P47 IF A=NULL CHARACTER
JMp L23B+1 THEN GO TO ERROR ROUTINE
JSM SXJ, I ELSE A«-NFXT CHARACTER FROM MEMORY
JMP L26Z AND CONTINUE TO LOOP
LDB SI« · B«-BMILT NUMBER
JSM L23C CHECK RANGE OF SELECT CODE
3 0 9 832/08A3
ϊα r«UM INPUT TO OUTPUT DEVICE
{Durchgangsdaten von Eingabe- zu Ausgabe-Gera "I)
the syntax is as follows:
CTR SCl.SCZ
WHERE SCl=SELECT COOE OF INPUT DEVICE SC?=SELECT CODE OF OUTPUT OEVICE
GET BOTH SELECT CODES. IF LESS THEN TWO SELECT CODES OR IF
select cooes out of hange» set error 20 and return to;System.
jsm l22r set (jp parameter information
jsm l23a set up select code on input device
jsm l24d set input status bit
LOA SlS S16«-S15
STA S16 TRANSFER SELECT CODE
JSM L23A SET UP SELECT CODE OF OUTPUT DEVICE
LDA S15 S17«-S15
STA S17 TRANSFER SELECT CODE
13564 063314 CO.E
13565 063331
13566 Ö63531
13567 021735
13570 Ö31736
13571 063331
13572 P21735
13573 031737
PASS CHARACTER RY CHARACTER FoRM THE INPUT DEVICE TO
THE OUTPUT DEVICE U^T IL AN EOM CODE IS DETECTED.
13574 P21736 L27A
13575 031735
13576 063507
13577 11(1401
13600 170402
13601 025737
13602 035735
13603 C63535
13604 £67574
LDA S16 STA S15 JSM L24B CPA P3 RET
LDB S17 STB S15 JSM L20A JMP L27A
SET INPUT SELECT. CODE
A«-CO[)E FPOM INPUT DEVICE
IF A=ENO OF MESSAGE CHARACTER
A«-CO[)E FPOM INPUT DEVICE
IF A=ENO OF MESSAGE CHARACTER
THEN RETURN WITHOUT PASSING A CR AND LF S15«-S17
SET OUTPUT SELECT CODE
OUTPUT CODE IN A REGISTER CONTINUE TO LOOP
OUTPUT CODE IN A REGISTER CONTINUE TO LOOP
13605 000130 Ρ8Θ DEC
30 9 8 32/Ό843
I ULJ
13612 | VECTER TABLE | LETTER VECTOR TAHLE | 140000 | VECTR | P94 | DEC | IzA in | |
000000 | • | HSS | (Vektor-Tafel) | |||||
1791 | 13612 | 112034 | P36 | DEC | 13612H | |||
1792· | 13613 | 000136 | DEC | |||||
1793· | 13632 | 113034 | DEC | |||||
1794· | o«G | 13633 | Ö0J1044 | DEC | ||||
1795 | 13634 | 0432?6 | OCT | -163B4 BLANK | ||||
1796 | 13635 | (316000 | 15 ENTIRE AREA IS USED BY THE MNEMONIC ROUTINE | |||||
1797 | 13636 | &14524 | M18 | DEC | -27620 ( | |||
1798 | 13637 | »66000 | 94 | |||||
1799 | 13640 | 602700 | M48 | OEC | -27108 ) | |||
1800 | 13641 | 177756 | DEC | 36 | ||||
1831 | 13642 | 043300 | Kl | DEC | 43226il6000 ASSIGN | |||
13643 | 177720 | DEC | ||||||
1802 | 13644 | 016000 | K2 | DEC | 6484*27648 ♦ | |||
13645 | £37777 | OCT | ||||||
1803 | 13646 | C05300 | DEC | 1472 t ■ | ||||
I8ü4 | 13647 | 039740 | OCT | -18 | ||||
1805 | 13650 | C04242 | M15 | OCT | 18112 - | |||
1806 | 13651 | 605300 | -48 | |||||
1807 | 13652 | 014700 | DEC | 7168 | ||||
18Z8 | 13653 | 177761 | DEC | 37777 | ||||
1809 | 13654 | 105145 | OCT | 2752 / | ||||
1810 | 13655 | 031300 | 740 | |||||
1811 | 13656 | 135145 | DEC | 4242t5300 0 | ||||
.13657 | £61014 | |||||||
1812 | 13660 | 132152 | DEC | 6592 1 | ||||
1813 | 13661 | Q26Ö00 | -15 . | |||||
1814 | 13662 | 124105 | OCT | 105145,1300 2 | ||||
13663 | 023300 | |||||||
1815 | 13664 | 1241(56 | K5 | DEC | -30107,25100 .3 | |||
13665 | G2«J114 | |||||||
1816 | 13666 | 135034 | OCT | -3163«.11264 4 | ||||
13667 | D27512 | LDB | ||||||
Ϊ817' | 13670 | 044246 | DEC | 124105,20300 5 | ||||
13671 | 040046 | K6 | ||||||
1818 | 13672 | ?31250 | P.SC | DEC | -2245*1,8268. 6 | |||
13673 | 1343300 | INTE | . | |||||
1819 | 13674 | 170i'3H | SFHT | OCT | 105034 7 | |||
1820 | 13675 | 163300 | OLINK | OCT | VECTR-64 | |||
1821 | 13676 | 033032 | FHT0 | DEF | 18590,16*22 8 | |||
13677 | Cai7fl3 | DEF | ||||||
1822 | 13700 | C01650 | DEF | 680»!BJ12 9 | ||||
13701 | 01^022 | D9999 | OCT | |||||
1823 | 1370? | 014270 | Ρ^999 | 17000P TYPEWRITER SELECT CODE | ||||
1824 | 13703 | (J3P400 | K10 | 160000 PLOTTER SELECT CODE | ||||
1825 | 13704 | 114631 | KlI | DEC | ELIW-ID RELATIVE ADDRESS OF THE OPTION BLOCK ROUTIN | |||
1826 | 13705 | C23417 | DEC | FMT0-ID RELATIVE ADDRESS OF THE STANDARD FORMAT | ||||
1827 | 13706 | 023420 | DEC | D ADDRESS OF OPTION BLOCK R/W AREA | ||||
1828 | 13707 | 154360 | DEC | 15022,14270,32400 STANOARD FORMAT | ||||
13710 | 000000 | BSS | ||||||
13711 | 004242 | DEC | ||||||
1829. | 13712 | -262IS | ||||||
1830 | 13714 | 9999 | ||||||
1831 | 10000 | |||||||
1832 | •!•10800 | |||||||
1833 | 2 | |||||||
1834 | 2210,25792 A · | |||||||
309832/0843
IZZ,
13715 | VECTER TABLE | DEC | 2213,17952 | B | • | G | J | H | |
13716 | 062300 | ||||||||
1835 | 13717 | 004245 | OEC | -22207,11264 | C | H | K | N | |
13720 | 043040 | ||||||||
1636 | 13721 | 124501 | ■ OEC | 2198,4288 | O | I | L | O | |
1372? | 026000 | 164503 PLOTTER LETTE | 1 CHECKSUM WORD | ||||||
1837 | 13723 | O042?6 | DEC | -22459,16428 | E | -24060,-16384 | 2138,11264 | P | |
13724 | 010300 | ||||||||
1838 | 13725 | 124105 | DEC | -22459,16576 | F | 2122,17088 | 2090,-16384 | Q | |
13726 | B40054 | ||||||||
1839 | 13727 | 124105 | DEC | -22526,26048 | -32724 | 2210,3072 | R | ||
13730 | 040300 | ||||||||
1840 | 13731 | 1243(12 | DEC | 2118,-23872 | 2214,19456 | S | |||
13732 | 062700 | ||||||||
1841 | 13733 | 004106 | DEC | 6592 | 8330,9664 | T | |||
13734 | 121300 | OCT | • | ||||||
1842 | 13735 | (V 14700 | DEC | 2214,17708 | υ | ||||
1843 | 13736 | 164503 K9 | |||||||
1844 | 13737 | 121004 | DEC | 612,-30016 | ν | ||||
13740 | 148390 | ||||||||
1845 | 13741 | 004112 | DEC | -30063,-16384 | W | ||||
13742 | »41300 | BSS | |||||||
1B46 | 13743 | 130054 | DEC | -32726,-16384 | χ | ||||
ie47 | 13744 | 006000 | |||||||
1848 | 13745 | 604132 | DEC | .-32340 | Y | ||||
13746 | 026*000 | 6710B | |||||||
1849 | 13747 | 334G52 | DEC | -32606,-21504 | Z | ||||
13750 | 140ΟΠ0 | ||||||||
1850 | 13751 | 034242 | DEC | 264fl,11264 | |||||
13752 | O360GO | ||||||||
1851 | 13753 | 004246 | DEC | -31323,7168 | |||||
13754 | (346000 | ||||||||
1852 | 13755 | «".20212 | DEC | -30206,-16384 | |||||
13756 | 022700 | ||||||||
1853 | 13757 | 004246 | DEC | ||||||
13760 | 042454 | ||||||||
1854 | 13761 | £31144 | DEC | ||||||
13762 | 105300 | ||||||||
1855 | 13763 | J052?l | DEC | ||||||
13764 | 140000 | ||||||||
1856 | 13765 | 130052 | DEC | ||||||
13766 | 140000 | : DEF | |||||||
1857 | 13767 | 10(1654 | DEC | ||||||
1858 | 13770 | ßfli.710 ENDE | |||||||
1859 | 13771 | 100122 | DEC | ||||||
13772 | 126000 | ||||||||
i860 | 13773 | 035130 | DEC | ||||||
13774 | 026000 | ||||||||
1861 | 13775 | 102645 | DEC | ||||||
13776 | 016000 | ||||||||
1862 | 13777 | 135002 | |||||||
140000 | END | ||||||||
1863· | |||||||||
1864 | |||||||||
• NO | ERRORS» | ||||||||
309832/0843
USER-DEFINEABLE FUNCTION BLOCK — "UDFUN"
(Belegbarer Funktionsblock ."UDFUN")
0001 | 14000 | 000004 | 662765 | ASMBtAtL | OPTION | 14000R |
C003 | 800071 | 631720 | ORG | |||
0005· | 001224 | 070402 | ID ' DEC | |||
0006· | DEFINE-A-KEY | 600567 | 603724 | DEF | ||
0007 | DEF | SYNT-ID | ||||
6008· ß009 |
14000 | INITIALIZE | 325543 | DEF | EXEC-ID | |
61510 | 14001 | G70577 | MNEM-ID | |||
2011 | 14002 | 14004 | 904371 | |||
β012· | 14003 | 14005 | 635543 | |||
0013* | 14006 | JSM | ||||
0014» | 14007 | 023120 | STA | FIND | ||
0015 | S31615 | SAR | T2 | |||
Ρ.016 | 14010 | ADA | 9 | |||
6017 | 14011 | •362745 | NSRW | |||
0018 | 14012 | 621720 | LDB | |||
0019* | 14013 | 131655 | STb | LIMl | ||
6020 | R03151 | ADB | AtI | |||
0021 | 14814 | 625710 | STB | DPIl | ||
0022 | 14015 | £31710 | LIMl | |||
0023 | 135654 | LDA | ||||
0024* | 14916 | STA | DP144 | |||
0025 | 14017 | 121655 | BSTK | |||
£026 | 14B2C | 003427 | JSM | |||
6027* | 14021 | iJ31623 | LDA | TINK | ||
QZ?B | 14 022 | 121655 | STA | T2 | ||
0029 | 14023 | »02445 | ADA | PGtI | ||
ßß30 | 14024 | 631616 | LDB | ADND | ||
Ö032 | STa | .END2 | ||||
6033 | 14025 | P25560 | STb | .END2 | ||
0034 | 14026 | 121655 | ENtI | |||
C335 | 14027 | Ü02l?3 | LDA | |||
6036* | 14030 | 031560 | ADA | PCI | ||
6037 | 14031 | 135656 | STA | ADGT | ||
6038 | 14032 | LDA | GOTF | |||
«339 | 121655 | ADA | PGtI | |||
G041 | 14033 | 670442 | STA | AZERO | ||
«042 | 14034 | 600410 | .ERASE | |||
«043 | 14335 | 131652 | LDB | |||
ß-344« | 14336 | 024431 | LDA | OSW | ||
flß45 | 14037 | 074517 | ADA | PGtI | ||
0046 | Ö72110 | STA | CMPLR | |||
{1047 | 14040 | stb | OSW | |||
C048 | ' 14041 | SOSWtT | ||||
C049 | 14342 | Lt)A | ||||
C050« | 14043 | SAR | PG.I | |||
0051 | 14044 | ADA | 10 | |||
«352 ' | 14045 | STA | DM4 | |||
C ÖS 3 | 14046 | LDB | NABtI | |||
fi054 | LDA | OQl | ||||
0355 | I<2a | BtI | ||||
(5056 | «+2 | |||||
0057 | ||||||
BASIC SYSTEM ENTRIES, SYNTAX LINKAGE RUN TIME CODE LINKAGE
DISPLAY MNEMONIC
DISPLAY MNEMONIC
GET ADDRESS OF THIS BLOCK
RETURN WITH ADDRESS IN A-REG.
A = 8tl0»l2
AND ITS RESERVED R/W
RETURN WITH ADDRESS IN A-REG.
A = 8tl0»l2
AND ITS RESERVED R/W
RESERVE 11 R/W WORDS
BY MOVING LTMIt A-REG HAS AODRESS OF NON-SHARED R/W
FOR THIS BLOCK
READJUST LlMl
READJUST LlMl
DOUBLE SI7E OF RUN-TIME STACK"
TRANSFER LINKS. NON-SHARED R/W TAKEN FROM USER'S R/ SET UP PAGE IDENTIFICATION (ADDRESS OF OPTION BLOCK)
SET UP ADDRESS OF END LINKAGE ROUTINE. GET CURRENT START ADDRESS O? END LINKAGE
SAVE NEW ADDRESSt SAVE OLD ADDRESS FOR OAISY-CHANGIN
SAVE OLD ADDRESS FOR DAISY CHAINING
SET UP SPECIAL GTO LINKAGE
SET UP CONTINUATION OF RGTO IN
THE BASIC SYSTEM
THE BASIC SYSTEM
SET UP CONTINUATION OF BASIC SYSTEM COMPILER
SAVE OLD ADDRESS FOR DAISY CHAINING
CHECK FOR ABSENT BLOCKS
NAB = 0tlt2
SEARCH THE STARTING ADDRESSES
IF WORD IS NON-ZERO OPTION BLOCK IS PRESENT
309832/0843
SET UP EXTRA COOES
SET VP EXTRA CODES
SET. UP EXTRA CODES
i THIS SUOPf)UTINE IS USED
TO FETCH A BASE ADDRESS FOR OPTIONAL COOES
BASE ADDRESS OPTION BLOCK #1 BASE ADDRESS OPTION BLOCK #2 CASE ADPRESS OPTION BLOCK #3
■05B | 14047 | 063050 | JSM | ECDS |
•059 | 14050 | 024432 | LDB | 0B2 |
006» | 14051 | 074517 | LOA | BtI |
«061 | 1405? | 072110 | R2A | •♦2 |
0062 | 14053 | 061050 | JSM | ECDS |
0063 | 14054 | »24433 | Lob | 0Π3 |
006« | 14PIS5 | 074517 | LDA | UtI |
•065 | 14056 | 072310 | «ZA | •♦6 |
0066 | U0S7 | »67050 | JMP | ECDS |
«067» | ||||
«068 | 14060 | 121655 ADCD | LDA | PG »I |
0069 | 14061 | 070442 | SAR | 10 |
e070 | 14062 | U32065 | ADA | •♦3 |
0071 | 14063 | 870016 | EXA | |
607? | 14064 | 173402 | RET | |
0073 | 14065 | »2?062 | LDA | •-3 |
9074 | 14066 | 000154 | OCT | 154 |
0075 | 14067 | 000162 | OCT | 162 |
0076 | 14070 | 1)00170 | OCT | 170 |
309832/0843 ORIGINAL INSPECTED
226272
0078» | compile | 973113 | SYWT | SAP | »♦2 |
0079» | Ö6S464 | JMP | UNCPL | ||
0080 | 14071 | Ö21127 | LDA | SCODE | |
flam | Hfl72 | 031561 | SYNTl | STA | CODE |
C0R2 | 14073 | 170402 | «ET | ||
ceo3 | 14074 | ||||
€08'« | 14375 | 063071 | C0PL3 | JSm | GETIC |
0085* | 031720 | sta | T2 | ||
0086 | 14076 | 670137 | LDB | A | |
0087 | 14077 | 002717 | ADA | DM19 | |
6088 | 14100 | 071553 | SAP | «-5 | |
9089 | l'»101 | Ö00372 | ADA | OP10 | |
0390 | 14102 | 670153 | SAP | **3 | |
6291 | 14103 | ($00377 | ADA | DP5 | |
Ö092 | 14104 | Ö71353 | SAP | a-9 | |
0093 | 14105 | 164533 | JMP | RETl.I | |
C094 | 14106 | ||||
0095 | 14107 | 121724 | CMSET | LDA | EOLFG,I |
Ö096· | 870310 | S2A | CMSl | ||
«097 | 14110 | (362060 | JSm | AOCO | |
Θ098 | 14111 | 030403 | ADA | DP4 | |
6099 | 14112 | 070137 | LD8 | A | |
0100 | 14113 | Ö20537 | LDA | COEOL | |
άΐ01 | 14114 | 163742 | JSM | CCItI | |
0102 | 14115 | f?7fi742 | CMSl | SAR | 16 |
0103 | I4II6 | 131724 | 1 - | STA | EOLFG,I |
«104 | 14117 | 131651 | STA | .GtI | |
βΐ05 | 14120 | «66154 | JMp | NORET | |
0lß6 | 14121 | ||||
0107 | 14122 | 00fl124 | CHPLR | DEF | »♦1-ID |
6108* | |||||
C109 | 14123 | 062745 | COMPR | JSM | TlNK |
βΠ0· | 121655 | LDA | PG,I | ||
Olli | 14124 | 07ß442 | - | SAR | 10 |
ei la | 14125 | 032711 | ADA | TTB0 | |
6113 | 14126 | 070016 | EXA | ||
0114 | 14127 | 131726 | STa | IEXC.I | |
ens | 14130 | »25540 | COl | lob | CN |
β116 | 14131 | 021601 | LDA | STAT | |
öl 17 | I4I32 | 070102 | SAR | 3 | |
01)8 | 14133 | 670151 | SLA | «♦3 | |
0119 | 14134 | 014454 | CPß | CNFY | |
0120 | 14135 | G65317 | JMP | El | |
ai2i | 14136 | Ö14355 | CPB | CNFR | |
0122 | 14137 | Ö66117 | JMP | CMSl | |
0123 | U140 | 121651 | LDA | .6,1 | |
el 24 | 14141 | 672550 | H2A | COPLl | |
6125 | 14142 | 417131 | CPB | CNFO | |
9126 | 14143 | 366161 | JMP | C0PL2 | |
8127 | 14144 | Ö14457 | CPO | CNFE | |
i)28 | 14145 | 066110 | JMP | CMSET | |
0129 | 1414A | 017148 | CPB | CNFT | |
0130 | 14147 | 0664?6 | JMP | ERET | |
0131/ | 14150 | 017141 | CPB | CNF.D | |
0132 | 14151 | ||||
0133 | 1415? | ||||
IF A-REG - REOUST IS FROM (JNCOMPILER
IF A+ REOUEST IS FROM SMON SET CONTROL NUMBER TO 51
SUBROUTINE USE TO ISOLATE FUNCTION KEYS SAVE SPECIAL CODE FOR THE KEY
IF KEYCODE IS GREATER THAN OR EQUAL TO IT IS A FUNCTION KEY
KEYCODES ARE FUNCTION KEYS OF THIS BLOCK RETURN *1
CLEAR SPECIAL EOL FLAG CLEAR SPECIAL DIRECTOR FLAG .
CONSTANT USEO TO SETUP COMPILER CONTIM1IiATION ROUTIN
TRANSFER LINKS TO R/W TEMPORARIES
.G IS SPFClAL ROUTING FLAG USEO IN SYNTAX CHFCKING
is code from the option block?
YES
IS CODE EOL? YES
YES.PREFIX WITH SPECIAL RETURN IS COOE END?
309832/0843
0135 | 14154 | 121656 | NORET LOA | SOSW, |
0136 | 14155 | «70737 | JMP | AtI |
fll37· | ||||
0138 | 14156 | ca;>542 | COPLl ADA | TTB2 |
0139 | 14157 | 070016 | E*A | |
«140 | 14160 | 070016 | EXA | |
0141· | ||||
1)142 | 14161 | O6?076 | C0PL2 JSM | C0PL3 |
0143 | 14162 | 066141 | JHp | EFuN |
el44 | 14163 | 021606 | LDA | PS |
0145 | 14164 | 025720 | LOB | T2 |
«146 | 14165 | 006543 | ADB | TTB3 |
0147 | 14166 | 074016 | EXB | |
0148 | 14167 | 074016 | EXB |
YES, CHECK TO SEE SPFClAL FND IS NECFSSARY
RETURN TO OLO COMPILER ENTRY AODRESS
PROCESSING REQUIRES THE USE OF .G
NON-FUNCTION KEY RETURN. LOAD PRESENT STATE OF COMP RELATIVE KEYCODE
JUMP THROUGH ROUTINE TABLE
309832/0843
USER-DEFINEABLE FUNCTION BLOCK — "UDFUN"
fllS0· | 14170 | Ö2S602 | ESCR | LDB | G |
«nisi | 14171 | 014376 | CPB | DP6 | |
0152 | 14172 | 066421 | JMP | GTFUN | |
0153 | 14173 | 163744 | JSM | CHKR»I | |
β 154 | 14174 | 020403 | LOA | DPI | |
C155 | 14175 | 131651 | ESCRl | STA | .GtI |
«156 | 14176 | «65304 | JMP | CPl | |
0157 | |||||
3158» | 14177 | 517131 | GEl | cpb | CNFO |
0159 | 14200 | 666202 | JHP | **2 | |
0160 | 14201. | C65317 | JMp | El | |
9161 | 14202 | Ü63071 | JSM | GETIC | |
6162 · | 14203 | Ö70150 | SZA | **3 | |
0163 | 14204 | Ö00A10 | ADA | DM4 | |
0164 | 14205 | 371612 | SAM | *-4 | |
«165 | 14206 | 020376 | LDA | DP6 | |
S166 | 14207 | 066175 | JMP | ESCRl | |
0167 | |||||
«168* | 14210 | 014457 | GE6 | CPB | CNFE |
3169 | 14211 | 866217 | JMP | SNULL | |
til70 | 142IH | ■314454 | CPB | CNFY | |
6171 | 14213 | Ü66217 | JMP | SNULL | |
0172 | 14214 | 914451 | CPB | CNFC | |
el73 | 14215 | 066174 | JMP | ESCRl-] | |
em | 14216 | Ö65317 | JMP | El | |
ens | |||||
Ö176» | 14217 | 020507 | SNULL | LOA | NULL |
BI 77 | 14220 | 061305 | JSM | CP 2 | |
C17B | 14221 | 678742 | STZG | SAR | 16 |
β 179 | 14222 | 131651 | STA | .G,I | |
C1C0 | 14223 | 366132 | JMP | COl | |
0181 | |||||
"SCR". GET SPECIAL ROUTING WORD BASIC
SYSTEM COMPILER.
IF 6 GTO OR GSB HAS PRECEEOED SCR
(BASIC SYSTEM ROUTINE) DOES SCR BEGIN STATEMENT?
YES
SET .G TO STORE SCR IN COMPILER OUTPUT AREA IS CODE FROM THIS OPTION BLOCK?
YES -
ELSE ERROR #1 GET INTERNAL CODE
ALLOW IEX ■
CODE MUST BE Λ FUNCTION CODE SET .6 TO 6 ANO PLACE CODE IN OUTPUT AREA
ENTRY FOR .G=6. IS CODE EOL?
YES
IS CODE EOS?
YES
ALLOW ONLY COMMA
CONTINUE SET ERROR «1 FOR ALL OTHER CODES
STORE SPECIAL CHARACTER FOR UNCOMPILER
RESET .G CHECK FOR SPECIAL EOL CONDITION -
309832/0843
"IEX" DOES IEX START THE STATEMENT
ALLOW ONLY EOL OR EOS TO FOLLOW IEX
em» | 14224 | 163744 EIEX | JSM | CHKBiI |
01 BA | 14225 | «20402 | LOA | DP2 |
01QS | 14226 | Ö66175 | JMP | ESCRl |
01Q6 | ||||
β1Β7· | 14227 | 014457 GE2 | CPB | CNFE |
01 BB | 14230 | 066110 | JMp | CMSET |
0109 | 14231 | 0144S4 | CPB | CNFY . |
0190 | 14232 | i)6622l | JMP | STZG |
0191 | 14233 | Ö65317 | JMp | El |
ill 92 | ||||
309 8 32/0843
USER-OtFINEABLE FUNCTION BLOCK — "UDFUN"
226272
14234 163744 ECALL
14235 Ö20401
14236 131651
14237 061304
14240 Ö25545
14241 374133
14242 074070
14243 673742
14244 674557
14245 374070
14246 Ö35545
14247 065373
JSH CHKB»Ι LDA DP3 STA .0,1
JSM CPl LDB PSP SBp SIB SAR STA B.I
SIB »»Ι STB PSP JMP ΕΧΙΤ*9
14Ρ50 017131 GE3
14251 066255
14252 Ö14452
14253 066277
14254 065317
CNFO JMP ALPAR-2 CPB CNFQ JMP ALQU JMP El
14255
14256
14257
14260
14261
14262
14263
14264
14265
14266
14267
14270
14271
14272
14273
14274
14275
14276
14256
14257
14260
14261
14262
14263
14264
14265
14266
14267
14270
14271
14272
14273
14274
14275
14276
020370 Ö61335 C63071 (»00410
Ö71552 Ö61334 023400 031606
«23366 Ö31631 070404
Ϊ41541 131541 145724 370742 131651
020507 α653β5
LOA JSm
ALPAR JSM ΑϋΛ SAm
ALPl JSM LDA STa LDA . STA SAL IOR
STa ISZ SAR
ALP2 STA LDA JMP
14277 O2G400 ALOU
14300 066175
14301 014452 GE4
14302 Ö66262
14303 314454
14304 065317
14305 065304
DP12
CP2
GETIC
DM4
*-5
CPl
DP4
PS
DP14
STAT
OP,I
OP, I
EOLFG,I
16
NULL CP2
LDA DP4 JMp ESCRl
CPb'CNFQ JMP ALPl CPB CNFY JMP El
JMp CPl
"CALL" DOES CLL BEGIN THE STATEMENT?
YES
SET .G=3
.G=3 ENTRY . IS CURRENT CODE FROM THE OPTION BLOCK
YES ·
IS CODE »
YES
STORE SPECIAL GTO FLAG IN OUTPUT GET INTERNAL CODE
MUST BE FUNCTION GROUP ELSE ERROR #1 STORE CURRENT CODE IN OUTPUT
SET STATE OF COMPILER TO 4 ALLOW COMMA'S AND QUOTE
ALLOW COMMA'S IF PARENTHESIS ARE USED *
SET SPECIAL EOL FLAG
RESET .G
FIRST CHARACTER WAS A QUOTE SET .G=4
YES
IF EOS?
YES, ERROR »»1
ELSE STORE CURRENT CODE IN OUTPUT
309832/0843
6243 0244
B245 0246
0247 6248
0251
0252·
0253
0255
0256
0257
«258·
«259
0260
0261
0262
0263
0264
0265
0266
0267
C268·
C269
0270
C271
C272
14306 061274 ESTRD
14307 010401
14310 366317
14311 073550
14312 020144
14313 031561
14314 Ö70742
14315 Ö31606
14316 167741
14317 662060 DEF
14320 030402
14321 031544
14322 020377
14323 066175
14324 14325 14326 14327 14330 14331 14332 14333 14334
Ö17131 GE5
666327
P65317
063071
090410
071652
061304
020402
366274
14335 Ö20077 EPAR
14336 331561
14337 163760 14340 164314
JSH DISIS CPA DP3 JMP DEF KZA «-5
LDA GAZ STa CODE SAR STa PS JMP CCtI
JSH ADCD ADA DP2 STA SKEY LDA DP5 JMp ESCRl
CPQ CNFO JMP *·2 JMP El JSH GETIC ADA DM4
SAM *-3 JSH CPl LDA DP2 JMP ALP2
LOA REG STA CODE JSH SKCDl»I
JMP BCPLR»I
"DEF/->F" OISALLOH IHPLlED STORAGE
PS=3?
yes treat key as def
if ps is not operano then syntax error
treat key as ->f
set code same as ->
set compiler state to that of operand jump to basic system stack routine
"DEF"
SET .0=5
.G=5. IS CODE FROM THIS OPTION BLOCK?
YESt FURTHER PROCESSING NECESSARY NO'» SYNTAX ERROR #1
SET .G=2
309832/0843
USEP-OEFINEABLE FUNCTION BLOCK — "UDFUN"
0274· | 14341 | 021602 | EFUN LDA | 6 |
0275 | 14342 | B10376 | CPA | DP6 |
0276 | 14343 | Ö66421 | JHP | GTFUN |
C277 | 14344 | C21720 | LDA | T2 |
0278 | 14345 | 662622 | ' JSM | SFFN |
0279 | 14346 | 074652 | SBM | EFl |
6280 | 14347 | S34406 | ADB | DM2 |
Ö281 | 14350 | 074517 | LDA | BrI |
6282 | 14351 | 070113 | SAP | «♦2 |
0283 | 14352 | Ö66374 | JMP | FNCLL |
«284 | ||||
β285· | 14353 | 604402 | ADR | DP2 |
0286 | 14354 | 121653 | LDA | IXFLG,I |
0287 | 14355 | 370110 | SZA | «♦2 |
«288 | 14356 | 067454 | JHP | CIEX |
6289 | 14357 | 163747 | JSM | GAS2,I |
«290 | 14360 | Ö5B345 | ANQ | RH |
0291 | 14361 | 111726 | CPA | IEXCtI |
B292 | 14362 | 067454 | JMP | CIEX |
€293 | ||||
€294* | 14363 | Ö21606 | EFl LDA | PS |
S295 | 14364 | 163744 | JSM | CHKBtI |
0296 | 14365 | 021602 | LOA | G |
Ö297 | 14366 | ß 1(1374 | CPA | DP8 |
«298 | 14367 | 065317 | JHp | El |
0299 | 14370 | C23730 | LDa | GSBK |
C300. | 14371 | B61305 | JSm | CP2 |
S301 | 14372 | Ö62240 | jsm | ECALL+4 |
C302 | 14373 | 666421 | JMp | GTFUN |
0323 | 14374 | ۥ23141 | FNCLL LDA | SORT |
3334· S335 |
14375 | «531561 | sta | CODE · |
6336 | 14376 | Ö70142 | SAR | 4 |
0307 | 14377 | 670204 | SAL | 12 |
0308 | 14403 | C31720 | STa | T2 |
C309 | 14401 | 163760 | jsm | SKCDl,I |
0310 | 14402 | Ü244CJ7 | LOB | DM3 |
S311 | 14403 | «35721 | STB | T3 |
0312 | 14404 | 160314 | JSM | BCPLR»I |
6313 | 14405 | 921720 | lda | T2 |
S314 | 14406 | 163743 | JSM | .STSKtI |
0315 | 14407 | S45721 | ISZ | T3 |
S316 | 14410 | 066405 | JMP | ♦-3 |
C317 | 14411 | 062060 | JSM | AOCD |
6318 | 14412 | Ö00377 | AOA | DP5 |
0319 | 14413 | P40446 | IOR | ALCOM |
6320 | 14414 | 041720 | 1OR | T2 |
{1321 | 14415 | 163743 | JSM | STSKtI |
C322 | 14416 | P6P060 | JSm | ADCD |
6323 | 14417 | tii>£376 | ADA | DP6 " |
0324. | 14420 | Ö65305 | JMP | CP2 |
«325 | ||||
• 326* | 14421 | 82H374 | GTFUN LDA | DP8 |
«327 | 14422 | Ö31602 | STA | G |
0328 | U423 | 023370 | LDA | DP12 |
«329 | ||||
"F*»G*»H*". GET SPECIAL ROUTING FLAG
OF BASIC SYSTEM. IS FUNCTION KEY FOLLOWING GTO OR G YES
GET INTERNAL CODE
LOOK TO SFE IF FUNCTION DEFINED
IF B- FUNCTION NOT DEFINED
LOOK TO SFE IF FUNCTION DEFINED
IF B- FUNCTION NOT DEFINED
FUNCTION DEFINED. B-REG HAS ADDRESS OF START ' LOOK AT ID WORD
BIT 15 SET THEREFORE. PROGRAM IS A FUNCTION
PROGRÄM IS A SUBROUTINE, CALLED WITHOUT GSR1GTO OR
GET IMMEDIATE EXECUTE FLAG
IS IT SET?
YES» EXECUTE PROGRAM
IS IT SET?
YES» EXECUTE PROGRAM
BASIC ROUTINE TO FETCH COOES IB-REG ADDRESS)
IS FIRST CODE IMMEDIATE EXECUTE? YES» THEN EXECUTE PROGRAM
IS FUNCTION FIRST KEY OF STATEMENT
IF G=8 ONLY EOL OR EOS IS CORRECT
PLACE GSB BEFORE FUNCTION KEY
STORE GSB IN OUTPUT
SET A BLANK WORD FOR THE FAST-ACCESS
FUNCTION KEY IS TO BE TREATED AS A FUNCTION SET CODE WITH PRIORITIES OF SQUARE-ROOT
SET STACK PRIORITY IN PROPER POSITION FOR SPECIAL CO
BASIC SYSTEM ROUTINE TO SET-UP CN» AND SKEY
COUNTER FOR LOOP BELOW
SEND FUNCTION KEY TO BASIC COMPILER SET-UP BLANK WORD FOR THE FAST-ACCESS STACK OPERATOR WITH CODE=0
THREE COOES STACKED?
NO
YES
SPECIAL CODE FOR FUNCTION TERMINATIONI "FUNC"
SEND FUNCTION KEY TO BASIC COMPILER SET-UP BLANK WORD FOR THE FAST-ACCESS STACK OPERATOR WITH CODE=0
THREE COOES STACKED?
NO
YES
SPECIAL CODE FOR FUNCTION TERMINATIONI "FUNC"
ALL COMMAS WITHIN THE FIRST LEVEL OF PARENTHESIS STACK SPECIAL CODE
SPECIAL CHARACTER TO BEGIN FUNCTION STRING|"TAU"
STORE IT IN OUTPUT AREA
SET BASIC SYSTEM SPECIAL ROUTING FLAG
SPECIAL GOTO FLAG FOR BASIC SYSTEM
309832/0843
• 330 1*424 061305 JSh CP2
«331 1*425 Ü65304 JMp CPl
11332»
0333 14426 C2?551 ERET LOA 033
«334 14427 160254 JSH SKCO,!
C335 14430 G62060 · JSm AOCO
«336 14431 000403 ADA DPI
β337 14432 Ü3l<544 STa SKEY
C338 14433 066154 JMP NORET
0339·
β340 14434 021546 EENO LDA CMA
«341 Ϊ4435 07(5076 TCA
0342 14436 Ö01543 ADA LIMl
0343 14437 Ö78113 SAP ·*2
©344 14440 066154 JMP NORET 0345 14441 £62060 JSM ADCO
6346 14442 000401 ADA DP3
0347 14443 061305 JSM CP2
0348 14444 B66154 JMP NORET
STORE IT IN OUTPUT
STORE FUNCTION KEY IN THE OUTPUT
»RET«
SET UP CN
SPECIAL RETURN IS THF FIRST AOOITION CODE FOR THF OPTION BLOCK
ALLOW BASIC SYSTEM To CHECK SYNTAX
"END" GET PROGRAM STORAGE POINTER
AOD IN ADDRESS OF BEGINNING OF MAINLINE IF RESULT IS.* IN PROTECTED SUBPROGRAM AREA
IF - END IN MAINLINEI NORMAL RETURN
SPECIAL END IS THIRD CODE OF ADDITIONAL CODES FOR OPTION BLOCK
309832/0843
-— f* -»■ - ■-— ·- τ ,*-·——---ORIGINAL
INSPECTED
USER-DEFINEABLE FUNCTION BLOCK — "UDFUN" 2262725
0351 14445 000446 AZERO DEF 'M-IO THIS ROUTINE IS ΛΝ EXTENSION OF THE RESET
t)352 14446 160254 JSM SKCDtI OF FAST-ACCESS WORDS OF THE BASIC MACHINEI
3353 14447 Bl«403 CPA Dpi RGTO.
0354 14450 366452 JHP *+Z THIS LOO^S FOR THE WORDS FOLLOWING THE
G355 I445I 066460 - JHP AZl FUNCTION CODES AND CLL.
C356 14452 Ö62745 JSM TINK
6357 14453 063071 JSm GETIC
C358 14454 010403 CHA OPl
0359 14455 B66462 JMP AZ2 ,
0360 14456 610367 CPA DP13 C361 14457 «J66462 .JMP AZ2
ß362 14460 021544 AZl LDA SKEY
6363 14461 170432 RET ,
3364« .
0365 14462 955777 AZ2 DSZ RSTAK . NOT OPTION BLOCK CODE
0366 14463 167766 JMP RG4.I SPECIAL RETURN TO BASIC SYSTEM ROUTINE
309832/0843
0368» | 14464 | 062745 | UNCPL | JSM | TINK |
0369 | 14465 | 361071 | JSm | GETIC | |
β370 | 14466 | (»10402 | CPA | 0P2 | |
Λ371 | 14467 | 066520 | JMP | UGAZ | |
0372 | 14470 | 010401 | CPA | DP3 | |
fl373 | 14471 | 066514 | JMp | UPAR | |
037* | 14472 | 010373 | CHA | 0P9 | |
0375 | 14473 | Β66505 | JMp | PROC | |
0376 | 14474 | G10372 | CPA | OP10 | |
0377 | 14475 | £66505 | JMP | PROC | |
£378 | 14476 | 010371 | CPA | OPU | |
«379 | 14477 | 066516 | JMP | USEOL | |
0380 | 14500 | 010370 | CPA | DP12 | |
β331 | 14S01 | 066516 | JMP | USEOL | |
6332 | 145Λ2 | 010366 | CPA | DP14 | |
S333 | 14503 | 866516 | JMP | USEOL | |
β334 | 14S04 | Ö72150 | RZa | UFUN | |
0335 | 14505 | 020012 | PROC | lda | CLOD |
β336 | 14506 | «66074 | JMP | SYNTl | |
0387 | |||||
0308» | 14507 | 163774 | UFUN | JSm | NEXTS,I |
6389 | 14510 | Θ21544 | LOA | SKEY | |
C390 | 14511 | 071710 | sza | •-2 | |
9391 | 14512 | 621717 | LDA | Tl | |
Ö392 | 14513 | 031544 | STA | SKEY | |
0393 | 14514 | C23141 | UPAR | LOA | SORT |
$39'« | 14515 | G66074 | JMP | SYNTl | |
0395 | |||||
0396» | 14516 | 020005 | USEOL | LDA | IGN |
β397 | 14517 | »66074 | JMP | SYNTl | |
0398 | |||||
0399» | 14520 | «155777 | UGAZ | OSZ | RSTAK |
0400 | 14521 | 655777 | USZ | HSTAK | |
β40ΐ | 14522 | 920144 | LOA | GAZ | |
6402 | 14523 | (J31561 | STa | CODE | |
«403 | 14524 | 163773 | JSm | CHECOfI | |
0404 | 14525 | («25666 | LOB | POPR | |
C405 | 14526 | 045666 | ISZ | POPR | |
6406 | 14527 | »74150 | SZH | •♦3 | |
• 407 | 14530 | 070213 | SAP | BB-I | |
6408 | 14S31 | 161773 | JSM | CHECO.I | |
0409 | 14532 | 070152 | SAM | ' BB | |
Ü410 | 14533 | 070110 | SZA | BD | |
0411 | |||||
0412· | 14534 | 161772 | JSM | INSTK,I | |
0413 | 14535 | 620401 | BB | LOA | DP 3 |
0414 | 14536 | Ü25544 | LOF) | SKEY | |
0415 | 14537 | 16Ί771 | JSm | STORE,I | |
0416 | 14540 | 16Ί77« | JSm | CiI | |
0417 | 14541 | 167767 | JMP | LOOP,T | |
0418 | |||||
THIS ROUTINE IS FOR UNCOMPILING STATEMENT COMPOSSED OF KEYCODES FROM THIS OPTION BLOCK
CODE ->F?
YES
CODE P?
YES
YES
COOE DEF?
YES
CODE SPECIAL END?
YES
YES
code for tau?
YES
CODE IEX
LOOK FOR F»»G»,OR H·
FOUND IT
->F UNCOMPILING.ERASE RETURN TO OPTION BLOCK SYNTAX CALLING ROUTINE! RETURN TO UNCOMPILER
CODES FOP UHCOHPILING» F ->
CHECK FOR INSERTING OF PARENTHESIS
IF LAST OPERATOR WAS BINARY CHECK FOR EQUALITY OF PRIORITIES
(WORD NOT NECESSARY»
DUMP STACK FOR F (EASIEST WHY TO KEEP UNCOMPILER)
CORRECT»! RETURN TO RASlC UNCOMPILER
_,: 30J.8127-.QJ-4.1..._
USER-OEFINEABLE FUNCTION BLOCK -*· "UOFUN"
0422« | COMPILER TABLE | C22560 | TTÖ2- | LDA | TTB4-1 | -1 |
«423· | 0 | |||||
fl424» | 14542 | 326545 | TTB3 | LDB | »42 | 1 |
C425 | (566170 | JMP | ESCR | 2 | ||
0426* | 14543 | 066224 | JMP | EIEX | 3 | |
C427 | 14544 | 066234 | JMp | ECALL | ||
042β | 14545 | 066306 | JMp | ESTRO, | ||
6429 | 14546 | 666335 | JMP | EPAR | ||
fl430 | 14547 | B39B33 | 033 | OCT | 33 | |
0431 | 14550 | ai60!?0 | PGM | OCT | 16000 | |
0432 | 14551 | 6084Ä6 | A0M2 | DEF | 4H6B | 9 |
6433 | 14552 | G01625 | ECRW | DEF | 16 258 | 10 |
0434 | 14553 | CiH 1626 | OBRW | DEF | 1626B | 11 |
G435 | 14554 | 066426 | JMP | ERET | ||
fi436 | 14555 | 066306 | JMP | ESTRD | ||
0437 | 14556 | 866434 | JMp | EEND | ||
f5438 | 14557 | |||||
6439 | 14560 | 066177 | TTB4 | JMp | GEl | |
6440 | 066227 | JMP | GE2 | |||
Ö441* | 14561 | G66250 | JMP | GE3 | ||
0442 | 14562 | (566301 | JMP | GE4 | ||
6443 | 14563 | G66324 | JMp | GE5 | ||
C444 | 14564 | 066210 | JMP | GE6 | ||
fl445 | 14565 | |||||
C446 | 14566 | |||||
0447 | ||||||
USER-OEFINtAQLE FUNCTION BLOCK — "UOFUN"
«449· | SUPPLY | MNEMONIC INFO | MNEM JSM | TINK |
«450· | JSM | GETIC | ||
«451· | 14567 | 06?745 | CPA | DP 3 |
«452 | 14570 | 963071 | JMP | MNEl |
0453 | 14571 | |||
«454 | 14572 | 066662 | JSM | SFFN |
«455 | SBM | •♦4 | ||
8456· | 14573 | B62622 | ||
«457 | 14574 | 674212 | JSM | GAS2«1 |
«458 | CPA | BOT | ||
»459· | 14575 | 163747 | JMP | •♦2 |
«46« | 14576 | 010517 | JMP | MNE |
«461 | 14577 | 6666191 | ||
«462 | 14600 | 666665 | STb | T3 |
β463 | SAr | 16 | ||
«464· | 14601 | C35721 | STA | Τ4 |
«465 | 14602 | 070742 | JSm | GAS2,I |
«466 | 14603 | 031722 | cpa | QUOTE |
0467 | 14604 | 163747 | JMp | •♦3 |
«468 | 14605 | 010546 | ISZ | Τ4 |
«469 | 14606 | «66611 | JMP | β-it |
«47« | 14607 | Ö45722 | LDA | ΤΊ |
0471 | 14610 | «66604 | LDB | Τ4 |
6472 | 14611 | 621722 | ADB | DM16 |
ί*473 | 14612 | Π25722 | SBM | •♦2 |
«474 | 14613 | CöV»20 | LOA | DP16 |
«475 | 14614 | 074112 | AOA | OASS |
«476 | 14615 | P20364 | LDR | ADRl |
«477 | 14616 | 003737 | ADB | PG,! |
«478 | 14617 | 026643 | RET | |
«479 | 14620 | 105655 | ||
I «4ββ | 14621 | 170402 | ||
I «4B1 | ||||
ROUTINE USE TO RETURN MNEMONIC TO BASIC SYSTEM. GET INTERNAL CODE IS CODE P?
YES .
IF FUNCTION KEY FIND ROUTINE IF B- ROUTINE NOT DEFINED
ROUTINE nFFlNEO LOOK TO SEE IF FIHST STATEMENT IS LAßEL?
YES, MNEMONIC IS SPECIFIED RY ROUTINE NO USER LABEL
B-REG AODRESS OF ROUTINE
GET CHARACTERS FROM LABEL END QUOTE?
NO, COUNT CHARACTERS CONTINUE CHARACTER COUNTING
IS COUNT GREATER THAN 16 YES SET COUNT TO 16 SET HIT15 AND SUBTRACT ONE FROM COUNT
B-REG ADDRESS OF MNEMONIC BUILOING ROUTINE
309832/0843
ORlQiNAL INSPECTED
226272£
0483· | 146?3 | 031720 SFFN | STA | T2 |
0484 | 14623 | 625715 | LDB | DFUN |
0485 | 14624 | 074517 MNEMl | LDA | B.I |
04B6 | 14625 | 610405 | CPA | DMl |
0487 | 14626 | 066630 | JMp | •♦2 |
0488 | 14627 | 077670 | RIB | *-3 |
β489 | ||||
»490» | 14630 | 315543 | CPB | LIHl |
β491 | 14631 | 665357 | JMp | 1357B |
fl492 | ||||
0493« | 14632 | «74070 | SIB | »♦1 |
0494 | 14633 | 074517 | LDA | B, I |
6495 | 14634 | (552720 | AND | IDM |
0496 | 14635 | 604402 | ADB | DP2 |
3497 | 14636 | 011720 | CPA | T2 |
β498 | 14637 | 170402 | RET | |
0499 | 14640 | 334405 | ADB | DMl |
6500 | 14641 | C66624 | JMP | MNEMl |
0521 | ||||
NO. RECYCLE
IS IT START OF MAIN-LINE AREA? YES, FUNCTION NOT DEFINE
GET ID
HATCH?
RECYCLE
309832/0843
DRIG]NAL INSPECTED
0533» 0S04 0505
0506» «507 «538
fl5H9 i-510 0511 8512·
6r>13 «514
0515 0516 0517 0518 »519
C520 C521 Ö522· 6523
C524 C525 0526·
«1527 «528 ■
ADR2
14643 003644 ADRl
14644 02?642
14645 101655
14646 025620
14647 011620 14650 035723
14651 14652 14653 146S4
14655 14656 14657 14660 14661
025721 161747 635721 ©31720
655722 173402 021723 031620 170402
14662 070742 MNEl
14663 624204
14664 170402
14665 621720 MNE
14666 002674
14667 C70016
14670 920402
14671 074132
14672 020401
14673 170402
UEF DEF
LOA ADr2 ACA PG,I LOn NCOOE
SlA NCOOE STB T5
LOB T3 JSH GAS2t! STO T3
STa T2 DSZ T4 RET
LDA T5 51a NCODE
RET
SAR LDB 204B HET
LDA T2 AOA MNTAB EXA
LOA 0P2 SBm «+2.C LDA DP3
RET
ENTRY POINT FOR ALL CHARACTERS BUT THE FIRST ENTRY POINT TO GET FIRST CHARACTER
SET UP ENTRY FOR ALL REMAINING CHARACTER SAVE OLD VALUE OF NCoDE
T3 HAS ADDRESS WHERE LABEL CAN FOUND GET CHARACTER
SAVE ADDRESS
SAVE CHARACTER
CHECK COUNT
STILL MORE CHARACTERS
NO MORE CHARACTERS
RESTORE NCOOE
A-REG a
b-reg code for ρ
14674 026676 MNTAB LDB TABL*1
3 O 9 8T2TΌ BUT *"
ORIGINAL INSPECTED-
USER-DEFINF.ABLE FUNCTION BLOCK — "UDFUN"
ßS37 | 14675 | Γ46162 | TABL | OCT | 04616? | SCR |
0538 | 14676 | G22270 | OCT | 022270 | IEX | |
6539 | 14677 | &06614 | OCT | 006614 | CLL | |
0540 | 14700 | 176300 | OCT | 176300 | ->F | |
C541 · | 14701 | 600000 | BSS | 1 | . CHECKSUM | |
0542 | 14702 | 114040 | OCT | -114040 | FA | |
{5543 | 14703 | 114100 | OCT | 114100 | FB | |
0544 | 14704 | 114140 | OCT | 114140 | FC | |
©545 | 14795. | 114200 | OCT | 114200 | FD | |
3546 | 14706 | 114240 | OCT | 114240 | FE | |
©547 ·. | 14707 | C.44264 | OCT | 044264 | RET | |
f)548 | 14710 | 610246 | OCT | 010246 | DEF | |
0549 | 14711 | C22706 | TTBB | LDA | «-3 | |
0550 | 14712 | C03045 | OCT | 45 | ||
«551 | 14713 | 030105 | OCT | 105 | ||
C552 | 14714 | Pf)Ol 17 | OCT | 117 | ||
S553 | 14715 | 000053 | CNFpi | DEC | 43 | |
6554 | 14716 | 020054 | CNFP2 | DEC | 44 | |
6555 | 14717 | 177755 | DM19 | DEC | -19 | |
B556 | 14720 | »31777 | IDM | OCT | 1777 | φ |
0557 | 14721 | 116040 | OCT | 116040 | GA | |
0558 | 14722 | 116100 | OCT | 116100 | GB | |
0559 | 14723 | 116140 | OCT | 116140 | GC | |
3560 | 14724 | 116200 | OCT | 116200 | GD | |
0561 | 14725 | 116240 | OCT | 116240 | GE | |
ß562 | 14726 | 116300 | OCT | 116300 | GF | |
S563 | 14727 | 116340 | OCT | 1163401 | GG | |
0564 | 14730 | 116400 | OCT | 116400 | GH | |
0565 | 14731 | 116440 | OCT | 116440 | GI | |
0566 | 14732 | 116500 | OCT | 116500 | GJ | |
3567 | 14733 | 120040 | OCT | 120040 | . HA | |
6568 | 14734 | 120100 | OCT | 120100 | HB | |
6569 | 14735 | 120140 | OCT | 120140 | HC | |
6570 | 14736 | 120200 | OCT | 120200 | HD' | |
<?571 | 14737 | 12G240 | OCT | ■120240 | - HE | |
0572 | 14740 | 120300 | OCt | 120300 | HF | |
0573 | 14741 | 12B340 | OCT | 120340 | HG | |
€574 | 14742 | 120400 | OCT | 120400 | HH | |
0575 | 14743 | 120440 | OCT | 120440 | HI | |
C576 | 14744 | 12G500 | OCT | 120500 | HJ |
309832708Λ3
ORIGiWAL If^SPECTED
USER-DEFINF.A8LE FUNCTION BLOCK — "UDFUN"
•578· | transfer links | JSM | FIND | LDB | OBRH |
«579» | SAR | 9 | LDa | B,I | |
0580· | 14745 β6?765 TINK | ADA | NSRW | AND | IDM |
«581 | 14746 07;)4{»2 | LDA | A.I | CPA | ID |
05B2 | U747 601724 | JMp | •♦2 | ||
»583 | 14750 670517 | LDB | ORBF | RIB | • -tt |
0584 | STB | T0 | LOa | B,I | |
0585· | H751 027725 | LDB | DM7 | AND | PGM |
0586 | 14752 ft1S716 | JSm | TIl | RET | |
<S587 | 14753 024413 | ||||
0588 | 14754 062760 | LDB | 0ΒΒΓ2 | ||
0589 | STB | T0 | |||
0590· | 14755 G27726 | LDB | DM2 | ||
C591 | 14756 035716 | STA | Τ0.Ι | ||
0592 | 14757 Ο2Λ406 | ISZ | T0 | ||
fl593 | 14760 131716 TIl | SIA | •♦1 | ||
e594 | 14761 045716 | RIB | •-3 | ||
S595 | 14762 «70370 | RET | |||
0596 | 14763 077670 | ||||
C597 | 14764 170402 | FIND ADDRESS OF THIS BLOCK | |||
fl598 | |||||
0599· | 14765 CP6555 FIND | ||||
0600· | 14766 074517 | ||||
0601· | 14767 PS?7?0 | ||||
0602 | 14770 ei?ea(5 | ||||
C603 | 14771 066773 | ||||
3604 | 14772 077610 | ||||
&60S | 14773 (574517 | ||||
«J6P6 | 14774 C52552 | ||||
«607 | 14775 170402 | ||||
0608 | |||||
C689 | |||||
6610 | |||||
GET ADDRESS OF THE BLOCK
A = A,10,12 NON-SHAREO R/W IN HASIC SYSTEM HAS
START OF R/W AREA FOR THIS BLOCK
BASE ADDRESS FOR FIRST GROUP OF LINK ADDRESSES
165» OCTAL
COUNTER FOR 8 WORDS CALL ROUTINE TO SET UP ADDRESS
BASE ADDRESSES FOR SECOND GROUP
1724 OCTAL COUNTER FOR 3 WORDS SET UP LINK ADDRESSES
BASE ADDRESS OF OPTION BLOCK TABLE 1626B GET CONFIGURATION CODE
DO ID'S MATCH YES» FOUND CORRECT WORD
GET PAGE ADDRESS A-REG HAS BASE ADDRESS FOR THIS OPTION BLOCK
3Q9 8 3-2/-C18 UX
ORIGINAL
226272E
Ö612*
β613· HUNT UP START OF SUBROUTINE
«615 0616 8617 0618 0619·
«621
0622
0623
062'«
«!625
0626
(1627*
662B
C629
0630
0631
<)632
6633
0634
«635
6636
C637
0638·
8639
C64l
IJ642
0643
0644
«645 -
€646
<1647·
«648
0649
$650
«651*
0652
0653
S654
«655
«656
«1657
C658
ί659
0660
0661
14776 14777 15000 15301
15002 15003 15004 15005 15006 15007 15010
15011 15012 15013 15014 15015 15016
15017 15020 15021 15022
15023 15024 15025 15026 15027
15030 15031 15932
P6?6?2 HUNT 975713 063264 071610
025542 NEWF
004400
074117
070056
C'01712 *
073113
065375
035542 035716 P04410
Ö745I7 131716 B55716
015543 Ö67823 C34405 Ö67014
Ö35.716
Ö21546
O0Ö4C0 070137 070076 031543 07G113
035546
15033 B25716 15234 Ö044O0
15035 035543
15036 15037 15043 15041 15Z42
15« A 15044 15045
15046
034407 «•21720
1)74557 074070 C20405 074557 074070
320521 Ö74557 170402
JSm SFFN SBp «-2 JSM KBFG*t
SZA »-4,
LOB ENDS ADB DPA LDA B
CMA ADA RR SAp «*2 JMP E9A
STb ENDS STB T0 ADB DM4 LDA B,I
STA Τ0.Ι DSZ T0 CPB LIMl JMP #*3
ADB DMl JMP »-6
STB T0 LDA CMA ADA DP4
LDB A TCA
ADA LIMl SAP »»2 STb CMA
LDB T0 ADB DP4 STB LIMl
ADB DM3 LDA T2 STA B,I
SIB ·*1 LOA OMl STA B,I SI8 *+l
LDA STEN STa BiI
ELSE SET UP NEW FUNCTION INCREASE PROGRAM' AREA BY h WORDS
BASE POINTER OF DATA REGISTER STORAGE NOT ENOUGH ROOM ERROR #9
THE A-WORDS WILL FIT ADJUST ENDS TO NEW VALUE
RECYCLE
IF CMA IS
UPDATE IT
SET UP NEW LIMl STORE I.D.
SET -1 BOUNDARY FOR BEGINNING OF PROGRAM
SET FIRST LIME TO BE END
309832/0843
' ORIGINAL INSPECTED
•663· | SET UP ABSENTEE LINKS | 074442 | ECOS SBR | 10 | B-REG ON FNTRY MAS 1CW00R.1P000B, OR 14«CW |
0664· | 006554 | ADB | ECRH | BEFOPE AOD B-REG 4.5,6. 1611B»J632B»1633Π | |
#665· | 15350 | 121655 | LÜA | PG. I | |
0666 | 15051 | G4?0fll | 1OR | IO»1 | SYNTAX LINK |
• 667 | 15052 | 074557 | STA | B.I | |
0668 | 15053 | 034401 | ADB | DP3 | |
0669 | 15054 | 121655 | LOA | PG. I | |
0670 | 15055 | 04?0<32 | IOR | 10*2 | EXECUTION LINK |
0671 | 15056 | 074557 | STA | ß,I | |
0672 | 15057 | 004401 | ADB | DP3 | |
0673 | 15060 | 121655 | LOA | PG, I | |
0674 | 15061 | 0420(33 | IOR | ID»3 | MNEMONIC LINK |
0675 | 15062 | 074557 | STA | O.I | |
0676 | 15063 | 121652 | LOA | NAB, I | |
?677 | 15064 | 000401 | AOA | DP3 | UPDATE NAB BY 3 |
•678 | 15065 | 131652 | STa | NAB. I | FOR EACH ADDITIONAL OPTION BLOCK |
e679 | 15066 | 170402 | RET | ||
0680 | 15067 | ||||
0661 | 15070 | ||||
0682 | |||||
309832/080
" ''
ORIGINAL INSPECTED
. - 343 :-
C684» | GET INTERNAL | €21544 | CODE | TAB | LDA | SKEY |
0685· | 831717 | STA | Tl | |||
0686* | 15071 | (1PI0377 | GETIC | CNFP3 | ADA | DPS |
P687 | 15072 | 070517 | DP144 | LDA | A.I | |
6688 | 15073 | 031716 | • | STa | TO | |
C689 | 15074 | 0^(5365 | AND | DP15 ' | ||
C690 | 15075 | R00405 | ADA | DMl | ||
€>691 | 15076 | 031720 | STA | T2 | ||
*>r>92 | 15077 | 021716 | LDA | T0 | ||
0693 | 15100 | 070142 | SAR | 4 | ||
Ö694 | 15101 | 053401 | SCODE | AND | DP3 | |
C695 | 15102 | 008405 | ADA | DHl | ||
C696 .. | 15103 | 031721 | CNFO | STA | T3 | |
C697 | 15104 | C70644 | SAL | 3 | ||
6698 | 15105 | 001721 | ADA | T3 | ||
fi699 | 15106 | 101652 | ADA | NAB»T | ||
«700 | 15107 | 003115 | ADA | TAB | ||
*70l | 15110 | (570016 | EXA | |||
0702 | 15111 | 001720 | ADA | T2 | ||
6703 | 1511? | 170402 | CNFT | RET | ||
C704 | 15113 | CNFO | ||||
«705 | 15114 | 023116 | LDA | »♦1 | ||
0706 | Ο000<?0 | DEC | 0 | |||
«707* | 15115 | t!?,C?«55 | DEC | 45 | ||
ß708 | 15116 | CC22?0 | DEC | 144 | ||
0739 | 15117 | caee{?0 | DEC | 0 | ||
2710 | 15120 | 090024 | DEC | 20 | ||
«711 | 15121 | 000024 | DEC | 20 | ||
0712 | 151?2 | (333030 | DEC | 0 | ||
0713 | 15123 | C00024 | DEC | 20 | ||
0714 | 15124 | C00024 | DEC | 20 | ||
6715 | 15125 | 146030 | OCT | 146000 | ||
*716 | 15126 | 500090 | DEC | 0 | ||
0717 | 15127 | P0fl063 | DEC | 51 | ||
0718 | 15130 | (300024 | DEC | 20 | ||
0719 | 15131 | 000090 | DEC | 0 | ||
B720 | 15132 | C0B024 | DEC | 20 | ||
«721 | 15133 | P03824 | DEC | 20 | ||
ß722 | 15134 | 300000 | DEC | 0 | ||
«723 | 15135 | S00036 | DEC | 30 | ||
{}724 | 15136 | (!30334 | DEC | 28 | ||
6725 | 15137 | 000052 | DEC | 42 | ||
0726 | 15140 | 600000 | DEC | 0 | ||
0727 | 15141 | 00O0P4 | DEC | 20 | ||
β728 | 15142 | 000024 | DEC | 20 | ||
Ö729 | 15143 | Q03000 | DEC | 0 | ||
«730 | 15144 | 000036 | DEC | 30 | ||
6731 | 15145 | Ö00036 | DEC | 30 | ||
0732 | 15146 | 000000 | DEC | 0 | ||
β733 | 15147 | |||||
0734 | 15150 | |||||
#735. | ||||||
LOWEST fl BITS SPECIFY WHICH CODE OF THE OPTION DLOCKS. LOWEST 4 BITS WHICH OF
16 FOR THE BLOCK. HIGHER 4 BITS WHICH BLOCK; 10000B = 1» 12000B =j2» 14000B = 3
A=0»U...»25,26
A=-l,0tl».».»37»38
TABLE OF INTERNAL CODES
3:0 9 a 3 2 / O 8 A 3
ORIGINAL INSPECTED' '
«737· 0738· β739· 8740
«741· 0742 3743 0744 0745 0746 0747
0748 0749 fl750 6751 B752
0753 07S4 0755 C756
fl757 0750 0759 0760 «761
C7G?
0763 C764 Ö765
0766 0767 0768 0769 «770» 0771 C772 C773
0774 0775 0776 «777 6778 »779
O7R0 C7B1
CLEAN UP SUBROUTINE AREA 15151 Ö0115? AONO OEF «♦l-IO
0783 «784
ISIS? Ö25S43
15153 015715
15154 <J67??1
15155 535721 l515/> 02S71S
15157 074517
15160 010406
15161 067166
15162 074070
15163 015721 CADB
15164 C672R6
15165 G67157
15166 035717
15167 035720
15170 074517
15171 010405
15172 P67174
15173 077670
15174 074S17
15175 131720
15176 015721
15177 3672Π2 1529« C45720
I52CM 077570 1520? 025720
152R3 035721 l52CVi 025717
15205 Ö67163
15206 325543 CEXT
15207 021721
15210 031543
15211 074517
15212 131721
15213 015542
15214 U67217
15215 045721
15216 077570
15217 021721 1522'.! 031542
15221 062745 CEXTl
15222 125654
15223 074737
LDB LIHl DFUN CEXTl ST« T3
LDB OFUN LDA B,I CPA DM2
JMp «45
CP<3 T3 JMP CEXT JMp «-6
SlB Tl STB T2 LDA B»I
CPA OMl
RIB
T2,I CPB T3 JMp »»3 ISZ T2 RIB *-5
LDB T2 STb T3 LDB Tl JHp CADB
LDB LlMl LDA T3 SlA LIMl LOA B»I
STa T3.I CPB END? JMp »43
ISZ T3 KlB »-5 LOA Tl
STa ENDS JSm TINK LDB EN,I
JMP BfI THIS ROUTINE IS ADDEO TO THE END ROUTINE
ARE THERF PROTECTED SIIBPPOGRAMS?
NO» EXIT YES, SAVF POINTE« TO BEGINNING OF MAINLINES
POINTER TO BEGINNING OF PROTECTED AREA
FIND A -Z i
FOUND A -2
NO» RECYCLE
ADDRESS
NO» RECYCLE
MOVE FUNCTION AREA COVER HOLE COMPLETE? YES NO» ADJUST POINTER ADJUST FETCH POINTER! RECYCLE
SET B-REG TO SEARCH FOR MORE CLEAN-UP ADJUST BEGINNING OF MAINLINE ADJUST FETCH POINTER
RECYCLE
MAIN CLEAR-UP IS COMPLETE RUT POINTERS NEED ADJUSTING
MAINLINE POINTER UPOATEO MOVL HAINLINE TO CORPECT LOCATION
CORRECTION COMPLETED
NO» ADJUST STORe POINTER ADJUST THE FETCH POINTER
UPDATE THE ENO-OF-MAINLINE POINTER
DAISY CHAIN THROUGH END LINKAGE
.10 9J 3 2VJQL&A.3
ORIGINAL INSPECTED
ceii sei?
INTERPRETER
15224 062,745 EXEC
15225 062076
15226 067612
15227 325720
15230 007716
15231 074016
15232 074016
15233 15234
15235 15236
15237 15240
15241 15242 15243 15244 15245 15246 15247 15253
15251 15252 15253 15254 15255 15256 15257 15260
15261 15262
15263 15264 15265 15266 15267 15270
145653 XIEX 164346
JSH TINK JSh C0PL3 JMp XF LDB Τ2 ADQ TTRl EXB
EXB
ISZ IXFLGtI. JHP XJfI
131653 SIEX STa IXFLG.I
067*241 JMP XSCR
027727 Ε24 167746
LDB DP24 JHP EXERtI
168552 610451 067241
010356 Ö67261 063371 C?31720 071253
XSCR JSH CPA JMP CPA JHP
JSH STA
JSH
XSCR2
071253 021720 £62776 004407
•922553 170004 Ü67241
161710 SCB 164346
LDA
JSh
ADB LDA XFR JMp
SXJtI
CNFC
»-2
CNFN
SCB
GETIC
T2
SIEX
KBFG*1
E24
T2
HUNT
DM3 -
ADH2
XSCR
JSH .END2tI JMP XJ,I
061253 KBFG JSH XNSTP
ß21563 LDA.TSW
(300410 ADA DH4
070110 SZA «*2
02Ί546 LDA CMA
170402 RET
set up this block r/w area call routine to classify keys
function key return other key return. load internal code
USE TTBl TO LOCATE EXECUTION ROUTINE
"IEX" KEY. SET FLAG THAT THIS EVENT HAS HAPPENED. RETURN Tp BASIC INTERPRETER
"SCR IEX . . . » STATEMENT. CLEAR FLAG
CONTINUE SCANNING THE STATEMENT
ERROR #24. SCR STATEMENT CANNOT BE EXECUTED FKOM PROGRAM
BEGINNING OF A SCRATCH STATEMENT IGNORE "t"
END-OF-SCR STATEMENT . DO HOUSE CLEANING GET INTERNAL CODE FOR CODE FOUND IN SCRATCH
STATEMENT - SAVE IT IS IT IEX? IF A-REG = 0 YES
KEYBOARD OPERATION OR PROGRAM? ·.
IF A-REG = 0 PROGRAMt THEN ERROR #24
FIND SUBPROGRAM B-REG HAS STARTING ADDRESS OF PROTECTED PROGRAM SET R-ADORFSS BACK 3 WORnS, REGINNING ADDRESS FOR -2
TPAfJSFER FOUR Wo'iDS INTO PROTECTED PROGRAM
CONTINUE SCANNER OF THE STATEMENT
STATEMENT COMPLETELY SCANNFO CALL END CODE PROCESSING FOR HOlJSE CLEANING
CHECK FOP KEYBOARD OPERATION OR PROGRAM ROUTINE. TSW=4 IF PROGRAM
A-REG IS ZERO IF PROGRAM MODE NONZERO IF KEYBOARD
30983-2-/-0543 -
«833· | 15271 | «21705 | XSEOL LDA | .WMOD |
«834 | 15272 | «50512 | AND | 512B |
«835 | 15273 | 073350 | RZA | SCB*1 |
«836 | 15274 | 160552 | JSm | sxj,ι |
«837 | 1527S | 070742 | SAR | 16 |
#830 | 15276 | C31702 | STA | GTS |
«639 | 15277 | 121605 | LDA | IMA,I. |
0840 | 15300 | 070133 | SAP | •♦2,C |
«84] | 15301 | 070070 | SIA | •♦1 |
«842 | 15302 | 055556 | DSZ | APl |
«843 | 15333 | 025556 | LDB | APl |
«844 | 15304 | Ö74557 | STA | B,I |
«845 | 15305 | Θ63263 | JSm | KBFG |
0846 | I53ß6 | C044C5 | XSEl ADB | DMl |
«847 | 15307 | B74557 | STA | 0,1 |
«848 | 15310 | 020400 | LDA | DP4 |
0849 | 15311 | 031563 | STA | TSW |
0850 | 15312 | 004435 | ADB | DMl |
«851 | 15313 | 021614 | LDA | TPP |
Ö852 | 15314 | 074557 | STA | 8,1 |
08S3 | 15315 | G21551 | LDA | TP |
0854 | 15316 | 031614 | STA | TPP |
0855 | 15317 | C04405 | ADB | DHl |
«856 | 15320 | 121650 | LDA | NUMP,I |
»857 | 15321 | 074557 | STA | B,I |
0858 | 15322 | 063349 | JSm | SETL |
0859 | 15323 | C21556 | loa | APl |
0860 | 15324 | 070056 | CMA | |
0861 | 15325 | 001557 | AOA | AP2 |
«862 | 15326 | 131650 | sta | NUMP,I |
tJ863 | 15327 | i)94405 | ADB | DMl |
ti 864 | 15330 | 121725 | LDA | L.I |
0865 | 15331 | 074557 | STa | 0,1 |
€866 | 15332 | 121657 | LOA | LVAOO,I |
«867 | 15333 | 131725 | STa | L,I |
0868 | 15334 | 004405 | ADB | DMl |
(J069 | 15335 | 021557 | LOA | ΛΡ2 |
Γ870 | 15336 | B7?053 | SAP | ·♦ 1 »S |
C871 | 15337 | 167755 | JMP | XGSSItI |
«872 | ||||
«873· | 15340 | 121557 | SETL LUA | ΛΡ2.Ι |
C874 | 15341 | 000423 | ADA | DPI |
6875 | 15342 | 072350 | HZA | •♦7 |
f.876 | 15343 | 131650 | STA | NUMP,I |
0877 | 15344 | 021542 | LOA | ENDt |
C878 | 15345 | 301615 | AOA | BSTK |
«879 | 15346 | B5W4O7 | ADA | DM3 |
»880 | 15347 | 131657 | STA | LVAOOtI |
6661 | 1535» | 131725 | STA | LtI |
0882 | 15351 | 170422 | RET RET | |
0883 | ||||
CLL STMTS.
CLEAR RUN-TIME GTO-GSR FLAG SET UP PROPF.R RETURN ADDRESS
SAVE INFO ABOUT KEYRD OR PROG. · SET TSW=4 PROGRAM MODE
SAVE RESET POINTER FOR TEMPORARY STORAGE UPDATE TEMPORARY (RESET) STORAGE POINTER
DATA STORAGE OF LOCAL VARlARLES FOR THIS LEVFL
HIGH WATFR MARK FOR THIS LFVFL FOR LOCAL MAKE IT NFW BASE ADDRESS TOR NEXT LEVEL
TO INITIALIZE IVAOO AND L WHICH ARE TH£ HJGH WATER MARK AND BASE
ADOMFSS FOR LOCAL VARIABLE TO SUBPROGRAMS WHEN PO IS USED
309832/084
1 OHJQiNAL INSPECTED
USER-DEFINEABLE FUNCTION BLOCK — "UDFUN"
0885» | 15352 | 160552 | XENO | JSH | SXJ,I |
C886 | |||||
β 887· | 15353 | 125557 | XRET | LDB | AP2»I |
«886 | 15354 | 363264 | JSH | KBFG*1 | |
«889 | 15355 | 070150 | SZA | «♦3 | |
«890 | 15356 | 025557 | LDB | AP2 | |
0891 | 15357 | 067412 | JMp | XRETl | |
fi892 | 15360 | 014405 | CPB | DHl | |
0893 | 15361 | Q67425 | JMP | E7 | |
389'» | 15362 | 074753 | SBP | XRET2 | |
<!895 | 15363 | S45557 | ISZ | AP2 | |
C896 | 15364 | 121725 | LDA | L. I | |
«897 | 15365 | 131657 | STA | LVAOD,! | |
9898 | 15366 | 121557 | LOA | AP2,I | |
«899 | 15367 | 1,31725 | STA | L, I | |
«900 | 15370 | 045557 | ISZ | AP2 | |
Ö901 | 15371 | 121557 | LDA | ΛΡ2.Ϊ | |
i»902 | 15372 | 131650 | STA | NUHP,I | |
«903 | 15373 | Ö45557 | ISZ | ΛΡ2 | |
15374 | 121557 | LOA | AP2.I | ||
«905 | 15375 | 031614 | STA | TPP | |
0906 | 15376 | 045557 | ISZ | ΛΡ2 | |
C907 | 15377 | 121557 | LDA | AP2tI | |
C908 | 154(515 | 672510 | RZA | XRETl | |
ß909 | 154(31 | 045557 | XRET2 | ISZ | AP2 |
0910 | 154 G? | 121557 | LDA | AP2*I" | |
691.1 | 154 03 | 010406 | CPA | DM2 | |
0912 | 15404 | 067417 | JMp | XRET4 | |
«913 | 154 «5 | B31604 | XRET3 | STA | NMA |
C9i4 | 154?:6 | 331546 | STA | CMA | |
ßS15 | 1.54 e 7 | 374073 | SBP | **1»C | |
C916 | 15410 | P35557 | STB | AP2 - | |
C917 | 15411 | 164346 | JMP | XJ, I | |
«918 | 15412 | 061250 | XRETl | jsm | XSTOP |
0919 | 15413 | 670742 | SAR | 16 | |
6920 | 15414 | 031624 | STA | DISEN | |
«921 | 15415 | S21543 | LDA | LIMl | |
0922 | 15416 | f>73370 | RIA | XFJET3 | |
3923 | 15417 | G61250 | XRET4 | JSH | XSTOP |
«924 | 15420 | 070742 | SAR | 16 | |
3925 | 15421 | 031624 | STA. | DISEN | |
0926 | 15422 | B45557 | ISZ | AP2 | |
B927 | 15423 | 121557 | LDA | AP2.I | |
«928 | 15424 | Ö67406 | JHP | XRET3+1 | |
«929 | |||||
0930· | 15425 | C24375 | E7 | LDB | DP7 |
C931 | 15426 | 167746 | JMP | EXER»I | |
3932 | |||||
SPECIAL "END" KEYt ACTS AS RETURN FOR PROTECTED PROG
SPECIAL »RET" KEY»
KEYBOARD OR PROGRAM MODE PROGRAMS IF ZERO KEYBOARD I SET R-REG TO AP2
IF B-REG = -1 NO RETURN ADDRESS IN THE STACK? THFPEFORF EiRROR «7
IF 81T15=0 SIMPLE RETORN
BIT15=1 RETURN FOR FUNCTION OR CALLS
SET HIGH WATER MARK TO LOWER LEVEL GET BASE ADDRESS FOR LOWEI? LEVEL
GEJ PARAMETER COUNT FOR LOWER LEVEL
GET LOWER LEVEL POINTER TO SYSTEM TEMPORARY
KEYBOARD OR PROGRAM MODE FLAG PROGRAM MODE
GET RETURN ADDRESS
IF -2 SPFClAL FLAG FOR IEX SET RETURN ADDRESS IN PROGRAM POINTER
RESET TO LOWER LEVEL IN RUN TIME STACK RETURN TO BASIC SYSTEM INTERPRETER
KEYBOARD MODE SET STOP BIT
CLEAR ENTER FLAG SET R.A. FOR BEGINNING OF MAINLINE FIRST RETURN ROUTINE
IEX MODE SET STOP BIT
CLEAR ENTER INHIBIT FLAG CONTINUE FOR R.A..ADDRESS
ERROR «7 . ■ RET HAS NO MATCHING, GSB
309832/084 3.
ORIGINAL INSPECTED
USER-OEFINEAßLE FUNCTION BLOCK — "UOFUN"
• 934· | 15427 | 00143» | ADGT | OEF | «♦1-10 |
«935 | 15430 | 16B552 | JSH | SXJiI | |
«936 | 15431 | B6?745 | JSh | TINK | |
«937 | 15432 | C63071 | AOGTl | JSm | GETIC |
9938 | 15433 | 025715 | LOB | DFUN | |
«939 | 15434 | 074070 | SlB | •♦1 | |
«940 | 154 35 | 670112 | SAM | «♦2 | |
*941 | 15436 | 062776 | JSH | HUNT | |
»942 | 15437 | 167756 | A0GT2 | JHP | XG2»I |
«943 | |||||
ROUTINE USEO TO RETURN AN AOORESS FOR PROTECTED SUBPROGRAMS
WHEN F», G** OR H· IS USF.D
WITH GSB♦ GTO» OR CLL
B-REG HAS ADDRESS OF ROUTINE RETURN TO BASIC SYSTEM PROCESSING OF GSB OR GTO
309832/0843
OfHGlNAL INSPECTED
USER-DEFINEAnLE FUNCTION BLOCK — 11UOFUN11
(5946·
0947
fl948
694«?
«950
Ö951
fl952
€953
C954
0955
i)957
C 95 O
0959»
3960
fl961-
6962
6963
3964
S965
9966
(3967
0960
0969
S970
0971
C972
C973
8974
Ö975
3976
«977
3978 '
«979
09B0
tl9fl2
0983
6984
3985
«986
C987
0983
6984
3985
«986
C987
(3989
6990
099)
0992
C993
0994
Ö995
6996
0997»
0990
0999'
1000
15440
15441
1544? 15443
15444
15445 15446 15447
15450 15451
15452 15453
15441
1544? 15443
15444
15445 15446 15447
15450 15451
15452 15453
15454 15455 15456 15457
15460 15461
15462 15463 15464 15465 15466 154 67 15470 15471 15472 1547 3 15474 154 75 15476 15477
15462 15463 15464 15465 15466 154 67 15470 15471 15472 1547 3 15474 154 75 15476 15477
15501
15502 15503 15504 15505 15506 15507 15510 15511
15512 15513 15514 15515 15516 15517 15520
15502 15503 15504 15505 15506 15507 15510 15511
15512 15513 15514 15515 15516 15517 15520
160552 XOEF
06P745
063071
06P776
004406
074517
072052
074557
004402
335604
035546
164346
055777 CIEX
563340
Ö21563
000411
1372150
C45624
067464
160315
021557
031556
061250
C74117
C244I4
035605
163754
163757
567476
170482
121557
031557 '
000405
031556
070537
035570
074073
021546
131556
C35546
C61250
020406
163754
061253
021624
072210
163761
167765
167762
JSM SXJtI JSH TlNK JSh GETIC
JSH HUNT ADu DM2 LDA 8,1
SAM »*1,S STA B.I ADB 0P2
STB NMA STB CHA JMP XJ,I
DSZ RSTAK JSH SETL LOA TSW ADA DM5
DISEN JMp *+2 JSH INTRP1I LDA AP2
STA API JSH XSTOP LDA B LDQ AISP
STB IMA JSM XGSS2»I JSm RKBUl,I JMp RET LDA ΑΡ2,Ι·
STA AP2 ADA DMl STA API LDB A,I STB ISP SßP **itC
LDA CMA STA API,I
STB CMA JSh'XSTOP LDA DM2 JSH XGSS2.I JSM XNSTP
LDA DISEN
15521 163761 1552? 167764 15523 167763
JSM RPBUF,I JMp RU71»T JMp EXERRiI
JSM RPBUF1I JMP STSW5,I JHP TSW5«I
"DEF STMT". GET NEXT KEYCODE SETUP R/W AREA FOR THIS BLOCK '
LOCATE OR SETUP PROTECTED PROGRAM
SET B15 IN ID TO INDICATE THE ' PROGRAM WAS DEFINED WITH DEF
AS APPOSED TO GTO. \
SET UP STORAGE POINTER. RETURN TO BASIC SYSTEM INTERPRETER
ROUTINE TO HANDLE IEX ROUTINES. ADJUST RETURN STACK
INITIALIZE LVADD AND L IF NECESSARY
TSW=5? NO SKIP 3 INSTRUCTIONS YES,SYSTEM IS IH ENTER MOOE. SET DISABLE ENTER FLAG
SETUP RUN-TIME STACK
RESET API SET STOP BIT
SET ADDRESS OF INTERPRETER. TO ISP SAVF. ADDRESS OF SUBROUTINE
EXECUTE COMPILER OUTPUT AREA NORMAL
ERROR RETURN
ERROR RETURN
FETCH ADDRESS OF SUBPROGRAM SAVE IN ISP
SETUP RFTURN ADDRESS. IEX PROGRAMS ARE SUBPROGRAMS SET STOP SO XGSS2 ROUTINE CAN BE USED
SPECIAl FLAG FOR RETURN ROUTINE CALL ROUTINE TO SAVE FLAG IN STACK
CLEAR STOP BIT
IS SYSTFM IN ENTER MODE? NO» CALL INTERPRETER RETURN TO SYSTEM SAME AS RUN PROGRAM
ERROR RETURN
YES, ENTER MODE? NORMAL RETURN SET TSW=5 ERROR RETURN
309832/0843
ORIGINAL
USER-DEFINEABLE FUNCTION BLOCK -- "UDFUN"
1032· | 15524 | 06334? | XTAU JSM | SETL |
1003 | 155PS | 021551 | LDA | TP |
1004 | 15526 | 000400 | ADA | DP* |
1005 | 15527 | 031551 | sta | TP |
1006 | 15530 | 072053 | SAp | •♦ltS |
1007 | 15531 | D2S5S6 | LDB | API |
1B08 | 1553? | O044C5 | AOB | DMl |
1009 | 15533 | 074557 | sta | B.I |
1010 | 15534 | 004405 | ADO | DMl |
1011 | 15535 | 021563 | LDA | TSW |
1012 | 15536 | 074557 | STa | B,I |
1413 | 15537 | 004495 | ADB | DMl |
1014 | 1554 0 | 063263 | JSm | KBFG |
1015 | 15541 | 070110 | SZA | •♦2 |
1016 | 15542 | 045624 | ISZ | DISEN |
1017 | 1554 3 | 074557 | STA | BtI |
1018 | 15544 | .020400 | lda | DP4 |
J019 | 1554S | 031563 | sta | TSW |
1020 | 15546 | 004405 | ADB | DMl |
1021 | 15547 | 02ΐ6β4 | LDA | NMA |
1022 | 1555« | 07Λ557 | STA | B.I |
1023 | 15551 | 070742 | SAR | 16 |
1B24 | 15552 | 031604 | STA | NMA |
1025 | 15553 | C$14405 | *DB | DMl |
1026 | 15554 | C21557 | LDA | AP2 |
1027 | 15555 | Ϊ35556 | STB | API |
1028 | 15556 | 035557 | STB | AP2 |
1029 | 15557 | 131557 | STA | AP2.I |
1030 | 15560 | 164346 | JHP | XJiI |
1031 | ||||
1032· | 15561 | 1316f!5 | XFN? STA | IMAiI |
1033 | 15562 | 160552 | JSM | SXJ,1 |
1034 | 15563 | 063071 | JSM | GETIC |
1035 | 15564 | 062776 | jsm | HUNT |
1Ö36 | 15565 | 074113 | SHp | •♦2 |
1037 | 15566 | 067437 | JMP | ADGT 2 |
1038 | 15567 | 367604 | JMP | XFNl |
1B39 | ||||
1040· | 15570 | 16Π552 | XFUNC JSM | SXJ,I |
1041 | 15571 | 1216C5 | LOA | IMA,I |
1042 | 15572 | 074073 | SBP | •♦1«C |
1043 | 15573 | 035722 | STo' | T4 |
1044 | 15574 | 070070 | SIA | •·1 |
1045 | 1557? | 055556 | DSZ | API |
1046 | 15576 | 131556 | SlA | API, I |
1047 | 15577 | 025567 | LDB | MPH |
1048 | I56frt | 077350 | RZb | XFN2 |
1349 | 15601 | 125722 | LOB | ΤΊ.Ι |
1050 | 15602 | 076110 | HZr | ••2 |
1051 | 156H3 | 067561 | JMP | XFN2 |
1052 | 15604 | 135722 | XFNl STb | T4,I |
1053 | 15605 | 135635 | STB | IMAiI |
1054 | 15606 | 035546 | STB | CMA |
1055 | 15637 | 025556 | LOB | API |
1056 | 15610 | 070742 | SAR | 16 |
1057 | ||||
BEGINNIHG OF FUNCTION CALLED CODE. INITIALIZE LVADD SAVE A TEMPORARY RESULT LOCATION FOR FUNCTION VALUE
SET THIS ADDRESS IN CORRECT POSITION OF STACK
SAVE CURPENT VALUE OF TSW IN STACK
KEYrOARd OR PROGRAM MODE
IF ZERO PROGRAM MODE
KEYROARO DISALLOW ENTER MODE
SAVE INFO ABOUT KEYRD OR PRG MODE
IF ZERO PROGRAM MODE
KEYROARO DISALLOW ENTER MODE
SAVE INFO ABOUT KEYRD OR PRG MODE
SET TSW=4
SAVE ΝΜΛ. MAYBE GSB OR GTO STAT. PRECEEDED FUNCTION
CLEAR NMA
SETUP NFW LEVEL WITHIN RUN-TIME STACK RETURN TO INTERPRETER
GET FUNCTION KEYCODE
GET INTFPNAI. CODE
GET INTFPNAI. CODE
WAS SUBPROGRAM DEFINED
NO.SETUP FUNCTION
YES
NO.SETUP FUNCTION
YES
END OF PARAMETER LIST. SECOND SPECIAL FUNCTION CALL COOE. SEARCH FOR ADDRESS OF SUBPROGRAM
A-REG HaS CORRFCT ADDRESS FOR RETURN TO ARITH STATE
CHECK FAST TRANSFER FLAG
IF NON-ZF(O FAST TRANSFH NOT ALLOWED
FAST TRANSFER IVLLOMfO. GET 16-IU T ADDRESS
IF ZERO.FIRST TIME FUNCTION CALLED
SEARCH FOR SUBPROGRAM
B-HEG HAS ADDRESS OF THF SUBPROGRAM
SAVE IT IN USER'S PROGRAM
UPDATE CHA
309832/08 A3
OBlQiNAL INSPECTED
■- 351
USER-DEFINEABLE FUNCTION BLOCK — "UDFUN"
1058 | 15611 | 067306 | JHp | XSEl |
1059· | ||||
1060 | 15612 | 025557 XF | LDB | ΛΡ2 |
1061 | 15613 | 074517. | LOa | B.I |
Iß 62 | 15614. | .331557 | SlA | ΛΡ2 |
1063 | 15615 | 074070' | SIB | «♦1 |
1064 | 15616 | 074517 | LDA | B,I |
1065 | 15617 | £: 316*14 | SlA | NMA |
1066 | 15620 | G74070 | SIB | »♦1 |
1067 | 15621 | 074517 | LDA | BtI |
1068 | 15622 | £372510 | HZA | XF 2 |
1069 | 15623 | 074070 XFl | SIB | «♦1 |
1070 ι | 15624 | C74517 | LDA | B.I |
1071 | 15625 | Ö31563 | STA | TSW |
1072 | 15626 | 074070 | SIB | **1 |
1073 | 15627 | 074517 | LDA | B,I |
1074 | 1563d | 035556 | STO | API |
1075 | 15631 | 078073 | SAp | «♦l.C |
1876 | 15632 | 031551 | STA | TP |
1077 | 15633 | 164346 | JMP | XJ. I |
107β· | ||||
1379 | 15634 | C31546 XF2 | STA | CMA |
1680 | 15635 | E61250 | JSM | XSTOP |
ieiBi | 15636 | 970742 | SAR | 16 |
1032 | 15637 | 031624 | STa | OI SEN |
1083 | 15640 | 067623 | JMP | XFl |
CONTINUE BUILDING RUN-TIME STACK
RETURN TO ARITHMETIC STATEMENT. FIRST CODE IS
FUNCTION KEYCODE. UNSTaCK KUN-TINE STACK BUILT BY TAU. RESET AP2
RESET NMA
IF N0N-7ER0 FUNCTION CALLEiD FROM KEYBOARD ELSE FUNCTION WAS IN PROGRAM
RESET TSW
RESET API
RESET TP RETURN TO MAINLINE .INTERPRETER
FUNCTION WAS CALLED FROH KEYBOARD READJUST CMA
SET STOP BIT
CLEAR ENTER MODE FLAG
309 8 32/08
INSPEGTEP
USER-DEFINtABLE FUNCTION BLOCK — "UDfUN"
1085· 1*586
1CÖ8
1092 1093 1094 1095
1P96 1097 1098· 1099 1100
1101 1132 1103
11(55 11C6 1107
1109 1110 1111 1112 1113 11U
1115 1116 1117 ine 1119 1120 1121· 1122
1123 1124· 1125 1126
1127 1128 1129
1130 1131 1132 1133
15641 15642 1564 15644 15645 15646 15647 15650 15651 15652 15-653 15654
15655 15656 15657 15660 15661 15662 15663 15664 15665
15666 15667 1567(3 15671 15672 15673 15674 15675 15676
15677 15700 15701 15702
XGAZ 074517 010405
267703 07(1172 070137 067642 00(1400
ί,·7(?517 Ρ74973
«35550 167745
C61321 XPAR
074153
624377 Ε5
167746
075710
074076
035717
025557
074517
010405
Ρ67703
070172
070137
S67665
025717
105650
Γ/74412
021717
070517
07e073
131596 XPl
164346
LDB ΛΡ2 LDA IUI
CI1A DMl JHP E2 SAH »*3tC
LDB A JHp «-5 ADA DP4 LDB AtI SBP «»ltC
STB .STPT JMP XGAZ1,1
JSm FIXPT SBP ·*3 LDB DP5 JMP EXERtI SZB ·~2
TCR
STB Tl LDB ΛΡ2 LOA B.I
CPA DMl JMP E2 SAM «»3»C
LDB A JMP »-5 LDB Tl ADB NUMP,I SUM XLOV ADA Tl
LDA A,I SAP »»ltC
15703 024402 E2
15704 167746
15705 074076 XLOV
15706 074704 157H7 105725
15710 074117
15711 074076
15712 105657
15713 .'175313
15714 131657
15715 067701
a APItI JMP XJtI
LOB 0P2 JMP EXERtI
TCB SBL ADlJ L, I LDA B TCB
ADB LVAOD1I SHP XPl
STA LVADDtI JMP XPl
->F ROUTINE
IF AP2 IS POINTING TO A -1
THEN ER«Ol' U?. . ->F KEY APPEARS IN A PROGRAM NOT C
WITH A FUNCTION. LOOK FOR SPECIAL FLAG LOOK FOR ANOTHER AP2
"P" ROUTINE CONVERT SUBSCRIPT TO BINARY IF - ERROR #5
IF ZERO ERROR #5
M-AKE IT NEGATIVE
SAVE SUBSCRIPT FIND STACK AREA WHERE PARAMETER ADORESS EXISTS
SUBSCRIPT IS OUTSIDE THE RANDE OF THE PARAMETER LlS
COMPUTE CORRECT ADDRESS FROM BASE ADDRESS IN L
309832/08A3
INSPECTED
USER-DEFINEAOLE FUNCTION BLOCK — "UDFUN"
1135· | interpreter | 027720 | TABLE | LDB | «♦2 |
1136* | 067241 | JHP | XSCR | ||
1137» | 15716 | 867233 | TTBl | JMP | XIEX |
1)38 | 15717 | 167752 | JHP | XGTOtI | |
1139 | 157?0 | C67641 | JMp | XGAZ . | |
1140 | 15721 | P67655 | JHP | XPAR | |
1141 | 15722 | 001632 | DEF | 1632B | |
1142 | 15723 | 031650 | DEF | 1650B | |
1143 | 15724. | C017?4 | NSRW | DEF | 1724Π |
1144 | 15725 | 00(103(5 | OBBF | DEC | 24 |
1145 | 15726 | 000035 | 0BBF2 | OCT | 35 |
1146 | 15727 | P67.353 | DP24 | JMP | XRET |
1147 | 1573K | 067440 | GSBK | JMP | XDEF |
1148 | 15731 | C67352 | JMP | XEND | |
1149 | 15732 | 067271 | JMP | XSEOL | |
1150 | 15733 | 367570 | JMP | XFUNC | |
1151 | 15734 | 967524 | JMP | XTAU | |
1152 | 15735 | ||||
1153 | 15736 | ||||
1154 | |||||
XCALL
"UDFUN"
1156· | 00431 | OQl | EOU | 431B | EQU | 446B |
1157 | «0432 | OR 2 | EOU | 432B | EOU | 4510 |
1158 | 00433 | 0B3 | EOU | 4330 | EOU | 517B |
1159 | 00005 | IGN | EOU | 5 | EOU | 500B |
1160 | LQU | 5070 | ||||
1161· | 00012 | CLOD | EOU | 12ß | EOU | 52IB |
1162 | 00144 | GAZ | EQU | 144B | EQU | 524B |
1163 | 60077 | REG | EOU | 77B | tau | 533B |
1164 | 00141 | SORT | EOU | I41B | EOU | 537B |
1165 | 00254 | SKCO | EOU | 254B | EOU | 5460 |
1166 | 00314 | BCPLR | EQU | 3140 | EQU | 551B |
1167 | β0315 | INTRP | EOU | 315B | ||
1168 | 60316 | XEOL | EOU | 3160 | ||
1169 | 00323 | .SMON | EOU | 3230 | ||
1179 | 00333 | ASTEN | EQU | 333B | ||
1171 | Β0345 | RH | EOU | 345B | ||
1172 | «0351 | 077 | EQU | 351B | ||
1173 | 63356 | DP47 | EOU | 356B | ||
1174 | 00362 | XRH | EQU | 362B | ||
1175 | 00364 | DP 16 | EOU | 364B | ||
1176 | Ö0365 | 0P15 | EQU | 365B | ||
1177 | 60366 | DPI 4 | EQU | 3660 | ||
1178 | 00367 | DPI 3 | EOu | 3670 | ||
1179 | ÖO370 | DP12 | EQU | 370B | ||
11B0 | 00371 | DPIl | EOU | 371B | ||
UBl | «0372 | DP10 | EQU | 372B | ||
1182 | «0373 | DP9 | EOU | 373B | ||
1183 | C0374 | OPB | EQU | 374B | ||
1184 | 00375 | 0P7 | EQU | 375B | ||
1185 | 00376 | 0P6 | EQU | 376B | ||
1186 | C0377 | DP5 | EOU | 377B | ||
1187 | 00400 | DP4 | EOU | 400B | ||
11BB | 00401 | DP3 | EOU | 401B | ||
11B9 | 00402 | DP2 | EOU | 402B | ||
1190 | «0403 | DPI | EOu | 40 3B | ||
1191 | Κ0405 | OHl | EOU | 405B | ||
1192 | «0406 | DH2 | EOU | 406B | ||
1193 | 00407 | DM3 | EOU | 407B | ||
1194 | 90410 | 0M4 | EQU | 410B | ||
1195 | 63411 | DM5 | EQU | 411B | ||
1196 | 00413 | 0H7 | EOU | 4138 | ||
1197 | 00414 | AISP | EOu" | 414B | ||
119B | 00420 | DM16 EQU 420R | ||||
1199 | 00446 | ALCOM | ||||
1200 | «0451 | DP20 | ||||
12*1 | «0517 | BOT | ||||
1202 | 00500 | APMA | ||||
1203 | «0507 | NULL | ||||
1204 | 0052] | STEN- | ||||
1205 | 00524 | XRI | ||||
1206 | 00533 | RETl | ||||
1207 | «0537 | COEOL | ||||
1208 | 00546 | QUOTE | ||||
1239 | «0551 | OPTN | ||||
1210' | ||||||
1211· | ||||||
ORIGINAL INSPECTED
USER-DCFINEABLE FUNCTION BLOCK —- "UDFUN"
1212 | 00451 | CNFC | EOU | DP20 | ( | • | - |
1213 | Cfl356 | CNFN | EQU | DP47 | |||
1214 | 03355 | CNFR | EOU | 355B | I I |
||
1215 | «0454 | CNFY | EOU | 454B | |||
1216 | «10452 | CNFO | EQU | 452B | |||
1217 | 00437 | EOL | EQU | 437B . | |||
1218 | $10503 | CNFL | EQU | 503B | |||
1219 | Ö0457 | CNFE | EQU | 4«57ß | |||
1220 | Ö0355 | CNFB | EQU | 355B | |||
1221· | |||||||
Ϊ222 | 01542 | END$ | EOU | 1542B | |||
1223 | B1543 | LIMl | EOU | 1543B | GTO LINKAGE | ||
1224 | 01544 | SKEY | EQU | 1544B | |||
1225 | 01545 | PSP | EQU | 1545B | |||
1226 | 91546 | CMA | EQU | 1546B | |||
1227 | 01550 | .STPT | EOU | 1550B | |||
1228 | 81551 | TP | EQU | 1551B | CONFIGURATION | ||
1229 | β 1556 | API | EOU | 1556B | |||
1230 | C1557 | ΛΡ2 | EQU | 1557B | END LINKAGE | ||
1231 | G1560 | OSW | EOU | 1560B | page Identification | ||
1232 | 01561 | CODE | EOU | 1561B | |||
1233 | 01540 | CN | EQU | 15408 | |||
1234 | 91541 | OP | EQU | 1541B | |||
1235 | 81563 | TSW | EQU | 1563B | |||
1236 | 01567 | MPH | EQU | IS 67 B | |||
1237 | Q1570 | ISP | EQU | 1570B | |||
1238 | 01573 | TECS | EQU | 1573B | |||
1239» | |||||||
1240 | 91600 | PMA | EQU | 1600B | |||
1241 | 01601 | STAT | EQU | 1601B | |||
1242 | 01602 | G | EOU | 1602B | |||
1243 | 01604 | NMA | EOU | 1604B | |||
1244 | 01605 | IMA | EOU | 1605B | |||
1245 | 01606 | PS | EQU | 1606Q | |||
1246 | Ö1620 | NCODE | EQU | 1620B | |||
1247 " | 91614 | TPP | EQU | 1614B | |||
1248 | 01615 | BSTK | EQU | 1615B | |||
1249 | 01616 | ERASE | EQU | 1616Π | |||
1250 | 01623 | GOTF . | EQU | 1623B | |||
1251 | 01624 | DlSEN | EQU | 1624B | |||
1252· | |||||||
1253 | 01650 | NUMP | EQu | 1650B | |||
1254 | 01651 | .G | EQU | 1651B | |||
1255 | 01652 | NAB | EGU | 1652B | |||
1256 | β 1653 | " IXFLG | EQU | 1653U | |||
1257 | 31654 | EN | EOU | 1654B | |||
1258 | 01655 | PG | EQU | 1655B | |||
1259 | 01656 | SOSW | EQU | 1656B | |||
1260 | öl 657 | LVAOfr | ECU | 1657fl | |||
1261 | 61666 | POPR | EQU | 1666B | |||
1262· | |||||||
1263 | 01701 | .WKC | EQU | 1701B | |||
1264 | 01705 | .WMOD | EQU | 1705B | |||
1265 | 01710 | .ENO? | EOU | 171OB | |||
1266 | 01712 | RR | ECU | 1712B | |||
1267 | 81715 | DFUN | EQU | 1715B | |||
309832/TS4 3
USER-DEFINEAßLE FUNCTION BLOCK — "UDFUN"
1268· | «1716 | 077777 | Tfl | EOU | 1716R | 034126 | FCN | OEF | 4126B |
1269 | 01717 | Tl | EOU | 1717B | 034 315 | CC | DEF | '♦315B | |
I27ft | C1720 | T2 | EOU | 1720« | f)P43l7 | CCl | OEF | 4317B | |
1271 | 01721 | T3 | EOU | 1721B | C»4350 | STSK | DEF | 43S0B | |
1272 | 31722 | T4 | ECU | 1722« | C04422 | CHKR | DEF | 4422B | |
1273 | 81723 | 75 | EOU | 1723B | (304672 | XGAZl | DEF | 4672B | |
1274 | 31724 | EOLFG | EOU | 17243 | C047P15 | F.XF.R | UEF | 4705B | |
1275 | G1725 | L | EOU | 17253' | !"!(5541*1 | GAS? | DEF | 5401R | |
1276 | 01726 | IEXC | EOU | 1726« | «05334 | G02 | DEF | 5334« | |
1277 | 0 1744 | ARl | EOU | 1744(1 | 035526 | GTOP | DEF | 5526B | |
1278 | 01702 | GTS | EOu | 17O2B | £{15213 | XGTO | OEF | S213« | |
1279 | 01777 | RSTAK | EOU | 1777B | C35342 | G04 | DEF | 5342Π | |
1280 | CÜ5172 | XGSS? | DEF' | 5172H | |||||
1281· | 01250 | XSTOP | EOU | 1250B | C?5177 | XGSSl | OEF | 5177B | |
1282 | 01253 | XNSTP | EOU | 1253R | fie.5276 | XG2 | DEF | 5276Π | |
1283 | 01265 | XRR | EOU | 12658 | RKHUF | EQU | 7646B | ||
1284 | 01274 | DISIS | EOU | 1274R | 207647 | RKBUl | DEF | HKBUF*1 | |
1285 | 01304 | CPl | EOU | 1304B | Γ07Ο23 | SKCDl | DEF | 7021« | |
1286 | 01305 | CP2 | EQU | 1305B | t'37656 | RPBUF | OEF | 7656B | |
1287 | C1317 | El | ECU | 1317B | A.11 | EOU | 624/B | ||
1208 | 01321 | FIXPT | EOU | 132113 | 006251 | EXERR | DEF | A.11*2 | |
1289 | 01351 | BAD | EOU | 1351B | P06257 | TSWS | DEF | 6257B | |
1290 | 01362 | EXIT | EOU | 1362B | 006263 | STSW5 | OEF | 6263B | |
1291 | 01375 | E9A | EOU | 1375B | «06646 | PU71 | OEF | 6646« | |
1292 | 007746 | RG4 | OEF | 7746B | |||||
1293» | 15737 | DASS | OCT | 77777 | RECY | EQU | 326Π | ||
1294 | |||||||||
1295· | ΕηΐΤ-ΟΕΡΓΝΠΕΝΤ SYSTEM LINKS | ||||||||
1296» | |||||||||
1297· | 15740 | ||||||||
1298 | 15741 | ||||||||
1299 | 15742 | ||||||||
1330 | 15743 | ||||||||
1301 | 15744 | ||||||||
1332 | 15745 | ||||||||
1333 | 15746 | ||||||||
130'» | 15747 | ||||||||
1305 | 157SP | ||||||||
13H6 | J 5751 | ||||||||
1307 | 1575? | ||||||||
13P0 | 15753 | ||||||||
1309 | 15754 | ||||||||
1310 | 15755 | ||||||||
1311 | 15756 | ||||||||
1312 | 67646 | ||||||||
1313 | 15757 | ||||||||
1314 | 15760 | ||||||||
1315 | 15761 | ||||||||
1316 | P6247 | ||||||||
1317 | 15762 | ||||||||
1318 | 15763 | ||||||||
1319 | 15764 | ||||||||
1320 | 1*765 | ||||||||
1321 . | 15766 | ||||||||
1322 | 69326 | ||||||||
1323 | |||||||||
309 8 3 2/0-0-4 3· -· ·»■■
OHIGiNAL INSPECTED
USER-DEFINEABLE FUNCTION BLOCK — "UOFUN"
1324 | 00346 | «16067 | XJ | EQU | 346B |
»325 | C0552 | «16200 | SXJ | EOU | 552R |
1326 | 15767 | 016276 | LOOP | OEF | 16-067R |
1327 | 15770 | Ö16235 | C | DEF | 16200H |
1328 | 15771 | 016246 | STORE | OEF | 16276R |
1329 | 15772 | Ö16323 | INSTK | OEF | 16235R |
1330 | 15773 | CHECO | DEF | 16246B | |
1331 | 15774 | (030090 | NEXTS | OEF | 16323R |
1332· | |||||
1333 | 15775 | NOP | |||
133'*» | ERRORS» | ||||
1335 | END | ||||
• NO | |||||
RESERVED FOR CHECKSUM
ORIGINAL IMSPEGTED 309832/084 3.
Der Rechner benutzt ein ganz aus Halbleitern aufgebautes Speichersystem. Die peripheren Schaltungen sind bipolar
und der Speicher besteht aus einem n-kanaligen MOS-Auslesespeicher
(ROM) und einem p-kanaligen MOS-Schreiblesespeicher
CRWM).
Die Adressierung und der physikalische Aufbau der Speicher-Moduln ist derart, daß die Anzahl der Wörter von 5K in der
Basismaschine auf 9K in der ganz ausgebauten Maschine steigerbar ist. Der kleinstmögliche Zuwachs des Speichers beträgt
dabei 512 Wörter.
Die Basismaschine enthält 5K Speicherwörter (also 5000
Wörter), die in 4K χ 16 ROM und 1024 χ 16 RWM aufgeteilt
sind. Die RWM Wörter von 16 Bit Länge sind in Benutzer-Register und Rechnerwörter aufgeteilt. Der größte Rechner
enthält 7K Speicherwörter des ROM und 2K Speicherwörter des RWM.
Der Schreib/Lese Speicher . -
Wie in Fig. 11 gezeigt, besteht der Speicher aus 1024 χ 1
dynamischen Schreib/Lese Speicher Chips (Intel 1103). Diese Chips sind p-kanalig und benutzen die MOS-Silizium-Sperrschicht-Technologie.
Zur Aufrechterhaltung der Speicherinhalte muß die Vorrichtung alle 2 ms aufgefrischt werden.
309832/0843
2282725
Dies erfolgt durch Ausführung eines Lese—Zyklus' an einer
gegebenen Adresse. Auf jedem Chip befinden sich 32 Auffrischungsverstärker, so daß bei. jedem Lese-Zyklus 32
Zellen aufgefrischt werden. Das gesamte Chip wird dann mittels Durchlaufen der 5 niedrigen Ädressenbits und Lesen
aller ausdrücklichen Adressen aufgefrischt. Die Auffrischungsperiode beträgt mindestens alle 2 ms 20 fis.
Die Logikpegel auf allen Eingangsleitungen zu den RWM-Chips
betragen 0 und + 16v. Diese Leitungen umfassen drei Taktleitungen (Chipauswahl, Y-Vorbereitung oder -Schreiben und
Vorladen), von Adressenleitungen und diejenigen für Eingabedaten. Die Ausgabedaten werden durch einen Strom von 600 ,ua
oder mehr an einer Last von IK Ohm oder weniger dargestellt. Dieser Niederpegelausgang ist verdrahtbar oder in der Lage,
mit anderen Chips größere Systeme zu bilden.
Wie in den Fig. 42,43A-B,44A-B dargestellt, sind die ROM-Chips
n-kanalige MOS-Anordnungen mit 4O96 Bit, die zu
512 χ 8 angeordnet sind. Diese Vorrichtungen sind statisch und verbrauchen keinen Strom, wenn sie nicht eingeschaltet
sind. Die Daten aus den ROM-Speichern werden dadurch ausgelesen, daß die Einschaltleitung des Chips von 0 nach + 12ν
mitgenommen (was das Chip einschaltet), die gewünschte Zelle adressiert (Pegel 0 oder 4v) und die einzuschaltenden Ausgabevorrichtungen
ausgewählt werden (4v oder 0). Die Ausgabe-
309832/0843
pegel eignen sich zum direkten Treiben eines TTL-Tores und
gestatten den Aufbau großer Systeme.
Wie ferner in den Fig. 47 und 48A-B gezeigt, besitzt
jedes ROM-Chip sechs Eingangspuffer. Diese Eingangspuffer erzeugen sowohl die Eingangsgröße als auch deren Komplement.
Auf der Basis von 64 möglichen Kombinationen der I_ bis mit sechs Eingängen wird eine der 64 Leitungen in dem
Dekoder ausgewählt. Die ausgewählte Leitung "schaltet eine der Vertikalleitungen in der Speicheranordnung von 64 χ 64 Bit
ein.Wenn beispielsweise IQ bis I5 = 0 und I, bis Iß nicht
näher definiert sind, so bedeutet dies, daß die Leitung XOO (oktal) ausgewählt ist.
Die beiden 8 aus 32-Auswahl-Dekoder müssen 16 Leitungen
von den 64 horizontalen Leitungen auswählen, die durch die Vertikalleitung XOO ausgewählt sind. (Die 8 aus 32-Auswahl-Dekoder
sind tatsächlich als 2 aus 8-Dekoder aufgebaut, die sich viermal in jedem der Bereiche A-B wiederholen.) Die
Ausgänge der vier MOS-FET-Schaltungcn a, b, c und d sind
vielfach geschaltet. Die MOS-Einheiten a1, b1, c1 und d1
sind ähnlich verbunden/Wenn Ig und I-, = 0 sind, so sind
die Horizontalleitungen IXX, 2XX, 3XX, 5XX, 6XX, und 7XX in jedem der vier Abschnitte A-B geerdet. Dies stellt sicher,
daß die MOS-FET-Schaltungen b, c, d, b1, c1 und d1 nichtleitend
sind. Dies ermöglicht den Signalen, auf den Leitungen OXX und 4XX, die Transistoren a und a1 in die Aus-
09832/0843
gangsabschnitte zu gelangen. (Unter einem MOS-FET wird ein
Silizium-Metalloxyd-Feldeffekt-Transistor verstanden.)
Die Ausgangsbereiche enthalten den Ausgangspuffer, einen · 1 aus 2-Dekoder und die Ausgangstreiber s. Die Ausgangspuffer
liefern eine Verstärkung und sind auf 4 Leitungen von der Speicheranordnung vielfach geschaltet. Die 1 aus
2-Dekoder legen die Tore von zwei von vier Ausgangstreibern in jedem Abschnitt A-B fest, indem sie entweder die Leitung
Ig oder ihr Komplement I« einhalten. Dies macht 1 von 2
Signalen unwirksam, die von dem Ausgangspuffer kommen. Für ' jede 512 χ 8 -Organisation können dann die Ausgangstreiber
zusammen mit der Leitung Ce} verbunden werden.
Alle oben verzeichneten Konstanten, Programme und Unterprogramme mit von Seiten des Rechners benutzten Basisinstruktionen
sind in diesen ROM-Chips gespeichert. Die 16 Bits jeder Konstanten und jedes Basisbefehles sind in
den 512 χ 8 (dezimal) ROM-Chips gespeichert indem die ROM-Chips in 64 χ 64 Bit-Matrizen organisiert sind und die
Zeilen- und Spaltennummern jedes Bits einer jeden Matrix durch Verarbeiten einer jeden Adresse und des betreffenden
Bits (15 bis 8 oder 7 bis 0) errechnet wird. Die Spaltennummer errechnet sich durch Abziehen der letzten zwei
Stellen der Adresse von 100 (oktal). So ist beispielsweise die Spaltennummer der Adresse 000 = 100g - 00ß = 100 -
• . ■ 8 641O und die Spaltehnummer der Adresse 777 = 100g - 77g =
309832/0843
M-Register .
Wie in den Fig. 11 und 20A-D dargestellt, enthält die M-Register-Karte das Adress- oder M-Register von 16 Bit
Länge, alle Dekodier- und Pufferschaltungen für die Vorbereitungen des Chips und Adressenpuffer sowohl für den
ROM- als auch den RWM-Speicher. Das Register benutzt vier, 4-stellige Schieberegister mit Serienein- und Ausgabe und
parallel Ein- und Ausgabe. Bei Empfang eines Befehls TTT von dem Mikrorechner gelangen Seriendaten von der T-Sammeischiene
in das M-Register. Mit diesen Daten erfolgt so lange nichts, bis entweder ein Lese- oder Schreibbefehl
empfangen wird. Daraufhin werden ein oder zwei Dekoder vorbereitet. Diese zur Chipvorbereitung dienenden Dekoder
entschlüsseln eindeutig welcher Block von 512 Wörtern im ROM- oder RWM-Speicher gerade adressiert wird. Wenn der
ROM-Speicher adressiert ist, wird das Signal invertiert und auf +12v verstärkt. Im Falle des RWM-Speichers bereitet die
Chip-Vorbereitung ein Tor vor, welches ein 16v-Taktsignal zu den vorbereiteten RWM-Chips gelangen läßt. Die Taktimpulse
werden auf der Steuerkarte erzeugt.
Die dynamische Charakteristik der RWM-Chips erfordert es,
daß alle Chips gleichzeitig während eines Auffrischungszyklus
eingeschaltet werden um den gesamten RWM-Speicher aufzufrischen. Die Pufferschaltungen im Ausgang der Dekoder
309832/0843
Uh
der Chip-Vorbereitung ermöglichen es im Chip-Wähltakt,
während des Auffrischens alle RWM-Chips zu erreichen, aber während eines Lese- oder Schreibzyklus nur die ausgewählten.
während des Auffrischens alle RWM-Chips zu erreichen, aber während eines Lese- oder Schreibzyklus nur die ausgewählten.
Als Puffer für die ROM-Adressenleitungen werden UND-Tore
mit u Totempfahl"-Ausgang und Widerstands-Einstellung benutzt. Durch Verwendung dieser Tore "Totempfahl"-Ausgang
kann der Einfluß des Übersprechens gering gehalten werden
und durch die Widerstands-Einstellung werden die Adressen-Leitungen über den erforderlichen Pegel von 4v hinaus angehoben. Die NAND-Tore werden während eines Speicherzyklus vorbereitet, so daß die ROM-Adressenleitungen bei einem
Pegel von 5v gesperrt werden. Die RWM-Adressenleitungen
müssen von Ov auf + 16v angehoben werden. Für die 5 bedeutsamsten Stellen werden Spannungsfeste inverter mit offenem Kollektor benutzt, deren Einstellung mit diskreten Transistoren vorgenommen wird. Die 5 unbedeutendsten Adressenbits werden über eine Sammelschiene an die Steuerkarte geführt, wo sie in einem Teil der Auffrischungsschaltung benutzt
werden.
mit u Totempfahl"-Ausgang und Widerstands-Einstellung benutzt. Durch Verwendung dieser Tore "Totempfahl"-Ausgang
kann der Einfluß des Übersprechens gering gehalten werden
und durch die Widerstands-Einstellung werden die Adressen-Leitungen über den erforderlichen Pegel von 4v hinaus angehoben. Die NAND-Tore werden während eines Speicherzyklus vorbereitet, so daß die ROM-Adressenleitungen bei einem
Pegel von 5v gesperrt werden. Die RWM-Adressenleitungen
müssen von Ov auf + 16v angehoben werden. Für die 5 bedeutsamsten Stellen werden Spannungsfeste inverter mit offenem Kollektor benutzt, deren Einstellung mit diskreten Transistoren vorgenommen wird. Die 5 unbedeutendsten Adressenbits werden über eine Sammelschiene an die Steuerkarte geführt, wo sie in einem Teil der Auffrischungsschaltung benutzt
werden.
Steuerung "·, ;' . ·
Ein Speicherzyklus besteht aus einem Lese- oder Schreibbefehl
aus dem Rechner, der von 12 Taktimpulsen aus dem
Schiebe-Taktgenerator begleitet wird. Xfie in den Fig. 11 und 13A-D gezeigt, benutzt die Steuerung diese Impulse und Befehle
Schiebe-Taktgenerator begleitet wird. Xfie in den Fig. 11 und 13A-D gezeigt, benutzt die Steuerung diese Impulse und Befehle
309832/0843
- IM -
zur Erzeugung der für die RWM-Chips erforderlichen Taktimpulse.
Ein synchroner 4-Bit-Zähler (SN 74193) dient zum Zählen der Taktimpulse und die 4 Ausgangssignale werden
durch einen 1 aus 16-Dekoder (SN 74154) dekodiert, um die Eingangssignale J und K für die Flipflops zu erzeugen. Die
Ausgangssignale der Flipflops werden dann gepuffert, wodurch
sie die erforderlichen Taktsignale werden (Vorladen, Y-Vorbereiten
und Chipauswahl).
Das Auffrischen des RWM-Speichers erfolgt ebenfalls über die
Steuerkarte. Ein astabiler Multivibrator mit einer Folgefrequenz von mindestens 500 Hz erzeugt ein Signal, welches
das Auftreten eines Auffrischungszyklus gestattet. Ein Flipflop erzeugt ein Signal REF, jedoch nur wenn das Signal
des astabilen Multivibrators den Wert H hat, wenn kein Lese- oder Schreibzyklus abläuft und wenn das Signal des Rechners
CCT den Wert H hat. Das Signal CCT nimmt zwischen den , Befehlen des Rechners den Wert H an, so daß sichergestellt
ist, daß nichts unterbrochen werden kann, wenn das Signal REF erzeugt wird. Das Signal REF wird dann durch einen
Inverter mit offenem Kollektor gepuffert und als INH an den Rechner gegeben. INH hält den Rechner an und läßt den Auffrischungszyklus
beginnen.
Bei der Auffrischung wird der gleiche Zähler benutzt, wie für einen Speicherzyklus, um ebenfalls die erforderlichen
Taktimpulse (Vorladen und Chip-Auswahl) zu erzeugen. Wenn
309832/0843
der Zähler in den Zustand O zurück kehrt und das Signal .
REF vorliegt, wird ein zweiter Zähler um einen.Schritt
weitergeschaltet. Dieser zweite Zähler liefert die Auffrischungsadressen, die nur dann zu dem RWM-Spelcher gelangen, wenn das Signal RWF vorliegt. Wenn dieser Zähler in den Zustand 0 zurück kehrt, bewirkt er, daß die Signale REF und INH in ihre vorgewählten Zustände zurück kehren und der Rechner mit seinem normalen Betrieb fortfährt.
REF vorliegt, wird ein zweiter Zähler um einen.Schritt
weitergeschaltet. Dieser zweite Zähler liefert die Auffrischungsadressen, die nur dann zu dem RWM-Spelcher gelangen, wenn das Signal RWF vorliegt. Wenn dieser Zähler in den Zustand 0 zurück kehrt, bewirkt er, daß die Signale REF und INH in ihre vorgewählten Zustände zurück kehren und der Rechner mit seinem normalen Betrieb fortfährt.
Eine weitere Funktion der Steuerkarte ist es, die Möglichkeit
einer Speichererweiterung zu gestatten. Die Steuerkarte behandelt einen externen Speicher so, als wäre er
eine Erweiterung des internen Speichers. Von dem Standpunkt des Benutzers aus gesehen, braucht er nicht zu wissen, daß ein erweiterter Speicher vorgesehen ist, abgesehen von der Tatsache natürlich, daß der zur Verfügung stehende Speicherplatz vergrößert worden ist. ■ .
eine Erweiterung des internen Speichers. Von dem Standpunkt des Benutzers aus gesehen, braucht er nicht zu wissen, daß ein erweiterter Speicher vorgesehen ist, abgesehen von der Tatsache natürlich, daß der zur Verfügung stehende Speicherplatz vergrößert worden ist. ■ .
Weiterhin bietet die Steuerkarte die Möglichkeit, über die D-Sammelschiene (die Daten-Schiene) aus dem T-Register des
Rechners Information zu entnehmen oder in dieses Register
Information einzuladen. Andere auf der Steuerkarte erzeugte Signale werden dazu verwendet, den Datenfluß in das T-Register zu lenken.
Information einzuladen. Andere auf der Steuerkarte erzeugte Signale werden dazu verwendet, den Datenfluß in das T-Register zu lenken.
T-Register
Die Daten von und zu dem Speicher werden vorübergehend in dem
309832/0843
2282725
T-Register gespeichert. Wie aus den Pig. 19 und 14A-D
zu ersehen, wird das T-Register aus 4 vierstelligen Schieberegistern mit Serienein- und Ausgabe und parallel
Ein- und Ausgabe gebildet. Die Schieberegister besitzen eine Modus-Steuerung (TMC), welche im Zustand L einen
Serien-Datenfluß und im Zustand H einen Parallel-Daten-
fluß ermöglicht.
Seriendaten laufen bei Vorhandensein eines Befehls TTT
in das T-Register ein, gleichzeitig laufen sie in dem T-Register um, um einen Datenverlust zu verhindern.
Paralleldaten werden entweder vor; dem ROM-Speicher oder von dem RWM-Speicher während, eines Lesezyklus empfangen. Die
Daten des ROM-Speichers werden durch NAKD-Tore gepuffert und diejenigen des RWM-Speichers durch Leseverstärker
und die gleichen NAND-Tore. Alle 16 Bit werden sowohl beim
RWM-Speicher als auch ROM-Speicher gleichzeitig abgelesen. Jedesin dem RWM-Speicher einzuschreibendes Bit hat seine
eigene getrennte Pufferstufe, welche die TTL-Pegel in diejenigen der von dem RWM-Speicher verwendeten 16v-Logik umsetzt.
Merkzeichentafel des Speichersystems Außerhalb des Speicher- I/O-Verbinders erzeugte Signale
CCT - Nicht-Steuertakt, die invertierte Hüllkurve von SCK.
SCK - Schiebetakt.
309832/0843
MCK - Speichertaktf ein kontinuierlicher Impulszug, der von
der Speichersteuerung zum Takten der Speicher- und
Auffrischungszyklen verwendet wird.
IOD — I/O-Daten. Gelangt zur Steuerkarte, um auf die £3-Schiene
geschältet zu werden.
ITS - "I/O zur "S-Schiene", das Signal, welches IOD auf die
ITS - "I/O zur "S-Schiene", das Signal, welches IOD auf die
S—Schiene schaltet. - -
SCO 4- Kodierte Signale, welche folgende Signale erzeugent
SCI ÜTS - Einheiten zur ^-Schiene,
ΐ ZTS - Null zur "
MTS - M-Register ■ " TTS - T-Register H H
TTT - *T-Schiene zum T-Register j!. Oy =■ Ein,
T-Schiene- Daten auf dieser Schiene dienen als Eingänge der
Register M und T.
RDM - "Speicherfiesen", negativer Wert = Eins, Dauert
12 Taktimpulse lang.
WTM - "Speicher schreiben", negativer Wert = Eins. Dauert
12 Taktimpulse lang.
INH - "Sperrung/ negativer Wert = Eins. Der Rechner wird
angehalten, sobald INH auf fiull Volt liegt. Die
Speichersteuerung erzeugt dieses Signal während eines Auffrischungszyklus des RWM-Speichers. I/O erzeugt
es ebenfalls.
TOO, TOl, T02 und TO3 rühren vom T-Register her.
309832/0843
- 36β -
D-BUS - "Daten-Schiene". Externe Daten (vom erweiterten
Speicher) gehen über diese Schiene in den Rechner. EDT - "Externer Datentransfer", welcher die Daten der
D-Schiene in den Rechner schaltet. Ov = Eins.
EMB - "Erweiterte Speicher belegt". Ein Signal des erweiterten Speichers, welches der Speichersteuerung
meldet, daß
a. Ein Zyklus des erweiterten Speichers beendet ist
b. Der erweiterte Speicher vorhanden ist.
Auf den RWM-Speicher^Karten erzeugte Signale
RWDCXX) - "Schreib-Lese-Daten". Ausgang des 1103-Speichers.
60OfA in 150 Ohm = 1
Kein Strom =0
Kein Strom =0
AOP - Invertierte "Zusatz-Funktion". 0,5V-Signal# wenn
keine zusätzliche RWM-Speicher-Karte {Wahlmöglichkeit 01) in dem Rechner vorhanden ist. Ov * Eins.
Bezeichnung | - |
AOO-AO4 | Steuerung |
AO5-AO9 | M-Register |
CSB | M-Register |
CSA | M-Register |
RWI(XX) | T-Regißter |
YBL | Steuerung |
PCG | Steuerung |
309832/0143
Auf der T-Register-Karte erzeugte Signale
T00-T15 - Datenbits des T-RegisterSo Eingabedaten für
den Speicher. T00-T03 sind gleichfalls Ausgabe-Daten zu der CPU (4 Bit-Verarbeitung)„ · '
RWI(XX) - Schreib/Lese-Eingänge. Das T-Register schaltet die Daten zum RWM-Speicher. +16V ■>
GND.
Andere vom T-Register erzeugte Signale
Bezeichnung | Quelle | erzeugte Signale |
ROD(XX) | ROM-Speicher , ' · | |
TRI | Steuerung | |
TSC | Steuerung | |
TMC | Steuerung | |
TPC | Steuerung | |
RWD(XX) | RWM-Speicher | |
RWE | M-Register | |
MAW | M-Register | |
AOF - Zusätzliche RWM-Speicher-Karte (Wahlmöglichkeit 01) | ||
Auf der M-Register-Karte |
M00-M15 - Datenbits des M-Registers. Erzeugen die Adresse
und die Chip-Auswahl-Information (MOO wird geichfalls durch MTS auf die U-Schiene geschaltet)
100-107 - Adressenbit des ROM-Speichers. Ilerunterdekodiert
bis auf zwei Bits, die an den Ausgabepuffern des
ROM zur Verfügung stehen.
09832/084
vorbereitet werden.
CEB(XX) - Chip-Vorbereitung. Der Basisrechner wählt aus,
welche ROM-Chips eingeschaltet sind (+1OV = Ein). CEA(XX) - Chip-Vorbereitung.Beim Zusatz-ROM-Speicher
AEN - Adressenvorbereitung. AEN = RDM + WTM AO5-AO9 - Adressenstellen des RWM-Speichers (+16V & GND)
CSB(XX) - Chipauswahl des Basisrechners. Ein Taktimpuls
mit negativ = einSj welcher auswählt, welche
RWM-Chips eingeschaltet werden. (+16V & GND) CSA(XX) - Chipa'uswahl beim Zusatz
RWE - Schreib/Lese-Vorbereitung. Ein +5V~Signal, das
jedesmal auftritt, wenn ein RWM-Chip für einen
Speicherzyklus adressiert wird. Mi iVv - Maximaler Adre ss en um fang. Ein +5V-Signal das
jedeξma1 auftritt, wenn die Speiehersteile
i 3 7 7 (ο k t a1} aare s s i e rt wird.
KVA - uηgü11igο Adrcssc, Eiη + 5V-Sigηal für a11e
Adressen groß ;r als 2 2:000 (oktal)
ΐ: W A - S c h r e i b / L e s ο η b ■ :i i. m Zusatz, ^ i: i 11 a u f , we η η der
R W M- Γ) ρ e i c i :.; r ζ ν i s c: Ii ο 11 20000 un d 2 2 000 (ο k t a 1)
;. ,. d r c s s 1.:;:: r t w i r d . 0 '
r ■ E ins.
RWB - 5:c.:hrei 1 :>
/" l >e;:' ■ : ■ >ι 1. :■ i.in Grundsys 13in.. 1Fri11 auf ,
w e 11! ι d'".: ■ .::;■ ]■:: "·, \' K - ■■' [' >
ο i c h υ r zwisc 11 a n 3. ■ 10 0 & 17 0 0 (ο k 1 ■..: ·.,
ο a :: r 16 -i t;0 u π, \ 17 7 7 7 (ok ta 1) υ. d r ^r, s i ν r t vj i r d,
3 0 9 β 3 2 / g 8 4 3
ί- ϊ |
Andere vom M-Register erzeugte Signale | Quelle |
ί | Bezeichnung | Rechner |
T-Schiene | Rechner | |
SCK | Rechner | |
RDM | Rechner | |
WTM | Rechner | |
UM | Steuerung | |
VLD | Steuerung | |
Hi1S | Steuerung | |
CSL | Steuerung | |
REF | Auf der Steuerkarte erzeugte Signale | |
VOR - In der Mitte eines Speicherzyklus erzeugtes Signal,
das die aktiven Einstell-Einrichtungen der ROM-Ausgänge
abschaltet.
TRI - Eingang des T-Registers. TRI = (T-Schiene). (TTT) + (TOO) . (TTS)
MTS - M-Register zur S-Schiene. Vom SCO und SCl erzeugt.
AOO-AO4 - Adressenbits des RWM-Speichers, die auch bei der
Speicherauffrischung benutzt werden.
TSC - Serientakt des T-Registers. TSC = SCK.(TTS + TTT + EDT(
TPC - Pralleltakt des T-Registers. (Taktet Daten vom
Speicher ein)„ Tritt rmz bei e£nem Lesezyklus
de« internea Speichers auf.
3§SS32/0843
YBL - Y-Vorbereitung. Taktimpuls der beim Lesen auf
+16V und beim Schreiben auf GND herunter gedrückt
wird (nur beim RWM-Speicher).
PCG - Vorladung. Der dritte 16V-Taktimpuls, der von den
PCG - Vorladung. Der dritte 16V-Taktimpuls, der von den
Speicher-Chips des 1103 RWM-Speichers benötigt
wird.
CSL - Chip-Auswahl-Takt. Das konjunktiv mit den Daten
CSL - Chip-Auswahl-Takt. Das konjunktiv mit den Daten
des M-Registers wirkende Signal zur Chip-Auswahl. REF - Auffrischung. Liegt auf OV, wenn der Speicher
sich im Auffrischungszyklus befindet. CEM - Aufruf des erweiterten Speichers. Verhindert, daß
ROM-Takt den Zustand des Mikro-Rechners verändert.
Tritt bei allen Schreib- und Lesebefehlen auf.
Das Signal wird entfernt, wenn ein Speicherzyklus nicht derjenige eines erweiterten Speichers ist.
Bei Zyklus eines erweiterten Speichers wird CEM überstrichen beseitigt, nachdem der Speicherden
Zyklus beendet hat. 0 = Eins.
S-BUS - Schaltet das I/O-Register, Daten, TOO, MOO oder
einzeln auf die S-Schiene und wird zum Rechner geleitet. 0 = Eins.
INH - Sperrung, negativer Wert = Eins. Der Rechner wird
angehalten, sobald INH auf null Volt liegt. Die Speichersteuerung erzeugt dieses Signal während
des RWM-Speicher-Auffrischungszyklus. I/O erzeugt
es ebenfalls.
309832/0843
3η
TMC — Modus-Steuerung für das T-Register. TMC = 0 :
T-Register wird zur Aufnahme von Information aus dem Speicher vorbereitet. TMC = 1 ;
Das T-Register wird für eine serielle Verschiebung vorbereitet.
EMC - Zyklus des erweiterten Speichers. +5V-Signal wird verwendet, um anzuzeigen, daß der erweiterte Speicher
einen Zyklus begonnen hat. OV = Eins.
VLD - In der Mitte eines Speicherzyklus auftretendes.
Signal, welches die Datenausgabe aus dem ROM-Speicher ermöglicht. Gleiches Auftreten wie VORi
Andere von der Steuerung erzeugte Signale
'
CCT Rechner
TOO > T-Register
IOD Rechner
ITS Rechner
SCO Rechner
SCI Rechner
TTT Rechner
T-BUS Rechner
SCK Rechner
RDM Rechner
WTM . Rechner
MCK ■ Rechner
309832/0843
M0O-M04 M-Register
AEN M-Register
EDT erweiterter Speicher
D^BUS . I/O-Verbinder
NVA M-Register
AOF zusätzlicher RWM-Speicher
(Wahlmöglichkeit 01)
EMB erweiterter Speicher
MAW M-Register
RWA M-Register
Auf der ROM-Karte erzeugtes Signal
ROD(XX)- Daten des Auslesespeichers
ROD(XX)- Daten des Auslesespeichers
CEA(XX) M-Register
CEB(XX) M-Register
100-107 M-Register
108 IÖE M-Register
VOR Steuerung^
In den Fig. 15A-D ist die dem Sichtgerät des Rechners zugeordnete
Hardware dargestellt. Die Anzeige umfaßt ein einziges Register 400 für 16 alpha-numerische Zeichen, bei dem jede
309832/0843
Zeichenstelle aus einer Matrix von Licht-ausseridenden
Dioden (LED) mit sieben Zeilen von je fünf Spalten besteht. Das Register 400 ist in vier Quadranten 402 aufgeteilt,
die je vier Zeichenstellen besitzen. Zusätzlich zu der dargestellten Hardware enthält das Sichtgerät des Rechners
eine Anzahl in dem ROM-Speicher des Rechners gespeicherte Bit-Muster, ein Anzeigeprogramm als Firmware,■d.h. in fest
verdrahteter Form, und ein I/O-Register, die alle im vorstehenden
ausführlich beschrieben worden sind. Das Firmware-Anzeigeprogramm liest ein bestimmtes Bit-Muster, erzeugt
eine ■ Spaltenadresse 406, um das Bit-Muster in dem Anzeigeregister 400 auszurichten und transferiert das Bit-Muster
und die Spaltenadresse an das I/O-Register. Die Anzeige-Hardware
entschlüsselt dann die Spaltenadresse und schaltet jede durch das Bit-Muster ausgewählte LED ein. Dieser Vorgang
tritt für jede der 80 Spalten der Anzeige einmal pro Abtastung auf. Die Anzeige wird dabei etwa sechzig mal
pro Sekunde abgetastet.
Die von der Anzeige-Hardware benötigten Eingabewerte umfassen: 7 Bit Zeichendaten 404, eine siebenstellige Spaltenadresse
406 und ein Vorbereitungssignal 408. Bei diesen Signalen entspricht ein positiver Wert der Eins, bis auf
das Vorbereitungssignal 408, das Null sein muß, um-die Anzeige
vorzubereiten.
Die Zeichendaten 404 werden durch Zeichendaten-Inverter
an alle vier Sätze von Zeilentreibern 412 angelegt (die
30983 2/08 43
Zeichendaten für Zeile 1 werden z.B. an alle vier Treiber der Zeile 1 angelegt usw.). Die fünf unbedeutsamsten Bits
der Spaltenadresse 406 werden von einem l-aus-20-Dekoder
414 entschlüsselt und betätigen einen der Spaltentreiber 416. Die beiden bedeutsamsten Bits der Spaltenadresse 406
werden an einen l-aus-4-Dekoder 418 angelegt, der eines der Quadrantentore 420 öffnet, wenn das Vorbereitungssignal
408 eintrifft. Die LED an den Schnittstellen der durch die Zeichendaten 404 ausgewählten Zeilen und der durch die
Spaltenadresse 406 ausgewählten Spalte werden dann in Vorwärtsrichtung
vorgespannt, so daß sie Licht aussenden.
Der l-aus-4-Dekoder 418 hat einen vierten Eingang, der von
einem wieder einschaltbaren monostabilen Multivibrator gespeist wird. Für den Fall, daß das Vorbereitungssignal
408 ungefähr 500 usec lang eingeschaltet bleibt, ändert der monostabile Vibrator 422 seinen Zustand und schaltet
den l-aus~4-Dekoder 418 ab. Er bewahrt damit die LED-Matrix und andere Schaltkreiselemente vor dem Einfluß hoher Gleichströme.
Die Tastenfeldeingabeeinheit 12, die Magnetkarten-Abfühl-
und Aufzeichen-Einheit 14, der Ausgabedrucker 20, die Eingabe/Ausgabe-Steuereinheit
60, die Registereinheit 114, die ALU 116, der programmierbare Taktgeber 118 und die Mikro-
309832/0843
■ - 377 ■
programmeinheit 120 sind in der gleichen Weise aufgebaut,
wie in der deutschen Patentanmeldung P 22 28 742.9 vom
13. Juni 1972 und in der schweizerischen Patentanmeldung 8800/72 vom 13. Juni 1972 gezeigt und beschrieben ist.
309832/08A3
Claims (1)
- Patentanspruchmit einem Schreib-Lese-Speicher zum Abspeichern vom Eingabe-Speicherregister übertragener alpha-numerischer Informationen,mit einer Logik-Einheit zum Festlegen einer Anzahl Programme und Unterprogramme, welche vom Rechner beim Verarbeiten und Speichern in das Eingabe-Speicher-Register eingegebener alpha-numerischer Informationen durchgeführt werden sollen, mit einer Verarbeitungs-Einheit zum wahlweisen Durchführen eines oder mehrerer dieser Programme und Unterprogramme zum Zwecke des Verarbeitens und Speicherns in das Eingabe-Speicherregister eingegebener alpha-numerischer Informationen und mit einer Ausgabe-Einheit zum Liefern einer Außgangs-Anzeige der Resultate aus den vom Rechner verarbeiteten alpha-numerisehen Informationen, dadurch gekennzeichnet,309832/0843daß das Eingabe-Tastenfeld (12) eine Anzahl Datentasten, mit welchen aus jeweils ein oder mehreren alpha-numerischen Aussagen bestehende Zeilen .in den Rechner eintastbar sind, eine Verarbeitungstaste,mit welcher der. Rechner zum Verarbeiten einer eingegebenen, aus ein oder mehreren alpha-numerischen Aussagen bestehenden Zeile veranlaßbar ist, und eine Speichertaste aufweist, mit welcher das.Abspeichern einer eingegebenen, aus ein oder mehreren alpha-numerischen Aussagen bestehenden Zeile in den Rechner auslösbar ist, daß das Eingabe-Speicherregister (56) eine in den Rechner eingegebene aus ein oder mehreren alphanumerischen Aussagen bestehende Zeile zwischenzuspeichern vermag,daß der Schreib-Lese-Speicher (78) von dem Eingabe-Speicherregister (56) übertragene, jeweils aus ein oder mehreren alpha-numerischen Aussagen bestehende Zeilen abzuspeichern vermag,daß die Logik-Einheit (80) eine Anzahl Programme und Unterprogramme festzulegen vermag, welche vom Rechner beim Verarbeiten und Speichern in das Eingabe-Speicherregister (56) eingegebener, jeweils aus ein oder mehreren alpha-numerischen Aussagen bestehender Zeilen durchgeführt werden sollen,daß die Verarbeitungs-Einheit (48) auf eine Betätigung der Verarbeitungstaste im Anschluß an das Eintasten einer aus ein oder mehreren alpha-numerischen Aussagen ■309832/0843bestehenden Zeile in das Eingangs-Speicherregister (56) anzusprechen vermag, um wahlweise eines oder mehrere dieser Programme und Unterprogramme zum Zwecke des Verarbeitens dieser aus ein oder mehreren alphanumerischen Aussagen bestehenden Zeile durchzuführen und auf eine Betätigung der Speichertaste im Anschluß an das Eintasten einer aus ein oder mehreren alphanumerischen Aussagen bestehenden Zeile in das Eingangs-Speicherregister (56) anzusprechen vermag, um zusätzlich diese aus ein oder mehreren alpha-numerischen Aussagen bestehende Zeile in dem Schreib-Lese-Speicher (78) abzuspeichern,und daß die Ausgabe-Einheit (58) eine alpha-numerische Anzeigeeinheit (18, 20) aufweist, mit welcher jede in das Eingabe-Speicherregister (56) eingegebene aus ein oder mehreren alpha-numerischen Aussagen bestehende Zeile optisch darstellbar ist.309832/0843seiLee r s e ί t e
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US00212581A US3839630A (en) | 1971-12-27 | 1971-12-27 | Programmable calculator employing algebraic language |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2262725A1 true DE2262725A1 (de) | 1973-08-09 |
Family
ID=22791628
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2264897A Pending DE2264897A1 (de) | 1971-12-27 | 1972-12-21 | Elektronischer rechner |
DE2262725A Pending DE2262725A1 (de) | 1971-12-27 | 1972-12-21 | Programmierbarer elektronischer rechner |
DE2264896A Pending DE2264896A1 (de) | 1971-12-27 | 1972-12-21 | Elektronischer rechner |
DE2264898A Ceased DE2264898A1 (de) | 1971-12-27 | 1972-12-21 | Elektronischer rechner |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2264897A Pending DE2264897A1 (de) | 1971-12-27 | 1972-12-21 | Elektronischer rechner |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2264896A Pending DE2264896A1 (de) | 1971-12-27 | 1972-12-21 | Elektronischer rechner |
DE2264898A Ceased DE2264898A1 (de) | 1971-12-27 | 1972-12-21 | Elektronischer rechner |
Country Status (10)
Country | Link |
---|---|
US (16) | US3839630A (de) |
JP (1) | JPS57538B2 (de) |
CA (5) | CA1054257A (de) |
CH (1) | CH588120A5 (de) |
DE (4) | DE2264897A1 (de) |
FR (1) | FR2169828B1 (de) |
GB (4) | GB1433117A (de) |
HK (1) | HK67878A (de) |
IT (1) | IT972350B (de) |
ZA (1) | ZA728874B (de) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4384328A (en) * | 1971-06-15 | 1983-05-17 | Hewlett-Packard Company | Programmable calculator including magnetic reading and recording means |
US4326265A (en) * | 1971-07-19 | 1982-04-20 | Texas Instruments Incorporated | Variable function programmed calculator |
USH1970H1 (en) | 1971-07-19 | 2001-06-05 | Texas Instruments Incorporated | Variable function programmed system |
JPS5346066B2 (de) * | 1972-04-14 | 1978-12-11 | ||
US4366553A (en) * | 1972-07-07 | 1982-12-28 | Hewlett-Packard Company | Electronic computing apparatus employing basic language |
JPS4958718A (de) * | 1972-10-04 | 1974-06-07 | ||
CA986226A (en) * | 1972-12-26 | 1976-03-23 | David S. Maitland | Adaptable programmed calculator |
US3971925A (en) * | 1972-12-26 | 1976-07-27 | Hewlett-Packard Company | Adaptable programmed calculator having provision for plug-in keyboard and memory modules |
US4181966A (en) * | 1972-12-26 | 1980-01-01 | Hewlett-Packard Company | Adaptable programmed calculator including a percent keyboard operator |
US3971924A (en) * | 1973-05-07 | 1976-07-27 | Canon Kabushiki Kaisha | Electronic calculator displaying a partial result obtained from a portion of a numerical expression |
JPS5542430B2 (de) * | 1974-02-01 | 1980-10-30 | ||
JPS5526502B2 (de) * | 1974-06-06 | 1980-07-14 | ||
JPS5129054A (en) * | 1974-09-05 | 1976-03-11 | Canon Kk | Bekijoenzansochi |
US4009379A (en) * | 1974-12-16 | 1977-02-22 | Hewlett-Packard Company | Portable programmable calculator displaying absolute line number addresses and key codes and automatically altering display formats |
US4091446A (en) * | 1975-01-24 | 1978-05-23 | Ing. C. Olivetti & C., S.P.A. | Desk top electronic computer with a removably mounted ROM |
US4026555A (en) * | 1975-03-12 | 1977-05-31 | Alpex Computer Corporation | Television display control apparatus |
US4053753A (en) * | 1975-03-28 | 1977-10-11 | Canon Kabushiki Kaisha | Electronic calculator with function keys |
US3978328A (en) * | 1975-04-07 | 1976-08-31 | National Semiconductor Corporation | Pocket calculator |
US4330839A (en) * | 1975-07-21 | 1982-05-18 | Hewlett-Packard Company | Programmable calculator including means for automatically processing imformation stored on a magnetic record member |
US4075679A (en) * | 1975-12-08 | 1978-02-21 | Hewlett-Packard Company | Programmable calculator |
US4437156A (en) | 1975-12-08 | 1984-03-13 | Hewlett-Packard Company | Programmable calculator |
US4104725A (en) * | 1976-03-26 | 1978-08-01 | Norland Corporation | Programmed calculating input signal module for waveform measuring and analyzing instrument |
US4218760A (en) * | 1976-09-13 | 1980-08-19 | Lexicon | Electronic dictionary with plug-in module intelligence |
IT1071378B (it) * | 1976-09-22 | 1985-04-02 | Olivetti & Co Spa | Sistema di scrittura automatica |
JPS5353238A (en) * | 1976-10-25 | 1978-05-15 | Canon Inc | Electronic computer |
US4135662A (en) * | 1977-06-15 | 1979-01-23 | Pitney-Bowes, Inc. | Operator prompting system |
JPS5423331A (en) * | 1977-07-22 | 1979-02-21 | Hitachi Ltd | Generating circuit for crt display signal |
US4247905A (en) * | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4180854A (en) * | 1977-09-29 | 1979-12-25 | Hewlett-Packard Company | Programmable calculator having string variable editing capability |
US4175286A (en) * | 1978-01-19 | 1979-11-20 | Texas Instruments Incorporated | Burn-in test system for electronic apparatus |
JPS54122036A (en) * | 1978-03-15 | 1979-09-21 | Sharp Corp | Calculation system on print system |
JPS59846B2 (ja) * | 1978-04-17 | 1984-01-09 | カシオ計算機株式会社 | 指数表示方式 |
JPS581462B2 (ja) * | 1978-04-17 | 1983-01-11 | カシオ計算機株式会社 | 指数表示方式 |
JPS609293B2 (ja) * | 1978-06-29 | 1985-03-09 | カシオ計算機株式会社 | キ−入力制御方式 |
JPS5578352A (en) * | 1978-12-08 | 1980-06-12 | Casio Comput Co Ltd | Program check system |
US4334279A (en) * | 1979-04-11 | 1982-06-08 | Sharp Kabushiki Kaisha | Display device for electronic calculators or the like |
US4333155A (en) * | 1979-05-18 | 1982-06-01 | Litton Business Systems, Inc. | Calculator having a modular keyboard |
JPS55157058A (en) * | 1979-05-26 | 1980-12-06 | Canon Inc | Electronic calculator |
JPS6126983Y2 (de) * | 1979-05-31 | 1986-08-12 | ||
JPS5625488A (en) * | 1979-08-09 | 1981-03-11 | Canon Inc | Printer |
US4323979A (en) * | 1979-08-20 | 1982-04-06 | Litton Business Systems, Inc. | Cartridge and bezel assembly for a calculator |
AU534381B2 (en) * | 1979-09-14 | 1984-01-26 | K.K. Toshiba | Microwave oven |
JPS5657159A (en) * | 1979-10-17 | 1981-05-19 | Canon Inc | Voice desk calculator |
US4386412A (en) * | 1979-12-17 | 1983-05-31 | Casio Computer Company, Ltd. | Calculator with equation display device |
JPS56114047A (en) * | 1980-02-12 | 1981-09-08 | Sharp Corp | Execution system of electronic computer |
JPS56116161A (en) * | 1980-02-19 | 1981-09-11 | Sharp Corp | Programmable electronic type calculator |
JPS5710836A (en) * | 1980-06-24 | 1982-01-20 | Sharp Corp | Display system of electronic computer and the like |
US4546448A (en) * | 1980-10-24 | 1985-10-08 | Hewlett-Packard Company | Programmable calculator including program variable initialization means and definition means array |
JPS57100562A (en) * | 1980-12-15 | 1982-06-22 | Sony Corp | Word processor |
US4473886A (en) * | 1981-07-06 | 1984-09-25 | Texas Instruments Incorporated | Data processing apparatus with algebraic memory operation and entry sequence |
DE3242627A1 (de) * | 1981-11-18 | 1983-05-26 | Sharp K.K., Osaka | Programmierbarer elektronischer rechner mit einer anzeigeeinrichtung |
US4593357A (en) * | 1982-02-19 | 1986-06-03 | Laboratory Equipment Corp. | Motor vehicle performance monitoring system |
US4495592A (en) * | 1982-05-25 | 1985-01-22 | Texas Instruments Incorporated | Electronic data processing apparatus with equation operating system having implied multiplication of two hierarchical ranks |
US4521868A (en) * | 1982-05-25 | 1985-06-04 | Texas Instruments Incorporated | Electronic data processing apparatus with equation operating system having improved exponentiation operators |
US4800485A (en) * | 1982-06-01 | 1989-01-24 | American Telephone And Telegraph Company | On-line documentation facility |
CA1189628A (en) * | 1982-06-01 | 1985-06-25 | John M. Ackroff | On-line documentation facility |
JPS58213369A (ja) * | 1982-06-05 | 1983-12-12 | Casio Comput Co Ltd | 検算機能付小型電子式計算機 |
GB2125589B (en) * | 1982-07-12 | 1987-01-28 | Sharp Kk | Programmable calculator |
JPS5964831U (ja) * | 1982-10-26 | 1984-04-28 | 住友重機械工業株式会社 | バケツトエレベ−タにおける回転式ホツパの駆動装置 |
US4564920A (en) * | 1982-12-02 | 1986-01-14 | Mostek Corporation | Multiplier with hybrid register |
US4583169A (en) * | 1983-04-29 | 1986-04-15 | The Boeing Company | Method for emulating a Boolean network system |
US4608659A (en) * | 1983-09-30 | 1986-08-26 | Honeywell Information Systems Inc. | Arithmetic logic unit with outputs indicating invalid computation results caused by invalid operands |
US4604695A (en) * | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
US5125077A (en) * | 1983-11-02 | 1992-06-23 | Microsoft Corporation | Method of formatting data from a mouse |
US4698784A (en) * | 1984-01-06 | 1987-10-06 | Hewlett-Packard Company | Syntactic device for chain calculations |
JPS6035782A (ja) * | 1984-02-20 | 1985-02-23 | 株式会社日立製作所 | 集積回路メモリ装置 |
US4722065A (en) * | 1984-03-30 | 1988-01-26 | Casio Computer Co., Ltd. | Electronically programmable calculator with memory package |
DE3419559A1 (de) * | 1984-05-25 | 1985-11-28 | Robert Bosch Gmbh, 7000 Stuttgart | Steuervorrichtung fuer funktionen im kraftfahrzeug |
DE3508048A1 (de) * | 1985-03-07 | 1986-09-11 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | Schnittstelleneinrichtung |
US4660170A (en) * | 1985-04-29 | 1987-04-21 | General Dynamics, Pomona Division | System for providing reprogramming data to an embedded processor |
US4860203A (en) * | 1986-09-17 | 1989-08-22 | International Business Machines Corporation | Apparatus and method for extracting documentation text from a source code program |
US4852057A (en) * | 1986-10-27 | 1989-07-25 | Hewlett-Packard Company | Algebraic expression manipulation method and implementation for an electronic data processing apparatus |
US4935875A (en) * | 1987-12-02 | 1990-06-19 | Data Chem, Inc. | Chemical analyzer |
US5253345A (en) * | 1988-07-07 | 1993-10-12 | Sears, Roebuck & Co. | Point of sale register system |
JPH0275053A (ja) * | 1988-09-12 | 1990-03-14 | Sharp Corp | 電子計算機 |
DE58906371D1 (de) * | 1988-09-27 | 1994-01-20 | Lingemann Helmut Gmbh & Co | Mehrscheibenisolierglas sowie Abstandhalter für das Mehrscheibenisolierglas. |
JPH0350451U (de) * | 1989-09-22 | 1991-05-16 | ||
US5227988A (en) * | 1989-11-09 | 1993-07-13 | Nippon Steel Corporation | Apparatus for detecting various process values and apparatus for recording information |
US5355469A (en) * | 1990-07-30 | 1994-10-11 | Delphi Data, A Division Of Sparks Industries, Inc. | Method for detecting program errors |
JP2856600B2 (ja) * | 1992-06-10 | 1999-02-10 | シャープ株式会社 | 関数電卓 |
US5377130A (en) * | 1993-01-26 | 1994-12-27 | Texas Instruments Incorporated | Method and apparatus for solving terms of a numerical sequence |
US5483472A (en) * | 1993-05-10 | 1996-01-09 | Overman; Anthony J. | Portable electronic food shopper |
US6032860A (en) * | 1997-08-05 | 2000-03-07 | Ci-Matrix | Uniform ultraviolet strobe illuminator and method of using same |
US20030041078A1 (en) * | 2001-08-24 | 2003-02-27 | Child J. Douglas | Interactive object transformation based expert system for symbolic mathematics on a handheld device |
CN105608045A (zh) * | 2016-01-26 | 2016-05-25 | 浪潮(北京)电子信息产业有限公司 | 一种可编程计算器 |
EP4068696A4 (de) | 2019-12-16 | 2022-12-21 | Huawei Technologies Co., Ltd. | Notrufverfahren, vorrichtung und system |
RU201465U1 (ru) * | 2020-06-10 | 2020-12-16 | Федеральное государственное казенное военное образовательное учреждение высшего образования "Военный учебно-научный центр Военно-Морского Флота "Военно-морская академия им. Адмирала Флота Советского Союза Н.Г. Кузнецова" | Специализированное вычислительное устройство оператора информационного поста обеспечения навигационной безопасности |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB768767A (en) * | 1954-05-20 | 1957-02-20 | Univ Kingston | Method and apparatus for density control |
US3047228A (en) * | 1957-03-30 | 1962-07-31 | Bauer Friedrich Ludwig | Automatic computing machines and method of operation |
US3346853A (en) * | 1964-03-02 | 1967-10-10 | Bunker Ramo | Control/display apparatus |
US3315234A (en) * | 1964-03-02 | 1967-04-18 | Gen Electric | Data editing apparatus |
US3996562A (en) * | 1964-06-26 | 1976-12-07 | Hewlett-Packard Company | Programmable electronic calculator for evaluating mathematical problems |
US3405392A (en) * | 1965-04-30 | 1968-10-08 | Sperry Rand Corp | Electronic calculators |
US3380031A (en) * | 1965-08-10 | 1968-04-23 | Control Data Corp | Remote calculator |
US3428950A (en) * | 1966-03-22 | 1969-02-18 | Wang Laboratories | Programmable calculating apparatus |
US3487369A (en) * | 1966-08-12 | 1969-12-30 | Logicon Inc | Electronic calculator |
SE303056B (de) * | 1967-08-31 | 1968-08-12 | Ericsson Telefon Ab L M | |
US3461434A (en) * | 1967-10-02 | 1969-08-12 | Burroughs Corp | Stack mechanism having multiple display registers |
US3533078A (en) * | 1967-12-04 | 1970-10-06 | Burroughs Corp | Keyboard entry control apparatus |
US3594734A (en) * | 1969-03-21 | 1971-07-20 | Wang Laboratories | Programmable calculator |
US3588841A (en) * | 1969-03-27 | 1971-06-28 | Singer Co | Programmable electronic calculator |
US3573749A (en) * | 1969-03-28 | 1971-04-06 | Ibm | Operator guidance and control termianl |
US3596254A (en) * | 1969-04-30 | 1971-07-27 | Data Trends Inc | Data processing with controlled input |
US3597600A (en) * | 1969-05-05 | 1971-08-03 | Singer Co | Electronic desk top calculator having a dual function keyboard logic means |
US3596257A (en) * | 1969-09-17 | 1971-07-27 | Burroughs Corp | Method and apparatus for allocating small memory spaces to a computer program |
US3693162A (en) * | 1970-10-14 | 1972-09-19 | Hewlett Packard Co | Subroutine call and return means for an electronic calculator |
US3678466A (en) * | 1970-10-14 | 1972-07-18 | Hewlett Packard Co | Electronic calculator |
US3760171A (en) * | 1971-01-12 | 1973-09-18 | Wang Laboratories | Programmable calculators having display means and multiple memories |
US3774156A (en) * | 1971-03-11 | 1973-11-20 | Mi2 Inc | Magnetic tape data system |
US3720820A (en) * | 1971-03-18 | 1973-03-13 | Tektranex Inc | Calculator with a hierarchy control system |
US3760370A (en) * | 1971-04-26 | 1973-09-18 | Tektronix Inc | Calculator with a number processing system |
US3747071A (en) * | 1971-05-10 | 1973-07-17 | Mylee Digital Sciences Inc | Electronic data processing system |
US3859635A (en) * | 1971-06-15 | 1975-01-07 | Robert E Watson | Programmable calculator |
US3728689A (en) * | 1971-06-21 | 1973-04-17 | Sanders Associates Inc | Program branching and register addressing procedures and apparatus |
US3762637A (en) * | 1971-08-05 | 1973-10-02 | Scm Corp | Dual-function keys for sign change and correction of erroneous entries |
US3772657A (en) * | 1971-11-30 | 1973-11-13 | Mi2 Inc Columbus | Magnetic tape data handling system employing dual data block buffers |
-
1971
- 1971-12-27 US US00212581A patent/US3839630A/en not_active Expired - Lifetime
-
1972
- 1972-12-11 CA CA159,044A patent/CA1054257A/en not_active Expired
- 1972-12-15 ZA ZA728874A patent/ZA728874B/xx unknown
- 1972-12-19 FR FR7245188A patent/FR2169828B1/fr not_active Expired
- 1972-12-20 GB GB5886772A patent/GB1433117A/en not_active Expired
- 1972-12-20 GB GB3275675A patent/GB1433119A/en not_active Expired
- 1972-12-20 GB GB3275575A patent/GB1433118A/en not_active Expired
- 1972-12-20 GB GB3275775A patent/GB1433120A/en not_active Expired
- 1972-12-21 DE DE2264897A patent/DE2264897A1/de active Pending
- 1972-12-21 DE DE2262725A patent/DE2262725A1/de active Pending
- 1972-12-21 DE DE2264896A patent/DE2264896A1/de active Pending
- 1972-12-21 DE DE2264898A patent/DE2264898A1/de not_active Ceased
- 1972-12-22 IT IT54982/72A patent/IT972350B/it active
- 1972-12-27 CH CH1908872A patent/CH588120A5/xx not_active IP Right Cessation
- 1972-12-27 JP JP13005072A patent/JPS57538B2/ja not_active Expired
-
1977
- 1977-06-01 US US05/802,294 patent/US4152769A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,291 patent/US4152773A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,302 patent/US4158231A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,298 patent/US4152770A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,301 patent/US4158228A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,297 patent/US4156917A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,300 patent/US4152771A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,325 patent/US4152774A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,831 patent/US4159525A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,304 patent/US4158233A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,321 patent/US4156282A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,299 patent/US4156918A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,292 patent/US4156285A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,295 patent/US4164019A/en not_active Expired - Lifetime
- 1977-06-01 US US05/802,833 patent/US4164039A/en not_active Expired - Lifetime
-
1978
- 1978-11-23 HK HK678/78A patent/HK67878A/xx unknown
-
1979
- 1979-05-07 CA CA327,042A patent/CA1080853A/en not_active Expired
- 1979-05-07 CA CA327,041A patent/CA1080852A/en not_active Expired
- 1979-05-07 CA CA327,043A patent/CA1080854A/en not_active Expired
- 1979-05-07 CA CA327,044A patent/CA1080855A/en not_active Expired
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2262725A1 (de) | Programmierbarer elektronischer rechner | |
DE2903349C2 (de) | Prozessor und Verfahren zur Datenverarbeitung | |
DE2357003C2 (de) | Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage | |
DE2228742A1 (de) | Programmierbare Rechenmaschine | |
DE1813916B2 (de) | Elektronische Datenverarbeitungsanlage | |
DE1499175A1 (de) | Digitalrechner-Datenverarbeitungszentralanlage | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2910839A1 (de) | Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion | |
DE1929010A1 (de) | Modular aufgebautes Datenverarbeitungssystem | |
DE2459956A1 (de) | Prozessor und diesen verwendendes peripheres verarbeitungssystem | |
DE2333908A1 (de) | Programmierbarer rechner | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE3347644A1 (de) | Grafikanzeigeeinrichtung | |
DE1956460C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE3243502C2 (de) | ||
DE2641971A1 (de) | Digitale tisch-buchungs- und -rechenmaschine | |
DE1549420A1 (de) | Programmvorrichtung fuer einen elektronischen Rechner | |
DE1474080B2 (de) | Einrichtung zum bilden des exponenten bei umwandeln einer binaerzahl von der festpunkt in die gleitpunktdarstellung | |
Pocklington | AMAP-A General Optical Mark Reader Form Evaluation Program | |
DE2753621A1 (de) | Verfahren und anordnung zur durchfuehrung einer datenuebertragung zwischen prozessoren eines datenverarbeitungssystems | |
Steensgaard-Madsen | Comments on a Draft Pascal Standard | |
DE1474095C (de) | Programmgesteuerte Datenverarbeitungs anlage | |
DE2760416C2 (de) | Verzweigungssteueranordnung für eine elektronische Datenverarbeitungsanordnung | |
DE10105729C1 (de) | Verfahren und System zur funktionsmäßigen Erweiterung einer Telekommunikationsanlage | |
Srinivasa Rao | Lectures on Elements of Fortran Programming [MatSciRep: 68] |