DE2333908A1 - Programmierbarer rechner - Google Patents
Programmierbarer rechnerInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/02—Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
- G06F15/0225—User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems
- G06F15/0233—User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems with printing provisions
Landscapes
- Engineering & Computer Science (AREA)
- 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.
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.
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.
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
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
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.
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
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
^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,
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)
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 -
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
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)
MERGE (UNIT] (FILE)
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|
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.]
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:
FIND j£ 2 λ. Ά 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.
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.
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.
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.
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.
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
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.
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
λ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
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) | ||
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 | 11Z IS" | |||
140 | RETURN | Z | ||
150 | 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 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.
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
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
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
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,
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
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.
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.
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
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_ . . .
Anweisungsnummer PRINT "beliebiger Text" j_ Ausdruck j_ . . .
oder
Anweisungsnummer PRINT "Text" j_ Ausdruck j_ "Text" j_ "Text" j_ . ,
Anweisungsnummer PRINT "Text" j_ Ausdruck j_ "Text" j_ "Text" j_ . ,
oder
oder
Anweisungsnummer PRINT
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.
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
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 | |||
(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:
Zweck
GO TO überführt die Steuerung zu der spezifizierten Anweisung.
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.
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
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
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:
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
80 STOP
Allgemeine Form:
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
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
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
160 END
Allgemeine Form:
Anweisungsnummer FOR einfache Variable = Anfangswert TO Endwert
oder
Anweisungsnummer FOR einfache Variable = Anfangswert TO Endwert
STEP Schrittweite
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.
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.
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)
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.
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.
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.
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 Π
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.
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
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)
SGN _£ Ausdruck ]_
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-Variable _£ Ganzzahl j_ Ganzzahl )_ . .
Anweisungsnummer DIM Matrix-Variable _£ Ganzzahl 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
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
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
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\
<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>
<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>|.
<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>
= 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>
= <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
2 3 3 ^ ^ Π 8 -■««■"
/SO
<MATRIX-PRINT-Teil>
<MATRIX-Ersetzen>
<MATRIX-Formel>
<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"
"12345"
Eine Variable, die zur Speicherung von Strings benutzt wird; sie besteht aus einem einzigen Buchstaben (A bis Z) gefolgt von
einen φ.
Beispiele: Αφ; Βφ; ζφ
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
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
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
Allgemeine Form:
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)
Allgemeine Form:
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.
Allgemeine Form:
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
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
Die erlaubten Vergleichsoperatoren sind: =, φ,
<, >, <=
Beispiel: 10 IF A$ = "SAM" THEN 20
String-Daten-Anweisung
Allgemeine Form:
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"
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.
Ί 0 9 8 8 U I 1 3 7 0
7333908-
Allgemeine Form:
Zweck:
Identisch mit der Druckanweisung mit der Ausnahme, daß das Ausgabegerät eine 32-Zeichen-Anzeige ist.
LEN-Funktion
Allgemeine Form:
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
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
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.
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>
<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.
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.
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
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
(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
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.
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.
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).
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
SCALE -10, 10, -5, 5
SCALE-4PI, 4PI, .3, 1.1
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
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.
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
A und B müssen dieselbe Matrix sein E. DET-Operation
berechnet die Determinante einer quadratischen Matrix MAT D4 = DET(A)
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
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 | Uö | 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
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
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
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
NMOUT
RESULT REGISTER POINTER Resultat Registerhinweismarke
ADD, addieren
SUBTRACT, subtrahieren MULTPY, muliplizieren DIVIDE, dividieren
SUBTRACT, subtrahieren MULTPY, muliplizieren DIVIDE, dividieren
SQUARE ROOT, Quadratwurzel UP ARROW, Pfeil nach oben
I/O BUFFER END
I/O Puffer Ende
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
Ausgabe Leerzeichen
RBUFF+RBUFF+80
0203 | OO111 |
0204 | 00110 |
0205+ | |
0206 | 00123 |
0207 | OO237 016516 |
TMPA EQU BADRP EQU B174O
B1400
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
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
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
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
Rückkehradresse erhöhen
RESTORE (A), (A) zurückstellen
GET SINGLE LINE CHARACTER COUNT Zeichenzählung einzelner Zeile
COMPUTE CHAR COUNT
Zeichenzählung rechnen
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
Überschreitung Ausgang
STORE INTERGER, Ganzzahl
speichern RESTORE AR2, AR2 Zurückstellen
EMIT OVERFLOW
Überschreitung ausgeben
Ü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
Hinweismarke aktualisieren
0383
0384
0385* 0386*
0384
0385* 0386*
0387* 0388*
0389* 03 90* 0391
00457 131706 00460 170402 STA SBPTR,I SAVE (A),
RET
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
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
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)
(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*
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
Grenze subtrahieren
SKIP IF TOO LARGE überspringen, wenn zu groß
RETURN WITH
zurückkehren mit
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
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
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
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
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.
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?
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
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
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
0806
0807
0808
0809
0810
0811
0812
0810
0811
0812
0813
0814+
0815*
0816+
0817+
0818*
0819*
0817+
0818*
0819*
0820*
0821
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+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*
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)
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
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
0882
0883
0884
0885
0886
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
Vorzeichen zurückrufen
0888
0889*
0890*
0891+
0889*
0890*
0891+
0892*
0893
0893
0894
0895
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
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*
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
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-Adresse
PARAMETER NAME
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
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
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
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
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
STA LNINC
JMP REED6 JSM CLEAR
LDA LNINC SAP REED4
SAR 16
STA LNINC
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
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
132O
1321
1322
1323
1324
1316
1317
1318
1319
132O
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
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
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-
CLEAR BUFFER
Puffer löschen
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
Zeilen #" gegeben
YES, FIND ADDRESS
ja, Adresse auffinden
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
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
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?
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
Zeichen holen
STORE SHIFTED LEFT ONE geschobenes linkes speichern
LINE FULL Zeile voll
GET CHARACTER
Zeichen holen
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+
1639+
1640+·
1641 +
1642+
1643 +
1644 +
1645+
1646 +
1647
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?
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
02530 170402
STB TFLAG RET
02531 027117 GTMP2 LDB TMP2A
02532 065041 JMP GETCH
1693
1694
1694
1695 +
1696 +
1697
1698
1699 +
1700+
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
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?
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
Ausgangswort formen
TURN DISPLAY OFF Wiedergabe INTERRUPT ON ausschalten Unterbrechung ein
INTERRUPT OFF
Unterbrechung aus
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
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
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
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 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
1863
1864
1865
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
1873
1874
1875
1876
1877
1878
1879
1880+
1881 +
1882+
1883 +
1884 +
1885
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 Ο
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
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
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?
Betriebsart zurückrufen?
NO.DINC POINTER nein, DINC Hinweismarke
RETURN WITH CHAR IN (A) mit Zeichen in (A) zurück
RESET POINTER
Hinweismarke nullstellen
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?
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*
1970
1971
1972*
1973 +
1974 +
1975*
1975*
1976
1977
1978
1979
1980
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
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
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
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
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+
2039+
2040+'
CONSTANTS, TEMPORARIES,ETC. in den obigen Programmen
benutzte Konstanten, Zwischenergebnisse u.s.w.
USED IN ABOVE ROUTINES
09884/1370
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
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
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
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
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
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
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
2204*
2205*
2206
2207
2208
2209
2210
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*
2213*
2214*
2215
2216
2217
2218
2219
2220
2221
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
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)
(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
verfolgen
NORMAL; 000111 normal CONT; 101010
STOP; 111111 (NO JUMP) nicht springen
2314 03457 052524
ASC 1,UT
30988W 1370
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
NO nein
FORMAT STATEMENT SYNTAX Format-Anweisungs-Syntax
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
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
nächste Spez. holen
SEARCH FOR "B","X",OR "/" suchen nach
NOT FOUND nicht gefunden FOUND gefunden
•Τ 09884/1370
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
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
2394 03572
2395 03573
2396 03574 2397*
2398+ AUTO
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
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
Hinweismarke nullstellen
GET OPTIONAL LINE rf ' S Wahlzeilen 1S holen
GET ADDRESSES
Adressen holen
Adressen holen
LIST auflisten
CLEAR BUFFER
Puffer löschen
Puffer löschen
COMPUTE WORDS BETWEEN STACKS Wörter zwischen Stapelspeichern rechnen
PUT IN BUFFER
in Puffer geben
in Puffer geben
.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
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
nächstes Zeichen holen NONE GIVEN keins gegeben DIGIT? Ziffer
NO, IGNOR IT
nein, ignorieren
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
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
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
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
Stapelspeicher nullstellen
SET TO IGNOR BLANKS auf Leerstellenignorierung setzen
SKIP IF MANUAL
überspringen, wenn manuell
ü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
STA .LNUM
JSM REEDL,I JMP PEXMK-2 JSM GFRST
JMP PEXMK-2 SBR 16
STB GFLAG
STB GFLAG
LDB DRQST SIB CKRCD STB SAVE
SBR 16
STB DRQST
STB DRQST
STB MODE
JSM SALTA,I
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
STB MSFLG
LDB HSTPT ADB M1
STB TEMPS
STB TEMPS
SBR 16
STB DFLAG
STB DFLAG
STB SFLAG 160237 STMT JSM SALTA,I
JMP CMND
ISZ SBPTR STB SBPTR,I
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
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
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
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
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
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
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
2722
2723
2724
2725
2726
2727
2728
2729
2730
2725
2726
2727
2728
2729
2730
2731
2732
2733
2732
2733
2734
2735
2735
2736
2737
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
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*
2756*
2757*
2758
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
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
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 #
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
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
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
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
aus Syntaxbetrieb schalten
JUMP TO CALC EXECUTION zur Rechenausführung springen
DECOMPILE dekompilieren
COMPUTE LENGTH
OF STATEMENT
rechnen Länge der Anweisung
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
einsetzen
JMP ACCS4 JMP ADDS4 SZA ACCSI APPEND
INSERT
SKIP IF REPLACING TYPING AID
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
gesamtes Programm
COMPARE vergleichen
LENGTHS Länge
EQUAL gleich
EQUAL gleich
JMP ACCS4+1 OLD LINE IS SHORTER alte Zeile kürzer
04551 021473
04552 062573
LDA TEMP LONGER
JSM CLPRG+2
JSM CLPRG+2
langer
CLOSE UP PROGRAM
Programm abschließen
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
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
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
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
3081
3082+
3083*
3084
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
05010 076310
RZB MLOP5
JMP MLOP8 RZB ML2L GET POINTER FOR MILOP
Hinweismarke für MILOP holen
END OF PROGRAM?
Programmende?
Programmende?
YES ja
FETCH 1ST OPERAND IN NEXT
STATEMENT
1. Operanden in nächster Anweisung abrufen
END OF STATEMENT
Anweisung Ende
Anweisung Ende
INTEGER, SKIP IT
Ganzzahl, überspringen
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
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?
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
um 1 versetzen
PLACE IT IN LEFT HALF WORD in linkes Halbwort plazieren
2 DIMENSIONS
2 Dimensionen
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
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
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
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
NO nein
mehr Symbole?
YES, MOVE TO NEXT SYMBOL
ja, zum nächsten Symbol gehen
Q98-1W13
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
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
CPA M3
JSM MERR
STA MB0X1+1
LDB LSTAK,I
CPB M1
JMP *+2
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
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 Ο
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
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
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
32.61
3262
3263
3264
3265
3266
3267
3267
3268
3269
3270
3271
3272
3273
3269
3270
3271
3272
3273
3274
3275
3275
3276
3277
3278+
3279*
3277
3278+
3279*
3280+
3281 +
3282+
3281 +
3282+
3283+
3284+
3284+
3285+
3286+
3287+
3288+
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
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?
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
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
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
YES, SEARCH MAINLINE ja, Hauptzeile suchen
nicht gefunden, Undefiniert
05512 164337
JMP E40,I
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
altes HSTPT holen
STORE NEW HSTPT
neues HSTPT speichern
neues HSTPT speichern
STORE SOURCE POINTER Quellen-Hinweismarke speichern
ALL WORDS MOVED?
alle Worte bewegt? ,
YES ja
MOVE bewegen
WORD Wort
WORD Wort
UPDATE POINTERS
Hinweismarken aktualisieren
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
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?
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
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
Operand holen
SKIP IF NULL
überspringen, wenn 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
Typ extrahieren
RESEQUENCABLE INTEGER? rückfolgbare Ganzzahl?
YES ja
SKIP IF PARAMETER
überspringen, wenn Parameter
überspringen, wenn Parameter
SKIP IF PARAMETER OR FUNCTION COMPUTE NUMBER OF
WORDS TO SKIP IF
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
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
Zeilenzahl lesen
CLEAR SECURE BIT
Sicherheitsbit löschen
Sicherheitsbit löschen
STORE LINE^
Zeilen # speichern
Zeilen # speichern
FIND NEXT ADDRESS
nächste Adresse auffinden
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
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
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
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?
erweitertes OP?
YES, GET OP CODE
ja, OP-Code holen
ja, OP-Code holen
SAVE sichern
SET FLAG FOR BLANK
Yarke für Leesstelle setzen
OUTPUT BLANK IF
OP > 17B
OP > 17B
Ausgang Leerstelle setzen, wenn OP > 17B
GET STANDARD PAGE
Standardseite holen
Standardseite holen
EXPANDED OP?
erweitertes 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
YES ja
Funktion?
OUTPUT LETTER NAME Ausgang Buchstabenname
FUNCTION? Funktion? YES ja
STRING
YES ja
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
YES ja
MATCH? . paßt?
YES ja
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
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
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
STB TERM
JMP PR6 NO nein
Puffer überfüllt
LDB TMP2
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
4358
4359
4360
4360
4361
4362
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
NO nein
alles drucken?
PRINT STMT?
Anweisung drucken?
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
ü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
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
4453
4454
4455
4456
4455
4456
4457
4458
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
4461
4462
4463
4464*
4465
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
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
4483
4484
4485
4485
4486
4487
4487
4488
4489
4490
4491
4492
4489
4490
4491
4492
4493
4494
4494
4495
4496
4496
4497 +
4498
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
NO nein
Schreibanweisung
UNSTACK FLAGS
ungespeicherte Marken
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
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
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
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
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
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*
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*
4692
4693*
4694
46-95
4696
4697
4698
4696
4697
4698
07424 045472 ISZ TEMPS
07425 064357 JMP RETN2
FIND AND VERIFY FORMAT STMT
Formatanweisung auffinden und verifizieren
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
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
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*
4715*
4716*
4717*
4718*
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
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
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
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
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
4840
4841
4842
4842
4843
4844
4845
4846
4844
4845
4846
4847
4848
4849
4850
4851
4852
4848
4849
4850
4851
4852
4853
4854
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*
4859*
4860*
FETCH A STRING CONSTANT
STRING-Konstante abrufen
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
Eröffnungsquote
YES ja
No nein
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
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
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
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
BUFFER INTO
STACK AREA
Syntax-Puffer in Stapelspeicherbetrieb
überführen
STACK OLD LSTPT
altes LSTPT speichern
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
Stapelspeicher LSTPT
STACK TSTPT
Stapelspeicher 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
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
ü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
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?
Formel zurück?
NO nein
YES, FUNCTION RETURN ALLOWED? ja, Funtionsruckkehr erlaubt?
YES, EXECUTE
ja, ausführen
ja, ausführen
GET NEXT OPERAND
nächsten Operanden holen
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
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
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
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
JSM XFAR1+1
LDA ONE
JSM XFAR2+1 LDA TEMPS
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
JSM XFAR1+1
ADB .4
LDA PRADD STA B,I IS THERE A STEP SIZE? Schrittweite dort?
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
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
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
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
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
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
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*
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
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
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
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
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
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
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
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
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
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
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
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
LDB RSPTR
ISZ RSPTR
SAP #+3,C
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
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?
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
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
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
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?
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
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?
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 TSTPT
LDA HSTPT SIA *+1
SBR 16
STB A,I
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
ü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
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
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
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
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
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
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
gerade gefunden
YES ja
END OF STMT?
Anweisungsende?
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 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?
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
Buchstabe zurückrufen
SAVE DIGIT
Ziffer sichern
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
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
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
Feldadresse
COMMA?
NO
NO
Komma?
nein
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
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
6 4 97
6498
6499*
6499*
c 5ü'o *
e 501 -f-
6504 +
6 505+
6 5C6*
6 507
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
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
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
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
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
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
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
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
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
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
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
dekompilieren
FILE TYPE Datei-Typ SOURCE? Quelle?
SEC SOURCE? zweite Quelle?
YES ja
TYPE ERROR Typ-Fehler
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
überspringen, wenn Taste
UPDATE PBUFF
auf den neuesten Stand bringen
UPDATE LOAD ADDR
Ladeadresse auf den neuesten Stand bringen
Ladeadresse auf den neuesten Stand bringen
OPEN UP SPACE
Raum öffnen
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
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
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
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
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
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
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
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
Mischzeilen-Zahl
CLEAR SEC BIT
zweites Bit löschen
zweites Bit löschen
TEMPOR Zwischenspeicher
LNX2 GIVEN gegeben
DO NOT EXECUTE
nicht ausführen
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
Überfüllungsfehler
SAVE ADDR Adresse sichern
309884/1370
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
0942
0943
0944
0945
0946
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
Einheitszahl holen
POSITION UNIT
Einheit positionieren
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
Datei plaziert
TURN ON INTERPT
Unterbrechung einschalten
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
1014
1015
1016
1017
1018
1019
1019
1020
1022
1023
1024
1025
1026
1027*
1028*
1029*
1030+
1031*
1032*
1031*
1032*
1033*
1034*
1035
1036
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
springen, wenn B=O
LOAD CHECK-SUM
Suinmenprobe laden
Suinmenprobe laden
OUTPUT 8 BITS
Ausgang 8 Bits
Ausgang 8 Bits
IMPROPER STOP
unrichtiger Halt
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
überspringen, wenn getan
INPUT 8 BITS
Eingang 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
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
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
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
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
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
Daten
SAVE DIFF
Differenz sichern
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
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
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.
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
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*
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
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
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
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*
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
Fehler, wenn negativ
ABS FILE SIZE ON TAPE Datengröße auf Band
SIZE ERROR
Größenfehler
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
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
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?
Taste?
YES
ja
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*
1462*
1463*
1464*
1465
1466
1467
1468
1469
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
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
Taste sichern
INFILE ID BUFF ID-Puffer eindatieren
START OF KEY AREA
Start des Tastenberexchs
TEMPOR
Zwxschenspeicher
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*
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
JMP SDAT3+2
JSM LOCF
LDA MAW
LDA MAW
LDB IDBO+1
TCB
ADA B
ADA B
POINTER
Hinweismarke
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
1627+
1628 15524 062510 MAR4
JSM WRZE
SFS 1
JMP 4—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
Eingabe Status
ISOLATE OPEN DOOR+CLR LLR offenes Tor isolieren + CLR LLR
SKIP IF OK
überspringen, wenn i.O.
ü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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
Formel holen
DEMAND RIGHT PARENTHESIS rechte Klammer verlangen
LOOK FOR "+" suchen
nicht gefunden, Fehler 31
RECORD ARRAY
Feld aufnehmen
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 Π
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
0709
071 | 0 |
071 | 1 |
071 | 2 |
071 | 3 |
071 | 4 |
071 | 5* |
071 | 6 + |
071 | 7* |
071 | CXl |
0719
0720
0721
0722
0722
0723
0724
0725
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 £
( 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
) in j
) TO i ändern
CHECK FOR END-OF-STATEMEKT
-> η Q Q Q Λ / ftö Q.nwei sung sende prüfen
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
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 η
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
Stop-Marke prüfen
DOUBLE-SPACE BETWEEN ROWS Doppelabstand zwischen Sprossen
309884/ 1
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
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
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?
skalare Multiplikation?
NO nein
YES ja
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
■ι
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
-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
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
neues LSTPT sichern
CHECK FOR OVERLAP auf Überlappung prüfen
COPY B1 INTO B3
Kopie B1 in B3
Kopie B1 in B3
SET DEL =1.0 setzen
DO THE INVERSE
invertieren
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)
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
CHECK I prüfen
MATRIX BLOCK
21261 023732 DCPV LDA BIGA
1346
1347
1348
1349
1350
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
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
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
auf Größe sehen
AND SAVE IT
und sichern
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
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
Zeilendimension holen
SAVE IT sichern
LOAD DEFAULT COLUMN
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
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?
>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
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
2333303
Seite 197 MATRIX BLOCK
1731 21766 ORG 21766B
1732+
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
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*
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
speichern
(?
NO nein
NO nein
RECORD RIGHT BRACKET rechte Klammer aufnehmen
ENABLE LOGICL=
logisches =freigeben
logisches =freigeben
GET FIRST INDEX
ersten Index holen
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
STB SFLAG
STB DFLAG
22112 066112
CPB ST+3
SAR 16
JSM SALT,I
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
LDB M1
STB PFLAG
JSM GETSK JMP PR1
CPA B42
JMP *+2
JMP PR3
ISZ SBPTR JSM GTSTA,I
CPA B42
JMP *+2
JMP PR3
ISZ SBPTR JSM GTSTA,I
CPA EOL
JMP RETN2 SBR 16
STB SBPTR,I
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
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
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
0941
0942
0943
0944
0944
0945
0952
22510 021413
22511 070744
22512 031623
LDA HSTPT SAL 1
STA PEND
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
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
YES
ja
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
Stapelspeicher nullstellen
1109
1110
1111
1112
1110
1111
1112
1113
1114
1114
1115
1116
1117
1117
1118
1119
1120
1121
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
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
ja
NO
nein
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
ja
NO, WAS A "
nein, war ein"
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
ja
JSM SWITH,I NO
nein
LDB NXTDT,I
SBM ++3
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*
1423*
1424*
1425*
1426*
1427*
1427*
1428*
1429*
1430*
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*
1432*
1433*
1434*
1434*
1435+
1436*
1437
1436*
1437
23360 063567
EXIT CONDITIONS:
Ausgangs-Bedingungen:
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
ja
NO
nein
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?
Komma?
YES
ja
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
Eingangs-Bedingungen
B=-2 FOR SOURCE STRINGS
für Quellen-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
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
nein
YES
ja
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
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
LDB .1
CPB PSO
JMP PSTR5
LDB TNULL
ADA .1
SAM PSTR4
ADA .1
SAM PSTR4
ADB ADB A
JMP PSTR4 PSTR3 LDA PSO RZA PSTR4-1
JSM AERRA,I
DEC -73
JSM AERRA,I
DEC -73
RELATE TO PREVIOUS STRING VALUE
Bezieht sich Zeichenanfang auf vorherigen
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?
Quellenbetrieb?
NO
nein
nein
SPECIFIED SOURCE STRING CONTAINED WITHIN DEFINED SOURCE STRING? Spezifizierter Quellen-STRING
in definiertem Quellen-STRING enthalten?
NO
nein
nein
CORRECT LENGTH Länge korrigieren
SOURCE MODE?
Quellenbetrieb?
Quellenbetrieb?
YES
Ja
Ja
NO
nein
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
RET
SAM *+3 NO, GET STRING POINTER nein, STRING-Hinweismarke holen
OVERFLOW?
Überfüllung?
Ü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
nein, tatsächliche STRING-Länge nullstellen
IS NEW DESTINATION STRING LONGER
THAN OLD?
Ist neuer Bestimmungs-STRING länger als alter?
MO
nein
nein
Seite 219 STRING OPTION BLOCK
String-Wahl-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 | 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-*
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 |
|
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*
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
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
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
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
0817
0818+
0819
0821+
0822
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*
0829*
0830*
0831*
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*
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
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
setzen A = zu einer Versetzung, sodaß A + Tl = 1. Wort
STORE POINTER TO IST X
OR Y VALUE
OR Y VALUE
Hinweismarke zu erstem
X oder Y-Wert speichern
X oder Y-Wert speichern
SAVE POINTER TO PRESENT POSITION
Hinweismarke zur gegenwärtingen Position sichern
STORE POINTER TO XMIN
OR YMIN
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
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
(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
X und Y speichern
PEN CONTROL?
Schreibstift-Kontrolle?
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
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
Plotter-Einheiten nicht überfüllt, so
22610 22611
17777O 170402
M8
DEC -8
RET
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
+ 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
Ü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 +
1188*
1189 +
1190+
1191
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
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
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
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
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
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
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
1722
1725
1724
1724
1725
1726
1727
1728
1729
I75O
1751
1752
1727
1728
1729
I75O
1751
1752
1755
1754
1755
1756
1754
1755
1756
1757
1758
1758
1759
1740
1741
1742
1740
1741
1742
1744
1745
1746
1746
1747
1748
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
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
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
0643
0644
0645
0646
0647
0647
0648
0649
0650*
0651
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
CPA B22
JMP BKSP
STA T 9
DUMP I/O BUFFER? Auszug I/O-Puffer?
YES ja
BACKSPACE? 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
JMP R36
309884/1370
TERMINAL OPTION BLOCK
Terminalwahl-Block, Endgerätwahl-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
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
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
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
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*
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
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
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
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
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?
ist es EOL?
YES ja
NO nein
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
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
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
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
1769
1770
1771
1772
1773
S3V
23767 040524
23770 037440
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
Seiteninformation
PRINT/STORE FLAG Druck/Speicher-Marke
FOR LISTING
zum Auflisten
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)
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
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-
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
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
JSM GNEXT
ISZ SBPTR
JSM NFOP
JMP E15+1,1 CPA .16
JMP *+2
JMP E15+1,1
JMP *+2
JMP E15+1,1
ISZ T2
JSM VAROA,I JMP E25+1,1 JMP E25+1,1 JSM SYMC1
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
JMP #+2
JMP E25+2,I JSM FSCA,I
JSM NFOP
JMP SGP2
CPA .18
CPA .18
JMP #+2
JMP E25+3,I JSM FSCAjI
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
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*
0883*
0884*
0885
0885
0886
0887
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
0891
0892
O893*
0894*
0895*
0896
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 Π
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
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
1184
1185
1186
1187
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
CPA .8
JMP *+5
JSM OPCHI1I LDA B
JSM XFAR2+1 JSM FLTRA,I
"TO"
EVALUATE FINAL VALUE Endwert auswerten
SAVE "FINAL"
"Ende" sichern
"Ende" sichern
ANY STEP?
irgendein Schritt?
irgendein Schritt?
IES, MOVE PASS "STEP" ja, Schritt-Durchlauf bewegen
SAVE STEP
Schritt sichern
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*
1252*
1253*
1254
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
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*
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
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
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 ? η
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?
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 -?
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?
Ziffer?
NO, ERROR
nein, Fehler
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
1411
1412
1413
1414
1415
1416*
1417
1418
1419
23305 23306
23307
23310
23310
23311
23312
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
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
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)
LDA Auswahlcode (gesichert)
JSM IOST
30988W 1 370
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
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*
1623*
1624*
LDA LSTPT
ADA M2
LDB FLOP XFR
ADA M4 STA LSTPT LDA FMTOP STA ST SBR 16 JSM PLOTE,I
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
gefanden
OUTPUT STATEMMT EXECUTION
Ausgabe-Anweisungs-Ausführung
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 η
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
1696
OUTPUT B FIELE CHARACTER Ausgabe B-Feld-Zeichen
23652 160225 JSM FLTRA1I
1697 23653 0747*2
1698
1699
1699
2365*
23655
23655
074117 052053
1700 23656 061353
1701
1702*
1702*
1703
170*
170*
1705
1706
1706
1707
I7O8
I7O8
1709
1710
1710
1711
1712
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 0Ά 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*
1732*
1733.
1734
1734
1735
1736
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
Ausgabe eine Zahl zum Puffer
OVERFLOW?
Überfüllung?
Überfüllung?
COMPUTE LENGTH AND OUTPUT THE BUFFER Länge berechnen und Puffer ausgeben
RESET BADDR
nullstellen
nullstellen
END OF STMT?
Ende der Anweisung?
YES, CRLF NOT SUPRESSED ja_, CRLF nicht unterdrückt
IES
NO
nein
nein
UNSTACE FLAGS
Marken entstapeln
Marken entstapeln
SET FORMAT- COMPLETE FLAG Format setzen Marke vervollständigen
Π 8 H /, / 1 3 7
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*
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.
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.
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
kein Strom =0
AOO-AO4 Steuerung
AO5-AO9 M-Register
CEN M-Register
RWI (XX) T-Register
R/W Steuerung
PCG Steuerung
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 .
ROD (XX) ROM
TRI Steuerung
TSC Steuerung
TMC Steuerung
TPC Steuerung
RWD(XX) RWM
RWE ■ M-Register
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.
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.
T-Sammelschiene Prozessor
SCK "
RDM
WTM
WTM
309884/137
TTM Prozessor
VLD Steuerung MTS "
REF "
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.
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-
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.
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
Prozessor
T-Register
Prozessor
Il
Il
Il
M-Register
M-Register
Erweiterter Speicher
M-Register
Erweiterter Speicher
E ingabe/Au sgabe-Verbindung
Erweiterter Speicher
3ü9884/1370
Im ROM-Bereich erzeugte Signale ROD(XX)- Nur Daten lesen
Andere vom ROM benutzte Signale ,
CS (XX) M-Register
IOO-IO7 , M-Register
108 108 M-Register
VOR Steuerung
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.
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 -
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 1£ 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 Π
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
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
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.
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.
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.
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.
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").
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
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.
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)
- 7 3 3 3 '-ι Ο 8Hewlett-Packard CompanyPalo AltoCase 747 2. JuIi 1973Patentansprüche/1 J Elektronischer Rechner, gekennz eichnet durcheine 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/1370wobei 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. Elektronischer Rechner nach Anspruch 1, dadurch gekennzeichnet , daß die Logikeinrichtung einen Nur-Lese-Speicher enthält.
- 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 0ORIGINAL INSPECTED
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)
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 |
-
1973
- 1973-06-19 CA CA174,483A patent/CA1046644A/en not_active Expired
- 1973-06-28 ZA ZA00734414A patent/ZA734414B/xx unknown
- 1973-07-04 DE DE2365570*A patent/DE2365570A1/de active Pending
- 1973-07-04 DE DE2365543*A patent/DE2365543A1/de active Pending
- 1973-07-04 DE DE2365568*A patent/DE2365568A1/de active Pending
- 1973-07-04 DE DE2365569*A patent/DE2365569A1/de active Pending
- 1973-07-04 DE DE2365542*A patent/DE2365542A1/de active Pending
- 1973-07-04 DE DE19732333908 patent/DE2333908A1/de active Pending
- 1973-07-04 DE DE2365567*A patent/DE2365567A1/de active Pending
- 1973-07-05 CH CH977473A patent/CH597649A5/xx not_active IP Right Cessation
- 1973-07-06 GB GB335176A patent/GB1444148A/en not_active Expired
- 1973-07-06 GB GB334876A patent/GB1444145A/en not_active Expired
- 1973-07-06 GB GB335076A patent/GB1444147A/en not_active Expired
- 1973-07-06 GB GB334776A patent/GB1444144A/en not_active Expired
- 1973-07-06 GB GB334676A patent/GB1444143A/en not_active Expired
- 1973-07-06 GB GB334976A patent/GB1444146A/en not_active Expired
- 1973-07-06 GB GB3226973A patent/GB1444141A/en not_active Expired
- 1973-07-06 JP JP7583573A patent/JPS5545943B2/ja not_active Expired
- 1973-07-06 GB GB334576A patent/GB1444142A/en not_active Expired
- 1973-07-06 GB GB335276A patent/GB1444149A/en not_active Expired
- 1973-07-09 IT IT51340/73A patent/IT990351B/it active
- 1973-07-09 FR FR7325068A patent/FR2192338B1/fr not_active Expired
-
1978
- 1978-11-23 HK HK682/78A patent/HK68278A/xx unknown
- 1978-11-23 HK HK680/78A patent/HK68078A/xx unknown
- 1978-11-23 HK HK681/78A patent/HK68178A/xx unknown
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 |