DE2333908A1 - Programmierbarer rechner - Google Patents

Programmierbarer rechner

Info

Publication number
DE2333908A1
DE2333908A1 DE19732333908 DE2333908A DE2333908A1 DE 2333908 A1 DE2333908 A1 DE 2333908A1 DE 19732333908 DE19732333908 DE 19732333908 DE 2333908 A DE2333908 A DE 2333908A DE 2333908 A1 DE2333908 A1 DE 2333908A1
Authority
DE
Germany
Prior art keywords
program
computer
line
instruction
memory
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
Application number
DE19732333908
Other languages
English (en)
Inventor
Eugene V Burgmeister
Frank E Cada
Chris J Christopher
Wayne F Covington
Myles A Judd
Kent W Simcoe
Richard M Spangler
Robert E Watson
Freddie W Wenninger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE2333908A1 publication Critical patent/DE2333908A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital 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/0225User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems
    • G06F15/0233User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems with printing provisions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Calculators And Similar Devices (AREA)
  • Devices For Executing Special Programs (AREA)
  • Record Information Processing For Printing (AREA)
  • Document Processing Apparatus (AREA)
  • Digital Computer Display Output (AREA)
  • Computer And Data Communications (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Description

PATENTANWALT C-703 Bötlingen
DIPL.-ING. KNUD SCHULTE Gerokwege
2333908 Telefon (0 70 31) 289 73
-66 74 32
Patentanwalt K. Schulte, D-703 Boblingen, Gerokweg 6
Case 747 2. Juli 1973
Hewlett-Packard Company
1501 Page Mill Road
Palo Alto
California 94304
U.S.A.
PROGRAMMIERBARER RECHNER
Die vorliegende Erfindung bezieht sich allgemein auf Rechner und auf Verbesserungen an solchen Rechnern und mehr speziell auf programmierbare Rechner, die sowohl manuell von einer Tasteneingabe-Einheit als auch automatisch von einem gespeicherten Programm gesteuert werden können, das von der Tasteneingabe-Einheit oder einem externen Aufnahmegerät aus in den Rechner geladen worden ist.
Rechenprobleme können manuell, mit Hilfe eines Rechners (einer für diesen Zweck vorgesehenen tastaturgesteuerten Rechenmaschine, die entweder programmierbar oder nicht-programmierbar ist) oder mittels eines Computers für allgemeine Zwecke gelöst werden. Die manuelle Lösung von Rechenproblemen ist oft sehr langsam, so langsam in manchen Fällen, daß sie eine unpraktische, teuere und ineffektive Benutzung der menschlichen Arbeitskraft darstellt, speziell wenn andere Alternativen für die Lösung der Rechenprobleme zur Verfügung stehen.
Nicht-programmierbare Rechner können eingesetzt werden, um viele relativ einfache Rechenprobleme wirkungsvoller zu lösen, als sie
Volksbank Boblingen AG. Kto. 8 458 (BLZ 60 390 220) · Postscheck: Stuttgart 996 55-709
309884/1370
durch manuelle Methoden gelöst werden könnten. Jedoch sind die bei diesen Rechnern eingesetzten Tastenoperationen oder die Sprache typischerweise in der Struktur trivial, wodurch viele Tastenoperationen erforderlich v/erden, um allgemeinere Rechenprobleme zu lösen. Programmierbare Rechner können eingesetzt werden, um viele zusätzliche Rechenprobleme zu lösen und zwar um 1OO-te Male schneller als mit manuellen Methoden. Jedoch ist auch die bei diesen Rechnern benutzte Tastenfeldsprache typischerweise relativ einfach in der Struktur, wodurch wiederum viele Tastenoperationen benötigt werden, um allgemeinere Rechenprobleme zu lösen.
Ein weiteres Grundproblem, das bei nahezu allen Tastenfeldsprachen auftritt, dja bei konventionellen programmierbaren und nichtprogrammierbaren Rechnern benutzt werden, besteht darin, daß die Charakteristiken der Kardware des Rechners für den Benutzer ersichtbar werden. Daher maß der Benutzer im allgemeinen mit der Datenbewegung auf der Hardware-Seite arbeiten, z. B. indem er sich versichert, daß sich Datan in bestimmten Speicherregistern befinden, bevor die mit den Daten auszuführenden Operationen spezifiziert werden, oder indem er andere solcher interner Funktionen durchführt. Hinzu kcrant, daß diese Sprachen jeweils nur zu einem bestimmten Rechner passen und nicht so beschaffen sind, daß sie allgemein allen Personen geläufig sind, die Fachleute auf dem Gebiet der Computer und Rechner sind.
In der Vergangenheit hatten sowohl programmierbare als auch nichtprogrammierbare Rechner im allgemeinen sehr begrenzte Speicherkapazitäten, wodurch der Umfang der Rechenprobleme, zu deren Lösung sie eingesetzt werden konnten, stark eingeschränkt wurde. Wegen dieser Beschränkungen, der relativ einfachen Struktur der bei diesen Rechnern benutzten Tastenfeld-Sprachen und der den Sprachen zugeordneten internen Erfordernisse sind bisher keine ernsthaften Nachteile aufgetreten. Mit dem technologischen Fortschritt sind jedoch die Kosten für Speicher bis zu einem Punkt gefallen, wo größere Speicher wirtschaftlich in programmierbare Rechner eingebaut werden konnten.Diese größeren Speicher haben die
3 0 9 8 8 A / 1 3 7 0
"2333308
Behandlung immer größerer Probleme durch programmierbare Rechner erlaubt. Das Ergebnis davon ist, daß die Nachteile konventioneller Rechnersprachen kritischer geworden sind, wodurch ein Bedarf an Tastenfeld-Sprachen mit höherem Niveau entstanden ist.
Zu den genannten Nachteilen kommt hinzu, daß konventionelle programmierbare Rechner im allgemeinen eine geringere Anwendbarkeit und Flexibilität besitzen als erforderlich ist, um den Bedarf vieler Benutzer zu befriedigen. Z.B. können sie typischerweise nicht auf einfache Weise vom Benutzer erweitert und angepaßt werden, um die Programm- und Datenspeicherkapazität zu erhöhen oder um viele spezielle problemorientierte Tastenfeld-Funktionen auszuführen.
Bei einigen konventionellen programmierbaren Rechnern kann ein innerhalb des Rechners gespeichertes Programm auf ein externes Magnetaufnahmegerät aufgenommen werden und später wieder von diesem in den Rechner zurückgegeben werden. Typischerweise können jedoch innerhalb dieser Rechner gespeicherte Daten und Programme nicht getrennt auf ein externes Magnetaufnahmegerät aufgenommen und von diesem später wieder getrennt in den Rechner zurückgegeben werden. Darüberhinaus sind bei diesen Rechnern typischerweise keine Vorkehrungen getroffen, um eir Programm sicherzumachen, wenn es auf ein externes Magnetaufnahmegerät aufgenommen wird. Jeder Benutzer kann daher das Programm rückaufnehmen oder einen Hinweis auf individuelle Programmschritte erhalten, sobald das Programm in den Rechner zurückgegeben wird.
Konventionelle programmierbare Rechner, die eigene Ausgabe-Anzeigeeinheiten enthalten, haben typischerweise nur eine geringe Buchstaben-Tauglichkeit und können typischerweise nur die Inhalte von einem oder mehreren ausgewählten Registern anzeigen. Bei ihnen ist es daher typischerweise nicht möglich, eine Zeile anzuzeigen, die eine alpha-numerische Anweisung oder eine alphabetische Nachricht enthält, wie sie z. B. benötigt werden können, um den Benutzer zu informieren, wie Programme durchzuführen sind, mit denen er nicht vertraut ist. Solche Eigenschaften wären für den Benutzer sehr hilfreich, sowohl bei der
30988^/1370
Aufbereitung von Programmen als auch bei der Vereinfachung ihrer Benutzung.
Konventionelle programmierbare Rechner haben typischerweise eine geringe oder keine Möglichkeit für die Aufbereitung von Tastenfeld-Eingaben oder von innerhalb des Rechners gespeicherten Programmen. Z. B. ist bei ihnen typischerweise keine Vorsorge getroffen für die Löschung, den Ersatz und die Einfügung von Informationen auf Zeichen-bei-Zeichen-oder Zeile-bei-Zeile-Grundlage, wenn eine solche Information in einer Tastenfeld-Eingabe oder einem intern gespeicherten Programm enthalten bzw. vergessen worden ist. Ein anderes Beispiel ist die typischerweise nicht vorgesehene Möglichkeit für einen direkten Rückruf jeder Zeile eines intern gespeicherten Programmes. Ein weiteres Beispiel ist die typischerweise nicht vorhandene Möglichkeit für eine automatische Anpassung und Aufeinanderfolge von Programmanweisungen, die vom Benutzer in zufälliger Ordnung eingegeben werden. Derartige Eigenschaften wären für den Benutzer sehr hilfreich bei der Aufbereitung von Programmen.
Bei konventionellen Computern besteht typischerweise ein Verständigungsproblem zwischen dem Benutzer und der Maschine. Diese Anforderung an die Verständigung führt zu einem auf Maschinenniveau arbeitenden Operator mit speziellen Möglichkeiten zur Aufrechterhaltung des Software-Systems in einem betriebsfähigen Zustand für den Benutzer. Teilnehmer (time-sharing) -Computersysteme mit einem zentralen Computer und einer Vielzahl von davon räumlich getrennten Benutzer-Endgeräten (terminals), die mit dem Computer durch Telefonleitungen verbunden sind, haben das Verständigungsproblem zwischen Benutzer und Maschine teilweise gelöst. Jedoch fehlt es diesen Systemen in gleicher Weise an Flexibilität wie konventionellen Computern und zwar dadurch, daß sie nur programmierbar sind und kein zweckmäßiges nicht-programmierbares Verfahren zur Ausführung relativ einfacher Rechnungen vorsehen. Bei beiden Typen von Systemen fehlt die Möglichkeit zur Aufbereitung einer Programmanweisung von einem Tastenfeld aus, ohne daß es erforderlich ist, die gesamte Anweisung neu zu schreiben.
30988W1370
233390a
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, einen verbesserten programmierbaren Rechner zu schaffen, der mehr Fähigkeiten und eine größere Flexibilität als konventionelle programmierbare Rechner hat, der kleiner, billiger und wirkungsvoller bei der Berechnung elementarer mathematischer Funktionen ist als konventionelle Computersysteme und der leichter zu handhaben ist als konventionelle programmierbare Rechner oder Computersysteme.
Diese Aufgabe wird erfindungsgemäß gelöst durch einen elektronischen Rechner, der gekennzeichnet ist durch
eine Tastenfeld-Eingabeeinheit mit einer Vielzahl von Tasten zur Eingabe von Zeilen mit jeweils einem oder mehreren alphanumerischen Zeichen in den Rechner, einer Ausführungstaste, um den Rechner dazu zu veranlassen, eine eingegebene Zeile von einem oder mehreren alpha-numerischen Zeichen auszuführen und mit einer Speichertaste, um zu veranlassen, daß eine eingegebene Zeile von einem oder mehreren alpha-numerischen Zeichen innerhalb des Rechners gespeichert wird;
eine erste Speichereinrichtung zur Speicherung einer Zeile von einem oder mehreren alpha-numerischen Zeichen, die in den Rechner eingegeben worden ist;
eine zweite Speichereinrichtung zur Speicherung von Zeilen von jeweils einem oder mehreren alpha-numerischen Zeichen;
eine Logikeinheit zur Definierung einer Vielzahl von Routinen und Subroutinen, die von dem Rechner ausgeführt werden sollen, wenn Zeilen von jeweils einem oder mehreren alpha-numerischen Zeichen ausgeführt und gespeichert werden;
eine Zentraleinheit (Prozessor), die in Abhängigkeit vom auf die Eingabe einer Zeile aus einem oder mehreren alpha-numerischen Zeichen in die erste Speichereinrichtung folgenden Niederdrücken der Ausführungstaste eine oder mehrere der Routinen und Subroutinen
309884/1370
~263~339Q8
ausgewählt durchführt, um die Zeile aus einem oder mehreren alpha-numerischen Anweisungen auszuführen,
wobei die Zentraleinheit in Abhängigkeit vom auf die Eingabe einer Zeile aus einem oder mehreren alpha-numerischen Zeichen in die erste Speichereinrichtung folgenden Niederdrücken der Speichertaste zusätzlich diese Zeile aus einem oder mehreren alpha-numerischen Zeichen in der zweiten Speichereinrichtung speichert; und
eine Ausgabeeinrichtung für die Ausgangsanzeige der Resultate jeder Zeile aus einem oder mehreren alpha-numerischen Zeichen, die durch den Rechner ausgeführt worden ist,
wobei der Rechner die Computex spräche BASIC benutzt, die in der Logikeinrichtung in Wirkung gesetzt ist.
Gemäß einem bevorzugter ;.in der Leichung dargestellten) Ausführunjiibeibpici eier vorlie;;-;n.3en Erfindung werden verwendet: eine Tastatur-Eingabeeinheit., eine Lese- und Aufnahmeeinheit für Magnetbandkassetten, eine Festkörper-Ausgangs-Wiedergabeeinheit, eine wahlweise ar .-uisc-aließende externe Ausgangs-Druckeinheit, eine Eingangs~/AuKgarig3-Stauereinheitf eine Speichereinheit und eine zentrale Prozessoreinheit, um einen anpaßbaren, programmierbaren Rechner vorzusehen, der manuell und automatisch betrieben werden kann, in den ein Programm eingegeben werden kann, der Magnetbänder lesen und aufnehmen kann und bei dem eine alphanumerische Anzeige und ein alpha-numerischer Druck möglich ist. Die Tastenfeid-Eingabeeinheit enthält eine Gruppe von Datentasten zur Eingabe numerischer Daten in den Rechner, eine Gruppe von Steuertasten für die Steuerung der verschiedenen Betriebsarten und Arbeitsabläufe des Rechners sowie des Formates der Ausgangsanzeige, eine Gruppe von alpha-numerisehen Tasten, die als Schreibmaschinentastatur angeo.rd1.13t sind, um Anweisungen einzugeben, und schließlich eine Gruppe von Ta-ten, die vom Benutzer definiert werden können. Alle Datsn- und alpaa-nnmerischen Tasten sowie einige der Steuerlasten können auch für die Programmierung
3 0 S 3 δ Λ/ Ϊ J 7 Q
des Rechners eingesetzt werden.
Die Lese- und Aufnahmeeinheit für die Magnetbandkassette enthält einen Lese- und Aufnahmekopf, einen Antrieb, um ein Magnetband am Lese- und Aufnahmekopf vorbeizuführen, sowie Ansteuerschaltungen für Lesen und Aufnehmen, die an den Lese- und Aufnahmekopf angeschlossen sind, um zwischen dem Magnetband und dem Rechner in beiden Richtungen Informationen zu übertragen, wie es durch Tastenbefehle oder solche Befehle festgelegt ist, die ein Teil eines gespeicherten Programmes sind.
Die Eingabe-/Ausgabe-Steuereinheit enthält ein 16-Bit-Universal-Schieberegister, das als Eingabe-/Ausgabe-Register dient und in das Information seriell von der zentralen Prozessor-Einheit oder parallel von der Tastenfeld-Eingabe und von den Lese- und Aufnahmeeinheiten für die Magnetbandkassette übergeben werden können und aus dem Information seriell an die zentrale Prozessoreinheit oder parallel an die Festkörper-Ausgabeanzeige, die
die
Lese- und Aufnahmeeinheit furyMagnetbandkassette und an Ausgabe-Druckeinheiten übergeben werden kann. Sie enthält weiterhin eine Steuerlogik, die in Abhängigkeit von der zentralen Prozessoreinheit die Übergabe von Information zwischen diesen Einheiten steuert. Die Eingabe-/Ausgabe-Steuereinheit kann auch eingesetzt werden, um die gleichen Funktionen zwischen der zentralen Prozessoreinheit und peripheren Einheiten durchzuführen, welche z. B. eine externe Druckeinheit, ein Analog-Digital-Umsetzer, ein Lochkartenleser, ein X-Y-Plotter, eine externe Magnetbandeinheit, eine Magnetplatte, eine Schreibmaschine oder ein Modem sein können. An die Eingabe-/Ausgabe-Steuereinheit kann gleichzeitig eine Vielzahl von peripheren Einheiten angeschlossen sein und zwar einfach dadurch, daß den ausgewählten peripheren Einheiten zugeordnete Verbindungsmodule in dafür in der Rückwand des Rechnergehäuses vorgesehene Aufnahmevorrichtungen eingesteckt werden.
Die Speichereinheit enthält ein modulares Lese-/Schreibregister
309884/1 370
für direkten Zugriff mit einem dem System zugeordneten Bereich und einem separaten Benutzerbereich für die Speicherung von Programmanweisungen und/oder Daten. Der Benutzerteil des Lese-/ Schreibregisters kann ohne Vergrößerung der Gesamtabmessungen des Rechners durch Zufügung eines Programm-Speichermodules erweitert werden. Das zusätzliche, für den Benutzer verfügbar gemachte Lese-/Schreibregister wird automatisch vom Rechner eingepaßt, und der Benutzer wird automatisch informiert, wenn die Speicherkapazität des Lese-/Schreibregisters überschritten worden ist.
Die Speichereinheit enthält auch einen modularen Nur-Lese-Speicher, in welchem Routinen und Subroutinen von Instruktionen in Assemblersprachen zur Durchführung der verschiedenen Funktionen des Rechners gespeichert sind. Diese Routinen und Subroutinen des Nur-Lese-Speichers können durch den Benutzer erweitert und angepaßt werden, um zusätzliche, an den speziellen Problemen des Benutzers orientierte Funktionen durchzuführen. Dies geschieht dadurch, daß einfach zusätzliche Nur-Lese-Speicher-Module in Aufnahmevorrichtungen eingesteckt werden, die für diesen Zweck in einer Seitenwand des Rechnergehäuses vorgesehen sind. Hinzugefügte Nur-Lese-Speicher-Module werden vom Rechner automatisch eingepaßt und stehen dem Zugriff des Rechners über eine Serie von mnemonischen Tabellen zur Verfügung. Diese Tabellen enthalten mnemonische Ausdrücke, welche Zusätze zu der Programmiersprache des Rechners sind.
Einsteckbare Nur-Lese-Speicher-Module enthalten z. B. einen Matrix-Modul, eine STRING-Variablen-Modul, einen Plotter-Modul, einen erweiterten Eingabe-/Ausgabe-Modul und einen Endgerät-Modul. Der Matrix-Modul macht für den Benutzer Matrixfunktionen in Standard-BASIC-Sprache verfügbar plus eine zusätzliche Funktion, die die Determinante einer zuvor definierten quadratischen Matrix zurückgibt. Der STRING-Variablen-Modul macht für den Benutzer STRING-Variablen-Operationen in Standard-BASIC-Sprache verfügbar. Der Plotter-Modul ermöglicht es dem Benutzer, auf einem externen X-Y-Plotter in zweckmäßiger Weise Kurven zu zeichnen und zu etikettieren. Der erweiterte Eingabe-/Ausgabe-Modul erlaubt, den Rechner
309884/1370
ORlGiNAL liNSPECTED
mit einer großen Vielfalt von peripheren Eingabe-/Ausgabe-Einheiten zu benutzen. Der Endgesät-Modul ermöglicht es, den Rechner mit einem Modem zur Kommunikation zu verbinden, z.B. mit entfernt angeordneten Teilnehmer-(time-sharing-)Computersystemen.Er erlaubt weiterhin eine freie Textaufbereitung und -speicherung.
Die Speichereinheit enthält weiterhin ein Paar von umlaufenden seriellen 16-Bit-Schieberegistern. Eines dieser Register dient als Speicheradressenregister für die serielle Aufnahme von Information von einer in der zentralen Prozessoreinheit enthaltenen arithmetisch-logischen Einheit, für die parallele Adressierung jedes durch die empfangene Information festgelegten Speicherplatzes zurück zur arithmetisch-logischen Einheit. Das andere dieser Register dient als Speicherzugriffsregister für den seriellen Empfang von Information von der arithmetisch-logischen Einheit, zum Schreiben von Information parallel in jeden adressierten Speicherplatz, zum Lesen von Information parallel aus jedem adressierten Speicherplatz und für die serielle Übergabe von Information zur arithmetisch-logischen Einheit. Es dient außerdem als paralleles 4-Bit-Schieberegister für die Übergabe von 4 Bits von binär kodierter dezimaler Information parallel in die arithmetisch-logische Einheit.
Die zentrale Prozessoreinheit enthält 4 umlaufende serielle 16-Bit-Schieberegister, ein serielles 4-Bit-Schieberegister, die arithmetisch-logische Einheit, einen programmierbaren Zeitgeber und einen Mikroprozessor. Zwei dieser seriellen 16-Bit-Schieberegister dienen als Akkumulator-Register für den seriellen Empfang von Information von und die serielle Übergabe von Information zu der arithmetisch-logischen Einheit. Das verwendetet Akkumulator-Register wird durch ein Steuer-Flip -Flop gekennzeichnet. Eines der Akkumulator-Register dient auch als paralleles 4-Bit-Schieberegister für den Empfang von 4 Bits einer binär kodierten dezimalen Information parallel von und zur Übergabe von 4 Bits einer solchen Information parallel zu der arithmetisch-logischen Einheit. Die beiden verbleibenden seriellen 16-Bit-Schieberegister
309884/ 1370
dienen als ein Programm-Zähler-Register bzw. ein Qualifikationsregister. Sie werden auch eingesetzt für den seriellen Empfang von Information von und die serielle Übergabe von Information zu der arithmetisch-logischen Einheit. Das serielle 4-Bit~Schieberegister dient als ein Erweiterungsregister für den seriellen Empfang von Information von entweder dem Speicher-Zugriffs-Register oder der arithmetisch-logischen Einheit und für die serielle Übergabe von Information zu der arithmetisch-logischen Einheit.
Die arithmetisch-logische Einheit wird benutzt für die Durchführung von serieller T-Bit-Arithmetik, 4-Bit-paraller binär kodierter dezimaler Arithmetik und logischer Operationen. Sie kann auch durch den Mikroprozessor gesteuert werden, um direkte und indirekte Arithmetik in beiden Richtungen zwischen jedem aus einer Vielzahl der arbeitenden Register und jedem der Register des Lese-/Schreibregisters durchzuführen.
Der programmierbare Zeitgeber wird ^-^rvendet, um eine veränderliche Anzahl von Sch: t-ba- Impulsen an die arithmetisch--logische Einheit und an die seriellen Schie^-sr-glcT-er der Eingabe-/Ausgabe-Einheit, der Speichereinheit und de-.;: zentralen Prozessoreinheit abzugeben. Ei. wird außerdem eingeseift, um Zeitgabe-Steuersignale an die Eingabe-/Ausgabe-SteuerIc'cLk und an den Mikroprozessor abzugeben.
Der Mikroprozessor enthält einsn Kur-Lese-Speicher, in dem eine Vielzahl von Mikroinscxuktionen und Kodes gespeichert sind. Diese Mikroinstruktionen und Kodes werden verwendet, um die grundlegenden Instruktionen des Rechners durchzuführen. Sie enthalten eine Vielzahl von kodierten und nicht-koäierten Mikroinstruktionen für die Übergabesteuerung zur E.ingabe-/kusgabe-Steuerlogik, für die Steuerung der Adressierung und des 2<ugri£fes der Speichereinheit und für die Steuerung des Betriebs der zwei Akkumulatorregister, des Programm-Zäh.^ ar-Registersf des Erweiterungsregisters und der arithmetisch-logischen Einheit« £sie enthalten außerdem eine Vielzahl von Zeitgabe-Koces für die Steuerung des Betriebes des programmierbaren Zeitgebers? eine >/ielzahi von Qualifizierer-
V W O *V -*' -- [" ; Vi
ORIGINAL INSPECTED
233 ä19"0 β
Auswahlkodes, mit denen die Qualifizierer ausgewählt werden und die als primäre Adressenkodes für die Adressierung des Nur-Lese-Speichers des Mikroprozessors dienen, sowie eine Vielzahl von sekundären Adressen-Kodes für die Adressierung des Nur-Iese-Speichers des Mikroprozessors. Ih Abhängigkeit von einem Steuersignal aus einem für den Rechner vorgesehenen Energierversorgungsteil, von Steuersignalen für den programmierbaren Zeitgeber und von Qualif izierer-Steuersignalen aus der zentralen Prozessoreinheit und der Eingab^/Ausgabe-Steuereinheit gibt der Mikroprozessor die in seinem Nur-Lese-Speicher gespeicherten Mikroinstruktionen und -Kodes aus und zwar entsprechend wie sie benötigt werden, um entweder binäre oder binärkodierte dezimale Information zu verarbeiten, die in den Rechner eingegeben worden ist oder in ihm gespeichert ist.
Im Tastenbetrieb wird der Rechner durch Tasten-Kodes gesteuert, die nacheinander in den Rechner durch den Benutzer von der Tastenfeld-Eingabeeinheit aus eingegeben werden. Die Festkörper-Ausgabe-Anzeigeeinheit gibt entweder die alphanumerische Darstellung der Tasten, sowie sie gedrückt werden, wieder oder eine numerische Darstellung von Ausgabedaten oder alphanumerischen Benutzer-Instruktionen oder Programm-Ergebnisse. Ein externer Ausgabe-Drucker kann durch den Benutzer so gesteuert werden, daß er selektiv eine numerische Darstellung aller numerischen Daten druckt, die in den Rechner vom Tastenfeld aus eingegeben werden, daß er eine numerische Darstellung jedes von Rechner errechneten Ergebnisses druckt oder daß er eine Prograitmliste auf Zeile-bei-Zeile-Basis der eingegebenen Anweisungen druckt.
Im Tastenbetrieb kann der Rechner auch im "Alles-Drucken-Betrieb" arbeiten. Der Ausgabedrucker druckt dann jede Programmzeile aus, wenn sie vom Benutzer eingegeben worden ist.
Im Programmablauf-Betrieb wird der Rechner dadurch gesteuert, daß automatisch eine interne Darstellung der gespeicherten Programmanweisungen im Benutzer-Speicherbereich des Lese-ZSchreib-Speichers erhalten wird. Während des automatischen Arbeitens des Rechners können Daten erhalten werden von der Speichereinheit, wie sie durch das Programm gekennzeichnet ist, von der Tastenfeldeingabeeinheit, wobei der Betrieb des Rechners gestoppt wird entweder für Daten vom Programm oder vom Benutzer, oder erhalten werden von
30988^/1370
ORIGlNAl
A,
der Magnetbandkassetteneinheit/ wie sie vom Programm gekennzeichnet ist.
Wenn der Rechner sich im Programmablauf -Betrieb befindet, kann der Benutzer aach selektiv einen Verfolgungsbetrieb benutzen, um die Ausführung des Programms Zeile bei Zeile zu überprüfen, um festzulegen, ob das Programm, wie es in den Rechner eingegeben worden ist, tatsächlich die erwünschte Folge von Anweisungen ausführt.
Im Prograntneingabe-Betrieb werden vom Benutzer nacheinander Anweisungen in den Rechner von der Tastatur aus eingegeben und in ein intern gespeichertes Format umgesetzt, das aus einer Serie von Operations-Kodes und Operanden-Namen steht, und werden danach als Programmanweisungen im Benutzer-Speicherbereich des Lese-ZSchreib-Speichers gespeichert.
Die lese- und Aufnahireeinheit für Magnetbandkassetten kann vom Benutzer eingesetzt werden, um Daten, Programme in BASIC-Sprache, Programme in iteseirbler-Sprache oder Sätze von Benutzer-definierbaren Tastendefinitionen getrennt in den Rechner von einer externen Magnetbandkassette aus zu laden.
Die Lese- und Aufnahmeeinheit für Magnetbandkassetten kann vom Benutzer außerdem dazu verwendet werden um Daten, Programme in BASIC-Sprache oder Sätze von Efenutzer-definierbaren Tastendefinitionen, die im Benutzerbereich des Lese-/ Schreib-Speichers gespeichert sind, getrennt auf eine externe Magnetbandkassette aufzunehmen. Programme oder Teile davon können vom Benutzer kodiert werden, danit sie sicher sind, wenn sie auf eine externe Magnetbandkassette aufgenommen werden. Der Rechner erfasst solche Programme, wenn sie wieder in den Rechner airückgeladen werden, und verhindert, daß der Benutzer sie nocheinmal aufnimmt oder irgendeine Auflistung oder andere Kennzeichnung von den individuellen Programmschritten erhalten kann, die in den gesicherten Teilen solcher Programme aithalten sind.
Der erfindungsgemäße programmierbare Rechner setzt die Computer-Sprache BASIC ein, die in einem Nur-Lese-Speicher (ROM) zur Wirkung gebracht wird, und eliminiert vollständig die Verständigungserfordernisse zwischen Benutzer und faschine von konventionellen Computern und eliminiert weiterhin die Notwendigkeit des Erlemens einer nicht universalen Sprache, wie sie typischerweise Jcnventionellen programmierbaren Rechnern zugeordnet ist.
309884/1370
ORIGINAL KNSPHCTED
In dem erf indungsgemäßen Rechner kann der Benutzer durch Benützung einer Hickwärts- oder Vorwärtstaste des Tastenfeldes eine sichtbare Positionshinweismarke über jede Zeichenposition einer Zeile von Information setzen die \an Tastenfeld aus eingegeben worden ist oder vom Speicher in die Anzeige zurückgerufen worden ist, um das Zeichen anzuzeigen, daß durch einfache Betätigung einer das Ersatzzeichen darstellenden Tasten aufbereitet werden tenn.
Beim erfindungsgemäßen Pechner kann der Benutzer eine Einfügungstaste des Tastenfeldes benutzen, um unmittelbar links von der Lage der Positionsanzeigenarke eine leere Zeichenposition einzufügen. Dorthinein kann jedes beliebige Zäichen eingesetzt werden, in dem die dieses darstellende Taste gedrückt wird.
Beim erfindungsgenäßen Rechner kann der Benutzer eine Leertaste des Tastenfeldes benutzen, wenn er vom Tastenfeld aus eine Zeile von Information eingibt, um !Leerzeichen an bestürmten Zeichenpositionen längs der Zeile einführen zu können.
Beim erfindungsgemäßen Rechner kann der Benutzer ein Zeichen aus einer Zeile Men Information herausnehmen, die von dem Tastenfeld eingegeben worden ist, oder in die Anzeige vom Speicher zurückgerufen worden ist, durch Betätigen der leertaste, nachdem eine Positicnsanzeigemarke über das herauszunehmende Zeichen gssetzt worden ist.
Beim erfindungsgemäßen Rechner kann der Benutzer ein Zeichen aus einer Zeile aas Information herausnehmen, die vom Tastenfeld aus eingegeben worden ist aäer vom Speicher in die Anzeige zurückgerufen worden ist, und er kann gleichzeitig den rechten Teil der Zeile um eine Zeichenposition nach links verschieben, um den Raum zu besetzen, der durch die Herausnehme des Zeichens frei wird. Dies geschieht dadurch, daß die Positionsanzeigemarke über das herauszunehmende Eichen gesetzt wird und dann gleichzeitig die Einfügungstaste und eine ^ferschiebungstaste gedrückt werden.
Beim erfindungsgemäßen Rechner kann der Benutzer eine angezeigte Zeile von Information entweder nach links oder nach rechts durch ein Anzeigeregister schieben, unabhängig von der Stellung einer Positionsanzeigemarke an einer speziellen Zeichenposition davon.
309884/1370
Beim erfindungsgemäßen Rechner kann der Benutzer eine in einer bestimmten feile im Speicher befindlichen Anweisung sichtbar machen, indan er eine Abruf-PETCH) -Taste der Tastatur betätigt und darauf die Zeile kennzeichnet.
Beim erfinäungsgemäßen Sechner kann der Benutzer die Ausführung des Programms anhalten, verschiedene Zeilen von Information zur visuellen Prüfung aus dem Reicher in ein Anzeigeregister rufen und danach automatisch die Programmausfiihrung an dem Punkt fortsetzen., an dem das Anhalten stattgefunden hatt, indem eine einfache Taste der Tastatur betätigt wird.
Beim erfindungsgemäßen Rechner kann der Benutzer eine spezielle Zeile mit !iformation aus dem Speicher in ein Anzeigeregister rufen und kann, dann eine von zwai Tasten des Tastenfeldes betätigen, im zu den Inhalten von Zeilen zu springen und diese visuell zu beobachten, die der ursprünglich angezeigten vorausgehen oder nachfolgen.
Beim erfindungsgemäßen Recimer kann der Benutzer im Speicher eine Zeile, aus Information speichern- die sieh in einem anzeigeraqister befindet, ohne Rücksicht aif die Position ciicr-jer Zeile ire Aniiaigeiregistei. end ohne Rücksicht auf die Stellang einer Fopiticnsanzeigamarict-,
Beim erf indungsganaßen Rechner kann der benutzer durch Drücken einer Rückruftaste (PECALt1)des Tastenfeldes in das Ai.<zeäReregister die neueste Zeile von Information airückrufen, die entweder durch einen Äasführungsbefehl (EXECUTE) oder durch einen Zeilenende-Befeal (AND-OF -IaHE) festgelegt worden ist,
Beim erfindungsgemäßen Rechner ist eine Gruppe von verschiedene Aufbereitungstefehle darstellenden Tasten des Tastenfeldes vorgesehen, um den Rechner in die lage zu versetzen, die dargestellten Befehle auszuführen, ohne daß die Notwendigteit. besteht, die Befehle durch Betätigung einer Folge von alphabetischen Tasten Bachstabe für Buchstabe einzugeben.
Beim erfindungsgemäßen Rechner: kann der Benutzer durch Betätigung einer einzelnen Taste der Tastatur einen Anweiöuncsteii einer in dap Anzeigeregister angegebenen feile von Information unter Surücknaluing eier Eeilennummer dieser Zeile herausnehmen.
309B84/13?
Beim erfindungsgemäßen Rechner kann der Benutzer durch Betätigung einer einzelnen Taste der Tastatur aus dem Speicher eine Zeile von Information aislöschen, die aus dem Speicher in ein Wiedergäberegister zurückgerufen worden ist.
Beim erf indungsgemäßen Rechner kann der Benutzer auf einem externen Drucker vahlweise eine vollständige Datei auflisten, die im Speicher oder irgendeinem davon gespeichert ist.
Beim erfindungsgemäßen Rechner kann der Benutzer einen automatischen Zeilenruimverierungsbetrieb kennzeichnen um automatisch eine Zeilenzahl am Beginn ;pder Zeile von Information vorzusehen, die in ein Anzeigeregister eingegeben worden ist, und zwar entsprechend einer ausgewählten Folge, die eine StartfeLlennunmer und einen Zuwachs einschließt.
Beim erf indungsgemäßen Rechner kann der Benutzer wahlweise van Speicher ein Hauptzeilen-Prograitin, nicht übliche Variable, eine Symboltabelle und die Dfefinitionen von einer Gruppe von Benutzer-definierbaren Tasten streichen.
Beim erfindungsgemäßen Rechner kann der Benutzer während der Ausführung eines Brogramms eine Verfolgung des Betriebs vorsehen, wodurch die Zeilennummer jeder' aasgeführten Anweisung auf einer externen Ausgabeejjoheit gedruckt wird, sobald sie ausgeführt ist.
Beim erfindungsgemäßen Rechner kann der Benutzer vor der Ausführung eines Brogramms und ohne Änderung des Programms eine Zeile oder Zeilen bestimmen, vor d=ren Ausführung die Programmausführung angehalten wird.
Beim erfindungsgemäßen Rechner kann der Benutzer wahlweise die Ausführung eines Bxjgranms entweder am Beginn oder an einer beliebigen Zwischenzeile beginnen 1 assen und kann festlegen, dass zu einem solchen Zeitpunkt alle Variablen eitweder unverändert bleiben oder in einen undefinierbaren Zustand versetzt verden.
Beim erfindungsgemäßen Rechner kann der Benutzer durch Betätigung einer einzelnen Taste des Tastenfeldes den Rechner instruieren, alle Programmvariablen ±i einen undefinierbaren Zustand zu versetzen und eine Feldspeicherung für alle leider aufzusetzen, die zuvor in einem Programm dimensioniert worden sind.
309884/1370
Beim erfindungsgemäßen Rechner kann der Benutzer jeden Teil des Programmes sichern, so daß ein Benutzer keine Hinweise auf den Inhalt eines solchen Teiles erhalten kann und kein sicheres Programm auf einem magnetischen Aufnähmeträger speichern kann, das zuvor von einem magnetischen Aufnahmeträger in den Rechner eingegeben worden ist, jedoch den Inhalt des nicht gesicherten Teiles jedes im Speicher befindlichen Programms erkennen kann.
Beim erfindungsgemäßen Rechner kann eine Gruppe von Zeichen jeder beliebigen aus einer Vielzahl von definierbaren Tasten des Tastenfeldes zugeordnet werden, kann später durch Betätigung der zugeordneten Taste angezeigt werden und kann, wenn die Zeichengruppe einen ausführbaren Befehl darstellt, sofort durch Betätigung der zugeordneten Taste ausgeführt werden.
Beim erfindungsgemäßen Rechner kann jede aus einer Vielzahl von definierbaren Tasten des Tastenfeldes einer Einzel- oder Vielzeilenfunktion von einem Argument zugeordnet werden, wobei die Funktion als Teil eines Programmes benutzt werden kann oder unmittelbar vom Tastenfeld aus ausgeführt wird.
Beim erfindungsgemäßen Rechner kann jede aus einer Vielzahl von definierbaren Tasten des Tastenfeldes einer Vielzahl von Programmanweisungen in BASIC-Sprache zugeordnet werden, und das sichjergebende Programm kann durch Betätigung der zugeordneten Taste ausgeführt werden.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn er einen einsteckbaren Matrix-Nur-Lese-Speicher-Modul benutzt, als Funktion die Determinante einer vordefinierten quadratischen Matrix auswählen.
Beim erfindungsgemäßen Rechner kann der Benutzer durch Betätigung einer Umschalttaste (SHIFT) der Tastatur selektiv veranlassen, daß auf einer externen Druckeinheit entweder Groß- oder Kleinbuchstaben gedruckt werden.
30988A/ 1370
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner in Verbindung mit einem externen Drucker benutzt wird, einen "alles drucken"-Betrieb einstellen, um alle Zeilen mit Information, die vom Tastenfeld aus eingegeben worden sind und durch Ausführungs- oder Zeilenende-Befehle (EXECUTE bzw. END-OF-LINE) festgelegt worden sind, alle Fehlernachrichten und alle während der Ausführung angezeigten Informationen zu drucken.
Beim erfindungsgemäßen Rechner kann der Benutzer jede im Rechner selbst enthaltene Programmanweisung in BASIC-Sprache vom Tastenfeld aus unmittelbar ausführen.
Beim erfindungsgemäßen Rechner sind die einsteckbaren Nur-Lese-Speicher-Module nicht einzig und allein einer speziellen Gruppe von Tasten des Tastenfeldes zugeordnet.
Beim erfindungsgemäßen Rechner können die durch den Gebrauch von einsteckbaren Nur-Lese-Speicher-Modulen verfügbaren Funktionen ausgewählt werden durch Betätigung einer Serie von alphanumerischen Tasten des Tastenfeldes (eher als einzelnen Tasten), wobei die Zahl der verfügbaren Funktionen unabhängig von der Zahl der verfügbaren Tasten ist.
Beim erfindungsgemäßen Rechner kann der Benutzer ein Programm aufstellen, in dem er Funktionen benutzt, die aus einer Vielzahl von einsteckbaren Nur-Lese-Speicher-Modulen verfügbar sind, welche in Aufnähmevorrichtungen am Rechner in spezieller Reihenfolge eingesteckt sind, kann der Benutzer ein derartiges Programm auf eine externe magnetische Aufnahmevorrichtung aufnehmen, und kann der Benutzer danach ein derartiges Programm auf einem anderen Rechner des gleichen Typs ausführen, welcher mit den gleichen einsteckbaren Nur-Lese-Speicher-Modulen bestückt ist, wobei eine Beachtung der Reihenfolge, in der sie in die Aufnahmevorrichtungen des ersten Rechners eingesteckt waren, nicht beachtet werden muß.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für einen Plotter
3098iU/ 1 370
2333903 - 18 -
und einem externen X-Y-Plotter bestückt ist, eine Versetzung von X- und Y-Koordinaten spezifizieren, die auf alle nachfolgenden Koordinaten-Spezifikationen angewandtwerden soll.
Beim erfindungsgemäßen Rechner kann der Benutzer, wann der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für einen Plotter und einem externen X-Y-Plotter bestückt ist, in Benutzereinheiten ansteigend, Punkte relativ zu einer laufenden Schreibstxftposxtxon zeichnen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für einen Plotter und einem externen X- Y-Plotter bestückt ist, rechtwinklige Koordinatenachsen zeichnen, indem er in Benutzereinheiten die Anfangs- und Endkoordinate für jede Achse, eine Koordinate bei der die eine Achse die andera schneidet, sowie ein Merkzeichen spezifiziert, um längs jeder Achse in beiden Richtungen von einem Anfangspunkt aus Merkzeichen vorzusahen.
Beim arfindungsgemäßen Rechnar ^ann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für einen Plotter und einem externer· X- Y-E !otter bestückt ist, Etiketten entsprechend dem Format einer Standard-Druckanweisung in BASIC-Sprache oder entsprechend einer Fornatanweisung des Programmes, auf die Bezug genommen wird, zeichnen, die Höhe der in solchen Etiketten enthaltenen Zeichen spezifizieren, ein Zeichan-Ansicht-■Verhäitnis (Verhältnis Höhe zur Breite) für die in solchen Etiketten enthaltenen Zeichen spezifizieren? einen Drehwinkel in Grad, Bogenmaß oder Neugrad (rechter Winkel gleich 100°) spezifizieren, unter welchem solche Etiketten aufzuzeichnen sind, sowie ein Höhen/Breiten-Verhältnis des Papiers spezifizieren, um die Zeichen-Einheitlichkeit ohne Rücksicht auf den Zeichenwinkel sicherzustellen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speieher-Modui für einen Plotter und mit einem externen X-Y-Plotter bestückt ist, inkremental Zeichen aufzeichnen, entsprechend Zeicheiigrdße-ίInhalten, um die
"Ci 834/ \ 370
Plazierung des Schreibstiftes beim Beginn von Etikettiervorgängen des Plotters zu erleichtern.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für einen Plotter und mit einem externen X-Y-Plotter bestückt ist, Zeichen aufzeichnen, wenn die entsprechenden Tasten des Tastenfeldes betätigt werden, und "Pfeil nach oben"- "- nach unten" -,"- nach links" - und " - nach rechts" - Tasten des Tastenfeldes benutzen, um die Position des Schreibstiftes des Plotters zu steuern.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für ein Terminal und mit einem externen Modem zum Aussenden und Empfangen von Informationen über Telefonleitungen bestückt ist, von der Tastatur aus jede Baud-Rate aus einem kontinuierlich variablen Bereich von B d-Raten auswählen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für ein Terminal und einem externen Modem zum Aussenden und Empfangen von Daten über Telefonleitungen bestückt ist, durch Betätigung einer einzelnen Taste des Tastenfeldes entweder eine ungerade oder eine gerade Parität von übermittelten Daten auswählen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für ein Terminal bestückt ist, vom Tastenfeld aus freie Textinformationen eingeben,. wenn der Rechner mit einem externen magnetischen Aufnahmegerät oder irgendeiner peripheren Eingabeeinheit bestückt ist, solch eine Information auf Zeile-bei-Zeile- oder Zeichen-bei-Zeichen-Basis aufbereiten, kann solche Information auf einem externen magnetischen Aufnahmegerät speichern und kann nachher solche Information z. B. zu einem entferntangeordneten Teilnehmer-Computersystem (timesharing-system) übermitteln.
Beim erfindungsgemäßen Rechner kann der Benutzer , wenn der Rechner
309884/1370
mit einem einsteckbaren Nur-Lese-Speicher-Modul für ein Terminal versehen ist, alle möglichen ASCII-Kodes erzeugen und übertragen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für ein Terminal und einem externen Modem zum Aussenden und Empfangen von Information über Telefonleitungen bestückt ist, lokal zur gleichen Zeit Rechnungen durchführen und Programme durchlaufen lassen, zu der z. B. der Rechner auf ein entfernt angeordnetes Teilnehmer-Computersystem geschaltet ist und über dieses Programme ablaufen läßt.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für ein Terminal bestückt ist, von entfernten Orten Programme in BASIC-Sprache empfangen und diese anschließend lokal auf den Rechner durchlaufen lassen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe bestückt ist, von einem Tastenfeld aus oder unter Programmsteuerung jeden 12-Bit-Kode erzeugen und zu jedem einer Vielzahl von Eingabe-Ausgabe-Kanälen übertragen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe bestückt ist, vom Tastenfeld aus oder unter Programmsteuerung ein 8-Bit-Zeichen von einem vorgegebenen Eingabe-Ausgabe-Kanal einlesen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für erweiterte Eingabe oder Ausgabe bestückt ist, vom Tastenfeld aus oder unter Programmsteuerung den Status einer vorgegebenen externen Eingabe-Ausgabe-Einheit lesen.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für erweiterte
309884/1 370
Eingabe und Ausgabe bestückt ist, vom Tastenfeld aus oder unter Programmsteuerung auf 16-Bit-Ganzzahl-Daten Bit-Manipulationen ausführen entsprechend den Funktionen von "Rotieren"(ROTATE), "und" (AND) und "oder" (OR).
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe bestückt ist, vom Tastenfeld aus oder unter Programmsteuerung* zwischen verschiedenen Mehrfach-Bit-Daten-Kodes und dem ASCII-Kode des Rechners umwandeln, um die Kommunikation des Rechners mit peripheren Einheiten zu erlauben, die mit anderen Kodes arbeiten als ASCII.
Beim erfindungsgemäßen Rechner kann der Benutzer, wenn der Rechner mit einem einsteckbaren Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe bestückt ist, vom Tastenfeld aus oder unter Programmsteuerung in eine STRING-Variable jede Information einschreiben, die zu einer Ausgabeeinheit übertragen werden kann.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung mittels eines einzelnen Befehls, der Parameter einschließen kann, ein Magnetband, das entweder in einer internen Bandkassette oder in einer aus einer Vielzahl von externen Bandkassetten gespeichert ist, in einer vorgegebenen Anzahl von Dateien markieren, von denen jede von vorgegebener Länge ist.
Beim erfindungsgemäßen Rechner kann der Benutzer vorgeben, daß eine spezielle, auf einer Magnetbandkassette gespeicherte Datei entweder zur Programmspeicherung oder zur Datenspeicherung zu benutzen ist. Außerdem ist der Benutzer anschließend daran gehindert, einen Zugriff zu Daten von einer Datei zu versuchen, die zur Programmspeicherung vorgesehen ist und umgekehrt.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung Zugriff zu einer auf einer Magnetbandkassette gespeicherten Datei nehmen, und zwar durch ein
309884/1370
einzelnes, eine Dateinummer anzeigendes Programm, wobei die Dateinummer das Ergebnis eines arithmetischen Ausdruckes sein kann.
Beim erfindungsgemäßen Rechner ist es möglich, daß nur komplette Dateien von vorgegebener Länge auf einem Magnetband markiert werden können, um zu verhindern, daß eine Datei in der Nähe des Bandendes nur teilweise komplett aufgenommen wird, da keine genügende Bandmenge mehr vorhanden ist.
Beim erfindungsgemäßen Rechner kann der Benutzer mittels eines einfachen, entweder vom Tastenfeld aus eingegebenen oder unter Programmsteuerung angetroffenen Befehles auf einer externen Druckeinheir. gewisse Informationen auflisten, die im Hinblick auf jede Datei auf einer Magnetbandkassette gespeichert sind. Solche Informationen sind die Dateinummer, die laufend darin gespeicherte Information, der Dateityp, die maximale Dat.eilänge, die Anfangs- und Eiidzeilennummern eines darin gespeichalten Programmes, die Zahl der Worte von ue^eins-^ien DaL".er.3peicherungen, die einem darin gespeicherten Programm zugeordnet sind, und die Form der darin gespeicherten Daten.
Beim erfindungsgamäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung ein oder mehrere in einer Magnetbandkassette gespeicherte Programm-Segmente mit einem Programm verketten, das sich im Rechner-Speicher befindet, und kann in jedem Segment die gleichen Variablen benutzen, ohne eine gemeinsame Speicherung für die Variablen zu erklären.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung bei jeder Zeilennummer eines im Rechner-Speicher befindlichen Programms ein auf einer Magnetbandkassette gespeichertes Programm oder Prograirn-Segment einfügen.
3C9884/1370
Beim erfindungsgemäßen Rechner kann der Benutzer im Speicher eine Zeilennummer spezifizieren, bei welcher ein von einer Magnetbandkassette geladenes Programm oder Programm-Segment zu beginnen hat und in welcher, wenn die resultierenden Zeilennummern von denen des auf dem Band befindlichen Programms oder Programm-Segmentes differieren, innerhalb eines solchen Programms oder Programm-Segmentes die Referenzen automatisch modifiziert werden, um die laufende Zeilennummernfolge zu reflektieren.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung jeden Teil eines im Rechner-Speicher befindlichen Programms selektiv auf einer Magnetbandkassette speichern.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung die allen Tasten einer Gruppe von Benutzer-definierbaren Tasten zugeordneten Definitionen in eine Datei auf eine Magnetbandkassette speichern.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung aus einer Datei auf einer Magnetbandkassette die allen Tasten einer Gruppe von Benutzerdefinierbaren Tasten zugeordneten Definitionen laden.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung Programme oder Funktionen laden, speichern, mischen oder verketten, die sich auf einer Magnetbandkassette befinden oder befinden sollen und jeder Taste einer Gruppe von Benutzer-definierbaren Tasten zugeordnet sind oder zugeordnet sein sollen.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteue-ang alle gemeinsamen Daten, die in dem im Rechner-Speicher befindlichen Programm definiert sind, von einer Magnetbandkassette in einen Rechner-Speicher laden oder vom Rechner-Speicher auf eine Magnetbandkassette aufnehmen,
309884/137
ohne daß individuelle Variablennamen spezifiziert werden und mittels eines einzelnen Befehls.
Beim erfindungsgemäßen Rechner kann der Benutzer fertig aufgenommene Assemblersprachen-Programme laden, welche Befehle, Anweisungen oder Funktionen enthalten, die den Anwendungsbereich des Rechners erweitern und die für die Ausführung vom Benutzer ausgewählt werden können, als wenn die gleichen Befehle, Anweisungen oder Funktionen vom Benutzer mittels eines einsteckbaren Nur-Lese-Speicher-Moduls verfügbar gemacht worden wären.
Beim erfindungsgemäßen Rechner kann der Benutzer vom Tastenfeld aus oder unter Programmsteuerung eine Magnetbandkassette in Vorwärts- oder Rückwärtsrichtung durchsuchen, um eine spezielle Datei zu lokalisieren und zwar gleichzeitig, während der Rechner Befehle von Prograirananweisungen oder vom Tastenfeld ausführt.
Die Erfindung wird nachstehend an Hand von Ausführungsbeispielen in Verbindung mit der zugehörenden Zeichnung erläutert . in der Zeichnung zeigen:
Fig. 1 eine perspektivische Frontansicht eines anpassbaren, programmierbaren Rechners entsprechend der bevorzugten Ausführungsform der vorliegenden Erfindung;
Fig. 2 eine perspektivische Rückansicht des anpassbaren, programmierbaren Rechners nach Fig. 1;
Fig. 3 A-B ein vereinfachtes Blockdiagramm des anpassbaren, programmierbaren Rechners nach Fig. 1 und 2;
Fig. 4 A-F ein Speicherbild der in dem anpassbaren, programmierbaren Rechner nach Fig. 1 bis 3 verwendeten Speichereinheit;
Fig. 5 A-B ein detailiertes Speicherbild des System-Lese-Schreib-Abschnittes des in Fig. 4 A dargestellten Speichers·;
'09884/1370
Fig. 6 ein detailiertes Speicherbild des Benutzer-Lese-Schreib-Abschnitts des in Fig. 4 F dargestellten Speichers;
Fig. 7 ein Blockdiagramm der festverdrahteten Software (Firmware) für den anpassbaren, programmierbaren Rechner;
Fig. 8 eine Draufsicht auf die Tastenfeld-Eingabeeinheit, die in dem anpassbaren, programmierbaren Rechner nach.Fig. 1 bis 3 verwendet wird;
Fig. 9 A-B ein schematisches Diagramm des Lese-Schreib-Speichers nach Fig. 3 A-B und 4 A-F;
Fig.10 A-B ein schematisches Diagramm des wahlweise anfügbaren Lese-Schreib-Speichers nach Fig. 3 A-B und 4 A-F;
Fig.11 ein schematisches Diagramm des Basis-Nur-Lese-Speichers der Fig. 3 A-B und 4 A-F;
Fig.12 ein schematisches Diagramm des wahlweise hinzufügbaren Nur-Lese-Speicher-Modules, der in den Rechner eingesteckt werden kann, um die Zahl der für den Benutzer verfügbaren Funktionen zu erhöhen;
Fig.13 ein detailiertes schematisches Diagramm der den Nur-Lese-Speicher-Modulen aus Fig. 12 zugeordneten Pufferschaltung;
Fig.14 ein Speicherbild der Speichereinheit aus Fig. 3 A-B und 4 A-F, in der dargestellt ist, wie diese in die Nur-Lese- und Lese-Schreib-Speicher-Schaltungsplatten der Fig. 9 A-B bis 13 aufgeteilt ist;
Fig.15 A-B ein detailiertes schematisches Diagramm des Speicheraddressenregisters aus Fig. 3 A-B mit seiner zugeordneten Steuerschaltung;
3 09884/137 0
OWGlNAL WSPECTEO
23339Π3
Fig.16 A-B ein Kurvenform-Diagramm und Statusfolge-Karten, die den Betrieb der Steuerschaltung nach Fig. 15 A-B illustrieren;
Fig.17 A-B ein detailiertes schematisches Diagramm des Speicher-Zugriff -Registers der Fig. 3 A-B;
Fig.18 ein schematisches Logikdiagramm welches benutzt werden kann, um eine Druckeinheit an den Eingangs- Ausgangs-Steuerdruck der Fig. 3 A-B anzuschließen;
Fig.19 ein schematisches Logikdiagramm das benutzt werden kann, um ein Modem an die Eingangs-Ausgangs-Steuereinheit der Fig. 3 A-B anzuschließen;
Fig.20 ein detailiertes schematisches Diagramm der Tastenfeld-Eingabeeinheit, die in dem anpassbaren, programmierbaren Rechner der Fig. 1 bis 3 verwendet wird;
Fig.21 ein Blockschaltbild der Lese- und Aufnahmeeinheit für Magnetbandkassetten, wie sie im Rechner der Fig. 1 bis 3 eingesetzt wird;
Fig.22 ein detailiertes schematisches Diagramm des Verbindungsblocks aus Fig. 21;
Fig.23 A-B ein detailiertes schematisches Diagramm des Steuerlogik-Blocks aus Fig. 21;
Fig.24 A-B ein detailiertes schematisches Diagramm des Lese-Schreib-Blocks aus Fig. 21;
Fig.25 A-B ein detailiertes schematisches Diagramm des Motor-Steuerblocks aus Fig. 21;
30988/W1370
23^108
Fig.26 ein detailiertes Schematisches Diagramm des Anschlußblocks aus Fig. 21;
Fig.27 ein detailiertes Schematisches Diagramm des Kopf-Ansteuer- und Vorverstärker-Blocks aus Fig. 21;
Fig.2ö ein Blockschaltbild, das illustriert, wie die Lese- und Aufnahmeeinheit■für Magnetbandkassetten nach Fig. 21 bis 27 mit dem Rechner nach Fig. 1 bis 3 zusammenwirkt;
Fig.29 A-B ein detailiertes schematisches Diagramm der Ausgabe-Anzeigeeinheit, die in dem anpassbaren, programmierbaren Rechner nach Fig. 1 bis 3 verwendet wird;
Fig.30 A-B ein detailiertes schematisches Diagramm der der Ausgabe-Anzeigeeinheit der Fig. 29 A-B zugeordneten Steuerlogik-Schaltung;
Fig.31 ein Blockschaltbild des in dem anpassbaren, programmierbaren Rechner der Fig. 1 bis 3 verwendeten Energieversorungssystems;
Fig.3 2 A-B ein detailiertes schematisches Diagramm des Energieversorungssystems nach Fig. 31 ;
Fig.33 ein Flußdiagramm der Einschalt-Routine, die ein Teil des System-Monitors nach Fig. 4 B ist;
Fig.3 4 A-D ein Flußdiagramm einer Routine, die einen anderen Teil des System-Monitors nach Fig. 4 enthält;
Fig.3 5 ein Flußdiagramm der System-Tabellen-Abtastroutine aus Fig. 4 D;
Fig.3 6 ein Flußdiagramm einer von der Routine nach Fig. 3 5 gerufener Subroutine;
"' 0 9 8 H Λ / 1 3 7 Γ;
- 28 Fig.37 ein Flußdiagramm der Tabellensuch-Routine nach Fig.4 A;
Fig.38 A-G ein Flußdiagramm der Tastenfeld-Eingabe-Routine und spezieller Tastenfeld-Funktions-Routinen nach Fig.' 4 A;
Fig.39 A-B Flußdiagramme von durch die Routinen der Fig. 38 A-G gerufenen Subroutinen;
Fig.40 ein Flußdiagramm der von verschiedenen der Routinen der Fig. 4 A-F gerufenen Lösch-Subroutine;
Fig.41 ein Flußdiagramm einer von der Routine von Fig. 38 F gerufenen Subroutine;
Fig.42 ein Flußdiagramm einer von der Tastenfeld-Eingabe-Routine der Fig. 4 A und 38 A-G gerufenen Subroutine;
Fig.43 ein Flußdiagramm einer von der Subroutine nach Fig. 42 gerufenen Tastatur-Ansteuerungs-Subroutine;
Fig.44 A-F Flußdiagramme einiger der allgemeinen System-Subroutinen nach Fig. 4 A;
Fig.45 ein Flußdiagramm der Fehler-Routine nach Fig. 4 B;
Fig.46 A-D Flußdiagramme der Programm-Speicher-Leitroutinen nach Fig. 4 B;
Fig.47 ein Flußdiagramm einer anderen der allgemeinen System-Subroutinen nach Fig. 4 A, die auch durch die Routinen der Fig. 46 A-D gerufen wird;
Fig.48 ein Flußdiagramm einer weiteren der allgemeinen System-Subroutinen der Fig. 4 A;
309884/1370
Fig.49 A-F Flußdiagramme der Routinen für die Benutzerdefinierbaren Tasten nach Fig. 4 A;
Fig.50 A-D Flußdiagramme der Steuerblocks nach Fig. 4 C für den Ausführungs-Monitor und die Tastenfeld-Ausführung;
Fig.51 ein Flußdiagramm für die Routine zur Ladungs-Ausführung nach Fig. 4 D;
Fig.52 ein Flußdiagramm der Routine für die Speicher-Ausführung nach Fig. 4 D;
Fig.53 ein Flußdiagramm für die Routine zur Mischungs-Ausführung nach Fig. 4 D;
Fig.54 ein Flußdiagramm der Routine für die Verbindungs-Ausführung nach Fig. 4 D;
Fig.55 ein Flußdiagramm der Routine zur Auffindungs-Ausführung der Fig. 4 D;
Fig.56 A-D Flußdiagramme von durch die Ausführungs-Routinen der Fig. 51 bis 54 gerufenen Subroutinen;
Fig.57 ein Flußdiagramm der Routine zur Ausführung der Datenladung nach Fig. 4 D;
Fig.58 ein Flußdiagramm der Routine zur Ausführung der Datenspeicherung nach Fig. 4 D;
Fig.59 ein Flußdiagramm einer durch die Routinen nach Fig. und 58 gerufenen Subroutine;
Fig.60 ein Flußdiagramm der Routine zur Ausführung der Tastenladung nach Fig. 4 D;
309884/1370
Fig. 61 ein Flußdiagrainm der Routine zur Ausführung der Tastenspeicherung nach Fig. 4 D;
Fig. 62 ein Flußdiagrainm der Routine zur Ausführung der binären Ladung nach Fig. 4 D;
Fig.63 ein Flußdiagranun der Routine zur Ausführung der Markierung nach Fig. 4 D;
Fig.64 ein Flußdiagramm einer durch die Routine nach Fig. 63 gerufenen Subroutine;
Fig. 65 A ein Flußdiagrainm der Routine zur Ausführung der Auflistung nach Fig. 4 D;
Fig. 65 B ein Flußdiagrainm einer durch die Routine nach Fig. 65 A gerufenen Subroutine;
Fig. 66 ein Flußdiagramm dex Siche.rungs-Routine nach Fig. 4 D; Fig.67 A-B Fiußdiagramme äer Unterbrechungs-Routine nach Fig. 4 D;
Fig. 68 A-B ein Flußdiagranun einer Routine zur Ausführung eines Versetzungs-Befehls (OFFSET) die gewählt werden kann, wenn der einsteckbare Nur-Lese-Speicher-Modul für den Plotter bei dem Rechner benutzt wird;
Fig.69 ein Flußdiagramm einer Routine zur Durchführung eines IPLOT-Befehls, der gewählt werden kann, wenn der einsteckbare Nur-Lese-Speicher-Modul für den Plotter beim Rechner benutzt wird?
Fig,70 ein Flußdiagramm einer Routine zur Ausführung eines Etiketier-Befehls (LABEL) f dar gewählt werden kann, wenn der einateckbare Nur-Lese-Speicher-Modul für den Plotter beim Rechner benutzt wird,-
3 0 9 3 8 \! '3/0
Fig.71 ein Flußdiagramm einer Routine zur Durchführung eines Buchstaben-Befehls (LETTER), der ausgewählt werden kann, wenn der einsteckbare Nur-Lese-Speicher-Modul für den Plotter beim Rechner benutzt wird;
Fig.72 ein Flußdiagramm einer Routine zur Durchführung eines CPLOT-Befehls, der ausgewählt werden kann, wenn der einsteckbare Nur-Lese-Speicher-Modul für den Plotter beim Rechner benutzt wird;
Fig.73 ein Flußdiagramm einer durch die Routine nach Fig. 72 benutzten Subroutine;
Fig.74 ein Flußdiagramm einer Routine zur Durchführung von Y-Achseund Y-Achse-Befehlen (XAXIS bzw. YAXIS), die ausgewählt werden können, wenn der einsteckbare Nur-Lese-Speicher-Modul für den Plotter beim Rechner eingesetzt wird;
Fig.75 A-C Flußdiagramme von durch die Routine nach Fig. 74 gerufenen Subroutinen;
Fig.76 A-C Flußdiagramme von durch die Routinen nach Fig. 68 bis 74 gerufenen Subroutinen;
Fig.77 ein Flußdiagramm einer Ersteingangs-Routine, die verwendet wird, wenn der Nur-Lese-Speicher-Modul für ein Terminal in den Rechner eingesteckt worden ist;
Fig.78 A-w ein Flußdiagramm einer Routine für die Tastenfeld-Eingabe und -Aufbereitung, die benutzt wird, wenn der Nur-Lese-Speicher-Modul für ein Terminal in den Rechner eingesteckt ist;
309884/1370
Fig.79 A-B ein Flußdiagramm einer Routine zur Bedienung einer Modem-Unterbrechung, die benutzt wird, wenn der Nur-Lese-Speicher-Modul für ein Terminal in den Rechner eingesteckt ist;
Fig.80 ein Flußdiagramm einer Sekundär-Eintritts-Routine, die benutzt wird, wenn der Nur-Lese-Speicher-Modul für ein Terminal in den Rechner eingesteckt ist;
Fig.81 ein Flußdiagramm einer Ausgabe-Anweisungs-Routine, dxe benutzt wird, wenn der Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe in den Rechner eingesteckt ist;
Fig.82 A-D Flußdiagramme von durch die Routine nach Fig. 81 gerufenen Subroutinen;
Fig.83 ein Flußdiagramm eines BlN-Befehls, der wählbar ist, wenn der einsteckbare Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe beim Rechner eingesetzt wird;
Fig.84 ein Flußdiagramm eines CHAR-Befehls (Zeichenbefehls), der wählbar ist, wenn der einsteckbare Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe bei dem Rechner eingesetzt wird;
Fig.85 ein Flußdiagramm eines STAT-Befehls (Anweisungs-Befehls), der wählbar ist, wenn der einsteckbare Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe bei dem Rechner eingesetzt wird;
Fig. 86 ein Flußdiagramm von binären ROTATE-(Rotier-) ,AND-(und-) , OR-(oder-) Befehlen die wählbar sind wenn der einsteckbare Nur-Lese-Speicher-Modul für erweiterte Eingabe und Ausgabe bei dem Rechner eingesetzt wird.
309884/1370
Allgemeine Beschreibung
In Figuren 1 und 2 ist ein anpaßbarer, programmierbarer Rechner 10 dargestellt, der sowohl eine Tastenfeld-Eingabeeinheit 12 zur Eingabe von Informationen in den Rechner und zur Steuerung von dessen Betrieb als auch eine Lese- und Aufnahmeeinheit 14 .für Magnetbandkassetten enthält, um innerhalb des Rechners gespeicherte Informationen auf eine oder mehrere externe Bandkassetten 16 aufzunehmen, und um anschließend die auf diesen und auf ähnlichen Magnetbandkassetten gespeicherten Informationen wieder zurück in den Rechner zu laden. Der Rechner enthält auch eine Festkörper-Ausgabe-Anzeigeeinheit 18 zur Wiedergabe von im Rechner gespeicherten alphanumerischen Informationen. Alle diese Eingabe- und Ausgabeeinheiten sind innerhalb eines einzigen Rechnergehäuses 24 montiert, das sich an dessen gewölbte Frontplatte Anschließt.
Wie in Fig. 2 dargestellt ist, können an den Rechner gleichzeitig eine Vielzahl von peripheren Eingabe- und Ausgabeeinheiten angeschlossen werden, zum Beispiel ein Zeilendrucker, ein Analog-Digital-Umsetzer, ein Lochkartenleser, ein X- Y-Plotter, eine Schreibmaschine, eine Fernschreibmaschine, eine erweiterte Lese-Schreib-Speichereinheit, eine Lese- und Aufnahmeeinheit für Magnetplatten und ein Modem zum Anschluß des Rechners über Telefonleitungen an einen entfernt angeordneten Computer. Der Anschluß geschieht einfach dadurch, daß den ausgewählten peripheren Einheiten zugeordnete Verbindungs-Module 30 in irgendeine von vier Aufnahmevorrichtungen 32 gesteckt werden, die zu diesem Zweck in einer Rückwand 34 des Rechnergehäuses vorgesehen sind. Wenn jeder Verbindungs-Modul 30 in eine dieser Aufnahmevorrichtungen eingeführt wird, schwingt eine federbelastete Klappe 38 am Eingang der Aufnahmevorrichtung nach unten und erlaubt den , Durchtritt des Verbindungs-Moduls. Sobald der Verbindungs-Modul voll eingeführt ist, ragt ein Terminal-Brett 40 mit gedruckter Schaltung, das in dem Verbindungs-Modul enthalten ist, in eine Paßleistenkupplung hinein, die im Inneren des Rechners montiert
309884/1370
ist. Falls irgendwelche der ausgewählten peripheren Einheiten Wechsel^pannungs-Leitungsenergie benötigen, können ihre Energieversorgungs-Anschlußschnüre in einen von zwei Wechselspannungs-Energieausgangen 42 eingesteckt werden, die zu diesem Zweck an der Rückwand des Rechnergehäuses 24 vorgesehen sind.
Aus dem in Figuren 3A-B dargestellten vereinfachten Blockdiagramm kann man ersehen, daß der Rechner außerdem eine Eingabe-Ausgabe-Steuereinheit 44 (im folgenden als I/O-Steuereinheit bezeichnet) enthält, um die übergabe von Informationen zu und von den Eingabe- und Ausgabe-Einheiten zu steuern, eine Speichereinheit 46 enthält, um in den Rechner eingegebene Information zu speichern und zu manipulieren und um Routinen und Subroutinen von durch den Rechner ausgeführten Basis-Instruktionen zu speichern, sowie eine zentrale Prozessoreinheit 48 (im folgenden als CPü bezeichnet) enthält, um die Ausführung der Routinen und Subroutinen von in der Speichereinheit gespeicherten Basis-Instruktionen zu steuern, sofern sie für die Verarbeitung für die in den Rechner eingegebenen oder in ihm gespeicherten Informationen benötigt werden. Der Rechner enthält außerdem ein Sammelschienen-System, das eine S-Samme1schiene 5O, eine T-Sammelschiene 52 und eine R-Sammelschiene 54 für die Übergabe von Informationen von der Speicher- und der I/O-Steuereinheit an die CPU, von der CPU an die Speicher- und die I/O-Steuereinheit und zwischen verschiedenen Teilen der CPU aufweist, Es weist weiterhin eine Energieversorgung für die Versorgung des Rechners und der mit ihm verwendeten peripheren Einheiten mit Gleichspannungsenergie und für die Ausgabe eines Kontrollsignals POP auf, wenn dem Rechner Energie zugeführt wird.
Die Speichereinheit 46 enthält einen modularen Lese-Schreib-Speicher 78 (im folgenden als RWM bezeichnet) für direkten Zugriff, einen modularen Nur-Lese-Speicher 80 (im folgenden als ROM bezeichnet), ein Speicheradressenregister 82 (im folgenden als M-Register bezeichnet), ein Speicherzugriffsregister 84 (im folgenden als T-Register bezeichnet) und eine Kontroll-
30988A/1370
Schaltung 85 für diese Speicher und Register. Das RWM 78 und das ROM 80 enthalten Halbleiterspeicher vom MOS-Typ. Wie im Speicherbild der Figuren 4A-F dargestellt ist, enthält das Basis-RWM 78 einen zugewiesenen System-Speicherabschnitt von 256 Sechzehn-Bit-Worten, der sich von Adresse 1400 bis Adresse 1777 erstreckt, sowie einen, separaten Programm- und/oder Datenspeicherabschnitt für den Benutzer mit 1792 Sechzehn-Bit-Worten, der sich von Adresse 40400 bis Adresse 43 777 erstreckt. Alle Adressen im Speicherbild sind in oktaler Form dargestellt.
Ein wahlweiser Teil des RWM mit 2048 Sechzehn-Bit-Worten kann für den Benutzer bei den Adressen 44000-47777 verfügbar gemacht werden. Dies wird dadurch erreicht, daß eine Deckplatte 90 des in Fig. 1 gezeigten Rechnergehäuses entfernt wird und eine zusätzliche gedruckte Schaltungsplatte eingefügt wird, die den wahlweisen Speicher enthält. Der zusätzliche RWM wird automatisch vom Rechner eingepaßt.
Wie in den mehr detaillierten Speicherbildern der Figuren 5A-B dargestellt ist, weist der zugewiesene System-Speicherabschnitt des RWM 52 Worte (Adressen 1400-1463 auf, di~ Information in Form von mnemonischen Variablen enthalten, welche durch die Firmware-Routinen gemäß Fig. 8 benutzt werden. Eine mehr detaillierte Beschreibung dieser mnemonischen Variablen ist auf Seite 21 der aufgelisteten Basis-System-Firmware gegeben, die an anderer Stelle in dieser Beschreibung enthalten ist. Die Adressen 1466-1477 und 1701-1737 werden als Zwischenspeicher von den verschiedenen in Fig. 8 gezeigten Routinen benutzt. Die Adressen 15OO-155O enthalten einen 41-Wort-Puffer, der benutzt wird, um die Eingabezeichen während der Syntaxanalyse festzuhalten. Die Adressen 1551-1621 enthalten einen 41-Wort-Speicher, der von der in Fig. 8 dargestellten Routine zur Erneuerung einer einzelnen Zeile benutzt wird. Für diese 41 Worte nebst 42 zusätzlichen Worten (Adressen 1622-1673) werden als Syntax-Puffer während der Syntaxanalyse benutzt. Vier von diesen Worten
309884/Ί370
(Adressen 1622-1625) werden als Zwischenspeicher-Register von verschiedenen Routinen zur Anweisungsausführung nach Fig. benutzt. Acht Worte (Adressen 1630-1637) werden als zwei Gleitkommazahl-Zwischenspeicherregister von den Formel-Auswertungs-Routinen nach Fig. 8 benutzt. Die Adressen 1640-1677 enthalten 32 Worte, die von den Routinen zur Anweisungsausführung nach Fig. 8 benutzt werden. Acht Worte (Adressen 1744-1747 und 1754-175 7) werden als Arbeitsregister 11ARl11 und"AR2" mit je vier Worten eingesetzt, um binär kodierte dezimale Arithmetik durchzuführen. Zusätzliche acht Worte (Adressen 1740-1743 und 1750-1753) werden als Arbeits-Datenregister "X4,11 und "Y^11 eingesetzt, um die trigonometrischen Funktionen in Wirkung zu setzen. Diese sechzehn Worte (Adressen 1740-1757) werden als Zwischenspeicher-Register von allen Routinen nach Fig. 8 benutzt, mit Ausnahme der Routinen zur Anweisungsausführung und zur Formelauswertung. Ein "System-Subroutine^Stapelspeicher" von variabler Länge (Adressen 1760-1772) wird benutzt, um Rückkehradressen zu speichern, die von Programmen benötigt werden, welche"im ROM 80 gespeichert sind. Vier Worte (Adressen 1773-1776) werden benutzt, um das Ergebnis der letzten Tastenfeld-Rechnung zu speichern. Das letzte Wort in dem System-RWM (Adresse 1777) wird benutzt, um eine Hinweismarke zu speichern, welche die nächste verfügbare Platzierung für die Rückkehradresse des nächsten Subroutinen-Rufs innerhalb des Basissystemes anzeigt. Eine komplette Assemblersprachen-Beschreibung des System-RWM ist auf den Seiten 21-24 der Liste der Basissystemfirmware des Rechners enthalten.
Wie in dem Speicherbild der Figuren 4A-F und dem mehr detaillierten Speicherbild der Fig. 6 dargestellt ist, enthält der Benutzerabschnitt für Programm- und/oder Datenspeicherung des RWM 78 1760 für den Benutzer verfügbare Worte (Benutzeradressen 4O44O-43777) für die Speicherung von Programmen und/oder Daten, 20 für die Benutzung durch die Unterbrechungsroutine der Figuren 8 und 67A-B bestimmte Worte und 12 für die Benutzung
3 09884/137
durch einsteckbare ROM-Module verfügbare Worte. Zusätzliche 2048 Sechzehn-Bit-Wörte können für den Benutzer verfügbar gemacht werden (als Benutzeradresse 44000-47777).
Wie in dem Speicherbild der Figuren 4A-B gezeigt ist, enthält das Basis-ROM 80 außerdem 7680 Sechzehn-Bit-Worte, die sich von Adresse OOOO bis Adresse 1377, von Adresse 20OO bis· Adresse 16777 und von Adresse 4OOOO bis Adresse 40377 erstrecken. In diesen Teilen des ROM 80 sind Routinen und Subroutinen von Basisinstruktionen zur Durchführung, der grundsätzlichen Funktionen des Rechners sowie von diesen Routinen und Subroutinen verwendete Konstanten gespeichert. Zusätzliche 8192 Sechzehn-Bit-Worte des ROM können außerdem bei Adressen 20000-37777 in Schritten von 512 und 1024 Worten hinzugefügt werden. Dies wird einfach dadurch erreicht, daß einsteckbare ROM-Module 92 in hierfür im Rechner vorgesehene Aufnahmevorrichtungen eingesteckt werden, welche über eine Klappe in der linken Seltenwand des Rechnergehäuses zugänglich sind, wie in Fig. 1 dargestellt ist. Wenn ein einsteckbarer ROM-Modul 92 in eine dieser Aufnahmevorrichtungen eingesteckt wird, ragt eine mit einer gedruckten Schaltung versehene Abschlußplatte 96, die sich in dem einsteckbaren ROM-Modul befindet, in eine Kontaktleiste hinein, die innerhalb des Rechners befestigt ist. Ein schwenkbar am oberen Ende jedes einsteckbaren ROM-Moduls 92 angebrachter Handgriff erleichtert die Entfernung des einsteckbaren ROM-Moduls, nachdem dieser voll in eine der Aufnahmevorrichtungen eingeschoben worden ist.
In jedem einsteckbaren ROM-Modul 92 sind Routinen und Subroutinen von Basis-Instruktionen (und alle benötigten Konstanten) gespeichert, um den REchner zu befähigen, viele zusätzliche Funktionen durchzuführen. Der Benutzer selbst kann daher schnell und einfach den Rechner so anpassen, daß er viele an den speziellen Erfordernissen des Benutzers orientierte zusätzliche Funktionen durchführen kann, indem er einfach ROM-Module nach eigener Wahl
3 0988 4/1370
in den Rechner einsteckt. Hinzugefügte einsteckbare ROM-Module werden vom Rechner automatisch eingepaßt.
Das firmware-Arbeitsdiagramm des Rechners in Fig. 7 veranschaulicht die Grundkomponenten der Rechner-Firmware. Diese Komponenten enthalten Routinen, die im Rechner-ROM 80 enthalten sind und dazu dienen, die Definition des Rechners in Wirkung zu setzen. Zwischen den Routinen übergehende Kontrollinformation ist in der Zeichnung mit durchgezogenen Linien dargestellt.
In Fig. 7 ist gezeigt, daß die Hardware-Einheiten des Rechners durch im ROM 80 enthaltene Firmware-Routinen gesteuert werden. Diese Einheiten enthalten einen Ein-Aus-Hauptschalter 182, eine alphanumerische Tastenfeld-Eingabeeinheit 12, eine Anzeigeeinheit 18 und eine Lese- und Aufnahmeeinheit 14 für Magnetbandkassetten. Die Firmware-Routinen steuern auch einen externen Drucker 20, externe Lese- und Aufnahmeeinheiten 14 für Magnetbandkassetten und verschiedene andere externe Eingabe-Ausgabe-Geräte 244.
Der Betrieb des Rechners beginnt dadurch, daß der Ein-Aus-Schalter in die "ein"-Position gestellt wird. Auf diese Weise wird die interne Hardware des Rechners gezwungen, die in der Adresse 0000 des ROM 80 befindliche Instruktion auszuführen. Diese Instruktion leitet die Steuerung zur Start-Auf-Routine 200, die im Flußdiagramm der Fig. 33 gezeigt ist und im Einzelnen auf Seite 53 der Firmware-Auflistung des Basissystems beschrieben ist. Zweck dieser Routine ist es, das RWM 78 zu initialisieren, die Stapelspeicher-Hinweismarken-Adresse auf den Platz 1777 zu setzen, das numerische Ausgabeformat der Tastenfeld-Ausführung auf "gleiten 9M zu setzen, gewisse Variable im System-RWM-Bereich für späteren Gebrauch durch andere Firmware-Routinen zu initialisieren und die verschiedenen Lese-Schreib-Hinweismarken zu dem Benutzerbereich des RWM zu initialisieren, der im Detail
309884/137 0
in dem Speicherbild der Fig. 6 gezeigt ist.
Nach Komplettierung der Start-Auf-Routine geht die Steuerung zur Tastenfeld-Monitor-Routine 202 weiter, die in dem Flußdiagramm der Figuren 34A-D gezeigt ist und detailliert auf Seiten bis 56 der firmware-Auflistung des Basissystems beschrieben ist. Diese Routine initialisiert gewisse Variablen in dem System-RWM 78 für den Gebrauch durch die Tastenfeld-Eingabe-Routine 204. Sie gibt außerdem die automatische Zeilenzahl aus, falls erforderlich. Sie ruft dann nach einer Eingabe-Aufnahme von der Tastenfeld-Eingabe-Routine 204. Wenn die Tastenfeld-Eingabe-Routine mit einer Aufnahme zurückkehrt, sucht die Tastenfeld-Monitor-Routine die mnemoriischen Tabellen im Assemblersprachen-Programmbereich, der in Fig*. 6 gezeigt ist. Sie sucht dann die mnemonischen Tabellen in jedem der einsteckbaren ROM-Module der Fig. 4E und sucht schließlich die mnemonischen Tabellen des Hauptsystem-ROM 80. Eine komplette Assemblersprachen-Auflistung jede dieser Tabellen im ROM ist in den Firmware-Auflistungen gegeben. Die Subroutinen, die die Suche nach den mnemonischen Tabellen ausruhrcin, sind in den Flußdiagrammen der Figuren 35, 36 und 37 detailliert 'u sehen. Wenn ein Zusammenpassen zwischen den Zeichen der Eingangs-Aufnahme und irgendeiner der mneumotischen Tabellen gefunden worden ist, zweigt der Tastenfeld-Monitor durch eine Sprungtabelle zur passenden Syntax-Routine 210 zur Syntaxanalyse ab, wenn die Mnemonik eine Anweisung ist, oder zweigt über eine Sprungtabelle zur Ausführung ab, wenn die Mnemonik ein Systembefehl ist. Eine getrennte Syntax-Analyse-Routine ist für jede Anweisung vorgesehen, und eine getrennte Ausführungs-Routine ist für jeden Systembefehl vorgesehen. Syntax- und Ausführungs-Routinen für Anweisungen und Befehle auf einem wahlweisen ROM-Modul sind in der Firmware des Moduls enthalten. Der Assemblersprachen-Programmbereich wird in gleicher Weise gehandhabt, wie der einsteckbare ROM-Modul. Wenn keine Mnemonik gefunden wird, wird die Steuerung zur Syntax-Routine für impliziertes LET durchgelassen.
3 09884/1370
Die Tastenfeld-Eingabe-Routine 204 ist in den Flußdiagraminen der Figuren 38A-G, 39A-B und 40-43 detailliert dargestellt. Sie ruft die Anzeige-Erneuerungs-Routine 206, um die Anzeige 18, die eine einzelne Zeile mit 32 Zeichen wiedergibt, zwischen den Tasteneingaben zu erneuern. Die Anzeige-Erneuerungs-Fmitine ist auf Seite 35 der Firmware-Auflistung detailliert dargestellt. Wenn über das alphanumerische Tastenfeld 12 eine Taste eingeaeben wird, bewirkt die Unterbrechungsschaltung, daß der Rechner ä^e Instruktion bei Adresse 00002 ausführt. Diese Instruktion bewirkt ,einen Sprung zur Unterbrechungsroutine 208, die detailliert im Flußdiagramm der Figuren 67A-B und auf Seiten 149-150 der Firnv/are-Auflistung dargestellt ist. Die Unterbrechungs-Routine 208 bewahrt den Tasten-Kode in einer Speicherposition des System-RWM 78 und kehrt zurück. Die Tastenfeld-Eingabe-Routine 204 liest dieses Speicherwort und entscheidet, welche Operationen für diesen speziellen Tasten-Kode durchgeführt werden müssen. Das Schiebe-Bit wird vom Tasten-Kode abgezogen und als Marke in einer zeitweiligen Position im System-RfoM 78 gespeichert. Wenn die Taste verlangt, daß ein mnemonischer Name angezeigt werden soll, wird der in Figuren 5A-B gezeigte Einzelzeilen-Anzeigepuffer gelöscht, und der mnemonische Name, wird eingegeben. Wenn eine Aufbereitungsfunktion verlangt wird, wird eine Routine gerufen, um die Aufbereitungsfunktion durchzuführen. Wenn eine Benutzer-Definierbare Taste fO-f9 gegeben worden ist, wird die Routine 228 für Benutzer-Definierbare Tasten berufen. Wenn eine alphanumerische Taste gegeben worden ist, wird die Schiebemarke (groß-/klein- Umschaltniarke) im RWM 78 geprüft, und, wenn die Verschiebung (Umschaltung) gegeben worden ist, wird der Tasten-Kcde in den Kode für die umgeschaltete Taste umgewandelt. Dann wird der Tastenkode in den in Figuren 5A-B gezeigten Einzelzeilen-Anzeige-Puffer eingeführt, entweder am Zeilenende oder an der Stellung der Positionsanzeigemarke, wenn die Positionsanzeigeinarke sich innerhalb der Zeile befindet.
Die Routinen 228 für benutzer-definierbare Tasten führen die speziellen Operationen für die Tasten fO-f9 durch. Sie sind
309884/1370
detailliert in den Flußdiagrammen der Figuren 49A-F und auf Seiten 43-47 der Firmware-Auflistung dargestellt.
Die Syntax-Routinen 210 übersetzen die Zeichen der Eingangs-Aufnahme in ein internes Format, das von den Ausführungs-Routinen leichter gehandhabt werden kann. Wenn sich ein Syntaxfehler eingeschlichen hat, wird eine Steuerung zur Fehler-Routine 238 durchgelassen, die eine Fehlermeldung ausgibt. Die Fehlerroutine ist in dem Flußdiagramm der Fig. 45 und in der Firmware-Auflistung auf Seiten 58 und 59 dargestellt. Wenn kein Fehler gefunden wird, wird die Steuerung entweder zur Speicher-Leitroutine 236, wenn die Anweisung im Speicher gespeichert werden soll, oder zu der Routine für die Initialisierung für die Tastenfeld-Ausführung durchgelassen, wenn die Anweisung auszuführen ist. Die Speicher-Leitroutinen sind in den Flußdiagrammen der Figuren 46A-D, 47 und 48 sowie auf Seiten 16 und 6O-62 der Firmware-Auflistung dargestellt. Die Routine 23O für die Initialisierung für Tastenfeld-Ausführung dient dazu, die im Speicherbild der Fig. 6 gezeigten Ablaufzeit-Stapelspeicher zu initialisieren. Diese Routine ist detailliert in dem Flußdiagramm der Fig. 5OC und auf Seiten 103-104 der Firmware-Auflistung dargestellt.
Wenn das RUN-(Ablauf)Kommando gegeben worden ist, oder wenn die INIT-Taste betätigt worden ist, wird die Steuerung zu den Vor-Ausführungs-Verarbeitungsroutinen 232 durchgelassen. Diese Routinen sind detailliert auf Seiten 65-77 der Firmware-Auflistung dargestellt. Sie dienen dazu, die Symboltabelle und nicht gemeinsame Werttabellenbereiche des in Fig. 6 gezeigten Benutzer-RWM zu initialisieren.
Als nächstes wird die Steuerung zum Ausführungs-Monitor 214 durchgelassen, der detailliert im Flußdiagramm der Figuren 50A-B und auf Seiten 1O2-1O4 der Firmware-Auflistung dargestellt ist. Diese Routine initialisiert die Ablaufzeit-
309884/1370
Stapelspeicher im Benutzer-RWM der Fig. 6 und setzt die Ausführung eines gespeicherten Programms, beginnend bei der vom Benutzer gegebenen Zeilennummer, in Gang. Nachdem jede Anweisung ausgeführt worden ist, kehrt- die Steuerung zum Ausführungs-Monitor zurück, der die Zeilennummer der nächsten Zeile druckt, wenn das Programm im Verfolgungsbetrieb ausgeführt wird. Schritt-, Stop- oder Fehlerbedingungen werden geprüft, und die Programmausführung wird beendet, wenn irgendwelche dieser Bedingungen vorliegen. Wenn die Programmausführung fortgesetzt werden soll, wird die Sprungadresse der Ausführungs-Routine für die nächste Programmanweisung berechnet, und die Kontrolle wird zu dieser Routine durchgelassen.
Verschiedene der Anweisungs-Ausführungs-Routinen 240 erfordern die Auswertung von arithmetischen Funktionen und Ausdrücken. Dies wird in den Formel-Auswertungs-Routinen 242 bewirkt. Verschiedene der Anweisungs-Ausführungs-Routinen 24Ο benötigen die fin ja.be von oder die Ausgabe nach verschiedenen externen Eingaba-Ausgabe-Geräten 20 und 244. Dies wird dadurch bewirkt, daß die Standard-Au^gahe-Ansteuerung 224 oder eine wahlweise, spezielle I/O-Ansteuernng 234 gerufen wird. Verschiedene der Anweisungs-Äusführungs-'Routinen erfordern die Eingabe von oder die Ausgabe nach einer internen oder externen Bandkassetten-Einheü 14. Dias geschieht dadurch, daß die Bandkassetten-Ansteuerungen 226 gerufen werden. Die Anweisungs-Ausführungs-Routinen für die Anweisungen, die mit den Bandkassetten-Einheiten zusammengehören, sind detailliert in den Flußdiagrammen der Figuren 51-65 und auf Seiten 142-168 der Firmware-Auflistung dargestellt.
Die Listen-Routine 220 wird benutzt, wenn gespeicherte Programme entweder auf der Einzelzeilen-Anseige 18 oder auf einem externen ASCII-Ausgabegerät 20 aufgelistet werden. Die Listen-Routine ist detailliert auf Seiten 78-8 2 eier Firmware-Auflistung dargestellt. Ihre Funktion ist es, das gespeicherte Programm
309884/137
aus dem intern gespeicherten Format in ein String von ASCII-Zeichen zu übersetzen, das gedruckt oder angezeigt werden
kann. Um eine Zeile von übersetzten Zeichen zu drucken, ruft die Listen-Routine die Standard-Ausgabe-Ansteuerung 242, die detailliert in Fig. 44E und auf Seiten 2O und 33 der Firmware-Auflistung dargestellt ist.
Detaillierte Assemblersprachen-Information bezüglich aller
hier beschriebenen Firmware-Routinten und -Subroutinen kann
erhalten werden, indem das Speicherbild der Figuren 4A-F und die Basissystem-Firmware-Auflistung herangezogen werden, die weiter unten in dieser Beschreibung enthalten sind.
Die Kommunikation mit den Routinen in den verschiedenen einsteckbaren ROM-Modulen wird über eine Serie von mnemonischen Tabellen und Sprungtabellen bewerkstelligt. Die Standard-Firmware, die Kassettenbetriebs-Firmware und jeder der einsteckbaren ROM-Module enthalten alle die folgenden Tabellen:
(1) eine menmonische Anweisungstabelle
(2) eine Anweisungs-Syntax-Spi. jngtabelle
(3) eine Anweisungs-Ausführungs-Sprungtabelle
(4) eine mnemonische Systembefehle-Tabelle
(5) eine Systembefehls-Äusführungs-Sprungtabelle
(6) eine mnemonische Funktionstabelle
(7) eine Funktions-Ausführungs-Sprungtabelle
(8) eine mnemonische Nicht-Formel-Operator-Tabelle
Alle diese Tabellen, mit Ausnahme der Anweisungs-Ausführungs-Sprungtabelle, können an beliebiger Stelle innerhalb eines
Speichermoduls erscheinen. Die letzten fünf Worte in jedem
Modul werden von den Tabellen-Abtast-Routinen der Figuren 35-37 benutzt, um die tatsächliche Platzierung der Tabellen aufzufinden. Das letzte Wort jedes Moduls enthält ein einheitliches Operationskodewort für diesen speziellen Modul. Das zweitletzte
309884/1370
Wort enthält eine relative Adresse der mnemonischen Anweisungstabelle. Das drittletzte Wort enthält eine relative Adresse der mnemonischen Systembefehlstabelle. Das viertletzte Wort enthält eine relative Adresse der mnemonischen Funktionstabelle. Das fünfletzte Wort enthält eine relative Adresse der Nicht-Formel-Operatortabelle. Die Sprungtabellen für Anweisungs-Syntax, Systembefehlsausführung und Funktionsausführung sind unmittelbar oberhalb ihrer entsprechenden mnemonischen Tabellen platziert. Die Anweisungs-Ausführungs-Sprungtabelle ist unmittelbar oberhalb des fünfJLetzten Wortes jedes Moduls platziert. Der komplette Tabellensatz für die Standard-Firmware ist in der Firmware-Auflistung auf Seiten 48-49, 97-98, 125 und 135 gezeigt.
Jede der mnemonischen Tabellen besteht aus einem String von Sieben-Bit-ASCII-Zeichen und Sechs-Bit-Arbeits-Kode-Zeichen, gepackt als zwei Zeichen pro Sechzehn-Bit-Wort. Das achte Bit jedes Zeichens wird benutzt, um anzuzeigen, ob dieses Zeichen ASCII oder ein Operator-Kode ist. Eine Null im achten Bit zeigt ASCII an, während eine Eins einen Operations-Kode anzeigt. Das siebente Bit jedes Operations-Kode-Zeichens wird benutzt, um anzuzeigen, ob dieser Operationskode das letzte Zeichen in dieser Tabelle ist. Die Sprungtabellen-Adresse für jede Mnemonik wird dadurch gefunden, daß der Operations-Kode für diese Mnemonik von der Startadresse der zugeordneten mnemonischen Tabelle abgezogen wird. Das intern gespeicherte Format für Programmanweisungen besteht aus einer Serie von Operations-Kodes, Operanden-Kodes und anderen speziellen Kodes. Das erste Wort jeder Anweisung enthält die Zeilennummer dieser Anweisung in binärem Format. Das zweite Wort enthält sowohl den Operations-Kode für diese spezielle Anweisungs-Mnemonik als auch die Länge der Anweisung. Die Längeninformation wird von verschiedenen Firmware-Routinen benutzt, um sich von einer Anweisung zur nächsten weiterzutasten. Das dritte Wort enthält den Operations-Kode für die TAbelle oder den wahlweisen ROM-Modul und enthält
309884/ 1370
außerdem den ersten Operanden-Kode. Der Rest der Anweisung ist mit einem Operator-Kode und einem Operanden-Kode in jedem Wort gespeichert.
Formel-Operations-Kodes von der Tabelle auf Seite 126 der firmware-Auflistung und mnemonische Operations-Kodes sind in einem Fünf-Bit-Feld, Bits 1O-14, gespeichert. Die Operanden-Kodes sind'in zwei Fünf-Bit-Feldern gespeichert. Bits 5-9 werden benutzt, um den Operandennamen zu speichern. Der Name besteht aus einem ASCII-Buchstaben, A-Z, dessen sechstes und siebentes Bit entfernt ist. Zum Beispiel ist der· ASCII-Kode für A ΐΟΟΟΟΟί,ιιηα der Fünf-Bit-Operanden-Kode für A ist OOOOl. Bits 0-4 werden benutzt, um den Operandentyp zu speichern. Bit 15 wird als spezielles Marken-Bit benutzt. Wenn Bit 15 gesetzt ist, wird das Operanden-Feld anders interpretiert, als wenn es nicht gesetzt ist. Die folgende Tabelle zeigt die verschiedenen Operandentypen und die speziellen Kodes.
309884/1370
Operandentyp-Kode
OOOOO OOOOl OOOIO 00011
00100 00101 00110
01000 01001 OIOIO
10000 10001 10010 10011 10100 10101 10110 10111 11000 11001
Operandentyp (Bit 15=0)
Variable mit voller Genauigkeit
Einfache Variable Feld von 1 Dimension Feld von 2 Dimensionen
Feld von unbekannter Dimension
Variablen mit gespaltener Präzision
Einfache Variable Feld von 1 Dimension Feld von 2 Dimensionen
Variable mit Ganzzahl-Genauigkeit
Einfache Variable Feld von 1 Dimension Feld von 2 Dimensionen
Variable mit voller Genauigkeit
Von Ziffer gefolgter Buchstäbe
0 1 2 3 4 5 6 7 8 9 Bedeutung wenn Bit 15=1
Konstante folgt im nächsten Wort
Festkomma-Dezimalzahl Gleitkomma-Dezimalzahl
Binäre Ganzzahl
Binäre Zeilenzahl
11110
Hill
String-Variable
Benutzer-definierte Funktion
Bits 5-9 enthal den Operations-Kode einer Funktion im ROI
30988 4/1370
Als Beispiel ist in der untenstehenden Tabelle das intern gespeicherte Format für die folgenden Anweisungen gezeigt:
10 DIM A [5j
20 LET B=C+FND(E)
30 GOTO 100
15 14-10 4-5 4-0
O ■ ooooo ooooo 01010
0 OOOIO ooooo 00111
0 01010 OOOOl 00001
1 10100 ooooo 00011
0 ooooo ooooo 00101
0 OOIOI ooooo ooooo
0 ooooo ooooo 10100
20 10110 ooooo 00111
0 01010 OOOIO ooooo
0 OOlll OOOll ooooo
0 01001 00100 Hill
O 10101 00101 ooooo
0 OOIOO ooooo ooooo
0 ooooo ooooo 11110
0 0Ol 10 ooooo OOIOO
1 01010 ooooo 00100
0 ooooo 00011 OOIOO
DIM Qg-8ode — Länge Tabelle OP-Kode — A Dimension [ — Ganzzahl folgt
J -- Null-Operand
LET OP-Kode — Länge Tabelle OP-Kode — B = — C + — FND ( — E ) — Null-Jperand
GOTO OP-Kode — Länge Tabelle OP-Kode — Ganzzahl folgt
309884/1370
TAS TENFELD-OPERATIONEN
Alle durch den Rechner ausgeführten Operationen können durch die Tastenfeld-Eingabeeinheit und /oder durch Tasten-Kodes gesteuert und inganggesetzt werden, welche in den Rechner von der Tastenfeld-Eingabeeinheit, der Lese- und Aufnahmeeinheit für Magnetbandkassetten oder von peripheren Einheiten aus, wie zum Beispiel dem Kartenleser, eingegeben und als Progranuuschritte im Programmspeicherabschnitt des RWM gespeichert worden sind. Es wird daher nun eine Beschreibung der Arbeitsweise der Tastenfeld-Eingabeeinheit gegeben, wobei speziell auf die perspektivische Ansicht des Rechners in Fig. 1 und die Draufsicht auf das Tastenfeld in Fig. 8 Bezug genommen wird, es sei denn, daß etwas anderes angezeigt ist.
Netzschalter
Ein Ein-Aus-Netzschalter 182, der als Teil der Tastenfeld-Eingabeeinheit betrachtet werden kann, steuert die Energiezufuhr zum Rechner und somit die Ingangsetzung des Steuersignals POP vom Netzteil.
Wie in Fig. 2 dargestellt ist, kann der Rechner mit 24O, 220, 120 oder*100 Volt +5%, -10% betrieben werden, was durch ein Paar von Netzspannungs-Wahlschaltern eingestellt werden kann, die an der Rückwand 34 des Rechnergehäuses montiert sind. Der Rechner kann bei einer Netzfrequenz zwischen 48 und 66 Hz betrieben werden. Der Rechner ist mit einer 6-Ampere-Sicherung und entweder einer 1-Ampere-Sicherung für den Betrieb an einer Netzspannung von 220 oder 24O Volt +5%, -10% oder einer 2-Ampere-Sicherung für den Betrieb an einer Netzspannung von 100 oder Volt +5%, -1O% versehen. Er ist weiterhin mit einem Dreileiter-Netzkabel 184 versehen, welches, wenn in eine passende Wechselstrom-Steckdose gesteckt, das Rechnergehäuse erdet. Der maximale Leistungsverbrauch des Rechners ist 150 VA. Aus den
309884/1370
2333308
Wechselstrom-Steckdosen 42, die für periphere Einheiten vorgesehen sind, kann nicht mehr als 61O VA entnommen werden.
EXECUTE (Ausführen)
Die EXECUTE-(Ausführungs-)Taste (im folgenden auch oft als EXEC bezeichnet) führt, wenn gedrückt die zuvor eingetasteten angezeigten Operationen aus, falls welche vorhanden sind, und zeigt das Resultat aller arithmetischen Anweisungen auf der 32-Zeichen-Anzeige an. (Obwohl die Anzeige nur für 32 Zeichen ist, kann eine 80-Zeichen-Zeile eingetastet werden, wobei sowohl für Programme als auch für Tastenfeld-Operationen ein automatischer Durchlauf stattfindet.) Die meisten Tasten bewirken, Wenn sie gedrückt werden, daß ihre Mnemonik angezeigt wird. Wenn jedoch gewisse Tasten gedrückt werden, zum Beispiel PRT ALL (alles drucken) (diese Taste wird später diskutiert), wird eine spezielle Betriebsart in Wirkung gesetzt und zwar solange, bis diese Betriebsart überholt ist.
FIXED N, FLOAT N (festes N, gleitendes N)
Unmittelbar entweder nach Einschaltung oder nach SCRATCH EXEC (Löschen Ausführen) wird der Benutzerbereich des ROM gelöscht; Numerische Berechnungen, die ausgeführt werden, werden in "Gleitender Neunernotierung" angezeigt. Die Werte 2 und 12 erscheinen in "Gleitender Neunernotierung" als 2.OOOOOOÖOOE+OO bzw. 1.2OOOOOOOOE+O1. "Gleitende Neun" bezieht sich auf die 9 auf den Dezimalpunkt (,) folgenden Ziffern; E bedeutet χ IO potenziert mit den zwei auf das E folgenden Ziffern.
Zur Beachtung
In diesem Text werden die einzelnen Tastenoperationen durch Unterstreichen identifiziert; zum Beispiel _3 + 2 EXEC. (Auf dem Anzeigefeld erscheint 5.OOOOOOOOOE+OO.)
309884/1370
2333308
-5O-
Die gewünschte Notierung kann spezifiziert werden durch Drücken von FIXED N oder FLOAT N gefolgt von der passenden Zahl von Null bis elf. Das gewählte "N" gibt die Zahl der nach der Ausführung rechts vom Dezimalpunkt wiederzugebenden Ziffern an.
Beispiel:
FIXED N J
dann 1 2 3 4 5-6Λ 7 EXEC, wiedergegeben wird 123456.7000000 oder 123 4 5678^12345678S EXEC, wiedergegeben wird 123456789.123ΟΟΟΟ-9
FLOAT N 5 EXEC
dann 1 2 3Λ 4 EXEC, wiedergegeben wird 1.234OOE+O2 oder ^123.AIaI EXEC, wiedergegeben wird 1.23457Β-Ο1+-ή
■tf Die Maschine rechnet auf 12 wesentliche Ziffern, ohne Rücksicht auf die Länge der Anzeige.
++) Da rechts vom Dezimalpunkt nur fünf Ziffern angez3.gt werden können, ist die fünfte Ziffer gerundet.
In fixed-n-Notierung wird links vom Dezimalpunkt ein Maximum von 12 Ziffern angezeigt? oberhalb dieses Wertes geht der Rechner zur float-n-Notierung über, wobei die Zahl der rechts vom Dezimalpunkt angezeigten Ziffern durch das spezielle fixed-n festgelegt ist.
Die TAsten FIXED N und FLOAT N sind nicht programmierbar? das bedeutet, daß sie nur ia Tastenfeld-Operationen benutzt werden können. Ausgabe-Formatierung unter Programmsteuerung wird durch eine Formatanweisung bewerkstelligt, was weiter unten diskutiert wird.
309884/1370
Der Rechenbereich des Rechners reicht von
üb
^99
QQ QQ _qq
-9,99999999999 x IO über -IO ; 0; und 10 bis 9,99999999999 χ 10'
CLEAR, DELETE LINE (Löschen, Zeile herausnehmen)
Drücken von CtEAR oder DELETE LINE löscht alles, was vorher während Tastenfeld-Operationen angezeigt worden ist. Durch Drücken einer dieser Tasten erscheint ein |~— (liegendes T) ganz links auf der Anzeige, wodurch angezeigt wird, daß der Rechner für neue Eingaben verfügbar ist. Der Unterschied zwischen den beiden Tasten tritt zutage, wenn eine gespeicherte Programmzeile angezeigt wird; DELETE LINE löscht die Zeile aus dem gespeicherten Programm, während CLEAR nur die Anzeige löscht, ohne das Programm selbst anzugreifen. (Eine Programmzeile kann auch dadurch gelöscht werden, äaß die Zeilennummer, gefolgt von END OF LINE (Zeilenende) eingetastet wird.)
RECALL (Zurückrufen)
Drücken von RECALL während Tastenfeld-Operationen ruft die letzte ausgeführte Zeile zur Anzeige zurück. Drücken von RECALL während Programm-Eingabe-Operationen ruft die letzte eingegebene Programmzeile in die Anzeige zurück. Falls' auf der Anzeige eine Fehlermeldung erscheint, wenn ein Versuch gemacht wird, entweder, eine Zeile im Tastenfeldbetrieb auszuführen oder eine Programmzeile in den Speicher einzugeben, ermöglicht das Drücken von RECALL die Wiedersichtbarmachung der Originalzeile für Aufbereitungszwecke .
RESULT (Ergebnis)
Drücken von CLEAR RESULT EXEC zeigt den numerischen Wert der letzten arithmetischen Anweisung an, die ausgeführt worden ist.
309884/1370
Die RESULT-Taste erlaubt nicht nur den Rückblick auf das Ergebnis der vorher ausgeführten Anweisung, sondern kann auch als ein "Akkumulator" während arithmetischer Operationen wirken, zum Beispiel indem gedrückt wird:
2 + j4 EXEC (in FIXED 2-Notierung) Wiedergabe 6.00, indem dann gedrückt wird
3 + RESULT EXEC Wiedergabe 9.00, indem dann gedrück wird _4 + RESULT + RESULT EXEC Wiedergabe 22.00.
Eintasten von R E J3 oder R E E5 U L T hat die gleiche Wirkung, als wenn die RESULT-Taste gedrückt wird.
PRINT ALL (Alles Drucken)
Durch Drücken von PRINT ALL kann festgelegt werden, ob der Rechner sich im "Alles Drucken"-Betrieb befindet oder nicht. Wenn ON erscheint, werden sowohl der Ausdruck als auch das Resultat von jeder ausgeführten Berechnung ausgedruckt, und zwar auf jedem beliebigen Druck-Gerät, das in den Rachner eingesteckt ist; wenn OFF erscheint, erscheint die Information nur auf der Anzeige. Wird die PRINT ALL-Taste ein zweites Mal gedrückt, kommt die alternative Betriebsart zur Wirkung. Im "Alles Drucken"-Betrieb wird jede Programmanweisung gedruckt, wenn END OF LINE gedrückt wird. Alle Fehlermeldungen werden ebenfalls gedruckt.
BACK, FORWARD, INSERT (Zurück, Vor, Einfügen)
Die BACK- und FORWARD-Tasteii können benutzt werden, um Ausdrücke auf der Anzeige aufzubereiten. Aufeinanderfolgendes Niederdrücken der BACK-Taste bewegt eine biink&nde Positions-Anzeigemarke zu der gewünschten Stellung innerhalb der Anzeige. Eine Aufbareitung kann dann an dieser Stellung durchgeführt werden. Die FQRWARD-Tasta führt die gleichen Funktionen wie die BACK-Ti?ste aus, jedoch in entgegengesetzter Richtung.
3 0 9 8 8 4/1370
An der Stellung der blinkenden Positionshinweismarke, können folgende Aufbereitungen vorgenommen werden:
1. Ein Zeichen kann eingefügt werden, indem INSERT gedruckt wird. (Dadurch wird ein freier Raum links von der Positionsanzeigemarke eröffnet, worauf die Positionsanzeigemarke auf den Platz des Zwischenraums geht; weiteres Niederdrücken der INSERT-Taste öffnet weitere Zwischenräume, wobei sich die Positionsanzeigemarke jeweils selbsttätig zum am weitesten links befindlichen Zwischenraum bewegt. Auf diese Weise können mehr als ein Zeichen zwischendurch eingefügt werden.)
2. Ein Zeichen kann geändert werden, indem es mit einem anderen Zeichen überschrieben wird.
3. Ein Zeichen kann herausgenommen werden, indem entweder die Abstandstaste oder SHIFT INSERT gedrückt wird, wobei der einzige Unterschied darin besteht, daß das Drücken von SHIFT INSERT den durch das herausgenommene Zeichen entstandenen Abstand schließt.
Wird BACK oder FORWARD für etwa 1,5 see. gedrückt gehalten, bewegt sich die Positionsanzeigemarke in schneller Folge in der gewählten Richtung.
Sobald eine Zeile passend aufbereitet ist, kann sie unmittelbar ausgeführt werden, ohne daß die Positionsanzeigemarke ans Ende der Zeile bewegt wird.
Wenn eine Zeile mit mehr als 32 Zeichen (maximal 80 Zeichen) eingegeben wird, wird das links auf der Anzeige befindliche Zeichen aus dem Anzeigebereich herausgeschoben, um Platz für
309884/1370
— ••53' b- —
zusätzliche Zeichen zu schaffen. Um den Beginn der Eingabe sichtbar zu machen, wird der nach rechts zeigende Pfeil gedrückt; diese Operation bewegt die Zeichen in der Anzeige nach rechts. Drücken des nach links zeigenden Pfeiles bewirkt die entgegengesetzte Operation. Jede Pfeil-Taste wiederholt ihre Operation in schneller Folge, wenn sie für etwa 1,5 see. niedergedrückt gehalten wird.
ARITHMETIK
Es gibt fünf grundsätzliche numerische Operatoren: addieren (+), subtrahieren (-) , multiplizieren (*·) , dividieren (/) und potenzieren (f). Die Rangordnung der Ausführung, bekannt als Hierarchie, ist identisch mit der weiter unten beschriebenen BASIC-Hierarchie. Die BASIC-Funktionen, die weiter unten beschrieben sind, sind auf dem Rechner verfügbar, indem einfach in den passeneden Mnemoniks eingetastet wird. Zusätzlich kann der Wert'/Γ erhalten werden, indem P I eingetastet wird.
Wenn mit trigonometrischen Funktionen gerechnet wird, nimmt der Rechner den Winkel in Bogenmaß an, sofern nichts anderes festgesetzt ist. Um einen Winkel entweder in Grad oder in Neugrad (rechter Winkel 100 ) auszudrücken, wird zunächst die Anzeige gelöscht und dann entweder DEG EXEC oder GRAD EXEC gedrückt. Dann wird der Ausdruck eingetastet. Um wieder in Bogenmaß umzuwandeln, wird die Anzeige gelöscht und dann RAD EXEC gedrückt. Bogenmaß, Grad und Neugrad sind auch programmierbare Befehle.
VARIABLE
Die einfachen "Skalaretf Variablen sind A bis Z und AO bis Z9 (insgesamt 286). Einfache Variable können in Tastenfeld-Operationen benutzt werden; wird zum Beispiel A v_3 = J BXEC gedrückt, so wird A3 der Wert 7 zugeordnet. Sofern dann der Wert von A3 nicht geändert oder aus dem Speicher gelöscht wird, wird nach
309884/1370
Drücken von Ji *■ A _3 EXEC die Zahl 28 angezeigt. Wenn eine Variable Undefiniert ist, führt jeder Versuch, diese .Variable in einem Ausdruck zu benutzen, zu einer Fehlermeldung. (Anders wenn ihr ein Wert zugeordnet ist.)
Ein Feld ist eine geordnete Ansammlung von numerischen Daten. Eine (indizierte) Feldvariable kann entweder eine oder zwei Dimensionen haben, wie durch die Indizes angezeigt, die als in Klammern gesetzte Zahlen dargestellt sind. A(m) ist ein eindimensionales Feld (oder Spaltenvektor) wobei m die Zeile des Elementes anzeigt; A(m,n) ist ein zweidimensionales Feld, wobei m die Zeile und η die Spalte des Elementes bezeichnet.
Die maximale Größe eines Feldes wird durch den verfügbaren Speicher des Rechners begrenzt. Bei normalerweise zwölfstelliger Genauigkeit ist infolge der effektiven Speicherbegrenzung ungefähr ein (30, 3O)-FeId möglich.
Auf Felder sollte entweder in einer gemeinsamen Anweisung oder in einer Dimensionsanweisung bezug genommen werden, bevor sie in einem Programm benützt werden; anderenfalls schneidet das Programm ein einfach indiziertes Feld auf ein 10-Element-Feld bzw.. ein doppelt indiziertes Feld auf ein (10 zu lO)-Felddb,
BANDKASSETTEN
Der vorliegende Rechner kann mit zehn Bandkassetten betrieben werden; eine Kassette ist verfügbar über das eingebaute (interne) Kassettenlaufwerk. Vier periphere Kassettenlaufwerke können über die vier I/O-Schlitze in der Rückwand unmittelbar an den Rechner angeschlossen werden.
Weitere fünf periphere Kassettenlaufwerke können hinzugefügt werden, wenn der Benutzer eine Eingangs- Ausgangs-Erweiterungsbox besitzt. (Insgesamt können mit Hilfe einer Erweiterungsbox 11 periphere Geräte zusätzlich angeschlossen werden).
30988W 1 370
SYNTAX
Die BandkassettenBefehle haben allgemeine syntaktische Regeln, die kurz beschrieben werden sollen. Die allgemeine Befehlsform ist mit kleinen Variationen:
COMMAND [UNIT] [file] oder _ Befehl [eINHEIt] [DATEi] oder COMMAND [UNIT] (file) LLNX1 [lNxJ J Befehl [EINHEIT] (DATEi)
[LNX1 [LNX2L]
Eckige Klammern bedeuten, daß die eingeschlossene Information wahlweise ist; runde Klammern bedeuten, daß die eingeschlossene Information mit dem speziellen Befehl benötigt wird.
COMMAND -
Die verschiedenen Befehle werden im einzelnen diskutiert werden.
Individuelle Einheiten werden durch das Zahlenzeichen, #, gefolgt von dem Auswahl-Kode; die interne Kassette ist mit η 10 bezeichnet (wenn kein Auswahl-Kode gegeben ist, wird die interne Kassette angenommen) ; die neuen peripheren Kassetten sind durch * 1 bis #9 identifiziert.
Dateien innerhalb der individuellen Kassetten werden durch Datei-Nummern identifiziert; wenn keine Datei durch eine Zahl identifiziert ist, wird die Notizblock-Datei (nicht erfüllte Datei), Datei 0, angenommen.
bedeutet die Anfangszeilennummer, die durch den Befehl angegriffen werden soll. bedeutet entweder die Zeilennummer, bei der die Programmausführung im Anschluß an die Befehlswirkung beginnen soll, oder die Endzeilannummer, zu der in dem Befehl Zugriff genommen werden soll. In jedem Befehl, dessen Syntax LNX und LNX„ erlaubt, muß LNX. spezifiziert worden sein». ι;λ· LNX- zuweisen zu können.
309884/13/n
— β D —
Alle den Befehl folgende Eingabe-Informationen müssen durch Kommata getrennt werden.
Im Tastenfeldbetrieb wird EXEC nach Erfüllung der Syntax-Erfordernisse eines speziellen Befehls gedrückt, um den Befehl zur Wirkung kommen zu lassen.
VORBEREITUNG EINER NEUEN KASSETTE
Um eine neue Kassette vorzubereiten (eine die keine Markierung hat), wird zunächst die Kassettenklappe geöffnet, indem auf den Knopf ganz rechts auf dem Tastenfeld gedrückt wird. Dann wird die Kassette'(Druckseite oben) in den in die Klappe eingebauten Schlitz eingeführt. Man muß sich vergewissern, daß das Band auf der linken Spindel aufgewickelt ist. Falls dies nicht der Fall ist, man jedoch diese Seite der Kassette auf jeden Fall vorbereiten will, wird einfach die Klappe geschlossen und REWIND (Rückspulen) gedrückt.
Um in der Kassette Informationen zu speichern, werden zunächst die zu benutzenden Dateien markiert.
PROGRAMMIERBARE BEFEHLE
Die folgenden Bandkassettenbefehle sind programmierbar: markieren, speichern, laden, mischen, Taste speichern, Taste laden, Daten speichern, Daten laden, Binärzahlen laden, rückspulen, auffinden und Bandliste.Diese Befehle können auch im Tastenfeldbetrieb benutzt werden. Andererseits kann der Sicherungsbefehl nur im Tastenfeldbetrieb benutzt werden.
MARK (Markieren)
Der Markierbefehl erzeugt die gewünschte Anzahl von und definiert die Datei -Längen (durch die Anzahl der 16-Bit-Worte pro Datei) .
309884/1370
Syntax: MARK [unit] (No. of FILES) (LENGTH)
MARKIEREN [eINHEIt] (Dateinummer) (LÄNGE) Beispiel: M A R K # 22j.1j.1222 exec " da das Einheitszeichen β 10 die interne Kassette definiert, ist es überflüssig, es einzuschließen; die "5" zeigt die Zahl der verfügbar zu machenden Dateien an; die "1000" bezeichnet die Zahl der 16-Bit-Worte pro Datei.
Aufeinanderfolgende Dateien auf dem Band können mit verschiedenen Wortlängen markiert werden, wie im folgenden Beispiel gezeigt wird: MARK 2j_ 1000 EXEC dann MARK 2j_ 2000 EXEC markiert Dateien. 0, 1, 2 der internen Kassette mit Längen von 1000 Worten und markiert Dateien 3, 4 derselben Kassette mit Längen von 200 Worten.
Die Länge einer Datei kann geändert werden; jedoch greift ihre Änderung alle auf sie folgenden Dateien durch Entstellung ihrer .Inhalte an. Um die Länge einer speziellen Datei zu ändern, wird zunächst die Kassette auf diese Datei durch Benutzung von FIND (FIND wird weiter unten eingehender diskutiert) gestellt; dann wird die Datei mit der gewünschten Länge markiert. Beispiel: Um Datei 12 der internen Kassette mit 1000 Worten
zu markieren, wird gedrückt
FIND 1_2 EXEC und dann
MARK \j_ 1000 EXEC .
Um vorher noch nicht markierte Dateien (jungfräuliche Dateien) zu markieren, wird zunächst TLIST durchgeführt; TLIST wird später eingehend diskutiert; zunächst genügt es lediglich zu wissen, daß TLIST [UNITj EXEC alle markierten Dateien auflistet. Um jungfräuliche Dateien zu markieren, ist es zunächst notwendig, die letzte in TLIST+)aufgelistete Datei zu markieren.
+) Die Zahl der Datei, auf die in TLIST Bezug genommen wird, ist immer eine mehr als die durch den Benutzer markierte Zahl.
309884/1370
Wie zuvor diskutiert, wird diese Datei durch den FIND-Befehl lokalisiert. Beginnend mit dieser Datei können aufeinanderfolgende jungfräuliche Datei mit den zuvor diskutierten Methoden markiert werden.
Um den Bandanfang zu markieren, ist sicherzustellen, daß das Band komplett zurückgespult ist.
STORE (Speichern)
Der Speicherbefehl nimmt die Programmzeilennummern im RWM und gibt sie zum vorgegebenen Platz auf dem Band, wo sie gesichert werden.
Syntax: STORE QjN1Ti CFIL^i oder SPEICHERN JEINHEIt) fr>atei] STORE (UNIT] (FILE) UNX1 [LNXp ]
SPEICHERN [EINHEIT] (Datei)
Beispiel:
STORE |2 x 3 EXEC: Auswahl-Kode #2 legt fest, welche Kassette dem Zugriff ausgesetzt ist; das Programm wird dann auf dieser Kassette in Datei Nummer 3 gespeichert.
In den Speicherbefehlen werden LNX1 und LNX_ benutzt, um einen Teil des Programms zu speichern: LNX1 spezifiziert die zu speichernde Anfangszeilennummer; LNX„ spezifiziert die zu speichernde Endzeilennummer. Wenn LNX2 nicht spezifiziert ist, wird angenommen, daß die letzte zu speichernde Zeile diejenige Zeile des Programms mit der höchsten Zeilenzahl ist.
Damit LNX2 gegeben werden kann, ist es immer notwendig, LNX-, zu ihaben; dies gilt für jeden Kassetten-Befehl. Zusätzlich muß immer, wenn LNX1 gegeben werden soll, die dem Zugriff ausgesetzte Datei identifiziert werden;
309884/1370
- 99 -
Beispiel:
STORE 3j_ 60 j_ 150 EXEC; Datei 3 der internen Kassette ist plaziert; Programmzeilen 60 bis 150 im Speicher werden dann in Datei 3 gespeichert.
Zur Beachtung:
Sobald eine Kassette markiert worden ist, kann zu jeder markierten Datei Zugriff genommen werden, indem deren zugeordnete Dateinummer in einem Befehl gegeben wird; sind zum Beispiel fünf Dateien markiert, kann Information in Dateil 4 gespeichert werden, selbst wenn Datei-3 eine jungfräuliche (leere) Datei ist, indem STORE £ EXEC gedrückt wird.
LOAD, LINK (Laden, Verbinden)
Der Ladebefehl nimmt ein in einer Kassette gespeichertes Programm und setzt es in den Speicherbereich.
Syntax: LOAD [UNIT] [fILeJ oder LADEN [eINHEIt] [dATEi]
LOAD [UNIT] (FILE) LLNX1 [lNxJ-J LADEN [eINHEIt] (oATElfr
Beispiel: ,
LOAD EXEC nimmt an, daß die Vernachlässigungs-Datei (Datei 0) der internen Kassette in den Rechner geladen werden soll; jedes vorher im 983OA-Speicher befindliche Programm wird gelöscht.
LOAD 5 j_ 40 Λ K) EXEC plaziert Datei 5 auf die interne Kassette; das gesamte Programm auf dieser Datei wird neu numeriert, beginnend bei Zeile Nr. 40, und dann wird das Programm in den Speicher geladen; die Programmausführung wird bei Zeilennuromer inganggesetzt. Alle bei Zeile 40 beginnenden Programmzeilenzahlen,
309884/1370
. 64
die zuvor im Speicher waren, werden gelöscht und durch das Programm ersetzt, das geladen wird; wenn der Speicher vorher Zeilennummern 10, 20, 30 hatte, behält er sie.
Sowohl im Lade- als auch im Mischungs-Befehl kann die Benutzung von LNX, und LNX2 verschiedene Ergebnisse haben. Regeln zur Vorhersage der Ergebnisse werden am Schluß der Diskussion des Mischungs-Befehls gegeben.
Wird in der vorstehenden Syntax LOAD durch LINK ersetzt, kann der Benutzer den Verbindungs-Befehl in Wirkung setzen. Dieser Befehl arbeitet genauso wie der Lade-Befehl, mit einer Ausnahme: wenn während der Programmausführung eine Ladeanweisung angetroffen wird, funktioniert der Rechner so, als wenn RUN EXEC gedrückt worden wäre, d.h. die alte Symboltabelle wird zerstört, und eine neue Symboltabelle wird aufgebaut; wenn andererseits ein Verbindungs-Befehl angetroffen wird, arbeitet der Rechner, als wenn CONT EXEC gedrückt worden wäre, d.h. alle Variablen behalten ihre vorherigen Werte.
MERGE (Mischen)
Der Misch-Befehl versucht, Programm-Zeilennummern von der Kassette zu holen und sie im Lese/Schreib-Speicher vor das zur Zeit dort befindliche Programm, zwischen aufeinanderfolgende Zeilennummern im zur Zeit dort befindlichen Programm oder hinter das zur Zeit dort befindliche Programm zu stellen. Wenn jedoch irgendeine Zeilennummer des einzugebenden Programms zu einer Zeilennummer paßt die sich zur Zeit im Programm befindet, entsteht ein Fehler. Zusätzlich tritt ein Fehler auf, wenn die Zeilennummern von zwei Programmen miteinander verflocheten sind, zum Beispiel wenn das zur Zeit im Speicher befindliche Programm Zeilennummern 10, 20, 30, 40 und das damit zu mischende Programm Zeilennummern 15, 25, hat. Der Misch-Befehl erzeugt dann eine Fehlermeldung, die auch
309884/1370
dann auftritt, wenn keine zwei Zeilennummern zueinander passen.
MISCHEN [EINHEIqj JeATEI ] MISCHEN [EINHEIT] (DATEI )
Syntax: MERGE (UNIT} [fil^ oder
MERGE (UNIT] (FILE)
Beispiel:
MERGE ±2 _£ 1 j. 200, 100 EXEC - Datei 1 der Kassette mit Auswahlkode #2 wird platziert; das gesamte Programm auf dieser Detail wird neu numeriert beginnend bei Zeilennummer 200 (LNX,) und wird dann mit dem zur Zeit im Speicher befindlichen Programm kombiniert. Nach dem Wirksam^werden des Befehls beginnt die Programmausführung bei Zeilennummer 100 (LNX„).
Sowohl der Misch- als auch der Lade-Befehl können benutzt werden, um Programme im Lese/Schreib-Register zu stapeln. Der Hauptunterschied zwischen den beiden Befehlen ist folgender: LOAD löscht die vorher im Speicher befindlichen Zeilenzahlen aas, beginnend beim zugewiesenen LNX,; andererseits hält MERGE alle zuvor im 983OA-Speicher befindlichen Zeilenzahlen fest.
Sowohl beim Lade- als auch beim Misch-Befehl sind LNX1 und vorhersagbar. Ohne Rücksicht auf die Betriebsart numeriert LNX, die Programm-Zeilenzahlen der dem Zugriff ausgesetzten Datei derart neu, daß sie bei LNX, beginnen; der Abstand zwischen aufeinanderfolgenden Zeilennummern bleibt der gleiche; alle GO T0-Anweisungen usw. werden passend abgeändert, damit sie sich auf die neuen Zeilennummern beziehen; dieses Programm wird dann in den Benutzer-Speicher geladen.
Im Programmbetrieb:
Wenn LNX3 gegeben ist, wird die Programmausführung bei LNX2 fortgesetzt.
309884/1370
2. · Wenn LNX2 nicht gegeben ist, wird die Programmaus-
führung entweder bei der nächst höheren Zeilennummer des Originalprogramms oder bei LNX, fortgesetzt, je nachdem welche zuerst kommt.
Im Tastenfeldbetrieb:
1. Wenn LNX_ gegeben ist, beginnt die Programmausführung bei LNX2.
2. Wenn LNX_ nicht gegeben ist, hält der Rechner an, nachdem das Programm hineingeladen ist.
STORE KEY, LOAD KEY (Taste speichern, Taste laden)
Der "Taste speichern"-Befehl nimmt alle Benutzer-definierbaren Tasten (linker oberer Bereich auf dem Tastenfeld), die definiert worden sind und gibt sie auf eine Kassetten-Datei die als eine Tastendatei bezeichnet werden kann.
Der"Taste laden"-Befehl nimmt die Benutzer definierbare Information der Kassette und gibt sie so in den Speicher, daß jede Ben-utzer-definierbare Taste die gleiche Operation ausführt, die sie vorher ausführte, bevor sie auf dem Band gespeichert war.
Syntax: STORE KEY [üNITJ (FILE) TASTE SPEICHERN [EINHEIT] (Datei) LOAD KEY OJNIT] (FILE) TASTE LADEN IfIINHEI1O (Datei)
Zwischen den Worten STORE und KEY sowie den Worten LOAD und KEY kann willkürlich ein Abstand gelassen werden. Im allgemeinen ignoriert die BASIC-Sprache der Anmelderin leere Zwischenräume (ausgenommen natürlich in einem Quotenfeld, wo jedes Zeichen und jeder Abstand verdoppelt ist) .
309884/1370
7 3 ί λ j η 8
STORE DATA, LOAD DATA (Daten speichern, Daten laden)
Der "Daten speichern"-Befehl nimmt einen Datenblock vom Speicher und gibt ihn auf eine Kassette. Normalerweise können bei Benutzung dieses Befehls nur Felder gespeichert werden; wenn jedoch im Befehl kein Feld spezifiziert ist, können alle Daten in der Speicherblockanweisung des Programms gespeichert werden. Der Rechner erlaubt sowohl die Verwendung von einfachen Varablen als auch von Feldern in der Speicherblockanweisung; in der Tat kann die Speicherblockanweisung einfache Variablen, Feldvariablen, Ganzzahlfelder und -variablen sowie gespaltene Felder und Variablen annehmen+).
+) Die Speicherblockanweisung wirkt wie eine Dimensionsanweisung mit dem zusätzlichen Merkmal, daß die gemeinsamen Daten von Programm zu Programm bewahrt werden.
Der "Daten laden'V-Befehl nimmt die Daten, die zuvor in einer Kassetten-Datei gespeichert waren, und lädt sie in den Hauptspeicher. Wenn ein Feld gespeichert worden ist, muß LOAD DATA ein Feld spezifizieren;wenn LOAD DATA kein Feld spezifiziert, entsteht ein Fehler. Wenn andererseits der gemeinsame Bereich von dem "Daten laden"-Befehl wiedergefunden wird, kann in diesem Fall in dem Befehl kein spezielles Feld spezifiziert werden, damit kein Fehler auftritt.
Syntax: STORE DATA [UNIT] (FILE) JARRAY]
DATEN SPEICHERN [EINHEIT) (Datei ) [FELQ) LOAD DATA JUNItJ (FILE) jÄRRAYj
DATEN LADEN [EINHEIT] (Datei ) (FELd|
Beispiel:
STORE DATA j> x B EXEC platziert Datei 6 auf die interne Kassette; dann wird das B-Feld im laufenden Programm in dieser Datei gespeichert. (Eine einfache Variable kann in dieser Weise
309884/ 1 370
ORIGINAL INSPECTED
nicht gespeichert werden.)
LOADDATA j> j. B EXEC kann dann das B-Feld wieder auffinden und es in den Speicher laden, wann immer es benötigt wird; der folgende Befehl könnte auch gegeben werden:
LOADDATA jj _£. C EXEC; dies würde das B-Feld wieder auffinden und es in den Speicher an den Platz des C-Feldes laden, vorausgesetzt, daß B und C die gleichen Abmessungen haben und vom gleichen Typ sind.
Es sei angenommen, daß die Speicherblockanweisung in einem Programm folgendermaßen aussieht: 1 COM A(8) , B(5,5), D3, E.
Drücken von STORE DATA 2 EXEC speichert alle Variablen der Speicherblockanweisung in Datei 2 der internen Kassette. Sowohl die Feldvariablen als auch die einfachen Variablen werden durch Drücken von LOAD DATA 2 EXEC wieder aufgefunden.
Drücken von LOAD DATA 2 j_ A EXEC ist nicht erlaubt und verursacht einen Fehler, da kein spezielles Feld aus einer Datei wieder aufgefunden werden kann, wenn es gemeinsam gespeichert war.
Bei allen "Datenspeichern"- und "Daten laden"-Befehlen muß die Datei identifiziert werden, zu der Zugriff genommen werden soll, auch wenn es die vernachläßigte Datei (Datei 0) ist.
LOAD BIN (Binär laden)
Der "Binär laden"-Befehl übergibt binäre Information - Assemblersprachenprogramm - von der Kassette an den Benutzerspeicher. Das Assemblersprachenprogramm kann eine Systemdiagnostik, eine Eingabe- Ausgabe-Subroutine oder ein simulierter "Wahlblock" sein, der zur Durchführung einer speziellen Funktion vorgesehen ist.
309884/1370
Das Assemblersprachenprogramm kann nicht aufgelistet oder angezeigt werden.
Syntax: LOAD BIN [üNIt] (FILE) BINÄR LADEN [eINHEIt] (DATEI) Zur Beachtung:
Dateien auf Kassetten werden bezeichnet als: Programmdateien, Tastendateien, Datendateien oder binäre Dateien. Wenn ein Versuch gemacht wird, von einer speziellen Datei zu laden und der Ladebefehl die Dateibezeichnung unrichtig identifiziert, tritt ein Fehler auf; wird zum Beispiel, wenn Datei 1 eine Programmdatei ist, LOAD KEY·1 EXEC gedrückt, wird das Erscheinen einer Fehlermeldung bewirkt.
REWIND (Rückspulen)
Durch'Drücken der Rückspultaste, die auf der rechten Seite des Tastenfeldes angeordnet ist, wird die interne Bandkassette sofort bis zum klaren Vorspannband zurückgespult.
Um eine andere Kassette zurückzuspulen, muß R E_ W I^ N D eingetastet werden, gefolgt von dem Auswahlkode der speziellen Kassette. (Die interne Kassette kann auch zurückgespult werden, indem R E W I N D EXEC eingetastet wird.)
REWIND muß eingetastet werden, wenn der Befehl im Programmbetrieb benutzt werden soll.
Syntax: REWIND [uNItJ RÜCKSPULEN [EINHEIT.]
Beispiel:
REW_IND#2 EXEC spult die Kassette mit dem Auswahlkode # 2 zurück.
309884/1370
FIND (Auffinden)
Der Auffindebefehl (bereits in Verbindung mit dem Markierungsbefehl erwähnt) wird benutzt, um eine spezielle Datei zu lokalisieren. Während die Kassette nach der Dateinummer sucht, erscheint auf der Anzeige ein liegendes T. Während dieses Intervalls sucht die Kassette unter unterbrochener Steuerung, wodurch die Steuerung des Rechner-Tastenfeldes zum Benutzer zurückkehrt. Dieses Merkmal erlaubt die Ausführung eines Teils eines großen Programms, während ein anderer Teil gerade aufgefunden wird. Dadurch wird die Zugriffszeit verbessert.
Wenn die spezifizierte Datei gefunden ist, hält die Kassette an.
Syntax: FIND JÜNIt] (FILE) AUFFINDEN (EINHEIT) (Datei) Beispiel:
FIND2 λ. Ά EXEC bewirkt, daß die Kassette mit dem Auswahlkode f3 sucht, bis Dateinummer 2 lokalisiert worden ist.
Beginnend mit der derzeitigen Bandstellung liest dieses Programm alle aufeinanderfolgenden Datei Identifizierer und druckt jede Datei betreffende Informationen aus.
Syntax: TLIST UNIT TLIST EINHEIT
Die Information für jede Datei auf der festgelegten Kassette wird auf einer Zeile ausgedruckt. Es sind keine Spaltenüberschriften zur Identifizierung der Informationen in jeder Zeile vorgesehen; die angenommenen Überschriften sind:
30988Λ/1370
Datei No. Datei Typ Absolute Tatsächliche Progr.Zeilen No. Gem.Bereich (Kode No.) Dateigröße Dateigröße (Anfang) (Ende) (in Worten) (in Worten) (in Worten) (LNX1) (LNX3)
Die Dateitypen identifizierenden !Codenummern sind folgende:
1 binär
2 Daten
3 Programm (Quelle)
4 Taste
Zusätzlich erscheint/ wenn die Datei . gesichert ist, die Zahl 2 vor der Kodenummer (gilt nur für binäre, Quellen- und Tastendatei) ; erscheint zum Beispiel "24" in der zweiten Spalte, so ist die Detail eine gesicherte Tastendetail.
Wenn eine Datei eine Datendatei ist, ist LNX1 überflüssig; in diesem Fall bedeuten die Daten in dieser Spalte:
0 volle Genauigkeit
1 gespaltene Genauigkeit
2 Ganzzahl Genauigkeit
3 gemeinsam
Wenn die Datei keine Programmdatei ist, enthalten die beiden letzten Spalten keine Information.
NICHT-PROGRAMMIERBARE BEFEHLE SECURE (Sichern)
Dieser Befehl ermöglicht es, Programmzeilen vor potentiellen Benutzern geheim zu halten; das bedeutet, daß das Programm jemand anderem gegeben werden kann und daß diese Person es laden und ablaufen lassen kann, jedoch keine Möglichkeit hat, bestimmte Programmzeilen zum Zwecke der Sichtbarmachung abzurufen, und das Programm nicht auf irgendeiner anderen Kassetten-Datei
30988A/ 1
speichern kann.
Ein Versuch, eine gesicherte Programmzeile abzurufen, führt dazu, daß auf der Anzeige die Zeilennummer gefolgt von einem * erscheint; Versuche, das Programm aufzulisten, führt dazu, daß die Nummern der gesicherten Zeilen erscheinen, gefolgt von einem *.
Wenn irgendwelche Zeilen in einem Programm gesichert sind, wird das gesamte Programm als gesichert betrachtet; das bedeutet, daß, sogar wenn gewisse Programmanweisungen sichtbar sind, nichts von dem Programm auf eine andere Kassetten-Datei reproduziert werden kann.
Syntax: SEC [LNXi [LNX2Tj oder SECURE
Es ist daher möglich, spezielle Zeilen innerhalb eines Programms 2u sichern; zum Beispiel sichert das Niederdrücken von SEC 30 j_ j30 EXEC gefolgt von STORE 2 EXEC die Zeilen 30 bis 80 des Programms im Speicher und speichert dann sowohl die gesicherten als auch die ungesicherten Teile des Programms in Datei 2 der internen Kassette.
Wenn ein Programm anfänglich gesichert ist, kann es immer noch auf so viele Dateien wie nötig reproduziert werden; sobald jedoch das Programm aus dem Speicher gelöscht worden ist, kann es auf keine Kassette mehr reproduziert werden (obwohl es zurück in den Speicher geladen werden kann).
Wenn Programmzeilen gesichert sind, arbeitet der gesamte Rechner im gesicherten Betrieb. Daher sollte der Benutzer, nachdem das gesicherte Programm weggespeichert ist, SCRATCH A drücken, bevor andere Programme eingegeben werden, um Fehler bezüglich gesicherter Programme zu vermeiden.
Benutzer-definierbare Tasten (wenn sie nicht als Druckhilfen
309884/ 1370
benutzt werden) können auch gesichert werden. Es wird einfach FETCH (spezielle Taste) SEC EXEC gedrückt, und die ausgewählte Taste ist gesichert.
Zur Beachtung:
Um die Information auf einer bestimmten Kassette zu schützen, wird eine der oben an der Kassette befindlichen Laschen abqebrochen; dadurch wird die Kassette für weitere Speicherung ungzugänglich.
PROGRAMMIERUNG
Die Programmiersprache des Rechners ist mit kleinen Abweichungen BASIC, wie unten beschrieben.
Instruktionen an den Rechner innerhalb eines Programms werden durch Programmanweisungen (Statements) vorgesehen. Jede Anweisung in BASIC hat eine zugeordnete Zeilennummer, die im ganz linken Teil der Anweisung erscheinen muß.+) Anweisungs-Zeilenzahlen erscheinen in ansteigender Ordnung, wobei die größtmögliche Zeilenzahl 9999 ist.
+) Die Länge einer Anweisung, einschließlich Zeilennummer und angemessene Abstände, kann bis zu 80 Zeichen betragen.
Eine Programmanweisung, die richtig eingetastet worden ist, kann im Lese/Schreib-Speicher gespeichert werden, indem die Endzeilentaste END OF LINE (EOL) gedrückt wird. Diese Taste befindet sich in einem Bereich, der der Taste "Wagenrücklauf/ Zeile voll" auf einer Fernschreib-Tastatur entspricht.
Wie bereits erwähnt worden ist, können Anweisungs-Zeilennummern automatisch eingegeben werden. In seiner einfachsten Form be-
309884/1370
7333908
wirkt das Niederdrücken von AUTO # EXEC, daß die Zeilenzahl unmittelbar auf der Anzeige erscheint und a-uf eine Programmanweisung wartet. Die Zeilennummern von zusätzlichen Anweisungen haben ansteigende Ordnung mit einem Zwischenraum von zehn zwischen aufeinanderfolgenden Zeilennummern. Die AUTO =| (AUTO)-Syntax und-die folgenden Beispiele geben einige der Alternativen bei automatischer Zeilennumerierung an.
Syntax: AUTO 4 JLNX1 [Ab st an 3^3
LNX1 ist die automatisch einzugebende Anfangszeilenzahl; der gewünschte Abstand zwischen den Zeilen kann dann eingegeben werden, wenn LNX, gegeben ist. Wenn kein Abstand angegeben wird, wird ein Abstand von IO angenommen.
Beispiel: AUTO # _30 EXEC AUTO 4 12 x _2 EXEC AUTO =♦ EXEC
30 40 10
40 42 20
50 44 30
t ι »
t I ·
f I '
Wenn AUTO f= gedrückt wird, erscheint auf der Anzeige AUTO. Zur Beachtung:
Obwohl die Tasten zum Löschen und zum Herausnehmen von Zeilen (CLEAR und DELETE LINE) bereits diskutiert worden sind, sei noch folgendes angemerkt. Wenn eine Programmzeile, die gerade eingetastet wird, als völlig unakzeptabel erkannt wird (nicht wert, durch Benutzung der Aufbereitungstasten gerettet zu werden) kann sie durch Benutzung der Tasten CLEAR oder DELETE LINE ausgelöscht werden. Wenn jedoch die Programmzeilennummern automatisch eingegeben worden sind, löscht das Drücken von CLEAR nicht nur die gesamte Anzeige, sondern beseitigt auch den AUTO f -Betrieb, während Drücken von DELETE LINE nur die Programmanweisung löscht, ohne die Zeilennümmer selbst anzugreifen.
3098 8 Wl 37 0
PROGRAMMSICHTüNG
Es bestehen zwei Möglichkeiten, ein gerade im Speicher befindliches Programm zu sichten:
1. Auflistung auf einem Druckgerät.
2. Zeile bei Zeile in die Anzeige geben. LIST (Auflisten)
Der Auflistbefehl hat zwei spezielle Anwendungen: er kann benutzt werden, um eine vollständige Programmauflistung im Lese-Schreib-Register vorzusehen, oder er kann benutzt werden, um das für Eingaben verfügbare Lese- Schreib-Register anzuzeigen; Beispiel:
LIST EXEC listet auf dem Standard-Druckgerät des
Benutzers alle im Speicher befindlichen Programmzeilen auf.
LIST jK3 EXEC listet auf dem Peripheriegerät mit dem
Auswahlkode 4=3 alle im Speicher befindlichen Programmzeilen auf.
LIST 9999» EXEC bewirkt, daß die Anzahl der im Speicher verfügbaren 16-Bit-Worte angezeigt wird.
Wenn eine spezielle Programmzeile in der Anzeige ist, wird nach niederdrücken von > (Pfeil nach unten) die Programmzeile mit der nächst höheren Nummer angezeigt+λ andererseits wird durch niederdrücken von ΐ (Pfeil nach oben) die Programmzeile mit der nächst niedrigeren Nummer angezeigt. Wenn gerade eine Programmzeile in
+J Es ist zu beachten, daß, wenn eine Zeile mehr als 32 Zeichen hat, die ersten 32 Zeichen angezeigt werden; durch Drücken von «. kann der Rest der Zeile sichtbar gemacht werden, da die Anzeige nach links rollt. Am Zeilenende erscheint f— .
30988A/ 1 370
der Anzeige ist, wird nach niederdrücken von 4-die bezüglich der zuletzt angezeigten Zeile nächst höhere Zeile angezeigt, während durch "> die nächst niedrigere Zeile angezeigt wird.
FETCH (Abrufen)
Zusätzlich zur Sichtung eines Programms Zeile bei Zeile können bestimmte Programmzeilen unmittelbar zur Anzeige gebracht werden, indem der Abrufbefehl benutzt wird.
Syntax: FETCH [LNX1I ABRUFEN
Dabei ist LNX1 die spezielle abzurufende Zeilennummer.
Beispiel:
FETCH EXEC zeigt immer die Programmzeile mit der niedrigsten Nummer an.
FETCH 300 EXEC zeigt Zeile 300 an, wenn sie existiert; wenn Zeile 300 nicht verfügbar ist (und andere Zeilen höherer Nummern vorhanden sind), wird die als nächste über 300 liegende Zeile angezeigt; wenn keine Zeilennummern über 300 vorhanden sind, wird die im Speicher verfügbare Zeile mit der höchsten Nummer angezeigt.
PROGRAMMAUFBEREITUNG
Jede angezeigte Programmzeile kann durch Benutzung der Tasten BACK, FORWARD und INSERT (zurück; vor und einfügen) aufbereitet werden.
Die bereits diskutierte Rückruftaste (RECALL) braucht nur kurz erwähnt zu werden. Eine Programmzeile wird eingetastet; wenn auf der Anzeige eine Fehlanmeldung erscheint, wenn EOL gedrückt wird, kann die Programmzeile durch Drücken von RECALL wieder sichtbar gemacht werden. Die Programmzeile kann dann in passender Weise
309884/1370
aufbereitet werden. Die vorher eingegebene Zeile kann immer durch drücken von RECALL zurückgerufen werden, egal ob ein Fehler erschienen ist oder nicht.
CLEAR und DELETE LINE sind bereits eingehend diskutiert worden. Es bestehen jedoch, um es zu wiederholen, zwei Methoden, um eine gerade im Speicher befindliche Programmzeile zu löschen:
1. Wenn die Zeile sich gerade in der Anzeige befindet, löscht sie das Drücken von DELETE LINE aus dem Speicher (CLEAR löscht nur die Anzeige)..
2. Jede im Speicher befindliche Zeile kann sofort herausgenommen werden, indem die passende Zeilennummer gefolgt von EOL eingetastet wird.
DELETE (Herausnehmen)
Der Herausnahmebefehl (zu unterscheiden von DELETE LINE) kann Programmzeilen selektiv herausnehmen.
Syntax: DELETE (LXX1 [LNX2]I oder DEL ^LNX1 [XNX^-1
Dabei ist LNX, die erste herauszunehmende Zeile und LNXj die letzte herauszunehmende Zeile.
Beispiel:
DELETE EXEC nimmt alle Programmzeilen heraus; DELETE ^O EXEC nimmt alle Anweisungen beginnend bei Zeile Nr. heraus;
DELETE 50 ^ BO EXEC nimmt alle Zeilen von Nummer 50 bis Nummer heraus.
309884/ 1370
SCRATCH (Löschen)
Mittels des SCRATCH-Befehls kann eine Vielfalt von Dingen aus dem Speicher "ausradiert" werden.
Beispiel:
SCRATCH EXEC löscht alle Programmzeilen und Variablen;
SCRATCH A EXEC streicht alles aus dem Speicher - Programmzeilen , Benutzer-definierbare Tasten, Variablen (identisch mit Abschaltung und nachträglicher Einschaltung des Rechners) ;
SCRATCH K EXEC streicht alle Benutzer-definierbaren Tasten
(Benutzer-definierbare Tasten werden später diskutiert werden);
SCRATCH V EXEC streicht alle Variablen; streicht;
SCRATCH (spezielle Benutzer-definierbare Taste) fdie
spezielle gedrückte Benutzer—definierbare Taste Drücken von EXEC ist in diesem Fall nicht erforderlich.
SCRATCH kann dadurch erreicht werden, daß entweder die sieben Buchstaben eingetastet werden oder daß SCRATCH gedrückt wird.
RENUMBER (Neu numerieren)
Der "Neu numerieren"-Befehl nimmt alle Programmzeilennummern und numeriert sie neu.
Syntax: RENUMBER [LNX, [SPACING]] oder REN JLNX, CSPACINGQ
Abstand Abstand
Dabei ist LNX, die neue Zeilennummer der ersten Programmanweisung, während "Abstand" der Abstand zwischen aufeinanderfolgenden Zeilennummern gemeint ist.
Beispiel:
REN EXEC numeriert alle Anweisungen um, indem die erste Anweisung die Nummer "10" bekommt und zwischen den Anweisungen ein Abstand von IO hergestellt wird;
309884/1370
RENUMBER J3O BXEC numeriert die erste Anweisung in "30" um, wobei zwischen den Anweisungen ein Abstand von 10 erzeugt
wird;
REN ^5 j_ ^O EXEC numeriert die erste Anweisung "45" um, wobei zwischen aufeinanderfolgenden Anweisungen ein Abstand von 20 erzeugt wird.
Alle Anweisungen im Programm, die sich auf andere Zeilennummern beziehen, werden durch den "Neu numerieren"-Befehl passend korrigiert; zum Beispiel wird GO TO 80 so korrigiert, daß es sich auf die Teile bezieht, die an die Stelle von Zeile 80 getreten ist.
PROGRAMMKORREKTUR NORMAL, TRACE (Normal, Verfolgen)
Die Verfolgungstaste kann benutzt werden, um die Reihenfolge der Ausführung der Anweisungen für ein Programm zu bestimmen, das gerade läuft. Niederdrücken dieser Taste (TRACE) während der Programmausführung bewirkt, daß die Zeilennummern in der Reihenfolge gedruckt werden, in der zu ihnen Zugriff genommen wird; wird dann NORMAL gedrückt, kehrt der Rechner in den Normalbetrieb zurück. Dementsprechend sind während eines laufenden Programms sowohl TRACE und NORMAL Tasten für sofortige Ausführung.
Wenn kein Programm abläuft, ist es für den Wechsel zwischen Verfolgungs- und Normalbetrieb erforderlich, die passende Taste und dann EXEC zu drücken. Der Verfolgungsbetrieb kann derart eingestellt werden, daß spezielle Zeilennummern verfolgt werden.
Syntax: TRACE [LNX1 [ LNX3]J
Dabei ist LNX1 die erste zu ve-rfolgende Zeilennummer, und LNX ist die letzte zu verfolgende Zeilennummer.
3 0988 /+/1370
Beispiel:
TRACE 20 EXEC verfolgt, beginnend bei Zeilennummer 20, wenn das Programm läuft.
TRACE 50 _£ jjO EXEC verfolgt, beginnend bei Zeilennummer 50 und endend bei Zeilennummer 60, jedes Mal, wenn diese Zeilennummern im Programm ausgeführt werden.
Der Stopbefehl kann eine Anweisung innerhalb eines Programms sein (wird später diskutiert), und kann als Korrekturwerkzeug benutzt werden.
Als Korrekturwerkzeug ist STOP äußert wertvoll. Ein ablaufendes Programm kann zu jeder Zeit durch Drücken von STOP angehalten werden (die laufende Zeilennummer des Programms wird angezeigt). Wenn dann irgendwelche Programmzeilen aufbereitet werden, muß das Programm noch einmal vom Anfang an ablaufen, wobei die Ablauftaste RUN benutzt wird. WSnn keine Aufbereitung durchgeführt worden ist, kann das Programm dort fortfahren, wo es unterbrochen worden ist, indem die Fortsetzungstaste CONT gedrückt wird (wird später detailliert erklärt).
Während ein Programm angehalten ist, können die Werte von Variablen geprüft werden, um festzustellen, ob das Programm das tut, was es soll; zum Beispiel bestimmt Drücken von A EXEC den gegenwärtigen Wert der einfachen Variable A.
Während ein Programm angehalten ist, kann STOP+/ eine andere Punktion haben. Drücken von STOP läßt auf der Anzeige STOP er-
+) Wenn eine Taste nicht als Taste für sofortige Ausführung benutzt wird, ist es im allgemeinen gleichgültig, ob die Taste selbst gedrückt wird oder ob die auf ihr stehenden Buchstaben individuell eingetastet werden.
30988 4/1370
scheinen; werden dann entweder eine Zeilennununer oder zwei durch ein Komma voneinander getrennte' Zeilennummern eingetastet so bedeutet dies, daß der Rechner mit der Programmausführung bei diesen Zeilennummern anhalten soll. Drücken von CONT EXEC startet dann die Programmausführung; wird zum Beispiel STOP JIO EXEC und dann CONT EXEC oder RUN EXEC gedrückt, so bewirkt dies, daß das Programm bei Zeile Nummer 80 anhält. Sobald ein Programm unter diesen Bedingungen abläuft, gibt es einen Weg, zur normalen Programmausführung zurückzukehren: nachdem das Programm angehalten hat, wird STOP EXEC gedrückt und dann CONT EXEC. Das Programm hält dann nicht mehr bei der gegebenen Zeilennummer an.
STEP (Schritt)
Nachdem ein Programm durch einen Stopbefehl angehalten worden ist, kann die Ausführung durch Drücken von STEP wieder fortgesetzt werden. STEP bewirkt immer sofortige Ausführung; es bewirkt, daß das Programm die passende Anweisung ausführt und dann anhält. Daher kann jede Anweisung nach ihrer Ausführung geprüft werden, um sicherzustellen, daß sie die verlangte Funktion ausgeführt hat. Wenn eine spezielle Funktion als befriedigend betrachtet worden'ist, kann entweder CONT oder STEP gedrückt werden; CONT führt den Rest des Programms aus, während STEP nur die nä.chste Programmanweisung ausführt.
RUN, CONTINUE (Ablaufen, Fortsetzen)
Drücken von RUN EXEC bewirkt, daß ein Programm mit der Ausführung bei der ersten Anweisung beginnt, ohne Rücksicht darauf, ob das Programm zuvor durch einen Stopbefehl angehalten worden ist; wenn das Programm durch einen Stopbefehl angehalten worden ist, wird durch Drücken von CONT EXEC die Programmausführung dort begonnen, wo es zuvor angehalten worden ist.
309884/1370
Wie bereits angemerkt worden ist, wird die Programmausführung, wenn ein Programm nach anhalten aufbereitet worden ist, bei der ersten Zeile wieder ingang gesetzt, wenn RUN EXEC+J gedrückt wird. Wenn jedoch während des Anhaltens die Werte von Variablen geändert werden, oder wenn andere intern programmierte Bedingungen geändert werden, muß CONT EXEC gedrückt werden, um diese neu eingestellten Bedingungen intakt zu halten. Die folgenden Dinge können beim Programm getan werden, während es angehalten ist, wenn das Programm nach Komplettierung durch Drücken von CONT EXEC ausgeführt wird:
1. Variablen können geändert werden; zum Beispiel wird durch B = _5 EXEC die einfache Variable B gleich 5 gesetzt.
2. Winkeleinheiten in trigonometrischen Funktionen können in Bogenmaß, Grad oder Neugrad geändert werden, je nach den Forderungen des Benutzers; zum Beispiel werden durch PEG EXEC alle Winkel in Grad angenommen.
3. Schreib-, Druck- und Anzeigeanweisungen können vom Tastenfeld aus eingegeben werden (diese Anweisungen werden später diskutiert).
4. Die Daten-Hinweismarke, die die nächste zu treffende Dateneinheit anzeigt, kann auf" den Beginn der Daten zurückgestellt werden, indem R E £5 T 0 R E EXEC gedrückt wird.
5. Das Programm kann zu einer speziellen Anweisung gehen und dort für die Ausführung verfügbar sein; zum Beispiel setzt GO TO 80 EXEC den Programmzeilenzähler auf 80 für schrittweise oder kontinuierliche Ausführung. (Wenn bei Zeile Nummer 80 kontinuierliche Ausführung erwünscht ist, kann der "kontinuierlich"-Befehl benutzt werden, der weiter unten diskutiert wird.) IF ... THEN (wenn ... dann) kann auch eine spezielle Zeilennummer zugänglich machen.
6. Alle Rfechner-Tastenfeld-Anweisungen können ausgeführt werden.
+) Der Ingangsetzungsbefehl, der später diskutiert wird, ist auch rechtmäßig.
309884/1 370
Ein angehaltenes Programm kann beginnend bei jeder beliebigen Zeilennummer ausgeführt werden, wenn der Fortsetzungsbefehl benutzt wird; zum Beispiel wird durch CONT 95 EXEC die Ausführung beginnend bei Zeilennummer 95 fortgesetzt.
Ein Programm kann man bei jeder beliebigen Zeilennummer beginnend ablaufen lassen; zum Beispiel beginnt die Programmausführung nach Drücken von RUN 110 EXEC bei Zeile Nummer 110.
Zur Beachtung:
Der Hauptunterschied zwischen RUN und CONT besteht darin, daß RUN alle Variablen im Programm initialisiert und zu allen normalen Programmbetriebsarten zurückkehrt, während CONT weder irgendwelche Variablen angreift noch irgendwelche laufenden Programmbetriebsarten angreift.
PROGRAMMANWEISUNGEN (STATEMENTS)
Wie in BASIC ist LET A = 6 eine erlaubte Anweisung; es ist jedoch a,uch die stillschweigende LET-Anweisung erlaubt. Dementsprechend ist A = 6 das gleiche wie LET A = 6.
GO TO, GO SUB
Die Anweisungen GO TO und GO SUB sind die gleichen wie in BASIC; jedoch hat jede Anweisung ein zusätzliches Merkmal, genannt berechnetes GO TO bzw. berechnetes GO SUB. In beiden Fällen wird ein Ausdruck ausgewählt, und der gerundete Ganzzahlwert des Ausdrucks wird bestimmt; die Ganzzahl wirkt dann als Hinweismarke für eine spezielle Zeilennummer von einer Parameterauflistung in der Anweisung. Einige Beispiele sollen
30988
dieses Merkmal näher erklären:
(In allen Beispielen hat T den gegenwärtigen Wert 2.)
20 GO TO Tt2-3 OF 250, 350, 450
Da der Ganzzahlwert des Ausdrucks eins ist, wird zum ersten auf 11OF" folgenden Parameter Zugriff genommen (Zeile Nummer 250)
80 GO SUB T+2.5 OF 130, 260, 330, 370, 490
Der gerundete Ganzzahlwert des Ausdrucks ist 5; daher wird Zugriff zu der Subroutine genommen, die bei Zeile Nummer 490, dem fünften auf "OF" folgenden Parameter, genommen. (Dezimalwerte von 0,5 und darüber werden immer auf die nächst höhere Ganzzahl gerundet.)
Jeder erlaubte Ausdruck kann benutzt werden; wenn der gerundete Wert entweder kleiner als eins oder größer als die Zahl der auf "OF" folgenden Parameter ist, wird die Zeilennummer ausgeführt, die der GO TO- oder GO SUB-Anweisung folgt.
PRINT (Drucken)
Der Rechner hat in der Druckanweisung ein Merkmal, das in BASIC nicht allgemein verfügbar ist. Alphabetische Information in einem Quotenfeld kann entweder in Großbuchstaben oder in Kleinbuchstaben gedruckt werden. Drucken in Kleinbuchstaben ist genau das Gegenteil von dem, was auf einer normalen Schreibmaschiene geschieht; wenn die Umschalt- oder Umschaltfeststelltaste gedrückt wird, werden im Quotenfeld befindliche Buchstaben klein geschrieben (die Anzeige erscheint jedoch immer in Großbuchstaben) ." Wenn das "at" Symbol (g) benötigt wird, wird SHIFT RESULT (umschalten Ergebnis) gedrückt.
309884/ 1370
Auch Quotenfelder in Format- und Schreibanweisungen haben dieses "Kleinbuchstaben" Merkmal verfügbar.
DISPLAY (Anzeige)
Die Anzeige-Anweisung vollführt die gleiche Funktion wie die Druckanweisung; der Unterschied besteht darin, daß die Information nicht auf einem Druckgerät sondern auf der Anzeige erscheint. Dementsprechend sollte die Druckanweisung benutzt werden, wenn eine ständige Aufnahme der Information erwünscht ist. Die benutzte Syntax ist DISP.
FORMAT, WRITE (Format, Schreiben)
Die Formatanweisung ist eine Einrichtung zur Strukturierung der Programm-Ausdrucke in einer spezifizierten Weise. Die Schreibanweisung definiert die Variablen, Konstanten usw., die auf dem Ausdruck erscheinen; sie legt auch das Gerät fest, auf dem gedruckt werden soll und die spezielle Formatanweisung, der gefolgt werden soll. Die folgenden Beispiele sollen die Merkmale in der Format- und der Schreibanweisung entsprechend erklären.
Beispiel:
5 FORMAT FlO.2 .
6 WRITE (15, 5) .7
ausgedruckt wird ^λ,^^^'-Ο. 70, wobei "*·." einen Leerabstand bezeichnet.
FlO.2 - das "F" bezieht sich auf Festkommaformat; "10" bezieht sich auf die gesamte für das Ausdrucken reservierte Feldbreite; "2" bezieht sich auf die Zahl der Ziffern rechts vom Dezimalpunkt (Komma). Über-
309884/ 1370
2333308
schüssiger Platz rechts vom Dezimalpunkt wird mit Nullen gefüllt; ein Abstand ist reserviert für den Dezimalpunkt; zwei Abstände sind links vom Dezimalpunkt reserviert, einer für eine dem Dezimalpunkt vorangehende Ziffer und der andere für ein Vorzeichen (es werden jedoch nur Minuszeichen gedruckt).
(15, 5) -in der Schreibanweisung wird die Information innerhalb der runden Klammern benötigt. "15" bezieht sich auf das zu benutzende Druckgerät (Auswahlkode 15 bezieht sich auf den Standarddrucker); "5" bezieht sich auf die Zeilennummer der Formatanweisung, zu der Zugriff genommen werden soll (im vorliegenden Fall Nummer 5). Die Formatanweisung, zu der Zugriff genommen werden soll, kann an beliebiger Stelle, in der Programmauflistung erscheinen.
ist)
.7 - in der Schreibanweisung 'aie auf die rechte runde Klammer folgende Information entsprechend den vorgegebenen Formaten zu drucken. Der Wert ist innerhalb seiner Feldbreite immer rechtsbündig. Beispiele:
2OA= 62.4
12 3
25 FORMAT E12. 2 , ΊπΤϊΥ Χ) 260 WRITE (15, 25)^2^1, ^
1 2
10
,"λ ISaTHE^ALUE^OF^A^ .4 A+3 6 7 8 10
ausgedruckt wird:
;l__ 2 3
. 31E+O2-61.OOQ/X-1. 2E+01* 6 2 a IS* THE -,VALUE ^OF^ 6 7 8
309884/1370
Die Formatanweisung, die Schreibanweisung und das Ausdrucken beziehen sich alle auf individuelle Felder; miteinander verbundene Felder werden durch entsprechende Bezugsnummern dargestellt.
Sofern sich die Schreibahweisung auf die Formatanweisung Nummer 25 bezieht, werden die Werte in der Schreibanweisung so formatiert, wie in dieser Formatanweisung spezifiziert ist.
Bezugsnummern
E12.2 bezeichnet exponentielle (Gleitkomma-) Notierung mit einer Feldbreite von 12 und zwei Ziffern rechts vom Dezimalpunkt. Ausgedruckt wird die genaue Form. Es sei daran erinnert, daß die Feldbreite großgenug sein muß, um ein Vorzeichen, den Dezimalpunkt und E-XY einzuschließen. Da Ausdrucke von der Schreibanweisung rechtsbündig sind und da "231" nur acht der zwölf Zeichen der Feldbreite in Anspruch nimmt, sind die vier Leerzeichen links vom Wert.
Der Wert "-61" in der Schreibanweisung füllt das F7.3-Feld voll aus. Daher ist kein Abstand zwischen diesem Wert und dem zuvor ausgedruckten Wert. Da F7.3 drei Ziffern rechts vom Dezimalpunkt bezeichnet, sind in diesem Falle Nullen hinzugefügt. '
"X" bezeichnet einen Abstand zwischen Werten; daher werden die für das F7.3- und das E8.1-Format zugeführten Werte beim Ausdruck um mindestens einen Abstand voneinander getrennt.
Der Wert -12.4 füllt E8.1 voll aus; tatsächlich wird die letzte Ziffer unterdrückt, da bei dieser Feldzuweisung nur eine Ziffer dem Dezimalpunkt folgen kann.
"/" teilt dem Druckgerät mit, daß ein Wagenrücklauf bis zum Beginn der nächsten Zeile übersprungen werden soll.
l 0 9 8 fl A / 1 3 7 0
ORIGINAL INSPECTED
2 3 3 τί η 8
6. 2F4.O spezifiziert zwei aufeinanderfolgende Festkommaformate von F4.0, die für Werte in der Schreibanweisung zu benutzen sind. Das erste Format ist für den Wert von A, der von Programmnummer 20 62.4 ist; wenn ein Festkommaformat null Ziffern rechts vom Dezimalpunkt spezifiziert, wird der zugeführte Wert auf eine Ganzzahl gerundet, und der Dezimalpunkt wird unterdrückt -- in diesem Fall 62. Da der Wagenrücklauf zuvor spezifiziert v/orden war, wird der Wert am Beginn der nächsten ausgegebenen Zeile gedruckt.
7. Quotenfelder werden in der Folge gedruckt, in der sie auftreten. Da dieses Quotenfeld in der Schreibanweisung ist, wird es gedruckt, unmittelbar nachdem 62.>4 in F4.0-Format gedruckt worden ist. Zu beachten ist der Abstand vor "IS"; ohne diesen Abstand würde 62IS statt 62 IS ausgedruckt. Quotenfelder können in Format- oder in Schreibanweisungen auftreten.
8. Der Wert .4 wird auch in F4.0-Format gedruckt. Der gerundete GAnzzahlwert von .4 und damit auch der Ausdruck ist Null.
9. "3X" bedeutet, daß zwischen den für die Formate F4.0 und E9.0 zugeführten Werte drei Abstände sein sollen.
Ausdrücke können in Schreibanweisungen spezifiziert werden. Der Wert von A+3 ist 65.4; jedoch wird er in diesem Format auf 7.E+01 gerundet. Der Dezimalpunkt wird in Gleitkommanotierung nicht unterdrückt, wenn Null als die Zahl der Ziffern rechts vom Dezimalpunkt spezifiziert ist.
Wenn in der Schreibanweisung mehr Werte vorhanden sind als Formate in der betreffenden Formatanweisung, werden die Formate
Ί0 9 8 8 U / 13 7 0
wiederholt. Beispiel:
10 FORMAT F6.2, ElO.2
20 WRITE (15, 10) 18, 21, 19.3, 29.6, .71
ausgedruckt wird:
λ18.00.-λ2.1ΟΕ+01
λ19.3Ο^.2.96Ε+Ο1
λ^Ο.71
Nachdem die ersten beiden Werte entsprechend den spezifizierten Formaten gedruckt worden sind, wird der Wagenrücklauf des Ausgabedruckers ingang gesetzt. Dann werden zwei weitere Werte entsprechend den selben beiden spezifizierten Formaten gedruckt usw.
Formatierungsregeln:
Beim Festkommaformat Fm.η wird mit m die gesamte Feldbreite und mit η die Anzahl der Ziffern rechts vom Dezimalpunkt festgesetzt. Wenn η größer als 0 ist, ist die minimale erlaubte Feldbreite m = η + 3; zum Beispiel wird bei F4.1 für - einen Wert von -.6 gedruckt -0.6, was die gesamte Feldbreite von 4 beansprucht. Wenn η = 0 ist, ist die minimale Feldbreite m = 2; bei F2.0 wird für einen Wert von -7 gedruckt -7, was dementsprechend die zugewiesene Feldbreite in Anspruch nimmt.
Im Gleitkommaformat Em.η sind m und η das gleiche wie im Festkommaformat. Jedoch ist die minimale erlaubte Feldbreite immer m = η + 7.
Alles folgende ist in Formatanweisung erlaubt: Fm.η - Festkommaformate;
Em.η - Gleitkommaformate (oft auch als exponentielle oder wissenschaftliche Notation bezeichnet);
30988 4/1370
ORIGINAL tNc..-üC"ED
3 λ ^ η
— -
X - Abstand;
/ - Wagenrücklauf (für Druckgerät); "■****" - Quotenfeld;
B - Binärformat (wo die Schreibanweisung eine Oktalzahl haben kann, wird das binäre Äquivalent ausgegeben) .
Alle obigen Begriffe können beliebig oft vervielfacht werden, indem vor das Symbol die passende Zahl gesetzt wird.
In Schreibanweisungen ist alles folgende erlaubt: Konstanten, Variablen, Ausdrücke und Quotenfelder. Es ist zu beachten, daß eine Schreibanweisung vom Tastenfeld aus eingegeben werden kann; das bedeutet, daß sich die Schreibanweisung auf die Zeilennummer einer Formatanweisung im Speicher beziehen kann, ohne daß sie sich selbst im Programm befindet.
Die maximale Breite der Festkomma- und der Gleitkommafelder ist 9 999. Jedoch ist der Programmierer effektiv durch die erlaubte Anzahl von Zeichen pro Zeile des Druckgerätes beschränkt.
Die Informationen in der Formatanweisung müssen durch Kommata voneinander getrennt werden.
Die Informationen in der Schreibanweisung müssen entweder durch Kommata oder durch Semikolons voneinander getrennt werden; grundsätzlich besteht dabei kein Unterschied. Jedoch besteht ein zusätzliches Merkmal der Schreibanweisung darin, daß sie die identischen Operationen vollführen kann wie die Druckanweisung; der Vorteil besteht in der Möglichkeit mittels der Schreibanweisung das Gerät auszuwählen, auf dem gedruckt werden soll. Um auf einem Lochstreifenleser mit Auswahlkode 2 zu schreiben, kann die Schreibanweisung in folgender Weise aufgesetzt werden:
30 WRITE (2, *) A; B; C, D
;: 0 9 8 8 U ! 1 3 7 0
Das "#" bedeutet, daß auf keine Formatanweisung bezug genommen wird; daher wirkt WRITE ähnlich wie eine PRINT-Anweisung: die Daten sind linksbündig, Semikolons packen die Ausgabefelder, Kommata spreizen die Felder auf, usw.
P TAPE (Lochstreifen)
Wie in BASIC bewirkt PTAPE, daß der Computer ein Programm von einem Lochstreifenleser einliest. Wenn der Auswahlkode des Lochstreifenlesers 5 ist, dann wird diese Arbeit entweder durch Drücken von PTAPE #5 oder PTA *5 ausgeführt, es sei denn, daß kein Lochstreifenleser an den Rechner angeschlossen ist. Wenn kein Lochstreifenleser angeschlossen ist, wartet der Rechner solange, bis einer angeschlossen wird, um dann den Befehl zu vollenden. Während dieser Zeit ist die Anzeige leer.
Während dieser Befehl in Wirkung gesetzt wird, wird die Syntax der Zeilen geprüft, die in den Speicher geladen werden; wenn eine Zeile fehlerhaft ist, wird sie zurückgewiesen, so daß nur solche Zeilen in den Rechner geladen werden, deren Syntax korrekt ist. Um eine Aufnahme der zurückgewiesenen Zeile zu erhalten, ist es nötig, den Rechner auf "alles drucken"-Betrieb zu schalten, bevor PTA £5 gedrückt wird; im "alles drucken"-Betrieb werden alle zurückgewiesenen Zeilen gedruckt.
Zur Beachtung:
Um Information auf Lochstreifen zu übertragen, benutzt man den Auflistbefehl, der weiter oben diskutiert worden ist.
MEHRZEILIGE FUNKTIONEN
Mehrzellige Funktionen dienen dem gleichen Zweck, wie einzeilige Funktionen, wobei jedoch eine zusätzliche Möglichkeit für die Beschreibung komplizierterer Funktionen vorhanden ist.
309884/ 1370
Bei einzeiligen Funktionen ist die grundsätzliche Form der definierenden Funktion:
Anweisung-Nummer DEF FN Einzelbuchstabe A bis Z (einfache Variable) ■$ = Ausdruck
In vielzelligen Funktionen ist die allgemeine Form seitlich von dem Gleichheitszeichen und dem Ausdruck die gleiche; in einer vielzelligen Funktion kann sich der Ausdruck über viele Anweisungsnummern erstrecken. Daher kann ein äußerst komplizierter Ausdruck in mehr vereinfachter Form erscheinen; zusätzliche Flexibilität kann auch dadurch erreicht werden, daß der Wert jeder Variable innerhalb des Ausdruckes für einen gegebenen Wert des Argumentes der Funktion berechnet werden kann; Beispiele:
Wenn dieses Programm abläuft, kehrt D zu einem Wert von 32 zurück. Die Rückkehranweisung bringt das Ergebnis von FNA (X) zurück, was in diesem Fall gleich D ist. Zeile 40, die Stopanweisung, wird benötigt, um den Rechner daran zu hindern, eine nochmalige Ausführung der Zeilen bis 90 zu versuchen, nachdem D gedruckt ist; ohne STOP in Zeile 40, tritt in Zeile 60 ein Fehler auf, da, wenn X Undefiniert ist, beginnend mit Zeile 50 ein·zweiter Durchlauf gemacht würde.
Jede in dem Ausdruck ausgewertete Variable kann durch die Rückkehranweisung zurückgeholt werden, und mehrfache Rückkehranweisungen sind erlaubt;
+) Die einfache Variable ist eine Scheinvariable, die anzeigt, wo das tatsächliche Argument der Funktion im definierenden Ausdruck benutzt wird.
30988A/1370
10 W = .5
20 Y = 2
30 PRINT FNA (3)
40 STOP
50 DEF FNA (X)
60 Z = ΧΪ2 + Y*'<
70 Q = Z + 3
80 D = Q/W
90 RETURN D
100 STOP
X = 3 2333908 + 1 s. 100 THEN 110
10 INPUT Z = Yt2*X "z "='·■
20 WRITE Y IF Z ί
30 END (15,900) FNG (Y) PRINT
40
50 DEF FNG (Y)
60 Y = Y
70
80
90
100 RETURN Z 2 100 THEN 150
110 Q =,Ζ-ΐ HQ =lf
120 IFQS Q
130 PRINT 11Z IS"
140 RETURN Z
150 PRINT F12.1
160 RETURN
900 FORMAT
1000 END
In diesem Beispiel kann eine Variable von drei verschiedenen Zeilen (100, 140, 160) zurückgeholt werden, abhängig von dem Anfangswert von Y; Z kann von den Zeilen 100 und 160 zurückgeholt werden, wenn der Wert von Y bestimmte Kriterien erfüllt.
Bei der Platzierung der Anweisung, die die Funktion ruft (in beiden Beispielen Anweisung 30), muß vorsichtig vorgegangen werden, und es ist im allgemeinen ratsam, unmittelbar hinter dieser Anweisung eine Stopanweisung zu setzen Cwie in Zeile in beiden Beispielen); anderenfalls kann sich eine unerwünschte Schleife entwickeln.
Wenn richtig eingegeben, kann die Funktion einer Funktion ausgewertet werden.
STOP, END (Stop, Ende)
STOP wurde bereits diskutiert, wobei das Schwergewicht auf seinen Möglichkeiten zur Programmkorrektur gelegt wurde. Nun wird es als Programmanweisung diskutiert, wobei das Schwergewicht auf die Unterschiede zwischen ihm und der Endanweisung gelegt wird.
309884/137
Wenn das Programm auf eine Stopanweisung trifft, hält es an und wartet; wenn dann CONT EXEC gedrückt wird, läuft das Programm weiter, und zwar bei der Anweisung, die auf STOP folgt. Dies ist nicht so, wenn auf eine Endanweisung gestossen wird; das Programm hält an, aber wenn CONT EXEC gedrückt wird, kehrt der Rechner zu der Anweisung mit der niedrigsten Nummer im Speicher zu.rück. Daher sollte die Stopanweisung zwischen gestaffelten Programmen benutzt werden, die nacheinander ablaufen sollen. Wenn STOP in dieser Weise benutzt wird, können die Werte von einfachen Variablen von Programm zu Programm durchgelassen werden.
Ein Programm sollte entweder durch STOP oder durch END abgeschlossen werden. Die Programmanweisung mit der höchsten Nummer braucht keine Endanweisung zu sein.
DATENEINGABE
Programmdaten können auf drei Weisen eingegeben werden: die Eingabeanweisung, "die Lese- und Datenanweisungen und den Initialisierungsbefehl. Die Eingabeanweisung und die Lese- und Datenanweisungen werden weiter unten eingehend diskutiert.
INITIALIZE (Initialisieren)
Die Initialisierungstaste ordnet, wenn sie gedrückt wird, Feld-Variablen Speicherraum zu. Nachdem die benötigten Daten eingetastet sind, kann das Programm durch Drücken von CONT EXEC ausgeführt werden; zur Erninnerung: RUN EXEC löscht die Werte aller Variablen, so daß es nötig ist, alle Variablen im Programm selbst zu definieren.
Einfache Variablen können immer im Tastenfeldbetrieb eingegeben werden, ohne daß die Initialisierungstaste benutzt wird, solange CONT EXEC gedrückt ist, um das Programm ablaufen zu lassen. Da
309884/1370
St,
Feldvariablen im Tastenfeläbetrieb eingegeben werden können, indem der Initialisierungsbefehl benutzt wird, ist es nicht erforderlich, irgendwelche Variablen im Programm selbst zu definieren. Es ist jedoch noch nötig, Felder entweder in einer Dimensions- oder in einer gemeinsamen-Anweisung zu identifizieren.
BENUTZER-DEFINIERBARE TASTEN
Es gibt zehn Benutzer-definierbare Tasten (UDK) im oberen linken Block des Tastenfeldes. Effektiv sind jedoch 20 zugängliche UDKs vorhanden, da jede Taste normal oder mit niedergedrückter Umschalttaste benutzt werden kann.
Um in den UDK-Betrieb einzutreten, wird FETCH (spezielle UDK) gedrückt; auf der Anzeige ist dann zu lesen "KEY" (Taste) mit Angabe der Betriebsart. Um den UDK-Betrieb wieder zu verlassen, wird CLEAR END EXEC gedrückt; der Löschbefehl (SCRATCH) kann auch benutzt werden, um den UDK-Betrieb zu verlassen. Selbstverständlich löscht dieser Befehl gewisse Informationen in der Verarbeitung. UDK-Betrieb wird automatisch ausgeführt, wenn bestimmten Folgen gefolgt wird; dieser Fall wird später diskutiert.
Die Benutzerdefinierbaren Tasten können effektiv auf drei Weisen benutzt werden:
1. Um Text darzustellen (wobei der Töxt als Schreibhilfe benutzt werden kann);
2. Um Funktionen darzustellen (wobei verschiedene Werte zu der Funktion durchgelassen werden können);"
3. Um Programme darzustellen.
3 09884/1370
DARSTELLUNG VON TEXT
Wenn eine Taste Text darstellt, wird nach einfachem Drücken einer Taste unmittelbar der Text angezeigt, ohne daß etwas gelöscht wird, was sich vorher auf der Anzeige befand. So können gewöhnlich benutzte Worte und Phrasen auf Tasten gegeben werden, um Schreibhilfen zu erhalten. Text kann in folgender Weise auf eine Taste gegeben werden.
Zunächst verschafft man sich Zugang zu einer Taste durch Drücken von FETCH (spezielle UDK). Dann wird * gedrückt, gefolgt von einem Zeichen-String+) und schließlich EQL. Abgesehen von der Eingabe des Zeichen-string nimmt das Drücken von EOL in dieser Folge den Benutzer aus dem UDK-Betrieb heraus. Jedesmal wenn der Programmierer ein Zeichen-string zu benutzen wünscht, muß er die Taste drücken, in die das gewünschte Zeichen-string eingegeben worden war. Wenn zum Beispiel durch FETCH (spezielle UDK) Zugang zu einer Taste genommen wurde, wurde jtf FORMAT FlO.2,X,ElO.1 EOL eingegeben. Wann darauf folgend Programmzeile Nummer 60 dieses Format benötigte, gibt Drücken von JSO (spezielle UDK) EOL Zeile Nummer 60 in den Speicher mit dem benötigten Format. Eine Schreibhilfe-Taste kann als sofort auszuführender Befehl benutzt werden, wenn sowohl vor als auch hinter dem Text ein * gesetzt wird. Beispiel:
FETCH (UDK) * LOADDATA *A, 6, B *f EOL
Dieser Befehl wird sofort ausgeführt, wann immer die UDK gedrückt wird.
Um eine Taste mit Text zu benutzen, wird diese Taste lediglich gedrückt. Drücken von FETCH (spezielle UDK) läßt das ¥ mit dem Text zur Anzeige kommen; jedoch kann der Text aufbereitet werden, wenn der Abrufbefehl benutzt wird. Drücken von FETCH und anschlies·
+) Die maximale Länge für das Zeichen-string (einschließlich *) beträgt 80 Zeichen.
30988W1370
send * löscht das alte Zeichen-string und läßt den Rechner auf den neuen einzugebenden Text warten. .
DARSTELLUNG VON FUNKTIONEN
Eine Benutzer-definierbare Taste kann benutzt werden, um Funktionen darzustellen, sowohl einzeilige als auch mehrzellige. In beiden Fällen muß, nachdem Zugang zu der Taste hergestellt ist, der Funktion eine Zeilennummer vorangehen (Eingabe entweder manuell oder automatisch).
Nachdem Zugang zu einer Taste hergestellt ist, könnte die folgende Funktion eingegeben werden: 10 DEF FNA (X) = 7 * X -3 EOL Wann immer ein Wert nach X (dem Argument der Funktion) durchgelassen werden soll, wird zunächst die passende Taste gedrückt; auf der Wiedergabe ist FNA zu lesen. Dann wird der passende Wert des Argumentes eingetastet, der entweder eine Konstante oder ein Ausdruck (zum Beispiel 20) sein kann, und EXEC wird gedrückt; der Wert der Funktion wird dann angezeigt, (im vorliegenden Fäll 137). Das gleiche Ergebnis hätte durch Benutzung des Abrufbefehls erreicht werden können; jedoch wäre FNA nicht automatisch auf der Anzeige erschienen; es hätte in Reihe mit dem Argument eingetastet werden müssen; zum Beispiel FETCH (UDK) FNA JO EXEC würde auch zur Wiedergabe 13 7 führen.
Wenn eine mehrzellige Funktion, DEF FNB (Z), eingegeben worden ist, bewirkt das Drücken der passenden UDK, daß FNB angezeigt wird; wie vorher wird durch Hindurchlassen eines Wertes zum Argument Z und durch anschließendes Drücken von EXEC der Wert der Funktion berechnet und angezeigt.
Funktionen im Hauptspeicher und in einer UDK können gerufen werden, ohne Rücksicht auf die laufende Betriebsart.
309884/137
Wenn eine Funktion im Rechner an mehr als einer Stelle definiert ist, wird zu der ersten Funktion mit dem zugeordneten Namen Zugriff genommen. Wenn der Benutzer im UDK--Betrieb ist, sucht der Rechner in folgender Reihenfolge nach der Funktion:
1. Das laufende UÖK-Programm wird geprüft.
2. Die erste Zeile jeder Taste (in der definierten Reihenfolge) wird geprüft.
3. Der Hauptspeicher wird geprüft.
Wenn der Benutzer nicht im UDK Betrieb ist, wird die Suche in der Reihenfolge 3. und 2. durchgeführt.
DARSTELLUNG VON PROGRAMMEN
Eine UDK kann benutzt werden, um ein vollständiges Programm darzustellen. Die Programmierregeln im UDK-Betrieb stimmen mit den oben diskutierten überein. Es gibt jedoch eine Einschränkung; wenn eine gemeinsame Anweisung benutzt wird, muß ihre Größe kleiner als oder so groß wie die Größe der gemeinsamen Anweisung im Hauptprogramm sein, da nur ein gemeinsamer Bereich dem Speicher zugewiesen ist.
Um ein Programm ablaufen zu lassen, das in einer UDK dargestellt ist, ist es ratsam, RUN (spezielle UDK) oder FETCH (UDK) und dann INIT (spezielle UDK) zu drücken. Das Programm kann fortgesetzt werden, indem lediglich die (spezielle UDK) gedrückt wird; wenn jedoch Feldvariablen im Programm vorhanden sind, bewirkt das Drücken lediglich dieser Taste, daß diese Variablen Undefiniert werden (in dieser Hinsicht ähnlich dem Fortsetzungsbefehl, der weder die alte Symboltabelle zerstört noch eine neue aufbaut). Nachdem das Programm ausgeführt ist, verläßt der Rechner den UDK-Betrieb wieder.
30988A/ 1370
2333903
Auf einer UDK dargestellten Programme benutzen im allgemeinen nur einfache Variable wegen der offensichtlich leichteren Handhabung.
Um Programmzeilen auf einer speziellen UDK aufzulisten, wird gedrückt:
LIST (spezielle UDK) ;
Drücken von LIST EXEC im UDK-Betrieb listet die Programmzeilen auf die Taste auf, zu der gerade Zugang besteht. Um spezielle Zeilen selektiv auf die UDK aufzulisten, ist es zunächst notwendig, eine Taste abzurufen (FETCH); danach wird der Auflistbefehl benutzt, wie weiter unten diskutiert wird.
Um ein Programm von einer Kassetten-Datei auf eine spezielle Taste zu laden, wird die Taste zunächst abgerufen (FETCH), und dann wird der Ladebefehl gefolgt von EXEC gegeben. Programmzeilen auf einer speziellen Taste können in gleicher Wfeise auf der Kassette gespeichert werden; Text (zum Beispiel Schreibhilfe) kann jedoch nicht in dieser Weise gespeichert werden.
Die Speichertaste (STORE) und die Ladetaste (LOAD) können für jede UDK benutzt werden, ohne Rücksicht auf die Information auf der Taste. Die Benutzung dieser Tasten wird weiter unten diskutiert.
30988Λ/1370
ANWEISüNGSNüMMERN
Jede BASIC-Anweisung beginnt mit einer Anweisungsnummer (statement number), im vorliegenden Beispiel 20:
20 LET S = (A+B+C+D+E)/5
Bemerkungen
Die Zahl wird Anweisungsnummer oder Zeilennummer genannt.
Die Anweisungsnummer wird vom Programmierer ausgewählt. Es kann jede Ganzzahl von 1 bis einschließlich 9999 sein.
Jede Anweisung hat eine eindeutige Anweisungsnummer. Der Computer benutzt die Nummern, um die Anweisungen in Ordnung zu halten.
Anweisungen können in beliebiger Reihenfolge eingegeben werden; sie werden üblicherweise in Fünfer- oder Zehnerschritten numeriert, so daß zusätzliche Anweisungen leicht eingefügt werden können. Der Computer bringt sie in numerische Reihenfolge, wie sie eingegeben worden sind.Werden z.B. Anweisungen in der Reihenfolge 30, 10, 20 eingegeben, bringt der Computer sie in die Reihenfolge 10, 20, 30.
EIN PROGRAMM
Die Folge von auf den vorherigen 10 INPUT A,B,C,D,E Seiten gegebenen BASIC-Anweisungen 20 LET S=(A+B+C+D+E)/5 wird ein Programm genannt. 30 PRINT S
309884/1370
23339&tfl PROGRAMM (FORTSETZUNG)
Die letzte Anweisung in einem 40 GO TO
Programm ist, wie hier gezeigt ist, 50 END eine END-Anweisung.
Bemerkungen
Die letzte Anweisung (mit der höchsten Nummer.) in einem Programm muß eine END-Anweisung sein.
Die END-Anweisung informiert den Computer, daß das Programm beendet ist.
FREIFORMAT-SPRACHE
BASIC ist eine "Freiformaf'-Sprache. Der Computer ignoriert zusätzliche Leerfeider in einer Anweisung. Zum Beispiel sind folgende drei Anweisungen äquivalent:
30 PRINT S 30 PRINT S 30PRINTS
Bemerkungen
Wenn möglich, läßt man in einer Anweisung einen Abstand zwischen Worten und Zahlen. Dadurch wird das Programm für andere Leute leichter lesbar.
VERGLEICHSOPERATOREN Symbole: =#< >><>=<=
309884/1370
ORIGINAL INSPECTED
8lQ:&ORMAT-SPRACHE (FORTSETZUNG)
Beispiele: 100 IF A=B THEN
110 IF A+B >C THEN 120 IF A+B < C+E THEN 130 IF O=D*E THEN 140 IF C9<= G*H THEN 150 IF P2ff=C9 THEN 160 IF J O K THEN
Zweck
Festlegung der logischen Beziehung zwischen zwei Ausdrücken in folgender Weise:
gleich:
ungleich: #oder <>
größer als: >
kleiner als : <
größer gleich: > =
kleiner gleich: < =
ARITHMETISCHE OPERATOREN
Symbole: t / + -
Beispiele: 40 LET Nl = X-5 50 LET C2 = N+3 60 LET A = (B-C)/4 70 LET X = ( (P-h2)-(Y*X))/N+Q
Zweck
Darstellung einer arithmetischen Operation wie:
potenzieren: +
multiplizieren : ■*
dividieren : /
addieren : +
subtrahieren : -
309884/1370
JUi ti
ARITHMETISCHE OPERATOREN, FORTSETZUNG
Die Symbole + und - werden auch benutzt, um monadisches Plus und monadisches Minus zu bezeichnen. Zum Beispiel können in einer Anweisung negative Zahlen ohne Benutzung von Klammern ausgedrückt werden:
10 LET Al = -B
20 LET C2 = D ++E
30 LET B5 = B —C
Siehe "Rangordnung" zum Beispiel in diesem Abschnitt oder wie monadisches + und"monadisches -Zeichen interpretiert werden.
DER UND- (AND-)' OPERATOR
Symbol: AND IF A9<B1 AND C#5 THEN 100
Beispiele : 60 IF T7#T AND J=27 THEN 150
70 IF Pl AND R>1 AND N AND V2
80
THEN 90 PRINT X AND Y
Zweck
Bildung einer logischen Konjunktion zwischen zwei Ausdrücken. Wenn beide "wahr" sind, ist die Konjunktion "wahr"; wenn einer oder beide "falsch" sind, ist die Konjunktion "falsch".
Zur Beachtung: Es ist für den Neuling nicht notwendig, zu verstehen, wie dieser Operator arbeitet. Die folgenden Bemerkungen wenden sich an den erfahrenen Programmierer.
Bemerkungen Der numerische Wert von "wahr" ist 1 und von "falsch"
30988Λ/1370
DER UND-OPERATOR (FORTSETZUNG)
Alle Werte, die nicht 0 sind, sind "wahr". Zum Beispiel druckt die Anweisung 90 entweder eine O oder eine 1 (den logischen Wert des Ausdrucks X AND Y) an Stelle der tatsächlichen numerischen Werte von X und Y.
Die Steuerung wird in einer AND benutzenden IF-Anweisung nur transferiert, wenn alle Teile der AND-Konjunktion "wahr" sind. Zum Beispiel benötigt die Anweisung 80 im obigen Beispiel vier "wahre" Bedingungen, bevor die Steuerung zur Anweisung 10 transferiert wird.
Eine eingehendere Beschreibung der logischen Auswertung findet sich in Abschnitt V "Logische Operationen".
DER ODER-(OR-)OPERATOR
Symbol: OR
Beispiele: 100 IF A>1 OR B<5 THEN 500 110 PRINT O OR D
120 LET D = X OR Y
130 IF (X AND Y) OR (P AND Q) THEN 600
Zweck
Bildung der logischen Disjunktion von zwei Ausdrücken. Wenn einer oder beide der Ausdrücke "wahr" sind, ist die OR-Disjunktion "wahr"; wenn beide Ausdrücke "falsch" sind, ist die OR-Disjunktlon "falsch".
Zur Beachtung f,ür den Neuling ist es nicht notwendig, zu verstehen, wie dieser Operator arbeitet. Die folgenden Bemerkungen wenden sich an den erfahrenen Programmierer.
309884/1370
DER ODER-OPERATOR (FORTSETZUNG) ' Bemerkungen
Die numerischen Werte sind: "wahr'gleich 1, "falsch" gleich O,
Alle Werte, die nicht O sind, sind "wahr"; alle Werte, die O sind, sind "falsch".
Die Steuerung wird in einer OR 'benutzenden IF-Anweisung transferiert, wenn einer oder beide der zwei Ausdrücke als "wahr" ausgewertet werden.
Eine eingehendere Beschreibung der logischen Auswertung findet sich in Abschnitt V "togische Operationen".
DER NICHT-(NOT-)OPERATOR
• Symbol: NOT
Beispiele: 30 LET X=Y=O
3 5 IF NOT A THEN 300
45 IF (NOT C) AND A THEN 400
55 LET B5 = NOT P
65 PRINT NOT (X AND Y)
70 IF NOT (A=B) THEN 500
Zweck
Logische Auswertung des Komplements eine gegebenen Ausdrucks,
Zur Beachtung: Es ist für den Neuling nicht erforderlich, zu verstehen, wie dieser Operator arbeitet, Die folgenden Bemerkungen wenden sich an den erfahrenen Programmierer.
309884/1370
DER NICHT-OPERATOR (FORTSETZUNG) Bemerkungen
Wenn A=O ist, dann ist NOT A=I; wenn der Wert von A nicht O ist, ist NOT A=O.
Die numerischen Werte sind: "wahr" = 1, "falsch" = O; zum Beispiel druckt die obige Anweisung 65 "1", wenn der Ausdruck NOT (X AND Y) "wahr" ist.
Es ist zu beachten, daß die logischen Spezifikationen eines Ausdruckes durch Bildung des Komplements geändert werden können. In der obigen Anweisung 35 ist die Auswertung "wahr" (1), wenn "A" gleich O ist; wenn A einen numerischen Wert 0 hat, hat es einen logischen Wert "falsch", wodurch NOT A "wahr" wird.
Eine eingehendere Beschreibung der logischen Auswertung findet sich in Abschnitt V "logische Operationen".
RANGORDNUNG
Die Reihenfolge für die Durchführung von Operationen ist fol gende:
f höchster Rang
NOT monadisch + monadisch -
Vergleichsoperatoren
AND
OR niedrigster Rang
Bemerkungen
Wenn sich zwei Operationen auf der gleichen Ranghöhe befinden, ist die Reihenfolge der Ausführung von links nach rechts. Beispiel:
5+6*7 wird ausgewertet als 5 + (6x7)
7/14*2/5 wird ausgewertet als (7/14)x2
309884/1370
2333308 -«»-
RANGORDNUNG (FORTSETZUNG)
Runde Klammern heben die Rangordnung in allen Fällen auf. Beispiel:
5 + (6x3) wird ausgewertet als 5+18 und
3 + (6+(2f2)) wird ausgewertet als 3 + (6+4)
Monadisches + und - können benutzt werden; BASIC nimmt dabei runde Klammern an. Beispiel:
A + + B wird interpretiert als A + (+B) C - + D -5 wird interpretiert als C - (+D)-5
Vorangehende monadische +-Vorzeichen werden von BASIC aus der Ausgabe entfernt, verbleiben jedoch in Programmauflistungen.
DIE LET-ANWEISUNG
Beispiele: 10 LET A = 5.02
20 LET X = Y7 = Z = 0
30 LET B9 = 5* (X 2)
40 LET D = (3+C2*N)/(A*(N/2))
Allgemeine Form:
Anweisungsnummer LET Variable = Zahl oder Ausdruck oder Variable,
Zweck
Wertzuweisung oder -Spezifizierung einer Variablen. Der Wert kann ein Ausdruck, eine Zahl oder eine Variable sein.
Bemerkungen
Die Er_.gibt-Anweisung muß enthalten:
1. eine Anweisungsnummer,
2. wahlweise LET,
3. die Variable, der ein Wert zugewiesen werden soll (z.B. B9 in der obigen Anweisung 30),
4. den Er_gibt-Operator, ein Gleichheitszeichen,
5. die Zahl, den Ausdruck oder die Variable, die der
3098 8 A/1370
DIE LET-ANWEISUNG (FORTSETZUNG)
Variablen zugewiesen" werden soll (z.B. 5*(X42) in der obigen Anweisung 30).
Anweisung 20 im obigen Beispiel zeigt die Benutzung einer Zuweisung des Ergebniswertes O zu verschiedenen Variablen. Dies ist ein nützliches Merkmal zur Initxalisierung von Variablen beim Programmanfang.
REM
Beispiele: 10 REM— dies ist ein Beispiel
20 REM: von REM-Anweisungen
30 REM /////*****! UM
40 REM Anweisungen werden von BASIC
nicht ausgeführt
Allgemeine Form: Anweisungsnummer REM beliebige Bemerkung oder
Zeichenserie
Zweck
Einfügung einer Zeile mit Bemerkungen oder Kommentar in der Auflistung eines Programms.
Bemerkungen
Eine Zeilennummer muß vorangehen. REM können beliebige Zeichenserien folgen.
REM-Zeilen sind Teil eines BASIC-Programms und werden gedruckt, wenn das Programm aufgelistet oder gelocht wird; bei der Programmausführung werden sie jedoch ignoriert.
30988 4/1370
2 3 ^ ?°> O
DRÜCKEN (PRINT)
Dieses Äbtastprogramm zeigt verschiedene Beispiele der PRINT-Anweisung. Die Ergebnisse sind unten gezeigt.
10 LET A=B=C=IO
20 LET D1=E9=2O
30 PRINT A,B,C,D1,E9
40 PRINT A/B,B/C/D1+E9
50 PRINT "BEACHTE DIE POTENZ ZUR AUSWERTUNG EINES AUSDRUCKES UND DRUCKE DEN"
60 PRINT "WERT IN DER^SELBEN ANWEISUNG".
70 PRINT
80 PRINT
90 REM* "PRINT" OHNE OPERAND BEWIRKT, DASSDER DRUCKER EINE ZEILE ÜBERSPRINGT.
PRINT "1A1 GETEILT DURCH Έ91 =";A/E9 PRINT "Hill", "22222", "33333", "44444", "55555", "66666" PRINT "Hill"; "22222"; "33333"; "44444"; "55555"; "66666" END
-ERGEBNISSERUN
10 10 10 20
1 20.05
BEACHTE DIE POTENZ ZUR AUSWERTUNG EINES AUSDRUCKES UND DRUCKE DEN WERT IN DER SELBEN ANWEISUNG.
1A1 GETEILT DURCH Έ91 = .5 Hill 22222 33333 44444 55555
111112222233333 44444 5555566666
Zur Beachtung: Das"," und das";", die in den Anweisungen
und 120 benutzt werden, haben sehr verschiedene Wirkungen auf das Format.
309884/1370
ORIGINAL INSPECTED
DRUCKEN (PRINT), FORTSETZUNG
Allgemeine Form:
Anweisungsnummer PRINT Ausdruck j_ Ausdruck j_ . . .
oder
Anweisungsnummer PRINT "beliebiger Text" j_ Ausdruck j_ . . .
oder
Anweisungsnummer PRINT "Text" j_ Ausdruck j_ "Text" j_ "Text" j_ . ,
oder
Anweisungsnummer PRINT beliebige Kombination von Text und/oder Ausdrücken
oder
Anweisungsnummer PRINT
Zweck
Ausgabe von Ausdrücken oder "Text" an den Drucker. Bewirkt, daß der Drucker eine Zeile überspringt, wenn es ohne Operand benutzt wird.
Bemerkungen
Zu beachten sind die Wirkungen von , und ; auf die Ausgabe des Abtastprogramms. Wenn ein Komma benutzt wird, um PRINT-Operanden zu trennen, werden pro Druckerzeile fünf Felder gedruckt. Wenn ein ; benutzt wird, werden pro Druckerzeile (7 2 Zeichen) zwölf "gepackte" numerische Felder ausgegeben.
Text in Anführungszeichen wird wörtlich gedruckt.
Zur Beachtung: Ein Variablen-Name wird von BASIC als einfacher Ausdruck betrachtet. Zum Beispiel kann eine Anweisung für die oben gezeigte erste allgemeine Form folgendermaßen aussehen:
100 PRINT Al, B2, C3
oder
110 PRINT A, Z, X, T9
30988 W137 Π
DRUCKEN (PRINT), FORTSETZUNG wobei die Variablen numerische Ausdrücke darstellen.
Es sei daran erinnert, daß Variablenwerte in einer Zuordnung, INPUT-(Eingabe-), READ-(Lese-) oder FOR-Anweisung definiert werden müssen, bevor sie in einer PRINT-Anweisung benutzt werden.
Endet eine PRINT-Anweisung mit einem Semikolon, so bewirkt dies, daß die Ausgabe eher auf derselben Zeile gedruckt wird, als daß zurück Zeile voll nach Ausführung der Anweisung erzeugt wird. Beispiel: Die Folge
20 LET X=I 3O PRINT X; 40 LET X=X+1 50 GO TO 30
erzeugt eine Ausgabe in folgendem Format:
1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18 19 20 21 22 23 24
In ähnlicher Weise wird, wenn eine PRINT-Anweisung mit einem
Komma endet, bewirkt, daß die Ausgabe alle fünf Felder auf einer
Zeile ausfüllt, bevor sie zur nächsten Zeile übergeht. Das End-Komma in Anweisung 30 in der Folge:
20 LET X=I
30 PRINT X,
40 LET X=X+1
50 GO TO 30
erzeugt eine Ausgabe in folgendem Format;
309884/1370
2333908 -Wi-- FORTSETZUNG 5
4 IO
DRUCKEN (PRINT) , 9 15
1 2 3 14
6 7 8
11 12 13
Eine PRINT-Anweisung ohne Operand (Anweisungen 70 und 80 in dem Abtastprogramm) erzeugt ein zurück Zeile voll.
GO TO UND GO TO FÜR MEHRFACHE VERZWEIGUNG Beispiele: 10 LET X = 20
40 GO TO X+y OF 410,420,430
50 GOTO 100
80 GOTO 10
90 GO TO N OF 100,150,180,190
Allgemeine Form:
Anweisungsnummer GO TO Anweisungsnummer Anweisungsnummer GO TO Ausdruck OF Folge von Anweisungsnummern
Zweck
GO TO überführt die Steuerung zu der spezifizierten Anweisung.
GO TO Ausdruck ... rundet den Ausdruck zu einer Ganzzahl η und überführt die Steuerung zur nten OF folgenden Anweisungsnummer.
Bemerkungen
GO TO kann geschrieben werden als GOTO oder GO TO.
Es muß gefolgt sein von der Anweisungsnummer, zu der die Steuerung transferiert wird, oder von Ausdruck OF und einer Folge von Anweisungsnummern.
309884/1370
GO TO UND GO TO FÜR MEKFlA-CHE VERZWEIGUNG (FORTSETZUNG)
GO TO geht der normalen Ausführungsfolge von Anweisungen in einem Programm vor.
Wenn keine Anweisungsnummer vorhanden ist, die den Wert des Ausdrucks entspricht, wird GO TO ignoriert.
Es ist nützlich, wenn eine Arbeit unbegrenzt wiederholt werden soll oder wenn zu einem anderen Teil eines Programms "gesprungen" werden soll, wenn bestimmte Bedingungen erfüllt sind.
GO TO darf nicht benutzt werden, um in FOR-NEXT-Schleifen einzutreten; dies könnte zu unvorhersehbaren Ergebnissen oder fatalen Fehlern führen.
GOSUB...RETURN (ZUR SUBROUTINE GEHEN UND ZURÜCK)
Beispiel: 50 READ A2
60 IF A2n100 THEN 80
70 GOSUB 400
380 STOP (STOP geht häufig der ersten Anweisung einer Subroutine voran, um ungewolltes Eintreten zu verhindern.)
390 REM—DIESE SUBROUTINE FRAGT NACH EINER 1-ODER 0-ANTWORT.
400 PRINT "A2 IS>100"
410 PRINT "WILLST DU FORTFAHREN"; 420 INPUT N
430 IF N tFO THEN 4 50
440 LET A2 = 0
450 RETURN
600 END
309884/1370
GOSUB...RETURN (FORTSETZUNG)
Allgemeine Form: Anwelsung snummer GOSUB Anweisungsnummer des
Starts der Subroutine
Anweisungsnummer RETURN
Zweck
GOSUB läßt die Steuerung zu der spezifizierten Anweisungsnummer übergehen.
RETURN gibt die Steuerung wieder an die Anweisung zurück, die der die Steuerung transferierenden GOSUB-Anweisung folgt.
GOSUB... RETURN eliminiert die Notwendigkeit, häufig benutzte Gruppen von Anweisungen in einem Programm zu wiederholen.
GOSUB FÜR MEHRFACHE VERZWEIGUNG
Beispiele: 20 GOSUB 3 OF 100,200,300,400,500
60 GOSUB N+l OF 200,210,220 70 GOSUB N OF 80,180,280,380,480,580
Allgemeine Form:
Anweisungsnummer GOSUB Ausdruck OF Folge von Anweisungsnummern
Zweck
GOSUB Ausdruck rundet den Ausdruck zu einer Ganzzahl η und über gibt die Steuerung zur nten Anweisungsnummer, die auf OF folgt.
Bemerkungen Subroutinen sollten nur mit einer RETURN-Anweisung enden.
Der Ausdruck zeigt an, welche der spezifizierten Subroutinen ausgeführt wird. Zum Beispiel transferiert die obige Anweisung
30 9884/1370
Ml
GOSUB FÜR MEHRFACHE VERZWEIGUNG (FORTSETZUNG)
20 die Steuerung zur Subroutine, die mit Anweisung 300 beginnt. Der Ausdruck spezifiziert, welche Anweisungen in der Folge von fünf Anweisungen als Startanweisung in der Subroutine benutzt wird.
Der Ausdruck wird als Ganzzahl ausgewertet. Nicht ganzzahlige Werte werden auf die nächste Ganzzahl gerundet.
Wenn die Auswertung des Ausdrucks zu einer Zahl führt, die größer als die Zahl der spezifizierten Anweisungen ist oder die kleiner als 1 ist, wird GOSUB ignoriert.
Anweisungsnummern in der auf OF folgenden Folge müssen durch Kommata voneinander getrennt werden.
IF ...THEN (WENN. . .DANN)
Abtastprogramm: 10 LET N = 10
20 READ X
30 IF X <=N THEN 60 40 PRINT "X IST DARÜBER";N 50 GO TO 100
60 PRINT "X IST KLEINER ALS ODER GLEICH"; N 70 GO TO 20
80 STOP
Allgemeine Form:
Anweisungsnummer IF Ausdruck Vergleichsoperand Ausdruck THEN Anweisungsnummer
Zweck
Übergabe der Steuerung an eine spezifizierte Anweisung, wenn eine spezifizierte Bedingung vorhanden ist.
309884/ 1370
IF...THEN (FORTSETZUNG) Bemerkungen
Wird manchmal als bedingter Transfer beschrieben; "GO TO" wird von IF...THEN eingeschlossen, wenn die Bedingung zutrifft. Im obigen Beispiel wird, wenn X<=10 ist, die Meldung in Anweisung 60 gedruckt (Anweisung 60 wird ausgeführt).
Da Zahlen im Rechner nicht immer genau dargestellt sind, sollte der =-Operator in IF...THEN-Anweisungen mit Vorsicht benutzt werden. Wenn eben möglich, sollten lieber Begrenzungen wie<=, >= usw. in einem IF-Ausdruck benutzt werden als das =.
Wenn die spezifizierte Bedingung für einen Transfer nicht zutrifft, wird die Ausführung des Programms in der Folge fortgesetzt. Ist im obigen Beispiel X>10, wird die Meldung in Anweisung 40 gedruckt.
Der Vergleichsoperator ist in logischen Auswertungen wahlweise.
FOR...NEXT
Beispiele: 100 FOR Pl = 1 TO 5
110 FOR Ql = N TO X
120 FOR R2 = N TO X STEP 2.5 130 FOR S = 1 TO X STEP Y 140 NEXT S.
150 NEXT R2
160 NEXT Ql
170 NEXT Pl
Abtastprogramm - Variable Schleifenzahl
40 PRINT "WIE OFT SOLL DIE SCHLEIFE DURCHLAUFEN WERDEN"; 50 INPUT A
60 FOR J = 1 TO A
70 PRINT "DIES IST SCHLEIFE";J
309884/1370
FOR..,NEXT (FORTSETZUNG)
80 READ Nl,-N2, N3
90 PRINT "DIESE DATENPOSTEN WURDEN GELESEN:" Nl; N2; N3 100 PRINT "SUMME="; (N1+N2+N3)
110 NEXT J
120 DATA 5, 6, 7, 8, 9, 10, 11, 12 130 DATA 13, 14, 15, 16, 17, 18, 19, 20, 21 140 DATA 22, 23, 24, 25, 26, 27, 28, 29, 30 150 DATA 31, 32, 33, 34
160 END
Allgemeine Form:
Anweisungsnummer FOR einfache Variable = Anfangswert TO Endwert
oder
Anweisungsnummer FOR einfache Variable = Anfangswert TO Endwert STEP Schrittweite
Anweisungsnummer NEXT einfache Variable
Zur Beachtung: Sowohl in der FOR- als auch in der NEXT-Anweisung einer Schleife muß dieselbe einfache Variable benutzt werden.
Zweck
Kontrollierte Wiederholungen einer Gruppe von Anweisungen innerhalb eines Programms.
Bemerkungen
Anfangswert, Endwert und Schrittweite können beliebige Ausdrücke sein.
STEP und Schrittweite sind wahlweise; wenn keine Schrittweite spezifiziert wird, nimmt der Rechner automatisch einen Zuwachs von 1 an, so oft er die Schleife ausführt.
Arbeitsweise der Schleife:
Die einfache Variable wird dem Wert des Anfangswerts zugeordnet;
309884/137 0
FOR...NEXT (FORTSETZUNG)
der Wert der einfachen Variablen wird um 1 (oder um die Schrittweite) angehoben, jedesmal wenn die Schleife ausgeführt wird. Wenn der Wert der einfachen Variable den Endwert passiert, wird die Steuerung an die Anweisung übergeben, die der "NEXT"-Anweisung folgt.
Anfangswert, Endwert und Schrittweite werden alle nach Eintritt in die Schleife ausgewertet und bleiben nach Eintritt unverändert. Zum Beispiel geht
FOR I = 1 TO I + 5
von 1 bis 6; das bedeutet, daß der Endwert sich nicht "bewegt", sofern I mit jedem Schleifendurchlauf ansteigt.
Weitere Details betreffend STEP siehe unter "FOR...NEXT mit STEP" in Abschnitt III.
Wenn man nicht sicher ist, was passiert, wenn FOR...NEXT-Schleifen in einem Programm benutzt werden, versucht man das Abtastprogramm ablaufen zu lassen.
Im selben Programm können verschiedene FOR...NEXT-Schleifen benutzt werden; sie können auch verschachtelt (ineinander angeordnet) werden. Es gibt zwei wichtige Merkmale von FOR...NEXT-Schleifen.
READ, DATA UND RESTORE (LESEN, DATEN UND ZURÜCKSTELLEN)
Abtastprogramm, das READ und DATA benutzt
15 FOR I=I TO 5
20 READ A
40 LET X=At2
45 PRINT A;" SQUARED=";X
50 NEXT I
55 DATA 5.24,6.75,30.8,72.65,89.72
60 END
309884/1370
READ, DATA UND RESTORE (FORTSETZUNG)
Jeder Datenposten kann in diesem Programm nur einmal gelesen werden. Der Rechner hält die Datenspur mit einer "Hinweismarke". Wenn auf die erste READ-Anweisung getroffen wird, zeigt die "Hinweismarke" an, daß der erste Posten in der ersten DATA-Anweisung zu lesen ist; die Hinweismarke wird dann zum zweiten Datenposten bewegt usw..
In diesem Bespiel verbleibt die Hinweismarke am Ende der Datenliste, nachdem die Schleife fünfmal ausgeführt worden ist. Um die Daten erneut zu lesen, ist es notwendig, die Hinweismarke zurückzusetzen. Eine RESTORE-Anweisung bewegt die Hinweismarke zurück zum ersten Datenposten.
Abtastprogramm, das READ, DATA und RESTORE benutzt.
20 FOR I=I TO 30 READ A 40 LET X=Af2 50 PRINT A; "ZUM QUADRAT =";X 60 NEXT I
80 RESTORE 100 FOR J=I TO 110 READ B 120 LET Y=Bj4 130 PRINT B;"HOCH VIER =";Y 140 NEXT J 150 DATA 5.24,6.75,30.8,72.65,89.72 160 END
Allgemeine Form:
Anweisungsnummer READ Variable j_ Variable j_ . . Anweisungsnummer DATA Zahl oder String j_ Zahl oder String j_ , Anweisungsnummer RESTORE Anweisungsnummer RESTORE Anweisungsnummer
Zweck Die READ-Anweisung weist den Rechner an, einen Posten aus
:? η 9 ii π /f /1 3 7 ο
READ, DATA AND RESTORE (FORTSETZUNG) einer DATA-Anweisung zu lesen.
Die DATA-Anweisung wird benutzt, um in einem Programm Daten zu spezifizieren. Die Daten werden von der ersten bis zur letzten DATA-Anweisung aufeinanderfolgend und innerhalb der DATA-Anweisung von links nach rechts gelesen.
Die RESTORE-Anweisung setzt die Hinweismarke auf den ersten Datenposten zurück, wodurch ermöglicht wird, die Daten erneut zu lesen.
RESTORE gefolgt von einer Anweisungsnummer setzt die Hinweismarke auf den ersten Datenposten zurück, beginnend an der spezifizierten Anweisung.
Bemerkungen
READ-Anweisungen benötigen mindestens eine DATA-Anweisung im selben Programm.
Posten in einer DATA-Anweisung müssen durch Kommata voneinander getrennt werden. String- und numerische Daten können miteinander gemischt werden.
DATA-Anweisungen können an beliebiger Stelle in ein Programm gesetzt werden. Die Datenposten werden nacheinander geisen, wie sie benötigt werden.
DATA-Anweisungen führen zu keiner Ausführung; sie spezifizieren lediglich Daten.
Der RUN-Befehl setzt die Hinweismarke automatisch auf den ersten Datenposten.
3 0 9 8 8 U I 1 3 7 Π
OWGWAU
WAIT (WARTEN)
Beispiel: 900 WAIT (1000)
990 WAIT (3000)
Allgemeine Form: Anweisungsnummer WAIT (Ausdruck max. Wert
von 3 27 67)
Zweck
Einführung von Verzögerungen in ein Programm. WAIT bewirkt, daß das Programm für die spezifizierte Anzahl von Millisekunden (maximal 3 27 67 Millisekunden) wartet, bevor die Ausführung fortgesetzt wird.
Bemerkungen
Die durch WAIT erzeugte Zeitverzögerung ist nicht genau die spezifizierte Anzahl von Millisekunden, da nicht dafür gesorgt ist, daß die während der Rechnung oder während der Kommunikation mit einem Terminal-Computer verbrauchte Zeit berechnet wird.
DER BEGRIFF DER FUNKTION
Die Funktion ist in BASIC als die mathematische Beziehung
zwischen zwei Variablen (z.B. X und Y) definiert, derart, daß für jeden Wert von X ein und nur ein Wert von Y vorhanden ist.
Bemerkungen
Die unabhängige Variable in einer Funktion wird Argument genannt; die abhängige Variable ist der Funktionswert. Ist zum Beispiel X das Argument, der Funktionswert die Quadratwurzel von X, dann nimmt Y den Funktionswert an.
4/1370
FOR...NEXT MIT STEP
Beispiele: 20 FOR 15 = 1 TO 20 STEP 2
40 FOR N2 = O TO -10 STEP -2
80 FOR P = 1 TO N STEP X5
90 FOR X = N TO W STEP (N*2-V)
Allgemeine Form:
Anweisungsnummer FOR einfache Variable = Ausdruck TO Ausdruck STEP Ausdruck
Zweck
Ermöglicht es dem Benutzer, die Größe des Zuwachses der FOR-Variablen zu spezifizieren.
Bemerkungen
Die Schrittweite braucht keine Ganzzahl zu sein. Zum Beispiel ist
100 FOR N = 1 TO 2 STEP .01
eine gültige Anweisung, die annähernd 100 Schleifenausführungen erzeugt, wobei N jedesmal um 0,01 angehoben wird.
Eine Schrittweite von 1 wird angenommen, wenn STEP aus einer FOR-Anweisung weggelassen wird.
Wie in der obigen Anweisung 40 gezeigt ist, kann eine negative Schrittweite benutzt werden.
ALLGEMEINE MATHEMATISCHE FUNKTIONEN
Beispiele: 642 PRINT EXP(N); ABS(N)
652 IF RND (0)> = .5 THEN 900
"'.' Ü 9 8 8 h I 1 3 7 Π
ORIGINAL INSPECTED
ALLGEMEINE MATHEMATISCHE FUNKTIONEN (FORTSETZUNG)
662 IF INT (R) # 5 THEN 672 PRINT SQR (X); LOG (X)
Allgemeine Form: Die allgemeinen mathematischen Funktionen
können als Ausdrücke oder als Teile eines Ausdrucks benutzt werden.
Zweck
Erleichterung der Benutzung von gewöhnlichen mathematischen Funktionen, indem sie vordefiniert werden als:
ABS(Ausdruck) Absolutwert des Ausdrucks;
EXP(Ausdruck) die e-Funktion des Ausdrucks (in der obigen Anweisung 64 2 etN);
INT(Ausdruck) die größte Ganzzahl £ dem Ausdruck;
LOG(Ausdruck) der natürliche Logarithmus des positiv gewerteten Ausdrucks;
RND(Ausdruck) eine zufällige Zahl zwischen 1 und 0; der Ausdruck ist ein Formalparameter (Scheinargument);
SQR(Ausdruck) die Quadratwurzel des positiv gewerteten Ausdrucks.
Bemerkungen
Die RND-Funktion kann erneut gestartet werden; die Folge von Zufallszahlen, die durch Benutzung von RND entsteht, ist jedesmal identisch, sooft ein Programm abläuft.
TRIGONOMETRISCHE FUNKTIONEN
Beispiele: 500 PRINT SIN(X): COS(Y)
510 PRINT 3*SIN(B); TAN (C2)
520 PRINT ATN (22.3)
530 IF SIN (A2) <1 THEN 800
540 IF SIN (B3) =1 AND SIN(X) <1 THEN
3 09884/1370
TRIGONOMETRISCHE FUNKTIONEN (FORTSETZUNG) Zweck
Erleichterung der Benutzung gewöhnlicher trigonometrischer Funktionen, indem sie folgendermaßen vordefiniert werden:
SIN (Ausdruck) Sinus des Ausdrucks
COS (Ausdruck) ■ Cosinus des Ausdrucks
TAN (Ausdruck) Tangens des Ausdrucks
ATN (Ausdruck) Arcustangens des Ausdrucks
Bemerkungen
Die Funktion ist die des Wertes des Ausdrucks (des Wertes in runden Klammern, auch Argument genannt).
Die trigonometrischen Funktionen können als Ausdrücke oder Teile eines Ausdrucks benutzt werden.
Der Winkel der trigonometrischen Funktionen kann in Bogenmaß, Grad oder Neugrad spezifiziert werden, indem eine RAD-, DEG- oder GRAD-Anweisung ausgeführt wird. In Ermangelung einer Spezifizierung nimmt der Rechner Bogenmaß an.
DIE FUNKTIONEN TAB UND SGN
Beispiele: 500 IF SGN (X) #· Q THEN
510 LET Y = SGN(X)
520 PRINT TAB (5); A2; TAB (2O)11TEXT" 530 PRINT TAB (N),X,Y,Z2 540 PRINT TAB (X+2) "HEADING"; R5
Allgemeine Form: TAB und SGN können als Ausdrücke oder Teile
eines Ausdrucks benutzt werden. Die Funktionsformen sind:
TAB (Ausdruck, der die Anzahl der zu verschiebenden Leerfeider angibt)
309884/1370
DIE FUNKTIONEN TAB UND SGN (FORTSETZUNG)
SGNAusdruck ]_
Zweck
TAB (Ausdruck) wird nur in einer PRINT-Anweisung benutzt und bewirkt, daß das abschließende Schriftbild um die Zahl von Abständen bewegt wird, die durch den Ausdruck (O bis 71) spezifiziert ist. Der Ausdruck Wert hinter TAB wird auf die nächste Ganzzahl gerundet. Ausdruck-Werte größer als 71 bewirken, daß ein zurück Zeile voll erzeugt wird.
SGN (Ausdruck) bringt eine 1 zurück, wenn der Ausdruck größer als O ist, bringt eine O zurück, wenn der Ausdruck gleich O ist und bringt eine -1 zurück, wenn der Ausdruck kleiner als O ist.
DIM
Beispiele: 110 DIM A (50), B(2O,2O)
120 DIM Z (5,20)
130 DIM S (5,25)
140 DIM R (4,4)
Allgemeine Form:
Anweisungsnummer DIM Matrix-Variable _(_ Ganzzahl _)_ ...
oder
Anweisungsnummer DIM Matrix-VariableGanzzahl j_ Ganzzahl )_ . .
Zweck
Reservierung von Arbeitsraum im Speicher für eine Matrix. Der größte Ganzzahl-Wert (Matrix-Grenze) ist 255.
309884/ 1 370
DIM (FORTSETZUNG)
Bemerkungen
Die Ganzzahlen beziehen sich auf die Anzahl der Matrix-Elemente, wenn nur eine Dimension zugeführt wird, oder auf die Zahl von Reihen bzw. Spalten, wenn zwei Dimensionen gegeben sind.
Eine Matrix-(Feld-)Variable ist jeder Einzelbuchstabe von A bis 2.
Bei in einer DIM-Anweisung nicht erwähnten Feldern wird angenommen, daß sie 10 Elemente haben, wenn''eindimensional sind, oder daß sie IO Reihen und Spalten haben, wenn sie zweidimensional sind.
Die Arbeitsgröße einer Matrix kann kleiner als ihre physikalische Größe sein. Zum Beispiel kann ein in einer DIM-Anweisung als 9x9 deklariertes Feld benutzt werden, um weniger als 81 Elemente zu speichern; die DIM-Anweisung setzt nur eine Obergrenze für die Zahl der ßlemente fest.
Das absolute Maximum der Matrixgröße hängt von der Speicherkapazität des Rechners ab.
Zusätzliche Matrix-Anweisungen sind verfügbar, wenn ein einsteckbarer Nur-Lese-Speichermodul im Rechner eingesetzt ist. Die zusätzlichen Anweisungen werden weiter unten detailliert beschrieben.
309884/1370
ÖFHßlNAL
ABSCHNITT V
LOGISCHE OPERATIONEN
LOGISCHE WERTE UND NUMERISCHE WERTE
Wenn die logische Verwendbarkeit von BASIC benutzt wird, sollte eine Unterscheidung zwischen logischen Werten und den numerischen Werten getroffen werden, die durch logische Auswertung erzeugt werden.
Der logische Wert eines Ausdrucks wird durch Definitionen festgelegt, die im Programm des Benutzers aufgestellt sind.
Die durch logische Auswertung erzeugten numerischen Werte werden durch BASIC zugewiesen. Der Benutzer kann diese Werte nicht zuweisen.
Logischer Wert ist der Wert eines Ausdrucks oder einer Anweisung, der sich durch Benutzung der folgenden Kriterien ergibt:
Jeder Wert eines Ausdrucks, der nicht O ist = "wahr" Jeder Wert eines Ausdrucks, der O ist = "falsch"
Wenn ein, Ausdruck oder eine Anweisung logisch ausgewertet ist, wird sie einem von zwei numerischen Werten zugeordnet, und zwar entweder
1, was bedeutet, daß der Ausdruck oder die Anweisung
"wahr"ist, oder
O, was bedeutet, daß der Ausdruck oder die Anweisung
"falsch"ist.
'•098 tt W 1 3 7 0
VERGLEICHSOPERATOREN
Logische Operatoren können in IF-Anweisungen oder zur Prüfung des numerischen Wertes verwendet werden, der durch die logische Auswertung eines Ausdrucks erzeugt wird, wobei "wahr" =1 und "falsch" = O.
Beispiele: 610 LET X=27
615 PRINT X=27
620 PRINT X#27
630 PRINT X>=27
Die PRINT-Anweisungen des Beispiels geben die numerischen Werte an, die durch logische Auswertung erzeugt werden. Zum Beispiel wird die Anweisung 615 von BASIC interpretiert als "Drucke 1, wenn X gleich 27 ist, drucke 0, wenn X nicht gleich 27 ist". Es gibt nur zwei logische Alternativen; 1 wird benutzt um "wahr" darzustellen, während 0 für "falsch" verwendet wird.
Der numerische Wert der logischen Auswertung hängt von dem Wert des Ausdrucks ab, unterscheidet sich jedoch von diesem. Im obigen Beispiel ist X gleich 27, während der numerische Wert des logischen Ausdrucks X=27 1 beträgt, da er eine "wahre" Bedingung beschreibt.
ABSCHNITT VI
SYNTAX-ERFORDERNISSE VON BASIC Legende
::= "ist definiert als..."
I "oder"
< > schließen ein Element von BASIC ein,
309884/ 1370
Mb
SYNTAX-ERFORDERNISSE VON BASIC (FORTSETZUNG) SPRACHREGELN -
1. Die 'XOM-Anweisung> muß, sofern eine existiert, die erste dargestelle Anweisung sein und die niedrigste Folgenummer haben; die letzte Anweisung muß eine <END-Anweisung> sein.
2. Eine Folgenummer darf 999 9 nicht überschreiten und darf nicht O sein.
3. Exponent-Ganzzahlen dürfen nicht mehr als zwei Ziffern haben
4. Eine formale Grenze darf 255 nicht überschreiten und darf nicht O sein.
5. Eine Subroutinen-Nummer muß zwischen 1 und 63 liegen, wobei diese" Zahlen eingeschlossen sind.
6. Strings dürfen nicht das Anführungszeichen (") enthalten.
7. Ein <Grenzteil> für ein IDN muß doppelt indiziert sein.
8. Ein Feld kann nicht in sich selbst invertiert oder transponiert werden.
9. Ein Feld kann nicht durch das Produkt von ihm selbst und einem anderen Feld ersetzt werden.
<Basis-Programm> ::= (Programm-Anweisung)|<Basis-Programm)
(Programm-Anweisung^
(Programm-Anweisung) ::= (Folgenummer) <Basis-Anweisung)Wagen-
rücklauf
(Folge-Nummer) : := (Ganzzahl)^'
(Basis-Anweisung) ::= <LET-Anweisung>]<DIM-Anweisung>|<£OM-
Anweisung) |{DEF-Anweisung) j ^REM-Anweisung)!
(GO TO-Anweisung) j^IF-Anweisung^|(FOR-
309884/ 1370
ATl
SYNTAX-ERFORDERNISSE (FORTSETZUNG)
Anweisung)! <NEXT-Anweisung)/(GOSUB-Anweisung >| <RETURN-Anweisung>|<END-
Anweisung>J <STOP-Anweisung)|<WAIT-Anweisung >| <CALL-Anweisung)|<DATA-Änweisung)! (READ-Anweisung)| (RESTORE-Anweisung > I <INPUT-Anweisung> j <PRINT-Anweisung>| (MAT-Anweisung)
'. LET-Kopf > (Formel)
LET-(Variable?=I<LET-Kopf>(Variable)= ',Konjunktion) [ (Formel) OR (Konjunktion)
(Logischer Primärausdruck> (Konjunktion) AND(Logischer Primärausdruck>
^Logischer Primärausdruck)::= (Arithmetischer Ausdruck> | (Logischer
Primärausdruck?(Vergleichsoperator) (Arithmetischer Ausdruck)
(Term> | Arithmetischer Ausdruck>+(Term>j (Arithmetischer Ausdruck)—(Term) (Faktor)|(Term)*(Faktor)|(Term)/<Faktor> (Primärausdruck)|<Vorζeichen) (Primärausdruck) !NOT(Primärausdruck> (Operand? |(Primärausdruck)tiOperand)
<LET-Anwei sung>
<LET-Kopf)
^Formel)
{Kon j unktion\
(Arithmetischer Ausdruck): : =
(Term) : : =
(Faktor) : : =
{Primärausdruck/ ' : : =
-^Vergleichsoperator) : : =
Operand) : : =
■ Variable) : : =
• Einfache Variable : : =
■Indizierte. Variable.^ : : =
-Feldidentifizierer^ ::=
■Indizierter Kopf : : =
Index : : =
Buchstabe : : =
'Variable)|(Zahl ohne Vorzeichen)! (Systemfunktion) j (Funktion) | ',Formel-Operand)
^Einfache Variable) !(Indizierte Variable >
(Buchstabe) !(Buchstabe) (Ziffer)
(Feld-Identifizierer)(Indizierter Kopf)(Index)(Rechte Klammer)
(Buchstabe)
(Linke Klammer) -vLinke Klammer) (Index) (Formel."
AlBIClD E F :G|H !i |J;k|LIM|N10!p!q: RlS: T1 U V 'WIXiYjZ
,Ziffer
Linke Klammer
Rechte Klammer
Vorzeichen
Zahl ohne Vorzeichen ::= Ο|ΐί 2!3 4 5 * 6|7)8!9
'-■·= JU
:= ■' Dezimalteil) | \Dezimalteil) (Exponent)
'■' Q 9 8 8 A / 1 3 7 0
SYNTAX-Erfordernisse (Fortsetzung;
<Dezimalteil>
<Ganzzahl> <Exponent>
< Systemfunktion>
< Systemfuntionsname>
<Parameterteil>
<tatsächlicher Parameter >
<Funktion> <Formeloperand> <DIM-Anweisung> <formale Feldliste>
<formales Feld> <Formalgrenzenkopf>
<Formalgrenze> <COM-Anweisung> <DEF-Anweisung>
<Formelparameter> <REM-Anweisung> <Zeichen-ST,RING>
< GOTO-Anwei sung > <IF-Anweisung> <FOR-Anweisung> <FOR-Kopf>
<FOR-Variable> ,<Anfangswert> <Endwert>
<Schrittweite> = <Ganzzahl>|<Ganzzahl>.<Ganzzahl>|.
<Ganzzahl>
= <Ziffer>|<Ganzzahl><Ziffer> = E<Ganzzahl>| E<Vorzeichen> <Ganzzahl>'"^ = <Systemfunktion Name> <Parameterteil> = SIN I COS I TAN IATN j EXP\LOG|ABS|SQR j INT|
RND j SGN
= <linke Klammerxtatsächlicher Parameter>
<rechte Klammer>
<Formel>
= FN<Buchstabe><Parameterteil> <linke Klammer> <Formel><rechte Klammer> DIM<formale Feldliste>
: <formales Feld>[<formale Feldliste>,
<formales Feld>
= <Feldidentif iziererxFormalgrenzenkopf > <Formalgrenze><rechte Klammer>
= <linke Klammer>J<linke Klammer> <Forma1-grenze >
=<Ganzzahl> (4)
= COM<formale Feldliste>
= DEF FN<Buchstabe><linke KlammerxFormalparameter> <rechte Klammer>=<Formel>
= <einfache Variable>
= REM<Zeichen-STRING>
= jedes Fernschreibzeichen mit Ausnahme
von Waganrücklauf, ALT-Betrieb, entkommen, RUBOUT, Zeile voll, Null, Kontrolle B, Kontrolle C, linker Pfeil
= GO TO<Folgenummer>
IF<Formel>THEN<Folgenummer> : <FOR-Kopf> J <FOR-Kopf>STEP<Schrittweite>
= FOR<FOR-Variable>=<Anfangswert>TO< <Endwert>
: <einfache Variable>
= <Formel>
: <Formel>
: <Formel>
:? η 9 8 a a /1 3 7 η
2333Π08 -
<NEXT-Anweisung> <GOSUB-Anweisung> <RETURN-Anweisung> <END-Anweisung>
< STOP-Anweisung> <WAIT-Anweisung> <CALL-Anweisung> <CALL-Kopf>
< Subroutinennummer >■ <DATA-Anweisung>
<Konstante>
<READ-Anweisung> <Variablenliste> <RESTORE-Anwelsung> <INPUT-Anweisung> <PRINT-Anweisung> <PRINT-Kopf> <PRINT-Teil>
<STRING>
<Begrenzer> <PRINT-Formel> <MAT-Anweisung> <MATRIX-Körper>
<MATRIX-Lesen> <tatsächliches Feld> <Grenzteil>
<tatsächlicher Grenzkopf >
''tatsächliche Grenze> <MATRIX-Drucken>
= NEXT<FOR-Variable>
= . GOSUB<Folgenummer>
= RETURN
= END
= STOP
= WAIT<Parameterteil>
= CALL<CALL-Kopfxrechte Klammer>
= <linke Klammer><Subroutinennummer>| <CALL-Kopf>,<tatsächlicher Parameter>
= <Ganzzahl>(5)
= DATA<Konstante>|<DATA-Anweisung>, <Konstante>
= <Zahl ohne Vorzeichen>|<Vorzeichen> <Zahl ohne Vorzeichen>
= READ<Variablenliste> =<Variable>|<Variablenliste>,<Variable> = RESTORE
= INPUT<Variablenliste> = <PRINT-Kopf>I<PRINT-Kopf> <PRINT-Formel> = PRINT|<PRINT-KopfxPRINT-Teil>
= <STRING>I<STRING><Begrenzer>|<PRINT-Formel ><Begrenzer>|<PRINT-Formel> < STRING >{< PRINT-Formel> <STRINGxBegrenzer>
::= "<Zeichen-STRING>"(6) .
• · — r I r
::= <Formel>|TAB<Parameterteil> ::= MAT<MATRIX-Körper>
::= <MATRIX-Lesen>|<MATRIX-Drucken>| <MATRIX-Ersetzen>
::= READ<tatsächliches Feld>|<MATRIX-Lesen>, <tatsächliches Feld>
::= <Feldidentifizierer>|<Feldidentifizierer> <Grenzteil>
::= <tatsächlicher Grenzkopfxtatsächliche Grenzexrechte Klammer>
::= <linke Klammer>|<linke Klammer> <tatsächliche Grenze>/
::= <Formel>
::= PRINT<MATRIX PRINT-Teil>|PRINT <MATRIX PRINT-Teil><Begrenzer>
309834/ 1370
PAGINAL INSPECTED
2 3 3 ^ ^ Π 8 -■««■" /SO
<MATRIX-PRINT-Teil>
<MATRIX-Ersetzen>
<MATRIX-Formel>
<MATRIX-Funktion> :
<MATRIX-Initialisierung>: <Feldparameter> :
<MATRIX-Operator> :
:= <Feldidentifizierer>[<MATRIX PRINT-Teil> <Begrenzer><Feldidentifχζierer>
:= <Feldidentifizierer>=<MATRIX-Formel>
:= <Feldidentifizierer>|<MATRIX-Funktion>] <FeldidentifiziererxMATRIX-Operator> <Feldidentifizierer>|< Formeloperand>+ <Feldidentifχζierer>
:= <MATRIX-Initialisierung>[<MATRIX-Initialisierung ><Grenzteil>jINV<Feldparameter> TRN<Feldparameter>
:= ZER) CONI IDN (7)
:= <linke KlammerxFeldidentifizierer> <rechte Klammer>(8)
30983 U /137 Γ]
ORIGINAL INSPECTED
2 3 " ■'-! '■ l Π 8 Einsteckbarer Nur-Lese-Speicner-Modul für Strings
Der einsteckbare Nur-Lese-Speicher-Modul für Strings macht für den Benutzer alle String-Variablen-Funktionen und -Operationen verfügbar, die der Standard-BASIC-Programmierspräche zugeordnet sind. Zwei zusätzliche Funktionen, die in den meisten Versionen der BASIC-Sprache üblicherweise nicht vorgesehen sind, sind in Wirkung gesetzt worden. Diese beinhalten eine POS-Funktion zur Bestimmung der Position eines Unterstring innerhalb eines String, eine VAL-Funktion zur Bestimmung der Position eines Unterstring innerhalb eines String und eine VAL-Funktion zur Bestimmung des numerischen Wertes eines String. Eine Diskussion dieser und anderer Stringfunktionen und -operationen folgt.
String
Ein Satz von 1 bis 255 Zeichen oder das Null-String (keine Zeichen). Beispiele: "ABCDEF"
"12345"
String-Variable
Eine Variable, die zur Speicherung von Strings benutzt wird; sie besteht aus einem einzigen Buchstaben (A bis Z) gefolgt von einen φ.
Beispiele: Αφ; Βφ; ζφ
Unterstring-Variable
Ein einzelnes Zeichen oder ein Satz von benachbarten Zeichen aus dem Innenbereich einer String-\&riable. Das Unterstring ist durch eine indizierte String-Variable definiert. Ein einzelner Index spezifiziert das erste Zeichen des Unterstring und bewirkt, daß alle folgenden Zeichen Teil des Unterstring sind. Zwei Indizes spezifizieren das erste und das letzte Zeichen des Unterstring. Beispiele: Αφ = "ABCDEF"
Αφ(4) = DEF
Αφ(1,3) = ABC
30988 U /137 0
ORIGINAL INSPECTED DIM-Anweisunq
Allgemeine Form:
Anweisung? DIM Strinqvariable (fZeichen in String ]_
Zweck:
Reserviert Speicherraum für Strings, die langer als ein Zeichen sind.
Bemerkungen:
Die Zahl der für ein String in seiner DIM-Anweisung spezifizierten Zeichen muß als eine Ganzzahl von 1 bis 255 ausgedrückt werden. In einer DIM-Anweisung nicht erwähnte Strings werden so betrachtet, als hätten sie die Länge 1. Die in der DIM-Anweisung erwähnte Länge spezifiziert die maximale Anzahl von Zeichen, die zugeordnet werden könnten, und ist als physikalische Länge bekannt. Die tatsächliche Länge ist die tatsächliche Anzahl von Zeichen, die zugeordnet worden sind.
Beispiel: DIMAg(IO), B(5,5), B0(255) Semantische Beschreibung eines Quellenstring
Ein Quellenstring ist eine Wesenheit, aus der ein String-Wert herausgezogen wird. Wenn für eine Stringvariable kein Unterstring-Designator spezifiziert ist, ist der Wert des Quellenstring das* gesamte logische String, das ihm zur Zeit zugeordnet ist. Unter-String-Designator-Ausdrücke müssen mindestens den Wert 1 haben, und der zweite darf nicht um mehr als 1 kleiner als der erste sein. Wenn ein Index gegeben ist, ist der Wert das gesamte logische String, beginnend bei dem Zeichen, das durch den Index spezifiziert ist. Der Index kann nicht größer sein als die tatsächliche Länge des String plus 1. Wenn zwei Unterstring-Ausdrücke gegeben sind, ist der Quellenstring-Wert das Unterstring, dessen erstes und letztes Zeichen bestimmt sind. Wenn sich das spezifizierte Unterstring über die logische Länge des String hinaus erstreckt, werden Zwischenräume benutzt, um das Unterstring auszufüllen.
309884/1370
Zuordnunqs-Anweisunq
Allgemeine Form:
ZeiLef [let] Bestimmungsstring = Quellenstring
Bestimmungsstring:
Ein Bestimmungsstring ist eine ganze Stringvariable oder ein Teil einer Stringvariablen, in welche ein Quellenstring kopiert werden soll. Die Definition der Funktion hängt ab von der Anzahl der in dem Bestimmungsstring spezifizierten Unterstring-Indizes.
Wenn kein Index-Qualifizierer spezifiziert ist, wird die gesamte Bestimmungsvariable durch das Quellenstring ersetzt. Die physikalische Länge des Bestimmungsstring muß groß genug sein, um das gesamte Quellenstring aufnehmen zu können.
Wenn ein Unterstring-Index spezifiziert ist, wird der gesamte Wert der Bestimmungsvariablen, beginnend bei dem festgelegten Zeichen, durch das Quellenstring ersetzt. Der Teil der Bestimmungsvariable, der dem Indexwert vorangeht, bleibt unverändert. Der Indexwert darf nicht um mehr als 1 größer als die tatsächliche Länge der Bestimmungsvariablen sein.
Wenn zwei Indizes spezifiziert sind, darf der erste Unterstring-Index um nicht mehr als 1 größer als die logische Länge der Bestimmungsvariable sein, und der zweite Index darf nicht größer als die physikalsche Länge der Bestimmungsvariablen sein. Der spezifizierte Abschnitt des Bestimmungsstring wird durch das Quellenstring ersetzt. Wenn das Quellenstring länger als die Bestimmung ist, wird es auf der rechten Seite abgeschnitten. Wenn das Quellenstring kürzer ist, werden hinten so viele Leerstellen angehängt, wie nötig ist. Die neue tatsächliche Länge des Bestimmungsstring ist die größere von der alten tatsächlichen Länge und dem zweiten Index.
30988W1370
String-Eingabe-Anweisung
Allgemeine Form:
Anweisung fr INPUT String- oder Unterstring-yarlable
Zweck:
Erlaubt die Eingabe von Stringwerten vom Tastenfeld aus.
Bemerkungen:
In derselben Eingabeanweisung können numerische Variable wie Stringvariable benutzt werden. Wird eine einzige Stringvariable in eine Eingabeanweisung gesetzt, so ist es möglich, den Stringwert einzugeben, ohne ihnVAnführungsstriche zu setzen. Wenn mehrfache Stringvariable benutzt werden, muß jeder Stringwert in Anführungsstriche gesetzt werden,und die Werte müssen durch Kommata voneinander getrennt werden.
. Beispiel: 10 INPUT h$, B0, C, Al, Ag(1,5)
S tr ing-Druck-Anwe is ung
Allgemeine Form:
Anweisung^= PRINT String- oder Unterstring-Variable
Zweck:
Bewirkt, daß der derzeitige Wert der spezifizierten String- oder Unterstring-Variablen auf dem Standard-Ausgabegerät ausgegeben wird'.
Bemerkungen:
Strings und numerische Werte können in einer Druckanweisung vermischt werden. Stringvariable werden genauso wie numerische Variable spezifiziert. Sie werden unter den gleichen Formatregeln gedruckt wie Quotenfelder, String- und Unterstring-Variablen werden als Quellenstrings gedruckt.
Bei Benutzung der Druckanweisung können maximal 72 Zeichen gedruckt werden, d.h. daß alle Strings mit mehr als 72 Zeichen
309884/ 1 370
? 3 3 3 CU) 8 -
hinter dem 72sten Zeichen abgeschnitten werden.
String-Lese-Änweisung
Allgemeine Form:
Anweisung» READ String oder Unterstring-Variable
Zweck:
Bewirkt, daß der Wert einer spezifizierten String- oder Unterstring-Variablen von einer Datenanweisung gelesen wird.
Bemerkungen:
Vermischte String- und numerische vierte können gelesen werden. Wenn in der Datenanweisung der falsche Datentyp gegeben ist, wird ein Fehler angezeigt.
Beispiel: 10 READ A, Bg(I,10), C$, B
String-IF-Anweisung
Allgemeine Form:
Anweisung if IF S tr ingvar i ab Ie Vergleichsoperator String THEN-Anweisung f
Zweck:
Vergleicht zwei Strings. Wenn die spezifizierte Bedingung eingetreten ist, wird die Steuerung zu der spezifizierten Anweisung übergeben.
Bemerkungen:
Strings werden von links nach rechts verglichen, jeweils ein Zeichen zu einer bestimmten Zeit; die erste Differenz legt die Beziehung fest. Wenn ein String endet, bevor eine Differenz gefunden worden ist, wird das kürzeste String als das kleinere betrachtet.
Zeichen werden durch ihre ASCII-Darstellungen miteinander verglichen.
309884/1370
OFHGINAL INSPECTED
Die erlaubten Vergleichsoperatoren sind: =, φ, <, >, <=
Beispiel: 10 IF A$ = "SAM" THEN 20
String-Daten-Anweisung
Allgemeine Form:
Anweisung! DATA "Stringtext", "Stringtext",
Zweck:
Spezifiziert Daten in einem Programm (String oder/und numerisch).
Bemerkungen:
Stringwerte müssen in Anführungsstriche gesetzt werden und durch Kommata voneinander getrennt werden.
String- und numerische Werte können in einer einzelnen Datenanweisung miteinander vermischt werden.
Beispiel: 10 DATA "ABC", 1.2, "DEF"
String-Schreib-Anweisung
Allgemeine Form:
Anweisung? WRITE J_ Geräte x Formatanweisung, f |_ String oder Unterstringvariable
Zweck:
Ähnlich der Druckanweisung, erlaubt jedoch die Spezifizierung des Ausgabegeräts und eine Formatanweisung. In der Formatanweisung werden keine Feld-Spezifikationen für String-Variable gemacht. Sie werden genauso wie String-Konstanten (Quotenfelder) behandelt.
String-Anzeige-Anweisung
Ί 0 9 8 8 U I 1 3 7 0
ORIGINAL INSPECTED
7333908-
Allgemeine Form:
Anweisung DISP String- oder Unterstring-Variable
Zweck:
Identisch mit der Druckanweisung mit der Ausnahme, daß das Ausgabegerät eine 32-Zeichen-Anzeige ist.
LEN-Funktion
Allgemeine Form:
LEN String oder LEN (String)
Zweck:
Gewinnung der Stringlänge zum Gebrauch in einem arithmetischen Ausdruck.
Bemerkung:
Die tatsächliche Länge wird aufgefunden, die nicht notwendigerweise mit der in der DIM-Anweisung reservierten physikalischen Länge übereinstimmt.
Beispiel: LEN ("ABCD") = 4
POS-Funktion
Allgemeine Form:
POS String j_ String oder POS ± String x String )_
Zweck:
Festlegung der Position eines Unterstring innerhalb eines String.
Bemerkungen:
Wenn das zweite String-Argument ein Teil des ersten ist, ist der Wert der Funktion die Position in dem ersten String, bei dem das zweite String beginnt. Wenn das zweite String in dem Argument nicht ein Teil des ersten ist, ist der Wert der Funktion O.
'· 0988 L /1370
- 4-36 -
2333308
Beispiel:
VAL-Punktion
POS ("ABCD" , "C") = 3
Allgemeine Form: VAL String
oder
VAL _(_ String )_
Zweck:
Festlegung des numerischen Wertes eines String.
Bemerkungen:
Die VAL-Funktion wandelt ein String aus Ziffern in eine
Zahl um. Das String wird unter den gleichen Regeln in eine
Zahl umgewandelt, die in einer numerischen Eingabe-Anweisung benutzt werden.
Beispiel:
VAL ("123") =
FEHLERMELDUNGEN FÜR STRING-WAHLBLOCK
70 - String-IF-Fehler
71 - String-Funktions-Syntax-Fehler
72 - negative String-Länge
73 - nicht-benachbarter String
74 - String-Überfüllung
75 - falscher Datentyp
76 - Argument der VAL-Funktion nicht numerisch
BESCHREIBUNG DER BNF-SYNTAX
<Buchstaben-String> <Zeichen-String>
<Zeichen>
<Buchstabe> <Unterliste>
::="<Zeichen-String>"
::=<Zeichen>|<Zeichen-String> <Zeichen>
::= jedes ASCII-Zeichen ausgenommen NULL, ZEILE VOLL, ZURÜCK
::= A|BI ... X|Y|Z ::=<Ausdruck>I<Ausdruck>,<Ausdruck
30988 4/1370
- tr? -
<String-Variable>
<einfache String-Variable>
<Vergleichsoperator>
<Zuordnungs-Anweisung>
<Bestimmungsstring> <Quellenstring>
<IF-Anweisung>
<Daten-Anweisung> <Konstante>
<Leseanweisung> <Variablenliste>
<Variable lesen>
<Eingabeanweisung> <Druckanweisung> <Druck 1>
<Druck 2>
::=<einfache String-Variable> <einfache String-Variable> (<Unterliste>)
::=<Buchstabe>#
;=LET<Bestimmungs5tring>=<Quellenstring >|<Bestimmungsstring>=< Quellenstring>
:=<String-Variable>
:=<String-Variable>|<Buchstaben-String >
:=IF<Bestimmungsstring><Vergleichs-
operatorXQue liens tr ing>THEN <Zeilennummer>
:=DATA<Konstante>|<Daten-Anweisung>, <Konstante>
:=<numerische Konstante>|<Buchstaben-String >
=READ<Variablenliste>
<Variable lesen>|<Variablenliste>, <Variable lesen>
=<numerische Variable>|<String-Variable >
=INPUT<Variablenliste> =<Druck l>|<Druck 2>
=PRINTI<Druck 2>,|<Druck 2>;| <Druck 3>
=<Druck lxAusdruck drucken> | <Druck 3>
<Druck 3>
<Ausdruck drucken> =(Typenanweisung><Buchstaben-String> =<Ausdruck>|<Quellenstring>
WRITE-und DISP-Anweisungen haben die gleiche Syntax wie die PRINT-Anweisung.
<LEN-Funktion> ::=LEN<Quellenstring>[LEN(<Quellen-
String>)
: :=VAL<Quellen-String> | VAI(<Quellen-
<VAL-Funktion> <POS-Funktion> String>)
:;=POS<Quellen-String>,<Quellen-String >|POS(<Quellen-String>, <Quellen-Strinq>)
?, O 9 8 R A / 1 3 7 i")
Mb
2333308
EINSTECKBARER NUR-LESE-SPEICHER-MODUL FÜR ERWEITERTE EINGABE UND AUSGABE
Der Nur-Lese-Speicher-Modiil für erweiterte Eingabe und Ausgabe (im folgenden als erweitertes I/O-ROM bezeichnet) besorgt zusätzliche Funktionen und Anweisungen, so daß der Rechner mit einer großen Vielfalt von Peripheriegeräten kompatibel gemacht werden kann. Die zusätzlichen Funktionen enthalten Dezimal-Binär-Umwandlung, Oktal-Dezimal-Umwandlung, Status-Kode-Nachfrage für Peripheriegeräte, Abstands- und Zeilenfüllungssteuerung in Ausgabe-Aufnahmen und anderes. Die Benutzung dieser Funktionen erfordert keine speziellen Programmiertechniken; sobald das ROM eingesteckt ist, werden seine Funktionen und Anweisungen ein Teil des Rechners, genauso wie z.B. die Quadratwurzel-Funktion Teil des Rechners ist.
Einige Nur-Lese-Speichereinheiten senken die Kapazität des durch den Benutzer verfügbaren programmierbaren Speichers, indem sie automatisch einen Teil dieses Speichers für ihren eigenen internen Gebrauch in Anspruch nehmen. Das erweiterte I/O-ROM stellt jedoch keine derartigen Ansprüche und beeinträchtigt nicht die Verfügbarkeit des Speichers.
Die folgende Tabelle beschreibt die Funktionen und Anweisungen des erweiterten I/O-ROM. In der Tabelle unterstrichene Parameter werden im Anschluß an die Tabelle erklärt. In Klammern gesetzte Parameter können als Teile einer Anweisung· eingeschlossen werden oder nicht.
3 0 9 8 8 U I 1 3-7 0
2 3 3 3 9 Π
FUNKTIONS-MNEMONIK
BIN
OCT
STAT CHAR
LIN SPA ROT
INOR
BESCHREIBUNG DER FUNKTION
SYNTAX
Wandelt einen dezimalen Ausdruck in
sein binäres Äquivalent um. Für die
Benutzung in einer binären Ausgabe-Spei- ! chereinheit; sorgt auch für erhöhte ■ Kontrolle des Druckformats.
BIN exp
Wandelt einen oktalen Ausdruck in sein -OCT exp dezimales Äquivalent um. Für die Be- i nutzung beim Aufbau von Kode-Umwandlungs-* tabellen; siehe "UmwandlungstabeIlen". I
Holt den Kode des Operationsstatus (ein, STAT Auswahlaus, warten usw.) für das durch den iKode Auswahlkode spezifizierte Gerät zurück.
Holt ein Datenbyte von dem Gerät zurück,;CHAR Auswahldas durch den Auswahlkode spezifiziert !Kode ist, ohne Rücksicht auf die Datenstruktur. \
Läßt Drucker oder Schreibmaschine um die LIN exp Anzahl von Zeilen vorrücken, die durch
den Ausdruck dargestellt wird.
Läßt Drucker oder Schreibmaschinenwagen SPA exp um die Zahl von Leerstellen vorrücken, j die durch den Ausdruck dargestellt wird, j
Wandelt Ausdruck .1 in binäres Äquivalent ROT (exp 1, um; führt Rechtsrotation um die Zahl von exp 2) Positionen aus, die durch Ausdruck 2 dargestellt wird; bringt dezimales Äquivalent zurück. Für den Gebrauch spezieller Eingabe- oder Ausgabe-Kode-Übersetzung.
Kombiniert die binären Äquivalente von INOR(exp 1, Ausdruck 1 und Ausdruck 2 in einer logi- :exp 2) sehen "inklusives oder"-Operation.Bringt( dezimales Äquivalent zurück. Für den Gebrauch in spezieller Eingabe- oder Ausgabe-Kode-Übersetzung .
309884/137 0
ORIGINAL INSPECTED
23 3 3 9
FUNKTIONS - SYNTAX
MNEMONIK BESGHREIBUNG DER FUNKTION BIAND
BIAND Kombiniert die binären Äquivalente (exp 1,
von Ausdruck 1 und Ausdruck 2 in einer exp 2)
logischen "und"-Operation. Bringt
dezimales Äquivalent zurück. Für den
Gebrauch in spezieller Eingabe- oder
Ausgabe-Übersetzung t
ANWEISUNGS-SYNTAX
BESCHREIBUNG DER ANWEISUNG
ENTER (Auswahlkode od
Stringname, Format [_, Umwandlungs Tabelle j[) Liste J^,FQR Funktion J
ibt Daten von benanntem Gerät oder String mit wahlweiser Umwandlung in ASCII-Kode ein; beinhaltet eine Iterationsmöglichkeit.
OUTPUT
(Auswahl-Kode oder Stringname, Format £ , Umwand lungs-t tabelle J )_ Liste
Gibt Daten an benanntes Gerät oder String aus mit wahlweiser Umwandlung in ASCII-Kode,
T0988'W137O
OFHGlNAL INSPECTED
JHh
2 3 3: J O ü 8
PARAMETER ERKLÄRUNG
exp Ausdruck
Auswahl- Ein numerischer Kode von 1 bis 15, der folgen-Kode dermaßen eindeutig die Eingabe- oder Ausgabe-Geräte darstellt:
Auswahlkode 1-9 kann vom Benutzer zugeordnet
werden
Auswahlkode 10 Kassettens.peicher
Auswahlkode 11-13 Reserve
Auswahlkode 14 Plotter
Auswahlkode 15 Schreibmaschine oder Drucker
Ein einzelner von einem "0" gefolgter Buchstabe. Nur gültig, wenn auch String-ROM eingesteckt ist. Um auf eine Format-Anweisung Bezug zu nehmen, wird die Zeilennummer dieser Anweisung gezeigt; für Freiform-Daten wird ein Stern (*) gezeigt.
Umwandlungs- Der an eine Umwandlungstabelle gegebene Variablen-
tabelle oder Feldna_me. Siehe unter der Überschrift "Umwandlungstabellen" .
Liste Eine Liste von Variablen, Literalen, Ausdrücken
oder numerischen Zeichen, durch Kommata voneinander getrennt.
FOR-Funktionen Um mehrfache Dateneinheiten von einer Aufnahme
in ein Feld einzugeben. Die Syntax ist folgende:
(FOR var l=exp TO exp, [(FOR var 2= exp TO exp,J Feldname.
Stringname
Format
(var 1 r,var 2 ; )1 ) j )
UMWANDLUNGSTABELLEN
Bei Benutzung einer vorher aufgestellten Umwandlungstabelle kann ein Zeichenstring oder ein Datenfeld von einem Kode in einen anderen umgewandelt werden. Der Rechner macht von den Standard-ASCII-Kodes+ Gebrauch. Alle nicht-ASCII-Darstellungs
American Standard Code for Information Interchange. ^Amerikanischer Normkode für Informationsaustausch)
30988W1370
ORIGINAL
Kodes, die von Druckern, Kartenlesern, Papierbandlesern, Lochern, Schreibmaschinen usw. benutzt werden, seien als 11 fremder Kode" bezeichnet.
Eine Umwandlungstabelle wird durch die DIM-Anweisung des Programms in BASIC-Sprache definiert. Nur Ganzzahlfelder werden für die Benutzung als UmwandlungstabeIlen als gültig angesehen. In den folgenden DIM-Anweisungen sind A, B und C gültige Feldstrukturen für UmwandlungstabeIlen, D und E jedoch nicht.
DIMAI (150), CI (20, 20)
DIM BI ( 80), D(200), E (15, 15)
Um in das Feld Umwandlungstabellen-Information einzufügen, muß zunächst der fremde Kode bekannt sein. Jedes Element des fremden Kodes und sein Äquivalent im ASCII-Kode werden dann in Dezimalzahlen umgewandelt. Dann wird das Feldelement mit dem Index des fremden Kodes dem Wert des ASCII-Kodes zugeordnet. Wenn z.B. in einem fremden Kode das Zeichen "1" durch den Binärkode 0000001 dargestellt wird und "1" die ASCII-Darstellung 0110001 (49,o) hat, dann wäre ein BASIC-Programm zur Umwandlung dieses Kodes:
10 DIM AI (128)
20 A(I) = 49
Eine ähnliche Anweisung gibt es für jeden umzuwandelnden Kode.
eingabe'
Wenn in den Rechner eine Zeichen-Anforderung für den Papierstreifenleser eingetastet worden ist, wird keine Umwandlung durchgeführt, und der Rechner zeigt das dezimale Äquivalent des EIA-Oktalkodes für das von dem Papierband genommene Symbol an. Um eine automatische Kodeumwandlung zu bekommen, muß das Programm eine ENTER-Anweisung enthalten.
410 ENTER (9, 420, A) B
B wird gelesen, und sein ASCII-Äquivalent wird in der Umwandlungstabelle A aufgefunden. Wenn in einem String enthaltene
309884/1370
Daten in den ASCII-Kode umgewandelt werden sollen, wird an Stele des Auswahlkodes der Stringname benutzt, und auf diese Weise kann intern eine Umwandlung durchgeführt werden, genauso wie zur Zeit einer Eingabe oder Ausgabe.
AUSGABE
Für die Ausgabe von Daten in einem fremden Kode wird durch die Benutzung der OUTPUT-Anweisung eine automatische Kodeumwandlung hinzugezogen.
500 OUTPUT (8, 510, A) B
Das ASCII-B wird in der Umwandlungstabelle A aufgefunden und vor der Ausgabe in das Fremdkode-Äquivalent umgewandelt. Es ist zu beachten, daß für Eingabe und Ausgabe dieselbe Umwandlungstabelle A benutzt wird. Die ENTER-Anweisung bewirkt, daß der Rechner nach dem ASCII-Kode Ausschau hält (rechts von den Gleichheitszeichen in der Tabelle) und annimmt, daß er den fremden Kode empfängt; andererseits bewirkt die OUTPUT-Anweisung, daß der Rechner annimmt, daß er den ASCII-Kode hat und daß er nach dem fremden Kode Ausschau hält (auf der linken Seite der Gleichheitszeichen in der Tabelle).
FEHLERKODES
Im erweiterten I/0-R0M gefundene programm-diagnostische oder Fehler-Bedingungen:
NUMMER ERKLÄRUNG
Fehler 83 Ende der Daten erreicht oder Daten enthalten mehr als zehn Leerstellen in einer Zeile.
Fehler 84 Ungültige Format-Spezifizierung: Format muß freies Format (-f) , Ε-Format oder F-Format sein.
Fehler 85 Syntax-Fehler bei numerischer Eingabe: mehrfache Dezimalpunkte, mehr als ein E im Ε-Format usw.
Fehler 86 Umwandlungstabelle nicht gefunden. Auf Ganzzahl-Initialisierung in DIM-Anweisung prüfen.
3 098fU/1370
2331908
EINSTECKBARER NUR-LESE-SPEICHER-MODUL FÜR EIN TERMINAL
Der einsteckbare Nur-Lese-Speicher-Modul für ein Terminal, der mit dem Rechner benutzbar ist, erlaubt dem Benutzer, freien Text einzugeben, zu speichern und aufzubereiten. Es erlaubt außerdem dem Benutzer, mit einem anderen Rechner, Computer oder Teilnehmer-Computer-System in Kommunikation zu treten, entweder direkt oder über ein externes Modem. Der Rechner kann Programme in BASIC-Sprache oder freien Text abgeben oder empfangen.
Um den Rechner in den Terminal-Betrieb zu versetzen, tastet der Benutzer TERM ein und betätigt die EXECUTE-Taste. Wenn er den Rechner für Datenübertragung benutzen will, kann er ein oder zwei wahlweise Parameter spezifizieren, die der TERM-Mnemonik folgen. Der erste Parameter ist der Auswahlkode des Modem-Verbindungsmoduls. Wenn ein anderer Auswahlkode nicht spezifiziert ist, nimmt der Rechner den Auswahlkode 4 an. Der zweite Parameter ist die Baud-Rate der übermittelten Daten. Wenn nicht spezifiziert, nimmt der Rechner 110 Baud an, welches die gleiche Rate ist, wie bei einem Standard-Fernschreiber ASR232. Um zum Beispiel auf Auswahlkode 6 mit 300 Baud zu übertragen oder zu empfangen, gibt der Benutzer TERM,6,300 ein und betätigt anschließend die EXECUTE-Taste. Die wählbare Baud-Rate ist in ganzzahligen Zunahmen von 3 bis 300 kontinuierlich. Die Umwandlung von Zeichen von parallelem in serielles Format erfolgt automatisch in der festverdrahteten Software (Firmware) des Rechners, so daß die Modem-Verbindungsschaltung vereinfacht wird und keine Schalter benötigt werden, um die Baud-Rate zu ändern.
Während der Rechner im Terminal-Betrieb arbeitet, können vom Tastenfeld aus Textzeilen eingegeben werden und durch die END-OF-LINE-Taste abgeschlossen werden. Diesen Zeilen muß eine Zeilennummer vorangehen, aber es gibt keine Syntaxerfordernisse für den Rest der Zeile. Alle Zeile-bei-Zeile-und Zeichen-bei-Zeichen-Aufbereitunqsmöglichkeiten des Rechners sind bei dieser
J 0 9 8 B U I 1 3 7 0
OFHGlNAL VNSPECTED
Betriebsart verfügbar. Diese schließen Auflisten, Rücksprung, Vorwärtssprung, Zeicheneinfügung, Zeichenherausnahme und Wiedergabe-Verschiebungssteuerung ein. Auch eine automatische Zeilennumerierung ist verfügbar. Zusätzlich arbeiten normalerweise die Bandkassetten-Befehle, der PTAPE-Befehl der "ALLES DRUCKEN11-Befehl und der AUFLIST-Befehl. Die Syntax des AUFLIST-Befehls ist erweitert worden und scHleßt LISTX ein, was eine Auflistung ohne Zeilennummern bedeutet. Weiterhin werden eingeschlossen LIST#SC oder LISTXSSC, wobei SC der Auswahlkode der Modem-Verbindung ist, was bedeutet, daß die Information über das Modem zu dem entfernten System übertragen wird.
Wenn der Rechner im Terminalbetrieb arbeitet, können fünf der benutzer-definierbaren Tasten spezielle Bedeutungen annehmen. Die Taste f5 wird eine Fernschreib-Umschalttaste, und f6 wird eine Fernschreib-Steuertaste. Diese Tasten und die Umschalttaste für Kleinbuchstaben erlauben es dem Benutzer, jeden 7-Bit-ASCII-Kode zu erzeugen. Um ein Fernschreib-Umschalt- oder -Steuer-Zeichen zu erzeugen, betätigt der Benutzer zunächst die Taste f5 oder f6 und betätigt dann die passende Taste auf dem alphabetischen Abschnitt des Tastenfeldes. Um zum Beispiel "C-Steuern" zu erzeugen, werden nacheinander die Taste f6 und die Taste C betätigt. Solange die gewählte alphabetische Taste nicht gedrückt ist, wird kein Zeichen in die Anzeige eingegeben. Das in die Anzeige eingegebene Zeichen kann dasselbe wie das alphabetische Zeichen sein oder auch nicht. Zum Beispiel erzeugt ein "Umschalten O" das Symbol —j .
Die Taste f8 wird im Terminal-Betrieb benutzt, um gerade oder ungerade Parität für übertragende Zeichen auszuwählen. Wenn der Terminal-Betrieb zum ersten Mal eingegeben wird, wird gerade Parität angenommen. Der Benutzer kann dann durch Betätigung der Taste f8 zur ungeraden Parität überwechseln. Es wird dann ODD, angezeigt. Um wieder zur geraden Parität zurückzukehren, betätigt der Benutzer wiederum die Taste f8, und es wird EVEN angezeigt.
884/1370
Sfcv.
Die Taste f9 wird im Terminal-Betrieb als Übertragungstaste benutzt. Um eine Nachricht durch die Modem-Verbindung hindurch zu übertragen, wird die Nachricht vom Tastenfeld aus in die Anzeige eingetastet, und dann wird die Zeile durch Drücken der Taste f9 beendet. Der Rechner serialisiert dann die eingegebenen Zeichen und überträgt sie mit der ausgewählten Baud-Rate. Um zum Beispiel eine Auflistung eines Programms von einem entfernten Teilnehmer-Computerdienst zu erhalten, gibt der Benutzer LIST f9 ein. Die übertragungstaste kann auch benutzt werden, um die Antworten in einem "Sign-Orl'-Vorgang für einen Teilnehmerdienst einzugeben.
Die Taste f7 wird benutzt, um den Rechner in einen Betrieb zu versetzen, bei dem ein ankommendes Programm im Speicher festgehalten wird. Um zum Beispiel ein Programm von einem Teilnehmer-Computerdienst zu empfangen und zu speichern, betätigt der Benutzer die Taste f7, gefolgt von LIST f9. Wenn das Programm von dem Teilnehmerdienst aufgelistet wird, werden die Zeilen im Benutzerspeicher des Rechners als freier Text gespeichert. Wenn die Taste f7 nicht unmittelbar vor der Eingabe von LIST f9 betätigt wird, wird das Programm auf dem externen Zeilendrucker gedruckt.
Sobald ein Programm, entweder von einer entfernten Quelle oder vom Tastenfeld aus als freier Text eingegeben worden ist, und wenn es ein BASIC-Programm ist, kann es auf Syntaxfehler geprüft werden und im Speicher in BASIC-Programmformat umgewandelt werden. Dies wird dadurch erreicht, daß COMP eingetastet wird und darauf die EXECUTE-Taste betätigt wird. Alle Syntaxfehler werden aufgelistet, und nur die Zeilen, die korrekte BASIC-Syntax haben, werden übersetzt. Unrichtige Zeilen bleiben im Freitext-Format. Nachdem ein Programm durch den COMP-Befehl übersetzt worden ist, kann es an Ort und Stelle ausgeführt werden, indem irgendeiner der normalen Ausführungsbefehle, zum Beispiel RUN, CONT usw. benutzt wird. Ein Versuch, eine nichtübersetzte Zeile auszuführen, führt dazu, daß eine Fehlermeldung (FEHLER 79) angezeigt wird.
. 30988Λ/ 1370
/ft ^333908
Der Empfangsabschnitt der Modem-Ansteuerungs-Routine arbeitet unter Unterbrechungssteuerung, die es dem Benutzer erlaubt, Programme zur gleichen Zeit an Ort und Stelle und an entfernter Stelle auszuführen. Zum Beispiel ist es möglich, daß der Benutzer auf einem Teilnehmer-Computersystem ein Programm ablaufen lassen will, das bis zu seinem Abschluß mehrere Minuten benötigt. Er kann dieses Programm starten, indem er einen RUN-Befehl überträgt. Während dieses Programm ausgeführt wird, ist der Rechner für normalen Tastenfeld-Betrieb oder für die Programm-Ausführung frei. Die einzige Begrenzung im Betrieb besteht darin, daß der Rechner nicht zur gleichen Zeit die Anzeige oder den Drucker benutzen kann, während er Information von einem entfernten Programm empfängt.
EINSTECKBARER NUR-LESE-SPEICHER-MODUL FÜR EINEN PLOTTER
Der einsteckbare Nur-Lese-Speicher-Modul für einen Plotter ermöglicht es, dem Rechner, einen Rechner-Plotter Hewlett-Packard 9862A zu steuern, der dauernde graphische Lösungen von Problemen erzeugt, die durch den Rechner gelöst werden. Im allgemeinen kann der Satz von Plotter-Befehlen als aus zwei Gruppen bestehend betrachtet werden: Zeichenbefehle und Schreibbefehle. Der Benutzer kann alle beliebigen Zeicheneinheiten spezifizieren, die er sich wünscht. Der Rechner skaliert dann automatisch diese Einheiten, um den gewählten Zeichenbereich auszufüllen. Außerdem können die Tastenfeld-Zeichen des Rechners in verschiedenen Größen und Richtungen gezeichnet werden.
Die Zeichnungs-Befehle setzen das System in den Stand, automatisch Benutzereinheiten zu skalieren; X- und Y-Achsen beliebiger Länge an beliebiger Stelle auf dem Zeichnungsbereich zu ziehen; alle gewünschten Punktmarken auf den Achsen anzubringen; Punkte oder Funktionen zu zeichnen; den Schreibstift vor oder nach der Bewegung zu senken oder zu heben; den aufgestellten Koordinaten-Ursprung zeitweilig auf irgendeinen anderen Punkt innerhalb des Zeichnungsbereiches zu ver-
309884/1370
schieben und dann, immer noch in Benutzereinheiten mit Bezug auf den neuen Ursprung zu zeichnen; in Zuwächsen zu zeichnen (d.h. in Benutzer-Einheiten jeden Punkt mit Bezug auf die derzeitige Schreibstift-Position zu zeichnen).
Die Schreibbefehle ermöglichen es, die meisten Tastenfeldzeichen des Rechners auf dem Plotter zu drucken. Der Benutzer kann die Position, Höhe und Breite der Zeichen sowie die Richtung spezifizieren, in der sie gedruckt werden. Ein Zentrierbefehl (CPLOT) ermöglicht es, Etiketten auf einem bestimmten Punkt zentrieren, so daß die Etikettierung von Achsen und von speziellen Punkten auf der Kurve erleichtert wird. Das Format von Etiketten und Zahlen - Feldbreite, Fest- oder Gleitkomma, die Anzahl der auf den Dezimalpunkt folgenden Ziffern usw. - wird durch Standard-FORMAT-Anweisungen spezifiziert. Zusätzlich führt ein einziges LETTER-Kommando zu einem "Schreibmaschinen"-Betrieb bei dem es möglich ist, den Plotter vom Tastenfeld des Rechners aus auf Zeichen-bei-Zeichen-Basis zu steuern und zu positionieren; dies erlaubt es dem Benutzer, zusätzliche Etiketten oder individuelle Kommentare zu seinen Graphen hinzuzufügen.
INITIALISIERUNG DES PLOTTERS
Vor dem Zeichnen muß der Plotter vorbereitet werden, und die physikalischen Grenzen des Zeichnungsbereiches müssen aufgestellt werden. Zu diesem Zweck werden die Steuerorgane auf der Frontplatte des Plotters benutzt.
NETZ UND PAPIERHALTER
Der Netz-Druckknopf ist der Hauptschalter für den Plotter; er wird gedrückt, um die Energiezufuhr einzuschalten, und er wird noch einmal gedrückt, um die Energiezufuhr abzuschalten; die weiße Netz-Kontrollampe leuchtet, wenn der Plotter eingeschaltet ist.
309884/1370
Drücken von "Papier festhalten" (CHART HOLD) setzt den elektrostatischen Mechanismus zur Papierbefestigung in Betrieb. Durch nochmaliges Drücken von CHART HOLD wird er .außer Betrieb gesetzt. Wenn CHART HOLD außer Betrieb ist, schreibt oder zeichnet der Plotter nicht, und der Schreibstifthalter und dessen Arm sind in allen Richtungen beweglich.
PAPIER EINLEGEN
Um Papier einzulegen, wird CHART HOLD gelöst und der Schreibstiftarm wird auf eine Seite des Plotters aus dem Weg geschoben. Auf die Zeichenfläche wird ein Blatt Papier gelegt und alle Unregelmäßigkeiten in dem Papier werden geglättet (es ist auch möglich, daß man sicher gehen will, daß das Papier rechtwinklig an dem Anschlag an der Unterseite der Zeichenfläche anliegt); dann wird CHART HOLD betätigt.
GRAPH-BEGRENZUNGEN
Die Graph-Begrenzungssteuerungen werden benutzt, um die physikalische Größe der Zeichnung zu begrenzen.
LOWER LEFT (unten links) und die beiden Knöpfe links davon werden benutzt, um die physikalische Stellung der unteren linken Ecke des Zeichnungsbereiches festzulegen.
UPPER RIGHT und die beiden Knöpfe rechts davon werden benutzt, um die physikalische Stellung der oberen rechten Ecke des Zeichnungsbereiches festzulegen. Die obere rechte Ecke und die untere linke Ecke legen zusammen die Größe des Zeichnungsbereiches fest.
Weiterhin wird durch Änderung der unteren linken Einstellung die obere rechte Einstellung in der gleichen Richtung und um den gleichen Betrag verschoben. Um die untere linke Ecke des Zeichnungsbereiches zu spezifizieren, wird LOWER LEFT gedrückt; der Schreibstift bewegt sich ohne das Papier zu berühren in die
309884/1370
Untere linke Ecke des Zeichnungsbereichs. Dieser Punkt kann an eine beliebige Stelle innerhalb des linken unteren Viertels der Zeichnungsfläche gesetzt werden, indem die beiden LOWER LEFT zugeordneten Knöpfe justiert werden. Nachdem die linke untere Ecke festgelegt worden ist, wird die rechte obere Ecke in gleicher Weise festgesetzt, indem UPPER RIGHT gedrückt wird und die beiden zugeordneten Knöpfe eingestellt werden. Nachdem der Zeichenbereich festgelegt worden ist, kann er in seiner Stellung verändert werden, indem die Position der linken unteren Ecke bewegt wird - die obere rechte Ecke folgt dann dieser Veränderung.
ZEICHNUNGSBEFEHLE
Zur Beachtung: 1. Alle Befehle können entweder vom Tastenfeld
aus oder von einem Programm aus aktiviert werden. Ausnahmen sind besonders bezeichnet.
2. Alle Werte in den folgenden Anweisungen können Zahlen, Variable oder Ausdrücke sein. Ausnahmen sind besonders bezeichnet.
3. Jeder Parameter in eckigen Klammern ist wahlweise, soweit es die Anweisung betrifft, die ihn enthält. Der Sinn des Programms kann es jedoch vorschreiben, daß der Parameter in speziellen Fällen vorhanden ist.
DIE SKALENANWEISUNG (SCALE)
SCALE Xmin, Xmax, Ymin, Ymax
Beispiele:
SCALE -10, 10, -5, 5
SCALE-4PI, 4PI, .3, 1.1
stellt die Vollskalen-Einheiten für die Aufzeichnung auf. Xmin bis Xmax und Ymin bis Ymax entsprechen genau den Grenzen der horizontalen bzw. vertikalen Kanten des Zeichnungsbereichs (dieser Bereich wird mechanisch festgelegt, wie bereits be-
3 0988/4/1370
schrieben worden ist). Dies setzt auch den Punkt innerhalb oder außerhalb des Zexchnungsbereiches fest, wo sich der Koordinatenursprung (0,0) befindet.
Bevor ein Zeichnen stattfinden kann, muß eine SCALE-Anweisung ausgeführt werden. Einmal aufgestellt, bleibt die Skala solange stehen, bis eines der folgenden Ereignisse eintritt: Eine neue SCALE-Anweisung wird ausgeführt. Das Programm wird initialisiert. Ein SCRATCH oder SCRATCH A oder SCRATCH V wird ausgeführt.
Der Rechner wird abgeschaltet.
Die Parameter (X, Y usw.) in der SCALE-Anweisung müssen in der richtigen Reihenfolge gegeben werden. Wenn die Minimum- oder Maximum-Werte geschaltet werden, erscheint keine FEHLER-Meldung; es ist jedoch möglich, daß darauf folgende Zeichnungsbefehle nicht richtig ausgeführt werden.
Die SCALE-Anweisung hat keine Wirkung auf die Stellung des Schreibstiftes.
DIE SCHREIBSTIFT-ANWEISUNG (PEN)
Die PEN-Anweisung ist eine eigenständige Instruktion, die keinen Parameter benötigt. Durch sie wird der Schreibstift angehoben, ohne daß er in anderer Weise seine Position relativ zum Zeichnungsbereich verändert.
Instruktionen, um den Schreibstift vor oder nach der Bewegung zu heben oder zu senken, können leicht in verschiedene andere Anweisungen eingeschlossen werden (siehe PLOT und IPLOT), so daß es keine spezielle Instruktion für "Schreibstift-Senken" gibt.
309884/1370
DIE VERSETZUNGS-ANWEISUNG (OFFSET)
OFFSET X, Y
Beispiel: OFFSET 3,-3
Versetzt zeitweilig den Ursprung (den vorher durch die SCALE-Anweisung aufgestellten Punkt 0,0), um einen Betrag und in der Richtung, die durch die Werte von X und Y (in Benutzereinheiten) bestimmt werden. Alle zukünftigen Zeichnungsbefehle werden dann unter Berücksichtigung des neuen Ursprungs gemacht und zwar solange, bis der Ursprung wiederum verändert wird, zum Beispiel durch eine neue OFFSET- oder eine neue SCALE-Anweisung.
Die OFFSET-Anweisungen sind nicht akkumulativ; das bedeutet, ein neues OFFSET bezieht sich auf den Original-Ursprung und nicht auf den zuletzt versetzten Ursprung.
Die Versetzung vereinfacht vom Blickpunkt des Benutzers aus stark das Zeichnen, wenn es notwendig wird, den Zeichnungsbereich in verschiedene kleinere Segmente aufzuteilen und dann in jedem Segment getrennt zu zeichnen. Wenn die Zeichnung in jedem Segment gemacht -wird, ist es nicht notwendig für den Benutzer, vor dem Zeichnen jeden Punkt zu "korrigieren"; stattdessen verschiebt die OFFSET-Anweisung den Ursprung an einen zweckmäßigen Punkt innerhalb des Segmentes, so daß der Rechner automatisch die notwendigen "Korrekturen" für jeden bezeichneten Punkt macht.
DIE ACHSENANWEISUNG (AXIS)
X AXIS Y-Verschiebung Γ, —Marke L, Anfangspunkt, Endpunkt]] oder Y AXIS X-Verschiebung Γ, -"Marke Γ, Anfangspunkt, Endpunkt].] X AXIS 3, 1, -4, 4
Zieht eine X- (oder Y-)Achse entsprechend den in der AXIS-Anweisung gegebenen Parametern. Der Schreibstift wird auto-
30988 4/ 1370
matisch sowohl vor als auch nach dem Ziehen der Achse angehoben.
{Zur Beachtung: Im folgenden wird die X-Achse beschrieben;
das gleiche gilt für die Y-Achse, wenn "links" und "rechts" für die X-Achse als "unten" bzw. "oben" für die Y-Achse gelesen werden.)
1. Wenn keine wahlweisen Parameter gegeben sind, wird eine gerade Linie von links nach rechts über den gesamten Zeichnungsbereich (von Xmin bis Xmax) gezogen. Die Linie kreuzt die Y-Achse an einem Punkt, der durch den Wert von "Y-Verschiebung" festgelegt ist.
2. Wenn ein "Marken"-Parameter eingeschlossen ist, dann werden längs der Achse Marken angebracht, während sie gezogen wird; der Wert für "Marke" legt in Benutzereinheiten den Abstand zwischen den Marken fest. Die erste Marke wird am Anfangspunkt der Linie gezeichnet. Der'Marken-Parameter ist üblicherweise positiv (das Vorzeichen wird nicht benötigt), aber unter Umständen ist ein negativer Markenabstand nützlich siehe unten Nr. 4.
3. Wenn die Parameter für den Anfangspunkt und den Endpunkt gegeben sind, wird die Achse nur zwischen den spezifizierten Punkten gezogen - vom Anfangspunkt zum Endpunkt.
4. a) Wenn keine Parameter für Anfangspunkt und Endpunkt gegeben
sind, führt ein negativer Markenabstand nur zu einer Marke am linken Ende (Xmin) der Achse.
b) Wenn der Anfangspunkt-Parameter mehr positiv als der Endpunkt-Parameter ist (d.h. rechts von ihm liegt), wird die Achse von rechts nach links gezogen; in diesem Fall führt ein negativer Markenabstand dazu, daß normale Marken längs der Achse bezeichnet werden.
309884/ 1 370
c) Bei Parametern für Anfangspunkt und Endpunkt wie unter b) führt ein positiver Markenabstand dazu, daß nur am rechten Ende (Xmax) der Achse eine Marke erzeugt wird.
DIE PLOT-ANWEISUNG
PLOT X, Y , Schreibstift-Steuerung PLOT SIN(X), COS(X), -2
bewegt den Schreibstift zu der Koordinate, die durch den Wert von X und Y spezifiziert ist.
Wenn kein wahlweiser Parameter für "Schreibstift-Kontrolle" gegeben ist:
Wenn der Schreibstift angehoben war, bewegt er sich zu dem spezifizierten Punkt und wird dann gesenkt.
Wenn der Schreibstift gesenkt war, bleibt er gesenkt, während er sich zu dem spezifizierten Punkt bewegt und so eine Linie auf der Zeichenfläche zieht.
Der Parameter "Schreibstift-Steuerung"
Der Wert und das Vorzeichen dieses Parameters in den Anweisungen PLOT (und IPLOT) legen fest, ob der Schreibstift angehoben oder gesenkt wird, bevor oder nachdem er sich zum spezifizierten Punkt bewegt.
Ist der Parameter
negativ, findet eine Steuerung nach der Bewegung statt; positiv, findet eine Steuerung vor der Bewegung statt;
ungerade, wird der Schreibstift angehoben, wenn er gesenkt war;
gerade, wird der Schreibstift gesenkt, wenn er angehoben war.
Der Wert des Steuerparameters kann jede beliebige Zahl im Bereich —32767 sein. Ist der Wert keine Ganzzahl, wird er auto-
30988 W1 370
matisch auf- oder abgerundet, entsprechend dem Wert des Bruchteils der Zahl; eine Aufrundung erfolgt für 0,5 oder größer, eine Abrundung für weniger als 0,5. (Die Rundung ist die gleiche wie die Standard-Rundung im Rechner; es ist nicht die gleiche wie in der INT-Funktion, wo der Wert der der nächst niedrigeren Ganzzahl wird.)
DIE IPLOT-ANWEISUNG
IPLOT DeltaX, DeltaY I, Schreibstift-Steuerung 1
IPLOT 2, -3A/4, 1
Bewegt den Schreibstift (von seiner gegenwärtigen Position) in X- und Y-Richtung, um die Beträge, die durch "DeltaX" bzw. "DeltaY" spezifiziert sind.
Der Parameter "Schreibstift-Steuerung" ist wahlweise und arbeitet genauso wie bereits beschrieben - siehe PLOT-AN-WEISUNG.
Es ist zu beachten, daß die Funktion der IPLOT-ANWEISUNG so ist, als wenn nur während der Ausführung dieserAnweisung der Ursprung (0,0) des Graphen zur gegenwärtigen Position des Schreibstiftes versetzt ist. Die Schreibstift-Bewegung bezieht sich dann auf diesen versetzten Ursprung.
Die IPLOT-Anweisung ist besonders nützlich, wenn regelmäßige geometrische Figuren gezeichnet werden. In diesem Falle wird jeder Punkt leichter mit Bezug auf den vorhergehenden Punkt gezeichnet, als mit Bezug auf den Ursprung des Graphen.
DIE ETIKETTIER-ANWEISUNG (LABEL)
LABEL (FORMAT-Anweisungsnummer oder +L, Zeichenhöhe in %, Höhen/Seiten-Verhältnis, Drehwinkel C, Papierhöhe/Papierbreite J J ) Druckliste
Beispiele: LABEL (x, 2, 2, 0, 8.5/11) "PLOTTER" LABEL (100) 1, A, SIN(X)
309884/ 1 370
Die LABEL-Anweisung wird benutzt, um mit dem Plotter alphanumerische Zeichen zu schreiben. Es s-ind verschiedenen Parameter erlaubt, die benutzt werden können, um die Größe, die Form und den Drehwinkel der gedruckten Zeichen zu steuern. Die Zeichenhöhe kann in Prozenten der Papierhöhe spezifiziert werden. Das Höhen/Breiten-Verhältnis ist das Höhen/Breiten-Verhältnis des Zeichens vor jeglicher Drehung. Der Drehwinkel der gedruckten Zeichen kann gegeben werden. Dieser Parameter kann in Grad, Neugrad oder Bogenmaß angegeben werden und hängt davon ab, ob zuvor eine DEG-, eine RAD- oder eine GRAD-Anweisung gegeben worden ist. Ein vierter Parameter kann spezifiziert werden. Dies ist das Verhältnis der tatsächlich gemessenen Höhe des Zeichenpapiers zu der gemessenen Breite, wie sie durch die obere rechte und die untere linke Position festgelegt sind. Dieser Parameter ist nötig, um das richtige Höhen/Breiten-Verhältnis von Zeichen aufrecht-zu.erhalten, die im Winkel auf einer nicht rechtwinkligen Zeichnung gedruckt werden. Falls nicht spezifiziert, nimmt der Rechner folgende Werte an: Zeichenhöhe = 2,5%, Höhen/Breiten-Verhältnis = 2, Drehwinkel = O und Papierverhältnis = 1.
Die Format-Spezifikation und die Druckliste sind die gleichen wie in einer WRITE-Anweisung. Wenn eine FORMAT-Anweisungs-Nummer spezifiziert ist, wird die Druckliste auf dem Plotter unter Benutzung der in der FORMAT-Anweisung gegebenen Spezifikation geschrieben. Alle Spezifikationen sind erlaubt, mit Ausnahme von "B". Wenn ein "*" benutzt wird, wird die Druckliste entsprechend dem Standardformat geschrieben. Dies schließt die normale Definition von Komma- und Semikolon-Abstand, String-Feldern, TAB usw. ein.
Die LABEL-Anweisung läßt den Druck von Zeichen bei der gegenwärtigen Schreibstift-Position beginnen. Jedesmal wenn ein Zeilenende benötigt wird, kehrt der Schreibstift des Plotters zu der Zeichenposition zurück, die direkt unterhalb des ersten Zeichens auf der gegenwärtigen Linie liegt, wodurch ein"Wagenrücklauf" und "Zeile voll" simuliert wird. .
309884/1370
Wenn außerdem der wahlweise Block für Stringvariablen in den Speicher eingesteckt ist, sind in der Druck'liste Stringvariable erlaubt. '
DIE BUCHSTABENANWEISÜNG (LETTER)
Wenn die LETTER-Anweisung ausgeführt wird, geht der Rechner in einen eindeutigen "Schreibmaschinen"-Betrieb über,wobei der Plotter das Schreibgerät ist. In dieser Betriebsart wird auf dem Plotter an der jeweiligen Schreibstift-Stellung unmittelbar das Zeichen gedruckt, das vom Benutzer auf dem Tastenfeld gedrückt worden ist. EOL oder EXECUTE bewirkt, daß ein "Wagenrücklauf, Zeile voll" simuliert wird. Zusätzlich können bei diesem Betrieb die Tasten +, +, *■ und -> benutzt werden', um den Schreibstift zu positionieren. Die Tasten +und Ψ können bewirken, daß sich der Schreibstift um eine Zeichenposition nach oben oder nach unten bewegt. Die Tasten ■*- und -*■ bewirken, daß sich der Schreibstift um eine Zeichenposition nach links oder nach rechts bewegt. Wenn die Umschalttaste gleichzeitig mit einer Schreibstift-Steuertaste gedrückt gehalten wird, bewegt sich der Schreibstift um ein Zehntel einer Zeichenposition. Zeichengröße, Höhen/Breiten-Verhältnis und Drehung können dadurch spezifiziert werden, daß vor der LETTER-Anweisung eine LABEL-Anweisung gegeben wird.
DIE CPLOT-ANWEISUNG
CPLOT Delta X Zeichen, Delta Y Zeichen Beispiel: CPLOT 5, -.3
Die CPLOT-Anweisung ist ähnlich der IPLOT-Anweisung, indem sie den Schreibstift in eine Position mit Bezug auf die gegenwärtige Schreibstift-Position bewegt. Der Unterschied besteht darin, daß die Werte von Delta X und Delta Y in Zeichengröße-Einheiten spezifiziert sind. Im obigen Beispiel bewegt sich der Schreibstift um fünf Zeichenpositionen nach unten. Diese Anweisung ist besonders dann nützlich zur Schreibstift-Positionierung; wenn eine Zeichnung unter Benutzung der LABEL-Anweisung etikettiert wird.
30988W 137 0
ΛΟ
Ein Zeichenraum ist wie folgt definiert:
linke untere Ecke des
darüber liegenden
Zeichens
Beispiel: Der BUCHSTABE "A"
linke untere Ecke des nachfolgenden Zeichens
Die vom Plottermodul gegebenen Fehler-Meldungen sind folgende:
FEHLER 80 - Keine Skalen-Anweisung ausgeführt vor PLOT, IPLOT, OFFSET (versetzen) oder AXIS (Achse).
FEHLER 81 - Zeichenabmessung zu groß (begrenzt auf 20 %) oder Binärbetrieb nicht erlaubt.
FEHLER 82 - OFFSET (versetzen), POINT 1 (Punkt 1) oder POINT 2 (Punkt 2) während der Achsenausführung außerhalb des Bereichs oder Markenzuwachs in der Achsenanweisung zu klein.
EINSTECKBARER MATRIX-NUR-LESE-SPEICHERMODUL
Der Matrix-Nur-Lese-Speicher-Modul ermöglicht es, dem Rechner, die MAT-Anweisungen (Matrix-Anweisungen) von BASIC zu verstehen. Diese Anweisungen erleichtern die Matrix-Operationen Addition, Subtraktion, Initialisierung, skalare Multiplikation, Matrix-Multiplikation, Transposition und Inversion. Zusätzlich zu den Standard-Matrix-Operationen in BASIC-Sprache ist eine Funktion zur Berechnung der Determinante einer quadratischen Matrix vorgesehen. Die Anweisungen MAT-READ und MAT-PRINT erleichtern die Eingabe von Daten in ein Feld und deren Druck. Die Anweisung
3 0988W1370
MAT-INPUT, die in einigen.Versionen von BASIC erscheint, ist nicht erlaubt. Die Matrix-Operationen sind erlaubt bei Feldern mit gespaltener Genauigkeit oder bei Ganzzahl-Feldern, genauso wie bei Feldern mit vollem Gleitkomma.
Die durch diesen Matrix-Modul durchgeführten Operationen sind nachfolgend zusammengefaßt, und zusätzliche Informationen sind auf Seiten 148 bis 164 vorgesehen.
A. MAT READ
liest numerische Informationen von DATEN-Anweisungen in ein Feld ein.
MAT READ A MAT READ A(3,5) MAT READ B,W(8),X,Y
B. MAT PRINT
druckt vollständige Felder, dichte Packung durch,Semikolon spezifiziert MAT PRINT A MAT PRINT Aj MAT PRINT R,S,-V;W
C. ZER-, CON- und IDN-Operationen
ZER: Initialisierung eines Feldes auf lauter Nullen CON: Initialisierung eines Feldes auf lauter Einsen IDN: Initialisierung eines Feldes auf die Identitätsmatrix "MAT A = ZER MAT Q = CON(9) MAT I - IDN(4,4)
D. MAT-Zuordnungs-Anweisungen
ordnen einer Matrix das Ergebnis einer MAT-Operation zu
1) MAT A=B
ordnet die Elemente von A von Feld B aus zu
2) MAT A=B^C
führt die angegebene Addition oder Subtraktion durch und ordnet das Ergebnis A zu A, B und C können jeweils dieselbe Matrix sein
30988 U /1370
3) MAT A = B. * C
führt die angegebene Multiplikation durch und ordnet das Ergebnis A zu
Feld A muß verschieden von B oder C sein
4) MAT A = (Ausdruck) * B
führt die angezeigte skalare Multiplikation durch (jedes Element von B wird mit dem Wert des Ausdrucks multipliziert) und ordnet das Ergebnis A zu
5) MAT A = TRN(B)
ordnet A die Transponierte von B zu Feld A muß von B verschieden sein
6) MAT A = INV(B)
ordnet A die Inversion von B- zu
A und B müssen dieselbe Matrix sein E. DET-Operation
berechnet die Determinante einer quadratischen Matrix MAT D4 = DET(A)
TASTENKODES UND MNEMONIKEN
Alle Tasten der Tastenfeld-Eingabe-Einheit und die ihnen zugeordneten Mnemoniken und binären Tastenkodes sind in der untenstehenden Tabelle aufgelistet. Jede Taste hat eine Mnemonik und zwei Tastenkodes (nämlich einen umgeschalteten Tastenkode und einen nicht-umgeschalteten Tastenkode). Tastenkodes werden der CPU in binärer Acht-Bit-Form zugeführt. Die ersten vier Bits jedes Tastenkodes werden in der ganz linken senkrechten Spalte der untenstehenden Tabelle angegeben, während die nächsten drei Bits jedes Tastenkodes in der obersten Zeile der untenstehenden Tabelle angegeben sind. Das achte Bit jedes Tastenkodes ist das Umschalt-Bit und wird dadurch festgelegt, ob die Umschalttaste des Tastenfeldes gedrückt ist oder nicht. In die CPU von der Tastenfeld-Eingabe-Einheit oder vom Programmspeicher-Abschnitt der Speichereinheit eingegebene Tastenkodes werden durch die Tastenfeld-Eingaberoutine 204 verarbeitet, die oben allgemein in Verbindung mit Figur 9 beschrieben ist und detailliert in Figuren 88A-G dargestellt ist.
30988W 1 370
TASTENKODE- UND MNEMONIK-TABELLE
b6
b5
b4
b3b2blbO
O O O DO
O
O
O
Dl
O
O
1
D2
O
1
O
D3
O
1
1
D4
1
O
O
■ D5
1
O
1
D6
1
1
O
D7
1
1
1
O O O 1 fO RECALL SPACE O P PA
O O
O
1
1
O
1
fl FETCH 1 A Q STOP
O
O
1 O O £2
■ f 3
BACK
FWD
2
3
B
C
R
S
. EOL
DL
O 1 O 1 f4 Ψ 4 D T FXD
O 1 1 O £5 + 5 E U FLT
O 1 1 1 f6 ■*- 6 F V SCRATCH
O O O O f7 -y ) 7 G W AUTO
1 O O 1 £8 LOAD X 8 H X
1 O 1 O f9 STORE + 9 I Y
1 O 1 1 LIST INIT I ψ J Z CLR
1 1 O O EXEC / - K RESULT
1 1 O 1 CONT m L
1 1 1 O STEP STD ■? M
1 1 1 1 TRACE NORMAL 1 N
1 RUN INSERT O ENTER
UXF
DETAILLIERTE LISTE DER ROUTINEN UND SUBROUTINEN DER GRUND-ANWEISUNGEN
Eine vollständige Liste aller vom Rechner eingesetzten Routinen und Subroutinen von Grund-Instruktionen und aller von diesen Routinen und Subroutinen verwendeten Konstanten ist unten angegeben. Alle diese Routinen, Subroutinen und Konstanten sind entweder in dem Grund-ROM oder in den mit diesem verwendeten einsteckbaren ROM-Modulen gespeichert. Die Liste hat zusätzlich zu den durchlaufenden Seitennummern der vorliegenden Beschreibung weitere Seitenangaben innerhalb des Textes, wobei vor der entsprechenden Nummer jeweils das Wort "Seite" steht. Sofern in der vorliegenden Beschreibung auf Seitenzahlen Bezug genommen
309884/1370
wird, sind die zusätzlichen Seitenzahlen gemeint. Jede Zeile auf jeder Seite ist in der ersten Spalte von links getrennt numeriert. Dies erleichtert die Bezugnahme auf verschiedene Teile der Liste. Weiterhin sind beschreibende Überschriften im Verlauf der Liste vorgesehen, um Routinen, Subroutinen, Gruppen von Konstanten, verschiedene Teile des ROM, die-einsteckbaren ROM-Module usw. zu identifizieren. Jede Instruktion jeder Routine oder Subroutine und jede im ROM oder im einsteckbaren ROM-Modul gespeicherte Konstante wird durch sechs Ziffern in oktaler Form in der dritten Spalte von links dargestellt, und die Adressen des ROM-Platzes, auf dem eine solche Instruktion oder Konstante gespeichert ist, wird durch fünf Ziffern in oktaler Form in der zweiten Spalte von links dargestellt.
Mnemonische Etiketten, die als symbolische Adressen oder Namen dienen, sind in der vierten Spalte von links für die meisten der Konstanten und viele der Instruktionen angegeben, um die Bezugnahme auf diese Konstanten und Instruktionen und die zugeordneten Instruktionen zu erleichtern. Der mnemonische Kode jeder Grund-Instruktion und jeder Pseudo-Instruktion ist in der fünften Spalte von links angegeben. Wie bereits oben bemerkt wurde, wird jede Grundinstruktion als Schritt in einer Routine oder Subroutine von einer oder mehreren Grund-Instruktionen verwendet und hat daher eine Adresse in dem ROM. PseudoInstruktionen wie ORG, EQU usw., die erscheinen (und bei denen erkennbar ist, daß sie nicht zu den 71 grundlegenden Maschinen-Instruktionen gehören, die oben aufgelistet sind), werden für die Steuerung des Assemblers benutzt, der die symbolische/mnemonische Kodierung der vierten, fünften und sechsten Spalte in die Adressen und Inhalte der ROM-Register übersetzt, die in der zweiten und der dritten Spalte erscheinen (siehe Kapitel 4 des "Assembler Programmer's Reference Manual" von Hewlett-Packard, April 1970.) Sie werden nicht als Schritte in den Routinen und Subroutinen benutzt, die vom Rechner ausgeführt werden und haben daher keine Adressen in dem ROM. Mnemonische Operandenkodes sind in der sechsten Spalte angegeben, und beschreibende Kommentare sind rechts von der sechsten Spalte ange-
30988 /»/1370
geben. Das Format, die Anordnung und der Gebrauch der Liste ist mehr ins Detail gehend in dem oben erwähnten "Assembler Programmer's Reference Manual" von Hewlett-Packard erklärt.
Zusätzlich sind unmittelbar unterhalb jeder Gruppe von Routinen und Subroutinen Kreuzverweis-Symboltabellen eingeschlossen, um eine alphabetische Auflistung aller mnemonischen Etiketten und Operanden vorzusehen. Die Zahl, die in der ersten Spalte rechts von jeder Mnemonik in der Kreuzverweis-Tabelle enthalten ist, stellt die Zeile in der zugeordneten Routinen- oder Subroutinen-Liste dar, in welcher diese Mnemonik als Etikett in Spalte 4 erscheint. Aufeinanderfolgende Spalten hinter der ersten Spalte rechts von jeder Mnemonik in der Kreuzverweis-Tabelle stellen die Zeile in der zugeordneten Routinen- oder Subroutinenliste dar, in welcher diese Mnemonik als ein Operand in Spalte 6 erscheint.
309884/137Q
9830 MAIN SYSTEM SOFTWARE Haupt-^Sy stem-Software
OOO1 ASMB.A.O.C.
0003* MAIN SYSTEM FIRMWARE LISTING 3-27-72
Liste der Haupt-System-Firmware 0004+
0005 00000 ORG O
0006*
0007 00000 164121
0008 00001 043060
0009 00002 161463 0010*
0011 00003 000000 C6
0012 00004 010000
0013 OOOO5 000000 0014*
0015 OOOO6 000000 C5
0016 Ό0007 012560
0017 00010 074543
0018 OOO11 023200 0019*
0020 00012 000001 .1 DEC 1
0021 * 0022 0023 0024 0025 0026* 0027 0028 0029 0030 0O31 0032 0033 0034 0035 0036
JMP START,. 1 START OF MONITOR
Monitor starten
OCT 43060 CONSTANT NEEDED
Konstante
JSM INTEL.1 INTERRUPT, unter
OCT O one, eins
OCT 010000 0000
OCT O 0000
OCT 0000000 PI/2
OCT 12560 1570
OCT 074543 7963
OCT 023200 2680
00013 000400 C7 OCT 000400 180/PI
0001 4 053451 OCT 053451 5729
00O15 053571 OCT 053571 5779
00016 050450 OCT 050450 5128
00017 000002 .2 DEC 2
00020 000003 .3 DEC 3
00021 000004 .4 DEC 4
00022 000005 .5 DEC 5
00023 000006 .6 DEC 6
00024 000007 .7 DEC 7
00025 000010 .8 DEC 8
00026 000011 .9 DEC 9
00027 000013 .11 DEC 11
00030 OOOO14 .12 DEC 12
30 9884/ 1370
0037 00031 000015 CRTN OCT
0038 ΟΟΟ31 EQU EQU CRTN
0039 00031 .13 EQU CRTN
0041* POINTERS TO FUNCTIONS CONSTANTS
Hinweismarken zu den Funktionskonstanten 0042*
DPERR EQU
0043 00027
0044 OOO23
0045 00020 004 6*
PI/2 EQU
ONE
EQU
0048 00032 000017 .15 DEC 15
0049 OOO33 000020 .16 DEC 16
OO5O OOO34 000025 .21 DEC 21
0051 OOO35 000026 .22 DEC 22
0052 00036 000027 .23 DEC 23
0053 OOO37 000034 .28 DEC 28
0054 00040 000037 .31 DEC 31
0055 OOO41 000040 .32 DEC 32
0056 OOO42 000041 .33 DEC 33
0057 OOO43 000042 .34 DEC 34
0058 OOO44 000045 .37 DEC 37
0059 OOO45 000050 .40 DEC 40
0060 00046 000051 .41 DEC 41
0061 00047 000053 .43 DEC 43
0062 0OO50 000055 .45 DEC 45
0063 OOO51 000056 .46 DEC 46
0064 OOO52 000060 .48 DEC 48
0065 0O053 00007 2 .58 DEC 58
0066 00054 000077 .63 DEC 63
0067 00055 000111 I OCT 111
OO68 00056 023420 .1E4 DEC 10000
0069 00057 001750 .1000 DEC 1000
POINTER TO 180/PI Hinweismarke nach 180/PI POINTER TO PI/2
Hinweismarke nach PI/2 POINTER TO THE CONSTANT ONE Hinweismarke zur Konstante
eins
988W1370
0070 00060 000144 .100 DEC 100
0071 00061 000012 .10 DEC 10
0072 00061 LNFD EQU .10
0073 0062 100000 FLGBT OCT 100000
0074 00063 000143 .99 DEC 99
0075 00064 100004 INTFL OCT 100004
0076 00065 07 6000 OPMSK OCT 76000
0077 00066 077777 INF OCT 77777
0078 00067 100037 TYPFL OCT 100037
0079 00070 101777 OPD]VIK OCT 101777
0080 00071 000105 E OCT 105
0081 00072 000106 F OCT 106
0082 00073 000123 S OCT 123
0083 0003 2 B17 EQU .15
0084 00033 B20 EQU .16
0085 00074 000022 B22 OCT 22
0086 00075 000023 B23 OCT 23
0087 0003 5 B26 EQU .22
0088 00036 B27 EQU .23
0089 00076 B36 OCT 36
0090 00040 B37 EQU .31
0091 00043 B42 EQU .34
0092 00077 000044 B44 OCT 44
0093 00100 000052 B52 OCT 52
0094 00053 B72 EQU .58
0095 00101 000100 B100 OCT 100
0096 00102 000133 B133 OCT 133
0097 00103 000140 B140 OCT 140
0098 00104 000177 B177 OCT 177
0099 00105 000377 B377 OCT 377
0100 00013 B400 EQU C7
0101 00106 000777 B777 OCT 777
0102 00107 001000 B1000 OCT 1000
0103 00110 OO14OO B1400 OCT 1400
0104 00111 001740 B1740 OCT 1740
0105 00112 001760 B176O OCT 1760
0106 00113 001774 B1774 OCT 1774
0107 00114 001775 B1775 OCT 1775
0108 00115 001777 B1777 OCT 1777
0109 00116 002000 QTOP OCT 2000
■) 0 9 8 8 4 / 1 3 7
ι JJJU B24OO OCT /63
01 no 00117 002400 B 3 000 OCT 2400
01 11 00120 003000 B4000 OCT 3000
01 12 00121 004000 B6K OCT 4000
01 13 00122 006000 B10K EQU 6000
01 14 00004 RPOP EQU 06+1
01 15 00004 B12K OCT B10K
01 16 00123 012000 RBOP EQU 12000
01 17 00123 EXPOP OCT B12K
01 18 00124 032000 LBOP OCT 32000
01 19 00125 050000 LPOP OCT 50000
01 20 00126 052000 B170K OCT 52000
01 21 00127 170000 FROMA OCT 170000
01 22 00130 013777 LROMA OCT 13777
01 23 00101 37777 M1 DEC 37777B
01 24 00132 177777 M2 DEC -1
01 25 00133 177776 M3 DEC -2
01 26 00134 177775 M4 DEC -3
01 27 00135 177774 M5 DEC -4
01 28 00136 177773 M6 DEC -5
01 29 00137 177772 M9 DEC -6
01 30 00140 177767 M10 DEC -9
01 31 00141 177766 M11 DEC -10
01 32 00142 177765 M12 DEC -11
01 33 00143 177764 M13 DEC -12
01 34 00144 177763 M14 DEC -13
01 35 0014 5 177762 M15 DEC -14
01 36 00146 177761 M23 DEC -15
01 37· 00147 177751 M25 DEC -23
01 38 00150 177747 M32 DEC -25
01 39 00151 177740 M36 DEC -32
01 40 00152 177734 M48 DEC -36
01 41 00153 177720 M64 DEC -48
01 42 00154 177700 M80 DEC -64
01 43 00155 177660 M100 DEC -80
01 44 00156 177634 M256 DEC -100
01 45 00157 177400 M1O24 DEC -256
01 46 00160 176000 MAXSN DEC -1024
01 47 00161 154360 -100Oo
LAST ROM BLOCK, Letzter ROM-"
Block
0148 00162 043116 FN -(MAXIMUM ALLOWABLE LINE NUMBER)
(max. zulässige Zeilenzahl) ASC 1,FN
309884/ 1370
/no
0149*
0150/ MATH CONSTANTS THAT ARE NEEDED ON BASE PAGE auf der Basissexte benötigte ifiathem. Konstanten
0151*
0152 00163 177401 ZAP OCT 177401
00164 063440 MASK1 OCT 063440
00165 061400 MASK5 OCT 061400
0153
0154
0156*
0157
00166 40440 FWAM DEF 4O44OB RSTKA EQU Β17 6Ό
0158 00112
0159 00167 002454 WRITE DEF WRIT
0160 00170 002533 CLERA DEF CLEAR
0161 00116 REED EQU QTOP
0162 00121 START EQU B4000
0163 Ό0171 004741 RUNA DEF RUN
0164 00172 010012 XEC4A DEF XEC4
0165 00173 004044 PEXMA DEF PEXMK
0166 00174 004037 RDYDA DEF RDYPT
0167 00122 LISTA EQU B6K
0168 00175 TSRHA DEF TBSRH
0169 00176 007450 ELINA DEF OLINE
0170 00177 005305 SSYMA DEF SSYMT
0171 00200 011433 OPCHA DEF OPCHK
0172 00201 010563 FORMA DEF FORMX
FIRST WORD R/W ersten Wort R/W
START OF RETURN STACK Start Stapelspeicherrück lauf
PRINTER AND DISPLAY DRIVER
Drucker- und Wiedergabeansteuerung
CLEAR REFRESH BUFFER Erneuerungspuffer löschen
KEYBOARD DRIVER QTOP IS= 200OB, Tastaturansteuerung QTOP ist = 200OB
PHASE 2; SYMBOL TABLE Symboltafel
STATEMENT EXECUTION EXIT
Anweisung Ausgang Durchführung
TABLE SEARCH, Tabelle suchen
OUTPUT I/O BUFFER Ausgang I/O Puffer
CHECK FOR UNDEFINED OPERAND, auf Undefinierten Operanden prüfen
EVALUATE FORMULA Formel auswerten
0173 00202 012040 FSCA DEF FSC
0174 00203 004511 ACISA DEF ACTST
0175 00204 004500 DELSA DEF DELST
0176 00205 004355 AERRA DEF AERR
0177 00206 004360 ERRA DEF ERROR
309884/1370
0178 00207 000000 INTEA BSS
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
KEYBOARD INTERRUPT LINK Tastatur Bindung unterbreche'n
0179 00210 000000 OUTIA BSS
0180 00211 003200 .BUFA DEF
0181 00212 0033 22 .SLBF DEF
0182 00213 001744
0183 00214 001754
0184 00215 001773
AR1A DEF AR2A DEF TMPOP DEF OUTPUT AN INTEGER Ganzzahl ausgeben
IOBUF+IOBUF FIRST CHAR OF I/O
BUFFER, erstes Zeichen des I/O-Puffers
RBUFF+RBUFF FIRST CHAR OF REFRESH BUFFER, erstes Zeichen des Erneuerungspuffers
AR1 AR2 RES
00216
00217
00220
00221
00222
00223
00224
00225
00226
00227
00230
00231
00232
00233
000000 000000 000000 000000 005447 000000 000000 000000 000000 000000 000000 000000 000000 001551
.FADA
.FSBA
.FMPA
.FDVA
ENIFA
.FSR
UPARA
FLTRA
FLTFA
FXFLA
FLTSA
SPLFA
SNFLA
BEND
BSS BSS BSS BSS DEF BSS BSS BSS BSS BSS BSS BSS BSS DEF
0199 00233
0200 00234 006353
SBUFA EQU NMOTA DEF
ENTFN
RBUFF
BEND
NMOUT
RESULT REGISTER POINTER Resultat Registerhinweismarke
ADD, addieren
SUBTRACT, subtrahieren MULTPY, muliplizieren DIVIDE, dividieren
SQUARE ROOT, Quadratwurzel UP ARROW, Pfeil nach oben
I/O BUFFER END
I/O Puffer Ende
0201 0023 5 007027 FILLA DEF FILL
0202 0023 6 00344 2 SLEND DEF NUMBER OUTPUT ROUTINE Ausgangsprogramm-Zahl
OUTPUT BLANKS
Ausgabe Leerzeichen
RBUFF+RBUFF+80
0203 OO111
0204 00110
0205+
0206 00123
0207 OO237 016516
TMPA EQU BADRP EQU B174O
B1400
REFRESH BUFFER END Erneuerungspuffer Ende
POINTER POINTER TO I/O ' BUFFER, Hinweismarke Hinweismarke zum I/O-Puffer
FOPBS EQU B12K
SALTA DEF SALT 3Q988W1370
5257 MDIMA DEF MDIM
0209 00241 010413 SYTSA DEF SYTSH
0210 00242 005711 DCOMA DEF DCOMP
0211 00243 000000 NUMCA BSS 1
0212 00244 000000 NUMOA BSS 1
0213 00245 007 656 GTSTA DEF GETST
0214 00246 012231 VAROA DEF VAROP
0215 00247 010112 ECALA DEF ECAL
0216 00250 004625 OVCHA DEF OVCHK
0217 00251 004575 CLP1A DEF CLPR1
0218 00252 005416 ENTEA DEF ENTER
0219 00253 007672 CHRSA DEF CHRST
0220 00254 003317 XSCRA DEF XSCR1
0221 OO255 010040 XEC6A DEF XEC6
0222 00256 010425 FDAAA DEF FDATA
0223 00257 005660 FNDAA DEF FNDAD
0224 00260 005671 FND1A DEF FNDA1
0225 00261 002547 IOSTA DEF IOST
0226 00262 0104 67 INREA DEF INRET
0227 OO263 00333 6 SUMPA DEF SUMP
0228 00264 002504 CRCKA DEF CRCHK
0229 00265 016501 IOHEA DEF IOHED
0230 0266 007240 QTCHA DEF QTCHK
023 3 00267 000000
0235 00270 000625 E1
0236 00271 000561
0237 00272 004177
0238 00273 000726
0239 00274 004243 E5
0240 OO275 012134
0241 00276 001152
BSS 1
DEF SYSER DEF FSCE4 DEF NCALC EXECUTE CALC MODE Rechenbetrieb durchführen
SCRATCH KEYS, Tasten
I/O STATUS CHECK I/O-Status prüfen
OUTPUT SUPRESSED CRLF Ausgabe unterdrücktes CRLF
CHECK FOR STRING,String prüfen
CHECKSUM
Summenprobe Wort
ROM CONFIGURATION ERROR Konfigurationsfehler
MEMORY OVERFLOW Speicherkapazität überschritten
STMT NOT ALLOWED IN CALC MODE
Anweisung beim Rechenbetrieb verboten DEF SYE25 MISSING OR BAD INTEGER
fehlende oder falsche Ganzzahl
DEF NSTMT
DEF FSCE3
DEF NOEOF NO STATEMENT OR COMMAND RECOGNISED, Anweisung nicht erkannt
UNRECOGNISED OPERAND Operand nicht erkannt
CHARS FOLLOW STMT LOGICAL END Zeichen nach logischem Ende 309884/1370
ORIGINAL INSPECTED
0242 00277 004307
0243 00300 004253
0244 00301 003155 E10
0245 00302 000000
0246 00303 000000
0247 00304 001165
0248 00305 000511
0249 00306 000522 E15
0250 00307 00053 5
0251 00310 016432
0252 00311 012452
0253 00312 007660
0254 00313 007665 E20
0255 00314 012433
0256 00315 012515
0257 00316 003504
0258 00317 007723
0259 00320 003565 E25
0260 00321 "016461
0261 00322 012464
0262 00323 012473
0263 00324 012500
0264 00325 012522 E30
0265 00326 004273
0266 00327 003531
0267 00330 016436
0268 00331 005067
0269 00332 005037 E35
0270 00333 005372
m
DEF SYE15
DEF UKERR
DEF KERR
BSS 1
BSS 1
DEF S YE12
DEF C0MCE+1
DEF FSCE1
DEF F SCE 2
DEF ARRE1
DEF STRNP
DEF NOST
DEF S YE14
DEF S YNE 4
DEF SYNE 5
DEF NDATA
DEF S YNE 7
DEF MISOF
DEF SYE13
DEF SYNE8
DEF SYNE 9
DEF S YE10
DEF SYNE 6
DEF SYNE 2
DEF FMTER
DEF S YNE 3
DEF CMERR
DEF MER5
DEF SSYM3
MIS3TNG PRINT DELIMITER DrucKbegrenzung fohlt
IMPROPER TYPING AID ASSIGNMENT falsche Druckhilfe-Zuweisung
KEY UNDEFINED, Taste Undefiniert
SIGN GIVEN BUT NO NUMBER Vorzeichen ohne Zahl MISSING COMMA, Komma fehlt NO LEFT PAREN, keine linke Klammer NO RIGHT PAREN,Keine rechte Klammer
MISSING SUBSCRIPT fehlender Index
STRING NOT PERMITTED String nicht erlaubt
MISSING OR BAD STRING fehlendes oder falsches String
NO CLOSING QUOTE, kein abschließendes Anführungszeichen
MISSING OR BAD FUNCTION I.D. fehlende oder falsche Funktions-ID
MISSING PARAMETER fehlender Parameter
MISSING OR BAD DATA ITEM fehlendes oder falsches Datenwort
MISSING THEN, THEN fehlt MISSING OF, OF fehlt MISSING VARIABLE,fehlende Variable
MISSING FOR VARIABLE fehlende FOR-Variable MISSING TO, TO fehlt MISSING STEP, STEP fehlt
MISSING ASSIGNEMENT IN FOR STMT fehlende Zuweisung in FOR-Anweisung
LET SIMT HAS NO STORE LET-Anweisung ohne Speicher
IMPROPER FORMAT SPEC unrichtige Formatspezifikation
MISPLACED COM STATEMENT falsch plazierte COM-Anweisung
IMPROPER COM DECLARATION falsche COM-Vereinbarung
ARRAY DOUBLY DEFINED Feld doppelt definiert
PRECISION DOUBLY DEFINED Genauigkeit doppelt definiert
309884/ 1 370
f"V'.i
0271 00334 005353
0272 00335 005157
0273 00336 005276
0275 00340 005421 DEF SYME 2
DEF MER10
DEF MER9
0274 00337 011440 E40 DEF ER8 DEF NINIT
INCONSISTENT DIMENSIONS inkonsistente Dimensionen
ARRAY HAS UNKNOWN DIMENSIONS unbekannte Felddimension
DIMENSIONS TOO LARGE zu große Dimensionen
OPERAND IS UNDEFINED Undefinierter Operand
ARRAY OR STRING NOT INITIALIZED Feld oder String nicht initiali-
0276 00341 011240
0277 OO342 007372
0278 00343 010224
0280 00345 007414
0281 00346 010231
0282 00347 010335
DEF ER6 DEF SCERR
DEF NGOTO
027 9 00344 007064 E45 DEF TABER
DEF FNEST
DEF ER3 DEF BERR
0283 00350 010444 DEF ER60
0284 00351 010041 E50 DEF MER11
0285 00352 000000 BSS
0286 00353 000000 BSS
0287 OO354 000000 BSS
0288 00355 000000 BSS 0290+
0291+ MULTI EXIT POINT RETURNS
0292+
0293 00356 06065 RETN3 JSM RET2
0294 OO357 031401 RETN2 STA RSAVE
0295 00360 021777 LDA RSPTR
0296 OO361 000132 ADA M1
0297 00362 070637 ISZ A,I
0298 00363 021401
0299 0364 170402
SUBSCRIPT EXCEEDS BOUNDS Index überschreitet Grenze
SELECT CODE LESS THAN 1 OR GTR THAN 15, Auswahlcode kleiner als oder größer als 15
LINE NOT FOUND OR IMPROPER STMT FOUND, Zeile nicht gefunden oder unrichtige Anweisung gefunden
STATEMENTS USING FORMAT CANNOT USE TAB, Anweisungsformat kann nicht Tabelle benutzen
STATEMENTS USING FORMAT CANNOT BE NESTED, Anweisungsformat kann nicht geschachtelt werden
IMPROPER RETURN, falsche Rückkehr
IMPROPER FOR LOOP
falsch für Schleife
OUT OF DATA, außerhalb der Daten
LAST STMT IS NOT "END" Letzte Anweisung nicht "END"
Vielfache Rückkehr zum Ausgangspunkt
RETURN TO P+3, zurück nach P+3 RETURN TO P+2, zurück nach P+2
INCREMENT RETURN ADDRESS Rückkehradresse erhöhen
LDA RSAVE RESTORE (A), (A) zurückstellen
RET
0300+
0305 0306 0307* 0308
0313* 0314* 0315*
0321* 0322* 0323*
0329* 0330* 0331* 0332* 0333* 0334* 0335* 0336
00365 031401 RET2
00366 021777 003.67 ΟΟ0133
00370 070637
00371 021401
00372 170402
STA RSAVE LDA RSPTR ADA M2 ISZ A,I
LDA RSAVE RET
00373 024212 ICNT LDB .SLBF
00374 074117 WBUFF LDA B
00375 070076 TCA
00376 001400 ADA BADDR
INCREMENT RETURN ADDRESS
Rückkehradresse erhöhen
RESTORE (A), (A) zurückstellen
GET SINGLE LINE CHARACTER COUNT Zeichenzählung einzelner Zeile
COMPUTE CHAR COUNT
Zeichenzählung rechnen
00377 170402
RET
GET A PARAMETER IN (B) FROM P+1
00400 025777 GPARM LDB RSPIR
00401 004133 ADB M2
00402 074637 ISZ B,I
00403 07453? LDB B,I
00404 065375 JMP FIX+4
TRANSFER FROM AR2 TO AR1
00405 024213 XFAR1 LDB AR1A
00406 020214 LDA AR2A
00407 170004 XFR
00410 004134 ADB M3
00411 170402 RET
RESTORE (B), (B) zurückstellen
CONVERT AND STORE AN OPERAND VALUE
AR2=S0URCE (A)=DESTINATION TYPE (B)=DESTINATION ADDRESS
00412 125413 RSULT LDB HSTPT,I
3.0 9 884/ 1
0337 00413 045413 ISZ' HSTPT
0338 00414 121413 LDA HSTPT,:
0339 00415 045413 ISZ HSTPT
0340 00416 070206 STORE RAR 5
0341 00417 071352 SAM XFAR1+1
0342 00420 070602 SAR 13
0343 00421 071250 SZA XF AR 1+1
0344 00422 03 5727 STB MB IN 2
0345 00423 010012 CPA .1
0346 00424 064441 JMP ST0R2
0347 00425 060405 STOR1 JSM XFAR
0348 00426 160225 - JSM FLTRA,I
0349 00427 064432 JMP INTOV
03 50 00430 135727 STB MBIN2,I
0351 00431 064444 JMP XFAR2
0352 0043 2 160205 INTOV JSM AERRA,I
0353 00433 177627 DEC -105
0354 00434 024066 LDB INF
IF BIT 4=1, wenn BIT 4=1
IT IS FULL PRESISION volle Genauigkeit
-NO,GET PRECISION BITS Nein, Genauigkeitsbits holen
FULL? voll?
SAVE ADDRESS, Adresse sichern NO, SPLIT? nein, gespalten?
YES ,ja
INTEGERrSAVE IN AR1 Ganzzahl in AR1 sichern
CONVERT INTEGER Ganzzahl konvertieren
OVERFLOW EXIT
Überschreitung Ausgang
STORE INTERGER, Ganzzahl
speichern RESTORE AR2, AR2 Zurückstellen
EMIT OVERFLOW
Überschreitung ausgeben
INTEGER OVERFLOW Überschreitung Ganzzahl
SBT MACIMUM POSITIVE INTEGER maximale positive Ganzzahl
0355 00435 O21744 LDA AR1 GET MANTISSA SIGN
Mantissenvorzeichen
0356 00436 071511 SLA ST0R1+3 POSITIVE? Positiv?
0357 00437*074076 TCB NO nein 03 58 00440 064430 JMP ST0R1+3 03 59 0041 060405 ST0R2 JSM XFAR1 SAVE IN AR1 , in AR1 sichern
0360 00442 025727 LDB MBIN2 RECALL ADDRESS
Adresse zurückrufen
0361 00443 160230 JSM FLTSA,I CONVERT TO SPLIT AND STORE
zum Spalten konvertieren und speichern
0362*
0363 00444 020213 XFAR2 LDA AR1A
0364 00445 024214 LDB AR2A
0365 00446 170004 XFR
0366 00447 170402 RET
0367* STORE AN OPERAND NAME AND TYPE, Operandenname und -typ speichern
3 0 9 8 8 4/1370
0368* 0369* 0370/
0371*
0378* 0379*
0380* 0381
(A)= ASCII CODE FOR LETTER Buchstabencode ENTER AT STROP+1 WITH PRE: ADJUSTED OPERAND TYPE Bei STROP+1 mit vorjustiertem Operandentyp eintreten EXIT+ (A)= COMPLETED OPERATOR-OPERAND PAIR
vervollständigtes Operator-Operanden-Paar
NUMERICALLY ADJUST OPERAND TYPE, Operandentyp numerisch anpassen
GET 5 BIT CODE FOR OPERAND NAME, 5-Bit-Code für Operandenname
COMBINE THE, kombinieren
TWO OPERAND PARTS AND THE zwei Operandenteile und THE
OPERATOR__OPERAND PAIR Operator-Operanden-Paar
UPDATE SYNTAX BUFFER POINTER AND CHECK FOR OVERFLOW
Syntax-Puffer-Hinweismarke auf den neuesten Stand bringen und auf Überschreitung prüfen
0372* 00450 004151 .STROP ADB M32
0373 00451 000154 ADA M64
0374 00452 070544 SAL 5
0375 00453 074217 . IOR B
0376 00454 141706 IOR SBPTR,I
0377
00455 131706 STA SBPTR,I STORE (A) BEFORE UPDATE vorher (A) speichern
0382 00456 045706 SBPUD ISZ SBPTR UPDATE POINTER
Hinweismarke aktualisieren
0383
0384
0385* 0386*
0387* 0388*
0389* 03 90* 0391
00457 131706 00460 170402 STA SBPTR,I SAVE (A),
RET
(A) sichern
FIND AND STORE ONE-CHARACTER OPERATORS Ein-Zeichen-Operatoren auffinden und speichern
(A)=SOURCE CHARACTER, Quellenzeichen
(B)=NUMBER OF ENTRIES TO BE SEARCHED Zahl der zu suchenden Eingänge
P+1=STARTING TABLE ADDRESS-1, Start Tabellenadresse-1
00461 024017 SYMC2 LDB
0392 00462 064464 JMP SYMCK 03 93 00463 024012 SYMC1 LDB .1 -ALTERNATE ENTRY TO SEARCH TWO SYMBOLS, Alternativeingang zur Suche nach zwei Symbolen
ALTERNATE ENTRY TO SEARCH ONE SYMBOL, Alternativeingang zur Suche nach einem Symbol
309884/1370
0394*
0395 00464 035466 SYMCK STB LOCLi' O396 00465 031467
0397 00466 060400
STA L0CL2
JSM GPARM
0398 00467 074070 SYM1 SIB
O399 00470 074517 LDA B,I
0400 00471 070342 SAR 8
0401 00472 011467 CPA L0CL2
SAVE if TO BE SEARCHED zu suchendes # sichern
SAVE SOURCE CHARACTER Quellenzeichen sichern
GET STARTING ADDRESS Startadresse
INCREMENT TABLE ADDRESS Tabellenadresse erhöhen
GET TABLE ENTRY Tabelleneingang
POSITION IT
IT positionieren
MATCH SOURCE CHAR? Paßt Quellenzeichen?
BASE PAGE ROUTINES Basisseiten-Prograitime
0402 00473 064500 JMP SYM2
0403 00474 055466 DSZ LOCLl
0404 00475 064467 JMP SYMl
0405 00476 021467 LDA LOCL 2
0406 00477 170402
0407 0408 0409 0410
0411* 0412* 0413* 0414 0415 0416
00500 020123 SYM2
00501 070076
00502 074017
00503 064543
RET
LDA TCA ADA JMP
FOPBS
YES Ja
NO, CONTINUE SEARCH? nein, Suche fortsetzen?
YES ja
NO, RESTORE CHARACTER nein, Zeichen zurückstellen
RETURN TO P+2-NOT FOUND nach P+2 zurückkehren - nicht gefunden
COMPUTE rechnen
OP-CODE
STSRH+4 SHIFT-STORE-RETURN TO P+3 schieben - speichern zurück nach P+3
CHECK FOR A COMMA Kommaprüfung
00504 060463 COMCK JSM SYMCl
00505 012001 DEF 120Q1B ÖO5O6 170402 RET
0417 00507 064357
JMP RETN2
0418* 0419
00510 060504 COMCE JSM COMCK
0420 00511 160206
0421 0422* 0423* 0424* 0425 0426 0427
00512 170402
JSM ERRA,I
RET CHECK FOR Prüfen COMMA-I Komma-1
NOT FOUND - RETURN TO P+l nicht gefunden zurück nach P+l
FOUND-RETURN TO P+2 gefunden - zurück nach P+2
CHECK FOR COMMA Kommaprüfung
ERROR IF NOT FOUND
Fehler, wenn nicht gefunden
CHECK FOR LEFT PARENTHESIS Linke Klammer prüfen
00513 060461 LPCK
00514 012023
00515 170402
JSM SYMC2 LEFT PAREN linke Klammer DEF 12O23B LBRAC-I
RET NO, RETURN TO P+l
nein, zurück nach P+l
309884/1370
0428 00516 020126
0429 00517 064544
0430* 3431
0432 0433
0434
0435*
0436*
0437*
0438
0439 0440
0441 0442
0443 0444
0445* 0446 0447 0448 0449
0450*
0451* 0453
0454 0455
00520 061055
LDA LPOP
JMP STSRH+5
JSM GNEXT
00521 060513 LPCKE JSM LPCK
00522 160206 FSCEl JSM ERRA,I
00523 170402
RET
CHECK FOR RIGHT PARENTHESIS
00524 060461 RPCK JSM SYMC2
00525 012003
00526 170402
00527 020004
00530 060455
00531 061055
00532 064357
DEF 12OO3B RET
LDA RPOP JSM SBPUD-I
JSM GNEXT JMP RETN2
00533 061055 JSM GNEXT
00534 060524 RPCKE JSM RPCK
YES, RECODE A LEFT ja, linke Klammer rekodieren
PAREN AND RETURN TO P+2 und zurück nach P+2
GET NEXT CHAR nächstes Zeichen
DEMAND A
verlangen
LEFT PAREN OR BRACKET linke Klammer
Rechte Klammer prüfen
RIGHT PAREN rechte Klammer
PRAN-I
NO,RETURN TO P+l nein, zurück nach P+l
YES, RECODE A RIGHT
PAREN AND INC SBPTR ja, rechte Klammer rekodieren und INC SBPTR
GET NEXT CHAR nächstes Zeichen
RETURN TO P+2 zurück nach P+2
GET NEXT CHAR nächstes Zeichen
DEMAND A verlangen
00535 160206 FSCE2 JSM ERRA,I RIGHT PAREN OR BRACKET
rechte Klammer
00536 170402
RET
SEARCH TABLE AND STORE OP CODE IF FOUND Tabelle suchen und OP-Code speichern wenn gefunden
00537 160175 STSRH JSM TSRHA,I SEARCH TABLE
Tabelle suchen
00540 170402
00541 031466
RET
STA LOCLl NOT FOUND nicht gefunden
SAVE OP CODE
OP-Code sichern
30988/+/137Π
0456 00542 050040 AND B37 GET 5 BIT CODE
0457 00543 070304 SAL 10 SHIFT AND
schieben und
Seite 10 BASE PAGE ROUTINES
Basisseiten-Programme
0458 00544 131706 STA SBPTR,I STORE OP CODE
speichern OP-Code
0459 00545 064357 JMP RETN2 RETURN TO P+2
zurück nach P+2 0460+ 0461+ SEARCH TABLE AND STORE EXPANDED OP CODE
Tabelle suchen und erweiterten OP-Code speichern 0462*
0463 00546 160175 STEXP JSM TSRHA,I SEARCH TABLE
Tabelle suchen
0464 00547 170402 RET
0465 00550 070544 SAL 5 ASSEMBLE AND
assemblieren und
0466 00551 040065 IOR OPMSK STORE speichern
0467 00552 064544 JMP STSRH+5 0468* 0469+ BUMP H-STACK POINTER AND CHECK FOR OVERFLOW H-Stapelspeicher-Hinweismarke vorschieben und auf Überschreitung prüfen
0470*
0471 00553 055413 BHSTP DSZ HSTPT DINC POINTER
DINC-Hinweismarke
0472 00554 025413 LDB HSTPT
0473 00555 074076 TCB
0474 00556 005412 ADB LSTPT
0475 00557 004017 ADB
0476 00560 075012 SBM STSRH+1 OVERLAP? RETURN IF NOT
Überlappung? wenn nicht, zurück
0477 00561 160206 MER8 JSM ERRA,I 0478* 0479 00561 FSCE4 EQU MER8
309884/137^
0480* 0481+
0482+ 0483 0484
0485 0486
0487* 0488* 0489* 0490 0491 0492 0493 0494* 0495*
0496* 0497 0498 0499
0500 0501
STACK (B) ON L-STACK AND CHECK OVERFLOW
(B) im Stapelspeicher stapeln und Überschreitung prüfen
00562 025421 LDB PRADD
00563 045412 SLWST ISZ LSTPT
00564 135412
00565 064554
STB LSTPT,, I JMP BHSTP+1 INC POINTER INC-Hinweismarke
STORE VALUE Wert speichern CHECK FOR OVERFLOW auf Überschreitung prüfen
FETCH TOP OF L-STACK
00566 031421 STA PRADD
00567 121412 UNSTK LDA LSTPT,I
00570 055412 DSZ LSTPT
00571 170402 RET
PREPARE FOR BRANCH THROUGH TABLE Sprung durch Tabelle vorbereiten
00572 025421 LDB PRADD
00573 035472 STB TEMPS
00574 125472 NEXTL LDB TEMPS,I
00575 074073
00576 035427
0502 00577 025472
0503 00600 061007
SBP *+l,C STB .LNUM
LDB TEMPS JSM NEXTA
0504 00601 035421 STB PRADD I
0505 00602 045472 ISZ TEMPS
0506 00603 125472 LDB TEMPS,
READ AND SAVE lesen und sichern CLEAR SECURITY BIT
CURRENT LINE NUMBER Zeilenzahl für Sicherheits-Bit-Fluß löschen FIND ADDRESS
OF NEXT STATEMENT Adresse der nächsten Anweisung auffinden SAVE IT sichern
READ OP CODE OP-Code lesen
3Q9884/ 1370
0507 00604 074O73 SBP *+l,C
0508 00605 045472 ISZ TEMPS
0509 00606 074442 NEXTl SBR 10
0510 00607 074076 TCB
0511 00610 035466 STB LOCLl
0512 00611 121472
0513 00612 050065
LDA TEMPS,I AND OPMSK GET NEGATIVE OF OP CODE SAVE -(OP CODE) negativer OP-Code -(OP-Code) sichern
GET PAGE Seite
Seite 11 BASE PAGE ROUTINES
Basisseiten-Programme
0514 00613 024130 FPAGE LDB FROMA
0515 00614 074457 CPA B,I
0516 00615 170402 RET
0517 00616 014131 . CPB LROMA
0518 00617 064622 JMP FPAGl
0519 00620 004116 ADB QTOP
0520 00621 064614 JMP FPAGE+1
0521 00622 025403 FPAGl LDB MAW
0522 00623 111403 CPAMAW,!
0523 00624 170402
RET
0524 00625 160206 SYSER JSM ERRA,I
0525+
0526*
0527*
0528* SAVE BADDR AND SBPTR GET FIRST TABLE ADDRESS
erste Tabellenadresse
IS THIS THE PAGE?
1st dies die Seite?
YES, (B) =LAST WORD OF PAGE
ja,(B) = letztes Wort
der Seite
ALL ROM'S SEARCHED? Alle ROM gesucht YES7CHECK BINARY AREA ja, Binärbereich prüfen NO, CHECK NEXT ROM nein, nächstes ROM prüfen
IS CODE IN R/W?
Ist Code in R/W?
YES, (B) = MAW
ja, (B) = MAW
NO, THE PROPER BLOCK IS
NOT IN nein, der richtige
Block ist nicht drin
BADDR und SBPTR sichern
Ί O 9 8 B Ul 1 3 7 Π
0529* 0530 0531 0532 0533 0534 0535+ 0536* 0537* 0538 0539 0540 0541 0542 0543* 0544 0545 0546
0548 0549* 0550*
0551* 0552 0553 0554 0555 0556* 0557*
0558* 0559 0560
00626 025400 SAVBP LDB BADDR
00627 035715 STB SBADR
00630 025706 LDB SBPTR
00631 035716 STB SSBPT
00632 170402 RET
RESTORE BADDR AND SBPTR BADDR und SBPTR zurückstellen
00633 021715 RESBl LDA SBADR
00634 031400 STA BADDR
00635 021716 LDA SSBPT
00636 031706 STA SBPTR
00637 170402 RET
ERASE
OPERAND Operanden löschen
00640 060633 RESBP JSM RESBl
00641 121706 LDA SBPTR,I
00642 050065 AND OPMSK
00643 131706 STA SBPTR,I
00644 170402 RET
SCRATCH SYMBOL TABLE AND INITIALIZE STACKS Symboltabelle markieren und Stapelspeicher initialisieren
00645 025404 MINIT LDB LWAM 006 46 035407 STB SYMTP 00647 03 5406 STB VALUE 00650 064653 JMP INITS+2
INITIALIZE STACKS FOR SYNTAX Stapelspeicher für Syntax initialisieren
00651 020662 INITS LDA HFLGA
00652 170000 CLR
0561 00653 025426
0562 00654 004132
LDB PBPTO
ADB Ml CLEAR HALT AND TRACE FLAGS Halt- und Verfolgungskennzei chen löschen
SCRATCH L-STACK
L-Stapelspeicher markieren
3 O 9 J 8 U / ι 3 V P
0563 00655 035412 STB LSTPT
0564 00656 025407 INITl LDB SYMTP
0565 00657 074070
0566 00660 035413
0567 00661 164242
SIB
STB HSTPT
JMP DCOMA,I
0568 00662 001436 HFLGA DEF HFLGl 0569*
SCRATCH H-STACK Η-Stapelspeicher markieren
RESET DATA POINTERS Daten-Hinweismarken null stellen
Seite 12 BASE PAGE ROUTINES
Basisseiten-Programme
0570+ SUBROUTINE TO BUILD A PROGRAM INTEGER LESS THAN 10000 Unterprogramm zum Aufbau einer Programm-Ganzzahl unter 10000
BACK UP POINTER UP-Hinweismarke rücksetzen CALL PGINT WITH -10000 PGINT mit -10000 rufen FLAG FOR RESEQUENCABLE INTEGER Fehlerkennzeichen für rückfolgbare Ganzzahl
SUBROUTINE TO BUILD A PROGRAM INTEGER AND STORE IT
IN THE S-BUFFER AND FLAG THE PREVIOUS WORD Unterprogramm zum Aufbau einer Programm-Ganzzahl und zu deren Speicherung im S-Puffer und zur Kennzeichnung des vorhergehenden Wortes
(B)=-(MAXIMUM ALLOWABLE INTEGER).(max.zulässige Ganzzahl)
0571* 00663 055400 DSZ BADDR
0572 00664 024161 LNUM LDB MAXSN
0573 00665 145706 ISZ SBPTR,I
0574
0575*
0576*
0577*
0578*
0579*
0580
0581
0582
0583
00666 121706 PGINT LDA SBPTR,I
00667 072053 SAP *+l,S
00670 000020 ADA .3
00671 060455 JSM SBPUD-I
00672 035477 STB -TEMP4
SET setzen
"INTEGER "Ganzzahl FOLLOWS" folgt" FLAG Kennzeichen
SAVE UPPER LIMIT Obergrenze sichern
309884/1370
0585 0586 0587* 0588
0589* 0590* 0591* 0592
0593* 0594
0595 0596 0597
0598 0599 0600 0601
00673 061055
00674 064677
JSM GNEXT JMP INTCK+1
SUBROUTINE TO BUILD AN INTEGER AND STORE IT IN SBUFFER Unterprogramm zum Aufbau einer Ganzzahl und zu deren Speicherung in S-Puffer
(A)=FIRST CHARACTER erstes Zeichen (B)=-(MAXIMUM ALLOWABLE INTEGER) -(max.zulässige Ganzzahl)
00675 024161
LDB MAXSN
0607 0608
0609 0610
00676 035477 INTCK STB TEMP4
00677 074742
00700 035722
00701 060750
SBR STB INTGR JSM DIGCK
00702 064725 JMP SYE25-1 00.703 060750 INTCl JSM DIGCK
00704 064716 JMP INTC2
00705 021722 LDA INTGR
0602 00706 035722
0603 00707 024061
0604 00710 061201
0605 00711 001722
0606 00712 070552
00713 031722
00714 061055
STB INTGR LDB
JSM IMPY ADA INTGR
SAM SYE25-1
STA INTGR JSM GNEXT
00715 064703 JMP INTCl
00716 025722 INTC2 LDB INTGR
0611 00717 135706
STB SBPTR,! BUILD A LINE ff Zeile aufbauen
SAVE UPPER LIMIT Obergrenze sichern
INITIALIZE initialisieren PARTIAL RESULT Teilergebnis
IST CHAR A DIGIT? ist Zeichen Ziffer NO nein DIGIT? Ziffer NO nein
RECALL PARTIAL RESULT Teilergebnis zurückrufen
SAVE LATEST DIGIT letzte Ziffer sichern
MULTIPLY PARTIAL Teil multiplizieren
RESULT RY 10 Resultat mit
ADD LATEST DIGIT letzte Ziffer addieren
SKIP IF OVERFLOW überspringen, wenn Überschreitung
STORE PARTIAL RESULT Teilergebnis speichern
GET NEXT CHARACTER nächstes Zeichen
SKIP THROUGH LINK Anschluß überspringen
STORE INTEGER Ganzzahl speichern
30988^/1370
23^3908
0612 00720 074250
0613 00721 005477
0614 00722 076153
0615 00723 025722
0616 00724 064456
0617 00725 045724
SZB SYE25-1 ADB TEMP4
SBP SYE25-1,S LDB INTGR JMP SBPUD IF ZERO
wenn Null
ISZ GFLAG
0618 00726 160206 SYE25 JSM ERRA,I
0619 00727 064357 JMP RETN2
0620*
0621+ GET ADDRESSES FOR SYSTEM COMMANDS Adressen für Systembefehle holen
0622+
SUBTRACT LIMIT
Grenze subtrahieren
SKIP IF TOO LARGE überspringen, wenn zu groß
RETURN WITH
zurückkehren mit
INTEGER IN (B): NEXT CHAR IN (A)
Ganzzahl in (B): nächstes
Zeichen in (A)
RETURN ON ERROR FLAG SET? Rückkehr auf Fehlerzeichen gesetzt?
NO nein
YES7RETURN TO P+2 ja, zurück nach P+2
0623+
0624+
0625+
RETURN: TEMP4 = ADDRESS OF FIRST LINE zurück: TEMP4 = Adresse der ersten Zeile
(B) =ί ADDRESS OF LAST LINE +1
(B) = Adresse der letzten Zeile +1
Seite 13 BASE PAGE ROUTINES
Basisseiten-Programme
0626 00730 074070 GETAD SIB ++1
0627 00731 035477 STB TEMP4
0628 00732 074076
0629 00733 070037
0630 00734 075513
0631 00735 061075
TCB ADB A SBP SYE25 JSM FNDPS ADD I TO SECOND TO MAKE ADDRESS INCLUSIVE
zum zweiten addieren, um Adresse inklusiv zu machen
IS FIRST ist erstes GREATER größer THAN SECOND als zweites
FIND ADDRESS OF FIRST Adresse des ersten auffinden
0632 00736 064740 JMP ++2
0633 00737 064740 JMP ++1 0634+
0635+ CALL FNDPS AND RETURN TO P+l FNDPS rufen und nach P+l
309884/1370
0636*
0638
0640 0641
0643* 0644*
0645* 0646*
0647* 0648 0649 0650
00740 021477
00741 035477
00742 061075 FND
00743 170402
00744 170402
00745 170402
LDA TEMP4
STB TEMP4
JSM FNDPS
RET
RET
RET
CHECK IF CHAR IN (A) IS A DIGIT
Prüfen ob Zeichen in (A) Ziffer ist
RETURN TO P+l IF NOT FOUND
zurück nach P+l, wenn nicht gefunden
RETURN TO P+2. IF FOUND; ASCII IN (A) ; DIGIT IN (B) zurück nach P+2, wenn gefunden; ASCII in (A); Ziffer in (B)
00746 030071 DLIMT
00747 040532 LLIMT 00750 024746 DIGCK
0651 00751 064753
OCT 30071 0-9 OCT 40532 A-Z
LDB DLIMT LOAD LIMITS FOR DIGITS
Grenzen für Ziffern eingeben
JMP LIMIT CHECK LIMITS AND RETURN
Grenzen prüfen und zurück
0652* 0653*
0654* 0655*
0656* 0657
0658*
0659* 0660 0661 0662
CHECK IF CHAR IN (A) IS A LETTER
prüfen, ob Zeichen in (A) Buchstabe ist
RETURN TO P+l IF NOT FOUND zurück nach P+l, wenn nicht gefunden
RETURN TO P+2 IF FOUND
zurück nach P+2, wenn gefunden
00752 024747 LETCK LDB LLIMT LOAD LIMITS FOR LETTER Grenzen für Buchstaben eingeben
ENTER INTO LIMIT DIRECTLY direkt in Grenze eintreten
00753 035466 LIMIT STB LOCL
00754 074346 RBR8
00755 074342 SBR
SAVE LIMITS Grenzen sichern
GET UPPER LIMITS
Obergrenzen
0663 00756 074056
CMB
0664 00757 070037
0665 00760 075253
0666 00761 025466
0667 00762 074342
0668 00763 074076
0669 00764 070037
0670 00765 075012
0671 00766 070137
0672 00767 004153
ADB A
SBP FND+3 LDB LOCLl SBR TCB ADB A
SBM FND+3 LDB A
ADB M48
0673 00770 064357 JMP RETN2 0674*
0675+ GET OPERAND 0676*
0677 00771 121472 GTOPP LDA TEMPS,I
0678 00772 050070 AND OPDMK
0679 00773 170402 RET 0680·***
0681*
BASE PAGE ROUTINES Basisseiten-Programme CODE EXCEEDS
Code überschreitet UPPER LIMIT? Obergrenze?
NO nein
GET LOWER LIMIT Untergrenze
CODE LESS THAN Code kleiner als
LOWER LIMIT Untergrenze
NO, CODE IN LIMITS nein, Code in Grenzen
YES,RETURN TO P+2 ja, zurück nach P+2
0682 00774 000000 BSSlO 0683*
0684***
0685*
0686*
0687*
0688* COMPUTE ADDRESS OF NEXT LINE
Adresse der nächsten Zeile rechnen
0689*
0690 01006 035466 STB LOCL
0691 01007 074117 NEXTA LDA B
SAVE ADDRESS OF CURRENT LINE Adresse der Flußzeile sichern
0692 01010 070070
0693 01011 070517
SIA *+l LDA A,I
STATEMENT
Anweisung
309884/1370
JlBO
0694
0695
0696
0697* 0698* 0699+ 0700+ 0701* 0702+ 0703* 0704*
01012 050104
01013 070037
01014 170402
0705+ 0706* 0707+ 0708+.
0709* 0710+
0711+· 0712* 0713* 0714+ 0715
0716
AND B177 ADB A
RET
LENGTH Länge
COMPUTE ADDRESS OF NEXT LINE Adresse der nächsten Zeile
rechnen
THIS SUBROUTINE STORES A CHARACTER IN A BUFFER. THE BUFFER POINTER
IS USED TO INDICATE WHERE IN THE
BUFFER THE CHARACTER IS TO BE STORED THE BUFFER IS UNDISTURBED EXCEPT
WHERE THE PONTER POINTS.
Dieses Unterprogramm speichert ein Zeichen in einem Puffer. Die Puffer-Hinweismarke wird benutzt, um anzuzeigen, wo im Puffer das Zeichen zu speichern ist. Der Puffer ist ungestört, ausgenommen, wo die Hinweismarke anzeigt.
ENTRY CONDITIONS: Bedingungen eintreten:
(B)- BUFFER POINTER POINTER
(B) = Puffer-Hinweismarken-Anzeige
(A) = CHARACTER TO BE STORED (A)=ZU speicherndes
Zeichen
RIGHT JUSTIFIED WITH LEADING O1S rechtsbündig mit führendem O's
01015 020041 OBLNK LDA
01016 024110 ONEXT LDB BADRP
0717 01017 031467 OUTCR STA L0CL2
LDA B,I
CPA PEKD
RET
0718 01020 074517
0719 01021 011623
0720 01022 170402
OPTIONAL ENTRY POINT Wahleingangspunkt
SAVE CHARACTER TO BE STORED zu speicherndes Zeichen
sichern
FETCH BUFFER POINTER Puffer Hinweismarke abrufen
AT I/O .FND?
bei I/O FND?
YES ja
309884/1370
2 3 3? 9 O
0721 01023 074637 ISZ B,I
0722 01024 070137 LDB A
0723 01025 074006 RBR 1
0724 01026 070002 SAR 1
0725 01027 070517 LDA A,I
0726 01030 074112 SBM #+2
0727 01031 070346 RAR 8
0728 01032 050157 AND M256
0729 01033 041467 IOR LOCL 2
0730 01034 074132 SBM *+2,C
0731 01035 O7O346 RAR 8
0732 01036 074557 STA B,I
0733 01037 170402 RET 0734* 0735+ 0736* THIS SUBROUTINE FETCHES 0737* A CHARACTER FROM A BUFFER BUMP BUFFER POINTER Puffer-Hinweismarke vorschieben
FETCH BUFFER WORD Pufferwort abrufen
SET A TO STORE IN LEFT HALF A setzen zur Speicherung in linker Hälfte
ROTATE IF FLAG WAS SET rotieren, wenn Kennzeichen gesetzt war
STORE NEW BUFFER WORD neues Pufferwort speichern
Dieses Unterprogramm ruft ein Zeichen aus einem Puffer ab.
0738* 0739* 0740* 0741*
0742+ 0743* 0744+ 0745+ 0746* 0747* 0748* 0749*
BASE PAGE ROUTINES Basisseiten-Programme
ENTRY CONDITIONS: Eingang Bedingungen:
(B)= BUFFER POINTER POINTER (B)= Puffer-Hinweismarken-Marke
EXIT CONDITIONS: Ausgang Bedingungen:
(A)=8-BIT CHARACTER (A)=8-Bit-Zeichen (B)=BUFFER POINTER POINTER (B)=Puffer-Hinweismarken-
Marke
309884/1370 ORIGINAL INSPECTED
0750 01040 024110
LDB BADRP
0751 01041 035466 GETCH STB LOCL
0752 01042 074517 LDA B,I
0753 01043 070002 SAR 1
0754 01044 070517 LDA A,I
0755 01045 074537 LDB B,I
0756 01046 074111 SLB GETl
0757 01047 070346
RAR 8
0758 01050 070342 GETl SAR 8 0759 01051 145466
ISZ LOCLl,I
0760 01052 170402 RET TMPA
0761+ GETCH
0762 01053 024111 GTMP LDB
0763 01054 065041 JMP
0764+ BADRP
0765+ GTCON
0766 01055 024110 GNEXT LDB BLANK
0767 01056 061362 JSM +-3
0768 01057 011707 CPA
0769 01060 065055 JMP
0770 01061 170402
RET
0771+
0772+
0773+
0774
0775
GET NEXT CHAR FROM I/O BUFFER nächstes Zeichen aus I/O-Puffer
SAVE POINTER POINTER Hinweismarken-Marke sichern
FETCH BUFFER POINTER Puffer-Hinweismarke abrufen
FETCH TWO CHARACTERS zwei Zeilen abrufen
TOP HALF WORD? obere Hälfte Wort?
NO? MOVE RIGHT HALF TO LEFT nein, rechte Hälfte nach links bewegen
TAKE TOP HALF nimm obere Hälfte
BUMP POINTER
Hinweismarke vorschieben
YES ja
GET CHAR.AND CONVERT Zeichen holen und konvertieren
BLANK? Leer?
YES,IGNORE IT ja, ignorieren
YES,RETURN TO P+l ja, zurück nach P+l
GET CHARACTER ROUTINES Zeichenprogramme holen
01062 020233 GFRST LDA SBUFA
01063 031706 STA SBPTR
0776 01064 020211
LDA .BUFA INITIALIZE SYNTAX BUFFER POINTER
Syntax-Puffer-Hinweismarke initialisieren
SET BUFFER POINTER TO START Puffer-Hinweismarke in Startposition bringen
309884/1370
0777 01065 031400 0778 01066 061055 GETSK JSM GNEXT
0779 01067 010031
0780 01070 170402
0781 01071 064357
STA BADDR OF I/O BUFFER
des I/O Puffers
GET A CHARACTER Zeichen holen
CPA EOL END OF LINE? Zeilenende?
RET YES, RETURN TO P+l
ja, zurück nach P+l
JMP RETN2 NO, RETURN TO P+2
nein, zurück nach P+2
0782* 0783+
0784* 0785+
0786+ 0787+ 0788+
0789*
FIND SEQUENTIAL POSITION OF LINE (F GIVEN IN (A) Folgeposition der Linie fr, gegeben in (A), auffinden
RETURN P+l: BEYOND END OF PROGRAM
zurück außerhalb Programmende
P+2: BETWEEN LINES zwischen Zeilen P+3:FOUND gefunden
TEMP3=(B)"ADDRESS OF LINE OR NEXT LINE IN SEQUENCE Adresse der Zeile oder nächstfolgenden Zeile
LSTLN=LINE NUMBER OF PREVIOUS LINE Zahl der vorherigen Zeile
GET SYNTAX SEQUENCE Hr Syntax-Folge
SAVE FOR LIST ROUTINE Listenprogramm sichern
0790* 01072 120233 LDA SBUFA,I
0791 01073 031431 STA CLINE
0792 01074 031427 STA .LNUM
0793 16 BASE PAGE ROUTINES
Seite
Basisseiten-Programme
0794 01075 031476 FNDPS STA TEMP3
0795 01076 025424 LDB PBUFF
0796 01077 015423 FNDPl CPB PBPTR
0797 01100 065117 JMP FNDP4
0798 01101 074517
0799 01102 070073
0800 01103 070510
LDA B,I SAP *"+l,C
SZA FNDP2 SAVE SEQUENCE # Folge it sichern
END OF PROGRAM? Programmende?
YES, RETURN TO P+l ja, zurück nach P+l
GET CURRENT* Fluß # holen
CLEAR SECURE BIT Sicherheits-Bit löschen
EXIT P+3 IF TYPING AID KEY Ausgang P+3 wenn Druckhilfe-Taste
309884/1370
0801 01104 070076
0802 01105 001476
0803 01106 070412
0804 01107 070330
0805
0806
0807
0808
0809
0810
0811
0812
0813
0814+
0815*
0816+
0817+
0818*
0819*
0820*
0821
OHIO 074517
01111 070073
01112 031720
01113 061007
TCA
ADA TEMP3
SAM FNDP3
SIA FNDP2
LDA B,I SAP *+l,C STA LASTN JSM NEXTA SUBTRACT CURRENT # FROM DESIRED*
01114 065077 JMP FNDPl
01115 060365 FNDP2 JSM RET2
01116 060365 FNDP3 JSM RET2
01117 035476 FNDP4 STB TEMP3
von gewünschtem # abziehen
CURRENT>DESIRED? IF YES,P+2 Fluß > als gewünscht? wenn ja, P+2
EQUAL? IF YES,P+3 (A)=I gleich? wenn ja, P+3 (A)=I
SAVE sichern
CURRENT LINE Flußzeile
COMPUTE ADDRESS OF NEXT LINE Adresse der nächsten Zeile
rechnen
P+3
P+2
P+l SAVE STATEMENT ADDRESS Anweisungsadressen sichern
01120 170402
RET
MOVE WORDS TO HIGHER MEMORY Wörter in höheren Speicher bewegen
TEMP2=LAST WORD+1 OF SOURCE =letztes Wort+1 der Quelle TEMP3=FIRST WORD OF SOURCE =erstes Wort der Quelle
TEMP4=LASE WORD+1 OF DESTINATION =letztes Wort + 1 der Bestimmung
01121 025475 MVTOH LDB TEMP2
0822 01122 015476
0823 01123 170402
0824 01124 055477
0825 01125 004132
0826 01126 074517
CPB TEMP3
RET
DSZ TEMP4
ADB Ml LDA B,I FETCH SOURCE ADDRESS Quellenadresse abrufen
ALL RELOCATION DONE? alle Verschiebungen durchgeführt?
BACK UP DESTINATION POINTER Bestimmungs-Hinweismarke
rückwärts
BACK UP SOURCE POINTER n°°h Quellen1Hinweismarke
rückwärts noch
MOVE bewegen
309884/1370
/3T
0827 01127 131477
0828 01130 065122 0829*
0Ö30*
STA TEMP4,I JMP MVTOH+1 WORD
Wort
FETCH AN INTEGER ALLOWING ZERO Ganzzahl abrufen, Null erlaubt
0831*
0832 01131 020132 PGINO LDA Ml 0833 01132 031724
0834 01133 060666
0835 01134 170402
0836 01135 045706
0837 01136 075710
0838 01137 064726
STA GFLAG
JSM PGINT
RET
ISZ SBPTR
SZB *-2
JMP SYE25 FLAG TO RETURN
ON OVERFLOW OR O Zeichen zur Rückkehr auf Überschreitung oder
FETCH INTEGER Ganzzahl abrufen
WITHIN LIMITS innerhalb der Grenzen
OVERFLOW OR ZERO; UPDATE POINTER Überschreitung oder Null Hinweismarke aktualisieren
SKIP IF ZERO Überspringen wenn Null
MUST BE OVERFLOW muß Überschreitung sein
0839+
0840*
0841*
0842*
FETCH A LETTER Buchstaben abrufen
EXIT: P+l IF NEXT CHAR IS NOT A LETTER:CHAR IN (A)
Ausgang: P+l wenn nächstes Zeichen kein Buchstabe ist; Zeichen in (A)
P+2 IF LETTER; LETTER IN TEMPI; NEXT CHAR IN (A) AND TEMP2
P+2 wenn Buchstabe; Buchstabe in TEMPI; nächstes Zeichen in (A) und TEMP2
0843*
0844 O114O-O61O55 LTR JSM GNEXT
0845 01141 060752 JSM LETCK
0846 01142 170402 RET
0847 01143 031474 STA TEMPI
0848 01144 061055 JSM GNEXT
0849 01145 031475 STA TEMP2
0850 01146 064357
LETTER? Buchstabe?
NO, RETURN TO P+l nein, zurück nach P+l
YES,SAVE IT ja, ihn sichern
SAVE SECOND CHARACTER zweites Zeichen sichern
BASE PAGE ROUTINES
BasisSeiten-Programme
JMP RETN2 RETURN TO P+2 zurück nach P+2
30988W 1
0851* 0852*
0853+ 0854
END AND RESTORE STATEMENT SYNTAX
Ende und Rückstellung der Anweisungssyntax
01147 061055 ENDS JSM GNEXT CHECK FOR ADDITIONAL -CHARACTERS
auf zusätzliche Zeichen prüfen
0858* 0859+
0860*
0864+ 0865+ 0866+
01150 045706 ISZ SBPTR
01151 061153 EOST JSM EOLCK
01152 160206 NOEOF JSM ERRA,I
SUBROUTINE TO CHECK FOR EOL Unterprogramm zur EOL-Prüfung
01153 010031 EOLCK CPA EOL
01154 164203 JMP ACTSA,I
EOL?
YES,JUMP DIRECTLY TO ACTST ja, direkt nach ACTST springen
01155 170402
RET
INPUT A CONSTANT Konstanteneingabe
01156 01157 01160
01161 01162
01163 01164
061166 CONST JSM GSIGN GET SIGN 035721 STB SIGN STORE IT 160243 JSM NUMCA,I Vorzeichen holen es speichern
065163 064357
JMP CONS3 JMP RETN2
025721 C0NS3 LDB SIGN 074610 SZB GSIGR
0874 01165 160206 SYE12 JSM ERRA,I FETCH UNSIGNED NUMBER vorzeichenlose Zahl abrufen
NONE FOUND keine gefunden
FOUND,RETURN TO P+2 gefunden, zurück nach P+2
SKIP IF NO SIGN GIVEN überspringen, wenn kein Vorzeichen gegeben
SIGN GIVEN WITHOUT NUMBER Vorzeichen ohen Zahl gegeben
0875* 0876+ 0877+"
GET THE SIGN OF A NUMBER Vorzeichen einer Zahl holen
01166 061055 GSIGN JSM GNEXT
01167 074742 SBR
013 70 010047 CPA .43 "+"?
309C84/1370
23333US
0881
0882
0883
0884
0885
0886
01171 074230
01172 010050
01173 024132
SIB GSIGl+1 CPA LDB Ml
01174 074210 GSIGl SZB GSIGR YES ja
Il _ Il ·ρ
YES ja
SKIP IF NO SIGN GIVEN Überspringen, wenn kein Vorzeichen gegeben
01175 035470
01176 061055
0887 01177 025470
STB L2T1
JSM GNEXT
LDB L2T1 SAVE SIGN
Vorzeichen sichern
GET CHARACTER FOLLOWING SIGN auf Vorzeichen folgendes Zeichen holen
RECALL SIGN
Vorzeichen zurückrufen
0888
0889*
0890*
0891+
0892*
0893
0894
0895
01200 170402 GSIGR RET
MULTIPLY 2 INTEGERS IN (A) AND (B) AND RETURN RESULT IN (A); IF PRODUCT > 32K, (A)< O
Zwei Ganzzahlen in (A) und (B) multiplizieren und Ergebnis wieder nach (A) ; wenn Produkt > 32K, (A) <c 0
01201 031466 IMPY STA MCAND
01202 070742
SAR
01203 074151 IMPYl SLB *+3
0896 01204 001466
0897 01205 071552
0898 01206 074002
0899 01207 075450
0900 01210 031467
0901 01211 021466
0902 01212 001466
0903 01213 071252
ADA MCAND SAM IMPYR SBR
SZB IMPYR STA PROD
LDA MCAND ADA MCAND SAM IMPYR SAVE MULTIPLICAND Multiplikanden sichern
INITIALIZE PRODUCT Produkt initialisieren
SKIP IF MULTIPLIER BIT IS ZERO überspringen,wenn Multiplikator-Bit Null
ADD MULTIPLICAND TO PRODUCT Multiplikanden zum Produkt addieren
SKIP IF RESULT > 32K überspringen, wenn Ergebnis
> 32K
SHIFT MULTIPLIER RIGHT Multiplikator nach rechts schieben
RETURN IF FINISHED zurück, wenn beendet
SAVE PRODUCT
Produkt sichern
MULTIPLY multiplizieren MULTIPLICAND Multiplikand
SKIP IF RESULT > 32K überspringen, wenn Ergebnis
> 32K
309884/1370
/9*
0904 01214 031466 STA MCAND BY 2 um 2
0905 01215 021467 LDA PROD RECALL PRODUCT
Produkt zurückrufen
BASE PAGE ROUTINES Basisseiten-Programme
0906 0907 0908* 0909*
0910* 0911
01216 065203 JMP IMPYl 01200 . IMPYR EQU GSIGR
EVALUATE FORMULA AND FETCH RESULT TO AR2 Formel auswerten und Ergebnis nach AR2 abrufen
01217 160201 FETCH JSM FORMA,I EVALUATE FORMULA
Formel auswerten
0912 01220 160200 JSM OPCHA,I GET ADDRESS OF RESULT Ergebnisadresse holen
0913 0914
0915 0916
0917* 0918*
0919* 0920 0921 0922 0923 0924 0925
01221 045413
01222 045413
01223 074117
01224 064445
ISZ HSTPT ISZ HSTPT
LDA B
JMP XFAR2+1 REMOVE FROM STACK
aus Stapelspeicher entfernen
TRANSFER TO AR2 nach AR2 übergeben
SUBROUTINE TO LEAVE KEY DEFINITION MODE Unterprogramm zum Verlassen des Tasten-Definitions-Betriebs
01225 021422 LDEF
01226 070410
01227 021425.
01230 031424
01231 021426
01232 031423 *
01233 070742
01234 031422
LDA SZA LDA STA LDA STA SAR STA
UKPTR
*+8
PBUFO
PBUFF
PBPTO
PBPTR
16
UKPTR RESTORE PBUFF
rückstellen
0928 01235 031432
0930* 0931*
01236 170402
STA DRQST
RET RESTORE PBPTR rückstellen
CLEAR USER KEY FLAG Benutzertasten-Zeichen löschen
CLEAR DATA REQUEST FLAG Datenanforderungszeichen lösche
309884/1370
23 ^3908 Mathem. Pr ADA ARIE
0933+ AND ZAP
0934+ MATH ROUTINES STA AR2E
0935+ Speicherpr
0936+ ABR 2
0937 + STORE ROUTINES 01237 074117 STAR2 LDA B LDA ARlE
0938+ O124O-OO1744 AAR 2
0939 01241 050163 ADA B
0940 01242 031754
0941
0942 01243 074040
0943* 01244 021744
0944 01245 070040
0945 01246 074017
0946
0947
0948 01247 070137 LDB A
0949 01250 070113 SAP #+2
09 50 01251 070076 TCA
0951 01252 000164 ADA MASKl
0952 01253 070312 SAM OF
ADD THE EXPONENT OF Exponent von
ARl AND THE B REGISTER CLEAR OUT BITS 1-7 AND STORE IN AR2
ARl und B-Register addieren, Bits 1-7 auslöschen und speichern in AR2
OFFSET THE TWO ABOVE QUANTITIES AND RE-ADD TO CHECK FOR A MAXIMUM EXPONENT
die beiden obigen Größen versetzen und nochmal addieren, um auf max.Exponent zu prüfen
SAVE THE SIGN OF THE EXPONENT Vorzeichen von Exponent sichern
IF IT IS POSITIVE wenn positiv,
COMPLEMENT IT Komplement bilden
ADD A POSITIVE 100 TO IT positive 100 hinzuaddieren
SKIP IF AN OVERFLOW HAS OCCURED
überspringen, wenn Überschreitung aufgetreten ist
0953*
0954 01254 025755
0955 01255 076150
LDB AR2E+1 RZB ZONKl
01256 020214 CLAR2 LDA AR2A
01257 170000 CLR 01260 170402 ZONKl RET
0956 0957 0958 0959* 0960* 0961 01261 021754 CLEAR AR2 AR2 löschen
OF LDA AR2E OTHRRWISE SET UP BITS O AND
15 OF B anderenfalls Bits O und 15 von B aufsetzen Ί0988W1 37Π
0962 01262
0963 01263
BASE PAGE ROUTINES Basisseiten-Programme
070111 076051
0964*
0965
0966*
0967
0968
0969
0970*
0971
0972
0973
0974
0975*
0976
0977
0978*
0979
0980
0981
0982
0983
0984
0985
0986*
0987
0988
01264 074213
SLA *+2 SLB *+l,S
SBP OVFW
01265 01266 01267
01270 01271 01272 01273
01274 01275
01276 01277 01300 01301 01302 01303 01304
01305 01306
160205 UNFW JSM AERRA7I
177633 DEC -101 065256 JMP CLAR2
061274 OVFW JSM STMAX
160205 JSM AERRA,I
177634 DEC -100 170402 RET
061256 STMAX JSM CLAR2
07 4352 SBM .OVER
045757 170400 020165 031754 074111 045754
ISZ AR2E+3
CMY
LDA MASK5
STA AR2E
SLB *+2
ISZ AR2E
170402 .OVER RET
070742 ROUND SAR 174470 MRY
0989 01307
0990 01310
0991 01311
000136 070175 020214
ADA M SEC *+3,C LDA AR2A FOR MAX OR MIN ANSWER Antwort auf max.oder min,
AND ITS SIGN und sein Zeichen
CLEAR THE A REGISTER AND PERFORM A RIGHT SHIFT B
TIMES
Α-Register löschen und B-mal Rechtsverschiebung durchführen
IF THE LAST SHIFTED
OUT DIGIT IS =>5 INCREMENT
THE
30988 4/1370
0992 01312 170540
MDI
0993 01313 170402 0994*
0995*
RET
0997*
0998*
0999*
1000 01314 171400 ODGIT MLS
1001 01315 000052 ADA
1002 01316 065016 JMP ONEXT 1003*
1004 01317 O70537 SGNS LDB A,I
1005 01320 070070
1006 01321 070517
1007 01322 070210
1008 01323 020012
1009 01324 074111
1010 01325 020132
1011 01326 070137
SIA LDA A,I SZA *+4
LDA SLB *+2
LDA Ml LDB A RET
1012 01327 170402 1013*
1014 01330 031466 .NPWR STA LOCLl
1015 01331 021450 LDA PMODE
1016 01332 031702 STA NPRIN
1017 01333 021466 LDA LOCLl
MANTISSA
wenn zuletzt ausgeschobene Ziffer ist => 5, Mantisse erhöhen
THEN RETURN dann zurück
GET EXPONENT WORD Exponentwort holen
GET MANTISSA Mantisse holen
CHECK IF MANTISSA WAS ZERO prüfen,ob Mantisse Null war
SKIP IF SIGN IS 0 überspringen, wenn Vorzeichen
OTHERWISE SET A = -1 anderenfalls setzen A = -1
TRANSFER A INTO B A nach B übergeben
BASE PAGE ROUTINES Basisseiten-Programme
JMP WRITE,I
1018 01334 164167 1019*
1020 01335 035702 NPWRT STB NPRIN
309884/1370
- -3ΘΟ -
1021 1022* 1023 1024 1025+ 1026 1027 1028 1029 1030 1031 1032 1033
01336 164167
JMP WRITE,I
01337 035701 NDWRT STB NDISP
01340 164167 JMP WRITE,I
01341 160170 JSM CLERA,I
01342 021450 CRLF LDA PMODE
01343 072450 RZA CRI
01344 020031 CRLFl LDA CRTN
01345 061353 JSM TTY
01346 070742 SAR
01347 160261 JSM I0STAfI 01350 020040 LDA
1034 01351 031622 STA TERM 160261 061041 TTY JSM IOSTA,I
1035 01352 020061 LDA LNFD 170402 070137 CRl RET
1036* 041447 050103 IOR SLCOD
1037* GENERAL DRIVER Allgemeiner Ά 172741 010103 STF 1
1038* 172141 004151 OTA 1
1039 01353 173601 074117 STC IfC
1040 01354 170402 RET
1041 01355
1042 01356 CONVERT FROM LOWER CASI C vom
1043 01357
1044 01360 01362 GTCON JSM GETCH
1045 01361 01363 LDB A
1046* 01364 AND B140
1047* 01365 CPA B140
1048* 01366 ADB M32
1049 01367 LDA B
1050
1051
1052
1053
1054
OUTPUT CRTN Ausgang CRTN
STOP KEY? Stoptaste?
YES,SET CRLF SUPRESSED
FLAG
ja, CRLF unterdrücktes
Kennzeichen setzen
OUTPUT LINE FEED Ausgangszeile zuführen
STOP KEY? Stoptaste? YES ja
vom niedrigeren Fall konvertieren
3 O 9 8 8 A / 1 3 7
? 3
Q
1055 01370 170402 1056+
RET
1057* TEMPI IS POINTING AT ADDRESS OF THE VARIABLE IN SYMBOL TABLE
TEMPI zeigt auf Adresse der Variablen in Symboltabelle
ON RETURN (A) = TYPE CODE bei Rückkehr (A)= Typencode (B) = ADDRESS (B)= Adresse
1058* 1059* 1060*
1061 01371 025474 FIX LDB TEMPI
1062 01372 074517 LDA B,I
1063 01373 050040 AND B37
1064 01374 004132 ADB Ml
1065 01375 074537 LDB B,I
1066 01376 170402 RET 1067*
1070 01377 000000 BSS 1 CHECKSUM WORD FOR ADD.1S
1000 TO 1377
. 71 Summenprobewort für Addi-
10/X* * tionen 1000 bis 1377
1073*
9830—BASE PAGE READ-WRITE MEMORY
Basisseiten-Lese-Schreib-Speicher
1075 01400 ORG 140OB
107 6 014OO OOOOOO BADDR BSS
1077 01401 OOOOOO RSAVE BSS
1078 01402 OOOOOO OTPTR BSS
1079 01403 OOOOOO MAW BSS
1080 01404 OOOOOO LWAM BSS
1081 01405 OOOOOO FWUP BSS
CURRENT CHAR POINTER Fluß-Zeichen-Hinweismarke
SAVE (A) IN RETN2 (A) in RETN2 sichern
REFRESH POINTER
Hinweismarke erneuern
LAST WORD OF R/W MEM Letztes Wort des R/W-Speichers
LAST WORD AVAILABLE FOR USER Letztes für Benutzer verfügbares Wort
FIRST WORD OF COMMON OR MAINLINE Erstes Wort der gemeinsamen oder Hauptzeile
30988^/1370
7333908
1082 01406 OOOOOO VALUE BSS 1
1083 01407 000000 SYMTP BSS 1
1084 01410 000000 LSTAK BSS 1
1085 01411 000000 TSTPT BSS 1
1086 01412 OOOCOC LSTPT BSS 1
1087 01413 OOOOOO HSTPT BSS 1
1088 01414 OOOOOO DSTRT BSS 1
1089 01415 OOOOOO NXTDT BSS 1
1090 01416 OOOOOO MODE BSS 1
1091 01417 OOOOOO PARMA BSS 1
1092 01420 OOOOOO PARMN BSS 1
1093 01421 OOOOOO PRADD BSS 1
1094 01422 OOOOOO UKPTR BSS 1
1095 01423 OOOOOO PBPTR BSS 1
1096 01424 OOOOOO PBUFF BSS 1
1097 Q1425 OOOOOO PBUFO BSS 1
1098 01426 OOOOOO PBPTO BSS 1
1099 01427 OOOOOO .LNUM BSS 1
1100 01430 OOOOOO LNINC BSS 1
1101 O1431 OOOOOO CLINE BSS 1
1102 01432 OOOOOO DRQST BSS 1
1103 01433 OOOOOO TFLAG BSS 1
FIRST WORD -1 OF VALUE TABLE Erstes Wort -1 aus Werttabelle
FIRST WORD -1 OF SYMBOL TABLE Erstes Wort -1 aus Symboltabelle
FIRST WORD OF OPERATOR STACK Erstes Wort des Operator-Stapelspeichers
TEMPORARY STACK POINTER Zwischenspeicher-Hinweismarke
OPERATOR STACK POINTER Operator-Speicher-Hinweismarke
OPERAND STACK POINTER Operanden-Speicher-Hinweismarke
DATA STATEMENT Daten-Anweisungs-POINTERS Hinweismarken
PROGRAM=O; KEYBOARD=I Programm = O; Tastatur = 1
PARAMETER ADDRESS
Parameter-Adresse
PARAMETER NAME
Parameter-Name
LAST WORD+1 OF CURRENT STMT Letztes Wort +1 der Fluß-Anweisung
USER KEY POINTER
Benutzertasten-Hinweismarke
LAST WORD OF CURRENT PROGRAM Letztes Wort des Fluß-Programms
FIRST WORD OF CURRENT PROGRAM Erstes Wort des Fluß-Programms
FIRST WORD OF MAINLINE Erstes Wort der Hauptzeile
LAST WORD+1 OF MAINLINE Letztes Wort +1 der Hauptzeile
CURRENT LINE NUMBER Flußzeilenzahl
AUTO LINE INCREMENT autom.Zeilensprung
CURRENT LINE FOR LIST Flußzeile für Liste
INPUT STMT FLAG
Eingangsanweisungs zeichen
PTAPE FLAG PTAPE-Marke
30988 h/1370
1104 01434 000000 UNITS BSS 1
1105 01435 000000 SEC BSS 1
1106 01436 000000 HFLGl BSS 2
1107 01440 000000 TFLGl BSS 2
1108 01442 000000 STPFL BSS 1
1109 01443 000000 KEYFG BSS 1
1110 01444 000000 SAVEA BSS 1
1111 01445 000000 SAVEB BSS 1
1112 01446 000000 ADRSS BSS 1
1113 01447 000000 SLCOD BSS 1
1114 01450 000000 PMODE BSS 1
1115 01451 000000 CTYPE BSS 1
1116 01452 000000 CPLAC BSS 1
1117 01453 000000 PRFLG BSS 1
1118 01454 000000 RCOUT BSS 1
1119 01455 000000 FORMT BSS 1
1120 01456 000000 FORMS BSS 1
1121 01457 000000 FORME BSS 1
1122 01460 000000 FTMPl BSS 1
1123 01461 000000 FTMP 2 BSS 1
1124 01462 000000 REEDL BSS 1
1125 01463 000000 INTEL BSS 1
1126
1127*
1128*
1129+
1130
01464 000000
TEMPORARIES
BSS 2 TRIG UNITS Trigger-Einheiten
SECURE PROGRAM FLAG Programm-Marke sichern
STOP ADDRESSES Adressen stop
TRACE LIMIT ADDRESSES Grenzadressen verfolgen STOP FLAG Marke stop KEYBOARD FLAG Tastatur-Marke INTERRUPT unterbrechen
TEMPORARIES Zwischenspeicher SELECT CODE Auswahl-Code PRINT-ALL FLAG "Alles drucken"-Marke KEYBOARD Tastatur-FORMAT FLAGS Format-Marken '
PRINT/DISP FLAG Druck/Wiedergabe-Marke
FORMAT
STATEMENT FLAGS Anweisungs-Marken
CURRENT OPERATOR CODE Fluß-Operator-Code
CURRENT OPERATOR PRECEDENCE Fluß-Operator-Vorrang
KEYBOARD DRIVER LINK Tastatur-Ansteuerungs-Verbindung
INTERRUPT LINK Verbindung unterbrechen
UNUSED ungebraucht
Zwischenspeicher
01466 000000 LOCLl BSS 1
309884/1370
2333308
Seite 22 9830—BASE PAGE READ-WRITE MEMORY
Baeisseiten Lese-Schreib-Speicher
1131 01467 000000 L0CL2 000000 IOBUF BSS 1
1132 01470 000000 L2T1 BSS 1
1133 01471 000000 L2T2 BSS 1
1134 01472 000000 TEMPS BSS 1
1135 01473 000000 TEMP BSS 1
X
1136 01473 MBOXl EQU TEMP
1137 01474 000000 TEMPI BSS 1
1138 01475 000000 TEMP 2 BSS 1
1139 01476 000000 TEMP 3 BSS 1
1140 01477 000000 TEMP 4 BSS 1
1141*
1142* BÜFFERS Puffer
1143+
1144 01500 BSS 41
1145
1146* 1147+ 1148* 1149 1150 INPUT AND RECALL BUFFER Puffer-Eingang und Rückruf
Ö1551 000000 RBUFF BSS 41 SINGLE LINE REFRESH BUFFER
Puffer zur Erneuerung einzelner Zeile
PRINT ROUTINE FLAGS Programm-Marken drucken
01622 000000 TERM BSS
01623 000000 PEND BSS
CRLF FLAG
CRLF-Marke
1151 01624 000000 PPFF BSS
1152 1153 1154» 1155+ 1156+
1158 1159*
01625 000000 FIRST BSS
01626 000000 BSS
BUFFER OVERFLOW FLAG Pufferüberfüllungs-Marke
BUFFER POINTER OR TAB FLAG Puffer-Hinweismarke oder Tabellenmarke
UNUSEC unbenutzt
MATH TEMPORARIES Mathem. Zwischenspeicher
01630 000000 TREGE BSS 01634 000000 RSLTE BSS
30988 4/1370
1160+ STATEMENT SYNTAX AND EXECUTION TEMPORARIES
Anweisungs-Syntax und Ausführungs-Zwischenspeicher
1162 01640 OOOOOO ST BSS
1164+ SYSTEM SYNTAX AND EXECUTION TEMPORARIES
System-Syntax und Ausführungs-Zwischenspeicher
1166 01700 OOOOOO BSS 1 SAVED FOR PROCESSOR
gesichert für Zentraleinheit
1167 01701 OOOOOO NDISP BSS 1
1168 01702 OOOOOO NPRIN BSS 1
1169 01703 OOOOOO PLACE BSS 1
1170 01704 OOOOOO WIDTH BSS 1
1171 01705 OOOOOO FLOAT BSS 1
1172 01706 OOOOOO SBPTR BSS 1
1173 01707 OOOOOO BLANK BSS 1
1174 01710 OOOOOO MSFLG BSS 1
1175 01711 OOOOOO DFLAG BSS 1
1176 01712 OOOOOO PFLAG BSS 1
1177 01713 OOOOOO UFLAG BSS 1
1178 01714 OOOOOO SFLAG BSS 1
1179 01715 OOOOOO SBADR BSS 1 1180· 01716 OOOOOO SSBPT BSS 1
1181 01717 OOOOOO NUM BSS 1
1182 01717 OPTYP EQU NUM
1183 01720 OOOOOO LASTN BSS 1
1184 01721 OOOOOO SIGN BSS 1
1185 01721 MAXIN EQU SIGN
1186 01722 OOOOOO EXP BSS 1
309884/1370
9830-BASE PAGE READ-WRITE MEMORY
Basisseiten, Lese-Schreib-Speicher
1187 1188 1189 1190 1191 1192 1193* 1194*
1195* 1196
1198
1200 1201
1202
017.22 INTGR EQU EXP
01723 000000 ARYAD BSS
01724 000000 GFLAG BSS
01725 000000 NXTST BSS
01726 000000 MBINl BSS
01727 000000 MBIN2 BSS
ARITHMETIC REGISTERS AND RETURN STACK Rechenregister und Stapelspeicherrücklauf
01740 01740 000000 XC 01744 000000 ARl 01750 000000 YC 01754 000000 AR2
ORG 174OB BSS BSS BSS BSS
01760 000000 RSTAK BSS 01773 000000 RES BSS
1203 01777 000000 RSPTR BSS RETURN STACK
Rücklauf Stapelspeicher
RESULT REGISTER Ergebnis Register
RETURN STACK POINTER Rücklauf Stapelspeicher-Hinweismarke
Seite 24 #rOl EQUATES EQU LOCLl
1205 01466 MCAND EQU L0CL2
1206 01467 PROD EQU ARl
1207 01744 ARIE EQU AR2
1208 01754 AR2E EQU MBIN2+1
1209 01730 COML EQU MBIN2+2
1210 01731 TYPE EQU ST
1211 01640 TEPPP EQU ST+1
1212 01641 SPRDD EQU ST+2
1213 01642 SAVE EQU PRFLG
1214 01453 ARW EQU XC
1215 01740 TMP
309884/1370
§03
1216 01741 REEl
1217 01742
1218 01743
1219 01750
1220 01751
1221 01706
1222 01752
1223 01460
1224 01474
1225 01475
1226 01476
1227 01477
1228 01461
1229 01473
1230 01704
1231 01741
1232 01742
1233 01751
1234 01743
1235 01750
1236*
1237*
1238 00047
1239 00050
1240 00051
1241 00052
1242 00053
1243 00077
1244 00116
1245 00004
Seite 25
1248*
1249*
TMPl-TMP 2
TMP 3
TMP 4
TMP 5
TMP 6
TMP 6 A
TMP 7
TMP 9
TMPlO
TMPIl
TMP 12
TMP 13
CCNT
BKPTR
R
L
DIGIT
INDEX
RBASE
EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU
XC+1
XC+2
XC+3
YC
YC+1
SBPTR
YC+2
FTMPl
TEMPS+2
TEMPS+3
TEMPS+4
TEMPS+5
FTMP
TEMPS+1
WIDTH
TMPl
TMP2
TMP
TMP
TMP
PLUS EQU .43
MINUS EQU .45
POINT EQU .46
B6O EQU .48
COLON EQU .58
DOLAR EQU B44
B2K EQU QTOP
XECA EQU BlOK
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
REED SUBROUTINE
Unterprogramm
1250* 309884/ 1
1251* 1252+ 1253+ 1254* 1255+
ENTRY CONDITIONS: NONE Eingangsbedingungen: keine EXIT CONDITIONS: Ausgangsbedingungen:
AN INPUT RECORD IS IN THE I/O Ein Eingangssatz ist im I/O -
BÜFFER. THE LAST CHAR IS AN EOL. Puffer. Das letzte Zeichen ist ein EOL
1257* IF A DELETE LINE is : ORG : 200OB SLEND SET TO PROGRAM SYNTAX
Programm-Syntax setzen
GET FIRST KEY Erste Taste holen 063046 REEDE JSM CALLK GET FIRST KEY
erste Taste holen
1258* PEND 02011 066011 JMP +-1
1259* FLGBT PTAPE COMMAND?
PTAPE-Befehl?
02012 013127 CPA DELIN
1260* HIT 020236 REEDl LDA MODE 02013 066223 JMP DELl
1261* RETURN TO P+l, OTHERWISE 031623 STA TFLAG 02014 025430 LDB LNINC
RETURN TO P+2. . 020062 LDA ♦+2 02015 010074 CPA B22 BACKSPACE? Rücktaste?
1262* 031416 STA PREED 02016
1263+ 0.21433 LDA CCNT
1264 070110 SZA BKPTR
1265+ 066617 JMP
1266+ 031473 STA
1267 031704 STA
1268
1269 Wenn fallengelassene Zeile angehoben wird,
zurück nach P+l, anderenfalls zurück nach P+2.
1270
1271
1272 02000
1273
1274
1275 02000
1276» 02001
1277 02002
1278 02003
1279 02004
1280 02005
1281 02006
1282 02007
02010
309884/1370
02017 074112
SBM REE
1284 02020 066032, JMP REED 7
1285 02021 055400 REE DSZ BADDR
1286 02022 045623 ISZ PEND
1287 02023 020041 LDA .32
1288 02024 061016 JSM ONEXT
1289 02025 055400 DSZ BADDR
02026 055623
1291 02027 070742
1292 02030 031430
1293 02031 066045
1294 02032 062533 REED7
1295 02033 021430
1296 02034 070153
1297 02035 070742
1298 02036 031430
1299 02037 070210 REED4
1300 02040 025427
1301 02041 160210
1302 02042 O454OO
YES, SKIP IF LIST INPUT ja, springen, wenn Listeneingang
YES, BACKUP POINTER ja, Rückwärts-Hinweismarke
02043 021751
DSZ PEND
SAR 16
STA LNINC
JMP REED6 JSM CLEAR
LDA LNINC SAP REED4
SAR 16
STA LNINC
SZA REED6-2 LDB .LNUM
JSM OUTIA,I ISZ BADDR
LDA TMP5 WIPE OUT LAZY-T LAZY-T löschen
RESTORE END OF BUFFER POINTER Ende der Puffer-Hinweismarke
rückstellen
GET OUT OF AUTO aus Auto
CLEAR THE DISPLAY Wiedergabe löschen
LIST WAS LAST? Liste war die letzte?
GET OUT OF AUTO aus Auto
AUTO LINE? AUTO-Zeile?
YES OUTPUT # ja Ausgang#
OUTPUT A BLANK Ausgang Leerfeld
30988W1370
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
1305*
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
132O
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
02044 GET
02045
02046 02047 02050 02051 02052 02053 02054 02055
02056 02057 02060 02061 02062 02063 02064 02065 02066 02067
02070 02071 02072 02073 02074 02075 02076 02077
02100 02101
066047 JMP REEDG NEXT KEY Nächste Taste 063046 REED6 JSM CALLK
066045 JMP +-1
010074 REEDG CPA B22
066707
010075
066725
012436
067665
010027
045416 050103 072510 021751 000141 070413 025706 074210 021751 040101
031751 STA TMP5
067131 JMP KEYPR 010103 REED2 CPA MSK65
066103 JMP REED3
021706 LDA TMP6
070610 SZA REED5
021751 LDA TMP5
060752 JSM LETCK
holen GET NEXT KEY nächste Taste holen
BACKSPACE? Rückwärts?
JMP BKSP FORWARD? Vorwärts?
CPA B23 YES ja
JMP FORWD CLEAR? löschen?
CPA B152 YES ja
JMP ECLR EXECUTE KEY?
Taste Ausführung?
CPA .11 YES ja
ISZ MODE
AND MSK65 BITS 5&6=O?
RZA REED 2 YES ja
LDA TMP 5
ADA MIO DEF KEY? DEF-Taste
SAP REED2+1
LDB TMP 6
SZB ++4
LDA TMP 5 SET SHIFT BIT FOR DE
IOR BlOO
Schiebe-Bit für DEF-Tasten
setzen
BITS 5&6=1?
YES ja
NO nein
SHIFTED? verschoben?
YES,LOWER CASE LETTER? ja, unterer Fall, Buchstabe
066103 JMP REED3 NO 040041 IOR
30988Λ/1370 nein
CONVERT CODE
Code konvertieren
1335 O21O2 O6611O REED 3 JMP ] REED5-1 021751 REED 5 LDA TMP 5. CODE IN VALUE TABLE?
Code in Werttabelle?
1336 02103 026412 LDB VALUP 010031 CPA- CRTN NO nein
1337 02104 063071 JSM
TBSRl 066172 JMP EOLL ENTER EXPONENT?
Eintritt Exponent?
1338 02105 066124 JMP REEDD 025704 LDB BKPTR YES, FORM ASCII E
ja, ASCII E formen
1339 02106 010022 CPA .5 074210 SZB REED 9
1340 02107 000101 ADA BlOO 027122 LDB BKPTA
1341 02110 031751 STA TMP 5 061017 JSM OUTCR Konversionen komplettiere
1342+ 066730 JMP FORWD+3
1343* ALL CONVERSIONS COMPLETE Alle 061016 REED9 JSM ONEXT
1344 02111 062737 JSM LEFT EXECUTE OR STORE
ausführen oder speichern
1345 02112 066045 JMP REED 6
1346 02113 CURSOR? Positionssymbol?
1347 02114 026373 REEDD LDB EXPTB YES ja
1348 02115 063071 JSM TBSRl REPLACE CHARACTER
Zeichen ersetzen
1349 02116 066213 JMP REED 8 SCROLL IF NECESSARY
SCROLL wenn nötig
1350 02117 031751 STA TMP 5 PUT CHAR AT END OF LINE
Zeichen ans Zeilenende
1351 02120 SCROLL IF NECESSARY
SCROLL wenn nötig
1352 02121
1353 02122
1354 02123 SEARCH FOR MULTI-CHAR KEY
Vielzeichentaste suchen
1355* FOUND? gefunden?
1356 02124 NO nein
1357 02125
1358 02126 KEYBOARD ENTRY AND DISPLAY
1359 02127
Seite 27
Tastatur-Eingang und Wiedergabe
1360 02130 062521
1361 02131 062533
JSM CLRST JSM CLEAR*
309884/1370
CLEAR FLAG IF "STOP" Bei "STOP" Marke löschen
1362 02132 026443 LDB COMTA I
1363 02133 021751 LDA TMP 5
1364 02134 162441 JSM MOUTA.
1365 02135 066045 PRALL JMP REED 6 STEP STA STPFL
1366 02136 062533 JSM CLEAR SAR 16
1367 02137 021450 LDA PMODE CONT LDB PRADD
1368 02140 070130 SIA *+2 SBP CONTl,C
1369 02141 070742 SAR 16 RZA CONTK
1370 02142 031450 STA PMODE LDA B,I
1371 02143 026444 LDB OFFA ■ CONTK STA NXTST
1372 02144 072110 RZA *+2 JMP XECA,I
1373 02145 004020 ADB .3 CONTl S ZA *+5
1374 02146 020020 LDA .3 JSM FNDPS
1375 02147 061335 JSM NPWRT 3( JMP
398
RDYDA,I
84/137
1376 02150 066011 JMP REEDE
1377*
1378* STEP AND CONT EXECUTION Ausfi
1379+
1380 02151 031442
1381 02152 0707 42
1382 02153 025421
1383 02154 074273
1384 02155 072110
1385 02156 074517
1386 02157 031725
1387 02160 164004
1388 02161 070250
1389 02162 O61O75
1390 02163 164174
OUTPUT FROM SYSTEM COMMAND TABLE
Ausgang aus System-Befehl-
Tabelle
CLEAR BUFFER
Puffer löschen
GET ADDRESS OF "OFF" Adresse von "AVS" holen
ON? EIN?
YES,GET ADDRESS OF "ON" ja, Adresse von "EIN" holen
GET FIRST KEY AGAIN wieder erste Taste holen
SET POSITIVE NON-ZERO positives Nicht-Null setzen
HAS AN EDIT OCCURRED? Hat Aufbereitung stattgefunden?
YES, LINE Ψ GIVEN? ja, Zeilen # gegeben?
NO, EXECUTE FROM BEGINNING nein, ausführen vom Beginn
YES,EXECUTE FROM BEGINNING ja, ausführen vom Beginn
LINE* GIVEN?
Zeilen #" gegeben
YES, FIND ADDRESS
ja, Adresse auffinden
1391 02164 066165
1392 02165 035421
1393 02166 062533
1394 02167 031416
1395 02170 025421
1396 02171 164255
JMP *+l STB PRA1DD
JSM CLEAR STA MODE
LDB PRADD JMP XEC6A,I STORE ADDRESS
Adresse speichern
SET TO PROGRAM EXECUTION Programmausführung setzen
CONTINUE EXECUTION Ausführung fortsetzen
1397+
1398* PROCESS EXEC OR STORE Prozeß-Ausführung oder-Speicherung 1399 02172 045623 EOLL ISZ PEND GUARANTEE ROOM FOR EOL
Raum für EOL garantieren
1400 02173 061016 JSM ONEXT
1401 02174 024233 LDB BEND
1402 02175 035477 STB TEMP4
1403 02176 024233 LDB SBUFA
1404 02177 035476 STB TEMP3
1405 02200 004046 ADB .41
1406 02201 061122 JSM MVTOH+1
1407 02202 060373 JSM ICNT
1408 02203 000132 ADA Ml
1409 02204 070250 SZA REEDT
1410 02205 025450 LDB PMODE
1411 02206 076150 RZB REEDT
1412 02207 024211 LDB .BUFA
1413 02210 061337 JSM NDWRT
1414 02211 062502 REEDT JSM CRC
1415 02212 064357 JMP RETN2
Seite 28 KEYBOARD ENTRY AND DI
MOVE INPUT RECORD TO I/O BUFF Eingangssatz in I/O-Puffer
bewegen
SKIP IF NULL RECORD Bei Null-Satz springen
Tastatur-Eingang und Wiedergabe
1416*
1417 02213 013124 REED8 CPA B33
1418 02214 022437 LDA B57
DIVIDE? Dividieren?
YES, GET ASCII ja, ASCII holen
309884/1
1419 02215 026361 170402 LDB 062533 EREC RET EDIT2
1420 02216 063072 021430 JSM 055473 LDA TBSRH
1421 02217 066110 071713 JMP 024211 SAP REED5-1
1422 02220 002440 021431 ADA 035740 RSLTl LDA BEEB
1423 02221 070737 130233 JMP STA A,I
1424* 070742 SAR
1425* DELETE LINE 031430 Zeile j STA callenla
1426 02222 164204 DEL2 JMP
1427 02223 DELl LNINC
1428 02224 DEL2
1429 02225 CLINE
1430 02226 JSM SBUFA7I
1431 02227 DSZ 16
1432 02230 LDB LNINC
1433 02231 STB DELSA,I
1434*
1435+ RECALL Rückruf
1436*
1437 02232 CLEAR
1438 02233 CCNT
1439 02234 .BUFA
1440 02235 TMP
CODE IN EDIT TABLE? Code in Aufbereitungstabelle?
NO nein
SET RECALL FLAG Rückrufmarke setzen
GET STARTING ADDRESS OF IO BUFF
Startadresse des ΙΟ-Puffers
holen
1441 1442* 1443* 1444* 1445 1446 1447* 1448 1449 1450 1451 1452
02236 066045
JMP REED6
INITIALIZE VARIABLES Variablen initialisieren
02237 020056 INITV LDA . 1E4
02240 164171 JMP RUNA,I RESULT KEY Resultattaste
02241 020101 RSLT LDA BlOO
02242 025706
02243 074110"
02244 066110
02245 026445
LDB TMP6 SZB *+2 JMP REED5-1 LDB RESA RUN 10000 durchlaufen CODE FOR ·,? Code für ^
SHIFTED? verschoben? YES ja
3Q988W137O
1453 02246 020020 RFNXl LDA .3
1454 02247 031473 STA CCNT C0UNT=3 zählen=3
1455 02250 066235 JMP RSLTl 1456*
1458 02251 066136 PAL JMP PRALL
1459 02252 066151 STPL JMP STEP
309884/1370
KEYBOARD ENTRY AND DISPLAY
Tastatur-Eingang und Wiedergabe
1461 +
1462+ FETCH EXECUTION, Ausführung abrufen
1463 +
1464 02253 000132 EFET ADA M1 02254 031431 STA CLINE
1465 1466+ 1467 + 1468+ 1469+ 1470+ 1471 + 1472+
THIS ROUTINE LISTS ONE LINE OF THE PROGRAM. THE FIRST
Diese Routine listet eine Zeile des Programms auf. Die erste aufzulistende Zeile ist LINE TO BE LISTED IS THE FIRST die erste Zeile des
LINE OF THE PROGRAM. Programms.
02255 062353 DNARW JSM SAROW
1474 02256 074310
1480+ 1481 + 1482+ 1483+ 1484+ 1485+ 1486+
02257 070070
02260 061075
02261 066277
02262 066301
02263 066301
SZB U4
SIA ++1 JSM FNDPS JMP U3
JMP U5-1 JMP U5-1 CHECK FOR NULL PROGRAM auf Null-Programm prüfen
SKIP IF TYPING AID KEY Springen, wenn Druckhilfetaste
FIND LINE, Zeile auffinden
PAST END OF PROGRAM nach ProgEammende
BETWEEN LINES, zwischen Zeile
Diese Routine listet eine Zeile des Pro^a™1113 auf · Die erste aufzulistende Zeile ist die
TO BE LISTED IS THE LAST LINE letzte Zeile des Programms.
THIS ROUTINE LISTS ONE LINE OF THE PROGRAM.THE FIRST LINE
OF THE PROGRAM!
02264 021424 U4
LDA PBUFF
02265 066302 JMP US
02266 062353 UPARW JSM SAROW
02267 075650
O2270 072110
SZB U4
RZA U1 GET FIRST LINE
erste Zeile holen
CHECK FOR NULL PROG auf Null-Programm prüfen
SKIP IF TYPING AID Springen-, wenn Druckhilfe
CLINE =0?
30988A/137Q
1492 02271 020056
1503 1504 1505* 1506+
1507* 1508 1509 1510
1511" 1512 1513
1514* 1515
02272 O61O75 U1
02273 066277
02274 O66275
02275 O1524
02276·066301 02277 021720 U3
02300 O6O742
02301 074117
02302 074742 U5
02303 035453
02304 035460
02305 167120
LDA .1E4
JSM FNDPS JMP U3
JMP *+1 CPB PBUFF
JMP U5-1 LDA LASTN
JSM FND LDA B
SBR STB ARW
STB TMP7 JMP LISTR,! YES,FIND LAST LINE OF PROG, ja, letzte Zeile des Programms auffinden
FIND LINE, Zeile auffinden
PAST END OF PROG hinter Programmende
BETWEEN LINES zwischen Zeilen
FIRST LINE?
erste Zeile?
YES
Ja
GET PREVIOUS LINE vorhergehende Zeile holen
GET ADDRESS IN (A) Adresse in (A) holen
FLAG LIST ROUTINE Marke Listenprograinm
INSERT AND DELETE CHARACTER Zeichen einfügen und herausnehmen
02306 O66O45 JMP REED6
02307 025704 INSRT LDB BKPTR O231O 075710 SZB INSRT-1
02311 025400
02312 021706
02313 070710
LDB BADDR LDA TMP6 SZA INSO
DELETE herausnehmen O2314 055400 DSZ BADDR ANY BACKSPACE YET? schon ein Rücksprung gewesen?
SHIFT FLAG SET? Schiebemarke gesetzt?
YES,DINC END OF LINE POINTER
ja, DINC Ende der Zeilen-Hinweismarke
1516 O2315 025704
LDB BKPTR
0988 W 1
Seite 30 KEYBOARD ENTRY AND DISPLAY
Tastatur-Eingang und Wiedergabe
1517 02316 035740
STB TMP
1518 02317 025740 DELC1 014236 INSO LDB TMP
1519 02320 015400 066045 CPB BADDR
1520 02321 066347 004132 JMP I-NS2+1
1521 02322 045740 O3574O INS1 ISZ TMP
1522 02323 061053 061053 JSM GTMP
1523 02324 055740 025740 DSZ TMP
1524 02325 055740 015704 DSZ TMP
1525 02326 024111 066346 LDB TMPA
1526 02327 061017 024111 JSM OUTCR
1527 02330 066317 061017 JMP DELC1
1528 + INSERT einfügen 025740
1529 02331 OO4134 CPB SLEND
1530 02332 066334 JMP RE ED 6
1531 02333 ADB M1
1532 02334 STB TMP
1533 02335 JSM GTMP
1534 02336 LDB TMP
153 5 02337 CPB BKPTR
1536 02340 JMP INS2
1537 02341 LDB TMPA
1538 02342 JSM OUTCR
1539 02343 LDB TMP
1540 02344 ADB M3
1541 02345 JMP INS1
1542 02346 045400 INS2 ISZ BADDR SET POINTER TO CURSOR CHARACTER
Hinweismarke auf Positionszeichen setzen
LAST CHAR? letztes Zeichen
YES.OUTPUT A BLANK ja, Ausgang Leerstelle
GET CHARACTER
Zeichen holen
STORE SHIFTED LEFT ONE geschobenes linkes speichern
LINE FULL Zeile voll
GET CHARACTER
Zeichen holen
AT CURSOR POSITION? in Position der Positionsmarke
YES ja
NO.MOVE RIGHT 1 PLACE nein, 1 Platz rechts verschieben
BACK UP POINTER TO NEXT
CHAR LEFT Hinweismarke auf nächstes linkes Zeichen rücksetzen
UPDATE END OF LINE POINTER Zeilenende-Hinweismarke aktualisieren
1543 02347 020041
1544 O235O 024111
LDA
LDB TMPA
> 0 9 8 8 U I 1 3 7 0
2333308
1545 02351 061017 JSM OUTCR INSERT A BLANK
Leerstelle einfügen
1546 02352 066045 'JMP REED6
1548^ SUBROUTINE FOR UP AND DOWN ARROW ROUTINES
Unterprogramm für Auf- und Abwärtspfeil-Programme
1550 02353 021424 SAROW LDA PBUFF
1551 023 54 011423 CPA PBPTR
1 552 02355 164174 JMP RDYDA, I NULL PROGRAM ABORT
1 553 02356 021431 LDA CLINE
1 554 02357 125424 LDB PBUFF, I
1 555 02360 170402 RET
309884/1370
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
1557* 1558+ 1559*
1560* 1561* 1562* 1563* 1564 1565 1566 1567 1568 1569 1570
1572 1573
1575* 1576* 1577* 1578* 1579*
THIS SECTION CONTAINS TABLES POINTERS USED IN THE ABOVE ROUTINE Dieser Abschnitt enthält Tabellen, im obigen Programm benutzte Hinweismarken
02361 02362 02363 02364 02365 02366 02367 02370 02371 Ό2372 02223
004744
012643
012232
015214
06516
006627
017664
071600
070226
010307
EDIT2 DEF
DEF 126OOB-EEB+UPARW DEF 122OOB-EEB+DNARW DEF 1 52O.OB-EEB+INITV DEF 656OOB-EEB+RSLT DEF 66OOB-EEB+STPL DEF 17 6OOB-EEB+INSRT DEF 71600B-EEB+DEL1 DEF 7O2OOB-EEB+PAL DEF 10300B-EEB+EREC
EEB EQU DEL1
EXPANDING DEY TABLE erweiternde DEY-Tabelle
02373 004770 EXPTR DEF *+*+2
02374 007601 OCT 7601
02375 014600 OCT 14600
02376 014220 OCT 14220
02377 017207 OCT 17207
02400 006212 OCT 6212
02401 007226 OCT 7226
02402 077637 OCT 77637
02403 017216 OCT 17216
02404 010604 OCT 10604
02405 072214 OCT 72214
2406 072615 OCT 72615
02407 005203 OCT 5203
02410 073202 OCT 73202
02411 073705 OCT 73705 AUTO
RUN durchlaufen STORE speichern LOAD laden
NORMAL CONTINUE
TRACE
STOP
NORMAL
FETCH
FIXED
FLOAT
LIST SCRATCH
fortfahren verfolgen
abrufen
fest
gleiten
auflisten
einschreiben
3 09884/1370
1 595+ KEY VALUE TABLE VALUP Tastenwert-Tabelle" EOL
1 596 + OCT STORE speichern
1 597 + 02412 005026 OCT DEF ++++2 BLANK Leerstelle
1 598+ 02413 005615 OCT 5615 !
1 599 02414 071215 OCT 71215 $
1 600 02415 020240 OCT 20240 %
1 601 02416 030641 OCT 30641 E
1 602 02417 032244 OCT 32244 ¥
1 603 02420 032645 OCT 32645 Il
1 604 02421 067605 OCT 67605 &
1 605 02422 031643 OCT 31643 I
1 606 02423 03142 OCT 31242 (
1 607 02424 033246 OCT 33246 )
1 608 02425 033647 OCT 33647
1 609 02426 034250 34250
1 610 02427 O34651 34651
1 611
1 612
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
1613 1614 1615 1616 1617 1618" 1619 + 1620+ 1621 + 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631
02430 027677, OCT 27677
02431 026274
02432 027276
02433 035252
02434 035653
02435 030355
OCT 26274 OCT 2727 6
OCT 35252 OCT 3 5653 OCT 30355
00103 02436 02437 02440 02441 02442 02443 02444 02445 02446
000152 000057 002223 OO63O6 003402 007062 005117 005114 051105
MSK65 EQU B140
B152 OCT 152
B57 OCT 57
BEEB DEF EEB
MOUTA DEF MCOUT
LPTR DEF RBUFF+RBUFF+48
COMTA DEF LBL1+LBL1+20
OFFA DEF ++++7
RESA DEF ++++2
ASC 4,RESOFFON
< O 9 8 a U I 1 3 7 Π
02447 051517
02450 043106
02451 047516
1632 02452 020040 TOBLN OCT 20040
1633 +
1634 +
163 5 02453 000000
BSS ■^++.K+CHECKSUM+++++ Summenprüfung
Seite 33 KEYBOARD ENTRY AND DISPLAY
Tastatur-Eingang und Wiedergabe
1637 +
1638 +
1639+
1640+·
1641 +
1642+
1643 +
1644 +
1645+
1646 +
1647
WRITE SUBROUTINE Unterprogramm schreiben
ENTRY CONDITIONS: Eingang Bedingungen:
(A)=CHARACTER COUNT Zeichen zählen
(B)=POINTER TO FIRST CHAR
Hinweismarke zum ersten Zeichen
NPRIN# O FOR PRINT ABORT für Druckabgang NDISP# O PRINT ONLY nur Druck
02454 070410 WRIT SZA RIT3L
02455 031741
02456 035740
02457 061053
02460 010027
02461 020100
02462 025701
02463 010031
02464 066476
02465 O7631O
02466 070150
02467 061016
02470 021467
02471 025702
STA TMP1 STB TMP
RITE1 JSM GTMP CPA LDA B52
LDB NDISP CPA CRTN RIT3L JMP RITE3 RZB RITE2-
SZA RITE4 JSM ONEXT
LDA LOCL2 SKIP IF NULL COUNT springen, wenn Null-Zählung
INITIALIZE POINTER Hinweismarke initialisieren GET CHARACTER EXECUTE?
Zeichen holen ausführen?
YES, CHANGE TO * FOR KEY
ja, nach + für Taste wechseln
CRTN CHARACTER? CRTN Zeichen? YES,ABORT ja, Abgang
DISPLAY DISABLED? Wiedergabe gesperrt?
NO,NULL? nein, Null?
OUTPUT TO DISPLAY BUFFER Ausgang an Wiedergabepuffer
RECALL CHARACTER Zeichen zurückrufen
RITE4 LDB NPRIN
3 O 9 8 S Λ / 1 3 7 Π
SST
1661 02472 076110
1662 02473 06153
1663 1664 1665 1666 1667 1668 1669+ Ϊ67Ο 1671 1672 1673 1674 1675 1676 1677 1678
1679 1680
02474 055741 RITE2
02475 066457
02476 070742 RITE3
02477 031702
02500 031701
02501 170402 RETA
02502 025450 CRC
02503 074350
02504 025450 CRCHK
02505 074150
02506 025453
02507 074352
02510 025622 CRC2
02511 075410
02512 172700 CRC1
RZB RITE2 JSM TTY
DSZ ΤΜΡ1 JMP RITE1 SAR STA NPRIN STA NDISP RET
LDB SZB LDB SZB LDB SBM LDB SZB SFC
PMODE
CRC1
PMODE
CRC
PRFLG
CTERM
TERM
RETA
02513 066512
02514 062521
JMP +-1 JSM CLRST
1681 02515 061344 JSM CRLF1 1682+
1683 02516 074742 CTERM SBR
1684 02517 035622 STB TERM
1685 02520 170402 RET 1686+
1687 02521 025442 CLRST LDB STPFL
1688 02522 014040 CPB
1689 02523 066525
1690 02524 170402
1691 02525 074742
1692 02526 035442
JMP RET SBR STB STPFL PRINT DISABLED?
Druck gesperrt?
NO,PRINT CHAR
nein, Zeichen drucken MORE CHARACTERS? mehr Zeichen YES ja
RESET FLAGS Marken nullstellen
PRINT ALL? alles drucken?
PRINT ALL? alles drucken?
WAIT UNTIL "STOP" KEY warten bis "STOP"-Taste
IS RELEASED losgelassen
CLEAR "STOP" FLAG 11 STOP "-Marke löschen
SET FROM KEYBOARD? gesetzt von Tastatur
YES,CLEAR IT ja, löschen
30988Λ/ 1370
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
02527 035433
02530 170402
STB TFLAG RET
02531 027117 GTMP2 LDB TMP2A
02532 065041 JMP GETCH
1693
1694
1695 +
1696 +
1697
1698
1699 +
1700+
1701+ THIS SUBROUTINE CLEARS THE DISPLAY Dieses Unterprogramm löscht Wiedergabe
1702 +
1703 02533 070742 CLEAR SAR 16
1704 02534 031704 STA BKPTR
1705 02535 020212 LDA .SLBF
1706 0253 6 031402 STA OTPTR
1707 02537 031400 STA BADDR
1708 02540 031625 STA FIRST
1709 02541 024233 LDB BEND
1710 02542 022452 LDA TOBLN
1711 02543 074557 CLE1 STA B,I
1712 02544 017123 CPB ENDW
02545 066476 JMP RITE3
02546 077670 RIB CLE1
1713
1714
1715+
1716
NO
nein
I/O STATUS CHECK ROUTINE Prüfprogramm für I/O-Zustand
1717 +
1718 02547 025442 IOST LDB STPFL
1719 02550 014040 CPB .31
1720 02551 170402 RET
1721 02552 025447 LDB SLCOD
1722 02553 172741 STF 1
1723 02554 176141 OTB 1
1724 02555 172741 STF 1
1725 02556 177241 LIB 1,C
STOP FLAG? YES ja NO nein
Marke stop?
TURN INTERRUPT OFF Unterbrechung ausschalten
GET STATUS IN I/O REG Zustand in I/O-Register holen
TURN INTERRUPT ON Unterbrechung einschalten
30988A/ 1
1726 02557 074406
1727 02560 075353
1728 02561 064357
RBR SBP IOST
JMP RETN2 DEVICE BUSY?
Vorrichtung arbeitet?
nein
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
1730+ SUBROUTINE REFRESHES OTPTR
1731 + THIS SINGLE LINE DISPLAY TMP
1732+ THE .16
1733 + 021402 REFRS LDA TMP 2
1734* 02562 031740 STA 16
1735 02563 00003 3 ADA TMP1
1736 02564 031742 STA TMPA
1737 02565 074742 SBR GTCON
1738 02566 035741 RE1 STB 10
1739 02567 024111 LDB TMP 3
1740 02570 061362 JSM TMP2A
1741 02571 070304-RE3 SAL GICON
1742 02572 031743 STA .63
1743 02573 027117 LDB 4
1744 02574 061362 JSM TMP 3
1745 02575 050054 RE4 AND TMP1
1746 02576 070604 SAL 8
1747 02577 041743 IOR 1
1748 02600 041741 IOR KEYFG
1749 02601 173750 CLF 1
1750 02602 173741 CLF RE 2
1751 02603 025443 LDB TMP1
1752 02604 172741 STF .16
1753 02605 074353 SBP RE 2
1754 02606 025741 LDB
1755 02607 014033 CPB
1756 02610 066615 JMP
1757 02611
1758
Dieses Unterprogranun erneuert die Wiedergabe einer einzelnen Zeile
FORM OUTPUT WORD
Ausgangswort formen
TURN DISPLAY OFF Wiedergabe INTERRUPT ON ausschalten Unterbrechung ein
INTERRUPT OFF
Unterbrechung aus
INTERRUPT OCCURRED? Unterbrechung stattgefunden?
309884/1370
1759 02612 074070
1760 02613 172150
1761 02614 066567
1762 02615 17374-1 RE2
1763 02616 170402
SIB ++1 OTA JMP RE1 CLF RET
TURN INTERRUPT ON
Unterbrechung einschlagen
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
1765+
1766 +
1767 +
1768 + 1769+ 1770+ 1771 +
1772+ 1773 + 1774* 1775+ 1776+
1777 +
1778 + 1779+
1780+
1781 +
1782 + 17831, 1784 + 1785+
1786 +
1787 + 1788+ 1789
1790
PTAPE COMMAND EXECUTION PTAPE Befehlsausführung
THIS ROUTINE READS PROGRAMS FROM Diese Routine liest
Programme aus dem Photoleser. 10 oder
CONSTITUTE LEADER OR TRAILER WHICH mehr Nullen bilden
Kopf- oder Endinformationen, die die Programmbegrenzer sind.
THE PHOTOREADER.10 OR MORE NULLS
ARE THE PROGRAM DELIMITERS.
INPUT CODES: Eingangs-Codes:
DATA 64 ASCII SET Daten 64 ASCII setzen
CONTROL
Kontrolle
176
33 137
177 15 12 RETURN TO:
ALT MODE=DELETe LINE ALT-Betrieb = Zeile herausnehmen
ESC MODE=DELETe LINE ESC-Betrieb = Zeile herausnehmen
LEFT ARROw=DELETE CHAR
linker Pfeil = Zeichen herausnehmen
RÜBOUT=IGNORE CRTN=IGNORe LNFD=END OF RECORD zurück nach
ignorxeren
Satzende
P+1 IF NULL RECORD P+1 wenn Null-Satz P+2 OTHERWISE P+2 anderenfalls 02617 070204 PREED SAL 12
02620 031447 STA SLCOD
02621 020211 LDA .BUFA
? O 9 8 B A / 1 3 7
23339Q8
Ί792 02622 031400 062547 P1 STA BADDR CLEAR DELETE LINE FLAG
Marke der herausgenommenen
Zeile löschen
IOST STOP KEY? Stoptaste?
1793 02623 020132 066704 LDA M1 P7 YES ja
1794 02624 031751 020121 STA TMP 5 SET FEED HOLE COUNTER
Transportlochzähler setzen
B 4 000 GET INPUT STATUS BIT
1795 02625 020141 061355 LDA M10 CR1+1 CALL FOR INPUT
nach Eingang fragen
1796 02626 031741 062547 STA TMP1 IOST
1797 + 066704 P4 ROUTINE Allgemeines Eingangsprogramm P7 STOP
1798 + 074117 B
1799+ GENERAL INPUT 070306 JSM 7
1800+ 05014 JMP B177
1801 02627 072310 LDA P3 NULL?
1802 02630 045741 JSM TMP1 10 FEED HOLES?
10 Transportlöcher?
1803 02631 066627 JSM P1 NO nein
1804 02632 021742 JMP TMP 2
1805 02633 071413 LDA P4 TRAILER? Endinformation
1806 02634 066625 RAR P1-2 NO. LEADER
nein. Kopfinformation
1807 02635 031742 P3 AND TMP 2 RESET LEADER FLAG
Kopfmarke nullstellen
1808 02636 010104 RZA B177 RUBOUT?
1809 02637 066625 ISZ P1-2 YES ja
1810 02640 010031 JMP CRTN CRTN?
1811 02641 066625 LDA P1-2 YES,IGNORE ja, ignorieren
1812 02642 013126 SAP B137 LEFT ARROW? linker Pfeil?
1813 02643 066700 JMP P5 YES,BACKSPACE
ja, Rückschritt
1814 02644 010061 STA LNFD LINE FEED? Zeile gefunden?
1815 02645 020031 CPA EOL YES. CHANGE TO END OF LINE
1816 02646 JMP
1817 02647 CPA
1818 02650 JMP
1819 02651 CPA
1820 02652 JMP
1821 02653 CPA
1822 02654 LDA
1823 02655
1824 02656
CHARACTER
ja, zum Ende des Zeilenzeichens
wechseln
309884/1370
1825 02657 013124 P6 CPA -B33
1826 02660 066624 JMP P1-3
1827 02661 013125 P2 CPA B176
1828 02662 066624 JMP P1-3
1829 02663 061016 JSM ONEXT
1830 02664 021467 LDA L0CL2
1831 02665 010031 CPA EOL
1832 02666 066673 P5 JMP P2
1833 02667 025400 LDB BADDR'
1834 02670 017130 CPB IOEND
1835 02671 055400 DSZ BADDR
1836 02672 066625 P7 JMP P1-2
1837 02673 020127 LDA B170K
1838 02674 031447 STA SLCOD
1839 02675 045751 ISZ TMP 5
1840 02676 170402 RET
1841 02677 064357 JMP RETN 2
1842 02700 025400 LDB BADDR
1843 02701 014211 CPB .BUFA
1844 02702 066625 JMP P1-2
1845 02703 066671 JMP P6
1846 02704 020031 LDA EOL
1847 02705 061016 JSM ONEXT
1848 02706 164174 JMP RDYDA,I
ESCAPE MODE? Umschaltbetrieb?
-YES, SET DELETE FLAG ja, Herausmarke setzen ALT MODE? ALT-Betrieb? YES,DELETE ja, herausnehmen
END OF RECORD? Satzende? YES ja
FULL? voll?
SET TO STANDARD PRINTER auf Standarddrucker setzen
CHECK DELETE FLAG Herausmarke prüfen DELETE herausnehmen ACCEPT annehmen
BUFFER EMPTY? Puffer leer? YES,IGNORE ja, ignorieren
NO, RACKSPACE
nein, Rückschritt
PUT EOL CHAR IN BUFFER EOL-Zeichen in Puffer geben
EXIT PTAPE MODE Ausgang PTAPE-Betrieb
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
1850+
1851 * BACKSPACE Rückwärtsabstand 1852*
1853 02707 021704 BKSP LDA BKPTR
1854 02710 072350 RZA BK2
1855 02711 021400
1856 02712 010212
LDA BADDR CPA .SLBF FIRST BACKSPACE? Erster Rückwärtsabstand YES ja
NULL RECORD?
Null-Satz?
30988 4/1370
1857 02713 066045
1858 02714 021400
1859 02715 031704
1860 02716 066723
JMP REED 6 LDA BADDR STA BKPTR JMP BK1-1
1861 02717 010212 BK2 CPA .SLBF
1862
1863
1864
1865
1866
1867.+
1868 +
1869+
1870
1871
02720 066045
02721 011402
02722 055402
02723 055704
02724 066045 BK1
JMP REED6 CPA OTPTR
DSZ OTPTR DSZ BKPTR
JMP REED6 YES ja
PUT POINTER AT LAST CHAR Hinweismarke auf letztes Zeichen'
ALREADY AT FIRST CHAR? schon beim ersten Zeichen?
YES ja
LEFTMOST ON SCREEN weitestmöglich links auf Schirm?
YES, SCROLL ja, SCROLL
BACKSPACE CURSOR Rückwärtsabstand-Positionsmarke
FORWARD SPACE Vorwärtsabstand
02725 021704 FORWD LDA BKPTR
02726 070310 SZA FW1
SKIP IF NO BACKSPACE HAS OCCURRED
springen, wenn kein Rückwärtsabstand aufgetreten ist
1872
1873
1874
1875
1876
1877
1878
1879
1880+
1881 +
1882+
1883 +
1884 +
1885
02727 045704
02730 021402
02731 000041
02732 011704
02733 011400
02734 066045 FW1
02735 045402
02736 066045
ISZ BKPTR LDA OTPTR ADA .32 CPA BKPTR
CPA BADDR JMP REED6 ISZ QTPTR JMP REED6 ON RIGHT OF SCREEN? rechts auf dem Schirm?
YES,LINE FULL? ja, Zeile voll?
NO,SCROLL nein, SCROLL
LEFT SUBROUTINE "LINKS"-Unterprogramm
SHIFT THE 3 2 CHARACTER DISPLAY LEFT 3 2-Zeichen-Wiedergabe nach links schieben
02737 021400 LEFT LDA BADDR
1886 02740 000151
ADA M3 2 IS THE LAST CHAR ist letztes Zeichen
ALREADY TO THE LEFT OF schon links vom
ΊO 9 8 R U I 137 Ο
OHGINAL INSPECTED
1889 1890 1891 1892*
1893 +
1894 + 1895+
1896 +
1897 +
1898 +
»St
02741 070076
02742 001402
02743 070113
02744 045402
02745 170402
ICA
ADA OTPTR
SAP ++2 ISZ OTPTR RET THE END OF DISPLAY? Wiedergabeende?
NO,SCROLL nein, SCROLL
RIGHT SUBROUTINE "Rechts"-Unterprogramm
ONE POSITION. IF THE FIRST CHARACTER
SHIFT THE 3 2 CHARACTER DISPLAY RIGHT 32-Zeichen-Wie-
dergabe um eine Position nach rechts
IS IN THE LEFTMOST POSITION,ABORT. schieben. Wenn erstes
Zeichen in weitest linker Position, Abgang.
02746 021402 RIGHT LDA OTPTR
02747 010212 CPA .SLBF 027 50 170402 RET
02751 055402 DSZ OTPTR NO nein
02752 170402 RET
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
1905+
1906 +
1907 +
1908 +
1909 + 1910+
1911 +
1912 + 1913 1914 1915
KEYIN SUBROUTINE Tast-Unterprogramm
THIS SUBROUTINE SCANS ALL
INPUT DEVICES SEARCHING FOR AN INPUT CODE. IT REFRESHES THE DISPLAY WHILE WAITING EXIT WITH CODE IN (A)
02753 074742 KEYIN SBR 027 54 021400 LDA BADDR 02755 011704 CPA BKPTR
1916 02756 035704
STB BKPTR
1917 02757 021473 KEYN7 LDA CCNT
1918 02760 072110 RZA ++2
1919 027 61 067002 JMP KEYN1
Dieses Unterprogramm tastet zur Suche nach Eingangscode alle Eingabevorrichtungen ab. Es erneuert die Wiedergabe während Wartens auf Ausgang mit Code in (A).
CURSOR PAST END?
Positionsmarke nach Ende
YES, CLEAR POINTER ja, Hinweismarke löschen
O 9 8 8 U I 1 3 7 Π ORIGINAL INSPECTED
1920 02762 061053
1921 02763 031751
1922 02764 070550
1923 02765 061363
1924 02766 011751
1925 02767 066771
1926 02770 043121
1927 02771 025473
1928 02772 010031
1929 02773 074212
1930 02774 055473
1931 02775 170402
1932 02776 170402
1933 02777 074742
1934 03000 035473
1935 03001 066756
193 6 03002 0317 50 KEYN1
1937 03003 063024
1938 O3OO4 025704
1939 03005 074250
1940 03006 027122
1941 03007 061041
1942 03010 031751
1943 03011 055704
1944 03012 025443 KEYN3
1945 03013 074612
1946 03014 021704
1947 03015 070250
1948 03016 021751
1949 03017 027122
JSM GTMP STA TMP5
SZA KEYN1-3 JSM GTCON+1 CPA TMP5
JMP
IOR B2OO
LDB CCNT CPA EOL SMB ++4
DSZ CONT
RET
RET
SBR 16 STB CCNT
JMP KEYN7-1 STA TMP4
JSM KEYN6 LDB BKPTR SZB KEYN3 LDB BKPTA JSM GETCH STA TMP5
DSZ BKPTR LDB KEYFG SBM KEYN2
LDA BKPTR SZA KEYN5 LDA TMP5
LDB BKPTA
GET CHARACTER Zeichen holen
SAVE UNCONVERTED CHAR unkonvertiertes Zeichen sichern
EMPTY BUFFER? leerer Puffer? CONVERT konvertieren
DID CONVERSION OCCURR? hat Konversion stattgefunden?
NO nein
YES, SET SHIFT BIT ja, Schiebe-Bit setzen
END OF LINE?
Zeilenende?
RECALL MODE?
Betriebsart zurückrufen?
NO.DINC POINTER nein, DINC Hinweismarke
RETURN WITH CHAR IN (A) mit Zeichen in (A) zurück
RESET POINTER
Hinweismarke nullstellen
SET CURSOR COUNTER TO ZERO Positionsmarkenzähler nullstellen
CURSOR? Positionsmarke YES ja
SAVE CHAR AT CURSOR POSITION Zeichen in Positionsmarkenposition sichern
HAS KEY INPUT OCCURRED? hat Tasteneingabe stattgefunden?
YES ja
CURSOR?
Positionsmarke
YES,RESTORE CHARACTER ja, Zeichen rückstellen
30988WT3 70
2333308
1950 03020 061017 JSM OUTCR
1951 03021 055704 DSZ BKPTR 19 52 03022 021443 KEYN5 LDA KEYFG
1953 03023 050105 AND B377
1954 03024 024132 KEYN6 LDB M1
1955 03025 035443 STB KEYFG
1956 03026 170402 RET
1957 03027 025704 KEYN2 LDB BKPTR
1958 O3O3O 074610 SZB KEYN4
1959 03031 025750 LDB TMP4
1960 03032 00413 2 ADB M1
RESET KEY OCCURRED FLAG Tastenbetätigungsmarke
CURSOR? Posxtionsmarke? YES ja
Seite 40 KEYBOARD ENTRY AND DISPLAY
Tastatur-Eingang und Wiedergabe
CPB M5 REPLACE CHARACTER WITH
CURSOR
Zeichen mit Positionsmarke
ersetzen
1961 03033 014136 LDB .10
1962 03034 024061 STB TMP4
1963 0303 5 035750 LDA TMP5
1964 03036 021751 SBP *+2
1965 03037 074113 LDA .28
1966 03040 020037 LDB BKPTA
1967 03041 027122 JSM OUTCR
1968 03042 061017
1969
1970
1971
1972*
1973 +
1974 +
1975*
1976
1977
1978
1979
1980
03043 055704 DSZ BKPTR
03044 062562 KEYN4 JSM REFRS
03045 067012 JMP KEYN3
CALL KEYIN AND EXECUTE RIGHT AND LEFT ARROWS Tastung rufen und rechten und linken Pfeil ausführen
P+1=ARR0W:
Pfeil
P+2=0THERWISE
anderenfalls
03046 062753 CALLK JSM KEYIN
03047 074742 SBR 16
03050 070346 RAR 8
03051 070133 SAP *+2,C
03052 024132 LDB M1
SHIFTED? verschoben? YES ja
30988 4/1 37 0
ORIGINAL INSPECTED
1981 1982 1983 1984 1985 1986 1987 1988
03053 03054 03055 03056 03057 03060 03061 03062
035706 070346 031751 01003 066746 01003 066737 O64357
STB TMP 6
RAR 8
STA TMP 5
CPA B27
JMP RIGHT
CPA B26
JMP LEFT
JMP RETN 2
RIGHT ARROW rechter Pfeil YES ja
LEFT ARROW linker Pfeil
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
2OO7+"
TABLE SEARCH ROUTINE Tabellen-Such-Programin
THIS SUBROUTINE COMPARES THE INPUT STRING WITH STRINGS IN A TABLE. IF A SUCCESSFUL COMPARE IS MADE AN 6-BIT CODE IS RETURNED
ENTRY CONDITIONS: Eingangsbedingungen:
(A)=FIRST CHARACTER OF INPUT STRING
erstes Zeichen von Eingangs-STRING
(B)=POINTER TO FIRST CHAR OF TABLE
Hinweismarke zum erstenZeichen der Tabelle
EXIT CONDITIONS: Ausgangsbedingungen:
IF MATCH, RETURN TO P+2 WITH CODE wenn passend, zurück nach P+2 mit Code
IN A OTHERWISE RETURN TO P+1 anderenfalls zurück nach P+1 Dies Unterprogramm vergleicht Eingangs-STRING mit STRINGS in einer Tabelle. Bei erfolgreichem
kehr
03063 062531 TBS6
03064 070306
03065 070511
03066 070402
2012 03067 O5OO54
JSM GTMP2 RAR SLA TBS5 SAR
AND OP CODE? OP Code?
YES, RIGHT JUSTIFY ja, rechtsbündig ausrichten
Ί O 9 8 8 /· / 1 3 7
OFHGlNAL INSPECTED
2 3 3 3 Q Π 8
2013 03070 064357 JMP RETN2
2014 03071 021751 TBSR1 LDA TMP5
2015 03072 031750 TBSRH STA TMP4
2016 03073 035742 STB TMP2
2017 03074 025400 LDB BADDR
2018 0307 5 03 57 52 STB TMP6A
2019 0307 6 067101 JMP TBS2
2020 03077 055742 TBS5 DSZ TMP2
2021 03100 061055 JSM GNEXT
2022 03101 031743 TBS2 STA TMP3
2023 03102 062531 JSM GTMP2
2024 03103 011743 CPA TMP3
2025 03104 067063 JMP TBS6
2026 03105 02 5752 LDB TMP6A
2027 03106 03 5400 ■ STB BADDR
2028 03107 062531 JSM GTMP2
2029 03110 070306 RAR 7
2030 03111 071711 SLA+-2
2031 03112 070153 SAP TBS4
2032 03113" 021750 LDA TMP4
2033 03114 170402 RET
2034 03115 021750 TBS4 LDA TMP4 203 5 03116 067101 JMP TBS2
SAVE INPUT CHAR Eingangszeichen sichern
INITIALIZE TABLE POINTER Tabellen-Hinweismarke initialisieren
SAVE INPUT POINTER Eingangs-Hinweismarke sichern
FETCH NEXT INPUT CHAR nächstes Eingangszeichen abrufen
STORE CHARACTER Zeichen speichern
CHARACTERS MATCH? passen Zeichen?
YE S,CONTINUE
ja, fortfahren
NO, RESTORE BADDR nein, BADDR rückstellen
CHAR IS OP CODE? Zeichen ist OP-Code?
LAST ENTRY? Letzter Eingang?
RESTORE FIRST CHARACTER erstes Zeichen rückstellen
RETURN TO P+1 zurück nach P+1
CONTINUE
fortfahren
KEYBOARD ENTRY AND DISPLAY Tastatur-Eingang und Wiedergabe
2037 +
2038 +
2039+
2040+'
CONSTANTS, TEMPORARIES,ETC. in den obigen Programmen
benutzte Konstanten, Zwischenergebnisse u.s.w.
USED IN ABOVE ROUTINES
09884/1370
OFHGlNAL INSPECTED
2041*'
2042 03117 00174 2 TMP2A DEF TMP+2
2043 03120 006006 LISTR DEF LIST1
2044 03121 000200 B200 OCT 200
2045 03122 001704 BKPTA DEF BKPTR
2046 03123 001621 ENDW DEF RBÜFF+40
2047 03124 000033 B33 OCT 33
2048 03125 000176 B176 OCT 176
2049 03126 000137 B137 OCT 137
2050 03127 000163 DELIN OCT 163
2051 O313Q 003 321 IOEND DEF IOBÜF+IOBUF+81
30988 A/1370
2053* 2054+ 2055+ 2056·* 2057+ 2058+ 2059*
DEFINE-A-KEY-ROUTINES
Programme zur Tastendefinition
DEFINE-A-KEYS-ROUTINES Programme zur Tastendefinition
THE FIRST WORD OF EACH DEFINITION CONTAINS THE KEYCODE OF THAT KEY. THE SECOND WORD CONTAINS THE LENGTH OF THE DEFINITION PLUS 1. WHILE IN DEFINITION MODE "UKPTR" POINTS THE LENGTH WORD.
Das erste Wort jeder Definition enthält den Tastencode der Taste. Das zweite Wort enthält die Länge der Definition +1. Während im Definitionsbetrieb "UKPTR" die Wortlänge anzeigt.
2060* 2061 2062 2063 2064
2067 2068 2069 2070 2071
2073*
2079*
03131 060626 KEYPR JSM SAVBP
03132 020212 LDA .SLBF
03133 031400 STA BADDR
03134 061055 JSM GNEXT
03135 027152
03136 160175
03137 067153
03140 074742
03141 035432
03142 050024
03143 003145
03144 070737
LDB KTBA JSM TSRHA,I
JMP RCAL SBR STB DRQST AND ADA JTBA
JMP A,I
SAVE BADDR sichern
SET UP FOR TABLE SEARCH aufsetzen für Tabellensuche
SEARCH TABLE
Tabelle suchen
NOT FOUND nicht gefunden
A-REG HAS OPCODE Α-Register hat OP-Code
03145 103145 JTBA DEF JTBL-I,I
03146 003253 JTBL DEF XRUN RUN durchlaufen
03147 003310 DEF XSCR SCRATCH einschreiben
03150 003330 .DEF XLST LIST anflisten
03151 003261 DEF XKEY FETCH abrufen
03152 007155 KTBA DEF KTBL+KTBL+1
309884/13
2 3 3' - O η Β
DEFINE-A-KEY-ROUTINES Programme zur Tastendefinitiori
2082 03153 060633 RCAL JSM RESBl
2083 03154 063346
JSM HUNT
2084 03155 160206 KERR JSM ERRA,I
2085 03156 074517
2086 03157 031466
2087 03160 070744
2088 03161 000136
2089 03162 070113
2090 03163 066045
2091 03164 031473
2092 03165 035470
2093 03166 074070
2094 03167 074517
2095 03170 074070
2096 03171 070110
2097 03172 067222
2098 03173 074744
2099 ' 03174 035740
2100 03175 074002
2101 03176 005466
2102 03177 004134
2103 032OO 074517
2104 03201 050105
2105 03202 070450 2106*
2107 03203 045473
2108 03204 010100
2109 03205 067207
2110 03206 066045
LDA B,I STA LOCLl
SAL ADA MS
SAP *+2 JMP REED6 STA CCNT
STB L2T1 SIB *+l LDA B,I
SIB ++1 SZA *+2
JMP RFNX SBL STB TMP
SBR ADB LOCLl ADB M3 LDA B,I
AND B377 SZA ++9
ISZ CCNT CPA ASTRl JMP ++2 JMP REED6 RESTORE BADDR zurückstellen
FIND THE LOCATION Lage finden
NOT FOUND, ERROR nicht gefunden, Fehler
SAVE LENGTH WORD Wortlänge sichern
ASSUME ODD COUNT ungerade Zählung annehmen
NULL DEFINITION?
YES, IGNORE ja, ignorieren
SAVE CHARACTER COUNT Zeichenzählung sichern
SAVE LOCATION Lage sichern
LOOK AT LINE #· auf Linien achten
IS THIS A TYPING AID? Druckhilfe?
NO
YES
nein
SAVE CHARACTER POINTER Zeichen-Hinweismarke sichern
LOOK AT LAST WORD auf letztes Wort sehen
CORRECT COUNT Zählung richtig CHECK FOR * nachprüfen
30988W 1 ORIGINAL
Γ< ο
2111 03207 074517
2112 03210 050157
2113 03211 040027
2114 03212 067220
2115*
2116 03213 074517
2117 03214 013362
2118 03215 067217
2119 03216 066045
2120 03217 023363
2121 03220 074557
2122 03221 066045
2123*
2124 03222 074517
LDA B7I AND M256 IOR AIEXl JMP *+6
LDA B,Γ CPA ASTR2 JMP *+2 JMP REED6 LDA ΑΙΕΧ2 STA B,I JMP REED6
LDA B,I
2125 03223 050065
2126 03224 010004
2127 03225 076130
2128 03226 067246
2129 03227 074517
2130 03230 053357
2131 03231 013360
2132 03232 067234
2133 03233 067246
2134 03234 020162
2135 03235 031754
2136 03236 074517
2137 03237 070202
Seite 45 DEFIN
AND Kl
CPA K2
RIB *+2
JMP RRUN
LDA B,I
AND K3
CPA K4
JMP *+2
JMP RRUN
LDA FN
STA AR2
LDA B,I
SAR 5
IEX CODE
CHECK FOR * nachprüfen
IEX CODE
CHECK FOR LEGITIMATE FUNCTION auf erlaubte Funktion prüfen
(Ο76ΟΟΟ) (010000)
NOT DEF nicht definiert
(176037) (012037)
NOT DEF nicht definiert "FN"
EXTRACT THE LETTER den Buchstaben herausziehen
DEFINE-A-KEY-ROUTINES Programme zur Tastendefinition
03240 050040
03241 040101
03242 070404
03243 031755
AND IOR BlOO SAL STA AR2+1 "XC"
'ι Ο 9 S .1 Λ/ 1 3 7
ORIGJNAl. INSPECTED
2142 03244 O27361
2143 03245 066246
LDP ALCLl
JMP RFNXl
2144*
2145 03246 061225 RRUN JSM LDEF
2146 03247 025470
2147 03250 063336
2148 03251 070742
2149 03252 066157
LDB L2T1
JSM SUMP SAR JMP CONTK
2150*
2151 03253 061225 XRUN JSM LDEF
2152 03254 063346
2153 03255 067155
2154 03256 063336
JSM HUNT JMP KERR
JSM SUMP
SAR JMP RUNA,I
2155 03257 070742
2156 03260 164171 2157*
2158*
2159 03261 061225 XKEY JSM LDEF
2160 03262 063346
2161 03263 063270
2162 03264 063336
2163 03265 060651
2164 03266 070742
JSM HUNT JSM NEWK
JSM SUMP JSM INITS
SAR GET POINTER
Hinweismarke holen
SET UP COUNT
Zählung aufsetzen
LEAVE DEF MODE Definitionsbetrieb
verlassen
YES, CAN RUN ja, kann durchlaufen
CONTINUE FROM BEGINNING OF KEY
beim Beginn der Taste fortfahren
INSURE NOT IN KEY MODE vergewissern, daß nicht im Tastenbetrieb
KEY UNDEFINED
Taste Undefiniert
SET UP PROGRAM POINTERS Programm-Hinweismarken aufsetzen
RUN durchlaufen
INSURE NOT IN DEFINITION MODE
vergewissern, daß nicht im Definitionsbetrieb
FIND THE LOCATION Lage auffinden
NOT FOUND, NEW KEY REQUIRED nicht gefunden, neue Taste gefordert
INITIALIZE STACKS Stapelspeicher initialisieren
309884/1370
2165 03267 066254
JMP EFET+1
2166*
2167 03270 160242 NEWK-JSM DCOMA,!
2168 03271 021405
2169 03272 031476
2170 03273 020017
2171 03274 160250
2172 03275 061121
2173 03276 021751
2174 03277 131405
2175 03300 045405
2176 03301 025405
2177 Q33O2 045405
2178 03303 020012
2179 03304 074557
LDA FICIP
STA TEMP3 '
LDA
JSM OVCHA,I
JSM MVTOH
LDA TMPS STA FWUP,I
ISZ FWUP LDB FWUP ISZ FWUP LDA STA B,I
2180 03305 045424 ISZ PBUFF
2181 03306 045424 NEWKlISZ PBUFF
2182 03307 170402 RET
FETCH FIRST LINE erste Zeile abrufen
DECOMPILE PROGRAM Programm dekompilieren
ADD A NEW KEY TO DEFINITION AREA
Neue Taste zur Bereichsdefinition hinzufügen
CHECK FOR OVERFLOW auf Überfüllung prüfen
MOVE CORE Kern bewegen
STORE NEW KEY
neue Taste speichern
UPDATE FWUP aktualisieren
INITIALIZE LENGTH WORD Wortlänge initialisieren
UPDATE PBUFF aktualisieren
DEFINE-A-KEY-ROUTINES Programme zur Tastendefinition
2184*
2185* SCRATCH A KEY 2186*
2187 0331ο 061225 XSCR JSM LDEF Taste einschreiben
INSURE NOT IN DEFINITION MODE vergewissern, daß nicht im Definitionsbetrieb
2188 03311 160242
2189 03312 063346
2190 03313 164174
2191 03314 074117
2192 03315 070437
JSM DCOMA,I DECOMPILE dekompilieren
JSM HUNT JMP RDYDA,I LDA B FIND THE LOCATION Lage auffinden
NOT FOUND, IGNORE
nicht gefunden, ignorieren
END OF AREA Bereichsende
2193 03316 000132
ADA Ml
2194 03.317 031477 XSCRl STA TEMP 4
2195 03320 160251 JSM CLPlA7I
2196 03321 021405 LDA FWUP
2197 03322 074017 ADA B
2198 03323 031405 STA FWUP
2199 03324 005424 ADB PBUFF
2200 03325 035424 STB PBUFF
2201 03326 060651 JSM INITS
2202 03327 164174
JMP RDYDA,I START. OF AREA Bereichsstart
CLOSE UP AREA Bereich abschließen
UPDATE FWUP aktualisieren
UPDATE PBUFF aktualisieren
INITIALIZE STACKS Stapelspeicher initialisieren
RETURN TO MONITOR zurück zum Monitor
2203+
2204*
2205*
2206
2207
2208
2209
2210
LIST A DEFINITION Definition auflisten
03330 063346 XLST JSM HUNT FIND THE LOCATION
03331 067615
03332 074117
03333 070437
03334 070070
Lage auffinden
JMP XLSTl+1 NOT FOUND nicht gefunden LDA B
END OF AREA Bereichsende
2211 03335 067614
ADB A,I STA ++1
JMP XLSTl START OF AREA Bereichsstart
LIST DEFINITION Definitionen auflisten
2212*
2213*
2214*
2215
2216
2217
2218
2219
2220
2221
SET UP MISCELLANEOUS POINTERS verschiedene Hinweismarken aufsetzen
03336 021424 SUMP
03337 031425
03340 035422
03341 035424
03342 074517
03343 070037
03344 035423
2222 03345 067306
LDA PBUFF STA PBUFO
STB UKPTR STB PBUFF LDA B,I ADB A STB PBPTR
JMP NEWKl SAVE OLD PBUFF altes PBUFF sichern
ESTABLISH NEW PBPTR neues PBPTR aufstellen
VQ9834/1370
2333"iO3
Sexte
DEFINE-A-KEY-ROUTINES
Programme zur Tastendefinition
2224* 2225+
2226+ 2227*
2228+
2229* 2230
2231 2232 2233 2234
SUBROUTINE TO FIND A DEFINED KEY AREA Unterprogramm zum Auffinden eines Bereichs definierter
Tasten
RETURN TO P+l IF NOT FOUND
zurück nach P+l, wenn nicht gefunden
RETURN TO P+2 IF FOUND WITH B-REG = ADDRESS OF LENGTH
WORD
zurück nach P+2 wenn gefunden mit B-Register = Adresse
der Wortlänge
03346 024166 HUNT LDB FWAM
03347 015405 HUNl
03350 170402
03351 074517
03352 074070
CPB FWUP RET
LDA B,I SIB
2235 03353 011751
2239* 2240* 2241*
2250
03354 064357
03355 074437
03356 067347
CPA TMP5
JMP RETN2 ADB B,I JMP HUNl START SEARCHING AT FWAM Suche bei FWAM beginnen
UNDEFINED Undefiniert
EXTRACT THIS KEYCODE diesen Tastencode herausziehen
AND COMPARE WITH DESIRED
und mit gewünschten vergleichen
FOUND IT gefunden
CONSTANTS Konstanten
00065 Kl 00004 K2 03357 176037 K3 03360 012037 K4
EQU OPMSK EQU BlOK OCT 176037 OCT 012037 (076000)
(010000)
03361 003730 ALCLl DEF AR2+AR2 00100 ASTRl EQU B52
03362 025000 ASTR2 OCT 025000 00027 AIEXl EQU
03363 005400 AIEX2 OCT 005400
3Q98R4/1370
ORIGINAL WSPECTED
3 908
Seite 48 052110 SYSTEM ' Nicht-Formel-Operatoren THEN; 20 dann 004322 ABS FLT-*
042516 ΓABLES OF; 21 von 004322 ABS FIXED-*
2252* 150117 System-Tabellen F; 3 000437 ABS PTAPE-*
2253+ 043321 2,THEN dann E; 4; EOT 176534 LBLl ABS CONT-*
2254* 043203 OPERATORS B; 6 001237 ABS DELET-*
2255 042704 150117 X; 7 001244 ABS RENUM-*
NON-FORMULA 041206 F0P13 ASC 043321 /; 10; EOT 004335 ABS NORML-*
2256 054207 43203 .; 11; EOT
2257 03364 027710 OCT 42704
2258 03365 027311 OCT 41206
2259 03366 051524 FTABL OCT 54207 STEP 35 Schri
2260 03367 042520 OCT 27710 TO; 36 nach
2261 03370 156524 OCT 27311
2262 03371 047736 OCT 2,STEP OR; 26 oder
2263 03372 047522 OCT
2264 03373 113101 OCT 156524 AND; 27 und
03374 047104 FOPST ASC 047736
2265 03375 153516 1,OR NOT; 30 nicht
2266 03376 047524 OCT 113101 > = ; 31
2267 03377 154076 OCT 1,ND
2268 03400 036631 OR ASC 153516 <=; 32
2269 03401 036075 OCT 1,OT <>; 20
2270 03402 115074 ASC 154076
2271 03403 037320 OCT 036631 SYSTEM COMMAND JUMP TABLE Systembefehl-Sprungtabel
2272 03404 ASC η /
ι, <. —
2273 03405 GTE OCT 115074 03414
2274 03406 OCT 037320 03415
2275 03407 ASC 03416
2276 03410 OCT 03417
2277* 03411 OCT 03420
2278* 03412 03421
2279* 03413 03422
2280
2281
2282
2283
2284
2285
2286
309884/1370
OfliQINAL JNSPEGTED
233 13 9 0 8 < τ- ν 051105 CMD13 ASC 1,RE OCT 47 210 ASC 2, TRAC
2287 03423 004331 ABS TRACE-* 047210 ASC 1,DE
2288 03424 000151 ' ABS AUTO-* 042105 OCT 046271 OCT 42666
2289 03425 176626 ABS EFET-* 046271 ASC 1,PT ASC 3,NORMAL
2290 03426 000155 ABS LISTC-* 050124 OCT 40653
2291 03427 001212 ABS SCRAT-* 040653 ASC 1,FI
2292 03430 001311 ABS RUN-* 043111 OCT 54214 OCT 103503
2293* 054214 ASC 1,FL ASC 1,ON
2294+ SYSTEM COMMAND NAME TABLE, S; 043114 OCT 52215 OCT 52252
2295* 052215 SYSTEM TABLES
System-Tabellen
ASC 2,STOP
2296 03431 052122
2297 03432 040503 OCT 137501
2298 03433 042666
2299 03434 047117
2300 03435 051115
2301 03436 040514
2302 03437 103503
2303 03440 047516
2304 03441 052252
2305 03442 051524
Seite 49 047520
2306 03443 137501
03444
2307 03445
2308 03446
03447
03450
2309 03451
2310 03452
2311 03453
2312 03454
03455
2313 03456
Systembefehl-Namenstabelle
REN; 001000
DELETE; 111001 herausnehmen
PTAPE; 1011011 FIXED; OOllOO fest FLOAT; 001101 gleiten
TRACE; 110110
verfolgen
NORMAL; 000111 normal CONT; 101010
STOP; 111111 (NO JUMP) nicht springen
2314 03457 052524
ASC 1,UT
30988W 1370
OFHGJNAL INSPECTED
2315 03460 047605
2316 03461 051524
03462 047522
2317 03463 042600
2318 03464 046117
OCT 47 605 AUTO 000101 ASC 2,STOR
OCT 42600
ASC 2,LOAD STORE; speichern 000000 (NO JUMP) (nicht springen)
2320 2321 2322 2323 2324
2325 2326
03465 040504
03466 110114 KTBL
03467 03470 03471 03472 03473 03474 03475 03476 03477 03500 03501
044523 052203 051125 047241 051503 051101 052103 044202 043105 052103 044344 OCT 110114 LOAD; laden OlOOOO
(NO JUMP) (nicht springen)
ASC 1,IS OCT 52203 LIST; 000011 auflisten
ASC 1,RU OCT 047241 RUN; 100001 durchlaufen ASC 3,SCRATC
OCT 44202 SCRATCH; 000010 einschreiben ASC 2,FETC
OCT 44344 FETCH; 100100 abrufen
SYNTAX
2329* 2330* 233Γ* 2332 2333
2334 2335
DATA STATEMENT SYNTAX Daten-Anweisungs-Syntax
03502 045706 DATAS ISZ SBPTR
03503 061156 JSM CONST
03504 160206 NDATA*JSM ERRA,I
03505 160244 JSM NUMOA7I
2336 2337 2338 2339* 2340*
03506 060504 DATA2 JSM COMCK
03507 065151 JMP EOST 03510 067502 JMP DATAS LOOK FOR A NUMBER nach Zahl sehen
NOT FOUND nicht gefunden
FOUND; STORE IN SYNTAX
BUFFER
gefunden,im Syntax-Puffer
speichern
COMMA? Komma?
NO nein
FORMAT STATEMENT SYNTAX Format-Anweisungs-Syntax
OBiGiNAL tNSPBCTED
2341*
2342 03511 061055 FMTS
2343 03512 060750
2344 03513 067521
2345 03514 035724
2346 03515 055400
2347 03516 024161
2348 03517 060666
JSM GNEXT
JSM DIGCK JMP FMTF STB GFLAG
DSZ BADDR LDB MAXSN JSM PGINT
2349 03520 067522 JMP *+2
2350 03521 045706 FMTF ISZ SBPTR
2351 03522 027552
2352 03523 060546
2353 03524 067537
2354 03525 024161
2355 03526 060666
LDB FADD JSM STEXP JMP FMTB LDB MAXSN
JSM PGINT
2356 03527 027553 LDB .ADD
2357 03530 060546 JSM STEXP
2358 03531 160206 FMTER JSM ERRA,I
2359 03532 024161 FMTD LDB MAXSN
2360 O353'3 061131 JSM PGINO
2361 03534 061153 FMTC JSM EOLCK
2362 03535 060510 JSM COMCE
2363 03536 067511
JMP FMTS
2364 03537 027554 FMTB LDB BADD
2365 03540 060546 JSM STEXP
2366 03541 067545
2367 03542 061055
2368 03543 045706
JMP FMTQT JSM GNEXT ISZ SBPTR GET FIRST CHAR OF NEXT
SPEC
Erstes Zeichen der nächsten
Spezifizierung holen DIGIT? Ziffer?
nexn
YES, SET FOR ERROR ON OVERFLOW
ja, für Fehler auf Überfüllung setzen
FETCH AND abrufen und STORE speichern
REPEAT FIELD
Feld wiederholen
MOVE TO NEW WORD
zum neuen Wort bewegen LOOK FOR sehen nach
"F" OR "E" "F" oder "E" NOT FOUND nicht gefunden
FOUND; FETCH AND gefunden; abrufen und
STORE FIELD WIDTH Feldweite speichern
LOOK FOR sehen nach
NOT FOUND nicht gefunden
FETCH DIGIT FIELD, ALLOW Ziffernfeld abrufen, O
erlauben
EOL?
NO, DEMAND A COMMA nein, Komma verlangen
GET NEXT SPEC
nächste Spez. holen
SEARCH FOR "B","X",OR "/" suchen nach
NOT FOUND nicht gefunden FOUND gefunden
•Τ 09884/1370
ORIGINAL INSPECTED
2 3 ^ 3 3 Π
2369 03544 067534
JMP FMTC
2370 2371 2372 2373
2374 2375 2376 2377 2378+ 2379*
2380+· 2381
03545 010043 FMTQT CPA Β42 DEMAND COMMA OR EOL Komma oder EOL verlangen
QUOTE?
03546 067550
03547 067531
03550 160245
03551 067534
03552 006760 FADD
03553 006772 .ADD
03554 006764 BADD
JMP *+2 JMP FMTER JSM GTSTA,!
nein
YES, GET QUOTE FIELD ja, Quotenfeld holen
JMP FMTC
DEF FTABL+FTABL DEF FTABL+FTABL+10 DEF FTABL+FTABL+4
GOTO AND GOSUB STATEMENT SYNTAX GOTO- und GOSUB-Anweisungs-Syntax
03555 060626 GOTOS JSM SAVBP
2382 03556 055724
DSZ GFLAG
2383 03557 060664 SYNTAX JSM LNUM
2384 03560 067572 GOTOl JMP GOTO 3
Seite 51
2385 03561 060640 JSM RESBP
2386 03562 160202 JSM FSCA,I
2387 03563 027574 LDB OFA
2388 03564 060546 JSM STEXP
SAVE BADDR AND SBPTR BADDR und SBPTR sichern
SET TO RETURN ON ERROR FROM INTCK
auf Rückkehr auf Fehler von INTCK setzen
LOOK FOR A LINE NUMBER nach Zeilenzahl sehen
FOUND gefunden
2389 03565 160206 MISOF JSM ERRA,I
2390 03566 060664 GOTO 2 JSM LNUM
2391 03567 061153 JSM EOLCK
2392 03570 060510 JSM COMCE
2393 03571 067566 JMP GOTO 2
3 098 84/13
RESTORE POINTERS Hinweismarken zurückstellen
FETCH FORMULA Formel abrufen
STORE "OF" AS EXPANDED OPERATOR
"OF" als erweiterten Operator speichern
NOT FOUND nicht gefunden
FETCH LINE NUMBER Zeilenzahl abrufen
EOL?
DEMAND A COMMA Komma verlangen
ORIGINAL INSPECTED
2394 03572
2395 03573
2396 03574 2397*
2398+ AUTO
2399 +
2400 03575
2401 03576
2402 03577
2403 03600
061153 G0T03 JSM EOLCK 067561 JMP GOTOl EOL?
NO, TRY FOR A FORMULA INSTEAD nein, stattdessen mit Formel versuchen
006755 OFA DEF FOP13+FOP13+5 SYSTEM COMMAND Auto-Systembefehl
06 36 47 AUTO JSM GETLIi
020061 024061 031427
2404 03601 035430 164173
2405 03602 2406+
2407+ LIST 2408+
2409 03603
2410 03604
2411 03605
2412 03606
LDA LDB STA .LNUM
STB LNINC JMP PEXMA,I GET OPTIONAL PARAMETERS Wahlparameter holen
SET INITIAL LINE NUMBER Anfangszeilenzahl setzen
SET INCREMENT
Inkrement setzen
EXECUTION Listendurchführung
061055 LISTC JSM GNEXT
013627 067623 055400
CPA B43 JMP LSTC2 DSZ BADDR
2413 03607 063647 LSTCl JSM GETLN
2414 03610
2415 03611
2416 03612
2417 03613
2418 03614
2419 03615
2420 03616
2421 03617
2422 03620
070742 024056 060730
SAR LDB .1E4 JSM GETAD
021477 LDA TEMP4 160122 XLSTl JSM LISTA7I 160170 JSM CLERA,I
025412 074076 005413
2423 03621 160210
LDB LSTPT
TCB
ADB HSTPT
JSM OUTIA,I
309884/1370 GET NEXT CHARACTER nächstes Zeichen holen
YES ja
RESET POINTER
Hinweismarke nullstellen
GET OPTIONAL LINE rf ' S Wahlzeilen 1S holen
GET ADDRESSES
Adressen holen
LIST auflisten
CLEAR BUFFER
Puffer löschen
COMPUTE WORDS BETWEEN STACKS Wörter zwischen Stapelspeichern rechnen
PUT IN BUFFER
in Puffer geben
ORIG[NAL INSPECTED
.3 0 8
2424 03622
2425 03623
164173 JMP PEXMA,I 060664 LSTC2 JSM LNUM FETCH'SELECT CODE Auswahlcode abrufen
2428
2430*
2431+
2432*
2435
03624
03625
03626
03627
074204 035447 067607 000043 B43
SBL STB SLCOD JMP LSTCl OCT
STOP STATEMENT SYNTAX STOP-Anweisungs-Syntax
03630 065147 JMP ENDS
03631 021416 STOPS LDA MODE
03632 071711 SLA STOPS-I
2436 03633 063647
2437 03634
2438 03635
2439 03636
020056 024056 060741
2440 03637 015423
JSM GETLN
LDA .1E4 LDB .1E4 JSM FND-I
CPB PBPTR SKIP IF PROG überspringen, wenn Programm
GET PARAMETERS Parameter holen
SET DEFAULT PARAMETERS
FIND ADDRESS OF FIRST Adresse des ersten auffinden
PAST END OF PROG? nach Programmende
SYNTAX
2441 03640 074742
SBR
2442 03641 035436 STB HFLGl
2443 03642 060740 JSM FND-2
2444 03643 015423 CPB PBPTR
2445 03644 074742 SBR 16
2446 03645 035437 STB HFLG1+1
2447 03646 164174 JMP RDYDA,!
2448*
2449+
2450* SUBROUTINE TO BUILD AND STORE
YES, CLEAR FLAG ja, Marke löschen
FIND ADDRESS OF SECOND Adresse des zweiten auffinden
Unterprogramm zum Aufbauen und Speichern N>0 Zeilenzahlen
2451* RETURN TO: P+1*NONE GIVEN nichts gegeben zurück nach
30988W 1 INSPECTED
2452+ 2453*
2454*
2455* gespeichert 061066 GETLN JSM GETSK
2456 O3647 170402 RET
2457 03650 060750 JSM DIGCK
2458 03651 067647 JMP GETLN
2459 03652
2467 2468
2469* 2470
2471+ 2472* 2473+ 2474
2333308
P+2:l GIVEN (A)=NUMBER gegebenes (A) = Zahl
P+3:2 GIVEN (A)=FIRST? (B)=SECOND gegebenes (A) = erster, (B) = zweiter
NUMBERS ARE STORED SEPARATED BY COMMAS IN S-BUFFER Zahlen sind im S-Puffer durch Kommata getrennt
GET NEXT CHAR
nächstes Zeichen holen NONE GIVEN keins gegeben DIGIT? Ziffer
NO, IGNOR IT
nein, ignorieren
BUILD FIRST INTEGER erste Ganzzahl aufbauen SAVE IST# erstes # sichern END OF LINE? Zeilenende?
YES,RETURN TO P+2 ja, zurück nach P+2
INCREMENT RETURN ADDRESS Inkrement zurück Adresse
FIND AND RECORD A COMMA Komma auffinden und aufnehmen
GET NEXT LINE NUMBER nächste Zeilenzahl holen
MOVE TO (A) nach (A) bewegen
RETURN TO P+2 OR P+3 zurück nach P+2 oder P+3
2460 03653 060663
JSM LNUM-1
2461 03654 035720 STB LASTN
2462 03655 010031 CPA EOL
2463 03656 067662 JMP GETL2
2464 03657 060365 JSM RET2
2465 03660 O6O51O JSM COMCE
2466 03661 060664
JSM LNUM
03662 021720 GETL2 LDA LASTN
03663 064357 GETLR JMP RETN2
03664 000000
BSS Summenprüfung
CLEAR ROUTINE Löschprogramm
03665 070742 ECLR SAR
03666 031430 STA LNINC
2476 03667 170402
RET CLEAR AUTO MODE AUTO-Betrieb löschen
RETURN TO P+l
zurück nach P+l
2477* 3677 IS LAST ist letzte
2478* MATH TABLES HERE mathem. Tabellen hier
O 9 8 3 U! 1 3 7 Π
53 2333908 9830-MONITOR ORG 4000B
Seite
2480+ 04000 LDA QTOP
2481 CLR
2482 + 04000 020116 ENTRY ADA M4
2483 04001 170000 RZA +-2
2484 04002 00013 5 LDB INF
2485 04003 073710 ADB M1O24
2486 04004 024066 STB B,I
2487 04005 004160 MAWCK CPB B,I
2488 04006 074577 JMP +"+2
2489 04007 074477 JMP MAWCK
2490 04010 066012
2491 04011 066005
2492 STA B,I
2493 + STB MAW
2494+ 04012 074557 ADB M1
2495 04013 03 5403 STB LWAM
2496 04014 004132 LDB REED
2497 04015 035404 STB REEDL
2498 04016 024116 LDB INTEA
2499 04017 035462 STB INTEL
2500 04020 024207 LDA .9
2501 04021 035463 STA CPLAC
2502 04022 020026 STA CTYPE
2503 04023 031452 ISZ UNITS
2504 04024 031451 ISZ PMODE
2505 04025 045434 309884/ 1
''506 04026 045450
2 507
CLEAR THE BASE PAGE Basisseite löschen
DETERMINE THE festlegen die
LAST WORD OP R/W letztes Wort von R/W
YES7 IT WAS ja, war es
CHECK NEXT PAGE nächste Seite prüfen
INITIALIZE LAST WORD letztes Wort initialisieren
SET THE POINTER Hinweismarke
TO THE LAST AVAILABLE WORD auf letztes verfügbares Wort
INITIALIZE KEYBOARD LINK Tastaturverbindung initialisieren
INITIALIZE INTERRUPT LINK Unterbrechungsverbindung initialisieren
SET DECIMAL SETTING TO Dezimaleinstellung auf
SET MODE TO "FLOAT" Betrieb auf "Gleiten" stellen
INITIALIZE TO RADIANS zum RADIANS initialisieren
INITIALIZE TO NORMAL zum NORMAL initialisieren
2508 2509
04027 020166 KILLK LDA FWAM
04030 031405
STA FWUP
2510 04031 020112 KILLP LDA RSTKA
2511 04032 031777
2512 04033 062734
2513 04034 061233
STA RSPTR JSM SCRP JSM LDEF+6
2514 2515
2516 2517
04035 060645 KILLV JSM MINIT
04036 060651
JSM INITS
04037 070742 RDYPT SAR 04040 031433 STA TFLAG
2518 04041 031430
STA LNINC INITIALIZE START OF
Start von Benutzerprogramm
USER PROGRAM (SCRATCH KEYS) initialisieren (Tasten einschreiben)
INITIALIZE RETURN Rückkehr Hinweismarke initialisieren
POINTER
INITIALIZE PROGRAM POINTERS Programm-Hinweismarke initialisieren
RESET USER KEY POINTER Benutzertasten-Hinweismarke nullstellen
INITIALIZE SYMBOL TABLE Symboltabelle initialisieren
INITIALIZE STACKS AND FLAGS Stapelspeicher und Hinweismarken initialisieren
CLEAR PTAPE FLAG
PTAPE-Marke löschen
SET TO MANUAL
auf manuell stellen
2519* 252O 2521
2522 2523 2524 2525 2526
2527 2528 2529 2530 2531* 2532
2533 2534
04042 160170
04043 031622
JPM CLERA,I CLEAR DISPLAY
Wiedergabe löschen RESET CRLF FLAG
CRLF-Marke nullstellen
TERM
04044 G7O742 PEXMK SAR
04045 031701 STA NDISP
04046 031702 STA NPRIN
04047 021432 PEXM2 LDA DRQST 04050 070510 SZA PEXM3
LDA LDB QMRKA JSM .NPWR JMP PEXM1
04051 020012
04052 026267
04053 061330
04054 O661OO
SKIP IF NOT DATA REQUEST überspringen, wenn keine Datenanforderung
PRINT A ? A drucken?
PTAPE SYSTEM COMMAND PTAPE-Systembefehl
04055 031433 PTAPE STA TFLAF STORE DEVICE CODE Vorrichtungscode speichern
04056 072110
04057 064726
RZA *f+2 JMP SYE25 SELECT CODE NOT GIVEN Auswahlcode nicht gegeben
09884/1370
2333308
«SS
253 5 04060 O2O132
LDA M1
9830-MONITOR
2536 04061 O31742
STA TMP2
2537 04062 O7O742 PEXM3 SAR STA 16
2538 04063 O31442 LDA STPFL
2539 04064 O2O127 STA B170K
2540 04065 O31447 LDA SLCOD
2541 04066 0214OO CPA BADDR
2542 04067 O1O212 JMP .SLBF
2543 O4O7O O66O72 JMP ++2
2544 04071 O661OO LDB PEXM1
2545 04072 O26264 LDA LTADD
2546 04073 O21422 SIA UKPTR
2547 04074 O7O17O #+3
2548 04075 OO4134
ADB M3
2549 04076 O2OO21 LDA .4
2550 04077 061335 JSM NPWRT
2551*
2552 041OO 024112 PEXM1 LDB RSTKA
2553 04101 O35777 STB RSPTR
2554 04102 020041 ALNUM LDA .32
2555 04103 031707 STA BLANK
2556 04104 O2143O LDA LNINC
2557 04105 O7O41O SZA GTRC1
2558 04106 021701 LDA NDISP
2559 O41P7 O723 5O RZA GTRC1+1
2560 04 1 1 C 16O170 JSM CLERA,I
2561 04 : I 1 OJ -427 LDB .LNUM
-•no ! 8 d U I 1
SET FLAG FOR LEADER Marke für Kopf setzen
CLEAR THE STEP-STOP FLAG Schritt-Stop-Marke löschen
SET TO STANDARD PRINTER auf Standarddrucker setzen
BLANK SCREEN? freier Schirm? YES ja
GET ADDRESS OF LAZY-T Adresse von 1LAZY-T holen
SKIP IF NOT KEY MODE (A)=1 überspringen, wenn nicht Tastbetrieb (A)=1
GET ADDRESS OF KEY-LAZY-T. Adresse von Tasten-LAZY-T holen
WRITE ON DISPLAY auf Wiedergabe schreiben
RESET STACK
Stapelspeicher nullstellen
SET TO IGNOR BLANKS auf Leerstellenignorierung setzen
SKIP IF MANUAL
überspringen, wenn manuell
SKIP IF MESSAGE ON SCREEN Nachricht auf Schirm überspringen, wenn
CLEAR OFF LAZY-T auslöschen 37 Π
2562 04112 160210 GTRC1
2563 04113 045400 GTRCD
2564 04114 066116
2565 04115 O31427
2566 04116 161462
2567 04117 066042
2568 04120 061062
2569 O4121 066042
2570 O4122 O74742
2571 04123 035724
2572 04124 025432
2573 04125 074730
2574 04126 O35&42
2575 O4127 074742
2576 04130 035432
2577 04131 035416 GTRC 3
2578 04132 160237
2579 04133 066260
2580 04134 020127
2581 04135 031447
2582 04136 022270
2583 04137 031416
2584 04140 061062 CKRCD
2585 04141 000000
2586 04142 066154
2587 O4143 025416
2588 04144 074111
2589 04145 066154
JSM OUTIA,I
PUT LINE# IN BUFFER Zeilen# in Puffer geben
ISZ BADDR OUTPUT A SPACE
Ausgang Abstand
JMP *+2
STA .LNUM
JSM REEDL,I JMP PEXMK-2 JSM GFRST
JMP PEXMK-2 SBR 16
STB GFLAG
LDB DRQST SIB CKRCD STB SAVE
SBR 16
STB DRQST
STB MODE
JSM SALTA,I
JMP GTRC2 LDA B170K STA SLCOD
LDA CALSN STA MODE
JSM GFRST
JMP SYNTX LDB MODE
SLB ++2
JMP SYNTX
SET LINE #IF MANUAL
Zeilen# setzen, wenn manuell
READ RECORD NULL RECORD
Satz lesen Null-Satz
GET FIRST CHAR IN (A) erstes Zeichen in (A) holen
NULL RECORD Null-Satz
SET FLAG FOR INTEGER ERROR Marke für Ganzzahlfehler setzen
SKIP IF NOT DATA REQUEST gefordert überspringen, wenn keine Daten an-SAVE RETURN ADDRESS Rückkehradresse sichern
CLEAR THE INPUT FLAG Eingangsmarke löschen
SET TO PROGRAM EXECUTION MODE auf Prograinmausführung setzen
STATEMENT GIVEN? Anweisung gegeben?
NO nein YES ja
SET TO STANDARD PRINTER auf Standarddrucker setzen
SET TO CALC SYNTAX MODE auf Rechensyntax-Betrieb setzen
CHECKSUM Summenprobe
SKIP IF EOL überspringen, wenn EOL
EXECUTE:DONT ALLOW LINE # ausführen; Zeilen & nicht erlauben
309884/1370
04146 010100
04147 066251
CPA STAR
JMP UKDEP YES ja
FIRST CHAR AN "#"? erstes Zeichen
Seite 55 50 060675 983O-MONITOR INTCK
2592 O41 51 035427 JSM .LNUM
2593 041 * STB CONTA
2594 + 52 O1OO31 (A) EOL
2595 041 53 O665OO CPA DELST
2596 041 - JMP
2597* 54 025426 PBPTO
2598 041 55 O15424 SYNTX LDB PBUFF
2599 041 56 062734 CPB SCRP
2600 041 JSM
2601 041 57 024026
2602 041 60 035710
2603 041 61 025413
2604 041 62 OO4132
2605 041 63 O35472
2606 041 64 074742
2607 041 65 035711
2608 041 66 035714
2609 041 67 160237
2610 041 70 066201
2611 041 71 045706
2612 041 72 135706
2613 041 73 025416
LDB .9
STB MSFLG
LDB HSTPT ADB M1
STB TEMPS
SBR 16
STB DFLAG
STB SFLAG 160237 STMT JSM SALTA,I
JMP CMND
ISZ SBPTR STB SBPTR,I
LDB MODE Zeilen t aufbauen
Zeilen $ speichern
nächstes Zeichen END OF LINE? Zeilenende?
YES,DELETE LINE FROM CODE ja, Zeile aus Code nehmen
GET MAINLINE END POINTER Hauptzeilenende-Hinweismarke holen
NULL PROGRAM?
Nu11-Programm
YES, INSURE NO SPURIOUS COMMON EXISTS
ja, sicherstellen, daß kein falsches gemeinsames existiert
SET STORE FLAG FALSE Speichermarke falsch setzen
(DONT RECOGNIZE ASSIGNMENT) Zuweisung nicht zur Kenntnis nehmen)
INITIALIZE initalisieren
THE S-STACK
POINTER
die S-Stapelspeicher-Hinweismarke
CLEAR DEFINE FLAG Definitionsmarke löschen
SEARCH TABLES FOR STATEMENT Tabellen für Anweisung suchen
NOT FOUND nicht gefunden
STORE THE PAGE
Seite speichern
30988 W1370
2614 04174 074211 SLB STMT1
2615 O4175 07O304 SAL 1O
2616 04176 070112 SAM STMT1
2617 04177 062360 NCALC JSM ERROR
2618 04200 165473 STMT1 JMP TEMP,I SKIP IF PROGRAM MODE überspringen, wenn Programmbetrieb
SHIFT OP CODE
OP-Code verschieben
SKIP IF STMT TYPE IS ALLOWED
überspringen, wenn Anweisungstyp erlaubt
STMT NOT ALLOWED IN CALC in Rechnung nicht erlaubte Anweisung >
BRANCH TO CODE FOR STATEMENT abzweigen zum Code für Anweisung
2619 262O
2621 2622 2623
2624 2625 2626 2627
2628 2629 2630 2631
04201 024132 CMND LDB M1 SEARCH TABLES
FOR
Tabellen für
O42O2 160237
JSM SALTA,I
04203 066221 JMP ILET
04204 074742 CMNDF SBR
04205 035431 STB CLINE
SYSTEM COMMAND Systembefehl
suchen
NOT FOUND nicht gefunden
04206 035430
04207 035416
04210 035442
04211 070142
04212 070210
04213 162733
04214 070742
04215 024056
STB LNINC STB MODE STB STPFL SAR
SZA JCMND JSM GETLA,I SAR LDB .1E4
2632 04216 161473 JCMND JSM TEMP,I RESET POINTER FOR LIST Hinweismarke für Liste nullstellen
RESET AUTO
AUTO nullstellen
SET TO PROG
auf Programm stellen
CLEAR "STEP" FLAG "Schritt"-Marke löschen GET £ OF PARAMETERS ALLOWED i- der erlaubten Parameter holen
BRANCH IMMEDIATELY sofort abzweigen
GET LINE P PARAMETERS Zeilen ff Parameter holen
NONE GIVEN + ASSUME O nicht gegeben, O annehmen
ONLY ONE GIVEN; ASSUME INFINOTV nur eines gegeben; unendlich annehmen
BRANCH TO COMMAND EXECUTION abzweigen zur Befehlsausführung
4/13'/ Q.
2633+ ALL CCMMAND JUMP TO PEXMK OR RDYPT EXCEPT FETCH 2634+ WHICH JUMPS TO READ; THE FOLLOWING TWO INSTRUCTIONS
2635+ ARE RETURN EXITS FOR READ
Alle Befehle nach PEXMK oder RDYPT springen, mit Ausnahme von "abrufen", das nach READ springt; die beiden
folgenden Instruktionen sind Rückkehr-Ausgänge für READ 04217 066042 JMPPEXMK-2 04220 066120 JMP GTRCD+2
2636 2637 2638+ 2639
04221 O7O742 ILET SAR
2640 04222 066164 JMP STMT-3
2641*
2642 04223 055400 ILETS DSZ BADDR
2643 04224 O61O55 JSM GNEXT
2644 04225 O554OO DSZ BADDR
2645 04226 O6O752 JSM LETCK
2646 O4227 O66234 JMP ILET14
2647 04230 060626
JSM SAVBP GET SPECIAL CHAR FOR IMPLIED
Spezialzeichen für impliziertes LET holen
FIND BLOCK FOR IMPLIED LET Block für impliziertes LET auffinden
RECALL CHARACTER Zeichen zurück rufen
LETTER? Buchstabe?
NO,TRY INPLIED DISP nein, impliziertes DISP versuchen
SAVE POINTERS Hinw■"\smarken sichern
Seite 56 9830—MONITOR 062274 JSM LETSN
2648 04231 066244 JMP NSTMT+1
2649 04232 060640 ILET1 JSM RESBP
2650 04233 020125 LDA PRTOP
2651 04234 055706 DSZ SBPTR
2652 04235 131706 STA SBPTR,I
2653 04236 045706 ISZ SBPTR
2654 04237 025416 LDB MODE
2655 04240 074111 SLB NSTMT
2656 04241 30 988A/1
TRY "LET" SNTAX 11 LET "-Syntax versuchen
OK, CHECK FOR EOL i.O. auf EOL prüfen
RESTORE POINTERS Hinweismarken rückstellen
STORE CODE FOR Speichern Code für
IMPLIED LET impliziertes LET
SKIP IF PROG überspringen, wenn Programm
370
2657 04242 062315 JSM PRNTS
2658 04243 062360 NSTMT JSM ERROR
2659 04244 061153 JSM EOLCK
2660 04245 021416 LDA MODE
2661 04246 070111 SLA *+2
2662 04247 066233 JMP ILET1
2663 04250 065152 JMP NOEOF
2664*
2665 04251 021422 UKDEF LDA UKPTR
2666 04252 072110 RZA *+2
2667 O4253 160206 UKERR JSM ERRA,I
2668 04254 O74742 SBR 16
2669 O4255 1357O6 STB SBPTR,
2670 04256 160253 JSM CHRSA,
2671 04257 066520 JMP ACTKY
2672*
2673 O426O 024132 GTRC2 LDB M1
2674 04261 160237 JSM SALTA,
TRY "PRINT" SYNTAX "PRINT"-Syntax versuchen
NO STATEMENT TYPE CAN BE
FOUND
kein Anweisungstyp zu finden
END OF LINE? Zeilenende? NO nein
TRY PRINT SYNTAX IF CALC
MODE
Drucksyntax versuchen, wenn
Rechenbetrieb
IN KEY DEFINITION MODE?
im Tastendefinitionsbetrieb?
NO, DEFINITION NOT ALLOWED nein, Definition nicht erlaubt
O-Zeilen-Zahl setzen
akzeptieren
ACCEPT DEFINITION akzeptieren
JSM SALTA,I SYSTEM COMMAND IN "INPUT"? Systembefehl in "Eingabe"
2675 04262 165642
2676 04263 O66134
JMP SAVE,I
JMP GTRC3
NO, RETURN DATA TO INPUT STMT nein, Daten zurück zur Eingabeanweisung
YES, ABORT INPUT ja, Eingabe abführen
2677#
2678 04264 010555 LTADD DEF ++#+5
2679 04265 045505 ASC 1,KE
2680 04266 054437 OCT 54437 Y,LAZY-T
2681 04267 000131 QMRKA DEF .63+.63+1
2682 04270 1OOOO1 CALSN OCT 100001
2683 00116 IMPOP EQU QTOP
2684 00125 PRTOP EQU LBOP
2685 00100 STAR EQU B52
2686 00123 STDPG EQU RBOP
309884/1370 OP CODE 1
OP CODE 24
LET STATEMENT SYNTAX LET-Anweisungs-Syntax
04271 062274 LETS JSM LETSN
04272 065151 JMP EOST
04273 160206 SYNE2 JSM ERRA,I
LET SYNTAX SUBROUTINE LET-Syntax-Unterprogramm EXIT P+1; STORE OCCURRED
Ausgang Speicherung stattgefunden P+2; NO STORE OCCURRED
keine Speicherung stattgefunden
2697* 04274 055710 LETSN DSZ MSFLG - ENABLE ASSIGNEMENT
Zuweisung freigeben
160265 RITE JSM IOHEA .1 GET DEVICE AND FORMAT
Gerät und Format holen
2698 04275 160202 JSM FSCA, I GET FORMULA
Formel holen
060534 JSM RPCKE GET RIGHT PAREN
rechte Klammer holen
2699 04276 025714 - LDB SFLAG 055400 DSZ BADDR
2700 04277 014133 CPB M2 DID A STORE OCCUR
fand Speicherung statt?
055706 DSZ SBPTR
2701 O43OO 170402 RET YES ja
27O2 04301 064357 JMP RETN2 NO nein 062315 PRINS JSM PRNTS CHECK SYTAX (TO ACTST I
2703 57 9830—MONITOR
Seite
2704* WRITE AND PRINT STATEMENT SYNTAX
Schreib- und Druckanweisungssyntax
2705*
2706* 04302
2707 04303
2708 04304
2709 04305
2710
2711* 04306
2712
Syntax prüfen (wenn i.O., nach ACTST)
04307 160206 SYE15 JSM ERRA,I IMPROPER SYNTAX
unrichtige Syntax
PRINT STATEMENT SYNTAX SUBROUTINE Unterprogramm für Druckanweisungssyntax
309884/1370
2716+
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
04310 010043
04311 066325
04312 060461
04313 012001
04314 066321
04315 024132
04316 035712
04317 04320 04321 04322 04323 04324 04325
061066 065150 010043 066324 066334 045706 160245
PRIN1 CPA B42 JMP PRIN2+4
JSM SYMC2
DEF COMMA-1
JMP PRIN2 PRNTS LDB M1
STB PFLAG
JSM GETSK
JMP EOST-I
PRIN 2 CPA B42
JMP #4-2
JMP PRIN3
ISZ SBPTR
JSM GTSTA,I
QUOTE? YES ja
COMMA OR SEMICOLON? Komma oder Semikolon?
NO
nein
ENABLE FORMULA AND TAB Formel und Tabelle freigeben
QUOTH? YES ja NO nein
RECORD STRING CONSTANT STRING-Konstante aufnehmen
04326 061153
04327 074742
04330 135706
04331 024132
04332 035712
04333 066310
04334 045712
JSM EOLCK EOL?
SBR STB SBPTR,I
2738 04335 170402
LDB M1 STB PFLAG
JMP PRIN1 PRIN3 ISZ PFLAG
RET
2739 04336 026354 LDB TABA
2740 04337 160175 JSM TSRHA,I
2741 04340 066350 JMP PRIN4
2742 04341 070544 SAL 5
2743 04342 040067 I OR TYPFL
2744 04343 060454
2745 04344 024123
2746 04345 135706
CLEAR OUT NEXT WORD nächstes Wort auslöschen
ENABLE FORMULA Formel freigeben
TAB OR FORMULA PERMITTED? Tabelle oder Formel erlaubt?
NO,RETURN, IMPROPER SYNTAX nein, zurück, unrxchtxge Syntax
LOOK FOR "TAB" nach "TAB" sehen
NO nein
SET PRE-DEFINED FUNCTION FLAG-vordefinierte Funktionsmark:λ setzen
JSM SBPUD-2 STORE CODE FOR TAB
Code für TAB speichern
LDB RBOP STB SBPTR7I 309884/1370
04346 160202 JSM FSCA,I GET Ί£Β FORMULA TAB~Formel holen
04347 066352 JMP PRIN5 04350 O554OO PRIN4 DSZ BADDR BACK UP POINTER Hinweismarke zurücksetzen
2750 04351 160202 JSM FSCA,I FETCH FORMULA Formel holen
2751 04352 O61153 PRIN5 JSM EOLCK EOL?
2752 04353 O6631O JMP PRIN1 NO nein
2753 O4354 023773 TABA DEF TAB+TAB+1
9830—Monitor
2755*
2756*
2757*
2758
2761*
2762*
2763*
OUTPUT ERROR GIVEN IN P+1 Ausgangsfehler gegeben in P+1
04355 O6O4O5 AERR JSM XFAR1 SAVE AR2 IN AR1
sichern
04356 060400
04357 066370
JSM GPARM GET ERROR # IN (B)
Fehler * in (B) holen
JMP ERR1
OUTPUT ERROR # FROM ERROR TABLE Ausgangsfehler ft von Fehlertabelle
04360 O55777 ERROR
04361 121777
04362 026476
04363 074070
04364 074457
04365 O74O76
04366 075653
2771 04367 OO6476
2772 0437O O357O6 ERR1
2773 04371 021450
2774 04372 O7235O
2775 04373 O21433
DSZ RSPTR LDA RSPTR,I
LDB ERBS SIB *+1
CPA B,I TCB SBP *-3
ADB ERBS
STB SBPTR LDA PMODE RZA ERR2 LDA TFLAG ERROR SOURCE IN (A) Fehlerquelle in (A)
TABLE ADDRESS IN (B) Tabellenadresse in (B)
INC ADDRESS
INC Adresse
MATCH? Paßt? YES ja
CONTINUE IF NO MATCH fortfahren, wenn nicht paßt
COMPUTE NEGATIVE OF ERROR #" Negativ von Fehler # berechnen
SAVE -(ERROR # ) sichern
309884/1370
2776 04374 070250
SZA ERR2
2777 04375 O2OO6O LDA .100
2778 04376 024211 LDB .BUFA
2779 04377 061337 JSM NDWRT
2780 O44OO O61344 JSM CRLF1
2781 Ο44ΟΪ 021416 ERR2 LDA MODE
2782 O44O2 070112 SAM ++2
2783 04403 160264 JSM CRCKA,I
2784 04404 160170 JSM CLERA, I
2785 04405 035622 STB TERM
2786 O44O6 020127 LDA B170K
2787 O44O7 031447 STA SLCOD
2788 0441O 020023 LDA .6
2789 04411 026464 LDB EMSGA
2790 04412 061335 JSM NPWRT
2791 04413 025706 LDB SBPTR
2792 O4414 O74O76 TCB
2793 04415 16O21O JSM OUTIA,I
2794 04416 025427
LDB .LNUM
2795 04417 O7431O SZB ERR3
2796 04420 020026 LDA .9
2797 04421 026465 LDB LMSGA
2798 04422 061335 JSM NPWRT
2799 04423 025427 LDB .LNUM
2800 04424 160210 JSM OUTIA,I
2801 04425 045400 ERR3 ISZ BADDR
2802 04426 045400 ISZ BADDR
2803 04427 021433 LDA TFLAG
2804 04430 072110 RZA #+2
2805 04431 072053 SAP #+1 ,S
SKIj? IF NOT PTAPE überspringen, wenn nicht PTAPE
PRINT LINE IF PTAPE AND P-ALL
SKIP IF SYNTAX MODE überspringen, wenn Syntaxbetrieb
TERMINATE CURRENT LINE Flußzeile festlegen
CLEAR BUFFER
Puffer löschen
SET UNTERMINATED FLAG nicht festgelegte Marke setzen
SET TO STANDARD PRINTER auf Standarddrucker setzen
PUT "ERROR" IN BUFFER "Fehler" in Puffer geben
OUTPUT POSITIVE ERROR# Ausgang positives. Fehler #"
IS A LINE NUMBER ist Zeilenzahl
APPLICABLE anwendbar
.PUT "IN LINE" IN BUFFER "in Zeile" in Puffer geben
OUTPUT LINE#
Ausgang Zeilen #
OUTPUT 2 BLANKS Ausgang 2 Leerstellen
SET TO "PRINT" IF PTAPE auf "Druck" setzen
309884/1370
04432 031453
04433 160176
STA PRFLG SET 11DISP11FLAG
"DISP"-Marke setzen
JSM ELINA.I OUTPUT ERROR
Ausgang Fehl r
04434 160264 JSM CRCKA,I GIVE CRLF IF P-ALL OR PTAPE
CRLF geben, wenn P-ALL oder PTAPE
04435 025706 ERR4 LDB SBPTR RECALL-(ERROR# )
zurückrufen
O4436 014132
CPB M1 ERROR 1? Fehler 1?
9830—MONITOR
2811 04437 066445
2812 O444O OO4O63
2813 04441 O74313
2814 04442 035442
2815 O4443 035622
2816 O4444 064444
2817*
2818 04445 035421 ERN1
2819 04446 035416
2820 04447 021432 ERR5
2821 04450 070110
2822 04451 165432
2823 04452 021416
2824 O4453 010132
2825 04454 066460
2826 04455 070210
2827 04456 070212
JMP ERN1 ADB SBP ERR5 STB STPFL
STB TERM
JMP XFAR2
STB PRADD
STB MOD
LDA DRQST SZA *+2
JMP DRQST,I LDA MODE
CPA M1 JMP ERET-2 SZA ERET-1
SAM ERET YES ja
SKIP IF NON-RECOVERABLE überspringen, wenn nicht bedeckbar
SET TO STOP AT END OF LINE auf STOP am Zeilenende setzen
SET UNTERMINATED LINE FLAG nicht festgelegte Zeilenmarke setzen
RESTORE AR2 AND RETURN AR2 zurückstellen und zurückkehren
SET TO ABORT DECOMPILE
auf Abführung dekompilieren
setzen
SET TO SCRATCH SYMTAB
auf SYMTAB einschreiben setzen
IN "INPUT" STATEMENT? in "Eingabe"-Anweisung?
YES,RETURN ja, zurück
FIND OUT WHERE ERROR OCCURRED auffinden, wo Fehler stattgefunden hat
MFASE?
YES ja
SKIP IF PROGRAM EXECUTION überspringen, wenn Programmausführung
SKIP IF SYNTAX PHASE überspringen, wenn Syntax-Phase
309884/1370
2828 04457 166477 2829 04460 060645 2830 04461 060653
JMP CALXY1I MUST HAVE BEEN CALC EXECUTION muß Rechenausführung gewesen sein
JSM MINIT SCRATCH INCOMPLETE SYMTAB unvollständige SYMTAB einschreiben
JSM INITS+2 SCRATCH STACKS AND RESET •PROGRAM POINTER Stapelspeicher einschreiben und Progranunhinweismarke nullstellen
04462 045701 ERET ISZ NDISP SET TO NOT DISPLAY AUTO# auf "nicht AUTO * wiedergeben" stellen
04463 066047 JMP PEXM2
04464 011154 EMSGA DEF ERRM+ERRM
2834 04465 011162 LMSGA DEF ERRM+ERRM+6
2835 04466 042522 ERRM ASC 8,ERROR IN LINE
04467 051117
04470 051040
04471 020111
04472 047040
04473 046111
04474 047105
04475 020040
2836 04476 000267 ERBS DEF E1-1
2837 04360 MERR EQU ERROR MFASE ERROR
2838 04477 010070 CALXA DEF CALEX
POINTER TO "ERROR" Hinweismarke nach "Fehler"
POINTER TO "IN LINE" Hinweismarke nach "in Zeile"
Fehler in Zeile
Fehler
3 0 9 8 8 4/1370
9830-ÜPDATE PROGRAM
Programm aktualisieren
2840+
2841* 2842
2845 2846
2847 2848
2850 2851* 2852* 2853*
2855
2856 2857 2858
2859 2860
2861 2862 2863 2864
2865
DELETE STATEMENT FROM PROGRAM Anweisung aus Programm nehmen
04500 160242
04501 061072
04502 066506
04503 066506
04504 070110
DELST JSM DCOMA,I JSM FNDPS-3
JMP EDITR
JMP EDITR SZA EDITR
04505 062571 JSM CLPRG
04506 060651 EDITR JSM INITS
O45O7 062723 O451O 066042
JSM INCLN JMP PEXMK-2 DECOMPILE dekompilieren
FIND STATEMENT TO BE DELETED herauszunehmende Anweisung auffinden
DOESNT EXIST
existiert nicht
SKIP IF TYPING AID KEY überspringen-, wenn Druckhilfetaste
CLOSE UPPROGRAM Programm abschließen
INITIALIZE STACK POINTERS Stapelspeicher-Hinweismarken initialisieren
INCREMENT LINE NUMBER Zeilenzahl erhöhen
ACCEPT STATEMENT Anweisung annehmen
04511 020112 ACTST LDA RSTKA
04512 031777 STA RSPTR
04513 021416
04514 070073
04515 031416
04516 070110
04517 164247
LDA MODE SAP *+1,C STA MODE
SZA *+2 JMP ECALA,I
04520 160242 ACTKY JSM DCOMA,I
04521 020233 LDA SBUFA
04522 070076 TCA
04523 OO17O6 ADA SBPTR
O4524 031473
STA TEMP RESET RETURN STACK Rückkehr Stapelspeicher nullstellen
SWITCH OUT OF
SYNTAX MODE
aus Syntaxbetrieb schalten
JUMP TO CALC EXECUTION zur Rechenausführung springen
DECOMPILE dekompilieren
COMPUTE LENGTH
OF STATEMENT
rechnen Länge der Anweisung
SAVE LENGTH IN TEMP Länge in Zwischenspeicher sicherr
309884/1370
2866 2867
2868
2869 2870
2871 2872 2873
2874
2875 2876 2877
2878 2879
28 8O 2881 2882 2883 2884 2885
2888+ 2889
2890 2891 2892 2893
04525 025551
04526 074450
04527 041552
04530 031552
04531 061072
04532 066565
04533 066565
04534 O7OT5O
LDB RBUFF READ LINEt
Zeichen ff lesen
SZB ACCSI SKIP IF TYPING AID DEFINITION überspringen, wenn Druckhilfe-Definition
IOR RBUFF+1 MERGE INTO OP-CODE WORD in OP-Code-Wort mischen
STA RBUFF+1 JSM FNDPS-3 FIND ADDRESS IN PROGRAM
Adresse in Programm auffinden
anhängen
einsetzen
JMP ACCS4 JMP ADDS4 SZA ACCSI APPEND
INSERT
SKIP IF REPLACING TYPING AID
04535 061007
04536 O66544
JSM NEXTA
JMP ACCS3 KEY
überspringen, wenn Druckhilfetaste ersetzt wird
NO, COMPUTE LENGTH AND END OF
STATEMENT
nein. Länge und Ende der Anweisung berechnen
Q4537 O21424 ACCS1 LDA PBUFF SET POINTERS TO
04540 031476
04541 O7OO76
04542 001423
04543 025423
STA TEMP3
TCA
ADA PBPTR
LDB PBPTR
04544 070076 ACCS3 TCA
04545 OO1473
04546 070250
04547 070112 O455O O66566
ADA TEMP SZA ACCS2 SAM *+2 REPLACE
Hinweismarken auf Ersetzen stellen
ENTIRE PROGRAM
gesamtes Programm
COMPARE vergleichen
LENGTHS Länge
EQUAL gleich
JMP ACCS4+1 OLD LINE IS SHORTER alte Zeile kürzer
04551 021473
04552 062573
LDA TEMP LONGER
JSM CLPRG+2
langer
CLOSE UP PROGRAM
Programm abschließen
MOVE FROM S-BUFFER INTO PROGRAM aus S-Puffer ins Programm bewegen
04553 024233 ACCS2 LDB SBUFA INITIALIZE POINTER
Hinweismarke initialisieren
04554 074517
04555 131476
04556 045476
04557 055473
LDA B,I STA TEMP3,I ISZ TEMP3 DSZ TEMP WORD
Wort
FINISHED?
beendet?
309884/1370
2894 04560 61 04562 077630 RIB ACCS2+1 NO nein 021473 ACCS4 LDA TEMP O LINE NUMBER?
O Zeilenzahl?
061007 CLPRG JSM NEXTA GET ADDRESS OF FIRST WORD
2895 04561 04563 121424 LDA PBUFF,I YES ja 062625 JSM OVCHK YES, END KEY DEFINITION
ja, Tastendefinition Ende
Seite 04564 9830—UPDATE PROGRAM
Programm aktualisieren
061121 JSM MVTOH NO nein
2896 072110 RZA *+2 066553 JMP ACCS2 einfügen
2897 061225 JSM LDEF
2898 066506 JMP EDITR CHECK FOR OVERFLOW
auf tiberfüllung prüfen
2899* INSERT STATEMENT Anweisung MOVE PROGRAM UP
Programm hochbewegen
2900 04565
2901 04566
2902 04567 CLOSE UP PROGRAM Programm abschließen
2903 04570 ADDRESS OF LINE BEING CHANGED IS IN TEMP3
Adresse der zu wechselnden Zeile ist in TEMP3
2904*
2905* 04571
2906*
2907*
2908
2909 2910
2911 2912*
2913* 2914*
2915
MOVED
Adresse des ersten bewegten
Wortes holen
04572 070742
04573 001476
SAR ADA TEMP3
04574 031477
SKIP (A) LOCATIONS FORM TEMP3 (A) Stellen von TEMP3 über- ' springen
STA TEMP4 AND SAVE DESTINATION ADDRESS
und Bestimmungsadresse sichern
TEMP4= DESTINATION ADDR OF FIRST WORD Bestimmungsadresse des ersten Worts
PBPTO= SOURCE ADDRESS OF LAST WORD +1 Quellenadresse des letzten (B)= SOURCE ADDRESS OF FIRST WORD Worts+1
Quellenadresse des ersten Worts
04575 015426 CLPR1 CPB PBPTO
2916 04576 066603 JMP CLPR2 I
2917 04577 074517 LDA B,I
2918 04600 131477 STA TEMP4,
ALL OF PROGRAM MOVED? ganzes Programm bewegt?
YES ja
MOVE WORD FROM SOURCE Wort von Quelle bewegen
TO DESTINATION ADDRESS zur Bestiimnungsadresse
309884/1370
2939* 294O#
2941* 2942
04601 045477
04602 077570
ISZ TEMP4 RIB CLPR1
04603 021477 CLPR2 LDA TEMP4
04604 074076
04605 070037
04606 031426
04607 021423
04610 074017
04611 031423
04612 021422
04613 070450
04614 070517
04615 074017
04616 131422
04617 021425
04620 074017
04621 031425
04622 O054o5
04623 035405
04624 170402
TCB A
ADB PBPTO
STA PBPTR
LDA B
ADA PBPTR
STA UKPTR
LDA OVCHK-1
S2A Α,Ι
LDA B
ADA UKPTR,I
STA PBUFO
LDA B
ADA PBUFO
STA FWUP
ADB FWUP
STB
INC DESTINATION AND
SOURCE ADDRESSES THEN JUMP INC Bestimmungs- und Quellenadresse, dann springen
RECALL NEW PBPTO
neues PBPTO zurückrufen
COMPUTE NFT CHANGE Nettoänderung berechnen
IN PROGRAM LENGTH in Programmlänge
STORE NEW END OF MAINLINE , neues Ende der Hauptzeile speichern
UPDATE END OF CURRENT PROGRAM Ende des laufenden Programms aktualisieren
GET KEY DEFINITION FLAG Tastendefinitionsmarke holen
RETURN IF NOT IN KEY DEFINITION zurück, wenn nicht in Tastendefinition
UPDATE KEY LENGTH
Tastenlänge aktualisieren
UPDATE MAINLINE PBUFF Hauptzeilen-PBUFF aktualisieren
UPDATE END OF KEY AREA POINTER Ende der Tastenbereichs-Hinweismarke aktualisieren
RET
CHECK FOR PROGRAM SPACE OVERFLOW Programmraumüberfüllung prüfen
(A)= NEW WORD REQUIREMENT neues Wort verlangt 04625 025426 OVCHK LDB PBPTO
04626 035475
04627 031711 SET SOURCE ADDRESS Quellenadresse setzen
STB TEMP2 FOR PROGRAM RELOCATION
für Programmrückplazierung
STA DFLAG SAVE COUNT Zählung sichern
309 8 8 4/1370
04630 2333908 ADB VU
2945 O4631 O7OO37 STB A
2946 04632 O35477 ADA TEMP 4
2947 04633 OO1426 TCB PBPTO
2948 04634 O74O76 ADB
2949 04635 OO54O7 SBP SYMTP
2950 O4636 O74113 JMP *+2
2951 O4637 064561 LDB F SCE 4
2952 04640 025711 JMP DFIiAG
2953 O666O6 CLPR2
SET DESTINATION
ADDRESS Bestiinmungsadresse setzen
COMPUTE NEW END OF MAINLINE neues Ende der Hauptzeile berechnen
ENOUGH SPACE FOR
PROGRAM genug Platz für Programm
BUFFER: SKIP IF YES
Puffer: überspringen, wenn ja
NO, SYNTAX OVERFLOW nein, Syntaxüberfüllung
RECALL COUNT Zählung zurückrufen
30988 W1370
63 2333908 m O61O55 SCRAT JSM GNEXT
Seite 9830—SYSTEM CO
Systembef
000154 ADA M64
2955+ O1OO12 CPA .1
2956* O66ÖOO JMP ENTRY
SCRATCH SYSTEM COMMAND O1OO27 CPA .11
2957* Einschreib-Systembefehl 066652 JMP SCRA
2958 - 010035 CPA .22
2959 O4641 066035 JMP KILLV
2960 04642
2961 04643
2962 04644
2963 04645
2964 O4646
2965 04647
04650
2966
04651 066031
JMP KILLP
04652 061225 SCRK JSM LDEF
2968 04653 O63711 JSM DCOMP JSM GETAD
2969 04654 020166 LDA FWAM STB TEMP 3
2970 04655 025405 LDB FWUP JSM DCOMA,I
2971 04656 164254 JMP XSCRA,I LDB TEMP 3
2972* JSM CLPR1
2973*
2974*
DELETE SYSTEM COMMAND
Herausnahme-Systembefehl
JMP RDYPT-1
2975 04657 060730 DELET
2976 04660 035476
2977 04661 16O242
2978 04662 025476
2979 04663 062575
2980 O4664 O66O36
2981*
GET NEXT CHAR
nächstes Zeichen holen
YES, SCRATCH ALL ja, alles einschreiben
YES. SCRATCH KEYS ja, Tasten einschreiben
YES, SCRATCH VARIABLES ja. Variablen einschreiben
OTHERWISE SCRATCH PROGRAM anderenfall Programm einschreiben
INSURE NOT IN KEY MODE vergewissern, daß nicht in Tastenbetrieb
SCRATCH ALL KEYS alle Tasten einschreiben
GET ADDRESSES Adresse holen
SAVE SOURCE ADDRESS Quellenadresse sichern
DECOMPILE dekompilieren
CLCSE UP PROGRAM Programm abschließen
RE INITIALIZE initialisieren
30988 U/137D
2982+ RENUMBER SYSTEM COMMAND
Neunumerierung-Systembefehl
2983 + 04665 162733 RENUM JSM GETI
2984 04666 O2OO61 LDA .10
2985 04667 024061 LDB .1O
2986 04670 O3147O STA L2T1
2987
2988 04671 035471
2989 04672 0636*75
STB L2T2 JSM COMPL
2990 04673 025471 LDB L2T2
2991 . 04674 O3543O STB LNINC
2992 04675 024133 LDB M2
2993 04676 035471 STB L2T2
2994 04677 021470 RENM1 LDA L2T1
2995 04700 031427 STA .LNUM
2996 04701 025424 LDB PBUFF
2997 O47O2 035472 RENM2 STB TEMPS
2998 04703 015423
2999 04704 06720
3000 04705 121472
3001 04706 070610
3002 04707 050062
3003 04710 041427
3004 04711 024132
3005 04712 015471
3006 04713 131472
CPB PBPTR
JMP RENM4 LDA TEMPS,I SZA RENM4+2
AND FLGBT IOR .LNUM
LDB M1 CPB L2T2 GET OPTIONAL PARAMETERS Wahlparameter holen
SAVE STARTING LINE NUMBER Startzeilenzahl sichern
SAVE INCREMENT Zunahme sichern
CONVERT AT ADDRESS FORMAT Adressenformat konvertieren
SET LINE INCREMENT Zeilenzuwachs setzen
SET FLAG Marke setzen
FOR 1ST PASS
für ersten Durchgang
SET STARTING
LINE NUMBER Startzeilenzahl setzen
INITIALIZE PROGRAM
POINTER
Programm-Hinweismarke initialisieren
END OF PROGRAM Programm Ende
YES j a
SKIP IF TYPING AID überspringen, wenn Druckhilfe
GET SECURITY BIT Sicherheitsbit holen
MERGE IN NEW LINE *"
in neues Zeilen #" mischen
SECOND PASS? zweiter Durchlauf?
STA TEMPS,I YES, STORE NEW LINE U
ja, neues Zeilen # speichern
3007 04714 O25472 RENM3 LDB TEMPS
04715 06107
3009 04716 062723
3 09884/1370
JSM MEXTA
JSM INCLN COMPUTE ADDRESS Adresse berechnen
OF NEXT LINE
der nächsten Zeile
NO, INCREMENT .LNUM nei'o f Zuwachs .LNUM
3010
04717 066702 JMP RENM2
9830—SYSTEM COMMANDS Systembefehle
3011 3012 3013
3014* 3015* 3016* 3017 3018 3019
3020 3021
3022 3023
3024
3025 3026* 3027*
3028* 3029 3030
303 2
04720 045471 RENM4 ISZ L2T2
04721 066677
04722 066036
JMP RENM1
FIRST PASS?
erster Durchgang
YES,. NOW DO SECOND PASS ja, nun zweiter Durchgang
JMP RDYPT-1 DECOMPILE AND RETURN
dekomilieren und zurück
INCREMENT LINE NUMBER Zeilenzahl vergrößern
04723 O2143O INCLN LDA LNINC
04724 001427 ADA .LNUM
04725 031427 STA .LNUM
04726 000161
04727 070452
04730 070742
04731 O3143O
04732 06426
ADA MAXSN SAM INCLR
SAR STA LNINC
JMP SYE25 UPDATE LINE NUMBER Zeilenzahl aktualisieren
GREATER THAN 9999? größer als 9999?
RETURN IF LESS THAN 9999 zurück, wenn kleiner als 9999
SET TO MANUAL
auf manuell stellen
JUMP TO IMPROPER INTEGER ERROR auf unrichtigen Ganzzahl fehl er springen
04733 003647 GETLA DEF GETLN
INITIALIZE PROGRAM POINTERS Programm-Hinweismarken initialisieren
04734 O254O5 SCRP
04735 035424
04736 035423
04737 035426
LDB FWUP STB PBUFF STB PBPTR STB PBPTO
04740 170402 INCLR RET 0988 4/1370
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
3035* 3036+
3037 + 3038+
3052 3053
3054
3055 3056
3057 +
3058 +
3059 + 3060
RUN SYSTEM COMMAND Systembefehl laufen lassen
(A) = STARING LINE NUMBER Startzeilenzahl
303 9 04741 031725 RUN STA NXTST
3040 Ο4742 060645 JSM MINIT
304 t 04743 070742 SAR 16
3042 04744 031455 STA FORMT
3043 04745 031432 STA DRQST
3044 Ο4746 020012 LDA .1
3045 Ο4747 031434 STA UNITS
3046 Ο475Ο Ο21424 LDA PBUFF
3047 Ο4751 011423 CPA PBPTR
3048 Ο4752 164174 JMP RDYDA,I
3049 04753 125424 LDB PBUFF,I
3050 04754 075710 SZB +-2
Ο4755 031421
Ο4756 021405 Ο4757 031730
Ο476Ο 045412
04761 Ο2Ο132 Ο4762 Ο31416
STA PRADD
LDA FWUP STA COML
ISZ LSTPT
LDA M1 STA MODE SAVE STARTING LINE NUMBER Startzeilenzahl sichern
SCRATCH OLD SYMTAB alte SYMTAB eins hreiben
CLEAR THE FORMAT FLAG Formatmarke löschen
SET TO RADIANS auf Radians setzen
NULL PROGRAM? Nu11-Programm?
YES ja
TYPING AID KEY? Druckhilfetaste?
INITIALIZE PROGRAM POINTER Prograirim-Hinweismarke initialisieren
INITIALIZE COMMON POINTER gemeinsame Hinweismarke initialisieren
SET L-STACK POINTER = PBPTR L-Stapelspeicher-Hinweismarke= PBPTR setzen
FLAG ERROR ROUTINE Markenfehler-Routine
TO SCRATCH SYMTAB zum SYMTAB-Einschreiben
SKIP TO BEGINNING OF NEXT STATEMENT zum Beginn der nächsten Anweisung springen
Ο4763 025421 MSKIP LDB PRADD
30988A/1 370
3061 04764 021407 LDA SYMTP
3062 04765 015423 CPB PBPTR
3063 04766 067122 JMP MILOP
3064 04767 063601 JSM NXTOP
3065 04770 066763 JMP MSKIP
3066 04771 067106 JMP MLOP 2
3067 04772 031473 MSTND STA MBOX1
3068 04773 024132 LDB M1
3069 04774 035474 STB MBOX1+1
3070
3079
308o
3081
3082+
3083*
3084
04775 063234
JSM FNTYP
3071 04776 067106 MLOP 7 JMP MLOP 2
3072 04777 O2O132 LDA M1
3073 05000 025731 MLP 7 2 LDB TYPE
3074 05001 014020 CPB MDMA
307 5 05002 074742 SBR 16
3076 05003 014017 CPB MCOMA
3077 05004 067112 JMP MLP 71
3078 05005 070153 SAP *+3
05006 076150
05007 O67O17
05010 076310
RZB MLOP5
JMP MLOP8 RZB ML2L GET POINTER FOR MILOP Hinweismarke für MILOP holen
END OF PROGRAM?
Programmende?
YES ja
FETCH 1ST OPERAND IN NEXT
STATEMENT
1. Operanden in nächster Anweisung abrufen
END OF STATEMENT
Anweisung Ende
INTEGER, SKIP IT
Ganzzahl, überspringen
VARIABLE OPERAND, SAVE IT Variablen-Operand, sichern
INITIALIZE DIMENSIONS TO UNDEFINED
Dimensionen zu Undefinierten initialisieren
FIND OPERAND TYPE Operandentyp auffinden
FUNCTION Funktion STRING
DIM?
YES, SET (B) = O
ja, (B)=O setzen
COM?
SKIP IF SIMPLE VARIABLE überspringen, wenn einfache Variable
ARRAY, SKIP IF NOT DIM OR COM Feld, überspringen, wenn nicht DIM oder COM
SKIP IF NOT DIM OR COM überspringen, wenn nicht DIM oder COM
PROCESS VARIABLE Variable verarbeiten
05011 063306 ML0P5 JSM SSYMT+1 SEARCH SYMBOL TABLE
Symboltabelle suchen
30988 A /1370
233390a
3085 3086 3087 3088 3089 3090+
05012 067043
05013 021731
05014 O1OO17
05015 067037
JMP MLOP9 LDA TYPE CPA MCOMA
JMP MER5
05016 067106 ML2L JMP ML0P2
COM OR DIM NOT FOUND nicht gefunden FOUND gefunden
COM STMT?
COM-Anweisung?
YES, DOUBLE DEFINITION ja, Doppeldefinition
NO, PROCESS NEXT WORD
nein, nächstes Wort verarbeiten
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
3O91# 3092 3093 3094 3095 3096 3097 3098
3099 3100 3101
(A)=-1 FOR 1 DIM OR STRING, -2 DIM für 2 DIM 05017 045472 MLOP8 ISZ TEMPS
05020 045472 ISZ TEMPS
05021 125472 LDB TEMPS,I
05022 004132
05023 O744O4
05024 010132
05025 067032
05026 045472
05027 045472 05030 105472
3102 05031 OO4132
3103 0503 2 035474
3104 05033 O633O6
3105 05034 067043
3106 05035 004132
3107 05036 074637
3108 05037 062360
ADB M1
SBL 8
CPA M1
JMP *+5
ISZ TEMPS
ISZ TEMPS
ADB TEMPS,I
ADB M1 READ FIRST DIMENSION erste Dimension lesen
OFFSET BY 1
um 1 versetzen
PLACE IT IN LEFT HALF WORD in linkes Halbwort plazieren
2 DIMENSIONS
2 Dimensionen
NO, SET SECOND DIM TO
nein, 2. Dimension auf 1 setzen
ADD SECOND DIMENSION INTO
RIGHT HALF
2. Dimension in rechte Hälfte
addia^sn
OFFSET SECOND DIM 2. DIM versetzen
STB MB0X1+1 STORE PACKED DIMENSIONS
gepackte Dimensionen speichern
JSM SSYMT+1 SEARCH SYMBOL TABLE Symboltabelle suchen
JMP ML0P9 NOT FOUND nicht gefunden
ADB M1 FOUND, (B)=ADDRESS
gefunden, (B)=Adresse
ISZ B,I ALREADY DIMENSIONED? schon dxmnsioniert?
YES
33.
309884/ 1370
2333303
31 09 05040 021474 LDA MBOX1+1 STORE DIMENSIONS
Dimensionen speichern
31 10 05041 074557 STA B,I
31 11 05042 067106 JMP MLOP 2
31 12* ENTER NEW SYMBOL INTO TABLE
3113
3135
Neues Symbol in Tabelle eingeben
05043 063404 ML0P9 JSM ESYMT ENTER INTO SYMBOL TABLE in Symboltabelle eingeben
31 14 05044 021731 LDA TYPE COM STMT?
COM-Anwe i sung ?
021473 MC0M1 LDA SAP MBOX1 SET SIGN BIT IN
31 15 05045 010017 CPA MCOMA YES ja 072053 STA ■-M-1 , S SYMBOL TABLE TO
31 16 05046 067050 JMP MCOM1 NO nein 074557 B,I INDICATE COM
31 17 05047 067106 JMP MLOP 2 ALLOCATE SPACE FOR COMMON VARIABLE
Raum für allgemeine Variable zuweisen
31 18* 05050
31 19 05051
31 20 05052
31 21
31 22 05053 025474
31 23 05054 063257
31 24 05055 025730
31 25 05056 074017
31 26 05057 031730
31 27 05060 021424
31 28 05061 045422
31 29 05062 055422
31 30 05063 021425
31 31 05064 070056
31 32 05065 001730
31 33 05066 070112
31 34 05067 062360
Vorzeichen-Bit setzen in Symboltabel e um gemeinsam anzuzeigen
LDB MB0X1+1 RECALL DIMENSIONS
Dimensionen zurückrufen
COMPUTE NUMBER OF WORDS NEEDED Zahl der benötigten Worte berechnen
GET OLD COMMON POINTER
alte gemeinsame Hinweismarke
holen
05070 021474
JSM MDIM LDB COML
ADA B
STA COML
LDA PBUFF ISZ UKPTR DSZ UKPTR LDA PBUFO
CMA
ADA COML SAM *+2 JSM MERR YES, TOO MUCH COMMON IN KEY
ja, zu viel Gemeinsames in Taste
LDA MB0X1+1 READ DIMENSIONS Dimensionen lesen 09884/1370
UPDATE COMMON POINTER gemeinsame Hinweismarke aktualxsieren
KEY MODE? Tastenbetrieb?
YES, GET FIRST WORD OF MAINLINE ja, erstes Wort der Hauptzeile holen
MAXIMUM COMMON EXCEEDED? größtes Gemeinsames überschritten
3136
O5O71 010132
CPA M1
3137 05072 067103 JMP MC0M2
3138 05073 074557 STA B,I
3139 O5O74 074070 SIB .++1
3140 05075 021473 LDA MBOX1
3141 O5O76 070206 RAR 5
3142 O5O77 070212 SAM MC0M2
3143 051OO 021474 LDA MBOX1+1
3144 05101 074557 STA B,I
3145 05102 074070 SIB ++1
SIMPLE VARIABLE? einfache Variable?
YES ja
STORE FORMAL DIMENSIONS Formaldimensionen speichern
IF BIT 4=1, IT MUST
BE A STRING VARIABLE wenn Bit 4= 1, muß es eine STRING-Variable sein
NO, MUST BE AN ARRAY nein, muß im Feld sein
STORE ACTUAL DIMENSIONS aktuelle Dimensionen speichern
POINT TO FIRST VARIABLE OF ARRAY auf erste Variable des Feldes zeigen
3146
05103 021407 MC0M2 LDA SYMTP
Seite 47 67 05104 070070
31 48 O51O5 070577
31
3149
31 5O
31 51
31 52
31 53 +
31 54
31 55
31 56
31 57
31 58
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
SIA STB A,I
O51O6 063 620 MLOP2 JSM NXTP1
O51O7 066763
05110 067106
05111 066772
JMP MSKIP
JMP MLOP2
JMP MSTND STORE ADDRESS IN SYMTAB Adresse in SYMTAB speichern
get NEXT OPERAND OF STMT nächsten Operanden der Anweisung holen
END OF STMT
Anweisung Ende
INTEGER, SKIP IT Ganzzahl, überspringen.
VARIABLE OPERAND variablen-Operand
CHECK FOR LEGAL COM auf erlaubtes COM prüfen
05112 1254 24 MLP71 LDB PBUFF,I
05113 074073 SBP #+1,C
05114 015427 CPB.LNUM
05115 067002
05116 164330
IS THIS THE FIRST LINE? ist dies die erste Zeile?
JMP MLP7 2 YES ja
JMP E30+3,I NO, MISPLACED COM
nein, falsch plaziertes COM
3159#
3098ΠΑ/137Π
2 3 3 Z j n
316O=C 3161 + 3162+
3177 + 3178+
3182+
MFASE PART TWO Teil 2
MOVE SYMTAB TO LOW MEMORY
SYMTAB zum tiefen Speicher bewegen
05117 070537 M5L0P LDB A,I MOVE SYMBOL 05120 135412
STB LSTPT,I TABLE WORD
SymboLtafel Wort bewegen
05121 045412
ISZ LSTPT
05122 011406 M1L0P CPA VALUE
Ο5123 Ο67125
05124 073570
05125 070742
05126 031427
Ο5127 Ο25412 05130 020062
O513-1 074557
05132 015406
05133 067135 Ο5134 077670
JMP ++2 RIA M5L0P
SAR
STA .LNUM
LDB LSTPT LDA FLGBT
STA B,I CPB VALUE
JMP ++2 RIB +-3 INC DESTINATION POINTER INC-Bestimmungs-Marke
ALL OF TABLE MOVED? gesamte Tabelle bewegt?
YES ja
INC SOURCE POINTER INC-Quellen-Hinweismarke
CLEAR LINE T
Zeilen # löschen
SET ALL PROSPECTIVE
setzen alle voraussichtlichen
VALUE TABLE WORDS Werttabellen-Worte
TO UNDEFINED VALUE auf Undefinierten Wert
DURING THIS SECTION USE LSTAK AS SYMTAB POINTER AND HSTPT AS VALUE TABLE'POINTER
während dieses Abschnitts LSTAK als SYMTAB-Hinweismarke und HSTPT als Werttabellen-Hinweismarke benutzen
05135 035413
05136 021412
05137 031410
STB HSTPT
LDA LSTPT STA LSTAK INITIALIZE VALUE TABLE POINTER
Werttabellen-Hinweismarke
initialisieren
INITIALIZE SYMBOL TABLE POINTER
Symboltabellen-Hinweismarke
initialisieren
0014O 025410 M2L0P LDB LSTAK
05141 015426 CPB PBPTO
05142 067216 JMP M4L0P
05143 055410 DSZ LSTAK
MORE SYMBOLS?
NO nein
mehr Symbole?
YES, MOVE TO NEXT SYMBOL
ja, zum nächsten Symbol gehen
Q98-1W13
OFHGlNAL INSPECTED
87 051 2 33330a
31 88 051 44 121410
31 89 051 45 055410
31 90 051 46 070233
31 91 051 47 004132
31 50 074557
3192
05151 067140 LDA LSTAK,I READ SYMBOL Symbol lesen DSZ LSTAK SAP *+4,C
ADB M1
STA B7I
JMP M2L0P
DEFINED IN COM? in COM definiert?
YES,CLEAR FLAG ja, Marke löschen
BYPASS ALLOCATION PHASE Beipaß Plazierungsphase
3193 05152 031473 3194 05153 063234
31 95 051 54 067140
31 96 051 55 067160
31 97 051 56 010134
31 98 051 57 062360
31 99 051 60 031474
3200
05161 125410
3 201 051 68 051 62 014132
3202 051 051 63 Ο67Ί65
Seite
3203 64 067173
3 204 65 074742
STA MBOX1 JSM FNTYP
JMP M2L0P JMP *+3
CPA M3
JSM MERR
STA MB0X1+1
LDB LSTAK,I
CPB M1
JMP *+2
NO, SAVE SYMBOL nein, Symbol sichern
FIND VARIABLE TYPE Variablen-Typ auffinden
FUNCTION Funktion STRING
ARRAY OF UNKNOWN DIMENSIONS? Feld von unbekannten Dimensionen YES ja
SAVE TYPE FLAG Typmarke sichern
READ DIMENSIONS Dimensionen lesen
DIMENSIONED? dimensioniert? NO nein
3205
05166 070213
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
JMP M3L0P YES ja
SBR 16 LOAD STD DIM FOR STRING laden für
SAP M3L0P-1 SKIP IF SIMPLE VARIABLE OR
STRING
überspringen, wenn einfache
Variable oder STRING
3206 05167 027233 3 207
05170 010133
3208 05171 004026 3209 05172 135410 LDB B44OO CPA M2
ADB .9
STB LSTAK,I
LOAD STD DIMENSION FOR 1 DIM STD-Dimension für 1 DIM laden
2 DIMENSIONS? 2 Dimensionen?
YES, CORRECT FOR 2 DIMS ja, richtig für 2 DIMS
?. O 9 8 R h / 1 3 7 Ο
O»GI#IAL INSPECTED
2 333908 m 025412
015426
067230
OO4132
LDB LSTPT
CPB PBPTO
JMP ++6
ADR M1
3210
3211
05173
05174
021473 M2L0P
063257
LDA MBOX1
JSM MDIM
3212
3213
05175
05176
070076
025413
TCA
LDB HSTPT
3214 05177 063556 JSM MOVCK+1
3215 05200 021474 LDA MB0X1+1
3216 05201 025413 LDB HSTPT
3217
3218
3219
3220
05202
05203
05204
05205
074070
010076
067211
070353
SIB ++1
CPA B3 6
JMP M6L0P
SAP M6LOP+3
3221
3222
05206
05207
121410
074557
LDA LSTAK,I
STA B,I
3223 05210 074130 SIB ϊ+2
3224 05211 121410 M6L0P LDA LSTAK7I
3225 05212 074557 STA B,I
3226 05213 074070 SIB *+1
3227 05214 135410 STB LSTAK,!
3228
3229+
323O ·
3231
05215 067140 JMP M2L0P
CLEAN UP FOR EXECUTION
Klarmachen für Ausführung
05216 021413 M4L0P LDA HSTPT
05217 031406 STA VALUE
3232
3233
3234
3235
05220
05221
05222
O5223
RECALL SYMBOL zurückrufen
COMPUTE STORAGE REQUIRED erforderliche Speicherung berechnen
MOVE VALUE TABLE POINTER Werttabellen-Hinweismarke bewegen
AND CHECK FOR OVERFLOW und auf Überfüllung prüfen
RECALL TYPE FLAG Typmarke zurückrufen
GET NEW VALUE TABLE POINTER neue Werttabellen-Hinweismarke holen
STRING?
YES ja
SKIP IF SIMPLE VARIABLE überspringen, wenn einfache Variable
GET DIMENSIONS AND STORE
IN VALUE TABLE
Dimensionen holen und speichern in Werttabelle
INC POINTER
INC-Hinweismarke
GET STRING DIMENSIONS STRING-Dimensionen holen
STORE DIMENSION Dimension speichern
IN VALUE TABLE in Werttabelle
STORE VALUE ADDRESS IN SYMTAB Wertadresse in SYMTAB speichern
SET VALUE TABLE POINTER Werttabellen-Hinweismarke setzen
MOVE SYMBOL Symbol bewegen
3 0988W1370
3236 3237 3238 3239 3240 3241
3242 3243+ 3244 3245*
3246* 3247*
3248* 3249*
3250* 3251* 3252* 3253 +
3254+ 3255+
3256* 3257+ 3258*
05224 074517
05225 131413
05226 055413
05227 067221
05230 021413
05231 031407
05232 164004
LDA B,I TABLE BACK Tabelle zurück STA HSTPT,I DSZ HSTPT TO HIGH zum hohen
MEMORY Speicher
JMP M4LOP+3 LDA HSTPT STA SYMTP
SET SYMBOL TABLE POINTER
Symboltabellen-Hinweismarke
setzen
JMP XECA,I MFASE COMPLETE Komplett
05233 004400 B44OO OCT 4400
DETERMINE THE TYPE OF AN OPERAND GIVEN IN (A) Typ eines in (A) gegebenen Operanden festlegen
RETURN P+1: zurück
P+2: P+3:
FUNCTION Funktion
STRING NUMERIC VARIABLE numerische Variable
(A)=POSITIVE IF SIMPLE VARIABLE
positiv, wenn einfache Variable
= -1'IF SINGLE DIM ARRAY
wenn einzelnes DIM-Feld
= -2 IF DOUBLE DIM
wenn Doppel-DIM
= -3 IF UNKNOWN DIM
wenn unbekannte DIM
(B)= 4 IF FULL PRECISION
wenn volle Genauigkeit IF SPLIT PRECISION
—.
= wenn gespaltene Genauigkeit
IF INTEGER wenn Ganzzahl
Q 9 in ' /
7 ff
ORIGINAL WSPECTED
233390a
9830-PRE-EXECUTION PROCESSING -
Vor-Ausführung-Verarbeitung
3259
3260
32.61
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278+
3279*
3280+
3281 +
3282+
3283+
3284+
3285+
3286+
3287+
3288+
05234 050040 FNTYP NAD B37
05235 05236 05237 05240 05241 05242
O1OO76 064357 074742 010040 170402 024021
05243 070146
05244 070171
05245 070546
05246 064356
05247 O7O133
05250 004134
05251 070646
05252 070131
05253 004133
05254 O7O646
05255 070076
05256 064356
CPA B3 JMP RETN2 SBR CPA B37 RET LDB
RAR SLA ++3,C
RAR JMP RETN3 SAP ++2,C ADB M3 RAR SLA ++2,C
ADB M2 RAR
TCA
JMP RETN3 ISOLATE TYPE Typ extrahieren
STRING? YES ja
FUNCTION? Funktion? YES ja
SET TO FULL PRECISION
auf volle Genauigkeit setzen
NUMBERED VARIABLE numerierte Variable
YES ja
INTEGER? Ganzzahl? YES ja
SPLIT PRECISION? gespaltene Genauigkeit
YES ja
RECALL NUMBER OF DIMENSIONS Zahl der Dimensionen zurückrufen
NEGATE negieren
"COMPUTE STORAGE NEEDED BY A VARIABLE von einer Variablen benötigten Speicher berechnen
(A) =SYMBOL.
(B)=PACKED DIMENSIONS FOR ARRAY OR STRING
gepackte Dimensionen für Feld oder STRING
STORAGE NEEDED; STRING = (DIM1+D/2+1 Speicher benötigt
ARRAY=DIMI+DIM2+ # OF WORDS/ELEM +2 Feld von Worten
EXIT (A)=STORAGE NEEDED Ausgang (A)=Speicher benötigt 309884/1370
Afc"
3289 05257 035470 MDIM STB L2T1 FUNCTION (B)=O
3290 05260 063234 JSM FNTYP STRING
3291 05261 067277 JMP MDIM2 ARRAY? Feld
3292 05262 067301 JMP MDIM1
3293 05263 070613 SAP MDIM2 MULTIPLY SECON
zweite Diinensi
3294 05264 021470 LDA L2T1
3295 05265 050105 AND B377 BY THE NUMBER
3296 05266 070070 SIA *+1
3297 05267 061201 JSM IMPY
3298 3299 3300 3301
3302 3303 3304 3305
3306 3307 3308 3309 3310
05270 025470
05271 074342
05272 074070
05273 061201
05274 000017
05275 070153
ren
ELEMENT
um die Zahl der Worte pro
Element
LDB L2T1 SBR8 SIB *+1 JSM IMPY
ADA SAP MDIM2+1
05276 O6236O MER9 JSM MERR
05277 074117 MDIM2 LDA B
05300 170402 RET
05301 074342 MDIM1 SBR
05302 004017 ADB
05303 074002 SBR
05304 077 570 RIB MDIM2
MULTIPLY BY SECOND DIMENSION mit zweiter Dimension multiplizieren
ADD WORDS FOR DIMENSIONS Worte für Dimensionen addieren
GREATER THAN 32K? größer' als 32K?
YES, DIMENSIONS TOO LARGE ja, Dimensionen zu groß
MOVE RESULT TO (A) Ergebnis nach (A)
ADD 2 TO FORMAL DIMENSION
2 zur Formaldimension addieren
DIVIDE BY 2 dividieren durch
INCREMENT AND JUMP erhöhen und springen
9830—PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
3312* 3313* 3314* 3315*
SEARCH SYMBOL TABLE Symboltabelle suchen RETURN, P+1 IF NOT FOUND wenn nicht gefunden
309884/1370
3316*
3317* 3318*
3319* 332O#
3321*
3322* 3323*
3324* 3325* 3326*
3327* 3328 3329
3330 3331
3332 3333 3334
3335
3336 3337
3338 3339
3340
P+2 IF FOUND; ADDRESS IN B
wenn gefunden; Adresse in B
IF BIT 4=1 THEN SYMBOL AND TYPE MUST MATCH EXACTLY wenn Bit 4=1 dann müssen Symbol und Typ exakt passen
AN UNSPECIFIED PRECISION VARIABLE MATCHES A SPECIFIED PRECISION
AND THE SPECIFIED PRECISION IS INSERTED IN THE TABLE eine unspezifizierte Genauigkeitsvariable paßt zu einer spezifizierten Genauigkeit und die spezifizierte Genauig^ keit wird in die Tabelle eingesetzt.
AN ARRAY WITH UNSPECIFIED NUMBER OF DIMENSIONS MATCHES A SPECIFIED ARRAY AND THE DIMENSION NUMBER IS PUT IN THE
TABLE
ein Feld mit unspezifizierter Dimensionszahl paßt zu einem spezifizierten Feld und die Dimensionszahl wird in die Tabelle gegeben
AN INCONSISTENCY IN DEMINSIONS OR PRECISION CAUSES AN ERROR Inkonsistenz in Dimensionen oder Genauigkeit verursacht einen Fehler
05305 031473 SSYMT STA MB0X1
05306 021473 LDA MB0X1
05307 050020
05310 031466
05311 021473
05312 050030
05313 O31467
05314 021473
05315 024112
05316 070146
05317 O7O111
05320 024115
05321 070546
AND STA STMP2
LDA MBOX1 AND STA STMP3
LDA MBOX1
LDB B176O RAR
SLA *+2 LDB B1777
RAR
(A)= SYMBOL TO BE FOUND aufzufindendes Symbol
SAVE SIMPLE/ARRAY TYPE Einfach/Feld-Typ sichern
SAVE PRECISION TYPE Genauigkeitstyp sichern
RECALL VARIABLE Variable zurückrufen
GET MASK TO MASK OFF PRECISION Maske zum Ausblenden der Genauigkeit holen
BIT 4=1?
YES, DONT MASK OFF ANY BITS ja, keine Bits ausblenden
RESTORE VARIABLE Variable zurückstellen
309834/1 370
233390a AND B
3341 O5322 074257 STB MASK
3342 05323 035470 STA STMP1
3343 O5324 031471 CPB B1777
3344 05325 014115 JMP SVALU-1
3345 O5326 067373 JSM SVALU-1
3346 05327 063373 RET
3347 05330 170402 LDA STMP2
3348 05331 021466 SSYM1 RZA SSYM4
3349 05332 072350 LDA B,I
3350 05333 074517 AND .3
3351 05334 050020 SZA SM2L
3352 05335 070410 JSM SVAL1
3353 05336 063402 SSYM6 RET
3354 05337 170402 JMP SSYM1
3355 05340 067331 ARRAY Suche
3356+ SEARCHING FOR AN
3357-f LDA B,I
3358 O5341 074517 SSYM4 AND .3
3359 05342 050020 SZA SSYM6
3360 05343 071550 CPA STMP2
3361 O5344 011466 JMP SSYM2
3362 05345 067361 SM2L CPA .3
3363 05346 010020 JMP SSYM5
3364 05347 067354 LDA STMP2
3365 05350 021466 CPA .3
3366 O5351 010020 JMP SSYM2
3367 05352 067361
MASK Maske
STORE MASK Maske speichern
STORE PART OF SYMBOL TO MATCH Teil des zu vergleichenden Symbols speichern
MUST MATCH WHOLE SYMBOL? muß ganzes Symbol passen?'
YES, .SEARCH AND RETURN FROM SVALU ja, suchen und zurück von SVALU
NO, SEARCH FOR NAME ONLY nein, nur nach Namen suchen NOT FOUND nicht gefunden SEARCHING FOR suchen nach
SIMPLE VARIABLE? einfacher Variablen?
YES, SIMPLE ja, einfache
VARIABLE Variable FOUND? gefunden?
NO, CONTINUE SEARCH nein, Suche fortsetzen
nach Feld
Feld gefunden? Überspringen, wenn ARRAY FOUND? SKIP IF NO nicht
DO DIMENSIONS MATCH? Passen Dimensionen?
YES, NOW CHECK PRECISION ja, nun Genauigkeit prüfen
NO, TABLE VARIABLE UNSPECIFIED? nein, Tabellenvariable unspezifiziert?
YES ja
NO, SEARCH nein, suchen
VARIABLE UNSPECIFIED? Variable unspezifiziert?
YES, OK ja, i.O.
30988^/1370
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
05353 062360 SYME2 JSM MERR
3374*
3375*
3386* 3387*
3388* 3389*
3390*
NO, INCONSISTENT DIMENSIONS nein, inkonsistente Dimensionen
3369 05354 074517 SSYM5 LDA B,I INSERT exnfugen
3370 05355 050135 AND M4
3371 05356 041466 I OR STMP 2 DIMENSION NUMBER
Dimens ions zahl
3372 05357 074557 STA B,I
3373 05360 O67361 JMP SSYM2 INTO TABLE
in Tabelle
PROPER TYPE FOUND, NOW CHECK FOR PROPER PRECISION richtiger Typ gefunden, nun auf richtige Genauigkeit prüfen
05361 O21467 SSYM2 LDA STMP3
05362 O7O35O SZA SSYM3-1
SEARCH VARIABLE UNSPECIFIED? Such-Variable unspezifiziert?
05363 074517
05364 050030
05365 O7225O
05366 O21467
05367 074617 O537O 074557
LDA B,I AND RZA SSYM3
LDA STMP3 IOR B,I STA B,I
NO
nein
TABLE VARIABLE UNSPECIFIED? Tabellenvariable unspezifiziert?
YES ja
INSERT SPECIFICATION IN TABLE Spezifikation in Tabelle einsetzen
05371 O64357 JMP RETN2
05372 062360 SSYM3 JSM MERR
FOUND
gefunden
PRECISION DOUBLY DEFINED Genauigkeit doppelt definiert
SEARCH SYMBOL TABLE FOR A MATCH - (B),1 AND MASK = STMP1 Symboltabelle suchen für einen Vergleich - (B),I und Maske=STMP1
RET P+1 IF NO MATCH FOUND
wenn nichts Passendes gefunden
P+2 IF MATCH FOUND, (B)=ADDRESS
wenn Passendes gefunden, (B)= Adresse
05373 025406
LDB VALUE 05374 015407 SVALU CPB SYMTP
ALL TABLE SEARCHED? Alle Tabellen gesucht?
309884/1370
2333908 RET B,I
3393 05375 170402 LDA MASK
3394 05376 074517 AND STMP1
3395 05377 051470 CPA RETN 2
3396 05400 011471 JMP
3397 05401 064357
3398
3399 3400
3402 3403 3404* 3405*
3406* 3407
3408 3409
3410 3411
3412 3413
3415
3417 + 3418*
3419* 3420
YES, NO MATCH FOUND ja, nichts Passendes gefunden
NO, READ TABLE ENTRY nein, Tabelleneingang lesen
GET THE BITS TO BE COMPARED zu vergleichende Bits holen
MATCH? Paßt?
YES, RET P+2 (B)=ADDRESS ja Adresse
UPDATE TABLE POINTER Tabellenhinweismarke aktuali-
% sieren
05402 004133 SVAL1 ADB m2
05403 067374 JMP SVALU
01470 MASK EQU L2T1
01471 STMP1 EQU L2T2
01466 STMP2 EQU L0CL1
01467 STMP3 EQU L0CL2
ENTER 2 WORDS GIVEN IN MB0X1 AND MB0X1+1 INTO SYMBOL TABLE 2 in MB0X1 und MB0X1+1 gegebene Worte in Symboltabelle eingeben
05404 020133 ESYMT LDA M2
05405 025407
05406 063555
05407 074070 05410 021474
LDB SYMTP JSM MOVCK
SIB *+1 LDA MB0X1+1 MOVE H-STACK
Η-Stapelspeicher bewegen
DOWN BY 2 WORDS um 2 Worte runter
((B)=NEW SYMTP)
TRANSFER WORDS INTO SYMTAB Worte in SYMTAB übergeben
05411 074557 ESYM1 STA B,I
05412 074070 "SIB ++1
05413 021473 LDA MB0X1
05414 074557 STA B,I
05415 170402 RET
ENTER A SIMPLE VARIABLE INTO SYMTAB AND VALUE TABLE eine einfache Variable in SYMTAB und Werttabelle eingeben
05416 021473 ENTER LDA MB0X1
05417 063234 JSM FNTYP
05420 067437 JMP ENTE1 054 21 160206 NINIT JSM ERRA,I FIND OPERAND TYP
Operandentyp auffinden
FUNCTION Funktion
STRING, NOT INITIALIZED nicht initialisieren
30988W1370
3425 3426
3427 3428
3429 3430 3431 3432
3433 3434
3435
3436 3437*
3438* 3439
3440 3441 3442 3443 3444
3445
3447* 3448*
72
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
05422 071752
05423 025406
05424 020137
05425 063555
05426 000135
05427 031474
05430 070137
05431 020062
05432 074557
05433 004133
05434 063410
05435 O354O6
05436 170402
SAM *-1
LDB VALUE LDA M
JSM MOVCK ADA M4
STA MB0X1+1 LDB A LDA FLGBT STA B,I
ADB M
JSM ESYMT+4
STB VALUE RET SIMPLE VARIABLE?
einfache Variable?
YES ja
NO, MOVE SYMTAB AND H-STACK nein, SYMTAB und H-Stapelspeicher
. DOWN BY 6 WORDS um 6 Worte herunter
COMPUTE ADDRESS OF VARIABLE Variablenadresse berechnen
SET TO UNDEFINED
auf Undefiniert setzen
COMPUTE ADDRESS OF
SYMTAB ENTRY AND ENTER Adresse von SYMTAB-Eingang berechnen und eingeben
UPDATE VALUE TABLE POINTER
Werttabellen-Hinweismarke
aktualisieren
SEARCH FOR A FUNCTION NOT FOUND IN SYMTAB nach nicht in SYMTAB gefundener Funktion suchen
05437 025406 ENTE1 LDB VALUE OPEN UP 2 WORD SPACE Zwei-Wort-Raum öffnen
05440 020133
05441 063555
05442 025406
05443 004132
05444 035750
05445 070742
05446 063411
LDA M2 JSM MOVCK LDB VALUE ADB M1 STB YC
SAR JSM ESYM1 SET UP ADDRESS POINTER Adressen-Hinweismarke aktualisieren
INITIALIZE ADDRESS WORD TO O Adressenwort auf O initialisieren
MAKE SYMTAB ENTRY SYMTAB-Eingang machen
SEARCH FOR FUNCTION WHICH HAS O ADDRESS nach Funktion mit 0 Adresse suchen
05447 063513 ENTFN JSM SSTT SAVE PROGRAM POINTERS Programm-Hinweismarken sichern
309884/1370
3450 3451
3452 3453*
3454 3455
3456 3457 3458 3459 3460 3461 3462 3463 3464
3465
3466 3467 3468 3469 3470 3471 3472
3478*
05450 025424
05451 063524
05452 024166
LDB PBUFF JSM SERFN
LDB FWAM SEARCH CURRENT PROGRAM FIRST erst laufendes Programm suchen
NOT FOUND nicht gefunden
SEARCH FIRST LINE OF EACH KEY erste Zeile jeder Taste suchen
05453 O154O5 ENTE3 CPB FWUP
05454 067503
05455 074070
05456 074517
05457 O74O7O
05460 010012
05461 067453
05462 035472
05463 121472
05464 004132
05465 070610
05466 060602
05467 001466
05470 013554
05471 067473
05472 067477
05473 121472
05474 050115
05475 011473
05476 067536
END OF KEY AREA?
Ende des Tastenbereichs?
JMP ENTE5 YES, NOT FOUND
ja, nicht gefunden
SIB *+1
LDA B,I
SIB *+1 CPA .1 NULL KEY? Nulltaste?
JMP ENTE3 YES ja '
STB TEMPS
LDA TEMPS,I
ADB M1 SZA ENTE4+2 TYPING AID* KEY? Druckhilfetaste?
JSM NEXT1-4 NO, GET PAGE AND OP CODE nein, Seite und OP-Code suchen
ADA LOCL1 CPA DEFOP JMP *+2 JMP ENTE4 LDA TEMPS,I AND B1777 CPA MBOX1
JMP SERF1
DEF STMT? YES ja NO nein
IS IT· THE FUNCTION WE WANT? gewollte Funktion?
O5477 025472 ENTE4 LDB TEMPS
05500 004134 ADB M3
05501 074437 ADB B,I
YES
NO
nein
FIND NEXT KEY
nächste Taste auffinden
05502 0674 53 JMP ENTE3
SEARCH MAINLINE LAST letzte Hauptzeile suchen
05503 021422 ENTE5 LDA UKPTR
309884/1370
233390a
9830-PRE-EXECuTION PROCESSING
Vor-Ausführung-Verarbeitung
3480 3481 3482 3483
3484 3485
3486 3487+ 3488+
3489+ 3490 3491 3492 3493 3494 3495 3496 3497 3498 3 4 99 + 35OO+
3501 + 3 502 +
3503 + 3 504 +
3505+
3 506 3 5G7 3 5 G 8
3 509
05504 070250
05505 025426
05506 035423
05507 025425
SZA ENTE6 LDB PBPTO STB PBPTR LDB PBUFO
05510 063524 JSM SERFN
05511 063543 ENTE6 JSM RSTT
KEY MODE? Tastenbetrieb?
YES, SEARCH MAINLINE ja, Hauptzeile suchen
NOT FOUND, UNDEFINED
nicht gefunden, Undefiniert
05512 164337
JMP E40,I
SUBROUTINE TO SAVE PROGRAM POINTERS Unterprogramm zur Sicherung von Programm-Hinweismarken
05513 025421 SSTT LDB PRADD
05514 035741 STB XC+1
05515 025472 LDB TEMPS
05516 035740 STB XC Ο55Ί7 C25427 LDB .LNUM
05520 035742 STB XC+2
05521 025423 LDB PBPTR
05522 035743 STB XC+3
05523 17O4O2 SERFR RET
SUBROUTINE TO SEARCH A PPOGRAM FOR A FUNCTION DEF Unterprogramm zum Suchen eines Programms für eine Funktionsdefinition
(B)-ADDRESS OF FIRST WORD OF PROGRAM Adresse des ersten Programmwortes
RETURN IF NOT FOUND zurück, wenn nicht gefunden
.RETURN TO SECOND RETURN CN STACK IF FOUND,* STORE ADDRESS
IN XC+3,I
zurück zur-zweiten Rückkehr ar,f Stapelspeicher, wenn gefunden; Adresse in XC +3,1 speichern
055 24 03 54 21 ^ERFM STB '9 RI-
05525 C23 554 LZA Z5SI
05526 16024 1 JSM 3Ί'2
SEARCH FCR ZEJ STM" .nach DEF
05527 075613
C P. T
·■: η s -;, o ■
- -S-94 -
3510 05530 121472 SERF1 LDA TEMPS,I
3511 05531 050115 AND B1777
3512 05532 011473 CPA MBOX1
3513 05533 067535 JMP ++2
3514 05534 067525 JMP SERFN+1
3515 05535 055777 DSZ RSPTR
3516 05536 025472 RSTT LDB TEMPS
3517 05537 00413,3 ADB M2
3518 05540 135750 STB YC, I
3519 05541 025750 LDB YC
3520 05542 074070 SIB +-+1
3521 +
3522 05543 021740 LDA XC
3523 05544 031472 STA TEMPS
3524 05545 021741 LDA XC+1
3525 05546 031421 STA PRADD
3526 05547 021742 DEFOP LDA XC+2
3527 05550 031427 STA .LNUM
3528 05551 021743 H-STACK DOWN LDA XC+3
3529 05552 031423 STA PBPTR
3530 05553 170402 RET
3531 +
3532 05554 011774 OCT 11774
3533 +
3534 + MOVE AND CHECK Fi
YES ja
IS IT THE FN WE WANT? gewollte Funktion?
YES ja
FOUND, DINK RETURN OFF STACK gefunden, DINK zurück aus Stapelspeicher
STORE ADDRESS IN SYMTAB Adresse in SYMTAB speichern
GET SYMBOL TABLE ADDRESS Symboltabellenadresse holen
RESTORE PROGRAM POINTERS Programm-Hinweismarken zurückstellen
Η-Stapelspeicher abwärts bewegen und auf überfüllung prüfen
3535+
309884/1370
983O-PRE_EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
3536+ 3537*
3538* 3539 3540
3541 3542
3543 3544
3545 3546
3547 3548 3549
3550 3551 3552 3553 3554
3559* 3560*
3561*
MOVE DOWN -(A) WORDS abwärts um - (A) Worte
(B)=ADDRESS OF LAST WORD MOVED
Adresse des letzten bewegten Wortes
05555 074070 MOVCK SIB ++1
05556 031726
05557 035466
05560 001413
05561 070137
05562 060555
05563 070137
05564 021413
05565 035413
05566 035727
STA MBIN1
STB L0CL1
ADA HSTPT
LDB A SAVE SPACE REQUIREMENT Raumerfordernis sichern
SAVE LAST WORD + 1 letztes Wort +1 sichern
COMPUTE NEW HSTPT neues HSTPT berechnen
JSM BHSTP+2 CHECK FOR OVERFLOW
auf Überfüllung prüfen
LDB A LDA HSTPT
STB HSTPT STB MBIN2
05567 011466 M0VC1 CPA L0CL1
05570 067575
05571 070537
05572 135727
05573 045727
05574 073570
JMP MOVC2 LDB A,I STB MBIN2,I ISZ MBIN2 RIA MOVC1
05575 025407 M0VC2 LDB SYMTP
05576 005726 ADB MBIN1
05577 035407 STB SYMTP
GET OLD HSTPT
altes HSTPT holen
STORE NEW HSTPT
neues HSTPT speichern
STORE SOURCE POINTER Quellen-Hinweismarke speichern
ALL WORDS MOVED?
alle Worte bewegt? ,
YES ja
MOVE bewegen
WORD Wort
UPDATE POINTERS
Hinweismarken aktualisieren
UPDATE SYMBOL TABLE POINTER Symboltabellen-Hinweismarke aktualisieren
05600 170402 NXTPR RET
ROUTINE TO FETCH THE NEXT OPERAND FROM THE PROGRAM TEMPS POINTS TO DURRENT WORD OF CODE; PRADD POINTS TO END OF LINE
CONSTANTS; STRING CONSTANTS; NON-RESEQUENCEABLE INTEGERS ARE
SKIPPE
Routine zum Abrufen des nächstenOOperanden vom Programm. TEMPS zeigt auf laufendes Wort des Codes; PRADD zeigt auf Zeilenend-Konstanten; STRING-Konstanten; nicht rückfolgebare Ganzzahlen sind übersprungen.
30988Λ/ 1 370
3562* 3563*
3564* 3565
EXIT P+1: END OF LINE Zeilenende
3574*
3581 + 3582+
P+2: RESEQUENCABLE INTEGER FOUND
ruckfolgebare Ganzzahl gefunden
P+3: VARIABLE OPERAND FOUND
variabler Operand gefunden
05601 060572 NXTOP JSM NEXTL-2 COMPUTE END OF CURRENT LINE
Ende der laufenden Zeile berechnen
05602 005466
05603 007772
05604 035731
ADB L0CL1 ADB MREM STB TYPE
05605 055472
05606 121472
05607 050107
05610 073410
05611 067620
DSZ TEMPS LDA TEMPS,I AND B1000
RZA NXTPR JMP NXTP1 ADD OP-CODE AND CONSTANT TO PAGE TO GET
UNIQUE VALUE FOR STATEMENT
TYPE
Konstante zur Seite, um eindeutigen Wert für Anweisungstyp zu holen
GET ASCII FLAG ASCII-Marke holen
ASCII?
SIB ^-1 LENGTH OF
SBL 8 STRING
SBR 9 STRING-Länge
SKIP TO
ADB TEMPS END OF CONST
STB TEMPS
PROCESS A STRING CONSTANT STRING-Konstante verarbeiten
05612 125472 NXTP2 LDB TEMPS7I COMPUTE rechnen
05613 074070
05614 074404
05615 074402
05616 005472
05617 035472
überspringen bis Kostantenende
PROCESS NEXT WORD: RE-ENTER ROUTINE HERE AFTER
PROCESSING A VARIABLE OPERAND
nächstes Wort verarbeiten: Hier wider Routine eingeben nach Verarbeitung eines variablen Operanden
05620 045472 NXTP1 ISZ TEMPS SET TO NEXT WORD
auf nächstes Wort setzen
END OF CURRENT STMT?
Ende derlaufenden Anweisung?
YES ja
READ CURRENT WORD laufendes Wort lesen
SKIP IF SIGN BIT SET überspringen, wenn Vorzeichen-Bit aesetzt
3584 05621 021472 LDA TEMPS
3585 05622 011421 CPA PRADD
3586 05623 170402 RET
3587 05624 070517
M
LDA A, I
3588 05625 070452 SAM NXTP 3
'< O 9 8 ß W 1 3 7 Π
8%
3589 05626 050065
3590 05627 010116
05630 067612
AND OPMSK CPA QTOP
JMP NXTP2 QUOTE OPERATOR?
Quotenoperator?
YES, PROCESS STRING CONSTANT ja, STRING-Konstante verarbeiten
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
05631 010065
CPA OPMSK
3593 05632 067620 NXT1L JMP NXTP1
3594 05633 060771 JSM GTOPP
3595 05634 071210 SZA NXTP1
3596 05635 064356 JMP RETN 3
3597.+
3598
MULTI-CHARACTER-NON-FORMULA
OPERATOR?
Viel-Zeichen-nicht-Formel-Operator?
YES, NO OPERAND IN THIS WORD ja, kein Operand in diesem Wort
GET OPERAND
Operand holen
SKIP IF NULL
überspringen, wenn Null
RETURN TO P+3 WITH OPERAND IN
zurück nach P+3 mit Operand in
(A)
PROCESS WORD WITH SIGN BIT SET
Wort mit gesetztem Vorzeichenbit verarbeiten
05636 050106 NXTP3 AND B777
3599 05637 070137 LDB A
3 600 05640 050040 AND B37
3601 05641 010021 CPA .4
3602 05642 067654 JMP NXTP 4
3603 05643 0713 50 SZA NXT1L
3 604 05644 000135 ADA M4
3605 05645 071253 SAP NXT1L
3606 05646 074202 SBR • 5
3 607 05647 004022 ADB . 5
3 608 05650 074042 SBR 2
GET TYPE AND CHARACTER COUNT IF CONSTANT
Typ- und Zeichenzählung holen, wenn Konstante
ISOLATE THE TYPE
Typ extrahieren
RESEQUENCABLE INTEGER? rückfolgbare Ganzzahl?
YES ja
SKIP IF PARAMETER
überspringen, wenn Parameter
SKIP IF PARAMETER OR FUNCTION COMPUTE NUMBER OF
WORDS TO SKIP IF
CONSTANT
Zahl der zu überspringenden Worte berechnen, wenn Konstante
309884/137
2333903
3609 05651 010132 CPA M1 INTEGER? Ganzzahl?
3610 05652 024012 LDB .1 YES, SKIP 1 WORD
ja, 1 Wort überspringen
3611 05653 067616 JMP NXTP1-2
3612 05654 045472 NXTP4 ISZ TEMPS READ THE
3613 05655 121472 LDA TEMPS,I INTEGER
die Ganzzahl lesen
3614 05656 064357 JMP RETN 2 RETURN TO P+2 WITH INTEGER IN
(A)
zurück nach P+2 mit Ganzzahl
in (A)
ROUTINE TO FIND ALL RESEQUENCABLE LINE NUMBER REFERENCES IN A PROGRAM Routine zum Auffinden aller rückfolgebaren Zeilenzahl-Referenzen in einem Programm
EXIT: P+1 END OF PROGRAM FOUND Programmende gefunden
3618 05657 067620 JMP NXTP1 NO nein STA PRADD LINE NUMBER
Zeilenzahl
END OF PROGRAM? Programmend
3619* (A)=LINE NUMBER Zeilenzahl LDA A,I YES ja
3620+ (TEMPS)=ADDRESs OF ]
Adresse der
SZA SAVE STARTING ADDRESS
Startadresse sichern
NO, CONTINUE SEARCH
nein, Suche fortsetzen
3621* LDA TYPING AID KEY?
Druckhilfetaste?
END OF STATEMENT
Ende der Anweisung
3622 05660 031421 FNDAD CPA FNDA2+2 RETURN IF YES
zurück wenn ja
LINE NUMBER FOUND
Zeilenzahl gefunden
3623 05661 070517 RET PRADD CONTINUE SEARCH Suche fort
setzen
3624 05662 070150 JSM PBPTR
3625 05663 021421 FNDA2 JMP
3626 05664 011423 JMP NXTOP
3627 05665 170402 JSM FNDA2
3628 05666 063601 JMP RETN 2
3629 05667 067663 JMP NXTP1
3630 05670 064357 JMP FNDA2
3631 05671 063620 FNDA1 RETN2
3632 05672 067663 FNDA1
3633 05673 064357
3634 05674 067671
3535*
309884/1370
3636# 3637+ 3638*
3639* 3640
ROUTINE TO CONVERT ALL STATEMENT REFERENCES INTO ADDRESS FORMAT
THE ADDRESS OF A STATEMENT REPLACES THE LINE
NUMBER AND
THE SIGN BIT IS SET
Routine zum Konvertieren aller Anweisungsreferenzen in Adressenformat. Die Adresse einer Anweisung ersetzt die Zeilenzahl und das Vorzeichenbit wird ersetzt.
05675 021424 COMPL LDA PBUFF INITIALIZE TO START OF
05676 063660 JSM FNDAD PROGRAM
zum Programmstart initia
lisieren
3641 05677 170402 RET FIND FIRST LINE P
erstes Zeilen # auffinden
3642 05700 070312 SAM C0MP1
3643 05701 061075 JSM FNDPS
3644 05702 067703 JMP #+1
3645 05703 164343 JMP E45-1,
3646 05704 076053 SBP HH-1 ,S I NOT IN PROGRAM
nicht im Programm
3647 FOUND SET SIGN BIT
gefunden, Vorzeichenbit setzen
9830-PRE-EXECUTION PROCESSING
Vor-Ausführung-Verarbeitung
3648 3649
3650 3651 3652+ 3653*
3654* 3655
05705 135472
05706 063 671 C0MP1 JSM FNDA1
STB TEMPS,I REPLACE LINE NUMBER Zeilenzahl ersetzen
CONTINUE SEARCH Suche fortsetzen
05707 170402 05710 067700
RET
JMP COMPL+3
ROUTINE TO CONVERT ALL STATEMENT REFERENCES INTO LINE FORMAT Routine zum Konvertieren aller Anwwisungsreferenzen in Zeilenzahlformat
05711 025424 DCOMP LDB PBUFF
309884/1370
3656 05712 035415 DCOM1 STB NXTDT
3657 05713 035414 STB DSTRT
3658 05714 070742 SAR 16
3659 05715 031420 STA PARMN
3660 05716 076053 SBP *+1 ,S
3661 05717 063514 DCMP 5 JSM SSTT+1
3662 05720 021421 LDA PRADD
3663 05721 070113 SAP #+2
3664 05722 067750 JMP DCOMF
3665 05723 020166 LDA FWAM
3666 05724 011405 CPA FWUP
3667 05725 067764 DCMP 6 JMP DCMP 4
3668 05726 070070 SIA *+1
3669 05727 070137 LDB A
3670 05730 070437 DCMP1 ADB A,I
3671 05731 070070 SIA *+1
3672 05732 035423 STB PBPTR
3673 05733 063660 JSM FNDAD
3674 05734 067744 DCMP 3 JMP DCMP 2
3675 05735 070233 SAP DCMP3,C
3676 05736 070517 LDA A,I
3677 05737 070073 SAP *+1 ,C
3678 05740 131472 STA TEMPS,I
3679 05741 063671 JSM FNDA1
3680 05742 067744 JMP DCMP 2
3681 05743 067735 JMP DCMP1
3 09884/
RESET DATA POINTERS Daten-Hinweismarken nullstellen
CLEAR PARAMETER NAME Parametername löschen
SET DECOMPILE FLAG Dekompilierungsmarke setzen
SAVE POINTERS
Hinweismarken sichern
ALREADY DECOMPLIED? schon dekompiliert?
YES, DECOMPILE FUNCTIONS ONLY ja, nur Funtionen dekompilieren
END OF KEY. AREA?
Ende des Tastenbereichs?
YES, NOW DECOMPILE MAINLINE ja, nun Hauptzeile dekompilieren
COMPUTE START AND END OF KEY Start und Ende der Taste berechnen
FIND ADDRESS WORDS Adressenworte auffinden
END OF THIS PROGRAM Ende dieses Programms
SKIP IF ALREADY DECOMPILED überspringen, wenn bereits dekompiliert
READ LINE NUMBER
Zeilenzahl lesen
CLEAR SECURE BIT
Sicherheitsbit löschen
STORE LINE^
Zeilen # speichern
FIND NEXT ADDRESS
nächste Adresse auffinden
1370
3682*
3633 3684
3685 3686
3687+
3688
3689 3690
3691 3692 3693
3694 3695 3696 3697
3696 3699
37OC* 3701* 3702 3703
END OF CURRENT PROGRAM
Ende des laufenden Programms
05744 021423 DCMP2 LDA PBPTR
05745 011426 CPA PBPTO
05746 067750
05747 067724
JMP DCOMF JMP DCMP5 END OF MAINLINE? Ende der Hauptzeile?
YES ja
NO, CONTINUE KEYS nein, Tasten fortfahren
DECOMPILE FUNCTIONS IN SYMTAB BY SETTING THEIR ADDRESSES
TO O
Funktionen in SYMTAB durch Setzen ihrer Adressen auf O
dekompilieren
05750 063543 DCOMF JSM RSTT
057 51 02404O DCMF1 LDB B37
05752 035470 STB MASK
05753 035471 STB STMP1
05754 025406 LDB VALUE 057*5 063374 DCMF2 JSM SVALUE
05756 170402
05757 004132 05760 070742 C5761 074557
05762 004132
05763 067755
RET M1
ADB 16
SAR B7I
STA MI
ADB DCl-IFz
JMP
RESTORE PROGRAM POINTERS Programm-Hinweismarken rückstellen
SET UP MASK FOR FUNCTION TYPE Maske für Funktionstyp aufsetzen
SEARCH SYMTAB FOR FUNCTION SYMTAB für Funktion suchen
END OF TABLE Tabellenende
SET ADDRESS TO ZERO Adresse nullstellen
FIND NEXT FUNCTION nächste Funktion auffinden
END OF KEY AREA Ende des Tastenbereichs
05764 021425 DCMP4 .LDA PBUFC
05765 025422 LDB ÜKPTR
9830-PRE-EXECUTION PROCESSING
Vcr-Ausfuhrung-Verarbeitung
3704 05766 076110
3705 05767 021424
RZB *+2 LDA PBUFF KEY MODE? Tastenbetrieb? NO, START OF MAINLINE IS IN
PBUFF
nein, Start der Hauptzeile ist in PBUFF
309884/1370
3706 05770 025426 MDMA LDB PBPTO
3707 05771 067732 MCOMA JMP DCMP 6
3708* MDEFA
3709* MREM
3710 00020 EQU .3
3711 00017 EQU .2
3712 00012 EQÜ .1
3713 05772 164006 ABS 5-137
3714*
3715 05773 000000 BSS 1
GET END OF MAINLINE Ende der Hauptzeile holen
TYPE CODE FOR DIM Typ-Code für DIM
OP-Code 5 auf Standardseite
CHECKSUM WORD *+****+*+# Summenprobe Wort
309884/1370
LIST ROUTINE Listen-Routine
3717* 3718* 3719*
3720* 3721* 3722*
3723* 3724* 3725*
3726*
3728
3730 3731 3732 3733 3734
3738*
THIS SUBROUTINE LISTS ALL OR
A PORTION OF THE PROGRAM.
Dieses Unterprogramm listet das Programm
ganz oder teilweise auf
ENTRY CONDITIONS: Eingangsbedingungen:
(A)= FWA OF LIST
der Liste
(B)= LWA+1 OF LIST
der Liste
PBUFF=FWA OF PROGRAM
des Programms
PBPTR=LWA+1 OF PROGRAM
des Programms
06000 ORG 600OB 06000 031453 LIST STA ARW
06001 035460
06002 074057
06003 066005
06004 061344
06005 021453
STB TMP7
CPA B JMP *+2 JSM CRLF1 LDA ARW SET FLAG FOR LIST
Marke für Liste setzen
SAVE ENDING ADDRESS endende Adresse sichern NULL LIST?
YES ja
Null-Liste
06006 031472 LIST1 STA TEMPS
06007 031476
06010 070742
06011 031432
LIST NEXT LINE
06012 160170 L1
06013 025472
06014 015460
06015 170402
STA TMP11
SAR STA DRQST
nächste Zeile JSM CLERA,I LDB TEMPS CPB TMP7 . RET SAVE STARING ADDRESS startende Adresse sichern
SET FLAG FOR BLANK AFTER MCOUT Marke für Leerstelle nach MCOUT setzen
CLEAR INPUT MODE Eingabebetrieb löschen
auflisten
CLEAR BUFFER Puffer löschen
FINISHED? fertig? YES ja
309884/1370
3759*
376O*
3761* 3762
JSM LISTS NO, PUT NEXT LINE IN BUFFER
nein, nächste Zeile in Puffer geben
UP OR DOWN ARROW?
Aufwärts- oder Abwärtspfeil?
YES ja
GUARANTEE ROOM FOR LAZY-T Raum für LAZY-T garantieren
OUTPUT LAZY-T Ausgang LAZY-T
LDB ARW
RZB L1OO
LDA .31
ISZ PEND
JSM ONEXT
06016 062036
06017 025453
06020 076350
06021 020040
06022 045623
06023 061016
06024 020132
06025 031430
06026 165462
06027 060373 L100
06030 061337
06031 061344
06032 021442
06033 010040
06034 167517
06035 066012
SUBROUTINE TO PUT NEXT LINE IN BUFFER
Unterprogramm zur Eingabe der nächsten Zeile in Puffer
LDA M1 FLAG REED FOR LIST
REED-Marke für List
I COMPUTE COUNT
Zählung berechnen
STA LNINC OUTPUT TO PRINTER
Ausgang an Drucker
JMP REEDL,
JSM ICNT
JSM NDWRT STOP KEY HIT?
Stoptaste gedrückt?
JSM CRLF1 I YES, ABORT
j a, Abgang
LDA STPFL
CPA .31
JMP CRC1A,
JMP L1
06036 06037
06040 06041
Ο6Ο42 06043
Ο6Ο44 06045
061007 LISTS JSM NEXTA 035475 STB TMP10
020236 031623
125472 074073
035431 076650
LDA SLEND STA PEND
LDB TEMPS,I
SBP
,C
06046 020100
STB CLINE RZB LLL
LDA B52 FIND END OF LINE Zeilenende auffinden
SAVE END OF STMT Anweisungsende sichern
SET END OF BUFFER POINTER Ende der Puffer Hinweismarke sichern
CLEAR SECURE BIT Sxcherheitsbit löschen
TYPING AID KEY? Druckhilfetaste?
YES, OUTPUT AN + ja, Ausgang ein *
30988 4/1370
3771 06047 061016 JSM ONEXT
3772 06050 025460 LDB TMP7
-; η Q g ?> z> / ι 3 7 0
LIST ROUTINE Listen Routine
3773 06051 035475 STB TMP10
3774 06052 055472 DSZ TEMPS
3775 06053 121472 LDA TEMPS,I
3776 06054 000133 ADA M2
3777 06055 070744 SAL 1
3778 06056 025472 LDB TEMPS
3779 06057 004017 ADB .2
3780 06060 074744 SBL 1
3781 06061 066276 JMP L28-3
SET UP END OF LINE POINTER Ende der Zeilenhinweismarke aufsetzen
GET CHARACTER COUNT Zeichenzählung holen
GET STARTING ADDRESS Startadresse holen
OUTPUT STRING Ausgang STRING
3782* OUTPUT STMT NUMBER AND TYPE
Ausgangsanweisung Zahl und Typ
3783 06062 160210 LLL JSM OUTIA,I SECURE? sicher?
3784 06063 061015 JSM OBLNK YES, OUTPUT A "#"
ja, Ausgang ein "#"
3785 06064 121472 LDA TEMPS,I
3786 06065 070213 SAP *+4
3787 06066 020100 LDA B52 NO, GET PAGE AND TYPE
nein, Seite und Typ holen
3788 06067 061016 JSM ONEXT STORE LAST ADDRESS OF PAGE
letzte Adresse der Seite
speichern
3789 06070 066277 JMP L28-2
3790 06071 060602 JSM NEXT1-4
3791 06072 035474 STB TMP 9
3792 06073 055472 DSZ TEMPS GET ASCII FLAG
ASCII-Marke holen
3793 06074 121472 LDA TEMPS,I
3794 06075 045472 ISZ TEMPS RECALL OP CODE zurückrufen
3795 06076 050107 AND B1000 IMPLIED LET?
impliziertes LET?
3796 06077 031461 STA TMP 13 YES ia
3797 06100 021466 LDA LOCL1
3798 06101 010132 CPA M1
3799 06102 066117 JMP L23
309884/1370
- 3-Ö4- -
3800 3801
3802 3803
3804* 3805
3808 3809 3810 3811 3812
3813#
3825*
06103 070076
06104 004132
06105 074437
06106 074744
TCA M1
ADB B,I
ADB 1
SBL
GET OP-CODE
holen
GET STMT NAME TABLE ADDRESS Anweisungsname Tabellenadresse holen
COMPUTE TABLE ADDRESS Tabellenadresse berechnen
OUTPUT MULTI-CHARACTER OPERATOR Ausgang Viel-Zeichen-Operator
06107 062306 L6
06110 021461
06111 070110
O6T12 066266
06113 021476
06114 070110
06115 061015
06116 035476
JSM MCOUT
LDA TMP13 SZA #+2
JMP L25 LDA TMP11 SZA #+2 JSM OBLNK STB TMP11 OUTPUT NAME
Ausgang Name
ASCII FORMAT? ASCII Format?
YES ja
RESET BLANK FLAG Leerzeichenmarke nullstellen
OUTPUT NEXT OPERAND Ausgang nächster Operand 06117 121472 L23 LDA TEMPS,I
AND TYPFL
06120 050067
06121 070472
06122 031477
06123 121472
06124 050065
06125 010065
06126 066152
06127 062302
06130 071710
06131 066221 OUTPUT CONSTANT
06132 010040 L4
06133 066255
06134 000132
ISOLATE OPERAND TYPE Operandentyp extrahieren
SAM L4,C SKIP IF CONSTANT OR FUNCTION überspringen, wenn Konstante oder Funktion
STA TMP12 SAVE TYPE Typ sichern
LDA TEMPS,I AND OPMSK WAS THE PREVIOUS OPERATOR
CPA OPMSK
JMP L11
JSM GTOPD SZA *-2 EXPANDED?
war vorhergehender Operator erweitert?
YES SKIP THIS FIELD
ja, dieses Feld überspringen
SKIP IF NULL OPERAND überspringen, wenn Null-Operand
JMP L15 Ausgang Konstante PREDEFINED FUNCTION? vordefinierte Funktion?
YES ja
CPA .31
JMP L9
ADA M1
309884/ 1370
3829 O6135 031705
3830 06136 000133
3831 O6137 070313
3832 06140 160232
3833 06141 020133
3834 O6142 031703
3835 O6143 062353
3836 06144 066152 3837* OUTPUT INTEGER
3838 06145 045472 L12
3839 06146 125472
3840 06147 074133
3841 06150 074537
3842 06151 160210
LIST ROUTINE STA FLOAT
ADA M2 SAP L12 SAVE FIX/FLOAT FLAG (O=FIX) Fest/Gleit-Marke sichern (O=fest)
SKIP IF INTEGER überspringen, wenn Ganzzahl
JSM SNFLA,I CONVERT konvertieren LDA M2
STA PLACE DECIMAL PLACES NOT SPECIFIED Dezimalplätze nicht spezifiziert
JSM NMOUT OUTPUT NUMBER FROM AR2 Ausgang Zahl von AR2
JMP L11
Ausgang Ganzzahl ISZ TEMPS
LDB TEMPS,I GET INTEGER Ganzzahl holen
SBP ++2,C COMPILED FORMAT?
kompiliertes Format
LDB B,I YES,READ LINE # ja,
Zeilen # lesen
JSM OUTIA,I OUTPUT INTEGER
Ausgang Ganzzahl
3843* CHECK FOR END OF STATEMENT auf Anweisungsende prüfen
3844 06152 045472 L11 ISZ TEMPS 121472 LDA TEMPS,I SKIP IF NULL OPERATOR
überspringen, wenn Null-.
Operator
3845 06153 021472 LDA TEMPS 050065 AND OPMSK QUOTE?
3846 06154 011475 CPA TMP 10 070442 SAR 10 YES ja
3847 06155 170402 RET 070510 SZA L13
3848* OUTPUT NEXT OPERATOR
Ausgang nächster Operator
010012 CPA .1 SINGLE CHARACTER OPERATOF
3849 06156 066213 JMP L29
3850 06157 024034 LDB .21
3851 06160 060753 JSM LIMIT
3852 06161
3853 06162
3854 06163
3855 06164
3856 06165
EinzelZeichenoperator?
1370
3857 3858 3859 3860
3863* 3864 3865 3866
3879*
06166 066174
06167 000123
06170 070517
06171 070342
06172 061016
06173 066117 L13
JMP L3 ADA FOPBS LDA A,I SAR
JSM ONEXT JMP L23
NO nein
GET ASCII FROM TABLE ASCII von Tabelle holen
GO OUTPUT NEXT OPERAND nächster Operand zum Ausgang
OUTPUT MULTI-CHAR OPERATOR Ausgang Viel-Zeichen-Operator
06174 031703 L3
06175 010040
06176 0623
06177 031704
06200 070142
06201 031476
06202 070110
06203 061015
06204 021703
06205 024130
06206 010040
06207 025474
06210 021704
06211 004135
06212 066105
STA PLACE CPA JSM GTOPD
STA "WIDTH SAR STA TMP11
SZA *+2 JSM OBLNK
LDA PLACE LDB FROMA
CPA
LDB TMP9
LDA WIDTH ADB M4 JMP L6-2 SAVE OPERATOR IN TEMP Operator in Zwischenspeicher
EXPANDED OP?
erweitertes OP?
YES, GET OP CODE
ja, OP-Code holen
SAVE sichern
SET FLAG FOR BLANK
Yarke für Leesstelle setzen
OUTPUT BLANK IF
OP > 17B
Ausgang Leerstelle setzen, wenn OP > 17B
GET STANDARD PAGE
Standardseite holen
EXPANDED OP?
erweitertes OP?
YES,GET PAGE FOR STMT ja, Seite für Anweisung holen
COMPUTE TABLE ADDR AND OUTPUT Tabellenadresse und Ausgang berechnen
OUTPUT QUOTE FIELD Ausgang Quotenfeld
06213 020043 L29 LDA
06214 061016 JSM ONEXT
06215 062647 JSM QUOTE
06216 020043 LDA
06217 061016 JSM ONEXT
309884/1370
LIST ROUTINE
3885 3886+
3887 ^388 3889 3890 3891 3892
3893 3894 3895 3896 3897 3898 3899 3900
06220 066153 JMP L11+1
OUTPUT OPERAND NAME AND TYPE Ausgang Operandenname and -typ
06221 021477 L15 LDA T.»P12
06222 010040
06223 062251
06224 062302 LB
06225 000101
06226 061016
06227 025477
06230 014040
06231 066152
06232 020077
06233 014076
06234 066241
06235 074146
06236 074251
CPA JSM L16 JSM GTOPD ADA B100 JSM ONEXT
3901 06237 021477
3911 +
3916* 3917
06240 040052
06241 061016 L19
06242 066152
06243 074642 L20
06244 075710
06245 020055
06246 075551
06247 020073 06250 066241 OUTPUT "FN"
LDB TMP CPB JMP L11 LDA DOLAR CPB B36 JMP L19 RBR SLB L20
LDA TMP12
IOR JSM ONEXT JMP L11 SBR SZB *-2 LDA I SLB L19 LDA S JMP L19 Ausgang "FN"
06251 020072 L16
06252 061016
06253 023522
06254 065016
LDA F JSM ONEXT LDA N JMP ONEXT FUNCTION?
YES ja
Funktion?
OUTPUT LETTER NAME Ausgang Buchstabenname
FUNCTION? Funktion? YES ja
STRING
YES ja
LETTER AND DIGIT? Buchstabe und Ziffer?
YES, OUTPUT DIGIT ja, Ausgang Ziffer
LETTER ONLY? nur Buchstabe? NO nein
INTEGER? Ganzzahl? NO - SPLIT nein - spalten
OUTPUT F Ausgang F
OUTPUT N AND RETURN TO L.8 Ausgang N und zurück nach L8
OUTPUT PRE-DEFINED FUNCTION NAME Ausgang vordefinierter Funktionsname
06255 062302 L9 JSM GTOPD GET OP-CODE OP-Code holen
309884/1370
2333908 031467 STA 021472 L25 Lisa LDA LOCL 2 COMPUTE TABLE ADDRESS
Tabellenadresse berechnen
COMPUTE CHARACTER COUNT
Zeichenzählung berechnen
3918 06256 060605 JSM 070076 TCA
3919 06257 004134 ADB 001475 ADA
3920 06260 074437 ADB 070744 SAL NEXT1-1 GET PAGE Seite holen Ausgang REM-Anweisung COMPUTE STARTING ADDRESS
Startadresse berechnen
3921 06261 021467 LDA 000132 ADA M3 TEMPS OUTPUT STRING TO BUFFER
Ausgangs-STRING zum Puffer
3922 06262 074744 SBL 025472 LDB B,I
3923 06263 062306 JSM 074744 SBL LOCL 2 TMP 10
3924 O6264 066117 JMP 074070 SIB 1 1 LINE COMPLETE Zeile komplett
3925 06265 OUTPUT REM STATEMENT 062651 JSM MCOUT M1
2926+ 06266 025475 LDB L23 TEMPS
3927 06267 035472 STB 1 Operandenname holen
3928 06270 170402 L28 RET ++1 ? ROUTINE
3929 O6271 STOUT
3930 06272 GET OPERAND NAME TMP 10
3931 06273 82 TEMPS
3932 06274
3933 06275
3934 06276
3935 06277
3936 06300
3937 06301
3938
3939+
394O*
Seite
3942 06302 121472 GTOPD LDA TEMPS,I
3943 06303 050115 AND B1777
3944 06304 070202 SAR 5
3945 06305 170402 RET
309884/1370
OUTPUT TO BUFFER ROUTINES Routinen für Ausgang zum Puffer
3947*
3948+
3949*
3950*
3951*
3952*
3953*
3954*
395-5*
3956*
3957*
3958*
3959*
3960*
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3 974
3975
3976
3977
3978
THIS SUBROUTINE SEARCHES THE Dieses Unterprogramm sucht
MULTIPLE CHARACTER OP CODE TABLE. IT RETURNS WITH THE ASCII STRING IN THE SYNTAX BUFFER.
die Tabelle für Viel-Zeichen-OP-Code. Es kehrt mit dem ASCII-STRING in den Syntax-Puffer zurück
ENTRY CONDITIONS: Eingangsbedingungen:
(A) = OP CODE
(B) = POINTER TO FIRST Hinweismarke auf erstes
CHARACTER OF TABLE Zeichen der Tabelle
06306 031741 MCOUT
06307 035740
06310 070742 MC1
06311 031743
06312 061053 MC4
06313 070306
06314 070331
06315 070402
06316 050040
06317 011741
06320 066324
06321 O6631O
06322 045743 MC 2
06323 066312
06324 021743 MC3
06325 025743
06326 074056
06327 005740
STA STB SAR STA JSM RAR SLA SAR AND CPA JMP JMP ISZ JMP LDA LDB CMB ADB
TMP TMP 16
TMP GTMP 7
MC2,C 9
.31 TMP1 MC MC1 TMP MC TMP TMP
TMP SAVE CODE Code sichern
COUNT = O Zählung = O
OP CODE?
YES ja
MATCH? . paßt?
YES ja
GET COUNT Zählung holen
COMPUTE STARTING ADDRESS Startadressen berechnen
3979 06330 066651
JMP STOUT
309884/ 1370
34$
Seite 84 OUTPUT TO BUFFER ROUTINES
Routinen für Ausgang zum Puffer
4239* 4240*
4241* 4242
OUTPUT A QUOTE STRING Ausgang ein Quoten-STRING
06647 063261 QUOTE JSM QTCH1
4243 06650 OOOOOO
BSS
4244* 4245* 4246* 4247* 4248* 4249* 4250* 4251* 4252* 4253
4254
4255 GET CHAR COUNT AND ADDRESS Zeichenzählung und Adresse holen
CHECKSUM WORD**##(QTCH1 RETURNS TO P+2) Summenprobe Wert (QTCH1 zurück nach P+2)
OUTPUT ANY STRING Ausgang irgendein STRING ENTRY CONDITIONS: Eingangsbedingungen:
A = NUMBER OF CHARACTERS Zeichenzahl
B " POINTER FIRST CHAR Hinweismarke erstes Zeichen
06651 031466 STOUT STA L0CL1
06652 070742 SAR
06653 031701 STA NDISP
SAVE COUNT Zählung sichern
ENABLE DISPLAY Wiedergabe freigeben
4256 06654 020012
4257 06655 065332
LDA JMP .NPWR+2 DISABLE PRINT
Druck sperren
309884/1370
13
zn
Seite 85 PRINT: DISP; AND WRITE COMMAND EXECUTION Druck-, Wiedergabe- und Schreibbefehlsausführung
4259* 4260*
4261* 4262*
4263*
4264* 4265* 4266
4267
SUBROUTINE TO PLACE NEXT PRINT FIELD IN BUFFER Unterprogramm, um nächstes Druckfeld in Puffer zu plazieren
RETURN P+1: END OF LINE (B) = O FOR CRLF NOT SUPPRESSED zurück Zeilenende (B) = 0 für nicht unterdrücktes CRLF
P+2: ITEM IN BUFFER (BADDR)=BUFFER POINTER
Datenwort in Puffer (BADDR)=Puffer-Hinweismarke
06656 063227 PRINN JSM CKEOL
06657 074742 SBR 16
4268 06660 170402 4269 06661 063004 4270 06662 063240
RET
JSM PF0R1
JSM QTCHK
END OF LINE? Zeilenende
YES CRLF NOT SUPPRESSED ja, CRLF nicht unterdrückt
YES CRLF SUPPRESSED ja, CRLF unterdrückt
SET UP 72 CHAR LINE 72-Zeichen-Zelle aufsetzen
QUOTE FIELD NEXT? Quotenfeld als nächstes?
4271 06663 066674 JMP PR5 NO nein I TAB?
4272 06664 021471 QOV LDA L2T2 RECALL COUNT
Zählung zurückrufen
YES ja
4273 06665 003523 ADA M72
4274 06666 070113 SAP *+2 MORE THAN 72 CHARS?
mehr als 72 Zeichen?
4275 06667 070742 SAR 16 NO nein KEYBOARD "LET"
Tastatur "LET"
4276 06670 070076 TCA
4277 06671 001471 ADA L2T2 TRUNCATE TO 72
abbrechen bei 72
Λ ..EVALUATE EXPRESSION Ausdruck
' · * ' u auswerten
4278 06672 062651 JSM STOUT OUTPUT STRING Ausgang STRIN
4279 06673 066731 JMP PR7
4280 06674 121472 PR5 LDA TEMPS,
4281 06675 050070 AND OPDMK
4282 06676 012732 CPA TABOP
4283 06677 067040 JMP ETAB
4284 06700 021453 LDA PRFLG
4285 06701 010132 CPA M1
4286 06702 066706 JMP *+4
4287 06703 062773 JSM PFORM
4288 06704 061220 mi*
4289 06705 066707
4290 06706 062773
4291 06707 025622
4292 06710 076150
4293 06711 160170
4294 06712 035622
4295 06713 066721 4296* BUFFER OVERFLOW
4297 06714 025742 POV
4298 06715 074110
4299 06716 066664
4300 06717 020215
4301 06720 060445
4302 06721 024132 PR6
4303 06722 021416
4304 06723 070150
4305 06724 025452
4306 06725 021451
- 34α -
JMP ++2 JSM PFORM EVALUATE "LET" auswerten
LDB TERM RZB *+3 CRLF GIVEN IN FUNCTION? CRLF in Funktion gegeben
JSM CLERA,I YES ja
STB TERM
JMP PR6 NO nein
Puffer überfüllt
LDB TMP2
SZB *+2 JMP QOV
LDA TMPOP
JSM XFAR2+1 LDB M1 LDA MODE SZA PR11
LDB CPLAC LDA CTYPE
4307 06726 063065 PR11 JSM GNUM1
4308 06727 074742 SBR
4309 06730 035742 STB TMP2
031O 06731 063052 PR7 JSM OVCK
4311 06732 100077 TABOP OCT 100077
4312 06733 075052
4313 06734 021472
4314 06735 Ο11421
SBM POV
LDA TEMPS CPA PRADD OVERFLOW DURING STRING Überfüllung während STRING
NO, RESTORE AR2
nein, AR2 zurückstellen
SKIP IF PROG MODE überspringen, wenn Prograinm-Betrieb
SET UP CALC FORMAT FLAGS Rechenformat-Marken aufsetzen
PUT NUMBER IN BUFFER Zahl in Puffer geben
SET FLAG FOR NUMBER Marke für Zahl setzen
CHECK FOP OVERFLOW auf Überfüllung prüfen
(OVCK RETURNS TO P+2)
(OVCK kehrt nach P+2 zurück)
SKIP IF OVERFLOW Überspringen, wenn Überfüllung
END OF LINE? Zeilenende?
309884/13
Seite 86 PRINT; DISP; AND WRITE COMMAND EXECUTION
Druck-, Wiedergabe- und Schreibbefehlsausführ.ung
4315 06736 064357
4316 06737 121472
4317 O674O 070073
4318 06741 070442
4319 06742 000133
4320 06743 063027
4321 06744 064357 4322*
4323* 4324*
JMP RETN2 LDA YES RETURN TO P+2 ja, zurück nach P+2
SAP SAR ADA TEMPS,I NO, GET NEXT OPERATOR
nein, nächsten Operator holen
SET UP COMMA: SEMICOLON FLAG Kommaι Semikolon-Marke aufsetzen
OUTPUT TRAILING BLANKS Ausgang abschließende Leerfelder
10
M2
JSM FILL
JMP RETN2
PRINT DISP AND WRITE (N,*) ROUTINE Druck-,Wiedergäbe- und Schreib- (n,+) Routine
4325* 4326
4327 4328
4329 4330
4331 4332
06745 020146 EPRIN LDA M15
O6746 06747
06750 06751
06752 06753
070076 O31453
025416 076150
021622 072150
EDISP TCA
STA PRFLG
EWRH LDB MODE RZB
LDA TERM RZA SET UP SELECT CODE 15 Auswahlcode 15 aufsetzen
NEG= DISP,-I=LET
SELECT CODE=PRINT OR WRITE Auswahlcode=Druck oder Schreiben
SKIP IF KEYBOARD MODE überspringen, wenn Tastatürbetrieb
SKIP IF BUFFER IS PARTIALLY FILLED
überspringen, wenn Puffer teilweise gefüllt
4333 06754 16Q17O JSM CLERA, I INITIALIZE BUFFER
Puffer initialisieren
4334 06755 035622 STB TERM INITIALIZE CRLF SUPPRESSED
FLAG
"CRLF unterdrückt"-Marke
initialisieren
4335 06756 063227 JSM CKEOL NULL LIST? Null-Liste?
4336 06757 066765 JMP PR2-1
9 8 8 /♦ / 1 3 7 O
2 33390 8 JMP PR2-1
4337 06760 066765 JSM PRINN
4338 06761 062656 PR3 JMP PR2
4339 06762 066766 JSM OLINE
4340 06763 063450 JMP PR3
4341 06764 066761
4342+ SBR 16
4343 06765 074742 STB TERM
4344 06766 035622 PR2 RZB PR17
4345 06767 076150 JSM PRCHK
4346 06770 O63OO7 JSM CRLF1
4347 06771 061344
YES, GIVE CRLF ja, CRLF geben
OUTPUT NEXT FIELD TO BUFFER Ausgang nächstes Feld zum Puffer
END OF LINE Zeilenende
PRINT THE LATEST FIELD spätestes Feld drucken
SET CRLF SUPPRESSED FLAG "CRLF unterdrückt"-Marke setzen
SKIP IF SUPPRESSED überspringen, wenn unterdrückt
DISP? Wiedergabe?
OUTPUT A CRLF Ausgang ein CRLF
4348
4349*
4350+
4351 +
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
06772 164172 PR17 JMP XEC4A,I
SAVE PRINT FLAGS AND CALL FORMX Druckmarken sichern und FORMX rufen
06773 025453
06774 060563
06775 025447
06776 060563
06777 16O2O1
07000 060567
07001 031447
07002 060567
07003 031453
07004 O23521
07005 031623
4363 07006 170402
PFORM LDB PRFLG JSM SLWST LDB SLCOD JSM SLWST JSM FORMA,I
JSM UNSTK STA SLCOD
JSM UNSTK STA PRFLG
PF0R1 LDA LN7 STA PEND
RET EVALUATE FORMULA Formel auswerten
RESTORE SELECT CODE Auswahlcode zurückstellen
RESTORE PRINT FLAG Druckmarke zurückstellen
SET UP 72 CHAR LINE 72-Zeichen-Zeile aufsetzen
30988 U /1370
Seite 87 PRINT; DISP; AND WRITE COMMAND EXECUTION
Druck-, Wiedergabe- und Schreibbefehlsausführung
4370* 4371* 4372+ 4373*
4374* 4375* 4376* 4377* 4378*
4379*
4387 4388 4389 4390 4391 4392
07007 025450 PRCHK LDB PMODE
07010 074310 SZB PRCHR
07011 025453 LDB PRFLG
07012 074213 SBP PRCHR
PRINT ALL?
NO nein
alles drucken?
PRINT STMT?
Anweisung drucken?
07013 0643 57 JMP RETN2 NO THIS SUBROUTINE FILLS A COMMA OR SEMICOLON FIELD WITH BLANKS/ nein
Dieses Unterprogramm füllt ein Komma- oder Semikolonfeld mit Leerstellen/wenn IF THE CURRENT LINE IS OVERFLOWED die laufende Zeile über-
IT IS OUTPUT SND A CRLF IS B0NB/ führt
ENTRY CONDITIONS: Eingangsbedingungen:
A=O IF COMMA FIELD wenn Komma-Feld
TMP2SiO IF QUOTE FIELD WAS PRINTED
wenn Quotenfeld gedruckt war
07014 021742 FILL1 LDA TMP2
07015 070110 SZA *+2
07016 170402 PRCHR RET
07017 061015 JSM OBLNK
07020 025625
07021 074076
07022 005400
07023 004137
07024 074512
07025 004134
07026 067024
07027 073250 FILL
07030 063014
07031 025400
07032 007520
LDB FIRST
TCB
ADB BADDR
ADB M SBM FILL2 ADB M3 JMP *-2 RZA FILL1 JSM FILL1
LDB BADDR ADB MSLPT SKIP IF NUMERIC
überspringen, wenn numerisch
INSURE AT LEAST 1 BLANK Mindestens eine Leerstelle sicherstellen
NO nein
GET OUTPUT COUNT Ausgangszählung holen
COMMA FIELD? Komma-Feld
YES, FIRST OUTPUT";"SPACING ja, erster Ausgang";" Abstand
GET OUTPUT COUNT Ausgangzählung holen
10988A/1370
4395 07033 075150
4396 07034
4397 07035
4398 07036
4399 07037
SZB PRCHR SKIP IF EXACT
überspringen, wenn richtig
ADB M15
004146
075713 SBP*-2
074076 FILL2 TCB
067474 JMP MOUT-1 OUTPUT BLANKS
Ausgang Leerfelder
4400*
4401*
4402* TAB EXECUTION Tabellenausführung
4403*
4404*
4405 07040 44Ο6 07041
4407 07042
4408 07043
04 5472 ETAB 062773 061220 160226
ISZ TEMPS JSM PFORM JSM FETCH+1 JSM FLTFA,I
4409 07044
4410 07045
4411 Ο7Ο46
4412 07047
4413
4414
4415
4416
4417
4418
4419
4420
07050 07051 07052 07053 07054 07055 07056 07057
064357 075752
Ο74Ο76 005400
007 063036 025400 OVCK 015623 067056 064357 160170 ET1 063007
JMP RETN2 SBM *-1
TCB
ADB BÄDDR
ADB MSLPT JSM FILL2 LDB BADDR CPB PEND JMP ET1 JMP RETN2 JSM CLERA,I JSM PRCHK TRUNCATE TO INTEGER
auf Ganzzahl abschneiden
OVERFLOW Überfüllung
NEGZiTIVE NUMBER? negative Zahl?
COMPUTE # OF BLANKS NEEDED #" der benötigten Leerstellen berechnen
OVERFLOW? Überfüllung? YES ja
PRINT? drucken?
Seite 88 PRINT; DISP; AND WRITE COMMAND EXECUTION Druck-, Wiedergabe- und Schreibbefehlsausführung
4421 07060 061344
4422 07061 024062
4423 07062 035622
JSM CRLF1 YES ja
LDB FLGBT SET (B) NEGATIVE FOR OVERFLOW (B) für Überfüllung negativ setzen
STB TERM SET CRLF SUPRESSED FLAG "CRLF unterdrückt"-Marke setzen
309884/1370
4425*
4427* 4428/
4435* 4436+
4437*
07063 064357
JMP RETN2
07064 160206 TABER JSM ERRA,I ERROR IF CALLED FROM WRITE
STMT
Fehler, wenn von Schreibanweisung gerufen
07065 03 5703 GNUM1 STB PLACE
07066 031705
07067 024215 GNUM
07070 060406
07071 066353
STA FLOAT LDB TMPOP JSM XFAR1+1 SAVE RESULT Ergebnis sichern
JMP NMOUT PUT NUMBER IN BUFFER Zahl in Puffer geben
WRITE STATEMENT EXECUTION Anweisungsausführung schreiben
07072 023447 EWRIT LDA FMTOP
07073 0633 66 JSM SFMT
4440 O7O74 066750
4441 07075 063227
4442 0707 6 000000
JMP EWRH
JSM CKEOL BSS
4443 07077 035472 STB TEMPS
4444 07100 063303 WRIT2 JSM TYPEC
4445 07101 067113 JMPT WRITN
4446 07102 067122 JMP WRITQ
4447 071.03 074742 SBR 16
4448 07104 060563 JSM SLWST
4449 07105 067125 JMP WRITF
445O 07106 077713 SBP +-2, S
4451 07107 067117 JMP WRITX
SET UP DEVICE AND FORMAT
CODES
Gerät-und Format-Codes
aufsetzen
NO FORMAT SPECIFIED kein Format spezifiziert
NULL LIST? Null-Liste
+++CHECKSUM+++IMPOSSIBLE
STATE
+++Summenprobe+++ unmöglicher
Zustand
YES, SET TEMPS=PRADd ja, TEMPS=PRADd setzen
GET NEXT FORMAT SPEC nächste Formatspezifikation holen
END OF FORMAT Formatende QUOTE FIELD Quotenfeld
SET FLAG FOR FIXED Marke für festes setzen
STACK FLAG: O=F, +=E, -=B Marke speichern
(CODE 5 IS NOT USED)
(Code 5 wird nicht benutzt)
SET B FLAG B-Marke setzen X:
-!0988W1370
4452*
4453
4454
4455
4456
4457
4458
END OF FORMAT STATEMENT Ende der Formatanweisung
07110 063356 JSM FSPR
07111 061344 WRITS JSM CRLF1
07112 067100 JMP WRIT2
07113 075713 WRITN SBP WRITS
07114 074742
07115 035455
4459 07116 O6675O
SBR STB FORMT
JMP EWRII
4460*
4461
4462
4463
4464*
4465
4466
4467
4468*
4469*
4470
4471
X FIELD X-FeId 07117 063356 WRITX JSM FSPR /; UPDATA FORMAT POINTER Format-Hinsweismarke aktualir sieren
ANY NUMERIC SPECS FOUND? irgendwelche numerische Spezifikationen gefunden?
CLEAR FORMAT NESTING FLAG
Formatschachtelungsmarke
löschen
NO, GO TO STANDARD FORMAT Nein, zum Standard-Format
UPDATE FORMAT POINTER Format-Hinweismarke aktualisieren
07120 020012
07121 027124 QUOTE FIELD
LDA LDB BLNKA Quotenfeld
07122 061337 WRITQ NDWRT OUTPUT TO PRINTER
Ausgang an Drucker
07123 O671OO JMP WRIT2
07124 000103 BLNKA DEF .32+,32+1
OUTPUT F,E,
07125 025466
07126 060563
OR B FIELD Ausgang F-,E- oder B-Feld WRITF LDB LOCL1 JSM SLWST
4472 07127 063227
4473 07130 074742
4474 07131 067222
4475 07132 063240
4476 07133 067136
4477 07134 061337
4478 07135 067127
4479 07136 062773
4480 07137 061220
STACK FORMAT STMT POINTER Formatanweisungs-Hinweismarke speichern
END OF WRITE STMT?
Ende der Schreibanweisung?
YES, CRLF NOT SUPRESSED ja, CRLF nicht unterdrückt
JMP WRIT8-2 YES
WRIT4 JSM CKEOL SBR
JSM QTCHK
JMP WRIT5
JSM NDWRT
JMP WRIT4
WRIT5 JSM PFORM 3a
QUOTE NEXT IN WRITE?
als nächstes Quote im Schreiben?
NO nein
YES, PRINT IT
SAVE FLAGS AND
JA, drucken
JSM FETCH+1 EVALUATE FORMULA
309884/1370
Marken sichern und Formel auswerten
35-«
4481 07140 060567
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497 +
4498
07141 031466
07142 060567
07143 031705
07144 O7O252
07145 045466
07146 121466
07147 045466 07150 045466 JSM UNSTK
STA L0CL1 JSM UNSTIK
STA FLOAT SAM WRITB
ISZ L0CL1 RECALL FORMAT STMT POINTER Formatanweisungs-Hinweismarke zurückrufen
RECALL E,F, OR B FLAG E-, F- oder B-Marke zurückrufen
SKIP IF B überspringen, wenn B
LDA LoCLI,I GET FIELD WIDTH SPEC
Feldbreitenspezifikation holen
ISZ L0CL1 ISZ L0CL1
07151 025456 WRITB LDB FORMS
07152 074073
07153 035456
SBP , . STB FORMS
07154 125466
07155 063356
07156 031704
07157 070353
SET NUMERIC SPEC FOUND FLAG "Numerische Spezifikation gefunden"-Marke setzen
LDB LOCL1,1 GET DECIMAL SPEC
Dezimalspezifikation holen
JSM FSPR
STA WIDTH SAP WRIT7 UPDATE-FORMAT POINTERS Format-Hinweismarken aktualisieren
SKIP IF E OR F überspringen, wenn E oder F
OUTPUT B FIELD CHARACTER Ausgang B-Feld Zeichen
07160 160225 JSM FLTRA,I CONVERT TO ROUNDED INTEGER
in gerundete Ganzzahl konvertieren
4499 07161 074742
4500 07162 074117
4501 07163 050105
4502 07164 061353
4503 07165 067216 4504-f
4505
4506
SBR
LDA B AND B377
JSM TTY JMP WRIT6 OVERFLOW: USE Überfüllung; O benutzen
MASK TO 8 BITS
auf 8 Bits ausblenden
OUTPUT SINGLE CHAR Ausgang einzelnes Zeichen
OUTPUT E OR F NUMBER Ausgang E oder F Zahl 07166 035703 WRIT7 STB PLACE
07167 021412
4507 07170 070070
LDA LSTPT
SIA START TEMP BUFFER Zwischenpuffer Start
09884/1370
2333908 SAL 1
4508 07171 070744 STA BADDR
4509 O7172 031400 STA SBPTR
4510 O7173 031706 LDA HSTPT
4511 O7174 021413 SAL 1
4512 O7175 O7O744 STA PEND
4513 07176 031623 LDA MODE
4514 O7177 021416 STA ST+1
4515 07200 031641 SAR 16
4516 07201 070742 STA MODE
4517 O72O2 031416 JSM GNUM
4518 07203 063067 LDA ST+1
4519 O72O4 O21641 STA MODE
4520 07205 031416 LDA BADDR
4521 07206 021400 CPA PEND
4522 07207 011623 JMP MER8
4523 07210 064561 LDB SBPTR
4524 O7211 025706 JSM WBUFF
4525 07212 060374 JSM NDWRT
4526 07213 061337
4527 O7214 025625 LDB FIRST
4528 O7215 035400 STB BADDR
4529 07216 063227 WRIT6 JSM CKEOL
4530 O7217 O74742 SBR 16
4531 07220 067224 JMP WRIT8
4532 07221 067100 JMP WRIT2 4533* END OF WRITE STMT Ende der
4534 O7222 055412 DSZ LSTPT
4535 O7223 O55412 DSZ LSTPT
4536 07224 070742 WRIT8 SAR 16
4537 O7225 031455 STA FORMT
ABOVE LOW STACK oberhalb niedrigem Stapelspeicher
SET END OF BUFFER AT H-STACK Pufferende an Η-Stapelspeicher setzen
SET FOR PROGRAM FORMAT auf Programmformat setzen
OUTPUT NUMBER TO BUFFER Ausgangszahl zum Puffer
OVERFLOW? Überfüllung?
Zeichenzählung berechnen COMPUTE CHAR COUNT
PRINT THE BUFFER Puffer drucken
RESET BADDR nullstellen END OF STMT? Anweisungsende?
YES, CRLF NOT SUPRESSED ja, CRLF nicht unterdrücken
YES ja
NO nein
Schreibanweisung
UNSTACK FLAGS
ungespeicherte Marken
SET FORMAT COMPLETE FLAG Marke "Format komplett" setzer
4538 O7226 066767
JMP PR2+1
309884/1370
PRINT; DISP; AND WRITE COMMAND EXECUTION Druck-, Wiedergabe- und Schreibbefehlsausführung
4540* 4541*
4542* 4543* 4544* 4545*
4555* 4556*
4557* 4558*
4559*
4562 4563 4564 4565 4566
4567 4568 4569 4570 4571
CHECK FOR END OF OUTPUT LIST
Auf Ende der Ausgangsliste prüfen P+1: TEMPS=PRADd P+2: NULL OPERAND AND TEMPS+1=PRADD P+3: ALL OTHER alle anderen
07'227 O723O 07231 07232 O7233 07234 O7235 O7236 07237
025472 CKEOL LDB
O15421 170402 O6O771 072210 074070 015421 O64357
CPB RET JSM RZA SIB CPB JMP
TEMPS PRADD
GTOPP CKE01
O643 56 CKEO1 JMP
PRADD RETN2 RETN END OF STMT? Anweisungsende?
NULL OPERAND? YES ja
TEMPS+1=PRADD YES ja
NO nein
CHECK TO SEE IF NEXT OPERATOR IS A QUOTE FIELD prüfen, um zu sehen, ob nächster Operator ein Quotenfeld ist
P+1: QUOTE NOT NEXT Quote nicht als nächste
P+2: QUOTE NEXT; (A)=LENGTH; (B)=POINTER; TEMPS UPDATED Quote als nächste; (A)=Länge; (B)-= Hinweismarke;
TEMPS aktualisiert
07240 12472
07241 050065
07242 010116
07243 067261
07244 060771
07245 072410
07246 O45472
07247 121472
07250 050065
07251 010116
07252 067261
07253 055472
QTCHK LDA TEMPS,I AND OPMSK
CPA QTOP JMP QTCH1 JSM GTOPP RZA QTCH3 ISZ TEMPS
LDA TEMPS,I AND OPMSK CPA QTOP JMP QTCH1 DSZ TEMPS CURRENT OPERATOR laufender.Operator
A QUOTE? eine Quote? YES ja
NULL OPERAND?
YES, GET NEXT OPERATOR
ja, nächsten Operator holen
QUOTE?
YES ja
NO, RESTORE TEMPS
nein, TEMPS zurückstellen
4572 07254 170402
RET
3 0 9 8 8 4/ RETURN P+1
1370 zurück
2333908 AND ZkH
4573 O7255 050040 QTCH3 CPA B37
4574 O7256 O10076 JMP B36
4575 O7257 067276 RET QTCH 2
4576 07260 170402 LDA
4577 07261 121472 QTCH1 AND TEMPS,I
4578 O7262 O5O1O4 STA B177
4579 O7263 031471 ISZ L2T2
4580 07264 045472 LDB TEMPS
4581 07265 025472 SBL TEMPS
4582 07266 074744 STB 1
4583 07267 035742 ADB TMP 2
4584 O727O O7OO37 SIB A
4585 07271 074070 SBR #+1
4586 07272 074002 STB 1
4587 07273 035472 LDB TEMPS
4588 07274 025742 JMP TMP 2
4589 07275 064357 LDA RETN2
4590 07276 020121 QTCH2 JSM SBLOC
4591 07277 060613 LDA FPAGE
4592 07300 074117 AND B
4593 O73O1 050065 JMP OPMSK
4594 O73O2 070737 A,I
STRING VARIABLE?
YES ja
NO, RET P+1 nein, zurück P+1
GET CHAR COUNT
Zeichenzählung holen
SAVE sichern
GET STARTING CHARADDRESS Startzeichenadresse holen
SAVE
sichern
POINT TEMPS PAST END OF STRING TEMPS hinter STRING-Ende zeigen
4595 00121
SBLOC EQU B4000 FIND STRING BLOCK PAGE STRING-Block-Seite auffinden
GET STARTING ADDRESS OF PAGE Startadresse der Seite holen
JUMP TO STRING PAGE
auf STRING-Seite springen OP CODE 2
Seite 92 PRINT; DISP; AND WRITE COMMAND EXECUTION Druck-, Wiedergabe- und Schreibbefehlsausführung
4597+
4598* SUBROUTINE TO GET NEXT FORMAT SPEC Unterprogramm, um nächste Formatspezifikation zu holen
4599*
4600 07303 021454 TYPEC LDA RCOUT
4601 07304 072450 RZA FSP1
4602 07305 025455 LDB FORMT
4603 07306 015457 CPB FORME
4604 07307 067353 JMP FSPN
309884/1370
4605*
4606 4607 4608 4609 4610 4611 4612 4613#
4614 4615 4616 4617 4618
4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630
4631 4632
4633 4634 4635
4636 4637 4638
SET UP NEW REPEAT CODiJT
Neue Zählungswiederholung aufsetzen
07310 121455
07311 045455
07312 070253
07313 121455
07314 045455
07315 OOO132 FSP1
07316 031454
LDA FORMT,I ISZ FORMT SAP FSP2 LDA FORMT,I ISZ FORMT ADA M1
STA RCOUT
GET FORMAT SPEC; (FORMT) POINTS TO TYPE WORD Formatspezifikation holen (FORMT) zeigt auf Typwort
07317 121455 FSP2 LDA FORMT,I AND OPMSK READ TYPE Typ lesen LDB RSPTR
ADB M1
STB RSAVE
07320 O5OO65
07321 025777
07322 004132
07323 035401
SAVE ADDRESS OF RETURN Rückkehradresse sichern
07324 025455
07325 035466
07326 010116
07327 067340
07330 121455
07331 070202
07332 050040
07333 070137
07334 105401
07335 004132
07336 135401 BASE
07337 170402
LDB FORMT STB LOCL1 CPA QTOP JMP FSPQ LDA FORMT1I SAR AND B37 LDB A
ADB RSAVE,I ADB M1 STB RSAVE,I RET QUOTE FIELD?
YES ja
Quotenfeld?
RETURN TO P+(OP CODE) zurück nach
07340 121466 FSPQ LDA LOCL1,I
07341 050104
07342 031467
07343 074070
07344 074744
07345 074017
07346 000132
07347 070002
AND B177
STA LOCL2 SIB ++1 SBL
ADA B ADA M1 SAR GET CHAR COUNT Zeichenzählung holen
SAVE sichern
COMPUTE STARTING CHARACTER
ADDRESS
Startzeichenadresse berechnen
309884/1370
23339D8
- 3*4 -
4639 07350 031466
4640 07351 145401
STA L0CL1 COMPUTE AND SAVE ENDING WORD ADDRESS
Endwortadresse berechnen und sichern
ISZ RSAVE,I SET TO RETURN TO P+2
auf Rückkehr nach P+2 stellen
4641 07352 067357 JMP FSPR+1 4642* END OF FORMAT STMT Ende der
4643 07353 025456 FSPN LDB FORMS
4644 O7354 035455 STB FORMT 4545 07355 170402 RET 46464·
4647*
4648*
4649 O7356 031467 FSPR STA LOCL2
4650 07357 021454 LDA RCOUT
4651 07360 072210 RZA FSPR1
4652 07361 021466 LDA L0CL1
Formatanweisung
RESET TO START OF STMT auf Anweisungsstart zurückstellen
SAVE (A) sichern
END OF REPEAT COUNT? Ende der Wiederholungs-Zählung
YES,UPDATE
ja, aktualisiert
Seite 93 PRINT; DISP; AND WRITE COMMAND EXECUTION Druck-, Wiedergabe- und Schreibbefehlsausführung
4653 07362 070070
4654 07263 031455
SIA *+1 STA FORMT
4655 07364 021467 FSPR1 LDA LOCL2
4656 07365 170402
RET FORMAT POINTER Format-Hinweismarke
RESTORE (A)
(A) zurückstellen
4658+
4659* SET UP FORMAT STMT POINTERS FOR WRITE OR ENTER Formatanweisungs-Hinweismarken für Schreiben oder Eintreten aufsetzen
4660*
4661 07366 031640 SFMT
STA ST SAVE FORMAT OP CODE sichern
309884/1370
4662 07367 045472
4663 07370 061217
4664 07371 160225
4665 07372 160206
4666 07373 074117
4667 07374 075710
4668 07375 074142
4669 07376 077610
4670 07377 O31453
4671 07400 O7O2O4
4672 07401 031447
4673 07402 035454
4674 07403 125472
4675 O74O4 045472
4676 O74O5 074152
4677 O74O6 045472 4 678 O74O7 170402
4679 O741O 121472
4680 07411 070673
4681 07412 025455
4682 07413 074110
4683 O7414 160206
4684 07415 070137
4685 07416 OOOO17
4686 07417 O31455
4687 07420 072053
4688 O7421 031456
4689 O7422 O61OO7
ISZ TEMPS JSM FETCH
EVALUATE SELECT CODE Auswahlcode auswerten
JSM FLTRA,I CONVERT TO INTEGER
in Ganzzahl konvertieren
SCERR JSM ERRA,I LDA B SZ B #-2 SBR RZB jC-4'
STA PRFLG
SAL STA SLCOD PLOTE STB RCOÜT
LDB TEMPS,I ISZ TEMPS SBM =K+3
ISZ TEMPS RET OVERVLOW Überfüllung
CHECK FOR 1<SC <15 prüfen auf 1<SC <15
SAVE SELECT CODE Auswahlcode sichern
SET REPEAT COUNT TO O Wiederholungszählung auf O setzen
FORMAT SPECIFIED Format spezifiziert
NO, RETURN P+1
nein, zurück nach P+1
LDA TEMPS,I YES ja SAP SFMT2,C SFMT1 LDB FORMT
SZB ++2
FNEST JSM ERRA,I LDB A ADA STA FORMT
SAP *+1 , S
STA FORMS JSM NEXTA ERROR IF STATEMENTS USING Fehler, wenn Anweisungen benutzend
FORMATS NESTED? Formate geschachtelt
YES ja
SET CURRENT FMT SPEC POINTER Spezifizierungs-Hinweismarke für laufendes Format setzen
SET FLAG - - NO NUMERIC SPEC YET Marke - - setzen, bisher keine numerische Spezifikation
30988Λ/137Ο
4690 07423 035457
STB FORME SET POINTER TO END OF FMT STMT Hinweismarke ans Ende der Forma tanwei sung setzen
4691
4692
4693*
4694
46-95
4696
4697
4698
07424 045472 ISZ TEMPS
07425 064357 JMP RETN2
FIND AND VERIFY FORMAT STMT
Formatanweisung auffinden und verifizieren
07426 061075 SFMT2 JSM FNDPS FIND STATEMENT
Anweisung auffinden
07427 067430 JMP *+1
07430 164343 NOFMT JMP E.45-1,1 NOT FOUND nicht gefunden
07431 076053
07432 135472
4699 07433 021476
4700 O7434 070070
4701 O7435 070537
4702 O7436 07OO7O
4703 07437 O7O517
4704 O744O O5OO65
4705 07441 074442
4706 O7442 O7OO37
4707 07443 021476
4708 O7444 O15640
SBP *+T,S SET FLAG Marke setzen
STB TEMPS,I STORE ADDRESS IN PLACE OF STMT
Adresse am Platz des Anweisungsspeichern
LDA TEMP3 SIA *+1 GET OP CODE holen
4709
4710
4711*
4712
07445 067412
07446 067430
LDB A,I SXA #+1 LDA A,I AND OPMSK SBR ADB A LDA TEMP3
CPB ST
JMP SFMT1 JMP NOFMT GET PAGE Seite holen
COMBINE kombinieren
RECALL STMT ADDRESS Anweisungsadresse zurückrufen
IS THIS A FORMAT STMT?
ist dies eine Formatanweisung
YES ja
NO, ERROR
nein. Fehler
07447 012025 FMTOP OCT 12025
Seite 95 PRINT; DISP; AND WRITE COMMAND EXECUTION
Druck-, Wiedergabe- und Schreibbefehlsausführung
4714*
4715*
4716*
4717*
4718*
THIS ROUTINE TAKES A RECORD FROM Diese Routine nimmt einen THE REFRESH BUFFER AND OUTPUTS IT Satz aus dem Erneuerungs-ON THE PRINTER. puffer und gibt ihn an den
Drucker aus.
309884/1370
4719 472O 4721
4722 4723 4724 4725 4726 4727 4728 4729 473O 4731 4732 4733 4734
4735 4736 4737 4738 4739* 4740* 4741* 4742* 4743* 4744 4745
4746 4747
4748 4749 4750 4751 4752 4753
07450 O7451 07452
07453 07454 07455 07456 07457 O746O 07461 O7462 07463 07464 07465 07466 07467
O747O 07471 07472 07473
021625 O7OO76 0014OO
070410 063007 067457 O67464 025625 061337 O214OO 031625 17O4O2 024030 O357O5 163516 025443
O75453 055705 067466 067461
021625 OLINE LDA FIRST
CL3
0L1 0L2
EW2
TCA ADA
SZA JSM JMP JMP LDB JSM LDA STA RET LDB STB JSM LDB
SBP DSZ JMP JMP BADDR
OL1
PRCHK
GET CHAR COUNT Zeichenzählung holen
BUFFER EMPTY? Puffer leer? PRINT? drucken? YES ja NO nein YES· ja
0L2
FIRST NDWRT BADDR FIRST
.12
FLOAT SAVE COUNT Zählung sichern REFRA,I KEYFG HAS A KEY BEEN ENTERED?
Tasteneingang?
0L3
FLOAT EW2
0L3
THIS ROUTINE OUTPUTS THE CODE Diese Routine gibt den Code IN A B TIMES A B-mal aus
07474 020041
07475 074412 MOUT
07476 074350
07477 035740
07500 031752
07501 021752
07502 061016 M02
07503 055740
07504 067501
07505 170402 M01
LDA .32 SBM M01
SZB M01 STB TMP
STA TMP6A LDA TMP6A JSM ONEXT DSZ TMP JMP M02-1 RET
COUNT NEGATIVE Zählung negativ
OR ZERO? oder Null?
NO? SAVE COUNT
nein, Zählung sichern
YES ja
309884/1370
PRINT; DISP; AND WRITE COMMAND EXECUTION Druck-, Wiedergabe- und Schreibbefehlsausführung
4755*
4756* WAIT 4757*
4758 07506
4759 07507
4760 07510
4761 07511
4762 07512
4763 07513
4764 07514
EXECUTION Ausführung abwarten
061217 160226
164172 075752 074142
075650 063465
EWAIT JSM FETCH GET COUNT Zählung holen
EW1 JSM FLTFA,I CONVERT TO INTEGER
in Ganzzahl konvertieren
JMP XEC4A,I OVERFLOW
SBM EW1
SBR 4
Überfüllung
4765 07515 164172
SZB EW1 JSM EW2 JMP XEC4A,I
DIVIDE BY 16
durch 16 dividieren
REFRESH DISPLAY Anzeige erneuern
4767 07516 002562 REFRA DEF REFRS
4768 07517 002512 CRC1A DEF CRC1
4769 07520 174456 MSLPT ABS -RBUFF-RBÜFF
4770 07521 003433 LN72 DEF RBUFF+RBUFF+73
4771 07522 000116 N OCT
4772 07523 177670 M72 DEC -72
309884/1370
2333908 97 SYNTA TABLES
Syntax-Tabel1en
174556 ABS RITE-+ STATEMENT NAME TABLE
Anweisungsnamentabelle
000241 SYN13 ί OCT 00241 GRAD GOSUB DIM
Seite 171422 ABS ENDS-+ 046105 ASC 1 ,LE DEG
4774* 171421 ABS ENDS-+ . 07556 052-66 OCT 52266 RAD
4775+ 171420 ABS ENDS-+ 07557 042111 ASC 1 .DI
4776+ STATEMENT SYNTAX JUMP TABLE
Anweisungssyntax-Sprungtabelle
174541 ABS LETS-+ O756O
4777 173760 ABS FMTS-+ 07561 DISP IMPLIED LET OP CODE 1OOOO1
impliziertes
4778 07524 174554 ABS PRINS-+ INPUT Eingang
4779 07525 006725 ABS READS-+ LET; OP CODE 110110
4780 07526 006732 ABS RSTRS-*
4781 07527 174551 ABS PRINS-+ *
4782 07530 006722 ABS READS-+.
4783 07531 173743 ABS DATAS-+
4784 07532 002741 ABS WAITS-*
4785 O7533 174070 ABS STOPS-+
4786 07534 171405 ABS ENDS-+-
4787 07535 002761 ABS RETNS-*
4788 07536 174011 ABS GOTOS-+
4789 07537 OOO147 ABS NEXTS-+
4790 07540 002714 ABS FORS-*
4791 07541 000151 ABS IFS-*
4792 07542 174005 ABS GOTOS-+"
4793 07543 006721 ABS REMS-*
4794 07544 002731 ABS DEFS-+
4795 07545 006660 ABS COMS-*
4796 07546 006702 ABS DIMS-*
4797 07547 174446 ABS ILETS-+'
4798 07550
4799 07551
4800 07552
4801 07553
4802 07554
4803 + 07555
4804*
4805+
4806
4807
4808
4809
309884/1370
2333908 046602
4810 07562 041517
4811 O7563 046603
4812 07564 042105
4813 O7565 O432O4
4814 07566 051105
4815 07567 046645
4816 07570 043517
4817 07571 052117
07572 123111
4818 O7573 O43247
4819 07574 O471O5
482O O7575 Q54124
07576 1O45O7
4821 07577 O47523
4822 07600 O525O2
O76O1 1O5122
4823 O76O2 O42524
4824 O76O3 052522
07604 047213
4825 07605
Seite 98 042516
4826 07606 042254
4827 07607 051524
4828 07610 047520
07611 126527
4829 07612 O4O511
4830 07613 052216
4831 07614 042101
4832 07615 052101
07616 107522
4833 07617 042501
4834 07620 O4222O
4835 07621 050122
4836 07622 044516
07623 052261
4837 07624
OCT 046602 DIM:000010 ASC 1,CO
OCT O466O3 COM: 000011 ASC 1,DE
OCT O432O4 DEFrOOO100 ASC 1,RE
OCT 046645 REM:100101 ASC 2,GOTO
OCT 123111 GOTO:100110 OCT 043247 IF:1OO111 ASC 2,NEXT
OCT 104507 NEXT:001001 nächstes ASC 2,OSÜB
OCT 1O5122 GOSUR: OO1O1O ASC 2,ETOR
OCT 047213 RETURN: 001011 zurück
SYNTAX TABLES
Syntax-Tabellen
ASC 1,EN
OCT 042254 END:101100 ASC 2,STOP
OCT 126527 STOP:101101 ASC 1,AI
OCT 052216 WAIT:001110 warten ASC 2,DATA
OCT 107522 DATA:001111
ASC 1,EA
OCT 042220 READ: 010000 lesen
ASC 2,PRIN
OCT 052261 PRINT:110001 drucken
309884/1370
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
07625 07626 07627 07630 07631 07632 07633 07634 07635 07636 07637 07640 07641 07642 07643 07644 07645 07646 07647 07650 07651 07652 07653 07654 07655
042111
05152O
132111
047120
052524
111506
047522
046501
052225
043117
051210
051105
051524
047522
042662
051101
042267
042105
043670
043522
040504
134527
051111
052105
175000
333
ASC 2,DISP
OCT 132111 DISP: 11O1OO ASC 2,NPUT
OCT 1115O6 INPUT: 010011 Eingang ASC 2,0RMA
OCT 52225 FORMAT: 010101 ASC 1,FO OCT 51210 FOR: 001000 ASC 3,RESTOR
OCT 42662 ASC 1,RA OCT 42267 ASC 1,DE OCT 43670 ASC 2,6RAD
RESTORE: 11OO1O zurückstellen RAD: 110111 DEG: 111000
OCT 134527 GRAD: 111001 ASC 2,RITE
OCT 175000 WRITE:111010 schreiben
SYNTAX
4857*
4858+
4859*
4860*
FETCH A STRING CONSTANT
STRING-Konstante abrufen
START STRING IN NEXT WORD OF SYNTAX BUFFER.THEN RECORD
OPENING QUOTE AND THE STRING LENGTH. EXIT WITH NEXT CHAR
IN (A)
STRING im nächsten Wort des Syntax-Puffers starten, dann Eröffnungsquote und STRING-Länge aufnehmen. Ausgang mit nächstem Zeichen in (A).
309884/1370
4861 + 4862* 48634*
4864* 4865
4866 4867 4868
4869 4870
EXIT TO ERROR IF NO OPENING QUOTE Ausgang nach Fehler, wenn keine Eroffnungsquote
EXIT TO ERROR IF NO CLOSING QUOTE Ausgang nach Fehler, wenn keine Abschlußquote
ENTER AT GETST+3, IF OPENING QUOTE ALREADY FOUND eintreten bei wenn Eröffnungsquote schon gefunden
07656 010043 GETST CPA B42 07657 067661 JMP
07660 160206 NOST JSM ERRA,I
07661 025706 LDB SBPTR
07662 035470
07663 074742
STB L2T1 SBR
4871 07664 063672 JSM CHRST
4872 O7665 160206 SYE14 JSM ERRA,I
4873 07666 O2O116
4874 07667 001474
4875 O767O 131470
4876 07671 065055
LDA QTOP
ADA TEMP1 STA L2T1,I
JMP GNEXT OPENING QUOTE?
Eröffnungsquote
YES ja
No nein
SAVE INITIAL SYNTAX Initialsyntax-Puffer-Hinweismarke sichern
BUFFER POINTER
SET TO START STORING IN LEFT HALF
auf Start setzen, in linker Hälfte speichern
GET STRING holen
NO CLOSING QUOTE keine Abschlußquote
STORE OPENING QUOTE Eröffnungsquote speichern
AND THE und die
STRING LENGTH
STRING-Länge
GET NEXT CHAR AND RETURN nächstes Zeichen holen und zurück
4877* 4878*
4879* 4880* 4881
48824· 4883* 4884* 4885*
PROCESS A CHARACTER STRING Zeichen-STRING verarbeiten
(A)=STRING TERMINATOR
(B)=CHARACTER POINTER; I=START IN RIGHT HALF OF
Zeichen-Hinweismarke CURRENT WORD
Start in rechter Hälfte des laufenden Wortes
O=START IN LEFT HALF OF NEXT WORD
Start in linker hälfte des laufenden Wortes
EXIT: P+1 ON END OF LINE am Zeilenende Ausgang
P+2 ON TERMINATOR CHAR FOUND
am gefundenen Terminator-Zeichen
(A)=NEXT CHARACTER nächstes Zeichen
309884/1370
4886* TEMPI=CHAR COUNT BIASED BY (B) ON ENTRY
Zeichenzählung um (B) am Eingang vorgespannt
4887* SBPTR=NEXT WORD NOT IN STRING nächstes Wort nicht in STRING
4888*
4889* O7672 O31475 CHRST STA TEMP2 RECORD TERMINATOR CHARACTER
Aufnahme-Terminator-Zeichen
4890 O7673 035474 CHRS1 STB TEMPI SAVE CHARACTER FLAG AND COUNTER
Zeichenmarke und Zähler sichern
JSM GETCH-1 GET CHARACTER Zeichen holen
CPA EOL
JMP CHRS3+1 EOL
CPA TEMP2 TERMINATOR?
JMP CHRS3 YES ja
LDB TEMPI
SLB CHRS2 SELECT WORD HALF
Worthälfte auswählen
4898 07703 141706 IOR SBPTR,I RIGHT HALF,MERGE
rechte Hälfe, mischen
4899 O77O4 131706 STA SBPTR,I WITH PREVIOUS CHAR
mit vorhergehenden Zeichen
4900 07705 077330 RIB CHRS1 ADVANCE COUNT
Zählung fortschreiben
4901 O77O6 O67673 JMP CHRS1 JUMP ON O COUNT
auf O-Zählung springen
4902 O77O7 O457O6 CHRS2 ISZ SBPTR LEFT HAT,F, ADVANCE POINTER
linke HMIr te Hinweismarke fortschreiten
POSITION CHAR Positionszeichen
4891 07674 O61O4O
4892 07675 O1OO31
4893 O7676 O67713
489"4 O7677 O11475
4895 O77OO O67712
4896 O77O1 O25474
4897 O77O2 074251
4903 O771O 070404 SAL 8 RET2
4904 O7711 O677O4 JMP*-5 SBPUD
4905 O7712 O6O365 CHRS3 JSM
4906 O7713 O64456 JMP
SET TO RETURN TO P+2
auf Rückkehr nach P+2 setzen
ADVANCE POINTER Hinweismarke fortschreiten
4907* 4908* NEXT STATEMENT SYNTAX
Syntax der nächsten Anweisung
4909*
4910 O7714 160246 NEXTS JSM VAROA,I FETCH SIMPLE VARIABLE
einfache Variable abrufen
4911 O7715 164322 JMP E25+2,I
4912 07716 164322 JMP E25+2,I NOT FOUND nicht gefunden
309884/1370
SYNTAX
4914* 4915* 4916*
4922 4923 4924* 4925*
4926*
4934* 4935*
4936* 4937* 4938 4939
07717 065151
JMP EOST
IF STATEMENT SYNTAX wenn Anweisungssyntax
07720 160202
07721 027726
07722 060546
07723 16O2O6
07724 O6O664
07725 O65151
07726 006750
IFS JSM FSCA,I GET DECISION FORMULA
Entscheidungsformel holen
LDB THENA
JSM STEXP DEMAND "THEN" "Dann" verlangen
AND STORE AS EXPANDED
OPERATOR
und als erweiterten Operator
SYNE7 JSM ERRA,I KOT FOUND-nicht gefunden
JSM LNUM DEMAND A SEQUENCE NUMBER Folgezahl verlangen
JMP EOST THENA DEF FOP13+FOP13
INITIALIZE THE TRIG UNITS TRIG-Einheiten initialisieren
LDB STB UNITS JMP XEC4AfI SBR JMP ERAD+1
07727 024012 ERAD
07730 035434
07731 164172
07732 O74742 EDEG
07733 067730
07734 024017 EGRAD LDB
07735 067730 JMP ERAD+1
FLOAT AND FIXED SYSTEM COMMAND EXECUTION Gleit- und Fest-System-Befehlsausführung
(A)=O
07736 072051 FLT SLA *+1 ,S
07737 031451 FIXED STA CTYPE
für Gleiten auf nicht Null setzen SET TO NON ZERO FOR FLOAT
SET TO ZERO FOR FIXED für fest auf Null setzen
07740 061066
07741 164174
07742 060750
07743 067740
JSM GETSK PARAMETER GIVEN?
Parameter gegeben?
JMP RDYDA,I NO nein
JSM DIGCK DIGIT? Ziffer?
JMP FIXED+1 NO, IGNOR IT
nein, ignorieren
309884/1370
4944
4945 4946
4947 4948 4949*· 4950*
4951* 4952 4953
4954 4955 4956
4957 4958*
4959
496O 4961 4962
4963 4964* 4965* 4966* 4967* 4968
07744 055400
07745 024143
07746 061131
07747 035452 07750 164174
3V*
DSZ BADDR
LDB M12
JSM PGINO
STB CPLAC JMP RDYDA,!
YES,RESET POINTER
ja, Hinweismarke nullstellen
GET DIGIT FIELD,ALLOW O Ziffernfeld holen, O erlauben
TRACE SYSTEM COMMAND EXECUTION Verfolgungssystem-Befehlsausführung
07751 O24O62 TRAC2 LDB tLGBT
07752 035441
07753 O7633O
STB TFLG1+1 SET -(MAXIMUM UPPER LIMIT) -(max.Obergrenze) setzen
RIB TRAC3 SET MAXIMUM (UPPER-LOWER LIMIT) max. (Ober- Untergrenze) setzen
07754 07165O TRACE SZA TRAC2 ANY PARAMETERS?
irgendwelche Parameter?
07755 060730
JSM GETAD FIND ADDRESSES
Adresse auffinden
07756 074076 TCB
NORMAL: (B)=; CLEAR TRACE FLAG
Verfolgungsmarke löschen
07757 035441 NORML STB TFLG1+1 STORE-(UPPER LIMIT)
-(Obergrenze) speichern
07760 OO5477 ADB TEMP4
07761 O74O76 TRAC3 TCB
07762 O3544O STB TFLG1 STORE (UPPER LIMIT - LOWER
LIMIT)
(Obergrenze-Untergrenze) speichern
07763 164174 JMP RDYDA,I
EXECUTE READ lesen ausführen
07764 16O2O1 EREAD JSM FORMA,I GET VARIABLE ADDRESS IN HSTPT
Variablenadresse in HSTPT holen
309884/1370
SYNTAX
4969 07765 160256
4970 07766 060412
4971 07767 021421
4972 07770 011472
4973 07771 164172
4974 07772 067764
JSM FDAAA,I FIND DATA AND SAVE IN AR2 Daten auffinden und in AR2
JSM RSULT
LDA PRADD CPA TEMPS
JMP XEC4A,I JMP EREAD
sichern
STORE DATA Daten speichern
MORE VARIABLES TO COME? kommen noch mehr Variable?
NO; RETURN nein; zurück
YES; LOOP ja; Schleife
309884/1370
9830-PROGRAM EXECUTION
Programm-Ausführung
4976* 4977 4978* 4979* 4980* 4981 4982
4983
4984 4985 4986 4987 4988 4989
4990 4991* 4992* 4993*
4994* 4995 4996 4997
4998
4999 5OOO 5001
5002 5003
1OOOO
ORG 10000B
INITIALIZATION Initialisierung
10000 020112 XEC
10001 031777
10002 O6O653
10003 062162
10004 031416
LDA RSTKA STA RSPTR GUARANTEE EMPTY STACK leeren Stapelspeicer garantieren
JSM INITS+2 RESET STACK POINTERS
Stapelspeicher-Hinweismarken nullstellen
JSM ESTAC
STA MODE
10005 021725 XEC3 LDA NXTST
10006 061075
10007 066066
10010 O66O11
10011 035421 ERTN1 PROCEED TO XEC4
JSM FNDPS
JMP EEND+1
JMP *+1 START NEW STACKS
neue Stapelspeicher starten
SET TO PROG (O)
auf Programm (O) setzen
GET STARTING STATEMENT NUMBER Startanweisungszahl holen
FIND STARTING ADDRESS Startadresse auffinden
BEYOND END OF PROG hinter Programmende ·
BETWEEN LINES zwischen Zeilen
STB PRADD nach XEC4 vorgehen
EXECUTE NEXT PROGRAM STATEMENT nächste Programmanweisung ausführen
10012 024062 XEC4
10013 021443
10014 050104
10015 035443
10016 OOO145
10017 072210
10020 O2OO66
10021 031440
10022 066025
LDB FLGBT LDA KEYFG AND B177
STB KEYFG
ADA M14 RZA ++4 LDA INF
STA TFLG1 JMP XEC7 MASK OFF SHIFT BIT Schiebebit ausblenden
RESET KEY FLAG Tastenmarke nullstellen
TRACE KEY? Verfolgungstaste?
YES, SET ALL TRACE
ja, alle Verfolgungen setzen
309884/1370
5004 1OO23 074742 XEC7
5005 10024 O1OO33
5006 10025 035441
5007 10026 025416
5008 10027 074110
5OO 9 1OO3O O66O7O
5010 10031 025442
5011 10032 076150
5012 1OO33 025421 XEC5
5O13 1OO34 O15436
5O14 1OO35 O66151
5015 10036 015437 XEC6
5016 1OO37 066151 MER1
5017 1OO4O 015423
5018 10041 160206
5019 1OO42 005441
5020 10043 074313
5021 10044 005440
5022 10045 074212
5023 10046 062136
5024 1OO47 061337 XEC 8
5025 10050 061344 XEC 9
5026 1OO51 060572
5027 10052 004135
5028 1OO53 005466
5029 10054 074437
5030 10055 074737
SBR CPA STB
LDB SZB
JMP LDB RZB
LDB CPB JMP CPB JMP
CPB JSM ADB SBP
16 B20 NORMAL KEY? Normaltaste?
TFLG1+1 YES, CLEAR TRACE
ja, Verfolgung löschen
MODE
#+2 KEYBOARD EXECUTION? Tastatur-Ausführung?
YES, EXIT ja, Ausgang
CALEX STPFL XEC
PRADD HFLG1 STOPE HFLG1+1 STOPE
PBPTR
SKIP IF STOP; STEP; OR ERROR überspringen, wenn STOP; Schritt; oder Fehler
HALT IF ADDRESS = FLAG Halt wenn Adresse = Marke
PAST END OF PROGRÄM? hinter Programmende
ERRA,I YES, IMPROPER TERMINATION
ja, unrichtige Terminierung
TFLG1+1 ADD -(UPPER LIMIT)
-(Obergrenze) addieren
XEC8 SKIP IF NOT IN TRACE LIMITS überspringen, wenn nicht in Ver f ο1gungsgrenζ en
ADB TFLG1 ADD (UPPER LIMIT-(LOWER LIMIT)) (Obergrenze-(Untergrenze) addieren
SBM JSM
JSM JSM JSM
XEC8 PLINE
NDWRT CRLF1
OUTPUT LINE# TO BUFFER Ausgangszeilen^ zum Puffer
PRINT ON PRINTER drucken
NEXTL-2 FIND OP-CODE AND PAGE
OP-Code und Seite auffinden
ADB M4 ADB LOCL1 ADB JMP
B, I
B,I
GET JUMP TABLE STARTING ADDRESS Sprungtabellen-Startadresse holen
ADD IN- (OP CODE)
in (OP-Code) addieren
ADD RELATIVE JUMP ADDRESS relative Sprungadresse addieren
JUMP TO STATEMENT EXECUTION zur Anweisungsausführung springen
5031* 309884/1370
Seite 103 , 9830-PROGRAM EXECUTION
Programm-Ausführung
5032* EXECUTE LET OR IMPLIED LET STATEMENT LET- oder implizierte LET-Anweisung ausführen
5033* 10056 Ο26Ο63 ELET LDB DISPA 10064 OOOOOO BSS 1
5034 1ΟΟ57 021416 LDA MODE
5035 1ΟΟ6Ο 073610 RZA ELET-
5036 10061 062563 JSM FORMX
5037 10O62 066012 JMP XEC4
5038 1ΟΟ63 Ο13747 DISPA DEF DISP
5039
504O* 5041 *************************++****
5042*
5043
GET JUMP ADDRESS FOR DISP EXEC Sprüngadresse für Wiedergabeaus führung holen
GET CALC/PROG FLAG Rechnen/Programm-Marke holen
SKIP IF CALC MODE überspringen, wenn Rechenbetrieb
PROG- EVALUATE FORMULA Programm-Formel auswerten
CHECKSUM WORD
Summenprobe Wort
5044*
5046* 5047* 5048* 5049*
5053* 5054* 5055*
END EXECUTION Ausführung Ende
10065 061225 EEND JSM LDEF 10066 060653
10067 066106 JSM INITS+2 RESET POINTERS AND STACKS
Hinweismarken und Stapelspeicher nullstellen
JMP ESTOP
EXIT FOR CALC MODE Ausgang für Rechenbetrieb
10070 021421 CALEX LDA PRADD
10071 071652 SAM EEND+1 SKIP IF DECOMPILED
überspringen, wenn dekomiliert
10072 000020 ADA
1OO73 031412
5060 10074 060567 STA LSTPT RESET STACK POINTER
Stapelspeicher-Hinweismarke nullstellen
/1370
5067 5068 5069 5070 5071
5072 5073 5074 507 5+ 5076+
5077+
10075 060566 JSM UNSTK-1
10076 031411
10077 060567
10100 031410
10101 060567
10102 031412
10103 121413
10104 045413
10105 071713
STA TSTPT
JSM UNSTK STA LSTAK JSM UNSTK STA LSTPT
LDA HSTPT,I ISZ HSTPT SAP *-2 RESTORE PROGRAM POINTER Programm-Hinweismarke rückstellen
RESTORE T-STACK POINTER T-Speicher-Hinweismarken r ckstellen
RESTORE rückstellen
L-STACK POINTERS L-Speicher-Hinweismarken
10106 ESTOP EQU * 10106 160264 CALX2 JSM CRCKA,I
10107 070742
10110 031430
10111 164173
SAR STA LNINC JMP PEXMA,I YES, PROVIDE CR-LF IF NEEDED ja, CR-LF vorsehen, wenn benötigt
GET OUT OF AUTO aus AUTO
INITIALIZATION FOR KEYBOARD EXECUTION Initialisierung für Tastatur-Ausführung
10112 025412 ECAL LDB LSTPT
10113 035472 STB TEMPS
10114 020233 LDA SBUFA
10115 011706 ECAL1 CPA SBPTR
10116 066122 JMP ECAL2
10117 070537 LDB A,I
10120 060563 JSM SLWST
10121 073630 RIA ECÄL1
10122 025472 ECAL2 LDB TEMPS
10123 060563 JSM SLWST
SAVE ORIGINAL STACK POINTER Original-Stapelspeicher-Hinweismarke sichern
TRANSFER SYNTAX
BUFFER INTO
STACK AREA
Syntax-Puffer in Stapelspeicherbetrieb überführen
STACK OLD LSTPT
altes LSTPT speichern
309884/1
Seite 104 9830- PROGRAM EXECUTION
Programm-Ausführung
5O98#
5099+
5100* 5101
5112* 5113* 5114*
10124 021412
10125 025410
10126 060563
10127 025411
10130 060563
10131 060562
10132 031421
10133 062162
10134 060602
10135 066052
LDA LSTPT
LDB LSTAK JSM SLWST
LDB TSTPT JSM SLWST
JSM SLWST-1 STA PRADD JSM ESTAC JSM NEXT1-4 JMP XEC9 GET GET NEW END OF LINE POINTER neues Ende der Zeilen-Hinweismarke holen
STACK LSTPT
Stapelspeicher LSTPT
STACK TSTPT
Stapelspeicher TSTPT
STACK OLD PRADD Stapelspeicher altes PRADD
SET PRADD TO END OF BUFFER PRADD auf Pufferende setzen
SET UP NEW STACKS neue Stapelspeicher aufsetzen
GET PAGE AND OP CODE Seite und OP-Code holen
PRINT CURRENT LINE NUMBER FOR TRACE AND STOP laufende Zeilenzahl für Verfolgen und Stop drucken
10136 160264 PLINE JSM CRCKA,I
10137 160170 JSM CLERA,i
10140 025421
10141 015423
10142 066146
10143 125421
10144 074073
10145 160210
10146 020053
10147 061016 1O15O 064373
LDB PRADD CPB PBPTR
JMP
LDB PRADD,I SBP *+1,C JSM OUTIA,I
LDA COLON JSM ONEXT JMP ICNT GIVE CRLF IF PRINT CRLF geben, wenn Druck
CLEAR BUFFER
Puffer löschen
PAST END OF PROG? hinter Programmende? YES, DONT PRINT LINE* ja, nicht Zeilen# drucken
OUTPUT CURRENT LINE # Ausgang laufendes Zeilen
OUTPUT A: Ausgang ein:
COMPUTE CHAR COUNT Zeichenzählung rechnen
STOP EXECUTION Ausführung Stop
309884/1370
5124* 5125* 5126*
5127# 5128
5133 5134 5135 5136 5137 5138 5139
5141 + 5142# 5143*
10151 074412 STOPE SBM STP1
10152 062136
10153 031466
10154 021450
10155 O7221O
10156 035701
10157 061332
10160 O613.44
10161 O661O6 STP1
JSM PLINE
STA L0CL1 LDA PMODE RZA STP1
STB NDISP JSM .NPWR+2 JSM CRLF1 JMP ESTOP SKIP IF ERROR MESSAGE überspringen, wenn Fehlernachricht
OUTPUT LINE* AND COMPUTE COUNT Ausgang Zeilen#
SAVE COUNT Zählung sichern
PRINT IF PRINT-ALL drucken,wenn "Alles drucken"
RETURN TO MONITOR zurück zum Monitor
INITIALIZE STACKS FOR EXECUTION Stapelspeicher für Ausführung initialisieren.
1OT62 O25412 ESTAC LDB LSTPT
10163 OO4134
10164 O35411
10165 OO4O33
10166 Ό3541Ο
1O167 10170 10171 10172 10173 10174 10175 10176
O35412 060553 074742 13541O 035432 024132 135413 16417O
ADB M3 STB TSTPT
ADB STB LSTAK
STB LSTPT JSM BHSTP SBR STB LSTÄK#I STB DRQST LDB M1 STB HSTPT,I JMP CLERA,I START AT OLD LSTPT Start beim alten LSTPT
OFFSET T-STACK POINTER BY 4 T-Speicher-Hinweismarke um versetzen
ALLOW 12 WORDS FOR T-STACK 12 Worte für T-Speicher erlauben
INITIALIZE THE PRINT BUFFER Druck-Puffer initialisieren
EXECUTE IF STATEMENT Ausführen, wenn Anweisung
309884/1370
3HS"
9830- PROGRAM EXECUTION
Programm-Ausführung
5144
5145 5146
5147 5148 5149
5150
5151 5152 5153
5154 5155
5156 5157
5158 5159 5160* 5161*
5162*
5165 5165
10177 061217 EIF JSM FETCH
10200 021755
10201 070250
10202 062217
10203 025416
10204 076150
10205 031421
10206 066012
10207 025421
10210 004020
10211 035466
10212 125466
10213 074113
10214 072053
10215 131466
10216 066012
LDA AR2+1 SZA EG0S4
EG0S1 JSM EADD LDB MODE RZB EG0S4+1
STA PRADD
EG0S4 JMP XEC4 LDB PRADD ADB
STB LOCL1 LDB LOCL1,1
SBP' *+2 SAB *+1,S
STA LOCL1,1 JMP XEC4 EVALUATE FORMULA AND RETURN
RESULT
Formel auswerten und Ergebnis
zurück
GET FIRST WORD OF MANTISSA erste Mantissenwort holen
SKIP IF FALSE
überspringen, wenn falsch
GET ADDRESS Adresse holen
SKIP IF KEXBOARD MODE überspringen, wenn Tastenbetrieb
STORE IN PROGRAM POINTER in Programm-Hinweismarke speichern
GET ADDRESS OF OLD PRADD Adresse des alten PRADD holen
GET OLD PRADD
altes PRADD holen
SAVE DECOMPILE FLAG Dekompiliermarke sichern
SUBROUTINE TO GET ADDRESS Unterprogramm um Adresse zu holen
10217 045472 EADD
10220 121472
10221 070372
10222 061075
10223 066224
ISZ TEMPS LDA TEMPS,I TET LINE # OR ADDRESS
Zeilen #· oder Adresse holen
SAM EADD1fC
JSM FNDPS
JMP /+1
10224 160206 NGOTO JSM ERRA,I
10225 074117 LDA B
ADDRESS FORMAT? Adressenformat?
NO, GET ADDRESS nein, Adresse holen
NOT FOUND nicht gefunden
MOVE ADDRESS TO (A) Adresse nach (A) bewegen
309884/1370
517O 5171
5172
5173*
5174*
5175*
5176
5178 5179
5180 5181 5182
5190* 5191* 5192* 5193
5194* 5195
1022
10227 135472
3%
SBP *+1,S STB TEMPS,I STORE COMPILED FORMAT
kompiliertes Format speichern
10230 170402 EADD1 RET ADDRESS IN (A) Adresse in (A) EXECUTE RETURN Rückkehr ausführen
10231 160206 ER3 JSM ERRA,I
10232 125412 ERTRN LDB LSTBPT,
10233 O55412
10234 075650
10235 021472
10236 070070
10237 011421
10240 066243
10241 075413
10242 067106
10243 060771
10244 073650
10245 075212
10246 066011
DSZ LSTPT SZB ER3
LDA TEMPS SIA #+1 CPA PRADD
JMP *+3 SBP ER3
JMP RETjJN JSM GTOPP RZA -«-3
SBM ER3 JMP ERTN1 INCORRECT RETURN STATEMENT unrichtige Rückkehranweisung
GET TOP OF RETURN STACK Spitze des Rückkehr-Stapelspeichers holen
SKIP IF NO RETURN überspringen, wenn nicht zurück.
RETURN A FORMULA?
Formel zurück?
NO nein
YES, FUNCTION RETURN ALLOWED? ja, Funtionsruckkehr erlaubt?
YES, EXECUTE
ja, ausführen
GET NEXT OPERAND
nächsten Operanden holen
RETURN AND SINGLE VARIABLE? zurück und einzelne Variable?
NO, GOSUB RETURN ALLOWED? nein, GOSUB-Rückkehr erlaubt?
YES, SET RETURN ADDRESS ja, Rückkehradresse setzen
FOR STATEMENT FOR-Anweisung
10247 011767 NOPCD OCT 11767 ENCODED OP CODE "NEXT"
codierter OP-Code für "nächste.
JSM SSYMA,I
10250 060771 EFOR JSM GTOPP
10251 160177
10252 160252
10253 035474
10254 021407
GET FOR-VARIABLE
nächste FOR-Variable holen
FIND IT IN SYMBOL TABLE in Symboltabelle auffinden
JSM ENTEA,I NOT FOUND - ENTER IT
nicht gefunden, eingeben
STB TEMP1
LDA SYMTP SAVE ABS ADDRESS ALSO auch ABS-Adresse sichern
309884/1370
ORlGlNAl- INSPECTED
Seite 106 9830-PROGRAM EXECUTION
Programm-Ausführung
TCA A COMPUTE RELATIVE ADDRESS
Relativadresse rechnen
5200 10255 070076 ADB M10 MOVE HSTPT TO LOWER
HSTPT nach unten schieben
5201 10256 070037 LDA HSTPT ADDRESS TO ACCOMODATE
Adresse zum Anpassen
5202 10257 O2O141 ADA HSTPT THE NEW FOR VAR.
neue FOR-Variable
5203 10260 001413 STA TEMP 3 SAVE IT FOR MVTOH"IF NEEDED
für MVTOH sichern wenn
benötigt
5204 10261 031413 STA HSTPT, ,1 SAVE RELATIVE SYMBOL TABLE
5205. 10262 O31476 STB
5206 10263 135413
5207*
5208
5209*
5210
10264 060554
POINTER
Hinweismarke für relative
Symboltabelle sichern
JSM BHSTP+1 OVERLAY? Überlagerung?
10265 0OO061 EF0R2 ADA
10266 070537 LDB A,I
10267 074512
10270 O31475
SBM EF0R1
STA TEMP2
5214 10271 115413 CPB HSTPT,I
5215 10272 066274 JMP #+2
5216 10273 066265 JMP EF0R2
5217*
5218 10274 OOOO61 ADA .10
LOAD THE REALITIVE SYMBOL TABLE POINTER
Hinweismarke für relative Symboltabelle laden
IF MINUS MEANS BOOTOM OF
HIGH STACK
minus bedeutet Boden des hohen
Stapelspeichers
SAVE THIS ADDRESS FOR MVTOH IF NEEDED
diese Adresse für MVTOH sichern, wenn benötigt
IS THIS F.V. THE SAME? ist diese F.V. dieselbe?
YES - GO DELETE IT ja, entfernen
NO- LOOP BACK FOR NEXT ONE nein, zurück zur nächsten
SET UP LAST WORD OF DESTINATION
letztes Wort der Bestimmung aufsetzen
309884/1370
1O275 031477
10276 061121
STA TEMP4 JSM MVTOH
5221 10277 025477 LDB TEMP4
5222 103OO 035413 STB HSTPT
5223 +
5224 1O3O1 160201 EF0R1 JSM FORMA
5225*
5226 1O3O2 O61371 JSM FIX
5227 10303 060416 JSM STORE
DELETE IT AND MOVE REST TO HIGHER MEMOR
entfernen und Rest zum höheren Speicher schieben
RESET HSTPT nullstellen
5228* 1O3O4 O61217
5229 10305 025413
5230 10306 O74O7O
5231 10307 O6O4O6
5232
5233* 10310 O2OO2O
5234 10311 060445
5235 10312 021472
5236 10313 011421
5237 10314 066316
5238 10315 061217
5239 10316 025413
5240 1.0317 004022
5241 10320 060406
5242
5243* 10321 004021
5244 1O322 021421
5245 10323 074557
5246
JSM FETCH LDB HSTPT
SIB *+1
JSM XFAR1+1
LDA ONE
JSM XFAR2+1 LDA TEMPS
CPA PRADD JMP
GET (A) AND (B) FIXED Ul holen (A) und (B) fest -auf
STORE AR2 IN INITIAL VALUE TABLE
AR2 in Anfangswerttabelle speichern
FET ENDING LIMIT E dgrenze holen
TRANSFER END LIMIT Endgrenze transferieren
TO HSTPT+1 THUR +4
SET AR2=1
setzen
JSM FETCH LDB HSTPT ADB .5
JSM XFAR1+1
ADB .4
LDA PRADD STA B,I IS THERE A STEP SIZE? Schrittweite dort?
NO, LEAVE 1 in AR2 nein, 1 in AR2 lassen
YES- GET IT ja, holen TRANSFER STEP Schrittweite nach SIZE HSTPT+4 transfe-
TO HSTPT+4 rieren
STORE NEXT
EXECUTABLE
nächste ausführbare Zeilenadresse in
LINE ADDRESS IN HSTPT+9 spei-HSTPT+9 ehern
5247*
30988 U /1370
5248* FIND THE CORRESPONDING NEXT STATEMENT (TEMPS AND PRADD
5249+ WILL BE UP-DATED ACCORDINGLY), THEN CHECK IF THE "FOR"
5250* LIMITS ARE CORRECT FOR LOOPING. IF NOT- ERASE FOR INFORMATION
5251* AND JMP TO XEC4 TO CONTINUE AFTER THE "NEXT" STATEMENT.
5252* IF THE "FOR" LOOP WAS VALID, LOAD HSTPT+9(THE ADDRESS
FOLLOWING
5253* THE "FOR" STATEMENT) AND EXCUTE FROM THERE (XEC4+1).
Entsprechende nächste Anweisung auffinden (TEMPS und PRADD werden entsprechend auf den neuesten Stand gebracht), dann prüfen, ob "FOR"-Grenzen richtig für Schleife sind, wenn nicht - FOR-Information löschen und nach XEC4 springen, um nach der "nächsf-Anweisung fortzufahren. Wenn "FOR"- Schleife gültig war, HSTPT+9 laden (die der "FOR"-Anweisung folgende Adresse) und von dort (XEC4+1) ausführen.
5254* 107 9830- PROGRAM EXECUTION isführu
5255* Programm-Al NOPCD
Seite 10324 022247 LDA SYTSH
10325 062413 JSM BERR,C
5256 1Ο326 074373 SBP TEST
5257 10327 062405 JSM #-4
5258 10330 075613 SBP
5259 FIX
5260 10331 061371 JSM OPCH1
5261* 10332 063444 JSM
5262
5263
5264 10333 035475 STB TEMP2
5265 10334 066361 JMP FTEST
5266*
5267 10335 160206 BERR JSM ERRA,I
LOAD SEARCH CODE
Such-Code laden
FIND A NEXT STATEMENT nächste Anweisung auffinden
B IS NEGATIVE IF FOUND B ist negativ, wenn gefunden
GO CHECK IF SAME VARIABLE prüfen, wenn selbe Variable
LOOP BACK UNLESS FOUND zurück, wenn nicht gefunden
GET A AND B REG FIXED FOR A und B Register holen fest für
FOR CONVERTING INT, SPLIT, OR FULL TO FULL
konvertieren INT, Spalten, oder voll bis voll
CHECK IF LOOP IS VALID prüfen, ob Schleife gültig
NO CORRESPONDING "NEXT" OR
INCORRECT NESTING kein entsprechendes "nächst" oder unrichtige Schachtelung
5268*
309884/137G
2333908
5269* NEXT STATEMENT
5270*
5271*
5272 10336 125413 ENE
5273 10337 075712
5274 10340 005407
5275 1O341 035474
nächste Anweisung
ENEXT LDB HSTPT,I RECOVER SYMBOL TABLE ADDRESS
Symboltabellen-Adresse wiederfinden
SBM BERR
ADB SYMTP
STB TEMPI
ERROR BOTTOM OF STACK Fehler Stapelspeicherboden
COMPUTE ABS ADDRESS OF VARIABLE ABS-Adress der Variablen rechnen
5276 10342 062405 JSM TEST IF B IS -, GET OUT OF LOOP
wenn B-, aus Schleife geben
061371 JSM Endgrenze FIX A AND B FOR
A fest und B "FOR"
I +
5277 1O343 074252 SBM *+5 IF + THE VARIABLE WASN'T 063444 JSM Schrittweite CONVERT INT OR SPLIT TO FULL
INT oder SPLIT bis voll
konvertieren
5278 1O344 020061 LDA .1O FOUND
wenn +, war Variable nicht
gefunden
021413 LDA ON RETURN (B) IS POINTING
SO DINC THE HSTPT AT NUMBER
bei Rückkehr zeigt (B) auf
Zahl
5279 10345 001413 ADA HSTPT AND LOOP BACK und zurück 000022 ADA FIX LOAD (A) WITH STEP SIZE
5280 1O346 031413 STA HSTPT OPCH1 ADDRESS
(A) mit Schrittweitenadress
laden
5281 1O347 066336 JMP ENEXT 160216 JSM HSTPT
5282* TEMPI IS POINTING AT SYMBOL IN SYMBOL TABLE
zeigt auf Symbol in Symbol-Tabelle
5283* HSTPT+1 = ENDING ] .5
5284* LIMIT
5285+ HSTPT+5 = STEP SIZE .FADA,
5286+
5287*
5288 10350
5289 10351
529O 1O352
5291 1O353
5292 1O354
5293*
309884/1370
2333908 JSM OPC1
5294 10355 063454 STB TEMP 2
5295 10356 035475
5296* JSM FIX
5297 10357 061371 JSM STORE
5298 10360 060416
SAVE AR2 AT 147OB AR2 bei 147OB sichern
SAVE 147OB IN TEMP2 147OB in TEMP2 sichern
FIX (A) AND (B) FOR .XFR (A) und (B) für .XFR fixieren
STORE ANSWER IN VALUE
TABLE
Antwort in Werttabelle rückspeichern
5299* 10361 025413 FTEST LDB HSTPT (B) = ADDRESS OF END LIMIT
Adresse der Endgrenze
53OO 10362 O74070 SIB *+1 GET SIGN Vorzeichen von
OF STEP Schrittweite holen
5301 10363
10364
021413
000022
LDA
ADA
HSTPT
.5
SIZE .
5302
5303
10365 O7O517 LDA A,I
5304 10366 O7O151 SLA *+3 STEP SIZE IS-, F.V.-END LIMIT
5305 10367 021475 LDA TEMP 2
5306
5307 10370 O66373
5308 10371 074117
JMP *+3 LDA B = AR2
Schrittweite ist-, F.V.-Endgrenze= AR2
STEP SIZE IS +, END LIMIT-F.V.
= AR2
Schrittweite ist + , Endgrenze-F.V.= AR2
5309 10372 O25475 LDB TEMP 2 HSTPT
5310 10373 160217 JSM .FSBA,I .9
5311 + AR2
Seite 108 9830- PROGRAM EXECUTION
Programm-Ausführun
*+4
5312 10374 021413 LDA
5313 10375 000026 ' ADA
5314 10376 025754 LDB
5315 10377 074211 SLB
5316*
(A) IS POINTING AT NEXT (A) zeigt auf nächste
EXECUTABLE LINE ADDRESS ausführbare Zeilenadresse
TEST AR2 FOR + RESULT AR2 auf + Ergebnis testen
309884/1370
5317 10400 070070 5318 ΪΟ4Ο1 031413 5319 10402 066012
5320*
532t 10403 Q7O537 10404 0660.11
SIA
STA HSTPT
JMP XEC4
LDB A,I JMP ERTN1 AR2 WAS NEGATIVE, ERASE AR2 war negativ, löschen
"FOR" LOOP INFORMATION "FOR"-Schleifen-Information
AND EXECUTE LINE AFTER
"NEXT"
und Zeile nach "NEXT" ausführen
AR2 WAS POSITIVE OR O, AR2 war positiv oder 0
EXECUTE STMT AFTER "FORV Anweisung nach TOR" ausführen
Seite 1O9 9830- PROGRAM EXECUTION
Programm-Ausführung
5324* 5325*
5326* 5327
5333* 5334*
5335* 5336* 5337*
5338* 5339*
53 40*
SUBROUTINES FOR "FOR" AND "NEXT" STATEMENTS. Unterprogramme für "FOR"- und "NEXT"- Anweisungen
1O4O5 061371 TEST JSM FIX
10406 141472
10407 Ό5Ο115
10410 111474
10411 076053
10412 17O4O2
RETURN WITH TYPE CODE OF F.V. zurück mit Typ-Code von F.V.
IOR TEMPS,I IN A. IOR IN THE F.V. AND PAGE in A. IOR in der F.V. und Seite
AND B1777 REMOVE PAGE. Seite entfernen
CPA TEMP1,1 DO THE VARIABLES AGREE? stimmen Variable zu?
SBP *+1,S THEY WERE THE SAME FLAG B
waren dieselben, B markieren
RET DID NOT AGREE B IS +.
stimmte nicht zu, B ist +
CALLING SEQUENCE FOR SYTSH Folge für SYTSH rufen
LDA OP CODE (PAGE-OP CODE) (Seiten-OP-Code)
JSM SYTSH (TEMPS IS POINTING AT LINE k .) (TEMPS zeigt auf Zeilen /t .)
ON RETURN bei Rückkehr
(B) = -, OP CODE FOUND PRADD IS POINTING AT NEXT
LINE ^
OP-Code gefunden, PRADD zeigt auf nächste Zeilen #■ .
309884/1370
2333903
5341*
5342* 10413 031475 SYTSH STA TEMP 2
5343 10414 025421 LDB PRADD
5344 10415 015423 CPB PBPTR
5345 10416 170402 RET
5346 1O417 035472 STB TEMPS
5347 10420 060577 JSM NEXTL
5348 10421 OO1466 ADA LOCL1
5349 10422 011475 CPA TEMP 2
5350 10423 077553 SBP #-5,S
5351 10424 066414 JMP SYTSH
5352
ERROR RETURN = OP CODE NOT FOUND Fehler Rückkehr = OP-Code nicht gefunden
SAVE SEARCH CODE Such-Code siehe
CHECK IF END OF PROGRAM prüfen, ob Programmende
YES - RETURN WITH (B) +. ja, zurück mit (B)
NO - SET TEMPS =PRADD nein, TEMPS= PRADD setzen
JSM NEXTL+3 LOOK AT THE NEXT STATEMENT
auf nächste Anweisung setzen
ENCODE PAGE AND OP CODE Seiten- und OP-Code codieren
WAS IT = TO TEMP2 (SEARCH
CODE) ?
war es= nach TEMP2 (Such-Code)?
YES, RETURN WITH (B) NEGATIVE ja, zurück mit (B) negativ
NO- LOOP BACK
nein, zurück
309884/1370
- 3m- -
Seite 110 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
5354* 5355* 5356* 5357+
5358+ 53 59*
536O# 5361
5376*
FIND THE NEXT DATA ITEM AND MOVE IT TO AR2
NXTDT MUST BE POINTING AT THE NEXT DATA ITEM OR
EQUAL TO DSTRT* IF EQUAL TO DSTRT FDATA WILL SEARCH
FOR THE NEXT DATA STATEMENT.
Nächsten Datenbegriff auffinden und nach AR2 schieben NXTDT muß auf nächsten Datenbegriff zeigen oder gleich DSTRT sein. Wenn gleich DSTRT, sucht FDATA nach nächster Datenanwei sung.
10425 062437 FDATA JSM SWITH SAVE TEMPS, TEMPS = NXTDT sichern
10426 021421
10427 031642
10430 025472
10431 015414
10432 066445
10433 16O232
LDA PRADD STA SAVE LDB TEMPS CPB DSTRT
JMP .FDA1 IF NXTDT (TEMPS) AND DSTRT
ARE =;
wenn NXTDT
(TEMPS) und DSTRT=
GO FIND NEXT DATA STATEMENT nächste Datenanweisung auffinden
10434 10435 10436 10437 10440 10441 10442 10443
045472 021642 031421 021472 025415 031415 035472 170402 JSM SNFLA,I OR CONVERT SYNTAX TO FULL
oder Syntax nach voll konvertieren
ISZ TEMPS LDA SAVE STA PRADD SWITH LDA TEMPS LDB NXTDT STA NXTDT STB TEMPS RET
10444 160206 ER60 JSM ERRA,I OUT OF DATA
außerhalb der Daten
10445 035421 .FDA1 STB PRADD
10446 022454 LDA DATCD
LOAD "DATA" STATEMENT
SEARCH CODE
"Daten"-Anwei sungs-Such-Code
laden
309884/1370
5380 1O447 062413
5381 10450 075613
5382 10451 025421
5383 10452 035414
5384 10453 O66430
5385*
5386
JSM SYTSH FIND NEXT DATA STATEMENT
nächste Datenanweisung auffinden
SBP ER60 IF (B) WAS +, NO MORE DATA
FOUND
wenn (B) + war, keine Daten
mehr gefunden
LDB PRADD
STB DSTRT
JMP FDATA+3 DATA WAS FOUND GO CHECK IF
- ANY DATA WITH IT Daten wurden gefunden, prüfen ob irgendwelche Daten mit dabei
1O454 O11761 DATCD OCT 11761
Seite 111 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
5388*
5389*
EXCUTE INPUT *
10455 021622 EINPT
10456 072110
10457 160170
10460 021472
10461 OOO133
10462 031641
10463 021641
10464 031421
10465 020262
10466 O31432
Eingang ausführen
LDA TERM RZA *+2 JSM CLERA,I LDA TEMPS ADA M2 STA SPRDD
LDA SPRDD STA PRADD
LDA INREA STA DRQST
1O467 164173 INRET JMP PEXMA,I
10470 055400
10471 025641
10472 061007
10473 035421
DSZ BADDR LDB SPRDD JSM NEXTA
STB PRADD SAVE START OF INPUT STATEMENT Start der Eingangsanweisung sichern
SET PRADD TO START OF
INPUT STATEMENT PRADD auf Start von Einganganweisung setzen
SET UP RETURN Rückkehr aufsetzen
SET DATA REQUEST FLAG Datenforderungsmarke setzen
CALL FOR DATA nach Daten rufen
SET PRADD BACK TO END PRADD zurück auf Ende
OF INPUT STATEMENT
der Eingangsanweisung setzen
309884/1370
5406 10474 021472 LDA TEMPS
5407 10475 O3164O STA TEPPP
5408 10476 16O2O1 .EIN1 JSM FORMA,I
54Q9 10477 024017 LDB .2
5410 10500 035706 STB SBPTR
5411 1O5O1 026532 LDB INCHA
5412 1Q5O2 035432 STB DRQST
5413 1Q5Q3 O61156 JSM COBTST
5414 Ϊ05Ο4 066520 JMP INCHT-1
5415 1O5O5 O7O742
5416 1O5O6 031432
5417 10507 O6O412
5418 10510 025472
5419 10511 O15421
54 2O 10512 O6653O
5421 10513 035640
5422 10514 055400
SAR 16
STA DRQST
JSM RSULT
LDR TEMPS CPB PRADD
JMP CXEC4 STB TEPPP SAVE START OF VARIABLE Start der Variablen sichern
GET THE ADDRESS OF THE
VARIABLE IN HSTP
Start der Variablen sichern
AIM SBPTR AT ROM
SBPTR auf ROM zielen
SET ELAG IN CASE OF ERFOR Marke im. Fehler fall setzen
BUILD A NUMBER IN.ÄR2 Zahl in AR2 aufbauen
NO NUMBER FOUND,RESTORE
H-STACK
keine Zahl gefunden, H-Sta-
pelspeicher
CLEAR FLAG
Marke löschen
SAVE AR2 AT HSTPT,I
AR2 bei HSTPT, I sichern
END OF STATEMENT? Ende der Anweisung?
YES ja
RESET THE TEMPORARY POINTER
Zwischenspeicher-Hinweismarke
nullstellen
5423 10515 061066 JSM GETSK
5424 10516 066526 JMP INCH1
5425 10517 066476 JMP . EIN1
5426*
5427
10520 160170 JSM CLERA
5428 10521 021640 INCHT LDA TEPPP
5429 10522 031472 STA TEMPS
5430 10523 045413 ISZ HSTPT
DSZ BADDR NO - DINC BADDR TO LOOK AT
THE LAST CH
nein - DINC BADDR, um nach
letztem Zeichen zu sehen
GET LAST CHAR.
letztes Zeichen holen
P+2 RETURN - OTHER CHAR'S P+2 zurück - andere Zeichen
RESTORE VARIABLE POINTER Variablen-Hinweismark rückstellen
309884/1370
5433 +
5436*
5439*
5441* 5442* 5443*
10524 045413
10525 066463
ISZ HSTPT JMP INRET-4
10526 160170 INCH1 JSM CLERA,I
10527 066463 JMP INRET-4
10530 160170 CXEC4 JSM CLERA,I
10531 066012 JMP XEC4
10532 O1O521 INCHA DEP INCHT
EXECUTE RESTORE STATEMENT Rückstellanweisung ausführen
Seite 112 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
10533 125472 ERSTR LDB TEMPS,I
10534 021424
10535 074113
10536 062217
10537 031415
10540 031414
10541 066012
LDA PBUFF SBP *+2 JSM EADD
STA NXTDT
STA DSTRT JMP XEC4 LINE GIVEN? Zeile gegeben?
YES, -GET ADDRESS
Ja? Adresse holen
SET UP DATA POINTERS Daten-Hinweismarken aufsetzen
5452* 5453*
5454* 5455
5457* 5458* 5459*
EVALUATE ARGUEMENT OF FUNCTION Argument der Funktion auswerten
10542 024032 EVARG LDB B17
10543 066564
JMP FORMK+1 INITIALIZE OPERATOR STACK Operator-Stapelspeicher initialisieren
FOR FUNCION
für Funktion
EVALUATE A FORMULA Formel auswerten
309884/1370
546O# 5461* 5462 5463
5464 5465
5476 5477* 5478* 5479 54 8O
5481* 5482
STACK A CONSTANT
10544 O5OO4O FORM6
10545 010040
10546 066664
10547 055413
10550 063406
10551 160232
10552 045472 FORST
10553 074742
10554 135413
10555 060553
10556 025411
10557 135413
10560 020214
10561 170004
Konstante AND B37
CPA B37
JMP F0RM7 DSZ HSTPT
JSM RSCHK
speichern
PRE-DEFINED FUNCTION? vordefinierte Funktion?
YES ja
BUMP STACK POINTER
Stapelspeicher-Hinweismarke
vorschieben
ALLOT SPACE ON T-STACK T-Speicherraum zuteilen
JSM SNFLA,I CONVERT TO FLOATING
auf Gleiten konvertieren
ISZ TEMPS
SBR STB HSTPT,I
STORE FÜLL PRECISION TYPE Vollgenauigkeitstyp speichern
JSM BHSTP LDB TSTPT STB HSTPT,I
LDA AR2A XFR STORE ADDRESS OP T-STACK T-Speicher-Adresse speichern
TRANSFER RESULT TO T-STACK Ergebnis in T-Speicher übergeben
10562 066616 F0R2L JMP F0RM2
10563 074742 FORMX SBR
10564 060563 JSM
PROCESS NEXT OPERAND
10565 121472 F0RM1 LDA
16
SLWST
INITIALIZE
Operator-
OPPRATOR ςτΑΓκ Stapelspeicher OPERATOR STACK initialisieren
nächsten Operanden verarbeiten TEMPS,I FETCH OPERAND
10566 050070
10567 070113
10570 066544
10571 045472
10572 071410
10573 055413
AND SAP JMP OPDMK
#+2
F0RM6
ISZ TEMPS
SZA F0R2L
DSZ HSTPT Operand abrufen
CONSTANT OR FUNCTION Konstante oder Funktion
SET FOR NEXT WORD OF FORMULA für nächstes Wort der Formel setzen
SKIP IF NULL OPERAND überspringen, wenn Null-Opera.-·;
BUMP POINTER Hinweismarke vorschieben
309884/1370
153
5489
5490 5491
5492
5493 5494* 5495 5496"
5497 5498 5499 5500
5501
5502 5503
5504 5505 5506 5507
5508+
10574 025420
10575 O74504
10576 O74242
10577 074057 106OO O67116 LDB PARMN
SBL SBR
CPA B GET PARAMETER NAME Parametername holen
MASK OFF PRECISION Genauigkeit ausblenden
IS THIS OPERAND THE PARAMETER ist dieser Operand der Parameter?
JMP FPARM YES ja
STACK NON-FUNCTION VARIABLE OPERAND ADDRESS Nicht-Funktions-Variablen-Operanden-Adresse
1O6O1 16O177
10602 16O252
10603 074517
10604 O5O040
10605 OO4132
10606 035750
10607 125750
10610 010040
10611 O66725
JSM SSYMA,I SEARCH FOR VARIABLE IN SYMTAB nach Variable suchen
JSM ENTEA,I NOT FOUND, ENTER IT
nicht gefunden, eintreten
LDA B,I AND B37 ADB M1 STB YC
LDB YC,I CPA B37
JMP F0RM8
FETCH TYPE Typ abrufen
SAVE ADDRESS-ADDRESS Adresse-Adresse sichern
READ ADDRESS Adresse lesen
IT WAS A USER DEFINED FUNCTION1 es war eine Benutzer-definierte Funktion
10612 131413 FORMP STA HSTPT,I SAVE TYPE ON H-STACK
in Η-Speicher sichern
10613 074117
10614 060553
1O615 13413 LDA B GET ADDRESS OF OPERAND Operandenadresse holen
JSM BHSTP BUMP POINTER
Hinweismarke vorschieben
STA HSTPT,I STORE ADDRESS ON OPERAND STACK Adresse in Operandenspeicher speichern
PROCESS NEXT OPERATOR nächsten Operator auswerten
)RM2 LDA TEMPS END OF Ende der
CPA PRADD STATEMENT? Anweisung
JMP F0RM3 YES, FORCE END OF FORMULA ja, Formelende vorverlegen
LDA TEMPS,I EXTRACT herausziehen SAP ++1,C SAR 10
5509 1O616 021472
5510 10617 O11421
5511 1O62O 066631
5512 1O621 121472
5513 10622 O7OO73
5514 1O623 070442
5515 10624 O7O137
5516 1O625 OOO13 5
LDB A ADA M4 NEXT nächsten OPERATOR
OP CODE LESS THAN OP-Code kleiner als
309884/1370
2333908. SAM 3foO
5517 1O626 070152 ADA FORM3
5518 1O627 OOO147 SAM M23
5519 10630 070112 LDB *+2
552O 1O631 024012 F0RM3 STB .1
5521 10632 035460 ADB FTMP1
5522 10633 OO4123 LDA FOPBS
5523 10634 074517 AND B,I
5524 1O635 050040 STA B37
5525 1O636 O31461 FTMP 2
5526*
IF YES, NON FORMULA OPERATOR wenn ja, kein Formeloperator
NO, GREATER THAN B3 nein, größer als B3 2
NON-FORMULA OPERATOR Nicht-Formel-Operator?
YES, USE CODE FOR QUOTE ja. Code für Quote benutzen
SAVE CURRENT OP-CODE laufenden OP-Code sichern
ADD OP CODE TO TABLE ADDRESS OP-Code zur Tabellenadresse addieren
GET AND MASK Präzedenz
holen und ausblenden
PRECEDENCE
SAVE PRECEDENCE OF CURRENT OP Präzedenz des laufenden OP sichern
STACK PRESENT OR EXECUTE PREVIOUS OPERATOR Gegenwärtigen Operator speichern oder vorhergehenden
ausführen
5527 1O637 121412 F0RM4 LDA LSTPT,I DOES OPERATOR ON
5528 1O64O O5OO4O AND B37 TOP OF OPERATOR
5529 1O641 O7OO56 CMA STACK HAVE
5530 10642 001461 ADA FTMP 2 HIGHER
5531 10643 070412 SAM F0RM5 PRECEDENCE
1O6-44 025461 F0RM9 LDB FTMP2
5533 10645 014033 CPB B20
5534 10646 024012 LDB .1
5535 1O647 021460 LDA FTMP1
5536 10650 070304 SAL 10
5537 1O651 070037 ADB A
5538 10652 066564 JMP F0RM1-1
5539 1O653 121412 F0RM5 LDA LSTPT,I
5540 10654 055412 DSZ LSTPT
5541 10655 070442 SAR 10
hat Operator an Spitze des Operatorspeichers höhere Präzedenz?
NO, STACK CURRENT OPERATOR nein, Stapelspeicher laufender Operator
LEFT PAREN OR BRACKET? linke Klammer?
YES, STACK PRECEDENCE OF ja, Präzedenz von 1
COMBINE Präzedenz mit PRECEDENCE OP-Code WITH OP-CODE kombinieren
AND STACK IT und speichern
COMPUTE JUMP ADDRESS Sprungadresse rechnen
309884/1370
5542 5543 +
5544* 5545
5546+' 5547*
5548 5549
5550
5551 5552*
5553 5554 5555 5556 5557
5558 5559 5560
5561 5562
5563 5564
5565
5566 5567 5568
5569
10656 003135 ADA ARBAS FOR OPERATOR für Operator
AT THIS POINT (HSTPT,I)=ADDRESS OF THE- TOP OPERAND an diesem Punkt (HSTPT,I)= Adresse des Spxtzenoperanden
(HSTPT+1,1)= THE TYPE OF THE TOP OPERAND Typ des Spitzenoperanden
10657 070737 JMP A,I BRANCH TO ROUTINE
zur Routine abzweigen
EVALUATE NON-ARGUMENT FUNCTION Nicht-Argument-Funktion auswerten
10660 055413 FOR72 DSZ HSTPT
10661 060553 JSM BHSTP
10662 045472
10663 066707
ISE TEMPS
JMP FOR71 PLACE DUMMY ON STACK Leerstelle in Stapelspeicher plazieren
POINT TO NEXT OPERATOR
auf nächsten Operator zeigen
EVALUATE PRE-DEFINED FUNCTION
vordefinierte Funktion auswerten
10664 025777 F0RM7 LDB RSPTR
10665 004132
10666 074537
10667 055777
10670 060563
10671 125472
10672 O74544
10673 060604
10674 004134
10675 074437
10676 005466
10677 074.437
10700 060563
10701 021466
10702 000036
10703 070113
10704 066660
ADB M1 LDB B,T DSZ RSPTR JSM SLWST TAKE RETURN ADDRESS OF FORMX OFF STACK AND
SAVE ON LOW STACK Rückkehradresse von FORMX aus Stapelspeicher nehmen
LDB TEMPS,I GET OP CODE OP-Code holen SBL 5
JSM NEXT1-2 CONFIGURE OP CODE AND GET PAGE OP-Code konfigurieren und Seite holen
ADB M3 ADB B,I
ADB LOCL1 ADB B,I
JSM SLWST
LDA LOCL1 ADA SAP *+2
JMP FOR72 GET TABLE STARTING ADDRESS Tabellen-Start-Adresse holen
ADD-(OP CODE) addieren
GET ACTUAL JUMP ADDRESS aktuelle Sprungadresse holen
STACK JUMP ADDRESS Sprungadresse speichern
ARGUEMENT REQUIRED? Argument benötigt
NO nein
30988W137U
5570 5571 5572
5573 5574
5575 5576*
5577* 5578*
5579
5580
5581 5582
5583 5584
5585 5586
5587 5588 5589*
5590 5591
5592
5593 5594
10705 062542
10706 063433
JSM EVARG EVALUATE ARGUEMENT Argument auswerten
JSM OPCHK VERIFY RESULT
Ergebnis verifizieren
1O7O7 063405 F0R71 JSM RSCHK-1 ALLOT SPACE ON T-STACK
T-Speicherraum zuteilen
10710 125412 LDB LSTPT,I
10711 O55412 DSZ LSTPT REMOVE ADDRESS FROM STACK
Adresse aus Stapelspeicher
entfernen
10712 074717 JSM B,I BRANCH TO ROUTINE abzweigen
RECORD RESULT OF FUNCTION
Ergebnis der Funktion aufnehmen
FUNCTIONS RETURN HERE WITH RESULT IN AR2 Funktionen kehren hier zurück mit Ergebnis in AR2
10713 045413 F0R10 ISZ HSTPT POP ARGÜEMENT BUT LEAVE STACK
BUMPED 1
Argument schieben, aber Stapelspeicher um 1 vorgeschoben lassen
10714 121412
10715 055412
10716 025777
10717 045777
10720 070173
10721 074557
10722 066714
10723 074557
10724 066553
LDA LSTPT,I UNSTACK RETURN ADDRESS
Rückkehradresse entspeichern
DSZ LSTPT
LDB RSPTR
ISZ RSPTR
SAP #+3,C
STA B,I
GET RETURN ADDRESS Rückkehradresse holen
MORE ADDRESSES TO COME? kommen noch mehr Adressen?
YES ja
JMP F0R10+1 GET NEXT RETURN ADDRESS
nächste Rückkehradresse holen
STA B,I
JMP FORSTf1
NO nein
EVALUATE PROGRAMMER DEFINED FUNCTION Programmiererdefinierte Funktion auswerten
10725 076110 F0RM8 RZB *+2 ADDRESS = O? Adresse = O?
10726 160222
10727 074742 JSM ENTFA,I YES, FIND FUNCTION
ja, Funktion auffinden
SBR16 FLAG FIRST RETURN, SIGN = Erste Rückkehr markieren, Vorzeichen=0
10730 O21777 FMX8O LDA RSPTR
10731 000132 ADA M1
5595
10732 070437
ADB A,I
COMBINE RETURN ADDRESS WITH
10733 055777 DSZ RSPTR FLAG
Rückkehradresse mit Marke korn
binieren
5596 10734 060563 JSM SLWST
5597 1O735 021777 LDA RSPTR STACK ON L-STACK
in L-Speicher speichern
5598 10736 010112 CPA RSTKA
5599 10737 O66742 JMP /+3 ALL OF STACK MOVED?
Alle Stapelspeicher bewegt?
5600 10740 024062 LDB FLGBT YES ja
5601 10741 066730 JMP FMX 80
5602 10742 020132 LDA M1
5603 10743 131413 STA HSTPT,I
5604 10744 025411 LDB TSTPT FLAG STACK FOR "FOR" LOOPS
Stapelspeicher für "FOR"-
Schleifen markieren
5605 10745 060563 JSM SLWST .
5606 10746 125750 LDB YC, I SAVE T-STÄCK POINTER
T-Speicher-Hinweismarke
sichern
5607 10747 060563 JSM SLWST
5608 10750 062542 JSM EVARG SAVE FUNCTION ADDRESS
Funktionsadresse sichern
5609 1O751 021472 LDA TEMPS EVALUATE ARGUEMENT
Argument auswerten
5610 1O752 125412 LDB LSTPT,I SWITCH FORMULA
5611 10753 035472 STB TEMPS POINTER TO FUNCTION FORMULA
Formel-Hinweismarke auf
Funktxonsformel schalten
5612 10754 131412 STA LSTPT,I
5613 107 55 023100 LDA DSTRA
5614 10756 024026 LDB .9 MOVE LSTPT UP 9 WORDS
LSTPT um 9 Worte hochschieben
5615 10757 063122 JSM MOVST AND TRANSFER DSTRT
5616 10760 170004 XPR THROUGH PBUFF
5617 10761 121413 LDA HSTPT,I TO L-STACK
und DSTRT durch PBUFF zum
L-Speicher übergeben
5618 10762 031417 STA PARMA GET PARAMETER ADDRESS
Parameter-Adresse holen
5619
309884/1370
2333308
Seite 116 FORMULA
Routinen
EVALUATION ROUTINES
zur Formelauswertung
562O 10763 011411 CPA TSTPT IS PARAMETER ON T-
5621 1O764 O634O6 JSM RSCHK YES, PROTECT IT
ja, ihn schützen
5622 10765 025423 LDB PBPTR
5623 10766 074076 TCB
5624 10767 005472 ADB TEMPS
5625 1O77O 074313 SBP FMX82 SKIP IF OUTSIDE PR
5626 1O771 O25424 LDB PBUFF
5627 1O772 074076 TCB
5628 10773 005472 ADB TEMPS
5629 10774 074112 SBM FMX82
5630 5631
5632 5633
10775 067016 JMP FMX81
10776 061225 FMX82 JSM LDEF
10777 024166
LDB FWAM
110OO 015405 FMX84 CPB FWUP
5634 11001 067013 JMP FMX83
5635 11002 074070 SIB #+1
5636 11003 035474 STB TEMPI
5637 11OO4 074437 ADB B, I
5638 11005 074117 LDA B
5639 11OO6 070076 TCA
5640 11007 001472 ADA TEMPS
5641 11010 071413 SAP FMX84
5642 11O11 O25474 LDB TEMPI
PROGRAM
überspringen, wenn außerhalb
des vorliegenden Programms
SKIP IF OUTSIDE PRESENT
PROGRAM
überspringen, wenn außerhalb des vorliegenden Programms
INSURE NOT IN KEY MODE sicherstellen, daß kein Tastenbetrxeb
FIND PROGRAM CONTAINING FUNCION
Funktion enthaltendes Programm auffinden
END OF KEYS?
Ende der Tasten?
YES, MUST BE MAINLINE ja, muß Hauptzeile sein
POINT TO LENGTH WORD auf Wortlänge zeigen
SAVE START Start sichern COMPUTE END Ende rechnen
FUNCTION IN THIS KEY? Funktion in dieser Taste?
YES ja
309884/1370
5643 5644
11012 160263
JSM SUMPA,I YES,
11013 025424 FMX83 LDB PBUFF
5645 11014 O35414 STB DSTRT
5646 11O15 035415 STB NXTDT
5647 11O16 070742 FMX81 SAR 16
5648 11017 031416 STA MODE
5649 11020 025472 LDB TEMPS
5650 11021 061O07 JSM NEXTA
5651 11022 035421 STB PRADD
5652 11023 045413 ISZ HSTPT
5653 11024 125413 LDB HSTPT,I
5654 11025 074244 SBL 11
5655 11026 045413 ISZ HSTPT
5656 11027 021472 LDA TEMPS
5657 11030 000020 ADA .3
5658 11031 070517 LDA A,I
5659 11032 050115 AND B1777
5660 11033 074217 IOR B
5661 11034 031420 STA PARMN
5662 11035 025472 LDB TEMPS
5663 11036 004022 ADB .5
5664 11037 015421 CPB PRADD
5665 11040 067102 JMP EVMLF
5666 11041 035472 STB TEMPS
5667*
5668 11042 062563 FMX9 JSM FORMX
5669 11043 121412 LDA LSTPT,I
5670 11044 027076 LDB PBUFA
SET UP PROGRAM POINTERS ja, Programm-Hinweismarken aufsetzen
RESET DATA STMT POINTERS Datenanweisungs-Hinweismarken nullstellen
SET TO PROGRAM MODE. auf Programmbetrieb setzen
SET POINTER TO END OF LINE Hinweismarke auf Zeilenende setzen
GET PRECISION OF PARAMETER Parametergenauigkeit holen
DINK PARAMETER OFF STACK DINK-Parameter aus Stapelspeicher
FETCH PARAMETER NAME Parametername abrufen
MERGE WITH PRECISION mit Genauigkeit mischen
POINT PAST PARAMETER hinter Parameter zeigen
MULTI-LINE FUNCTION? Vielzeilenfunktion?
YES ja
NO nein
Funktionsformel auswerten
altes PBUFF abrufen
309884/1370
5671 11045 035477 STB TEMP4 Formelauswe
5772 11046 025412 LDB LSTPT STB LSTPT
5673 11047 074070 SIB #+1 SIB ++^
5674 11050 035475 STB TEMP2 CPA PBUFF
5675 11O51 004141 ADB M10 ADB .2
Seite 117 FORMULA EVALUATION ROUTI STB TEMP3
Routinen zur JSM MVTOH
5676 11052 035412 LDA LSTPT,I
5677 11O53 074070 DSZ LSTPT
5678 11054 011424 STA TEMPS
5679 11055 OO4O17 LDA LSTPT,I
5680 11056 035476 DSZ LSTPT
5681 11057 061121 STA TSTPT
5682 11060 121412 JSM STTOP
5683 11061 055412 LDB AR2A
5684 11062 031472 XFR
5685 11063 121412 LDA HSTPT,I
5686 11064 055412 CPA M1
5687 11065 O31411 JMP F0R10+1
5688 11066 063404 ISZ HSTPT
5689 11067 024214 JMP *-A
569O 11070 170004 DEF PBUFF+1
5691 11071 121413 DEC -7
5692 11072 010132 DEF DSTRT
5693 11073 066714
5694 11074 045413
5695 11075 067071
5696 11076 001425 PBUFA
5697 11077 177771 M7
5698 11100 001414 DSTRA
INITIALIZE TRANSFER POINTER Transfer-Hinweismarke initialisieren
RESET STACK POINTER Stapelspeicher-Hinweismarke nullstellen
WAS A KEY ENTERED? Tasteneingabe?
NO, DONT RESTORE DATA POINTERS nein, Daten-Hinweismarken nicht zurückstellen
RESTORE PROGRAM POINTERS Programm-Hinweismarken zurückstellen
RESTORE PROGRAM POINTER Programm-Hinweismarke zurückstellen
RESTORE T-STACK POINTER T-Speicher-Hinweismarke
IET ADDRESS OF RESULT Ergebnisadresse holen
TRANSFER übergeben
REMOVE ANY UNTERMINATED entfernen jede undedeterminiei
"FOR" INFORMATION
309884/1370
5699 5700* 5701 +
5702 5703 5704
11101 001640 STADD DEF ST
EVALUATE MULTI-LINE FUNCTION Vielzeilenfunktion aasverten
11102 023101 EVMLF LDA STADD
11103 024025 LDB
11104 063122 JSM MOVST
5723*
5724* 5725* 5726 5727
5728 5729
TRANSFER FIRST 7 WORDS OF EXECUTION TEMPORARY AREA
TO L-STACK
erste 7 Worte des Ausführungszwischenspeicherbereichs zum T-Speicher transferieren
5705 1 1105 066012 JMP XEC4 RESTORE EXECUTION
Ausführung zurückstellen
021420 FPARM LDA PARMN PRECISION IS STORED IN
5706+ 070502 SAR 11 UPPER BITS
Genauigkeit ist gespeichert
in oberen Bits
5707 1 1106 021412 RETNN LDA LSTPT 025417 LDB PARMA
5708 1 1107 003077 ADA M7 TEMPROARIES
Zwischenspeicher
066612 JMP FORMP
5709 1 1110 031412 STA LSTPT
5710 1 1111 070070 SIA ++1 TRANSFER WORDS TO LOW STACK
5711 1 1112 027101 LDB STADD
5712 1 1113 170004 XFR
5713 1 1114 170004 XFR SET UP ADDRESS AND TYPE FOR PARAMETER
Adresse und Typ für Parameter aufsetzen
5714 1 1115 067042 JMP FMX 9 1116
5715* 1117
5716* 1120
5717 1 1121
5718 1
5719 1
5720 1
5721*
5722*
. Worte zum tiefen Stapelspeicher übergeben
(A) = TRANSFER STARTING ADDRESS Startadresse übergeben
(B) = # OF WORDS # der Worte
11122 035467 MOVST STB L0CL2
11123 025412 LDB LSTPT
11124 035466
11125 OO5467
STB LOCL1 ADB L0CL2
309884/1370
SAVE COUNT Zählung sichern
SAVE OLD LSTPT
altes LSTPT sichern
ADD COUNT TO POINTER Zählung zu Hinweismarke addieren
5730 11126 035412
5731 11127 O6O554
STB LSTPT JSM BHSTP+1 CHECK FOR OVERFLOW
auf Überfüllung prüfen
Seite 118 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
5732 11130 135412
5733 11131 025466
5734 11132 O74O7O
5735 11133 17OOO4
5736 11134 O64446
STB LSTPT,I STACK NEGATIVE FLAG FOR "RETURN"
STMT
negative Marke für "zurück"-Anweisung speichern
LDB LOCL1 SIB *+1 XFR TRANSFER 4 WORDS 4 Worte übergeben
JMP XFAR2+2 TRANSFER 3 MORE AND RETURN
3 weitere übergeben und zurück
5738+ 5739*
5740*
5743* 5744*
5745* 5746*
5747* 5748* 5749*
5753*
FORMULA OPERATOR JUMP TABLE Formeloperator-Sprungtabel1e
11135 111136 ARBAS DEF #+1,I
11136 O11432 DEF FORMR
EXECUTE END OF FORMULA Formelende ausführen
THE FOLLOWING 3 TABLE WORDS ARE NOT USED die folgenden 3 Tabellenworte werden nicht benutzt
QUOTE, COMMA, AND SEMI-COLON ARE END OF FORMULA OPERATORS Quote, Komma und Semikolon sind Ende der Formeloperatoren
CAIl subtract Subtraktion rufen
11137 O63376 EFSB JSM BINOP
11140 160217 JSM .FSBA,I
11141 06726O JMP FOR14
11142 O11432
11143 011432
11144 011202
DEF FORMR DEF FORMR DEF ESCMA
SUBSCRIPT COMMA Komma indizieren
3Q988W1370
5757 5758
5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776
11145 011171
11146 OOOOOO NOP
DEF ESTR
11147 11150 11151 11152 11153 11154 11155 11156 11157 11160 11161 11162 11163 11164 11165 11166 11167 11170
011256 O11137 011272 011275 011300 011333 011336 011352 011344 011303 O1O637 011317 010565 011357 011366 011716 011341 011347 ASSIGNEMENT EQUAL
Ergebnis gleich
CHECKSUM WORD ********** Summenprobe-Wort
DEF EFAD LOGICAL EQUAL logisch gleich
DEF EFSB UNARY MINUS monadisch minus
DEF EFMP UNARY PLUS monadisch plus
DEF EFDV 1P
DEF EPWR
DEF EGTRT
DEF ELST
DEF ENEQL
DEF EEQL
DEF EUMIN
DEF F0RM4
DEF ELBRC
DEF F0RM1
DEF EOR
DEF EAND
DEF ENOT
DEF EGORE
DEF ELORE
Seite 120 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
5778* 5779* 5780* 5781 5782
5783 5784
5785 5786
EXECUTE ASSIGNMENT EQUAL Ausführung Ergebnis gleich
11171 025461 ESTR
11172 074150
11173 045412
11174 066644
11175 055460
11176 067200
LDB FTMP2 SZB *+3
ISZ LSTPT JMP F0RM9
DSZ FTMP1
JMP ESTR1 IS NEXT OPERATOR AN
END OF FORMULA?
ist nächster Operator Formelende?
NOf MULTIPLE STORE —RESTORE STORE OPERATOR AND DEFER
STORE -
nein, vielfache Speicherung— Speicheroperator zurückstellen und Speicherung aufschieben
FIRST STORE EXECUTED?
erste Speicherung ausgeführt?
NO SOURCE IS ALREADY IN AR2 keine Quelle ist schon in AR2
309884/1370
5787
11177 061220 JSM FETCH+1 POP STACK AND MOVE SOURCE
5788 TO AR 2
Stapelspeicher verschieben und
Quelle nach AR2 bewegen
11200 060412 ESTR1 JSM RSULT POP DESTINATION AND STORE
Bestimmung verschieben und speichern
JMP F0RM4
5789 11201 066637 O6122O
5790+ 160225
5791 + EXECUTE SUB 067240
Komma-Indiz 004132
5792/ 075712
5793 11202 135412
5794 11203 061220
5795 11204 160225
5796 11205 O6724O
5797 11206 004132
5798 11207 075712
5799 11210 035471
5800 11211 125413
5801 11212 004132
58O2 11213 074517
5803 11214 050105
5804 11215 070070
5805 11216 031470
5806 11217 074537
5807 11220 074342
5808 11221 074070
5809 11222 074076
5810 11223 005471
5811 11224
5812 11225
5813 11226
5814 11227
5815 11230
ESCMA JSM FETCH+1
JSM FLTRA1 L2T2 ,1
JMP ER6 HSTPT,
ADB M1 M1
SBM *-2 B,I
STB LSTPT, B377
JSM rl *+1 I
JSM L2T1
JMP B,I
ADB 8
,1 ^+1
FETCH+1
FLTRA1 L2T2
ER6 988 4
M1
SBM*-2
STB
LDB /
ADB
LDA
AND
SIA
STA
LDB
SBR
SIB
TCB
ADB
30
CHECK COLUMN SUBSCRIPT Spaltenindex prüfen
ROUND TO INTEGER auf Ganzzahl runden
OVERFLOW Überfüllung
ADD OFFSET
Versetzung addieren
UNDERFLOW? Unterfüllung?
SAVE COLUMN SUBSCRIPT Spaltenindex sichern
CHECK ROW SUBSCRIPT Sprossenindex prüfen
ROUND TO INTEGER auf Ganzzahl runden
SAVE ROW SUBSCRIPT Sprossenindex sichern
GET ACTUAL BOUNDS tatsächliche Grenzen holen
EXTRACT COLUMN BOUND Spaltengrenze ausblenden
SAVE IT sichern
EXTRACT ROW BOUND Sprossengrenze ausblenden
1370
1 2333908 O74353 SM ER6
5816 1 1231 025471 SBP L2T2
5817 1 1232 O612O1 LDB IMPY
5818 1 1233 025470 JSM L2T1
5819 1 1234 O74O76 LDB
582O 1 1235 105412 TCB LSTPT,I
5821 1 1236 074112 ADB #+2
5822 1 1237 160206 ER6 SBM ERRA7I
5823 1 1240 101412 JSM LSTPT,I
5824 1241 ADA
5825 11242 Ο25413 LDB HSTPT
5826 11243 074070 SIB #+1
5827 11244 074537 LDB B,I
5828 11245 Ο74Ο4 2 SBR 2
5829 11246 O76110 RZB »K+2
5830 11247 O7O704 SAL 2
5831 1125Ο 014012 CPB .1
5832 11251 070744 SAL 1
5833 11252 101413 ADA HSTPT,I
ROW SUBSCRIPT LEGAL? Sprossenindex erlaubt?
YES, RECALL ROW SUBSCRIPT ja, Sprossenindex zurückrufen
COMPUTE ROW DISPLACEMENT Sprossenverschiebung rechnen
COLUMN SUBSCRIPT LEGAL? Spaltenindex erlaubt?
NO, ERROR nein, Fehler YES, ADD IN COLUMN
DISPLACEMENT
ja, in Spaltenverschiebung addieren
FIND TYPE OF ARRAY Feldtyp auffinden
FIND # OF WORDS PER ELEMENT Wort # pro Element auffinden
FULL PRECISION?
volle Genauigkeit?
YES, MULTIPLY BY 4 ja, mit 4 multiplizieren
SPLIT? gespalten?
YES, MULTIPLY BY 2 ja, mit 2 multiplizieren
3 09884/1370
5834
5835 5836 5837* 5838* 5839* 5840 5841 5842* 5843* 5844*
5845* 5846* 5847 5848
5849 5850 5851
5852 5853
5854 5855
5856 58 57 * 5858* 5859* 5860 5861 5862 5863* 5864+ 5865* 5866
11253 131413
11254 055412
11255 066565
STA HSTPT,I STORE ACTUAL ADDRESS OF ELEMENT tatsächliche Elementadresse speichern
DSZ LSTPT UNSTACK ( entspeichern JMP F0RM1
CALL ADD Addition rufen
11256 063376 EFAD JSM BINOP
11257 160216 JSM .FADA7I PROCEED TO F0R14 vor nach F0R14
OPERATORS CREATING INTERMEDIATE RESULTS RETURN HERE Zwischenergebnis hervorrufende Operatoren kehren hier mit Ergebnis in AR 2 zurück
WITH RESULT IN AR2
11260 020214 FOR14
11261 025411
11262 170004
11263 021413
11264 070070
11265 074742
11266 O7O577
11267 025411 11,270 135413
11271 066637 LDA AR2A
LDA TSTPT
LDA HSTPT SIA *+1
SBR 16
STB A,I
LDB TSTPT STB HSTPT,I
JMP F0RM4
TRANSFER TO T-STACK
zum T-Speicher übergeben
POINT TO PRECISION WORD auf Genauigkeitswort zeigen
STORE FULL PRECISION
volle Genauigkeit speichern
STORE ADDRESS OF T-STACK T-Speicher-Adresse speichern
CALL MULTIPLY Multiplikation rufen
Π 272 063376 EFMP JSM 3INOP
1
ι !
60220
11274 O6726C JSM .FMPA,I JMP F0R14
CALL DIVIDE Division rufen
11275 063376 EFDV JSM BINOP
309884/1370
5869* 5870* 5871*
5875*
5877*
5886 5887 5888 5889*
11276 160221
11277 067260
JSM .PDVA,I JMP F0R14
CALL EXPONENTIAL ARROW Exponentialpfeil rufen
11300 063376 EPWR JSM BINOP
11301 160224 JSM UPARA,I
11302 067260 JMP F0R14
CALL UNARY MINUS mondadisches minus rufen
11303 063404 EUMIN JSM STTOP
11304 025411
11305 170004
11306 000133
11307 O7O517
11310 070250
11311 121411
11312 072111
11313 070071
11314 131411
11315 067263
LDB TSTPT XFR
ADA M2 LDA A,I
SZA *+5
LDA TSTPT,I SLA *+2,S
SLA #+1,C STA TSTPT,I JMP FOR14+3 FETCH TOP ELEMENT OF STACK Spitzenelement des Stapelspeichers abrufen
TRANSFER TO T-STACK zum T-Speicher übergeben
READ FIRST WORD OF MANTISSA erstes Mantissenwort lesen
SKIP IF ZERO
überspringen, wenn Null
REVERSE THE SIGN Vorzeichen umdrehen
Seite 122 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
5890*
5891*
5893*
EXECUTE LEFT BRACKET linke Klammer ausführen
11316 014002 SCCNT OCT 14002
11317 045412 ELBRC ISZ LSTPT
11320 027316 LDB SCCNT
11321 060563 JSM SLWST
STACK A
SUBSCRIPT COMMA
ON OPERATOR STACK Index-Komma in Operator-Speicher speichern
309884/1370
5899 5900 5901
5902* 5903 +
5904* 5905
5909* 5910* 5911* 5912
5915* 5916* 5917*
5921* 5922* 5923*
11322 063406
11323 055413
JSM RSCHK DSZ HSTPT
11324 060553 JSM BHSTP
11325 020020 TRUE LDA ONE
11326 067261 JMP F0R14+1
STACK A 1 ON
OPERATOR
eine 1 in Operator speichern
STACK A 1 ON T-STACK
eine 1 in T-Speicher speichern
COMPARE TOP OPERANDS OF STACK
Spitzenoperanden des Stapelspeichers vergleichen
11327 063376 COMPR JSM BINOP 11330 160217 GET OPERAND ADDRESSES Operandenadressen holen
JSM .FSBA,I SUBTRACT ONE FROM ANOTHER
eine von der anderen abziehen
11331 020214
11332 065317
LDA AR2A JMP SGNS POINT TO RESULT IN AR2 auf Ergebnis in AR2 zeigen
GET SGN IN (B)
Vorzeichen in (B) holen
EXECUTE > ausführen
11333 063327 EGTRT JSM COMPR
11334 074753
11335 067354
COMPARE OPERANDS Operanden vergleichen
SBP ENEQL+1 <?
JMP FALSE YES ja
EXECUTE < ausführen 11336 063327 ELST JSM COMPR
11337 074056 11340 067342
CMB JMP *+2 COMPARE OPERANDS Operanden vergleichen
REVERSE COMPARISON SENSE Vergleichssinn umdrehen
EXECUTE >=ausführen
11341 063327 EGORE JSM COMPR
11342 075153
11343 067354
5927* 5928* EXECUTE =
SBP TRUE JMP FALSE COMPARE OPERANDS Operanden vergleichen
YES ja
ausführen
309884/ 1370
5929* 5930
5932 5933 + 5934* 5935* 5936
5937 5938 5939* 5940+ 5941* 5942
5943 5944
5945
11344 063327 EEQL JSM COMPR COMPARE OPERANDS Operanden vergleichen
11345 075010 SZB TRUE =?
11346 0673 54 JMP FALSE NO nein
EXECUTE < ausführen
11347 063327 ELORE JSM COMPR COMPARE OPERANDS
Operanden vergleichen
11350 075653 SBP EEQL+1 >=?
11351 067325 LTRUE JMP TRUE NO nein
EXECUTE & OR <> #· oder <> ausführen
11352 063327 ENEQL JSM COMPR
11353 077710 RZB LTRUE
11354 021411 FALSE LDA TSTPT
COMPARE OPERANDS Operanden vergleichen
CLEAR T-STACK ENTRY T-Speicher-Eingang löschen
11355 170000
CLR
Seite 123 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
5946 5947* 5948* 5949* 5950
5952
5955 5956 5957* 5958* 5959*
11356 067263
JMP FOR14+3
EXECUTE "OR" ausführen
11357 063376 EOR
11360 070070
11361 070517
11362 073350
JSM BINOP SIA *+1 LDA A, I
RZA LTRUE
11363 074070 E0R2 SIB *+1
11364 074537
11365 067353
LOOK AT FIRST OPERAND auf ersten Operanden sehen
IF NON-ZERO, RESULT IS TRUE wenn nicht Null, ist Ergebnis richtig
LOOK AT SECOND OPERAND auf zweiten Operanden sehen
LDB B,I JMP ENEQL+1
EXECUTE "AND" ausführen
309884/1370
5960 11366 063376 EAND JSM BINOP
5961 11367 070070 SIA #+1
5962 11370 070517 LDA Α,Ι
5963 11371 O7115O SZA FALSE
5964 11372 O67363 JMP E0R2
LOOK AT FIRST OPERAND
auf ersten Operanden sehen
ZERO? Null?
NO nein
5966* 5967 +
5968+
597 S*- 5979+ 5980+ 5981 +
5984^ 5985* 5 986 +
5987 + 5988
PREPARE TO EXECUTE A BINARY OPERATOR Vorbereitung zur Ausführung eines Binäroperators
11373 024057 BINO1 LDB
11374 060406 JSM
11375 067401 JMP
11376 063433 BINOP JSM
11377 014111 CPB
11400 067373 JMP
11401 035726 ΒΪΝ02 STB
11402 045413 ISZ
11403 045413 ISZ
.1OOO
XFAR1+1 TRANSFER TO SECOND TEMP (YC)
BIN02
OPCHK B174O CONVERSION TEMPORARY?
Umkehr Zwischenspeicher?
BIN01 YES ja
MBIN1 SAVE ADDRESS IN TEMPORARY
Adresse in Zwischenspeicher sichern
HSTPT MOVE HIGH STACK POINTER
HSTPT TO DELETE OPERAND
Hinweismarke für hohen Stapelspeicher schieben
PROCEED TO STTOP vor nach STTOP
FETCH TOP OF STACK Stapelspeicherspitze abrufen
11404 '063433 STTOP JSM OPCHK
11405 035471 PROCEED TO RSCHK vor nach RSCHK STB L2T2 SAVE SECOND ADDRESS
zweite Adresse sichern
ALLOT SPACE FOR INTERMEDIATE RESULT Platz für Zwischenergebnis zuteilen
11406 021411 RSCHK LDA TSTPT MOVE TEMPORARY POINTER Zwischenspeicher-Hinweismarke
schieben
11407 000021 11410 031411
ADA STA TSTPT
30983Λ/1370
5991 11411 011410
5992 11412 067414
5993 11413 067430
5994 11414 031476
5995 11415 000025
5996 11416 031410
5997 11417 021412
zn
CPA LSTAK
JMP -f+2 JMP RSCH2 STA TEMP3 ADA STA LSTAK LDA LSTPT
OVERFLOW INTO LOW STACK? iiberfüliung im unteren Stapelspeicher?
YES ja NO nein
Seite 124 FORMULA EVALUATION ROUTINES
Routinen zur Formelauswertung
5998
5999
6000
6001
6002
6003
6004
11420 070070
11421 031475
11422 000024
SIA
STA TEMP2
ADA
11423 031412 RSCH1 STA LSTPT
11424 070070 SIA #+1
11425 031477 STA TEMP4
11426 060554 JSM BHSTP+1
TEST FOR OVERLAP WITH HIGH
11427 061121 JSM MVTOH STACK
Test auf Überlappung mit hohem
Stapelspeicher
125413 OPCHK LDB HSTPT,: C GET OPERAND ADDRESS
Operandenadresse holen
6005 11430 021471 RSCH2 LDA L2T2 MOVE LOW STACK UP
tiefen Stapelspeicher anheben
015411 CPB TSTPT IS IT TEMPORARY?
zwischengespeichert?
6006 11431 025726 LDB MBIN1 RECALL SECOND ADDRESS
zweite Adresse rückrufen
067460 JMP OPC3 YES ja
6007 11432 170402 FORMR RET RECALL FIRST ADDRESS
erste Adresse rückrufen
074517 LDA B,I NO, GET EXPONENT WORD
nein, Exponentwort holen
6008 010062 CPA FLGBT IS OPERAND DEFINED?
Operand definiert?
6009* 160206 ER8 JSM ERRA.I YES. ERROR is. Fe»hl e»r
6010* VERIFY LEGITIMACY OF OPERAND
Erlaubtheit des Operanden verifizieren
6011 #
6012 11433
6013 11434
6014 11435
6015 11436
6016 11437
6017 11440
309884/1370
6018 11441 021413 LDA HSTPT
6019 11442 070070 SIA *+1
6020 11443 070517 LDA A,I
6021 11444 050037 0PCH1 AND .28
6022 11445 071250 SZA FORMR
6023 11446 010021 CPA .4
024 11447 067456 JMP OPC 2
6025 11450 070206 RAR 5
6026 11451 071052 SAM FORMR
6027 11452 074537 LDB B,I
6028 11453 160227 JSM FXFLA,I
6029 11454 024111 0PC1 LDB B174O
6030 11455 064406 JMP XFAR1+1
YES, GET TYPE ja, Typ holen
GET PRECISION BITS Genauigkeits-Bits holen
FULL PRECISION? volle Genauigkeit?
NO , SPLIT? nein, gespalten? YES ja
NUMBERED VARIABLE? numerierte Variable?
NO, IT MUST BE INTEGER
nein, muß Ganzzahl sein
RESULT IS IN AR2 NOW
Ergebnis ist nun in AR2
11456 160231 0PC2
6032 1 1457 067454 JMP OPC1
6033 1 1460 021411 0PC3 LDA TSTPT
6034 1 1461 00013 5 ADA M4
6035 1 1462 031411 STA TSTPT
6036 1 1463 170402 RET
6037* 11464 IS LAST
6038* MATH ROUTINES HERE
TRANSFER TO XC REGISTER zum XC-Register
JSM SPLFA,I CONVERT SPLIT TO FULL PRECISION Spaltung auf volle Genauigkeit konvertieren
DELETE TEMPORARY Zwischenspeicherung beseitigen
309884/1370
FUNCTION TABLES Funktionstabellen
6040 6O41* 6042*
6043* 6O44 6045 6O46 60'47 6O48 6049 6050 6051 + 6O52* 6053* 6O54 6O55 6O56 6057 6O58* 6059
6060 6061* 6062* 6O63* 6064 6065 6066 6O6'7 6068 6069 6070 6071 6072 5073
11707 ORG 117O7B
FUNCTION SYNTAX AND EXECUTION JUMP TABLE Funktionssyntax und Ausführungs-Sprungtabelle
11707 OOOOO2 '
11710 000003
11711 023715 EPI
11712 06445
11713 020215 ERES
11714 064445
11715 003764 PIA
ABS EPI-* ABS ERES-* LDA PIA JMP XFAR2+1 LSA TMPOP JMP XFAR2+1 DEF 3764B
EXECUTE "NOT" ausführen
11716 063404 ENOT
11717 070070
11720 070537
11721 067345
11722 000000 11737 175125 JSM STTOP SIA *+1 LDB A,I JMP EEYL+1
BSS 13
ABS TABER-* TAB
FUNCTION JUMP TABLE Funktions-Sprungtabelle
FUNCTION NAME TABLE Funktionsnamen-Tabelle
11740 042530 FTN13 ASC 1,EX
11741 050202
11742 046117
11743 043603
11744 040502
11745 051604
11746 051521
11747 051205
11750 044516
11751 052206
OCT 050202 ASC 1,LO OCT 43 603' ASC 1,AB OCT 051604 ASC 1,SQ OCT 051205 ASC 1,IN OCT 052206
EXP; OP CODE
LOG; OP CODE
ABS; OP CODE
SQR; OP CODE
INT; OP CODE
309884/ 1370
6074 1 1752 051507 ASC 1,SG SGN-. 7
6075 1 1753 047207 OCT 47207
6076 1 1754 051511 ASC 1 ,SI SINi 10
6077 1 1755 047210 OCT 047210
6078 1 1756 041517 ASC 1 ,CO COS: 11
6079 1 1757 051511 OCT 051611
6080 1 1760 052101 ASC 1,TA TAN: 12
6081 1 1761 047212 OCT 047212
6082 1 1762 040524 ASC 1 ,AT ATN i 13
6083 1 1763 047213 OCT 047213
6084 1 1764 046107 ASC 1,LG LGT; 14
6085 1 1765 052214 OCT 52214
6086 1 1766 040523 ASC 1 ,AS ASN; 1 5
6087 1 1767 047215 OCT 47215
6088 1 1770 040503 ASC 1,AC ACS: 16
6089 1 1771 051616 OCT 51616
6090 1772 051105 ASC 1 ,RE RES: 30
6091 ι 1773 051620 OCT 51630
6092 1 1774 050111 ASC .1,PI PI: 31
6093 1 1775 154524 TAB OCT 154524
6094 1 1776 040.502 OCT 40502 TAB:
609 5 ι 1777 1407 77 OCT •40777
Seite 126 FORMULA OPERATOR TABLE
( kein Argument
kein Argument
F αAktion s tabelIen
6097 6098 6099* 6100* 6101*
6103 61G4 6105 6106 6107
12000 ORG 12000B
12000 006774 STHPA DEF FOPST+FOPST
FORMULA OFEBATCR SEARCH AND PRECEDENCE ^ABLi
LEFT CHAR IS ASCIT; PIGHT CHAR IS F£EC3DSWCE Formel-Operator-Suche und Präzedenzfall e i linkes Zeichen ist ASCII; rechtes deichen ist Präzedenz
12001 021000 QUOT OCi 21000 OP
12002 02 6GOO COiMMA OCT 26000 2
12003 035400 SMCLW OCT 354OÜ 3
12004 024400 RPARN OCT 24400 4
12005 056400 RBRAC OCT 56400 5
309884/1370
6108 12006 026002 SCMMA OCT 26002 6
6109 12007 036402 ASSOP OCT 36402 7
6110 12010 177377 M257 DEC -257 THIS IS NOT USED AS T.
Dies wird nicht als T
eintritt benutzt.
6111 12011 025407 PLUSS OCT 25407 11
6112 12012 026407 MINS OCT 26407 12
6113 12013 025010 TIMES OCT 25010 13
6114 12014 027410 DIV OCT 27410 14
6115 12115 057013 EXPS OCT 57013 15
6116 12016 037005 GTR OCT 37005 16
6117 12017 036005 LSS OCT 36005 17
6118 12020 021405 UNEQL OCT 21405 20
6119 12021 036405 EQUAL OCT 36405 21
6120 12022 026412 UNMIN OCT 26412 22
6121 12023 025412 UPLUS OCT 25412 23
6122 12024 055420 LBRAC OCT 55420 24
6123 12025 024020 LPARN OCT 24020 25
6124 12026 000003 OROP OCT O0003 26
6125 12027 000004 ANDOP OCT 00004 27
6126 12030 000012 NOTOP οςτ 00012 30
6127 12031 000005 GTREQ OCT 00005 31
6128 12032 000005 LSSEQ OCT 00005 32
6129*
6130 12033 000000 BSS 1 ******CHE CKSUM******
Summenprobe
309884/1370
Seite 127 SYNTAX SUBROUTINES
Syntax-Unterprogramme
6132
6133
6134
6135
6136
6137* 6138*
6139* 6140*
6141*
6142* 6143+
6144*
6145* 6146*
6X47*
■6148+ 6149* 6150
LST
12034 007001 TOA DEF FOPST+FOPST+5
12035 007004 ORA DEF OR+OR
12036 007013 NOTA DEF OR+OR+7
12037 007017 GTEA DEF GTE+GTE+1
CHECK SYNTAX OF A FORMULA Syntax einer Formel prüfen
EXIT TO ERROR ON UNRECOGNISABLE OR INCORRECT INPUT Ausgang nach Fehler auf nicht erkannbaren oder unrichtigen Eingang
ON EXIT (A)= NEXT CHARACTER NOT IN FORMULA am Ausgang nächstes Zeichen nicht in Formel
(B)=O
IF FIRST OPERAND IS A STRING VARIABLE,EXIT TO ERROR Wenn erster Operand eine STRING-Variable ist, Ausgang nach Fehler,
UNLESS STRING IS ENABLED BY SFLAG=SBPTR,THEN EXIT (B)=SFLAG=-!
wenn nicht, STRING durch SFLAG=SBPTR freigegeben ist, dann Ausgang (B) = SFLAG = -1
MSFLG=8; LOOKING FOR "=" IN LET OR FOR STATEMENT
sehen nach in LET- oder FOR-Anweisung
MSFLG=9j INTERPRET "=" AS A LOGICAL OPERATOR "=" als logischen Operator interpretieren
IF A STORE IS FOUND, SFLAG =-2 wann Speicherung gefunden
12040 020012 FSC LDA
SET LEFT PARENTHESIS linke Klammer setzen
6151 12041 131472
6152 12042 020132
6153 12043 031713
6154* LOOK FOR AN
6155 12044 062231
6156 12045 066114
STA TEMPS,I COUNT TO O (OFFSET BY 1)
bis O zählen (um 1 versetzen)
FSCl LDA Ml
STA UFLAG
ENABLE UNARY
OPERATORS monadische Operatoren freigeben
OPERAND nach Operand sehen
FSC2 JSM VAROP LOOK FOR VARIABLE OPERAND
nach Variablenoperand sehen
JMP- FSC7 FIRST CHAR NOT A LETTER
erstes Zeichen kein Buchstabe
309884/1
6157 12046 066164 6158 12047 060752
6159 12050 066167 6160*
JMP FSC13-3
JSM LETCK
JMP FSC13
SUBSCRIPTED OR STRING VARIABLE indizierte oder STRING-Variable
SIMPLE VARIABLE:FOLLOWED BY LETTER?
einfache Variable; von Buchstabe gefolgt?
NO nein
6161
6162*
DOES "AND" OR "OR" FOLLOW SIMPLE VARIABLE? Folgt "UND" oder "ODER" einfache Variable?
12051 062217 JSM MCBCK CHECK FOr11AND11OR11OR11ONLY;
nur auf "UND" oder "ODER" prüfen
CHECK FOR FUNCTION INSTEAD OF SIMPLE VARIABLE Auf Funktion statt einfacher Variable prüfen
6163 12052 062424 JSM FNCK "FN"?
6164 12053 066061 JMP FSC4 NO nein
6165 12054 05.5400 DSZ BADDR YES ja
6166 12055 000154 ADA M64 - GET FUNCTION NAME
Funktionsname holen
6167 12056 074742 SBR 16
6168 12057 135706 STB SBPTR,I CLEAR OUT NEXT WORD
nächstes Wort auslöschen
6169 12060 066074 JMP FSC3-1
6170 12061 070342 FSC4 SAR 8 RECALL LAST CHAR
nächstes Zeichen zurück
rufen
6171 12062 055400 DSZ BADDR BACK UP TO POINT AT
SECOND CHAR zurückschieben, um auf zweites Zeichen zu. Zeigen
6172 12063 024133 LDB M2 SEARCH ALL TABLES FOR
6173 12064 160237 JSM SALTA,I A PREDEFINED FUNCTION
alle Tabellen für eine
vordefinierte Funktion
suchen
6174 12065 066143 JMP FSCIl NOT FOUND nicht gefun
6175 12066 135706 STB SBPTR,I STORE TABLE CODE
Tabellencode speicher
6176 12067 070137 LDB A
6177 12070 004147 ADB M23
6178 12071 074076 TCB
30988W 1
6179 12072 035474
6180 12073 040116
6181 12074 070544
STB TEMPI
IOR QTOP
SAL
6182* ASSEMBLE AND STORE FUNCTION
Funktion anordnen und speichern
6183 12075 040040 FSC3 IOR B37
6184 12076 070137
6185 12077 055706
6186 121OO Ö6O641
6187 12101 074217
LDB A DSZ SBPTR JSM RESBP+1 IOR B SET NEGATIVE IF NO ARGUMENT
negativ setzen, wenn kein Argument
SET FLAG FOR PRE-DEF FUNCTION
Marke für vordefinierte Funkt xonjsetzen
POSITION OP CODE positionieren
SET OPERAND TYPE FOR FUNCTION
Operandentyp für Funktion setzen
REPLACE vorherigen PREVIOUS OPERAND Operanden
WITH FUNCTION mit Funktion
ersetzen
Seite 128 SYNTAX SUBROUTINES
Syntax Unterprogramme
6188 12102 131706
6189 12.103 045706
6190 12104 021474
6191 12105.070253
6192 12106 161473
6193 12107 045706
6194 12110 061055
6195 12111 066130
STA SBPTR7I ISZ SBPTR LDA TEMPI
SAP FSC31
JSM TEMP,I
ISZ SBFTR
JSM GNEXT JMP FSC8
6196 12112 031713 FSC31 STA UFLAG RECALL ARGUEMENT FLAG Ärgumentmarke zurückrufen
NORMAL ARITHMETIC ARGUEMENT?
normales arithmetisches Argument?
NO, JUMP THROUGH SYNTAX/EXEC TABLE
nein, durch Syntax/Ausführungs Tabelle springen
RETURN HERE IF NO ARGUEMENT hierher zurück, wenn kein Argument
NO, CHECK FOR EOL NEXT nein, nächstes auf EOL prüfen
DISABLE UNARY OPERATORS monadische Operatoren sperren
370
6197 6198* 6199 6200
6201 6202 6203
6204 6205 6206* 6207 6208 6209
6210 6211
6214 6215*
6223 6224*
12113 066140 JMP FSClO CHECK FOR LEFT PARENTHESIS
12114 045706 FSC7 ISZ SBPTR
12115 060513 JSM LPCK
12116 066123
12117 145472 FSC5
12120 024026 FSC6
12121 035710
12122 066042
auf linke Klammer prüfen
CHECK FOR PAREN
auf Klammer prüfen
NOT FOUND nicht gefunden
JMP *+5 ISZ TEMPS,I LDB .9 DISABLE ASSIGNMENT Zuordnung sperren
STB MSFLG JHP FSCl
CHECK FOR A NUMBER auf Zahl prüfen
12123 074742 SBR
12124 035721 STB SIGN
12125 160243
INITIALIZE initialisieren TO POSITIVE nach positiv
12126 066133
12127 160244
12130 024026 FSC8
12131 035710
12132 066167
JSM NUMCA,I FETCH AND BUILD CONSTANT
Konstante abrufen und aufbauen
JMP FSC9 NOT FOUND nicht gefunden
JSM NUMOA,I STORE IN SYNTAX BUFFER
in Syntax-Puffer speichern
LDB STB MSFLG DISABLE'ASSIGNMENT Zuordnung sperren
JMP FSC13
CHECK FOR A UNARY OPERATOR
auf monadischen Operator prüfen
12133 045713 FSC9 ISZ UFLAG
12134 160206 FSCE3 JSM ERRA,I
12135 060461
12136 012021
12137 066134
JSM SYMC2 UNARY OPERATORS PERMITTED? monadische Operatoren erlaubt?
NO, UNRECOGNISED OPERAND nein, nicht erkannter Operand
UNARY MINUS
monadisch minus
DEF UNMIN-I
JMP FSCE3
12140 024026 FSClO LDB
12141 035710 STB MSFLG
OR UNARY PLUS?
oder monadisch minus?
NO nein
DISABLE ASSIGNMENT Zuordnung sperren
12142 066044 JMP FSC2
CHECK FOR "NOT" RATHER THAN SIMPLE VARIABLE Auf "NICHT" eher als einfache Variable prüfen
12143 045713 FSCIl ISZ UFLAG "NOT" PERMITTED?
"NICHT" erlaubt?
12144 066212 JMP FSC14-1 NO nein
309884/1370
6227 12145 026036 060524 FSC12 LDB NOTA SEARCH FOR "NOT"
nach "NICHT" suchen
6228 12146 060537 066213 JSM STSRH NOT FOUND nicht gefu
6229 12147 066212 155472 JMP FSC14-1 ERASE falschen
6230 12150 055706 066167 DSZ SBPTR SPURIOUS Operanden
OPERAND entfernen
6231
6232
12151
12152
060641
045706
JSM RESBP+1
ISZ SBPTR
6233 12153 066140 JMP FSClO
6234« auf rechte Klammer prüfen
6235* CHECK FOR RIGHT PARENTHESIS
6236* RIGHT PAREN?
rechte Klammer ?
6237 12154 JSM RPCK NO nein
6238 12155 JMP FSC14
6239 12156 DSZ TEMPS,I ( (A) =NEXT CHAR)
6240 12157 JMP FSC13
6241 12160 055706
6242 12161 055400
6243 12162 020046
DSZ SBPTR
DSZ BADDR LDA .41
((A)= nächstes Zeichen)
NO MATCHING LEFT PAREN nicht passende linke Klammer
RESTORE zurückstellen
PREVIOUS CONDITIONS vorherige Bedingungen
SYNTAX SUBROUTINES Syntax Unterprogramme
6244 12163 066215 JMP FSC14+2
€245* CHECK FOR A BINARY OPERATOR Auf Binäroperator prüfen
6246 12164 024132 LDB Ml
6247 12165 015714 CPB SFLAG
6248 12166 170402 RET EOL
6249 12167 010031 FSC13 CPA FSC14
6250 12170 066213 JMP UFLAG
6251 12171 031713 STA TEMPI
6252 12172 031474 STA
AND RETURN und zurück
STRING VARIABLE
JUST FOUND?
gerade gefunden
YES ja
END OF STMT?
Anweisungsende?
YES ja
DISABLE UNARY OPERATORS monadische Operatoren sperren
SAVE CHAR Zeichen sichern
309884/1370
6253 6254
6255 6256 6257
6258 6259 6260 6261 6262
6263 6264 6265 6266
6267 6268* 6269
6270 6217
6272 6273
6274* 6275*
6276* 6277*
6278*
6279* 6280 6281
12173 024132
12174 062217
12175 025710
12176 060464
12177 012010
12200 066204
12201 010124
12202 066140
12203 066120
12204 060463
12205 012006
12206 066154
12207 020133 12210 031714
LDB Ml JSM MCBCK
LDB MSFLG JSM SYMCK DEF PLUSS-I
JMP #+4 CPA EXPOP JMP FSClO JMP FSC6 JSM SYMCl
DEF ASSOP-I JMP FSC12 LDA M2 STA SFLAG
12211 066042 JMP FSCl END OF FORMULA Formelende?
12212 061055 JSM GNEXT
12213 155472 FSC14 DSZ TEMPS7I
12214 064535
12215 074742
12216 170402
JMP FSCE2
SBR RET CHECK FOR AND, OR,>=,< = ,< >
prüfen auf "UND","ODER"
SEARCH FOR suchen nach
SINGLE CHAR OPERATOR Einzelzeichenoperator
NOT FOUND nicht gefunden EXPONENTIATION? YES ja
NO nein
NO, "=" ASSIGNMENT? nein, "=" -Zuordnung
NO nein
YES, SET Ja setzen
STORE OCCURRED FLAG Marke "Speicherung stattgefunden"
RECALL CHAR
Zeichen zurückrufen
ALL PARENS MATCHED? passen alle Klammern?
MISSING RIGHT PAREN rechte Klammer fehlt
RETURN WITH (B)=O zurück mit (B)=O
CHECK FOR A MULTI-CHARACTER BINARY OPERATOR Auf Vielzeichen-Binäroperator prüfen
(B)=-l; CHECK >=,<=,<> AS WELL AS AND, OR
prüfen . sowohl als auch UND, ODER
EXIT TO FSC6 IF FOUND
Ausgang nach FSC6, wenn gefunden
12217 135706 MCBCK STB SBPTR,I 12220 026035 LDB ORA SAVE FLAG Marke sichern
SEARCH FOR"AND"OR"OR" nach "UND" oder "ODER" suchen
3.0 9884/1370
6282 12221 060537
6283 12222 066225
6284 12223 055777
6285 12224 066120
6286 12225 145706
6287 12226 17O4O2
6288 12227 026037
6289 12230 066221
JSM STSRH JMP ¥+3 DSZ RSPTR
JMP FSC6 ISZ SBPTR,I
RET
LDB GTEA
JMP MCBCK+2 NOT FOUND nicht gefunden
DINC STACK POINTER Stapelspeicher-Hinweismarke DINC
RETURN zurück
CHECK REST OR OPERATORS? prüfen Rest oder Operatoren?
NO nein
CHECK FOR 7 = , ^ = , ^>
prüfen auf
Seite 130 SYNTAX SUBROUTINES
Syntax Unterprogramme
6291* 6292* 6293*
6294*
6295* 6296* 6297*
6298*
SEEK A VARIABLE OPERAND einen Variablenoperanden suchen
P+l:FIRST CHAR NOT A LETTER
erstes Zeichen kein Buchstabe
P+2:ARRAY OR STRING VARIABLE FOUND
Feld- oder STRING-Variable gefunden
P+3:SIMPLE VARIABLE einfache Variable
(A) = NEXT CHAR FOLLOWING OPERAND
nächstes dem Operanden folgendes Zeichen
IF STRING IS FOUND AND SFLAG=SBPTR THEN SET SFLAG=-1
wenn STRING.gefunden und SFLAG=SBPTR, dann SFLAG=-! setzen
LETTER? Buchstabe?
NO, RETURN TO P+l nein, zurück nach P+l
INITIALIZE FOR initialisieren für
FÜLL PRECISION volle Genauigkeit
IS NEXT CHAR "$"? nächstes Zeichen $? , YES ja
DIGIT? Ziffer?
6299* 12231 IF SFLAC VAROP JSM , dann
6300* 12232 5# SBPIR THEN ST RET LTR
6301 12233 wenn SELAG "* SBPTR SBR
6302 12234 061140 STB 16
6303 12235 170402 CPA OPTYP
6304 12236 074742 JMP B44
6305 12237 035717 JSM VARO 4
6306 010077 DIGCK
6307 066275
060750
309884/1370
6308 12240 066250
6309 12241 070137
6310 12242 021474
6311 12243 035474
6312 12244 060450
6313 12245 061055
6314 12246 031475
6315 12247 064356
JMP VAROl LDB A
LDA TEMPI STB TEMPI JSM STROP
JSM GNEXT STA TEMP2 JMP RETN3
nein
6316 12250 074742 VAROl SBR
6317 12251 010073 CPA S
6318 12252 024021 LDB
6319 12253 010055 CPA I
6320 12254 024025 LDB .8
6321 12255 074350 SZB VARO 6
6322 12256 055711 DSZ DPLAG
6323 12257 066261 JMP ♦+2
6324 12260 035717
6325 12261 045711
6326 12262 061055
STB OPTYP
ISZ DFLAG JSM GNEXT YES, RESTORE ASCII ja, ASCII zurückstellen
RECALL LETTER
Buchstabe zurückrufen
SAVE DIGIT
Ziffer sichern
COMBINE AND STORE OPERAND Operand kombinieren und
speichern
SAVE IT
sichern
0PTYP=4 FOR SPLIT PRECISION für gespaltene Genauigkeit
0PTYP=8 FOR INTEGER für Ganzzahl
SKIP IF FULL PRECISION überspringen, wenn volle Genauigkeit
DIM OR oder COM?
NO, SPLIT OR INTEGER INT ALLOWED
nein, gespaltenes oder ganzzahliges INT erlaubt
YES, STORE OPERAND TYPE ja, Operandentyp speichern
DIM OR oder COM?
YES GET CHAR FOLLOWING PRECISION
ja, auf Genauigkeit folgendes Zeichen holen
b3Z/ 12263 031475 STA TEMP 2 STORE CHAR
Zeichen speichern
6328 12264 010045 VAR06 CPA .40 Il / Il
6329 12265 066275 JMP VAR04 YES ja
6330 12266 010102 CPA B133 111"?
6331 12267 066275 JMP VARO 4 YES ja
6332 12270 021474 LDA TEMPI RECALL LETTER
Buchstabe zurückrufen
6333 12271 025717 LDB OPTYP
6334 12272 060451 JSM STROP+1 COMBINE AND STORE SIM
309884/1370 VARIABLE einfache Var able kombinieren und speichern ·
6335 12273 021475 VARO3 LDA TEMP2
6336 12274 064356
JMP RETN3
6337 12275 062436 VARO4 JSM STRID
6338 12276 062301
6339 12277 074742
6340 12300 064357
JSM SBSCK SBR 16
JMP RETN2 NO, RECALL NEXT CHAR nein, nächstes Zeichen
rückrufen
RETURN TO P+3 zurück nach P+3
STORE STRING OR ARRAY OPERAND
STRING - oder feld-Operand speichern
GET SUBSCRIPT Index holen
NO SUBSCRIPT, SET B=O Kein Index, B=O setzen
309884/1370
SYNTAX SUBROUTINES
Syntax-Unterprogramme
6342* 6343* 6344* 6345*
6346*
6347* 634*8*·
6349* 6350* 6351*
SUBSCRIPT SYNTAX Index-Syntax
ARYAD POINTS TO ARRAY OPERAND zeigt auf Feldoperand
EXIT TO P+1 IF FIRST CiIAR IS NOT " (" OR " £" OTHERWISE
P+2 DFLAG=I IF ANALYSING DIM OR COM STMT; 0 OTHERWISE
SFLAG=-1 FOR STRING OPERAND
Ausgang auf P+1, wenn erstes Zeichen nicht "(" oder
"L " ist, anderenfalls P+2
DFLAG=I, wenn DIM oder COM-Anweisung analysiert wird;
O anderenfalls
SFLAG= -1 für STRING-Operand
ARRAY OPERANDS ARE MARKED AS ONE OR TWO DIMENTITIONAL
MEMORY REQUIREMENT IS COMPUTED FOR COM STMT Feldoperanden werden markiert als ein- oder zweideminsional.Speicherbedarf wird für COM-Anweisung berechnet
6352* 12301 060513
6353 12302 17O4O2
6354 12303 020125
6355 12304 131706
6356 12305 155723
6357 12306 155723
6358 12307 021711
6359 12310 072110
6360 12311 066363
6361 12312 024157
6362 12313 04 5714
6363 12314 004132
6364 12315 060666
6365
SBSCK JSM LPCK
RET
LDA LBOP
STA SBPTR,I
DSZ ARYAD,I DSZ ARYAD,I
LDA DFLAG
RZA *+2 JMP SBSC3 LDB M256 ISZ SFLAG ADB M1 JSM PGINT FIRST CHAR A "(" OR "L ■? erstes Zeichen "C oder "C "?
NO nein
YES, RECORD ja, aufnehmen
A LEFT BRACKET eine linke Klammer
SET ARRAY Feld setzen
TO / DIMENSION auf / Dimension
DIM OR COM? DIM oder COM?
ALLOW 255 erlauben STRING?
NO, ALLOW UP TO
GET AN INTEGER Ganzzahl holen
30988W 1
6366 1 2316 004132
6367 1 2317 074404
Ö368 1 2320 035474
6369 1 2321 025714
6370 1 2322 074450
6371 1 2323 060463
6372 1 23 24 012005
6373 1 2325 066333
6374 1 2326 145723
6375 1 2327 026010
6376 1 2330 060666
6377 1 2331 004132
6378 - 2332 066334
6379 1 2333 074742
ADB M1 OFFSET BY -1
SBL 8 STB TEMPI SAVE DIMENSION sichern
LDB SFLAG S2B SBSC1 SKIP IF STRING
überspringen, wenn STRING
JSM SYMC1 LOOK FOR A COMMA DEF SCMMA-I A COMMA ein Komma JMP SBSCI NOT FOUND nicht gefunden ISZ ARYAD,! SET TO 2 DIMENSIONS
auf 2 Dimensionen setzen
LDB M257 GET SECOND zweite holen JSM PGINT DIMENSION
ADB M1 OFFSET BY -1
um -1 versetzen
JMP SBSC1+1 SECOND DIM=I OFFSET BY -1 Zweite Dim.=1 um -1 versetzen
6380 12334 005474 ADB TEMPI COMBINE DIMENSIONS
Dimensionen kombinieren
6jo1 12335 03 5714 STE SFLAG SAVE PACKED DIMENSIONS
gepackte Dimensionen sichern
63C2 12336 060534 SBSC2 JSM RPCKE DEMAND i7) " OR "-3 " verlangen 6383 12337 024123 LDB RBOP STORE °der
speichern
<53-c% i::34O O557C6 DSZ SBPTR
6385 1 i*41 1?.57O6 313 SBFTR,! A RIGHT BRACKET
rechte Klammer
6386 12342 045^06 ISZ 3 BPTR
6387 1^34 3 O2Ü711 LDB DFLAG SIM CR COM?
6:88 123 4'i 076710 R23 SBSCR oaer
6339 ^ RESTCiT. LC^AL QUANTITIES FOK ESC ."/nterne Qvantitaten für FSC zurückstallen
6?V'· "!2i4£ 0454?;· S2 TEMPS
6Ji-i 12346 0241Ί Γ LDB RSTKA PESET nullstellen
6392 1;>347 035777 STB RSPTR 5TACu POIiJTER
Stapelspeicher-Hinweismarke
63 93 12350 06 63 53 JbV- FPOF1
63 94 13351 !35777 FPOP2 STB KSPTIwI STORE ON RETURN STACK
auf Rückkehr-Stapelspeicher speichern
6395 123 52 04 577 7 ISZ RSPTR
6396 6397
12353 125472 FPOP1 LDB TEMPS,I GET WORD FROM S-STACK
Wort von S-Speicher holen
12354 045472
ISZ TEMPS
SYNTAX SUBROUTINES Syntax-Unterprogramme
6398
6399 6400 6401 64o2 6403
6404*
6405 6406
6407 6408 6409 6410 6411
6412 6413 6414
6415 6416 6417 6418
6420
12355 075633 SBP FP0P2,C IF NEGATIVE; IT MUST BE MSFLG wenn negativ, muß MSFLG sein
12356 035710
12357 125472
12360 045472
12361 035713
12362 064357 SBSCR JMP RETN2
STB MSFLG RESTORE MSFLG zurückstellen
LDB TEMPS,I
ISZ TEMPS STB UFLAG RESTORE UFLAG zurückstellen
RETURN TO P+2
zurück nach P+2
SAVE LOCAL QUANTITIES FOR FSC interne Quantitäten für FSC sichern
12363 021713 SBSC3 LDA UFLAG
12364 062416 JSM DINCT
12365 021710 LDA MSFLG
12366 O'72O53 SAP #+1,S
12367 062416 JSM DINCT 12370 055777 FRCU1 DSZ RSPTR
SAVE UFLAG ON THE S-STACK UFLAG auf S-Speicher sichern
SET FLAG Marke setzen SAVE MSFLG sichern
12371 121777
12372 062416
12373 021777
12374 010112
12375 066377
12376 066370
12377 021723
12400 062416
12401 062416
12402 020026
12403 031710
12404 062040
LDA RSPTR,I GET RETURN ADDRESS
Rückkehradresse holen
JSM DINCT LDA RSPTR CPA RSTKA
JMP *+2 JMP FRCU1 LDA ARYAD JSM DINCT
JSM DINCT
LDA
STA MSFLG JSM FSC SAVE IT sichern
ALL OF STACK MOVED?
alle Stapelspeicher bewegt?
YES ja
SAVE ARRAY ADDRESS Feldadresse sichern
DINK AGAIN AND CHECK OVERFLOW wieder DINK und Überfüllung prüfen
DISABLE STORE MODE Speicherbetrieb sperren
GET INDEX FORMULA Indexformel holen
309884/1370
6432* 6433*
6434*
12405 045472
12406 125472
12407 035723
12410 060463
12411 012005
12412 066336
12413 145723
12414 062040
12415 066336
ISZ TEMPS LDB TEMPS,I STB ARYAD
JSM SYMC1 DEF SCMMA-1 JMP SBSC2 ISZ ARYAD,I
JSM FSC JMP SBSC2 RESTORE zurückstellen ARRAY
ADDRESS
Feldadresse
COMMA?
NO
Komma?
nein
SET TO 2 DIMENSIONS
auf 2 Dimensionen setzen
GET SECOND INDEX FORMULA zweite Indexformel holen
DECREMENT TEMPS AND CHECK FOR OVERFLOW Abnahme Zwischenspeicher und Prüfung auf Überfüllung
12416 055472 DINCT DSZ TEMPS 12417 025472
12420 015412
12421 064561
12422 131472
12423 170402
LDB TEMPS CPB LSTPT JMP FSCE4 OVERFLOW?
YES ja
Überfüllung?
STA TEMPS,I NO, SAVE (A) ON STACK
nein, (A) in Stapelspeicher sichern
RET
SYNTAX SUBROUTINES Syntax-Unterprogramme
6442* 6443*
6444* 6445*
CHECK FOR "FN" FOLLOWED BY A LETTER Prüfen auf "FN" gefolgt von Buchstabe
EXIT P+1: NOT FOUND nicht gefunden Ausgang
P+2: FOUND, (A) .= LETTER
gefunden, (A)= Buchstabe
12424 025474 FNCK
12425 074404
12426 074217
12427 010162
LDB TEMPI SBL IOR B CPA FN
"FN"
309884/1370
6451 6452 6453
6454 6455
6456 6457+ 6458*
6459* 6460 6461
6462
6463 6464
6465 6466
6467 6468
6469 6470
6471 6472 6473 6474
6475 6476 6477
12430 066432
12431 170402
12432 061140
JMP *+2 RET JSM LTR
12433 160206 SYNE4 JSM ERRA,I
12434 021474 LDA TEMPI
YES ja
NEXT CHAR A LETTER? nächstes Zeichen Buchstabe?
NO nein
YES, RECALL LETTER
ja, Buchstabe rückrufen
12435 064357
JMP RETN2
RECORD A STRING OR ARRAY IDENTIFIER STRING- oder Feld-Identifizierer aufnehmen
12436 025706 STRID LDB SBPTR
12437 035723 STB ARYAD
12440 010077
12441 066450
12442 021474
12443 025717
12444 004020
12445 060451
12446 021475 SET POINTER TO
ARRAY OR STRING OPERAND Hinweismarke setzen auf STRING- oder Feldoperand
NEXT CHAR "#"? nächstes Zeichen $7
YES ja
GET OPERAND LETTER Operandenbuchstabe holen
SET THE TYPE TO FÜLL,SPLIT, OR INTEGER
WITH UNKNOWN DIMENSIONS
Typ setzen auf voll, gespalten
oder Ganzzahl mit unbekannten
Dimensionen
JSM STROP+1 COMBINE AND STORE
kombinieren und speichern
CPA B44
JMP STRI1 LDA TEMP1
LDB OPTYP ADB .
LDA TEMP2
12447 170402 RET
12450 015714 STRI1 CPB SFLAG
12451 066453 JMP #+2
12452 160206 STRNP JSM ERRA,I
12453 02013 2 LDA M1
12454 031714 STA SFLAG
12455 021474
12456 024076
12457 035723
LDA TEMP1 LDB B3 STB ARYAD RECALL FOLLOWING CHAR folgendes Zeichen holen
STRING VARIABLE ALLOWED? STRING-Variable erlaubt?
YES ja
NO nein
SET FLAG Marke setzen
TO "STRING OCCURRED" auf "STRING" vorgekommen
POINT ADDRESS AT ROM 'Adresse auf ROM zeigen
30988W137G
6478 12460 060451
6479 12461 065055
JSM STROP+1 STORE STRING OPERAND speichern
JMP GNEXT GET NEXT CHAR AND RETURN
nächstes Zeichen holen und zurück
Seite 134 FOR ί
FOR-i
3TATEME
^n we i su
6481 +
6482+ 12462 062231
6483 + 12463 066464
6484 12464 160206
6485 12465 060463
6486 12466 012006
6487 12467 066522
6488 12470 062040
6489 12471 026034
64 9O 12472 060537
6491 12473 160206
6492 " 24 74 O62C4O
6493"
64i#4
SYNTAX
6496
6 4 97
6498
6499*
c 5ü'o *
e 501 -f-
6504 +
6 505+
6 5C6*
6 507
12475 öS Π 53
:24;c ; 26000
^2477 Q6i,i 1?
FORS JSM VAROP
JMP SYNE8 SYNE8 JSM ERRA,I JSM SYMC1 DEF ASSOP-1 JMP SYNS6 JSM FSC
LDk TOA JSM STSRH SYNE9 JSM ERRA,I JSM FoC
JSM ECOX FORS1 LDB STEPA
JSM STSEH S7F1C JSM ERRA7I SEEK A SIMPLE VARIABLE einfache Variable suchen
NOT FOUND nicht gefunden SEEK "=" suchen
NOT FOUND nicht gefunden
GET REST OF INITIAL FORMULA Rest der Anfanqsformel
SEEK "TO"
suchen
NOT FOUND nicht gefunden
GET ENDING FORMULA Endformel holen
SOL?
SEEK "STEP"
HOT FOUND nicht crefunden
WAIT STi.'JEMiL·-;? SYNTAX Warteaiiweipungssyntax
12502 065151
JSM FSC GST HOFMuLA Formel holen JMP EOST DEMANö ΣΠΏ CF STMT
Ende der Anweisung verlangen
DSF STATEMENT SYNTAX DEF-Anweisungs-Syntax
125C3 061140 DEFS JSM LTR 09384/1370
6508 12504 066433 JMP SYNE4 JSM GETSK
6509 12505 062424 JSM FNCK JMP EOST-1
6510 12506 066433 JMP SYNE 4 DSZ BADDR
6511 12507 024040 LDB B37 JMP WAITS
6512 12510 060451 JSM STROP+1 12533 IS LAST ist letzte
6513 12511 021475 LDA TEMP2 MATH ROUTINES HERE math. Rou
6514 12512 060521 JSM LPCKE
6515 12513 062231 JSM VAROP
6516 12514 066515 JMP SYNE5
6517 12515 160206 SYNE5 JSM ERRA,I
6518 12516 060534 JSM RPCKE
6519 12517 061153 JSM EOLCK
6520 12520 060463 JSM SYMC1
6521 12521 012006 DEF ASSOP-1
6522 12522 160206 SYNE6 JSM ERRA,I
6523 12523 066501 JMP WAITS
6524*
6525*
6526*
RETURN STATEMENT SYNTAX
Rückkehr-Anweisungs-Syntax
6527 12524 061066 RETNS
6528 12525 O6515O
6529 12526 055400
6530 12527 066501
6531*
6532*
"FN" FOLLOWED BY LETTER? "FN" von Buchstabe gefolgt?
NO nein
YES RECORD ja, aufnehmen
FUNCTION NAME Funktionsname
DEMAND LEFT PAREN linke Klammer verlangen
FETCH SIMPLE VARIABLE einfache Variable abrufen
NOT FOUND nicht gefunden
DEMAND RIGHT PAREN rechte Klammer verlangen
EOL?
DEMAND verlangen AN"=" ein "="
FETCH ASSIGNING FORMULA Zuweisungsformel abrufen
RETURN A VALUE? Wert zurück?
NO nein
YES, GET A FORMULA ja, Formel holen
30988 A/1370
Seite 135 STATEMENT EXECUTION JUMP TABLE
Anweisungs-Ausführungs-Sprung-Tabelle
6534+ EXECUTION JUMP TABLE
Ausführungs-Sprung-Tabelle
ORG 173131 13741 B EWRIT-* FORMAT
6535+ 173772 ABS EGRAD-+
6536+ 13741 173767 ABS EDEG-*
6537 13741 173763 ABS ERAD-*
6538 13742 174111 ABS ELET-*
6539 13743 174044 ABS XEC4-*
6540 13744 172777 DISP ABS EDISP-* DATA
6541 13745 174505 ABS EINPT-*
6542 13746 174562 ABS ERSTR-+
6543 13747 172773 ABS EPRIN-*
6544 13750 174011 ABS EREAD-*
6545 13751 174036 ABS XEC4-*
6546 13752 173531 ABS EWAIT-*
6547 13753 174130 ABS ESTOP-*
6548 13754 174106 ABS EEND-*
6549 13755 174252 ABS ERTRN-*
6550 13756 002577 ABS EGOSA-*" REM
6551 13757 174354 ABS ENEXT-* DEF
6552 13760 174265 ABS EFOR-* COM
6553 13761 174213 ABS EIF-* DIM
6554 13762 002574 ABS EGOTO-* IMPLIED LET
impliziertes LET
6555 13763 174024 ABS XEC4-*
6556 13764 174023 ABS XEC4-*
6557 13765 174022 ABS XEC4-*
6558 13766 174021 ABS XEC4-*
6559 13767 174064 ABS ELET-*"
6560 13770 ABS
6561 13771
6562 13772
6563
6565
13773 167371
ABS FOP13-* NON-FORMULA OPERATOR TABLE Nicht-Formel-Operator-Tabelle
309884/1370
1 3774 23339 08
6566 1 3775 175744
6567 1 3776 167434
6568 1 3777 173560
6569 012000
333
ABS FTN13-* FUNCTION TABLE
Punktionstabelle
ABS CMD13-* SYSTEM COMMAND TABLE Systembefehlstabelle
ABS SYN13-* STATEMENT TABLE
Anweisungstabelle
OCT 12000
TABLE OP-CODE Tabelle
SYNTAX
6571 6572* 6573*
6574* 6575
6576 6577
6578
6579 6580 6581
6582 6583
6584 6585
6586 6587
6588 6589
16410
ORG 1641OB
CHECK SYNTAX OF DIM AND COM STATEMENTS Syntax der DIM- und COM-Anweisungen prüfen
16410 045711 ARRYS ISZ DFLAG
16411 021706
16412 031710
16413 031714
16414 160246
16415 164321
16416 074610
16417 031475
16420 121710
16421 025714
16422 160240
16423 001461
16424 031461
LDA SBPTR STA MSFLG
STA SFLAG
JSM VAROA,I JMP E25,I SZB ARRE1
STA TEMP2 LDA MSFLG,I
LDB SFLAG
SET DIM MODE FOR SBSCK DIM-Betrieb für SBSCK setzen
SAVE POINTER Hinweismarke sichern
ENABLE STRING VARIABLES STRING-Variable freigeben
FETCH I.D. abrufen MISSING VARIABLE fehlt
ARRAY OR STRING; DIMENSIONED? Feld oder STRING; dimensioniert
FETCH IDENTIFIER Identifi2ierer abrufen
FETCH PACKED DIMENSIONS gepackte Dimensionen abrufen
JSM MDIMA,I COMPUTE SPACE REQUIRED
benötigten Raum berechnen
ADA FTMP2 STA FTMP2
16425 021475 LDA TEMP2 164 26 010031 ARRY1 CPA EOL UPDATE
COMMON POINTER gemeinsame Hinweismarke auf den neuesten Stand bringen
END OF STMT?
Ende der Anweisung?
309884/ 1370
6594* 6595*
HOO
16427 170402
16430 060510
16431 066411
RET
JSM COMCE YES ja
DEMAND A COMMA Komma verlangen
JMP ARRYS+1 CONTINUE
fortfahren
16432 160206 ARRE1 JSM ERRA,I NO DIMENSION ON STRING^
keine Dimension auf STRING
COM STMT SYNTAX AND STORAGE ALLOCATION COM-Anweisungs-Syntax und SpeicherZuweisung
16433 025423
16434 015424
16435 066437
16436 160206
16437 021422 16440 072710
16441 035461
COMS LDB PBPTR CPB PBUFF
JMP SYNE3 JSM ERRA,I
LDA UKPTR RZA DIMS
6604 16442 062410
6605 16443 025404
660..· 164 44 004136
6607 16445 Ο74Ο76
6608 16446 ΟΟ5461
6609 16447 074112
6610 16450 064561
es ϊ ι 16451 025461
6612 16452 03 54 24
6613 16423 035423
6614 16454 035426
6615 16455 164203
6616*
6617* DIM STMT SY,
STB FTMP2
JSM ARRYS LDB LWAM
ADB M100
TCB
ADB FTxMP
SBM
DIM-Anwe i sung s-Syntax NULL PROGRAM? Null-Programm?
NO, ILLEGAL COM Nein, unerlaubtes COM
SKIP IF KEY; NO STORAGE
ALLOCATION
überspringen, wenn Taste;
keine Speicherzuweisung
INITIALIZE COMMON POINTER gemeinsame Hinweismarke initialisieren
CHECK SYNTAX prüfen
JMP FSCE4 LDB FTMP2 STB PBUFF
STB PBPTR STB PBPTO JMr- ACTSA. I EXCEEDED MAXIMUM
COMMON AREA?
maximaler gemeinsamer Bereich überschritten?
YES ja
MOVE PROGPAM
POINTiSRS Programm-Hinwei smarken bewegen
6618/
09884/1370
6619 6620 6621* 6622+
6623* 6624
6625 6626
16456 062410 DIMS JSM ARRYS CHECK SYNTAX prüfen
16457 1642O3 JMP ACTSA,I
READ AND INPUT STATEMENT SYNTAX Lese- und Eingangs-Anweisungs-Syntax
16460 160246 READS JSM VAROA,I RECORD VARIABLE OPERAND
variablen Operanden aufnehmen
16461 160206 SYE13 JSM ERRA,I NONE FOUND keinen gefunden
16462 066463 JMP
SYNTAX
6627 6628 6629 6630* 6631 +
6632/ 6633
6634 6635
6636 6637* 6638*
6639* 6640 6641 6642
16463 060504
16464 065151
16465 066460
RESTORE STMT SYNTAX
Ruckstell-Anweisungs-Syntax
16466 061066 RSTRS JSM GETSK
JSM COMCK COMMA? Komma?
JMP EOST NO nein
JMP READS YES ja
LINE # GIVEN? Zeilen # gegeben?
16467 065150
16470 060663
16471 065151
JMP ENDS+1 NO nein JSM LNUM-1 YES, GET LINE #"
ja, Zeilen # holen
JMP EOST
REM STATEMENT SYNTAX REM-Anweisungs-Syntax
16472 020107 REMS
16473 041552
16474 031552
16475 020031
16476 024012
16477 160253
LDA 01000 IOR RBUFF+1 STA RBUFF+1 SET ASCII BIT
ASCII-Bit setzen
LDA EOL SET STATEMENT TERMINATOR
Anweisungsterminator setzen
LDB .1 SET TO STORE IN LOW HALF zum Speichern in unterer Hälfte setzen
JSM CHRSA,I RECORD REST TO STMT AS ASCII Rest zur Anweisung als ASCII aufnehmen
30988W1370
6646 16500 164203 HO*
JMP ACTSA,I
IOHED ISZ SBPTR DEMAND LEFT BRACK
linke Klammer ver
6647* JSM LPCKE-1 GET SELECT CODE
Auswahlcode holen
6648* JSM FSCA,I
6649* JSM COMCE
6650 GET SELECT CODE AND FORMAT #
Auswahlcode und Format ft holen
JSM GNEXT
6651 ISZ SBPTR LOOK FOR "#"
sehen nach "#"
6652 16501 045706 JSM SYMC1
6653 16502 060520 DEF TIMES-1 NOT FOUND
nicht gefunden
6654 16503 160202 JMP #4-3
6655 16504 060510 ISZ SBPTR
6656 16505 061055 JMP GNEXT
6657 16506 045706 DSZ SBPTR
6658 16507 060463 JMP LNUM-1
6659 16510 012012
6660 16511 066514
6661 16512.045706
6662 16513 065055
16514 055706
16515 064663
SYNTAX
6664 + 6665*
6666*
6667 +
6668 + 6669*
6670*
SEARCH ALL TABLES alle Tabellen suchen
(A)= FIRST CHAR (B)
BADDR POINTS TO REST OF STRING zeigt auf STRING-Rest
= O FOR STATEMENTS für Anweisungen
=-1 FOR SYSTEM COMMANDS für System-Befehle
=-2 FOR ARITHMETIC FUNCTIONS
für arithmetische Funktionen
16516 004132 SALT
16517 035473
ADB M1 STB TEMP
SAVE RELATIVE ADDRESS OF TABLE relative Tabellenadresse sichern
3 Q9884/137 C
2 333908 LDB MAW
JSM SPAGE
6673 16520 025403 LDB LROMA
6674 16521 062531
6675 16522 024131
6676
16523 062531 SALT1 JSM SPAGE
GET ADDRESS OF LAST Adresse der letzten holen
SEARCH TABLE ON R/W PAGE Tabelle auf R/W-Seite suchen
GET ADDRESS OF LAST ROM PAGE Adresse der letzten ROM-Seite holen
SEARCH TABLE IN ROM Tabelle in ROM suchen
6677 1 6524 025717 LDB NUM ALL TABLES SEARCHED?
alle Tabellen gesucht?
(A)= OP Code Seite Sprung-Adresse
6678 1 6525 014130 CPB FROMA YES ja (B)= PAGE
6679 1 6526 170402 RET (SBPTR,I)= SAVE PAGE ADDRESS
Seitenadresse sichern·
6680 1 6527 004160 ADB M1O24 NO, SEARCH NEXT PAGE
nein, nächste Seite suchen
(TEMP)=JUMP SHIFIED OP CODE
verschobener OP-Code
READ LAST WORD OF PAGE
letztes Wort der Seite lese
6681 1 6530 066523 JMP SALT1 ADDRESS RETURN IF ZERO
zurück, wenn Null
6682* SEARCH TABLE ON A GIVEN PAGE
Tabelle auf gegebener Seite suchen
035717 SPAGE GET TABLE
6683* RET IF NOT FOUND
zurück, wenn nicht gefunden
074537 STB NUM STARING
6684* RET TO P+2 OF ROUTINE WHICH CALLED SALT IF FOUND
zurück nach P+2 der Routine, die SALT rief, wenn
gefunden
074310 LDB B,I ADDRESS
Tabellen-Startadresse holen
6685* 025717 SZB TSRET POINT TO FIRST CHARACTER
auf erstes Zeichen zeigen
6686* 005473 LDB NUM SEARCH TABLE
Tabelle suchen
6687* 074437 ADB TEMP NOT FOUND. RETURN
6688* 074744 ADB B,I
6689* 060537 SBL 1
6690* 6531 170402 TSRET JSM STSRH
6691 1 6532 RET
6692 1 6533
6693 1 6534
6694 1 6535
6695 1 6536
6696 1 6537
6697 1 6540
6698 1 6541
6699 1
nicht gefunden, zurück 309834/1370
6700 16542 070442 SAR 10
6701 16543 025473 LDB TEMP
6702 16544 014133 CPB M2
6^03 16545 050032 AND B17
6704 16546 005717 ADB NUM
6705 16547 074437 ADB B,I
6706 16550 070076 TCA
6707 16551 074017 ADA B
6708 16552 07O417 ADA A,I
6709 16553 031473 STA TEMP
6710 16554 125717
6711 16555 021466
6712 16556 O55777
6 713 16557 064357
LDB NUM,I
LDA LOCL"! DSZ RSPTR JM? RETN2
GET 4 BIT CODE
FOR SYSTEM COMMANDS 4-Bit-Code für Systembefehle holen
GET TABLE
ADDRESS Tabellenadresse holen
COMPUTE AND STORE speichern ABSOLUTE absolute
JUMP ADDRESS Sprungadresse
GET OP CODE FOR THIS PAGE OP-Code für diese Seite holen
RECALL OP CODE zurückrufen
RETURN TO ROUTINE zurück zur Routine
WHICH CALLED SALT die SALT rief
139
EXECUTIOiS; Ausführung
67*5* -EXSCUIE -.ΙΎ:" AWD GOSCh
GOTO ui-~-2 C)SOh ausfuhr en
67 1 7 -»' j 6 560- O2SJ421 BGOSb Lf-E TRADD
67 "t 5 1 6561 0605^3 ώΟΟ'.Ό JFM £LWST
67 1 9 1 6562 0607 71 CEU GPCPF
67 O 1 6563 G1OO6 4 CI-''- INTFL
67 2 1
*
1 6564 066602 ■TM~ -ς-,-Qc;
67 2 2
STACK RETURN ADDRESS Rückke>r.?dresse speichern
STAC?: GARBAGE IF GOTO GluiBLQE speichern, wenn GOTO
GET "ΓΙΙ13Τ OPERAND ersten■Ooeranden holen
Sf SIMPLE BRANCH
3Q9S8A/137G
6723 1 6565 061217
6724 1 6566 160225
6725 1 6567 066606
6726 1 6570 004154
6727 1 6571 074653
6728 1 6572 004054
6729 1 6573 074552
6739 6740
6741 6742 6743*
MCRT
JSM FETCH
JSM FLTRA,I
JMP EG0S3
ADB M64
SBP EGOS 3
ADB .63
SBM EG0S3
6730 16574 074744 SBL 1
6731 16575 005472 ADB TEMPS
6732 16576 035472 STB TEMPS
6733 16577 074056 CMB
6734 16600 005421 ADB PRADD
6735 16601 074252 SBM EG0S3
NO, COMPUTE BRANCH INDEX Nein, Verzweigungsindex berechnen
CONVERT TO INTEGER
in Ganzzahl konvertieren
OVERFLOW Überfüllung
SKIP IF GREATER THAN 64 überspringen, wenn größer als
64
RESTORE OFFSET BY -1 Versetzung um -1 zurückstellen
SKIP IF RESULT WAS NEGATIVE
OR O
überspringen, wenn Ergebnis negativ oder O
MULTIPLY BY 2
mit 2 multiplizieren
COMPUTE
AND SAVE ADDRESS Adresse berechnen und sichern
SKIP IF BEYOND END OF STATEMENT
überspringen, wenn außerhalb Anweisungsende
6736 1 6602 060567 EGOS2 JSM UNSTK UNSTACK FLAG
Marke entspeichern
6737 1 6603 011421 ■ CPA PRADD WAS IT A GOSUB?
War es ein GOSUB?
6738 1 6604 045412 ISZ LSTPT YES. RESTORE RETUR
ON STACK
ja, Rückkehradresse im Stapelspeicher zurückstellen
166o5 166610 JMP EGS1A,I EXECUTE BRANCH
Verzweigung ausführen
16606 055412 EG0S3 DSZ LSTPT OUT OF BOUNDS, DELETE FROM
STACK
außerhalb Grenze, aus Stapelspeicher entfernen
16607 164172 JMP XEC4A,I 16610 010202 EGS1A DEF EG0S1
16614B IS LAST ist letztes Ί0988Λ/1370
6744* TAPE COMMAND SYNTAX FOLLOWS HERE Band-Befehl-Syntax folgt hier
6745* 6746 * NO ERRORS*
END keine Fehler
9830
0162* 0163 00166 000000 FWAM BSS
0164 00112
0166 0167
0168 0169 0170 0171 0172 0173 0174 0175
0176
0177 0178 0179 0180 0181
RSTKA EQU B176O
0165 00167 000000 WRITE BSS
00170 000000 CLERA BSS
00116
REED EQU QTOP
00121 START EQU B4000
00171 000000 RUNA BSS
00172 000000 XEC4A BSS
00173 000000 PEXMA BSS
00174 000000 RDYDÄ BSS
00122 LISTA EQU B6K
00175 000000 TSRHA BSS
00176 000000 ELINA BSS
00177 000000 SSYMA BSS
00200 000000 OPCHA BSS
00201 000000 FORMA BSS
00202 000000 FSCA BSS
00203 000000 ACTSA BSS
00204 000000 DELSA BSS
FIRST WORD OF AVAILABLE MEM erstes Wor des verfügbaren Speichers
START OF RETURN STACK Start Stapelspeicherrückkehr
PRINTER AND DISPLAY DRIVER Druck- und Wiedergabeaussteuerung
CLEAR SCREEN
Anzeige löschen
KEYBOARD DRIVER QTOP IS = 200OB Tastatur-Aussteuerung QTOP ist =2000 B
TABLE SEARCH Tabellensuche
OUTPUT I/O BUFFER Ausgang I/O-Puffer
SEARCH SYMBOL TABLE FOR SYMBOL Symboltabelle für Symbol suchen
30988 W1370
0182 00205 000000 AERRA BSS 1
0183 OO2O6 000000 ERRA BSS 1
0184 O0207 014560 INTEA DEF ISERV
0185 00210 000000 OUTIA BSS 1
0186 00211 000000 .BUFA BSS 1
0187 00212 000000 .SLBF BSS 1
0188 00213 001744 AR1A DEF AR1
0189
0190
00214
00215
001754
000000
AR2A
TMPOP
DEF
BSS
AR2
1
019-1 00216 000000 .FADA BSS 1
O192 00217 000000 .FSBA BSS 1
0193 00220 000000 .FMPA BSS 1
0194 00221 000000 .FDVA BSS 1
0195 00222 000000 ENTFA BSS 1
O196 00223 000000 .FSR BSS 1
0197 00224 000000 UPARA BSS 1
0198 00225 000000 FLTRA BSS 1
0199 OO226 000000 FLTFA BSS 1
0200 00227 000000 FXFLA BSS 1
0201 00230 000000 FLTSA BSS 1
0202 OO231 000000 SPLFA BSS 1
0203 00232 000000 SNFLA BSS 1
O2O4 00233 000000 BEND BSS 1
0205 00233 SBUFA EQU BEND
0206 00234 000000 NMOTO BSS 1
0207
0208
00235 000000 FILLA BSS 1
0209 001 11
0210 001 10
0211*
0212 001 23
00236 000000 SLEND BSS 1
TMPA EQU B174O BADRP EQU B1400
FOPBS EQU B12K ALTERNATE ENTRY FOR ERROR Eingang für Fehler alternieren
OUTPUT AN INTEGER
Ausgang eine Ganzzahl
FIRST CHAR OF I/O BUFFER erstes Zeichen des I/O-Puffers
REFRESH BUFFER POINTER Puffer-Hinweismarke erneuern
ADD addieren
SUBTRACT subtrahieren MULTPY multiplizieren DIVIDE dividieren
SQURARE ROOT Quadratwurzel UP ARROW Pfeil nach oben
NUMBER OUTPUT ROUTINE LINK Zahlen-Ausgang-Programmbindung
SUPPLY NEEDED BLANKS ON
OUTPUT
Versorgung benötigte Leerfelder am Ausgang
REFRESH BUFFER END
Auffrischungspuffer Ende
POINTER POINTER TO I/O BUFFER Hinweismarken-Hinweismarken zum I/O-Puffer
30988W 1 370
40?
0213 00237 OOOOOO SALTA BSS
0214 00240 000000 MDIMA BSS
0215 00241 000000 SYTSA BSS
0216 00242 000000 DCOMA BSS
0217 00243 000000 NUMCA BSS
Seite 141 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten-System
0510 0511*
0513* 0514*
0515*
14000
LST
3-20-72-9:30 ORG 14000B
SYSTEM COMMAND TABLE Systembefehls-Tabelle
14000 000003 ABS ESEC-*
14001 051505 CMNDT ASC 1,SE
14002 041701 OCT 417
14003 060730 ESEC JSM GETAD
14004 035647 STB TAP1
14005 025477 LDB TEMP4
14006 015647 ESEC3 CPB TAPI
I-.OCV 0660,6 JMP S3ECG
14010 074517 LOA B,T
14011 070410 SZA ESEC4
MOI ~ O7 2G53 SAP --MO , 'j
061007
1400 5 C6oC;Ob " JM? E??C3
14015 02143 5 ESiHlC6 LDA SECFL
Ί4017 O4OOC2 I OR .FLGBT
14020 03*435 SiLA i-:0C?L
"40;;·" 1ί?·ίΓ'4 SGEC4 JM? ,IHYDA
SECURE, OP CODE 1 sichern, OP-Code 1 C, OP CODE
A=LNXI,B=LNX2 TEMPOR, LNX2 ADDR LNXI ADDR
DONE? fertig?
SKI? IF TYPING AID überspringen, wenn Druckhilfe
SST BIT 15 setzen
Seile zurücksteilen NC, GET NUXT LINS
nein- "ächsbe Seile nolen
SET 3IT 15 setzen
CUSTOMER SECURING PROG Kurven-Sicher ungs-Prograrnra
0534 +
0536 0537 + 0538* 0539+
0540+ 0541*
0547 0548+ 0549+ 0550+
0551 + 0552+
0555-
0560 0561* 0562+ 0563 + 0564*
14022 0Ό0000
BSS
SUB-TABLE FOR STORE AND LOAD
Untertabelle für Speichern und Laden
14023 0411111 SUBT ASC 1rBI
14024 047264
14025 045505
14026 054660
14027 042101
14030 052101
14031 170400
OCT 47264
ASC 1,K
BIN OP CODE 24 N, OP CODE
KEY, OP CODE 20 Taste
OCT 54660 Y, OP CODE
ASC 2,DATA DATA, OPCODE 21
OCT 170400 OPCODE, EOT
SYNTAX SERVICE SUBR
Syntax-Service-Unterprogramm
14032 061055 SERV
14033 060456
14034 010031
14035 170402
14036 055706
14037 055400
14040 160202
14041 064357
JSM GNEXT
JSM SBPUD
CPA EOL
RET
DSZ SBPTR
DSZ BADDR
JSM FSCA,I
JMP RETN2 EOL?
GEET NO. OR EXPRESSION Zahl oder Ausdruck
Seite 142 983OA TAPE CASSETTE SYSTEM 983OA Bandkassfcten System
0565+ 0566+ 0567* EXECUTION Ausführung
309884/1370
0568* 0569+ 0570+
0571* 0572+ 0573 0574
0575 0576 0577
0578 0579
0580 0581
0582 0583 0584* 0585* 0586* 0587* 0588* 0589 0590 0591
0592 0593 0594 0595 0596
0597
O598 0599
ALOAD - ALL LOAD EXECT ENTRY gesamte Ladung richtiger Eingang
14042 14043
14044 14045 14046
14047 14050
14051 14052
14053 14054
060771 ALOAD JSM GTOPP GET OPERAND holen
072510
045472 121472 013732
067172 013733
067315 013734
067421 055472
RZA LOADP
ISZ TEMPS LDA TEMPS,I CPA DATOP
JMP LDATA CPA KEYOP
JMP LKEY CPA BINOP
JMP LBIN DSZ TEMPS SKIP IF OPERAND GIVEN überspringen, wenn Operand gegeben
DATA OPCODE? Daten
YES ja
KEY-OPCODE? Taste?
YES ja
BINARY OPCODE? binärer
YES ja
LOADP - LOAD PROGRAM Programm laden
14055 062070 LOADP JSM L0AD2
14056 062102 JSM L0AD8
14057 060645 JSM MINIT
14060 021660 LDA TAP7
14061 062160 JSM L0AD3
14062 O21416 LOAD9 LDA MODE
14063 O7O15O SZA *+3
14064 060651 JSM INITS
SCRATCH SYMBOL TABLE Symboltabelle einschreiben
14065 164174
14066 021661
14067 164171
RESET STACKS Stapelspeicher nullstellen
JMP RDYDA,I KEYB-RET TOSYSTEM-DO NOT
LDA TAP8 JMP RUNA,I EXECUTE
nicht ausführen
SEC LINE # Zeilen
09884/1370
2333908 062300 L0AD2 JSM SFLOC TEMPOR, ADDR
0600* 027745 LDB TAPAD STATEMENT POINTER
Anweisungs-Hinweismarke
0601* 021472 L03 LDA TEMPS EOL FOLLOWS? folgt EOL?
0602* 011421 CPA PRADD YES, PROCESS
jam verarbeiten
0603 14070 170402 RET POINT TO LINE #
auf Zeilen ^ zeigen
0604 14071 045472 ISZ TEMPS LINE# Zeilen #
0605 14072 121472 LDA TEMPS,I TAP7-TAP8, LINE # S
Zeilen # S
0606 14073 074557 STA B,I
0607 14074 045472 ISZ TEMPS LOOK FOR SECOND LINE^
nach zweitem Zeilen # se
0608 1407 5 077470 RIB LO 3
0609 14076
0610 14077
0611 14100
0612 14101 021661 L0AD8 LDA TAP 8
0613* 070110 SZA *+2 LNX2 GIVEN gegeben
0614* 066126 JMP LOAD7-2
0615* 021416 LDA MODE SKIP ON PROGRAM
0616 14102 070110 SZA *+2
0617 14103
0618 14104
O619 14105
0620 14106
Auf Programm überspringen
Seite 143 4107 983OA
983OA
TAPE CASSETTE SYSTEM
Bandkassetten System
LOAD 7 DO NOT EXECUTE
nicht ausführen
LINE*
Zeilen # hol
0621 1 4110 066130 JMP PRADD,] [ GET NEXT
nächstes
EC 3IT
Bit löschen
0622 1 4111 121421 LDA *+1,C CLEAR S
zweites
0623 1 4112 07007 2 SAM PRADD
0624 1 4113 025421 LDB PBPTR
0625 1 4114 015423 CPB .1E4 10000
0626 1 4115 020056 LDA
0627 1 070076 TCA
~ O 9 8 R LI 1 3 7 O
0628
0629
0630
0631
14116 001660
14117 070213 14120 021660
ADA TAP7
SAP Λ LDA TAP7
14121 031661
STA TAP8
0632 14122 066126 JMP ++4
0633 14123 021427 LDA .LNUM
0634 14124 070070 SIA #+1
0635 14125 031661 STA TAP 8
0636 14126 070742 SAR 16
0637 14127 03141 6 STA MODE
0638 14130 025421 L0AD7 LDB PRADD
0639 14131 163756 JSM DCM1A,I
0640 14132 021666 LDA IDBo+2
0641 14133 010020 CPA .3
0642 14134 066142 JMP *+6
0643 14135 01003 6 CPA .23
O644 14136 O6614O JMP #+2
0645 14137 067325 JMP ERR7
0646 14140 024106 LDB Bill
0647 14141 035435 STB SECFL
0648 14142 021424 LDA PBUFF
0649 14143 011423 CPA PBPTR
0650 14144 066151 JMP L012
0651 14145 121424 LDA PBUFF,I
0652 14146 072150 RZA L012
0653 14147 160205 ERR8. JSM AERRA,I
O654 14150 177701 DEC -63
0655 14151 025660 L012 LDB TAP 7
0656 14152 074210 SZB *+4
LNX1 - LINE# FOR START LOAD Zeilen # für Startladung
NEXT LINE OK nächste Zeile i.O.
START AT FIRST LINE OF
LOADED PROG.
bei erster Zeile des geladenen
Programms starten
FOR START OF EXECUTION für Ausführungsstart
PRESENT L.N. präsent
START AT NEXT N-f-N-f-Zeile starten
EXECUTE ausführen
DECOMPILE
dekompilieren
FILE TYPE Datei-Typ SOURCE? Quelle?
SEC SOURCE? zweite Quelle?
YES ja
TYPE ERROR Typ-Fehler
SET SECURE FLAG Sicherheitsmarke setzen
NULL PROG? Null-Programm? YES ja
TYPING AID RESIDENT? Druckhilfe anwesend?
OVERLAY ERROR Überfüllungsfehler
START LINE SPECIFIED? Startzeile spezifiziert?
4/1370
0657 14153 025670 LDB IDB04
0658 14154 074076 TCB
0659 14155 005660 ADB TAP7
0660 14156 035663 STB OFSET
0661 14157 170402 RET
0662*
0663*
0664*
0665 14160 061075 L0AD3 JSM FNDPS
0666 14161 066271 JMP LO 6
0667 14162 066163 JMP *+1
0668 14163 035650 STB TAP 2
0669 1 41 64 035477
0670 1 41 65 025423
0671 1 41 66 160251
0672+
0673*
0674/
0675 · 1 41 67 021671
0676 1 41 70 001663
ja, Differenz berechnen
BETWEEN SPECIFIED zwischen spezifiziertem AND ACTUAL LINE# und tatsächlichen Zeilen«
TEMPOR Zwischenspeicher
STB TEMP4
LDB PBPTR JSM CLP1A,I FIND ADDR OF START LINE Adresse der Startzeile auffinden
L.N. BEYOND END OF PROGR außerhalb Programmende
L.N. BETWEEN PROGRAM LINES zwischen Programmzeilen
L.N. EXACTLY FOUND - STORE
START ADD
richtig gefunden - Startaddition speichern
SAVE FOR CLP1A für CLP1A sichern
DEL FROM HERE TO END OF PROGR von hier zum Programmende
Endzeilen
ADA OFSET
Seite 144 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
14171 000012
14172 060742 14173 015650 Ο68Ο 14174 066176
ADA JSM FND
CPB TAP2 JMP *+2 FIND ADDR OF END LINE Adresse der Endzeile auffinden
SAVE AS START ADDR als Startadresse sichern
YES ja
30988 U /1370
0682 0683 + 0684
0685*
14175 066147
14176 035660
JMP ERR8 NO, OVERLAY
nein, überlagerung
STB TAP7 TEMPOR Zwischenspeicher
CHECK FOR LEGAL COMMON AND OVERFLOW auf legale Gemeinsamkeit und Überfüllung prüfen
UPDATE POINTERS
Hinweismarke auf den neuesten Stand bringen
LOADING COMMON? Ladung gemeinsam?
NO COMMON keine gemeinsamen
UPDATE PROGRAM POINTERS Programm-Hinweiemarken auf den neuesten Stand bringen
YES ja
LOADING AT FIRST LINE? Ladung bei erster Zeile?
YES ja
NO, MISPLACE COM
nein, falschplaziertes COM
0686* 14177 021672 COMON LDA IDBO+6
0687 14200 072210 RZA YCOMN
0688 14201 021665 LDA IDBO+1
0689 14202 160250 JSM OVCHA,I
0690 14203 066231 JMP KCOMN
0691 14204 02 5660 YCOMN LDB TA? 7
0692 14205 015424 CPB PBUFF
0693 14206 066210 JMP *+2
0694 14207 16433C JMP E3O+3,I
0695 14210 025422 LDB UKPTR
0696 14211 076350 RZB C0M1
0697 14212 025405 LDB FWUP
0698 14213 035424 STB PBUFF
0699 14214 035426 STB PBPTO
0700 14215 035423 STB PBPTR
0701 14216 035476 STB TEMP 3
0702 14217 066221 JMP *+2
0703 14220 070742 C0M1 SAR 16
0704
DO NOT ALLOCATE SPACE FOR COMMON keinen Raum für gemeinsamen zuteilen
4/1370
7333008
- 413 -
ms
0705 14221 OO1665
0706 14222 16O25O
ADA IDBO+1
0713
ADD PROGR SIZE TO COMMON SIZE Programmlänge zur gemeinsamen Länge addieren
0707 14223 021422 LDA UKPTR
0708 14224 072250 RZA KCOMN
0709 14225 021424 LDA PBUFF
0710 14226 OO1672 ADA IDBO+6
0711 14227 031424 STA PBUFF
0712 14230 031660 STA TAP 7
14231 061121 KCOMN JSM MVTOH JSM OVCHA,I CHECK OVERFLOW AND UPDATE POINTERS
überfüllung prüfen und Hinweismarken auf den neuesten Stand bringen
SKIP IF KEY
überspringen, wenn Taste
UPDATE PBUFF
auf den neuesten Stand bringen
UPDATE LOAD ADDR
Ladeadresse auf den neuesten Stand bringen
OPEN UP SPACE
Raum öffnen
0714 + LOAD THE FILE Datei laden
0715
0716 + 14232 063105 JSM RRRID
0717 14233 O2166O LDA TAP 7
0718 14232 025665 LDB IDBO+1
0719 14 235 O7OO37 ADB A
07 20 14236 062717 JSM TRD
0721 14237 063031 JSM HALT
0722 14240 070115 SEC ++2
0723 14241 067100 JMP ERR4
0724
REV READ FOF; READ IMMDT FILE ID lesen lesen Datei
START ADDR Adressenstart CURR FILE SIZE Dateilänge END ADDR Adressenende READ FILE Datei lesen
CHECK SUM ERROR
Summenprobe Fehler
?. 09884/1370
- 4**—
0726+' ADD OFFSET TO ALL LINE NUMBER REFERENCES Versetzung zu allen Zeilenzahlreferenzen addieren
0728 14242 021423 LDA PBPTR
0729 14243 031647 STA TAP1 SAVE END OF PROG POINTER
Ende der Programm-Hinweismarke sichern
0730 14244 021654 LDA TAP5
0731 14245 031423 STA PBPTR SET TO END OF LOADED AREA
Ende des geladenen Bereichs setzen
0732 14246 021653 LDA TAP4 POINTER TO START OF LOADED
AREA
Hinweismarke auf Start des
geladenen Bereichs
309884/1370
Seite 145 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
0733
0734 0735
0736 0737
0738
0739 0740* 0741 + 0742*
0743* 0744
14247 160257
14250 066256
14251 001663
14252 131472
14253 160260
14254 066256
14255 066251
JSM FNDAA,I FIND FIRST LINE / # REF
erstes Zeilen / k REF finden
JMP L04 ADA OFSET ADD OFFSET
Versetzung addieren
STA TEMPS,I RESTORE zurückstellen
JSM FND1A,I FIND NEXT REF
Nächstes REF auffinden
JMP LO4
JMP *- END OF LOADED AREA
ADD OFFSET TO ALL LINE NUMBERS LOADED Versetzung zu allen geladenen Zeilenzahlen addieren
14256 025653 L04 LDB TAP4
0745 14257 015423 CPB PBPTR
0746 14260 066266 JMP L05
0747 14261 074517 LDA B,I
0748 14262 001663 ADA OFSET
0749 14263 074557 STA B,I
0750 14264 061007 JSM NEXTA
0751 14265 066257 JMP L04+1
0752 14266 025647 LO5 LDB TAP1
0753 14267 035423 STB PBPTR
0754 14270 170402 RET
0755*
0756* APPEND anhängen
0757*
POINT TO START OF LOADED
AREA
auf Start des geladenen
Bereichs zeigen
END OF LOADED AREA?
Ende des geladenen Bereichs?
YES ja
GET LOADED LINE NUMBER geladene Zeilenzahl holen
ADD OFFSET
Versetzung addieren
STORE NEW LINE #
neues Zeilen M speichern
COMPUTE ADDR OF NEXT LINE Adresse der nächtsten Zeile berechnen
RESTORE END OF PROGR POINTER Ende der Programm-Hinweismarke zurückstellen
309884/1370
0758 14271 035660 L06 ; STB TAP7 LDA TEMPS START ADDR Adresse starten
0759 14272 O25671 LDB IDBO+5 CPA PRADD END LINE*
Ende Zeilen#
0760 14273 005663 ADB OFSET JMP SF2
0761 14274 004161 ADB MAXSN JSM FILEC FINAL LINE #
Schlußzeilen #
0762 14275 074112 SBM *+2 STA TFILE EXCEED 9999? übersehrit
0763 14276 164273 JMP E5-1,1 SBR 16 YES ja
0764 14277 066177 JMP COMON STB TAP7
0765* STB TAP8
0766* JMP LOCF2
0767* SUBR FOR FILE
Unterprogramm
LOCATING
für Datei-Plaz
SBR 16 ierung
0768* STB TAP7
0769* STB TAP8
0770 14300 062457 SFLOC JSM UNITC STB TFILE
0771 14301 021472 JMP LOCF2
0772 14302 011421 END OF STATEMENT?
Ende der Anweisung?
0773 14303 066312 ZES1 PROCESS
j a, verarbeiten
O774 14304 062510 NO nein
0775 14305 031644
0776 14306 074742
0777 14307 035660
0778 14310 035661
0779 14311 067123 LOC FILE AND RET
Datei plazieren und zurück
0780 14312 074742 SF2
0781 14313 035660
0782 14314 035661 _
0783 14315 035644 FILE O Datei O
0784 14316 067123
0785*
0786*
0787 +
0788*
30S88i Ί370
983OA TAPE CASSETTE SYSTEM
983OA Bandkassetten System
0789* ALSTOR - ALL STORE
Ausführungseingang
EXECUTION
für "Alles
GTOPP ENTRY
Speicher"
I DATA OPCODE?
Daten-OP-Code?
JSM SFLOC I DECOMPILE dekompilieren ADDUME FIRST LINE P
erstes Zeilen f annehmen
0790* STORP YES ja JSM L03-1 I FIRST LINE # erstes Zeile
0791* TEMPS KEY OPCODE? Tasten-OP-Cod JSM WPERM
0792* 14317 060771 ASTOR JSM TEMPS, GET OPERAND holen YES ja LDB PRADD
0793 14320 072510 P.ZA DATOP SKIP IF OPERAND GIVEN
überspringen, wenn Operand
gegeben
BINARY OPCODE? JSM DCM1A, SECOND LINE#
zweites Zeilen#
07 94 14321 045472 ISZ SDATA LDA PBUFF, SKIP IF GIVEN
O795 14322 121472 LDA KEYOP SAM *+1 ,C
0796 14323 013732 CPA SKEY LDB TAP 7
0797 14324 067216 JMP BINOP SZB *+2
0798 14325 013733 CPA ERRO,I STORP - STORE PROGRAM Speicherprogramm LDA TAP 7
0799 14326 067403 JMP TEMPS LDB TAP 8
0800 14327 013734 CPA RZB *+2
0801 1433O 167755 JMP 14332 062300 STORP
0802 14331 055472 DSZ 14333 062071
0803 14334 063025
0804* 14335 025421
0805* 14336 163756
0806* 14337 121424
0807* 14340 070072
0808^ 14341 025660
0809 14342 074110
0810 14343 021660
0811 14344 025661
0812 14345 076110
0813
0814
0815
0816
0817
0818
O819
0820
überspringen, wenn gegeben
309884/1370
2 3 3 3 j Π 8
- 418 -
0821 14346 024056
0822 14347 060730
0823 14350 015477
0824 14351 067242
0825 14352 121477
0826 14353 070072
0827 14354 031670
0828 14355 021477
0829 14356 031472
0830 14357 031650
0831 14360 035660
0832 14362 060602
0833 14362 001466
0834 14363 013746
0835 14364 066366
0836 14365 066373
0837 14366 025405
0838 14367 074076
0839 14370 005424
Ο84Ο 14371 035672
0841 14372 066375
0842 14373 074742
0843 14374 035672
0844 14375 025720
LDB .1E4
JSM GETAD
CPB TEMP4
JMP ERR5
LDA TEMP4,I
SAM #+1fC
STA IDB0+4
LDA TEMP4
STA TEMPS
STA TAP2
STB TAP7
JSM NEXT1-4
ADA LOCL1
CPA TCOM
JMP
JMP
LDB FWUP
TCB
ADB PBUFF
STB IDB0+6
JMP *+3 SBR 16 STB IDB0+6
LDB LASTN
ASSUME LAST LINE IN PROGRAM letzte Zeile im Programm annehmen
GET ADDR LIMITS Adressen-Grenzen holen
NULL PROGRAM
IN FILE ID in Datei ID
START OF STORE AREA Start Speicherbereich
LOW LIMIT Untergrenze LOW LIMIT Untergrenze HIGH LIMIT Obergrenze
gemeinsam?
IS IT COMMON?
YES ja
NO nein
START OF USER AREA Start Benutzerbereich
FIND SIZE OF COMMON Gemeinsam-Lange finden
IN FILE"ID BUFF in Datei-ID-Puffer
ZERO COMMON
Null gemeinsam LAST LINE # letztes Zeilen
Seite 147 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
0845 14376 035671
0846 14377 025660
0847 14400 021650
0848 14401 063237
STB IDBO+5
IN FILE ID BUFF in Datei ID Puffer
LDB TAP7 TEMPR, END ADDR Adressenende LDA TAP2 TEMPR, START ADDR Adressenstart JSM SDAT2
4/1370
ORIGINAL KMSPEGTED
2 3 3 < j H 8 JSM SECCK
0849 14402 063463 LDB .3
0850 14403 024020 SAP ++2
0851 14404 070113 LDB .23
0852 14405 024036 STB IDBO+2
0853 14406 035666 JMP SDAT3+2
0854 14407 067231 '
0855+
0856 + 4iscl lausführ
0857+ MERGE EXECUTION I
0858+
0859+ LDB TEMPS
0860 14410 025472 MERGE ADB M2
0861 1 4411 004133 LDA B., I
0862 14412 074517 SAM ++1 ,C
0863 14413 070072 STA TREGE
0864 14414 031630 JSM LOAD 2
0865 14415 062070 LDA TAP 8
0866 14416 021661 RZA LO7-2
0867 14417 072310 LDA MODE
0868 14420 021416 RZA L07
0689 14421 072310 LDA TREGE
0870 14422 021630 ADA .1
0871 14423 000012 STA TAP 8
0872 14424 031661 SAR 16
0873 14425 070742 STA MODE
0874 14426 031416 JSM LOAD 7
0875 14427 062130 L07 JSM MINIT
0876 14430 060645 LDA IDBO+4
0877 14431 021670 ADA OFSET
0878 14432 001663 JSM FNDPS
0879 14433 061075 JMP MERG1
0880 14434 066442 JMP ++2
0881 14435 066437 JMP ERR8
0882 14436 066147 STB TAP 2
0883 14437 035650
UNSEC SOURCE Quelle SEC SOURCE Quelle
ADDR OF MERGE LINE
MERKE LINE NO.
Mischzeilen-Zahl
CLEAR SEC BIT
zweites Bit löschen
TEMPOR Zwischenspeicher
LNX2 GIVEN gegeben
DO NOT EXECUTE
nicht ausführen
POINT TO NEXT LINE auf nächste Zeile zeigen
LINE FOR START EXECUTION Zeile für Startausführung
EXECUTE ausführen
START L.N. starten
FIND START ADDR finden
OVERLAY ERROR
Überfüllungsfehler
SAVE ADDR Adresse sichern
309884/1370
ORIGINAL WSP&CTED
23 3 3 3 0
0884 0885 0886 0887 0888.* 0889+ 0890+ 0891 + 0892+ 0893 0894 0895 0896 0897 0898 0899
0900
14440 062167 JSM L0AD4
14441 066062 JMP L0AD9
14442 062271 MERG1 JSM L06
14443 066062 JMP L0AD9
LINK EXECUTION Bindungs-Ausführung
14444 062070 LINK
14445 062102
14446 021660
14447 062160
14450 021416
14451 070150
14452 060651
14453 164174
JSM LOAD2 JSM LOADS LDA TAP7 JSM LOAD3 LDA MODE SZA ++3 JSM INITS RESET STACKS Stapelspeicher nullstellen
JMP RDYDA,I KEYB-RET TO SYSTEM-DO NOT EXECUTE zum System - nicht ausführen
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
14454 021661
LDA TAPB
0902 14455 031725 STA NXTST JSM GTOPP
0903 14456 164004 JMP XECA,I RZA F5
0904 + ISZ TEMPS
0905+ LDA TEMPS
0906+ UNIT NO CONFIGURATION
Einheit nicht Konfiguration
CPA PRADD
0907 + JMP F5
0908+ LDA TEMPS,I
0909 14457 060771 UNITC
0910 14460 072510
0911 14461 045472
0912 14462 021472
0913 14463 011421
0914 14464 066472
0915 14465 121472
SEC LINE # zweites Zeilen FP
GET OPERAND
NO # PRESENT kein # präsent
holen
309884/1370
ORIGINAL ^£
233
J J
ι ο 0
0940
0941
0942
0943
0944
0945
0946
0947 +
0916 14466 050065
0917 14467 013742
0918 14470 066475
0919 14471 055472
0920 14472 023735 F5
0921 14473 031645
0922 14474 170402
0923 14475 061217 GUNT
0924 14476 160225
AND OPMSK CPA NUMS JMP GUNT DSZ TEMPS LDA B120K
STA TUNIT
RET
JSM FETCH
JSM FLTRA,I
0925 14477 164342 UOVF JMP E4O+3,I Dateizahl-Konfiguration 061217 FILEC JSM FETCH
0926 14500 075752 SBM +-1
0927 14501 074117 LDA B
0928 14502 004142 ADB M11 14510
0929 14503 075613 SBP UOVF
0930 14504 070204 SAL 12
0931 14 505 07 2110 RZA *+2
0932 14506 066477 JMP UOVF
0933 14507 066473 JMP F5 + 1
0934*
0935*
0936* FILE NO. CONFIGURATION
0937*
0938*
0939
IS IT # ? ist es # GET UNIT Einheit holen
ASSUME INTERNAL intern annehmen
UNIT TEMPOR
Einheit Zwischenspeicher
EVALUATE FORMULA Formel auswerten
CONVERT TO INTEGER
in Ganzzahl konvertieren
SAVE UNIT IN A REG
Einheit in Register sichern
UNIT <11? «Einheit <
POSITION UNIT NO. Einheitszahl positionieren
14511 160225
14512 066514
14513 074153
JSM
JMP SBP EVALUATE FORMULA Formel auswerten
FLTRA,I CONVERT TO INTEGER
in Ganzzahl konvertieren
RET ON POSITIVE zurück nach positiv
14514 160205 ERR1 JSM
14515 177710
14516 074117
14517 170402
DEC LDA RET AERRA7I WRONG FILE NO.
falsche Dateizahl
-56
WITH FILE NO IN A REG
mit Datei nicht in Register
09884/1370
ORIGINAL
0948* 0949+ 0950* 0951* 0952
0953
0954 0955
0956
FINDE - FIND EXECUTION Ausführung auffinden
14520 062457 FINDE JSM UNITC
14521 070542
14522 062554
14523 000012
14524 027744
SAR
JSM FITAS ADA
LDB CASIN GET UNIT NO.
Einheitszahl holen
POSITION UNIT
Einheit positionieren
FIG. TABLE ADDR OF SERV SUBR
Tabellenadresse von
CASST INTRPT SUBRT ADDR
Seite 149 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
0957 0958 0959 0960 0961 + 0962+ 0963 + 0964
0965
0966 0967
0972
14525 070577
14526 062510
14527 031644
STB A,I JSM FILEC STA TFILE
14530 063106 FIND3 JSM RIFS
1453.1 025664 DIREC LDB FILEN
14532 074076
14533 005644
14534 004132
TCB
ADB TFILE ADB M1
0968 14535 062552 JSM FITA3
0969 14536 070577 STB A,I
0970 14537 076210 RZB DI3
0971 14540 063031 JSM HALT
14541 17371 DI2 CLF GET FILE Datei holen
FILE NO.; FROM ID BUFF Dateizahl; von ID-Puffer
MAKE FILE NO READ NEG. Datei veranlassen, nicht negativ zu lesen
FILE WANTED Datei gewünscht SUBTR. ONE TO STOP FRONT OF
CORRECT FILE
eins subtrahieren von Stop-Front von richtiger Datei
STORE FILE DIFF IN STATUS Datei-Differenz in Status speichern
FILE LOCATED
Datei plaziert
TURN ON INTERPT
Unterbrechung einschalten
09884/1370
0973
0974 0975
0976 0977 0978
0979 0980 0981* 0982+
0983 + 0984 0985 0986 0987 0988
0989 0990* 0991 + 0992+
0993 +
0994 + 0995 0996 0997 0998 0999
1000 1001 1002 1003 1004 1005 1006 1007
14542· 164172
14543 074212 DI3
14544 023747
14545 063033
14546 066541
14547 023750
14550 063033
14551 066541
JMP XEC4A,I BACK TO SYSTEM
zurück zum System
SBM ++4 LDA RCFF READ CONTRL FORW FASR<T lesen
JSM COUTP+1 JMP DI2 LDA RCRF READ CONTRL REV FAST lesen
JSM COUTP+1 JMP DI2
EITAS - FIG. TNTRPT.TABLE ADDR FOR STATUR FIG.-Unterbrechungstabellenadresse für Status
14552 021645 FITA3 LDA TUNIT
14553 070542 SAR
14554 000132 FITAS ADA M1
14555 070744 SAL
14556 003743 ADA ITBAS
INTRPT TABLE BASE Tabellenbasis unterbrechen
14557 17Ό4Ο2
RET
ISERV - INTERRUPT SERVICE SUBR Service-Unterprogramm unterbrechen
14560 031444 ISERV STA SAVEA
14561 035445
14562 172700
14563 066611
14564 172241
14565 070504
14566 070242
14567 072410
14570 023736
14571 172160
14572 172741
14573 172240
14574 070342
STB SAVEB
SFC O
JMP IS2
LIA 1
SAL 6
SAR 6
RZA ISE4
LDA KEYBD
OTA 16
STF 1
LIA O
SAR 8
MUST BE STOP muß stop sein
INPUT INTERPT ADDRESSES Eingang Unterbrechungsadressen
CLEAR 6 MSB löschen
309884/1370
1008 14575 031443
1009 14576 066651
1010 14577 074742 ISE4
1011 14600 035446
1012 14601 070006
STA KEYFG JMP RESTR SBR 16 STB IADDR RAR 1
TEMPR INTRPT ADDR
POSITION NEXT H.P. BIT nächstes H.P. Bit positionieren
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1013
1014
1015
1016
1017
1018
1019
1020
1022
1023
1024
1025
1026
1027*
1028*
1029*
1030+
1031*
1032*
1033*
1034*
1035
1036
14602 045446
14603 071713
14604 021446
14605 062554
14606 000012
14607 070537
14610 074737
14611 O20040 IS2
14612 031442
14613 020104
14614 031443
14615 021444 IS3
14616 025445
14617 170402
ISZ IADDR SAP *-2 LDA IADDR JSM FITAS ADA
LDB A,I JMP B,I
LDA STA STPFL LDA B177 STA KEYFG LDA SAVEA LDB SAVEB RET INCRM COUNT Zählung CONTINUE fortfahren
FIG. TABLE ADDR OF SERV SUBR FIG.-Tabellenadresse von
GO TO SERVICE SUBR geh nach
ISTO - STATUS OF FIND COMMAND
Status von Auffinde-Befehl
POSITIVE FILE DIFF FOR FORW AND NEG FOR REV DIRECTION positive Dateidifferenz für Vorwärts- und negative für Rückwärtsrichtung
14620 021446 ISTO LDA IADDR
14621 070204 SAL
14622 063003 FIGURE SELECT CODE Figurenauswahl-Code
JSM STAT-t-2 GET STATUS holen
98 84/1370
2333908
1038 14623 O63OO7
1O3 9 14624 O21446
1040 14625 062554
1041 14626 O7O537
104 2 14627 O74152
1O43 1463O 004132
1044 14631 O66633
1045 14632 004012
1046
14633 070577 IST1
1047 1 4634 Ο7611Ό
1048 1 4635 067020
1049 1 4636 O21446
1050 1 4637 O7O2O4
1051 1 464O O74252
1052 1 4641 O43747
1053 1 4642 063034
1054 1 4643 172741
1055 1 4644 066650
1056 1 4645 043750
1057 1 4646 O63O34
1058 1 4647 172741
1059+
1060+
1061 +
1062+
1063 +
1064 1 465O O63O34
1065+
1066 +
1067+ RESTORE R
1068 +
JSM STACK
LDA IADDR
JSM FITAS
LDB A,I
SBM ++3
ADB M1
JMP IST1
ADB .1
STB A,I
RZB ++2
JMP INSTP
LDA IADDR
SAL 12
SBM ++5
IOR RCFF
JSM COUTP+2
STF 1
JMP COINT
IOR RCRF
JSM COUTP+2
STF 1
STATUS CHECK prüfen
LOAD FILE STATUS Dateistatus laden
ADD -1 FOR FORW DIRECTION -1 für Vorwärtsrxchtung addieren
ADD +1 FOR REV DIRECTION +1 für Rückwärtsrichtung addieren
RESTORE UPDATED STATUS auf den neuesten Stand gebrachten Status
FILE LOCATED Datei pl'aziert
FIG. SELECT, CODE FIG.-Auswahl Code
READ-CONTROL-FORW-FAST' Lesekontrolle vorwärts schnell
COMMAND OUTPUT-. INTRPT TURN ON Befehlsausgang, Einschaltung unterbrechen
READ-CONTROL-REV-FAST Lesekontrolle rückwärts schnell
CLEAR CONTROL Kontrolle löschen
RESTORE REGISTERS Register zurückstellen
30988 4/1370
983OA TAPE CASSETTE SYSTEM Bandkassettensystem
1069*
1070
1071
1072
1073+
1074*
1075*
1076*
1077+
1078
14651 062615 RESTR JSM IS3
14652 173741 CLF 1
14653 170402 RET
BASIC DATA WRITER Basisdatenschreiber
14654 031653 TWR STA TAP4
1079 14655 035654
STB TAP5
1080 14656 021645 TWRl LDA TUNIT
1081 14657 040116 IOR WDFS
1082 14660 070075 SEC *+l,C
1083 14661 074742 TWR4 SBR 16
1084 14662 035655 STB TAP6
1085 14663 025653
1086 14664 1725O1
1087 14665 066664
1088 14666 172141
1089 14667 121653
1090 14670 066674
1091 14671 074517 NWL
LDB TAP4
SFS 1 JMP *-l OTA 1
LDA TAP4,I JMP NWL2 LDA B,I
1092 14672 172501 NWLl SFS 1
1093 14673 066672 JMP *-l
1094 14674 172140 NWL2 OTA O
1095 14675 073655 SEC NWLl,S
1096 14676 001655 ADA TAP6
30988 4/1370 STORE LOW ADDRESS LIMIT untere Adressengrenze speichern
STORE THE HIGH LIMIT Obergrenze speichern
UNIT NO, Einheit-Nr.
WRITE DATA FORW SLOW Daten langsam vorwärts schreiben
CLEAR E löschen
CLEAR CHECK: SUM REG Summenproberegister löschen
LOAD INITIAL POINTER VALUE Anfangshinweismarkenwert
laden
LOAD A TRANSFER WORD Transferwort laden
SKIP IF READY überspringen, wenn fertig
WRITE 8 BITS schreiben
WRITE 8 MORE BITS IF E=O wenn E=O 8 weitere Bits schreiben
UPDATE CHECK-SUM Summenprobe auf den
neuesten Stand bringen
1097 14677 031655 STA TAP 6
1098 14700 070075 SEC *+l,C
1099 14701 015654 CPB TAPS
1100 14702 066705 JMP COUT
1101 14703 077330 RIB NWL
1102 14704 066671 JMP NWL
CLEAR E
löschen
1103 14705 021655 COUT LDA TAP6
1104 14706 172501 SFS STA 1
1105 14707 066706 JMP STB *-l
1106 14710 172140 OTA LDA 0
1107 14711 073655 SEC OTA *-3,S
1108 14712 025442 LDB STC STOP
1109 14713 074150 SZB SAR *+3
1110 14714 063031 JSM STA HALT
1111 14715 067016 JMP ERR3
1112 14716 170402 RET
1113*
1114*
1115* BASIC DATA READER Bc isisda
1116*
1117*
1118 14717 031653 TRD TAP 4
1119 14720 035654 TAP 5
1120 14721 021645 TRDl TUNIT
1121 14722 172141 1
1122 14723 172601 1
1123 14724 070742 16
1124 14725 031655 TAP 6
AREA TRANSFERREDPBereich trän.
YES, OUTPUT CHECK-SUM ja. Ausgang Summenprobe
WRITE MORE mehr schreiben
JUMP IF B=O
springen, wenn B=O
LOAD CHECK-SUM
Suinmenprobe laden
OUTPUT 8 BITS
Ausgang 8 Bits
IMPROPER STOP
unrichtiger Halt
STORE START OF BUFFER AREA Start des Pufferbereichs
speichern,
STORE THE HIGH LIMIT Obergrenze speichern
UNIT NO. Einheit Nr.
READ DATA FORW SLOW Daten langsam vorwärts lesen
ENABLE CASST Kassette fragten
CLEAR CHECK SUM REG Summenproberegxster löschen
309884/ 1370
if
Seite 152 983OA TAPE CASSETTE SYSTEM
Bandkas set terrsysteni
1125 14726 021653
LDA TAP4
1126 1127
1128 1129 1130 1131 1132
1133 1134
1135 1136 1137
14727 070075 TRL SEC *M,C
14730 172501
14731 066730
14732 176240
14733 073655
14734 011654
14735 066742
14736 070577 14737 005655
SFS I
JMP *·-!
LIB
SEC +-3,5 CPA TAPS JMF CHCE
LOB 'ΓΑΡ
14740 035655 STB ^ίυΡβ
14741 073330 Ρ'ίΛ TRL
14742 015655 CHCK CPB χ\Ρ6
1138 14743 070075 1139
1140
1141*
1142+
1143*
1144* 1145*
1146* 1147
14744 172741
14745 170402
SSC *
STF RET LOAD INITIAL POINTER VALUE Anfangshinweismarkenwert
laden
CLEAR ERROR FLAG Fehlermarke löschen
SKIP IF DONE
überspringen, wenn getan
INPUT 8 BITS
Eingang 8 Bits
GET NEXT 8 BITS nächste 8 Bits holen
hREA TRANSFERED? bereich transferiert
y:ilS, RETURN AFTER CHECKING RESULT
ja, zurück nach Prüfung des Ergebnisses
STORE THE READ WORD gelesenes Wort speichern
UtDATE CHECK SUM WORD Sutnmenprobewort auf den neuesten Stand bringen
READ MORE mehr lesen _
CHECK-SUM OK?
SuTranenprobe i.O«?
CLEAR ERROR FLAG Fehlermarke löschen
TURN OFF CEO abschalten
WRFIL - WRITE A FILi-: Datei schreiben
THE FILE HAS BEEtT LOCATED Die ü^r'ei ist lokalisiert
worden
BACK UP AND WRITE NEW ID AND FILE zurückschieben und neues ID und Datei ^schreiben
14746 063610. WRFIL JSM RRBOF
30S884/ 1370
1148 14747 062776 JSM CSTOP
1149 14750 020121 WRF3 LDA RCFS
1150 14751 063037 JSM BOFCK
1151 14752 017740 CPB MARK
1152 14753 066755 JMP *+2
1153 14754 O66750 JMP WRF 3
1154 14755 062656 JSM TWRl
1155 14756 021650 LDA TAP 2
1156 14757 025660 LDB TAP 7
1157 14760 004132 ADB Ml
READ CONTRL FORW SLOW Kontrolle vorwärts langsam
lesen
1158 14761 062654
1159
1160
1161
1162*
1163*
1164+
1165+
1166+
1167
1168
14762 172501
14763 066762
14764 067031
JSM TWR
SFS JMP *-l JMP HALT KEEP LOOKING
weiterhin sehen
WRITE ID schreiben START ADDR Start END ADDR Ende
ADJUST COUNTER FOR WRITE ROUTINE
Zähler zum Routine-Schreiben
justieren
WRITE FILE BODY
Dateikörper schreiben
WAIT warten
STATE - GET STATUS Status holen
14765 063001 STATE JSM STAT
14766 074406 RBR
1169 14767 074153
1170 14770 074046
SBP STAT5
RBR POSITION POWER ON BIT Potenz.auf Bit positionieren
CAST NOT ON OR NOT PRESENT nicht an oder nicht vorhanden
POSITION CLR + OPEN DOOR BITS CLR positionieren + Tor-Bits öffnen
1171 14771 074111 SLB *+2
1172 14772 067014 STAT5 JMP STAC3
1173 14773 074112 SBM +4-2
1174 14774 066776 JMP *+2
1175 14775 064357 JMP RETN2
1176 14776 025442 CSTOP LDB STOP
1177 14777 074350 SZB STAT4
1178 15000 067606 -p
A<| ρ CLEAR LEADER
Kopfinformation löschen
CHECK STOP prüfen
Kassette stop + zum System zurückgeben STOP CASST + GO BACK TO SYS™ 309884/1370
983OA TAPE CASSETTE SYSTEM. 983OA Bandkassetten System
1181*
1182 15001 021645
1183 15002 172741
1184 15003 172141
1185 15004 172741
1186 15005 176241
STAT LDA TUNIT
SIF
OTA
SIF
LIB
1187 15006 170402 STAT4 RET 1188* 1189*
1190 STACK - STATUS CHECK Statusprüfung
1191* 1192* 1193 15007 074506 STACK RBR
119 4 15010 074112 S3M *+2
1195 15011 075651 8LB STAT4
1196 15012 063020 JSM INSTP
1197 15013 067015 JMP ERR3
1198 15014 O63O3I STAC3 JSM HALT
1199 15015 173741 CLF
1200 15016 160205 ERR3 JSM AERRA7
1201 15017 177706 DEC -5B 1202* 1203*
1204* INSTP - STOP FROM INTRPT ROUTINE Stop von Unterbrechung Routine TURN OFF INTERPT unterbrechung abschalten
LOAD I/O REG WITH SELECT CODE I/O-Register mit Auswahlcode laden
LOAD I/O REG WITH STATUS I/O-Register mit Status laden
INPUT STATUS INFO Eingangestatusinformation
POSITION CLEAR LEADER + OPEN DOOR BITS
Löschung Kopfinformation positionieren + Öffnung Tor-Bits
CHECK CLEAR LEADER Loschung Kcpfinformation prüfen
CHECK OPEN DOOR öffnung Tor prüfen
STOP CASST
Kassette stop
TURN ON INTERPT Unterbrechung einschalten
30988W137
2333908 021446 INSTP LDA IADDR FIG. SEL CODE
Auswahlcode
JSM COUTP+2 063001 WPERM 020117 HALT JSM STAT POSITION WRIT PERMIT
"Schreiben erlaubt"
positionieren
172741 COUTP SIF 1 TURN OFF INTERPT
1205* 070204 SAL 12 JMP RESTR 074504 SBL 6
1206* 040117 IOR STOPC 074353 SBP COUTl NOT PERMITTED
Nicht erlaubt
1207 15020 063034 067014 COMMAND OUTPUT
Befehlsausgang
JMP STAC3
1208 15021 066651 WPERM - IS WRITE PERMITTED?
Schreiben erlaubt?
1209 15022
1210 15023 HALT SUBR
Unterprogramm halt
1211 15024 15025
1212* 15026 CONSTANT
Konstante
1213* 15027 15031 LDA STOPC
1214* 15030
1215*
1216*'
1217 ENTRY: COMMAND CONSTANT IN A REG.
Eingang: Befehlskonstante in A-Register
1218
1219
1220 15032
1221*
1222*.
1223*
1224*
1225*
1226
1227*
1228*
1229*
1230*
1231*
1232*
1233*
1234
Unterbrechung abschalten
15033 041645 IOR TUNIT
30 9 884/1370
1236 15034 172141
OTA 1 OUTPUT COMMAND Ausgang Befehl
Seite 154 983OA. TAPE CASSETTE SYSTEM 983OA BANDKASSETTEN SYSTEM
1237 15035 172601
STC 1 ENABLE CAST freigeben
1238 15036 170402 COUTl RET COUTI
1239* I
1240* B1BT?
1241* BOFCK - CHECK FOR BOF 1
auf BOF prüfen
1242* 3
1243+
1244 15037 063032 BOFCK JSM SIOF
1245 15040 172501 SFS BOFC?
1246 15041 067046 JMF GBACX
1247 15042 17 62 41 LIB
1248 1504:': ν.-4 404 ■Ίϊ;;Χ
1249 15044 07 4342 sr. n
1250 15045 170402 RET
1251 15046 025442 3ST- LDB
1252 15047 07 54 50 SZB
1253 15050 067606 JMP
INPUT CONTRL CHAR Eingang Kontrollzeichen
CLEAR 8 MSB löschen
CK+1 WAIT FOR 3OF auf BOF warten
STOP CASST + GO BACK TO SYSTEM Kassette stop + zum System zurückgehen
1254* RIFID ~ READ IMMDT FILE ID HAL!i'
1255* IMMDT - Daten ID lesen STATiJ
1256* *-f-2
Oi1FCL
1257* 15051 063031 RIFiD JSM
1258* 15052 062765 JSM
1259 15053 067055 JMP
1260 15054 0636 56 JSM
1261
1262
GET OFF CLR LDR vcggaber.
> J -' 5 B 4 / ν j 7 0
2 333 908
1263 1 5055 O2O133
1264 1 5056 031643
1265 ' 1 5057 023751
1266 1 5060 031653
1267 1 5061 023753
12 68 1 5062 031654
L269 1 5063 062776
1270 1 5064 020121
1271 1 5065 063037
1272 1 5066 017740
1273 1 5067 067073
1274 1 5070 062765
1275 1 5071 067063
1276 rH 5072 170402
1277 1 507 3 062721
15074 070114
15075 064357
RIFI5
RIF4
LDA M 2 STA TAPO LDA IDBA STA TAP4 LDA EOBID
STA TAPS JSM CSTQP LDA ROFS
JSM BOFCK OPB MARK JMP RDl
JSM STATE JMP RIF4 RET
JSM TRDl SES *+2 JMP REIN2 ID BUFF ADDR ID-Puffer-Adresse
END OF BUFF FOR ID Ende des Puffers für ID
READ CONTRL FORW SLOW Kontrolle langsam vorwärts lesen
BOF?
READ ID lesen
CLEAR LEADER Kopfinformation löschen
READ FILE ID Daten ID lesen
ERROR? I'ehlcr
1280 1 5076 045643
1281 1 5077 067103
1282 1 5100 063031
1283 ι 5101 160205
1234 1 5102 177705
12 85 1 5103 063610
1286 1 5104 067057
ISZ TAPO
JMP RIF6
ERR4 JSM HALT JSM AERRA,I CHECK SUM ERROR
Summenfehler prüfen
DEC -59 RIF6 JSM RRBOF JMP RIFI5+2 TRY AGAIN
wieder versuchen
1288*
+
15105 06 3 610 RRRID JSM RRBOF
15106 063051 RIFS JSM RIFID
15107 067016
JMP ERR3 REV READ BOF lesen
READ IMKDT FILE ID IMMDT-Daten ID lesen
CLR LDR
309884/ 1
Seite 155 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1293
1294*
1295*
1296*
1297*
1298*
1300
15110 Γ7Ο4Ο2
RET
LOCF - LOCATE A FILE Daten lokalisieren
15111 045472 LOCF
15112 121472
15113 050065
15114 013742
15115 067120
15116 O62472
15117 067121
15120 062475
15121 062510
15122 031644
15123 063106 L0CF2
15124 020133
15125 031647
1312 15126 025664 LOCFl
1313 15127 015644
1314 15130 067031 L0CF3
1315 15131 074076
1316 15132 005644
1317 15133 004132
1318 15134 035653
1319 15135 076110
ISZ TEMPS ,1 IS IT * ?
ist es ?
LDA TEMPS
AND OPMSK ASSUME INTERNAL
intern annehmen
ΟΡΑ NUMS
JMP #+3 GET UNIT NO.
Einheit-Nr. holen
JSM F5 GET FILE
Daten holen
JMP *+2
JSM GUNT
JSM FILEC
STA TFILE FLAG FOR FILE LOCAT-ION
Marke für Datenlokali-
sierung
JSM RIFS FILE NO. FROM ID BUFF
Daten-Nr. von ID-Puffe
LDA M2
STA TAPl FILE LOCATED, RET
LDB FILEN
CPB TFILE
JMP HALT
TCB
ADB TFILE
ADB Ml STB TAP4
RZB *+2 Daten lokalisiert zurück
MAKE FIL NO. READ NEG. Daten-Nr. negativ zu lesen machen
FILE WANTED
Daten
SAVE DIFF
Differenz sichern
30988W1370
15136 067162
1321 15137 074153
1322 15140 023750
1323 15141 067145
1324 15142 074076
1325 15143 035653
1326 15144 023747
1327 15145 031654
1328 15146 021654
1329 15147 062776
1330 15150 063037
1331 15151 017740
1332 15152 067156
1333 15153 062765
1334 15154 067146
1335 15155 067016
1336 15156 045653
1337 15157 067146
15160 020160
GDIR
JMP FVERF
SEP *+3 LDA RCRF
JMP GDIR-I TCB
STB TAP4 LDA ROFF
STA
LDA
JSM
JSM
CPB
JMP
JSM
JMP
TAP 5
TAP 5
CSTOP
BOFCK
MARK
GDIR2
STATE
GDIR
JMP ERR3 ISZ TAP4 JMP GDIR
LDA DEL2
1339 15161 072030 RIA *
13 40*
1341*
1342*
1343 15162 063106 FVERF JSM RIFS
1344 15163 021644 LDA TFILE
1345 15164 011664 OPA IDBO
1346 15165 067031 JMP HALT
1347 15166 045647 ISZ TAPl
1348 15167 067126 JMP LOCFl
FILE LOCATED Daten lokalxsiert
READ CONTRL REV FAST Kontrolle schnell rückwärts lesen
MAKE DIFF NEG. Differenz negativ machen
READ CONTRL FORW FAST Kontrolle schnell vorwärts lesen
LOK*-OK FOR BOF für" BOF
CLR LDR
CONTINUE LOOKING weiter sehen
15.6 MS DELAY Verzögerung
READ IMMDT FILE ID IMMDT-Daten ID lesen
FILE LOCATED, T<r RETURN Daten lokalisiert
TRY AGAIN
wieder versuchen
309884/1370
Seite 156 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1349 15170 063031 J3M HÄLT LDATA- LOAD DATA EXECUTION
Datenausführung laden
063111 LDATA JSM LOCF
1350 15171 066514 JMP EPRI 063256 JSM ARYLS
1351* 15172 025652 LDB ΓΑΡ 3
1352* 15173 015670 CFB IEBC 4 4
1353*
1354*
15174 067201 JWP *"-. 3
1355* 15175
1356 15176
1357
1358
1359
1360
FILE NOT FOUND Daten nicht gefunden
15177 iöCü'05 ERR6 TEMPR. PRECISION Zwischenspeicher, Genauigkeit
PRECISION OK
Gen ε u i gke i t i . O.
WORNG PRECISION falsche Genauigkeit
1362 15200 177703 UEC - f I CHECK SIZE
1363 15201 070056 CMA Größe prüfen
1364 15202 001665 ADA IBBO+1
1365 15203 0701.12 SAM *-f-2 REV READ BOF
1366 15204 067242 E RR 5
1367 15205 063105 JSM RRRID
1368 15206 021650
1369 15207 025665
1370 15210 070037
1371 15211 062717
1372 15212 063031
1373 15213 070115
LDA TAP2
LDB IDBO+1
?.Γ·ϊ! Α
JSK TRD
JSM HALT
SEC *+?.
READ IMMDT FILE ID BOF rückwärts lesen; IMMDT-D ten ID lesen
POINT TOSTART OF LOAD AREA auf Start des geladenen Bereichs zeigen
FILE SIZE
Daten-Größe
ΡΟΙΪΪΤ TO END OF LOAD AREA auf Ende des geladenen Bereichs zeigen
READ THE FILE Daten lesen
3 O 9 t 8 L / 1 3 ; G
1374 15214 O671OO 1375 15215 067654
JMP ERR4
JMP SYSRE
1376*
1377*
1378+ SDATA - STORE DATA Daten speichern
1379+
1380+
13 81 15216 063252 SDATA JSM ISTOR
138-2 15217 063256 JSM ARYLS
1383 15220 025650 LDB TAP2
1384 15221 070037 1385 15222 021652
1386 15223 031670 1387 15224 035660
ADB A
LDA TAP3
STA IDBO+4
STB TAP7
1388 15225 021650 LDA TAP2
1389 15226 063237 JSM SDAT2 1390+
1391 +
1392+
1393 15227 020017 SDAT3 LDA
1394 15230 031666
1395 15231 023751
1396 15232 031653
1397 15233 023754
1398 15234 031654
1399 15235 062746
1400 15236 067654
STA IDBO+2 LDA IDBA
STA TAP4 LDA EBIDW
STA TAP5 JSM WRFIL
JMP SYSRE CHECK SUM ERROR Summenfehler prüfen
SYSTEM RET
System zurück
TEMPOR, ARRAY START ADDR Zwischenspeicher, Feld-Startadresse
COMPUTE END ADDR Endadresse rechnen
TEMPOR, 'PRECISION Zwischenspeicher, Genauigkeit
STORE IN ID TABLE in ID-Tabelle speichern
TEMPOR, END ADDR Zwischenspeicher, Endadresse
TYPE = DATA Typ = Daten
IN FILE ID BUFF in Daten-ID-Puffer
POINT TO BEG. OF ID auf Beainn von ID zeiaen
POINT TO END OF ID auf Ende von ID zeiqen
ERITE THE FILE Daten
SYSTEM RET
System zurück
30988 W1370
1401*
2333308
MMO
1402* ENTER: AREG=START ADDR, BREG=END ADDR Eingang:
1403* 1404 15237 070076 SDAT2 TCA
Seite 157 9 83OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1405 15240 070037
ADB A
1406 15241 O7615C
1407 15242 160205
1408 15243 177704
1409 15244 075712
1410 15245 035665
1411 15246 O74O76
1412 15247 005667
1413 15250 075512
1414
1415* 1416* 1417*
1418* 1419*
1424* 1425"* 1426*
1427* 1428*
RZB *+3
JSM AERRA,
DEC -60
SBM *-2
STB IDBO+1
TCB
ADB IDB0+3
SBM ERR5
RET
15251 170402
ISTOR - INITLZ FOR STORE zum Speichern initialisieren
15252 063111 ISTOR JSM LOCF
15253 063025 JSM WPERM
15254 023752 LDA IDB4A
15255 067647 JMP RE3-1
FIND FILE SIZE NEEDED benötigte Datengröße auffinden
SKIP IF NON-ZERO überspringen, wenn nicht, null
WRONG FILE SIZE falsche Datengröße
ERROR IF NEG
Fehler, wenn negativ
ABS FILE SIZE ON TAPE Datengröße auf Band
SIZE ERROR
Größenfehler
CLEAR 4 CENTER WORDS + RET 4 Mittelworte löschen und zurück
ARYLS - DATA ARRAY CALCULATIONS Datenfeld-Rechnungen
309884/1370
1429 1430
1431 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
15256 15257
15260 15261 15262 15263 15264 15265
15266 15267 15270
15271 15272
15273 15274 15275
15276 15277
15300 15301 15302 15303
15304 15305
15306 15307 15310
021472 011421
067302 060771 160177 164340 074517 031661
050040 070042 031652
004132 074517
031650 000132 070537
021661 160240
000133 170402 020020 031652
021405 031650
070076 025422 074150
15311 001425
ARYLS LDA TEMPS CPA PRADD
JMP ARCOM JSM GTOPP JSM SSYMA,I JMP E40+lfl LDA B,I STA TAP8
AND B37 SAR 2 STA TAP3
ADB Ml LDA B,I
STA TAP2 ADA Ml LDB A,l
LDA TAP8 JSM MDIMA,1
ADA M2 RET
ARCOM LDA .3
STA TAP3
LDA PWUP STA TAP2
TCA
LDB UKPTR
SZB *+3
ADA PBUFO
END OF STMT? Anweisungs-Ende?
YES, MUST BE COMMON ja, muß gemeinsam sein
NO, GET ARRAY NAME nein, Feldname holen
SEARCH SYMBOL TABLE Symboltabelle suchen
NOT FOUND
nicht gefunden
READ NAME AND TYPE Name und Typ lesen
TEMPR
Zwis chenspeicher
TEMPR, PRECISION Zwischenspeicher, Genauigkeit
GET ARRAY ADDR Feldadresse holen
READ CURR DIMENSION laufende Dimension lesen
COMPUTE THE SIZE Größe rechnen
SET COMMON TYPE gemeinsamen Typ setzen
SET START ADDR Startadresse setzen
KEY?
Taste?
YES
ja
309884/1370
1457 15312 170402
1458 15313 001424
1459 15314 170402 1460*
RET
ADA PBUFF
RET
COMPUTE SIZE OF COMMON
Größe des Gemeinsamen rechnen
Seite 158 983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1461*
1462*
1463*
1464*
1465
1466
1467
1468
1469
1479
LKEY - LOAD KEYS Tasten laden
15315 063111 LKEY
15316 025421
15317 163756
15320 021666
15321 0)0021
1470 15322 067331
1471 15323 013741
1472 15324 067327
1473 15325 16C295
1474 15326 177702
1475 15327 024106
1476 15330 035435
1477 15331 021416
1478 15332 072350
15333 021427
1480 15334 070070
1481 15335 031661
1482 15336 021422
1483 15337 070110
JSM LOCF DECOMPILE
dekompilieren
LDB PRADD FILE TYPE
Daten-Typ
JSM DCMlA,! KEY?
Taste
LDA IDBO+2
CPA ,4 SEC KEY?
Taste sicher?
JMP *+7
CPA .24 TYPE ERROR
Typ-Fehler
JMP *+3
JSM AERRA,!
DEC -62 SET SEC FLAG
Sicherungs-Marke
LDB B777
STB SECFL CxALC MODE?
Rechenbetrieb?
LDA MODE No
nein
RZA LKEY 4
LDA .LNUM SAVE CURRENT LINE
laufendes Zeichen
+1 sichern
SIA *+l
SIA TAPS KEY MODE
Tas tenbetrieb
LDA UKPTR
SZA #+2
^09834/1370
2333 908 Ui >
1484 1534O 066147 JMP S
ERR8
1485 15341 O61225 LKEY4 JSM LDEF
1486 15342 021405 LDA FWUP
1487 15343 O7OO76 TCA
1488 15344 000166 ADA FWAM
1489 15345 OO1665 ADA IDBO+1
1490 15346 072110 RZA #+2
1491 15347 O67371 JMP LKEY9
1492 15350 070412 SAM LKEY5
1493 15351 160250 JSM OVCHA,1
1494 15352 021405 LDA FWUP
1495 15353 031476 STA TEMP 3
1496 15354 O3547O STB L2T1
1497 15355 O61121 JSM MVTOH
1498 15356 025470 LDB L2T1
1499 15357 067364 JMP LKEY6
1500 15360 OO14O5 LKEY5 ADA FWUP
1501 15361 031477 STA TEMP 4
1502 15362 025405 LDB FWUP
1503 15363 160251 JSM CLPIA,I
1504 15364 021424 LKEY6 LDA PBUFF
1505 15365 Ο74Ο17 ADA B
1506 15366 031424 STA PBUFF
1507 15367 ΟΟ54Ο5 ADB FWUP
1508 15370 Ο354Ο5 STB FWUP
YES, OVERPLAY ERROR ja, Fehler überspielen
INSURE NOT IN KEY MODE sicherstellen, daß nicht im Tastenbetrieb
COMPUTE - CURR KEY SIZE rechnen - laufende Tastengröße
COMPUTE DIFFERENCE (NEW-OLD) Differenz (neu-alt) rechnen
NEW KEYS LARGER? Neue Tasten größer?
YES CHECK FOR OVERFLOW ja, auf überfüllung prüfen
SET PROGRAM RELOCATION POINTER
Programm-Relokalisierungs-Hinweismarke setzen
MOVE MAINLINE AND COMMON Hauptzeile und gemeinsame bewegen
Compute new END OF KEYS neues Tastenende rechnen
CLOSE UP PROGRAM Programm abschließen
UPDATE START OF MAINLINE Start der Hauptzeile auf neuesten Stand bringen
UPDATE END OF KEY AREA Ende des Tastenbereichs auf neuesten Stand bringen
309884/1
1509
15371 063105 LKEY9
1510 15372 020166
1511 15373 025665
1512 15374 070037
1513 15375 062717
1514 15376 O63O31
1515 15377 07O115
1516 15400 067100
Seite 159 983OA
JSM RRRID
LDA FWAM LDB IDBO+1 ADB A JSM TRD
JSM HALT SEC *+2 JMP ERR4 REV READ BCF; READ IMMDT
FIELD
BOF rückwärts lesen;
IMMDT-FeId lesen
START OF KEY AREA
Start des Tastenberexchs
FILE SIZE
Datengröße
END OF KEY AREA
Ende des Tastenbereichs
READ THE FILE Daten lesen
CHECK SUM ERROR Summenfehler prüfen
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
J.517 15401 060651
1518 15402 066062
1519*
1520*
1521* SKEY - STORE KEYS
Tasten speichern
1522*
1523*
1524 15403 063252 SK
1525 15404 025421
1526 15405 163756
1527 15406 063463
1528 15407 024021
1529 15410 070113
1530 15411 027741
1531 15412 035666
1532 15413 020166
1533 15414 031650
1534 15415 025405
1535 -15416 O3566O
JSM INITS RESET STACKS
Stapelspeicher nullstellen
JMP LOAD9
JY JSM ISTOR LDB PRADD JSM DCMlA,: JSM SECCK LDB .4
SAP *+2 LDB .24
STB IDB0+2 LDA FWAM STA TAP2 LDB FWUP STB TAP7
309884/1370 UNSEC KEY
Taste entsichern
SEC KEY
Taste sichern
INFILE ID BUFF ID-Puffer eindatieren
START OF KEY AREA
Start des Tastenberexchs
TEMPOR
Zwxschenspeicher
END OF KEY AREA+1
Ende des Tastenberexchs +1
END OF KEY AREA
Ende des Tastenberexchs
1536 15417 163237
1537 15420 067231 1538*
1539*
1540* LBIN - LOAD BINARY Binär laden
1541*
1542*
1543 15421 063111 LBIN
1544 15422 021403
1545 15423 025665
1546 15424 074076
1547 15425 074017
1548 15426 070137
1549 15427 070076
1550 15430 001426
1551 15431 070112
1552 15432 064561
1553 15433 021666
1554 15434 010012
1555 15435 067443
1556 15436 012034
1557 15437 067441
1558 15440 067325
1559 15441 020106
1560 15442 031435
1561 15443 021427 LBI2
1562 15444 070070
1563 15445 031661
1564 15446 076070
JSM SDAT2
JMP SDAT3+2
JSM LOCF
LDA MAW
LDB IDBO+1
TCB
ADA B
POINTER
Hinweismarke
FILE SIZE Datengröße
FIG. MEMORY START ADDR Speicher-Startadresse
LDB A SAVE A
sichern
TCA
ADA PBPTO POINTER
Hinweismarke
SAM *+2
JMP MER8 OVERFLOW
Überfüllung
LDA IDBO+2 FILE TYPE
Datentyp
CPA .1 BINARY?
binär
JMP LBI2 YES, UNSEC
ja, entsichern
CPA .21 SEC BIN?
bin. gesichert?
JMP *+2
JMP ERR7
LDA B777
STA SECFL SET SEC FLAG
Sicherungsmarke setzen
LDA .LNUM PRESENT L.N.
vorhanden
SIA *+l
STA TAPB
RIB *+l
309884/1370
1565 15447 035404 1566 15450 063105
1567 15451 021404
1568 15452 025665
1569 15453 070037
1570 15454 062717
1571 15455 063031
1572 15456 070115
STB LWAM JSM RRRID
LDA LWAM LDB IDBO+1
ADB A JSM TRD
JSM HALT SEC *+2
POINTER Hinweismarke
REV READ BOF; READ IMMDT FILE ID BOF rückwärts lesen; IMMDT-Daten ID lesen
FILE SIZE Datengröße
END OF BIN Binär Ende
READ THE FILE Daten lesen
Seite 160 933OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1573 15457 067100
1592*
JMP ERR4 CHECK SUM ERROR
Summenfehler prüfen
1574 15460 055404 021435 SECCK DSZ LWAM
1575 15461 Jo0645 050106 JSM MINIT SCRATCH SYMBOL TABLE
Symboltabelle einschreiben
1576 15462 066062 070150 JMP IiOAD 9
1577* 160205
1578* 177707
1579* SECCK - SECURE CHECK
Prüfung sichern
021435
1580* 170402
1581*
1582 15463 LDA SECFL
1583 15464 WRITE ZEROS AND B777
1584 15465 SZA *+3
1585 15466 JSM AERRA,I SEC NOT ALLOWED
sichern nicht erlaubt
1586 15467 DEC -57
1587 15470 LDA SECFL RET WITH SEC FLG IN A
zurück mit Sicherungsmarke
in A
1588 15471 RET
1589*
1590*
1591* WRZE -
Nullen schreiben
309884/1370
2333908 WRZE (IU T"
1593+ TT B4OO
1594 15472 O24O13 LDB 1
1595 15473 074744 SBL
CONVERT WORD COUNT TO CH. COUNT
Wortzählung in Zeichenzählung konvertieren
1596 15474 O74O76 TCB TUNIT -- 062457 MARKE JSM UNITC NEG. COUNT
neg. Zählung
1597 15475 021645 LDA WDFS O63O25 JSM WPERM
1598 15476 O4O116 IOR 1 062765 JSM STATE WRITE DATA FORW SLOW
■Daten langsam vorwärts
schreiben
1599 15477 172501 SFS +-1
1600 155OO 067477 JMP 1
1601 15501 172141 OTA 16
1602 15502 070742 WRZEl SAR 1
1603 15503 1725O1 SFS *-l
1604 15504 067503 JMP O
1605 15505 17214O OTA WRZEI *
1606 15506 077630 RIB
1607 15507 17O4O2 RET
1608+
1609+ MARKE - MARK TAPE EXECUTION
Band-Ausführung markieren
1610*
1611 +
1612* 15510
1613 15511 GET UNIT NO.
Einheits-Nr. holen
1614 15512
1615 GET STATUS
1616 15513 067631
holen
JMP MAR3 NO CLEAR LEADER
nicht gelöschte Kopfin formation
1617 15514 063524 JSM MAR4
1618 15515 063656 MAR2 JSM OFFCL
1619 15516 020116
15517 O63O32
GET OFF CLEAR LEADER gelöschte Kopfinformation
LDA WDFS WRITE - DATA - FORW - SLOW Daten langsam vorwärts schreiben
JSM COUTP COMMAND OUTPUT Befehlsausgang
309884/1370
1621 15520 063472
1622 15521 1725O1
1623 15522 067521
1624 15523 067547 1625*
1626*
1627+
1628 15524 062510 MAR4
JSM WRZE
SFS 1
JMP 4—1
JMP MCONT
JSM FILEC
WRITE 256 VORDS OF G 256 Worte von 0 schreiben
STILL WRITING
immer noch schreibend
GET NO. OF FILES TO RE Marked
Nummer der zu markierenden Daten holen
309884/1370
161 233 3908 983OA
983OA
TAPE
Band
- 4*7
Seite 1 ADA CASS
kasse
1629 1 5525 000012 TCA .1
1630 1 5526 070076 STA
1631 1 5527 031644 JSM TFILE
1632 1 5530 062510 STA FILEC
1633 1 5531 031653 LDB TAP 4
1634 1 5532 070137 SBR A
1635 1 5533 074002 ADA 1
1636 1 5534 000135 SAP M4
1637 1 5535 070113 JMP ++2
1638 1 5536 066514 LDA ERR1
1639 1 5537 021653 ADA TAP 4
1640 1 5540 074017 ADA B
1641 1 5541 000045 STA .40
1642 1 5542 031657 JSM TLENG
1643 1 5543 063644 LDA IDCLR
1644 1 5544 021653 STA TAP 4
1645 1 5545 031667 RET IDBO+
1646 5546 170402
1647 +
1648+
1649+ 1 MCONT LDA
1650 1 5547 023730 I OR WCFS
1651 1 5550 041645 OTA TUNIT
1652 1 5551 172141 STC 1
1653 1 5552 172601 MCON 2 LDA 1
1654 1 5553 023751 LDB IDBA
1655 1 5554 027754 JSM EBIDW
1656 1 5555 062654 LDB TWR
1657 5556 025657 TLENG
WRITE N+1 FILES N+1 Dateien schreiben
MAKE FILE COUNT NEG. Dateizählung neg. machen
GET LENGTH OF FILE Länge der Datei holen
ABS SIZE abs. Größe
FIND LENGTH/2 halbe Länge auffinden
FILE TOO SMALL Datei zu klein
40 WORDS ADDITIONAL BUFF 40 Worte Zusatzpuffer
LENGTH TEMPOR Länge Zwischenspeicher
ABS SIZE abs. Größe
WRITE -CONTROL-FORW-SLOW Kontrolle langsam vorwärts schreiben
ENABLE CASTR freigeben
POINTER TO BEGIN OF ID Hinweismarke auf ID-Anfang
POINT TO END OF ID Hinweismarke auf ID-Ende
WRITE THE FILE ID Datei-ID schreiben
LOAD ACTUAL FILE LENGTH tatsächliche Dateilänge laden
Ί0988^/1370
1658 15557 063473
1659 15560 172501
1660 15561 067560
1661 15562 172741
1662 15563 172241
1663 15564 050122
1664 15565 070610
1665 15566 070506
- 448 -
1683*
JSM WRZE+1
SFS 1
JMP *-1
STF 1
LIA 1
ADN B6K
SZA MC 2
RAR '0>] THE FILE Datei schreiben
WAIT, IF STILL WRITING warten, wenn noch schreibend
INPUT STATUS
Eingabe Status
ISOLATE OPEN DOOR+CLR LLR offenes Tor isolieren + CLR LLR
SKIP IF OK
überspringen, wenn i.O.
POSITION STATUS BITS Status-Bits posxtxonxeren
1666 15567 070151 SLA *+3
1667 15570 063031 ER3 JSM HALT
1668 15571 067016 JMP ERR3
1669 15572 020107 MC3 LDA RDRS
1670 15573 063657 JSM OFFCLH
1671 15574 01,3610 JGM RRBOF
1672 15575 063472 JSM WRZE
1673 15576 172501 SFS 1
1674 15577 067576 JMP +-1
1675 15600 063652 JSM REWND+1
1676 15601 045664 MC2 ISZ IDBO
1677 15602 045644 ISZ TFILE
1678 156o3 067547 JMP MCONT
1679 15604 024151 LDB M32
1680 15605 063611 JSM RRBOF+1
15606 063031 GBACK JSM HALT
15607 067654 JMP SYSRE
READ DATA REV SLOW Daten langsam rückwärts lesen
GET OFF CLEAR LEADER-EOT gelöschtes Kopfinformation-EuT loslassen
ERASE LAST BOF
letztes BOF auslöschen
WAIT IF STILL WRITING warten, wenn noch schreibend
GIVE COMMAND AND RETURN TO
SYSTEM
Befehl geben und zurück zum System
INCRM FILE NO.
Datei-Nr. anheben
INCRM FILE COUNTER Datei-Zähler anheben
CONTINUE weitermachen
BYPASS 32 CH. + REV. READ
BOF
Beipaß 32 Zeichen +BOF rückw.
lesen
SYSTEM RET
System zurück
09884/ 1 370
BAD O?, r:-NU.
- 449 -
1684*
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1685+ 1686 + 1687* 1688 1689
1690 1691 1692 1693 1694 1695
1696 1697 1698 1699 1700 1701 1702
1703 1704 1705+
1706 +
1707 + 1708
1709 1710
1711 1712 1713
PRBOF- REVERS READ BOF BOF rückwärts lesen
15610 024146 RRBOF LDB M15
15611 020107 LDA RDRS
15612 063032
15613 172501
15614 067613
15615 172240
15616 Ο7767Ο
15617 Ο23731
15620 Ο63Ο37
15621 017740
15622 067626
15623 Ο62765
15624 067610
15625 Ο67Ο16
15627 072030 15630 170402
JSM COUTP
SFS 1
JMP -P-1
LIA 0
RIB +■-3
LDA RCRS
JSM BOFCK
CPB MARK
JMP DEL65
JSM STATE
JMP RRBOF
JMP ERR3
LDA DEL1
RIA
RET
15631 063106 MAR3 JSM RIFS
15632 Ο6361Ο
15633 025664
15634 Ο35643
15635 063524
15636 Ο25643
JSM RRBOF LDB IDBO
STB TAPO JSM MAR4 LDB TAPO READ-DATA-REV-SLOW Daten langsam rückwärts lesen
READ-CONTRL-REV-SLOW Kontrolle langsam rückwärts lesen
BOF?
GET STATUS holen
KEEP LOOKING weitersehen
BOT - CLR LDR
75 MS DELAY
Verzögerung
READ IMMDT FILE ID IMMDT-Datei-ID-lesen
REV. READ BOF rückwärts lesen
SAVE LAST FILE NO. letzte Datei-Nr. sichern
TEMPOR Zwischenspeicher
309884/ 1370
1714 1715
1716 1717 1718
1719+ 1720+ 1721 + 1722+ 1723 + 1724 1725
1726 1727
1728 1729+ 1730+ 1731 +
1732+ 1733+· 1734
1735
1736 1737
1738
1739+ 1740+
15637 035664
15640 020121
15641 063037
15642 017740
15643 067553
STB IDBO LDA RCFS
JSM BOFCK CPB MARK JMP MCON2
READ CONTROL FORW SLOW Kontrolle langsam vorwärts lesen
BOF?
WRITE MORE FILES
mehr Dateien schreiben
IDCLR - CLEAR ID BUFF ID-Puffer löschen
15644 023751 IDCLR LDA IDBA
15645 170000 CLR
15646 000021
15647 170000
ADA CLR CLEAR FILE NO.- ABS SIZE Datei-Nr. löschen - absolute
Größe
CLEAR STARTING LN + 3 WORDS Startzeile + 3 Worte löschen
15650 170402 RE3 RET
REWND - GIVE COMMAND AND RETURN TO SYSTEM Befehl geben und zurück zum System
15651 062457 REWND JSM UNITC GET UNIT NO.
Einheit-Nr. holen
15652 020110
15653 063032
LDA RDRF JSM COUTP
READ-DATA-REV-FAST
Daten schnell rückwärts lesen
15654 173741 SYSRE CLF
15655 164172 TURN ON INTRPT Unterbrechung einschalten
JMP XEC4A,I RETURN TO SYSTEM zurück zum System
30988 4/1370
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1741* OFFCL- GET OFF CLEAR LEADER
gelöschte Kopfinformation loslassen
1742* 15656 020003 OFFCL LDA RDFS
1743* 15657 024124 LDB DLCNT
1744 15660 035652 STB TAP3
1745 15661 063032 JSM COUTP
1746 15662 063001 0F1 JSM STAT
1747 15663 074544 SBL 5
1748 15664 075213 SBP RE3
1749 15665 045652 ISZ TAP3
17 50 15666 067662 JMP OF1
1751 15667 067016 JMP ERR3
1752
1753
1754* LISTE - TAPE LIST EXECUTION
1755*
1756*
1757* 15670 062457 LISTE JSM UNITC
1758* 15671 063106 JSM RIFS
1759 15672 061344 JSM CRLF1
1760 15673 063031 LI2 JSM HALT
1761 15674 025664 LDB IDBO
1762 15675 063720 JSM PRIN
1763 15676 025666 LDB IDBO+2
1764 15677 063720 JSM PRIN
1765 15700 025667 LDB IDBO+3
1766 15701 063720 JSM PRIN
1767 15702 025665 LDB IDBO+1
1768 15703 063720 JSM PRIN
1769 15704 025670 LDB IDBO+4
1770
1771
READ DATA FORW SLOW Daten langsam vorwärts lesen
DELAY COUNT Zählung verzögern
TEMPR Zwischenspeicher COMMAND OUTPUT Befehlsausgabe GET STATUS holen
POSITION CLEAR LEADER BIT gelöschtes Kopfinformationen-Bit positionieren
INCRM DELAY
Erhöhung Verzögerung
WAIT warten
MUST BE EOT muß EDT sein
PRINT FILE NO. Datei-Nr. drucken
FILE TYPE Datei-Typ
PRINT ABS FILE SIZE abs. Dateigröße drucken
CUR SIZE laufende Größe
109884/1370
2333908 063720 JSM PRiN ;. - END LINE NO. Endzeilenzahl - 1
1772 15705 025671 LDB IDBO+5
1773 15706 063720 JSM PRIN NO. OF WORDS IN COMON
Zahl der Worte im Gemeinsam
1774 15707 025672 . LDB IDBO+6
1775 15710 063720 JSM PRIN -
1776 15711 061344 JSM CRLF1 CL. FLAG FOR CRLF
Marke für CRLF löschen
1777 15712 t6O17O JSM CLERA/I
1778 15713 031453 STA PRF L'G . RET TO SYSTEM + REWIND
zurück zum System und
rückspulen
1779 15714 063055 JSM RIF15 CONTINUE LIST
Liste fortsetzen
1780 15715 067652 ' JMP REWND+1
1781 15716" 067673 JMP LI2 CLEAR SINGLE LINE BUFF
einzelnen Zeilenpuffer lose
1782 15717 035647 PRIN STB TAP1
1783 15720 160170 ' JSM CLERA,I
1784 15721 025647 LDB TAP1 MAKE ASCII AND STORE
ASCII machen und speichern
1785 15722 045400 ISZ BADDR CHARACTER COUNT
Zeichenzählung
1786 15723 160210 JSM OUTIA,I POINT TO FIRST CHAR,
auf erstes Zeichen zeigen
1787 15724 020022 LDA CCNT PRINT drucken
1788 15725 024212 LDB .SLBF
1789 15726 065337 JMP NDWRT
1790 15727
1791*
1792*
1793*
1794* 983OA TAPE CASSETTE SYSTEM
983OA Bandkassetten System
1795* -,
1796*
Seite 164 Definitionen
1797* DEFINITIONS
1798*
1799*
1800*
3 09884/1370
• 233: 3908 RDFS B120K EQU ■***■
1801 00003 WCFS KEYBD OCT. C6
1802 15730 006074 RCRS XECA, • JCT 6074 ■
1803 15731 005000 RDRF B176K EQU 5000
1804 00110 - RDRS DEL1 EQU B1400
1805 00107 TLENG DEL2 EQU B1000
1806 01657 DLCNT MARK EQU 1657B
1807 00124 DATOP .24 OCT EXPOP
1808 15732 077040 KEYOP CCNT OCT 77040
1809 15733 077000 077200'-BINOP NUMS OCT 77000
1810 . 15734 12000O TUN IT OCT 77200
1811 1573 5 140000 TFILE OCT 120000
1812 . 15736 IADDR EQU 140000
1813 00004 ITBAS EQU B10K
1814 00160 166272 TAPO DEC M1O24
1815 15737 TAP! EQU -4934
1816 00160 000074 TAP 2 OCT M1O24
1817 15740 000030 CASIN DEC 74
1818 15741 FILEN EQU 24
1819 00022 040000 TAPS ' OCT .5
1820 15742 TÄP4 EQU 40000
1821 O16.45 TAPS EQU 1645B
1822 01644 TAP 6 EQU- 1644B
1823 O1446 040400 TÄP7 DEF ADRSS
1824 15743 TAPS EQU 4O40OB
1825 O1643 TAPAD EQU 1643B
1826 Ol 647 TCOM EQU 1647B
1827 OI650 014620 SECFL DEF 165OB
1828 15744 EQU "lSTO
18Z9 O1664 EQU 1664B
183O· 01652 EQU 165ZB
1831 01653 EQU 1653B
1832 . 01654 EQU 1654B
1833 01655 - EQU 1655B
1834 01660 EQU 1δ6ΟΒ
1835 01661' 001660 DEF Ϊ66-1Β
1836 15745 O11775 OCT 166OB
1837 15746 EQU 11775
1838 01435 SEC
ZE-RO Null
32000B
30 9 8 1 3 70
839 233 3908 OFSET EQU - 4*4
1 840 01663 RCFF OCT 1663B
1 841 15747 OO44OO RCFS EQU 4400
1 842 00121 RCRF OCT 84000
1 843 15750 005400 IDEA DEF 5400
1 844 15751 001664 IDBO EQU 1664B
1 845 01664 IDB4A DEF 1664B
1 846 15752 001670 EOBID DEF 167OB
1 847 15753 001700 EBIDW DEF 170OB
1 848 15754 001677 WDFS EQU 1677B
1 849 00116 RDFF EQU QTOP
1 850 00013 GETSA EQU B400
1 851 00245 STOP EQU GTSTA
1 852 01442 STOPC EQU STPFL
1 00117 B24OO
END OF ID BUFF FOR WRITE Ende des ID-Puffers zum Schreiben
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1855* 1856* 1857*
15755 016747 ERRO DEF ERROR
15756 005717 DCM1A DEF 5717B
TABLE LINKS Tabellenverbindungen
15762 ORG
15762 176462
15763 176334
15764 176534
15765 177703
15766 177663
15767 177521
15770 176052
15771 176417
15772 000000
15773 176030
15774 162111
15775 176004
15762B
ABS LINK-+
ABS ASTOR-*
ABS FINDE-*
ABS LISTE-*
ABS REWND-*
ABS MARKE-*
ABS ALOAD-*
ABS MERGE-*
BSS
ABS SUBT-*
ABS B377-*
ABS CMNDT-*
***+**CHECK SUM****** Summenprobe
Ί O 9 O Π '":/ '=370
1871 15776 000630 0OO041 043111 ABS SNMT-# MLOST-* 2,FIND
1872 15777 014000 000064 047104 jOCT 140OO ELOST-*
1873* 000051 123522 FIMAR-* 123522
1874* 000124 042527 REWLI-* 2,EWIN
1875* SYNTAX 000123 044516 REWLI-*
1876* 000046 042245 FIMAR-* 42245
1877 16615 OOOO57 046505 ORG 16615B ELOST-* 2,MERG
1878* OOOO32 051107 TABLE Syntax-Spr MLOST-*
1879 000031 042642 ABS 31 42642
1880 SYNTAX JUMP SYNTAX TABLE 051524 ABS Syntax-Tabelle 2,STOR
1881 16615 16626 047522 ABS SNMT ASC
1882 16616 16627 042650 ABS 42650
1883 16617 16630 046117 . ABS OCT 2,LOAD
1884 16620 16631 040504 ABS ASC
1885 16621 16632 121515 ABS 121515
1886 16622 16633 040522 ABS OCT 1 ,AR
1887 16623 16634 045644 B31 OCT ADC 45644
1888* 16624 16635 052114 2,TLIS
1889 16625 16636 044523 OCT
16637 052246 ASC 52246
1890 16640
1891 16641 OCT
16642 ASC
1892 16643
1893 16644 OCT
16645 ASC
1894 16646 OCT
1895 16647 ASC
16650
1896 16651 OCT
1897
1898
1899
1900
1901
1902
FIND, OPCODE 7 auffinden
OPCODE, R REWIND, OPCODE 5 riickspulen
D, OPCODE
E, OPCODE STORE, OPCODE 10 speichern
E, OPCODE LOAD OPCODE 3 laden
OPCODE,M MARK, OPCODE 4 markieren K, OPCODE TLIST, OPCODE
T, OPCODE
309884/137 0
23339Π8
- 456 -
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1903
1904 1905* 1906+ 19O7>
1908+ 1909+ 1910
1920 1921 + 1922+
1923 +
1924 + 1925+ 1926 1927
16652 046111
16653 047113
16654 1644OO
ASC 2,LINK LINK, OPCODE 11 Verbindung OCT 164400 OPCODE, ET
MERGE, LOAD, STORE SYNTAX CHECK Misch-, Lade-, Speichersyntax-Prüfung
16655 062764 ML
JSM UNIT1
16656 062751 MLOST JSM UNIT
16657 066661 JMP MA
16660 O6277O
16661 162773 MA
16662 065153
16663 062770
16664 060664
16665 062770
16666 060664
16667 065151
JSM COMEL
JSM SERVA,I JMP EOLCK JSM COMEL
JSM LNUM
JSM COMEL JSM LNUM
JMP EOST DECRM POINTERS Hinweismarken erniedrigen
NO UNIT GIVEN
keine Einheit gegeben
COMA? NO, EOL Komma? nein EOL
0-i-EOL? ACCEPT annehmen
FILE NO. GIVEN Dateizahl gegeben
GET LINE* 1 Zeilen ft 1 holen
GET LINE # 2 Zeilen M 2 holen
FIND AND MARK SYNTAX CHECK Syntaxprüfung auffinden und markieren
16670 062751 FIMAR JSM UNIT
16671 066673
16672 060510
16673 160202 AA
16674 025473
16675 014024
JMP AA NO UNIT GIVEN
keine Einheit gegeben
JSM COMCE COMA? NO, ERROR
Komma? nein Fehler
JSM FSCA,I GET FILE Datei holen
LDB TEMP CPB .7 FIND? auffinden?
309834/ 1370
ORIGINAL WSPECTED
1933 1934 193 5 1936* 1937* 1938 +
1939* 1940*
1942 1943
1944 1945 1946
1947 1948 1949
1950 1951
1952 1953* 1954* 1955*
1956* 1957*
16676 065151
16677 060510
16700 160202
16701 065151
- 4*7 -
JMP EOST
JSM COMCE JSM FSCA,I JMP EOST ACCEPT STATEMENT Anweisung annehmen
ENTRY FOR ALL LOAD AND STORE
Eingang für alle Ladungen und Speicherungen
16702 021466 ELOST LDA L0CL1
16703 050040 AND B37
16704 031473 STA TEMP
16705 060456
16706 061055
16707 026774
16710 O6O546
16711 06665.5
16712 070202
16713 050040
16714 001473
16715 031473
JSM SBPUD JSM GNEXT LDB SUBTA
JSM STEXP JMP ML SAR
AND B37 ADA TEMP
STA TEMP TEMPOR, OPCODE Zwi schenspeicher
INCRM POINTER SBPTR Hinweismarke anheben
GET NEXT CHARACTER nächstes Zeichen holen
ADDR OF SUB-TABLE Adresse der Untertabelle
LOAD, STORE laden, speichern
POSITION KEY OR DATA OPCODE Tasten- oder Daten-OP-Code positionieren
FIGURE EXACT OPCODE genauen OP-Code aufstellen
LOADK, STOREK, LOADD, STORED, LOADB, STOREB, SYNTAX CHECK
Syntaxprüfung
30988 U /1370
983OA TAPE CASSETTE SYSTEM 983OA Bandkassetten System
1960
1961 1962 1963 1964 1965 1966
1980* 1981 + 1982*
1983* 1984* 1985 1986
16716 062754
16717 066741
16720 060510
16721 16722 16723 16724 16725 16726 16727 16730 16731
162773 LA1
066747
025473
016625
066731
016775
066731
065151
062770
16732 061140
1971 1 6733 066747
1972 1 6734 021474
1973 1 6735 024020
1974 1 6736 060451
16737 021475
16740 065151
16741 070742 LA
16742 060456
16743 066721
JSM UNIT2 JMP LA
JSM COMCE
JSM SERVA,I JMP ERROR LDB TEMP CPB B31 JMP *+4 CPB BB24 JMP ++2 JMP EOST JSM COMEL
JSM LTR
JMP ERROR LDA TEMPI
LDB
JSM STROP+1
LDA TEMP2
JMP EOST SAR JSM SBPUD JMP LA1 NO UNIT GIVEN
keine Einheit gegeben
COMA? NO, ERROR Komma? nein, Fehler
EOL AFTER COMA nach Komma
STORE DATA? Daten speichern? YES ja
LOAD DATA? Daten laden? YES ja
DEMAND EOL verlangen
COMA? NO, EOL Komma? nein, EOL
CHECK FOR ARRAY auf Feld prüfen
LETTER; LOAD VARIABLE NAME Buchstabe; Variablenname laden
ASSUME ARRAY Feld annehmen PUT IN MEMORY
In Speicher geben
LOAD FOLLOWING CHARACTER folgendes Zeichen laden
REWIND AND TLIST SYNTAX CHECK Rückspulen und TLIST-Syntaxprüfung
16744 0627 51 REWLI JSM UNIT
16745 065147 JMP ENDS
'.: O 9 8 3 Λ / 1 3 7 Π
1987
1988 1989 1990+ 1991 + 1992+ 1993+ 1994+ 1995 1996 1997
1998 1999
2000
2002
2005
2009+ 2010+ 2011 + 2012+ 2013 +
16746 065151
- 459 -
JMP EOST ACCEPT STATEMENT Anweisung annehmen
16747 160205 ERROR JSM AERRA,I 16750 177711 DEC -55
UNIT'SYNTAX CHECK Einheitssyntax-Prüfung
16751 021466 UNIT LDA L0CL1
16752 050040 AND B37 167 53 031473 STA TEMP
16754 060456 UNIT2 JSM SBPUD
16755 061055
16756 060463
16757 012017
16760 066764
16761 066762
16762 160202 FS
16763 064357
16764 055706 UNIT1
16765 055400
16766 170402
JSM GNEXT
JSM SYMC1 OCT 12017 JMP UNIT1 JMP FS JSM FSCA,I JMP RETN2 DSZ SBPTR DSZ BADDR RET RECALL OPCODE zurückrufen
OPCODE TEMPORARY Zwi schenspeicher
GET NEW SYNTAX WORD neues Syntaxwort holen
GET NEW CHARACTER neues Zeichen holen CHECK FOR # auf P prüfen
NO nein
YES ja
GET UNIT Einheit holen
COMA-EOL CHECK Komma-EOL-Prüfung
Seite 168 6767 061055 983OA TAPE CASSETTE SYS COMA?
2014 1 6770 060504 COMA JSM GNEXT NO
2015 1 6771 065151 COMEL JSM COMCK
2016 1 6772 170402 JMP EOST
2017 1 RET
2018+ DEFINITIONS 1 370
2019+ Definitionen
3 O 9 8 8 A /
nein
? 3 3 3 T Π 8 - 460 -
2020*
2021 16773 01403 2 SERVA DEF SERV
2022 16774 030046 SUBTA DEF SUBT+SUBT
2023 16775 000024 ΒΒ24 OCT24
2024 END
3 0 9 8 B U I 1 3 7 Π
MATRIX-BLOCK
0501 200OO BLOCK
0502
0503* MATRIX
0504+
0505+ 12OO1
0506 12002
0507 12007
0508 12011
0509 12013
0510 000256
0511 +
0512+ 20000 000100
0513 OOOO4 i
0514+ 2OOO1 000000
0515 20OO 2
0516 20003 046501
0517 052242
0518 + 20004 051105
0519 20005 042111
0520 2OOO6 046603
0521 20007
0522 2O010 046501
0523 052040
0524+ 20011 050122
0525 20012 044516
0526 20013 052204
0527 20014 046501
0528 20015 052040
0529 20016 051105
0530 20017
0531 2OO 2O
0532
LST
ORG 20000B
QUOTE EQU 12001B TABLE OF EQUATES FOR SYNTAX
Tabelle der für Syntax Gleichgestellten
COMMA EQU QUOTE+1 ASSOP EQU QUOTE+6 PLUS EQU QUOTE+8 TIMES EQU QUOTE+10 ABS DETT-+ DETERMINANT JUMP TABLE
Determinanten-Sprungtabelle
ABS REDS-+
ABS MATS-+ NOP
SYNTAX JUMP TABLE
Syntax-Sprungtabelle
++ CHECKSUM WORD ++ Summenprobe Wort
MA STATEMENT-NAME TABLE
Anweisungsnamen-Tabelle
OCT 052242 T (2)
OCT 051105 RE
OCT 042111 DI
OCT 046603 M (3)
OCT 046501 MA
OCT 052040 τ
OCT 050122 PR
OCT 044516 IN
OCT 052204 T (4)
OCT 046501 MA
OCT 052040 T
OCT 051105 RE
^0988^/1370
0533 0534 053 5.* 0536
0537 0538 0539 0540
0542 0543 0544 0545 0546 + 0547
0548 0549* 0550 0551* 0552 0553 0554
20021 040504
20022 142400
OCT 040504 OCT 142400
AD
(5) END Ende
20023 052122 NFOPT OCT 052122 TR NON-FORMULA OPERATOR
TABLE
Nicht-Formel-Operatoren-Tabelle
20024 O472O1
20025 044516
20026 053202
20027 055105
20030 051203
20031 041517
20032 047204
20033 044
20034 047305 OCT 047305 N (5) END Ende
20035 042105 FUNCT OCT 042105 DE FUNCTION-NAME TABLE
Funktionsnamen-Tabelle
OCT 047201 N (D
OCT 044516 IN
OCT O532O2 V (2)
OCT 055105 ZE
OCT 051203 R (3)
OCT 041517 CO
OCT 047204 N (4)
OCT 044504 ID
OCT 047305 N (5)
20036 052335 OCT 052335 T (29) END Ende
20037 000777 BN777 OCT NULL TABLE Null-Tabelle
20040 177771 M7 DEC -7
20041 026000 B26K OCT 26000
20042 00004 6 NFOPA DEF NFOPT+NFOPT-ID-ID
MATRIX BLOCK
0556 + 0557+' 0558 + 0559
0560
0562 0563*
MAT STATEMENT SYNTAX Matrix-Anweisungs-Syntax
20043 021717 MATS LDA NUM
20044 070442
20045 070244 2004 6 031660
20047 055706
SAR SAL STA TB
DSZ SBPTR GET PAGE INFO Seiteninformation holen
MOVE S-BUFFER POINTER
S-Puffer-Hinweisinarke boweqen
■1 O 9 8 8 Λ / 1 3 7 O
L JNSPECT.5D
23 33908 JSM - 4*3
t/fcS"
0565 20050 061055 LDB GNEXT
0566 20051 026220 ADB
JSM
SUBTA
0567
0568
2OO52
20053
005660
060537
T8
STSRH
0569 20054 066107 062227
0570 20055 045706 062240
0571 20056 010004 066064
0572 20057 066066 061153
0573*
O574# MAT READ SYN
0575*
0576 20060
0577 20061
0578 20062
0579 20063
2580
JMP MATS2 ISZ SBPTR CPA B10K
JMP MATSO GET FIRST CHARACTER erstes Zeichen holen
GET SUBSIDIARY TABLE ADDRESS HilfStabellenadresse holen
DO SEARCH FOR "PRINT" OR
"READ"
nach "Druck" oder "Lesen" suchen
NOT FOUND nicht gefunden
PRINT? Druck? YES ja
20064 060510
JSM MATSB
JMP ++2
JSM EOLCK
JSM COMCE RECORD ARRAY Feld aufnehmen
IF SUBSCRIPT, RECORD IT wenn Index,aufnehmen
NOP
END-OF-STATEMENT? Anweisungs-Ende?
NO, DEMAND COMMA nein, Komma verlangen
0581 20065 066060 062227 MATSO JMP MATS1 ARRID RECORD ARRAY Feld aufnehmen
0582+ 061153 EOLCK END-OF-STATEMENT?
Anweisungsende?
0583* MAT PRINT SYNTAX 060461 S YMC 2 NO, LOOK FOR COMMA OR
0584* SEMICOLON
nein, nach Komma oder Semikolon
sehen
0585 20066 Matrix-Druck-Syntax
0586 20067
0587 20070 JSM
JSM
JSM
0588 2OO71 01 2001
0589 20072 164277
0590 2007 3 061066
0591 20074 066077
0592 20075 O554OO
DEF COMMA-1
JMP E10-2,I NOT FOUND, ERROR 8
nicht gefunden, Fehler
JSM GETSK END-OF-STATEMENT? Anweisungsende?
JMP =K+3 YES ja
DSZ BADDR NO Nein
30988/»/1370
0593
2 3 3 3 °i 0 8
20076 066066
20077 045706
- 464 -
JMP MATSO ISZ SBPTR
0595 20100 164203 JMP ACTSA
0596*
0597* REDIM SYNTAX
0598*
0599 20101 062227 REDS JSM ARRID
0600 20102 062240 JSM MATSB
O6O1 20103 066105 JMP ++2
0602 20104 164306 JMP E15,I
O6O3 20105 060510 JSM COMCE
0604 20106 066101 JMP REDS'
RECORD ARRAY Feld aufnehmen
RECORD SUBSCRIPT Index aufnehmen
NOP
NONE FOUND, ERROR 15 keiner gefunden, Fehler
DEMAND COMMA Komma verlangen
Seite 171 SYNTAX MATRIX BLOCK
Ο6Ο6+
0607+ OTHER 045706 andere Syntax
0608-P 061141
0609 20107 164321 MATS2 ISZ SBPTR
0610 20110 021706 JSM LTR+1
0611 20111 031723 JMP E25+1,1
0612 20112 062231 LDA SBPTR
0613 20113 060463 STA ARYAD
0614 20114 012006 JSM ARRI
0615 2Ο115 164325 JSM SYMC1
0616 20116 061055 DEF ASSOP-1
0617 20117 045706 JMP E30,I
0618 20120 026042 JSM GNEXT
0619 20121 ISZ SBPTR
0620 20122 LDB NFOPA
LETTER? Buchstabe?
NO, ERROR 26 nein, Fehler
SAVE CHARACTER ADDRESS Zeichenadresse sichern
RECORD ARRAY
LOOK FOR "="
nach "=" sehen
NOT FOUND, ERROR nicht gefunden, Fehler
SEARCH NON-FORMULA OPERATOR
TABLE
Nicht-Formel-Operator-Tabelle
suchen
0621 20123 005660
0622 20124 060546
ADB T8 JSM STEXP
8^/1370
ORIGINAL INSPECTED
- 4-65 -
0624 0625 0626
0627 0628
0629 0630
0631 0632
0633 0634 + 0635+ 0636* 0637 0638
0639 0640
0641 0642 0643
0644 + 0645 0646
0647 0648
0649
20125 O66147
20126 045706
20127 070202
20130 050040
20131 031661
20132 000134
20133 070252
20134 061066
20135 164203
20136 062240
20137 065152 INV & TRN SYNTAX
20140 061055 MATS3 JSM GNEXT
20141 060521 JSM LPCKE
JMP MATS8
ISZ SBPTR SAR AND B37
STA T ADA M3
SAM MATS3 JSM GETSK
JMP ACTSA,I JSM MATSR
JMP NOEOF NOT FOUND, MUST BE ARITHMETIC nicht gefunden, muß arithmetisch sein
RETRIEVE OPCODE Wiedergewinnen
INV OR TRN?
oder
YES ja
NO, END-OF-STATEMENT? nein, Anweisungsende?
YES ja
NO, GO RECORD SUBSCRIPT nein, Aufnahmeindex holen
20142 O62227
20143 060534
20144 055661
20145 065151
20146 066205
JSM ARRID JSM RPCKE
DSZ T9 JMP EOST JMP LHSC DEMAND LEFT PARENTHESIS linke Klammer verlangen
RECORD ARRAY
Feld aufnehmen
DEMAND RIGHT PARENTHESIS rechte Klammer verlangen
TRN?
NO nein
GO CHECK PREVIOUS ARRAY
IDENTIFIER
vorherigen Feldanzeiger prüfen
20147 061141 MATS8 JSM LTR+1 LETTER? Buchstabe?
20150 066154
20151 O6O752
20152 066164
20153 164326
JMP MATS4 NO, IT MUST BE SCALAR MULTIPLY
nein, muß skalare Multiplikation sein
JSM LETCK LETTER? Buchstabe?
JMP MATS5 NO, IT MUST BE MAT ARITHMETIC
nein, muß mat. arithmetisch sein
JMP E30+1,I YES, ERROR 31
ja, Fehler 31
9 8 R U I 1 3 7 η
- 466 -
O 8
Seite 172 MATRIX BLOCK 060521 Mats4 JSM Dlikatic 055706 MATS5 DSZ SBPTR
0651 + 160202 JSM 062231 JSM ARRI
Ο652+· SCALAR MULTIPLY SYNTAX
Syntax für Skalarmultij
Ο6Ο534 JSM LPCKE 061153 JSM EOLCK
0653 + 060463 JSM FSCA,I
0654 20154 012012 DEF RPCKE
0655 20155 164326 JMP SYMC1
0656 2Ο156 062227 JSM TIMES-1
0657 20157 065151 JMP E30+1,3
0658 20160 ARRID
0659 20161 EOST*
0660 20162
0661 20163 MAT ARITHMETIC SYNTAX
Matrix-arithmetische Syntax
0662*
0663* 20164
0664* 20165
0665 20166
0666
0667
DEMAND LEFT PARENTHESIS linke Klammer verlangen
FETCH FORMULA
Formel holen
DEMAND RIGHT PARENTHESIS rechte Klammer verlangen
LOOK FOR "+" suchen
nicht gefunden, Fehler 31
RECORD ARRAY
Feld aufnehmen
20167 024020 20170 060464
20171 012010
20172 164326 20173 074742
0673 20174 012041
0674 20175 066212
O675*-
0676 20176 035712
0677 20177 062227
0678 2O2OO 010031
LDB
JSM SYMCK DEF PLUS-1 JMP E30+1,1
SBR
CPA B26K JMP MATS7
JSM ARRID
CPA EOL RECORD ARRAY EeId aufnehmen
END-OF-STATEMENT? Anweisungs-Ende?
NO, SEARCH FOR "+" "-" OR "*" nein, "+",»-» oder "+" suchen
NOT FOUND, ERROR 31 nicht gefunden, Fehler 31
SET B FOR PFLAG B für P-Marke setzen
YES ja
SET PFLAG P-Marke setzen
RECORD SECOND ARRAY zweites Feld aufnehmen
END-OF-STATEMENT? Anweisungsende?
' Π 9 8 :l U I 1 3 7 Π
ORIGINAL INSPECTED
2333908 JMP *+2
0679 2O2O1 066203 JMP NOEOF
O68O 2O2O2 O65152 ISZ PFLAG
0681 20203 045712 JMP ACTSA,
0682 20204 164203 LDB ARYAD,
0683 20205 125723 LHSC SBL 6
0684 20206 074504 CPB TEMP
0685 20207 015473
0686
20210 164326
20212 121723 MATS7 LDA ARYAD,I RETRIEVE ARRAY IDENTIFIER
Feldidentxfizxerer wiederherstellen
0687 2021 1 065151
0688*
0689 2021 2 121723
0690 2021 3 070504
0691 2021 4 024132
0692 2021 5 011473
0693 2021 6 164326
YES ja
NO, ERROR nein, Fehler
WAS OPERATOR A "*"? war Operator ein "+"?
NO nein
YES, RETRIEVE PREVIOUS ARRAY ja, vorheriges Feld wiederherstellen
SAME AS LEFT HAND SIDE? gleiches wie auf linker Seite?
JMP E30+1,I YES, ERROR (IMPROPER
ASSIGNEMENT)
ja, Fehler (unrichtige Zuweisung)
NO
JMP EOST nexn
SAL LDB M1 SET B FOR PFLAG
B für P-Marke setzen
0694
20217 066176 CPA TEMP SAME AS LEFT HAND SIDE?
gleiches wie auf linker Seite?
JMP E30+1,I YES, ERROR (IMPROPER
ASSIGNMENT)
ja, Fehler (unrichtige Zuweisung)
JMP MATS6 NO nein
MATRIX BLOCK
0696 20220 000442 SUBTA DEF SUBTB+SUBTB-ID-ID
0697 20221 050122 SUBTB OCT 050122 PR
0698 20222 044516 OCT 044516 IN
0699 20223 052204 OCT 052204 T (4)
0700 20224 051105 OCT 051105 RE
0701 20225 040504 OCT 040504 AD
0702 20226 142400 OCT 142400 (5) END Ende 0703*
309884/ 1370
0704*
0705*
0706
0707
Ο7Ο8
0709
071 0
071 1
071 2
071 3
071 4
071 5*
071 6 +
071 7*
071 CXl
0719
0720
0721
0722
0723
0724
0725
0726
3 3 3 ^ η a
- 4-68 -
SUBROUTINE TO FETCH ARRAY IDENTIFIER AND RECORD IT Unterprogramm um Feld identifizierer abzurufen und aufzunehmen
2Ο227 061140 ARRID 2Ο23Ο 164321
JSM LTR JMP E2 5+1 ,1
20231 Ο21474 ARRI LDA TEMP1
20232 024020
20233 060451
20234 070504
20235 031473 2Ο236 Ο21475
20237 170402
LDB
JSM STROP+1 SAL STA TEMP LDA TEMP2■
RET LETTER? Buchstabe?
NO, ERROR 26 nein, Fehler
RECORD ARRAY IDENTIFIER Feldidentifizierer aufnehmen
OR UNKNOWN DIMENSIONS von unbekannten Dimensionen
RETRIEVE FOLLOWING CHARACTER folgendes Zeichen wiederherstellen
SUBROUTINE TO FETCH MAT SUBSCRIPT AND RECORD IT Unterprogramm,um Matrix-Index abzurufen und zu speichern
20240 O6O513 MATSB JSM LPCK
20241 064357
20242 020125
20243 131706
20244 160202
5 060504
20246 O66250
20247 160202
20250 060534
JMP RETN2
LDA LBOP
STA SBPTR7I JSM FSCA7I LOOK FOR LEFT PARENTHESIS nach linker Klammer sehen
NOT FOUND7 RETURN TO P+2 nicht gefunden, zurück nach P+2
CHANGE
( in £
( TO C ändern
JSM COMCK
0727 20251 055706
0728 20252 024123
0729 2O253 135706
0730 20254 045706
0731 20255 065153
JMP
JSM FSCA,I
JSM RPCKE
DSZ SBPTR LDB RBOP
SIB SBPTR,I ISZ SBPTR JMP EOLCK FETCH SUBSCRIPT Index abrufen
LOOK FOR COMMA nach Komma sehen
NOT FOUND nicht gefunden
FOUND, FETCH SECOND SUBSCRIPT gefunden, zweiten Index abrufen
DEMAND RIGHT PARENTHESIS rechte Klammer verlangen
CHANGE
) in j
) TO i ändern
CHECK FOR END-OF-STATEMEKT
-> η Q Q Q Λ / ftö Q.nwei sung sende prüfen
ORIGINAL INSPECTED
9 3 Ή!~! η 8
- 4-69 -
MATRIX BLOCK
0733 + DETERMINANT Determinante
0734+
0735+ 20256 021416 DETT LDA MODE
0736 20257 070453 SAP DETX
0737
0738+ 20260 023777 LDA OPCOD
0739 2Ο261 131706 STA SBPTR,I
0740 20262 045706 ISZ SBPTR
0741 20263 061055 JSM GNEXT
0742 20264 060521 JSM LPCKE
0743 20265 Ο62227 JSM ARRID
0744 20266 060534 JSM RPCKE
0745 2Ο267 064356 JMP RETN 3
Ο746
0747 +
0748+ 20270 023726 DETX LDA B1A
0749 20271 024024 LDB .7
0750 20272 162335 JSM MOVST,I
0751 2Ο273 021412 LDA LSTPT
0752 20274 031656 STA T 6
0753 20275 121472 LDA TEMPS,I
0754 20276 045472 ISZ TEMPS
0755 20277 045472 ISZ TEMPS
0756 20300 063541 JSM INF01
0757 20301 021642 LDA B1+2
0758 20302 Ο31645 STA B3+2
0759 2Ο3Ο3 063564 JSM C0MP1
07 6Ο
SYNTAX OR EXECUTION? Syntax oder Ausführung?
GET MAT OPCODE Matrix-OP-Code holen
DEMAND LEFT PARENTHESIS linke Klammer verlangen
RECORD ARRAY
Feld aufnehmen
DEMAND RIGHT PARENTHISIS. rechte Klammer verlangen
SAVE FIRST SEVEN TEMPOARIES erste sieben Zwischenspeicher sichern
SET UP FOR DETERMINANT EXECUTION aufsetzen für Determinanten
ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
EXTRACT DIMENSIONS Dimensionen.ausblenden
20304 011653
CPA T3
:·. η 9 B π /. /1 3 7 η
OWGlNAL INSPECTED
0762 23
20305
33908
066307
JMP *+2
0763 20306 067120 JMP MERR5
0764 +
0765 20307 061201 JSM IMPY
0766 20310 025640 LDB Β1
0767 20311 035643 STB Β3
0768 20312 076110 RZB Ή-2
0769 20313 070704 SAL 2
0770 20314 014012 CPB .1
0771 20315 070744 SAL 1
0772 20316 025412 LDB LSTPT
0773 20317 Ο74Ο7Ο SIB *+1
0774 20320 035644 STB B3+1
0775 20321 074017 ADA B
ons 20322 063130 JSM XIN2+1
0777 20323 066324 JMP ++1
0778 20324 021656 LDA T6
0779 20325 002040 ADA M7
0780 20326 031412 STA LSTPT
0781 203 27 070070 SIA #+1
0782 20330 027726 LDB B1A
0783 0784 0785 0786 0787 + 0788
20331 170004
20332 170004
20333 023731
20334 064445
XFR
XFR
LDA DELA
JMP XFAR2+1 MATRIX NOT SQUARE Matrix nicht quadratisch
N+N
GET # OF TEMPORARY WORDS
NEEDED
# der benötigten Zwischenspeicherworte holen
GO CALCULATE DETERMINANT Determinante berechnen
DET=O RETURN zurück
RESTORE FIRST SEVEN
TEMPORARIES
erste sieben Zwischenspeicher rückstellen
20335 011122 MOVST DEF 11122B
MATRIX BLOCK
07 90*
0791* EXECUTE MAT PRINT Matrix-Druck ausführen
0792*
Ί0988Λ/1370
0793
0806
0807 0808
0809 0810 0811* 0812 0813 0814 0815 0816* 0817
0818 0819 0820 0821 O822
0823 0824
20336 021416 EMATP
0794 20337 031656
0795 20340 121472
0796 20341 045472
0797 20342 063541
0798 20343 121472
0799 20344 O7O44 2
0800 20345 074742
0801 20346 035453
0802 20347 010020
0803 20350 O24o20
0804 20351 021472
0805 20352 011421
20353 074742
20354 035655
20355 021642
20356 025642
20357 063565
20360 020132
20361 031703
20362 022442
20363 031623
20364 Ο2ΟΟ12
20365 031646
20366 020012 MTP1
20367 031652
20370 160170
20371 063600 ΜΤΡ2
20372 070742
20373 031705
IDA TO
MODE
SAVE MODE FLAG
Betriebart-Marke sichern
I ESTABLISH INFORMATION VECTOR
Informationsvektor aufbauen
I GET FORMAT INDICATOR
Formatindikator holen
"STA T6
LDA TEMPS, INDICATE "PRINT"
"Druck" anzeigen
ISZ TEMPS
JSM INF01 3 IS; O IS,
LDA TEMPS,
SAR 10 FALSE ALARM?
Fehler-Alarm?
SBR 16 YES, IT WAS PART OF NEXT
STB PRFLG STATEMENT
ja, es war Teil der nächsten
Anweisung
CPA .3
LDB .3 SET UP BOUNDS INFO
Grenzinformation aufsetzen
LDA TEMPS
CPA PRADD
SBR 16
STB T5
LDA B1+2
LDB B1+2
JSM COMPR
LDA M1
STA PLACE
LDA LN72
STA PEND
LDA .1 START THE PRINT OPERATION Drückoperation starten
STA T1 LDA .1 STA T 2 JSM CLERA,I CLEAR BUFFER Puffer löschen JSM GETII
SAR 16 STA FLOAT
GET AN ARRAY ELEMENT Feldelement holen
INDICATE FIXED-POINT FORMAT Festkommaformat anzeigen
3Q9884/ 1
23 33908 STA MODE
0825 20374 031416 JSM NMOTA,I
0826 20375 160234 LDB BADDR
0827 20376 025400 CPB PEND
0828 20377 015623 JMP OVFW
0829 20400 066435 SAR 16
0830 20401 070742
0831 20402 031742 STA XC+2
0832 20403 021655 LDA T5
0833 20404 160235 JSM FILLA,I
0834 20405 160176 JSM ELINA,I
0835 20406 021442 LDA STPFL
0836 20407 010040 CPA .31
0837 '20410 066437 JMP MTPX
0838 20411 021652 LDA T2
0839 20412 011654 CPA T4
0840 20413 066416 JMP *+3
0841 20414 045652 ISZ T2
0842 20415 066371 JMP MTP 2
0843 20416 061344 JSM CRLF1
0844 20417 061344 JSM CRLF1
CHECK FOR OVERFLOW auf Überfüllung prüfen
SIGNAL NUMERIC (NOT QUOTE)
TO FILL ROUTINE
Signal numerisch (nicht Quote) um Routine zu füllen
CHECK THE FORMAT INDICATOR Formatanzeiger prüfen
SUPPLY NEEDED BLANKS benötigte Leerstellen zuführen
OUTPUT ONE FIELD Ausgang ein Feld
CHECK STOP FLAG
Stop-Marke prüfen
DOUBLE-SPACE BETWEEN ROWS Doppelabstand zwischen Sprossen
309884/ 1
ORIQiNAL INSPECTED
2333908 176 *w J· ^
MATRIX BLOCK
Seite 20420 021646 LDA T1
0846 2Ö421 011653 CPA T3
0847 20422 066425 JMP *+3
0848 20423 045646 ISZ T1 .
0849 20424 066366 JMP MTP1
0850 2O425 061344 JSM CRLF1
0851
20426 025472
20427 015421
20430 066437
20431 121472
20432 050115
EXTRA SPACE AFTER MATRICES Extra-Raum nach Matrizen
LDB TEMPS CHECK FOR MORE ARRAYS TO BE
PRINTED
auf mehr zu druckende Felder
prüfen
CPB PRADD
JMP MTPX
LDA TEMPS,I AND B1777 CHECK FOR TRAILING FORMAT
INDICATOR
auf anhängenden Formatanzeiger prüfen
0857 20433 070210 SZA MTPX
Ο858 20434 066340 JMP MTP 3
0859* -
0860 20435 061344 OVFW JSM CRLF1
0861 20436 066370 JMP MTP2-1
Ο862*
0863 2Ο437 021656 MTPX LDA T6
0864 20440 031416 STA MODE
0865 20441 164172 JMP XEC4A,I
0866* -
0867 20442 ΟΟ3433 LN7 2 DEF RBÜFF+7
RESTORE MODE
Betriebsart rückstellen
MATRIX BLOCK
0869+ 0870+ 0871 + Ο872 Ο873
EXECUTE MAT READ mat. Lesen ausführen
20443 121472 EMATR LDA TEMPS,I
20444 045472 ISZ TEMPS
30988 4/1370
0887*
08 90* 0891*
0892* 0893 + 0894* 0895*
0896* 0897
0901* 0902+ 0903 + 0904*
2333^08
20445 027730
20446 063542
20447 121472 204 50 050065
20451 010125
20452 063625
20453 063563
20454 022462
20455 062617
20456 025472
20457 015421
20460 164172
20461 066443
LDB B3A JSM INFOV
LDA TEMPS,I AND OPMSK CPA LBOP JSM REDIR
JSM COMP2 LDA EMRX
JSM COMM LDB TEMPS CPB PRADD JMP XEC4A,I JMP EMATR ESTABLISH INFORMATION
VECTOR
Informationsvektor aufbauen
IS IT j. 1
ist es ,.
YES, GO REDIMENSION ja, redimensionieren
GO EXECUTE DATA TRANSFERS Datentransfers ausführen
DONE fertig
204 62 0624 63 EMRX JSM 20463 160256 JSM FDAAA,I
SUBROUTINE TO STASH AN ARRAY ELEMENT Unterprogramm für Feldelement-STASH
ELEMENT IS IN AR2 Element ist in AR2
REW & COLUMN VALUES ARE IN T1 AND T2 Sprossen- und Spaltenwerte sind in T1 und T2
20464 027730 STASH LDB B3A
20465 063705
20466 021643
20467 064421
JSM WHERE LDA B
JMP STORE+3 FIND TARGET ADDRESS Zieladresse auffinden
FIND TYPE OF ARRAY Feldtyp auffinden
EXECUTE REDIM ausführen
20470 121472 EREDM LDA TEMPS,I
20471 045472 ISZ TEMPS
3 O 9 8 8 Λ / 1 3 7 Π ORIGINAL KNSPECTED
233 3908
0907 20472 027730
0908 20473 063542
- 4.7-b -
20474 063625
20475 025472
20476 015421
20477 164172
20500 066470
LDB B3A JSM INFOV
JSM REDIR ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
GO REDIMENSION
redimensionieren
LDB TEMPS
CPB PRADD JMP XEC4A,I DONE
JMP EREDM fertig
MATRIX BLOCK
2O5O1 121472 EMATX LDA TEMPS,I
ISZ TEMPS LDB B3A JSM INFOV
LDA TEMPS,I ISZ TEMPS AND B1777 RZA MATX1
LDA TEMPS,I SAR 10 CPA .31
JMP MATXO JMP ESMY
MATX1 JSM INF01
LDB TEMPS CPB PRADD
JMP EMRP
0916 20502 045472
0917 20503 027730
0918 20504 063542
0919 20505 121472
0920 20506 045472
0921 20507 050115
0922 20510 072310
0923 20511 121472
0924 20512 070442
0925 20513 010040
0926 20514 066531
0927 20515 066644
0928*
0929 20516 063541
0930 20517 025472
0931 20520 015421
0932 20521 066605
0933 20522 121472
GET DESTINATION ARRAY Bestimmungsfeld holen
ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
REGUALR MAT ASSIGNMENT? reguläre Matrix-Zuweisung
NO nein
SCALAR MULTIPLY?
skalare Multiplikation?
NO nein
YES ja
ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
STATEMENT EXHAUSTED? Anweisung abgesaugt?
YES, GO DO MAT REPLACEMENT ja, Matrix auswechseln
20523 027727
LDA TEMPS7I NO, GET SECOND OPERAND nein, zweiten Operanden holen ■
LDB B2A
30988 h /1370
0935 0936
0937 0938 0939 0940* 0941
20524 063542
20525 121472
20526 070442
20527 000134 20530 066535
JSM INFOV
ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
LDA TEMPS,I THEN GET MAT OPERATOR
dann Matrix-Operator holen
SAR ADA M3 JMP MATJ
20531 121472 MATXO LDA TEMPS,I IDENTIFY SPECIAL NON-FORMULA OPERATOR
speziellen Nicht-Formel-Operator identifizieren
0942 20532 045472 ISZ TEMPS
0943 20533 070202 SAR 5
0944 20534 050040 AND .31
0945 20535 002537 MATJ ADA XTBL1
0946 20536 070016 EXA
0947 20537 066537 XTBL1 JMP
0948 20540 066722 JMP ETRN TRN
0949 20541 067110 JMP EINV INV
0950 20542 066553 JMP EZER ZER
0951 20543 066550 JMP ECON CON
0952 20544 066562 JMP EIDN IDN
0953*
0954 20545 066671 JMP EADD +
0955 20546 066673 JMP ESUB -
0956 20547 066760 JMP EMUL *
BRANCH TO PROPER ROUTINE zur richtigen Routine abzweigen
MATRIX BLOCK
0958+ EXECUTE ZER AND CON ZER und CON ausführen 0959*
20550 063622 ECON JSM REDIM REDIMENSION IF NECESSARY
redimensionieren, wenn nötig
20551 024004 LDB B10K
20552 066555
JMP *
20553 063622 EZER JSM REDIM REDIMENSION IF NECESSARY
redimensionieren, wenn nötig
20554 074742 SBR
3098BA/ 1
0965 0966 0967
0968
0969 0970* 0971 + 0972* 0973
0974 0975
0976
0977 0978 0979
0980 0981 0982
0983 0984 · 0985 0986 0987 0988 0989 0990 0991 0992* 0993* 0994* 0995 0996 0997 0998
20555 061256
20556 035755
20557 063563
20560 062611
20561 164172
4*5
JSM CLAR2 STB AR2+1 JSM COMP2
JSM CMR1
SET UP AR2 . aufsetzen
SET UP BOUNDS INFO Grenzinformationen aufsetzen
DO THE TRANSFERS ausführen
JMP XEC4A,I DONE fertig
EXECUTE IDN ausführen
20562 063622 EIDN JSM REDIM
20563 061256
20564 063563
20565 011653
20566 066570
20567 067120
20570 062611
20571 024004
20572 035755
20573 020012
20574 O31646
20575 031652
20576 062464 EID3
20577 021646
20600 011653
20601 164172
20602 045646
20603 O4 5652
20604 066576
JSM CLAR2 JSM COMP2
CPA T3
JMP
JMP MERR5
JSM CMR1
LDB B10K STB AR2+1 LDA STA T1 STA T 2 JSM STASH LDA T1 CPA T 3 JMP XEC4A,I ISZ T1 ISZ T2 JMP EID3
REDIMENSION IF NECESSARY redimensionieren, wenn nötig
SET UP AR2 aufsetzen
SET UP BOUNDS INFO Grenzinformationen aufsetzen
CHECK FOR SQUARE MATRIX auf quadratische Matrix prüfen
TRANSFER THE ZEROS Nullen transferieren
TRANSFER THE ONES Einsen transferieren
DONE fertig
EXECUTE REPLACEMENT Auswechseln ausführen
20605 021642 EMRP LDA B1+2 CHECK FOR COMPATIBLE DIMENSIONS
20606 063564
20607 062613 20610 164172
JSM COMP1 au^ kompatible Dimensionen prüfen
JSM CMR4 DO THE TRANSFERS ausführen JMP XEC4A,I
309884/1370
ORIGINAL «4SPiCTE0
■ι
7 ■:> η Γ) R
MATRIX BLOCK
1000+
1001 +
1002 + 1003 1004 1005+
1006 +
1007 + 1008
1ΟΟ9 1010 1011 1012+ 1013 +
COMMON ROUTINE TO TRANSFER B3«-AR2 gemeinsame Routine für Transfer B3-*-AR2
20611 022641 CMR1
20612 066617
LDA ERPX JMP COMM
COMMON ROUTINE TO TRANSFER B3-^B1 gemeinsame Routine für Transfer B3+-B1
20613 021641 CMR4 LDA B1+1 CHECK FOR REDUNANT TRANSFER auf redundanten Transfer prüfen
20614 011644
20615 170402
20616 022640
CPA B3+1
RET
LDA ETRX
COMMON ROUTINE MAT EXECUTION (EXCEPT MULTIPLY, INVERSE, &
PRINT)
gemeinsame Routine Matrix-Ausführung (ausgen. multiplizieren, invertieren und drucken)
1014* LDA PAGE ADDRESS OF S
Seitenadresse einer I
COMM STA 5OME
lout
1015+ JSM LDA
1016 031655 COMM STA
1017* 20617 020012 LDA T5
1018 20620 031646 STA .1
1019 20621 020012 C0M1 LDA T1
1020 20622 031652 EXA .1
1021 20623 0216 55 COM2 LDA Τ2
1022 20624 070016 CPA Τ5
1023 20625 021652 JMP
1024 20626 011654 ISZ Τ2
102 5 20627 066633 -•0 9 Τ4
1026 20630 045652 *+3
1027 20631 Τ2
1028 8 R
INITIALIZE OUTER LOOP äußere Schleife initiali sieren
INITIALIZE INNER LOOP innere Schleife initiali sieren
JSM TO DESIGNATED ROUTINE zur designierten Routine
/13 7 0
ORIGINAL INSPECTED
-4-79-
1035+ 1036+
20632 066624
20633 021646
20634 011653
20635 170402
20636 045646
20637 066622
20640 062642 ETRX
20641 062643 ERPX
20642 063600
20643 066464
JMP COM2 LDA T1 CPA T RET ISZ Τ1 JMP C0M1
JSM ++2 JSM ++2 JSM GET11 JMP STASH
Seite 181 MATRIX BLOCK 061217 ESMY JSM FETCH
1Ο42* 045472 ISZ TEMPS
1043 +
1044+·
121472 LDA TEMPS,I
1045 EXECUTE SCALAR MULTIPLY
skalare Multiplikation ausführ
063541 JSM INF01
1046 20644 020214 LDA AR 2 A
1047 20645 027734 LDB TF1A
1048 20646 170004 XFR
104 9 20647 021642 LDA B1+2
1050 206 50
1051 20651
1052 20652
20653
EVALUATE EXPRESSION Ausdruck auswerten
ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
1053 20654 063564 JSM C0MP1
1054 20655 022660 LDA ESMX
1055 20656 062617 JSM COMM
1056 20657 164172 JMP XEC4A,I
1057*
1058 20660 062661 ESMX JSM +-+1
1059 20661 063600 JSM GETI1
CHECK FOR COMPATIBLE DIMENSIONS
auf kompatible Dimensionen prüfen
DO THE SCALAR MULTIPLY skalar multiplizieren
3 09884/1370
20662 020214 48ü - LDA .FADA
1060 20663 027735 LDA HSS,
AR 2 A
JMP *+2
1061 20664 170004 LDB TF 2 A LDA .FSBA
1062 20665 023734 XFR STA T6
1063 20666 027735 LDA TF1A LDA B1+2
1064 20667 160220 LDB TF 2A
1065 20670 066464 JSM .FMPA,I
1066 JMP STASH
1067*
1068* EXECUTE ADD AND SUBTRACT
Addition und Subtraktion ausfü
1069*
1070 20671 020216 EADD
1071 20672 066674
1072 20673 020217 ESUB
1073 20674 031656
1074 20675 021642
CHECK FOR COMPATIBLE DIMENSIONS
auf kompatible Dimensionen prüfen
107 5 20676 011651 CPA B2+2
1076 20677 066701 JMP ++2
1077 20700 067567 JMP MERR8
107 8 20701 063564 JSM C0MP1
107 9 20702 022705 LDA EASX
1080 20703 062617 JSM COMM
1081 20704 164172 JMP XEC4Ä
1082*
1083 20705 062706 EASX JSM >f+1
1084 20706 063600 JSM GETH
1085 20707 020214 LDA AR 2 A
1086 20710 027734 LDB TF1A
1087 20711 170004 XFR
1088 20712 063602 JSM GETI2
1089 20713 020214 LDA AR 2 A
1090 20714 027735 LDB TF 2 A
1091 20715 170004 XFR
1092 20716 023734 LDA TF1A
DO THE ADD OR SUBTRACT addieren oder subtrahieren
309834/1370
OFHQINAL fNSPHCTED
1093 20717 027735
1094 20720 161656
1095 2O721 066464
- 481 -
LDB TF2A JSM T6,I JMP STASH
MATRIX BLOCK
1097* 1098+
1099* 11OO* 1101* 1 102 1103
EXECUTE TRANSPOSE Transponierung ausführen
. DOES A (1,J) A(J?I)
20722 121472 ETRN LDA TEMPS,I 20723 063541
20724 063563
JSM INF01
JSM C0MP2
ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
CHECK FOR COMPATIBLE
20725 031656 STA T6 DIMENSIONS
auf kompatible Dimensionen
prüfen
I
1105 20726 035655 STB T5
1106 20727 021642 LDA B1+2
1107 20730 025642 LDB B1+2
1108 20731 063565 JSM COMPR
1109 20732 011655 CPA T5
1 1 IO 20733 066735 JMP ++2
1111 20734 067567 JMP MERR8
1112 207 3 5 015656 CPB T6
1113 20736 066740 JMP ++2
1114 20737 067567 JMP MERR8
1115 20740 022743 LDA ETNX
1116 20741 062617 JSM COMM DO THE TRANSPOSE
transponieren
1117 20742 164172 JMP XEC4A,
1118
1119*
O 9 8 3 W 1 3 7 ι :
0BK3INAL INSPECTED
- 482- -
1120 20743 062744 ETNX JSM ++1
1121 20744 063600 JSM GETH
1122 20745 062747 JSM REVRS
1123 . 20746 062464 JSM STASH
1124 +
1125 20747 021646 REVRS LDA T1
1126 20750 025652 LDB T2
1127 20751 031652 STA T2
1128 207 52 035646 STB T1
1129 20753 021653 LDA T3
1130 20754 025654 LDB T4
1131 20755 031654 STA T4
1132 20756 035653 STB T3
1133 20757 170402 RET
SWAP INDEX POINTERS Index-Hinweismarke tauschen
MATRIX BLOCK
1135+ 1136* 1137* 1138+
1139+ 1140
EXECUTE MULTIPLY Multiplikation ausführen
B3(I,K)= SUM B1 (I,P)#B2(P,K) FOR P=1 TO N Summe für bis
20760 021642 EMUL LDA B1+2
CHECK FOR COMPATIBLE
DEMENSIONS
auf kompatible Dimensionen prüfen
1141 20761 025642 LDB B1+2 B1 IS (M,N)
ist
1142 20762 063565 JSM COMPR T6=N
1143 20763 031656 STA T6 T9=M
1144 20764 035661 STB T9
1145 20765 021651 LDA B2+2
1146 20766 025651 LDB B2+2 B2 IS (N,L)
ist
1147 20767 063565 JSM COMPR
1148 20770 015656 CPB T6
1149 20771 066773 JMP ++2 N1S NOT SAME
nicht das gleiche
1150 20772 067567 JMP MERR8
309884/ 1 370
1151 20773 031656 STA T6 T6=L
1152 20774 035660 STB T8 SAVE N sichern
1153 20775 063563 JSM COMP 2 B3 IS (M,L)
ist
1154 20776 015661 CPB T9
1155 20777 067001 JMP *+2
1156 21000 067567- JMP MERR8
1157 21001 011656 CPA T6
1158 21002 067004 JMP ■¥+2
1159 21003 067567 JMP MERR8
1160 21004 061256 JSM CLAR2 ZERO B3 Null
1161 21005 062611 JSM CMR1
1162 21006 021660 LDA T8
1163 21007 031653 STA T3 T3=N
1164 21010 020012 LDA .1 DO THE MULTIPLY
multiplizieren
1165 21011 031656 STA T6 T6=I
1166 21012 020012 EML3 LDA .1
1167 21013 031652 STA T2 T2=K
1168 21014 020012 EML4 LDA .1
1169 21015 031646 STA T1 T1=P
1170 21016 063602 EML5 JSM GET 12 B2(P,K)
1171 21017 020214 LDA AR2A
1172 21020 027735 LDB TF2A
1173 21021 170004 XFR
1174 21022 021653 LDA T3 SWAP N,L tause
1175 21023 025654 LDB T4
1176 21024 031654 STA T4 T4=N
1177 21025 035653 STB T3 T3=L
1178 21026 021656 LDA T6 PERMUTE P,K,I
permutieren"
1179 21027 025646 LDB T1
1180 21030 031646 STA T1 T1=I
1181 21031 021652 LDA T2
1182 21032 035652 STB T2 T2=P
1183 21033 031656 STA T6 T6=K
1184 21034 063600 JSM GETH B1 (I,P)
1185 21035 020214 LDA AR 2 A
1186 21036 027734 LDB TF1A
1187 21037 170004 XFR
309884/1-370
1188 21040 023734 LDA TF1A
1189 21041 027735 LDB TF 2 A
1190 21042 160220 JSM .FMP.
2 3 3 3 9 η 8
.FMPA,I CALL TO MULTIPLY
nach Multiplikation rufen
Seite 184 020214 MATRIX BLOCK SWAP L,N tauschen
1191 21043 027735 LDA AR2A'
1192 21044 170004 LDB TF2A T4=L
1193 21045 021653 XFR T3=N
1194 21046 025654 LDA T3 SWAP P,K tauschen
1195 21047 031654 LDB T4 .
1196 21050 035653 STA T4 T6=P
1197 21051 021652 STB T3 T2=K
1198 21052 025656 LDA T 2 B3(I, K)
1199 21053 031656 LDB T6
1200 21054 035652 STA T6
1201 '21055 063604 STB T2
1202 ■ 21056 020214 JSM GETI3
1203 21057 027734 LDA AR2A
1204 21060 170004 LDB TF1A ,1 CALL
nach
TO ADD
Addition rufen
1205 21061 023734 XFR
1206 21062 027735 LDA TF1A SWAP I,P tauschen
1207 21063 160216 LDB TF2A
1208 21o64 062464 JSM .FADA T6=I
1209 21065 021646 JSM STASH T1=P
1210 21066 025656 LDA T1 CHECK P prüfen
1211 21067 031656 LDB T 6
1212 21070 035646 STA T6
1213 21071 015653 STB T1
1214 21072 067076 CPB T3
1215 21073 045646 JMP *+3 CHECK K prüfen
1216 21074 067016 ISZ T1
1217 21075 021652 JMP EML5
1218 21076 011654 LDA T 2
1219 21077 067103 CPA T4
1220 21100 JMP ++3
309884/1370
ORIGINAL INSPECTED
1221 21 1O1 045652 ISZ T2 CHECK I
1222 21 1O2 067014 JMP EML 4 I DONE
1223 21 103 O21656 LDA T 6 prüfen
1224 21 104 011661 CPA Τ9 fertig
1225 21 105 164172 JMP XEC4A,
1226 21 1O6 045656 ISZ Τ6
1227 21 107 067012 JMP EML 3
MATRIX BLOCK
1229+ 123Ο+ 1231 + 1232+
1233 + 1234
1247 1248 1249 1250+
EXECUTE INVERSE Invertierung ausführen
USES GAUSS-JORDAN WITH ROW INTERCHANGE benutzt Gauß-Jordan mit Zeilenaustausch
21110 021412 EINV LDA LSTPT SET UP FOR INVERSE
EXECUTION
für Invertierungsausführung
aufsetzen
ESTABLISH INFORMATION VECTOR Informationsvektor aufbauen
CHECK FOR COMPATIBLE DIMENSIONS auf kompatible Dimensionen prüfen
1235 211 11 031656 STA T6
1236 211 12 121472 LDA TEMPS,I
1237 211 13 063541 JSM INF01
1238 211 14 021642 LDA B1+2
1239 211 15 063564 JSM C0MP1
1240 211 16 011653 CPA T3
1241 211 17 067122 JMP ++3
1242 211 20 160205 MERR5 JSM AERRA,I
1243 211 21 17676 DEC -66
1244+
1245 211 22 063127 JSM XIN2
1246 211 23 067736 JMP MER10
Matrix nicht quadratisch
CALL DET/INV EXECUTION
Det./Ing.-Ausführung rufen
21124 021656
21125 031412'
21126 164172
SINGULAR MATRIX
singuläre Matrix
LDA T STA LSTPT RESTORE LSTPT
JMP XEC4A,I
zurückstellen
30988A/1370
1251 + 1252
1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 2333308
21127 021412 XIN2 LDA LSTPT
21130 031676
21131 001654
21132 031412
21133 060554
21134 062613
21135 020020
21136 027731
21137 170004 21140 020012
21141 21142 21143 21144 21145 21146 21147 21150 21151 21152
031653 EIN1
070137
005676
074557
031646
031652
063604
020214
027732
170004
STA ADL ADA T STA LSTPT
JSM BHSTP+1 JSM CMR4
LDA ONE LDB DELA XFR LDA
STA T3 LDB A ADB ADL STA B,I STA T1 STA T2 JSM GETI3 LDA AR2A LDB BIGA XFR RESERVE INTERCHANGE VECTOR Austauschvektor reservieren
SAVE NEW LSTPT
neues LSTPT sichern
CHECK FOR OVERLAP auf Überlappung prüfen
COPY B1 INTO B3
Kopie B1 in B3
SET DEL =1.0 setzen
DO THE INVERSE
invertieren
T3=K
L(K)=K
BIG=A (K,K)
MATRIX BLOCK
21153 02373 2 EIN3 LDA BIGA
1274 21154 027734 LDB TF1A
1275 21155 170004 XFR
1276 21156 02163O LDA TF1
1277 21157 070131 SLA *+2,C
1278 21160 031630 STA TF1
1279 21161 063604 JSM GET 13
1280 21162 020214 LDA AR2A
1281 21163 027735 LDB TF 2A
1282 21164 170004 XFR
SEARCH FOR LARGEST ELEMENT nach größtem Element suchen
FORM ABS (BIG) bilden
0-9 88^/1370
1283 21165 020214 LDA HLDA BIG=A(I7K) T1
1284 21166 027733 LDB T3
1285 21167 170004 XFR TF 2 ADL
1286 21170 021634 LDA ++2,C FORM ABS (A(I7K)) bilden B7I L(K)=I
1287 21171 070131 SLA TF 2 T1 CHECK I prüfen
1288 21172 031634 STA TF1A T4
1289 21173 023734 LDA TF 2A EEIR
1290 21174 027735 LDB .FSBA,I ABS(BIG)-ABS(AI,K)) T1
1291 21175 160217 JSM AR2 EIN3
1292 21176 021754 LDA ■f+8
1293 21177 070411 SLA HLDA
1294 21200 023733 LDA BIGA
1295 21201 027732 • LDB
1296 21202 170004 XFR
1297 21203 021646 LDA
1298 21204 025653 LDB
1299 21205 005676 ADB
1300 21206 074557 STA
1301 21207 021646 LDA
1302 21210 011654 CPA
1303 21211 067214 JMP
1304 21212 045646 ISZ
1305 21213 067153 JMP
MATRIX BLOCK
1307
21214 025653 EEIR LDB T3
INTERCHANGE ROWS Zeilen austauschen
1308 21215 005676 ADB ADL T5=J
1309 21216 074517 LDA B,I
1310 21217 011653 CPA T3 T2=I
1311 21220 067261 JMP DCPV
1312 21221 031655 STA T5
1313 21222 020012 LDA .1
1314 21223 031652 STA T2
1315 21224 021653 EIN 4 LDA T3
1316 21225 031646 STA T1
30988A/1370
- 488 -
1317 21 226 063604
1318 21 227 021755
1319 21 230 070250
1320 21 231 021754
1321 21 232 072111
1322 21 233 070071
1323 21 234 031754
1324 21 235 020214
1325 21 236 027733
1326 21 237 170004
1327 21 240 021655
1328 21 241 031646
1329 21 242 063604
1330 21 243 021653
1331 21 244 031646
1332 21 245 062464
1333 21 246 023733
1334 21 247 024214
1335 21 250 170004
1336 21 251 021655
1337 21 252 031646
1338 21 253 062464
1339 21 254 021652
1340 21 255 011654
1341 21 256 067261
1342 21 257 045652
1343 21 260 067224
JSM GETI3 LDA AR2+1 SZA ++5 LDA AR2 SLA ++2,S SLA ++1,C STA AR2 LDA AR2A LDB HLDA, XFR
LDA T 5 STA T1 JSM GETI3 LDA T3 STA TI JSM STASH LDA HLDA LDB AR2A XFR
LDA T 5 STA T1 JSM STASH LDA T 2 CPA Τ4 JMP DCPV ISZ Τ2 JMP EIN4 FORM U- bilden HLD=-A(K,I)
A(K, I)=A(J, I)
A(J,I)=HLD
CHECK I prüfen
MATRIX BLOCK
21261 023732 DCPV LDA BIGA
1346
1347
1348
1349
1350
21262 027734
21263 170004
21264 021630
21265 070131
21266 031630
LDB TF1A XFR
LDA TF1 SLA *+2,C STA TF1 DIVIDE COLUMN BY MINUS
PIVOT VALUE
Spalte durch negativen
Eckwert dividieren
FORM ABS (BIG) bilden
309884/137
OFHQlNAL INSPECTED,
1351 1352 1353 1354 1355 1356
1357 1358 1359 1360 1361 1362 1363 1364
1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386
21267 023735
21270 170000
21271 027740
21272 035634
21273 024004
21274 035635
21275 21276 21277 21300 21301 21302 21303 21304
21305
21306
21307
21310
21311
21312
21313
21314
21315
21316
21317
21320
21321
21322
21323
213
21325
21326
21327
21330
21331
21332
023734 027735 160217 021754 070211 023731 170000 170402
021653
031652
020012
031646
021653 EIN6
011646
067332
063604
020214
027734
170004
023734
027732
160221
021755
070250
021754
072111
070071
031754
062464
021646 EIN7
LDA CLR LDB STB LDB STB
LDA LDB JSM LDA SLA LDA CLR RET
LDA STA LDA STA LDA CPA JMP JSM LDA LDB XFR LDA LDB JSM LDA SZA LDA SLA SLA STA JSM LDA
TF 2 A
EPSE TF 2 B10K TF2+1
TF1A
TF2A
.FSBA7I
DELA
2333308
TOLERANCE Toleranz
= 1E-48
SINGULAR MATRIX DETECTED singuläre Matrix ermittelt
T2=K
Τ1=Ι
EIN7 GETI3 AR2A TF1A
TF1A BIGA .FDVA7I AR2+1 FORM U-
bilden
++2,S #+1 ,C
STASH
A(I,K)=-A(I,K)/BIG CHECK I prüfen
3Q9884/ 1370
1387 21333 011654
1388 21334 067337
1389 21335 045646
1390 21336 067311
CPA Τ4 JMP REDU ISZ Τ1 JMP EIN6
2333303
Seite 189 020012 MATRIX BLOCK .1 REDUCE MATRIX reduzieren I HLD*A(K,J)
1392 21337 031646 REDU - LDA T1 T1=I
1393 21340 031655 STA T5 T5=I
1394 21341 021653 STA T3 T1=I
1395 21342 011646 EIN8 LDA T1
1396 21343 067411 CPA EIN11
1397 21344 031652 JMP T2 T2=K
1398 21345 063604 STA GETI3
1399 21346 Ο2ο214 JSM AR 2 A
1400 21347 027733 LDA HLDA HLD=A(I,K)
1401 21350 170004 LDB
1402 21351 020012 XFR .1
1403 21352 031652 LDA T2 T 2=J
1404 21353 021653 STA T3
1405 21354 011652 EIN9 LDA T2
1406 " 21355 067404 CPA EIN10
1407 21356 031646 JMP T1 T1=K
1408 21357 063604 STA GETI3
1409 21360 020214 JSM AR 2 A
1410 21361 027734 LDA TF1A
1411 21362 170004 LDB
1412 21363 023733 XFR HLDA
1413 21364 027734 LDA TF1A
1414 21365 160220 LDB .FMPA,
1415 21366 020214 JSM AR2A
1416 21367 027734 LDA TF1A
1417 21370 170004 LDB
1418 21371 021655 XFR T5
1419 21372 031646 LDA T1
1420 21373 0636ο4 STA GETI3
1421 21374 020214 JSM AR 2 A
1422 21375 LDA
0988/+/1370
ORIGINAL INSPECTED
- 45V —
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
21376 027735
21377 170004
21400 023734
21401 027735
21402 160216
21403 062464
LDB TF2A XFR
■ LDA TF1A LDB TF2A JSM .FADA,I JSM STASH
21404 021652 EIN10 LDA T2
21405 011654 CPA Τ4
21406 067411 JMP ++3
21407 045652 ISZ Τ2
21410 067354 JMP ΕΙΝ9
21411 021646 ΕΙΝ11 LDA Τ1
21412 011654 " CPA Τ4
21413 067417 JMP #+4
21414 045646 ISZ Τ1
21415 045655 ISZ Τ5
21416 067342 JMP ΕΙΝ8
A(I7J)=HLD^A(K,J)+A(I,J) CHECK J prüfen
CHECK I prüfen
MATRIX BLOCK
1441 21417 021653
1442 21420 031646
1443 21421 020012
1444 21422 031652 •1445 21423 021653 ΕΙΝ1
1446 21424 011652
1447 21425 067436
1448 21426 063604
1449 21427 020214
1450 21430 027734
1451 21431 170004
1452 21432 023734
1453 21433 027732
1454 21434 160221
1455 21435 062464
1456 21436 021652 ΕΙΝ13 LDA Τ2
LDA T3
STA T1
LDA .1
STA Τ2
LDA Τ3
CPA Τ2
JMP ΕΙΝ13
JSM GETI3
LDA AR2A
LDB TF1A
XFR
LDA TF1A
LDB BIGA
JSM .FDVA7I
JSM STASH
DIVIDE ROW BY PIVOT Zeile durch Eckwert dividieren
T1=K
T 2=J
A(K,J)=A(K,J)/BIG CHECK J prüfen
309884/1370
1457 21437 011654 CPA T4
1458 21440 067443 JMP *+3
1459 21441 045652 ISZ T2
1460 21442 067423 JMP EIN12
1461 21443 023731 LDA DELA
1462 21444 027732 LDB BIGA
1463 21445 160220 JSM .FMPA,I
1464 21446 020214 LDA AR 2 A
14 65- 21447 027731 LDB DELA
1466 21450 170004 XFR
1467 21451 023734 LDA TF1A
1468 21452 170000 CLR
1469 21453 024004 LDB B10K ■
1470 21454 035631 STB TF1+1
1471 21455 023734 LDA TF1A
1472 21456 027732 LDB BIGA
1473 21457 160221 JSM .FDVA,I
1474 21460 021653 LDA T3
1475 21461 031646 STA T1
1476 21462 03 1652 STA T2
1477 21463 062464 JSM STASH
1478 21464 021653 LDA T3
1479 21465 011654 CPA T4
1480 21466 067471 JMP ++3
1481 21467 070070 SIA ++1
1482 21470 067141 JMP EIN1
PRODUCT OF PIVOTS Eckwerte-Produkt
A(K,K)=1 ./BIG CHECK K prüfen
Seite 191 055653 MATRIX BLOCK
1484 21471 067474 EIN14 DSZ T3
1485 21472 064357 JMP +■+2
1486 21473 025653 JMP RETN2
1487 21474 ΟΟ5676 LDB T3
1488 21475 074517 ADB ADL
1489 21476 011653 LDA B,I
1490 21477 067471 CPA T3
1491 21500 JMP EIN14
FINAL ROW INTERCHANGE
DONE fertig
309884/ 1 370
21501 031655 43 7 2333308 T5=L(K) .
1492 21502 020012 STA T5
1493 21503 031646 LDA .1 T1=J
1494 21504 021653 EIN15 STA T1
1495 21505 031652 LDA T3 Τ2=Κ
1496 21506 063604 STA T2
1497 21507 020214 JSM GET 13
1498 21510 027733 LDA AR2A HLD=A(J,K)
1499 21511 170004 LDB HLDA
1500 21512 021655 XFR
15O1 21513 031652 LDA T5 Τ2=Ι
1502 21514 063604 STA T2
1503 21515 021755 JSM GET 13 FORM U- bilden
1504 21516 070250 LDA AR2 + 1
15o5 21517 021754 SZA ++5
1506 21520 072111 LDA AR2
1507 21521 070071 SLA ++2,S
1508 21522 031754 SLA ++1 ,C
1509 21523 021653 STA AR2
1510 21524 031652 LDA T3 Τ2=Κ
1511 21525 062464 STA T2 A(J,K)=-A(J,I)
1512 21526 021655 JSM STASH
1513 21527 031652 LDA Τ5 Τ2=Ι
1514 21530 023733 STA Τ2
1515 21531 024214 LDA HLDA
1516 21532 170004 LDB AR2A
1517 21533 062464 XFR A (J, I)=HLD
1518 21534 021646 JSM STASH CHECK J prüfen
1519 21535 011654 LDA Τ1
1520 21536 067471 CPA Τ4
1521 21537 045646 JMP ΕΙΝ14
1522 21540 067504 ISZ Τ1
1523 JMP ΕΙΝ15
MATRIX BLOCK
309884/ 1370
1526* SUBROUTINE TO EXTRACT ARRAY INFORMATION 2333 908 Unterprogramm zum Ausblenden der Feldinformationen
1527 + 1528* 1529*
1530* 1531* 1532
1534 1535
1549 1550*
LDA NAME INFORMATION
LDB INFORMATION VECTOR ADDRESS Informationsvektor-Adresse
JSM INFOV
21541 027726 INPO1 LDB B1A
21542 035657 INFOV STB T7 ALTERNATE ENTRY FOR B1 Eingang für B1 wechseln
TEMPORARY SAVE Zwischenspeicher sichern
21543 050115
21544 160177
21545 164340
21546 074517
21547 050040
21550 070042
21551 131657
21552 045657
21553 004132
21554 074517
21555 131657
21556 045657
21557 000132
21560 070517
21561 131657
21562 170402
AND B1777 JSM SSYMA,I SEARCH SYMBOL TABLE Symboltabelle suchen
JMP E40+1,I ERROR, NOT FOUND (UNDEFINED
OPERAND)
Fehler, nicht gefunden (Undefinierter Operand)
GET TYPE INFORMATION Typinformation holen
LDA B,I AND SAR STA T7,I
ISZ T7 ADB M1 LDA B,I
STA T7,I
ISZ T7 ADA M1 LDA A,I
STA T7,I RET ISOLATE TYPE-FIELD Typ-Feld isolieren
LOOK AT SIZE
auf Größe sehen
AND SAVE IT
und sichern
GET VALUE TABLE ADDRESS Werttabellenadresse holen
AND SAVE AS BASE ADDRESS und als Basisadresse sichern
GET ACTUAL DIMENSIONS tatsächliche Dimensionen holen
AND SAVE THEM und sichern
3098-84/1
1551* SUBROUTINE TO EXTRACT AND COMPARE DIMENSIONS OF TWO
MATRICES
Unterprogramm zum Ausblenden und Vergleichen der Dimensionen von zwei Matrizen
1552*
1553+ LDA DIMENSION INFORMATION ff1
1554* LDB DIMENSION INFORMATION #2
1555+ JSM COMPR
1556*
1557 21563 021645 COMP2 LDA B3+2
1558 21564 025645 COMP1 LDB B3+2
1559 21565 074057 COMPR CPA B EQUAL? gleich?
1560 21566 067571 . JMP *+3 yes ja
1561 21567 160205 MERR8 JSM AERRA,I INCOMPATIBLE DIMENSIONS
inkompatible Dimensionen
1562 21570 177673
1563 21571 074342
1564 21572 074070
1565 21573 035653
1566 21574 050105
1567 21575 070070
1568 21576 031654
#= der Spalten sichern
1569 21577 170402 RET
Seite 193 MATRIX BLOCK
1571*
1572* SUBROUTINE TO OBTAIN AN ARRAY ELEMENT Unterprogramm um Feldelement zu erhalten
1573+
1574+ ELEMENT PLACED IN AR2
1575*
1576* ROW & COLUMN VALUES ARE IN T1 AND T2 Zeilen- und Spaltenwerte sind in T1 und T2
1577*
1578* JSM GETI(N)
1579*
DEC -69 SAVE # OF ROWS
SBR 8 ff der Zeilen sichern
SIB *+1
STB T3
SAVE £ OF COLUMNS
AND B377
SIA *+1
STA T4
309884/1370
1580 1581 1582 1583 1584 1585 1586
1587 1588
1589
1590 1591 1592 1593 1594 1595 1596 1597
21600 027726 GETI1 LDB Β1Α
21601 067605 JMP *+4
21602 027727 GETI2 LDB Β2Α
21603 067605 JMP -Κ+2 216Ο4 027730 GETI3 LDB Β3Α
21605 063705 JSM WHERE
21606 074517 LDA Β,Ι
21607 010062 21610 164337
21611 121657
21612 072110
21613 067620
21614 010012
21615 164231
21616 074537 ■21617 164227
21620 074117 GTRL
21621 064445
CPA FLGBT JMP Ε40,Ί
LDA Τ7,Ι
RZA *+2 JMP GTRL CPA JMP SPLFA,I LDB Β,Ι JMP FXFLA,I LDA B JMP XFAR2+1 CHECK IF UNDEFINED prüfen, wenn Undefiniert
ERROR, NOT DEFINED
(NO VALUE ASSIGNED) Fehler, nicht definiert (kein Wert zugeordnet)
FIND TYPE OF ARRAY Feldtyp finden
REAL reell
SPLIT gespalten
INTEGER Ganzzahl
MATRIX BLOCK
1599* 1600+
1601*
SUBROUTINE TO REDIMENSION AN ARRAY Unterprogramm zum Feld-Redimensionierung
21622 021472 REDIM LDA TEMPS
21623 011421 CPA PRADD
21624 170402 RET
21625 063673 REDIR JSM MCKS
21626 035646
21627 024012
STB T1 LDB GET ROW DIMENSION
Zeilendimension holen
SAVE IT sichern
LOAD DEFAULT COLUMN
COUNT
unterlassene Spaltenzählung laden
30988A/1370
1608 21630 121472 LDA TEMPS,I
1609 21631 050065 AND OPMSK
1610 21632 010121 CPA B4000
1611 21633 063673 JSM MCKS
1612 21634 045472 ISZ TEMPS
1613 21635 035652 STB T2
1614 21636 021646 LDA T1
1615 21637 061201 JSM IMPY
1616 21640 031657 STA Τ7
1617 21641 025644 LDB Β3+1
1618 21642 004133 ADB Μ2
1619 21643 074517 LDA B,I
1620 21644 070137 LDB A
1621 21645 050105 AND Β377
1622 21646 074342 SBR 8
1623 21647 070070 SIA #+1
1624 21650 074070 SIB *+1
1625 21651 061201 JSM IMPY
1626 21652 070056 CMA
1627 21653 001657 ADA Τ7
1628 21654 070112 SAM *+2
1629 21655 067703 JMP MERR7
1630 21656 021646 LDA Τ1
HOW MANY DIMENSIONS? wie viele "Dimensionen?
1631 21657 025652 LDB T2
1632 21660 031653 STA T3
1633 21661 035654 STB T4
1634 21662 000132 ADA M1
1635 21663 004132 ADB M1
1636 21664 070404 SAL 8
SAVE COLUMN DIMENSION Spaltendimension sichern
RECALL ROW DIMENSION Zeilendimension rückrufen
SAVE NEW PRODUCT neues Produkt sichern
RECALL FORMAL DIMENSIONS formale Dimensionen rückrufen
RETURNS WITH FORMAL PRODUCT kehrt mit formalem Produkt zurück
COMPARE WITH NEW PRODUCT mit neuem Produkt vergleichen
NEW >OLD? neu>alt? YES, ERROR ja, Fehler NO, ESTABLISH NEW ACTUAL
DIMENSIONS
nein, neue tatsächliche Dimensionen aufstellen
FIRST INTO T3 &T4 erste in T3 & T4
THEN PACK THE DIMENSIONS dann Dimensionen packen
21665 074217
IOR B
30 988 4/ 1 37 0
ORIGINAL INSPECTED
1638
163 9 1640
1641 1642 1643 +
1644+ 1645
1648 1649 1650 1651 1652 1653
21666 025644 LDB B3+1
21667 004132 ADB M1
21670 074557 STA B,I
21671 031645 STA B3+2
21672 170402 RET
GET VALUE TABLE ADDRESS Werttabellen-Adresse holen
STASH PACKED DIMENSIONS gepackte Dimensionen STASH
21673 061217 MCKS JSM FETCH
21674 160225
EVALUATE SUBSCRIPT EXPRESSION Index-Ausdruck auswerten
JSM FLTRA,I CONVERT TO ROUNDED INTEGER in gerundete Ganzzahl konvertieren
21675 067703
21676 21677 21700 21701 21702 21703
074117 00013 070152 000157 071412 160205
JMP MERR7
LDA B ADA M1 SAM ++3 ADA M256 SAM MCKS-1 INTEGER OVERFLOW Ganzzahl Überfüllung
YES ja
>256?
21704 177675
MERR7 «JSM AERRA,I NEW DIMENSIONS IMPOSSIBLE
neue Dimensionen unmöglich
DEC -67
MATRIX BLOCK
1656* 1657 +
1658+ 1659+
1660* 1661 +
1662*
SUBROUTINE TO COMPUTE ADDRESS OF A MATRIX ELEMENT Unterprogramm zur Berechnung der Adresse eines Matrix-Elements
ROW & COLUMN VALUES ARE IN T1 AND T2 RESPECTIVELY Zeilen- und Spaltenwerte sind in T1 bzw. T2
LDB INFORMATION VECTOR ADDRESS Informationsvektor-Adresse
JSM WHERE Wo
309884/1370
1663* 1664+
1665* 1666*
1667* 1668
1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684
RETURNS WITH ADDRESS IN (A) & (B) kehrt mit Adresse in (A) & (B) zurück
ADDRESS = BASE +SIZE *(T4*(T1-1) +(T2-1)) Adresse Basis Größe
21705 035657 WHERE STB T7
21706 21707 21710 21711 21712 21713 21714 21715 21716 21717 21720 21721 21722 21723 21724 21725
021646 000132 025654 061201 OO1652 OOO132 125657 O7611O O7O7O4 014012 070744 025657 074070 074417 070137 17O4O2
LDA T1
ADA M1
LDB T4
JSM IMPY
ADA T2
ADA M1
LDB T7,I
RZB *+2
SAL 2
CPB .1
SAL 1
LDB T7
SIB *+1
ADA B,I
LDB A
RET
TEMPORARY SAVE
Zwischenspeicher sichern
RETURNS WITH T4#(T1-1) kehrt zurück mit
Seite 196 MATRIX BLOCK B1A Matrix- B1
1686* B2A B2
1687* MATRIX CONSTANTS B3A DEF B3
1688-K DELA DEF DEL
1689 21726 001640 BIGA DEF BIG
1690 21727 001647 HLDA DEF HLD
1691 21730 ΟΟ1643 TF1A DEF TF1
1692 21731 001662 DEF
1693 21732 031666 DEF
1694 21733 001672
1695 21734 001630
309884/1370
1696 1697 + 1698
1699 1700+ 1701
SbI
2173 5 001634 TF2A DEF TF2
21736 16020 MER10 JSM AERRA,I SINGULAR MATRIX
singuläre Matrix
21737 177674
DEC -68
21740 150000 EPSE OCT 150000 EXPONENT FOR SINGULARITY
TOLERANCE
Exponent für Singulaitäts-, Toleranz
1702 00025 000000 LEFT EQU 21'
1703 + OOOOOO
1704+ 000000
1705 01640 OOOOOO ORG 1 64oB
1706+ OOOOOO
1707 01640 OOOOOO B1 BSS 3
1708 01643 OOOOOO B3 BSS 3
1709 01646 OOOOOO T1 NOP
1710 01647 OOOOOO B2 BSS 3
1711 01652 OOOOOO T2 NOP
1712 01653 OOOOOO T3 NOP
1713 01654 OOOOOO T4 NOP
1714 01655 OOQOOO T5 NOP
1715 01656 OOOOOO T6 NOP
1716 01657 OOOOOO T7 NOP
1717 01660 OOOOOO T8 NOP
1718 01661 T9 NOP
1719 01662 DEL BSS 4
1720 01666 BIG BSS 4
1721 01672 OOOOOO HLD BSS 4
1722 01676 OOOOOO ADL NOP
1723 +
1724 01630 070053 ORG 1 63OB
1725+
172.6 01630 TF1 BSS 4
1727 01634 TF 2 BSS 4
1728+
1729 01640 SAP ++1
B1 & B3 MUST COME FIRST
muß zuerst kommen
CONVENIENT "NOP" FOR REFERENCE
geeignetes "NOP" für Referenz
30988 4/1370
OFHQlNAL INSPECTED
2333303
Seite 197 MATRIX BLOCK
1731 21766 ORG 21766B
1732+
1733 21766 176455 ABS EMATR-* MAT READ EXECUTION
Matri'x-Lese-Ausführung
1734 21767 176347 ABS EMATP-* MAT PRINT EXECUTION
Matrix-Druck-Ausführung
1735- 21770 176500 ABS EREDM-+ REDIM EXECUTION Ausführung
1736 21771T7651O ABS EMATX-* MAT ARITHMETIC EXECUTION
Matrix-arithmetische Ausführung
1737 21772 000000 NOP ++CHECKSUM WORD++
Summenprobe Wort
1739 21773 176030 ABS NFOPT-+ NON-FORMULA OPERATOR TABLE
Nicht-Formel-Operator-Ta-
belle
1740 21774 176041 ABS FUNCT-* FUNCTION-NAME TABLE
Funktionsnamentabelle
1741 21775 176042 ABS BN777-* COMMAND-NAME TABLE
(NULL TABLE)
Befehlsnamen-Tabelle
(Null-Tabelle)
1742 21776 176OD6 ABS SYSNT-+ STATEMENT-NAME TABLE
Anweisungs-Namen-Tabelle
1743 21777 006000 OPCOD OCT 6000 MAT 0PC0DE=3
Matrix-0P-Code=3
1744 END
+ Np ERRORS*
keine Fehler
309884/1370
- 502 -
STRING OPTION BLOCK STRING-Wahl-Block
0501 0502+ 0503 0504 + 0505+
0506 +
0507 +
0508 + 0509
0510 0511 0512 0513 0514 0515+
0516 +
0517 +
0518 + 0519+
0520+ 0521 + 0522*
0523 +
0524 + 0525+ 0526* 0527
22000
LST
ORG 2200OB
LINKS FOR THE MAIN SYSTEM ANÖ
OTHER OPTION BLOCKS
Verbindungen für die Hauptsystem- und andere Wahlblöcke
22000 066006 ID1
22001 066034
22002 067357
22003 067421
22004 066610
22005 067334
JMP MSL
JMP SVARO JMP GADD JMP PSTR JMP TRSTR JMP .FDA1 MAIN SYSTEM LINK Hauptsystem-Verbindung
EVALUATE A STRING VARIABLE
FOR THE PRINT ROUTINE
STRING-Variable auswerten für Druck-Routine
UPON EXIT: auf Ausgang:
1B=STRING STARTING ADDRESS STRING-Startadresse A=STRING LENGTH STRING-Länge
RETURN TO P+2 zurück nach P+2
22006 063357 MSL JSM GADD
22007 024133
22010 063421
22011 035471
22012 074117
22013 025742
LDB M2
JSM PSTR STB L2T2 LDA B
LDB TMP2 GET STRING ADDRESS STRING-Adresse holen
EVALUATE SOURCE auswerten Quellen-
STRING STRING
PUT COUNT IN A Zählung in A geben
CHAR POINTER IN B s Zeichen-Hinweismarke in B
30988 Λ/1370
0533
0534* 0535* 0536*
Q537*
60Γ
22014 064357
JMP RETN2 RETURN TO P+2
LET STATEMENT SYNTAX LET-Anweisungs-Syntax zurück nach P+2
LOOK FOR SOURCE STRING = nach Wuellen-STRING=sehen
O538# 22015 062340 LETS JSM SAVEP JSM SVARO VARIABLE?
0539 22016 062034 JSM SVARO JMP QUOCK NO nein
0540 22017 066064 JMP ABORT JMP E20-1,1 NUMERIC numerisch
0541 22020 066064 JMP ABORT JMP EOST STRING
0542 22021 060463 JSM SYMC1 =?
0543 22022 012020 OCT 12020 NO nein
0544 22023 164325 JMP E30,I
0545
0546+
0547*
0548* LOOK
nach
FOR A DESTINATION STRING
Bestinunungs-STRING sehen
0549*
0550* VARIABLE?
0551* 22024 062034 LTSYM NO, LOOK FOR QUOTE FIELD
nein, nach Quotenfeld
sehen
0552 22025 066030 NUMERIC numerisch
0553 22026 164312 YES, DEMAND END
0554 22027 065151
0555
ja, Ende verlangen
0556
22030 04 5706 QUOCK ISZ SBPTR
Seite 199 160245 STRING OPTION BLOCK
STRING-Wahl-Block
0557 22031 065151 JSM GTSTA,I G
0558 22032 JMP EOST .
0559*
0560*"
^0988 4/1370
STRING OPTION BLOCK STRING-Wahl-Block
0562* 0563* 0564* 0565* 0566* 0567* 0568* 0569*
0570*
0571* 0572* 0573 0574 0575 0576
0578
0580
SVARO SUBROUTINE
EXIT CONDITIONS: Ausgangsbedingungen:
RETURN TO
zurück nach:
P+1 P+2 P+3 STRING VARIABLE
NO VARIABLE FOUND keine Variable gefunden
NUMERIC VARIABLE numerische Variable
22033 22034 2203 22036 22037 22040 22041
062340 061140 170402 010077 066041 064357 045644
22042 163610
0581 22043 060513
0582 22044 064356
0583 22045 020125
0584 22046 131706
0585 22047 020026
0586 22050 031710
0587 22051 160202
0588 22052 060463
0589 22053 012001
0590 22054 066056
JSM SAVEP SVARO JSM LTR RET
CPA B44 JMP *+2 JMP RETN2 ISZ ST+4
JSM STRI2,I
JSM LPCK JMP RETN3 LDA LBOP STA SBPTR,I
LDA STA MSFLG
JSM FSCA,I JSM SYMC1
OCT 12001 JMP SAVE PAGE Seite sichern LETTER? Buchstabe?
NO nein
YES ja
NO nein
SET STRING OCCURRED FLAG "STRING stattgefunden" -Marke setzen
STORE OPERAND
speichern
(?
NO nein
RECORD RIGHT BRACKET rechte Klammer aufnehmen
ENABLE LOGICL=
logisches =freigeben
GET FIRST INDEX
ersten Index holen
LOOK FOR A COMMA nach Komma sehen
NOT FOUND nicht gefunden
0591 22055 160202 JSM FSCA,
0592 22056 O6O534 JSM RPCKE
0593 22057 024123 LDB RBOP
0594 22060 055706 DSZ SBPTR
0595 22061 135706 STB SBPTR
0596 22062 045706 ISZ SBPTR
0597 22063 064356 JMP RETN3
DEMAND RIGHT PAREN rechte Klammer verlangen
rechte Klammer aufnehmen
YES ja
STRING OPTION BLOCK STRING-Wahl-Block
0599+ 0600+ 0601 +
0602+ 0603 + 0604 0605
0606 0607 0608 0609" 0610
0611 0612
0613 0614 0615
0616 0617
0618
THIS ROUTINE RETURNS SYNTAX CONTROL TO OTHER
OPTION BLOCKS AND THE MAIN SYSTEM
Diese Routine führt Syntax-Kontrolle zu anderen Wahlblöcken und zum Hauptsystem zurück
22064 061064 ABORT
22065 061055 AB3
22066 025416
22067 074151
22070 024233
22071 066077
22072 060750
22073 066075
22074 066065
22075 024233
22076 074070
22077 03 5706 AB1
22100 024132
22101 035473
22102 025640
JSM GFRST+2 JSM GNEXT
LDB MODE SLB ++3 LDB SBUFA JMP AB1 JSM DIGCK
JMP ++2 JMP ABORT+1
LDB SBUFA SIB ++1 STB SBPTR
LDB M1 STB TEMP
LDB ST GET NEXT SYNTAX CHAR nächstes Syntax-Zeichen holen
CALC MODE? Rechenbetrieb?
YES ja
CHAR IS DIGIT?
ist Zeichen Ziffer?
NO nein
YES, LOOK FOR MORE ja, nach weiteren sehen
RESET SYNTAX BUFFER POINTER Syntax-Puffer-Hinweismarke nullstellen
SEARCH FOR STATEMENTS nach Anweisungen suchen
309884/ 1
0619
0626
22103 035717
0620 22104 074742
0621 22105 035714
0622 22106 03 5711
0623 22107 015643
0624 22110 070742
0625 22111 163602
sos
STB NUM RESTORE PAGE
Seite zurückstellen
SBR 16
STB SFLAG
STB DFLAG
22112 066112
CPB ST+3
SAR 16
JSM SALT,I
JMP *
IMPLIED LET? implizierten LET?
SEARCH ALL PAGES alle Seiten suchen
CHECKSUM WORD Summenprobe Wort
0627 22113 167601 JMP SYNTAX IFSYN JSM STMTA,I VARIABLE?
O628# IF-Anweisungs-Syntax JMP NO nein
0629+ JMP NUMERIC numerisch
0630+ 22114 062033 LDB
0631* IF STATEMENT 22115 066064 ADB
22116 066064 ADB
0632+· 22117 026146 JSM RELOP?
0633 22120 005640 JMP SVARO-1 NO nein
0634 22121 005640 ISZ ABORT YES ja
0635 22122 060546 SAR ABORT
0636 22123 066143 STA GTEA
0637 22124 045706 IF1 JSM ST VARIABLE?
0638 22125 070742 JMP ST NO nein
0639 22126 131706 JMP STEXP NUMERIC numerisch
0640 22127 062034 JMP IFERR YES ja
0641 22130 066133 IF3 JSM SBPTR STRING CONSTANT?
0642 22131 066143 16
0643 22132 066134 SBPTR,I
0644 22133 160245 SVARO
0645 IF 3
0646 IFERR
0647 IF 2
0648 GTSTA.I
0649 22134 026145 IF2 LDB THENA
0650 22135 005640
0651 22136 005640
0652 22137 060546
STRING-Konstante?
YES, DEMAND THEN ja, "dann" verlangen
ADB ST 7 AND STORE AS EXPANDED O als erweiterten Opera
ADB ST OPERATOR speichern
JSM STEXP und
tor
)88 hl 1 3
0653 22140 164317
0654 22141 060664
S03
JMP E2O+4,I NOT FOUND
nicht gefunden
JSM LNUM DEMAND A SEQUENCE NUMBER Folgezahl verlangen
Seite 202 065151 062340 STRING OPTION BLOCK
STRING-Wahl-Block
EOST STRING IF ERROR
wenn Fehler
SAVEP SET IMPLIED LET FLAG
Marke für impliziertes LET
setzen
0655 22142 160205 031643 JMP AERRA,I ST+3
0656 22143 177672 055400 IFERR JSM -70 THEN+THEN-ID-ID BADDR
0657 22144 174722 061055 DEC GTE+GTE+1-ID-ID GNEXT
0658 22145 174727 055400 THENA ABS BADDR LETTER? Buchstabe?
0659 22146 060752 GTEA ABS LETCK NO, TRY IMPLIED DISP
nein, impliziertes DISP ver
suchen
0660* 066167 ILET1+1 SAVE POINTERS
Hinweismarken sichern
0661 + 060626 , LET SYNTAX
DISP, LET-Syntax
SAVBP VARIABLE?
0662* IMPLIED DISP
Implizierte
062034 SVARO NO nein
0663 + 066166 IMPLT JSM ILET1 NUMERIC numerisch
0664/ 22147 066166 STA ILET1 STRING
0665 22150 060463 DSZ SYMC1 =?
0666 22151 012020 JSM 12020 NO nein
0667 22152 066166 DSZ ILET1 YES ja
0668 22153 O66O24 JSM LTSYM RESTORE POINTERS
Hinweismarken rückstellen
0669 22154 060640 JMP RESBP STORE speichern
0670 22155 024123 J.SM PRTOP
0671 22156 JSM
0672 22157 JMP
0673 22160 JMP
0674 22161 JSM
0675 22162 OCT
0676 22163 JMP
0677 22164 JMP
0678 22165 ILET1 JSM
0679 22166 LDB
0680 22167
0681
309884/1370
0682 22170 055706 PRTOP DSZ SBPTR CODE FOR Code für
0683 22171 135706 STB SBPTR, I- IMPLIED LET
impliziertes LET
0684 22172 045706 ISZ SBPTR
0685 22173 025416 LDB MODE
0686 22174 074111 SLB NSTMT SKIP IF PROG MODE
überspringen, wenn Programm
betrieb
0687 22175 062227 JSM PRNTS PRINT STATEMENT?
Druckanweisung?
0688 22176 066200 NSTMT JMP ILET2 NO nein
0689 22177 066213 JMP PRIN1 YES ja
0690 22200 025644 ILET2 LDB ST+4 STRING
0691 22201 074110 SZB ++2 OCCURRED? stattgefunden?
0692 22202 164274 JMP E5,I YES ja
0693 22203 066064 JMP ABORT
0694 00123 EQU B12K
0695*
0696*
STRING OPTION BLOCK STRING-Wahl-Block
0698* 0699+ 0700/ 0701 +
0702* 0703
0707 + 0708*
WRITE STATEMENT SYNTAX Anweisungssyntax schreiben
22204 160265 WRTS
22205 060534
22206 055400
22207 055706
JSM ΙΟΗΕΑ,Ι GET DEVICE AND FORMAT Gerät und Format holen
JSM RPCKE
DSZ BADDR DSZ SBPTR
22210 062340 PRINS JSM SAVEP
22211 062227 JSM PRNTS 222.12 066216 JMP PRIN2
GET RIGHT PAREN rechte Klammer holen
PRINT SYNTAX? Synt*K drucken?
309884/1370
0712
0713 0714 0715 Ό716
0717 0718 0719* 0720* 0721* 0722+
0723* 0724* 0725* 0726* 0727
0728 0729 0730
0731 0732 0733
0734 0735 0736 0737 0738 0739 0740
0741 0742 0743 0744
0745
22213 025644 PRIN1 LDB ST+4
22214 O7425O SZB ABADD
22215 065151 JMP EOST •22216 025644 PRIN2 LDB ST+4
22217 074110
YES, STRING OCCURRED? ja, STRING stattgefunden?
NO ,nein YES ja
SZB *+2 STRING OCCURRED?
STRING stattgefunden?
22220 164277 JMP E5+3,I YES ja
22221 066064 ABADD JMP ABORT NO nein
PRINT STATEMENT SYNTAX Anweisungssyntax drucken
22222 010043 PRSYN CPA B42
22223 066237
22224 060461
22225 012001
22226 066233
22227 024132 PRNTS
22230 035712
22231 061066
22232 066300
22233 010043 PR2
22234 Ο66236
22235 066247
22236 045706
22237 160245
22240 010031
22241 064357
22242 074742
22243 135706
22244 024132
JMP PR2+4 JSM SYMC2 OCT 12001
JMP PR2
LDB M1
STB PFLAG
JSM GETSK JMP PR1
CPA B42
JMP *+2
JMP PR3
ISZ SBPTR JSM GTSTA,I
CPA EOL
JMP RETN2 SBR 16
STB SBPTR,I
LDB M1 QUOTE FIELD? Quotenfeld?
YES ja NO nein
COMMA OR SEMICOLON? Komma oder Semikolon?
NO nein
ENABLE FORMULA AND TAB Formel und Tabelle frei geben
END OF LINE Zeilenende QUOTE? YES ja NO nein
RECORD STRING CONSTANT STRING-Konstante aufnehmen
EOL? YES ja
CLEAR OUT NEXT WORD nächstes Wort auslöschen
309884/137Π
0746 22245 035712 St?
STB
PFLAG TAB OR F
Tabelle
laubt
0747 22246 066222 JMP PRSYN
0748 22247 045712 PR3 ISZ PFLAG
0749 22250 170402 RET I TAB?
0750 22251 027603 LDB TABA NO nein
0751 22252 160175 JSM TSRHA, YES ja
0752 22253 066263 JMP PR4
0753 22254 070544 SAL 5
STRING OPTION BLOCK STRING-Wahl-Block
0754
22255 040067
IOR TYPFL SET PRE-DEFINED FUNCTION
FLAGS
vordefJiierte Funktionsmarke
setzen
0755 22256 060454 PR4 JSM SBPUD-2 STORE Speichern
o756 22257 024123 LDB RBOP
0757 22260 135706 STB SBPTR,I
0758 22261 160202 JSM FSCA,I GET TAB FORMULA
Tabellenformel holen
0759 22262 066275 JMP PR5
0760 22263 055400 DSZ BADDR BACK UP POINTER
Hinweismarke umdrehen
0761 22264 021400 LDA BADDR
0762 22265 031645 PR6 STA ST+5 SAVE BADDRR sichern
0763 22266 062034 JSM SVARO VARIABLE?
0764 22267 066272 JMP PR6 NO nein
0765 22270 066272 PR 5 JMP #+2 NUMERIC numerisch
0766 22271 066275 JMP PR5 STRING
0767 22272 021645 LDA ST+5
0768 22273 031400 PR1 STA BADDR RESTORE BADDR zurückstellen
0769 22274 160202 JSM FSCA,I FETCH FORMULA Formel holen
0770 22275 010031 CPA EOL EOL?
0771 22276 064357 JMP RETN 2
0772 22277 066222 JMP PRSYN NO nein
0773 22300 045706 ISZ SBPTR
309884/ 1370
- 544·
$43
0774 22301 064357 JMP RETN 2 READS JSM SAVEP DATA STATEMENT SYNTAX
Daten-Anweisungs-Syntax
062340 DATAS JSM SAVEP VARIABLE?
0775* JSM SVARO 045706 ISZ SBPTR
0776* JMP READ 3 22321 061156 JSM CONST NUMERIC numerisch
0777* READ
Lese-
JMP READ1 22322 066331 JMP DATA1 COMMA? Komma?
0778* READ 2 JSM COMCK 22323 160244 JSM NUMOA,I NO nein
0779 22302 JMP PRIN1 22324 060504 DATA2 JSM COMCK YES ja
0780 22303 AND INPUT STATEMENT SYNTAX
und Eingabe-Anweisungs-Syntax
JMP READS+1 22325 066213 JMP PRIN1
0781 22304 READ1 JSM VAR1,I 22326 066322 JMP DATAS+1 CONSTANT STORAGE
Konstante speichern
0782 22305 062340 JMP * 22327 045644 DATA1 ISZ ST+4
0783 22306 062034 JMP READ 2 22330 010043 CPA B42
0784 22307 066315 JMP READ 2 22331 066335 JMP *+2
0785 223ΊΟ 066311 READ 3 LDB ST+4 22332 164316 JMP E2O+3/I STRING OCCURRED?
STRING vorgekommen?
0786 22311 060504 SZB *+2 22333 YES ja
0787 22312 066213 JMP E25+1,1 22334 NO nein
0788 22313 066303 JMP ABORT
0789 22314 163600
07 90 22315 066312
0791 22316 066306
0792 22317 066306
0793 22320 025644
0794* 074110 LOOK FOR A NUMBER
nach Zahl sehen
0795* 164321 NOT FOUND nicht ge
0796* 066064 FOUND, STORE
gefunden, speichern
0797* COMMA? Komma?
0798 NO nein
0799
0800
0801 QUOTE?
0802 YES ja
0803 NO nein
0804
0805
0806
0807
0808
0809
309884/1370
Seite 205 160245 !fa Δ0 0 0ΌΌ0
STRING OPTION BLOCK
STRING-Wahl-Block
STRING CONSTANT?
STRING-Konstante?
0810 22335 066326 JSM GTSTA,I YES ja
0811 22336 066064 JMP DATA2 NO, ERROR
nein Fehler
0812 22337 JMP ABORT
0813 +
0814+· 021717
0815 22340 031640 SAVEP LDA NUM-
0816 22341 031643 STA ST . RESET IMPLIED LET FLAG
Marke für impliziertes L
nullstellen
0817 22342 070742 STA ST+3
0818 22343 031644 SAR 16 . RESET STRING OCCURRED
0819 22344 STA ST+4 FLAG
Marke für "STRING vorge
kommen" setzen
0820 22345 170402 046105 062450 RET Nicht-Formel-Operat N, OPCODE 15
0821 + 047215
0822+ NON-FORMULA 052110 OPERATORS 1 ,LE
0823 + 042516 47215 20, <
0824 22346 15OO74 LEN ASC 2,THEN = ,2
0825 22347 036602 OCT
0826 22350 037075 THEN ASC 150073 3,#
22351 101443 36602 4,<
0827 22352 102074 GTE OCT 1,>= >,4
0828 22353 037204 OCT 101443 = ,5
0829 22354 036605 ASC 102074 <,6
0830 22355 036206 OCT 37204 >,7
0831 22356 037307 OCT 36605
0832 22357 OCT 36206
0833 22360 OCT 37307 LEN-Anweisung ausfti
0834 22361 EXECUTE LEN OCT
0835 22362 OCT
0836+ CKMOD
0837 + 22363
0838+ STATEMENT
0839+
0840*
0841 ELEN JSM
309884/.1370
0843 0844 0845* 08-46*
0847* 0848* 0849
0850 0851 0852 0853
0854 0855 0856
0857 0858 0859
0860 0861 + 0862* 0863 0864
2'2364 160227 ELEN1 JSM FXFLA, I PUT NUMBER IN AR2
Zahl in AR2 geben
22365 045472 ELEN2 ISZ TEMPS
22366 170402 RET
CHECK LEN FUNCTION SYNTAX LEN-Funktionsyntax prüfen
22367 062536 LENS JSM GVAR GET FIRST PARAMETER ersten Parameter holen
22370 066446
22371 066446
22372 025646 LENS1
22373 135472
22374 060534
22375 025651
22376 035644
22377 064356
22400 045706 LENS2
22401 160245
22402 066372
JMP JMP LDB STB
JSM LDB STB
JMP ISZ JSM LENER LENER PTR2
TEMPS,I
RPCKE TEMP 6 ST+4
RETN3 SBPTR GTSTA,I
NO nein
FLAG FOR FSC Marke für FSC
RESTORE STRING
OCCURRED FLG Marke für "STRING"vorgekommen" zurückstellen
YES ja
SEEK STRING CONSTANT STRING-Konstante suchen
JMP LENS1
22403 021416 EINDX LDA MODE
22404 070113 SAP
SYNTAX MODE? Syntax-Betrieb
Seite 206 066462 STRING OPTION BLOCK
STRING-Wahl-Block
INDXS YES ja
0865 22405 062550 JMP GPTRS
0866 22406 035640 JSM CPO
0867 22407 031646 STB PTR2
0868 22410 024133 STA M2
0869 22411 063421 LDB PSTR
0870 22412 076110 JSM *+2 NULL STRING?
0871 22413 066434 RZB EIND 3 YES ja
0872 22414 JMP
30988 4/1370
333908
0873 22415 4 22446 035647 EIND 2 STB TMPRE MODE
0874 22416 22447 031644 STA INTMP *+3
0875 22417 025640 LDB CPO RSPTR
0876 22420 035654 STB TNULL LENS
0877 22421 22450 027645 LDB PTR1A TEMPS
0878 22422 22451 061041 JSM GETCH TEMPS,I
0879 22423 22452 031641 STA CP1
0880 22424 22453 027731 LDB TMP 2 A
0881 22425 22454 061041 JSM GETCH
0882 22426 22455 011641 CPA CP1
0883 22427 066436 JMP EIND1
0884 22430 021646 EIND 3 LDA PTR2
0885 22431 031645 STA PTR1
0886 22432 055647 EIND1 DSZ TMPRE
0887 22433 066417 JMP EIND2-2
0888 22434 074742 SBR 16
0889 22435 066364 JMP ELEN1
0890 22436 O55654 DSZ TNULL
0891 22437 066421 JMP EIND 2
0892 22440 025644 LDB INTMP
0893 22441 005640 ADB CPO
0894 22442 074076 TCB
0895 22443 005742 ADB TMP 2
0896 22444 004012 LENER ADB .1
0897 22445 066364 JMP ELEN1
0898+
0899*
0900 160205 CKMOD JSM AERRA,I
0901 177671 DEC-71
0902*
0903*
0904 021416 CKM1 LDA
0905 070153 SAP
0906 055777 DSZ
0907 066367 JMP
0908 045472 ISZ
0909 125472 LDB
SYNTAX MODE? Syntax-Betrieb?
YES ja
091 0
091 1
091 2
091 3
091 4*
091 5 .
091 6
0g1 7
091 8
091 9
0920
Sfr
22456 074442
22457 014012
22460 066572
22461 066563
SBR CPB JMP GP1 JMP GP2
22462 062536 INDXS JSM GVAR
22463 06644 6 JMP LENER
22464 066446 JMP LENER
22465 060504 INDS2 JSM COMCK
22466 164305
22467 062034
QUOTE?
YES ja
NO nein
VARIABLE?
NUMERIC numerisch
STRING, COMMA? STRING, Komma
JMP E15-1,1 NO nein
JSM SVARO YES, VARIABLE? ja, Variable?
STRING OPTION BLOCK STRING-Wahl-Block
22470 066400
0939
JMP LENS2 NO, LOOK FOR QUOTE FIELD
nein, nach Quotenfeld sehen
0922 22471 164312 JMP E20-1, I NUMERIC num
0923 22472 066372 JMP LENS1 STRING
0924*
0925 22473 066465 JMP IND S 2
0926+
0927*
0928 22474 062450 EVAL JSM CKMOD
0929 22475 025400 LDB BADDR
Ο93Ό 22476 060563 JSM SLWST SAVE BADDR si
0931 22477 031645 STA PTR1
0932 22500 045654 ISZ TNULL NULL STRING?
0933 22501 066503 JMP *+2 NO nein
0934 22502 066534 JMP VALER YES ja
0935 22503 021412 LDA LSTPT SET BUFFER
0936 ■ 22504 070070 SIA *+1 START TO
0937 22505 070744 SAL 1 LOW STACK
O. 38 22506 031400 STA BADDR POINTER
22507 031646
STA PTR2
Pufferstart auf tiefe Stapelspeicher-Hinweismarke plus 1 setzen
SAVE BUFFER START Pufferstart sichern
30988 U /1370
0940
0941
0942
0943
0944
0945
0952
22510 021413
22511 070744
22512 031623
LDA HSTPT SAL 1
STA PEND
22513 027645 EVAL1 LDB PTR1A
22514 061041 JSM GETCH
22515 061016
0946 22516 021400
0947 22517 011623
0948 22520 064561
0949 22521 045654
0950 22522 066513
0951 22523 020055
22524 061016
JSM ONEXT
LDA BADDR CPA PEND JMP MER8
ISZ TNULL JMP EVAL1 LDA I
JSM ONEXT
0953 22525 021646 LDA PTR2
0954 22526 031400 STA BADDR
0955 22527 061156 JSM CONST
0956 22530 066534 JMP VALER
095-7 22531 060567 JSM UNSTK
0958 22532 031400 STA BADDR
0959 22533 066365 JMP ELEN 2
0960 22534 160205 VALER JSM AERRA
0961 22535 177664 DEC -76
0962+
0963 +
0964+
0965+
0966 22536 121472 GVAR LDA TEMPS
0967 22537 031646 STA PTR2
0968 22540 021644 LDA ST+4
0969 22541 031651 STA TEMP 6
SET BUFFER END TO HIGH
STACK POINTER PLUS Pufferstart auf hohe Stapelspeicher-Hinweismarke plus 1 setzen
GET A SOURCE CHAR Quellenzeichen holen
PUT IN BUFFER
in Speicher geben
OVERFLOW? Überfüllung?
YES, ERROR ja, Fehler NO, DONE? nein, fertig? NO nein
TERMINATE THE BUFFER Puffer terminieren
WITH A NON-DIGIT CHARACTER
mit Nicht-Ziffer-Zeichen
INITIALIZE BADDR initialisieren
RESTORE BADDR rückstellen
linke Klammer-Zählung holen
AND. SAVE und sichern SAVE STRING
OCCURRED FLAG Marke für "STRING" vorgekommen sichern
309884/1370
22542 061055 543 GNEXT
0970 22543 055400 JSM BADDR
0971 22544 045706 DSZ SBPTR
0972 22545 060521 ISZ LPCKE
0973 22546 045400 JSM BADDR
0974 22547 066034 ISZ SVARO
0975 JMP
0976+
GET NEXT CHAR
nächstes 'Zeichen holen
DEMAND LEFT PAREN linlce Klammer verlangen
Seite 208 STRING OPTION BLOCK
STRING-Wahl-Block
Anweisungs-Ausführung GPTRS JSM GADD SAVE RELATIONAL OPERATOR
Vergleichsoperator sicher
0979+ STATEMENT EXECUTION LDA TEMPS,I
0980+ ISZ TEMPS
0981 + STA INTMP QUOTE? '
0982+ LET LDB TEMPS,I YES ja
0983 + EXECUTION LET-Ausführung SBR 10 NO nein
0984+ CPB .1 NON-FORMULA OPERATOR?
Nicht-Formel-Operator?
0985+ JMP GP1 YES ja
0986 22550 AND OPMSK
0987 22551 063357 CPA OPMSK GET SOURCE STRING ADDRESS
Quellen-STRING-Adresse
holen
0988 22552 121472 ISZ TEMPS
0989 22553 045472' GP2 DSZ TEMPS EVALUATE SOURCE STRING
0990 22554 031644 JSM GADD
0991 22555 125472 LDB M2
0992 22556 074442 JSM PSTR
0993 22557 014012
0994 22560 066572
0995 22561 050065
0996 22562 010065
0997 22563 045472
0998 22564 055472
0999 22565 063357
1000 22566 024133
063421
Quellen-STRING auswerten
309884/1370
SSO
22567 035647 XFER STB TMPRE
1002 22570 031645 GP1 STA PTR1
1003 22571 170402 RET
1004 22572 063551 JSM GQUOT
1005 22573 066567 LTEX JMP XFER
1006* LT 4
1007 22574 062550 JSM GPTRS
1008 22575 024132 LDB M1
1009 22576 063421 JSM PSTR
1010 22577 074410. SZB LT2+1 TCA
1011 22600 021416 LDA MODE ADA TMP2
1012 22601 070250 SZA LT2 SAP TR1
1013 22602 160170 JSM CLERA,I ISZ TNULL
1014 22603 021647 LDA TMPRE JMP ++2
1015 22604 025645 LDB PTR1 RET
1016 22605 061330 JSM .NPWR JSM FSCH
1017 22606 062610 LT2 JSM TRSTR
1018 22607 164172 JMP XEC4A,I
1019+
1020+
1021 + STRING-TRANSFER-SUBROUTINE
1022 + i
1023 +
1024
1025
1026 22610 021645 TRSTR LDA PTR1
1027 22611 070076
1028 22612 001742
1029 22613 070413
1030 22614 045654 TR2
1031 22615 066617
22616 170402
22617 063255
SAVE LENGTH Länge sichern
GET QUOTE FIELD Quotenfeld holen
GET ÖEST STRING POINTERS Bestimmungs-STRING-Hinweismarken holen
NO nein
EVALUATE DESTINATION
STRING
Bestimmungs-STRING auswerten
NULL STRING?
CALC MODE? Rechenbetrieb? YES ja
DISPLAY THE STRING wiedergeben
FORWARD TRANSFER? Vorwärtstransfer?
YES
YES
ja
ja
GET NEXT SOURCE CHAR nächstes Quellenzeichen holen
309884/1370
22620 027731 LT5
1033 22621 061017
1034 22622 066614
LDB TMP2A JSM OUTCR JMP TR2
STORE IT speichern
LOOK FOR MORE nach weiteren sehen
Seite 209 021654 STRING OPTION BLOCK
STRING-Wahl-Block
LDA TNULL POINT TO END OF SOURCE
Hinweismarke auf Quellen
ende
1035 22623 070070 TR1 SIA *+1
1036 22624 070056 CMA POINT TO END OF DEST
1037 22625 070137 LDB A
1038 22626 005645 ADB PTR1
1039 22627 035645 STB PTR1
1040 22630 001742 ADA TMP 2
1041 22631 031742 STA TMP 2
1042 22632 021654 LDA TNULL TOO MUCH SOURCE?
zu viel Quelle?
1043 22633 070056 CMA YES, NO BLANKS NEEDED
ja, keine Leerstellen nö
1044 22634 025647 LDB TMPRE STORE BLANK COUNT
Leerstellenzählung speie
1045 22635 074076 TCB
1046 22636 070037 ADB A
1047 22637 074113 SBP *+2
1048 22640 074742 SBR 16
1049 22641 035647 STB TMPRE MORE BLANKS?
mehr Leerstellen?
1050 22642 045654 ISZ TNULL YES ja
1051 22643 066646 TR4 JMP *+2
1052 22644 170402 RET
1053 22645 025647 LDB TMPRE
1054 22646 074250 SZB TR3
1055 22647 020041 LDA .32
1056 22650 055647 DSZ TMPRE
1057 22651 066653 JMP ++1
1058 22652 066657 JMP TR5
1059 22653 027645 LDB PTR1A
1060 22654 061041 TR3 JSM GETCH
1O61 22655
1062 1063 1064 1065 1066 1067 1068 1069+ 1070
1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081*
22656 055645
22657 027731 TR5
22660 061017
22661 055742
22662 055742
22663 055645
22664 066643
DSZ.PTR1 LDB TMP2A JSM OUTCR DSZ TMP2 DSZ TMP2 DSZ PTR1 JMP TR4
22665 045654 FINCH ISZ TNULL
22666 066670
22667 170402
22670 061040
22671 010031
22672 17O4O2
22673 010043
22674 170402
22675 027731
22676 061017
22677 066665
NO nein
MORE TRANSFER STRING mehr Transfer-STRING
JMP ++2 YES ]a Zeilenende?
RET NO nein
JSM GETCH-1 j a, Quote?
CPA EOL END OF LINE?
RET YES ja
CPA B42 YES, , QUOTE? speichern
RET YES ja
LDB TMP2A NO nein
JSM OUTCR STORE IT
JMP FINCH
Seite 210 STRING OPTION BLO 063013 EINPT JSM ESAVE
STRING-Wahl-Block 020112 LDA RSTKA
1083+ 031777 STA RSPTR
1084 + 021622 LDA TERM
1085+ INPUT 072110 RZA ++2
160170 JSM CLERA,I
1086 + STATEMENT EXECUTION 021472 LDA TEMPS
1o87 + Eingabe-Anweisungs-Ausführung 000133 ADA M2
1088 3 0 9 8 8' W1370
1089
1090 22700
1091 22701
1092 22702
1093 22703
1094 22704
1095 22705
22706
22707
SAVE CURRENT PAGE ADDRESS laufende Seitenadresse sichern
RESET STACK
Stapelspeicher nullstellen
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
22710 031641
£33
STA SPRDD
1097 22711 021641
1098 22712 031421
1099 22713 021472
1100 22714 031640
1101 22715 121472
1102 22716 050040
1103 22717 010076
1104 22720 067017
1105 22721 023010
1106 22722 OO1643
1107 22723 031432
EIN2 LDA SPRDD STA PRADD
LDA TEMPS STA TEPPP LDA TEMPS,I AND B37 CPA B36 JMP INSTR LDA INLNK ADA SAVE STA DRQST
SAVE START OF INPUT
STATEMENT
Start der Eingabeanweisung
sichern
INPUT STATEMENT Eingabeanweisung
STRING VARIABLE? YES ja
SET UP RETURN LINK Rückkehrverbindung aufsetzen
22724 164173 INRET JMP PEXMA,I CALL FOR INPUT
nach Eingabe rufen
22725 055400
22726 025641
22727 061007
22730 035421
22731 021472
22732 031640
DSZ BADDR LDB SPRDD JSM NEXTA STB PRADD
LDA TEMPS STA TEPPP SET PRADD BACK TO END
OF INPUT STATEMENT PRADD zurück zum Ende der Eingabeanweisung setzen
SAVE START OF VARIABLE Variablenstart sichern
22733 160201 .EIN1 JSM FORMA,I GET THE ADDRESS OF THE
VARIABLE IN HS
Adresse der Variablen in HS
holen
22734 O24O17
22735 035706
22736 027007
22737 005643
22740 035432
22741 061156
22742 066765
LDB .2 STB SBPTR
LDB INLNI ADB SAVE STB DRQST JSM CONST AIM SBPTR AT ROM bei
BUILD A NUMBER IN AR2 Zahl in AR2 aufbauen
JMP INCH5 P+1- NO NUMBER FOUND,
SO INC HSTPTP
P+1-keine Zahl gefunden,
so INC HSTPTP
-; Π 9 8 B U I 1 3 7
1123 22743 070742 SAR 16
1124 22744 031432 STA DRQST
1125 22745 060412 JSM RSULT
1126 22746 025472 LDB TEMPS
1127 22747 015421 CPB PRADD
1128 22750 067011 JMP CXEC 4
1129 22751 035640 EIN3 STB TEPPP
22752 055400
22753 061066
11 32 22754 067005
11 33 22755 013642
11 34 22756 066760
11 35 22757 066777
11 36 22760 121472
11 37 22761 050040
11 38 22762 010076
CLEAR FLAG Marke löschen
SAVE ARE AT HSTPT7I ARE bei HSTPT,I sichern
END OF STATEMENT Anweisungsende
.YES ja
RESET THE TEMPRARY POINTER Zwischenspeicher-Hinweismarke nullstellen
DSZ BADDR NO - DINC BADDR TO LOOK AT
THE LAST CH.
nein, DINC BADDR um nach
letztem Zeichen zu sehen
JSM GETSK
JMP INCH1 CPA B54 JMP *+2 JMP INCH2 LDA TEMPS,I AND B37 CPA B3 6 GET LAST CHAR. letztes Zeichen holen
COMMA? Komma? YES ja
NO nein
STRING VARIABLE?
:? O 9 BR U I 1 3
Seite 211 STRING OPTION BLOCK String-Wahl-Block
1141*
1152*
1159*
1164*
1167* 1168*
1169*
22763 067024
22764 066733
22765 22766 22767 22770 22771 22772 22773
22774 22775 22776
22777 23000 23001 23002 23003 23004
160170 023 027712 063137 063135 021640 031472
045413 045413 066711
160170 020034 027725 063137 063135 066711
23005 160170
23σ06 066711
23007 000772
23010 000724
INCH5
INCHT
INC H
INCHl
INLNl INLNK JMP EIN4 YES ja
JMP .EINl NO
nein
JSM CLERA,1 LDA LDB ER3A JSM ER4+2 JSM ER4 LDA TEPPP STA TEMPS RESTORE VARIABLE POINTER
Variablen-Hinweismarke
zurückstellen
ISZ HSTPT ISZ HSTPT JMP EIN2
JSM CLERA,I LDA 'LDB ERlA JSM ER4+2 JSM ER4 JMP EIN2
JSM CLERA,I JMP E IN ABS INCHT-IDI ABS INRET-IDI
23011 160170 CXEC4 JSM CLERA,I
23012 164172 JMP XEC4A,I
SAVE PAGE ADDRESS DURING EXECUTION Seitenadresse während Ausführung sichern
23013 074117 ESAVE LDA B
23014 050160 AND B174K
309884/1370
1172 23015 031643 STA SAVE
1173 23016 170402 RET
1174* INSTR SAR
1175+ STA
1176 23017 070742 STA 16
1177 23020 031701 STA NDISP
1178 23021 031702 JSM NPRIN
1179 23022 031707 EIN4 JSM BLANK
1180 23023 063142 LDB INCAL
1181 23024 063357 ADB GADD
1182 23025 025412 LDA LSTPT
1183 23026 004133 SAR M2
1184 23027 074517 ADA B, I
1185 23030 070002 LDA 1
1186 23031 000132 SAR Ml
1187 23032 070517 TCA A,I
1188 23033 070342 ADB 8
1189 23034 070076 ADA
1190 23035 004012 ADA .1
1191 23036 074417 TCA B,I
1192 23037 000132 STA Ml
1193 23040 07007 6
1194 23041 031647 TMPRE
DON'T IGNORE BLANKS Leerstellen nicht ignorieren
GET STRING ADDRESS STRING-Adresse holen EXTRACT PHYSICAL LENGTH OF DESTINATION STRING
physikalische Länge des Bestimmungs-STRING ausblenden
SUBTRACT FIRST SUBSCRIPT ersten Index subtrahieren
STORE IT AS END OF UNSPECIFIED DEST STRING
als Ende von unspezifiziertem Bestimmungs-STRING speichern
Seite 212 STRING OPTION BLOCK
String-Wahl-Block
LDB Ml
1195 23042 024132 JSM PSTR
1196 23043 063421 LDA TMP 2
1197 23044 021742 STA PTRl
1198 23045 031645 LDB TNULL
1199 23046 025654 STB INTMP
1200 23047 035644 JSM GNEXT
1201 23050 061055 JMP EIN5
1202 23051 067055 JSM INCAL
1203 23052 063142 EIN14
PREPARE DESTINATION STRING Bestimmungs-STRING vorbereiten
SAVE LENGTH ALLOWANCE Längenerlaubnis sichern
GET INPUT RECORD Eingabe-Aufnahme holen
309884/1370
1204 23053 061062
sn
JSM GFRST
1205 23054 067054
JMP *
1210 1211 1212 1213 1214 1215
23055 025645 EIN5 LDB PTRl
23056 035742 STB TMP2
23057 010043
23060 067062
23061 055400
23062 062665
23063 074742
23064 015654
23065 067112
23066 015656
1216 23067 067106 1217 23070 031644
CPA B42 JMP *+2
DSZ BADDR JSM FINCH SBR CPB TNULL JMP EIN21 CPB PSl
23071 070742
23072 031647
23073 001654
23074 000132
23075 031654
23076 062614
23077 010031 EIN18 CPA EOL
23100 067102
JMP EINP6
23101 061055 EIN19 JSM GNEXT 23102 025641 EINP6 LDB SPROD CHECKSUM WORD Summenprobe Wort
RESTORE STRING POINTER
STRING-Hinweismarke
zurückstellen
QUOTE?
YES
ja
NO
nein
TRANSFER THE STRING transferieren
ALL REQUESTED alle verlangten
CHARACTERS TRANSFERRED? Zeichen transferiert?
YES
Ja
NO, TRANSFER LENGTH
SPECIFIED
nein, spezifizierte
Länge transferieren
JMP EIN20 No
nein
STA INTMP SAVE EOR CHAR
EOR-ZEICHEN sichern
SAR 16
STA TMPRE
ADA TNULL TRANSFER
transferieren
ADA Ml
STA TNULL
JSM TR2
TRANSFER ENDED BY EOL? Transfer durch EOL abgeschlossen?
YES
ja
NO, WAS A "
nein, war ein"
3 098R4/137fl
1228 1229 1230
1231 1232 1233 1234 1235
23103 061007
23104 035421
23105 066746
23106 125651
23107 005654
23110 135651
23111 067077
23112 015656
23113 067121
JSM NEXTA STB PRADD JMP EIN3-3
EIN20 LDB TEMP6,I ADB TNULL STB TEMP6,I JMP EINl8
EIN21 CPB PSl
JMP EINl5
23114 061066 EIN16 JSM GETSK
23115 067102
23116 010043
23117 067101
23120 067114
23121 061066
23122 067102
23123 010043
23124 067101
23125 021644
23126 031654
JMP EINP
CPA B42 JMP EIN19
JMP EINl6
EINl5 JSM GETSK JMP EINP6
CPA B42 JMP EIN19 LDA INTMP
STA TNULL SET PRADD BACK TO END OF INPUT STATEMENT
PRADD zurück auf Ende der Eingabeanweisung setzen
LOOK FOR END nach Ende sehen
SET LOGICAL TO ACTUAL STRING LENGTH logische auf tatsächliche STRING-Länge setzen
LENGTH OF TRANSFER Specified? Transferlänge spezifiziert?
NO " nein
YES, END OF LINE? ja, Zeilenende?
YES ja
YES ja
NO, LOOK FOR " OR EOL nein, nach " oder EOL sehen
EOL?
YES ja
NO, CLOSING QUOTE? nein, abschließende Quote?
YES ja
NO, DESTINATION STRING EXCEEDED nein, Bestimmungs-STRING überschritten
RESTORE DESTINATION Bestimmung zurückstellen
1248 23127 160170 JSM CLERi
1249 23130 020033 LDA .16
1250 23131 027726 LDB ER2A
Seite 213 STRING OPTION
String-Wahi-B
BLOCK
lock
1251 23132 063137 JSM ER4+2
1252 23133 063135 JSM : ER4
709884/1370
1253
1254*
1255*
1256*
1257
1258
1259
1260
1261
1262*
1263
1264
1265
1266
1273
23134 067052
23135 020025
23136 027724
23137 005643
23140 005643
23141 065330
23142 020012
23143 031432
23144 027727
23145 061330
1267 23146 161462
1268 23147 067164
1269 23150 061062
1270 23151 067164
1271 23152 021432
1272 23153 072210
23154 020041
1274 23155 031707
1275 23156 167613
1276 23157 074742
1277 23160 035432
1278 23161 035416
1279 23162 055400
1280 23163 170402
1281 23164 021432
1282 23165 070150
1283 23166 160170
1284 23167 067142
INCl
JMP EINl4
ER4 LDA .8
LDB ER4A ADB SAVE ADB SAVE JMP .NPWR
INCAL LDA .1
STA DRQST LDB QMRKA JSM .NPWR
OUTPUT A? Ausgang A?
JSM REEDL,I GET INPUT RECORD
Eingabe-Aufnahme holen
JMP INCl
JSM GFRST JMP INCl
LDA DRQST RZA *+4
LDA .32
STA BLANK JMP REEDY,I SBR 16 STB DRQST STB MODE DSZ BADDR RET
LDA DRQST SZA INC2
JSM CLERA,I JMP INCAL
NULL RECORD NuI1-Au fnähme
YES ja
EXECUTION EXIT OCCURRED? Ausführungsausgang stattgefunden?
YES ja
EXECUTION EXIT OCCURRED? Aus fuhrungs-Aus gang stattgefunden?
NO nein
309884/^370
S3Ö
1285 23170 167612 INC2 JMP REED IF STATEMENT EXECUTION 062550 IFEX JSM GPTR
1286* IF-Anweisungs-Ausführung 074056 CMB
1287* 035640 STB CPO
1288* 020133 LDA M2.
1289* 23171 063421 JSM PSTR
1290* 23172 035641 STB CPl
23173
1291* 23174
1292* 23175
1293 23176
1294
1295
1296
1297
1298
23177 045640 C0MP2 ISZ CPO 23200 067203
1301 23201 074742
1302 23202 067206
1303 23203 027645
1304 23204 061041
1305 23205 070137
1306 23206 045654
COMP 3
COMP 4
JMP COMP3
SBR 16 JMP COMP4 LDB PTRIA JSM GETCH LDB A ISZ TNULL GET STRING PARAMETERS STRING-Parameter holen
LENGTH Länge
PREPARE TEST STRING Test-STRING vorbereiten
SAVE ACTUAL LENGTH tatsächliche Länge sichern
MORE SPECIFIED STRING? mehr spezifiziertes STRING?
YES ja
NO, LOAD A NULL CHARACTER nein, Nullzeichen laden
MORE SPECIFIED TEST STRING? mehr spezifiziertes Test-STRING?
Seite 214 STRING OPTION BLOCK String-Wahl-Block
1307 23207 067216
1308 23210 070742
JMP COMP6
SAR 16
1309 23211 074076 C0MP5 TCB
1310 23212 074017 ADA B
1311 23213 072110 RZA *+2
YES ja
NO nein
COMPARE CHARACTERS Zeichen vergleichen
EXIT ON NOT EQUAL Ausgang auf "nicht gleich"
309884/1?70
1312 1313 1-314 1315 1316
1317 1318 1319 1320 1321
23214 077150 23215 067231
RZB COMP2
JMP BRANC
23216 021641 C0MP6 LDA CPl 23217 072150 23220 020041
23221 067211 JMP C0MP5
23222 000132 C0MP7 ADA Ml
23223 031641 STA CPl
23224 035650 STB ST+8
23225 027731 LDB. TMP2A
OR BOTH'NULL CHARACTERS oder "beide Null" Zeichen
EXIT TO BRANCH Ausgang zum Abzweigen
MORE ACTUAL
mehr tatsächliches
RZA COMP 7 TEST STRING?
Test-STRING?
LDA .32 NO
nein
EXTRACT NEXT ausblenden nächstes
1322 23226 061041 JSM GETCH ,1 TEST
Test
1323 23227 025650 LDB ST+8
1324 23230 067211 JMP COMP 5 CHARACTER
Zeichen
1325
1326 23231 070137 BRANC LDB A ,1
1327 23232 0216*44 LDA INTMP
1328 23233 050070 AND OPDMK
1329 23234 070202 SAR 5
1330 23235 074153 SBP BR 1 ,1 LESS THAN?
kleiner als?
13.31 23236 070211 SLA GOTOE ,1 YES, EVEN OP CODE?
ja, sogar OP-Code?
1332 23237 164172 JMP XEC 4A NO
nein
1333 23240 076310 BRl RZB BR2 EQUAL?
gleich?
1334 23241 010022 CPA .5 YES, - OP?
ja, -OP?
1335 23242 167577 GOTOE JMP EGOSl YES
ja
1336 23243 000135 ADA M4
1337 23244 071712 SAM *-2
1338 23245 164172 JMP XEC 4 A
1339 23246 010023 BR2 CPA .6 <?
1340 23247 164172 JMP XEC 4A
30988W1370
1341 23250 010022 CPA .5 I =?
1342 23251 164172 JMP XEC4A,
1343 23252 010017 CPA .2 I
1344 23253 164172 JMP XEC4A, I
1345 23254 167577 JMP EGOSl,
1346*
1347*
1348 23255 025647 FSCH LDB TMPRE
1349 23256 076150 RZB *+3 OUT OF STRING?
aus STRING?
1350 23257 020041 LDA .32 YES7 GET A BLANK
1351 23260 170402 RET ja, Leerstelle holen
1352 23261 004132 ADB Ml
1353 23262 035647 STB TMPRE
1354 23263 027645 LDB PTRIA
1355 23264 065041 JMP GETCH
1356 LST
1357* I
1358 23265 121472 EREAD LDA TEMPS,
1359 23266 050040 AND B37
1360 23267 010076 CPA B36 STRING VARIABLE?
1361 23270 067310 JMP RDSTR I YES
ja
1362 23271 160201 JSM FORMA, NO, GET VARIABLE ADRESS
nein, Variablen-Adresse
holen
Seite 215 , STRING OPTION BLOCK String-Wahl-Block
1363 23272 163611 ERl
1364 23273 015414
1365 23274 063334
1366 23275 163611
1367 23276 125415
1368 23277 074152
JSM SWITH,I EXCHANGE TEMPS AND NXTDT austauschen
CPB DSTRT NEED NEW DATA STATEMENT? neue Datenanweisung gebraucht?
JSM . FDAl YES
ja
JSM SWITH,I NO
nein
LDB NXTDT,I
SBM ++3
NUMERIC DATA IS NEXT? numerische Daten als nächste?
0 9884/1370
1369
23300 160205
1370 23301 177665
1371 23302 160256
1372 23303 060412
1373 23304 021421
1374 23305 011472
1375 23306 164172
1376 23307 067265
1377 23310 063357
1378 23311 163611
1379 23312 025472
1380 23313 015414
1381 23314 063334
1382 23315 045472
1383 23316 125472
1384 23317 074442
1385 23320 014012
1386 23321 067324
1387 23322 160205
1388 23323 177665
1389 23324 063551
1390 23325 035647
1391 23326 031645
1392 2332.7 024132
1393 23330 063421
1394 23331 062610
1395 23332 163611
1396 23333 067304
1397*
1398*
ER3
JSM AERRA, I NO
nein
DEC -75
JSM FDAAA, I YES
ja
JSM RSULT
LDA PRADD
CPA TEMPS MORE
ER2
JMP XEC4A,I JMP EREAD RDSTR JSM GADD
mehr Variablen
GET STRING VARIABLE
PARAMETERS
STRING-Variablen
JSM SWITH ,1 NEED NEW DATA STMT?
neue Datenausweisung
gebraucht?
LDB TEMPS YES
ja
CPB DSTRT
JSM .'FDAl
ISZ TEMPS
LDB TEMPS ,1 QUOTE?
SBR 10 YES
ja
CPB .1 YES
ja
JMP #+3
JSM AERRA ,1 NO
nein
DEC -75
JSM GQUOT
STB TMPRE PREPARE
vorbereiten
STA PTRl DESTINATION STRING
Bestimmungs-STRING
LDB Ml TRANSFER THE STRING
transferieren
JSM PSTR
JSM TRSTR
JSM SWITH ,1
JMP ER2
9 8 8 6 / 1
1399 23334 021421 .FDAl
1400 23335 031644
1401 23336 035421
1402 23337 025421 FD2
1403 23340 015423
1404 23341 164350
1405 23342 035472
1406 23343 060577
1407 23344 001466
1408 23345 013732
1409 23346 067352
1410 23347 013733
1411 23350 067352
1412 23351 067337
1413- 23352 025421 FD3
1414 23353 035414
1415 23354 025644
1416 23355 0354421
1417 23356 170402 1418*
LDA PRADD END OF PROGRAM?
STA INTMP' Programm-Ende?
STB PRADD OUT OF DATA
LDB PRADD aus Daten
CPB PBPTR
JMP E50-l,I ENCODE PAGE AND OP COD
Seite und OP-Code codi
STB TEMPS MAIN SYSTEM DATA STMT?
JSM NEXTL+3 Haupt-System-Daten-An
ADA LOCLl weisung?
YES
CPA MSDAT ja
NO, STRING DATA STMT?
nein, STRING-Daten-
JMP FD 3 Anweisung?
YES
CPA STDAT ja
NO, KEEP LOOKING
nein, weitersehen
JMP FD 3
JMP FD2
LDB PRADD
STB DSTRT
LDB INTMP
STB PRADD
RET
Seite 216 STRING OPTION BLOCK String-Wahl-Block
1422*
1423*
1424*
1425*
1426*
1427*
1428*
1429*
1430*
GADD-SUBROUTINE
FETCH STRING ADDRESS FROM SYMBOL TABLE STRING-Adresse aus Symboltabelle abrufen
ENTRY CONDITIONS: Eingangs-Bedingungen:
A=OPERAND
TEMPS POINTS TO STRING NAME TEMPS zeigt auf STftlN£ U&me 3 0 9 8 8 4/1370
1431*
1432*
1433*
1434*
1435+
1436*
1437
23360 063567
EXIT CONDITIONS:
Ausgangs-Bedingungen:
STRING ADDRESS AND SUBSCRIPTS ARE ON LOW STACK STRING-Adresse und Indizes sind im unteren Stapelspeicher
23357 060771 GADD JSM GTOPP
JSM GSYMB Ml
1439 23361 004132
1440 23362 074537
1441 23363 074744
1442 23364 060563
1443 23365 045472
1444 23366 021472
1445 23367 011421
1446 23370 067375
1447 23371 121472
1448 23372 O50065
1449 23373 010125
1450 23374 067401
1451 23375 074742
1452 23376 060563
1453 23377 024132
1454 23400 064563
1455 23401 063412
1456 23402 055472
1457 23403 121472
1458 23404 070442
1459 23405 050040
1460 23406 010017
1461 23407 067412
GA 2
GAl
GET OPERAND holen
GET SYMBOL ADDRESS Symboladresse holen
ADB LDB SBL JSM
ISZ LDA CPA
JMP LDA AND
SLWST
TEMPS TEMPS PRADD
GA2
TEMPS,I OPMSK
CPA LBOP
JMP GAl
SBR PUT ON STACK In Stapelspeicher geben
OUT OF CODE? aus Code?
GET OP CODE holen
SUBSCRIPTED? indiziert?
YES
ja
NO
nein
JSM LDB JMP JSM
DSZ LDA SAR AND CPA
SLWST Ml
SLWST SUBEV
TEMPS TEMPS,I
10 B37
.2
JMP SUBEV EVALUATE SUBSCRIPTS Indizes auswerten
COMMA?
Komma?
YES
ja
309884/1370
7 3 3 3-08
1462 23410 045472 ISZ TEMPS NO
1463 23411 067377 JMP GAl-2 nein
1464*
1465* SUBEV-SUBROUTINE
1466* TO AN
1467* EVALUATE AN"EXPRESSION , CONVERT
1468+
1469 + 1470
1471
ON LOW STACK
Ausdruck auswerten umwandeln in Ganzzahl, im tiefen Stapelspeicher speichern
23412 061217 SUBEV JSM FETCH EVALUATE EXPRESSION
Ausdruck auswerten
23413 160225
JSM FLTRA,I CONVERT TO INTEGER
in Ganzzahl umwandeln
1472 23414 164341 JMP E4O+2, I O OR NEGATIVE?
O oder negativ?
1473 23415 004132 ADB Ml NO
nein
1474
1475
23416
23417
075712
045472 .
SBM
ISZ
*-2
TEMPS
1476 23420 064563 JMP SLWST
1477*
Seite 217 STRING OPTION BLOCK String-Wahl-Block
1479* 1480* 1481* 1482+
1483 +
1484 +
1485+ 1486+ 1487+ 1483*
PSTR-SUBROUTINE
EVALUATE A STRING OPERAND auswerten
ENTRY CONDITIONS:
Eingangs-Bedingungen
B=-2 FOR SOURCE STRINGS
für Quellen-STRINGS
B=-1 FOR DESTINATION STRING für Bestimmungs-STRING
LOW STACK HAS SECOND SUBSCRIPT. Unterer Stapelspeicher hat zweiten Index,
?Q988W1370
6*3*·-
1489* 1490+ 1491*
1492+ 1493+
1494+ 1495*
1496+ 1497 + 1498+ 1499+
1500+ 1501* 1502
FIRST SUBSCRIPT, STRING ADDRESS, RESPECTIVELY, erster Index bzw. STRING-Adresse
TMPRE=SOURCe LENGTH Quellenlänge
EXIT CONDITIONS: Ausgangs-Bedingungen:
TMP2=STRING POINTER STRING-Hinweismarke
B=LENGTH Länge
TEMP6=STRING LENGTH WORD POINTER STRING-Längen-Wort-Hinweismarke
A=TMP2 IF SOURCE STRING wenn Quellen-STRING
TNULL=I,S COMPLEMENT OF REQUESTED LENGTH Komplement der verlangten Länge
23421 035655 PSTR STB PSO
23422 025412
23423 004134
23424 035412
23425 004012
23426 035656
23427 074517
23430 031742
23431 070002
23432 000132
23433 031651
23434 004012
23435 074517
SA1VE MODE FLAG
Betriebsart-Marke sichern
1515 23436 031652
LDB LSTPT BUMP LOW STACK POINTER
Stapelspeicher-Hinweis^
marke schieben
ADB M3
STB LSTPT SET FLAG POSITIVE
Marke positiv setzen
ADB .1 GET STRING ADDRESS
STRING-Adresse holen
STB PSl SAVE IT
sichern
LDA B,I
STA TMP 2 GET LENGTH WORD POINTER
Wortlängen-Hinweismarke
holen
SAR 1 SAVE IT
sichern
ADA Ml
STA TEMP 6 GET FIRST SUBSCRIPT
ersten Index holen
ADB .1 SAVE IT
sichern
LDA B,I
STA MPT
309884/ 13 ? Γ
- 53*—
1516 23437 001742
1517 23440 031742 *
1518 23441 004012 PS2
1519 23442 074517
1520 23443 070513
1521 23444 011655
1522 23445 067451
1523 23446 121651
1524 23447 050105
1525 23450 067454
1526 23451 031656 PSTRl
1527 23452 021647
1528 23453 001652
1529 23454 000132
1530 23455 031653 PSTR2
1531 23456 070056
1532 23457 001652
1533 23460 000132
1534 23461 O7O152
ADA TMP2 STA TMP2
ADB LDA B,I
SAP PSTR2 CPA PSO JMP PSTRl LDA TEMP6,I AND B'377
JMP PSTR2-1 STA PSl
LDA TMPRE ADA MPT
ADA Ml STA NQT
CMA
ADA MPT ADA Ml SAM PSTR8 RECORD STRING START POINTER
STRING-Start-Hinweismarke aufnehmen
GET SECOND SUBSCRIPT zweiten Index holen
SPECIFIED? spezifiziert?
NO, SOURCE MODE? nein, Quellen-Betrieb?
NO
nein
YES
ja
GET ACTUAL STRING LENGTH tatsächliche STRING-Länge holen
SET FLAG TO-I Marke auf -1 setzen
COMPUTE END OF STRING DESIGNATOR
Ende des STRING-Bezeichners berechnen
SAVE IT
sichern
NEGATIVE LENGTH? negative Länge?
Seite 218 STRING OPTION BLOCK String-Wahl-Block
1535 23462 160205
JSM AERRA,I YES ja
1536 23463 177670 DEC -72
1537 23464 031654 PSTR8 STA TNULL
SAVE 1,S COMPLEMENT OF LENGTH 1 ,S--Komplement der Länge sichern
/137η
1538 23465 121651
1539 23466 050105
1540 23467 070056
1541 23470 045655
1542 23471 070070
1543 23472 001652
1544 23473 070112
1545 23474 067515
1546 23475 121651
LDA ΤΕΜΡδ,Ι DOES STAR1
T OF^CflARACTER
23476 045655
23477 070346
23500 050105
1550 23501 000012
1551 23502 07007 6
1552 23503 001653
1553 23504 024012
1554 23505 015655
23506 067525
1556 23507 025654
1557. 23510 000012
1558 23511 070452
1559 23512 004012
1560 23513 070037
1561 23514 067522
1562 23515 021655
1563 23516 072150
1564 23517 160205
1565 23520 177667
AND B377
CMA
ISZ PSO
SIA *+l
ADA MPT
SAM *+2 JMP PSTR3
LDA TEMP6,I YES
ISZ PSO RAR AND B377
ADA TCA ADA NQT
LDB .1
CPB PSO
JMP PSTR5
LDB TNULL
ADA .1
SAM PSTR4
ADB ADB A
JMP PSTR4 PSTR3 LDA PSO RZA PSTR4-1
JSM AERRA,I
DEC -73
RELATE TO PREVIOUS STRING VALUE
Bezieht sich Zeichenanfang auf vorherigen
STRING-Wert?
DESTINATION MODE? Bestimmungs-Betrieb?
YES, USE PHYSICAL LENGTH ja, physikalische Länge benutzen
NO USE ACTUAL LENGTH nein, tatsächliche Länge benutzen
SOURCE MODE?
Quellenbetrieb?
NO
nein
SPECIFIED SOURCE STRING CONTAINED WITHIN DEFINED SOURCE STRING? Spezifizierter Quellen-STRING in definiertem Quellen-STRING enthalten?
NO
nein
CORRECT LENGTH Länge korrigieren
SOURCE MODE?
Quellenbetrieb?
YES
Ja
NO
nein
309884/1370 ORIGINAL INSPECTED
1566 23521 024132
1567 23522 021742
1568 23523 07 405 6
1569 23524 170402
1570 23525 070152
23526 160205
23527 177666
23530 045656
23531 067543
1575 . 23532 045653
1576 23533 067534
1577 23534 121651
1578 23535 050157
1579 23536 041653
1580 23537 131651
1581 23540 050105
1582 23541 070137
1583 23542 170402
1584 23543 121651
1585 23544 050105
1586 23545 070076
1587 235'46 001653
1588 23547 071153
1589 23550 170402
1590*
PSTR4
PSTR5
PSTR6
PSTR7
LDB Ml LDA ΤΜΡ2
CMB
RET
SAM *+3 NO, GET STRING POINTER nein, STRING-Hinweismarke holen
OVERFLOW?
Überfüllung?
JSM AERRA,I YES
DEC -7 4 ISZ PSl
JMP PSTR7
ISZ NQT
JMP *+l
LDA TEMP6,I
AND M256
IOR NQT
STA TEMP6,I
AND B377
LDB A
RET
LDA TEMP6,I
AND B377
TCA
ADA NQT
SAP PSTR6-2
RET
NO, STRING END SPECIFIED? nein, STRING-Ende spezifiziert?
YES
NO RESET STRING ACTUAL LENGTH
nein, tatsächliche STRING-Länge nullstellen
IS NEW DESTINATION STRING LONGER
THAN OLD?
Ist neuer Bestimmungs-STRING länger als alter?
MO
nein
Seite 219 STRING OPTION BLOCK
String-Wahl-Block
1591*
23551 121472 GQLOT LDA TEMPS,!
1593 23552 050105 AND B377 GET STRING LENGTH
STRING-Länge holen
23553 070137
LDB A
9 B 8 U ! 1 3 7
1595 23554 021472 LDA TEMPS 160177 GSYMB JSM SSYMA.I UPDATE TEMPS
auf den neuesten
Stand bringen
1596 23555 000012 ADA .1
1597 23556 031651 STA TEMP 6
1598 23557 074117 LDA B
1599 23560 070070 SIA *+l
1600 23561 070002 SAR 1
1601 23562 001651 ADA TEMP 6
1602 23563 031472 STA TEMPS
1603 23564 021651 LDA TEMP 6 SYMBOL IN TABLE?
1604 23565 070744 SAL 1
1605 23566 170402 RET
1606*
1608*
1609* FIND VARIABLE ADDRESS
Variablen-Adresse auffinden
1610*
1611 23567
Symbol in Tabelle?
23570 160340
23571 170402
JSM E40+l,I NO
nein
RET
23572 164172 EDATA JMP XEC4A,I
23573 066574 EILET JMP LTEX 23 574 167604 WREX JMP RITE,I
23575 167605 PREX JMP PRINT,I
23576 167606 DSPEX JMP DISP,I
LINKS THAT MOVE WITH MONIT Verbindungen, d^e sich mit MONIT bewegen
30988W13T
1631 23577 010202 EGOSI OCT 10202
1632 23600 012233 VARI OCT 12233
1633 23601 004171 STMTA OCT 4171
1634 23602 016524 SALT OCT 16524
1635 23603 023773 TABA OCT 23773
1636 23604 007072 RITE OCT 7072
1637 23605 006745 PRINT OCT 6745
1638 23606 006746 DISP OCT 6746
1639 23607 012436 STRID OCT' 12436
1640 23610 012455 STRI2 OCT 12455
1641 23611 010437 SWITH OCT 10437
1642 23612 004117 REEDX OCT 4117
1643 23613 004120 REEDY OCT 4120
1644*
1645*
1646*
Seite. 220 STRING OPTION BLOCK String-Wahl-Block
23614 176660
23615 176566
23616 176545
23617 046511 ERlL
23620 051523
23621 044516
23622 043440
23623 041517
23624 046515
23625 040454
23626 020122
23627 042524
23630 054520
23631 042440
23632 041101 ER2L
23633 042040
23634 051524
23635 051111
ABS EVAL-*
ABS EINDX-*
ABS ELEN-*
ASC 11,MISSING COMMA, RETYPE
Komma fehlt, neu schreiben
ASC 8,BAD STRING INPUT
falsche.STRING-Eingabe
2098S* /1 370
5*3
23636 047107 B54 176141 051105 SYN OCT 54
23637 020111 .17 176425 040504 DEC 17
23640 047120 NTAB 176424 104111 OCT 377
23641 052524 PTRlA 176442 047120 DEF PTRl
1652 23642 00005 4 FTAB 176330 ASC 1,LE
1653 23643 000021 176233 OCT 47230 N, OPCODE 30
1654 23644 000377 176322 ASC 1,PO
1655 23645 001645 176325 OCT 51631 S, OPCODE 31
1656 23646 046105 176263 ASC 1,VA
1657 23647 047230 OCT 46332 L, OPCODE 32
1658 23650 050117 SYNTAX TABLE
Syntax-Tabelle
1659 23651 051631
1660 23652 053101 23665
1661 23653 046332 23666
1662+ SYNTAX JUMP TABLE
Syntax-Sprungtabelie
23667
1663* 23670
1664*
1665* 23654 ABS LETS-*
1666* 23655 ABS READS-*
1667* 23656 ABS READS-* INPUT
1668* 23657 ABS DATAS-*
1669 23660 ABS PRINS-* DISP
1670 23661 ABS IFSYN-*
1671 23662 ABS WRTS-*
1672 23663 ABS PRINS-*
1673 23664 ABS IMPLT-*
1674
1675
1676
1677 ASC 2,READ
1678+
1679+ OCT 104111 OPCODE 8,1
16 80* ASC 2,NPUT
1681
1682
1683 .
3Q988A/ 1 370
Seite 221 STRING OPTION BLOCK
String-Wahl-Block
ER3A OCT 103504 OPCODE 7,D
1684 23672 103504 ASC 1,AT
1685 23673 040524 OCT 40606 A, OPCODE 6
1686 23674 040606 OCT 241 IMPLIED LET
Impiziertes LET
1687 23675 000241 ASC 2,DISP
1688 23676 042111
23677 051520 OCT 122511 OPCODE 5,1
1689 23700 122511 OCT 43204 F, OPCODE 4
1690 23701 043204 ASC 2,WRIT
1691 23702 053522 ER4A
23703 044524 ERlA OCT 42643 E, OPCODE 3
1692 23704 042643 ER2A ASC 2,PRIN
1693 23705 050122 CPO
23706 044516 CPl OCT 52242 PRINT, OPCODE 2
drucken
1694 23707 052242 B174K ASC 1,LE LE
1695 23710 046105 OCT 52351 T, OPCODE 11
1696 23711 052351
1697*
1698*
1699* ABS *+#+2-IDl-IDl
1700 23712 003626 ASC 9, BAD NUMERIC INPUT
falsche numerische E
1701 23713
23714
041101
042040
23715 047125
23716 046505
23717 051111
23720 041440
23721 044516
23722 050125
23723 052054 ABS
1702 23724 003453 ABS
1703 23725 003436 ABS
1704 23726 003464 EQU
1705 01640 EQU
1706 01641 EQU
1707 00160
ERlL+ERlL/13-IDl-IDl
ERIL+ERIL-Idl-Idl
ER2L+ER2L-IDI-ID1
ST
ST+1
M1O24
3 0 9 8 8 4/1370
1708 23727 000131 QMRKA DEG .63+.63+I BLOCK 176612 ABS LTEX-*
1709 01644 INTMP EQU ST+4 String-Wahl-Block 177302 ABS EREAD-*
1710 23730 174716 LENA ABS LEN+LEN-ID-ID 176714 ABS EINPT-*
1711 01645 PTRl EQU ST+5 177605 ABS EDATA-*
1712 01646 PTR2 EQU ST+6 177610 ABS DSPEX-*
1713 01647 TMPRE EQU ST+7 177202 ABS IFEX-*
1714 01742 TMP 2 EQU XC+2 177604 ABS WREX-*
1715 01640 TEPPP EQU ST
1716 01641 SPRDD EQU ST+1 ORG 23762B
1717 01643 SAVE EQU ST+3
1718 01651 TEMP 6 EQU ST+9
1719 01652 MPT EQU ST+10
1720 01653 NQT EQU ST+11
1721 01654 TNULL EQU ST+12 STATEMENT EXECUTION TABLE
1722 01655 PSO EQU ST+13
1723 01656 PSl EQU ST+14
1724 23731 001742 TMP 2 A DEF TMP 2
1725 23732 011761 MSDAT OCT 11761
1726 23733 003772 STDAT OCT 3772
1727 01462 REEDL EQU 1462B
1728* Anwe i sungs-Aus fuhrungs-Tabe1Ie
Seite 222 STRING OPTION
23762
1729* 23763
1730 23762 23764
1731* 23765
1732* 23766
1733* 23767
23770
1734*
1735
1736
1737
1738
1739
1740
1741
309884/1370
23771 177604 ABS PREX-*
1742 23772 177601 ABS EILET-*
1743
1744*
1745* 23773 176353 ABS LEN-*
1746 23774 177652 ABS FTAB-*
1747 23775 177647 ABS NTAB-*
1748 23776 177667 ABS SYN-*
1749 23777 004000 ID OCT,4000
1750 END
1751 ERRORS
* no : keine Fehler
30988 4/1370
Seite 223 9830—BASE PAGE READ-WRITE MEMORY
9830—Basis-Seiten-Lese-Schreib-Register
LST
R/W TEMPORARIES Zwischenspeicher
01640
01640 01641 01642 01643 01644 01645 01646 01647
000000 YH
000000 XH
000000 XW
000000 YW
000000 CP3
000000 CP4
000000 T3
000000 Tl
01650 000000 XN
01654 000000 XX
01660 000000 YN
01664 000000 YX
01670 000000 Zl
01674 000000 Z2
ORG 164OB
BSS BSS BSS BSS BSS BSS BSS BSS
BSS BSS BSS BSS
BSS BSS
THESE FOUR WORDS ARE NOT SAFE DURING FUNCTIONS
Diese vier Worte sind während Funktionen nicht sicher
01734
01734 000000 DX
01735 000000 DY
01736 000000 CPX
01737 000000 CPY
01473 01477 01734 01735 01736 01737
CCNT
TEMP
CP2
CPT
T4
T2
ORG 1734B BSS BSS BSS BSS
EQU TEMPS+1 EQU TEMPS+5 EQU DX EQU DY EQU CPX
EQU CPY
30988Λ/ 1370
SW
9830 PLOTTER-BLOCK
0550* 0551* 0552* 0553*
0557* 0558* 0559* 0560+ 0561* 0562* 0563* 0564* 0565* 0566*
22000
ORG 2200OB
THE PLOT BLOCK HAS ABSOLUTE ADDRESSES TO THE FOLLOWING BASIC SYSTEM SUBROUTINES
Der Plotter Block hat absolute Adressen zu den folgenden Basis-System-Subroutinen
COS SIN
RITE WRITE STATEMENT SYNTAX Schreibanweisungs-Syntax
PRINN PRINT STATEMENT EXCUTION Druckanweisungs-Ausführung
SCERI FORMAT EXCUTION Format-Ausführung
MOVCK MOVE THE SYMBOL TO LOWER MEMORY Symbol zum tieferen Speicher bewegen
TYPEC QTCHK FSPR CKEOL PFORM KEYIN VALUP TBSRl
SPECIAL SYMBOL CODE'S USED IN THIS BLOCK ARE AS FOLLOWS: spezielle in diesem Block benutzte Symbol-Codes sind folgende;
B174O SCALING IMFORMATION
Skalierungs-Information
Bl760 CHARACTER DEFINITION Zeichendefinition
1660 CARRIAGE RETURN IMFORMATION Wagenrücklauf-Information
CODE STARTED 10-26-71 Code gestartet 10-26-71
3Q88S4 / 1
- 5*2* -
0574*
0575* 0576*
0577* 0578* 0579+ 0580* 0581+ 0582+ 0583*
0584* 0585*
0586* 0587* 0588
0592*
0594
0595
0596
0597*
RELATIVE ADDRESSES TO SCALING IMFORMATION IS AS FOLLOWS Relative Adressen zu Skalierungs-Information sind folgende:
O=X SCALE FACTOR Skalenfaktor
4 = Y SCALE FACTOR Skalenfaktor
8 = X ADJUST justieren
12 = Y ADJUST justieren
16 = X PRESENT POSITION gegenwärtige Position 2O=Y PRESENT POSITION gegenwärtige Position 24 = X OFFSET versetzt
28 = Y OFFSET versetzt
CONSTANTS AND EQUATES Konstanten und Gleichwerte
22000 001400 N9/6 OCT 1400 1666.66 ** DON'T MOVE IT'S RELATIVE ADDRESS = nicht verschieben - ist relative Adresse = O
22001 013146
22002 063146
22003 063146
22004 001400
22005 114631
22006 000000
22007 000000
OCT 13146 OCT 63146 OCT 63146
OCT 1400
OCT 114631 OCT OCT 9999 ** DON'T MOVE, IT'S RELATIVE ADDRESS = 4 nicht verschieben - ist relative Adresse = 4
309884/1370
2333308
9830 PLOTTER BLOCK
0599* 0600*
0601* 0602
GET THE PEN CONTROL PARAMETER Schreibstift-Kontrollparameter holen
22010 02565 4 PNPAR LDB XX 22011 074113 22012 170402
SBP *#2
RET
22013 075750 .Pl SZB *-
0606 22014 074251 PENUP SLB PENDN
0607*
0608 22015 062032 JSM STATU
0609 22016 075613 SBP .Pl-I
0610 22017 020017 PENDN LDA .2
0611 22020 066024 JMP PENDN+3
0612 22021 062032 JSM STATU
0613 22022 075412 SBM .Pl-I
0614 22023 020020 LDA .3
0615 22024 070246 BUSY RAR 6
0616*
0617 22025 062032 JSM STATU
0618 22026 074644 SBL 3
0619 22027 075713 SBP BUSY
0620 22030 043737 STATU IOR SC16
0621 22031 065356 JMP TTY+3
0622 22032 027737 LDB SC16
0623 22033 172741 SIF 1
0624 22034 176141 OTB 1
0625 22035 172741 STF 1
0626 22036 177241 LIB i,c
0627 22037 074546 RBR 12
RECALL THE PEN CONTROL Schreibstiftkontrolle zurückrufen
IF POSITIVE DO CONTROL NOW wenn.positiv, jetzt kontrollieren
IT'S NEGTIVE SOPEN CONTROL AFTER
ist negativ, Kontrolle hinterher eröffnen
IF ZERO, NO PEN CONTROL wenn Null, keine Schreibstiftkontrolle
309884/1
0628 22040 170402 RET 0629*
0630 22041 070742 AMOVE SAR
0631 22042 031477 STA TEMP5
ALTERNATE ENTRY FOR ABINCRMENTAL MOVE Eingang für abinkrementale Bewegung ändern
0632* 22043 023500 MOVE LDA XMIN STOP KEY HIT
0633 22044. 062070 JSM .M Tastendruck stoppen
0634 22045 040107 IOR BlOOO YES
0635 22046 062025 JSM BUSY ja
0636 22047 021754 LDA AR2 NO
0637 22050 050105 AND B377 nein
0638 22051 040013 IOR B400
0639 22052 062025 JSM BUSY
0640 22053 023502 LDA YMIN
0641 22054 062070 JSM .M
0642 22055 040013 IOR B 400
0643 22056 062025 JSM BUSY
0644 22057 021754 LDA AR2
0645 22060 050105 AND B377
0646 22061 Ο4ΟΟΓ3 IOR B 400
0647 22062 041477 IOR TEMPS
0648 22063 062025 JSM BUSY
0649
0650* 22064 025442 LDB STPFL
0651 . 22065 014040 CPB .31
0652
22066 066554 JMP EPEN
0653 -
22067 1704o2 RET
0654
9830 BLOTTER BLOCK
0655*
0656 22O7O 060445 .M
0657 22071 160225
0658 22072 001654 XMAX
0659 22073 074117
JSM XFAR2+1 JSM FLTRA,I DEF XX LDA B
8^/1370
0667*
0668*
0669+
22074 074212
22075 004161
22076 074112
22077 023514
22100 031754
22101 070342
22102 170402
ST0R2
• SBM #+4 ADB MAXSN SBM *+2 LDA .9999 STA AR2 SAR RET
FIND THE ADDRESS OF THE R/W WORDS. Adresse der R/W-Worte auffinden.
ON RETURN THE ADDRESS OF THE IST WORD IS IN B AND Tl Bei Rückkehr ist die Adresse des ersten Wortes in B.
0670* 22103 062015 GETRW JSM PENUP
0671 22104 020111 LDA STEAL
0672
22105 160177
0674 22106 066113 JMP *+5
0675 22107 004132 GEl ADB Ml
0676 22110 074537 LDB B,I
0677 22111 035647 STB Tl
0678 22112 170402 RET
0679*
0680 22113 160205 JSM AERRA,I
0681 22114 177660 DEC -80
LOAD THE CODE WORD Codewort laden
JSM SSYMA,I LOOK FOR IT IN SYMBOL TABLE in Symboltabelle nach ihm sehen
NOT FOUND
nicht gefunden
NO SCALE COMMAND EXECUTED BEFORE PLOT, ECT Kein Skalenkommando ausgeführt vor PLOT, ECT
0682* TRANSFER ROUTINES
Routinen transferieren
021646 WHERE LDA T3
0683* 22115 070352 SAM TXM
0684* 22116
0685 027502 TYM LDB YMIN
0686 22117 064406 JMP XFARl+1
0687* 22120
0688 027504 TYX LDB YMAX
0689 22121
0690+
069.1
309884/13
0692 22122 064406 JMP - XFARl+1
0693* OWHER LDA
0694 22123 021646 SAM T3
0695 22124 071552 TYM
SKIP TO TYM IF IN XAXIS MODE
nach TYM springen, wenn in X-Achsen-Betrieb
0696 22125 027500 TXM LDB ABS XMIN
0697 22126 064406 JMP ABS XFARl+1
0698* ABS
0699 22127 026072 TXX LDB ABS XMAX
0700 22130 064406 JMP ABS XFAR1+1
0701* ABS
0702 22131 027772 TEMXX LDB ABS TEMX
0703 22132 064406 JMP ABS XFARl+1
0704* ABS
0705 22133 021737 LDA ABS T2
0706 22134 160216 JSM BSS .FADA,I
0707 22135 025737 TRANS LDB T2
0708 22136 064406 JMP XFARl+1
0709*
Seite 227 9830 PLOTTER BLOCK
0711*
0712 22137 000051 SPEN-*
0713 22140 000105 OFFS-*
0714 22141 000102 SCALE-*
0715 22142 000047 SAXIS-*
0716 22143 000046 SAXIS-*
0717 22144 000103 PLOT-*
0718 22145 000100 OFFS-*
0719 22146 000042 SPEN-*
0720 22147 000051 LABEL-+
0721 22150 000077 PLOT-*·
0722 22151 000000 1
LETTER SYNTAX Buchs tabensyntax
CPLOT SYNTAX
SCALE SYNTAX Skalensyntax
XAXIS SYNTAX X-Achsen-Syntax
PLOT SYNTAX
+·+·* CHECKSUM WORD #*+ Sumrtienprobe Wort
309884/1370
0724 22152 044520
0725 22153 046117
0726 22154 052242
0727 22155 046101
0728 22156 041105
0729 22157 046243
0730 22160 050105
0731 22161 047244
0732 22162 047506
22163 043123
22164 042524
0733 22165 122520
0734 22166 046117
0735 22167 052246
0736 22170 054101
0737 22171 054111
0738 .22172 051647
0739 22173 054501
0740 22174 054111
0741 22175 051650
0742 22176 051503
22177 040514
07 43 22200 042651
0744 22201 041520
22202 046117
0745 22203 052252
0746 22204 046105
22205 052124
22206 042522
0747 22207 165400
0748*
0749* END OF SYNTAX
SNAME ASC 1,IP IPLOT ASC 1,LO' OCT 52242 T ASC 1,LA
ASC 1,BE OCT 46243 ASC 1,PE
OCT 47244 ASC 3,0FFSET
LABEL Etikett
PEN Schreibstift
OCT 122520 P
ASC 1,LO PLOT
OCT 52246 T; OP CODE
ASC 1,XA XAXIS
X-Achse
ASC 1,XI
OCT 51647 S
YAXIS Y-Achse
ASC 1,YA
ASC 1,XI OCT 51650 S
ASC 2,SCAL SCALE; OP CODE Skala
OCT 42651 E; OP CODE ASC 2,CPLO
OCT 52252 T; OP CODE ASC 3,LETTER FREE MODE
buchstabenfreier Betrieb
OCT 165400 OP CODE
Ende der Syntax-Namen-Tabelle
0750* 309834/1370
Seite 228 SYNTAX CODE FOR 9830 PLOTTER Syntax-Code für 9830 Plotter
0752+ PEN' STATEMENT SYNTAX Syntax für Schreibstift-Anweisung
0753* 22210 065147 160202 SPEN JMP 060456 LABEL JSM ENDS
0754 060504
0755+ AXIS SYNTAX
Achsen-Syntax
065151
0756+ 160202
0757 + 22211 060504 SAXIS JSM FSCA,I
0758 22212 065151 JSM COMCK
0759 22213 066245 JMP EOST
0760 22214 JSM FSCA,I
0761 22215 JSM COMCK
0762 22216 JMP EOST
0763 22217 JMP OFFS
0764
0765+ LABEL STATEMENT SYNTAX
Etikett-Anweisungs-Syntax
0766+
0767 + 22220 SBPUD
0768
DEMAND AN OPPSITIE ORGIN verlangen
NO DEMAND EOL nein EOL verlangen
YES, DEMAND A TIC PARAMETER ja, TlC-Parameter verlangen
0769 ' 22221 060520
0770 22222 061055 JSM GNEXT
0771 22223 060456 JSM SBPUD
0772 22224 060463 JSM SYMCl
0773 22225 012012 DEF 120128
0774 22226 066240 JMP LAB 2
0775 22227 060456 JSM SBPUD
0776 22230 061055 JSM GNEXT
0777 22231 060504 LAB3 JSM COMCK
UPDATE POINTER Hinweismarke auf neuesten Stand bringen
JSM LPCKE-I DEMAND LEFT PAREN.
linke Klammer verlangen
CHECK FOR "*" auf "♦" prüfen
NOT FOUND, MUST BE NUMBER nicht gefunden, muß Zahl sein
FOUND, NOW CHECK FOR OPTIONAL PARAMETERS gefunden, nun auf Wahlparameter prüfen
309884/1370
- 5*4—
0778
0779 0780
0781 0782
0784
0787+ 0788+
0789* 0790
0794+ 0795+
0796+ 0797
0800
0802+ 0803
22232 066237 JMP LABI
22233 062254 JSM F0RM3
22234 060504 JSM COMCK
22235 066237
22236 160202
22237 167562 LABI
22240 055706 LAB2
22241 060663
22242 066231
SCALE STATEMENT SYNTAX Skalen-Anweisungs-Syntax
22243 062256 SCALE JSM F0RM2
22244 060510 JSM COMCE
22245 062256 OFFS JSM F0RM2
22246 065151 JMP EOST
PLOT AND IPLOT STATEMENT SYNTAX PLOT- und IPLOT-Anweisungs-Syntax
22247 062256 PLOT JSM F0RM2
P+l, NO OPTIONS, GO DEMAND A RIGHT PAREN. Keine Optionen, rechte Klammer verlangen
P+2, OPTIONS ARE THERE Optionen sind da
CHECK IF PAPER DIMENSIONS ARE PRESENT
prüfen, ob Papierdimensionen da
JMP LABl I NO FORMULA
nein holen
JSM FSCA, I YES, GET A
ja, Formel
JMP RITE, 1
DSZ SBPTR
JSM LNUM-
JMP LAB 3
22250 060504
22251 065151
22252 160202
22253 065151
DEMAND X AND Y COOR X- und Y-Koordinaten verlangen
CHECK FOR COMMA auf Komma prüfen
11 , " NOT FOUND, DEMAND E . O . S nicht gefunden, E.O.S. verlangen
JSM FSCA,I PROCESS OPTIONAL PEN COMMAND Schreibstift-Wahlbefehl verarbeiten
JSM COMCK
JMP EOST
JMP EOST
DEMAND E.O.S.
verlangen
22254 160202 F0RM3 JSM FSCA,I
309884/1370
O8p4 22255 060510 _ JSM COMCE DEMAND
verlangen
0805 22256 160202 F0RM2 JSM FSCA,I
0806 22257 060510 JSM COMCE DEMAND
verlangen
0807 22260 164202 JMP FSCA,I
Seite 229 EXECUTION PHASE OF 9 830 PLOTTER BLOCK
Ausführungsphase des 9830-Plotter-Blocks
0809*
0810
0814*
0815*
0816*
0817
0818+
0819
0821+
0822
22261 160201 FORM
22262 160201
22263 160201
22264 164201
SCALE EXECUTION Skalen-Aus führung JSM FORMA,I JSM FORMA,I JSM FORMA,I JMP FORMA,I
00111
STEAL EQU Bl740
22265 062652 ESCAL JSM CURPG
0820 22266 062261
22267 020111
0823 22270 160177
0824 22271 066273
0825 22272 066306
0826 22273 025406
0827 22274 023520
JSM FORM GET CURRENT PAGE laufende Seite holen
STACK 4 FORMULA
4 Formeln speichern
LDA STEAL LOAD SYMBOL FOR R/W WORDS Symbol für R/W-Worte laden
JSM SSYMA,I CHECK IF PLOTTER WORDS ARE SAVED ALREADY prüfen, ob Plotter-Worte schon gesichert sind
JMP *+2 NO, ENTER SAME
nein, dieselben eintreten
JMP ESl YES, SKIP ENTRY
ja, Eingang überspringen
LDB VALUE ENTER PLOTTER R/W WORDS INTO STACKS Plotter-R/W-Worte in Stapelspeicher eingeben
LDA M34 MOVE DOWN 34 PLACES, 32 FOR VALUES 34 Plätze abwärts bewegen, 32 für Werte
309884/1370
0828*
0829*
0830*
0831*
0832*
0833*
0834
0835*
0836
0837
0839
2333308
MOVE H-STACK DOWN AND CHECK FOR OVERFLOW Η-Stapelspeicher, abwärts bewegen und auf Überfüllung prüfen
MOVE DOWN - (A) WORDS
- (A) Worte abwärts bewegen
(B) = ADDRESS+1 OF THE LAST WORD TO BE MOVED (B) = Adresse +1 des letzten zu
22275 163666
22276 003520
22277 070137
0838 22300 000017
22301 074557
0846 22307 035737
0847 22310 070742
0848 22311 027554
0849 22312 131737
0850 22313 045737
0851 22314 077730
JSM MOVCK,I
ADA M34
LDB A
ADA .2'
STA B,I
0840 22302 074070 STB *+l
0841 22303 020111 LDA STEAL
0842 22304 074557 STA B,I
0843 22305 035406 STB VALUE
0844*
0845 22306 062107 ESl JSM GEl
STB T2
SAR
LDB M31 STA T2,I
ISZ T2 RIB *~2 POINTER TO VALUE TABLE Hinweismarke auf Wert-Tabelle
POINTER TO IST WORD OF R/W Hinweismarke auf 1. Wort von R/W
STORE ADDRESS POINTER TO PLOTTER R/W Adressen-Hinweismarke zu Plotter R/W speichern
LOAD PLOTTER R/W CODE Plotter-R/W-Code laden
LOAD THE ADDRESS POINTER TO 1ST WORD OF PLOTTER R/W Adressen-Hinweismarke auf 1. Wort des Plotter-R/W laden
SAVE B TEMPORARLY FOR ZERING B zeitweilig für Nullung sichern
CLEAR A löschen
ZERO 33 WORDS OF R/W Null 33 Worte von R/W
LOOP BACK IF NOT ZERO Schleife zurück, wenn nicht Null
309884/1370
0852+
0853*
0854*
0855+
0864+
COMPUTE THE SCALE FACTOR = 9999/(YMAX-YMIN) Skälenfaktor berechnen
AND YAD JUST = -(S.F.+YMIN) und Y justieren
0856+ 22315 020021 LDA .4
0857 22316 062322 JSM SCAL
0858 22317 070004 SAL 16
0859 22320 062322 JSM SCAL
0860 22321 164172 JMP XEC 4
0861
0862+ SCAL ROUTINE IS USED FOR X AND
0863+
SET-UP Y SCALE FACTOR Y-Skalenfaktor aufsetzen
zurück zum Monitor
Y SCALE FACTORS AND ADJUST VALUES
Skalenroutine wird benutzt für X- und Y-Skalenfaktor en und Wertjustierung
Seite 230 EXECUTION PHASE OF 9830 PLOTTER BLOCK
Ausführungsphase des 9830-Plotter-Blocks
0865+
0866 22322 031735
0867 22323 061220
0868 22324 062127
0869 22325 061220
0870 22326 062117
0871 22327 024033
0872 22330 062344
0873 22331 022072
0874 22332 160217
0875 22333 062125
0876 22334 020021
0877 22335 041645
0878 22336 160221
SCAL STA CPT
JSM FETCH+I
JSM TXX JSM FETCH+I
JSM TYM LDB .16 JSM TR/W-1 LDA XMAX JSM .FSBA,I JSM TXM LDA .4
IOR CP4 RECALL THE MAX zurückrufen
RECALL THE MIN zurückrufen
(MAX-MIN)
RELATIVE ADDRESS TO 9999 relative Adresse nach 9999
INCLUDE CURRENT PAGE laufende Seite einschließen
JSM .FDVA,I 9999/(MAX-MIN)
30988A/ 1370
22337 025735
0880 22340 062345
0881 22341 023502
0882 22342 160220
0883 22343 024025
BhO
LDB CPT
JSM TR/W
CPT = POINTER TO FIRST WORD IN R/W FOR X OR Y Hinwei'smarke auf erstes Wort in R/W für X oder Y
PLACE THE S.F. IN THE STACK S.F. im Stapelspeicher plazieren
LDA YMIN JSM ,FMPA,I S.F. # MIN
LDB .B SET (B) = ADJUST LOCATION POINTER
(B) setzen = Platz-Hinweismarke justieren
0884 22344 005735 ADB CPT 062263 EOFF JSM FORM+2
0885 22345 005647 TR/W ADB Tl 062104 JSM GETRW
0886 22346 064406 JMP XFARl+1 023532 LDA B24
Seite 231 EXECUTION PHASE OF 9 830 PL
Ausführungsphase des 9830-
062356 JSM EOFFl
0888* 02003 3 LDA ..16
0889+ 062356 JSM EOFFl
0890* 164172 JMP XEC4A,I
0891 OFFSET COMMAND EXECUTION
Befehlsausführung versetzen
0892 031735 EOFFl STA CPT
0893 22347 061220 JSM FETCH+1
0894 22350 062343 JSM TR/W-2
0895 22351 074117 LDA B
0896 22352 002610 ADA M8
0897 22353 160217 JSM .FSBA7I
0898* 22354 025735 LDB CPT
0899 2235*5 066345 JMP TR/W
0900
0901 22356
0902 22357
0903 22360
0904 22361
0905 22362
0906 22363
0907* 22364
22365
309884/13
SM
Seite 232 EXECUTION PHASE OF 9830 PLOTTER BLOCK
Ausführungsphase des 9830-Plotter-Blocks
0909* 0910
0911 0912 0913·* 0914*
0915*
0920+ 0921*
0922+
22366 021646 PWHER LDA T3 PWHER IS USED BY AXIS
EXECUTION
wird von Achsen-Aus-
führunq benutzt
22367 22370
070352 066372
SAM PUNX+1 JMP PUNY+1
ROUTINE TO GET A PARAMETER AND CONVERT IT TO PLOTTER UNITS Routine um einen Parameter zu holen und in Plotter-Einheiten umzuwandeln
22371 061220 PUNY
22372 020021
22373 027502
22374 066400
JSM FETCH+1 LDA .4
LDB YMIN JMP PUNIT
PUNX FETCHES A PARAMETER AND CONVERTS IT TO PLOTTER UNITS PUNX holt einen Parameter und wandelt ihn in Plotter-Einheiten um
22375 061220
22376 070742
PUNX
JSM FETCH+1 SAR 16
22377 027500
22400 001647
22401 031734
22402 000033
22403 031736
22404 035737
PUNIT
LDB XMIN ADA Tl STA CP2
ADA STA T
STB T2 SET A = TO AN OFFSET SO THAT A+Tl = 1ST WORD
setzen A = zu einer Versetzung, sodaß A + Tl = 1. Wort
STORE POINTER TO IST X
OR Y VALUE
Hinweismarke zu erstem
X oder Y-Wert speichern
SAVE POINTER TO PRESENT POSITION
Hinweismarke zur gegenwärtingen Position sichern
STORE POINTER TO XMIN
OR YMIN
Hinweismarke zu Xmin oder Ymin speichern
309884/1370
0931 22405 060406
0932 22406 121736
0933 22407 070006
0934 22410 070231
0935 22411 070706
233
3908
JSM XFARl+1 TRANSFER AR2 TO XMIN . OR YMIN
AR2 nach Xmin oder Ymin transferieren
LDA T4,I
RAR
SLA .PUN,C
RAR LOAD THE EXP WORD OF THE PRESENT POSITION Exp.-Wort der gegenwärtieren Position laden
IS BIT 1=1?
YES, CLEAR IT, AND GIVE
PENUP
ja, löschen und PENUP
geben
0936 22412 131736 .PUN STA T4,I
0937 22413 062015 JSM PENUP
0938 22414 021644 LDA CP3
0939 22415 070153 SAP PUNl
09 40 22416 025736 LDB Τ4
0941 22417 062133 JSM TRANS-2
0942*
0943 22420 025736
0944 22421 060406
0945 22422 004025
0946 22423 062133
0947 22424 021734
0948 22425 160220
0949 22426 062135
0950 22427 074117
0951 22430 025734
0952 22431 004025
0953 22432 160217
0954 22433 062135
SKIP IF IN ABS MODE überspringen, wenn in abs. Betrieb
X/YMIN = LAST POSITION + DX/DY IF IN INCR. letzte Position wenn in Zuwachs
PUNl LDB T4 JSM XFARl+1 REPLACE PRESENT POSITION WITH NEW VALUE gegenwärtige Position mit neuem Wert ersetzen
ADB JSM TRANS-2 NEW POSITION + OFFSET neue Position + versetzen
LDA CP2 JSM .FMPA,I S.F.*NEW POSITION neue Position
JSM TRANS LDA B LDB CP2 ADB JSM .FSBA,I SUBTRACT THE ADJUST VALUE Justierwert subtrahieren
JSM TRANS SAVE THIS ANSWER (PLOTTER UNITS) IN XMIN OR YMIN diese Antwort (Plotter Einheiten) in Xmin oder Ymin sichern
3098S4/1370
22434 074742
22437 021737
SBR
0956*
0957 22435 021754 LIMT LDA AR2
0958 22436 070451 SLA XLT2
LDA T
0960 22440 17OOOO CLR
0961 22441 024033 LFLAG LDB
0962 22442 005734
0963 22443 074517
0964 22444 O4OO17
ADB CP2 LDA B,I IOR
CLEAR (B).FOR A FLAG IF OUT OF RANGE
(B) für Marke löschen, wenn außerhalb Bereich
WAS THE RESULT NEGATIVE? War Ergebnis negativ?
YES - CLEAR X OR Y MIN Ja-X oder Y min löschen
FLAG PRESENT PEN POSITION gegenwärtige Schreibstift-Position markieren
Seite 233 EXECUTION PHASE OF 9830 PLOTTER BLOCK
Ausführungsphase des 9830-Plotter-Blocks
0965 22445 O74557
0966 22446 170402 0967+
0968 22447 OO3512 XLT2
STA B,I
RET
ADA EXPM4
22450 071712
22451 020021
22452 041645
22453 025737
22454 17OOO4
22455 066441
SAM *-2 LDA
IOR CP4
LDB T
XFR
JMP LFLAG THE RESULT WAS NOT NEGATIVE, NOW CHECK IF Resultat war nicht negativ, nun prüfen, ob
< 9999?
OTHERWISE SET XMIN OR YMIN (Relative add. to 9999) andernfalls Xmin oder Ymin (relativ add. zu 9999) setzen
AND FLAG THE LAST POSITION und letzte Position markieren
309884/1370
233390a
Seite 234 EXECUTION PHASE OF 9830 PLOTTER BLOCK
Ausführungsphase -von 9830 Plotter Block
0976-f 22456 075410 •XX SZB XLT2-1 CPLOT-Ausführung
0977 22457 024133 LDB M2
0978 22460 035654. STB XX EIPLT SBM *+1,S
0979 22461 066015 JMP PENUP EPLOT STB CP3
0980 PLOT AND IPLOT EXECUTION SBM *+1,C
0981* PLOT- und : JSM CURPG
JSM FORM+2
0982* 22462 076052 LDA TEMPS
0983 22463 035644 CPA PRADD
0984 22464 074072 JMP *+3
0985 22465 062652 JSM FETCH
0986 22466 062263 JSM FLTRA,I
0987 22467 021472 LDB M2
0988 22470 011421 STB XX
0989 22471 066474
0990 22472 061217 JSM GETRW
0991 22473 160225
0992 22474 024133 JSM PUNY
0993 22475 035654 JSM .XX
0994 JSM PUNX
0995* 22476 062104 JSM .XX
0996 JSM PNPAR
0997* 22477 062371
0998 22500 062456
0999 22501 062375
1000 22502 062456
1001 22503 062010
1002
STACK X, AND Y
X und Y speichern
PEN CONTROL?
Schreibstift-Kontrolle?
22504 062041
JSM AMOVE FETCH Y abrufen
CHECK IF PEN IS OFF-SCALE prüfen, ob Schreibstift außerhalb Skala
FETCH X abrufen
CHECK IF PEN IS OFF-SCALE prüfen, ob Schreibstift außerhalb Skala
CHECK FOR ANY PEN CONTROL
BEFORE MOVEMENT
auf Schreibstiftkontrolle vor Bewegung prüfen
SET ABS FLAG AND MOVE PEN abs. Marke setzen und Stift bewegen
0 9 8 8 4/1370
1004 22505 025654
1005 22506 074113
1006 22507 062013
1007
22510 164172
LDB XX
SBP
JSM
JMP XEC4A,I
LOAD THE PEN CONTROL WORD Schreibstift-Kontrollwort laden
AND CHECK FOR ANY PEN
MOVEMENT AFTERWARDS und auf nachträgliche Stiftbewegung prüfen
Seite 235 EXECUTION PHASE <
Ausführungsphase
076053 EXAXE SBP #+1 ,S SET PUNIT FOR ABS MODE
PUNIT für abs. Betrieb
setzen
1009+ 035646 EYAXE STB T3 STACK ORIGIN
Ursprung stapeln
1010* 074072 SBM *+1 ,C
1011* DF 9830 PLOTTER BLOCK
von 9830 Plotter Block
062652 JSM CURPG ORIGIN ONLY?
nur Ursprung?
1012 035644 STB CP3
1013 X AND Y AXIS EXECUTION
X- und Y-Achsen-Ausführung
160201 JSM FORMA,I STACK TICK stapeln
1014 021472 LDA TEMPS
1015 22511 011421 CPA PRADD ORIGIN, TICK ONLY?
Ursprung, nur TICK?
1016 22512 066546 JMP AX7 YES ja
1017 22513 160201 JSM FORMA,I STACK POINT 1 AND 2
Punkt 1 und 2 stapeln
1018 22514 021472 LDA TEMPS DO PENUP AND GET THE
1019 22515 011421 CPA PRADD
1020 22516 066556 JMP AX3
1021 22517 062263 JSM FORM+2
1022 22520 062103 JSM GETRW-1
1023 22521
1024 22522
1025 22523
1026 22524
22525
22526
22527
1027
22530 062604
JSM CLIMT-2
R/W ADDRESS
Schreibstift hochheben und R/W-Adresse holen
RECALL POINT 2 Punkt 2 zurückrufen
309884/ 1370
1028 1029 1030
1031 1032
1034* 1035+
1036* 1037 + 103 8+
103 9+ 1040+ 1041 1042
1048+ 1049
1050 1051 J«
22531 035665
22532 061220.
22533 062127
22534 062605
22535 061220 .E1
22536 062131
STB YX+1 JSM FETCH+1 JSM TXX
JSM CLIMT-1 SAVE THE STARTING POINT Startpunkt sichern
JSM FETCH+1 FETCH THE TICK PARAMETER abrufen
JSM TEMXX
YX = MIN VALUE IN PLOTTER UNITS
min. Wert in Plotter-Einheiten
YX+1= MAX VALUE IN PLOTTER INITS
max. Wert in Plotter-Einheiten
XMAX HAS PRESENT PEN POSITION
Xmax hat gegenwärtige Schreibstiftposition
TEMX HAS THE TICK INCREMENT hat den TICK-Zuwachs
22537 062573 22540 062633
SLOOP JSM AX4
JSM .TICK
22541 022072
22542 027772
22543 160216
22544 062614
AX5 PUT PEN DOWN AND MAKE
A TICK AT THE MIN POINT Schreibstift senken und TICK am min. Punkt machen
LDA XMAX LDB TEMX JSM .FADA,I COMPUTE THE NEXT POINT
nächsten Punkt berechnen
JSM TICMK
22545 066541
JMP AX5
22546 062560 AX7 JSM AX2 GO TO THE TICMK ROUTINE
TO CONVERT TO P.U.
zur TICMK-Routine gehen,
um in Plotter-Einheiten
umzuwandeln
MOVE THE PEN AND MAKE A
TICK THEN LOOP BACK Stift bewegen und TICK machen dann Schleife zurück
NO TICKS OR MIN AND MAX keine TICKS oder min. und max. .
22547 062573
JSM AX4
30988W1370
1057 1058+ 1059+ 1060*
1061 + 1062 1063 1064+
22550 025665 AX6 LDB YX+1 TICMK WILL COME HERE IF
IT GOES BEYOND MAX VALUE Hier kommt TICK, wenn er außerhalb des max. Wertes gerät
1053 22551 160227 JSM FXFLA,I
1054 22552 062115 JSM WHERE
1055 22553 062602 JSM .AX4
1056 22554 062015 EPEN JSM PENUP
22555 164172 DO PENUP, PEN EXCUTION
ALSO
Schreibstift heben, Stift-' ausführung auch
JMP XEC4A,I AND RETURN und zurück
SUBROUTINES FOR AXIS EXECUTION Subroutinen für Achsen-Ausführung
22556 062560 AX3 JSM AX2
22557 066535 JMP .E1
Seite 236 EXECUTION PHASE OF 9830 PLOTTER BLOCK
Ausführungsphase von 9830 Plotter Block
1065 22560 062103 AX2 JSM GETRW-1 DO PENUP AND GET THE R/W
ADDRESS
Schreibstift heben und
R/W-Adresse holen
1066 22561 023514 LDA .9999 (B)= POINTER TO SCALE
1067 22562 031665 STA YX+1 FACTOR
Hinweismarke
faktor
auf Skalen-
1068 22563 021646
1069 22564 070112
1070 22565 004021
1071 22566 074117
1Ο72 22567 000025
1073 22570 160221
1074 22571 062127
LDA T3 SAM ++2 ADB LDA B ADA JSM .FDVA
JSM TXX ,1 ADJUST / SCALE FACTOR justieren/Skalenfaktor
/3 09884/1370
1075 1076*
1095* 1096*
22572 066366
JMP PWHER
22573 061220 ÄX4 JSM FETCH+1 RECALL THE OPPSITIE
ORIGIN
entgegengesetzten Ursprung
zurückrufen
INITIALIZE YX TO A
VALUE ABOVE 9999
YX zu einem Wert über
9999 initialisieren
1078 22574 021646 LDA T3
107 9 22575 031664 STA YX
1080 22576 070076 TCA
1081 22577 062367 JSM PWHER+1
1082 22600 062606 JSM CLIMT
1083 22601 035666 STB YX+2
1084 22602 062041 .AX4 JSM AMOVE
1085 22603 066021 JMP PENDN
1086*
1087 22604 061220 JSM FETCH+1
1088 22605 062366 JSM PWHER
1089 22606 076210 CLIMT RZB .CL2
IF (B) * O
THEN OUT
OF RANGE
wenn (B)# O, dann außerhalb Bereich
22607 160225 .CL1 JSM FLTRA,I PLOTTER UNITS DID NOT
OVERFLOW, SO
Plotter-Einheiten nicht überfüllt, so
22610 22611
17777O 170402
M8
DEC -8
RET
RETURN AFTER CONVERTING
22612 22613
160205 177656 TO INTEGER
zurückkehren nach Umwandlung in Ganzzahl
.CL2 JSM AERRA,I DEC -82 ERROR IF XO, YO, OR THE
MIN, MAX VALUES OFF-SCALE Fehler, wenn XO, YO oder die min., max., Werte außerhalb Skala
TICMK MOVES PEN AND THEN MAKES A TICK MARK TICMK bewegt Stift und macht dann TICK-Marke
30988
1097+
1098 + 1099 1100 1101 1102
1103
1104
1105
1106 1107 1108
1109 1.110 1111
1116 1117 1118 1119 1120
AR2 HAS THE NEXT TICK POSITION, TEMY, I HAS THE
CONSTANT ORIGIN
AR2 hat die nächste TICK-Positic-η,ΤΕΜΥ,Ι hat
den konstanten Ursprung
22614 062127 TICMK JSM TXX
22615 062366 JSM PWHER
22616 062607 JSM .CL1
22617 015664 CPB YX
22620 066612
JMP .CL2
22621 035664
22622 021670
22623 074076
22624 005665
22625 074150
22626 070111
22627 076212
22630 074153
22631 055777 TBL
22632 066550
STB YX
LDA Z1
TCB
ADB YX+1
SZB ++3
SLA ¥+2 SBM .TICK,S SBP .TICK
DSZ RSPTR JMP AX6
22633 062041 .TICK JSM AMOVE
22634 025666 LDB YX+2
22635 004052
22636 074117
22637 000161
22640 070113
22641 062647
ADB LDA B ADA MAXSN SAP ++2 JSM .TIC DID THE VALUE CHANGE? wechselte der Wert?
NO, MUST BE A ZERO TICK
OR XMAX + TICK = XMAX neun, muß ein Null-TICK oder Xmax + TICK = Xmax sein
STORE A GOOD VALUE FOR
THE 1ST INCREMENT guten Wert für 1. Zuwachs speichern
LOAD THE SIGN OF THE TICK TICK-Vorzeichen laden
DO A TICK IF ZERO TICK, wenn Null
-DIRECTION - Richtung
+DIRECTION
+ Richtung
FINISH THE AXIS AND RETURN Achse fertigstellen und zurück
RECALL THE OPSITIE AXIS entgegengesetzte Achse zurückrufen
(-10000)
OUTPUT PLUS TICK Ausgang plus TICK
309884/1370
Page 237
EXECUTION PHASE OF 9830 PLOTTER BLOCK Ausführungsphase von 9830 Plotter Block
1121 22642 024153
1122 22643 005666
1123 22644 074112
1124 22645 062647
1125 22646 025666
1126 22647 160227
1127 22650 062123
1128 22651 066041 1129*
.TIC
LDB M48 ADB YC+2 SBM *+2 JSM .TIC LDB YX+2 JSM FXFLA,I JSM OWHER JMP AMOVE
Seite 238 22652 074442 CURPG SBR 10 I I
1131* ■ 22653 074304 SBL 10
1132 22654 035645 STB CP 4
1133 22655 170402 RET I
1134 I
1135 22656 026072 ROT2 LDB XMAX
1136* 22657 160221 JSM .FDVA,
1137 22660 062131 R0T4 JSM TEMXX
1138 22661 023504 R0T1 LDA YMAX
1139 22662 160220 JSM .FMPA,
1140 22663 160225 JSM FLTRA, CURPG+3
1141 22664 066672 JMP PRERR AERRA,
1142 22665 074117 LDA B -81
1143 22666 070112 SAM *+2
1144 22667 070076 TCA
1145 22670 000122 ADA B6K
1146 22671 071213 SAP
1147 22672 160205 PRERR JSM
1148 22673 177657 DEC
1149
1150
/A. R
^HEIGHT Höhe
CONVERT TO INTGER
in Ganzzahl umwandeln
OVERFLOW RETURN
Überfüllung , zurück
RETURN zurück
CHARACTER SIZE TO BIG, OR
BINARY FORMAT NOT ALLOWED Zeichengröße zu groß oder Binärformat nicht erlaubt
309884/1370
1151* 1152*
1153*
1170 1171.
1172
1174* 1175 1176
1178 1179 1180
1182 1183 1184+ 1185
1186
SET DEFAULT HEIGHT APPROX =1.5% A.R. '= 2 Versäumnis-Höhe ungefähr setzen ·
22674 062652
22675 062015
22676 020112
22677 160177
CDEF JSM CURPG JSM PENUP LDA B176O JSM SSYMA,I
1158 22700 066720 JMP ..CDEF
1159 22701 062107 JSM GE1
1160 22702 035640 STB YH
1161 22703 074070 SIB *+1
1162 22704 035641 STB XH
1163 22705 074070 SIB *+1
1164 22706 035642 STB XW
1165 22707 074070 SIB *+1
1166 22710 035643 STB YW
1167 22711 023502 GETLC LDA PPPOS
1168 22712 160177 JSM SSYMA.I
SEARCH THE SYMBOL TABLE
FOR CHAR DEFINITION Symboltabelle für Zeichendefinition suchen
FOUND gefunden
SET UP A LOCATION FOR
CRLF'S
Plazierung für CRLFs aufsetzen
22713 066715
22714 066107
22715 160252
22716 062107
22717 067376
JMP *+2 JMP GE1 JSM ENTEA,I JSM GE1 JMP .PC
22720 160252 .CDEF JSM ENTEA,I
22721 22722 22723 22724 22725 22726 22727 22730
062701 021640 170000 020105 131640 020104 131642 170402
JSM CDEF+5 LDA YH CLR
LDA B377 STA YH,I LDA B177 STA XW,I RET
22731 020020 ELÄB3 LDA ONE 2273 2 06044 5 JSM XFAR2+1 309884/1370
Seite 239 EXECUTION PHASE OF 9830 PLOTTER BLOCK
Ausführungsphase für 9830 Plotter Block
1187
1188*
1189 +
1190+
1191
22733 066757 JMP .ELAB
LETTING SUBROUTINE TO SET-UP CHARACTER DEFINITION Subroutine um Zeichen-Definition aufzusetzen
22734 062652 ELAB JSM CURPG SAVE CURRENT PAGE laufende Seite sichern
22735 045472
22736 023516
22737 031640
22740 074742
22741 163572
22742 074742
22743 035646
22744 062675
22745 121472
22746 050065
1202 22747 010004
1203 22750 067023
1204+
1205 22751 062262
1206 22752 121472
1207 22753 050065
1208 22754 010004
1209 22755 066731
ISZ TEMPS
LDA PMTOP
STA 164OB SET OP CODE FOR FORMAT
SEARCH
Code für Formatsuche
aufsetzen
SBR 16 SET REPEAT COUNT TO
Zero
Wiederholungszählung auf NULL setzen
JSM PLOTE,I GO CHECK FOR FORMAT
STATEMENT
auf Formatanweisung prüfen
SBR
STB T3 JSM CDEF+1 LDA TEMPS,I AND OPMSK
CPA RPOP JMP DEFLT
JSM FORM+1
LDA TEMPS,I AND OPMSK
CPA RPOP JMP ELAB3 P+1, NOT FOUND nicht gefunden
P+2, FOUND gefunden
CHECK IF THERE ARE MORE
PARAMETERS
prüfen, ob mehr Parameter
vorhanden
WAS IT A RIGHT PAREN
rechte Klammer?
STACK 3 FORMULA'S 3 Formeln stapeln
GET NEXT OPERAND nächsten Operanden holen
WAS IT A PAREN Klammer?
DEFAULT THE PAPER RATIO . Papierverhältnis vernachlässigen
3 O 9 8 8 t* f η 7
- ΤΓΤ-
1210 22756 061217 JSM FETCH 021645 LDA CP4 FETCH THE PAPER RATIO
Papierverhältnis abrufen
1211 22757 062125 .ELAB JSM TXM 160220 JSM .FMPA,I
1212 22760 061220 JSM FETCH+1 062121 JSM TYX ROTATION
1213 22761 062117 JSM TYM 023502 LDA YMIN
1214 22762 061220 JSM FETCH+1 163566 JSM SIN,I . ASPECT RATIO
Seitenverhältnis
1215 22763 062127 JSM TXX 027522 LDB TEMY
1216 22764 061220 JSM FETCH+1 060406 JSM XFAR1+1 HEIGHT Höhe
1217 22765 063352 JSM .MPY3 023502 LDA YMIN REDUCE HEIGHT BY 1/10
Höhe um 1/10 reduzieren
1218 22766 062121 JSM TYX 163570 JSM COS, I
1219* 062117 JSM TYM
1220-+ PROCESS CHARACTER DIMENSION
Zeichendimension verarbeiten
1221* 062661 JSM R0T1
1222 22767 135640 STB YH, I
1223 22770
1224 22771 023522 LDA TEMY
1225 22772 062656 JSM ROT 2
1226 22773 135641 STB XH,I
1227 22774
1228 22775 023502 LDA YMIN
1229 22776 027500 LDB XMIN
1230 22777 160220 JSM .FMPA,I
1231 23000 YMIN = COS
1232*
1233 23001 YH = 9999/6 * H * COS TH
1234 23002
1235*
1236 23003 SIN TH
1237 23004 XH = 9999/6 * H/A.R.*SIN
1238 23005
1239*
1240 23006 COS TH
1241 23OO7
1242 23010
309884/ 1370
Seite 240 23011 EXECUTION PHASE JSM OF 9830 PLOTTER ELCCK XW = 9999/6 ■* H/A.R. *
23012 Ausführungsphäse LDA von 9830 Plotter Block COS TH i
1243 23013 062131' JSM TEMXX
1244 023772 TEMX
1245 23014 062656 STB ROT 2
* PH/PW
1246 23015 135642 LDB XW, I
1247* 23016 ISZ
1248 027500 XMJN
1249 074637 B,I SET PAPER RATIO NEGATIVE
FOR -(RESULT)
Papierverhältnis für -(Resultat) negativ setzen
1250 23017 023522 LDA TEMY 025416 ELAB6 LDB MODE I YW= 9999/6 + H * SIN TH * 3
1251 23020 160220 JSM .FMPA, 076150 RZB *+3 PH/PW
021622 LDA TERM
1252 23021 062660 JSM ROT 4 072150 RZA *+3
1253 23022 135643 STB YW, I 160170 JSM CLERA,
1254-f 035622 STB TERM
1255 · 23023 021646 DEFLT LDA T3 020146 LDA M15
1256 23024 070110 SZA ELAB 6 031453 STA PRFLG
1257 23025 067054 JMP WREXC- 163510 JSM CKEOL, I
1258* 067177 JMP ELAB 5
1259* PRINT SYNTAX EXECUTION
Druck-Syntax-Ausführung
067177 JMP ELAB5
1260* 163574 ELAB1 JSM PRINN,
1261 23026 067177 JMP ELAB 5 I
1262 23027
1263 23030
1264 23031 I SET THE BUFFER
Puffer setzen
1265 23032 END OF LINE Zeilenende
1266 23033
1267 23034
1268 23035
1269 23036
1270 23037
1271 23040
1272 23041
T273 23042
309884/ 1370
1274 1275 1276 1277 1278 1279
1283+ 1284+
1285+
1294 1295
23043 021625 ELAB4 LDA FIRST
23044 070076 TCA
23045 001400 ADA BADDR
23046 071550 SZA ELAB1
23047 025625 LDB FIRST 23050 063203 JSM OUTCH OUTPUT THE BUFFER Ausgang Puffer
23051 021400
23052 031625
23053 067041
LDA BADDR STA FIRST JMP ELAB1
FORMAT TYPE EXCUTION Format-Typ-Au s fuhrung
23054 163510 JSM CKEOL,I
23055 000153 B153 OCT
23056 035472 STB TEMPS
23057 163652 WREXC JSM TYPEC7I
23060 067072
23061 067102
23062 074742
23063 060563
23064 067104
23065 066672
23066 067077
23067 163540 23070 063370
JMP WRITN
JMP WRITQ SBR GET NEXT FORMAT SPEC nächste Formatspezifi zierung holen
P+1, END OF FORMAT Format-Ende
P+2 QUOTE
P+3 FIXED FORMAT festes Format
JSM SLWST P+4 STACK FLAG 0-F;
binär
JMP WRITF P+5 (CODE 5 NOT USED)
Code 5 nicht benutzt
JMP PRERR BINARY MODE NOT ALLOWED
Binärbetrieb nicht erlaubt
JMP WRITX X;
JSM FSPR,I JSM PCRLF+1 /; CRLF
309884/ 1370
Seite 241 EXECUTION PHASE OF 9830 PLOTTER BLOCK Ausführungsphase von 9830 Plotter Block
1299 1300+ 1301 1302
23071 067057
JMP WREXC
1305*
131 2* 1313*
1315 1316 1317 1318 1319
1323*
23072 075753 WRITN SBP *-
23073 074742 SBR
CLEAR FORMAT NESTING
FLAG
Formatschachtelungs-Marke löschen
23074 035455
23075 067026
STB FORMT JMP ELAB6
23076 000103 BLNKA DEF .32+.32+1
23077 163540 WRITX JSM FSPR,I
23100 020012 LDA
23101 027076 LDB BLNKA
23102 063203 WRITQ JSM OUTCH
23103 067057 JMP WREXC
23104 025466 WRITF LDB L0CL1
23105 060563
23106 163510
23107 074742 23110 067173 2,3111 163564
23112 067115
23113 063203
23114 067106
JSM SLWST JSM CKEOL,I SBR JMP WREND-2 JSM QTCHK,I
JMP WRIT5 JSM OUTCH
JMP WRITF+2
23115 163526 WRIT5 JSM PFORM,I
23116 061220
23117 060567 23120 031466
JSM FETCH+1 JSM UNSTK STA LOCL1 STACK POINTER Hinweismarke stapeln
QUOTE NEXT IN WRITE? als nächstes Quote im Schreiben
P+1 NO nein T ..„„„ Lange
P+2, YES (A)= LENGTH, ja (B)=POINTER Hinweismarke
RECALL FORMAT STATEMENT
POINTER
Formatanweisungs-Hinweismarke zurückrufen
30988 4/1370
1328 23121 060567 JSM UNSTK
1329 23122 031705 STA FLOAT
1330 23123 045466 ISZ LOCL1
1331 23124 121466 LDA LOCL1,I
1332 23125 045466 ISZ LOCL1
1333 23126 045466 ISZ LOCL1
1334 23127 025456 WRITB LDB FORMS
1335 23130 074073 SBP *+1,C
1336 23131 035456 STB FORMS
RECALL E, F OR B FLAG E-, F- oder B-Marke zurückrufen
SET NUMERIC SPEC FOUND
FLAG
Marke "numerische Spezifizierung gefunden" setzen
1337 23132 125466 LDB LOCL 1 ,1 EGT DECIMAL SPEC
DezimalSpezifizierung
1338 23133 163540 JSM FSPR,I UPDATE FORMAT POINTERS
Format-Hinweismarken
auf den neuesten Stand
bringen
1339 23134 031704 STA WIDTH
1340+
1341 23135 035703 WRIT7 STB PLACE
1342 23136 021412 LDA LSTPT START TEMP BUFFER
Zwischenpuffer starten
1343 23137 070070 SIA *+1
1344 23140 070744 SAL 1
1345 23141 031400 STA BADDR
1346 23142 031706 STA SBPTR
1347 23143 021413 LDA HSTPT
1348 23144 070744 SAL 1
1349 23145 031623 STA PEND
1350 23146 021416 LDA MODE SET END OF BUFFER AT
1351 231 47 031737
1352 231 50 070742
1353 231 51 031416
1354 231 52 024215
STA T2
SAR 16
STA MODE
LDB TMPOP
HIGH STACK
Pufferende auf hohen Stapel setzen
SET FOR PROGRAM FORMAT für Programraformat setzen
309884/1370
73339Q8
Seite 242 EXECUTION PHASE OF 9830 PLOTTER BLOCK Ausführungsphase von 983,0 Plotter Block
1355
1356 1357 1358
1359 1360
1362 1363 1364 1365 1366 1367*
137O 1371
1372*
1377*
1382*
23153 060406
23154 160234
23155 021737
23156 031416
23157 021400
23160 011623
23161 064561
23162 025706
23163 060374 063203 ,
23165 025625
23166 035400
23167 163510 WRIT6 JSM CKEOL,I
JSM XFAR1+1
JSM NMOTA,I
LDA T2
STA MODE
LDA BADDR
CPA PEND
JMP MER8
LDB SBPTR
JSM WBUFF
JSM OUTCH
LDB FIRST
STB BADDR
23170 074742
SBR
23171 067175
23172 067057
JMP WREND JMP WREXC
23173 055412 DSZ LSTPT
23174 055412 DSZ LSTPT
23175 070742 WREND SAR
23176 031455 STA FORMT
23177 074110 ELAB5 SZB *+2
23200 066554 JMP EPEN
23201 063367 JSM PCRLF
23202 164172 JMP XEC4A,I
23203 031741 OUTCH STA XC+1
^OUTPUT NUMBER TO BUFFER Ausgangszahl zum Puffer
RESTORE THE MODE FLAG Betriebsart-Marke zurückstellen
OVERFLOW? Überfüllung?
RESET BADDR nullstellen
IS THIS THE END OF STATEMENT?
Anweisungs-Ende? P+1, YES CRLF NOT
SURPRESSED
ja, CRLF nicht unterdrückt
P+2, YES ja
P+3, NO RETURN FOR MORE nicht für mehr zurück
30988 A/1370
1391 + 1392+ 1393 +
1395 1396
1397
23204 035740
23205 O62711
STB XC JSM GETLC
SET-UP Τ'1 (POINTER TO
CRLF) IT MAY BE KILLED T1 (Hinweismarke nach CRLF) aufsetzen, kann gelöscht werden
23 206 061053 .OUTC JSM GTMP 23207 063213 JSM PLET-1
23210 055741 DSZ XC+1
23211 067206 JMP .OUTC
23212 170402 RET
CHARACTER ROUTINE Zeichen-Routine
23213 061363
JSM GTCON+1
23214 003620 PLET ADA M137B 23 215 070153 SAP ++3 CONVERT FROM LOWER CASE vom tieferen Fall umwandeln
CHECK IF > 137B
23216 000054
ADA 17 2B
überspringen, wenn Code > 172B war
(B77) WITHIN RANGE ADJUST
SO THAT 4OB = O (B77) innerhalb Bereich, so justieren, daß 4OB=O
1398 1400 23217 070113 SAP T1 ,1 RETURN IF NOT A VALID
1399 1401 23220 170402 RET 16 CHARACTER
zurück, wenn ungültiges
Zeichen
1402 CPX BUMP THE CHARACTER COUNT
FOR CRLF
Zeichenzählung für CRLF
schieben
1403 23221 155647 DSZ CPY
1404 23222 074742 SBR 1
1405 23223 035736 STB VIABE
23224 035737 STB MULTIPY BY 2
mit 2 multiplizieren
23225 070744 SAL ADD IN THE VECTOR TABLE
23226 003476 ADA
POINTER
in Vektortabellen-Hinweismarke addieren
30988W 1
1406
1407 1408
1409 1410
StfO
23227 001645 ADA CP4
23230 024213
23231 170004
23232 024132
23233 035747
LDB AR1A XFR
LDB M1 STB AR1+3
ADD IN CURRENT PAGE in laufender Seite addieren
TRANSFER THE TWO WORD
VECTOR TO AR1+1 AR1+2 den Zwei-Wort-Vektor nach AR1+2 übergeben
SET THE 9TH BLOCK TO GIVE END OF CHAR
Seite 243 EXECUTION PHASE OF 9830 PLOTTER BLOCK Ausführungsphase von 9830 Plotter Block
1411 23234 175400 PL1 DLS
1412 23235 013530 CPA B16
1413 23236 067250 JMP STABL
1414 23237 07004 6 RAR 2
1415 23240 070137 LDB A
1416 23241 074642 SBR 14
1417 23242 050020 AND .3
1418 23243 010020 CPA .3
1419 23244 067264 JMP .PL2
1420 1421 1422
1423 +
1424 +
1425*
23245 063302
23246 062021
23247 067234
JSM MPEN JSM PENDN JMP PL1
SPECIAL TABLE ROUTINE Spezialtabellen-Routine
23250 021745 STABL LDA AR1+1
23251 Ο7Ο142 SAR
23252 050115 AND B1777
23253 041645 IOR CP4
WAS THIS THE CODE FOR
SPECIAL TABLE? War dies der Code für Spezxaltabelle? YES ja
END OF CHARACTER
DEFINITION
Ende der Zeichendefinition
30988 U/137
1430 23254 Ο7Ο744 SAL 1 DELTA Y Ψ 3 IN
1431 23255 031750 · STA YC STANDARD MODE
in Standard-Betrieb
1432 23256 024057 STAB2 LDB .1000
1433 23257 061041 JSM GETCH
1434 23260 031466 STA LOCL1 DELTA X * 3 IN
1435 23261 070306 RAR 7 STANDARD MODE
in Standard-Betrieb
1436 23262 070353 SAP ++7
1437 23263 070251 SLA ++5
1438+
1439 23264 062015 .PL2 JSM PENUP
1440 23265 070004 SAL 16
1441 23266 024061 LDB .10
1442 23267 067310 JMP MPEN2
1443+
1444 23270 062021 JSM PENDN
1445 23271 070111 SLA ++2
1446 23272 062015 JSM PENÜP
1447 23273 021466 LDA LOCL1
144-8 23274 070106 RAR 3
1449 23275 070137 LDB A
1450 23276 074602 SBR 13
1451 23277 050024 AND .7
1452 23300 063310 JSM MPEN 2
1453 23301 067256 JMP STAB 2
1454*
1455 23302 031466 MPEN STA LOCL1
1456 23303 070744 SAL 1
1457 23304 001466 ADA LOCL1
1458 23305 035466 STB LOCL1
1459 23306 074744 SBL 1 "
1460 23307 005466 ADB LOCL1
1461*
1462 23310 031466 ΜΡΕΝ2 STA LOCLI
1463 23311 021736 LDA CPX
1464 23312 035736 STB CPX
30 9 884/1370
1465 23313 070076
1466 23314 074017
23^3908
TCA.
ADA B
Seite 244 EXECUTION PHASE OF 9830.
Ausführungsphase von 9830
031734 STA DX PLOTTER BLOCK
Plotter Block
1467 23315 021466 LDA LOCL1 DELTA X
1468 23316 025737 LDB CPY
1469 23317 031737 STA CPY
1470 23320 074076 TCB
1471 23321 070037 ADB A
1472 23322 035735 MPEN3 ! STB DY
1473 23323 121640 LDA YH, I DELTA Y
1474 23324 125641 LDB XH, I
1475 23325 063336 JSM MP Y1
1476 23326 062117 JSM TYM D.Y. =YH +·' D.Y.*XH*D.
1477 23327 121643 LDA YW, I
1478 23330 125642 LDB XW, I
1479 23331 063336 JSM MP Y1
1480 23332 062125 JSM TXM D.X.=YW*D.Y.*YW*D.X.
1481 23333 020107 LDA B1000
1482 23334 066042 JMP MOVE-1
1483 23335
1484* 031470 MPY1 STA L2T1
1485 23336 021734 LDA DX
1486 23337 063355 JSM MPY2
1487 23340 03 5471 STB L2T2
1488 23341 025470 LDB L2T1
1489 23342 021735 LDA DY
1490 23343 063355 JSM MPY2
1491 23344 005471 ADB L2T2
1492 23345 160227 JSM FXFLA,I
1493 23346 125647 LDB T1 ,1
1494 23347 014017 CPB .2
1495 23350 WAS THIS VECTOR FLAGE
AS A CRLF
war dies der als CRLF
markierte Vektor?
1496
23351 170402
RET
YES ja
309884/137 0
1497 23352 020157 .MPY3 LDA M256
1498 23353 OO1754 ADA AR2
1499 23354 066100 JMP ST0R2
1500*
1501 23355 070153 MPY2 SAP *+3
1502 23356 07007 6 TCA
1503 23357 074076 TCB
1504 23360 035466 STB LOCL1
1505 23361 074742 SBR 16
1506 23362 070076 TCA
1507 23363 070170 SIA #+3
1508 23364 005466 ADB LOCL1
1509 23365 073770 RIA #-1
1510 23366 170402 RET
Seite 245 EXECUTION PHASE OF 9830 PLOTTER BLOCK
Ausführungsphase von 9830 Plotter Block
1512*
1513* 1514 1515 1516 1517
1518 1519 1520 1521 1522 1523 1524* 1525* 1526+
LETTER AND LABEL ROUTINES
Buchstaben- und Etikett-Routinen
23367 160170 PCRLF JSM CLERA,I
23370 121647
23371 031734
23372 020017
23373 131647
23374 024132
23375 063323
23376 074742
23377 135647 23400 170402
.PC
LDA T1,I STA DX LDA
STA T1,1 LDB M1 JSM MPEN3 SBR STB T1,1 RET SET THE FLAG SO MPEN3
DOESN'T REDUCE BY 1/1OTH Marke so setzen, daß MPEN3 nicht um 1/10 TH reduziert
LETTER EXECUTION Buchstaben-Ausführung
309884/1370
23401 062674 EKEY JSM CDEF
GET CURRENT PAGE,
CHARACTER LINKS AND CRLF laufende Seite, Zeichenverbindungen und CRLF holen
1528 23402 074742 SBR 16 UP ARROW (258)
Pfeil nach oben
1529 23403 035473 STB CCNT
1530 23404 020054 LDA .63 DOWN ARROW (24B)
Pfeil nach unten
1531 23405 061016 JSM ONEXT
1532 23406 163673 .EKEY JSM KEYIN,I RIGHT ARROW (27B)
rechter Pfeil
1533 23407 024141 LDB M10
1534 23410 070346 RAR 8 LEFT ARROW (26B)
linker Pfeil
1535 23411 070133 SAP *+2,C
1536 23412 024132 LDB M1 STOP KEY? Taste Stop?
1537 23413 070346 RAR 8 YES ja
1538 23414 010034 CPA .21
1539 23415 067446 JMP .EK2
1540 23416 013532 CPA B24
1541 23417 067447 JMP .EK1
1542 23420 010036 CPA B27
1543 23421 067453 JMP • EK4
1544 23422 010035 CPA B26
1545 23423 067454 JMP • EK3
1546 23424 010104 CPA B177
1547 23425 067442 JMP .STOP
1548 •23426 010027 CPA .11
1549 23427 067457 JMP .RCRL
1550 23430 013534 CPA B157
1551 23431 020071 LDA E
1552 23432 074311 SLB ++6
1553 23433 013055 CPA B153
1554 23434 020101 LDA B100
1555 23435 127506 LDB VALUP,I
1556 23436 163524 JSM TBSRH,I
1557 23437 067440 JMP ++1
1558 23440 063214 JSM PLET
1559 23441 067406 JMP • EKEY
1560*
309884/ 1 370
1565*
23442 074742 .STOP SBR
23443 035442 ■ STB STPFL
23444 160170 JSM CLERA,I
23445 164172 JMP XEC4A,I
23446 074076 .EK2 TCB
23447 070742 .EK1 SAR
UP ARROW Pfeil nach oben DN ARROW Pfeil nach unten
309884/1370
- W4--
Seite 246 EXECUTION.PHASE
Ausführungsphase
062674 CPLOT STA OP 9β3Ο PLOTTER BLOCK
von 9830 Plotter Block
RIGHT ARROW
rechter Pfeil
1568 2345O 031734 062263 JSM DX LEFT ARROV
linker Pfeil
1569 23451 063323 O6347I JMP MPEN3
1570 23452 067406 035735 TCB .EKEY
1571 23453 074076 .EK4 O6347I STB
1572 23454 O35734 .EK3 O35734 SBR DX
1573 23455 O74742 063324 JMP 16
1574 23456 O6745I 164172 JSM .EK1+2
1575 23457 063367 .RCRL JMP PCRLP
1576 23460 067402 061220 .CPLT EKEY+1
1577* O2OOI3
1578* CHAEACTER PLOT
Zeichen-PLOT
063353
1579* 066663 JSM
1580 23461 JSM CDEF
1581 23462 JSM FORM+2
1582. 23463 STB .CPLT
1583 23464 JSM DY
1584 23465 STB .CPLT
1585 23466 JSM DX
1586 23467 JMP MPEN3+1 MULT RESULT BY 10
Ergebnis mit 10
multiplizieren
1587 2347O XEC4AtI
1588* JSM
1589 23471 LDA FETCH+1
1590 23472 JSM C7
1591 23473 JMP .MPY3+1
1592 23474 R0T1+2
309884/1 370
Seite 247 LETTER AND NUMBER VEGTOF. Ti-BLE
Buchstaben- und Zahlenvektor-Tabelle
167715 VTABE JMP BLKN, I SPACE 4OB
Raum 40B
FOR (
für (
1594* OOI474 DEF *-2-N9/6
1595* 167715 XMIN JMP EXCM,I ι FOR )
für )
1596* 001650 DEF XN
1597* LETTER VECTOR TABLE
Buchstaben-Vektor-Tabelle
167746 YMIN JMP QUOTE,I " 42B
1598 001660 DEF YN
1599 167716 YMAX JMP NUMBR,I
1600 25475 001664 DEF YX
1601 25476 167754 VALUP JMP DOLLER1I %
1602 25477 002412 DEF 2412B ABS ADDRESS
Adresse
1605 255OO 167701 CKEOL JMP PERCT,I
1604 25501 OO7227 DEF 7227B ABS ADDRESS
Adresse
1605 25502 167725 EXPM4 JMP AMP,I &
1606 25505 176000 OCT 176000
1607 25504 II27OO .9999 OCT II27OO ι
1608 25505 025417 DEC 9999
1609 25 506 167740 FMTOP JMP LPARN,I S.T. POINTER
Hinweismarke
1610 25507 OI2O25 OCT 12025
1611 25510 167745 M54 JMP RPARN1I S.T. POINTER
Hinweismarke
1612 25511 177756 DEC -54
1615 25512 167674 TEMY JMP MULT,I *
1614 25515 001674 DEF Z2
1615 25514 167676 TBSRH JMP PLUS,I
1616 25515 005072 DEF 50728
1617 255I6 OO27OO PFORM DEC 1472
1618 25517 006775 DEF 6775B ABS ADRESS
Adresse
1619 2552O 045500 DEC 18112
1620 25521
1621 25522
1622 25525
1625 25524
1624 25525
25526
25527
309884/1370
1625 23530 000016 B16 OCT 16 / 1 :
1626 23531 016000 DEC 7168 ABS ADDRESS
Adresse
RITE+1 ABS ADDRESS
Adresse
1627 23532 000024 B24 OCT 24 4242,5300 0 I3OO 2 ;
1628 23533 OO53OO DEC 2752 ABS ADDRESS
Adresse
1629 23534 000157 B157 OCT 157 6592 25IOO 3
1630 23535 004242 OCT 7356B ABS ADDRESS
. Adresse
23536 005300 105145, 11264 4
1631 23537 014700 DEC ABS ADDRESS
1632 2354-0 007356 FSPR DEP -3OIO7, 2O3OO 5
1633 23541 105145 OCT ABS ADDRESS
Adresse
23542 001300 -31638, 8268 6 ?
1634 2354-3 105145 DEC
23544 061014 124105, 7
1635 23545 102152 DEC
23546 026000 -22458, 18598,16422 8
1636 23547 124105 OCT
23550 020300 IO5O34
1637 23551 124106 DEC -31 680,18112 9
23552 020114
1638 23553 105034 OCT COLOF1I
1639 23554 177741 M31 DEC 43038
1640 23555 044246 DEC SCOLN,I
23556 040046 7240B
1641 23557 001250 DEC -27620
23560 043300 12761B
1642 23561 167710 JMP EQUAL,I
1643 23562 004303 RITE DEF I3OO7B
1644 23563 167707 JMP -27IOO
1645 23564 007240 QTCKK DEF 740 2B
1646 23565 112034 DEC QUES,I
1647 23566 012761 SIN DEF
1648 23567 167720 JMP
1649 23570 013007 COS DEF
1650 23571 113034 DEC
1651 23572 007402 PLOTE DEF
1652 23573 167727 JMP
30988 A/137 O
1653 23574 006656 PRINN DEF 665b? 100B
1654 23575 004242 OCT 4242,12554-
23576 012554 A
1655 23577 004242 DEC 2210,25792
23600 062300 B
1656 23601 004245 DEC 2213,17952
23602 043040 C
1657 23603 124501 DEC -22207,11264
23604 026000 D
1658 23605 004226 DEC 2198,4288
23606 010300 E
1659 23607 124105 DEC -22459,16428
23610 ■ 040054 F
1660 23611 124105 DEC -22459,16576
23612 040300 G
1661 23613 124002 DEC -22526,26048
23614 062700 H
1662 23615 004106 DEC 2118,-23872
23616 121300 I
1663 23617 014700 DEC 6592
1664 23620 177641 M137B OCT -137 J
1665 23621 121004 DEC -24060,-16384
23622 140000 K
1666 23623 004112 DEC 2122, 17088
23624 041300 L
1667 23625 100054 DEC -32724 CHECK SUM WORD
1668 23626 000000 BSS 1 Summenprobe Wort
M
1669 23627 004132 DEC 2138,11264
23630 026000 N
1670 23631 004052 DEC 2090,-16384
23632 140000 O
1671 23633 004242 DEC 2210,3072
23634 006000 P
1672 23635 004246 DEC 2214,19456
23636 046000 Q
1673 23637 020212 DEC 8330,9664
23640 022700 R
1674 23641 004246 DEC 2214,17708
23642 042454
309884/1370
1675 23643 001144 DEC 612,-30016 Cj DEC -32340 V W
23644 105300 TYPEC DEF 73O3B ABS ADDRESS
Adresse
1676 23645 105221 DEC -30063 T DEC -32686, ,-21504 X
23646 140000
1677 23647 100052 DEC -32726, U DEC 2648,11264 Y
23650 140000
Seite 249 LETTER AND NUMBER VECTOR TABLE
Buchstaben- und Zahlenvektor-Tabelle
DEC -31323, Z
1678 23651 ,-16384 100654
1679 23652 007303 DEC -30206, 133B
1680 23653 ,-16384 100122
23654 126000 OCT
1681 23655 OO513O ,7168
23656 026000 OCT 135 B
1682 23657 102645 MOVCK DEF ,-16384
23660 016000 OCT
1683 23661 IO5OO2 10211,140000
23662 140000
1684 23663 010211 IOI3OO
23664 140000 5555B
1685 23665 IOI3OO
1686 23666 005555
1687 23667 OII25I
11251,140000
23670 140000 1688 23671 014511 OCT 14511,66000 136B
23672 066000 1689* 1690 23502 PPPOS EQU YMIN 1691*
1692* MORE ABS ADRESSESS mehr abs. Adressen
1694 23673 002753 KEYIN DES1 2753B
1696* SPECIAL SYMBOL VECTOR TABLE Spezialsymbol-Vektor-Täbelle
1698* BIT 15 =1 PENUP BEFORE MOVEMENT Stift heben vor Bewegung
309884/1
BIT 14 - 1 PEN DOWN BEFORE Μ07ΕΙ1ΞΝΤ Stift senken vor Bewegung
BITS 13,12,11 = Y COOR. OP 1ST LOCATION Y-Koordinate der ersten Stellung
BIT 10,9,8 - X COOR. OF 1ST LOCATION X-Koordinate der ersten Stellung ,
BIT 7=1 PENUP Stift neben
BIT 6*1 PEN DOWN Stift senken
"BIT 5,4,0 - Y OF 2ND des
BIT 2,1,0 = XOF 2ND des
PEN CONDITIONS Schreibstift-Bedingungen
PEN UP ON ENTRY
Stift beim Eingang heben PEN UP ON EXIT
Stift beim Ausgang heben
A 7 IN Y INDICATES END OF CHAR. A7 in Y zeigt Zeichenende an
THIS TABLE WORKS ON A 7X7 MATRIX (6-0)
Diese Tabelle arbeitet auf einer 7x7-Matrix (6-0)
23674 104555 MULT OCT 104555,124515
23675 124515
23676 101563 PLUS OCT 101563,114136,140000
23677 114136
23700 140000
23701 073161 PERCT OCT 73161,24041,25061 %
23702 024041
23703 O25O6I
23704 112514 OCT 112514,2416,12700
23705 002416 237Ο6 OI27OO
23707 OOO523 SCOLN OCT 523 ; 73B
309884/1370
Seite 250 LETTER AND NUMBER VECTOR TA3LE Buchstaben- und Zahlenvektor-TabellH
1720
1721
1722
1725
1724
1725
1726
1727
1728
1729
I75O
1751
1752
1755
1754
1755
1756
1757
1758
1759
1740
1741
1742
1744
1745
1746
1747
1748
1749
I75O*
1751*
1752
1755*
257IO
257II 25712
25715 25714
25715 257I6
25717 2572O 25721 25722
25725 25724
25725 25726 25727 25750
25751 25752
25755 25754
25755 25756 25757 23740 23741 25742
25745 25744 25745 25746 25747 25750
25760
011525 125555 140000 051525 IOI5O5 140000 I5IIO2 102164 110126 125140 140000 005152 051454 010405 OI27OO 024562 051454
022055 011605 041700 004515 024455
151505 160000
OOI5II 014051 O517OO OOI515 OI7O55 O517OO 021162 152144 140000
COLON OCT 11525,125555,140000 : 72B
EXCM OCT 51525 ocT 101505
BLKE OCT 140000 MJMBR OCT 151102,102164
EQUAL OCT 110126 OCT 125140
OCT 140000 AMP OCT 5152 ocT 51454 OCT 10405 ocT 12700
QUES OCT 24562 OCT 51454 OCT 22055 OCT 11605
OCT 41700 DOLLR OCT 4515 $ 44B OCT 24455 ocT 151505
SC16 OCT 160000 LPARN OCT 1511 OCT 14051 OCT 51700
RPARN OCT 1515 OCT 17055 ocT 51700
QUOTE OCT 21162 ." OCT 152144 OCT 140000
ORG 25760B
! 41B
309884/ 1 37η
1754* STATEMENT EXECUTION JUKP TABLE
Anweisungs-Ausfunrund-Sprungtabeile
1755* 23760 177421 ABS EKEI-*
1756 23761 177500 ABS CPLOT-*
1757 23762 176303 ABS ESCAL-*
1758 23763 176527 ABS EYAXE-*
1759 23764 176525 ABS EXAXE-*
1760 23765 176476 ABS EPLOT-*
1761 23766 176361 ABS EOFF-*
1762 23767 176565 ABS EPEN-*
1763 23770 176744 ABS ELAB-*
1764 23771 176471 ABS EIPLT-*
1765 23772 001670 TEMX DEF Z1
1766
1767* 23773 176636 ABS TBL-*
1768 23774 176635 ABS TBL-*
1769 23775 176634 ABS TBL-*
1770 23776 176154 ABS SNAME-*
1771 23777 010000 OCT 10000
1772
OP CODE 1 IS NOT USED, SO USE IT FOR A CONSTANT OP-Code 1 ist nicht benutzt, daher für Konstante benutzen
CODE TO IDENTIFY THE OPTION BLOCK
Code um Wahl-Block zu identifizieren
309884/1370
Seite 251 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
0503 0504 0505* 0506+ 0507+
0509+ 0510 0511 0512
0513 +
0514 + 0515
0517+
0519+ 0520*
0522+ 0523 +
0530+ 0531 + 0532+
0533*
22000
LST
ORG 2200OB
TERMINAL OPTION BLOCK Terminalwahl-Block
22000 000052 ID ABS XTRM-* COMMAND JUMP TABLE ' Befehl-Sprungtabelle
22001 052105 COMTB OCT 052105 TE
22002 051115 OCT 051115 RM
22003 170400 OCT 17O4OO (1) END ALLOWS TWO
INTEGERS
Ende, erlaubt zwei
Ganzzahlen
22004 001757
22005 000000
ABS ERRX-* SYNTAX JUMP TABLE
Syntax-Sprungtabelle
NOP
++ CHECKSUM WORD ++ Sununenprobewort
(2) END Ende
22006 020302 SYSNT OCT 020302
22007 00077 7 BN777 OCT
22010 00503 2 VALUP DEF 2415B+2415B
22011 002617 PREED DEF 2617B
22012 002753 KEYIN DEF 2753B
22013 003647 GETLN DEF 3647B
22014 006036 LISTS DEF 6036B
22015 006306 MCOUT DEF 63O6B
SECONDARY ENTRY FROM MAIN SYSTEM THRU REED LINK Sekundäreintritt vom Hauptsystem über REED-Verbindung
309884/1370
233 3908 sar *+1-ID * I (NULL RECORD)
(Null-Aufnahme)
0534 22016 000017 RE1A DEF
0535* AT1S
0536 22017 023647 LDA AT1 RESTORE CRITICAL
0537 22020 027646 LDB PARAMETERS
kritische Parameter zurück
stellen
0538 22021 170004 XFR
BADDR-, SLBF-2
0539 22022 170004 XFR FLGBT RESTORE MODE FLAG
Betriebsart-Marke
zurückstellen
IS DISPLAY EMPTY
ist Anzeige leer?
0540 22023 320062 LDA MODE YES ja.
0541 22024 031416 STA NO, PRESERVE SYSTEM MESSAGE
0542* TFLAG CHECK FOR COMPILE
prüfen auf Kompilierung
0543 22025 021433 LDA M1
0544 22026 010132 CPA XCOM1 CHECK FOR PTAPE
prüfen auf PTAPE
0545 22027 067104 JMP *+4
0546 22030 070210 SZA PREED,
0547 22031 162011 JSM *-1
0548 22032 066031 JMP EOL1
0549 22033 066517 JMP
0550* .SLBF
0551 22034 024212 LDB
0552 22035 074056 CMB BADDR
0553 22036 005400 ADB M1
0554' 22037 004132 ADB jK+2
0555 22040 074113 SBP RE1
0556 22041 066134 JMP R17
0557 22042 066147 JMP
nein, System-Nachricht aufbewahren
309884/1370
TERMINAL OPTION BLOCK Terminalwahl-Block, Endgerätwahl-Block
0559* 0560* O561# 0562
0563
0564 0565 0566 0567* 0568* 0569
0570 0571* 0572
"WHAT?" MESSAGE "was?"-Nachricht
22043 062542 WHAT JSM MTIB SAVE MYSTERIOUS LINE
unklare Zeile sichern
22044 160170
22045 020022
22046 027765
22047 066145
JSM CLERA,I CLEAR THE DISPLAY Anzeige löschen
LDA LDB WHAM JMP R10
22050 000156 .110 DEC
22051 174702 M1598 DEC -1598
22052 072110 XTRM RZA *+2
0573 22053 020021 LDA .4
0574 22054 070204 SAL 12
0575 22055 031651 STA T1
0576 22056 014056 CPB. 1E4
CONSTANTS USED TO CHECK BAUD RATE
Zur Prüfung der Baud-Rate benutzte Konstanten
TEST FOR DEFAULT SELECT
CODE (4)
Test auf fehlenden Auswahlcode (4)
SAVE SELECT CODE Auswahl-Code sichern
TEST FOR DEFAULT BAUD
RATE (110)
Test auf fehlende Baud-Rate (110)
0577 22057 026050 LDB .110
0578 22060 074117 LDA B
0579 22061 000134 ADA M3
0580 22062 070153 SAP *+3
0581 22063 160205 TERR1 JSM AERRA
0582 22064 177662 DEC -78
0583 22065 002051 ADA M1598
0584 22066 071653 SAP *-3
,1 ERROR, INVALID BAUD RATE Fehler, falsche Baud-Rate
30988W1370
2333908
0585 22067 160227
0586 22070 020214
0587 22071 02765ο
0588 22072 170004
0589 22073 021717
0590 22074 070442
0591 22075 070244
0592 22076 031654
0593 22077 070002
0594 22100 031655
0595 22101 003651
0596 22102 027650
0597 22103 160221
0598 22104 160225
0599 22105 066105
- &β*--
0600 22106 004025
0601 22107 035652
0602*
0603 22110 025655
0604 22111 006016
0605 22112 035462
0606*
0607 22113 021651
0608 22114 070502
0609 22115 003335
061 0 221 16 025655
061 1 221 17 007336
061 2 221 20 070577
JSM FXPLA,I
CALCULATE TIMING CONSTANT Zeitgeber-Konstante berechnen
LDA LDB XFR LDA SAR SAL STA
SAR STA ADA LDB JSM JSM JMP
AR2A TF1A
NUM 10 11 T4
T5 TCON TF1A .FDVA7I FLTRA,I
SAVE PAGE INFO Seiteninformation sichern
TEMPORARY Zwischenspeicher
OVERFLOW (SHOULD NEVER
HAPPEN)
Überfüllung (sollte nie vorkommen)
ADB .8 SAVE TIMING CONSTANT
STB T2
LDB T5 FORM NEW REED LINK
neue REED-Verbindung
bilden
ADB RE1A
STB REEDL
LDA T1 2 * SELECT CODE
Auswahlcode
SAR 11 * ADDRESS OF INTERRUPT
TABLE - 1
+ Adresse der Unter
brechungstabelle - 1
ADA INTAD
LDB T5
ADB INTSA PUT INTERRUPT LINK ADDRE
STB A,I
IN TABLE
Adresse für Verbindungs-Unterbrechung in Tabelle geben
309884/1370
Seite 253 TERMINAL OPTION ,BLOCK
Terminalwahl-Block, Endgerätwahl-Block
0614 0615
0616* 0617
0618 0619 0620 0621 0622* 0623 0624
0625 0626
0627* 0628
0629 0630 0631
0632 0633
0634 0635* 0636
0637 0638 0639 0640* 0641
22121 070742
22122 031653
22123 023641
22124 041651
22125 172741
22126 172141
22127 173601
22130 070742 REO
22131 031430
22132 031431
22133 031655
22134 160170 RE1
22135 021430
22136 070250
22137 025427
22140 160210
22141 045400
22142 066147
22143 020021
22144 027223
22145 005654 R10
22146 061335
22147 024236 R17
SAR 16 SET TO "EVEN" PARI
auf gerade Parität
STA T3 TURN ON CARRIER
Träger einschalten
LDA B4001
IOR T1'
STF 1
OTA 1
STC 1,C
SAR 16
STA LNINC GET OUT OF AUTO aus AUTO nehmen
STA CLINE INDICATE TOP OF PROGRAM Programmspxtze anzeigen
STA T5 SET PRINT/STORE TO "PRINT" "Drucken/Speichern" auf "Drucken" setzen
JSM CLERA,I CLEAR THE DISPLAY Anzeige löschen
LDA LNINC
SZA *+5 AUTO MODE? AUTO-Betrieb?
LDB .LNUM YES, OUTPUT LINE NUMBER ja, Ausgang Zeilenzahl
JSM OUTIA,I
ISZ BADDR FOLLOWED BY ONE BLANK
von einer Leerstelle gefolgt
JMP R17
LDA .4
LDB MSSG1
ADB T 4
JSM NPWRT
NO, SUPPLY "TEXT" MESSAGE nein, "Text"-Nachricht zuführen
LDB SLEND SET UP FOR KEYBOARD INPUT für Tastatur-Eingabe aufsetzen
309884/ 1370
0642
0643
0644
0645
0646
0647
0648
0649
0650*
0651
0652
22150 035623
22151 070742
22152 031442
22153 031473
22154 031704
22155 031707
22156 031657
22157 031660
22160 162012
22161 010105
0653 22162 066346
0654 22163 010074
0655 22164 066420
0656 22165 031661
0657*
0658 22166 160170
0659 22167 021430
0660 22170 070210
0661 22171 025427
0662 22172 160210
0663 22173 045400
0664 22174 021661
0665 22175 066204
STB PEND SAR 16 STA STPFL
FOR OUTCR für OUTCR
CLEAR STOP FLAG STOP-Marke löschen
STA CCNT MULTIPLE CHARACTERS VIA
KEYIN
Mehrfachzeichen über Tastatur
STA BKPTR CURSOR POINTER
Positionsanzeigemarke
STA BLANK DO NOT IGNORE BLANKS
Leerstellen nicht ignorieren
STA T7 SAY OK TO CLEAR DISPLAY
ON INTERRUPT
Löschung der Anzeige bei
Unterbrechung zustimmen
STA T8 CLEAR NO-LINE-NUMBERS FLAG Nicht-Z eilen-Zahlen-Marke löschen
JSM KEYIN,I CALL FOR FIRST KEY
nach erster Taste rufen
CPA B377
JMP DIOB
CPA B22
JMP BKSP
STA T 9
DUMP I/O BUFFER? Auszug I/O-Puffer?
YES ja
BACKSPACE? YES ja
Rückschritt?
JSM CLERA,I CLEAR THE DISPLAY Anzeige löschen
LDA LNINC
SZA #+4 AUTO MODE? AUTO-Betrieb?
LDB .LNUM YES, OUTPUT LINE NUMBER ja, AUSGABE Zeilenzahl
JSM OUTIA,I
ISZ BADDR FOLLOWED BY ONE BLANK
gefolgt von einer Leerstelle
LDA T9
JMP R36
309884/1370
TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
0667 22176 020212 RE 6 LDA .SLBF DISPLAY EMPTY? Anzeige
leer?
0668 22177 011400 CPA BADDR
0669 22200 066134 JMP RE1 I CALL FOR NEXT KEY
nach nächster Taste
rufen
0670 22201 162012 R46 JSM KEYIN, DUMP I/O BUFFER?
Auszug I/O-Puffer?
0671 22202 010105' CPA B377 YES ja
0672 22203 066346 JMP DIOB
0673 22204 024104 R3 6 LDB B177 CLEAR ASCII-CNTRL FLAG1
ASCII-CNTRL-Marke
löschen
0674 22205 035663 STB CTFLG
0675 22206 074742 SBR 16 CLEAR ASCII-SHIFT FLAG
ASCII-Verschiebung-
Marke löschen
0676 22207 035662 STB SHFLG
0677 22210 074742 R26 SBR 16
0678 22211 070346 RAR 8 TEST BIT 7 FOR SHIFT
BIT 7 auf Verschiebung
prüfen
0679 22212 070133 SAP *+2,C
0680 22213 024132 LDB M1 SET SHIFT FLAG
Verschiebunsmarke setz
0681 22214 035472 STB TEMPS
0682 2.2215 070346 RAR 8 INITIAL CODE WITHOUT
0683 22216 031661 STA T9
SHIFT BIT
Anfangscode ohne Verschiebungs-Bit
0684 + 22217 027656 LDB EDITP CODE IN EDIT TABLE?
Code in Aufbereitungs
tabelle
0685 22220 005654 ADB T4 NO nein
0686 22221 160175 JSM TSRHA,I
0687 22222 066245 JMP R16 YES, GO EXECUTE IMMEDIATE
LY
ja, sofort ausführen
0688 22223 002225 ADA *+2
0689 22224 070016 EXA
0690
30988Λ/137 0
G 04
0691* 22225 066226 . JMP *+1 O EXECUTE ausführen
0692 22226 066564 JMP OTPT 1 STEP Schritt
0693 22227 066043 JMP WHAT 2 RECALL Rückruf
0694 22230 066402 JMP RECL 3 BACKSPACE Rückwärts
schritt
0695 22231 066420 JMP BKSP 4 FORWARDSPACE Vorwärts
schritt
0696 22232 066435 JMP FORD 5 DOWNARROW Pfeil nach
unten
0697 22233 066715 JMP DNRW 6 UPARROW Pfeil nach
oben
0698 22234 066722 JMP UPRW 7 LEFTARROW Pfeil nach
links
0699 22235 066332 JMP LEFT 8 RIGHTARROW Pfeil nach
rechts
0700 22236 066341 JMP RITE 9 CLEAR VAR Variable
löschen
0701 22237 066677 JMP CLVR 10 INSERT/DELETE einfügen/
entfernen
0702 22240 066450 JMP INDL 11 CLEAR löschen
0703 22241 066130 JMP REO 12 ACC
0704 22.242 066662 JMP REST 13 PRINT ALL alles drucken
0705 22243 066622 JMP PALL 14 EOL -
0706 22244 066513 JMP EOLL
0707
Seite 255 22245 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
R16 LDB TEMPS DEFINED KEY?
definierte Taste?
0709 22246 025472 ADA M10 NO nein
0710 22247 000141 SAP RE2 SHIFT? Verschiebung?
o711 22250 070253 SZB *+3 YES ja
0712 22251 074150 ADA .74
0713 22252 003644 STA T9
0714 22253 031661 JMP KEYPR
0715 067122 CODE < 40 B?
0716* 22254 RE2 ADA M22 YES ja
0717 22255 003642 SAM R13 CODE <140B?
0718 22256 070612 ADA M64 NO nein
0719 22257 000154 SAP RE3
0720 070353
309884/ 1370
0721* 0722 0723
0724 0725 0726 0727 0728* 0729 0730 0731
0732 0733 0734 0735 0736 0737 0738 0739* 0740 0741 0742 0743
22260 074250
22261 000040 '
22262 070212
22263 003645
22264 031661
22265 066314
22266 021661 RE3
22267 026010
22270 160175
22271 066300 R13
22272 000151
22273 070113
22274 000101
22275 000041
22276 031661
22277 066314
22300 021661 RDD
22301 027676
22302 005654
22303 160175
0744 22304 066043
0745 22305 031661
0746 22306 160170
0747 22307 021661
0748 22310 027714
0749 22311 005654
0750 22312 162015
0751 22313 066176
SZB *+5 ADA .31
SAM RE3 ADA .97 STA T 9 JMP RE5
LDA T 9 LDB VALUP JSM TSRHA,I
JMP RDD ADA M3 2 SAP *+2 ADA B100 ADA .32 STA T 9 JMP RE 5
LDA T 9 LDB MULTP ADB T4 JSM TSRHA,I
SHIFT? Verschiebung?
YES, LOWER CASE LETTER? ja, unterer Fall Buchstabe
NO nein YES ja
JMP WHAT
STA T 9
JSM CLERA,I
LDA T 9 LDB MULTN ADB T4 JSM MCOUT,I
JMP RE 6
CODE IN VALUE TABLE? Code in Wert-Tabelle?
NO nein CODE < 4OB? NO nein YES ja
CODE IN MULTI-CHARACTER TABLE?
Code in Vielzeichen-Tabelle
NO, QUESTION IT nein, fragen
CLEAR THE DISPLAY Anzeige löschen
OUTPUT THE MNEMONIC Ausgabe mnemonisch
30988 4/ 1370
&03
TERMINAL OPTION BLOCK Terminalwahl-Block, Endgerätwahl-Block
0753 0754
22314 021661 RE5 LDA T9
0766* 0767
0768+ 076 9* 07'70* 0771
0772 0773 0774 0775 one 0777 0778+ 0779+
22315 051662
AND SHFLG ALL CONVERSION COMPLETE ganze Umwandlung komplett
EXCEPT FOR ASCII-SHIFT & ASCII-CNTRL
ausgenommen für ASCII-Verschiebung
0755 22316 070056 CMA A CURSOR? Positionsa
0756 22317 070137 LDB T9 YES ja
0757 22320 021661 LDA SHFLG REPLACE
Zeichen
CHARACTER
ersetzen
0758 22321 041662 I OR B SCROLL IF NECESSARY
wenn nötig
0759 22322 074257 AND CTFLG
0760 22323 051663 AND BKPTR
0761 22324 025704 LDB RE9
0762 22325 074210 SZB BKPTA
0763 22326 027637 LDB OUTCR
0764 22327 061017 JSM FW2
0765 22330 O6644O JMP
22331 061016 RE9 JSMONEXT
LEFTARROW Pfeil links
22332 021400 LEFT LDA BADDR PUT CHARACTER AT END
OF LINE
Zeichen ans Zeilenende stellen
AND SCROLL IF NECESSARY und SCROLL wenn nötig
IS LAST CHARACTER AT RIGHT
END OF DISPLAY? ist letztes Zeichen am rechten Ende der Anzeige?
22333 000151
22334 070076
22335 001402
22336 070113
22337 0454O2 22340 066176
ADA M32
TCA
ADA OTPTR
SAP *+2
ISZ OTPTR
JMP RE NO, SCROLL nein, SCROLL
RIGHTARROW Pfeil rechts
309884/ 1
0780+ 0781
2333903
22341 021402 RITF LDA OTPTR
22342 010212
22343 066176
22344 055402
22345 066176
CPA .SLBF JMP RE DSZ OTPTR JMP RE IS FIRST CHARACTER AT
LEFT END OF DISPLAY? ist erstes Zeichen am linken Ende der Anzeige?
NO, SCROLL nein, SCROLL
TERMINAL OPTION BLOCK Terminalwahl-Block, Endgerätwahl-Block
0787* 0788*
0789*
0793 +
0796*
DUMP I/O BÜFFER FOR MODEM MESSAGE
Auszug I/O-Puffer für Betriebsart-Nachricht
22346 021655 DIOB LDA T5
22347 070110 SZA *+2 22350 164203 JMP ACTSA,I
22351 024211
22352 035740
22353 160261
22354 066147
LDB .BUFA STB TMP
JSM IOSTA,I JMP R17 IS PRINTER BUSY? arbeitet Drucker?
(STOP KEY RETURN) (Tastenrückkehr stop)
0799* 22355 021740 DI02 LDA TMP GET A CHARACTER
Zeichen holen
0800 22356 025740 LDB TMP
0801 22357 070002 SAR 1
0802 22360 070517 LDA A,I
0803 22361 074111 SLB ++2
0804 22362 070346 RAR (X)
0805 22363 070342 SAR 8
0806 22364 010031 CPA EOL IS IT EOL?
ist es EOL?
0807 22365 066374 JMP DI03 YES
0808
309884/ 1370
233 3308 IOR SLCOD
0809 22366 041447 STF 1
0810 22367 172741 OTA 1
O811 22370 172141 STC 1,C
0812 22371 173601 ISZ TMP
0813 22372 045740 JMP DIÖ2
0814 22373 066355
0815* LDA LNFD
0816 22374 020061 DI03 IOR SLCOD
0817 22375 041447 STF 1
0818 22376 172741 OTA 1
0819 22377 172141 STC 1fC
0820 . 22400 173601 JMP R17
0821 22401 066147
NO, OUTPUT IT nein, ausgeben
Seite 258 TERMINAL OPTION BLOCK
Terminalwahl-Block", Endgerätwahl-Block
160170 RECL JSM CLERA. ,I CLEAR THE DISPLAY
Anzeige löschen
0825* 024211 LDB .BUFA
0826* RECALL Rückrufen 035740 STB TMP
0827* 061053 REC1 JSM GTMP GET A CHARACTER
Zeichen holen
0828 22402 010031 CPA EOL
0829 22403 066176 JMP RE6 DONE fertig
0830 22404 061016 JSM ONEXT OUTPUT TO DISPLAY
Ausgabe an Anzeige
0831 22405 021400 LDA BADDR
0832 22406 000151 ADA M32
0833 22407 070076 TCA
0834 22410 001402 .ADA OTPTR
0835 22411 070113 SAP ++2
0836 22412 O454O2 ISZ OTPTR
0837 22413 066405 JMP REC1
0838 22414
0839 22415 BACKSPACE CURSOR Rückwärtsschritt-Positionsanzeig
0840 22416
0841 22417
0842*
0843*
309884/1370
0844* 22420 021704 BK£
084 5 22421 072310
0846 22422 021400
0847 22423 010212
0848 22424 066176 BK3
0849 22425 031704
0850 22426 066433
0851
60S
LDA BKPTR RZA BK2
LDA BADDR CPA .SLBF
JMP RE 6 STA BKPTR JMP BK1
0852* 22427 010212 021704 BK2 CPA .SLBF
0853 22430 066176 071310 JMP RE 6
0854 22431 011402 CPA OTPTR
0855 22432 055402 DSZ OTPTR
0856 22433 055704 BK1 DSZ BKPTR
0857 22434 066176 JMP RE 6
0858
0859* FORWARDSPACE CURSOR Vc >rwärt
0860*
0861* 22435 FORD LDA BKPTR
0862 22436 SZA BK3
0863
FIRST BACKSPACE? erster Rückwärtsschritt
YES ja
NULL RECORD?
Null-Aufnahme?
YES ja
PUT POINTER AT LAST
CHARACTER
Hinweismarke zum ersten Zeichen
ALREADY AT FIRST CHARACTER? Bereits beim ersten Zeichen
X-Cjfc> 3 3.
LEFTMOST ON SCREEN? weitestmöglich links auf Schirm?
YES, SCROLL ja, SCROLL
BACKSPACE CURSOR Rückwärtsschritt Positionsanzeige
IGNORE IF NO BACKSPACE
HAS OCCURRED
ignorieren, wenn kein Rückwärtsschritt vorgekommen
22437 045704
22440 021402 FW2
22441 000041
22442 011704
22443 011400
22444 066176
22445 045402
22446 066176
ISZ BKPTR LDA OTPTR ADA .32 CPA BKPTR
CPA BADDR
JMP RE 6 ISZ OTPTR JMP RE6 ON RIGHT OF SCREEN? rechts auf Schirm?
YES, LINE FULL? ja, Zeile voll?
NO, SCROLL nein, SCROLL
309884/1370
2333308
Seite 259 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
066176 JMP 055400 DSZ RE 6
0873* Ο257Ο4 INDL LDB BKPTR CHECK CURSOR POSITION
Positionsanzeiger-Stellung
prüfen
0874+ 075710 SZB +-2 ANY BACKSPACE YET?
schon ein Rückwärts
schritt?
0875* 021472 LDA TEMPS
0876 INSERT/DELETE Einfugen/Herausnehrnqn 070650 SZA INSR SHIFT FLAG SET?
Verschiebungsniarke ge
setzt
0877
0878 22447 DELETE herausnehmen
0879 22450
0880 22451 22454 BADDR YES, MOVE END-OF-LINE
0881 + 22452
0882+ 22453
0883 +
0884
POINTER
ja, Zeilenend-Hinweis-
marke bewegen
0885 22455 035740 025400 INSR STB TMP LAST CHARACTER?
letztes Zeichen?
0886 22456 015400 DLC1 CPB BADDR YES, OUTPUT A BLANK
ja, Ausgabe Leerstelle
0887 22457 066507 JMP INS2+1
0888" 22460 O4 5740 ISZ TMP GET CHARACTER
Zeichen holen
0889 22461 061053 JSM GTMP
0890 22462 055740 DSZ TMP
0891 22463 055740 DSZ TMP STORE SHIFTED LEFT ONE
linkes verschobenes
speichern
0892 22464 024111 LDB TMPA
0893 22465 061017 JSM OUTCR
0894 22466 02574ο LDB TMP
0895 22467 066456 JMP DLC1
0896+
0897+" INSERT einfügen
0898+
0899 22470 LDB BADDR
309884/ 1370
- 6O4- -
233 3908 hoi SLEND
0900 22471 014236 CPB RE 6
0901 22472 066176 JMP M1
0902 22473 004132 ADB TMP
0903 22474 035740 INS1 STB GTMP
0904 22475 061053 JSM TMP
0905 22476 025740 LDB BKPTR
0906 22477 015704 CPB INS 2
0907 22500 066506 JMP TMPA
0908 22501 024111 LDB OUTCR
0909 22502 061017 JSM TMP
0910 22503 025740 LDB M3
0911 22504 004134. ADB
0912 0913* 0914
22505 066474
JMP INS1
22506 045400 INS2 ISZ BADDR
0915 22507 020041 LDA .32
0916 22510 024111 LDB TMPA
0917 22511 061017 JSM OUTCR
0918 22512 066176 JMP RE 6
LINE FULL Zeile voll
GET CHARACTER
Zeichen holen
AT CURSOR POSITION? bei Positionsanzeiger-Stellung?
YES ja
NO, MOVE RIGHT ONE nein, rechtes bewegen
BACK UP TO NEXT CHARACTER
TO LEFT zum nächsten linken Zeichen zurückgeben
UPDATE END-OF-LINE
POINTER Zeilenend-Hinweismarke auf den neuesten Stand bringen
INSERT A BLANK Leerstelle einfügen
Seite 260 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
0920* 0921 + 0922* O923
PROCESS STORE KEY Tastenspeicherung verarbeiten
22513 062542 EOLL JSM MTIB MOVE RECORD TO I/O BUFFER Aufnahme zum I/0-Puffer bewegen
30988 A/13 7 Π
0924
0925 0926
0927+ 0928
0929 0930
0931 0932
0933* 0934
0935
0936 0937
0938
0939 0940
0942 0943 0944 0945 0946
0948 + 0949+ 0950+
0951 + 0952
22514 060373
22515 O1OO12
22516 066134
JSM ICWI
CPA JMP RE1
22517 062552 E0L1 JSM CRIT
22520 061062
22521 066134
22522 060750
22523 066620
22524 060675
22525 035427
22526 010031
22527 164204
22530 023640
22531 22532 22533 22534 22535 22536 22537 22540 22541
131706 045706 023777 131706 055400 020031 024012 160253 164203
JSM GFRST
JMP RE1
JSM DIGCK
JMP MAINS
JSM INTCK-1
STB .LNUM
CPA EOL
JMP DELSA,I
LDA B5K
STA SBPTR,I
ISZ SBPTR
LDA OPCOD
STA SBPTR,I
DSZ BADDR
LDA EOL
LDB .1
JSM CHRSA,I
JMP ACTSA,I
GE1]· CHARACTER COUNT Zeichenzählung holen
IGNORE NULL RECORD Null-Aufnahme ignorieren
SAVE CRITICAL PARAMETERS kritische Parameter sichern
GET FIRST CHARACTER erstes Zeichen holen
(NULL RECORD RETURN) (Null-Aufnähme zurück)
DIGIT? Ziffer?
NO, GIVE TO SYSTEM nein, zum System geben
BUILD LINE %
Zeilen fr aufbauen STORE LINE^
Zeilen# speichern
END OF LINE? Zeilenende?
YES,DELETE LINE ja, Zeile herausnehmen
OPCODE 2W/SPECIAL BIT
SUBROUTINE TO MOVE RECORD TO I/O BUFFER Subroutine um Aufnahme zum I/O-Puffer zu bewegen
22542 045623 MTIB ISZ PEND
22543 020031
22544 061016
LDA EOL JSM ONEXT GUARANTEE FOOM FOR EOL Platz für EOL garantieren
STORE EOL speichern
3 09884/1370
2333308
0955 22545 024233 LDB BEND ■ MOVE THE RECORD AND
0956 22546 035476 STB TEMP3 - RETURN
Aufnahme
zurück
bewegen und
0957 22547 035477 * STB TEMP 4
0958 22550 004046 ADB .41
0959 22551 065122 JMP MVTOH+1
0960*
0961*
0962*
0963
0964
0965
0966
0967
0968*
0969
o970
0972
SUBROUTINE TO SAVE CRITICAL PARAMETERS (T1 THRU T7) Subroutine um kritische Parameter zu sichern (T1 bis T7)
22552 025450 CRIT
22553 076210
22554 024211
22555 061337
22556 061344
22557 023646
22560 027647
22561 170004
22562 170004
22563 170402
LDB PMODE RZB *+4 LDB .BUFA JSM NDWRT
JSM CRLF1
LDA AT1 LDB AT1S XFR XFR RET
PRINT ALL? alles drucken? YES ja
(A-REG HAS COUNT) (A-Register hat Zählung)
309 8 β Α / 1370
233 3 9 Q 8
TERMINAL OPTION BLOCK Terminalwahl-Block, Endgerätwahl-Block
0975*
0976* PROCESS EXECUTE KEY'
0977*
0978 22564 062542 OTPT
0979 22565 060373
0980 22566 010012
0981 22567 066134
0982*
0983 22570 062552
0984 22571 061062
0985 22572 000000
0986 22573 027714
0987 22574 005654
0988 22575 16Ot75
0989 22576 066620 Tastenausführung* verarbeiten
0990 22577 002601
0991 22600 070016
0992*
0993 22601 066602
0994 22602 067013
0995 22603 066620
0996 22604 066620
0997 22605 066620
0998 22606 066710
0999 22607 066620
1000 22610 066620
1001 22611 066620
MOVE RECORD TO I/O BUFFER Aufnahme zum I/O-Puffer bewegen
GET CHARACTER COUNT Zeichenzählung holen
IGNORE NULL RECORD NullAufnahme ignorieren
SAVE CRITICAL PARAMETER kritische Parameter sichern
GET FIRST CHARACTER erstes Zeichen holen
(NULL RECORD RETURN) (Null-Aufnahme zurück)
,1 SEARCH MULTI-CHARACTER
TABLE
Viel-Zeichen-Tabelle suchen
JMP MAINS NOT FOUND, GIVE TO MAIN
SYSTEM
nicht gefunden, zum Hauptsystem geben
JSM MTIB
JSM ICNT
CPA .1
JMP RE1
JSM CRIT
JSM GFRST
NOP
LDB MULTN
ADB T4
JSM TSRHA
ADA
EXA
*+2
JMP *+1
JMP XLIST O LIST Liste
JMP MAINS 1 CONT
JMP MAINS 2 TRACE verfolgen JMP MAINS 3 RUN laufen
JMP XFECH 4 FETCH abrufen JMP MAINS 5 LOAD laden
JMP MAINS 6 STORE speichern JMP MAINS 7 NORMAL
30988/4/1370
2333908
1002 22612 066620
1003 22613 066620
1004 22614 066620
1005 22615 066620
1006 22616 066701
1007 +
1008 22617 067067
1009*
1010 22620 045416
1011
22621 O64357
JMP MAINS 8 FIX fest JMP MAINS 9 FLT gleitend JMP MAINS 10 SCRATCH einschreiben JMP MAINS 11 AUTO JMP XEXIT 12 EXIT ("STOP" KEY)
Ausgang ("Stop"-Taste)
JMP XCOMP 13 COMP
ISZ MODE INDICATE CALC MODE
Rechenbetrieb anzeigen
JMP RETN2 RETURN TO MAIN SYSTEM Zurück zum Hauptsystem
Seite 262 .TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
1013* 1014 + 1015* 1016
1017
PRINT ALL alles drucken
22622 160170 PALL
22623 021450
1018 22624 070130
1019 22625 070742
1020 22626 031450
1021 22627 026634
1022 2*2630 070110
1023 22631 026637
1024 22632 020020
1025 22633 066145
1026+
1027 22634 001472 MON
1028 22635 047516
22636 020040
1029 22637 001500 MOF
1030 22640 047506
22641 043040
1031*
1032 CHANGE PARITY
JSM CLERA,I CLEAR THE DISPLAY Anzeige löschen
LDA PMODE REVERSE THE FLAG Marke umkehren
SIA *+2 SAR 1 6 STA PMODE LDB MON SZA ++2 LDB MOF LDA .3 JMP R10
DEF ++++2-ID-ID ASC 2,ON
DEF ++++2-ID-ID ASC 2,OFF
309884/1370
biZ
1033* 22642 160170 EVOD - JSM CLERA,I CLEAR THE DISPLA
Anzeige löschen
1034 22643 021653 LDA T3 REVERSE THE FLAG
Marke umkehren
1035 22644 072113 SAP ++2,S
1036 22645 070073- SAP *+1 ,C
1037 22646 031653 STA T3
1038 22647 026654 LDB MEV
1039 22650 070113 SAP *+2
1040 22651 026657 LDB MOD
1041 22652 020021 LDA .4
1042 22653 066145 JMP R10
1043
1044* 22654 001532 MEV DEF *+*+2-ID-ID
1045 22655 042526 ASC 2, EVEN
1046 22656 042516
22657 001540 MOD DEF *+++2-ID-ID
1047 22660 047 504 ASC 2,ODD
1048
22661 042040
Seite 263 ACC Termin
1050*
1051* 22662
1052* 22663
1053" 22664 021472
1054 22665 070210
1055 22666 020101
1056 031661
1057 22667 066314
1058* 22670
1059 22671 020020
1060 22672 026674
1061 22673 005654
1062 061335
1063 066176
1064*
TERMINAL OPTION BLOCK Terminalwahl-Block, Endgerätwahl-Block
SZA *+4 LDA B100 STA T 9 JMP RE 5
LDA .3 LDB RESM ADB T 4 JSM NPWRT JMP RE6
CHECK SHIFT FLAG Verschiebunsmarke prüfen
USE "φ" benutzen
USE "RES" benutzen
309884/1370
1065 22674 001572 RESM DEF *+*+2-ID-ID LDA .1E4 021651 XEXIT LDA T1 TURN OFF CARRIER
Träger abschalten
C
1066 22675 051105 ASC 2,RES JMP RUNA,I 172741 STF 1
22676 051440 172141 OTA 1
1067* EXIT FROM TERMINAL MODE
Ausgang von Terminal-Betrieb
173601 . STC 1 ,C
1068* CLEAR VAR Variable löschen 024116 LDB QTOP ("200OB)
1069* 22701 035462 STB REEDL RESTORE REED LINK
REED-Verbindung zurück
stellen
1070 22677 020056 CLVR 22702 164174 JMP RDYDA,]
1071 22700 164171 22703
1072* 22704
1073* 22705
1074* 22706
1075 22707
1076
1077
1078
1079
1080
1081
Seite 264 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
FETCH
abrufen
22710 162013 XFECH JSM GETLN,I GET PARAMETER holen
22711 020012 LDA
22712 066713 JMP *+1 NOP
22713 00013 2 ADA M1
22714 031431 STA CLINE
DOWNARROW Pfeil nach unten
22715 025424 DNRW LDB PBUFF CHECK FOR NULL PROGRAM
auf Null-Programm prüfen
22716 015423
CPB PBPTR
309884/1370
1099* 1100* 1101*
1103 1104 1105 1106 1107
1109* 1110+ 1111*
1118+ 1119* 1120*
1122
1124 1125
1126
1127 1128
2333308
22717 066134
22720 062731
22721 066726
JMP RE1 JSM DNRWS JMP UPR1
UPARROW Pfeil nach oben
22722 025424 UPRW LDB PBUFF CHECK FOR NULL PROGRAM auf Null-Programm prüfen
22723 015423
22724 066134
22725 062737
22726 070742 UPR1
22727 031430
22730 066147
CPB PBPTR JMP RE1 JSM UPRWS SAR STA LNINC
JMP R17 GET OUT OF AUTO aus AUTO nehmen
DOWNARROW SUBROUTINE für Pfeil nach unten
22731 021431 DNRWS LDA CLINE
22732 070070 SIA *+1
22733 061075 JSM FNDPS
22734 066747 JMP U3
22735 066753
22736 066753
JMP U
JMP U5 FIND LINE Zeile auffinden
PAST END OF PROGRAM hinter Programmende
BETWEEN LINES zwischen Zeilen
UPARROW SUBROUTINE für Pfeil nach oben
22737 021431 UPRWS LDA CLINE
22740 072110 RZA *+2
22741 020056 LDA . 1E4
22742 061075
22743 066747
22744 066745
22745 015424
22746 066753
JSM FNDPS JMP U
JMP *+1
CPB PBUFF JMP U CLINE = O? Neigung = O? YES, FIND LAST LINE OF PROGRAM
ja, letzte Programmzeile
auffinden FIND LINE Zeile auffinden
PAST END OF PROGRAM hinter Programmende
BETWEEN LINES zwischen Zeilen
FIRST LINE? erste Zeile?
YES ja
30988W 1
OFHQINAL INSPECTED
11 29* 22747 021720 U3 LDA LASTN
11 30 22750 060742 JSM FND
11 31 22751 070742 SAR 16
11 32 22752 031656 . STA T6
11 33
11 34* 22753 035661 U5 STB T9
11 35 22754 035472 STB TEMPS
11 36
GET PREVIOUS LINE vorherige Zeile holen
SAVE ADDRESS
Adresse sichern
Seite 265 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
OUTPUT A LINE TO DISPLAY BUFPER
eine Zeile zum Anzeige-Puffer auszugeben
160170 LNOUT JSM CLERAj rI CLEAR THE DISPLAY
Anzeige löschen
I GET NO-LINE-NUMBERS FLAG
1138* - 125661 LDB T9,I GET LINE # Zeilen # hole
1139* SUBROUTINE TO
Subroutine um
045661 TSZ T9
1140* 035431 STB CLINE UPDATE CLINE
Neigung auf den neuesten
Stand bringen
1141* LOCATION IS IN T3 Plazierung ist in T3
1142* 021661 LDA T9
1143 22755 070070 SIA jK+1
1144 22756 070517 LDA A,I
1145 22757 050065 AND OPMSK (07 6000)
1146 22760 013777 CPA OPCOD TEXT?
1147* 066771 JMP *+3 YES ja
1148 22761 025472 LDB TEMPS
1149 22762 166014 JMP LISTS,
1150 22763
1151 22764 021660 LDA T8
1152 22765
1153 22766
1154 22767
1155 22770
1156*
1157 22771
Nicht-Zeilen-Zahlen-Marke holen
30988 U /1370
1158 22772 072110 RZA *+2
1159 22773 160210 JSM OUTIA,I
1160 22774 121661 LDA T9,I
1161 22775 045661 ISZ T9
1162 22776 025661 LDB T9
1163 22777 050104 AND B177
OUTPUT LINE P Ausgabe Zeilen ff
CALCULATE CHARACTER
COUNT
Zeichenzählung berechnen
1164 23000 000134 ADA M3 CALCULATE CHARACTE
Zeichen-Hinweismar
1165 23001 070037 ADB A
1166 23002 070744 SAL 1 OUTPUT TO BUFFER
Ausgabe zum Puffer
1167 23003 074537 LDB B,I
1168 23004 074404 SBL 8
1169 23005 074110 SZB *+2
1170 23006 070070 SIA *+1
1171
1172
23007
23010
025661
074744
LDB
SBL
T9
1
1173 23011 074070 SIB sK+1
1174 23012 065335 JMP NPWRT
rechnen
TERMINAL OPTION BLOCK Terminalwahl-Block, Endgerätwahl-Block
1176* 1177* 1178* 1179
LIST ROUTINE Listen-Routine -·
23013 061055 XLIST JSM GNEXT
23014 013062
CPA B130
GET NEXT CHARACTER nächstes Zeichen holen
309884/1370
1181 1182 1183 1184
1185
1186 1187 1188 1189 1190
1192 1193 1194* 1195
1196 1197 1198 1199 1200
1206+
23015 067051
23016 013063
23017 067053 -
23020 055400
23021 162013 XLIS1
23022 020012
23023 024056
23024 000132
23025 031431
23026 035656
23027 025424
23030 015423
23031 066130
23032 062731 XLIS2 JSM DNRWS
JMP XLIS3 YES ja
CPA B43 - " # " ?
JMP XLIS4 YES ja
DSZ BADDR NO, RESET POINTER
Nein, Hinweismarke null
stellen
JSM GETLN, I GET OPTINAL LINE NUMBERS
Wahl-Zeilen-Zahlen holen
LDA .1
LDB .1Ε4
ADA Μ1
STA CLINE
STB Τ6 SAVE ENDING LINE NUMBER
Endzeilenzahl sichern
LDB PBUFF CHECK FOR NULL PROGRAM
auf Null-Programm prüfen
CPB PBPTR
JMP REO
23033 025431
23034 074076
23035 005656
23036 074152
23037 025442
23040 014040
23041 067064
23042 021651
23043 011447
23044 067057
23045 060373
23046 061337
23047 061344 23050 067032
LDB CLINE TCB
ADB T SBM #+3 LDB STPFL
CPB JMP LOUT LDA T1 CPA SLCOD
JMP XLIS5
JSM ICNT JSM NDWRT
JSM CRLF1 JMP XLIS2 OUTPUT LINE TO DISPLAY BUFFER
T6 - CLINE Neigung
CHECK STOP FLAG Stop-Marke prüfen
CHECK SELECT CODES Auswahl-Codes prüfen
GET CHARACTER COUNT Zeichenzählung holen
PRINT THE LINE Zeile drucken
3 09884/1370
1211* 1212
1218+
1222*
1225*
23339Q8
23051 045660 XLIS3 ISZ T8
23052 067013 JMP XLIST
23053 060664 XLIS4 JSM LNUM
23054 074204
23055 035447
23056 067021
SBL STB SLCOD JMP XLIS1
23057 062542 XLIS5 JSM MTIB
23060 063246
23061 066032
JSM MDRVR
JMP XLIS2
23062 000130 Βΐ3ο OCT
23063 000043 Β43 OCT
23064 024127 LOUT LDB Β170Κ
23065 035447 STB SLCOD
23066 066130 JMP REO
SET NO-LINE-NUMBERS FLAG
Nicht-Zeilen-Zahlen-Marke
setzen
FETCH SELECT CODE Auswahlcode abrufen
MOVE RECORD TO I/O BUFFER Aufnahme zum I/0-Puffer bewegen
CALL MODEM DRIVER MODEM-Aunstalerung rufen
Seite 267 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwähl-Block
123O# 1231* 1232*
1236 1237
1238 1239 1240
COMPILE ROUTINE Kompilier-Routine
23067 020132 XCOMP LDA M1
23070 031433
23071 020041
23072 031707
23073 162013
23074 020012
23075 024056
23076 000132
STA TFLAG LDA STA BLANK JSM GETLN7I GET OPTIONAL LINE NUMBERS Wahl-Zeilen-Zahlen holen
LDA LDB .1E4 ADA M1
30988/4/1370
1244 1245 1246+ 1247
1252+
1259+
23077 031431
23100 035656
23101 025424
23102 015423
23103 067117
- «tt—
STA CLINE STB T6
LDB PBÜFF
CPB PBPTR JMP XC0M2
23104 062731 XC0M1 JSM DNRWS
23105 025431
23106 074076
23107 005656
23110 074352
23111 062542
23112 023646
23113 027647
23114 170004
23115 170004
23116 064357
23117 070742 XC0M2 SAR
23120 031433 STA TFLAG
23121 066130 JMP REO
LDB CLINE
TCB
ADB T6
SBM XC0M2
JSM MTIB
LDA AT1
LDB AT1S
XFR
XFR
JMP RETN 2
SAVE ENDING LINE NUMBER Endzeilen-Zahl sichern
CHECK FOR NULL PROGRAM auf Nu11-Programm prüfen
DONE fertig
OUTPUT LINE TO DISPLAY
BUFFER
Ausgangszeile zum Anzeigepuffer
T6 - CLINE Neigung
MOVE LINE TO I/O BUFFER Zeile zum I/O-Puffer bewegen
GO COMPILE kompilieren
Seite 268 TERMINAL OPTION 021661 KEYPR LDA sf inie
1264+ 010022 CPA
1265+ PROCESS DEFINED KEY di 067212 JMP T9
1266^ ΌΐΟΟ23 CPA .5
1267 23122 067215 JMP SETAS
1268 23123 010024 CPA .6
1269 23124 067226 JMP SETAC
1270 23125 .7
1271 23126 PRST
1272 23127
1273 23130
CHECK FOR SPECIAL FUNCTION auf Spezialfunktion prüfen
SET ASCII-SHIFT ASCII-Verschiebung setzen
SET ASCII-CNTRL setzen
309884/1370 SET PRINT/STORE Drucken/Speichern setzen
1274 23131 010025 CPA .8 CHANGE PARITY
Parität wechseln
1275 23132 066642 JMP EVOD
1276 23133 010026 CPA .9 TRANSMIT übertragen
1277 23134 067237 JMP XMIT
1278+ SEARCH FOR KEY, STARTING
1279 23135 024166 LDB FWAM AT FWAM
nach Tastensuche bei FWAM
1280 23136 015405 KEY1 CPB FWUP UNDEFINED Undefiniert
1281 23137 066043 JMP WHAT
1282 23140 074517 LDA B,I
1283 23141 074070 SIB #+1
1284 23142 011661 CPA T9 FOUND IT gefunden
1285 23143 067146 JMP #+3
1286 23144 074437 ADB B,I KEEP SEARCHING
weiter suchen
1287 23145 067136 JMP KEY1
1288*
1289 23146 074517 LDA B,I
1290 23147 074070 SIB #+1 NULL DEFINITION?
Null-Definition
1291 23150 010012 CPA .1 YES ja
1292 23151 066043 JMP WHAT NO, SAVE LENGTH WORD
nein, Wortlänge sichern
1293 23152 031466 STA LOCL1
1294 23153 074517 LDA B,I
1295 23154 074070 SIB #+1 IS THIS A TYPING AID?
Druckhilfe?
1296 23155 070110 SZA *+2 NO nein
1297 23156 066043 JMP WHAT YES ja
1298 23157 074744 SBL 1 SAVE CHARACTER POINTER
Zeichen-Hinweismarke si
chern
1299 23160 035740 STB TMP
1300 23161 021466 LDA LOCL1
1301 23162 070744 SAL 1 ASSUME ODD COUNT
ungerade Zählung annehmen
1302 23163 000136 ADA M5 SAVE CHARACTER COUNT
Zeichenzählung sichern
1303 23164 031473 STA CCNT
1304 23165 070037 ADB A
309884/1370
2333908
1305 23166 074517
1306 23167 050105
1307 23170 070450
1308 23171 045473
1309 23172 010100
1310 23173 067175
1311 23174 066201
1312 23175 074517
1313 23176 050157
1314 23177 040027
1315 23200 067206
1316 23201 074517
1317 23202 013210
1318 23203 067205
1319 23204 066201
LDA B,I
AND B377 SZA #+9 ISZ CCNT
CPA ASTR1 JMP #+2 JMP R4 6 LDA B, I' AND M256 IOR AIEX1 JMP *+6 LDA B,I CPA ASTR2
JMP *+2 JMP R4 6
LOOK ΛΤ LAST WORD auf letztes Wort sehen
CORRECT COUNT richtige Zählung
CHECK FOR #
IEX CODEN
CHECK FOR * auf # prüfen
Seite 269 23205 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
ASTR1 LDA AIEX2 IEX CODE
1320 23206 023211 ASTR2 STA B,I
1321 23207 074557 AIEX1 JMP R46 EXECUTE IMMEDIATELY
sofort ausführen
1322 066201 AIEX2
1323* ' 00100 EQU B52
1324 23210 OCT 025000
1325 00027 Ο25ΟΟΟ SETAS EQU .11
1326 23211 OCT 005400
13 27 005400
1328* SETAC
1329* 23212 LDB B20
1330 23213 024033 STB SHFLG
1331 23214 035662 JMP *+3
1332 23215 067217 LDB .63
1333 23216 024054 STB CTFLG
1334 23217 035663 JSM KEYIN,I
1335 23220 162012 CPA B37 7 DUMP I/O BUFFER?
1336 010105
Auszug I/O-Puffer?
30988W1370
1339*
1342* 1343
1349*
1352* 1353* 1354
1355
1356 1357
1358* 1359 1360 1361
23221 066346
23222 066210
JMP DIOB JMP R26 YES ja
23223 002450 MSSG1 DEF *+*+2-ID-ID
23224 052105 ASC 2,TEXT
23225 054124
23226 160170 PRST
23227 020062
23230 031655
23231 027234
23232 020021
23233 066145
JSM CLERA,I CLEAR THE DISPLAY Anzeige löschen
LDA FLGBT STA T LDB STMS LDA JMP R10
23234 002472 STMS DEF ++*+2-ID-ID
23235 051501 ASC 2,SAVE
23236 053105
23237 062542 XMIT JSM MTIB
23240 060373
23241 010012
23242 066134
23243 062552
23244 063246
23245 066134
JSM ICNT
CPA JMP RE1
JSM CRIT JSM MDRVR JMP RE1 MOVE RECORD TO I/O BUFFER Aufnahme zum 1/O1-Puffer bewegen
GET CHARACTER COUNT Zeichenzählung holen
IGNORE NULL RECORD
Null-Aufnahme ignorieren
CALL MODEM rufen
Seite 270 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
1362* 1364* 1365* 1366
MODEM OUTPUT DRIVER MODEM-Ausgang-Ansteuerung
23246 021651 MDRVR LDA T1 GET SELECT CODE Auswahlcode holen
309884/1370
23 33908 IOR f 84001 WAIT FOR MODEM TO BE
1367 23247 043641 JSM IOST READY
auf MODEM warten bis
fertig
1368 23250 063625 STOP-FLAG RETURN
Stop-Marke zurück
RET
1369 23251 170402
1370+ 1371
1372
23252 172741
23253 020211
1373 23254 031400
1374*
1375 23255 021400 .MDR1
1376 23256 O254OO
1377 23257 070002
1378 23260 070517
1379 23261 074111
1380 23262 070346
1381 23263 070342
1382 23264 010031
1383 23265 067271
1384 23266 063277
1385 23267 04 5400
1386 23270 067255
1387* 1
1388 23271 020031 MDR3
1389 23272 063277
1390 23273 020104
1391 23274 063277
1392 23275 173741
1393 23276 170402
STF 1 LDA .FUFA
STA BADDR
LDA BADDR LDB BADDR SAR 1
LDA A,I
SLB *+2 RAR 8 SAR 8 CPA EOL
JMP MDR3 JSM MDRS ISZ BADDR JMP MDR1
LDA CRTN JSM MDRS LDA B177 JSM MDRS CLF 1
RET
TURN OFF INTERRUPT Unterbrechung abschalten
SET TO START OF I/O BUFFER auf Start von I/O-Puffer setzen
FETCH TWO CHARACTERS zwei Zeichen abrufen
IS IT EOL?
ist es EOL?
YES ja
NO nein
OUTPUT CRTN Ausgabe
OUTPUT RUBOUT Ausgabe
30 9 8 8 Λ / 1 370
Seite 271 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
031661 MDRS STA T9 INCLUDE PARITY
Parität einschließen
1395* 025653 LDB T3
1396* O70111 SLA *+2
1397* 004062 ADB FLGBT
1398 SERIALIZING SUBROUTINE
Spezialisierungs-Subroutine
070002 SAR 1
1399 073650 RZA *-3
1400 23277 021661 LDA T9
1401 23300 074342 SBR 8
1402 23301 074017 ADA B INCLUDE STOP BITS Stop
1403 23302 040110 IOR B1400
1404 23303 070744 SAL 1
1405 23304 031661 STA T9 SET UP BIT COUNTER
Bit-Zähler aufsetzen
1406 23305 025652 LDB T2 SWITCH TO SINGLE STOP BIT
1407 23306 004106 ADB B777 (a) 130 BAUD
1408 23307
1409 23310 074700 ABR 15
1410 23311 004141 ADB M10
1411 23312 035470 STB L2T1 "OR" IN SELECT CODE
in Auswahlcode
23313 041651 MDR2 IOR T1 "OR" IN S03
1412 23314 040121 IOR B 4 000 LOAD I/O REGISTER
I/O-Register laden
1413 172141 OTA 1
1414 23315 172601 STC 1
1415- 23316 172741 STF 1 SHIFT DATA RIGHT
Daten nach rechts schiebe
1416 23317 021661 LDA T9
1417 23320 070002 SAR 1 SAVE SHIFTED DATA
verschobene Daten sichern
1418 23321 031661 STA T9 LOAD TIMING CONSTANT
1419 23322 025652 LDB T2
1420 23323
1421 23324
1422 23325
1423 23326
23327
23330
Zeitgabe-Konstante laden
309884/1370
2333908 - -β**--
fcifc
1424 23331 076030 RlB #
1425 23332 045470 · ISZ L2T1
1426 23333 067320 JMP MDR2
1427 23334 170402 RET
LOOP FOR TIMING Schleife für Zeitgabe
INCREMENT BIT COUNTER Zuwachs-Bit-Zähler
Seite 272 TERMINAL OPTION BLOCK
Terminalwahl-Block,,Endgerätwahl-Block
1429*
1430*
1431 +
1432
SERVICE MODEM INTERUPTS unterbricht 23335 040377 INTAD DEF 4O377B ADDRESS OF INTERRUPT TABLE
-1
Adresse der Unterbrechungstabelle -1
INITIALIZE DATA WORD Datenwort initialisieren
SET UP BIT COUNTER Bit-Zähler aufsetzen
LOAD HALF-WAIT Halb-warten laden
ALLOW FOR DELAY IN INTERRUPT ROUTINE
Verzögerung in Unterbrechungs-Routinge erlauben
LOOP FOR TIMING Schleife für Zeitgabe
GET SELECT CODE Auswahlcode holen
SAMPLE abtasten
1433 23336 001337
1434*
1435 23337 074742
1436 23340 023643
1437 23341 031446
1438 23342 021652
1439 23343 070000
1440 23344 000042
SBR 16
LDA M8
STA ADRSS
LDA T2
AAR 1
ADA .33
1441 23345 072030 RIA T1
1442* B4001
1443 23346 021651 MDU1 LDA 1
1444 23347 043641 IOR 1
1445 23350 172141 OTA 1
1446 23351 172601 STC 1
1447 23352 172741 STF
1448 23353 17 2241 LIA
30988A/1370
1449 23354 O74OO2
1450 23355 070111
1451 23356 004062
1452 23357 021652
1453 23360 072030
1454 23361 045446
1455 23362 067346
1456 23363 074402
1457 23364 035446
1458#
1459 23365 021655
1460 23366 070110
1461 23367 067507
1462+
1463 23370 014031
1464 23371 067463
1465 23372 004151
1466 23373 074152
1467 23374 004154
1468 23375 074112
1469 23376 067450
1471. 23377 021657
1472 234OO 072210
1473 23401 160170
1474 23402 020211
1475 23403 031657
1476*
1477 23404 021400
1478 23405 010236
1479 23406 067450
1480 23407 025400
1481 23410 045400
SBR 1
SLA *+2 ADB FLGBT LDA T2
RIA *
ISZ ADRSS JMP MDU1 SBR 9 STB ADRSS
LDA T 5 SZA *+2 JMP MDSS
CPB CRTN JMP SCRN ADB M32 SBM #+3 ADB M64 SBM *+2 JMP INT2
LDA T 7 RZA
POSITION OLD DATA WORD altes Datenwort positionieren
LOAD TIMING CONSTANT Zeitgabe-Konstante laden
LOOP FOR TIMING Schleife für Zeitgabe
SAVE CODE sichern
CODE < 4OB? YES ja CODE < 14OB? YES ja
OK TO CLEAR DISPLAY? klar für Anzeigelöschung?
JSM CLEAR,I CLEAR THE DISPLAY Anzeige löschen
LDA .BUFA STA T 7
LDA BADDR
CPA SLEND JMP INT2
LDB BADDR ISZ BADDR
STASH IN DISPLAY BuFFER in Anzeige-Puffer
AT END OF BUFFER am Puffer-Ende
30988W 137Q
1482 2341 1 074006
1483 2341 2 070002
1484 2341 3 070517
6*9
RBR 1 SAR 1 LDA A,I
FETCH WORD IN BUFFER Wort in Puffer abrufen
Seite 273 23414 TERMINAL OPTION BLOCK
Terminal-Block, Endgerät-Block
SBM *+2
1485 23415 074112 RAR 8
1486 23416 070346 AND M256
1487 23417 050157 IOR ADRSS
1488 23420 041446 SBM *+2,C
1489 23421 074132 RAR 8
1490 23422 070346 STA B,I
1491 074557
1492* 23423 LDA BADDR SCROLL IF NECESSARY
wenn nötig
1493 23424 Ο214ΟΟ ADA M3 2
1494 23425 000151 TCA
1495 23426 070076 ADA OTPTR
1496 23427 001402 SAP *+2
1497 23430 070113 ISZ OTPTR
1498 045402
1499* 23431 MDU 2 LDA T7 STASH IN I/O BUFFER
in I/O-Puffer
1500 , 23432 Ο21657 CPA IOEND
1501 23433 013506 JMP INT2 AT END OF BUFFER
1502 23434 067450 LDB T7
1503 23435 025657 ISZ T7
1504 23436 045657 RBR 1
1505 23437 074006 SAR 1
1506 23440 Ο7ΟΟΟ2 LDA A,I FETCH WORD IN BUFFE
Wort in Puffer abru
1507 23441 070517 SBM +-+2
1508 23442 074112 RAR 8
1509 23443 070346 AND M256
1510 23444 050157 IOR ADRSS
1511 041446
30988A/1370
233
1512 23445 074132 SBM *+2,C
1513 23446 070346 ' RAR 8
1514 23447 074557 STA B-I
1515+
1516 23450 021651 INT2 LDA T1
1517 23451 043641 IOR B4001
1518 23452 172141 OTA 1
1519 23453 172601 STC 1
1520 23454 172741 STF 1
1521 23455 172241 LIA 1
1522 23456 071511 SLA INT 2
1523 23457 021444 LDA SAVEA
1524 2346O 025445 LDB SAVEB
1525 23461 173741 CLF 1
1526 23462 170402 RET
1527*
1528 23463 020105 SCRN LDA B377
1529 23464 031443 STA KEYFG
1530*
1531 23465 021567 LDA T7
1532 23466 072110 RZA *+2
1533 23467 020211 LDA .BUFA
1534 23470 070137 LDB A
1535 23471 074006 RBR 1
1536' 23472 070002 SAR 1
1537 23473 070517 LDA A,I
1538 23474 074112 SBM *+2
1539 23475 070346 RAR 8
1540 23476 050157 AND M256
GET SELECT CODE Auswahlcode holen
WAIT FOR STOP BIT auf STOP-Bit warten
RESTORE A-REG RESTORE B-REG
zurückstellen
RESTORE INTERRUPT Unterbrechung zurückstellen
SAY TO DUMP I/O BUFFER
PUT EOL IN I/O BUFFER geben
30988W1370
Seite 274 TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-Block
1541 1542 1543 1544 1545 1546 1547 1548* 1549 1550* 1551# 1552* 1553* 1554 1555 1556 1557 1558 1559 1560 1561* 1562 1563 1564
1565 1566 1567
1568 1569 1570 1571 1572 1573 1574
23477 23500 23501 23502 23503 23504 23505
040031 074132 070346 074557 070742 031657 067450
IOR EOL SBM *+2,< RAR 8 STA B,I SAR 16 STA Έ7 JMP INT2
23506 003320 IOEND DEF IOBUF+IOBUF+80
STORE FROM INTERUPT von Unterbrechung speichern
23507 014031 MDSS
23510 067606
23511 004151
23512 074152
23513 OO4154
23514 074112
23515 067450
23516 021657
23517 072510
23520 021446
23521 060750
23522 067530
23523 035722
23524 024233
23525 035706
23526 020133
23527 067531
23530 020132 MDS1
23531 031657
23532 067450
CPB CRTN JMP MDS5 ADB M32 SBM #+3 ADB M64 SBM *+2 JMP INT2
LDA T7 RZA MDS2 LDA ADRSS
JSM DIGCK JMP MDS1 STB INTGR
LDB SBUFA STB SBPTR LDA M2 JMP Jf+2 LDA M1 STA T7 JMP INT2
CODE < 4OB? YES ja CODE < 14OB? YES ja
PROCESS FIRST CODE ersten Code verarbeiten DIGIT? Ziffer? NO nein
YES, SAVE IT ja, sichern
SQ9884/1370
1575+ 1576 1577 1578
1579 1580
1581 1582
1583 1585 1585 1586 1587
1588 1589 1590 1591 1592 1593 1594 1595 1596*
23533 010132 MDS2
23534 067450
23535 010133
CPA M1 JMP INT2 CPA M2
23536 067557 JMP MDS3
23537 021657 MDST LDA T7
23540 010236
23541 067450
23542 025657
23543 045657
23544 074006
23545 070002
23546 070517
23547 23550 23551 23552 23553 23554 23555 23556
074112 070346 050157 041446 074132 O7Ö346 074557 067450
CPA SLEND
JMP INT 2
LDB T7
ISZ T7
RBR 1
SAR 1
LDA A,I
SBM *+2
RAR CX)
AND M256
IOR ADRSS
SBM *+2,C
RAR 8
STA B,I
JMP INT 2
INGNORE? ignorieren?
IN LINE NUMBER? in.Zeilenzahl?
NO, STORE CHARACTER nein, Zeichen speichern
AT END OF BUFFER am Puffer-Ende
FETCH WORD IN BUFFER Wort in Puffer abrufen
TERMINAL OPTION BLOCK Terminalwahl-Block, Endgerätwahl-Block
1597
23557 021446 MDS3 LDA ADRSS PROCESS LINE NUMBER Zeilenzahl verarbeiten
1598 23560 0607 50 3 JSM DIGCK DIGIT? Ziffer?
1599 23561 067571 JMP MDS4 NO nein
1600 23562 021722 LDA INTGR
1601 23563 070704 SAL 2
1602 23564 001722 ADA INTGR
1603 23565 070744 SAL 1
1604 23566 074017 ADA B
1605 23567 031722 STA INTGR
!■.0 9-8 8 U /1370
63$
1606 23570 067450 JMP INT 2
1607*
1608 23571 021722 MDS4 LDA INTGR
1609 23572 031427 STA .LNUM
1610 23573 131706 STA SBPTR,I
1611 23574 045706 ISZ SBPTR
1612 23575 023640 LDA B5K
1613 23576 131706 STA SBPTR,I
1614 23577 045706 ISZ SBPTR
1615 23600 023777 LDA OPCOD
1616 23601 131706 STA SBPTR,I
1617 23602 024212 LDB .SLBF
1618 23603 004022 ADB .5
1619 23604 035657 STB T7
1620 23605 067537 JMP MDST
1621*
1622 23606 021657 MDS5 LDA T7
1623 23607 070550 SZA MDS 6
1624 23610 010132 CPA M1
1625 23611 067622 JMP MDS 6
1626 23612 010133 CPA M2
1627 23613 067622 JMP MDS 6
1628 23614 021657 LDA T7
1629 23615 070002 SAR 1
1630 ' 23616 070070 SIA #+1
1631 23617 031706 STA SBPTR
1632 23620 020105 LDA B377
1633 23621 031443 STA KEYFG
1634 23622 070742 MDS6 SAR 16 ■
1635 23623 031657 STA T7
1636 23624 067450 JMP INT 2
1637*
1638* I/O STATUS ROUTINE
1639*
1640+ LDA SELECT COST
Auswahl
1641*- JSM LOST
STORE LINE NUMBER Zexlenzahl speichern
STORE SPECIAL OPCODE Spezial-Op-Code speichern
STORE PAGE CODE Seiten-Code speichern
PROCESS CRTN
verarbeiten
3O 9 8 8 hl 1 3 7 Π
1642+
1643 +
1644 + 1645+ 1646
1647 1648 1649+ 1650
1651 1652
633
zurück nach
RETURN TO P+1 IF STOP FLAG wenn STOP-Marke
P+2 OTHERWISE anderenfalls
23625 025442 IOST LDB STPFL
23626 014000
23627 170402
23630 172741
23631 172141
23632 174741
CPB
RET
STF
OTA STF CHECK STOP FLAG Stop-Marke prüfen
TURN OFF INTERRUPT SYSTEM Systemunterbrechung abschalten
OUTPUT SELECT CODE Ausgang Auswahlcode
LOAD DEVICE STATUS Gerätzustand laden
Seite 276 23633 TERMINAL OPTION
Terminalwahl-Block, En
LIB I.C
1653 23634 177241 RBR 9
1654 23635 074406 SBP IOST
1655 23636 075413 JMP RETN 2
1656 064357
AND TURN ON INTERRUPT und Unterbrechung einschalten
LOOP IF BUSY (TESTS SIO) Schleife wenn in Betrieb (prüft S i/0)
1665+
23 637 001704 BKPTA DEF BKPTR
23640 005000 B5K OCT 50OO
23641 004001 B4001 OCT 4001
23642 177752 M22 DEC -22
23643 177770 M8 DEC -8
23644 000112 .74 DEC
23645 000141 .97 DEC
23646 001651 AT1
DEF T1
309884/ 1370
1667 23647 040424 AT1S DEF 4O424B, 1 8949 003536 EDITP SEF *+*+2- -ID-ID ] 13 0
1668 23650 001662 TF1A DEF TF1 005600 OCT 05600 EXECUTE ausführen 15 1
1669 23651 001652 TCON DEF EDIT KEY TABLE (IMMEDIATE ΈΧΕΟϋΤΙΟΝ)
Tastentabelle aufbereiten (sofortige Ausführung)
006601 OCT 06601 STEP Schritt 20 2
1670 23652 002001 OCT 010202 OCT 10202 RECALL rückrufen 22 3
1671 23653 062531 OCT 23656 011203 OCT 11203 BACKSPACE
Rückwärtsschritt
23 4
1672 23654 021451 OCT 23657 011604 OCT 11604 FORWARDSPACE
Vorwärtsschritt
24 5
1673 23655 104511 OCT 23660 012205 OCT 12205 DOWNARROW
Pfeil nach unten
25 6
1674* .++1-ID CONSTANT FOR TIMING LOOP 23661 012606 OCT 12606 UPARROW
Pfeil nach oben
26 7
167 5* 002001 10t4 23662 013207 OCT 13207 LEFTARROW
Pfeil nach links
27 8
1676* 062531 6559 23663 013610 OCT 13610 RIGHTARROW
Pfeil nach rechts
32 9
1677 021451 2329 ' 23664 015211 OCT 15211 CLEAR VAR
Variable löschen
37 10
1678 10451 23665 017612 OCT 17612 INSERT/DELETE 152 11
1679 23666 065213 OCT 65213 CLEAR löschen 153 12
1680 23667 065614 OCT 65614 ACC 160 13
1681 23670 070215 OCT 70215 PRINT ALL
alles drucken
162 14
1682 23671 071316 OCT 71316 EOL END : Ende
1683 23672
1684 23673
1685 23674
1686 23675
1687
1688
1689
1690
1691
1692
30 98 84/ 1370
Seite 2333908 -·**:-
278 TERMINAL OPTIC'N BLOCK
Terminalwahl-Block, Endgerätwahl-Block
MULTP DEF ++#+2-ID-ID Liste OCT 17207 NORMAL fest MULTN DEF ++*+2-ID-ID ausgang 12 O
1694* OCT 05200 LIST OCT 72210 FIX gleitend OCT 046111 L 14 1
1695* OCT 06201 CONT verfolgen OCT 72611 FLT OCT 73212 SCRATCH
einschreiben
OCT 051524 S 16 2
16964* MULTI-CHARACTER KEY TABLE
Viel-Zeichen-Tasten-Tabelle
OCT 07202 TRACE laufen OCT 73613 AUTO OCT 100103 (O) 17 3
1697 OCT 07603 RUN abrufen OCT 77714 EXIT OCT 047516 O 21 4
1698 23676 003576 OCT 10604 FETCH laden OCT 052201 T I 30 5
1699 23677 005200 OCT 14205 LOAD speichern MULTI-CHARACTER MNEMONIC TABLE
mnemonische Viel-Zeichen- Tabelle
OCT 052122 T T 31 6
1700 23700 006201 OCT 14606 STORE OCT 040503 A C 36 7
1701 23701 007202 23714 003632 OCT 042602 E N 164 8
1702 23702 007603 23715 046111 OCT 051125 R (D 165 9
1703 23703 010604 23716 051524 OCT 047203 N R 166 10
1704 23704 014205 23717 100103 OCT 04 3105 F C 167 11
1705 23705 014606 23720 047516 OCT 052103 T (2) 177 12 END
Ende
1706 23706 017207 23721 052201 OCT 044 204 H U
1707 23707 072210 23722 052122 OCT Ο4 6117 L (3)
1708 23710 072611 23723 040503 E
1709 23711 073212 23724 042602 C
1710 23712 073613 23725 051125 (4)
1711* 23713 077714 23726 047203 O
1712+ 23727 043105
1713* 23730 052103
1714. 23731 044204
1715 23732 046117
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
30 98 84/1370
1729 23733 040504 OCT 040504 A D
1730 23734 102523 OCT 102523 (5) S
1731 23735 052117 OCT 052117 T 0
1732 23736 051105 OCT 051105 R E
1733 23737 103116 OCT 103116 (6) N
1734 23740 047522 OCT 047522 0 R
1735 23741 046501 OCT 046501 M A
1736 ■ 23742 046207 OCT O46207 L (7)
1737 23743 043111 OCT 043111 F I
1738 23744 054210 OCT 054210 X (8)
1739 23745 043114 OCT 043114 F L
1740 23746 052211 OCT 052211 T (9)
1741 23747 051503 OCT 051503 S C
1742 23750 051101 OCT 051101 R A
1743 23751 052103 " OCT 052103 T C
1744 23752 044212 OCT 044212 H (10)
1745 23753 040525 OCT O4O525 A U
1746 23754 052117 OCT 052117 T 0
1747 23755 105505 OCT 105505 (11) E
1748 23756 054111 OCT 054111 X I
1749 23757 052214 OCT 052214 T (12)
Seite 279 23760 041517 OCT 041517 C 0 END Ende
1750 23,761 046520 OCT 046520 M P
1751 23762 146400 OCT 146400 (13)
1752
Seite 280 TERMINAL OPTION BLOCK
Terminalwahl-Block, Eindgerätwahl-Block
1755 1756* 1757 1758
23763 160205 ERRX JSM AERRA,I MODE ERROR
Betriebsart-Fehler
23764 177661
DEC -79
23765 003754 WHAM DEF *+*+2-ID-ID
23766 053510 ASC 3,WHAT?
30988 4/1370
1768
1769
1770
1771
1772
1773
S3V
23767 040524
23770 037440
1759 00000 LEFF EQU 23771R-* SELECT CODE
Auswahlcode
1760*
1761 01651 ORG 1651B
1762*
1763 01740 TMP EQU XC
1764 01473 CCNT EQU TEMPS+1
17 65 01704 BKPTR EQU WIDTH
1766*
1767 01651 000000 T1 NOP
01652 000000 T2 NOP
01653 000000 T3 NOP
01654 000000 T4 NOP
01655 000000 T5 NOP
01656 000000 T6 NOP
1657 000000 T7 NOP
01660 000000 T8 NOP T 9 NOP
TF1 BSS
SHFLG EQU TF1 CTFLG EQU TF1+1 ORG 23771B
1775 01661 000000
1776.*
1777 O1662 000000
1778 01662
1779 01663
1780*
1781 23771
1782*
1783 23771 177772
1784 23772 OOOOOO
1785*
TIMING CONSTANT Zeitgabe-Konstante
PARITY INDICATOR Paritätsanzeiger
PAGE INFO
Seiteninformation
PRINT/STORE FLAG Druck/Speicher-Marke
FOR LISTING
zum Auflisten
OK/NOT OK TO CLEAR DISPLAY
ON INTERUPT
i.O./ Nicht i.O. für Anzeigelöschung bei Unterbrechung
NO-LINE-NUMBERS FLAG Nicht-Zeilen-Zahlen-Marke
FLOATING TEMPORARY Zwxschenzeitlich gleiten
ABS ERRX-* EXECUTION JUMP TABLE
Ausführung Sprungtabelle
NOP ++CHECKSUM WORD++ Summenprobe Wort
309884/1370
23773 176014 ABS BN777-* NON-FORI4ULA OPERATOR TABLE
' (NULL TABLE)
Nicht-Formel-Operator-Tabelle (Null-Tabelle)
23774 176013 ABS BN777-*.FUNCTION-NAME TABLE
(NULL TABLE)
Funktionsnamen-Tabelle (Null-Tabelle)
COMMAND-NAME TABLE Befehlsnamen-Tabelle
STATEMENT-NAME TABLE Anweisungsnamen-Tabelle
NO ERRORS* keine Fehler
1788 23775 176004 ABS COMTB
1789 23776 176010 ABS SYSNT
1790 23777 016000 OPCOD OCT 16000
1791 END
309884/ 1370
Seite 281 EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND
LINKAGES
Erweiterte I/O-Blocks, Konstanten, Syntax und
Verbindungen
0508 LST OOOOOO T5 ORG
0509-+ BASE PAGE EQUATES AND Ί
Basisseiten-Gleichwerte
OOOOOO T8
0510* OOOOOO TBEND BSS
0511 01641 OOOOOO T1 BSS
0512* OOOOOO BSS
0513 01641 PTR1 BSS
0514 01642 OOOOOO RLFLG BSS
0515 01643 OOOOOO TW EQU
0516 01644 TMPRE BSS
0517 01645 OOOOOO TX BSS
0518 01645 OOOOOO TD EQU
0519 01646 OOOOOO MF BSS
0520 01647 OOOOOO SD BSS
0521 01647 opoooo DP BSS
0522 Ο165Ο TNULL BSS
0523 01651 OOOOOO EX BSS
0524 01652 OOOOOO T2 EQU
0525 01653 OOOOOO T3 BSS
0526 01654 OOOOOO T6 BSS
0527 01654 OOOOOO T7 BSS
052a 01655 OOOOOO T9 BSS
0529 01656 OOOOOO .FLP BSS
0530 01657 BSS
0531 01660 ORG 1 BSS
0532 01661 OOOOOO FLOOP
0533 01662 665B
0534 01663 TEMPORARIES BSS
0535+
0536 01665 FOR :
0537 01665·
0538* 1EMPOR
ί und
0539 LOCAL
1641B
1
1
1
1
1
1645B
1
1
1647B
1
1
1
1
1
1654B
1
1
1
1
1
1
1
1
EMLIEE
örtliche Zwischenspeicher für implizierte "FOR"-Schleife wie folgt:
30988 /♦ /137 O
0541 + 0542+
0543 +
0544 + 0545+
0546+ 0547
0549 + 0550
6<Η>
WORD 1 ADDRESS OF VARIABLE Wort 1 Variablenadresse
WORD 2 NAME OF VARIABLE Wort 2 Variablenname
WORD 3 FINAL VALUE (INTEGER FORM) Wort 3 Endwert (ganzzahlige Form)
WORD 4 STEP SIZE (INTEGER FORM) Wort 4 Schrittweite (ganzzahlige Form)
WORD 5 ADDRESS OF 1ST WORD AFTER FOR STMT.
Wort 5 Adresse des ersten Wortes nach FOR-Anweisung
01666 000000 .FLOP BSS
0548 , 01673 000000
BSS FIRST LOOP BLOCK erster Schleifen-Block
SECOND LOOP BLOCK zweiter Schleifen-Block
01700 000000 .BADR BSS 00051 ASC. EQU 00047 ASCP EQU 00050 ASCM EQU .45 · 01712 .SIGN EQU 1712B 00074 .18 EQU B22
Seite 282 EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND
LINKAGES
Erweiterte I/O-Blocks, Konstanten, Syntax und Verbindungen
0557 22000
0558+
0559 + FORMATTED I/
0560+
Ο561 12001
0562 12007
0563 +
0564*
0565 22000 000213
0566 22ΟΟ1 000117
0567 22002 000270
0568 22003 000000
0569+
ORG 2200OB
QUOTE EQU 12001B ASSOP EQU QUOTE+6 ABS SOUT-+ OUTPUT SYNTAX
Ausgabe Syntax
ABS SGET-+ ABS CMDS-+" BSS
Ί Π 9 B R W 1 Ά 7
2333908 6*9— 1 fCMD
0570 22004 041515 SYSNT ASC 42242
0571 22005 042242 OCT 2,ENTE
0572 22006 042516 ASC
22007 052105 51243
0573 22010 051243 OCT 3,0UTP
0574 22011 047525 ASC
22012 052120
22013 052524 162377
0575 22014 162,377 NULL OCT
0576*
0577* 043117
0578 22015 043117 NFOPT OCT
D; OPCODE
R; OP CODE
0579 22016 051220 FLOP OCT 051220
0580 22017 052117 .SC13 OCT 052117
0581 22020 110523 M8 OCT 110523
0582 22021 052105 SC13 OCT 052105
0583 22022 050322 AMF OCT 503 22
0584* AROW
0585* ALTM
0586 22023 000331 ABS EIAND-*
0587 22024 0003 24 ABS EIOR-*
0588 22025 000313 ABS EROT-*
0589 22026 000441 ABS STAT-*
0590 22027 000452 ABS CHAR-*
0591- 22030 0OO500 ABS BIN-*
0592 22031 000457 ABS LIN-*
0593 22032 000472 ABS SPA-*
0594 22033 00041O ABS EOCT-*
0595*
0596 22034 001661 DEF .FLOP-5
0597 22035 150000 OCT 150000
0598 22036 177770 DEC — ft
0599 22037 154000 OCT 154000
0600 22040 001652 DEF MF
0601 22041 000137 OCT 137
0602 22042 000176 OCT 176
OP CODE 4; NULL
FO NON-FORMULA OPERATOR TABLE
Nicht-Formel-Operator-
Tabelle
R (16) TO
(17) S TE P (18)
SELECT CODE 13 FOR ASCII BUSS Code 13 für ASCII-Verteiler auswählen
LEFT ARROW linker Pfeil
ALT MODE ALT-Betrieb
309884/1 370
0604 0605 0606 0607 0608 0609
22043 000033 ESCM
OCT 33
22044 000105-ASCE OCT 105
22045 031166 B3116 OCT 31166
22046 000120 .80 DEC 80
22047 002001 B2001 OCT 2001
22050 100700 STEC OCT -77100
22051 012025 FMTOP OCT 12025
ESC MODE ESC-Betrieb
Seite 283 EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX,AND
LINKAGES
Erweiterte I/O-Blocks, Konstanten, Syntax und Verbindungen
0610 22052 000021 .17 DEC 17 T; 22
0611 22053 007777 BIT12 OCT 7777
0612 22054 00003 2 NFOPA DEF A; 23
0613*
0614+ N; 24
0615 22055 047503 FUNNT ASC
0616 22056 052222 OCT NFOPT+NFOPT-ID-IE N; 25
0617 22057 051520 ASC
0618 22060 040623 OCT
0619 22061 046111 ASC 1 ,OCT 26; STAT
0620 22062 047224 OCT 52222
0621 22063 041111 ASC 1 ,SPA T; 27
0622 22064 047225 OCT 40623
0623 22065 041510 ASC 1 ,LIN T; 30
22066 040522 47224
0624 22067 113123 OCT 1 ,BIN
0625 22070 052101 ASC 47225 31; BIAND
0626 22071 052227 OCT 2,CHAR
0627 22072 051117 ASC
0628 22073 052230 OCT 113123 32; NULL
0629 22074 044516 ASC 1 ,TAT
22o75 047522 52227
0630 22076 114502 • OCT 1 ,ROT
0631 22077 044501 ASC 52230
22100 047104 2, INOR
0632 22101 155000 OCT
0633* 114502
2,IAND
155000
30988W 1370
233 3
0634*
063 5* MORE ABSOLUTE LINKS TO THE BASIC SYSTEM
weitere absolute Verbindungen zum Basissystem
0636*
0637 22102 004304 RITE DEF 43O4B
0638 22103 007474 MOUTA DEF 7474B
0639 22104 006656 PRINN DEF 6656B
0640 22105 007366 SFMT DEF 7366B
0641 22106 007303 TYPEC DEF 73O3B
0642 22107 007240 QTCHK DEF 724OB
0643 22110 006773 PFORM DEF 6773 B
0644 22111 OO7OO7 PRCHK DEF 7OO7B
0645 22112 007227 CKEOL DEF 7227B
0646 22113 011444 0PCH1 DEF 11444B
0647 22114 OO7356 FSPR DEF 7356B
0648 22115 012233 VAR01 DEF 12233B ADDRESS OF VAROP+2
Adresse von
0649 22116 016504 IOHED DEF 165O4B
0650 22117 007402 PLOTE DEF 74O2B
EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND
LINKAGES
Erweiterte I/O-Blocks, Konstanten, Syntax und Verbindungen
0652*
0653*
0654*
0655
0656
0657
0658
0659
0660
0661
0662*
0663
GET STATEMENT SYNTAX Anweisungs-Syntax holen
22120 070742 SGET SAR 16
22121 031656 STA T2
22122 021717
22123 050065
22124 070744
22125 031642
22126 062247
22127 062434
LDA NUM AND OPMSK SAL 1 STA T8
JSM STBLK JSM IOHD CLEAR NEST COUNTER Schachtelzähler löschen
SAVE PAGE INFO Seiteninformation sichern
GET (S.C. .FMT # holen
309884/13 TO WSPECTED
23 33908
0664*
0665 22130 060513
0666 22131 066171
0667 22132 061055
0668 22133 045706
0669 22134 062422
0670 22135 164307
0671 22136 010033
0672 22137 066141
0673 22140 164307
0674 22141 045656
0675 22142 160246
0676 22143 164321
0677 22144 164321
0678 22145 060463
0679 22146 012006
0680 22147 164324
0681 22150 160202
0682 22151 062422
0683 2*2152 164322
0684 22153 012052
0685 22154 066156
0686 22155 164322
0687 22156 160202
0688 22157 062422
0689 22160 066165
0690 22161 010074
0691 22162 066164
0692 22163 164323
0693 22164 160202
JSM LPCK
JMP SGP4
JSM GNEXT
ISZ SBPTR
JSM NFOP
JMP E15+1,1 CPA .16
JMP *+2
JMP E15+1,1
ISZ T2
JSM VAROA,I JMP E25+1,1 JMP E25+1,1 JSM SYMC1
DEF ASSOP-1 JMP E25+4,I JSM FSCA,I
JSM NFOP
LOOK FOR LEFT BRACKET nach linker Klammer sehen
NOT FOUND nicht gefunden
LOOK FOR "FOR" nach "FOR" sehen
nicht gefunden
NOT FOUND FOR? YES ja
NO, ERROR nein, Fehler
INCREMENT NEST COUNTER Zuwachs Schachtelzähler
GO LOOK FOR A VARIABLE nach Variabler sehen
NONE FOUND, ERROR nicht gefunden, Fehler
SUBSCRIPT, ERROR Index, Fehler
FOUND ONE, LOOK FOR "=" eine gefunden, nach "="
sehen
GO LOOK FOR A FORMULA nach Formel sehen
LOOK FOR "TO" nach "TO" sehen
JMP E25+2,I NOT FOUND, ERROR
nicht gefunden, Fehler
CPA .17
JMP #+2
JMP E25+2,I JSM FSCA,I
JSM NFOP
JMP SGP2
CPA .18
JMP #+2
JMP E25+3,I JSM FSCAjI
YES ja
NO, ERROR nein, Fehler
GO LOOK FOR A FORMULA nach Formel sehen
LOOK FOR "STEP"
nach "STEP" (Schritt) sehen
NOT FOUND nicht gefunden
STEP?
YES ja
NC, ERROR nein, Fehler
GC- LOOK FOR A FORMULA nach Formel sehen
3098^4/1 3 7 0
0694
0695 0696 0697 0698.+ 0699 0700 0701
0702
22165 060510 SGP2 JSM COMCE DEMAND A COMMA Komma verlangen
22166 061055 SGP3
22167 045706
22170 066130
22171 055400 SGP4
22172 055706
22173 062233
JSM GNEXT ISZ SBPTR JMP SGP1
DSZ BADDR DSZ SBPTR JSM SVARA
22174 010031 BACK CPA EOL
0703 22175 066201 JMP NESC
0704 22716 060504 JSM COMCK
0705 22177 066205 JMP SGP 5
0706 22200 066166 JMP SGP 3
0707*
LOOK FOR A VARIABLE (STRING ALLOWED) nach Variabler sehen (STRING erlaubt)
END-OF-STATEMENT? Anweisungsende?
YES ja
LOOK FOR A COMMA nach Komma sehen
NOT FOUND nicht gefunden
Seite 285 EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND
LINKAGES
Erweiterte I/O-Blocks, Konstanten, Syntax und Verbindungen
0708
22201 021656 NESC LDA T2
0709 22202 072110 RZA #4-2
0710 22203 164203 JMP ACTSA,I
0711 22204 164301 JMP E10,I
0712*
0713 22205 060534 SGP5 JSM RPCKE
0714 22206 055656 DSZ T2
0715 22207 066210 JMP #+1
0716 22210 025656 LDB T2
0717 22211 075153 SBP BACK
0718 22212 164302 JMP E10+1,1
0719*
0720* OUTPUT STMT SYNTAX Aus >aabe An
CHECK NEST COUNTER Schachtelzähler prüfen
Anweisung i.O.
DEMAND A RIGHT BRACKET rechte Klammer verlangen
DECREMENT NEST COUNTER Schachtelzähler Abnahme
ALLOW FOR SKIP überspringen erlauben
30988Α/137Π
2333908 m
0721* JSM STBLK
0722 22213 062247 .SOUT RZA #"+3
0723 22214 072150 JSM IOHD
0724 22215 062434
0725 22216 166102
0726 22217 045706
0727 22220 060520
JMP RITE,I ISZ SBPTR JSM LPCKE-1
•STRING BLOCK NOT IN DO
STANDARD SYNTAX STRING-Block nicht drin, Standard-Syntax nehmen
STRING BLOCK IN, TRY
INTERNAL CONVERSION STRING-Block drin, interne Konversion versuchen
0728 22221 161641 S OUT 3 JSM 025641 SVARA LDB T5,I LOOK FOR STRING VARIABLE
nach STRING Variabler
sehen
IS STRING BLOCK IN?
ist STRING-Block drin?
0729 22222 066230 JMP 076250 RZB SOUT 2 P+1 NO, ERROR IF ANY STRINGS
nein, Fehler , wenn STRING
0730 22223 066227 JMP 16Ο246 JSM SOUT1 P+2 P+1, NO LETTER FOUND
0731 22224 162116 JSM 164307 JMP IOHED,I P+3, STRING ARRAY NAME FOUND
STRING-Feld-Name ge
funden
0732 22225 062435 SOUT1 JSM IOHD+1
0733 22226 166102 SOUT 2 JMP RITE,I
0734*
0735 22227 154110 DSZ BADRP,I
0736 22230 154110 DSZ BADRP,I
0737 22231 160202 JSM FSCA,I CHECK SELECT CODE
Auswahlcode prüfen
0738 22232 066224 JMP SOUT 3
0739*
0740* CHECK SYNTAX ON NUMERIC
Syntax auf numerischen
: OR STRING VARIABLES
oder STRING-Variablen prüfen
0741*
0742 22233 T5
0743 22234 RECO 2
0744 22235 VAROA,I
0745 22236 E15+1,1
22237 170402
RET
kein Buchstabe gefunden
P+2, ARRAY VARIABLE FOUND AND STORED Feld-Variable gefunder. und gespeichert
309884/1370
0748* 0749
0750 0751
0752
22240 170402
RET
22241 161641 REC02 JSM T5,I
Ρ+3, SIMPLE VARIABLE
FOUND AND STORED
einfache Variable gefunden
und gespeichert
YES/ TRY STRING BLOCK FIRST ja, erst STRING-Block versu
chen
22242 164307
22243 162115
JMP E15+1,I P+1, NO LETTER FOUND
kein Buchstabe gefunden
JSM VARO1,1 P+2; MUST BE NUMBERIC OR
ARRAY VARIABLE
muß numerische oder Feldvariable sein
22244 170402
RET
P+3, STRING VARIABLE FOUND
22245 170402 RET AND STORED
STRING-Variable gefunden und
gespeichert
020121 STBLK LDA B4000
0753 22246 170402 RET 024130 LDB FROMA
0754 074457 CPA B,I
07 55+ 066264 JMP FPAG 2
0756* LOOK FOR THE STRING BLOCK AND SAVE IT'S ADDRESS
nach STRING-Block sehen und seine Adresse sichern
014131 CPB LROMA
0757* 066257 JMP FPAG1
0758 22247
0759 22250
0760 22251
0761 22252
0762· 22253
0763 22254
Seite 286 EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND
LINKAGES
Erweiterte I/O-Blocks, Konstanten, Syntax und Verbindungen
0764 22255 004116 ADB QTOP
0765 22256 066251 JMP +-5 07 66 22257 025403 FPAG1 LDB MAW
0767 22260 111403 CPA MAW,I
0768 22261 066264 JMP FPAG2
30988A/1370
908
22262 074742 SBR 16
22263 066267 JMP *+4
22264 074442 FPAG2 SBR 10
22265 074304 SBL 10
22266 074070 SIB *+1
22267 035641 STB T5
22270 074117 LDA B
22271 170402 RET
EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND
LINKAGES
Erweiterte I/O-Blocks, Konstanten, Syntax und Verbindungen
0778* 0779* 0780* 0781 0782 0783 0784 0785 0786 07 87 0788 0789 0790 O791 0792* 07 93* 0794* 0795* 0796 07 97 0798 0799 0800 0801
CMD STATEMENT SYNTAX CMD-Anweisungs-Syntax
22272 062247 CMDS JSM STBLK
22273 025641 LDB T5
22274 076150 RZB *+3
22275 061055 JSM GNEXT
22276 066300 JMP *+2
22277 161641 JSM T5,I
22300 045706 ISZ SBPTR
22301 160245 JSM GTSTA,I
22302 060504 JSM COMCK
22303 065151 JMP EOST
22304 066273 JMP CMDS+1
CMD STATEMENT EXECUTION CMD-Anweisungs-Ausführung
22305 062247 CMD
22306 022035
22307 031656
22310 020013
22311 063342
22312 162107
JSM STBLK
LDA .SC13
STA T2
LDA B400
JSM OTPT
JSM QTCHK,I QUOTE NEXT? als nächstes?
2333908 062331 062361 EROT m SVAR NO- TRY STRINGS
nein - STRINGS versuchen
SCHK GO CHECK IF SYNTAX OR
063374 JSM .OUTP
0802 22313 020107 JSM B1000
0803 22314 063342 LDA OTPT
0804 22315 021472 JSM TEMPS
0805 22316 011421 LDA PRADD DONE WITH STMT?
fertig mit Anweisung?
0806 22317 164172 CPA XEC4A,I YES ja
0807 22320 162107 JMP QTCHK,I QUOTE NEXT? als nächstes?
0808 22321 062331 JSM SVAR NO - TRY STRINGS
nein - STRINGS versuchen
0809 223 22 063374 JSM .OUTP
0810 22323 021472 JSM TEMPS
0811 22324 011421 LDA PRADD DONE WITH STMT?
fertig mit Anweisung?
0812 22325 164172 CPA XEC4A,I
O813 22326 066310 JMP CMD+3 NO LOOP keine Schleife
0814 22327 JMP
0815 22330 025641 SVAR T5
0816* 076110 LDB *+2
0817 22331 164275 RZB E5+1,1
0818 22332 074071 JMP *+1 ,C
0819 22333 074717 SLB B,I
0820 22334 170402 JSM
0821 22335 170402 RET
0822 22336 RET
0823 22337
0824* FUNCTION EXECUTION Funktions-Ausführung
0825*
0826*
0827* 22340 JSM
0828*
0829
EXECUTION
Prüfen, ob Syntax oder
Ausführung
0830 22341 074076 TCB EXECUTION Ausführung
0831 22342 021644 LDA T1 LOAD THE ARGUMENT INTO (A)
Argument in (A) laden
0832 22343 074153 SBP *+3 EXIT IF ARG WAS NEGATIVE
OR ZERO
Ausgang, wenn Argument nega
tiv oder Null war
30988W 1370
0833
22344 074070
SIB
Seite 288 EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND
LINKAGES Erweitere I/O-Blocks, Konstanten, Syntax und
Verbindungen
0834 0835
0836
0837* 0838 0839 0840 0841 0842* 0843 0844 0845 0846 0847 0848* 0849 0850
O851# 0852 0853 0854
22345 070005
22346 077770
22347 066357
RAR RIB *-1
JMP ESTO
22350 062361 EIOR JSM SCHK
22351 021644 LDA T1
22352 041656 IOR T2
22353 066357 JMP ESTO
22354 062361 EIAND JSM SCHK
22355 021644 EAND LDA T1
22356 051656 AND T2
22357 070137 ESTO LDB A 22360 164227 JMP FXFLA,I
LOOP, ROTATING (A) ONE BIT
UNTIL DONE
Schleife, (A) ein Bit rotieren bis fertig EXIT LOOP Schleife ausführen
T1 IOR T2
T1 AND T2
22361 021416 SCHK
22362 070552
LDA MODE SAM .SCHK SKIP IF SYNTAX PHASE überspringen, wenn Syntax-Phase
22363 061217
22364 160225
22365 024062
22366 035644
22367 061217 22370 160225
JSM FETCH
JSM FLTRA,I LDB FLGBT IF OVERFLOW USE 100000
OCTAL
wenn überfüllt, 100000
oktal benutzen
STB T1 JSM FETCH JSM FLTRAjI
309884/1370
0858 22371 164 273
0859 22372 035656
0860 22373 045472
0861 22374 170402
0862*
0863 + CHECK SYNTA
0864*
0865 22375 055777
0866 22376 121472
0867 22377 031641
0868 22400 061055
0869 22401 045706
0870 22402 060521
0871 22403 160202
0872 22404 060510
0873 22405 160202
0874 22406 025641
0875 22407 135472
0876 22410 060534
0877 22411 064356
0878*
JMP ES-1,1 STB T2 ISZ TEMPS RET
CHECK SYNTAX OF FUNCTIONS Funktionssyntax prüfen
SCHK DSZ RSPTR
LDA TEMPS,I
STA ST+1
JSM GNEXT ISZ SBPTR JSM LPCKE JSM FSCA,I JSM COMCE JSM FSCA,I LDB ST+1 STB TEMPS,I JSM RPCKE JMP RETN3 SAVE LEFT BRACKET COUNT linke Klammer-Zählung sichern
EXTENDED I/O BLOCK'S CONSTANTS, SYNTAX, AND LINKAGES
0880*
+
+
0883*
0884*
0885
0886
0887
MISCELLANEOUS ROUTINES & ETC. vermischte Routinen usw.
SUBROUTINE TO RECORD CODE-CONVERSION TABLE Subroutine um Dode-Umwandlungs-Tabelle aufzunehmen
22412 060510 RTBL JSM COMCE DEMAND COMMA
Komma verlangen
22413 061140 JSM LTR LETTER? Buchstabe?
22414 164307 JMP E15+1,I NO, ERROR nein Fehler
309884/ 1370
0888
0889
0890
0891
0892
O893*
0894*
0895*
0896
2 3 3 3 CH18
22415 021474
22416 024020
22417 060451 22420 021475
22421 170402 LDA TEMPI RECORD ARRAY IDENTIFIER Feld-Identifxzierer aufnehmen
LDB .3 OF UNKNOWN DIMENSIONS
von unbekannten Dxmensionen
JSM STROP+1
LDA TEMP2 RETRIEVE FOLLOWING
CHARACTER
folgendes Zeichen wiedergewinnen
RET
SUBROUTINE TO FIND A NON-FORMULA OPERATOR
Subroutine um einen Nicht-Formel-Operator aufzufinden 22422 026054.NFOP LDB NFOPA GET NON-FORMULA TABLE
ADDRESS
Nicht-F'ormel-Operator-Tabellen-Adresse holen
0897 22423 005642
0898 22424 060546
0899 22425 170402
0900 22426 060456
0901 22427 074742
0902 22430 135706
0903 22431 070202
0904 22432 050040
0905 22433 064357
0906*
0907* RECORD I/O H
0908*
0909 22434 160265
0910 22435 060524
0911 22436 066440
0912 22437 065153
ADB T 8
JSM STEXP
RET
JSM SBPUD
SBR 16
STB SBPTR,I
SAR 5
AND .31
JMP RETN2
DO TABLE SEARCH Tabellensuche durchführen
NOT FOUND nicht gefunden
IOHD JSM ΙΟΗΕΑ,Ι GET (S.C.,*
holen rechte Klammer?
0913 22440 062412
0914 22441 060534 JSM RPCK RIGHT PAREN?
JMP *+2 NO nein
JMP EOLCK YES, IF EOL RETURN TO
BASIC SYSTEM
ja, wenn EOL, zurück zum
Basis-System
JSM RTBL CHECK FOR CONVERSION TABLE auf Umwandlungs-Tabelle prüfen
JSM RPCKE DEMAND RIGHT BRACKET
rechte Klammer verlangen
Ί O 9 8 8 /+ / 1 3 7 Π
ORIGINAL IMSPECTED
O915
22442 065153
JMP EOLCK CHECK FOR EOL AND RETURN
IF NOT
auf EOL prüfen und zurück
wenn nicht
Seite 290 FORMATTED INPUT BLOCK EXECUTION
Ausführung formatierter Eingabeblock
0917+
0918+
0919*
0920
0921
0922
0923
0924
0925
0926
0932
EVALUATE OCT EXPRESSION Oktalausdruck auswerten
22443 060445 EOCT
22444 074742
22445 021754
22446 070652
22447 000157 E0C1
22450 031466
22451 074117
0927 22452 070602
0928 22453 072550
0929 22454 171400
0930 22455 074606
0931 22456 070037
22457 050025
0933 22460 072310
0934 22461 021466
0935 22462 071253
0936*
0937 22463 070111
0938 22464 O74O7 6
0939 22465 164227
JSM XFAR2+1
SBR 16
LDA AR2
SAM ++13
ADA M256
STA LOCL1
LDA B
GET EXPONENT holen AND TEST IT und prüfen
CHECK FOR POSSIBLE
OVERFLOW
auf mögliche Überfüllung
prüfen
SAR 13 GET NEXT DIGIT
nächste Ziffer holen
RZA #+11
MLS ADD IN NEW DIGIT
in neue Ziffer addieren
RBR 13 TEST FOR LEGAL OCTAL
ADB A DIGIT
auf erlaubte Oktalziffer
prüfen
AND .8
RZA
LDA LOCL1 SKIP IF +
überspringen, "wenn +
SAP E0C1
SLA M
JMP FXFLA,I DONE fertig
3 09884/1370
233 3 ; 3 η 8 * JMP -
0940* 060445 STAT
0941 22466 164273 063461 JSM E5-1 ,1'
0942* 040121 JSM
0943 22467 172741 IOR XFAR2+1
0944 22470 172141 STF UNNM+1
0945 22471 172741 OTA 84000
0946 22472 177241 STF 1
0947 22473 074604 LIB 1
0948 22474 074542 SBL 1
0949 22475 164227 SBR 1,C
09 50 22476 JMP 4
0951 22477 06044 5 CHAR 12
0952 22500 063461 JSM F1XFLA, I
0953 + 040121 JSM
0954 22501 063447 IOR XFAR2+1
0955 22502 074073 JSM UNNM+1
0956 22503 074302 SBP B4000
0957 22504 164227 SBR .CHAR
0958 22505 JMP *+1 ,C
0959 22506 062536 LIN 7
0960 22507 JSM FXFLA,I
0961*
0962 22510 .LIN
0963 0964 0965
0968 0969 0970 0971 0972
22511 076150
22512 062546
22513 066533
22514 070112
22515 062546
RZB
JSM .LIN2
JMP .LIN1
SAM *+2 JSM .LIN2 OUTPUT X LINE FEEDS AND
CARRIAGE RETURN Ausgabe X-Zeile führt zu und Wagenrücklauf
IF ARG=O. GIVE CARRIAGE
RETURN
Wenn Arg.=O, Wagenrücklauf geben
IF ARG IS NEGATIVE SKIP
CARRIAGE RETURN wenn Arg. negativ, Wagenrücklauf überspringen
22516 020061
22517 162111
22520 061353
22521 055644
22522 066516
LDA LNFD JSM PRCHK,] JSM TTY DSZ T1 JMP #-4
309884/ 1370
ORIGINAL INSPECTED
291 22523 '>■ :-! I)B
L
JMP .LIN1
Seite .CC
22524 FORMATTED INPUT BLOC JSM .LIN
0973 22525 Ausführung formatierter SAM .LIN1
0974* 22526 066533 JSM MOUTA,I
0975 22527 JMP .LIN1
0976 062536 SPA
0977 22530 070312 JSM .LIN
0978 22531 162103 AND BIT12
0979* 22532 066533 JSM TTY
0980 22533 LDA M1
0981 22534 062536 BIN STA AR2+1
0982 22535 052053 RET
0983 061353
0984 22536 020132 .LIN1 JSM XFAR2+1
0985 22537 031755 JSM FLTFA,I
0986* 22540 170402 JMP E5-1,1
0987 22541 LDA B
0988 22542 06O445 .LIN SBP*+2
0989 22543 160226 TCB
0990 22544 164273 STB T1
0991 22545 074117 RET
0992 074113
0993 . 22546 074076 LDA CRTN
0994 035644
0995* 170402
0996
020031 .LIN2
OUTPUT X SPACES Ausgabe X Zwischenräume
OUTPUT THE BINARY CODE
FOR X
Ausgabe Binärcode für X
22547 162111 JSM PRCHK,I
Seite 292 FORMATTED
Ausführung
062247 EGET JSM STBLK ISZ TEMPS CHECK IF STRING BLOCK
IS IN.
Prüfen, ob STRING-
Block drin
,1 P+1, NOT FOUND -
FREE FIELD INPUT
nicht gefunden -
Freifeld-Eingabe
1003* O45472 JSM UNNM P+2, FOUND FORMATTED
INPUT
gefunden, formatierte
Eingabe
1004* INPUT BLOCK EXECUTION
; formatierter Eingabeblock
063460 IOR B4000
1005* 040121 STA T1 CHECK FOR CONVERSION
TABLE
auf UmWandlungstabeile
prüfen
1006 EXECUTE GET STATEMENT
"GET"-Anweisung ausführen
031644 LDA FMTOP
1007 022051 STA ST
1008 22554 031640 SBR 16 INITIALIZE FOR LOOP
POINTER
für Schleifen - Hin
weismarke initialisieren
IOO9 22555 074742 JSM PLOTE
1010 22556 162117 SBR 16 READ AN INPUT RECORD
Eingabe-Aufnahme lesen
1011 22557 074742 STB T9
1012 22560 035662
1013 22561 JSM .CTBL
1014 22562 O6347I
1015 22563 LDA FLOP
1016 22564 022034 STA FLOOP
1017* 22565 031665
1018 22566 JSM RREC
1019* 063073 LDB T9
1020 22567 025662 RZB EGE1
1021 076510
1022* 2257O
1023 22571 FREE FIELD INPUT
1024
IO25 22572
1026* 22573
1027* 22574
Freifeld-Eingabe
309884/1370
ORIGINAL IMSPECTED
1028*
1029 22575 062723
1030 22576 061156 .EGEI
1031 22577 066603
1032 22600 069412
1033 22601 066575
1034 22602 062723
1035 226/3 061256
1036 22604 060412
1037 22605 066602
1038* FORMATTED INPUT 021456 EGE1
1039* formatierte Eingabe O7OO73
031456
1040* 22606 062723 EGE2
1041 22607 162106 EGE3
1042 22610
1043 22611
1044 22612
1045
1046 22613 066631 JSM NADD JSM CONST JMP *+4
GET THE VARIABLE Variable holen
FETCH A NUMBER Zahl abrufen
NO NUMBER FOUND, ZERO IT, AND THE REMAINING NOS. keine Zahl gefunden, Nullen, und die verbleibenden Zahlen
JSM RSULT NO - STORE IT
nein, speichern
JMP .EGE1-1 LOOP
Schleife
JSM NADD
JSM CLAR2 SET THE REMAINING VARI
ABLIES TO ZERO
verbleibende Variablen
auf Null setzen
JSM RSULT
JMP *—3 LOOP
Schleife
LDA FORMS SAP *+1,C STA FORMS JSM NADD JSM TYPEC,I
JMP ESLH+1
GET A FORMAT SPEC.
Format-Spezifizierung
holen
P+1, END OF FORMAT, READ NEXT RECORD AND JUMP TO EGE Format-Ende, nächste Aufnahme lesen und nach EGE springen
1047 22614 066623 JMP E71 P+2, QUOTE FIELD NOT
ALLOWED
Quotenfeld nicht erlaubt
1048 22615 066642 JMP EFMT 3 F .
1049 22616 066642 JMP EFMT 4 E
IO5O 22617 066623 JMP E71 5 s
1051 22620 066633 JMP BFMT 6 B
IO52 22621 066625 JMP ESKP 7 X
09884/1370
ORIGINAL INSPECTED
22622 2 333908 JMP >5X
1053 22623 066630 JSM ESLIi
1054 22624 160205 E71 DEC AERRA1I
1055 177654 -84
1056* 293
Seite FORMATTED INPUT BLOCK EXEC
8 /
INVALIE FORMAT SPECIFICATION
ungültige Format-Spezifikation
Ausführung formatierter Eingabeblock
1058 22625 162114 ESKP
1059 22626 063055
1060 22627 066612 1061*
1062 22630 162114 ESLH
1063 22631 063073
1064 ■ 22632 066612
1065*
1066 22633 162114 BFMT
1067 22634 063055
1068 22635 010061
1069 22636 070742
1070 22637 070137
1071 22640 160227
1072 22641 066670
IO73*
1074 22642 045466 EFMT
1075 22643 121466
1076 22644 045466
1077 22645 045466
1078 22646 O7OO76
1079 22647 031647
1080 22650 125466
1081 22651 074017
1082 22652 O7OO56
1083 22653 070404
JSM PSPR,I READ A NEW RECORD
neue Aufnahme lesen
JSM NBXT
JMP EGE3
JSM FSPR,I GET NEXT BYTE
nächstes Byte holen
JSM RREC IF LINE FEED USE ZERO
wenn Zeile gefüllt,
Null benutzen
JMP EGE3
JSM FSPR,I
JSM NBIT CONVERT TO F.P.
in F.P. umwandeln
CPA LNFD
SAR 16
LDB A GET W SPEC
holen
JSM FXFLA,I
JMP EFM3+1
ISZ L0CL1
LDA L0CL1,I
ISZ L0CL1 GET D SPEC
holen
ISZ L0CL1
TCA
STA TW
LDB L0CL1,1
ADA B
CMA
SAL B
309884/1370
? 3 :·* ? π Π
1084 22654 031651
1085 22655 162114
1086 22656 021647
1087 22657 031650
1088 22660 070742
1089 22661 031662
1090 22662 063153
1091 22663 021662
1092 22664 072150
1093 22665 021651
1094 22666 031754
1095 22667 061254 EFM3
1096 22670 060412
1097 22671 066611 1098*
6*3
STA TD JSM FSPR,I LDA TW
STA TX SAR 16
STA T9 JSM NMBR
LDA Τ9 RZA EFM3 LDA TD
STA AR2 JSM ZONK JSM RSULT JMP EGE2
SET FIELD WIDTH Feldbreite setzen
CLEAR IGNORE-D FLAG "D ignorieren"-Marke löschen
CALL FOR REAL NUMBER nach reeller Zahl rufen
ANY - OR E? irgendein . oder E?
YES da
NO, ADJUST EXPONENT nein, Exponent Justieren
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
1100*
1101 22672 050040
1102 22673 010076 1103 22674 066676 1104 22675 164201
1105 22676 021641
1106 22677 O72IIO
1107 227OO 164311
1108 . 227OI 000012
.NADD AND B37
FIND NUMERIC OR STRING
VARIABLE
numerische oder STRING-
Variable auffinden
CPA B36 STRING NEXT?
als nächstes?
JMP *+2 YES
da
JMP FORMA,I NO, GET THE VARIABLE ·
ADDRESS
nein, Variablenadresse
holen
LDA T5
RZA *+2
JMP E15+3,I STRINGS NOT AVAILABLE
ADA .1
nicht verfügbar
JSM GADD ON THE STRING
BLOCK
auf STRING-Block
309884/1370
.•«.■pm MM A.
1109 1110 1111
1112 1113 1114
1115 1116
1117 1118 1119 1120 1121 1122 1123
1124 1125 1126* 1127*
1128* 1129* 1130*
1131* 1132
1133 1134-1135 1136 1137
22702 070717
22703 021400
22704 031645
22705 070076
22706 001623
22707 031647
22710 024132
22711 020017
22712
22713 22714
22715 22716
22717 22720
001641
070717 021654 070056 001400 031400 020020
22721 001641
22722 070717
660 Α,Ι
JSM BADDR
LDA PTR1
STA
TGA PEND
ADA TMPRE
STA M1
LDB .2
LDA T5
ADA Α,Ι
JSM TMJLL
LDA
CMA BADDR
ADA BADDR
STA .3
LDA T5
ADA Α,Ι
JSM
PTR1 = CURRENT WORD OF BUFFEB
laufendes Wort des Puffers
TMPRE = REMAINING LENGTH OF THE BUFFER verbleibende Pufferlänge
JSM PSTR (S.B.), PREPARE DESTINATION
JSM TRSTR (S.B.), TRANSFER DATA Daten transferieren
TRANSFER COMPLETE GO GET NEXT VARIABLE komplett transferieren, nächste Variable holen
SUBROUTINE TO GET AN ADDRESS Subroutine um eine Adresse zu holen
22723 021472 NADD
22724 011421
22725 Ο67443
22726 121472 NAD1
22727 010121 2273O 066742
1138 22731 010004
LDA TEMPS DONE?
fertig?
CPA PRADD
JMP FXIT
LDA TEMPS,I ti Il ?
CPA B4000 GO SET UP FOR I
für Schleife au
JMP PFOR RIGHT PAREN.?
rechte Klammer?
CPA B10K
309884/1370
7 22732 3 3 3 !-Ί Ο 8 * ADA .5 IS IT
ist sie
MOVE THE VARIABLE
NAME AND ADDRESS TO
Variablenname und
-Adresse bewegen zum
22733 664 STA FLOOP FOLLOWED BY
gefolgt von
THE LOOP BLOCK
Schleifenblock
1139 066734- ■ JMP *+2 LDA TEMPS SET .FLP TO FLOOP+2
setzen
1140 22734- 066672 JMP .NADD ADA .3 (LEFT PAREN.?
linker Klammer?
1141* 22735 STA TEMPS YES, GO SET FOR LOOP
ja, für Schleife setzen
1142 22736 021472 LDA TEMPS JSM FORMA,I NO, MUST BE DURING
EXCUTION OF FOR LOOP
nein, muß während Aus
führung der FOR-Schleife
sein
1143 22737 Ο7ΟΟ7Ο STA *+1
1144 22740 070517 LDA A,I
1145 22741 010126 CPA LPOP BUMP FOR LOOP POINTER
schieben für Schleifen-
Hinweismarke
1146 066742 JMP PFOR
1147 22742 067003 JMP TFOR
1148* 2274-3
1149 22744 021665 PFOR LDA FLOOP MOVE TEMPS PASS "FOR"
Zwischenspeicher be
wegen, FOR passieren
1150 22745 000022 EVALUATE STARTING VALUE
Anfangswert auswerten
1151 2274-6 031665 INPUT BLOCK EXECUTION
formatierter Eingabeblock
1152 22747 021472 LDA HSTPT
1153 22750 000020 ADA M2
1154- 295 031472 LDB FLOOP
1155 22751 160201 XFR
Seite 22752 FORMATTED
Ausführung
ADB M1
1156 22753 021413 STB .FLP
1157 22754- 000133
1158 22755 025665
1159 22756 170004
1160 004132
1161 035663
309884/1370
ORIGINAL INSPECTED
■) q ί :·! ο η
1162 22757 04-54-72
1163 22760 061217
1164 22761 160225
1165 22762 164273
1166 22763 074-076
1167 22764- 135663
1168 22765 04-5663
1169 22766 024-012
1170 22767 1214-72
1171 22770 002050
1172 22771 072250
1173 22772 04-54-72
1174 22773 061217
1175 22774 160225
1176 22775 164273
1177 22776 135663
1178 22777 045663
1179 23000 025472
1180 23001 135663
1181 23002 066726 1182*
1183*
1184
1185
1186
1187
23003 025665 TFOR
23004 074070
23005 061372
23006 031660
1188 23007 010025
1189 23010 067015
1190 23011 162113
1191 23012 074117
1192 23013 060445
1193 23014 160225
ISZ TEMPS JoM FETCH
JSM FLTRA1I
JMP Ε5-1.,Ι
TCB
STB .FLP,I
ISZ .FLP'
LDB .1
LDA TEMPS,I
ADA STEC
RZA *+5
ISZ TEMPS
JSM FETCH JSM FLTRA7I JMP E5-1,I STB .FLP,I
ISZ .FLP LDB TEMPS STB .FLP,I
JMP NAD1
LDB FLOOP SIB *+1 JSM FIX+1 STA T6
CPA .8
JMP *+5
JSM OPCHI1I LDA B
JSM XFAR2+1 JSM FLTRA,I
"TO"
EVALUATE FINAL VALUE Endwert auswerten
SAVE "FINAL"
"Ende" sichern
ANY STEP?
irgendein Schritt?
IES, MOVE PASS "STEP" ja, Schritt-Durchlauf bewegen
SAVE STEP
Schritt sichern
SAVE THE ADDRESS AFTER FOR LOOP IMFORMATION ' Adresse nach FOR-Schleifen-Information sichern
WAS IT AN INTEGER? Ganzzahl?
YES
0988W1370
ORIGINAL INSPECTED
23015 074537 23037 OOOOI7 LDB B,I FOR VARIABLE IN (B), CHECK IF AT FINAL VALUE
1194 23040 070437 NO OVERFLOW prüfen, ob am Endwert
FOR-Variable in (B),
23041 O74IIO keine Überfüllung
23ΟΙ6 021665 23042 074313 LDA FLOOP NO
1195 23017 000020 23043 021665 ADA .3 nein
1196 23Ο2Ο 070437 ADB A,I ADD THE STEP SIZE TO B
1197 23044 000021 Schrittweite zu B
23045 070517 addieren
23021 021660 23046 Ο31472 LDA T6
1198 23022 002036 23047 066726 ADA M8
1199 23023 O722IO RZA *+4 IF NOT AN INTEGER SKIP 4
1200 wenn keine Ganzzahl,
4 überspringen
23024 121665 LDA FLOOP,I YES IT WAS AN INTEGER
1201 ja, war Ganzzahl
23025 Ο7Ο577 STB A,I
1202 23026 Ο67Ο36 JMP .IFOR
1203 23027 035660 STB T6
1204 23030 160227 JSM FXFLA1I
1205 23031 025665 LDB FLOOP
1206 23032 074070 SIB *+1
1207 23033 061372 JSM FIX+1
1208 23034 060416 JSM STORE
1209 23035 025660 LDB T6
1210 23036 021665 .TFOR LDA FLOOP
1211 296 FOBMATTED INPUT BLOCK EXECUTION
Seite Ausführung formatierter Eingabeblock
ADA .2
1212 ADB A, I
1213
SZB *+2
1214 SBP *+6
1215 LDA FLOOP
1216
ADA .4
1217 LDA A,I
1218 STA TEMPS
1219 JMP NAD1
1220
988W1370
1226 23054 066723 1227*
1221* 23050 045472 ISZ TEMPS
1222 23051 021665 LDA FLOOP
1223 23052 000136 ADA M5
1224 23053 031665 STA FLOOP
1225
JMP NADD DONE WITH LOOP BUMP TEMPS, AND LOOP POINTER fertig mit schleifen-Schiebe-Zwischenspeicher und Schleifen-Hinweismarke
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
1229* SUBROUTINE 1
um ein Byte zu
061040 021650 TO GET
holen
A BYTE GETCH-1 TX
1230* 010061 O72I7O LNB1D *+3
1231* 23055 155466 020061 NBYT JSM L0CL1,I LNFD
1232 23056 170402 170402 CPA
1233 23057 DSZ
1234 23 060 SUBROUTINE 2
um ein Byte zu
O3I65O RET A BYTE TX
1235 O63O55 NBYT
1236* 23O6I 010041 TO GET
holen
LDA -32
1237* 23062 067061 RIA NBYB
1238* 23063 NBYB LDA
1239 23064 RET
1240
1241 23O65 STA
1242 23O66 JSM
1243* 23067 CPA
1244 23070 JMP
1245
1246
1247
GET A CHARACTER Zeichen holen
CHECK FIELD WIDTH COUNTER Feldbreitenzähler prüfen
RETURN LINEFEED IF AT END Zeilenfüllung zurück, wenn am Ende
GET CHARACTER Zeichen holen
IGNORE BLANKS Leerstellen ignorieren
1248 23071 170402
RET
O 9 8 R U I 1 3 7 OWGINAL INSPECTED
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
23072 164271 MEOV JMP E1+1,I MEMORY OVERFLOW Speicher überfüllt
1251*
1252*
1253*
1254
1255
SUBROUTINE TO READ ONE ASCII RECORD INTO RUFFER Subroutine, um eine ASCII-Aufnahme in Puffer einzulesen
23073 021412 RREC
23074 000061
1256 23075 O7O74-4
1257 23076 031400
1258 23077 031706
1259 23IOO 002046
1260 23IOI 031623
1261 23IO2 O7OOO2
1262 23IO3 070076
1263 23104 001413
1264 23IO5 071252
1265*
1266 23106 020141
1267 23IO7 031466
1268 23IIO 063321
1269 23III O723IO
1270 23112 045466
1271 23113 067110
1272*
1273 23114 160205
1274 23115 177655
1275*
1276*
LDA LSTPT ADA .10
23II6 063321 RRE1
SAL 1
STA BADDR STA SBPTR ADA .80 STA PEND SAR 1
TCA
ADA HSTPT SAM MEOV
LDA M10 STA L0CL1
JSM INPT RZA RRE1+1
ISZ L0CL1 JMP *-3
JSM AERRAy DEC -83
JSM INPT ALLOW 10 WORDS IN LOW-STACK FOR FORMT 10 Worte im unteren Stapel für Format erlauben
SET FOR 10 BLANKS für 10 Leerstellen setzen
THE CARD READER ONLY GIVES 10
Kartenleser gibt nur
SKIP IF NOT A BLANK überspringen, wenn keine Leerstelle
ERROR 83 - END OF TAPE Fehler 83 - Bandende
CALL FOR INPUT nach Eingabe rufen
309884/ 1 ORIGINAL H4SPSCTED
23117 010061
23120 067131
23121 012041
23122 067142
23123 012042
23124 067147
23125 012043
23126 067147
23127 061016
1290 23132 O2OO3I
1291 23133 061016
1292 23134 021400
1293 23135 OOOI32
1294 23136 031623
1295 23137 021706-
1296 23140 031400
1297 23141 170402
1298*
1299 23142 021400 BKUP
I3OO 23143 011706
CPA LNPD
JMP BFND
CPA AROW
JMP BEUP
CPA ALTM
JMP SKND
CPA ESCM
JMP SKND
JSM ONEXT
JMP RRE1
23130 067116
1288*
23131 045623 BFND ISZ PEND
LDA EOL JSM ONEXT LDA BADDR ADA M1
STA PEND LDA SBPTR STA BADDR RET
23144 067116
23145 Ο554ΟΟ
23146 067116
1304*
23147 063321 SKND
LDA BADDR CPA SBPTR JMP RRE1
DSZ BADDR
JMP RRE1 IS IT LINEFEED? Zeile gefüllt?
YES STORE IN BUFFER AND RETURN
ja, in Puffer speichern und zurück
IS IT LEFT-ARROW? Pfeil links?
YES, BACK UP ja, umdrehen
IS IT ALT MODE? ALT-Betrieb?
YES, RE-READ RECORD ja, Aufnahme erneut lesen
IS IT ESC MODE? ESC-Betrieb?
YES, RE-READ RECORD ja, Aufnahme erneut lesen
NO, STORE IN BUFFER nein, in Puffer speichern
MOVE END POINTER End-Hinweismarke bewegen
SET PEND TO THE EOL CHAR. PEND zum EOL-Zeichen setzen
JSM INPT 309884/ 1370 DON'T GO BEYOND START OF BUFFER
nicht über Start des Puffers hinausgehen
BACK UP
umdrehen
SKIP TO END OF RECORD zum Aufnahme-Ende springen
ORIGINAL INSPECTED
η f
Hl 8
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
1309*
23150 010061
23151 Ο67Ο73
23152 067W
CPA LNPD JMP REEC
JMP *-3 RE-READ
erneut lesen
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
1311* 1312*
1313* 1314
1315 I3I6
1319 1320 1321* 1322
1323" 1324
SUBROUTINE TO BUILD A NUMBER IN AR2 Subroutine um Zahl in AR2 aufzubauen
23153 061256 NMBR
23154 022040
23155 I7OOOO
23156 020132
23157 031660
23160 O2OO3O
23161 031661
23162 063061
23163 024132
23164 OIOO5O
1325 23165 074742
1326 23166 035712
1327 23167 010050
1328 23170 067172
1329 23171 010047 1330*
1331 23172 063061 NMB1
153? 23173 060750
JSM CLAR2 SET AR2 = 0.
setzen
LDA AMF
CLR CLEAR WORK AREA
Arbeitsbereich löschen
LDA M1
STA T6 M=-1
LDA .12
STA T7 N=12
JSM NBIB GET FIRST CHARACTER
erstes Zeichen holen
LDB M1
CPA ASCM IS IT -?
ist es -?
SBR 16 IES
STB .SIGN
CPA ASCM BIPASS - OR +
Beipass - oder +
JMP *+2
CPA ASCP
JSM NBIB GET NEXT CHARACTER
nächstes Zeichen holen
JSM DIGCK IS IT A DIGIT?
ist es Ziffer?
Q 9 8OA /1 3 7.Π ORIGINAL IMSPECTED
1333 23174- 067222 23175 045652
1335 23176 076350 1336 23177 021653
1337 23200 072310 1338 23201 021654 1339 23202 071410 1340 23203 055660
1344 23206 021654-
1345 23207 072150
1346 23210 045660
1347 23211 067212
1348 23212 021661
1349 23213 070310
1350 23214 055661
1351 23215 067216
1352 23216 1714-00
1353 23217 005757
1354 23220 035757
1355 23221 067172 1356*
1357 23222 010051 NI1B3
1358 23223 067251
6fr?
JTlP NMB3 ISZ MF EZB NMB2 LDA SD
RZA NMB2+1
LDA DP
SZA NMB1
DSZ T6
JMP NMB1
1341 23204 067172
1342*
1343 23205 045653 NMB2 ISZ SD NO nein
IES ja
IS IT ZERO? ist es Null?
YES, ANI SIGNIFICANT DIGITS YET? ja, noch irgendwelche signifikante Ziffern?
YES ja
NO, ANY DECIMAL POINT YET? nein, noch ein Dezimalpunkt?
NO ? IGNORE THIS ZERO
nein, diese Null ignorieren
YES, M=M-I ja, M=M-I
SIGNIFICANT DIGIT (1-9) signifikante Ziffer (1-9)
LDA DP IS DP=O?
RZA *+3 YES, M=M+1
ISZ T6 ja, M=M+1
(NOP)
JMP *+1 IS N=O?
LDA T7 YES, IGNORE REMAINING
SZA *+6 DIGITS
ja, verbleibende Ziffern
ignorieren
NO, N=N-I
DSZ T7 nein, N=N-I
(NOP)
JMP *+1
MLS INCLUDE DIGIT IN AR2
ADB AR2+3 Ziffer in AR2 einschließ
STB AR2+3
JTlP NMB1 DECIMAL- POINT?
CPA ASC. Dezimalpunkt
IES
JMP NMB5 ja
O 9 8 Π h / 1 3 ? η
ORIGINAL IMSPECTED
1359 23224 012044
1360 23225 067256
1361 23226 021652
1362 23227 072150
1363 23230 025712
1364 23231 074710
1365 23232 021660
CPA ASGE JMP ΝΜΒ6
LDA MF RZA *+5
LDB .SIGN SZB Ε73 LDA Τ6
1366 23233 070137 ΝΜΒ4 LDB A
2 3 ~ :Λ9 π 8
EEX? YES
NO, IS MF=O?
nein, ist MF=O?
IF MF' IS ZERO, AND THERE WAS A(-) SIGN - ERROR Wenn MF Null ist und (-) -Zeichen da war - Fehler
NO, TEST FOR EXPONENT OVERFLOW
nein, auf Exponenttiberfüllung prüfen
Seite 301 FORMATTED INPUT BLOCK EXECUTION
Ausführung formatierter Eingabeblock
1367 1368 1569 1370
1371 1372
1375 1574
1578*
1582 23252 021654
23234 074113 SBP *+2
23235 074076 TCB
23236 004156 ADB M100
23237 O74413 SBP E75
23240 171450 NRM
23241 070254 SES *+5
23242 070404 SAL 8
23245 O45712 ISZ .SIGN
23244 O7OO7O SIA *+1
23245 O31754 STA AR2
23246 170402 RET
23247 160205 E73 JSM AERRA,I
2325O 177652 DEC -86
23251 051662 NMB5 STA T9
OVERFLOW, ERROR Uberfüllung, Fehler
SKIP IF ZERO MANTISSA überspringen, wenn Null-Mantisse
TEST MANTISSA SIGN (-1=+) Mantissen-Vorzeichen prüfen (-1=+)
LDA DP NUMBER SYNTAX ERROR Zahl-Syntax-Fehler
SET IGNORE-D FLAG "D ignorieren"-Marke setzen
TEST DP FLAG
DP-Marke prüfen
3 0988W1370 OMGlfclAL
23253 073610 6*0 E73
1383 23254- 045654 RZA DP
1384 23255 067172 ISZ NMB1
1385 JMP
1386* 23256 031662 NMB6 T9
1387 23257 021652 STA MF
1388 23260 O7225O LDA *4-5
1389 RZA
1390 23261 021654 1391 23262 Ο7325Ο
1392 23263 020020
1393 23264 060445
1394 23265 063061
1395 23266 024132
1396 23267 010050
1397 23270 074742
1398 23271 035654
1399 23272 010050
1400 23273 067275
1401 23274 010047
1402 23275 063061
1403 23276 060750
1404 23277 067247
1405 23300 035655 NMB7
1406 23301 063061
SET ALREADY, ERROR schon gesetzt, Fehler
LDA RZA
DP
E73 SET IGNORE-D FLAG "D ignorieren"-Marke setzen
MANTISSA DIGITS ENTERED Mantissenziffern eingegeben
ANY DECIMAL POINT? irgendein Dezimalpunkt?
IES, BUT NO MANTISSA DIGITS, ERROR
ja, aber keine Mantissenziffern, Fehler
LDA ONE NO, SET AR2 = 1.
nein, AR2 = 1 setzen
JSM JSM
LDB CPA XFAR2+1
NBIB
M1 ASCM GET NEXT CHARACTER nächstes Zeichen holen
SBR STB DP
CPA ASCM
JMP *+2 CPA ASCP JSM NBIB
JSM DIGCK JMP E73 STB EX IS IT -?
ist es -?
IES
USE DP FOR EXPONENT SIGN DP für Exponent-Vorzeichen benutzen
BIPASS - OR + Beipass - oder +
GET NEXT CHARACTER nächstes Zeichen holen
DIGIT?
Ziffer?
NO, ERROR
nein, Fehler
IES
JSM NBIB GET NEXT CHARACTER
nächstes Zeichen holen
09884/1370 OFHGlNAi. INSPSGTED
1407 23302 060750
1408 23303 067313
1409 23304 021655
1410
1411
1412
1413
1414
1415
1416*
1417
1418
1419
23305 23306
23307
23310
23311
23312
070744 031466 070704 001466
070037 067300
23313 021655 NMB8 23314- 025654-23315 076110
1420 23316 070076
1421 23317 001660
1422 23320 067233
JSM DIGCK JMP NKB8 LDA EX
SAL 1 STA LOCL1 SAL 2 ADA L0CL1 ADB A JMP NMB7
LDA EX LDB DP RZB *+2
TCA
ADA T6 JMP NMB4
DIGIT? Ziffer?
NO
nein
IES. ja
ADJUST EXPONENT SIGN Exponent-Vorzeichen justieren
Sexte 302 FORMATTED IN
Ausführung f
SELECT CODE
Auswahlcode
1424*
1425* INPUT DRIVER
Eingabe-Ansteuerung
021644 INPT
1426* 063447
1427* T1 HAS
T1 hat
074117
1428* 070073
1429 23321 070302
1430 23322 025642
1431 23323 O7O5IO
1432 23324
1433 23325
1434 23326
23327
LDA T1 GET A CHAR
Zeichen in
IN B
B holen
NEEDED?
benötigt?
JSM .CHAR , DON'T CONVERT
O, nicht um-
LDA B
SAP *+1,C MASK DATA
Daten ausblenden
SAR 7 CONVERSION
Umwandlung
LDB T8 IF (A) = O,
wenn (A) =
wandeln
3ZA RET1
":.098R/. /1370
0RK3WAL WSPEOTEQ
14-36 23330 074-310
1445 23341 17O4C2 RET1
1446* 1447*
1448* 1449*
1450* 1451* 1452* 1453* 1454 1455 1456
1459*
1462*
OUTPUT DRIVER Ausgabe-Ansteuerung
T2 HAS SELECT CODE T2 hat Auswahlcode
LDA DATA JSM OTPT
23342 031466 OTPT
23343 021656
23344 O6343I
23345 041466
23346 065356
SZB *+6
1437 23331 OOOI32 ADA M1
1438 23332 Ο7ΟΟ37 ADB A
1439 23333 074517 LDA B,I
1440 23334 O7OII3 SAP *+2
1441 23335 067505 JMP E79
1442 23336 050104 AND BI77
1443 23337 OIOO31 CPA CRTN
1444 23340 067321 JMP INPT
RET
STA L0CL1 LDA T2 JSM IOST
IOR L0CL1 JMP TTY+3 IF (B) IS 0, SKIP CONVERSION wenn (B) = 0, Umwandlung überspringen
XES, TREAT INPUT CODE AS ADDRESS ja, Eingabecode als Adresse behandeln
IGNORE CARRIAGE RETURNS Wagenrückläufe ignorieren
RETURN DATA IN A-REGISTER Daten zurück in Α-Register
CHECK I/O STATUS prüfen
GET DATA Daten holen
STF 1, OTA 1, STC 1, AND RETURN und zurück
23347 000143 LINEP DEF .10+.10+1 2335O 000063 CARRF DEF CRTN+CRTN+1
2335I Ο2735Ο .CRLP1 LDB CARRF CAIiRIAGE RETURN
Wagenrücklauf
1 O 9 B Π Λ / 1 3 7 Π
1464 23352 063354 .OUT. JSM *+2 LINE FEED
Zeile gefüllt
0UT1 JMP TTY <
1465 23353 027347 LDB LINEF
1466 23354- 020012 LDA .1 LDB SBPTR
1467 23355 067374 JMP .OUTP JSM WBUFF
1468* .OUTP STA XC+1
1469 23356 025642 LDB T8 STB XC
1470 23357 O745IO SZB 0UT1 LDB T5
1471 23360 074457 CPA B,I RZB XFTOS ANY INTERNAL CONVERSION
irgendeine innere Um
wandlung
1472 23361 067365 JMP *+4 SZA *+5
1473 23362 015643 CPB TBEND IF NO MATCH FOUND -
ASSUME A NULL CHARACTER
wenn kein passendes ge
funden, Null-Zeichen
annehmen
JSM GTMP
1474 23363 170402 RET .OUTT JSM .OUT. NO - OUTPUT THE DATA TO
THE DEVICE
nein - Daten zum Gerät
ausgeben
1475 23364 077630 RIB *_4 DSZ XC+1
1476 23365 021642 LDA T8 JMP *-3
1477 23366 070076 TCA
1478 23367 074017 ADA B
1479 23370 O7OO7O SIA *+1 FORMATTED INPUT BLOCK EXECUTION
Ausführung formatierter Eingabeblock
Seite 303 065353
1480 23371
1481* O257O6
1482 2.3372 O6O374
1483 23373 031741
1484 23374 035740
1485 23375 025641
1486 23376 076350
1487 23377 070250
1488 23400 061O53
1489 23401 063356
1490 23402 055741
1491 23403 067401
1492 23404
30988W1370
3 3° : Π Β
1493 23405 170402 1494*
1495 23406 031647
1496 23407 025740
1497 23410 035645
1498 23411 022034
1499 23412 025412
1500 23413 074070
1501 23414 170004
1502 23415 004132
1503 23416 035412
1504 23417 021647
1505 23420 001662
1506 23421 031662
1507 23422 021641
1508 23423 000017
1509 23424 024132
1510 23425 070717
1511 23426 021641
1512 23427 000020
XFTOS
1513 23430 070737
RET
STA TMPRE LDR XC STB PTR1
LDA FLOP LDB LSTPT
SIB *+1
XFR
ADB M1 STB LSTPT
LDA TMPRE ADA T9 STA T9 LDA T5 ADA .2 LDB M1 JSM A, I
LDA T5 ADA .3
JEP A,I
PLACE THE COUITT AND ADDRESS IN TMPRE, PTR1 Zählung plazieren und adressieren in TMPRE, PTR1
TRANSFER THE SUBSCRIPTS TO THE LSTPT
Indizes zum LSTPT transferieren
BUMP THE LOW STACK POINTER Hinweismarke für unteren Stapel schieben
JSM PSTR
PREPARE THE DESTINATION Bestimmung vorbereiten
JSM TRSTR, TRANSFER DATA Daten transferieren
Seite 304 FORMATTED INPUT BLOCK EXECUTION
Ausführung formatierter Eingabeblock
1515* 1516*
1517* I5I8*
1519* 1520*
CHECK I/O STATUS prüfen
LDA SELECT CODE (SAVED)
LDA Auswahlcode (gesichert)
JSM IOST
30988W 1 370
OfMGINAL INSPECTED
234-31 025442 IOST LDB STPFL
23432 014040
23433 067443
23434 172741
23435 172141
CPB JMP FXIT STF
OTA
1526 23436 172741 O7O742 FXIT STF 1 16
1527 23437 177241 O31455 LIB 1,C FORMT
1523 23440 074406 160170 RBR 9 CLERA,I
1529 234^1 O75413 164172 SBP IOST XEC4A,I
1530 23442 170402 RET 1
1531* OI2O37 .CHAR SCI3
1532* EXIT ROUTINE
Ausgangs-Routine -
1533*
1534 23443 SAR
1535 23444 STA
1536 23445 JSM
1537 23446 JMP
1538*
1539 23447 CPA
CHECK GTCP I1LaG Stop-rMarke. prüfen
TURN- OFF INTERRUPT SYSTEM Systemunterbrechung abschalten
OUTPUT SELECT CODE Ausgabe Auswahlcode
LOAD DEVICE STATUS Geratezustand laden
AND TURN ON INTERRUPT und Unterbrechung einschalten
LOOP IF BUSY Schleife, wenn arbeitet
2345O 067452
23451 Ο63456
23452 O6343I
23453 012037 23454 065356
JMP *+2 JSM CEO-1 JSM IOST CPA SC13
JMP TTY+3 SELECT CODE 13? Auswahlcode 13?
YES, SKIP ja, überspringen
NO, SET CONTROL FIRST nein, erst Kontrolle setzen
GET A BYTE ein Byte holen
SELECT CODE 13? Auswahlcode 13?
YES, SET CONTROL AFTER ja, Kontrolle nachher setzen
1545 23455 170402 CEO RET IOST
23456 O6343I JSM TTY+3
1 [AH 23457 065356 JMP
SET CONTROL Kontrolle setzen
:Q98H-W 1 3 7
O B
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
1550* 1551*
1552* 1553*
1563* 1564*
1565* 1566 1567 1568
SAVE STACK POINTERS Stapelspeicher-Hinweismarken sichern
EVALUATE AND CHECK UNIT Einheits auswerten und prüfen
23460 061217 UNNM
23461 I6O225
23462 164342
23463 074117
23464 O757IO
23465 074142
23466 077610
23467 070146 2347O 170402
JSM FETCH JSM FLTRA,I JMP E40+3,I LDA B SZB *-2
SBR RZB *-4
RAR RET ERROR, ZERO SELECT CODE Fehler, Kein Auswahlcode
ERROR, SELECT CODE
15 OR O
Fehler, Auswahlcode
15 oder O
GET OPTIONAL CONVERSION TABLE Wahl-Umwandlungs-Tabelle holen
23471 121472
23472 O5OO65
23473 010004
23474 067514
23475 121472
23476 O5OII5
23477 160177
23500 067505
23501 074517
23502 O5OO37
.CTBL LDA TEMPS,I AND OPMSK CPA RPOP ANI CONVERSION TABLE? irgendeine Verwandlungstabelle?
JMP CTB1 NO, STORE ZERO
nein, Null speichern
LDA TEMPS1I XES, GET ARRAY NAME ja, Feldname holen
AND BI777 JSM SSIMA1I
JMP E79 LDA B,I AND SEARCH TABLE Tabelle suchen
ERROR, NOT FOUND Fehler, nicht gefunden
GET TYPE INFORMATION Typ-Information holen
Q 9 B iU / 1 3 7
OFHGINAL INSPECTED
1576 23503 010025
1577 23504 067507 1578*
1579 23505 160205 E79
1580 23506 177651 1581*
1582 23507 004132
1583 23510 074517
1584 23511 063515
1585 23512 045472
CTB1
1586 23513 170402
1587*
1588 23514 070742
1589 23515 031642
1590 23516 071650
1591 23517 000132
1592 23520 070517
1593 23521 070137
1594 23522 074342
1595 23523 074070
1596 23524 050105
1597 23525 Ο7ΟΟ7Ο
1598 23526 061201
1599 23527 001642
1600 23530 031643
1601 23531 170402
CPA .8 INTEGER?
Ganzzahl?
JMP *+3
JSM AEREA1 I NO SUCH TABLE OR
UNSUITABLE TABLE
keine solche Tabelle
oder ungeeignete Tabelle
DEC -87
ADB M1
LDA 8,1 GET BASE ADDRESS OF
TABLE
Basisadresse der. Tabelle holen
JSM CTB1+1 GO COMPUTE LAST ADRESS
letzte Adresse berechnen
ISZ TEMPS RETURN IF NOT CONVERSION
zurück, wenn keine Um
wandlung
RET
SAR 16
STA T8 GET ROW AND COLUMN
INFORMATION
Zeilen- und Spalten
information holen
SZA CTB1-1
ADA M1 (B) = ■'-■ OF ROW
der Zeile
LDA Α,Ι
LDB A (A) = OF COLUMNS
der Spalten
SBR 8
SIB *+1
AND B377 SAVE THE END OF TABLE
SIA *+1
JSM IMPY
ADA T8
STA TBEND
ADDRESS
ENDE DER Tabellenadresse sichern
RET
3Q988W 1 370
?3V;
Seite 306 FORMATTED INPUT BLOCK EXECUTION
Ausführung formatierter "Eingabeblock
O72IIO INICV RZA *+2 ,1 STRING BLOCK NOT
AVAILABE
STRING-Block nicht
verfügbar
1603* 164311 JMP EI5+3,
1604* PREPARE FOR INTERNAL CONVERSION
innere Umwandlung vorbereiten
000012 ADA .1 JSM GADD, PROCESS
1605* 070717 JSM A,I
1606 23432
1607 23533
1608 23534
1609 23535
23536 021412
23537 000133
1612 2354O 026034
1613 23541 170004
1614 23542 000135
1615 23543 031412
1616 23544 O22O5I
1617 23545 031640
1618 23546 O74742
1619 23547 162117
2355O 067722
23551 067567
1622*
1623*
1624*
LDA LSTPT
ADA M2
LDB FLOP XFR
ADA M4 STA LSTPT LDA FMTOP STA ST SBR 16 JSM PLOTE,I
JMP EWRI1-1
JMP .EOUT+1
POINTERS TO DESTINATIONS Hinweismarken zu Bestimmungen verarbeiten
GADD SET'S UP STRING POINTERS ON LOW STACK. GADD setzt in tiefem Stapel STRIITG-Hinweismarken auf
THEY MUST BE SAVED müssen gesichert sein
LOOK FOR A FORMAT STATEMENT
nach Formatanweisung sehen
P+1, NOT FOUND, USE PRINT EXECUTION nicht gefunden, Druck-Ausführung benutzen
P+2, FOUND
gefanden
OUTPUT STATEMMT EXECUTION
Ausgabe-Anweisungs-Ausführung
309884/1 ORIGINAL INSPECTED
23552 062247 EOUT JSM STBLK LCOK FOR THE STRIJl
nach STRING-Block
I STRING ARRAY ROOM?
STRING-Feld-Raum?
1625 23553 045472 ISZ TEMPS YES
1626 23554 125472 LDB TEMPS, NO
nein
1627 23555 074244 SBL 11
1628 23556 074542 SBR 12
1629 23557 014032 CPB .15
1630 23560 067532 JMP INTCV SET UP DEVICE AND
FORMAT CODES
Gerät- und Format-
Codes aufsetzen
1631 23561 055472 DSZ TEMPS
1632 23562 074742 SBR 16
1633 23563 035641 STB T5
1634 23564 022051 LDA FMTOP
1635 23565 162105 JSM SFMT1I
1636
23566 067722 .EOUT 23567 063471 23570 162112 JMP EWRI1-1 NO FORMAT SPECIFIED
kein Format spezifiziert
JSM .CTBL CHECK CONVERSION TABLE
Umwandlungstabelle prüfen
JSM CKEOL1I NULL LIST? Null-Liste?
23571 000103 BLNKA DEF .32+.32+1
1643 1644 1645 164-6
23572 035472 23573 162106 WRIT2
23574 067606 23575 067615 23576 074742 23577 060563
STB TEMPS IMPOSSIBLE STATE WORD USED AS A CONSTANT unmöglicher Zustand Wort als Konstante benutzt
YES1 SET TEMPS=PRADD ja, TEMPS=PRADd setzen
JSM TYPEC1I GET NEXT FORMAT SPEC nächste Formatspezifikation holen
1C47 23600 067617
077713
JMP WRITN
JMP WRITQ
SBR 16
JSM SLWST
JMP WRITE
SBP *-2,S END OF FORMAT Format-Ende
QUOTE FIELD Quotenfeld
SET FLAG FOR FIXED Marke für "fest" setzen
STACK FLAG; O=F1 +=E, -=B Marke stapeln; O=F1 +=E, -=B
(CODE 5 IS NOT USED) (Code 5 ist nicht benutzt)
SET B FLAG B-Marke setzen
ORIGINAL INSPECTED
ί -\ - η
1649 1650*
1657 1658*
JMP WRITX X:
23602 067612
END OF FORMAT STATEMENT Ende der Format-Anweisung
23603 162114 JSM FSPR1I
23604 063351 WRITS JSM .GRLF
23605 067573 JMP WRIT2
23606 Ο75713 WRITN SBP WRITS
/j UPDATE FORMAT POINTER Format-Hinweismarke auf den neuesten Stand bringen
ANY NUMERIC SPEC FOUND? irgendeine numerische Spezifikation gefunden?
23607 Ο74742
23610 Ο35455
23611 067723
X FIELD X-FeId
SBR
STB FORMT
JMP EWRH CLEAR FORMAT NESTING FLAG Format-Schachtel-Marke löschen
NO, GOTO STANDARD FORMAT nein, zum Standardformat gehen
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
1660 1661 1662*
1665* 1666*
23612 162114 WRITX JSM FSPR,I UPDATE FORMAT POINTER
Format-Hinweismarke auf den neuesten Stand bringen
23613 020012 LDA
23614 O2757I LDB BLNKA
QUOTE FIELD Quotenfeld
23615 063374 WRITQ JSM .OUTP OUTPUT TO DEVICE
Ausgabe an Gerät
23616 067573 JMP WRIT2
OUTPUT F,E, OR B FIELD Ausgabe F-, E- oder B-Feld
23617 025466 WRITF LDB L0CL1
23620 O6O563 JSM SLWST STACK FORMAT STMT POINTER
Fo rmatanwei sun^s-H inweifsmarke stapeln
23621 162112 WRIT4 JSM CEEOL,I END OF WRITE STMT?
Ende der Schreibanweisunf:
23622 074742 SBR 16 YES, CRLK NOT SHFREoSEn
ja, CRIiF nicht unterdrückt
O9 8 R Λ/13 7 η
OfHGINAL INSPECTED
23?? ϊπ
1671 23623 067715 JMP WRITS-2 IES
Ja
1672 23624 162107 JSM QTCHK,I QUOTE NEXT IN WRITE
als nächstes Quote
beim Schreiben
1673 23625 067630 JMP WRIT5 NO
nein
1674 23626 063374 JSM .0UTP YES, OUTPUT IT
ja, ausgeben
1675 23627 067621 JMP WRIT4
1676*
1677
1678
23630
23631
162110
061220
WRIT5 JSM
JSM
PFORM,I
FETCH+1
SAVE FLAGS AND
EVALUATE FORMULA
Marken sichern und
Formel auswerten
1679 23632 060567 JSM UNSTK RECALL FORMAT STMT
POINTER
Formatanweisungs-Hin-
weismarke zurückrufen
1680 23633 031466 STA L0CL1
1681 23634 060567 JSM UNSTK RECALL E,F, OR B FLAG
E-, F- oder B-Marke
zurückrufen
1682 23635 031705 STA FLOAT
1683 23636 070252 SAM WRITB SKIP IF B
überspringen, wenn B
1684 23637 045466 ISZ L0CL1
1685 23640 121466 LDA L0CL1,I GET FIELD WIDTH SPEC
Feldweiten-Spezifikation
holen
1686 23641 045466 ISZ L0CL1
1687 23642 045466 ISZ L0CL1
1688 23643 025456 WRITB LDB FORMS
1689 23644 074073 SBP *+1,C
1690 23645 035456 STB FORMS SET NUMERIC SPEC FOUND
FLAG
"Numerische Spezifikation
gefunden"-Marke setzen
1691 23646 125466 LDB L0CL1,I GET DECIMAL SPEC
DezimalSpezifikation
holen
1692 23647 162114 JSM FSPR1I UPDATE FORMAT POINTERS
Format-Hinweismarken
auf den neuesten Stand
bringen
1693 25650 031704 STA WIDTH
109884/ 1 370
OfHGINAL WSPECTED
? Ά Ί
23651 070353
SAP WRIT?
1695*
1696
OUTPUT B FIELE CHARACTER Ausgabe B-Feld-Zeichen
23652 160225 JSM FLTRA1I
1697 23653 0747*2
1698
1699
2365*
23655
074117 052053
1700 23656 061353
1701
1702*
1703
170*
1705
1706
1707
I7O8
1709
1710
1711
1712
SBR
LDA ti AND BIT12
JSM TTY JMP WRIT6
23657 067711
OUTPUT E OR F NUMBER Ausgabe E- oder F-Zahl
23660 O357O3 WRIT7 STB PLACE
23661 021412 LDA LSTPT
23662 000061
23663 O7OO7O
23664 O7O7**
23665 031*00
23666 031706
23667 021413
23670 070744
23671 031623
23672 021416
23673 031641
ADA SIA *+1 SAL STA BADDR
STA SBPTR LDA HSTPT SAL STA PEND
LDA MODE STA ST+1 SKIP Ii1 E F überspringen, wenn E oder F
CONVERT TO ROUNDED INTEGER
in gerundete Ganzzahl umwandeln
OVERFLOW; USE O Überfüllung; O benutzen
MASK THE LOWER 12 BITS untere 12 Bits ausblenden
OUTPUT SINGLE CHAR Ausgabe einzelnes Zeichen
START TEMP BUFFER Zwischenpuffer Start
ABOVE LOW STACK oberhalb tiefem Stapel
SET END OF BUFFER AT H-STACK Puffer-Ende zum H-Staüel setzen
Seite 308 FORMATTED INPUT BLOCK EXECUTION
Ausführung formatierter Eingabeblock
1715 23674 070742
1716 23675 031416
1717 23676 024215
SAR STA MODE
LDB TMPOP SET FOR PROGRAM FORMAT auf Programm-Format setzen
0988 U /1370 OFHGINAL WSPECTED
23677 ΊΛ ■
1718 23700 060406
1719 23701 160234
1720 23702 021641
1721 23703 031416
1722 23704 021400
1723 23705 011623
1724 23706 064561
1725 23707 063372
1726 23710 025625
172? 23711 025400
1728 23712 162112
1729 074742
° ΓΙ
1731
1732*
1733.
1734
1735
1736
6*3
23713 067717
23714 067573
JSM
JSM NMOTA,I
LDA ST+1 STA MODE LDA BADDR CPA PEND
JMP MER8 JSM .0UTP-2
LDB FIRST STB BADDR
JSM CKEOL,I SBR 16
JMP WRIT8 JMP WRIT2
END OF WRITE STMT
Ende der Schreibanweisung
23715 Ο55412 DSZ LSTPT
23716 Ο55412 DSZ LSTPT
23717 070742 WRIT8 SAR 16 23720 031455 STA FORMT
23721 067747
JMP PR2+1
1738* 23722 063471 JSM .CTBL '
1730 23723 025416 EWRH LDB MODE
1740 23724 076150 RZB *+3
1741 23725 021622 LDA TERM
1742 23726 072150 RZA *+3
1743 23727 160170 JSM CLERA.I
TA λ
OUTPUT A NUMBER TO THE BUFFER
Ausgabe eine Zahl zum Puffer
OVERFLOW?
Überfüllung?
COMPUTE LENGTH AND OUTPUT THE BUFFER Länge berechnen und Puffer ausgeben
RESET BADDR
nullstellen
END OF STMT?
Ende der Anweisung?
YES, CRLF NOT SUPRESSED ja_, CRLF nicht unterdrückt
IES
NO
nein
UNSTACE FLAGS
Marken entstapeln
SET FORMAT- COMPLETE FLAG Format setzen Marke vervollständigen
Π 8 H /, / 1 3 7
ORIGINAL INSPECTED
9 08 _
1745 23730 162112 JSM CKECL,I
1746 23731 067745 JMP PR2-1
1747 23732 067745 JMP PR2-1
1748 23733 162104 PR3 JSM PRINN1I
1749 23734 067746 JMP PR2
1750 23735 021625 LDA FIRST
1751 23736 070076 TCA
1752 23737 001400 ADA BADDR
1753 23740 025625 LDB FIRST .
1754 23741 063374 . JSM .0UTP
1755 23742 021400 LDA BADDR
1756 23743 031625 STA FIRST
1757 23744 067733 JMP PR3
1758*
1759 23745 074742 SBR 16
1760 23746 035622 PR2 STB TERM
1761 23747 Ö76150 RZB PR17
1762 23750 162111 JSM PRCHK,I
1763 23751 063351 JSM .CRLF
1764 23752 164172 PR17 JMP XEC4A,I
1765*
1766*
1767*
1768 23767 ORG 23767B
1769 23767 177563 ABS EOUT-*
1770 23770 176564 ABS EGET-*
GET EXECUTION Ausführung holen
1771 23771 176314
FORMATTED INPUT BLOCK EXECUTION Ausführung formatierter Eingabeblock
1772 23772 000000
1773*
1774 23773 176022
ABS CMD-* ASCII BUSS EXECUTION ASCII Sammelleitung Ausführung
BSS 1 **- CHECKSUM WORD ****** Summenprobe Wort
ABS NFOPT-* NON-FORMULA OPERATOR TABLE
Nicht-Formel-Operator-Tabelle
1 O 9 8 8 Λ / 1 3 7 O
1775 23774 176061 _ ABS FUNNT-* FUNCTION-NAME TABLE
Funktionsnamen-Tabelle
1776 23775 I76OI7 ABS NULL-* COMMAND-NAME TABLE (NULL)
Befehlsnamen-Tabelle (Null)
1777 23776 176036 ABS SYSNT-* STATEMENT-NAME TABLE
Anweisungsnamen-Tabelle
1778 23777 026000 PAGE OCT 26000
1779*
1780 END
Ende
30988 4/1370
M-Register
Wie in Fig. 15A-B gezeigt ist, ist auf dem M-Register-Feld das 16-Bit-Adressen- oder M-Register enthalten, alle die Dekodierung und Pufferung freigebenden Schaltkreise .sowie Adressenpuffer für ROM und RWM. Das Register benutzt vier 4-Bit-Register für serielle und parallele Ein- und Ausgabe. Nach Empfang einer TTM-Instruktion vom Mikroprozessor werden im M-Register serielle Daten von der T-Sammelschiene angenommen. Mit den Daten geschieht solange nichts, wie nicht eine Lese- oder Schreibirrstruktion empfangen worden ist; dann wird einer von zwei Dekodern freigegeben. Diese Schaltkreis-Freigabedekoder dekodieren einzeln, welcher Block von 512 Worten entweder im ROM oder RWM adressiert ist. Wenn das ROM adressiert ist, wird das Signal invertiert und auf +12V verstärkt. Für das RWM gibt die Schaltkreisfreigabe ein Gatter frei, welches einem 16-Volt-Taktsignal erlaubt, die freigegebenen RWM-Schaltkreise zu erreichen. Die Taktwelle wird auf der Steuerkarte erzeugt.
Die dynamische Charakteristik der RWM-Schaltkreise erfordert, daß alle Schaltkreise gleichzeitig während eines Erneuerungszyklus freigegeben werden, so daß das gesamte Lese/Schreib-Register erneuert wird. Die Pufferschaltungen am Ausgang der Schaltkreis-Freigabedekoder ermöglichen es dem Schaltkreis-Auswahl-Taktsignal, alle RWM-Schaltkreise während des Erneuerungszyklus zu erreichen, während eines Lese- oder Schreibzyklus jedoch nur solche, die einem Zugriff ausgesetzt sind.
Als Puffer für die ROM-Adressenleitungen werden Totempol-Ausgänge oder Gatter mit Haltewiderständen benutzt. Durch Benutzung der Totempol-Ausgangsgatter können die Übersprecheffekte minimisiert werden, während der Haltewiderstand die Adressenleitungen über das benötigte 4-Volt-Niveau anhebt. Die NAND-Gatter werden während eines Speicherzyklus freigegeben, so daß die ROM-Adressenleitungen an einem 5-Volt-Niveau gehemmt werden. Die RWM-Adressenleitungen müssen von OV bis +16V ziehen. Als Puffer für alle Adressen-Bits werden Inverter mit offenem Kollektor für hohe Spannung und mit gesonderten Haltetransistoreh benutzt.
309884/1 370
2333308
Steuerung
Ein Speicherzyklus besteht aus einer Lese- oder Schreibinstruktion von dem Prozessor, begleitet von 12 Taktimpulsen vom Schiebe-Taktgeber. Wie in Figuren 15A-B und 16A-B gezeigt ist, werden diese Impulse und Instruktionen bei der Steuerung benutzt, um die von den RWM-Schaltkreisen benötigten Taktimpulse zu erzeugen. Es wird ein synchrones System von Flip-Flops und Gattern benutzt. Die Ausgangssignale der Flip-Flops werden dann gepuffert und werden zu benötigten Taktsignalen (Vorladung, Y-Freigabe, Schaltkreisauswahl) .
Die Erneuerung des Lese/Schreib-Speichers wird auch durch die Steuerung besorgt. Ein astabiler Multivibrator mit einer Kippfrequenz von mindestens 500 Hz erzeugt ein Signal, welches es ermöglicht, daß ein Erneuerungszyklus stattfindet. Ein Flip-Flop erzeugt das tatsächliche Signal (REF). Jedoch nur, wenn das Signal des astabilen Multivibrators hoch ist, schreitet kein Lese- oder Schreibzyklus fort, und das Prozessorsignal GCT ist hoch. CCT geht zwischen Prozessor-Instruktionen hoch, so daß bekannt ist, daß nichts unterbrochen wird, wenn REF erzeugt wird. REF wird dann durch einen Inverter mit offenem Kollektor gepuffert und zum Prozessor INH gegeben. INH hält die Maschine an, und der Erneuerungszyklus beginnt.
Das gleiche, für einen SpeicherZyklus benutzte System wird während der Erneuerung benutzt, um wiederum die notwendigen Taktsignale (Vorladung und Schaltkreisauswahl) zu erzeugen. Wenn das System zum Zustand 0 zurückkehrt und REF vorhanden ist, schreitet ein Zähler um eine Zählung fort. Dieser Zähler stellt die Erneuerungsadressen bereit, die nur zum RWM gehen, wenn REF vorhanden ist. Wenn dieser Zähler zum Zustand 0 zurückkehrt, bewirkt er, daß REF und INH zurückkehrt um Bedingungen vorzugeben, und die Maschine fährt mit der normalen Arbeit fort.
Eine andere Funktion der Steuerung besteht darin, erweiterte Speicherfähigkeit bereitzustellen. Die Steuerung behandelt jeden externen Speicher so, als wäre er eine Erweiterung des internen Speichers. Wenn ein erweiteter Speicher angeschlossen ist, braucht
10988 4 /1370
der Benutzer von seinem Blickpunkt aus ni':nr. mehr zu wir sen, als'daß der verfügbare Speicherraum angewachsen ist.
Zusätzlich ermöglicht die Steuerung das Herausziehen von Informationen aus dem oder das Laden von Informationen in das T-Register des Rechners über die D-Sammelschiene (Daten-Sammelschiene).
Andere durch die Steuerung erzeugte Signale werden eingesetzt, um den Datenfluß in das T-Register zu richten.
T-Register
Daten zumund vom Speicher werden zeitweilig im T-Register gespeichert. Wie in Figuren 17A-B gezeigt ist, wird das tatsächliche T-Register durch vier 4-Bit-Schieberegister für serielle und parallele Eingabe und Ausgabe gebildet. Die Register haben eine Betriebsart-Steuerung (TMC), die, wenn niedrig, seriellen Datenfluß und, wenn hoch, parallelen Datenfluß erlaubt.
Serielle Daten treten in das T-Register beim Vorhandensein der TTT-Instruktion und beim Vorhandensein eines in das T-Register zurückgeführten TTS ein, um den Verlust von Daten zu verhindern.
Parallele Daten werden entweder vom ROM oder vom RWM während
du rcj^i
eines Lesezyklus entgegengenommen. Die ROM-Daten werden /'NAND-Gatter gepuffert, während die RWM-Daten durch von den gleichen NAND-Gattern gefolgten Abfragverstärkern gepuffert werden. Alle 16 Bits werden gleichzeitig von dem ROM gelesen. Während eines Lesezyklus werden 8 Bits vom RWM zweimal gelesen. Die in das RWM exnzuschreibenden 8 Bits haben ihre eigene Pufferstufe, die
2
T L-Lokigniveaus in die vom RWM benutzten 16-Volt-Logikniveaus übersetzt.
30988 4/1370
Mnemoniktabelle des Speichersystems
Außerhalb der Eingabe/Ausgabe-Verbindung des Speichers erzeugte Signale
CCT - Steuertaktsignal nicht, die invertierte einhüllende von SCK.
SCK - Schiebetaktsignal.
MCK - Speichertaktsignal, ein kontinuierlicher Impulszug, der von der Speichersteuerung zur Zeitgabe für den Speicher und für Erneuerungszyklen benutzt wird.
IOD - Eingabe/Ausgabe-Daten. Gehen zum Steuerbereich, um über Gatter zur S-Sammelschiene geführt zu werden.
ITS - Eingabe/Ausgabe zur S-Sammelschiene, das Signal, das IOD zur S-Sammelschiene durchschaltet.
SCO & - Kodierte Signale, welche erzeugen SCI UTS - Einheiten zur S-Sammelschiene ZTS - Null
MTS - M-Register" "
TTS - T-Register" "
TTT - T-Sammelschien zum T-Register, OV = wahr.
T-Sammelschiene - Daten auf dieser Sammelschiene wirken als
Eingangssignale zum M- & T-Register.
RDM - Lesespeicher, negativ wahr. Bleibt für 12 Taktimpulse bestehen.
WTM - Schreibspeicher, negativ wahr. Bleibt für 12 Taktimpulse bestehen.
INH - Hemmung, negativ wahr. Der Prozessor wird immer angehalten, wenn INH auf O Volt steht. Die Speichersteuerung erzeugt dieses Signal, während ein RWM-Erneuerungszyklus stattfindet. Auch Eingabe/Ausgabe erzeugt es.
Andere Signale an der Eingabe/Ausgabe-Verbindung Name Quelle
TOO T-Register
TO1 " "
TO2 " "
TO3 " "
309884/1370
r\ Q η 8
630
D-Sammelschiene - Datensammelschiene; über diese Sammelschiene
treten externe Daten (Daten vom erweiterten Speicher) in die Maschine ein.
EDT - Externer Datentransfer läßt D^Sammelschienen-Daten in die Maschine durch»O V = wahr.
EMB - Erweiteter Speicher arbeitet. Vom erweiterten Speicher abgegebenes Signal, das der Speichersteuerung mitteilt, daß
a. der Zyklus des erweiterten Speichers vollständig,ist
b. der erweiterte Speicher vorhanden ist. Aul· Karten des Lese/Schreib-Speichers erzeugte Signale
RWD(XX) - Lese/Schreib-Daten. Ausgang vom Speicher 1103. 600 \ia an 150 Ω =Ω1"
kein Strom =0
Andere vom RWM benutzte Signale Name Quelle
AOO-AO4 Steuerung
AO5-AO9 M-Register
CEN M-Register
RWI (XX) T-Register
R/W Steuerung
PCG Steuerung
Auf der T-Register-Karte erzeugte Signale
T00-T15 - T-Register-Datenbits. Benutzt als in den Speicher zu gebende Daten. T00-T03 sind außerdem auch Ausgangssignale zur CPU. (4-Bit-Verarbeitung)
RWI(XX) - Lese/Schreib-Eingangssignale. T-Register-Daten werden zum Lese/Schreib-Speicher durchgelassen. +16V-K5ND.
309884/1370
Andere vom T-Register benutzte Signale .
Name Quelle
ROD (XX) ROM
TRI Steuerung
TSC Steuerung
TMC Steuerung
TPC Steuerung
RWD(XX) RWM
RWE ■ M-Register
Auf der M-Register-Karte erzeugte Signale
MOO-M15 - M-Register-Datenbits. Benutzt, um die Adressen- und Leiterplattenauswahl-Information zu erzeugen. (MOO wird auch durch MTS nach außen auf die S-Sammel-
schiene gegeben)
100-107 - ROM-Adressen-Bits. Dekodiert auf zwei Bits herunter, die an den ROM-Ausgangspuffern verfügbar sind.
IO8-IO8 - Wählt aus, welche ROM-Ausgangspuffer freigegeben werden. CS(XX) - Leiterplattenfreigabe, Basismaschine wählt aus, welche
ROM-Leiterplatten eingeschaltet werden (+12V -EIN) AEN - Adressenfreigabe. AEN = RDM + WTM AO5-AO9 - Adressenbits für Lese/Schreib-Speicher. (+16V & GND) CEN - Leiterplattenauswahl, Basismaschine ein negativ wahres Taktsignal, welches auswählt, welche Lese/Schreib-Leiter-
platten eingeschaltet werden. (+16V & GND) RWE - Lese/Schreib-Freigabe. Ein +5V-Signal, das jedes Mal erscheint, wenn eine Lese/Schreib-Leiterplatte für einen Maschinenspeicherzyklus adressiert ist.
Andere vom M-Register benutzte Signale Name Quelle
T-Sammelschiene Prozessor
SCK "
RDM
WTM
309884/137
TTM Prozessor
VLD Steuerung MTS "
REF "
Durch die Steuerung erzeugte Signale
VOR - Ein Signal, das auf halbem Wege während des Speicherzyklus erzeugt wird, um die aktiven Haltevorrrichtungen an den ROM-Ausgängen zu sperren.
TRI - T-Register-Eingang TRl = (T-Sammelschiene). (TTT) + (TOO) . (TTS)
MTS - M-Register zur S~-Sammelschiene. Erzeugt von SCO, SC1
AOO-AO4 - Adressenbits für den Lese/Schreib-Speicher, die auch während der Speichererneuerung benutzt werden.
TSC - T-Register-Serientakt. TSC = SCK.(TTS + TTT + EDT) TPC - T-Register-Paralleltakt. (Tastet Daten vom Speicher
ein). Nur während des internen Speicherlesezyklus. R/W - Lesen/Schreiben. Ein Taktsignal, das für Lesen bei+16V gelassen und während des Schreibens nach GND getaktet
wird. (Nur RWM)
PCG - Vorladen. Der dritte 16V-Takt, der von den Lese/Sehreib-Speicher-Leiterplatten 1103 benötigt wird.
REF - Erneuern. OV, wenn der Speicher sich in einem Erneuerungszyklus befindet.
CEM - Erweiterten Speicher rufen. Bewahrt den ROM-Takt davor, die Zustände des Mikroprozessors zu ändern. Wird für alle Lese- und Schreibbefehle gegeben. Das Signal wird entfernt, wenn der Speicherzyklus nicht ein erweite Speicherzyklus ist. Bei erweitertem Speicherzyklus wird CEM entfernt, nachdem der erweiterte Speicher den Zyklus vollendet hat. OV= wahr.
S-Sammelschiene - Schaltet Eingabe/Ausgabe-Register, Daten, TOO,
MOO oder Signale durch, die sich auf der "s-Sammelschiene befinden und zum Prozessor gesandt werden. 0 = wahr.
INH - Hemmung, negativ wahr. Der Prozessor wird angehalten, wann immer INH sich auf 0 V befindet. Die Speichersteuerung erzeugt dieses Signal, während ein RWM-
3 0 9 8 8 k I 1 3 7 0
633
Erneuerungszyklus stattfindet. Auch Eingabe/Ausgabe erzeugt es.
T-Register-Betriebskontrolle. TMC = 0; T-Register ist aufgesetzt, um Information vom Speicher entgegenzunehmen, TMC = 1; T-Register ist aufgesetzt, um seriell zu verschieben.
Erweiterter Speicherzyklus. +5 V-Signal benutzt, um dem erweiterten Speicher zu signalisieren, daß er seinen Zyklus beginnt. OV= wahr.
Ein auf halbem Wege des Speicherzyklus erzeugtes Signal, das den Daten erlaubt, aus ROM herauszulaufen.
Andere von der Steuerung benutzte Signale
Name CCT TOO IOD ITS SCO SCI TTT T-Sammelschiene SCK RDM WTM MCK MOO-MO4 AEN EDT D-Sammelschiene
EMB
Quelle
Prozessor
T-Register
Prozessor
Il
Il
M-Register
M-Register
Erweiterter Speicher
E ingabe/Au sgabe-Verbindung
Erweiterter Speicher
3ü9884/1370
ORIGINAL INSPECTED
Im ROM-Bereich erzeugte Signale ROD(XX)- Nur Daten lesen
Andere vom ROM benutzte Signale ,
Name Quelle
CS (XX) M-Register
IOO-IO7 , M-Register
108 108 M-Register
VOR Steuerung
Tastenfeld-Eingabeeinheit
Die Tastenfeld-Eingabeeinheit ist in Figur 20 dargestellt und ist um eine 128-Positionen-Matrix herum gestaltet. Jede Position wird nacheinander abgetastet. Wenn eine Taste gedrückt wird, wird der Zähler, der den Abtaster ansteuert.angehalten. Die Adresse des 7-Bj.t-Zählers entspricht dem ASCII-Kode der gedrückten Taste. Die gesamte Abtastperiode beträgt 4 Millisekunden. Zwei Tastenüberrollungen sind in dieser Gestaltung enthalten.
Wenn eine Taste gedrückt wird, wird SSI erzeugt, solange dies nicht durch SIH oder KLS gehemmt wird. Sobald die Dienstanforderung bestätigt ist, gibt die CPU einen Auswahlkode von 12, der den ASCII-Tastenkode auf die Datenleitungen durchschaltet.
Ein weiteres Merkmal dieses Tastenfeldes ist die automatische Wiederholung. Wenn eine Taste für mehr als 1,5 Sekunden gedrückt worden ist, wird der Tastenkode wiederholt mit einer Frequenz von 15 Eingängen pro Sekunde eingegeben, bis die Taste losgelassen wird.
Ausgangs-Anzeigeeinheit
In Figuren 29A-B und 30A-B ist die Hardware dargestellt, die der Rechner-Anzeige zugeordnet ist. Die Anzeige enthält ein einzelnes Register 400 von 32 alphanumerischen Zeichen, wobei jede Zeichen-
309884/ 1 370
2333308 -
position eine 7-zeilige und 5-spaltige Matrix von Leuchtdioden (LED) ist. Zusätzlich zu der dargestellten Anzeige-Hardware enthält das .gesamte Rechner-Anzeigesystem eine Firmware-Anzeigeroutine, die detailiert auf Seite 3 5 der Grundsystem-Firmware-Auflistung dargestellt ist, sowie ein Eingabe/Ausgabe-Register.
Die Firmware-Anzeigeroutine liefert ein 16-Bit-Wort an die Anzeigeschaltung. Vier dieser Bits 402 und 404 werden in eine von 16 Zeichenpositionen dekodiert. Die verbleibenden 12 Bits 422 sind zwei 6-Bit-ASCII-kodierte Zeichen, die abwechselnd im ROM 430 in ihre Zeilen- und Spalteninformation kodiert werden. Eine 7-Bit-Datenverriegelung 432 ist vorgesehen, um dem ROM zu ermöglichen, das nte und das (n + 16) te Zeichen zu dekodieren, welche gleichzeitig angezeigt werden.
Eine assymmetrische Taktschaltung 426 steuert eine Eingangsgatterschaltung 436 und eine Zähler-Dekodierschaltung 434 an, um die Zeileninformation des nten und des (n+16)ten Zeichens zu dekodieren. Eine Schutzschaltung 428 ist vorgesehen, um die Anzeige im Falle des Fehlens der Logiksignale DEN 4 24 oder CAO 438 dunkel zu schalten.
3-Bit-Spaltendaten 410 und drei der 4-Bit-Zeichenposition-Bits 402 werden einem 1-aus-4-Dokoderkreis 420 zugeführt. Das Ausgangssignal der Schaltung 4 20 wird den Spaltenansteuerungen zugeführt. Vier Spalten mit je 8 Leuchtdioden 400 werden von jedem der 40 Spaltenansteuerungen angesteuert. So können alle 160 Spalten der Anzeige abgetastet werden. Das verbleibende Zeichenpositions-Bit 404 gibt abwechselnde Abschnitte der Zeilenansteuerungen 416 frei, um die 1-aus-16-Dekodierung der Zeichenposition zu vervollständigen.
309884/1370
2333qn8 -
Magnetbandkassette Lese- und Aufnahmeeinheit
Die Lese- und Aufnahmeeinheit für Magnetbandkassetten ist im Blockschaltbild der Figur 21 und in dem detailierten schematischen Diagramm der Fig. 22-26 gezeigt. Die Lese- und Aufnahmeeinheit für Magnetbandkassetten arbeitet weitgehend automatisch. Es ist lediglich notwendig, den auszuführenden Operationstyp und die gewünschten Grenzen zu spezifizieren. Die Befehle hierfür können entweder unmittelbar von der Tastenfeld-Eingabeeinheit oder als Teil eines Programmes eingegeben werden. Der Rechner legt dann die notwendigen benötigten Befehle fest, um zu bewirken, daß die Lese- und Aufnahmeeinheit für Magnetbandkassetten die gewünschte Operation ausführt.
Verschiedene Betriebsweisen sind möglich. Gesicherte und ungesicherte Programme, Daten und Sätze von benutzerdefinierbaren Tastendefinitionen können auf das Magnetband aufgenommen werden und anschließend zurück in den Rechner geladen werden.
In Figuren 21 und 22 ist der Betrieb des Verbindungsteils der Lese- und Aufnahmeeinheit von Magnetbandkassetten beschrieben.
I. Adressendekoder
IC 6 und 7 werden benutzt, um einen Auswahlkode von 10 zu ermitteln, wenn Zugriff zur Kassette genommen wird. Wenn ein Auswahlkode von 10 festgestellt worden ist und die Steuerleitung CEO "wahr" ist, wird die Kassette freigegeben.
II. Freigebende Eingabe-Datenbits
Die NAND-Gatter mit offenem Kollektor in IC 2 und IC 3 ermöglichen es den Eingabe-Datenbits (ID 0 bis ID 7) zur Eingabe-Sammelschiene des Rechners durchgeschaltet zu werden, wenn die Karte durch die Adresse und die Steuerleitung ausgewählt ist, wie in Abschnitt I beschrieben ist.
Q 9 8 8 /, / 1 3 7 Π
ORIGINAL INSPECTED
23339G8
III. Freigebende Eingabe-Zustandsbits
Die NAND-Gatter mit offenem Kollektor in IC1 ermöglichen es den Eingabe-Zustandsbits (IS 0 bis IS 3) auf die Eingangssammelschiene des Rechners geschaltet zu werden, wenn ein Auswahlkode von 10 gegeben ist und die Steuerleitung "wahr" ist.
IV. Marke
Das D-Typ-Flip-Flop 10 ist das Marken-Flip-Flop. Es wird gelöscht gehalten, ausgenommen wenn die Eingabe/Ausgabe-Karte ausgewählt ist, wie in Abschnitt I beschrieben ist. Wenn die Eingabe/Ausgabe-Karte gewählt ist, wird das Flip-Flop durch die Rückflanke des Markenimpulses von der Kassette gesetzt. Zusätzlich wird das Marken-Flip-Flop vorgesetzt gehalten (beim Stift 5) wenn die Kassettenklappe offen ist, ein klares Vorspannband ermittelt wird oder wenn ein unterbrechendes Zeichen gelesen wird. Gleichzeitiges Vorsetzen und Löschen führt zu einem "wahren" Ausgangssignal des Flip-Flops. Das Marken-Flip-Flop-Signal wird zum Rechner (CIF, Sift 2-m) nur dann durch das NAND-Gatter mit offenem Kollektor durchgeschaltet, wenn die Eingabe/Ausgabe-Karte ausgewählt ist.
V. Unterbrechen
Das D-Typ Flip-Flop 13 ist das Unterbrechungs-Flip-Flop. Es wird gelöscht gehalten, wann immer die Eingabe/Ausgabe-Karte gewählt ist, wie in Abschnitt I beschrieben ist. Die Unterbrechung wird nur dann erlaubt, wenn sich die Kassette im Steuerbetrieb befindet (Sift 2-3). Ein Unterbrechungssignal kommt immer, wenn die Kassette auf ein klares Vorspannband stößt, die Kassettenklappe geöffnet ist oder ein unterbrechendes Zeichen gelesen wird. Ein unterbrechendes Zeichen ist ein Zeichen, bei dem die Datenbits 2, 3, und 5 alle Einsen sind und das gelesen wird, wenn sich die Kassette im Steuerbetrieb befindet. Wenn das Signal "Dienstunterbrechungs-Hemmung" "falsch" ist (SIH=I, Sift 2-1), wird das Unterbrechungssignal über IC 4, Sift 6 und 8 zum Rechner geleitet. Das Datenbit SI 1, (Stift 1-4) wird herabgesetzt, um dem Rechner die Adresse des Peripheriegerätes mitzuteilen, die unterbrochen hat.
309884/ 1370
63?
In Figuren 21 und 23A-B- ist die Arbeitsweise des Steuerlogikteils der Lese- und Aufnahmeeinheit für Magnetbandkassetten beschrieben.
I. 1 Voreinstellung zur Einschaltung der Energiezufuhr
Transistor Q1 und Dioden CR1 und CR2 sind Teil der Schaltung zur Einschaltung der Energiezufuhr, die sicherstellt, daß die Kassette in richtiger Weise mit Energie versorgt wird.
I. 2 Steuersignal
Das Steuersignal (YCNT an Stift 11) kommt von der Verbindungskarte als ein positives "wahres" Signal und teilt der Logikkarte mit, daß sie den Befehl auf den Ausgangsleitungen verarbeiten soll. Die in positive Richtung gehende Flanke des Steuersignals zündet den Ein-Impuls-IC7, der einen 300-Nanosekunden-Steuerimpuls abgibt, welcher zur Abtastung von Speicherelementen benutzt wird.
I. 3 Dekodierung und Speicherung von Befehlen
Der 1-aus-10-Dekoder mit offenem Kollektor (IC 19) wird auf seinem D-Eingang durch den Steuerimpuls abgetastet. (Siehe Abschnitt 1.2). An den A-, B- und C-Eingängen des Dekoders liegen Ausgangs-Zustandsbits OSO bis OS2. Diese Ausgangs-Zustandsbits enthalten Befehle für den Transport wie folgt:
OS2 OS1 OSO
(Schreiben) (Rückwärts) (Schnell)
O 0 0
O O 1
O 1 0
O 1 1
1 O 0
1 O 1
1 1 0
Befehl
langsam-vorwärts-lesen schnell-vorwärts-lesen langsam-rückwärts-lesen schnell-rückwärts-lesen langsam-vorwärts-schreiben stop
anwesenden Befehl fortführen
anwesenden Befehl fortführen
309884/1370
Das Ausgangs-Zustandsbit 3 (OS3) zeigt an, ob sich die Kassette im Steuerbetrieb oder im Datenbetrieb befinden soll. Der Steuerbetrieb ist in Abschnitt I. 12 erklärt.
Wenn bei Abtastung des Dekoders der Befehl auf den Ausgangs-Zustands-Leitungen ein anderer als "stop" oder "fortfahren" ist, sind während der Breite des Kontrollimpulses die Ausgänge O bis 4 des Dekoders mit offenem Kollektor und festverdrahtetem "oder" niedrig. Dieser Ausgangsimpuls des festverdrahteten "oder" tastet den Befehl auf den Ausgangs-Zustandsbits in die Vierer-Verriegelung IC 20 ein und stellt das Lauf-Flip-Flop 15-2 vor. Die Befehle auf den Lauf-Leitungen werden aus der Logikkarte zur Motor-Steuerkarte durchgeschaltet, und die Bewegung der Kassette beginnt.
Ist der Befehl "stop", wird das Ausgangssignal 5 (Stift 6) des Dekoders niedrig, wodurch sowohl das Lauf-Flip-Flop (15-2) als auch die Vierer-Verriegelung (IC 20) gelöscht wird. Ist der Befehl "fortfahren", bleiben Vierer-Verriegelung und Lauf-Flip-Flop unverändert .
Das Lauf-Flip-Flop und die Vierer-Verriegelung werden auch durch Voreinstellung der Energiezufuhr-Einschaltung gelöscht.
I. 4 Lauf-Flip-Flop
Das Lauf-Flip-Flop (1502) wird durch Ausgabe eines Befehls voreingestellt, wie in Abschnitt 6.3 beschrieben ist. Es wird durch ein Unterbrechungssignal von der Eingabe/Ausgabe-Karte, einen Stop-Befehl, eine Energiezufuhr-Einschaltung-Voreinstellung oder dadurch gelöscht, daß sich eine Kassette nicht an ihrem Platz befindet. Das Lauf-Flip-Flop wird auch durch das gelöschte Kopfinformationssignal an seinem Takteingang gelöscht, so oft die Kassette in ein klares Vorspannband läuft. Da der Takteingang des Flip-Flops flankenempfindlich ist, wird der Transport nur gestoppt, wenn es zunächst auf ein klares Vorspannband geht, und die Bandbewegung wird durch Ausgabe eines neuen Befehls ermöglicht, sogar bei klarem Vorspannband.
Ί0988 U /1370
Die Schmitt-getriggerten Gatter 1-1 und 1-2 werden benutzt, um Störungen auf den Leitungen für "Unterbrechung", "klares Vorspannband" und "Kassette am Platz" auszufiltern.
1.5 Rückspulbetrieb
Das D-Typ-Flip-Flop 15-1 ist das Rückspul-Flip-Flop. Es wird solange voreingestellt gehalten wie der Rückspulknopf gedrückt ist. Es wird dadurch gelöscht, daß ein klares Vorspannband festgestellt wird, die Kassette nicht an ihrem Platz ist, die Energiezufuhr-Einschaltung voreingestellt ist, ein Stop-Befehl gegeben ist oder daß von der Eingabe/Ausgabe-Karte aus unterbrochen worden ist. Das Rückspul-Flip-Flop wird auch über seinen Takteingang gelöscht, wann immer ein neuer Befehl ausgegeben wird, Eine gleichzeitige Voreinstellung und Löschung führt dazu, daß Q-Ausgang des Flip-Flops "wahr" ist. Wenn der Transport angehalten ist (Flip-Flop 15-2 gelöscht) und das Rückspul-Flip-Flop gesetzt ist, ist das Ausgangssignal des Gatters 16-3 "wahr", was dazu führt, daß die NOR-Gatter 17-1, 17-2 und 17-3 die Ausgangssignale O haben. Diese Ausgangssignale bewirken, daß das Band mit hoher Geschwindigkeit in Rückwärtsrichtung bis zum klaren Vorspannband zurückgespult wird, es sei denn, daß das Rückspul-Flip-Flop gelöscht ist, wie oben beschrieben ist.
I. 6 Transportzustand
Die Eingangszustands-Bits YIS3 (Stift F), YIS2 (Stift 6), YIS1 (Stift E) und YISO (Sift 5) geben den Zustand des Transports wie folgt wieder:
YIS3 - negativ "wahr", Kassette am Platz YIS2 - positiv "wahr", klares Vorspannband YIS1 - negativ "wahr", Schreiben auf der Kassette
erlaubt
YISO - positiv "wahr", Steuerbetrieb
3 09884/1370
7333908 -
I. 7 Inneres Taktsignal
Das innere Taktsignal, das für das Schreiben von Daten verwendet wird, wird durch die beiden monostabilen Schaltkreise IC 6 und IC13 erzeugt. Der Takt ist nicht symmetrisch, sondern IC6 ist für 133 ysec "wahr", während IC13 für 220 ysec "wahr" ist. Der Abgleichwiderstand R1O wird dann benutzt, um die Gesamtzeit von 333 ysec für eine Taktfrequenz von 3kHz abzugleichen. Das interne Taktsignal wird nur dann freigegeben, wenn der Kassettenbefehl "Schreiben" ist, wie am Stift 5 IC13 ermittelt wird.
I. 8 9-Bit-Schieberegister
Ein 9-Bit-Schieberegister wird aus IC3, IC4 und dem Flip-Flop 5-2 gebildet. Bei Schreiboperationen wird dieses Register parallel durch Impulse vom Gatter 16.-1 geladen und schiebt dann die Daten seriell nach IC3, Stift'10, um sie auf das Band zu schreiben. Beim Lesebetrieb werden die Daten seriell vom Band nach IC5, Stift 12 getaktet, wo sie seriell in das Register geladen werden. Vom Schieberegister werden sie bei der Marke durch den Rechner als Paralleldaten abgelesen.
I. 9 Daten-, Takt- und Markenfolge
Während der Schreiboperation werden von der Logikkarte ein Schreibtakt, Schreibdaten und ein Schreib-Markierungssignal ausgesandt. Während der Leseoperationen werden von der Logikkarte ein Lesetakt, Lesedaten und ein Lese-Markierungssignal empfangen. Die Datenleitungen sind NRZ, getaktet durch den passenden Takt. Wenn Taktimpulse und Markierungsimpulse richtig aufeinanderfolgen, bilden sie ein Zeichen. Die Folge ist 9 Datenbits pro Zeichen, getrennt durch Marken.
Marke- 9 Datenbits- Marke - 9 Datenbits - Marke.
309884/1370
Bit-Marken-Folgekode
Drei Informationstypen Spur 111" A
"O" A
Marke A
1O-Bit-Zeichen
M D7 D6 D5 D4 C D3 D2 D., DQ M
8-Datenbits
1 Markierung
1 Kontrollbit
I. 10 Zehntelzähler während des Schreibens
Der Zehntelzähler (1014) wird benutzt, um die Takt- und Markierungsimpulse während des Schreibens sequentiell zu ordnen (Beschreibung einer Folge siehe Abschnitt 6.9). Wenn der Zähler sich bei den Zählungen 0 bis 8 befindet, werden die durch IC6 und IC13 erzeugten internen Taktimpulse über das Gatter 18-4 geleitet, wo sie die Karte als Schreibtakt verlassen und werden außerdem über das Gatter 18-2 geleitet, um das Schieberegister zu verschieben. Wenn sich der Zehntelzähler bei Zählung 9 befindet, wird der innere Taktimpuls beim Gatter 18-4 gehemmt, jedoch beim Gatter 10-2 freigegeben, von wo aus er als Schreib-Markierungsimpuls die Schaltung verläßt. Da der Zähler von Zählung 9 bis Zählung O "umwickelt", erhält man die Wiederholfolge Markierung - 9 Bits - Markierung.
Jedesmal, wenn der Zähler auf 9 geht, wird ein Zeichen vollendet, und der Schreib-Markierungsimpuls wird zusätzlich zu dem Umstand, daß er die Schaltung verläßt, über das Gatter 12-3 geleitet, um eine Marke zu bilden, die dem Rechner mitteilt, daß das Zeichen geschreiben worden ist. Der Rechner sendet dann ein weiteres
309884/1370
Parallelzeichen zum Schieberegister, und die Folge wiederholt
sich.
Spezielle Bedingungen gehen vor für das Schreiben des ersten Zeichens eines Zeichenstring. Wenn der Transport vom Lesein den Schreibbetrieb übergeht, werden die Flip-Flops 8-1 und
8-2 in ihren flankenempfindlichen Takteingängen gesetzt. Das
Flip-Flop 8-2 stellt den Zähler auf Zählung 9 vor, wodurch sichergestellt wird, daß die Folge mit einem Markierungsimpuls beginnt. Dasselbe Flip-Flop 8-2 wird durch diesen ersten Markierungsimpuls gelöscht, wonach der Zähler seine "Umwickel"-Folge fortsetzt. Das gesetzte Flip-Flop 8-2 hindert diesen ersten führenden
Schreib-Markierungsimpuls daran, durch das Gatter 12-3 zu gehen und eine Marke zu werden. Das Flip-Flop 8-2 wird durch den ersten Schreibimpuls gelöscht, wonach die Schreibfolge normal fortgesetzt wird.
I. 11 Zehntelzähler während des Lesens
Während des Lesens wird nur eine Folge von 9 Datenbits, die von einer Marke gefolgt ist, als Zeichen erkannt. Der Zehntelzähler wird benutzt, um diese Folge zu ermitteln.
Jedesmal, wenn der Transport angehalten wird, wird das Flip-Flop 5-1 voreingestellt gehalten. Das Ausgangssignal des Flip-Flops 5-1 stellt den Zähler auf 0 vor. Das Flip-Flop 5-1 wird
durch die Anstiegsflanke des Daten-Lese-Taktes gelöscht, und der Zähler zählt bei der Rückflanke. Die Daten-Lese-Impulse werden durch den Zähler gezählt und gehen außerdem durch das Gatter 18-2, um das Schieberegister zu verschieben. Wenn der Zähler 9 Leseimpulse gelesen hat, gibt seine Zählung 9 ein "wahres" Signal
auf Stift 13 des Gatters 19-1. Wenn als nächstes ein Lese-Markierungsimpuls kommt, ist der Stift 1 des Gatters 19-1 für die Breite des Lese-Markierungsimpulses "wahr". Diese zwei Signale bilden einen Teil des Markierungssignals, das dem Rechner mitteilt, daß sich ein gültiges Zeichen im Schieberegister befindet. Die Rückflanke des Lese-Markierungsimpulses setzt das Flip-Flop 5-1, das den Zähler auf O vorstellt, und die Folge ist fertig zur
Wiederholung.
3 0988 4/1370
Wenn eine Markierung gelesen wird, wenn der Zähler sich bei einer anderen Zählung als 9 befindet, wird keine Marke gegeben, das Flip-Flop 5-1 gesetzt und der Zähler auf 0 vorgestellt. Wenn 10 Leseimpulse in einer Reihe kommen, läuft der Zähler auf 0 um, und es wird keine Marke gegeben. Daher erzeugt nichts anderes als 9 Lese-Taktimpulse,gefolgt von einem Lese-Markierungsimpuls, eine Marke und werden als Zeichen erkannt.
I. 12 Steuerbetrieb und Marken
Jedes Zeichen enthält 8 Datenbits. Das mittlere Bit jedes 9-Bit-Zeichens ist ein Steuerbit. Wenn das Mittelbit eine 1 ist, ist das Zeichen ein Steuerzeichen. Wenn das Mittelbit eine 0 ist, ist das Zeichen ein Datenzeichen. Wenn der Transport sich während des Schreibens im Steuerbetrieb befindet, wird das Mittelbit als eine 1 bei IC4, Stift 5 geladen, und das Zeichen wird als Steuerzeichen geschrieben. Beim Datenbetrieb ist das Mittelbit jedes geschriebenen Zeichens 0.
Wenn der Transport im Steuerbetrieb liest, werden nur dann Marken zum Rechner gesandt, wenn sich ein Steuerzeichen im Schieberegister befindet. Wenn der Transport sich im Steuerbetrieb befindet und Datenzeichen im Schieberegister vorhanden ist, wird die Lesemarke bei IC9-1, Stift 2 gehemmt. Dieser Stift 2 von IC9-1 ist immer "wahr", ausgenommen wenn sich die Kassette im Steuerbetrieb befindet und das Mittelbit des Schieberegisters 0 ist. Im Datenbetrieb werden sowohl für Daten- als auch für Steuerzeichen Marken zum Rechner gesandt.
Die Markenschaltung auf der Verbindungskarte ist rückflankenempfindlich, wodurch sichergestellt ist, daß das Zeichen vollständig geschrieben oder vollständig gelesen wird, bevor der Rechner markiert wird.
wc φ
Im folgenden/unter Bezugnahme auf Figuren 64, 67A-B und 67' die Arbeitsweise des Lese/Schreib-Teils der Lese- und Aufnahmeeinheit für Magnetbandkassetten beschrieben.
30988 A/1 370
I. Allgemeine Beschreibung
Der Lese/Schreib-Bereich hat zwei Hauptfunktionen. Im Schreibbetrieb (WRITE) kodiert er serielle Bitdaten in 2-kanal-Bit-Marken-Folge-Daten (BMS), die der Schreibkopfansteuerung zugeführt werden und auf das Band geschrieben werden.
Im Lesebetrieb (READ) dekodiert er analoge 2-kanal-BMS-Daten vom Kopfvorverstärker in Takt-, Marken- und Serien-Bit-Datenimpulse von den Bandsignalen.
II. Schreibbetrieb (WRITE)
Wenn "Schreiben erlaubt" "wahr" ist (YWPT=D und "Schreibbefehl" "wahr" ist (YWTC=D, ist "Schreibfreigabe" "wahr" (YWEN=I; Q7 ein), und Schreiben auf dem Band ist erlaubt. Die NAND-Gatter mit 3 Eingängen des IC2 werden benutzt, um die Serienbit-Daten (YWDT) in BMS zu kodieren. Logischen Einsen (YWDT=D werden auf Kanal A geschrieben. Logischen Nullen (YWDT=O) werden auf Kanal B geschrieben. Eine Marke wird geschrieben, wenn "Marke schreiben" "wahr" ist (YWMK=I). Die Daten und Marken werden mit Hilfe des Schreibtaktes (YWCL) eingetaktet.
III. Lesebetrieb (READ)
Die beiden Verstärker des IC6 und ihre zugeordnete Schaltung enthalten zwei Schwellendetektoren, die das analoge Signal vom Kopf (ARA, ARB) in digitale Signale umwandeln. Die Verstärker schalten zwischen ihrem positivem und negativem gesättigten Zustand. Die Schwellen sind so eingestellt, daß die Verstärker ihre Zustände umschalten, wenn das analoge Signal ungefähr 30% seines Spitzenwertes hat, wobei in Vorwärtsrichtung in der Nähe von BOT gemessen wird.
Die Amplitude des Kopfsignals ist proportional zur Bandgeschwindigkeit. Daher werden die Schwellen für schnelle Bandbewegung hoch und für langsame Bandbewegung niedrig eingestellt, indem Q1 und Q2 mit der "Schnell"-Befehl-Leitung (MFTC) geschaltet werden. Das positive und das negative Referenzsignal für die
309884/1370
Schwellen werden von dem 12-Volt-Netzteil abgenommen.
Die beiden digitalen Datenkanäle werden über IC1 auf die Dekoderschaltung geschaltet. Der Dekoder besteht aus IC3, IC5, IC8 und IC9.
IC8 ist ein 0,5 ys- monostabiler Schaltkreis, der für jedes Datenbit oder für jede Marke gezündet^ die von den Schwellendetektoren aus zugeführt werden. Dieser monostabile Impuls enthält ein Lese-Taktsignal, das über IC5 nach NRCL weitergeleitet wird, wenn das dem Impuls zugeordnete Bit keine Marke ist.
IC9-1 ist ein Flip-Flop, das drei Zwecken dient. Einmal stellt es einen Lese-Markenimpuls (YRMK) bereit, wann immer eine Marke vom Band gelesen worden ist. Zum zweiten steuert es IC5, um dem monostabilen Impuls zu ermöglichen, als Lesetakt (NRCL) zu erscheinen. Zum dritten steuert es IC3 und IC5, um den Daten zu ermöglichen, durch das Datenausgabe-Flip-Flop IC9-2 hindurchgegeben zu werden.
In Figuren 64, 68A-B und 68' ist die Arbeitsweise des Motorsteuerteils der Lese- und Aufnahmeeinheit für Magnetbandkassetten beschrieben.
I'. Geschwindigkeit-Referenzsignal
Widerstände R1, R2 und R3 werden benutzt, um eine der gewünschten Motordrehzahl proportionale Referenzspannung zu erzeugen. Die Spannung beträgt, abgegriffen an dem positiven Eingang U3, ungefähr 3,0 V für niedrige Geschwindigkeit und 8,0 V für hohe Geschwindigkeit.
II'. Vergleichsverstärker
Der Operationsverstärker U3 vergleicht das Geschwindigkeits-Referenzsignal mit einem Signal, das die Ist-Geschwindigkeit des Motors darstellt (siehe unten unter IV1)· Das Differenzsignal wird verstärkt und der Ansteuerschaltung zugeführt, die die für den Motor verfügbare Betriebsspannung erhöht oder senkt.
30988 A/1370
2333^08 -*·*■-
Ein Widerstand R8 und ein Kondensator C1 bilden eine negative Rückkopplung um 111 herum, was zu einer Gleichspanhungsve'rStärkung von 26db und zu einem singulären Punkt bei 100 Hz führt. Dadurch wird die Frequenz-Antwortfunktion der Servoschleife "maßgeschneidert", um einen stabilen Betrieb mit sehr schneller Fehlerkorrektur zu erzeugen.
III1. Motoransteuerung
Die Diode D1 verschiebt das Gleichspannungs-Ansteuerungsniveau um etwa 7 V. Transistoren Q1 und Q2 sowie der Motor-Durchlaßtransistor (im Reglerbereich angeordnet) liefern die Stromverstärkung für den Motorantrieb. Ein Widerstand R7 sichert die Abschaltung des Motor-Durchlaßtransistors. Ein Transistor Q3 wird benutzt, um den Motor dynamisch zu bremsen, wenn seine Geschwindigkeit größer als erwünscht ist.
Ein Diode D3 reduziert die maximale Spannung am Motor bei klarem Vorspannband. Diese Spannungsbegrenzung reduziert wirksam das Motor-Drehmoment, wodurch eine Beschädigung von Motor, Reibradantrieb oder Bandkassette vermieden wird, falls das Band gegen die Achse gezogen wird. Die Diode D2 verhindert während dieses Zustandes reduzierten Drehmomentes eine Beschädigung von Q1.
IV. Gegen-EMK-Ver stärker
Die Klemmenspannung des Motors ist aus zwei Teilen zusammengesetzt, nämlich dem "IR"-Spannungsabfall am Ankerwiderstand des Motors und der vom Motor erzeugten Spannung oder Gegen-EMK. Die Gegen-EMK ist der Motordrehzahl direkt proportional und wird als Rückkopplungssignal für die Motordrehzahl benutzt. Der Meßwiderstand R9 erzeugt eine zum Ankerstrom des Motors und damit zum "IR"-Spannungsabfall proportionale Spannung. Ein Operationsverstärker U4 und Widerstände R10 bis R14 subtrahieren den "IR"-Spannungsabfall von der Motor-Klemmenspannung, woraus sich eine zur Motordrehzahl proportionale Spannung ergibt. Dieses Signal liegt bei etwa 3,0 V für niedrige Drehzahl und 8,0 V für hohe Drehzahl. Es wird rückgekoppelt und mit der Referenzspannung verglichen, wie oben unter II1 beschrieben ist.
30988/4/137 0
IMSPEGTED
Das Verfahren zur Messung des 1IR"-Spannungsabfalls, das oben beschrieben ist, ist nur für eine einzige Wicklungstemperatur genau. Da niedrigere Ankerwiderstände (verursacht durch niedrigere Temperaturen) Instabilitäten in der Regelung verursachen könnten, wird dieser Punkt für "perfekte Kompensation" an die Untergrenze des Arbeitsbereichs gesetzt - in diesem Falle O C. Ansteigende Temperatur bewirkt eine verminderte Belastungsregelung (größerer Motorstrom erzeugt reduzierte Drehzahl), jedoch bleibt die Regelung stabil.
V1. Motor- und Elektromagnet-Wähler
Die Wählschaltung aktiviert den richtigen Motor und den richtigen Elektromagneten. Im Vorlaufbetrieb sind Q4, Q5 und Q8 gesättigt "ein"; im Rücklaufbetrieb sind Q6, Q7 und Q9 gesättigt. Bei "Stop" sind alle Vorrichtungen abgeschaltet.
In Figuren 64 und 69 ist die Arbeitsweise des Verbindungsteils der Lese- und Aufnahmeeinheit für Magnetbandkassetten beschrieben.
I. Verbindung vom Transport- zum Mutterbereich
Die Hauptaufgabe der Verbindungstafel besteht in der elektrischen Verbindung des Transportmechanismus mit dem Mutterbereich. Es gibt 4 Gruppen von Drähten, die von dem Transportmechanismus kommen: Die Motordrähte, die Elektromagnet- und Schalterdrähte, die Kopfbereichsdrähte und die Fotosensor-Drähte. Jede Drahtgruppe endet in einer Steckleiste, die in die Verbindungstafel hineinragt; diese Aufteilung erleichtert Anordnung und Service.
II. Vorspannband-Signal
Der größte Teil der Schaltung auf der Verbindungstafel wird benutzt, um das Vorspannband-Signal zu erzeugen. Die Fotosensor-Anordnung auf dem Transportmechanismus enthält eine Glühlampe und einen Fotowiderstand. Wenn sich das Magnetband über dem Fotosensor befindet, findet keine optische Kopplung statt, was zu einer hohen Impedanz des Fotowiderstandes führt. Wenn sich über dem Fotosensor ein durchsichtiges Vorspannband befindet, wird das Licht von
30988 U /1370
2333903
dem hellfarbigen Kunststoff der Kassette auf den Fotowiderstand reflektiert, was zu einer niedrigen Impedanz des FotowiderStandes führt.
Die integrierte Schaltung U1 und die Widerstände R4, 5 und 6 bilden einen Vergleicher, der umschaltet, wenn die Impedanz des Fotowiderständes ungefähr 25 KQ beträgt. Ein Kondensator C5 filtert das Ausgangssignal von U1, um Fehlsignale von weniger als 5 ms Dauer zu eliminieren; der Transistor Q1 verstärkt dieses Signal.
Wenn das Band anhält oder asine Richtung ändert, kann sich unter bestimmten Bedingungen über dem Fotosensor eine Bandschleife bilden; daraus kann sich eine Reflektion ergeben, die die gleiche Fotowiderstand-Impedanz erzeugt, wie ein durchsichtiges Vorspannband. Um zu verhindern, daß eine Bandschleife eine falsche Vorspannband-Anzeige ergibt, werden die integrierten Schaltkreise U2, 3 und 4 benutzt. Das Flip-Flop U4 speichert das Vorspannband-Signal; dieses Flip-Flop kann "eingeschaltet" werden, wenn die Kassette für die Dauer der monostabilen Schaltung U2 (85 ms) auf Vorspannband gelaufen ist. Diese Verzögerungsperiode stellt sicher, daß jede Bandschleife geglättet worden ist, wodurch Reflektionsprobleme vermieden werden.
Ein Magnetbandanzeige (Vorspannband nicht) ist immer richtig; daher stellt sie unmittelbar das Flip-Flop U4 zurück. Die an die Voreinstellung U4 angeschlossenen Gatter schalten das Flip-Flop "ein", während die Energiezufuhr eingeschaltet ist und wenn der Kassettenlader offen ist; wenn das Band tatsächlich ein Magnetband ist, bleibt dieses Signal bestehen, nachdem die Voreinstellung entfernt worden ist, und stellt U4 zurück.
III. Elektromagnet-Schaltung
Die Dioden D1 und D2 sowie der Widerstand R1 begrenzen die Spitze der Rücklaufspannung des Elektromagneten während des Abschaltens auf ungefähr 24 V. Zusätzlich für einen sehr schnellen Abfall des Elektromagneten gesorgt, indem während des Abschaltens bis zu -12 V an den Elektromagneten gelegt werden.
309884/1370
IV. Motor-Abgleichwiderstände
Widerstände R2 und R3* sind ausgewählt, um einen gegebenen Motor auf einen effektiven Ankerwiderstand zwischen 10,30 und 10,60 Ohm abzugleichen. Kondensatoren C1 und C2 werden benutzt, um von den Bürsten des Motors herrührende Störsignale zu unterdrücken.
V. Kassetten-Sensorschalter
Widerstände R11 und R12 sind Haltewiderstände für die mechanischen Kassetten-Sensorschalter. Die erzeugten Signale sind "Kassette eingelegt" (positiv "wahr") und " Schreiben erlaubt" (positiv "wahr").
Energieversorgung
Das beim Rechner eingesetzte Energieversorgungssystem ist so konstruiert, wie in Figuren 31 und 32A-B dargestellt ist. Wie in Figuren 32A-B gezeigt ist, ist ein Transformator mit Mittelanzapfung sekundärseitig so angeschlossen, daß er für die Zuführung der angezeigten, ungeregelten Gleichspannungen sorgt. In Figur 41 ist dargestellt, wie die Wechselspannung des Transformators durch Dioden 4 54 und 4 56 gleichgerichtet und durch einen Kondensator 478 gefiltert wird. Die Ausgangsspannung dieser Gleichrichter/Filter-Spannung beträgt nominal 19 V Gleichspannung bei 2,7 Amp mit einer Brummspannung von 2 V Spitze-Spitze. Transistoren 440 und 442 dienen als Schalter, um die 5-Volt-Ausgangssammelschiene über Induktivitäten 4 50 und 4 52 an die ungeregelte 19-Volt-Versorgung anzuschließen. Eine Diode 444 dient dazu, die Eingangsspannung der Induktivität 4 50 mit Masse zu verbinden, wenn die Transistoren 440 und 442 ausgeschaltet sind. Der Stromfluß in den Induktivitäten 450 und 4 52 ist im wesentlichen konstant und gleich dem Ladestrom.
Der Verlust in dem Hochstromtransistor 440 ist minimisiert, da er vollständig gesättigt werden kann. Der Verlust im Ansteuerungstransistor 442 ist minimisiert, da er auch gesättigt werden kann. Der Widerstand 446 begrenzt den maximalen Treiberstrom zum Transistor 440. Verluste im Widerstand 44 6 können durch richtige Positionierung der Anzapfung an der Induktivität 4 50 minimisiert
309884/ 1 370
2333903
werden, im Einklang mit den Transistorparameterη und den Erfordernissen der Schaltung.
Ein integrierter Schaltkreis 448 ist ein linearer Differenzialverstärker zur Ansteuerung von Q1 und Q2. Jeder Differenzialverstärker mit ausreichendem Spannungsverhalten und ausreichender Bandbreite kann eingesetzt werden. Da der verwendete Verstärker linear ist, sind R7 und R4 in die Schaltung eingebaut worden, um eine ausreichende Hysterese für zuverlässiges Schalten vorzusehen. Diese Hysterese stabilisiert die Schaltfrequenz und damit die Schaltverluste.
Wegen der Einführung der Hysterese in die Schaltung muß auf dem Rückkopplungssignal zum Verstärker ein wesentliches Brummsignal (mit Schaltfrequenz) vorhanden sein. Dieser Brummsignal-Bedarf begrenzt die Größe der Kapazität, die zwischen dem Ausgang der Induktivität 450 und Masse auftreten kann. Die Induktivität dient dazu, diesen Punkt vom Rest des Systems abzusondern. Die Größe der Kapazität, die zwischen dem Ausgang der Induktivität 452 und Masse auftreten kann, ist im wesentlichen unbegrenzt und reduziert das Brummen der Energieversorgung wesentlich und verbessert stark das Verhalten bei Belastungsänderungen.
Die zweite Wicklung der Induktivität 452 ist ein Pfad für die Rückkopplung von der entfernten Messung. Das benötigte Brummsignal wird zum Rückkopplungssignal durch die Transformatorwirkung der Induktivität 4 52 hinzuaddiert. Die Energieversorgung enthält auch eine tiberspannungs-Durchbruchsschaltung, die einen Transistor 458, eine Diode 460 und einen Widerstand 462 aufweist, sowie eine Kurzschluß-Abschaltung (unter Benutzung des Transistors 464). Im Falle, daß die +5-Volt-Sammelschiene geerdet ist oder daß die Durchbruchsschaltung getriggert ist, geht der Transistor 464 in die Sättigung und schaltet den integrierten Schaltkreis 448 ab.
Der Widerstand 466 bildet einen Stromgenerator für den integrierten Schaltkreis 448. Widerstände 468 und 470 entladen die Basen der Transistoren 4 50 bzw. 4 52. Der integrierte Schaltkreis 472 und die ihm zugeordneten Komponenten erzeugen einen
30988W1370
ORIGINAL INSPECTED
23333Q8
"Energiezufuhr ein"-Impuls. POP, um das Instrument zu initialisieren. Der integrierte Schaltkreis 448 wird von einer externen +12-Volt-Versorgung mit Referenzspannung und Energie versorgt. Die Energieversorgung des integrierten Schaltkreises mit +12 Volt statt mit den ungeregelten +19 Volt reduziert den Leistungsverlust im integrierten Schaltkreis 448.
Die +12-Volt-Versorgung nach Figuren 32A-B bildet ein unmittelbares Referenzsignal für die -12 Volt-,+5 Volt- und +16 Volt-Versorgungen. Der +12-Volt-Verstärker 448 kann entweder von der ungeregelten Versorgung für die +12-Volt-Versorgung oder von der arbeitenden +16-Volt-Versorgung aus vorgespannt werden. Dioden 474 und 47 6 legen die passende Quelle fest. Dadurch wird eine größere Energieversorgungsspanne für die +12-Volt-Versorgung ermöglicht.
Alle Versorgungen mit Ausnahme der +20-Volt-Versorgung sind strombegrenzt. Alle Versorgungen mit Ausnahme der +20-Volt-Versorgung sind gegen überspannung durchbruchgesichert.
Mikroprozessor use.
Der Mikroprozessor 120, der programmierbare Taktgeber 118, die Registereinheit 114, die arithmetische Logikeinheit 116, die Lese/Schreib-Speichereinheit 78 und der Nur-Lese-Speicher 80 sind in gleicher Weise aufgebaut, wie es in der älteren Patentanmeldung1 P 2 228 74 2.9(Patentanmeldung in der Schweiz 8800/72) beschrieben ist.
'? Π 9 8 B hl 1 3 7 0

Claims (3)

  1. 7 3 3 3 '-ι Ο 8
    Hewlett-Packard Company
    Palo Alto
    Case 747 2. JuIi 1973
    Patentansprüche
    /1 J Elektronischer Rechner, gekennz eichnet durch
    eine Tastenfeld-Eingabeeinheit mit einer Vielzahl von Tasten zur Eingabe von Zeilen aus einem oderer mehreren alphanumerischen Zeichen in den Rechner, eine Ausführungstaste, mit der der Rechner veranlaßt wird, eine eingegebene Zeile aus einem oder mehreren alphanumerischen Zeichen auszuführen, sowie einer Speichertaste, mit der bewirkt wird, daß eine eingegebene Zeile aus einem oder mehreren alphanumerischen Zeichen innerhalb des Rechners gespeichert wird;
    eine erste Speichereinrichtung zur Speicherung einer in den Rechner eingegebenen Zeile aus einem oder mehreren alphanumerischen Zeichen;
    eine zweite Speichereinrichtung zur Speicherung von Zeilen aus je einem oder mehreren alphanumerischen Zeichen;
    eine Logikeinrichtung zur Definition einer Vielzahl von Routinen und Subroutinen, die vom Rechner bei der Ausführung und Speicherung von Zeilen aus je einem oder mehreren alphanume rischen Zeichen durchgeführt werden sollen;
    eine Verarbeitungseinheit, die auf das auf die Eingabe einer Zeile aus einem oder mehreren alphanumerischen Zeichen in die erste Speichereinrichtung folgende Niederdrücken der Ausführungstaste anspricht und selektiv eine oder mehrere der Routinen und Subroutinen durchführt, um die Zeile aus einem oder mehreren alphanumerischen Anweisungen auszuführen,
    309884/1370
    wobei die Verarbeitungseinheit auf das auf die Eingabe einer Zeile aus einem oder mehreren alphanumerischen Zeichen in die erste Speichereinrichtung folgende Niederdrücken der Speichertaste anspricht und die Zeile aus einem oder mehreren alphanumerischen Zeichen zusätzlich in der zweiten Speichereinrichtung speichert;
    und durch eine Ausgabeeinheit für die Ausgangsanzeige der Ergebnisse jeder Zeile aus einem oder mehreren alphanumerischen Zeichen, die vom Rechner ausgeführt worden ist,
    wobei der Rechner die Computersprache BASIC verwendet, die in der Logikeinrichtung zur Wirkung kommt.
  2. 2. Elektronischer Rechner nach Anspruch 1, dadurch gekennzeichnet , daß die Logikeinrichtung einen Nur-Lese-Speicher enthält.
  3. 3. Elektronischer Rechner nach Anspruch 1, dadurch gekennzeichnet , daß die Tastenfeld-Eingabeeinheit eine Abstandstaste enthält, um an gewünschten Zeichenpositionen in der Zeile aus einem oder mehreren alphanumerischen Zeichen Leerfelder einzuführen.
    309884/137 0
    ORIGINAL INSPECTED
DE19732333908 1972-07-07 1973-07-04 Programmierbarer rechner Pending DE2333908A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US26989972A 1972-07-07 1972-07-07

Publications (1)

Publication Number Publication Date
DE2333908A1 true DE2333908A1 (de) 1974-01-24

Family

ID=23029094

Family Applications (7)

Application Number Title Priority Date Filing Date
DE2365570*A Pending DE2365570A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365543*A Pending DE2365543A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365568*A Pending DE2365568A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365569*A Pending DE2365569A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365542*A Pending DE2365542A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE19732333908 Pending DE2333908A1 (de) 1972-07-07 1973-07-04 Programmierbarer rechner
DE2365567*A Pending DE2365567A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner

Family Applications Before (5)

Application Number Title Priority Date Filing Date
DE2365570*A Pending DE2365570A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365543*A Pending DE2365543A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365568*A Pending DE2365568A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365569*A Pending DE2365569A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner
DE2365542*A Pending DE2365542A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE2365567*A Pending DE2365567A1 (de) 1972-07-07 1973-07-04 Elektronischer rechner

Country Status (9)

Country Link
JP (1) JPS5545943B2 (de)
CA (1) CA1046644A (de)
CH (1) CH597649A5 (de)
DE (7) DE2365570A1 (de)
FR (1) FR2192338B1 (de)
GB (9) GB1444148A (de)
HK (3) HK68278A (de)
IT (1) IT990351B (de)
ZA (1) ZA734414B (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5526502B2 (de) * 1974-06-06 1980-07-14
JPS5416160A (en) * 1977-07-07 1979-02-06 Fuji Electric Co Ltd Waveform shaping circuit
JPS5576451A (en) * 1978-12-04 1980-06-09 Casio Comput Co Ltd Program checking system
DE2929545A1 (de) * 1979-07-20 1981-01-29 Heidenhain Gmbh Dr Johannes Verfahren und schaltungsanordnung zur programmerstellung und/oder programmaenderung bei numerisch gesteuerten maschinen
IT1188909B (it) * 1980-02-26 1988-01-28 Alessandro Mascioli Macchina per scrivere miniaturizzata con memorizzazione elettronica di piu' pagine di scrittura e trasferiemento per lettura su riga di display e/o stampante collegata
DE3028850A1 (de) * 1980-07-30 1982-03-04 Robert Bosch Gmbh, 7000 Stuttgart Pruefgeraet, insbesondere fuer kraftfahrzeuge, und kassette hierfuer
JPS5781656A (en) * 1980-11-07 1982-05-21 Canon Inc Program computer
JPS57100562A (en) * 1980-12-15 1982-06-22 Sony Corp Word processor
JPS58195251A (ja) * 1982-05-07 1983-11-14 Sony Corp コマンド拡張装置
DE3325153A1 (de) * 1982-07-12 1984-01-12 Sharp K.K., Osaka Programmierbarer elektronischer rechner
GB2129175B (en) * 1982-10-26 1986-04-30 Atomic Energy Authority Uk Draughting machine
JPS59218534A (ja) * 1983-03-24 1984-12-08 Fanuc Ltd 外部機器の接続制御方式
JPS5927364A (ja) * 1983-06-30 1984-02-13 Brother Ind Ltd 演算機能付き電子タイプライタ
JPS59103165A (ja) * 1983-09-27 1984-06-14 Sharp Corp プログラム付電子式計算機
US5112626A (en) * 1990-12-31 1992-05-12 The Pillsbury Company Aerated frozen dessert compositions and products
US5175013A (en) * 1990-12-31 1992-12-29 The Pillsbury Company Frozen dessert compositions and products
US6379736B1 (en) 1999-10-05 2002-04-30 The Pillsbury Company Gelato composition

Also Published As

Publication number Publication date
ZA734414B (en) 1975-02-26
JPS5545943B2 (de) 1980-11-20
DE2365567A1 (de) 1975-06-12
DE2365543A1 (de) 1975-04-30
GB1444144A (en) 1976-07-28
DE2365570A1 (de) 1975-05-22
CH597649A5 (de) 1978-04-14
HK68078A (en) 1978-12-01
GB1444148A (en) 1976-07-28
GB1444142A (en) 1976-07-28
JPS4948257A (de) 1974-05-10
HK68278A (en) 1978-12-01
DE2365542A1 (de) 1975-05-22
FR2192338B1 (de) 1975-02-07
GB1444143A (en) 1976-07-28
GB1444145A (en) 1976-07-28
DE2365568A1 (de) 1975-07-17
CA1046644A (en) 1979-01-16
GB1444141A (en) 1976-07-28
HK68178A (en) 1978-12-01
IT990351B (it) 1975-06-20
GB1444149A (en) 1976-07-28
DE2365569A1 (de) 1975-06-12
GB1444147A (en) 1976-07-28
FR2192338A1 (de) 1974-02-08
GB1444146A (en) 1976-07-28

Similar Documents

Publication Publication Date Title
DE2333908A1 (de) Programmierbarer rechner
DE2113891C2 (de) Datenverarbeitungsanlage
DE1499175A1 (de) Digitalrechner-Datenverarbeitungszentralanlage
DE2228742A1 (de) Programmierbare Rechenmaschine
DE2504627C2 (de) Autonomes Datenverarbeitungsgerät
DE3886137T2 (de) System zum Entwurf von Interkommunikationsnetzwerken.
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE2044069C3 (de) Datenverarbeitungsterminal, insbesondere Kassenterminal
DE2646163C3 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2655241A1 (de) Programmierbarer rechner
DE10351773A1 (de) Verteilungssystem
DE2903349A1 (de) Datenverarbeitungseinrichtung
DE2720578A1 (de) Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems
DE1813916B2 (de) Elektronische Datenverarbeitungsanlage
DE2459956A1 (de) Prozessor und diesen verwendendes peripheres verarbeitungssystem
DE8802507U1 (de) Programmierbare Dateneingabevorrichtung
DE1524103A1 (de) Datenverarbeitungsanlage
GB9204450D0 (en) Concurrent access to indexed data files
DE2719253B2 (de) Schnittstellenschaltung für Datenverarbeitungsanlagen
DE2714805A1 (de) Datenverarbeitungssystem
DE2312304A1 (de) Schaltungsanordnung fuer anschluss und steuerung von eingabe/ausgabegeraeten an datenverarbeitungsanlagen
DE4010828A1 (de) Verfahren zum dekompilieren eines anwenderprogramms bei einer industriesteuerung
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE2218630B2 (de) Schaltungsanordnung zur Steuerung von Unterbrechungssignalen in Datenverarbeitungsanlagen
DE1949916B2 (de) Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage und anordnung zur durchfuehrung des verfahrens

Legal Events

Date Code Title Description
OHN Withdrawal