DE2633151A1 - Programmierbarer elektronischer rechner - Google Patents
Programmierbarer elektronischer rechnerInfo
- Publication number
- DE2633151A1 DE2633151A1 DE19762633151 DE2633151A DE2633151A1 DE 2633151 A1 DE2633151 A1 DE 2633151A1 DE 19762633151 DE19762633151 DE 19762633151 DE 2633151 A DE2633151 A DE 2633151A DE 2633151 A1 DE2633151 A1 DE 2633151A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- computer
- lda
- program
- sta
- 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.)
- Withdrawn
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Record Information Processing For Printing (AREA)
Description
Int. Az.: Case 993
Hewlett-Packard Company
PROGRAMMIERBARER ELEKTRONISCHER RECHNER
Die vorliegende Erfindung bezieht sich auf einen programmierbaren elektronischen Rechner, der sowohl von einem Tastenfeld
aus als auch durch ein Programm gesteuert werden kann, welches vom Tastenfeld oder von einem externen Magnetspeicher
aus in den Rechner eingegeben wurde.
Viele bekannte programmierbare Rechner haben schrittorientierte Speicher, bei denen der Transfer von bedingten oder
unbedingten Transferanweisungen mittels absoluten Schrittreferenzen erfolgt. Bei diesen schrittorientierten Rechnern
sind die ausgegebenen gedruckten Programmlisten schwer zu lesen, da syntaktisch eine einzelne Anweisung darstellende
Information durch Betätigung verschiedener Tasten erzeugt wird und in ähnlicher Weise auch aufgelistet wird, indem
die jeder Taste zugeordnete Information in einer gesonderten Zeile gedruckt wird.
Auch die Komplexität der mit konventionellen programmierbaren Rechnern noch lösbaren Probleme ist begrenzt wegen
der begrenzten Speicherkapazität. Manche bekannte Rechner benutzen zwar Magnetband-Speichereinheiten, in denen Programm-•segmente
und Daten für den Gebrauch während der Ausführung eines Programms speicherbar sind, wodurch die Kapazität des
Lese/Schreib-Speichers des Rechners effektiv erhöht wird. Wegen der relativ langen Zugriffszeit sind solche Magnetbandspeicher-Systeme
jedoch von begrenztem Nutzen.
709808/1025
Konventionelle programmierbare Rechner der unteren Preisklasse bieten für den Benutzer ein Kommunikationsproblem,
das darin besteht, daß der Ausgabedrucker nicht die Fähigkeit des alphanumerischen Drucks mit vollem Format hat. Bei solchen
Rechnern wäre es zum Beispiel von Vorteil, einen billigen thermischen Drucker vorzusehen, der entsprechend einem vom
Benutzer vorgegebenen Format eine Vielzahl von Zeichen und numerischen Daten drucken kann.
Konventionelle programmierbare Rechner gehen nach dem Einschalten der Stromzufuhr in einen Wartezustand, worauf der
Benutzer vom Tastenfeld aus oder von einer Magnetbandkassette aus ein Programm zur Ausführung durch den Rechner in diesen
eingeben kann. Dieses System ist insofern von Nachteil, als es vom Benutzer beträchtliche Kenntnisse über den Betrieb
des Rechners fordert. Es wäre vorteilhaft, einen programmierbaren Rechner vorzusehen, der automatisch auf das Einschalten
der Netzspannung hin ein Programm von einem externen Magnetband in den internen Speicher lädt und dies anschließend
automatisch ausführt.
Der erfindungsgemäße Rechner hat u.a. den Vorteil, daß errs
eine Magnetband-Kassetteneinheit für die Speicherung eines Programms aufweist, wobei der Benutzer eine Betriebsart für
automatischen Start wählen kann, in welcher nach Einschalten des Rechners automatisch von der Magnetband-Kassetteneinheit
ein Programm in den Rechner geladen wird und dieses sodann ausgeführt wird.
Der erfindungsgemäße Rechner kann automatisch Adressen justieren, die in absoluten Verzweigungsanweisungen vorgegeben
sind, entsprechend jeder Programmüberarbeitung durch den Benutzer
.
Der erfin*aspg«näße Rechner ist an einen X-Y-Schreiber anschließbar,
wobei am Rechner Tasten vorgesehen sind, mit
709808/1025
denen der Schreibstift des Schreibers zu einem gewünschten Punkt bewegbar ist, wobei am Rechner die Koordinaten dieses
Punktes ablesbar sind.
Der erfindungsgemäße Rechner besitzt einen Lese/Schreibspeicher
mit einer beweglichen Grenze zwischen einem Programmspeicher-Abschnitt und einem Datenspeicher-Abschnitt des Speichers, wobei
die Lage dieser Grenze durch den Benutzer definierbar ist.
Beim erfindungsgemäßen Rechner enthält der Lese/Schreibspeicher
für den Benutzer einen Programmspeicher-Abschnitt und einen davon getrennten Datenspeicher-Abschnitt, und es ist dafür gesorgt,
daß der Benutzer keine Programminformation in den Datenspeicher-Abschnitt einschreiben kann bzw. umgekehrt.
Beim erfindungsgemäßen Rechner wird die umgekehrte polnische Notation verwendet, wobei bestimmte Kombinationen von Tastenbetätigungen
einer einzigen internen Instruktion zugeordnet sind.
Beim erfindungsgemäßen Rechner lassen sich die im Speicher
enthaltenen Programme mittels eines Druckers in mehr als einer Spalte auflisten, so daß das Druckpapier besser ausgenützt
wird.
Beim erfindungsgemäßen Rechner wird eine Zweispur-Magnetbandkassetteneinheit
benutzt, und die Spezifikation aller Dateien auf dem Magnetband enthält eine Spurangabe.
Die Tastenfeld-Eingabeeinheit enthält eine Gruppe von numerischen Datentasten für die Eingabe von Daten in den Rechner,
eine Gruppe von Datenmanipuliertasten, eine Gruppe von Funktionstasten für die Auswahl verschiedener mathematischer Funktionen
und Operatoren, einer Gruppe von Speichersteuertasten für die Steuerung der Programm- und Datenspeicherbereiche des Rechnerspeichers,
eine weitere Gruppe von Steuertasten für die Steuerung des Betriebs der Lese- und Aufnahmeeinheit für die
709808/1025
Magnetbandkassette sowie eine Gruppe von vom Benutzer in ihrer Bedeutung definierbaren Tasten. Viele dieser Gruppen
von Tasten sind sowohl im manuellen Betrieb als auch im Programmbetrieb des Rechners nützlich. Außerdem nimmt jede
vom Benutzer definierbare Taste während der Programmeingabe eine zweite Bedeutung an, wodurch automatisch Funktionen
bereitgestellt werden, die unnötig sind, wenn Befehle manuell vom Tastenfeld aus ausgeführt werden.
Die Lese- und Aufnahmeeinheit für die Magnetband-Kassette enthält einen Lese/Schreibkopf, einen Antriebsmechanismus
für das Magnetband und Lese- und Aufnähmeschaltungen, die mit
dem Lese- und Aufnahmekopf verbunden sind und zwischen Magnetband und Rechner in beiden Richtungen Information übertragen,
entsprechend Tastenfeldbefehlen oder gespeicherten Programmbefehlen. Die Magnetband-Kassetteneinheit ermöglicht es dem
Benutzer, verschiedene Programmsegmente miteinander zu verketten und ermöglicht die Programmmanipulation verschiedener
Datenblöcke auf individueller Basis, wodurch der verfügbare Speicherraum wirksamer genutzt werden kann.
Die Speichereinheit enthält einen modularen Lese-/Schreibspeicher
mit wahlfreiem Zugriff, der einen festgelegten Systembereich und einen gesonderten Benutzerbereich für die
Speicherung von Programmanweisungen und/oder Daten aufweist. Der Benutzerbereich des Lese-/Schreibspeichers läßt sich
ohne Vergrößerung der Außenabmessungen des Rechners durch Einfügung von Lese-/Schreibspeichermodulen vergrößern. Der
zusätzliche für den Benutzer verfügbar gemachte Lese-/Schreibspeicher wird vom Rechner automatisch angepaßt.
Die Speichereinheit enthält auch einen modularen Festwertspeicher,
in welchem Routinen und Subroutinen aus Assemblersprache-Instruktionen für die Durchführung der- verschiedenen
Funktionen des Rechners gespeichert sind. Die im Festwertspeicher (ROM) gespeicherten Routinen und Subroutinen können
709808/1025
erweitert werden ^ um Routinen zu schaffen, die für den Anschluß
verschiedener peripherer Eingabe/Ausgabe-Einheiten .an den Rechner erforderlich sind und um einige zusätzliche
Funktionen entsprechend den speziellen Bedürfnissen des Benutzers bereitzustellen. Dies wird einfach dadurch erreicht■,
daß zusätzliche Festwertspeicher-Einsteckmodule in einen oder beide von zwei Aufnahmevorrichtungen auf der Rückseite des
Rechnergehäuses eingesteckt werden. Die zusätzlichen Festwertspeicher-Module werden vom Rechner automatisch angepaßt
und über eine Serie von Äuswahlkodes wird Zügriff zu ihnen
genommen.
Einsteck-ROMs können zum Beispiel ein Schreiber-ROM/ ein Schreibmaschinensteuer-ROM, ein allgemeines Eingabe/Ausgabe-ROM,
ein binärkodiertes De'zimal^Eingabe/Ausgabe-ROM und ein
ASCIi-Sammelschienen-ROM sein. Zusätzliche Festwertspeicher-Module
können innerhalb des Rechners auf einer gedruckten Schaltungsplatte eingesetzt werden, um zu ermöglichen, daß
der thermische iG-ZeichenHDrucker und eine Ausgabe-Schreibmaschine
Zeichen fremder Sprachen drucken können, sofern der entsprechende Zeichensatz vorhanden ist.
Die Gasentladungs-Anzeigeeinheit hat eine numerische Ausgabe
für 16 Zeichen mit jeweils sieben Segmenten zuzüglich Minus-*
Vorzeichen, Dezimalpunkt und die Fähigkeit, an ausgewählten Plätzen innerhalb der angezeigten Daten, Kommas anzuzeigen.
Der thermische 16-Zeichen-Drucker kann Nachrichten für den
Benutzer ausdrucken, zum Beispiel Fehlerbedingungen, Programmlisten sowie alle anderen vom Benutzer ausgewählten Nachrichten,
die sich aus dem verfügbaren Zeichensatz bilden lassen. Einige alphanumerische Formatbildungen können auch
beim Ausdruck einer einzelnen Informationszeile erzielt werden,
Ein peripherer Interface-Adapter (PIA) arbeitet mit der
zentralen Verarbeitungseinheit (CPU) des Rechners zusammen und hat eine duale parallele 8-Bit-Eingabe/Ausgabe mit zuge-
709808/1025
ordneter Hinweismarke/ Steuerung, Rückmeldung und Unterbrechungs-Hardware,
wodurch der CPU eine Kommunikation mit den oben genannten internen Eingabe/Aüsgabe-Einheiten
ermöglicht wird, nämlich Tastenfeld, Drucker, Anzeige und Magnetbandkassette. Mittels des PIA kann der Rechner auch
mit einer Vielzahl von externen oder peripheren Eingabe/ Ausgabe-Einheiten zusammenwirken, zum Beispiel Papierbandlesern
und -löchern, X-Y-Schreibern, Schreibmaschinen und verschiedenen Arten von Meßwert- und Datenaufnehmern. Diese
externe Eingabe/Ausgabe-Fähigkeit ist für den Benutzer über einen oder beide von zwei Eingabe/Ausgabe-Anschlüssen verfügbar,
welche sich in der Rückwand des Rechners befinden und über die die externe Eingabe/Ausgabe-Einheit mit dem
PIA über eine Eingabe/Ausgabe-Interfaceschaltung verbindbar
ist.
Die CPU kann zum Beispiel ein 8-Bit-Parallelprozessor mit
einer Taktfrequenz von 1 MHz und einer Adressierbarkeit von 65 K sein. Dieser Prozessor enthält zwei 8-Bit-Akkumulatoren,
ein 16-Bit-Indexregister, eine 16-Bit-Stapelhinweismarke und
ein 6-Bit-Bedingungskode-Register.
Im Laufbetrieb wird der Rechner durch Tastenkodes gesteuert,
die sequentiell von der Tastenfeld-Eingabe-Einheit entsprechend Tastenbetätigung durch den Benutzer empfangen werden. Diese
Tastenkodes werden innerhalb des Rechners unmittelbar nach Empfang überprüft und auf richtige syntaktische Bedeutung überwacht,
wie sie von der Rechnerspräche benötigt wird. Ein interner
Anweisungskode wird durch den Rechner aus diesen Tastenkodes erzeugt, um die vom Benutzer gewünschte Tastenfeldinstruktion
darzustellen. Dieser Anweisungskode wird dann als eine Hinweismarke auf die Adresse der im Festwertspeicher enthaltenen
Routine benutzt, welche für die Ausführung der ausgewählten Anweisung verantwortlich ist.
Im Programmbetrieb werden die vom Rechner während der Programmeingabe
erzeugten internen Anweisungskodes im Programmspeicherbereich des Lese/Schreibspeichers des Benutzers an der Adresse
709808/1025
gespeichert, die durch den jeweiligen Wert einer Benutzerprogramm-Hinweismarke
spezifiziert ist. Diese gespeicherten Anweisungen bilden ein Programm, das automatisch auf Anforderung
durch den Benutzer ausgeführt werden kann. Während der Programmeingabe kann dem Ausgabedrucker über einen Schalter
auf dem Tastenfeld der Befehl gegeben werden, eine gedruckte Liste der vom Benutzer ausgewählten Tastenfeldbefehle zusammen
mit den entsprechenden Programmadressen, bei denen der zugeordnete interne Instruktionskode gespeichert wird, zu drucken.
Da verschiedene Tastenbetätigungen innerhalb des Rechners zur Erzeugung eines einzigen internen Instruktionskodes führen
können und da der Rechner nur diese internen Instruktionskodes ausführt, kann ein komplexes gespeichertes Programm
durch den Rechner sehr wirkungsvoll ausgeführt werden, und zwar in einer kurzen Zeit.
Vom Benutzer läßt sich mittels eines Schalters ein automatischer Startbetrieb einschalten, bei dem in den Rechner automatisch
ein Programm eingegeben und vom Rechner ausgeführt wird. Dieses Merkmal erlaubt die Benutzung des Rechners durch Personen,
die mit Details seines Betriebes nicht vertraut sind und stellt eine Einrichtung zur Wiederherstellung des Rechners auf die
Arbeitsbedingungen dar, für den Fall, daß ein Stromausfall auftritt, während der Rechner unbeaufsichtigt oder von einem
unerfahrenen Benutzer beaufsichtigt ist.
Die Erfindung wird im folgenden anhand eines Ausführungsbeispiels in Verbindung mit der zugehörigen Zeichnung erläutert.
In der Zeichnung zeigen:
Fig. 1 eine perspektivische Frontansicht eines programmierbaren Rechners entsprechend der bevorzugten Ausführungsform der Erfindung;
Fig. 2 eine Draufsicht auf das Tastenfeld des Rechners gemäß Fig. 1;
Fig. 3 ein vereinfachtes Blockschaltbild der Hardware des Rechners gemäß Fig. 1;
• 709808/1025
Fig. 4 ein vereinfachtes Blockschaltbild der Firmware des Rechners gemäß Fig. 1;
Fig. 5 ein vereinfachtes Blockschaltbild der ROMs I bis 6
und des Systemsteuer-ROMs aus Fig. 4;
Fig. 6 eine Gesamtspeichertabelle, die den System- und den
Benutzer-Lese/Schreibspeicher das Basis- und das wahlweise ROM und das Einsteck-I/O-ROM der Fig. 3
und 4 zeigt;
Fig. 7 eine detaillierte Speichertabelle des System-Lese/ Schreibspeichers gemäß Fig. 3, 4 und 6;
Fig. 8 eine detaillierte Speichertabelle des Benutzer-Lese/ Schreibspeichers gemäß Fig. 3, 4 und 6;
Fig. 9 ein Blockschaltbild eines Teils der Schaltung, welche der Magnetband-Kassetteneinheit aus Fig. 3 zugeordnet
ist;
Fig. 10 ein Blockschaltbild eines anderen Teils der Schaltung, die der Magnetband-Kassetteneinheit aus Fig. 3 zugeordnet
ist;
Fig. 11 ein detailliertes Schaltbild der Filter-, Richtungserfassungs-
und Klemmschaltungen aus Fig. 9;
Fig. 12 ein detailliertes Schaltbild der Spannungsverstärkungsund
Stromverstärkungsschaltungen aus Fig. 9;
Fig. 13 ein Flußdiagramm einer Netzeinschaltroutine, die eine der Überwachungsroutinen gemäß Fig. 4 enthält; und
Fig. 14 bis 26 Flußdiagramme für die Programmlistenroutine, die im ROM 4 in Fig. 5 gespeichert ist.
Allgemeine Beschreibung
In Fig. 1 ist ein programmierbarer Rechner dargestellt, der ein Tastenfeld 10 zur Eingabe von Information in den Rechner
und zur Steuerung des Rechnerbetriebes sowie eine Magnetband-Kassetteneinheit 12 zur Aufnahme von im Rechner gespeicherter
Information auf eine oder mehrere externe Magnetband-Kassetten und zur Ladung von auf solchen Magnetband-Kassetten gespeicherter
Information in den Rechner aufweist. Der Rechner weist
709808/1025
außerdem eine Anzeige 14 für die Wiedergabe von in den
Rechner eingegebenen Daten, Ergebnisse von Rechnungen und ausgewählte alphanumerische Nachrichten auf. Weiterhin
enthält der Rechner einen alphanumerischen thermischen 16-Spalten-Drucker 16 zum Drucken von Rechenergebnissen,
•Programmlisten, vom Rechnersystem und dem Benutzer erzeugten
Nachrichten sowie von Fehlerbedingungen, die während des Gebrauchs des Rechners angetroffen werden. Alle diese
Eingabe/Ausgabe-Einheiten (I/O) sind im Rechner selbst enthalten.
Der Gesamtbetrieb der Rechner-Hardware läßt sich anhand des Blockdiagramms gemäß Fig. 3 erkennen. Die Hardware enthält
eine zentrale Verarbeitungseinheit (CPU) 100, einen Basis-Lese/Schreibspeicher 102, einen wahlweisen Lese/Schreibspeicher
103, einen Basis-Festwertspeicher 104, einen wahlweisen Festwertspeicher 105 und ein wahlweises Einsteck-I/O-ROM
110. Die unterstützende Hardware für die CPU 100 und die oben aufgeführten Speicher enthält einen Taktgenerator
und -teiler 112, eine Zyklus-ünterdrückungsschaltung 114
sowie eine Adressen-und Chip-Auswahlschaltung 116. Weiterhin
sind eine Anzeigeschaltung 118, ein thermischer Drucker 120, ein Tastenfeld 122, eine Magnetband-Kassetteneinheit 124,
eine System-I/O-Schaltung 126, ein peripherer Interface-Adapter
(PIA) 106, eine periphere Steuerausfall-Einheit für das System sowie ein Eingabepuffer 130 vorhanden. Die
CPU 100 kann einen handelsüblichen Mikroprozessor aufweisen. Die CPU 100 ist mit dem Basis-Lese/Schreibspeicher 102, dem
wahlweisen Lese/Schreibspeicher 103, dem Basis-Festwertspeicher 104, dem wahlweisen Festwertspeicher 105 und dem
PIA 106 über eine Instruktions-Datensammelschiene 108 für 8 Bits, zwei Richtungen und drei Zustände zusammengeschaltet.
Die CPU 100 kann über eine 16-Bit-Adressen-Sammelschiene
64K des Speichers direkt adressieren. Da der Rechner jedoch nur einen adressierbaren Speicher von 32 K aufweist, ist
eine 15-Bit-Adressensammelschiene 110 vorgesehen. Ein erster
709808/1025
-to -
Unterbrechungszugang IRQ an der CPU 100 wird vom Tastenfeld
122 benutzt, während ein zweiter Unterbrechungszugang NMI
von der Magnetband-Kassetteneinheit 124 über den PIA 106 benutzt wird. Zwei Taktphasen und Instruktions/Daten-Synchronisation
auf der Sammelschiene 108 werden für die CPU 100 für den dynamischen Betrieb benötigt.
Das Basis-ROM 104 und das wahlweise ROM 105 enthalten die
Firmware, die für die Bereitstellung von Daten und Instruktionen für die CPU 100 erforderlich ist. Diese beiden ROMs haben
16 384 Bits organisiert als 2 048 χ 8. Für die Ingangsetzung des Zugriffs zu einem ROM ist die Koinzidenz zweier Signale
erforderlich. Zunächst wird die Adressensammelschiene 110
dekodiert, um ein ROM-Ausfallsignal zu erhalten. Dann wird
ein mit einem phasenrichtigen Taktsignal φ2 synchronisiertes
Speicher-Startsignal erzeugt, wodurch eine Gruppe von Puffern mit drei Zuständen innerhalb des ROMs synchronisiert werden
und die Freigabe der Information, zu der Zugriff genommen wurde, auf die Instruktions/Daten-Sammelschiene 108 erlaubt
wird. Ein oder zwei wahlweise Einsteck-I/O-ROMs 110 können
in den Rechner eingeschoben werden, um zusätzliche Firmware für die Ansteuerung peripherer Eingabe/Ausgabe-Einheiten bereitzustellen.
Zu diesen Einsteck-I/O-ROMs wird vom Rechner über ein gepuffertes Eingangstor Zugriff genommen, welches auch
als Multiplexer für die Daten von peripheren Eingabe/Ausgabe-Einheiten auf die Instruktionsdaten-Sammelschiene 108 dient.
Der Basis-Lese/Schreibspeicher 102 und der wahlweise Lese/ Schreibspeicher 103 enthalten statische NMOS-Speicher für
wahlfreien Zugriff (RAMs), die 256 χ 4 organisiert sind. Der Basis-Lese/Schreibspeicher 102 des Rechners enthält einen
256 χ 8-Basisseitenanteil, der vom Rechnersystem benutzt wird, sowie einen 512 χ 8-Benutzeranteil, der für Programmund
Datenspeicherung verfügbar ist. Der Basisseiten-Anteil bzw. der System-Lese/Schreibspeicher wird von der Rechner-Firmware
als "Notizblock"-Speicher benutzt. Der wahlweise
709808/1025
Lese/Schreibspeicher 103 kann in den Rechner eingefügt werden,
um den Benutzeranteil des Basis-Lese/Schreibspeichers 102 um 1 536 Programmschritte zu erhöhen.
Daten werden zwischen der CPU 100 und den verschiedenen
Eingabe/Ausgabeeinheiten während Lese- und Schreibzyklen der CPU an vorgegebenen Speicherplätzen übertragen. Um den
Vorteil des schnellsten Instruktions-Adressierbetriebs der CPU 100 zu nutzen, werden vier Plätze innerhalb des
Basisseiten-Anteils des Basis-Lese/Schreibspeichers 102 für den Transfer von Daten zum und von dem PIA 106 benutzt.
Zwei andere Plätze auf der Basisseite werden für die Eingabe von Daten über den Puffer 130 von den verschiedenen
internen und peripheren Eingabe/Ausgabeeinheiten zur Sammelschiene 108 benutzt. Der PIA 106 gibt 12 Datenbits auf einer
Sammelschiene 132 und vier Steuerbits auf einer Sammelschiene 134 aus. Der PIA stellt auch vier Rückmeldungsleitungen auf
einer Sammelschiene 136 bereit, über die eine System-Rückmeldung zwischen der CPU 100 und den verschiedenen Eingabe/
Ausgabeeinheiten erfolgt.
Verschiedene Signale, auf die in den folgenden detaillierten Beschreibungen der verschiedenen Hardware-Blocks der Fig. 3
Bezug genommen wird, werden durch die in der folgenden Tabelle dargestellten booleschen Definitionen verdeutlicht.
709808/1025
Leitung | Aquxvalenter boolescher Ausdruck | •Al |
RPIA | Α14·Α13·Α12·Α11 | |
RRAM | Α14-Α13-Α12Ά11 | |
ADHL | RPIA -AlO ·Α9*·Α8" | GELÖSCHT DURCH CYST SCHREIBEN + φ-, |
PIA | ADHL · ÄT ·Α6 *Ä5 · AT* ÄT'Ä2 | Il |
IND | ADHL·Α7·Α6·Α5·A4·A3'Α2 | Il |
CSTNOT | PIA + IND | Il |
STMl | = VMA·φ · MPWO | Il |
STM2 R8 R7 |
STMl- Α14 · (Α13+Α12) STMl-RRAM-AlO-Ä9-Ä8 STMl · RPIA · AlO · Α9 ♦ Α8 |
Il |
RS | STMl · RPIA -AlO- Α9· Ä8" | Il |
R5 | STMl -RPIA'AIO-ÄJ'AS | Il |
R4 | STMl · RP IA'AIO' Ä9- Ä8 | Il |
R3 | STMl · RPIA- Α10· A9 · A8 | Il |
R2 | STMl · RPIA-AlO ·Α9 ·Α8 | Il |
Rl | STM!· RPIA · Ä1Ö· Ä9 ·Α8 | |
BPC | STMl · RPIA-AlO' Ä9- Ä8 | |
RO | BPC-CSTNOT | |
RAM | (R8+STM1·RPIA) · CSTNOT | |
IN | IND·BPC+STM2 | |
Tabelle 1 | ||
70 9 8 08/1025
Magnetband-Kassetten-Einheit
Der Betrieb der Magnetband-Kassetteneinheit 12 aus Fig. 4 wird nun anhand des detaillierten Blockschaltbildes gemäß
Fig. 9 bis 12 beschrieben.
In Fig. 9 ist ein detailliertes Blockschaltbild des Steuersystems für die Motordrehzahl dargestellt, welches in der
Magnetband-Kassetteneinheit 12 verwendet wird. Dieses System ist als frequenzstarre elektronische Servo-Schleife
aufgebaut, deren Eingangssignal auf ein Referenzeingangssignal eingerastet ist. Das Steuersystem für die Motordrehzahl
benutzt den Systemtaktgenerator und -dividierer 112 (siehe auch Fig. 3), um über eine Torschaltung 204 zwei
Referenzfrequenzsignale F und F^ zu erzeugen. F ist einem Signal FST zugeordnet, während Ff einem Signal FST
zugeordnet ist. F ist ein 62,5 kHz-Signal, das eine Suchgeschwindigkeit
des Magnetbandes von ungefähr 1,5 m/s erzeugt. Die Datenübertragung erfolgt bei 25 cm/s unter Benutzung
von F.-, einem 10,4 kHz-Signal. Die passende Referenzfrequenz
wird in die Servo-Schleife als F unter Steuerung der CPU 100 über eine Leitung D09 der Datenausgangssammelschiene
32 eingegeben.
Ein Servo-Motor 206 ist für den Bandantrieb vorgesehen. Die Bewegung der Antriebswelle wird in eine Rückkopplungs-Frequenzinformation
F umgesetzt mittels eines optischen Tachometers 208 mit 1 000 Linien, welches mit der Motorwelle
verbunden ist. Die dem optischen Tachometer 208 zugeordnete Schaltung enthält einen Vorverstärker und eine
zweite Verstärkerstufe 210. Der Vorverstärker enthält einen Fototransistor, der einen Strom/Spannungswandler
ansteuert. Ein verstärktes Analogsignal ATC ist wechselstrommäßig mit einem Spannungsvergleicher gekoppelt, wo-
709808/1025
durch ein TTL-Signal F erzeugt wird. Um sicher zu stellen,
daß F- eine saubere Kurvenform hat, wird eine positive Rückkopplung
verwendet.
Das Referenzsignal F und das Rückkopplungssignal F.. werden
einem Frequenzdetektor 212 zugeführt. Der Frequenzdetektor 212 vergleicht dynamisch F mit F- und erzeugt zwei TTL-Fehlerkorrekturbits
Q und Q_. Frequenzkoinzidenz bzw. -abweichung wird auf der Basis der Anstiegsflanken von Fr und
F festgestellt. Wenn zwei Anstiegsflanken von F erfaßt
werden, ohne daß dazwischen eine Ansteigsflanke von F- auftritt, ist F
> F und eine passende Fehlerbedingung wird gesetzt. Entsprechend ist, wenn mehrere Anstiegsflanken von
F_ auftreten, ohne daß dazwischen eine Anstiegsflanke von F
liegt, F < F-, und eine andere Fehlerbedingung wird gesetzt. So wird die Frequenzkoinzidenz für abwechselnde Anstiegsflanken
F und F_ festgestellt. Die AusgangssignaIe des Frequenzdetektors
werden allein auf der Basis von Frequenzdaten erzeugt und aufrechterhalten, unabhängig von der Phaseninformation.
Eine Zusammenfassung der möglichen Kombinationen von logischen Zuständen von Q und Q zusammen mit erläuternder Information
ist in Tabelle 2 gegeben. Im vorliegenden Ausführungsbeispiel sind dabei die Logikpegel so gewählt, daß eine logische Null
£0,4 Volt und eine logische Eins J£2,4 Volt entspricht.
Q Q- Erläuterung
0 0 F=F; zur Feststellung der
Frequenzabweichung wird mehr Information benötigt
1 0 Fr > F
f f 1 1 Bedingung ohne Bedeutung
0 1 Fr r Ff
709808/1025
Die Magnetband-Kassetteneinheit 12 erlaubt eine Bandbewegung in beiden Richtungen. Die Bandrichtung wird durch eine
Leitung DO10 der Datenausgabe-Sammelschiene 132 spezifiziert. Ein Signal DO10 bedeutet eine Bandbewegung in Vorwärtsrichtung,
während sein Komplement die entgegengesetzte Bandbewegung angibt. Die Leitung DO10 gibt Q und Q_ im Multiplexverfahren
auf ausgewählte Leitungen aus einer Anzahl von Steuerleitungen, die einem Multiplexer 214 zugeordnet sind. Eine Leitung FWD
koppelt Q an eine Quellensteuerungs-Eingangsleitung SRC und Qf an eine Senkensteuerungs-Eingangsleitung SNK. Eine Leitung
REV gibt Q und Q- auf die Leitung SNK bzw. SRC. Die Leitungen
SRC und SNK sind Steuereingänge für eine zweiseitige Stromquelle 216. Die zweiseitige Stromquelle 216 gibt auf die Bedingung
hin, daß die Leitung SRC logisch 1 und die Leitung SNK logisch O ist, Strom auf eine Leitung OA in ein Filter
218. Wenn die Leitungen SRC und SNK beide logisch Null sind, wird keine Korrektur veranlaßt, da Frequenzkoinzidenz vorliegt.
Unter dieser Bedingung bringt die Leitung OA den Ausgang der zweiseitigen Stromquelle 216 in einen Dreizustands-Betrieb,
und eine Leitung TRIST wird auf logisch Eins gesetzt. Der Dreizustandsbetrieb gilt auch für die Bedingung, bei denen die
Leitungen SRC und SNK beide logisch Eins sind.
Die Hauptaufgabe des Filters 218, der zusammen mit einer Richtungsfühlerschaltung 224 und einer Klemmschaltung 226
detailliert in Fig. 11 dargestellt ist, besteht darin, aus den Fehler-Stromsignalen auf Leitung OA Rauschen und Komponenten
hoher Frequenz zu· entfernen. Es ist auch wichtig für die Bestimmung der Stabilität und das dynamische Verhalten der
Servo-Schleife. Die zweiseitige Stromquelle lädt und entlädt
die Kondensatoren im Filter 218, wodurch ein dynamisches Spannungs signal entsteht, das der Richtungs fühler schaltung
214 zugeführt wird. Dieses Signal vervollständigt eine Digital/ Analog-ümwandlung vom Frequenzdetektor 212.
709808/1025
Das analoge Steuersignal auf der Leitung OA wird verstärkt und gepuffert durch einen Operationsverstärker, der eine
Spannungsverstärkerschaltung 228 enthält, die in Fig. 12
detailliert dargestellt ist. Die Spannungsverstärker-Schaltung 128 steuert eine Stromverstärkerschaltung 230 des
B-Typs an, durch welche der Servo-Motor 206 versorgt wird. Der Servo-Motor 206 kann ein Permanentmagnet-Gleichstrommotor
sein. Ein Kondensator 232 von 1 inF ist zu den Motorklemmen
parallel geschaltet, um zu verhindern, daß Bürstenstörungen auf das geerdete Motorgehäuse gelangen können.
Der Betrieb des Motordrehzahl-Steuersystems kann in einen Beschleunigungsbetrieb, einen kontinuierlichen Betrieb und
einen Bremsbetrieb eingeteilt werden.
Während des Beschleunigungsbetriebs ist die Servo-Schleife
geschlossen, jedoch nicht auf das Referenzfrequenzsignal eingerastet. Um Überbelastung des Bandes, des Servo-Motors,
des Netzteils und anderer Komponenten der Magnetband-Kassetten-Einheit zu vermeiden, ist die Verstärkung der Servo-Schleife
reduziert. Die Schleifenverstärkung ist direkt proportional zum Wert des Stroms auf der Leitung OA von der zweiseitigen
Stromquelle 216. Die Größe dieses Stroms wird durch einen Verstärkungswähler 234 festgelegt. Bevor in den Beschleunigungsbetrieb
eingetreten wird, wählt ein Signal vom PIA 106 auf einer STOP-Leitung die Bedingung "niedrige Verstärkung".
Wenn die Servo-Schleife auf die Referenzfrequenz eingerastet ist, ist der Beschleunigungsbetrieb beendet. An diesem Punkt
ist es wünschenswert, die Bandbreite der Servo-Schleife durch Erhöhung ihrer Verstärkung zu vergrößern. Die Bedingung
"hohe Verstärkung" wird wieder hergestellt, indem eine Leitung 0_ auf ein hohes Spannungsniveau gesetzt wird, was anzeigt,
daß Ff> F ist. Die Bedingung "hohe Verstärkung" bleibt solange
bestehen, bis der Bremsbetrieb beginnt.
709808/1025
Während des Bremsbetriebes wird wieder die Bedingung "niedrige
Verstärkung" gewählt, indem die STOP-Leitung auf ein
niedriges Spannungsniveau gesetzt wird. Für ein gesteuertes Abbremsen wird ein in Fig. 38 dargestellter Kodensator 240
abgetastet, um festzustellen, ob er positiv oder negativ geladen ist, und wird dann linear über die zweiseitige Stromquelle
gegen Masse entladen bzw. geladen. Die Richtungsfühlerschaltung 226 erzeugt ein 2-Bit-Ausgangssignal niedriger
Leistung FWD und REV , welches TTL-kompatibel ist. Wenn die
Spannung am Kondensator 240 größer als + 0,3 Volt ist, ist FWD, = 0 und REV = 0. Wenn die Kondensatorspannung niedriger
als - 0,3 Volt ist, ist FWD~A = 1 und REVA = 1. Wenn die Kondensatorspannung
zwischen diesen Grenzen liegt, ist FWD = 1 und REV = 0. Wird die Leitung STOP auf logisch Null gesetzt,
werden auch Q und Q auf logisch Null gesetzt. Durch diese Bedingung werden auch die Leitungen FWD und REV auf den
Multiplexer 214 geschaltet, um die Leitungen SRC und SNK zu steuern. Die zweiseitige Stromquelle 216 wird somit freigegeben,
den in Fig. 38 dargestellten Kondensator 240 gegen Erde zu laden oder zu entladen. Wenn die Kondensatorspannung soweit
reduziert ist, daß sie im Bereich von +0,3 Volt bis -0,3 Volt liegt, so daß FWD = 1 und REV = 0 ist, wird die Leitung
TRIST auf ein hohes Spannungsniveau gesetzt, und der Kondensator 240 wird auf Massepotential gehalten, bis die Stoppleitung
heruntergesetzt wird, so daß in den Beschleunigungsbetrieb eingetreten werden kann. Unabhängig von der dem Motor
206 von einer bestimmten Bandkassette entnommenen Leistung während irgendeiner Zeit während des kontinuierlichen Betriebesbleibt
der Stoppabstand nahezu konstant. Dies ergibt sich aus der Tatsache, daß eine starke Belastung eine höhere Spannung
am Motor für das Einrasten der Servo-Schleife erfordert. Eine höhere Belastung bedeutet überdies, daß der Motor bei einem
höheren Spannungspegel stehenbleibt. Daraus ergibt sich, daß das Band nach ungefähr der gleichen Strecke stehenbleibt,
unabhängig von Belastung und Spannungspegeln.
Eine Gegenbewegungsschaltung 242 hindert den Motor 206 daran, sich während der Netzeinschalt- und -abschaltzyklen des
709808/10 25
Rechners zu bewegen. Die Bewegung wird solange gehemmt,
bis sich eine Leitung MPWO auf logisch Null befindet.
Eine allgemeine Information über die Bandposition wird durch eine Konfiguration von gestanzten Löchern im Magnetband
gegeben. Diese Löcher werden durch eine Lochdetektorschaltung 244 erfaßt/ welche grundsätzlich eine Lichtquelle
und einen Fototransistor enthält. Der Fototransistor steuert ein passives Tiefpaßfilter an, an welchem die Spannung in
Beziehung zu einem festen Schwellwert an den Differenzial-Eingängen
eines Operationsverstärkers steht. Der Operationsverstärker ist als Vergleicher mit positiver Rückkopplung
aufgebaut, über eine nachgeschaltete logische Schaltung
erzeugt der Operationsverstärker ein logisches TTL-kompatibles
Signal HOL. Die Leitung HOL, eine Kassetten-Zustandsleitung CIN und eine Aufnahme-Hinderungsleitung WPR werden
invertiert und auf Leitungen D12, DlO und DIl der Dateneingabe-Sammelschiene
146 gegeben. Diese Signale werden auf ein Signal CSEN hin durch eine Kassetten-Rückmeldungsschaltung
252 ausgegeben, wenn eine Bandkassette aus der Bandkassetten-Einheit 12 ausgestoßen wird, wird die Leitung CIN auf niedriges
Spannungsniveau gesetzt. Wenn im Magnetband ein Loch festgestellt wird, wird die Leitung HOL auf hohes Spannungsniveau
gesetzt. Falls beide Bedingungen erfüllt sind, wird ein Signal auf einer Unterbrechungsleitung CBl ausgegeben.
In Fig. 10 ist ein detailliertes Blockdiagramm der Lese/ Aufnahmeschaltung dargestellt, die der Magnetband-Kassetteneinheit
12 zugeordnet ist. Für die Informationsübertragung wird ein Zweispur-Magnetkopf 254 benutzt. Eine Stromquelle
mit Schreibschutzschaltung 256 steuert den Magnetkopf 254 an. Eine Aufnahme findet statt, wenn eine der Kopfleitungen
von einer offenen Bedingung auf eine niedrige Bedingung geschaltet wird. Von der Stromquelle 256 gelieferter Strom
kann dann von der Mittelanzapfung des Magnetkopfes 254 in die ausgewählte Kopfleitung fließen, wodurch in dessen Luft-
709808/1025
spalt ein Magnetfeld aufgebaut wird. Danach wird die zweite Kopfleitung, die der ausgewählten Spur zugeordnet ist, von
einer offenen Bedingung auf eine niedrige Bedingung geschaltet. Gleichzeitig kehrt die vorher geschaltete Kopfleitung
in die offene Bedingung zurück. Der Strom fließt nun von der Mittelanzapfung in die Kopfleitung, die auf niedrigem Spannungsniveau gehalten wird. Das Feld im Luftspalt wird umgekehrt,
und das Magnetband wird mit entgegengesetzter Polarität gesättigt.
Eine Flußumkehr bedeutet ein Schreiben auf dem Band. Die Information wird auf das Band dadurch geschrieben, daß
abwechselnd niedrige und offene Bedingungen auf den Kopfleitungen erzeugt werden, die einer ausgewählten Spur zugeordnet
sind.
Eine Gruppe von Analogschaltern 260 führt die Funktion des
Schaltens der Magnetkopfleitungen durch. Eine Leseoperation benutzt die volle Spurbreite des Magnetkopfes 254, um maximale
Signalstärke zu erhalten. Die Mittelanzapfung des Kopfes wird nicht benutzt. Die Analogschalter 260 schalten die
Magnetkopf-Signale der ausgewählten Spur auf den invertierenden
bzw. nicht invertierenden Eingang eines Differential-Vorverstärkers 264. Der Vorverstärker 264 ist als Differentialverstärker
ausgebildet,um die Sperrung bei üblichem Betrieb zu maximisieren. Der Verstärkungsfaktor dieses Vorverstärkers
ist so eingestellt, daß Differenzen der individuellen Kopfcharakteristiken
kompensiert werden. Zuvor auf das Band geschriebene Flußumkehrungen erzeugen Stromumkehrungen im Magnetkopf.
Diese Stromumkehrungen erscheinen als positive bzw. negative Spannungsimpulse auf einer Ausgangsleitung AHD des
Vorverstärkers 264. Der nominelle Signalpegel auf der Leitung AHD beträgt 136 mV Spitze-Spitze.
Eine zweite Verstärkerstufe 266 mit Filter hat einen zusätzlichen Spannungsverstarkungsfaktor 20 für das Lesesignal.
Zur Störsicherung ist ein niederohmiger Eingang vorgesehen. Die Verstärkerstufe 266 ist so aufgebaut, daß sie eine gleiche
709808/1025
Verstärkung für das Signal auf der Leitung AD und für Signale hat, die an einem invertierenden Eingang erscheinen,
um die Rückwirkungssperrung bei üblichem Betrieb zu verbessern. Ein Einzelpolfilter von ungefähr 40 kHz sorgt für
eine Dämpfung der hohen Frequenzen. Das Signal auf einer Ausgangsleitung AHD2 der Verstärkerstufe 266 beträgt nominell
2,6 Volt Spitze-Spitze.
Das Ausgangssignal der Verstärkerstufe 266 wird einem Integrator 268 zugeführt. Das Ausgangssignal des Integrators
268 wird einem Komparator 286 einmal direkt und andererseits über eine Gleichstrom-Spurschaltung 278 zugeführt. Der Komperator
286 arbeitet grundsätzlich als relativer Null-Durchgangsschalter mit einem TTL-kompatiblen Ausgang.
Ein Frequenz-Verdoppler 288 empfängt das Ausgangssignal des Komparators 286 und gibt ein Signal CAl ab, das dem PIA 106
zugeführt wird.
Firmware des Rechners
Die Arbeitsweise der Firmware des Rechners ergibt sich aus Figuren 4 bis 8, den unten aufgeführten Listen der im Festwertspeicher
des Rechners gespeicherten Routinen und Subroutinen sowie aus den Flußdiagrammen dieser Routinen gemäß
Figuren 13 bis 26.
In Fig. 4 ist ein vereinfachtes Blockdiagramm der Firmware des Rechners dargestellt. Es sind ROMs 0-6 vorgesehen, die
den Basis-Festwertspeicher 104 (Fig. 3) bilden, ein ROM 7, das den wahlweisen Festwertspeicher 105 (Fig. 3) bildet,
sowie die beiden I/0-ROMs, die die wahlweisen Einsteck-I/O-ROMs
110 (Fig. 4) bilden.
Das ROM 0, auch als Systemsteuer-ROM bezeichnet, enthält eine Gruppe von Supervisor-Routinen, eine Verbindungstabelle so-
709808/1025
wie Syntaxtabellen, wie in Fig. 5 dargestellt ist. Die ROMs
1-6 enthalten verschiedene ROM-Ausführungsroutinen, wie ebenfalls
in Fig. 5 dargestellt ist. Das ROM 7 ist verfügbar für die Speicherung von Routinen und Subroutinen von zusätzlichen
Instruktionen, wodurch die Fähigkeiten des Rechners vergrößert werden können. Die wahlweisen Einsteck-I/O-ROMs 1 und 2 (Fig. 4)
enthalten Routinen und Subroutinen von Instruktionen für den Anschluß verschiedener peripherer Eingabe/Ausgabe-Einheiten
an den Rechner.
Eine detaillierte Liste der Routinen und Subroutinen von Instruktionen, die in den ROMs O und 3-6 enthalten sind
zusammen mit einer Liste der Routinen und Subroutinen, die in den beiden typischen Einsteck-I/O-ROMs speicherbar sind,
ist weiter unten angegeben. Zusätzlich sind in den Figuren 13 bis 26 detaillierte Flußdiagramme dieser Routinen und
Subroutinen gezeigt. Listen der Gleit-Mathematikroutinen (gespeichert in ROM 1) und der mathematischen algorithmischen
Routinen (gespeichert in ROM 2) sind nicht angegeben, da diese Routinen allgemein bekannt sind.
In Fig. 6 ist die Zuordnung des gesamten RechnerSpeichers
durch hexadezimale Adressen dargestellt.
In Fig. 7 ist ein detailliertes Speicherschema des Basisseiten- oder System-Lese/Schreibanteils des Basis-Lese/
Schreibspeichers 102 (Fig. 4) dargestellt. Diese Basisseite wird für die Speicherung verschiedener Informationsworte
benutzt, die von der Rechner-Firmware benutzt werden. Sie enthält einen Zustandsspeicherbereich, der von der Rechner-Firmware
benutzt wird, einen Subroutinen-Vektorstapel für die Speicherung von den Benutzer-Subroutinen zugeordneten
Rückkehradressen, einen zeitweiligen Lese/Schreib-("Notizblock"-) Speicher , ein vom Rechner und vom Drucker benutztes
Pufferregister, einen Arbeitsstapel für den Benutzer mit einem X-, einem Y-, einem Z- und einem T-Register, ein
709808/1025
Tastenfeld-Pufferregister, fünf Datenspeicher-Register A-E für den Benutzer, den Einsteck-I/O-ROMs zugeordnete Hinweismarken,
sowie verschiedene andere Hinweismarken, die von der Rechner-Firmware benutzt werden.
Fig. 8 zeigt einen detaillierten Speicherplan des Benutzerteils des Basis-Lese/Schreibspeichers 104 (Fig. 3). Dieser
Plan erläutert eine Hinweismarke EOPM, die einen Programmspeicherteil des Benutzer-Speichers von einem Datenspeicherteil
abgrenzt. Diese Grenz-Hinweismarke EOPM kann innerhalb des Lese/Schreibspeichers des Benutzers nach Wahl des Benutzers
verschoben werden, indem vom Tastenfeld aus oder unter Programmsteuerung eine Instruktion ausgeführt wird,
die weiter unten detailliert beschrieben ist. Diese Anordnung führt zu einer wirksameren Nutzung des Speichers, indem sie
dem Benutzer erlaubt, die entsprechenden Größen von dessen Programm- und Datenspeicherteilen entsprechend seinen jeweiligen
Bedürfnissen einzustellen.
Detaillierte Listen der Routinen und Subroutinen von Instruktionen
Eine komplette Auflistung in Assemblersprache der Routinen und Subroutinen von Instruktionen, die im Rechner verwendet
werden, wird nachfolgend gegeben. Die Listen enthalten die in den ROMs 0 und 3-6 gespeicherten Subroutinen sowie alle
Routinen und Subroutinen, die in einem Einsteck-I/O-ROM für
allgemeine Zwecke und in einem Schreiber-Einsteck-I/O-ROM
gespeichert sind. Jede Listenseite ist oben links für sich
(page)
numeriertrwährend sie oben in der Mitte die normale Seitenzahl
dieser Beschreibung trägt. Jede Zeile ist einzeln in der ersten Spalte von links numeriert. Diese Numerierung
erleichtert die Bezugnahme auf verschiedene Teile der Listen. Es sind auch beschreibende Überschriften vorgesehen, um
Routinen, Subroutinen, Gruppen von Konstanten, Verbindungstabellen, Routinen und Subroutinen von Einsteck-I/O-ROMs usw.
709808/1025
zu identifizieren. Jede Instruktion jeder Routine oder Subroutine und jede in den ROMs des Basis-Festwertspeichers
oder in den wahlweisen Einsteck-I/O-ROMs gespeicherte Konstante
wird in hexadezimaler Form durch 2, 4 oder 6 Zeichen
in der dritten und vierten Spalte von links dargestellt. Jede dieser Instruktionen wird detailliert verständlich im
Zusammenhang mit der vorveröffentlichten Beschreibung des Mikroprozessors Motorola MC68OO. Die hexadezimale Adresse
•des ROM-Platzes, an dem jede dieser Instruktionen oder Konstanten
gespeichert ist, ist in der zweiten Spalte von links angegeben. Durch Vergleich der in den Listen für eine bestimmte
Instruktion angegebenen hexadezimalen Adresse mit den Adressen, die den verschiedenen in Fig. 5 dargestellten
ROMs zugeordnet sind, läßt sich ersehen, in welchem der ROMs 0-6 diese Instruktion gespeichert ist.
Als symbolische Adressen oder Namen dienende Mnemoniketiketten sind in der fünften Spalte von links angegeben. In der sechsten
Spalte von links ist ein Mnemonikkode für jede der Instruktionen angegeben. Im Falle daß diese Instruktionen einen Bezug auf
einen der beiden Akkumulatoren innerhalb der CPU 100 enthalten, erscheint in der siebten Spalte von links der Buchstabe A oder
B, womit der jeweilige Akkumulator bezeichnet ist. Operanden, die entweder Etiketten oder Buchstaben sein können, welche den
Instruktionen zugeordnet sind, sind in der achten Spalte von links angegeben. Außerdem sind noch erklärende Kommentare gegeben.
Deutsche Übersetzungen der englischsprachigen Texte in den folgenden Tabellen sind im Anschluß an dieser gegeben,
jeweils unter Angabe der Tabellenseiten-(nicht Bsschreibungsseiten-)
und -zeilen-Nummern.
Auf verschiedene Abschnitte der Listen folgen außerdem Symboltabellen,
in denen verschiedene Mnemonik-Etiketten ihren hexadezimalen Werten zugeordnet sind.
709808/1025
--24
Page 1 CJBPG 06/04/75 36:54.05
00215 | 7FFE | 7Π00 | 0051 | OPT | ROUTINE | LIST.MEM | ,NG | FD8 | A | $7800 | . | POWER FAIL/RESTART VECTOR |
00218 | 1002 | NAM | POSUP | ORG | A | 57S00 | POWER ON BEGINS HE=?E | |||||
00219 | 8E | 39 | ■OPT | LISTiM£M | LDS | SISTACK | INITIALIZE STACK POINTER | |||||
00220 | «6 | 03 | ORG | S7FFE | LDA | S1002 | GET POSSIBLE TEST ROM | |||||
00221 | Pl | ' 1025 | CMP | A | «S39 | IS IT THEPE ? | ||||||
00222 | 26 | FF | BNE | A | NOTEST | BRANCH IF N)OT | ||||||
00223 | 7E | OO | AND SUPE1 | JMP | A | 51025 | ELSE LET IT HAVE CONTROL | |||||
00224 | 86 | 02 | IS THE POWER-ON SEQUENCE AMD | LDA | A | «SFF | ACCA = ALL ONES | |||||
00225 | 97 | 3C | »THE SUPERVISOR FOR CJ | STA | A | ADATA | AIO IS NOW ALL OUTPUTS | |||||
00226 | 7FFE | 97 | Ol | ■a- | STA | A | PDATA | BIO IS NOW ALL OUTPUTS | ||||
00227 | 7800 | 86 | 03 | LDA | «S3C | PR-E0ARE TO SELECT OATi PEGISTERS | ||||||
00228 | 7800 | 97 | 0000 | STA | ACTL | SELECT ADATA | ||||||
00229 | 7βΟ3 | 97 | ZO | fns-«e*POWER-ON | STA | RCTL | SELECT BOATA | |||||
00230 | 7806 | CE | 0020 | LDX | «0 | CLEAR THP ΪΜΟΕΧ | ||||||
0023! | 7803 | OF | 20 | * | STX | A | TP7 | SAVE ON BASE PAGE | ||||
00232 | 7B0A | 7C | 49 | »THIS | INC | A- | TP7 | INC THE PAGE AORS | ||||
00233 | 7800 | DE | OO | LDX | A | TP7 | RESTORF NEW INDEX | |||||
00 234 | 780F | «6 | OO | NOTEST | LDA | »»111 | GET MEMORY CHECK WORD | |||||
00235 | 7Sl 1 | A 7 | Fl | STA | R | X | STORE IN "SUPPOSEO'' «ΕΜΟΡγ | |||||
0 0?36 | 7313 | Al | 20 | CMP | X | WAS MEMORY OUT THERE ? | ||||||
00227 | 7815 | 27 | OO | BEQ | MORE | BRANCH IF YES | ||||||
00236 | 7817 | 06 | LDA | TP7 | ELSE ACCR=PAoE AO^S QF EMPTY ^iC, | |||||||
00239 | 7319 | 6F | 0005 | CLR | X | ERASE ALL OF R/'W | ||||||
00240 | 7B1C | 09 | F3 | DEX | B | |||||||
00241 | 78 IE | ac | OA | MORE | CPX | R | «5 | FINISHED YET.? | ||||
0 0242 | 7321 | 26 | BNE | R | ERASE | |||||||
00 243 | 7323 | D7 | 08 | STA | 8 | EOM | SAVE END OF WCMORY AD^S | |||||
0 0244 | 7825 | 5 A | 08 | OEC | B | BACK UD ONE PAGE | ||||||
00245 | 7827 | 07 | OC | STA | EOPM | AND END OF PRGM MEMORY | ||||||
00246 | 7829 | C6 | 08 | LDA | "soa | GET ADSS ON PAGE | ||||||
00247 | 7323 | 07 | CO | STA | EOPW+1 | INITIALIZE ALPHA ^EG. | ||||||
00248 | 78 20 | DE | OO | LDX | EOPM | GET CURRENT END POINTER | ||||||
00249 | 732F | PF | ooca | ERASE | STX | A | 101 | INITIALIZE I/O 1 | ||||
00250 | 73 30 | OF | 06 | STX | 102 | INITIALIZE I/O 2 | ||||||
0 0 251 | 78 33 | 7 C | 7A26 | INC | B | UPP | GENERATE PAGE AOPS | |||||
00252 | 7335 | 86 | 10 | LOA | H | «6 | LOAD TRACK Λ SEL. CODE | |||||
00253 | 7837 | RD | 07 | JSR | B | P0TGL1+3 | SET CASSETTE TPAC< A | |||||
00254 | 78 3 β | C6 | 02 | LDA | R | XSlO | GlT "FIXEO vqDE" RIT | |||||
00255 | 7B3A | 07 | OE | STA | A | TGL | SET TOGGLE WORD | |||||
00256 | 78 3C | C6 | 20 | LDA | A | «2. | LOAD DISPLAY POUNO MIJMHEQ | |||||
00257 | 7-ηε | 07 | 08 | STA | PNO . | SAVE IN ROUND WQRO | ||||||
002SA | 7840 | 96 | LDA | TP7' | ΛΕΤ MSR·S OF POLLING AOORESS | |||||||
00259 | 7842 | 98. | ADD | »8 | BUMP RY ONE ROM | |||||||
00260 | 7844 | |||||||||||
00261 | 7847 | |||||||||||
00262 | 7Q49 | |||||||||||
00263 | 73Ä-C | |||||||||||
O0P64 | 784E | |||||||||||
00265 | 7350 | |||||||||||
00266 | 7β52 | |||||||||||
00?67 | 7H54 | |||||||||||
00268 | 7356 | IOPOLL | ||||||||||
00269 | ||||||||||||
00270 | ||||||||||||
00271 | ||||||||||||
709808/1025
INSPECTED
- 25 Page 2 CJBPG 06/0 4/75 3.6:54.05
00272 | 7858 | 97 | 20 | MSGl | STA | A | TP7 |
00273 | 785A | 81 | 48 | CMP | A | «S48 | |
00274 | 785C | 27 | OC - | BEQ | NOI02 | ||
00275 | 735E | OE | 20 | LDX | TP7 | ||
00276 | 7860 | E6 | 02 | LDA | B | 2fX | |
00277 | 7862 | Cl | 7E | CMP | B | «S7E | |
00278 | 78 Λ4 | 26 | EE | BNE | IOPOLL | ||
00279 | 7866 | AO | 02 | JSR | 2.x | ||
00230 | 7868 | 20 | EA | BRA | IOPOLL | ||
00281 | 7<36A | DE | OS N0I02 | LDX | EOPM . | ||
00282 | 736C | OF | 54 | STX | SPGM | ||
00283 | 786E | D6 | OC | LDA | B | EOPM+1 | |
00284 | 7870. | 96 | 08 | LDA | A | EOPM | |
00285 | 7872 | CO | 50' | SUB | H | «80 | |
00286 | 7874 | 07 | OC | STA | B | EOPM+1 | |
00287 | 7376 | 82 | OO | SBC | A | #0 | |
00288 | 7878 | 97 | OB | STA | A | EOPM | |
00289 | 787A | ■56 | 06 | LDA | A | error' | |
00290 | 787C | 26 | 38 | BNE | IOERR | ||
00291 | 787E | 86 | OC | LOA | A | «se | |
00292 | 7880 | 97 | OO | STA | Δ | ΔΟΑΤΑ | |
00293 | 7882 | 96 | 04 | LOA | A | IMPUT | |
00294 | 7884 | 7F | -0000 | CLR- | AOATA | ||
00295 | 7887 | 44. | LSR | A | |||
00296 | 7888 | 25 | 3F | BCS | T0P7 | ||
00297 | 788A | HO | 5075 | JSR | BLANK | ||
0 0 298 | 7880 | CE | 005« | LOX | «BUFF | ||
002^9 | 7890 | OF | 16 | STX | TP2 | ||
00300 | 7392 | CE | 788E | LDX | ffMSGl | ||
00301 | 7895 | 80 | 57BO | JSR | LOMSG | ||
0 0 302 | 7898 | 80 | 6046 | JSR | PRTDRV+25 | ||
00303 | 789B | FE | 7D4C | LDX | $7D4C | ||
003P4 | 789E | 4F | CLR | Δ | |||
00305 | 739F | AD | OO | JSR | X | ||
00306 | 7ÖA1 | 96 | 06 | LDA | A | ERROR | |
00307 | 78A3 | ?7 | 14 | 8EO | AUTOOK | ||
00308 | 78A5 | RD | 5075 | JSR | PLANK | ||
00309 | 78 A 8 | CE | 0058 | LDX | «BUFF | ||
00310 | 78 AB | OF | 16 | STX | TP2 | ||
00311 | 78AD | CE | 54D8 | LDX | <*EMSG + SD8 | ||
00312 | 7SB0 | RD | 5780 | JSR | LOMSG · | ||
00313 | 7833 | BD | 6046 | JSR | PPTCV + 25 | ||
00314 | 7886 | 7E | 7B40 IOERR | JHP | EPR0R7 · | ||
00315 | 7889 | C6 | QO AUTOOK | LDA | R | «?B0 | |
00316 | 73B8 | 7E | 7968 | JMP | EXEC7 | ||
00317 | 78BE | 41 | FCC | /AUTO STA | |||
00318 | 78C8 | 80 | FCB | $80 |
RESTORE IT
FINISHED YET ?
BRANCH IF YES
ELSE LOAD CIJBRE'NT ROM AORS
GET THIRD ROM WORD IS IT A JMP STATEMENT ?
CONTINUE POLLING IF NOT ELSE OFFER INITIALIZATION CONTINUE POLLING
GET MODIFIED EOPM SAVE IN SPECIAL PRGM PNTR GET END PNTR
INITIALIZE 10 REGISTERS RESTORE PNTR
POWER-ON I/O ERROR ?
BRANCH IF YES
LOAD TOGGLE S.C, SENO TOGGLE SELECT CODE
GET TOGGLE CONDITIONS DISABLE THE I/O TRANSFER
SHIFT AUTO-STAPT PIT TO CARRY BRANCH IF NO AUTO START
BLANK PRINT BUFFER ELSE GET SUFFER AORS SAVE FOR "LOAD MESSAGE" GET »AUTO START" MESSAGE AORS
OO MESSAGE TO BUFFER
PRINT AUTO START GET THE "LOAD *, GO" ADDRESS
INITIALIZE ACCA CALL THE CASSFTTE ERDOR GFMERATED ?
BRANCH IF ,NOT
BLANK THE BUFFER GET BUFFER AQRS SAVE FOR "LOAD MESSAGE"
BLANK THE BUFFER GET BUFFER AQRS SAVE FOR "LOAD MESSAGE"
GET "FAILED" MESSAGE ADRS
DO MESSAGE TO BUFFER
PRINT FAILED
OUTPUT T*E SPECIFIC CASSETTE
ACCR = 11SUN" INSTRUCTION RUN !·!!!
709808/1025
INSPECTED
α ■
- 26 Page 3 CJRPG 06/04/75 36J54.05
00320 | 78C9 | OE | - | CC | «· | - | ALPHA | ENABLE INTERRUPTS | IT7 | - | B | X | ERROR OR "OP" CONDITION ? |
00321 | 78CA | 4F | C6 | «■ | S0L7 | ERR7 | ERRO»! GO TO EP.RO=» HANDLER | ||||||
00322 | 78C1I | 97 | Il | A | Wl | RESET ALPHA MODE | TSRCH7 | GET CURRENT SEARCH TABLE ADRS | TPl | SAVE TABLE ADDRESS | |||
00323 | 78CD | 97 | 10 | A | W2 | CLEAR SINGLE OP LOCATIOM | TGL | BACK STEP KEY ? | IT7 | GET TARLE STARTING aO«S | |||
00324 | 78CF | 97 | 13 | A | DCNTR | CLEAR RCD ACC. - " " | TSRCH6 | BRANCH IF NOT AND SEARCH | «MT | MAIN TA8LE? | |||
00325 | 78Dl | 97 | 80 | A | #0200 | CLEAR BCD ACC. | BWM | ELSE CHECK MODE | FIX | NO, CONTINUE | |||
00326 | 7893 | 97 | C7 | A | S0L7+1 | CLEAR PLA=SR DIGIT COUMTER | #MT | BRANCH IF PRGM MODE | B | TGL | ELSE CHECK MODE | ||
00327 | 78D5 | «6 | 00C6 | A | «S0L7 | BIT 7=1 ■ | T0P7 | ELSE DO "OOPS" | |||||
00328 | 7807 | 97 | CA | «»»«THE SUPERVISOR FOLLOWS. IT IS THE | A | . UIP | INIT SECOND BYTE | X | ANY PREFIX KEYS HIT 7 "' | ||||
00329 | 7809 | CE | 7E00 | .»»««CONTROL SECTION FOR THE ENTIRE MACHINE | A | #MT | GET SINGLE OP LOC ADDRESS | &TERMN7 | BRANCH IF YES AND FORSET T^1EM | ||||
00330 | 78DC | DF | 03 | IT7 | PLACE IT IM THE INST CNTR | TFND7 | PUT T^L ENT^Y INTO ACC3 | ||||||
00331 | 78DE | CE | 7A64 | » | SDISPl | GET MAIN TABLE ADDRESS | «377 | TRL TESMINATOP? | |||||
00332 | 79Ξ1 | DF | T0P7 CLI | SAVE IN INDEX TEMP | GO TO "TE=*"INATOR FOUViD" | ||||||||
00333 | 78E3 | 9D | CLR | GO TO DISPLAY DRIVER | MFND7 | MASK OFF Z VS8'S | |||||||
00334 | STA | X | MATCH FO'JVD? | ||||||||||
00335 | STA | WAS AVAILABLE» ITS CODE IS RETURNED | TW0B7 | YES! GO TO »MATCH FOUND" | |||||||||
00336 | 03 | STA | 4CCUMULATOR | no: continue | |||||||||
00337 | OC | STA | 1 BYTE FOLLOVS | ||||||||||
00333 | 78ES | DE | OC | STA | INC INDEX | ||||||||
00339 | 78E3 | Sl | 07 | LDA | A | TSRCH7 | |||||||
00340 | 73EA | 26 | 03 | STA | |||||||||
00341 | 78EC | 06 | 7973 | LDX | 8 | -CONTINUE SEARCHING | |||||||
00342 | 7 a Ec | 2 R | 7E00 | STX | |||||||||
00 343 | 78P0 | -7 E | Dl | LOX | » "TBL TERMINATOR FOUND" IS HANDLED HERE | ||||||||
003<*4 | 73F3 | ftC | 00 | STX | » | ||||||||
00345 | 73F6 | 26 | 3D | NK7 JSR | TFND7 INX | ||||||||
0G345 | 78F^ | E6 | OE | « | B | LOA | |||||||
00347 | 78 P Λ | Cl | 3F | *" IF A KEY | B | BMI | |||||||
00343 | 73-cC | 27 | «IN THE A , | STX | |||||||||
00349 | 78FE | C4 | 30 | B | LDX | ||||||||
00350 | 7901 | Il | 00 | LDX | CPX | ||||||||
00351 | 7901 | 27 | 01 | CMP | BNE | ||||||||
00352 | 7903 | ftD | BNE | LDA | |||||||||
00 353 | 7905 | ?A | LDA | ||||||||||
00354 | 7907 | 08 | * | BMI | |||||||||
00 355 | 7905 | 08 | EC | JMP | |||||||||
0 0 356 | 7909 | 08 | TSRCH6 CPX | ||||||||||
00357 | 7904 | 20 | BNE | ||||||||||
00358 | TSRCH7 LDA | ||||||||||||
00359 | CMP | ||||||||||||
00360 | 00 | BEQ | |||||||||||
00361 | 790C | 08 | IB | AND | |||||||||
00362 | 790D | E6 | 14 | CBA | |||||||||
00363 | 790- | ?R | D3 | BEQ | |||||||||
00364 | 7911 | OF | 7E00 | TST | |||||||||
00365 | 7913 | OE | OA | BPL | |||||||||
00366 | 7915 | ac | 07 | INX | |||||||||
00367 | 7913 | 26 | TWOS7 INX | ||||||||||
00368 | 791A | 06 | INX | ||||||||||
00 369 | 8RA | ||||||||||||
00370 | |||||||||||||
00371 | |||||||||||||
00372 | |||||||||||||
00373 | |||||||||||||
00374 | |||||||||||||
7 0980 8/102
OfIiQiNAL i^SPEQTID
Page 4 | CJ8PG | 2A | 06/04/75 | 06 | ·■ | 02 | FIX | 36:54 | • | 27 - 05 |
CONTINUE IF RUM MOOE |
00 375 | 791C | OE | 14 | 14 | BPL | FIX | ELSE RE-LOAD INDEX | ||||
00376 | 791E | 08 | 00 | LDX | TPl | INCREMENT OVER THE ^UN MQOE | |||||
00377 | 7920 | 08 | 03 | .INX | "OR" CONDITION | ||||||
00378 | 7921 | 20 | CC | ERR7 | INX | GET THE NEW TBL AORS | |||||
00379 | 7922 | OE | 7F | BRA | FIX+2 | RESTORE TBL AORS | |||||
00380 | 7924 | EE | 06 | EJSR7 | LOX | TPl | GET THE NEW TPL AORS | ||||
00381 | 7926 | OF | 78 40 | » | LOX | X | SAVE IN INDEX TEMP | ||||
00382 | 792* | 20 | STX | IT7 | CONTINUE SEARCHING | ||||||
00383 | 792A | C4 | BRA | TSRCH7 | MASK OFF THE "N" BIT " | ||||||
00384 | 792C | D7 | MFND7 | AND | β | «S7F | SAVE IN ERROR WORD | ||||
00385 | 792E | TE | 00 | STA | β | ERROR | GO TO ERROR OUTPUT ROUTINE | ||||
00386 | 7930 | JMP | ERR0R7 | ||||||||
00387 | |||||||||||
00388 | IE | ||||||||||
00 389 | A6 | ||||||||||
00390 | 7933 | 08 | OC | L7. | LDA | A | X · | ||||
00391 | 7935 | 40 | 3F | INX | TEST TBL ENTRY | ||||||
0 0392 | 7936 | 2R. | 00 | TST | A | BIT 7=1 | |||||
00393 | 7937 | 48 | . | BMI | PARTI7 | GET BIT 6 (7=0) | |||||
0 0 394 | 7939 | 2R | ASL | A | GO TO IMHEDIATF. EXECUTE | ||||||
00395 | 793 A | 86 | 03 | BMI | IMEX7 | GET ADRS HI | |||||
0 0 396 | 79 3 C | E6 | 04 | LOA | A | mn | GET TBL ENTRY | ||||
00 397 | 793E | 58 | 98 | I ME X 7 | LDA | B | X | DOUBLE IT . | |||
00398 | 7940. | 4.9 | 00 | ASL | 8 | SHIFT C INTO MSW | |||||
00399 | 7941 | 97 | C6 | CONT | ROL | A | RESTORE MSW | ||||
00400 | 7942 | 07 | C6 . | STA | A | IT7 | RESTORE LSW | ||||
0 0401 | 7944 | 20 | 07 | STA | B | IT7 + 1 | GO GET NEW KEY | ||||
00402 | 7946 | E6 | 16 | BRA | NK7 | GET THE INST CODE | |||||
00403 | 7943 | 07 | 4EC8 | LDA | B | X | STOPE IN SINGLE OP LOC | ||||
00404 | 794A | 06 | 24 | OART17 | STA | R | S0L7 | ACCR=THE INSTRUCTION | |||
00405 | 794C | 96 | LDA | B | S0L7 | PROGRAM MOOE? " | |||||
00406 | 794E | 2A | 05 | LDA | A | TGL | no: go execute | ||||
0 0 407 | 7950 | 80 | 00 | 8PL | EXEC6 | ELSE STOPE INSTRUCTION | |||||
00408 | 7952 | 20 | JSR | STC0D7 | WRAP IT UP ! | ||||||
00^09 | Γ955 | 48 | 00 | PARC07 | BRA | BWM | SIT 6=? | ||||
00410 | 7957 | 2B | C6 | ASL | A | yes: partial cooe operation | |||||
0 0411 | 7958 | EE | 00 | BMI | PARCD7 | FOR PARTIAL EXECUTION | |||||
00412 | 7 95 A | 4F | C6 | LDX | X | ||||||
00413 | 795C | 6E | CLR | A | DO "PARTIAL EXECUTION" | ||||||
00414 | 7950 | D6 | 04 | ε χ et 6 | JMP | X | GET SINGLE OP WORO | ||||
00415 | 795F | EB | 5C31 | EXEC 7 | LDA | R | S0L7 | AOD THE PARTIAL CODE | |||
00416 | 7961 | 07 | BE | ADD | B | X | RESTORE IT | ||||
00417 | 7963 | 08 | STA | B | S0L7 | ||||||
00418 | 7965 | 20 | 15 | _ | INX | GO FORM NEW TRL ADRS | |||||
00419 | 7966 | RO | 8RA | L7 | AUDIT TRAIL ? | ||||||
0 0420 | 7968 | «6 | 14 | JSR | AUDIT | GET PAGE OFFSET AND C | |||||
00421 | 796B | 58 | 14 | LDA | A | «®276 | DOUBLE ACCB | ||||
00422 | 7960 | 07 | 00 | ASL | R | STORE IM LS WORD | |||||
00 423 | 796E | 49 | 00 | STA | B | TPlS | SHIFT IN C | ||||
00424 | 7970 | 97 | 00 | ROL | A | RESTORE MS WORD | |||||
0 0 425 | 7971 | OE | STA | A | TPl · | GET TRL AORS | |||||
00426 | 7973 | EE | LDX | TPl | GET ROUTINE AORS | ||||||
00427 | 7975 | B6 | LDX | X | CLEAR ACCA (BUT MOT C) | ||||||
0 0428 | 797 7 | AD | LOA | A | *0 | GO EXECUTE IT! - " | |||||
00429 | 7979 | JSR | X | ||||||||
709808/1025
ORiQINAL INSPECTED
Page 5 CJBPG 06/04/75 36:54.05
00430 | 797B | 7F | " | OOOF | BWM | CLR | B | DIGFLG |
00431 | 797E | C6 | 80 | LDA | B. | £!*>20 0 | ||
00432 | 7980 | 07 | OO - | STA | R | STKFLG | ||
00433 | 7982 | 06 | 06 | RWM2 | LOA | ERROR | ||
00434 | 7984 | 26 | AA | BNE | EJSP7 | |||
00435 | 7986 | DE | CA | LDX | UIP | |||
00436 | 7988 | 08 | INX | |||||
00437 | 7989 | OF | CA | STX | 8 | UIP | ||
00438 | 798B | E 6" | OO | CDA | A | X | ||
00439 | 7980 | 96 | C8 | LDA | A | UIP + 1 | ||
00440 | 798F | 90 | OC | SUB | A | EOPM+1 | ||
00441 | 7991 | 96 | CA | LDA | A | UIP | ||
00442 | 7993 | 92 | OB | SBC | EOPM | |||
00^43 | 7995 | 2A | 15 | BPL | A | MAW | ||
00444 | 7997 | 96 | 09 | LDA | RSFLG | |||
00445 | 7999 | 23 | OO | BMI | A | EXEC7 | ||
00446 | 799B | 48 | ASL | |||||
00447 | 799C· | 2A | OB | BPL | A | TT7 ' | ||
00448 | 799E | 96 | 12 | LDA | SFLG | |||
00449 | 79A0 | 26 | 04 | BNE | A | SS | ||
00450 | 79A2 | 96 | OO | LDA | STKFLG | |||
0 0 451 | 79A4 | 27 | C5 | BEQ | EXEC7 | |||
0 0 452 | 79A6 | BD | 4800 | SS | JSR | RSEX | ||
00453 | 79A9 | 7E | 78C9 | TT7 | JMP | R | TOP7 | |
00454 | 79AC | C6 | 07 | MAW | LDA | B | H7 ' | |
00455 | 79AE | D7 | 06 | STA | ERPOR | |||
00456 | 79B0 | CE | 0100 | LDX | f*256 | |||
0.0457 | 7983 | DF | CA | STX | UIP | |||
00458 | 7985 | 20 | CD | BRA | BWM2+2 | |||
00459 | ||||||||
00460 | ||||||||
00461 | ||||||||
00 462 | 4flOO | RSEX | EQU | S4800 | ||||
00463 | 4EC8 | STC0D7 | EQU | S4EC8 | ||||
00464 | 5C31 | AUOIT | EQU | S5C31 | ||||
CLEAR DIGIT ENTRY FLG MSB=I
ENABLE STACK LIFT GET ERROR WORD' yes; print error
get user inst. pointer point to next instruction save the update get the next user instruction
check validity of new pointer
by doing (uip)-(eopm) · "
ERROR IF INVALID AORS SHOULO WE STOP ? BRANCH IF NOT
GET »ARE DOING» BIT RETURN TO TOP IF STOPPED
ELSE GET STEP FLAG BRANCH IF STEPPIMG ELSE CHECK STACK FLAG CONTINUE IF LIFT DISARLED
ELSE STOP THE PROGRAM GO BACK TO THE KEYBOARO LOAD ERROR
SAVE IN ERROR LOC.
GET USER STATE 0 RESET INST PNTR PRINT THE ERROR
709808/1025
ORtGiNAL IMSPECTED
Page 6 ejÖPG 06/0 4/75 36:54.05
NAH RDKEY2
OPT . LiSTtMEM
00469 | 7937 | 96 | 00 | ο | IS THE INTERRUPT SERVICE ROUTINE | WILL BE | THE KEY WHICH | IS ENTERED AT · ' | CHANGE DETECTED BETWEEN | THERE IS A DIFFERENCE THEN THE | ADAfA | 3/4/74 |
00470 | 7939 | 8 A | IF | Sf | * TO PROCESS A KEYBOARD INTERRUPT* | STORED IN THE BUFFER | CURRENT CONDITION OF | * (TGL) AND THE CURRENT SETTINGS THE R-REG | WHAT BITS CHANGED AND THE | «S1F | ||
00471 | 7938 | 97- | 00 | "· ROKEYl | « THE KEYCODE FOR | LOCATION CBKWRT+Π+BKKC, IF THE | * THE TOGGLE SWITCHES IS REAO. | * IS CLEARED* IF | * NEW SETTINGS ARE STORED IN TGL. | ADATA | ||
00472 | 7930 | 96 | 04 | * ■ " IS DOWN | IS NOT FULL» | * IF THERE IS NO | * B-REG REFLECTS | O | INPUT | GET CURRENT I/O SELECT | ||
0 0 473 | 793F | 43 | * AREA AT | ROUTINE | SELECT THE KEYBOARD (SAVE CASS. | |||||||
00474 | 79C0 | 44 | * BUFFER | THEN THE | « BRAD MILLER | OUTPUT -IT | ||||||
00475 | 79Cl | 44 | -* IF THIS | ■» | INPUT THE K-EYCODE | |||||||
00476 | 79C2 | 06 | 00 | * RDTGLl | «· | ADATA | INVERT THE BITS | |||||
0 0 477 | 79 C 4 | C-4 | FO | ROKEYl LOA "A | #SF0 | MOVE THEM TO LSB»S | ||||||
0 0478 | 79C6 | 07 | 00 | ORA A | ADATA | |||||||
00479 | 79C8 | Π 6 | D5 | STA Δ | FLAG | GET I/O SELECT | ||||||
ÖO 480 | 79CA | C5 | 0 2 | LDA A | #2 | MASK OFF THE KEYPCiPO | ||||||
0 0 481 | 79CC | 27 | 19 | . COM A | N0PE2 | DISABLE THE KEYBOARD | ||||||
00482 | 79CE | Pl | 25 | LSR A | CASSETTE PUNNING ? | |||||||
00 483 | 7=00 | 26 | CC | LSR A | YES3 | TEST BIT 1 | ||||||
00484 | 7902 | 7r | 0 006 | LÖA R | TPOS | BRANCH IF ,NOT | ||||||
00 485 | 7905 | 78 | 0009 | AND '8 | PSFLG | R/S KEY ? | ||||||
00486 | 79OB | 7 A | 0 009 | STA P | RSFLG | BRANCH IF NOT | ||||||
00487 | 7908 | 7 E | 6 IBE | LDA B | TRNOFF | ELSE RESET Ti=E POSITION POINTER | ||||||
00488 | 7 99 E | Rl | OA | BIT R | «*ΙΛ)12 | ZERO TO MS3 OF | ||||||
00489 | 79E0 | 26 | 12 | BEO | YESl-I | RUN/STOP FLAG | ||||||
0 0 490 | 79Ε2 | D 6 | 0 9 | CMP A | RSFLG | TUPN OFF CASSETTE | ||||||
00491 | 79E4 | 2* | IE | 8NE | YES2+3 | SET FLAG KEY ? | ||||||
00492 | 79Ε6 | 3P | CLR | RETURN IF NOT | ||||||||
00493 | 79Ε7 | D6 | 09 | ASL | RSFLG | PROGRAM RiJ.VMISG ?: | ||||||
00494 | 79Ε9 | 81 | 25 | LSR | #1045 | BRANCH IF YES | ||||||
00495 | 79EB | 27 | 08 | JMP | YESl | ELSE RETURN | ||||||
00496 | 79ED | «1 | OA | YES3 CMP A | »fa 12 | GET THE »UN/STOP FLAG | ||||||
O0497 | 79EF | ?7 | 10 | BNE | YE S 2 | RUN/STOP KEY ? | ||||||
00498 | 79Fl | 58 | LOA 8 | yes; go process | ||||||||
00499 | 79 F 2 | 2A | 17 | BMI | NOPE | SET FLAG KEY ? | ||||||
00500 | 79F4 | 33 | RTI | yes; go process | ||||||||
0050 1 | 79F5 | 53 | NOPE2 LDA R | PROGRAM RUNNIMG ? | ||||||||
00502 | CMP A | BRANCH IF MOT | ||||||||||
00503 | BEQ | ELSE IGMO»E THE KEY | ||||||||||
005Π4 | CMP A | ZERO TO MS« | ||||||||||
00505 | BEQ | |||||||||||
00506 | ASL B | |||||||||||
00507 | BPL | |||||||||||
00503 | RTI | |||||||||||
00509 | YESl ASL B | |||||||||||
0 0510 | ||||||||||||
0 0511 | ||||||||||||
00512 | ||||||||||||
00 513 | ||||||||||||
00514 | ||||||||||||
00515 | ||||||||||||
0 0516 | ||||||||||||
OpS 17 | ||||||||||||
00518 | ||||||||||||
00519 | ||||||||||||
00520 | ||||||||||||
00521 | ||||||||||||
7Ö98Ö8/1025
!NSPEGTEO
Page 7 CJBPG 06/04/75 36:54.05
0 0522 00523 00524 00525 00526 00527 00528
00529 0 0530 00531 00532 D0533 00534 00535 00536 00537
00538 00539 00540 00541 0054-2 00543 00544 00545 00546
00547 00548 00549 00550 00551 00552 .00553 00554 00555
00556 00557 00558 00559 00560 00561 00562 00563 00564 00565 00566 00567 00568 00569
00570 00571 00572 00573 00574 00575 00576
79F6 79F7 79F9 79FB 79FD 7A00 7A0L 7A02
7A04 7A06 7A08 7A0A 7A0B 7A0D 7A0F 7A11
7A13 7A15 7A17 7A19 7AlB
7AlD 7AlF 7A20 7A22
7A23 7A24 7A26 7A28
7A2A 7Δ23 7A2E 7A2F 7A31 7A33 7A35 7A36 7A38
7A3A 7A3S 7A3D
54
07 C5 CO 27 7F 0012 3B 50
2A 86 93 08-97
38
81 27 C6 BF 04 D7
D6.B9 Cl OC 27 OE B8 A7 BA
5C
07 B9 38
OF
86 OC 97 OO
96 43
7F 0000
OE
06
C4 IF
84 EO
18
Q6
97 17
D8 39 61BE -
7A3E 7A3F 7A40 06 7A42 C4 FC 7A44 20 EF
7A46
LSR B OF RUN/STOP FLAG
.STA B RSFLG RESTORE NEW FLAG
BIT B «SCO SHOULD WE BUFFER THE KEY
BEQ NOPEl BRANCH IF YES AND BUFFER
CLR SFLG RESET STEP FLAG
RTI ELSE RETURN
YES2 TST B CHECK RUN/STOP FLAG
BPL NOPE CONTINUE IF B7=0
LDA A «S80 PRESET ACCA
EOR A UFLG TOGGLE FLAG 8
STA A UFLG RESTORE THE FLAGS
RTI RETURN FROM THE INTERRUPT
MOPE CMP A «1513 STEP KEY ?
BEQ NOPEl BRANCH IF YES
LDA B tfSBF PRESET ACCB
AND B UFLG CLEAR ENTRY FLAG
STA B UFLG RESTORE FLAGS
NOPEl LDA R 8KWRT+1 LOAD WRITE POINTER
CMP B #12 IS BUFFER FULL ?
BEQ PDKEY3 YES» IGNORE KEY AND RETURN
LDX BKWRT NO»LOAD WRITE POINTER
STA A BKKCX STORE KEYCOOE IN NEXT LOCATION
INC B INCREMENT WRITE POINTER FoP NEXT
STA B RKWRT+1 STORE UPDATED WRITE POINTER
R0KEY3 RTI RETURN FROM- INTERRUPT
* TOGGLE SWITCHES ARE READ HERE
RDTGLl SEI
LOA A a$C
STA A AOATA
LOA A INPUT
COM A
CLR AOATA
CLI
LDA R TGL
AND B SSlF
AND A f*«EO
ROT ABA
LDA B TGL STA A TGL T8A
EOR B TGL • RTS
TRNOFF EQU S61BE DISABLE IMTERPUPTS
LOAD TOGGLE SELECT CODE
OUTPUT THE SELECT CODE
INPUT THE TOGGLE CONDITIONS
INVERT THE BITS
DISABLE THE I/O TRANSFER
RE-ENABLE INTERRUPTS
LOAD OLD CONiOITIONS
MASK OFF TRIG AND FORMiT
MASK OFF AUTO-STAPT ANO FORMAT
COMRINE NEW WORD
GET OLD CONDITIONS
STORE THE NEW CONO IT IONS
SAVE OLO CONDITIONS
ACCb=CHANGEO BITS
RETURN
«ROUTINE TO SET DEGREES, RADIANS. GPADS
RADS
GRAOS
DEGS
ROL A ROL A LOA B ANO B BRA TGL GET OLD SETTING tfSFC MASK OFF OLD '-ODE
RDT INVOKE NEW SETTING
FIXED ROL A 70-9808/1025
PageS CJBPG 06/04/75 36S54.05
00577 | 7A47 | 49 | SCI3 | ROL | A | TGL |
00578 | 7A48 | 49 . | SCI | ROL | A | #SE3 |
00579 | 7A49 | 49 | ROL | A | ||
00580 | 7A4A | 49 | ROL | A | TGL | |
00581 | 7A48 | 06 07 | LDA | B | UIP | |
00582 | 7440 | C 4 £3 | ANO | 8 | ||
00583 | 7A4F | 18 | ABA | UIP | ||
00584 | 7A50 | 97 07 | STA | A | X | |
0 0585 | 7 A 52 | OE CA | LOX | «9 | ||
00586 | 7A54 | 08 | INX | RD7 | ||
00587 | 7 A 55 | DF CA | STX | RNO | ||
&0588 | 7-A57 | A6 00 | LDA | A | ||
00589 | 7A59 | 81 09 | CMP | A | S7C5C | |
00590 | 7Λ58 | 22 02 | BHI | DEGS > | ||
00591 | 7A5D | 97 OE | STA | A | S7C7C | |
00592 | 7A5F | 39 | RD7 | RTS | GRADS | |
00593 | 7C5C | ORG | RA-DS | |||
0 0 594 | 7C5C. | 7Δ40 | FOB | S7D76 | ||
0 0595 | 7C7C | ORG | FIXED | |||
00596 | 7C7C | 7A3F | FDB | scr | ||
00597 | 7C7E | 7A3E | FDB | SCI3 | ||
00598 | 7076 | ORG | S7FF8 | |||
00599 | TD 76 | 7A46 | FDB | RDKEYl | ||
00600 | 7078 | 7AA8 | FOB | |||
00601 | 7D7A | 7A47 | FOB | |||
00602 | 7FF8 | ORG | ||||
00603 | 7FFR | 7987 | FDB | |||
GET OLD DISPLAY MODE MASK OFF OLO SETTING
INVOKE NEW SETTING SAVE THE UPOATE
GET THE INSTRUCTION POINTER MOVE AHEAD ONE SAVE THE UPOATE GET THE ROUNO SETTING
LARGER THAN 9 ?
IGNORE IT? RAM/INSTRUCTION FAILURE SAVE IT
RETURN r
709-808/1025
Page 9 CJBPG 06/04/75 36:54.05
00606 | 7Α60 | 86 | - | -- | • NAM | DISPLAY | THAT WILL DRIVE THE | KEY AFTER EACH CHARACTER | PASS (16 CHAR.) THRU THE | 8UILT (IF POSSIBLE) ANO | MAY 7t | 1974 | OOD # DISABLES PAUSE | ELSE TERMN. INSERT |
00607 | 20 | OPT | »OISPLAY WHILE WAITING FOR THE NEXT KEY. | »OISPLAYED AND WILL READ THE TOGGLE SWITCHES | THE SWITCHES HAVE CHANGED» A MOOE | RESULT IN A PE-FORMATTING | SAVE PAUSE FACTOR | RESET THE SYSTEM | ||||||
00608 | 86 | ORG | LISTtMEM | »IT WILL CHECK FOR A | »AFTER EACH COMPLETE | RESULT IN TERMINATION OF THE . | »OF THE DISPLAY BUFFER. | IS A KEY AVAILABLE ? | RESTORE OLD CONDITIONS | |||||
00609 | 97 | S7A60 | »OISPLAY. IF | »PREVIOUS CODE BEING | » | . #$40 | GET PAUSE FACTOR | BRANCH IF YES | WIPE OUT THE »ETIJRN | |||||
00610 | 06 | »THIS IS THE | »CHANGE WILL | »A FORMAT CHANGE WILL | »BRA0 MILLER | SDISP1+2 GO SAVE IT | INITIALIZE DISPLAY ?UFFER | VECTOR ANO TERMINATE | ||||||
00611 | 26 | POUTINE | » | #t 1 | KEY BUFFER EMPTY ? | THE PREVIOUS 0PFG4TT0N | ||||||||
00612 | RD | β | TP4 | BRANCH IF YES | ||||||||||
00613 | D6 | PAUSE LDA A | RKWRT+1 | disable Interrupts | ||||||||||
00614 | 27 | BRA | SDISP3 | DECREMENT KEY POINTER | ||||||||||
00615 | OF | SDISPl LDA A | FRMTl. | LOAD THE CURDENT KErcODE | ||||||||||
00616 | 7Α | STA A | BKWRT+1 | PRESET LOOP COUNTER | ||||||||||
00617 | 96 | LOA B | SDISP2 | iX LOAD THE ^EXT KEYCOOE | ||||||||||
00618 | CE | BNE | ι X RESTORE IT IN MEw LOCATIO | |||||||||||
00619 | Ε6 | 40 | SDISPC JSR | RKWRT+1 | IS LOOP COMPLETED? | |||||||||
00620 | Ε7 | 02 | SOISPO LDA B | BKKC " | no: keep dropping «:;fffr | |||||||||
00621 | 08 | 01 | BEQ | #-11 | YES· RE-EMABLt INTE=RU=TS | |||||||||
00622 | 7460 | 26 | IA | S0ISP3 SEI | BKKC+12 | RETURN | ||||||||
00623 | 7Α62 | OE | 39 | DEC | BKKC+Il | READ THE TOGGLE SWITCHES | ||||||||
00624 | 7Α64 | •39 | 07 | LOA A | BRANCH IF MO MODE C"AN\3E | |||||||||
00625 | 7Α66 | ►3D | 4Ε09 | LOX- | S0ISP4 | PAUSING 0» DISPLAYING ? | ||||||||
00626 | 7Α6* | 2Α | R9 | S0ISP4 LDA P | ||||||||||
00627 | 7Α6Α | 05 | 1.2 | STA B | IGNORE THE CHANGE IF PAUSING | |||||||||
00628 | 7A6C | 54 | INX | PDTGLl | GET IMST BEING SUILT | |||||||||
00529 | 7A6F | 24 | 0089 | BNE | SDISP7 | 2 BYTE IMST ? | ||||||||
00630 | 7Α71 | 06 | BA | CLI | TP4 | BRANCH IF YES | ||||||||
00631 | 7Δ73 | Cl | FFF5 | D4USE1 RTS | WIPE OUT THE | |||||||||
00632 | 7Α76 | 22 | C6 | SDISP2 JSR | SDISP7 | OLD RETURN VECTOR | ||||||||
00633 | 7Α77 | 31 | C5 | BPL | S0L7 | INSERT MOOE SET ? | ||||||||
00634 | 7Α79 | 31 | LDA B | «P276 | SDISP6-3 BPANCH IF NOT | |||||||||
00635 | 7A7C | 96 | F9 | LSR B | SDISP6 | INSERT | ||||||||
00636 | 7Α7Ε | 27 | BCC | T0P7 | ||||||||||
00637 | 7A8Q | 7Ε | LDA P | TGL | ||||||||||
00636 | 7Α81 | 7Ε | 7Δ23 | CMP B | TA | |||||||||
00639 | 7AR3 | 97 | IE | BHI | ||||||||||
00640 | 7AQ& | 31 | IA | INS | OECPT | |||||||||
00641 | 7 Αί>5 | 31 | INS | |||||||||||
00642 | 7Α83 | 7Ε | 19 | LDA A | ||||||||||
00643 | 7ASA | C6 · | BEO | |||||||||||
00644 | 7ABC | BE | JMP | |||||||||||
00645 | 7 A 80 | OC | JMP | |||||||||||
00646 | 7ABF | S0ISP6 STA A | ||||||||||||
00547 | 7Α91 | INS | ||||||||||||
0064P | 7Α93 | 52 | INS | |||||||||||
00649 | 7Δ95 | 03 | JMP | |||||||||||
00650, | 7Α96 | 4F4q | ||||||||||||
00651 | 7Α97 | 78C9 | ||||||||||||
00652 | 7ΑΟ9 | 07 | ||||||||||||
00653 | 7Α99 | |||||||||||||
00654 | 7Α9Ε | |||||||||||||
00655 | 7AAl | 4Α22 | ||||||||||||
00656 | 7ΑΑ3 | |||||||||||||
00657 | 7ΑΑ4 | |||||||||||||
00658 | 7ΑΔ5 | |||||||||||||
00659 | ||||||||||||||
00660 | ||||||||||||||
709808/1025
ORIGINAL !MSPEOTED
Page 10 CJBPG—06/04/75 36:54.05
00661 | 7AA8 | 86 | OE | SDISP7 | LDA | A | «SE |
00662 | 7AAA | CE | 0058 | .LDX | «BUFF | ||
00663 | 7AAD | DF | 16· * | STX | TP2 | ||
00664 | 7AAF | DE | 16 | SOISP8 | LDX | TP2 | |
00665 | 7ABl | E6 | OO | LOA | R | X | |
00666 | 7A83 | 07 | IB | STA | B | TP4S | |
00667 | 7 A BS | C4 | 7F | AND | B | «$7F | |
0 0 668 | 7AB 7. | CO | 20 | SUB | B | «S2D | |
0 0669 | 7AQ9 | 24 | 02 | BCC | S0ISP9 | ||
00670 | 7ABB | C6 | 02 | LDA | B | #2 | |
00671 | 7AB0 | 08 | S0ISP9 | INX | |||
00672 | 7ABE | DF | 16 | STX | TP2 | ||
0 0 673 | 7AC0 | CE | 7813 | LDX | »DSPTBL | ||
00674 | 7AC3 | DF- | 18 | STX | TP3 | ||
00 675 | 7AC5 | OB | 19 | ADD | B | TP3S | |
00676 | 7AC7 | 07 | 19 | STA | B | TP3S | |
00677 | '7AC9 | DE | 18 | LDX | TP3 | ||
00678 | 7AC9 | C6. | FF | LOA | B | #SFF | |
0 0 679 | 7ACD | 07 | 02 | STA | e | BOATA | |
00680 | 7ACF | C6 | 3C · | LDA | B | #S3C | |
00681 | 7A01 | D 7 | 03 ■ | STA | B | BCTL | |
00682 | 7AO3 | 97 | OO | STA | A | ADATA | |
0 0 683 | 7Λ05 | .C6. | 04 | LDA | 8 | «4 | |
00684 | 7AO7 | SA | SDISPF | DEC | 8 | ||
0 0685 | 7 A 08 | 26 | FD | BNE | SDISPF | ||
00686 | 7AOA | E-f, | OO | LDA | B | X | |
0 0 687 | 7ADC | 07 | 02 . | STA | B | BDATA | |
00688 | 7ADE | 06 | IB' | LDA | B | TP4S | |
00689 | 7AE0 | 2A | 04 | BPL | SOISPO | ||
00690 | 7AE2 | C6 | 34 | LOA | B | «534 | |
00691 | 7AE4 | 07 | 03 | STA | R | RCTL | |
0 0 692 | 7 AE 6 | 88 | 10 | SOISPD | AOD | A | «MO |
00693 | 7ÄE8 | ?4 | 16 | BCC | SDISPA | ||
00694 | 7AEA | C6 | 16 | LOA | R | f*22 | |
00695 | 7AEC | BD | 48A.0 | JSR: | WAIT . | ||
0 0696 | 7AEF | 53 | COM | B | |||
00697 | 7AF0 | D7 | 02 . | STA | R | BDATA | |
00698 | 7AF2 | 5F | CLR | B | |||
00699 | 7AF3 | D7 | OO . | STA | B | ADATA | |
00700 | 7AF5 | 7A | OOIA | DEC | TP4 | ||
00701 | 7AF8 | 7 A | OOIA | DEC | TP 4 | ||
00702 | 7AF3 | ?7 | 87 | BEQ | PAUSEl | ||
00703 | 7AFD | 7E | 7A-6F | JMP | SDISPO | ||
00704 | 730 0 | C6 | 09 ■'-■ | SDISPA | LDA | 8 | #9 |
00705 | ■7302 | «0 | 4BA0. | JSR | WAIT . | ||
0 0 706 | 7805 | 06 | B9 | LOA | β | BKWRT+1 | |
0 0 70 7 | 7B07 | 27 | A6 | BEQ | SDISP8 | ||
00708 | 7809 | 7F | O OO O | CLR | ADATA | ||
00709 | 7BOC | C6 | 3C | LDA | B | «S3C | |
00710 | 7B0E | 07 | 03 | STA | R | BCTL | |
00711 | 7Ö10 | 7E | 7A73 | JMP | SDISP3 | ||
00712 | « | ||||||
00713 | »««»««< | >«««( | :h/ | IRACTER O | |||
00714 | β . | ||||||
00715 | «ALL ENTRIES | MUST BE |
LOAD DISPLAY S.C. INOEx=RUFFER ADDPFSS
SAVE BUFFER ADDRESS GET LATEST BUFFER ADORESS
FETCH THE ASCII CHARACTER SAVE IT FOR COMMA CHECK MASK OFF COMMA INOICATOPCMSB)
REMOVE ASCII OFFSET CONTINUE IF "LEGAL" COOE ELSE LOAD ''3LANK" «Y OEFAULT
INC BUFFER POINTER ' ' SAVE UPDATED VALUE
SET INDEX TO CHAR DECODE TBL SAVE ΓΝ TEMP AOD CHAR OFFSET TO T8L AOPS
RESTORE NEW ADDRESS RESTORE THE INDEX ACCB=11BLANK"
TURN OFF THE SEGMENTS PRESET ACCB
TURN OFF THE COMMA OUTPUT S.C. AND CHAR PNTR LOAD "SEGMENT ON» WAIT COUNTER OECREMENT IT CONTINUE THE LOOP GET THE NEW SEGMENT INFO OUTPlJT SEGMENT INFORMATION GET THE ORIGINAL CHARACTER BRANCH IF NO COMMA ELSE LOAD CO^MA CODE (CB2) LIGHT THE COMMA INC» THE CHARACTER POINTER CHECK FOR A NEW KEY LOAO LAST DIGIT WAIT GO WAIT
TURN OFF THE COMMA OUTPUT S.C. AND CHAR PNTR LOAD "SEGMENT ON» WAIT COUNTER OECREMENT IT CONTINUE THE LOOP GET THE NEW SEGMENT INFO OUTPlJT SEGMENT INFORMATION GET THE ORIGINAL CHARACTER BRANCH IF NO COMMA ELSE LOAD CO^MA CODE (CB2) LIGHT THE COMMA INC» THE CHARACTER POINTER CHECK FOR A NEW KEY LOAO LAST DIGIT WAIT GO WAIT
TURN OFF CHARACTER
DISABLE DISPLAY PAlJSE=PAUSE-2
RETURN IF ZERO ELSE CONTINUE DRIVING LOAD DIGIT "ON" TIUE
KEY BUFFER EMPTY ?
BRANCH IF YES ELSF DISARLE OISPLAY*
PRESET ACCB
TU»N OFF TH£ COMMA · GET NEW KEY ANO RETURN
TU»N OFF TH£ COMMA · GET NEW KEY ANO RETURN
DECODE TABLE««*»*»»«*«·
709&08/1025
Page 11 CJBPG 06/04/75 3.6:54.05
00716 | 7813 | * | FO | * | 0375 | SEGMENT | - | . |
00717 | 7814 | FE | 0376 | .GtOEC. PT. IM 8ITS | ||||
00718 | 7B15 | FF | »A <.'0" ENABLES A GIVEN | 0377 | ROM FOR POWER CONSID | |||
00719 | 7816 | 03 | P3 | — | ||||
00720 | 7817 | 9F | Θ237 | |||||
00721 | 7818 | 25 | »COOING IS AtB»CtD»E.F | 045 | BLANK | |||
00722 | 7819 | OD | » | @15 | O | |||
0O723 | 7BlA | 99 | OSPTBL FCB | 0231 | 1 | |||
00724 | 7BlB | 49 | FCB | Pl 11 | 2 | |||
00725 | 78 IC | 41 | FCB | (aiOl | 3 | |||
00726 | 7810 | IF | FCB | 037 | 4 | |||
00727 | 781E | 01 | FC8 | Pl , | 5 | |||
00728 | 781F | 09 | FCB | 6 | ||||
00729 | 7820 | 31 | FCB | 361 | 7 | |||
00730 | 7821 | 63 | FCB | a 143 | 8 | |||
00731 | 7822 | FD | F"C8 | 19375 · | 9 | |||
00732 | 7823 | 11 | FC8 | @·21 | P | |||
00733 | 7B24 | FD | FC8 | <s>375 | C | |||
00734 | 7B25 | E3 | FCB | Θ343 | — | |||
00735 | 7B26 | 01 | FC8 | «1 | A | |||
00736 | 7B27 | E3 | FCB | ®343 | — | |||
00737 | 7828 | FO | FCB | f5>3?5 | L. | |||
00738 | 7829 | 73 | FCB | P163 | 8 | |||
00739 | 782A | 21 | FCB | s>>41 | L | |||
00740 | 7B2B | 43 · | FCB | «0103 | — | |||
00741 | 782C | FD | FCB | ®375 | R | |||
00742 | 7B20 | Il | FCB | &21 | E | |||
00743 | 7B2E | E3 | FCB | »343 | G | |||
00744 | .732F | 31 | FCB | @61 | - | |||
00745 | 7830 | 91 | FC8 | ω221 | A | |||
00746 | 7831 | 11 | FCB | (021 | L | |||
00747 | 7332 | Fl | FCB | ®361 | P | |||
00748 | 7833 | 00 | FCB | O | H | |||
00749 | 7834 | 61 | FCB | ei4i | A | |||
00750 | 7835 | 74 | FCB | rai61 | INSERT CHARACTER | |||
00751 | 7836 | 87 | FCB | R207 | ALL SEGMENTS AND OP | |||
00752 | 7337 | 83 | FCB | 0203 | Έ | |||
00753 | 7B38 | Cl | FCB | ®301 | F | |||
00754 | 7839 | B5 | FCB | B205 | J | |||
00755 | 4BA0 | FCB | S4BA0 | U | ||||
00756 | FC8 | B | ||||||
00757 | FCB | ANOTHER | D | |||||
00758 | FCB | |||||||
00759 | 48A0 | 5A | FCB | |||||
00760 | 48Al | 26 FD | FC8 | WAIT | ||||
00761 | 48A3 | 39 | FCB | |||||
00762 | . . ORG | |||||||
00763 | ||||||||
00764 | 4F4B | «WAIT LOOP IN | S4F4B | |||||
00765 | 4ΕΌ9 | $4E09 | ||||||
00766. | WAIT ' DEC B | |||||||
00767 | BNE | |||||||
00768 | RTS | |||||||
00769 | ||||||||
00770 | ||||||||
INSERT EOU | ||||||||
FRMTl EQU | ||||||||
7098Ό8/102 5
■ - 35 -
Page 12 CJ8.PG 06/04/75 36:54.05
00771 4A22 DECPT
00772 7052
00773 7DS2 7A60
00774 7068 ■
00775 7068 7A84
00776 7C00
00777 7CÖ0 -7AS4
00778 7D74
00779 7D74 7A84
EQU | S4A22 |
ORG | $7052 |
FDB | PAUSE |
ORG | S7D68 |
FOB | . PAUSE! |
ORG | S7C0O |
FOB | PAUSEl |
ORG | $7074 |
FOB | PAUSEl |
7 0 9 8 86/1025 OBieiHAL SHSPECTEO
Page 13 CJBPG 06/04/75 36:54.05
00782 00783 00764 00785 00786 00787 00788
00789 00790 00791 00792 00793 00794 00795 00796 00797 00798 00799 00800
00801 00802 00803 00804 00805 00806 00807 00808 00809 00810 00811
00812 00813 00814 00815 00816 00817 00818 00819 00820
00821 00822 00823 00&24 00825
00826 00327 00828 00829 00830
00R31 00832 00833 00834 00835 00836
7B40
ROMID | NAM | ERROR | |
TOALPl | OPT | LI ST»MEM«NG | |
ORG | S7840 | ||
5300 | EOU | S5300 | |
51A7 | EQU | S51A7 | |
7340 D6 7842 7B43 2A 7845 D6 7B47 Cl 7849
7848 Cl 7B40 784F Cl 7851 7953 C6 7955
7357 7359 785A DA 785C D7 785E 7F 7B61 7E
7B64 7F 7-367 OE
»THIS IS THE ERROR OUTPUT ROUTINE. IT ACCEPTS
«AN ERROR NUMBER IN THE 3ASE PAGE LOCATION "ERROR"
«AMD OUTPUTS THE ASSOCIATED ALPHA MESSAGE TO
»THE THERMAL PRINTER (REGARDLESS OF "PAPER OUT" RlT)
»ALL MAINFRAME ERROR NUMBERS ARE POSITIVE ANO
»SIMPLY SPECIFY THE NUMBER IN THE LIST OF MESSAGES.
«FOR EXAMPLE? 1 MEANS THE FrRST ENTRY, 2 MEANS T"E SECOND AN
»SO ON. THE MSB OF THE FIRST CHARACTER OF EACH ENTRY
»IS SET TO INDICATE ITS START.
■a·
»ALL I/O DEVICE ERROR NUMBERS ARE NEGATIVE AND THE
»ROM ID NUMBER IS CONTAINED IN BITS 86 THRU 84.
»BITS 83 THRU BO CONTAIN THE TABLE OFFSET AS DESCRIBED
»ABOVE FOR MAINFRAME ERRORS. NOTICE THAT
»I/O ROMS ARE RESTRICTED TO NO MORE THAN
»15 ERROR MESSAGES.
«MAINFRAME EPROPS 1 THRU 5 ARE MASKABLE IN A »RUNNING PROGRAM. IF USER FLAG 6 IS SET WHEN
»THEY OCCUR« FLAG 5 WILL BE SET AND THE PROGRAM »WILL CONTINUE PUNNING.
«ERROR ZERO IS A SPECIAL ERROR GENERATED 9Y THE «SYNTAX TABLES WHICH IS USED TO TERMINATE NUMERIC
«ADDRESSES UPON RECEIPT OF A NON-NUMERIC
<EY« ■»
«WRITTEN BY BRAD MILLER
09
26 06 05 08 OE 04 10 11 20 08 OB
08
08
0006
79P6
0009
CA
ERR0R7 LOA B ASL BPL LDA CMP B 8LS CMP B
8EO CMP BNE
MSKABL LDA B BIT B 8EO LSR B ORA B STA B
CLR JMP
CNTT . CLR LDX
PSFLG GET RUN/STOP FLAG
RUNNING?
CNT BRANCH IF NOT
ERROR GET ERROR NUMBER
#5 MASKABLE ERROR
MSKABL BRANCH IF YES
Ö14 MASKABLE ERROR
MSKABL BRANCH IF YES
«16 MASKABLE EROOR
CNTT 8RANCH IF NOT
*S20 LOAO FLAG 6 BIT
UFLG FLAG 6 SET ?
CNTT 8RANCH IF NOT
ELSE PRESET ACCB
UFLG SET US1ER FLAG
UFLG RESTORE FLAGS
ERROR CLEAR OUT ThE ERROR
PIWM2+4 CONTINUE RUNNING P°GM
RSFLG STOP RUNNING
UIP GET CURRENT PRGM AORS
709808/10
ORfGiNAL !MSPEGTED
Page 14 CJBPG 06/04/75 36:"54.-05
00837 00838 0 0839 ' 0-0840
00841 o"o842 00843 0 0844 00845 00846 .00847
00843 00 849 00850 00851 0085?
00853 008-54 00855 00 856 0ÖR57 00858 00859
00 860 00861 00862 00863 0 0864 00P.65 0 0 8A6
00867 0 0H68 00869 00 870 00871 0 0 872. 00873 00874
00 875 00876 00 87 7 00Ö78
00879 00880 00881 00882 00883
00884 00885 00886 00887 0 0388
00889 00B90 00891
7B69 7B68
7860 7B6F 7870 7B73 7875
7B77 7878 787 A 7B7C 7B7E 7380.
7882 7B..83
7B85 7B86 7889 78 8 A 788C 7B8E
788F 7891 73 9
7897 78 9 7B9C 78 9 E 7BA0
78A2 78A5 7BA 78A9 7(3 A
73A0 7BAF 7350 7 BB 7384
7885 7387 7BR9-738
A 7380 7HC0 78C2
78C4 7BC7 54 5400 54 5408 54 5415 5416
OF C8
06 06 CNT
26 U -
OF
CE 0008
E6 89 KBl
E7 BA
09
26 F9
97 BA
06 B9 Cl OC
2C 5C
07 B9
OE C3
7E 4A22
4F EOUT
97 B9
97 OF
43
97 OD
RD 5D75
CE 0058
OF
CE 53FF
96
2A OF
84
BO 5300
C6 74 ■■ ■ · ·
07
DE
96
84 OF
MAINF
ο a
E6 OO 2A FB 4A
26 F8 9 7
SO 57B0
RO 6046
96 CC
26
7E 78C9
7E 51A7 TAl
CF 56 03 51 C4 49
EMSG
STX
LDA
BNE
SEI
LDX
LDA
STA B
OEX
BNE
STA A
LDA R
CMP
BGE
INC
STA R
CLI
JMP
CLR A
STA A
STA A
COM A
STA A
JSR
LOX
STX
LDX
LDA A
BPL
AND A
JSR
LDA
STA R
LDX
LOA A
AND A
INX
LOA
BPL
DEC A
BNE
STA A
DEC A
JSR
JSR
LDA A
BNE
JMP
JMP
ORG
FCB
FCC
FCB
FCC
FCB
FCC
UPP
ERROR EOUT
#11
PKKC-I »X BKKCX
KBl
RKKC
RKWPT+1
#12
CB
8KWRT+1 DECPT
BKWRT+1 DIGFLG
STKFLG PLANK
TP
«EMSG-1
ERROR
MAINF
PS70
ROMIO
«$74
TlO
TIl
ERROR
*$F
MAINF
MAINF ERROR
LDMSG
PRTDRV+25
ALPHA
TAl
T0P7
TOALPl
55400 SAVE IN PRGM PNTR GET ERROP NUMBER BRANCH IF NOT ERROR
DISARLE KEY INTERRUPT
PRESET LOOP COUNTER
GET «BOTTOM'· KEY MOVE IT 0OWN DECREMENT POINTER/COUNTER
CONT IF NOT FINISHED PUT THE OLD KEY BACK ON TOP
GET THE WRITE INDICATOR BUFFER FULL ? BRANCH IF YES ELSE REGISTER THIS ENTRY
SAVE THE NEW INOICATOR RE-ENARLE THE INTEPPIJPT SYSTEM
TERMINATE THE PPEVIOUS INSTRUCTION PRESET ACCA
EMPTY KEY BUFFER TERM. DIGIT ENTRY
ENABLE STACK LIFT BLANK THE BUFFER PRESET POINTER FOR THE LOAD MESSAGE ROUTINE
6ET ERROP MESSAGE TABLE POINTER GET THE ERROR
8RANCH- .IF MAINFRAME ERROR. ELSE MA$K OFF I/O IO NUMRER
GENEPATE ROM ADDRESS GET ERROR TABLE OFFSET SAVE IN POM IO TEMP (LSB1S)
INOEx=ERROR TABLE iORS-1
ACCA=ERROR
ACCA=TARLE OFFSET NUMBER
RUMP THE TAf'LE SFASCH AOOPESS
GET CURRENT ENTRY CONTINUE LOOKING IF POSITIVE ELSE DEC. OFFSET NUMBER
CONTINUE IF ITS NOT THE ONE CLEAR ERROR WORD MAKE ACCA NON-ZERO FOR LDMSG
ERROR NOTE TO BUFFER
PRINT THE ERROR ALPHA MODE ? BRANCH IF YES
ELS?. RETURN TO TOP OO "TO ALPHA" · '
/VERFLOW/
SD
/QRT OF MEG V/
$C4
/!VISION 9Y ZERO/
9*08/102
INSPECTED-
5425 | CC | 06/04/75 36:54. | - 38 - | SCC | |
5426 | 4F | FCB | 05 | /OG OF # <=0/ | |
5431 | CE | FCC | see | ||
Page 15 cj<3P6 | 5432 | 4F | FCB | .0 I/O DEVICE. | |
00892 | 543E | C9 | FCC | $C9 | |
00393 | 543F" | 4C | FCB - | /LLEGAL ARGUMENT/ | |
00894 | 544E | CO | FCC | SCO | |
00895 | 544F | 45 | FCB | /EMORY OVERFLOW/ | |
00896 | 5450 | CC | FCC | SCC | |
00897 | 545E | 41 | FCB | /ABEL NOT FOUND/ | |
0 0898 | 546C | C7 | FCC | SC7 | |
00899 | 5460 | 4F | FCB | /OSUB OVERFLOW/ | |
00900 | 547A | CO | FCC | SCO | |
00901 | 547B | 49 | FCB | /ISSING G0SU8/ | |
00902 | 5487 | C3 | FCC | SCB | |
00903 | 5488 | 45 | FCB | /EY NOT DEFINED/ | |
00904 | 5496 | C9 | FCC | $C9 | |
00905 | 5497 | 40 | FC8 | /MPROPER SYNTAX/ | |
00906 | 54A5 | CO | FCC ' | SCD | |
00907 | 54A6 | 49 | FCB ■ | /ISSING FOR STMT/ | |
0O908 | 5485 | C3 | FCC | SC3 | |
00909 | 5496 | 48 | FCB | /HECKSUM ERROR/ | |
00910 | 54C3 | C6 | FCC | SC6 | |
00911 | 5-C4 | 49 | FCB | /ILE TOO SMALL/ | |
00912 | 54Dl | 06 | FCC | S06 | |
00913 | 5402 | 45 | FCB | /ERIFY FAILEO/ | |
00914 | 54OE | 07 | FCC | SD7 | |
00915 | 540F | 52 | . FCB | /RONG FILE TYPE/ | |
00916 | 54E0 | C6 | FCC | SC6 | |
00917 | 54EE | 49 | FCB | /ILE NOT FOUND/ | |
00<?1β | 54F3 | C5 | FCC | *C5 | |
00919 | 54FC | 4E | FCB ' | /NO OF TAPE/ | |
00920 | 5506 | C3 | FCC | SC3 | |
00921 | 5 = 17 | 41 | FCB | /ARTRIOGE OUT/ | |
00922 | 5513 | OO | FCC | 500 | |
00923 | 5514- | 52 | FCB | /ROTECTED TAPE/ | |
00924 | 5521 | 03 | FCC | SD3 | |
00925' | 5522 | 45 | FCB | /ECURED MEMORY/ | |
00926 | 552F | CF | FCC | 1BCF | |
0 0927 | 553.0 | 55 | FCB | /UT OF PAPER/ | |
00923 | 553B | C9 | FCC | SC9 | |
00929 | 553C | 4C | FC3 | /LLEGAL ADDRESS/ | |
00930 | 554A | 80 | FCC | SRO | |
00931 | FCB | ||||
00932 | |||||
00933 | |||||
00934 |
7 0 9 8 0 8 / 1 0 2 S
ORIGINAL SMSPECTED
. . ■ - 39 -
Page 16 CJBPG 06/04/75 36:54.05
END
■SYMBOL TABLE
AOATA | 0000 | ACTL | 0001 | BOATA | 0002 | BCTL | 00 0 3 | INPUT | 0004 | IOIN | 0 00 5 |
ERROR | 0006 | TGL | 0007 | UFLG | 0008 | RSFLG | 0009 | EOM | OOOA | EOPM | OOOB |
STKFLG | OCOD- | RND | OOOE | DIGFLG | OOOF | W2 | 0010 | Wl | 0011" | SFLG | 0012 |
DCHTR | 0013 | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | OO IS |
TP3S | 0019 | TP4 | 001A | TP4S | 0018 | TP5 | OO IC | TP5S | 001O | TP6 | 001E |
TP 6S | 001F | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0023 | TIl | 0024 |
TlO | 0025 | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | T 5 | 002A |
T4 | 0028 | T3 | 002C | T 2 | 002D | Tl | 002E | ISTK | 002F | ISTACK | 0 051 |
TA | 0052 | SPGM | 00 54 | EXTRA | 0056 | BUFF | 0 058 | PEAL | 0068 | IMAG | 0070 |
ATI | 0078 | ΔΤ2 | 0080 | W | 0088 | XR | 0090 | YR | 0098 | ZR | OOAO |
TR · | 0ÖA3- | LSTX | OOBO " | 8KWRT | 00B8 | BKKC | 'OOBA | S0L7 | 00C5 | UPO | 0 0C8 |
UIP | OOCA | ALPHA | OOCC | 101 | OOCD | 102 | 0000 | IT7 | 0003 | FLAG | O0D5 |
TPOS | 0006 | FILE | 0007 | AR | 0 0D8 | BR | OOEO | CR | O O £3 | OR | OOFO |
ER | 00F3 | SDBB | OOBA | MT | 7EjOO | Τ"πμμ7 | 003D | IMED | 0040 | PARCO | OOCO |
PAPEX | 0 03 0 | NTBL | 0000 | DOTS | 5ECO | PHTOPV | 602D | FRMT | 5CA8 | BLANK | 5D75 |
LDMSG | 57BD | ROLLD | 5582 | ROLLU | 57Fl | PSD | 55DA | TXL | 55E9 | ST<UP | 55EF |
MAO | 749R | CMP | 74AA | NOR | 74D6 | TXW | 74?4 | TXXR | 743-3 | EXXH | 7452 |
ARSR ' | 753B | OVUMF | 75B6 | OVERF | 75DD | XRO | 740Δ | XPNINE | 75 C 3 | IJN=DRF | 75Fl |
IMULT | 76B9 | ODG | 7669 | FPA | 75FC | FPS | 75F6 | FPM | 7735 | F°0 | 7793 |
FPAEX | 7630 | FPMEX | 7730 | LSHIFT | 7521 | ZEROx | 7489 | XZEROO | 7416 | XZER02 | 7417 |
RECIP | 7 3E6 | TXRX | 73F3 | CONST · | 680 0 | FPDBRC | 6898 | TApM | 68Δ9 | ATN | 69C3 |
DSZERO | 6 A 46 | NTLN | 6A58 | EXPN | 6AC9 | SIN | 6Β9Δ | COS | 639A | ASlN | 68F2 |
ACOS | 6BF7 | PHl | 6C5D | PH2 | 6C8D | PH3 | 6034 | PH4 | 6000 | LSFT8 | 6E47 |
SORT | 6E65 | ΜΑΟβ | 6F2C | CMP8 | 53E4 | IOUPX | 6F52 | LOGlO | 6FA 7 | YUPX | 6FE9 |
RTOP | 7328 | PTOR | 7386 | NOTEST | 7800 | MORE | 781C | EPASE | 7M20 | rOPOLL | 7 H 54 |
N0IO2 | 7B6A | IOERR | 7866 | AUTOOK | 7R89 | MSGl | 783E | TOP7 | 78C9 | .\j<7 | 78E3 |
TSRCH6 | 73F3 | TSPCH7 | 78F8 | T WO B 7 | 79 0 8 | TFND7 | 790C | FIX | 79 24 | EP07 | 79^C |
EJS»7 | 7 93 0 | MFND7 | 7933 | L7 | 793C | IMEX7 | 794« | CONT | 7QiC | ΡΑΡΠ7 | 7'-)57 |
PARCD7 | 795F | EXEC6 | 7968 | EXEC7 | 796B | RWM | 797B | R WM 2 | 798? | SS | 7-M 6 |
TT7 | 7 9A9 | MAlV | 79AC | RSEX | 4800 | STC0D7 | 4."ECS | .AUO I T | 5C.31 | RPKEYl | 79'3 7 |
YES3 | 79DE | N0PE2 | 79E7 | YESl | 79F5 | YE S 2 | 7AOl | NOPE | 7Α0β | NO0El | 7 Al 5 |
R0KEY3 | 7Λ22 | RDTGLl | 7A23 | ROT | 7A35 | TRNOFF | 61RE | PADS | 7A3E | GRADS | 7 AJr |
OEGS | 7A40 | FIXED | 7A46 | SCI3 | 7 A 47 | SCI | 7A48 | R07 | 7A5F | PAUSE | 7Λ60 |
SOISPl | 7Δ64. | SDISPC | 7A6C | SOISPO | 7A6F | SDI-SP 3 | 7A73 | SOISPi. | 7A7C | PAUStTl | 7Λ84 |
S0ISP2 | 7A85 | S0ISP6 | 7AAl | SDISP7 | 7AA8 | SDISP8 | 7A4F | S0ISP3 | 7ΔΒ0 | SHIS?*7 | 7 AO 7 |
SOISPO | 7AE6 | SOISPA | 7ROO | DSPTBL | 7B13 | WAIT | 4f?A0 | INSERT | 4F4R | FPMTl | 4E09 |
DECPT | 4 A 32 | ROMIO | 5300 | TOALPl | 51A 7 | FRRÜR7 | 7340 | MSK-A8L | 7953 | CNTT | 7Ö64 |
CNT | 736B | KBl | TB 7 3 | CB | 7885 | EOUT | 7B89 | MAIMF | 7RaF | TAl | 78C7 |
EMSG | 540 0 |
TOTAL ERRORS
?01
157 NAM CJTBLS «»«TERROR 213
177 EQUl Γ EQlJ STIl-MT »««,-»ERROR 213
184 EQU12 EQU ST12-MT
««««ERROR 213 187 EOUl 3 EOlI ST13-MT
213
7 0 9 8-08/1025
OBiGlMAL SUSPECTED
191 EQU14 EQU ST14-MT »»»»ERROR 213
203 EQU22 EQU ST22-MT ««««ERROR 213
PAfT FQIIl EQU STl-MT
»»»«ERROR 213
264 EQU2 EQU ST2-MT.
»»»»ERROR 213
265 EQU16 EQU TT2-MT »»»«ERROR 213
268 EQU3 EQU ST3-MT
««»«ERROR 213
271 EQU4 EQU ST4-MT
««■««■error 213
287 EQU5 EQU ST5-MT »«•««ERROR 213
288 EQU20 EQU ST20-MT
««««ERRO.R 213
309 EQU7 EQU ST7-MT «»««ERROR 213
310 EQU15" EQU TTl-MT ««««Et?ROR 213
372 EQU6 EOU Sf6-HT ««tt-=ERROR 213
43β EQU21 EOU ST21-MT
«»««ERROR 213
544 EQU17 EQU TT3-MT
««««ERROR 213
553 EQUie EQU TT4-MT
««»«ERROR 201
NAM PLABR RROR 201
fl56 -^AM UOF
««»«ERROR 201
932 MAM OTBL
709808/102 5 ORIGINAL INSPECTED
Page 18 cjSPG 06/04/75 36:54.05
00154 00157 00158 00159 00160 00161 00162 00163 00164
00165 00166 00167 00168 00169 00170 00171 00172 00173 00174 00175 00176 0 0177
00178 00179 0 0180
00181 001>T2 00133 00184
00185 .00186 00187 00138
00139 00190 00191 00192 00193 00194 00195
00196 00197 00198 00199 00200 00201
00202 00203 00204 00205 00206 00207 00208 00209 00210
7BCA
79CA 73CB
73CC 73CD 73CE 78CF 7SO0
7301
73D2 7BD3
7304 73D5 7306
7BD.7 7308 78D9 73D,4
7t309 78DC 730D
73OE 73DF 7BEl 7SE2
73E4 73E5 78E6
7BE7
DO
EO
0168
84
51
B3
52
49
13
0170
0178
8C
D3
OOAC
55
5C
OO
62
3D
61
A6 ■
A4
4F43
A3
4F60
0040
20
50
3D
OPT LIST.MEM
NAM CJTRLS
OPT LIST»DB16»MEM
ORG S78CA •o
»FOLLOWING"ARE THE KEY SYNTAX TABLES FOR CJ. ' ·
»THESE TABLES« ALONG WITH THE SUPERVISOR SFARCH »ROUTINEf DEFINE THE KEY SEQUENCES RECEIVED FROM
»THE KEYBOARD. THERE ARE FOUR POSSIBLE ACTIONS THAT •»CAN BE TAKEN UPON FINDING Δ MATCH WITH THE
»CUPRENT KEYCODE: 1) IMMEDIATE EXECUTION' OF A FUNCTION
»2> RESET TO A NEW TABLE FOQ FURTHER SEARCHING
«3) JUMP TO A GIVEN ADDRESS AND EXECUTE SOME
»INTERMEDIATE CODE 4) ADD A "BUILDING" CODE TO THE «INSTRUCTION REGISTER AND RESET TO A NEW SEARCH TABLE.
»WRITTEN 8Y BRAD MILLER
PRGMl FCB FCB
EOUIl EQU
· FCB
FCB
FCB
FCB
FCB
' FCB
E0U12 EQU FCB FCB ·
EOU13 EQU FCB FCB FCB
E0U14 EQlJ FCB FCB FCB FCO
FCB FCB FCB FCB FDB FCB FDB
E0U22 EQU FCB FCS FCB FDB
1220+PARCD E340 STIl-MT
EQU11/2
G-22+IMEO
ST12-MT
EQU12/2
@24+NT3L
ST13-MT
EOU13/2
!330+PARCO
0110
ST14-MT
EQU14/2
130
S42+IMED
©75
+IMED
G344+P4REX
S4F4B
O43+PAREX
S4F60
ST22-MT
E40+NTäL
EOU22/2
TERMN7
ST14 GOSUB
RETURN PAUSE
NEXT IF
LINE FEED LOAD ANO RUN INSERT
DELETE
MEMORY DELETE
»THE MAIN TA8LE BEGINS HERE
709808/1025 INSPECTED
Page 19 CJBPG 06/04/75 36:54.05
00211 | 7E00 | 66 | « | *ORG | MT | O |
00212 | 7E0O | 01 | FC8 | S46+IMED | ||
00213 | 7E01 | 5E | FCB | Bl | 1 | |
00214 | 7E02 | 02 | FCB | P36+IME0 | ||
00215 | 7E03 | 5F | FC8 | f*2 | 2 | |
00216 | 7E04 | 03' | FC3 | 037+IMED | ||
00217 | 7E05 | 77 | FCB | 03 | 3 | |
00218 | 7E06 | 04 | FCB | P67+IMED | ||
0 0219 | 7E07 | 56 | FCB | 04 | 4 | |
00220 | 7E0B | 05 | FCB | Ö26+IMED | ||
00221 | 7E09 | 57 | FCB | 35 | 5 | |
00222 | 7E0A | 06 | FCB | 027+IMED | ||
00?23 | 7E08 | 76 | FC8 | g>6 | 6 | |
Ό0224 | 7E0C | 07 | FCB | 366+IMED | ||
00225 | 7E0O | 4E. | FCB . | P7 | 7 | |
00226 | 7E0E | 08 | FCB | Ö16+IMED | ||
00227 | 7EOF | 4F | FCB | PlO | 8 | |
00228 | 7E10 | 09 | FCB | 317+IMED | ||
00229 | 7E11 | 75 | FC8 | en | 9 | |
00230 | 7E12 | OA | ' FCB | ß65+IMED | ||
00231 | 7E13 | 67 | FC8 | S>12 | • | |
00232 | 7E14 | 08 | FCB | ®47+IMED | ||
00233 | 7E15 | 46 | FC8 | 013 | CHS | |
00234 | 7E16 | 12 | FC« | ß6+IMEO | ||
0O235 | 7E17 | 47 | FCB | S>22 | εεχ | |
00236 | 7ElB | 11 | FCB | 37+IMEO | ||
00237 | 7E19 | 74 | FCB | ®2\ | CLX | |
00238 | 7E14- | 13 | FC8 | £64+IMED | ||
00239 | 7E13 | 7F | FCB | 323 | + | |
00240 | 7ElC | OC | FC8 | S77+IMED | ||
00241 | 7ElD | 6F | FCB | «14 | — | |
00242 | 7EiE | 00 | FC8 | PS7+IMEO | ||
00243 | 7ElF | 6E | FC8 | S115 | X | |
00244 | 7E20 | OE | FCB | S56+IMED | ||
00245 | 7E21 | 73 | FC8 | £16 | / | |
00246 | 7E22 | OF | FCB | ®63+IM£0 | ||
00247 | 7E23 | 7.2 | FC8 | Θ17 | ||
00248 | 7E24 | 92 | FCB | E62+IME0 | ||
00249 | 7E25 | 7C | FCB | s>262 | XEY | |
00250 | 7E26 | 15 | FCB | S74+IMED | ||
00251 | 7E27 | 60 | FCB | &;25 | POLL D04N | |
00252 | 7Ε2β | 16 | FCB | S55+IME0 | ||
00253 | 7E29 | 6C | FCB | P26 | ROLL UP | |
00254 | 7E?.A | 24 | FCB | «54+IMED | ||
0025=5 | 7E2B | 05 | FCB | Ö44 | RCL | |
00256 | 7E2C | 02 | FC8 | 625+PARCD | ||
00257 | 7E20 | OOHC | FCB | &322 | ||
00258 | 5E | EQUl EQU | STl-MT | |||
00259 | 7E2E | CO | FC8 | EQU1/2 | STO | |
00260 | 7E2F | C8 | FC8 | &15+P4RCD | ||
00261 | 7E30 | 00C4 | FCe | ß3lO | ||
00262 | 0180 | EQU2 EQU | ST2-MT | |||
00263 | EQU16. EQU | TT2-MT | ||||
00264 | ||||||
00265 | ||||||
7.09808/102 5
Page 20 qjBPG 06/04/75 36:54.05
00266 | 7E31 | 08 . | EQU3 | FCB | EQU16/2 | F-I |
00267 | 7E32 | 30 | FCB | ("60+NTBL | ||
00268 | OOCA | EOU | ST3-MT | |||
00269 | 7 E 33 | 65 | EQU4 | FCB | EQU3/2 | SHIFT |
00270 | 7E34 | 31 . | FCB | (S61+NTBL | ||
00271 | O0E2 | EQU | ST4-MT | |||
00272 | 7E35 | 71 | FC8 | EGU4/2 | CLEAR | |
00273 | 7E36 | 45 | FCS | <S5 + IMED | ||
00274 | 7E37 | 14 | FCB | P24 | SIN | |
00275 | 7E38 | 6A | FCB | S552 + IMED | ||
00276 | 7E39 | 19 | FCB | P31 | COS | |
00277 | 7E3A | 63 | FCB | 053+IMED | ||
00278 | 7E3B' | IA | FCB | 032 | TAN | |
00279 | 7E3C | 7A | FCB | 5372+IMEO | ||
00280 | 7E3O | 18 | FC8 | 15133 | LN | |
00281 | 7E3E | 68 | FCB | ©50+IMEO | ||
00282 | 7E3F | .1F | FCB | fi>37 . | LOG | |
00283 | 7E40 | 69 | FCB | 051+IMED | ||
00284 | 7E41 | 20 | FCB | 040 | ACC + | |
00285 | 7E42 | 79 | EQU5 | FCB | 071 +1MEO | |
00286 | 7E43 | 2B | EOU20 | FCB | P>53 | |
00287 | one | - | EQU | ST5-MT | ||
00288 | 00A6 | EQU | ST20-MT | SIGMA+ | ||
00289 | 7E44 | 78 | FCS | «70+1MEO | ||
00290 | 7E45 | 27 | FCB | ®47 | P TO R | |
00291 | 7E46 | 7B | FCB | ®73+ΙΜΕ0 | ||
00292 | 7E47 | 2A | FCa | 1352 | R/S | |
00293 | 7E48 | 65 | FCB | ©45+IMED | ||
00294 | 7E49 | BO | FCB | P260 | ENTER | |
00295 | 7E4A | 7E | FCB | O76+IME0 | ||
00296 | 7E4F3 | 10 | FCB | <S20 | REWIND | |
00297 | 7E4C | 41 | FCB | al+IMED | ||
00298 | 7E40 | A fl | FCB | «250 | LO PRGM | |
00 299 | 7E4E | 40 | FC8 | •3O + IMED | ||
00300 | 7E4F | 89 | FCB | 13271 | LIST | |
00301 | 7E50 | 83 | FCB | fi>3xPAREX | ||
00302 | 7E51 | 5904 | FOB | S59D4 | RECORD PROGRAM | |
00303 | 7E53 | 42 | FCS | (5!2+IMEO | ||
00304 | 7E54 | B5 | FCB | FJ265 | END | |
00305 | 7ESS | 513 | FCB | !«35+IMED | ||
00306 | 7E56 | Bl | FCB | ®261 | GOTO | |
00307 | 7E57 | C8 | E0U7 | FCB | TO10+PÄRCD | |
00308 | 7E58 | FO | E0U15.- | FCB | ®360 | |
00309 | 0160 | EQU | .ST7-MT | |||
00310 | 01«0 | EOU | TTl-MT | |||
00311 | 7E59 | 80 | FCB | E0U7/2 | LABEL | |
00312 | 7Ε5Λ | C9 | FCB | &11+PASCD | ||
00313 | 7E5B | RF | FCB | fi277 | ||
00314 | 7E5C | CO | FCB | E0U15/2 | . SFG | |
00315 | 7E5O | CA | FCB | «12+PARCO | ||
00316 | 7E5E | 40 | FCB | PlOO | ||
00317 | 7E5F | 53 | FCB | EOU20/2 | FORMAT | |
00318 | 7E60 | C4 | FCB | ■ö>4 + PAnC0 | ||
00319 | 7E61 | BE | FCB | «276 | ||
00320 | 7£62 | 8E | Fca | E0U5/2 | ||
709 8 0 8/1025
ORIGINAL IMSFECTED
-AA-
Page 21 cJBPG 06/04/75 36:54.05
00321 | 7E63 | 8B | FCB | 15-13+PAREX | STEP | ίί·3»555 5ί5ίν-3ί55ί·ί |
00322 | 7E64 | 527A | FDB | S527A | ||
00323 | 7E66 | 8C | . FCB | 5»14 + PAREX | BACK STEP | ERASE |
00324 | 7E67 | 52CE | FOB | S52CE | ||
00325 | 7E69 | 30 | FCB | TERMN7 | ||
00326 | 7E6A | 7E6E | FOB | RlJNl ■ | ■OR" FOR RUN MOOE | |
00327 | 7E6C | 7RCA . | FOB | PRGMl < | 1OR" FOR PRGM MODE | |
00328 | 7E6E | 90 | RUNl FCB | !920+PAREX | A | CFG |
00329 | 7E6F | 4AEF | FOB | UDFA | ||
0033-0 | 7E71 | 91 | FCB | (321+PAREX | B | |
00331 | 7E72 | 4AEE | FOB | UDFB | ||
0 0 332 | 7E74 | 92 | FCB | ^22+PAREX | C | |
00333 | 7E75 | 4AE0 | FDB | UDFC | ||
00334 | 7E77 | 93 | FCB | ©23+PAREX | D | |
00335 | 7E7S | 4AEC | FDB | UDFD | ||
00336 | 7E7A | 94 | FCB | W24+PAREX | E | |
0 0^37 | 7E7R | 4AEB | FOB | UDFE | ||
00 3 38 | 7E7O | 98 | FCB | !330+PAREX | F | |
00339 | 7E7E | 4ΔΕΑ | FOB | UDFF | ||
00340 | 7E80 | 99 | FCB | 031+PAREX | G | |
00341 | 7E31 | 4ΔΕ9 | FOB | UDFG | ||
003<>2 | 7E83 | 9 A | FCB | r<ü32+PAREX | H | |
00343 | 7E84 | 4AE3 | FOB | UDFH | ||
00344 | 7E86 | 93 | FC8 | 033+PAREX | I | |
00345 | 7E37 | 4ΔΕ7 | FOB | UDFI | ||
0034b | 7E89 | 9C | FCB | B34+PAREX | J | |
00347 | 7E3A | 4AE6 | . FOB | UDFJ | ||
00348 | 7E3C | AO | FCB | 340+PAREX | K | |
00349 | 7E3O | 4AE5 | FOB | UOFK | ||
0 0 350 | 7ΕβΡ | Al | FC8 | :341+PAREX | L | |
00351 | 7E90 | 4ΛΕ4 | FDB" | UDFL | ||
00352 | 7E9? | FCB | 'i42 + PAREX | H | ||
00353 | 7E93 | 4ΛΕ3 | FDB | UOFM | ||
003=4 | 7E95 | A3 | FCB | (Si43+PAREX | NJ | |
00355 | 7E96 | 4ΛΕ2 | FOB | UOFN | ||
00356 | 7E9R | A4 | FCB | &44+DAREX | O | |
00357 | 7E99 | 4AEl | FOB | UOFO | ||
00 358 | 7E9B | 84 | FCB | ■Si4 + PAREX | ||
00359 | 7E9C | 4AF0 | FOB | FMT | ||
00360 | 7EQE | 3D | FCB | TERMN7 | ||
00361 | 7E9F | SC | FCB | 12+-S80 SYNTAX E^ROR | ||
00362 | ||||||
00353 | e.«*»*SEC0MOAPY | TABLES»^« | ||||
00364 | ||||||
00365 | 7EA0 | A3 | ST22 FCB | «43+PAREX | ||
0 0 366 | 7ΕΔ1 | 4B7F | FD8 | EPASE | ||
00367 | 7EA3 | 30 | FCB | TEPMN7 | ||
00368 | 7EA4 | 7E00 | FOB | MT | ||
00359 | ||||||
00370 | 7E46 | CA | ST20 FC9 | W12+PARC0 | ||
00371 | 7EA7 | 10 | FCB | W20 | ||
00372 | 0146 | E0U6 EOU | ST6-MT | |||
00373 | 7E48 | A3 | FCB | E0U6/2 | ||
00374 | 7EA9 | 3D | FCB | TERMN7 | ||
00375 | 7EAA | 7F46 | FOB | ST6 | ||
709-808/1025
Page 22 CJBPG 06/04/75 36:54.-05
00376 | 7EAC | 66 |
00377 | 7EAD | 33 |
00378 | 7EAE | 7F |
00379 | 7EAF | 31 |
00380 | 7E30 | 6F |
00381 | 7E81 | 32 |
00382 | 7EB2 | 59 |
00383 | 7EB3 | 35 · |
00384 | 7EB4 | 5A |
00385 | 7EB5 | 3 A |
00386 | 7E36 | 5 B |
00387 | 7E37 | 36 |
00388 | 7EB8 | OA |
Q0389 | 7E99 | 53 |
00390 | 7 FJi A | 3D |
00391 | 7EFtB | 8C |
00392 | ||
00393 | 7EBC | 05' |
00394 | 7E8D | 02 |
00395 | 7EBE | CO |
00396 | 7EPF | 79 |
00397 | 7EC0 | 38 |
00398 | 7ECl' | 3D |
00399 | 7EC2 | 7F80 |
004-00 | ||
00401 | 7EC4 | 05 |
00402 | 7EC5 | OE |
00403 | 7EC6 | CO |
00 404 | 7EC7 | 30 |
00*05 | 7ECa | 7F80 |
00 406 | ||
00hU7 | 7ECA | 30 |
00408 | 7ECB | 65 |
0 0 409 | 7ECC | 31 |
00410 | 7ECD | 71 |
00411 | 7ECE | 6A |
00412 | 7ECF | IC |
00413 | 7ED0 | 6R |
0 0414 | 7EDl | ID |
00415 | 7ED2 | /A |
00416 | 7ED3 | IE |
00417 | 7ED4 | 63 |
0041R | 7E05 | 21 |
00419 | 7ED6 | 69 |
00420 | 7EO7 | 22 |
00421 | 7ED8 | 78 |
00422 | 7£D9 | 28 |
00423 | 7EOA | 78 |
00424 | 7ED9 | 29 |
00425 | 7EOC | 79 |
00426 | 7EDD | 2C |
00427 | 7EDE | 3D |
00428 | 7EDF | 7E0 0 |
00429 | 7EEl | OO |
00430 | ||
ST14
STl
FC8 | 046+1MED | IF 0 | ) PCL RCL |
•FCB | (5'63 | ||
FCB | ®77+IMED | IF+ | |
FCB | f*61 | RCL ACC+ | |
FCB | P57+IMED | IF- | |
FCB | P62 | ||
FCB | ®31+IMED | IFX<Y | (ALPHA TABLE |
FCB | 065 | ||
FCB | IS32 + IMED | IFX=Y | |
FCB | Θ64 | ||
FC8 | 033+IMEO | IFX>=Y | |
FCB | Φ66 | ||
FCB | S12+NTBL | IF SFG | |
FCB | EOU20/2 | ||
FCB | TERMN7 | ||
FCB | 12+580 | SYNTAX ERROR | |
ikhuhjo | {^ H i^ ^^ ίί ^F {^ il· *il· it i» *^ iJ \^ %} ^l· *ΐ^ ^^ ^I* ^^ {} -^^- ^} | ||
FC8 | P25+PARCC | ||
FC8 | SD 2 | ||
FCB | E0U15/2 | ||
Fca | S71+IMED | ||
FC8 | Θ73 | ||
FCB | TERMN7 | ||
FOB | TTl |
-5 -><}->·Β· O -3--5--3-0-<· ■» ύ· ·»■» -ϊ -S ■>
■■
äiiiim»iSiHl-}i(!8iiJiä4i4i5iHt-:.->ii-HHHi5ii-}5v-5M-J->«-HH4f->i;-iHr·.
ST2 FC8 üä25 + PASCD STO RCL
FC8 016
FCB E0U15/2
FCB TERMN7
FD8 TTl .....
it O -5 » «■ e -5 <i 'i -ϊ ί
<- » » * -O ■& ί ·>
O -O- *r » <-<■ «· -J -S -X- ■» -I -5 ->
-5- ·■>
-3- -;- J -> -υ- -!f C- O ■& ■>
·> ■:- -5 -X- -3- 45-}4« ->
-J- -:
ST3
FCB | 06O+NT3L | F-I |
Fca | EQU3/2 | |
FCB | ζ-61+NTRL | SHIFT |
FC8 | I0U4/2 | |
FCB | iS52 + IME0 | ARCSIN |
FCB | S34 | |
FCB | P53+IMED | ARCCOS |
FC8 | Θ35 | |
FCB | S72+IME0 | ARCTAN |
FCB | t'36 | |
FCB | is 5 O + IMED | ΕΛΧ |
FCB- | ®4l | |
FCB | 051+IMED | ΙΟλΧ |
FC8 | 1*42 | |
FCB | ®70+IMED | SKiMA |
FCB | «50 | |
FC3 | ?·73+ΙΜΕ0 | R TO P |
FCB | &51 | |
FCB | S71+IMED | ACC- |
FCB | R154 | |
FCB | TERMN7 | |
FDB | MT | |
FC8 | PO |
709808/1025
OBJGSMAL INSPECTED
Page 23 CJRPG 06/04/75 36:54.05
0 0 431 | 7EE2 | 30 ■ | «««■•»«««■»■»«•»β | ■»»■IHHHHHHHHH | F-I |
00432 | 7EE3 | 65 | ST4 FC8 | 060+NTBL | |
00433 | 7EE4 | 31 | FCB | EOU3/2 | SHIFT |
00434 | 7EE5 | 71 | FCB | ßftl+NTßL | |
00435 | 7EE6 | 40 | FCB | EQU4/2 | MAPK TAPE |
00436 | 7EE7 | B7 | FC8 | 00+IMEO | |
00437 | 0140 | FCB | P267 | ||
00438 | 7EE8 | 5E | EQU21 EOU | ST21-MT | DEGREES |
00439 | 7EE9 | 2E | FCB | CS36 + IMED | |
00440 | 7EEA | 5F | FCB | 15156 | RADIANS |
00441 | 7EE8 | 3F | FCB | P37+IMED | |
00442 | 7EEC | 77 | FCB | 1377 | GRAOS |
00443 | 7EED | 3E | FCB | (367 + IMED | |
00444 | 7EEE | C6 | FCB | Θ76 | FIX MODE |
0 0445 | 7EEF | BB | FCB | !36+PARCD | |
00446 | 7EF0 | AO | FCB | ®273 | |
00447 | 7EFl | C7 | FCB | E0U21/2 | SCIENTIFIC MODE |
00448 | 7EF 2 | 8C | FC8 | ®7+PÄRCD | |
0044O | 7EF3 | AO | FCB | P274 | |
00450 | 7EF4 | F4 | FCB | EOU21/2 | SCIENTIFIC 3 MODE |
00451 | 7EF5 | BD | F CB | 1364+PARCD | |
00452 | 7EF6 | AO | FCS | 151275 | |
00453 | 7EF7 | 84 | FC3 | E0U21/2 | TO ALPHA |
00454 | 7EF8 | 519C | FCB | I5i4 + PAREX | |
Π0455 | 7EFA | 68 | FDB | S519C | ROUND |
00456 | 7EFB | 3A | FCB | 1950 + IMED | |
0 0457 | 7EFC | 41 | FCB | P72 | VERIFY |
00458 | 7EFO | A5 | FCB | rai+IMED | |
00459 | 7EFE | 42 | FCB | 0245 | RC DATA |
00460 | 7EFF | A7 | FCB | S2+IME0 | |
00461 | 7F00 | 43 | FCB | B247 | IDENTIFY |
00462 | 7F01 | 88 | FC3 | C3+IMED | |
00463 | 7F02 | 6A | FCB | ffi270 | YaX |
00464 | 7F03 | 23 | FCB | P52+IMED | |
00465 | 7F04 | 69 | FCB | E4 3 | SORT X |
0 0 4b6 | 7FO 5 | 25 | FCB | ^51+IMEO | |
00467 | 7F06 | 6R | FCB | (5)45 | 1/X |
00468 | 7F07 | 26 | FCB | 5-53+IMED | |
00469 | 7F08 | 7A | FCB | 1346 | INT |
00470 | 7F09 | 20 | FCB | fo>72 + IMED | |
00471 | 7FOA | 78 | FCB | f'55 | "ΕΑΝ. STD. DEV |
00472 | 7F03 | 37 | FCB | «7 0 + IMED | |
00473 | 7F0C | 7B | FCB | «67 | TO O.MS |
00474 | 7F0D | 2"F | FCB | «73+IMEO | |
00475 | 7F0E- | 79 | FCB | ®57 | FROM O.MS |
00476 | 7F0F | 30 | FCB | ■371 +1 MtD | |
0Q477 | 7FlO | 7E | FCB | B60 | LST X |
00478 | 7F11 | 18 | FC8 | 5176+IMED | |
00479 | 7F12 | 67 | FCB | ®30 | PI |
004SO | 7Fl 3 | 17 | FCB | &J4 7 + IMED | |
00481 | 7Fl 4 | 40 | FCB | <S27 | n OF R>S |
00482 | 7F15 | 38 | FC8 | «15+IMEO | * |
004B3 | 7F16 | 7? | Fca | «370 | LIST STACK |
00484 | 7F17 | 39 | FC8 | ri<i2+IMEO | |
00485 | FCB | 5571 | |||
7098 O.a /1025
Page 24
06/04/75 36:54.05
0 0 486 | 7F18 | 30 | ■ | ST5 | FCB | TERMN7 | FCB | 5346+PAREX | 1 | - - | 0 |
00487 | 7F19 | 7E00 | FOB | MT | FDB | FO | |||||
00468 | 7FlB | 00 | FCB | • ©Ο | FC8 | ^65+PAREX | 2 | 9 | |||
00439 | «»«so«« | •e·« «»inni ·» ö ·» » | FD8 | F9 | |||||||
00490 | 7FlC | 9E | FCB | O36+PAREX | FCB | M36+PAREX | 3 | • 1 | |||
00491 | 7F10 | 4857 | FDB | Ol | FDB | Fl | |||||
00492 | 7FlF | 9 F | FCB | (?>37+PAREX | FCB | ■337+PAREX | 4 | 2 | |||
00493 | 7F20 | 4856 | FOB | 02 · | FD8 | F2 | |||||
00494 | 7F22 | Bl | FCB | 067+PAREX | FCB | S67+PAPEX | 5 | 3 | |||
00495 | 7 F 23 | 4355 | FOB | 03 | FOB | F3 | |||||
00496 | 7F25 | 96 | FCB | 026+PAREX | FCB | ©26+PAREX | 6 | 4 | |||
00497 | 7F26 | 4854 | FDB | 04 | FOB | F4 | |||||
00498 | 7F28 | 97 | FCB · | 15127 + PAREX | FC3 | P27+PAREX | 7, | 5 | |||
00499 | 7F29 | 4853 | FOB | 05 | FOB | ■ F5 | |||||
00500 | 7F28 | 36 | FCB | @66+PAREX | FCB | P66+PAREX | RECORD SECUREO | 6 | |||
00501 | 7F2C | 4852 | FDB | D6 | F08 | F6 | |||||
00502 | 7F2E | 8E | FCB | 016+PAREX | FCB | 016+PAREX | LO BIN | 7 | |||
00503 | 7F2F | 4851 | FOB | D7 | F08 | F7 | |||||
00504 | 7F31 | 42 | FCB | ^2+IMED | FCB | S17+PAREX | RUN 8IN | 8 | |||
00505 | 7F32 | P6 | FCB ' | 53266 | FOB | F6 | |||||
00505 | 7F33 | 50 | FCB | 02 0.+ IMEO | FCB | TER«N7 | RC 3IN | ||||
00507 | 7F34 | AO | FCB | (S240 | FCB | 12+SflO | SYNTAX ERROR | ||||
00503 | 7F35 | 51 | FCB | ©21+IMED | RC BIN SEC | ||||||
00509 | 7F36 | Al | FCB | ß>241 | |||||||
00510 | 7F37 | 52 | FCB | '322 + IMED | PTAPE | ||||||
00511 | Tr 33 | A2 | FCB | K242 | |||||||
00512 | 7F39 | 53 | FCB | S23+IMED | |||||||
00513 | 7F3A | A3 | FCB | ®243 | |||||||
00514 | 7F39 | 54 | FCB | !824 + IMED | |||||||
00515 | 7F3C | A4 | FCB | K244 | |||||||
00516 | 7F3O | 30 | FCB · | TEPMM7 | |||||||
00517 | 7F3E | 7E6E | FDB | PUNl | |||||||
00518 | »«■!!■■»««■•^■»»«■iHKHHH-iHHHHHi··* | ||||||||||
00519 | 7FiO | A 6 | ST21 | ||||||||
00520 | 7Fi-I | 49SF | |||||||||
00521 | 7F43 | 35 | |||||||||
00522 | 7F44 | 4R66 | |||||||||
00523 | 7F46 | 9E | ST6 | ||||||||
00524 | 7F47 | 4P6E | |||||||||
00525 | 7F49 | 9F | |||||||||
00526 | 7F4 4 | 4R60 | |||||||||
005?7 | 7F4C | 37 | |||||||||
0052ο | 7F4D | 4R6C | |||||||||
00529 | 7F4F | 96 | |||||||||
00530 | 7F50 | 4t?6B | |||||||||
00531 | 7F52 | 97 | |||||||||
00532 | 7F53 | 486Λ | |||||||||
00533 | 7F55 | R 6 | |||||||||
00534 | 7F56 | 4R69 | |||||||||
00535 | 7F58 | RE | |||||||||
00536 | 7F59 | 4R68 | |||||||||
00537 | 7F58 | 3F | |||||||||
00S3S | 7FSC | 4367 | |||||||||
00539 | 7F5E | 3D | |||||||||
0 0 540 | 7F5F | ac | |||||||||
70 9808/102 5
Page 25 CJBPG 06/04/75 36:54.05
00541 | 7F60 | C9 | ST7 | IHHHJ O--!HJ | sil+PARCO | «■*«0-Ο»4«·υ»»4-9»»«»4ί(!Ι1ί4·}β5ί»^ | 4»«·14<ί->«4·Κ-4·}ί!>ί-1ν-ϋί-3ι>ί>Μ:-1}-> |
00542 | 7F61 | Ol | FCB | P321 | GOTO LABEL | A | |
00543 | 01C2 | EQU17 | "FCB | TT3-MT | |||
00544 | 7F62 | El | EQU | E0U17/2 | 8 | ||
00545 | 7F63 | 6E | FCB | S56+IME0 | |||
00546 | 7F64 | 62 | FCB | P142 | GOTO X | C | |
00547 | 7F65 | 30 | FCB | TERMN7 | |||
00548 | 7F66 | 7F80 | FCB | TTl | O | ||
00549 | FOB | (ALPHA TABLE) | |||||
00550 | 7F6EI | C9 | STIl | HHJ ·*»{;-->■ | Pll+PARCD | E | |
00551 | 7F69 | EO | FCB | S340 | G0SU8 LABEL | ||
00552 | 01C8 | EQU18 | FC8 | TT4-HT | F | ||
00553 | 7F6A | E4 | EQU | EQU18/2 | |||
00554 | 7F6B | 6E | FCS | ®56+IMED | G | ||
00555 | 7F6C | 63 | FCB | P143 | Gosug x | ||
00556 | 7F6D | 3D | FCB | TERMN7 | H | ||
00557 | 7F6E | 7F80 | FC8 | TTl | |||
0055B | FOB | &*«--»«·-»-!ΗΠΗ>-> | (ALPHA TABLE) | ||||
00559 | 7F70 | 50 | ST12 | HJ-a ■* IJiHf- | ^20 + I ■-!ED | ||
00560 | 7F71 | AC | FC8 | 0254 | FOR A | ||
00561 | 7F72 | 51 | FCB | @21+IMED | |||
00562 | 7F73 | AA | FCB | PJ252 | FOR 8 | ||
00563 | 7F74.' | 52 | FCB | @22+IMED | |||
00564 | 7F75 | AR | FC8 | ^253 | FOR C | ||
00565 | 7F76 | 30 | FCB | TERMN7 | |||
00566 | 7F77 | 8C | FCB | 12+S80 | |||
00567 | FCB | SYMTAX ERROR | |||||
00563 | 7F78 | 50 | ST13 | > -SHJiJ SHJ»· | S20+1MEO | ■» «· ■> ·> ·> ■» > υ -> ■> & -i -3- -3- -3 -3- -i ir -5 -> -> -S Ϊ « ■> -3 -> -5 <r | |
00569 | 7F79 | AO | FCB | &255 | MEXT A | ||
00570 | 7F7A | 51 | ' FCB | 021+IMEO | |||
00571 | 7F7B | AE | FCB | S256 | NEXT B " | ||
00572 | 7F7C | 52 | FCB | P22+IME0 | |||
00573 | 7F70 | AF | FCB | 3257 | MEXT C | ||
00574 | 7F7E | 30 | FCB | TERMM7 | |||
00575 | 7F7F | 8C | FCB | 12+380 | |||
00576 | 9 <Η>-ϊνϊ-ϊ | FCB | }-5ίϋίΙίϋΙί·>·5!ί | SYMTAX ERROR | |||
00577 | «·«■«-»& | J-2--B-»«·■»«-■ | -3- -C- O- -> C- -O- -5 -ii -3 C- -ίΗΪ· ·> -3- -ΐ --- -3 -·> -3 -3 C- --- -> -r- -Z- -5 O- Z- -r- | ||||
00578 | -XJOiHIi | THIRD I | ^ L·^ * I ^^ I ^* '.tiJ ^^m ^~- ~J | ||||
00579 | 7F80 | 90 | TTl | ||||
0 0 5 H 0 | 7F81 | 4*ΛΑ7 | FCB | £20+ΡΑ«ΕΧ | |||
00581 | 7F93 | 91 | FOB | UOFKA | |||
00582 | 7F84 | 4ΑΛ6 | FCB | 321+PAREX | |||
00533 | 7F86 | 9? | FD3 | U0FK8 | |||
00584 | 7F87 | 4ΑΛ5 | FCB | 1322 + PAREX | |||
00585 | 7F39 | 93 | FDB | UDFKC | |||
005B6 | 7F«A | 4AA4 | FCB | 1323+PAREX | |||
00587 | 7F8C | 94 | F08 | UOFKO | |||
OObSft | 7Ft(O | 4ΑΛ3 | FCB | «24+PAREX | |||
00589 | 7FSF | 98 | FOB | UOFKE | |||
00590 | 7F90 | 4ΑΛ2 | FCB | Q30+PAREX | |||
00591 | 7F92 | 99 | F03 | UDFKF | |||
00592 | 7F93 | 4ΔΑ1 | FCB | «3 l+PAREX | |||
00593 | 7F95 | 9A | FOB | UOFKG | |||
00594 | 7F96 | 4ΛΛ0 | FCS | (532+PAREX | |||
00595 | FOB | UOFKH | |||||
70 9808/102 5
Page 26 cJBPG 06/04/75 36:54.05
00596 | 7F9fl | 98 | tnnma | FCB | ß'SS + PAREX | I | * | TT3 | FCB | •^56+1 McO | GOTO LPL X |
00597 | 7F99 | 4A9F- | TT2 | FDB | UDFKI | FCB | ß 140 | ||||
00598 | 7F98 | 9C | FCB- | P34+PAREX | J | STO CLEAR (CLEAP AL^HA PEGS) | FCB | TEPMN7 | |||
00599 | 7F9C | 4A9E | FDB | UDFKJ | .- . . | FDB | TTl | (ALPHA TABLE) | |||
00600 | 7F9E | AO | FCR | P40+PAREX | K | FCB | ®o | ||||
00.601 | 7F9F | 4A90 | FDB | UOFKK | |||||||
00602 | 7FAl | Al | FCB | PÜ41+PAREX | L | TT4 | FC8 | 056+IMED | GQSU8 L8L X | ||
00603 | 7FA2 | 4A9C | FDf? | UDFKL | FCB | a 1 41 | |||||
00604 | 7FA4 | A2 | FCO | i342+PAREX | M | Fca | TERMM7 | ||||
00605 | 7FA 5 | 4A9B | FOB | UOFKM | FOB | TTl | CALPHA TABLE) | ||||
00606 | 7FA7 | A3 | FCB | ©43+PAREX | N | FCB | 130 | ||||
00607 | 7FA8 | 4Λ9Α | FD3 | UDFKN | »»««α | ■ί4»ί»ί» | 4»·>ίθϊ»ϊ*·}« | 4««»4}«>«»4«<)»ί)»»<144444<1'}«44 | |||
0 0608 | 7FAA | A4 | Fca | Θ44+ΡΑΡΕΧ | O ' | TT5 | FCB | 046+PAREX | 0 | ||
00609 | 7FAB' | 4A99 | FOB | UDFKO | • FOB | ZERO | |||||
00610 | 7FAD | 30 | FCB | TERMN7 | FC8 | P36+PAREX | 1 | ||||
00611 | 7FAE | 7FCE | FDB . | TT5 | (DIGIT TABLE) | F08 | ONE | ||||
00612 | ·»·»■»-ο-«-#·» | c· *-> o- »*# -s tnnnt» ΰ * c- a«· * * i}« & -3-M &&< | FC3 | »37+PAREX | 2 | ||||||
00613 | 7F80 | FF | FC3 | fi>77+PARCD | STO C+3 RCL | FD3 | TWO | ||||
00614 | 7FBl | 02 | -FCB | (512 | FC8 | E67+PAREX | 3 | ||||
00615 | 7FB2 | 62 | FCB | E0U2/2 | FOB | THREE | |||||
00616 | 7F83 | EF | FCB | P57+PARC0 | STO [-] RCL | ||||||
00617 | 7F84 | 04 | FCB | (Fj 4 | |||||||
00618 | 7FB5 | 62 | FC3. | EQU2/2 | |||||||
00619 | 7FB6 | EE | FC8 | M56+PARC0 | STO l>l RCL | ||||||
00620 | 7FB7 | 06 | FC3 | ^6 | |||||||
00621 | 7F88 | 62 | FCB | EQU2/2 | |||||||
00622 | 7FB9 | F3 | FCB | P63+PARCD | STO C/] RCL | ||||||
00623 | 7F8A | 08 | FCS | rs>\ 0 | |||||||
00624 | 7FB8 | 62 | FCB | E0IJ2/2 | |||||||
00625 | 7F8C | 45 | FC8 | •ss+IMEO | |||||||
00626 | 7FBO | 3 C | FC8 | ©74 | |||||||
00627 | 7FRF | 3D | FCB | TERMN7 | |||||||
00628 | 7F8F | 7EC4 | FD8 | ST2 | |||||||
00629 | 7FCl | 00 | FC8 | «0- | |||||||
00630 | |||||||||||
0063.1. | 7FC2 | 6E | |||||||||
00 632 | 7FC3 | 60 | |||||||||
00633 | 7FC4 | 30 | |||||||||
00634 | 7FC5 | 7F80' | |||||||||
00635 | IF'Zl | OQ | |||||||||
00536 | " | ||||||||||
00637 | 7FC8 | 6E | |||||||||
0Q63a | 7FC9 | 61 | |||||||||
0063,9 | 7FCA | 3D | |||||||||
00640 | 7FC3 | 7F80 | |||||||||
00641 | 7FCO | 00 | |||||||||
00642 | |||||||||||
0 0 643 | 7FCE | A6 | |||||||||
00644 | 7FCF | 49F0 | |||||||||
00645 | 7FOl | 9E | |||||||||
0 0646 | 7F02 | 49EF | |||||||||
00647 | 7FD4 | 9 F | |||||||||
00648 | 7FD5 | 4qEE | |||||||||
00649 | 7FO 7 | 87 | |||||||||
00650 | 7FD8 | 49ED | |||||||||
709ΒΌ8/1025
Cv | iqPG 06/04/75 | 36:54 | - 50 - | 026+PAREX | |
Page 27 | 7F0A | 96 | FCB | .05 | FOUR |
00651 | 7FOS | 49EC | FOB | ©P7+PAREX | |
00652 | 7F00 | 97 | FC3 | FIVE | |
00653 | 7F0E | 49EB : | FOB | ©66+PAREX | |
00654 | 7FE0 | R6 | FCB | SIX | |
00655 | 7FEl | 49EA | FOB | a 16-i-PAREX | |
00656 | 7FE3 | 8E | FCB | SEVEN | |
00657 | 7FE4 | 49E9 | FOB | ai7-!PAREX | |
0065β | 7FE6 | 8F | FCB | EIGHT | |
00659 | 7FE7 | 49Ea | FOB | ®65+PAREX | |
00660 | 7FE9 | B5 | FCB | NINE | |
00661 | 7FEA | 49E7 | FDB | S47+PAREX | |
00662 | 7FEC | A7 | FCB | DECPT | |
00663 | 7FED | 4Δ22 | FOB | TERMN7 | |
00664 | 7FEF | 30 | FCB | ' $80 | |
00665 | 7FF0 | 80 | FCB | ||
00666 | |||||
ERROR ZERO (SPECIAL CASE)
709808/1025
ORIGINAL INSPECTED
Page 28 CJBPG 06/04/75 36:54.05
00669 00670 00671 00672 00673 00674 00675 00676 00677 00678 00679 00680
00681
00683 00684 0 0685 00686 006fi7 00688 00689
0 0*>9 0 00691 00692 0 0693 00694 00695 0 0 696 00697 00698 00699
00 7 0 0 00701 0 0 7 0 2 00703 00704 00705 00706 00707
00708 00709 00710 00711 00712 00713 007U 00715 00716
00717 00718 00719 00720 00721 00722 00723
49E7
49 E 49Ε8 49Ε9 49EA
49EB 49EC 49ED 49ΕΞ
49EF 49F0 49F3 49F5 49F6 49F9 49FC 49F0 49FF 4Λ01
4Α03 4Α05 4Α07 4Α09 4Α08 4A0D 4A0F 4Al 1
4Α16 4Α18 4Al Δ 4AlC 4AlE 4Α?0
NAM ΌΡΤ ORG
PLABR
LI ST,MEM
S49E7
4C ■'■■ C 4C 4C 4 C 4C 4C
4C 4C 7C C6 OC 7 79 5Α 26 9Δ 97 96 D6 Cl 22 Cl
22
27
7Ε
27 20
27 20
»PROGRAM LANGUAGE ADDRESS BUILDING ROUTINE c·
INC A AFTER ENTERING AND
IMC Λ FALLING THRU THIS LIST
INC A OF INCREMENT INSTS♦
4A22 4 A 2'' 2
0013 04
0011 0010
F6
11
1.1
13
C6
DF
08
C7
OD
02
OF
78E3
04
08
F7
03
02
Fl
02 42
NINE
EIGHT
SEVEN
SIX
FIVE
FOUR
THREE
TWO
ONE
ZERO
LL
BLK F4D
T3O
INC A INC A INC A INC A INC A INC A INC LDA CLC ROL ROL DEC B BNE
ORA A STA A LDA A LDA CMP B BHI CMP R BHI CMp A BEO JMP CMP A BEQ
BRA CMP Λ BEQ BRA ACCA WILL CONTAIN THE PROPER RCO DIGIT
ENTERED BY THE USF.R
DCNTR ADO 1 TO DIGIT COUNTER
«4 SET ACCB FOR ROTATE
CLEAR CARRY
Wl ROLL LEFT Wl (LSW)
W2 ROLL V2 WITH CARRY
DECREMENT COUNTER
LL CONTINUE IF NOT 0
Wl "OR" NEW BCD DIGIT
Wl RESTORE Wl
DCNTR GET DIGIT COUNTER
S0L7 GET THE INSTRUCTION
ΟΦ337 FOUR DIGIT ADOPESS?
F4D BRANCH IF YES
iffS!307 THREE DIGIT ADDRESS?
T3D BRANCH IF YES
«2 ELSE 2 DIGIT
DEC0T BRANCH IF 2 ENTERED
NK7 ELSF GET NEXT KEY
«4 FOUR DIGITS ENTERED?
DECPT BRANCH IF YFs
BLK ELSE GET NEXT KEY
H3 THREE DIGITS ENTERED?
DECPT BRANCH IF YES
RLK ELSE GET NEXT KEY
»THIS HANDLES THE DF.C PT TERMINATOR
DECPT 3SR BCDBIN BCD TO BINARY CONV. BRA TYPE CHECK INST TYPE
«THE FOLLOWING POUTINE OOES A BCD TO «CONVERSION ON Wl 5, W2.
«HtCD TO BINARY CONVERSION ON Wl AND W? WITH
»BINARY RESULT LEFT IN TP7 AND TP7S. RESULT IS »EQUAL TO L+64H+32H+^h WHFRE L=1UMAPY VALUE
«OF THE LOW 2 BCD OIGITS AND H=BINoWY VALUE
»OF THE HIGH 2 BCD DIGITS.
7098tf8/1025 OHiGlMl
Page 29 CJBPG 05/04/75 36:54.05
00724 00725 00726 00727 00723 00729 00730
00731 00732 00733 00734 00735 00736 00737 00738 00739 0 0 740
00741 00742 00743 00744 00745 00746 00747 00748 0074-9 00750 00751
00752 00753 0 0 754 00755 00756 00757 00753 00759 00760 00761 00762
00763 00764 00765 007b6 00767 00768 00769 00770 00771
00772 00773 00774 00775 00776 00777 00778
4A26 4A28 4A2A 4A2B 4A2C
4A2D 4A2E 4A2F 4A31 4A33
4A34 4A35 4A36 4Λ37 4Λ38
4A39 4A33 4A3D 4A3E 4A3F
4A41 4443 4A45
4Α4Λ 4A4C 4A4E
4A50 4A5?.
4A57
4A5C
4A50 4A5E 4Λ60 4A62 4A63 4A64 4A65
4A66 4A67
4A68 4 Λ 6 A 4A6C 4Δ6Ε
06 RO 5F
48 59 48 59
07 97 48
59
48
59
.43
59
D7 IE
97 IF
48 "
59
913 IF
97 IF
09 IE
07 IE
BO 484B
06
8Π OF
9B
97
2i
7C 0020
CE 0 00
DF
39
17
84 OF CA FO 54 IP
IB 39
BCDBIN LDA R W2
BSR BCDB
CLR B
ASL A
ROL B
ASL A
ROL B
STA B TP7
STA A TP7S
ASL A
ROL B
ASL A
ROL B
ASL A
ROL B
STA B TP6
STA A TP6S
ASL A
ROL B
AOD A TP6S
STA A TP6S
ADC R TP6
STÄ 8 TP6
JSR Δ007
LOA 8 Wl
BSR PCDB
ADO A TP7S
STA A TP7S
BCC RCOl
INC TP7
BCDl LOX «0 STX W2 RTS
P6 EO 91 C6 23 OC 96 C8
GET MS BCD DIGITS CONVF.PT TO HILARY
PRESET ACCB FOR MULTIPLIES MULTIPLY RESULt BY
SAVE 4^(HIGH BINARY)
MULTIPLY BY 32
SAVE 32MHIGH BINARY)
MULTIPLY BY 64 DO 64H +32H
OO 64H + 32H .+ 4H GET LOW 2 BCD DIGITS
CONVERT TO BINARY OO L + 64H + 32H + 4H
BRANCH IF NO CARRY ELSE BUMP TP7 BY ONE CLEiR THE INDEX
CLEAR THE RCD LOCATIONS RETURN WITH B INARY IN
AMD TP7+I
«THIS ROUTINE DOES A -3CD TO BINARY CONVERSION
»ON ACC8 WITH RETURNED 3ΙΝΛΡΥ IN ACCA.
BCDB
/>SF ttSFO
TBA
AMD
AND
LSR
ABA
LSR B
LSR
A8A
RTS ACCA = THE BCD DIGITS ACCA = THE LS DIGIT
ACC8 = THE ms OIG IT
BINARY = MS DIGIT
10 + LS DIGIT
ACCA = THE BINARY
«THIS ROUTIME CHECKS INST TYPE» CHECKS »FOR OVERFLOW FOR THAT TYPE- AND INSERTS
«ADDRESS OR LABEL INFO IF VALID
TYPE LDA A 0^340
CMP A S0L7
BLS GR»1
LDA A «rn.310
>=340=JMP O" JSR COMPARE TO INST
BRANCH IF JMP OR JSR DATA STORAGE INST?
7Q98Ü8/1025
ORIGINAL INSPECTED
Page 30 CJBPG 06/04/75 36J54.05
00779 | 4A70 | 91 | Cb | GRPl | CMP | A | A | S0L7 | COMPARE TO INST |
00780 | 4A72 | 23 | IA | BLS | A | GR P 2 | BRANCH IF YES | ||
00781 | 4A74 | 96 | 21 .- | LDA | A | A | TP7 + 1 | GET LS BINARY | |
00782 | 4A76 | 97 | C7 ■ | FINEl | STA | A | A | S0L7+1 | OK: SAVE DATA |
00783 | 4A78 | 20 | 11 | BRA | A | CCNT | CONTINUE IN SUPV | ||
00784 | 4A7A | 96 | 20 | LDA | Δ | A | TP7 | GET «S BINARY | |
00785 | 4A7C | 85 | F8 | BIT | Α | A | #®370 | >2047? | |
00786 | 4A7E | 26 | 12 | BNE | A | AERR | ERROR IF YES | ||
00787 | .4A80 | 06 | 21 | LDA | 8 | A | TP7 + 1 | GET LS BINARY | |
007«8 | 4A82 | 53 | ASL | B | A | CARRY=B7 | |||
00789 | 4A83 | 49 | CCNT | ROL | A | A | LSB OF MSW=B7 | ||
00790 | 4A84 | 54 | GRP? | LSR | B | A | RESTORE LSW | ||
00791 | 4A85 | 07 | C7 | STA | B | A | S0L7+1 | SAVE IN 2NO BYTE | |
00792 | 4A87 | 9A | C6 | AERR | ORA | A | A | S0L7 | "OR" IN INST |
00793 | 4A39 | 97 | C6 | STA | A | B | S0L7 | RESTORE WITH AOPS | |
00794 | 4A8B | 7E | 794C | JMP | B | CONT | CONTINUE IN SUPV | ||
00795 | 4A8E | 96 | 20 | ■0· | LOA | A | TP7 | GET MS BIMARY | |
00796 | 4A90 | 27 | EE | «ALPHA | BEQ | B | FINEl | OK IF ZERO | |
00797 | 4A9? | 86 | 18 | LDA' | A | «24 | LOAD ERROR | ||
00793 | 4A94 | 97 | 06 | UOFKO | STA | Δ | A | ERROR | SAVE IN E=?ROR WOP-O |
00799 | 4A96 | 7 E | 7B40 | UOFKN | JMP | ERR0R7 | JMP TO ERROR'OUTPUT | ||
00800 | IJOrKM | B | |||||||
00801 | udfkl" | TABLE | B | PARTIAL | EXECUTE CODE | ||||
00802 | UOFKK | B | |||||||
nO3f>3 | 4A99 | 4C | IJOFKJ | INC | A | ||||
00804 | ΊΑ9Α | 4C | _ | UOFKI | INC | A | |||
0080S | ■1A9B | 4C | UOrKH | INC | |||||
00806 | 4A9C | ^C | UOFKG | INC | R | ||||
00807 | 4A9D | 4C | UOFKF | INC | |||||
00808 | *A9E | 4C | UOFKE | INC | A | ||||
0 0 8 0 9 | •*A9F | 4C | UDFKD | INC | - - — — - | ||||
00810 | *A AO | 4C | UDFKC | INC | ACCA=7 IF | ||||
00811 | 4AAl | 4C | U0FK8 | INC | "H" KEY AND | ||||
00812 | 4AA2 | AC | UOFKA | INC | ACCA=O IF | ||||
00813 | 4AÄ3 | 4 C | INC | "A" KEY. | |||||
00814 | 4AAi. | 4C | INC | ||||||
00815 | 4AA5 | 4C | INC | ||||||
00816 | 4AA6 | 4C | INC | ||||||
00817 | 4ΑΔ7 | 06 | C6 | LOA | S0L7 | GET THE INST | |||
00H18 | 4AA9 | Cl | 02 | CMP | «•■5322 | <=322? | |||
00819 | 4AAB | 23 | 14 | 8LS | ONEBYT | yes; single 8YTE | |||
00620 | 4AAO | Cl | OF | CMP | fc'^337 | JMP OR JSQ ? | |||
00321 | 4AAF | 22 | 24 | HANK 3 | BHI | ΗΔ.ΝΚ1 | BRAMCH IF YES | ||
00822 | 4ABl | Pl | 09 | HANK | CMP | «9 | ALPHA KEY TOO BIG ? | ||
C0823 | 4A33 | 2E | OO | BGT | AERR | BRANCH IF YES | |||
00*24 | 4ARS | 54 | OOUG | LSR | INST=INST/2 | ||||
00825 | 4AR 6 | CB | 58 | 0NE3YT | ADD | «S130 | INST=INST+13O | ||
0 0826 | 4A88 | 07 | C6 | STA | S0L7 | RESTORE THE *EW INST. | |||
00827 | 4ABA | 83 | 64 | AOD | HlOO | ADD KEY "\'IJMPEP'< TT L | |||
00828 | 4ARC | 97 | C7 | STA | S0L7+1 | SAVE IN 2NO HYTE | |||
00829 | 4APE | 7E | 794C | JMP | CONT | CONTINUE IN SUPV | |||
008311 | 4ACl | Cl | Cl | CMP | 21330 1 | TWO BYTE IMST? | |||
00831 | 4AC3 | 23 | F5 | 3LS | HANK | BRANCH IF YES | |||
00832 | 4ACS | 81 | 09 | CMP | «9 | ALPHA KEY TOO BIG ? | |||
00833 | 4AC7 | PE | C9 | BGT | AFRR | BRANCH IF YES | |||
LABEL OFFSET
70 980-8/102 5
INSPECTED
Page 31 CJ8PG 06/04/75 36:54.05
00834 | 4AC9 | CO | 84 | HANKl | SUB | R | #f3264 | NEW INST = |
00835 | 4ACS | 37 | PSH | B | OLD INST - 264 | |||
00836 | 4ACC | 58 | "ASL | B | MULT BY 5 | |||
00837 | 4AC0 | 58 | ASL | B | + ACCA | |||
0083B | 4ACE | IB | HANK2 | ABA | ||||
00839 | 4ACF | 33 | PUL | 8 | ||||
00840 | 4AD0 | 18 | AD07 | ABA | PLUS "KEY rf" | |||
00841 | 4A01 | 97 | C6 | ERR0R7 | STA | A | S0L7 | RESTORE NEW INST |
00842 | 4A03 | ?.O | £0 | NK 7 | BRA | OOUG | CONT. IN SUPV | |
0084-3 | 4A05 | Cl | EF | COMT | CMP | R | SP357 | JMP INST ? |
00944 | 4A07 | 22 | 04 | 8WM | BHI | HANK2 | BRANCH IF YES | |
00845 | 4AO 9 | C6 | CO | LOA | B | «SS300 | LOAO JSR LBL | |
00B46 | 4A0B | 20 | DB | BRA | HANK3 | GO SAVE IT | ||
008&7 | 4A00 | C6 | Cl | LDA | R | fri33 01 | LOAD JMP LBL | |
00848 | 4A0F | 20 | 07 | BRA | HANK3 | CONTINUE" | ||
00849 | 484Θ | EOU | S484B | |||||
00850 | 7B40 | EQU | $7840 | |||||
00851 | 7BE3 | EOU | S78E3 | |||||
00852 | 794C | EQU | S794C | |||||
00853 | 7978 | EQU | S7978 | |||||
" 709808/1025
ORIGINAL
Page 32 CJBPG 06/04/75 36:54.05
00856 | 4AEl | 4C | C6 | ·» | NAM | A | UDF | EXECUTION OF ThE USER DEFINARL |
00357 | 4AE2 | 4C | 47 | «THIS | OPT | A | LI SY ι MEM | |
•00858 | 4AE3 | 4C | 2E | a | A | |||
00359 | 4AE4 | 4C | 07 . | UDFO | A | HANDLES | ||
00060 | 4AE5 | 4C | 20 | UDFN | A | |||
00861 | 4AE6 | 4C | 07 | UDFM | A | |||
00862 | 4AE7 | 4C | 5C8C | UDFL | ROUTINE | A | ||
00863 | 4AE8 | 4C | 06 | UDFK | A | |||
00864 | 4AE9 | 4C | OD | UDFJ | INC | A | ||
00865 | 4AEA | 4C | 2E | UDFI | INC | A | ||
00866 | 4AEB | 4C | 63 | UDFH | INC | A | ||
00867 | 4AEC | 4C | 497D | UDFG | INC | A | ||
00868 | 4AED | 4 C | 07 | UDFF | INC | A | ||
00869 | 4AEE | 4C | OB | UDFE | INC | A | ||
00870 | 4AEF | 4C | 06 | UDFD | INC | A | ||
00871 | 4AF0 | 06 | 7S40 | UDFC | INC | B | ||
00872 | 4AF2 | 26 | CA | UDF8 | INC | |||
00873 | 4AF4 | 97 | Ol | UDFA | INC | A | GET INST | |
00874 | 4AF6 | 96 | 04 | FMT | INC | A | BRANCH IF "CALL" INSTRUCTION | |
00875 | 4AF8 | 85 | 02 | INC | A | SAVE ALPHA KEY | ||
00876 | 4AFA | 27 | 12 | INC | S0L7 | GET SWITCH SETTING | ||
00877 | 4AFC | 80 | INC | FMTO | AUDIT TRAIL ? | |||
00378 | 4AFF | D6 | 0044 | INC | 8 | Tl | BRANCH IF NOT | |
00879 | 4Θ01 | 26 | 04 | LDA | TGL | ELSE PRINT | ||
00880 | 4803 | 96 | 09 | BNE | A | üS.20 | PAPER OUT ERPOR ? | |
00881 | 4805 | 88 | E7 | STA | A | UOFO | BRANCH IF YES | |
O0882 | 4307 | 80 | C9 | LDA | AUDITl | RESTORE ALPHß KEY | ||
00883 | Ί80Α | 2A | UDFO. | BIT | ERROR | ADD LABEL OFFSET | ||
00884 | 430C | 86 | C8 | 8EQ | A | UDF3 | FIND THE LAREL | |
00885 | 480E | 97 | CO | JSR | A | Tl | BRANCH IF FOUND | |
00886 | 4310 | 7E | LOA | «99 | LOAD ERROR | |||
00887 | 4313 | DF | FF | BNE | LSLSCH | SAVE IT | ||
00888 | 4815 | El | 09 | LDA | 8 | UDFl | OUTPUT IT | |
00239 | 4817 | 26 | IJDF3 | ADD | «11 | SAVE ROUTINE ADDRESS | ||
00890 | ftni9 | Al | 12 | UOFl | JSR | A | ERROR | CHECK TO SEE IF |
00891 | 431B | 27 | 8PL | EPR0R7 | TWO IDENTICAL LAPELS | |||
00892 | 4310 | 30 | LDA | UIP | ARE CONSECUTIVE ANO | |||
00893 | 4SlE | ec | STA. | l.X | IF SO* DON'T STACK THE RETURN | |||
00894 | 4821 | 26 | JMP | UDF4 | GET THE STACK POINTE» | |||
OD 895 | '+323 | «6 | UDF4 | STX | A | 2»X | 'SUBROUTINE OVERFLOW ? | |
00896 | 4G25 | 20 | CMP | UDF5 | 8RANCH IF NOT | |||
00«97 | 4B27 | 96 | BNE | A | LOAO ERfOR | |||
00898 | 4Θ29 | 36 | CMP | A | «P104 | OUTPUT IT | ||
00899 | 4824 | 96 | 8EQ | A | UDF2 | GET PPGM PNTP LO | ||
00900 | 432C | 8A | IJDF2 | TSX | A | «9 . | SAVE IT | |
00901 | 432E | 36 | CPX | A | UDF3-2 | GET OPr1M PMTR mi | ||
00902 | 482F | 86 | BNE | A | UPP+1 | AOD UDF FLAG | ||
00903 | 4331 | 97 | LDA | A | SAVE IT | |||
00904 | 4333 | 4F | BRA | A | UPP | ACCA=ALL ONES | ||
00905 | 4834 | 97 | U0F5 | LDA | A | «$C0 | SET «/S FLAG | |
00906 | PSH | |||||||
00907 | LDA | «$FF | CLEAP THE STF.P FLAG | |||||
00908 | ORA | PSFLG | ||||||
00909 | PSH | |||||||
00910 | LDA | SFLG | ||||||
STA | ||||||||
CLR | ||||||||
STA | ||||||||
709808/102 5
IHSPEGtED
Page 33 CJBPG 06/04/75 36:54.05
00911 | 4B36 | 97 | 39 | STA | A | RKWRT+1 | EMPTY THE KEY BUFFER | TAB | R | S0L7+1 | SAVE "ALPHA" NUMBER |
00912 | 483S | 7Ε | .797g | JMP | RWM | CONTINUE | ORA | B | a$7F | ADD ALPHA KEY TO INST | |
00913 | ANO | B | S0L7+1 | INSURE MSB=O | |||||||
0091* | •«"FORMAT STATEMENT" BUILDING | STA | A | RESTORE INSTRUCTION | |||||||
00915 | TST | ALP | ALPHA OUTPUT INSTRUCTION ? | ||||||||
00916 | 4Β33 | 16 | FMTO | BEO | A | a12 | BRANCH IF YES | ||||
00917 | 4B3C | DA | C7 | LDA | B | #SFO | LOAD SYNTAX ERROD | ||||
0091S | 483Ε | C4 | 7F | BIT | UDF3-2 | MAINFRAME CALL INSTRUCTION ? | |||||
00919 | 464Π | 07 | C7 | BEQ | CONT | ERROR IF YES | |||||
00920 | 4Β&2 | 4 0 | JMP | ALPHAK | CONTINUE IN SUPV | ||||||
00921 | 4843 | 27 | 09 | JMP | S51A0 | GO TO KEYSOARD ALP^1A | |||||
00922 | 484S | 86 | OC | EQU | S497D | ||||||
00923 | 4847 | C5 | FO | EOU | SSCSC | ||||||
00924 | 4843 | 27 | C3 | EQU | |||||||
00925 | 4q&3 | 7E | 79^C | COVl | |||||||
00926 | 4Β&Ξ | 7 E | 5UO | ALP | |||||||
0092? | 51» | iO | AL0HAK | ||||||||
00923 | 497D | L3LSCH | |||||||||
00929 | 5C8C | AUDITl | |||||||||
709808/1025 ORIGINAL INSPECTED
Page 34 CJRPG 06V04/75 36:54.05
00932 00933 00934 00935 00936 00937 00938 00939 00940
00941 009*2 00943 00944 00945
00946 00947 00948 00949 00950 00951.
00952 00953 00954 0095S 00956 00957 00958 00959 00960
00961 00962 00963 00964 00965 00^66 00967 00968
00969 00970 00971 00972 00973 00974 00975 00976 0O977
00978.
00979 0093(1 009Hl 00932 00983 00984
NAH OPT OTBL LISTtMEM
»DIGIT ACCEPTANCE TA8LE FOR "FLAG" AND "CALL" INSTRUCTIONS
«THE FOLLOWING TARLE ACCEPTS I/O DEVICE NIJ"-'3E3S A\D
»PACKS THEM INTO THE INSTRUCTION BEING RHILT.
■a
4351 4852 4853 4854
4855 4856 4Θ57 4858 4859 485A 4859
435C 435E 4361 4863
4C 4C 4C
4C
4C
4C
48
48
48.
48
97 C7
CF 7E6E
OF D3
7t 78E3
07
D6 D5 Ü4 D3 02 Dl DO
4366 4C 4867 4C 4363 4C 4569 4C
486A 4C 4363 4C 486C 4C 4560 4C
4-36E "4C 436F Π6
4371 2« 4973 4A 4374 9A
4376 4-373 7E
4373 4370
437F CE 4982 6F 08
9C 4B87 4389 7E
INC A INC A INC A INC A INC A INC A INC A ASL A ASL A ASL A ASL A STA A
LDX STX JMP S0L7+1 «PUN1 IT7
NK7
NK7
MOVE THE DEVICE CALL INTO THE MS FOUR RITS
OF ACCA
SAVE IT IN THE INSTRUCTION GET NEW SYNTAX TABLE AORS
SAVE IT FOR NEXT SEARCH
GO GET THE NEXT KEY
»THE FOLLOWING TABLE ACCEPTS FLAG NUMBER INFORMATION
«AND PACKS IT INTO THE FLAG INSTRUCTION 3E[MG PUILT.
C6 08
C6
C6
794C
C7
F9
0100 OO
OB F9 482 A
F9 F8 F7 F6 FS F4 F F2 Fl
FO
SNDOl PNOO
«ERASE
tr
EPASE ERAl
INC A INC A INC A INC A INC A INC A INC A INC A INC A LDA R
BMI DEC A ORA A STA A JMP STA A 8RA S0L7 RNDD
S0L7 S0L7 CONT S0L7+1 RNDDl
GET CURRENT INST
PRAMCH IF NOT A FL^G IMST
FLAG I = "FLAG 0"
GENERATE THE NEW INST.
SAVE IT
GO DO IT !
SAVE THE ROUNO SETTING
GO DO IT !
PROGRAM MEMORY ROUTINE.
LOX «256 INDEX=USE^ STATE ZE?O
CLR X NOP TO CURRENT STATE
INX 8U"P POINTER
CPX EOPM END OF PROGPAM MEMORY
BNE ERAl BRANCH IF NOT
JMP S4Ö2A · GO TO SPECIAL "END" ST«*T
709808/1025
Page 35 CJBPG 06/04/75 36:54.05
END
SYMBOL | TABLE | 0013 | ACTL | NAM ENDEX | 0001 | BDATA | 0002 | BCTL | 0003 | INPUT | 0004 | IOIN | 0005 |
ADATA | 0000 | 0019 | TGL | ROR 201 | 00 07 | UFLG | 0008 | RSFLG | 0009 | EOM | QOOA | EOPM | ΟΟΟζ |
EPROR | 0006 | 001F | RHD | OOOE | DIGFLG | OOOF | W2 | 0010 | Wl | 0011 | SFLG | 0012 | |
STKFLG OOOD | 0025 | TPl | NAM RTNEX | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0 013 | |
DCNT« | 0029 | TP4 | 001A | TP4S | 001B | TP5 | OOIC | TP5S | 0010 | TP6 | OQlE | ||
TP3S | 0052 | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | TIE | 0023 | TIl | 0024 | ||
TP6S | 0078 | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | T5 | O 02 A | ||
TlO | 00A8 | T3 | 002C | T2 | 002D | Tl | OQEE | ISTK | 0 0 2F | ISTACK | 0051 | ||
T 4 | OOCA | SPGM | 0054 | EXTRA | 0056 | BUFF | 0058 | REAL | 0068 | IMAG | Q070 | ||
TA | 00D6 | AT2 | 0080 | W | 0088 | XR | 0090 | YR | 009β | ZR | 0OAq | ||
ATI | 00F8 | LSTX | OOBO | BKWRT | 00B8 | BKKC | 008A | S0L7 | 00C6 | UPP | O OCi | ||
TR | 0000 | ALPHA | OOCC | 101 | OOCD | 102 | OODO | IT7 | O0D3 | FLAG | 00D5 | ||
UIP | OOAO | FILE | 0.0 D 7 | AR | 00D8 | RR | QOEO | CR | O0E8 | DR | OOFO | ||
TPOS | one | HT | 7EOO | TEPMN7 | 00-3D | IMED | 0040 | PARCD | OOCO | PAREX | 0080 | ||
ER | 7EA6 | PRGMl | 7BCA | EClUl 1 | 0168 | EQU12 | 0170 | E0U13 | 0178 | EQU14 | OOAC | ||
NTBL | 7EE2 | EGUl | OOBC | E0U2 | 00C4 | EQUl 6 | 0180 | EQU3 | OOCA | E0U4 | O0E2 | ||
EQU22 | 01C2 | EOU20 | 00A6 | EQU7 | 0160 | E0U15 | 0180 | RUMl | 7E6E | ST22 | 7ΕΔ0 | ||
EQU5 | 7FBO | EOU6. | 0146 | ST14 | 7EAC | STl | 7EBC | ST2 | 7EC4 | ST3 | 7ECA | ||
ST20 | 49E9 | E0U21 | 0140 | ST5 | 7FlC | ST21 | 7F40 | ST6 | 7F46 | ST7 | 7F^O | ||
ST4 | 49EF | STIl | 7F68 | EQU18 | 01C8 | ST12 | 7F70 | ST13 | 7F78 | TTl | 7F80 | ||
EQU17 | 4A22 | TT3 | 7FC2 | TT4 | 7FC8 | TT5 | 7FCE | NINE | 49E7 | . EIGHT | 4 of 3 | ||
TT2 | 4A80 | SIX | 49EA | FIVE | 49EB | FOUR | 49EC | THREE | 49E0 | TWO | 49EE | ||
SEVEN | 4A9B | ZERO | 49FO | LL | 49F5 | BLK | 4A13 | F4D | 4A16 | T30 | 4AlC | ||
ONE | 4AAl | BCOBIN | 4A26 | BCDl | 4A57 | 3CD8 | 4A50 | TYPE | 4A68 | GRPl | 4Λ7ί. | ||
DECPT | 4AA7 | CCNT | 4A8B | GRP? | 4A8E | AERR | 4A92 | UDFKO | 4499 | UOFKH | 4ASi | ||
FIMEl | 4AD0 | UOFKL | 4A9C | UDFKK | 4A9D | UOFKJ | 4A9E | UDFKI | 4A9F | UOFKH | |||
UDFKM | 4AEl | UOFKF | 4AA2 | UDFKE | 4AA3 | UDFKD | 4AA4 | UOFKC | 444S | UOFKB | 4i£ <b | ||
UDFKG | 4ΔΕ7 | HANK3 | 4488 | HAMK | 4Δ8Α | DOUG | 4A3E | OMEBYT | 4ACl | H Λ NKl | ti".; | ||
UDFKA | 4AE0 | A0D7 | 484B | ERR0R7 | 7R4Q | NK7 | 78E3 | CONT | 794C | BWM . | 797^ | ||
HANKE | 4813 | UDFN | 4AE2 | UDPM | 4AE3 | UDFL | 4AE4 | UOFK | 4AE5 | UOrJ | ilr ώ P *\ | ||
UDFO | UOFH | 4AE8 | UDFG | 4AE9 | UDFF | 4AEA | UOFE | 4ΔΕ3 | UOFD | & L· ^" C | |||
UDFI | 4353 | UDFB | 4ΛΕΕ | UDFA | 4AEF | FMT | 4AFO | UDFO | 4303 | UDF3 | 4BlO | ||
UDFC | 4866 | UDF4 | 481D | UDF2 | 4B27 | UDF5 | 482F | FMTO | 4838 | COVl | 484^1 | ||
UDFl | 4R6C | ALPHAK | SlAO | LSLSCH | 4970 | AUOITl | 5 ca C | D7 | 4B51 | 06 | 495? | ||
ALP | 4B7F | 04 | 4^54 | 03 | 4B55 | 02 | 4856 | Ol | 4857 | DO | 455* | ||
DS | ERRQQS | F8 | 4B67 | F7 | 4B68 | F6 | 4369 | F5 | 4364 | F4 | 4°6« | ||
F9 | ROR 201 | FS | 4B6D | Fl | 4R6E | FO | 436F | RfJODl | 4P78 | Pf-IOD | 437- | ||
F3 | ERAl | 4882 | |||||||||||
ERASE | 22 | ||||||||||||
TOTAL | |||||||||||||
5C-C-S-ER | MAM FORMAT | ||||||||||||
218 | ROR 201 | ||||||||||||
327 | NAM JSRJMP | ||||||||||||
»»«•«•ERROR 201 | |||||||||||||
528 | |||||||||||||
550 | |||||||||||||
709808/1025
ORIGINAL INSPECTEP
a ■
.Page 36 CJRPG 06/04/75 36:54.05
00215 | 4E09 | 96 | .- | 07 | - | OPT | LISTtMEM | IS SET, · | RER IS DISPLAYED. | ,1 | FC3 | LDA | A | TGL | WHAT MODE ? |
00218 | 2β | 11 | ■» | NAM | FORMAT | ΓΗΕ PRGM CNTR | BMI | PMODE | BRANCH IF PPGM MODE | ||||||
00219 | Q 6 | CC | »THIS | OPT | LISTfMEM | «AND DESTINATION ADDRESS APE DISPLAYED. | LDA | A | ALPHA | ALPHA FLAG SET ? | |||||
00220 | 27 | 05 | »IF IN | ORG | S4E09 | a- | BEQ | DONTT | BRANCH IF NOT | ||||||
00221 | BO | 5D75 | FRMTl | JSR | BLANK | ELSF RLANK BUFFER | |||||||||
00222 | 20 | 54 | BRA | FC 3 | DISPLAY "ALPHA" | ||||||||||
00223 | 7E | SCBC | JMP | FPMT+Sl4 | ELSE USE PUN FO=MdTTcR | ||||||||||
00224 | 4E09 | CE | OIOO | LDX | «256 | INOEX = USER STATE 0 | |||||||||
00235 | 4E08 | DF | C8 | STX | "UP P | UPDATE INCORRECT 3RG-M PNTR | |||||||||
00226 | 4E0D | 96 | 09 | LDA | A | RSFLG | ,RUNNING ? | ||||||||
00227 | 4E0F | 2B | F4 | IS THE | DISPLAY FORMATTER FOR CJ. | DONTT | BMI | DONTT | 'IF YES, DON'T FOP"AT HERE | ||||||
00228 | 4cll | BO | 5D75 | RUN | MODE. THE X | FC4 | JSR | BLANK | ELSE BLANK BUFFER | ||||||
00229 | 4E14 | 7A | ooce | »IF PRGM MODE | DEC | UPP | REMOVE SYSTEM AORS OFFSET | ||||||||
00230 | 4E16 | HE | C3 | PMOOE | LDX | UPP | GET PRGM PMTO | ||||||||
00231 | 4Ξ19 | 7C | ooce | INC | UPP | RESTORE SYSTEM OF-SST | |||||||||
00232 | 4ElC | f?O | 488C | JSR | RINBCD | CONVERT TO BCD | |||||||||
00233 | 4ElF | CE | 005« | LOX | «RUFF | GET RUFFER ADRS | |||||||||
00234 | 4E20 | 66 | 3A | LDA | A | K]J | GET THE "P" | ||||||||
00235 | 4Ξ22 | C6 | 03 | LDA | R | «3 | SET CHAR. COUNT | ||||||||
00236 | 4E25 | β D | 38 | BSR | LOAD | LOAO CHSRS. | |||||||||
00237 | 4Ξ2Β | «6 | 10 | LDA | "A | «16 | SET DIGITS CMTR | ||||||||
00233 | 4E2A | = 0 | 67 | 8SR | DGTS | GO LOAD T"E DIGITS | |||||||||
00239 | 4c2D | Q6 | 52 | LDA | A | TA | INSERT i-'OOE ? | ||||||||
00240 | 4Ξ3 0 | ?7 | 06 | BEQ | FCP | BRANCH IF »jot | |||||||||
00241 | 4Ξ33 | 0-3 | INX | pisiTi0N buffer ρ·π~ | |||||||||||
00242 | 4E35 | C» | INX | ||||||||||||
00?43 | 4E37 | A6 | 4C | LOA | A | «S4C | •GET "INSE0T" CHAR. | ||||||||
0 0 244 | 4E39 | 47 | OO | STA | A | X | SAVE IT | ||||||||
00245 | 4E3F! | 96 | C6 | LDA | A | S0L7 | GET CURRENT IMST | ||||||||
00246 | 4Ξ30 | s-l | 3E | CMP | A | «IU276 | LIGHT DISPLAY ? | ||||||||
00247 | "E3F | 22 | 2C | BHI | FCl | BRANCH IF YES | |||||||||
00243 | 4E41 | Qf> | CC | LDA | A | ALPHA | |||||||||
00249 | 4Ξ42 | ?6 | 19 | FC2 | BNE | FC3 | |||||||||
00?50 | 4E4 3 | OE | OB | LDX | EOPM | ||||||||||
00251 | 4Ξ45 | OF | 20 | STX | TP7 | ||||||||||
00252 | 4E47 | OE | C3 | LDX | UPP | ||||||||||
00253 | 4 E 4.9 | Df | IE | STX | TP6 | ||||||||||
00254 | 4Ξ43 | S.O | 4840 | JSR | SUB7 | ||||||||||
00 255 | 4Ξ4Ο | DE | 20 | LOX | TP7 | ||||||||||
00256 | 4E4F | 2F | B9 | BLE | FC4 | BRANCH IF UPP IS IN OCTH P | |||||||||
00257 | 4Ξ51 | 30 | 4£>BC | JSR | RINBCD | ||||||||||
0025=1 | 4E53 | CF | 0064 | LOX | «P-UFF + 12 | ||||||||||
00259 | 4E55 | ß 6 | 10 | LDA | A | «16 | |||||||||
00260 | 4E57 | 20 | 3A | 8PA | DGTS | LOAD DIGITS ΔΝ0 CET:JRN | |||||||||
00261 | 4E59 | CE | 0063 | LDX | «BUFF+ll | ||||||||||
00262 | 4£5C | ||||||||||||||
00263 | 4Ξ5Ε | ||||||||||||||
00264 | 4E60 | ||||||||||||||
00265 | 4E63 | ||||||||||||||
00266 | 4E66 | ||||||||||||||
00267 | 4Ε6^ | ||||||||||||||
00263 | 4E6A | ||||||||||||||
00269 | |||||||||||||||
00270 | |||||||||||||||
00271 | |||||||||||||||
709808/1025
©BJQINAt
Page 37 CJ8PG 06/04/75 36:54.05
0027? | 4E6D | 85 | 47 | LOAO | LOA | A | *S47 | R | ai6 |
00273 | 4E6F | C6 | 05 | LOA | B | «5 | X | ||
00274 | 4E71 | A7 | OO · | STA | A | X | Tl | ||
00275 | 4E73 | 4C | INC | A | T2 | ||||
00276 | 4E74 | 08 | INX | X | |||||
00277 | 4E75 | 5A | FC | DEC | B | P, | |||
00278 | 4E76 | 26 | F9 | FCl | BNE | LOAO | P | *3 | |
00279 | 4E78 | 39 | RTS | PFMTl | |||||
00260 | 4E79 | OE | ' 10 | LOX | W2 | B | T3 | ||
00281 | 4E7B | OF | 20 | STX | T2 | B | X | ||
00282 | 4E70 | CE | 0064 | LOX | f*8UFF+l2 | R | «?30 | ||
00283 | 4E80 | 86 | 10 | LOA | A | «16 | B | X | |
002R4 | 4E82 | 80 | 20 | BSR | OGTS | H | T3 | ||
00285 | 4E8& | CE | 0062 | LOX | 2RUFF+10 | INC | |||
00286 | 4E37 | 96 | C6 | LDA | A | SOL7 | |||
00287 | 4E89 | 81 | OF | CMP | A | fc3337 | |||
00288 | 4E«fl | 22 | OA | BHI | FO | PFMTl | |||
0028*3 | 4E8D | 8 1 | Cl | CMP | A | #!5301 | |||
00290 | 4E8F | 22 | OC | BHI | TD | PFMT2 | |||
00291 | 4E91 | 86 | 3F | LDA | A | *«;3F | ?i8«C | ||
00292 | 4E93 | C6 | 04 | FO | LDA | R | #4 | S4840 | |
00293 | 4E9S | 20 | OA | BRA | LOfiO | ||||
00294. | 4E97 | 86 | 30 | LDA | A | ÜS3D | |||
00295 | 4E99 | C6 | 02 | TD | LOA | R | «2 | ||
0 0.296 | 4E9°. | ?0 | 04 | BRA | LOAD | ||||
00297 | 4E90 | 09 | DEX | ||||||
00293 | 4E9E | 86 | 43 | LOA | A | «"S43 | |||
00299 | 4EiO | C6 | 04 | LDA | B | «4 | |||
00300 | 4EA2 | 20 | CD | *OGTS | BRA | LOAD | |||
00301 | |||||||||
003Π2 | OGTS | TRANSFERS 8CD OI | |||||||
00303 | PF^T2 | ||||||||
00304 | 4ΕΛ4 | C6 | 10 | PFMTl | LDA | ||||
003C5 | 4E46 | 6s7 | OO | CLP | |||||
00306 | ^EAt | 7<? | 002E | ROL | |||||
00307 | 4EA-3 | 79 | 0020 | ROL | |||||
00308 | 4EAt | 69 | 00 | ROL | |||||
00309 | 4E30 | 5Λ | DEC | ||||||
00310 | 4E=H | C5 | 03 | BIT | |||||
00311 | 4E-3 | 26 | F3 | 8\'E | |||||
00312 | 4E»^ | 07 | 2C | STA | |||||
0 0 313 | 4ER7 | E6 | 00 | LDA | |||||
0 0 3 U | <»E39 | CA | 30 | ORA | |||||
00315 | 4Ei<3 | £7 | 00 | STA | |||||
00316 | 4ESO | 06 | 2C | LDA | |||||
00317 | 4E3F | 26 | 01 | INC | BME | ||||
00318 | 4ECl | 39 | RTS | ||||||
00319 | 4EC2 | 11 | CBA | ||||||
00320 | 4EC3 | ?F | E3 | BLE | |||||
00321 | 4ECS | 08 | R INHCO | INX | |||||
00322 | 4EC6 | 20 | DE | SUB 7 | BRA | ||||
00323 | 43BC | EOU | |||||||
00324 | 4840 | EOU | |||||||
GET »ALPHA» MESSAGE
GET CHAR. COUNT SAVE THE CHAR-· GET NEXT CHARACTER POSITION THE BUFFER POINTER
DEC. THE CHARACTER COUNT
CONTINUE IF NQT FINISHED YET ELSE RETURN GET RCD ADDRESS
MOVE TO TEMPS FOR LOAO
SET BUFFER POINTER SET DIGITS COUNTER GO LOAD THE DIGITS
SET PNTR DECODE IMST FOP MESSAGE TYPE
GET "L3L-" MESSAGE GET CHAR. COUNT
LOAD AND RETUPN GET THE "A-'1 MASSA
GET CHAR. COUNT LOAD AND RETURN BACK UP ONE
GET "SEG-" MESSAGE
GET CHAR. COUNT LOAD ANO RETURN
LOAO OIGIT/SHIFT CT^ r.-jrn A
CLEAR BYTE IH BUFFE=
ROLL LSW LEFT ROLL MS"V LEFT
ROLL «IT ΓΙΤ0 RUFFF.a WO^O
OECD DIGIT/SHIFT CTP 4 SHIFTS YET?
NO» POLL NEXT RIT YES. SAVE OIGIT/SHIFT CTR
LOAD ACC* ^1ITH DIGIT JU^T LOAOEO
CONVERT IT TO ASCII RESTORE IT IN THE «UFF^P
RELOAD DIGIT/SHIFT CTR
DONE?
YES. RFTlJRN NO» LEADING Z»£O LOiOEO
YES. LOAD NEXT DIGIT OVF» IT MO» INC3 SUFFER PT»
LOAD NEXT OIGIT ImTO NEXT puFFE» LOC
709808/1025 ORiOlNAL INSPECTED
Page 38 CJBPG 06/04/75 36:54.05
00327 00328 00329 00330 .00331 00332
00333 00334 00335 00336 00337 00338 00339 00340 00341 00342
00343 00344 00345 00346 00347
00348 00349 00350 00351 00352 00353 00354 00355 00356 00357 00358 00359
00360 .0.0 36 L 0036? 00363 00364 00365
00366 00367 00368 00369 00370 0037t 00372 00373 00374 00375
00376 00377 00378 003?9 003*0 00301
4900
NAM OPT ORG
JSRJMP
LI ST,MEM
$4900
LI ST,MEM
$4900
49 00 4C 4901 4903. 4904' 4905
4906 8C 4909 49 0Θ C6 4900 D7 490F 4911 DE
4913 E6 4915 2A
4917 OS
4918 OF 491A 491C 491D 49IF
4920
4921 2B 4923 Cl 4925
4927 7E 492A..C1 492C 492E
2E
0044
06
09
06
69
CA
00
01
20 21
20
07
63
71
49B7
CO..
3A
04
»THIS ROUTINE IS THE EXECUTION CODE FOR ALL JSR »STATEMENTS. IT CHECKS FOR LEVEL OVERFLOW (>5)»
«SAVES THE RETURN ADRS ON.THE STACK. AND »TRANSFERS CONTROL TO THE PROPER JMP ROUTINE FOR
»THE TYPE OF TRANSFER OESIRED.
JSRS INC A SET THE JSR FLAG
STA A Tl TO A ONE
INS WIPE OUT OLD STACK
INS RETURN VECTOR
TSX STACK TO INDEX
CPX «IP104 SURROUTIME OVERFLOW?
BNE NOV BRANCH IF NOT
LDA B /#9 ' LOAD ERROR
STA B ERROR STORE IN ERROR WORD
BRA MWB RET. TO SUPV.
NOV LDX UIP GET INST PNTR
LDA B X GET THE INST
BPL- SING BRANCH IF SINGLE BYTE
INX ELSE INC RTN PNTR
SING ' STX TP7 SAVE IT TN TEMPORARY
LDA A TP7+1 ' GET THE LS BYTE
PSH A PUSH IT ONTO STACK
LDA A TP7 GET THE MS BYTE
PSH A PUSH IT ONTO STACK
TST 8 WHAT TY°E OF JSR
BMI NX BRANCH IF ABS OR LBL
CMP P m143 JSP X ?
BEO JSPLK2 BRANCH IF YES
JMP JSPLKl ELSF. OO JSR LBL X
. . CMP .8 _ a*<300 ABSOLUTE OR LABEL?
BEO JSPLKi GO Oo JSR LhL
BRA JSPLK3 GO OO JSR AflS
4930 4931 4932 4934 OE 4936 A6 493* 493A E6
493C 5B 4930 493E 493F 4C
4940 4942
2E CA 00 OF 01
21 20
»This routine «and absolute »entry point.
jmpabs ins
INS STA A
JSRLK3 LDX
LDA A AND A LDA R ASL R
LSR A ROR R INC A STA R
L2 STA A executes absolute jumps jsr's dependivg upon the
Tl UIP X
TP7S ΤΡ7 WIPE OUT OLO STACK
RETURN VECTOR
CLEAR JSP FLAG
INOEX=INST ADRS
ACCA=FIRSTTyTE
ACCA=MSB1S OF AORS
SB1S OF AORS OF THE AORS
H7 OF AORS
97 Ot=- ACCB=rf7 OF AORS
SAVE LS BITS SAVE MS HI TS
709808/1025
OKGlMAL INSPECTED
Page
06/04/75 36S54.05
- 62 -
00392 00333
003?5 00386 00337 00339 003*9
00390 00391 00392 00393 003^4 00395 0 0 396 00 397 00398 00399 00400
4944 4946 4948 494A 494C
4950 4953 4955 4956 495S 495A 455C 4950
495F 4960 4962
DO OC 9? 08 2Λ 60 ·*
OE Εβ OO 23 OO BC 0100 27 09
Eft OO Cl BA 22 Ol Ο»
OF C3 09
OF CA 20
004-12 00403 0 0 4.14
00405 004S6 004.17
0 04 08 00409
004 iO 00^11
• 0 0 412 00413
0 0414 00415
-OO^iV-O O * 17
00418 00419 00420 00421
00422 00423 00424
4956
4568 496A-
496C
49<,E
4570 4972
4578 4G7Q 4-J7A
31
31
97 2Ξ
ΠΕ CA
AS Ol
80 OF
2Λ EC
C6 0
07
Dt 2Ξ
27
31
31
7E 7973
SUB B EOPM+1 DO ADRS-cOPM
SBC A FOPM
. BPL TOOBIG EOPOR IF AORS
>= EOPM
LDX - TP7 ' GET THE ADDRESS
LDA B X ACCB=INST THERE
BMI LINK POSSIBLE 2ND BYTE?
CPX «256 STATE O?
BEQ - LINK YESi' CONTINUE
OEX NO? CHECK FIRST BYTE
LOA B X GET "FIRST" BYTE
CMP 8 «SDBB TWO BYTE INSTRUCTION
BHI LINK BRANCH IF NOT
OOIT INX INCREMENT ADRS
LINK STX UPP UPDATE THE PRGM PNTR
DEX BACK UP
STX - UIP UPDATE INST PNTR
BRA MWB RETURN TO SUPV. ·»
»THIS ROUTINE WILL SET THE USER INST PNTR
*ANO THE USER PRGM PNTR TO THE ADDRESS
*QP THE LABEL IN QUESTION IF IT FINDS THAT LBL.
»IF THE LABEL IS NON-EXISTANT♦AN ERROR
RESULT.
WIPE OUT OLO STACK
RETURN VECTOR Tl CLEAR JS=* FLAG UIP GET INST ADRS
IiX ACCA=THE LAßEL
LR-LSCH GO FINO ThE L^L
OOIT BRiNCH IF LABEL FOUNO
«8 LOAD ERROR
Ecc?QR SAVE IN =:r«OP WORO
Tl TEST JSR FLAG MWB 3RANCH IF NOT JSR
ELSF WIPE OUT TH£
STORED RETURN VECTOR
BWM RETURN TO SUPV
«■THIS ROUTINE ACCENTS A LAREL TN 4CCA ivO RETURNS
*tfITH THE P/w ÄDPS OF THAT LABEL IN THE
»INDEX REGISTER. SEARCHING BEGINS AT STATE 0
*OF THE USE» PPGM. IF NO LBL WAS FOUND.
«•THE N BIT WILL BF. SET.
JMPLBL INS INS - STA A
JSRLK4 LDX
LOA A BSR BPL "
CANT LOA R
C< STA E1 LDA a BEQ ■
INS INS
JMP
004?6 00*27 4970 004?» 49^0
00429 4J3?
00430 49^3
00431 43ή5
00432 4937
00433 4939 00434 00435 00436
CE OOFF
C^ er
03
9C
27 OA
El OO
26 F7
OR
Al OO
E 26 F2
L3LSCH LOX
LDA B
SEAPCH INX CPX SEO CMP R
BNE INX CMP A BNE "255 INIT STAPT ADOS
«£277 ACCR = LABEL INSTRUCTION
INC AORS
EOPM END OF MEMORY?
SOPRY RRAMCH IF YES X LAP-EL INST ?
SEAPCH 8RANCH IF MOT
ELSF INC AORS X IS IT THE PIG-iT
SEARCH IF NOT* SEARCH
9808/102 5
ORIGINAL IMSFEGTED
Page 40 CJPPG 06/04/75 36:54.05
00437 | 4990 | 39 | FF | RTS | •a· | «■5FF | yes; return | AND NO | OUT OF RANGE» AN ERROR | «· | Tl | WIPE OUT OLD STACK | IN THE | CONVERT. X-REG - , | Tl | WIPE OUT OLO. STACK | BRANCH IF FOUND | TO Wl J, W2 FOR A | THE H | OF INTEGER DIGITS |
00438 | 4991 | 86 | SORRY .LDA A | »THIS ROUTINE | SET N BIT (ERROR) | CHANGE IN | »THIS ROUTINE | XR | RETURN VECTOR | FOUND | GET MSB'S OF RESULT | RETURN VECTOR | ELSE ERROR | »rtCO TO BIMARY CONVERSION. ON | REGISTER ADDRESS | |||||
00439 | 4993 | 39 | RTS | RETURN | »POINTERS WILL OCCUR. | ADRSO | CLEAR JSR FLAG | INC PAGE ADRS | XR | CLEAR JS^ FLAG | «ENTRY. ACCP= | |||||||||
00440 | SETS | ■ο | ACCB=X REG EXP | GET LS BITS | ZOOP | PRESET ACCA FOP LA^EL 0 | TRANSFERS THE INTEGER | »AND INDEX = | ||||||||||||
00441 | »THE USER PPGM PNTR | THE USER INST PNTR AND | JMPX INS | «4 | BRANCH IF NEG EXP | CHECK FOP VALID ADDRESS | ACCR=X-REG EXPONENT | X REG | ||||||||||||
00442 | »THE INTEGER | TO THE ABSOLUTE VALUE OF | INS | INCREMENT EXPONENT | LOAD ERROR | «2 | IF NEG.» FIND LAPEL Q | |||||||||||||
00443 | PART OF THE X REGISTEP. IF THE | STA A | COMPARE TO +4 | GO CHECK FOR JSR | CANT | ACCR=« OF INT DIGITS | ||||||||||||||
00444 | »RESULTANT ADRS IS | JSRLK2 LDA B | TOOBIG BRANCH·IF BIGGER | GET ADRS 0 | TSFRl | MORE THAN 2? | ||||||||||||||
00445 | »WILL RESULT | BMI | TSFPl | CONTINUE | TP7 + 1 | ERROR IF YES | ||||||||||||||
00446 | INC B | TP7 | CONVERT X-REG | |||||||||||||||||
00447 | CMP B | THE USER INST PNTR AND | GET BINARY RESULT | |||||||||||||||||
00448 | 4994 | 31 | BGT | TP7+1 | TO THF AORS OF THE" | LPLSCH OO SEAPCH FOR LAREL | ||||||||||||||
00449 | 4995 | 31 | 2E | BSR | L2 | X REG. IF THAT | DOIT | |||||||||||||
00450 | 4996 | 97 | 90 | LDA A | #24 | . NO CHANGE IN | CANT | |||||||||||||
00451 | 4998 | 06 | 12 | INC A | CK | »POINTERS WILL OCCUR. | ||||||||||||||
00452 | 499A | 2fl | LDA R | £256 | ||||||||||||||||
00453 | 499C | 5C | .04 | BRA | LINK | JMPLBX INS | ||||||||||||||
00454 | 499D | Cl | 09 | TOOBIG LDA B | INS | |||||||||||||||
00455 | 49QF | 2E | 28 | BRA | SETS | STA A | ||||||||||||||
0 0456 | 49Al | 80 | 20 | ADRSO LDX | »THE USER PRGM PNTR | JSRLKl CLR A | ||||||||||||||
00457 | 49A3 | 96 | BRA | »LABEL FOUMD | LDA B | |||||||||||||||
00458 | 49A5 | 4C | 21 | »L4?EL IS MOT | BMI | |||||||||||||||
00459 | 49A6 | .06 | 93 | INC B | ||||||||||||||||
00460 | 49A8 | ?0 | 18 | CMP' 8 | ||||||||||||||||
00461 | 49AÄ | C 6 | C4 | BGT | ||||||||||||||||
00462 | 49AC | 20 | 0100 | BSR | ||||||||||||||||
00463 | 49AE | CE | AA | LDA A | ||||||||||||||||
00464 | 49*1 | ?0 | ZOOP BSR | |||||||||||||||||
00465 | BPL | |||||||||||||||||||
00466 | BRA | |||||||||||||||||||
0 0 467' | ||||||||||||||||||||
.0 0468 | »THIS ROUTINE | |||||||||||||||||||
00469 | - | «OART OF THE | ||||||||||||||||||
00470 | ||||||||||||||||||||
00471 | ||||||||||||||||||||
00472 | 49=53 | 31 | ||||||||||||||||||
00473 | 493.4 | 31 | 2E | |||||||||||||||||
00474 | 49^5 | 97 | ||||||||||||||||||
00475 | 49Β7 | 4F | 90 | |||||||||||||||||
00476 | 49 ? 8 | 06 | 09 | |||||||||||||||||
00*77 | 4VRA | ?Q | ||||||||||||||||||
0047*5 | 49P.C | 5C | 02 | |||||||||||||||||
00479 | 49RD | Cl | AF | |||||||||||||||||
004H0 | 49BF | RE | 08 | |||||||||||||||||
0 0 4.81 | 49Cl | 80 | 21 | |||||||||||||||||
00482 | 49C3 | 96' | 86 | |||||||||||||||||
00483 | 49C5 | 80 | 93 | |||||||||||||||||
004.84 | 49C7 | 2Δ | A5. | |||||||||||||||||
00485 | 49C9 | 80 | ||||||||||||||||||
00486 | ||||||||||||||||||||
00437 | ||||||||||||||||||||
00488 | ||||||||||||||||||||
00489 | ||||||||||||||||||||
00490 | ||||||||||||||||||||
0 0 491 | ||||||||||||||||||||
7 0 9808/1025
ORIGINAL INSPECTED
Page 41 CJBPG 06/04/75 3.(S:54.05
00492 | 49CB | CE 0090 | »SPECIAL ENTRY | 8 | FOR X-REG ONLY | PRESET THE INDEX' |
00493 | 0 | |||||
00494 | 49CE | EE 02 | TSFRl LOX | A | «XR | GET 4 MANTISSA DIGITS |
00495 | 49D0 | DF 10 | ■a | SAVE IN BCD CONV V-(OROS | ||
00496 | 4902 | CO 04 | TSFR LOX | 2»X | ACC·3= -(DIGIT SHIFT COUNT) | |
00497 | 4904 | 27 OE | STX | A | W2 | no shift; return |
0049a | 4906 | S 6 0 4 | SUB | «4 | ELSE LOAD ROTATE COUNTER | |
00499 | 490B | 74 0010 | 8EO | B | TSFRC | SHIFT MOST SIGNIFICANT WQRO |
0O5OO | 490B | 76 0011 | PBl LOA | «4 | ROTATE LSW | |
00501 | 49OE | 4A | RB LSR | W2 | DEC ROTATE COUNTER | |
00502 | 49DF | 26 F7 | ROR | wi | CONTINUE IF NOT 0 | |
00503 | 49El | SC | DEC | INC DIGIT SHIFT COUNTER | ||
00504 | 49E2 | 26 F2 | BNE | PB | CONTINUE IF NOT 0 | |
00505 | 49E4 | 7E 4A26 | INC | CONVERT TO BINARY | ||
00506 | 797B | BNE | RBl | |||
00507 | 4Δ26 | TSFRC JMP | BCDBIN | |||
00508 | 7CC0 | BWM EOU | 1:7976 | |||
00509 | 7CC0 | 4983 | BCOBIN EOU | S4A26 | ||
00510 | 7CC2 | 4900 | ORG | S7CC0 | ||
00511 | 7CC4 | 4994 | FOB | JHPLBX | ||
00512 | 7CC6 | 4900 | FOB | JSRS | ||
00513 | 7080 | FOB | JMPX | |||
00514 | 7080 | 4900 | FOB | JSRS | ||
00515 | 7Qfl? | 4964 | ORG | S7080 | ||
00516 | 7DC0 | FDB | JSRS | |||
00517 | 70CO | 49 0 0 | FOB | JMPLBL | JSRS ι JSRS » JSPSiJSRS.JS-S.JS0S 1JSRS«JSRS | |
00518 | 7000 | 4900 | ORG | S7DC0 | JSRS. JSSSi JSRS «JS^S. JSWS ♦ JS^Si JSP"=:. JSP. S | |
00519 | 7OE0 | 4930 | FOB | JMPABS. | ||
00520 | 70 E3 | 4930 | FOB | JMPA8S. | ||
00521 | 70F0 | 4O30 | FDB | JMPARS. | ||
00522 | 7OFP, | 4Q-50 | FOB | JMPABS· | ||
00523 | FOB | .JMPARS, JSfPaBS. JMP ABS | ||||
00524 | FOB | .JMPARSiJMPABS<JMPARS | ||||
00525 | ,JMPARSiJMPABS.JMPABS | |||||
. JMPABS»JMPARS,JMPABS | ||||||
70 9808/102 5
Page 42 CJ9PG 06/04/75 36S54.05
00528 | 482A | D6 | D5. | NAM | F! | A | ENDEX | - | GET MEMORY SECUPE IN |
00529 | C4 | FE | OPT | 8 | A | LI ST,MEM | FOR "ERASE" ROUTINE | CLEAR SECURE BIT | |
00530 | 07 | 05 | ORG | 8 | S482A | RESTORE FLAG | |||
00531 | 97 | 52 | A | FLAG | CLEAR INSERT MODE | ||||
00532 | 482Δ | #$FE | |||||||
00533 | 4fi2C | »THIS ROUTINE | FLAG | THE END STATEMENT | |||||
00534 | 482E | TA | |||||||
00535 | 4B30 | 8E | 0051 | EN1DEX LOS | RESET STACK POINTER | ||||
00536 | 97 | 08 | »SPECIAL ENTRV | STA | EXECUTES | CLEAR USER FLAGS | |||
00537 | 97 | 09 | STA | CLEAR R/S FLAG | |||||
00538 | CE | 0100 | LDA | LDX | #ISTACK | 256=USE" STATE 0 | |||
00539 | 483? | 7 E | 4950 | AND | JMP | UFLG | PRESET UPP AND RETUR | ||
OOSiO | 4B35 | STA | ORG | PSFLG | |||||
005*1 | 4837 | 4832 | STA | FOB | #256 | ||||
00542 | 4839 | LINK | |||||||
005*3 | 4 S3 C | S7D62 | |||||||
00544 | 7D62 | ENDEX | |||||||
00545 | 7D62 | ||||||||
00546 | |||||||||
00547 | |||||||||
70980*8/1025
Page 43 CJFiPG 06/04/75 36:54.05
00550 00551 0055? 00553 00554 00555 00556 00557 00558
00559 00560 00561 00562 00563 00564 00565 00566 00567 00568 00569 00570
00571 00572 00573 00574 00575 00576 00577 00573 00579 onseo
4859
NAM
OPT
'ORG
RTMEX
LISTiMEM
£4859
4850 48 5 A
4858
485F 4361 4962 4363 4865 4367
4868 4364
486F 4871 4373
4375 4877
4374 4870 7D66 7066
31
31
30
PC 0052
27 OC
32
•40
2B OE
97 CA
32
97C8
7E 7978
86 OA
97
20 F7
R4 3F
97 C8
32
97 C9
7F 0009
20 ES
4359 IF NOT* AN ERROR WILL RESULT
WIPE OUT OLD STACK RETURN VECTOR STACK TO INDEX «ISTACK+1 «ÄS A GOSUB EXECUTED
»THIS ROUTINE HANDLES THE RETURN FROM SUBROUTINE »INSTRUCTION. IT FIRST CHECKS TO SEE IF 4
»HAS BEEN EXECUTED.
■&
RTNcX INS
INS
TSX
CPX
BEO
PUL
TST
BMI ' STA
PUL
STA
RETN JMP NOJSR LDA
STA
ÖRA RTMEXl AND
STA
PUL
STA
CLR
3RA
ORG
FDB
A A A
A A
A A A A
NOJSR
RTNEXl UIP
UIP +
«WM
«10
ERROR
PETM
«•53F
UPP
UPP+1
PSFLG
RETN
S7D66
RTNEX BRANCH IF NOT ELSf=" GET '-ISW OF ADRS
UDF RETURN ? 9RANCH IF YES SAVE IN INST PNTR GET LSW OF ADRS SAVE IN INST PMTR
RETUON TO SUPV LOnD ERROR SAVE IN ERROR WORD RETURN TO SUPV
REMOVE UDF FLAG RESTORE PPGM PMTR HI
GET PRSM PMTR LO
RESTORE IT STOP RUNNING RETURN TO
709808/102
Page 44 CJ8PG 06/04/75 36:54.
05
END
SYMBOL TABLE
AOATA | 0000 | ACTL | 0001 | BDATA | 0002 | BCTL | 0003 | INPUT | 0004 | IOIN | 0005 |
ERROR | 00O* | TGL | 0007 | UFLG | 0008 | RSFLG | 0009 | EOM | onoA | EOPM | oooe |
STKFLG | 000D | RNO | OOOE | DIGFLG | OOOF | W 2 | 0010 | Wl | ooii ■ | SFLG | 0012 |
DCNTR | 0013 | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0018 |
TP3S | 0019 | TP4 | OOIA | TP4S | 0010 | TP5 | OOIC | TP5S | 001O | TP6 | 001E |
TP6S- | 001F | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0023 | TIl | 0024 |
TlO | 0025 | T9 | 0 026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | T5 | 002A |
T4 | 0 028 | Τ3· | 002C | T2 | 0 020 | Tl | 002E | ISTK | 002F | ISTACK | 0051 |
TA | 0052 | SPGM | 0054 | EXTRA | 0056 | 9UFF | 0058 | PEAL | 0068 | IMAG | 0070 |
ATI | 007R · | AT2 | 0080 | W | 0088 | XR | •Q090 | YR' | 0098 | ZR | OOAO |
TP | 0OAS | LSTX | OORO | BKWPT | 0088 | BKKC | 008A | S0L7 | 00C6 | UPP | 00C8 |
UIP | O OCA | ALPHA | OOCC | 101 | O OCD" | 102 | OODO | 177 | 00O3 | FLAG | 00D5 |
TPOS | 00D6 | FILE | 00D7 | AR | 00D8 | BR | OOEO | C» | 0ΠΕ8 | OR | OOFO |
ER | O OFR | SDBR | 008A | MT | 7EOO | TERMM7 | 0030 | IMED | 0040 | PARCD | ÖOCO |
PAREX | 0080 | NTBL | 0000 | DOTS | 5ECO | PRTDRV | 6020 | FRMT | 5CA8 | BLANK | 5075 |
LDMSG | 578Γ) | ROLLO | 55B2 | ROLLU | 57Fl | PSO | 550 Δ | TXL | 55E9 | STKUP | 55EF |
MAD | 749B | CMP | 74AA | NQR | 74D6 | TXW | 7424 | TXXR | 7438 | EXXR | 7452 |
ARSP | 7538 | OVUNF. | 7586 | OVERF | 75DD | XRO | 74OA | XRNINE | 75C8 | UNDRF | 75Fl |
IMULT | 7639 | QDG | 76T69 | FPA | 75FC | FPS | 75F6 | FPM | 7735 | FPD | 7793 |
FPAEX | 7630 | FPMEX | 7780 | LSHIFT | 7521 | ZEROV | 7489 | XZEPOO | 7416 | XZER02 | 7417 |
PFCIP | 73E6 | TXRX | 73F3 | CONST | 6800 | FPD8RC | 6898 | TAN | 6849 | .ATN | 69C3 |
DSZERO | 6 446 | NTLN | 6A58 | EXPN | 6AC9 | SlN | 6894 | COS | 689A | ASIN | 6HF2 |
ACOS | 68F7 | PHl | 6C50 | PH2 | 6CPD | PH 3 | 6D34 | PH4 | 6000 | LSFT8 | 6E47 |
SORT | 6E65 | MAD8 | 6F2C | CMP8 | 53E4 | IOUPX. | 6F52 | LOGlO | ftFAT | YUPX | 6FE9 |
RTOP | 7328 | PTOR | 7386 | FRMTl | 4E09 | LIONTT | 4E16 | FC4 | 4E19 | PMODt | 4ElE |
FC2 | 4E47 | FC3 | 4E6A | LOAO | 4E71 | FC | 4E78 | FCl | 4£79 | FO | 4ΙΪ9 7 |
TD | 4E9D | DGTS | 4EA4 | PF^T2 | 4EA6 | PFMTl | 4E48 | IMC | 4EC2 | aiMPCO | 453C |
SU87 | 4940 | JSRS | 4900 | NOV | 4911 | SING | 4918 | NX | 49?4 | JMPji a S | 4930 |
JS3LK3 | 4934 | L2 | Λ342 | DOTT | 495C | LIMK | 4950 | JN1PLBL | iU64 | JS^L*4 | 496« |
CANT | 4970 | CK | 4972 | MWB | 497A | LBLSC* | 497D | SEARCH | 49S2 | ςΓι^ργ | 4 991 |
JMPX | 4994 | JSRLK2 | 4998 | TOOPIG | 494Δ | 4DRS0 | 49AE | J1·'F-LBX | 4QR3 | JSRL*1 | 4987 |
ZOOP | 49C5 | TSFRl | 49C8 | TSFR | 49CE | RBl | 4906 | RB | 4QQ3 | TSFRC | 49E4 |
8WM | 7978 | BCD8IN | 4A26 | ENDEX | 4832 | RTNEX | 4859 | RETN | 486A | NOJSP | 4β60 |
RTMEXl | 4873 |
TOTAL ERRORS
««««ERROR 201 218 NAM RSEXR
201
NAM SUIADO £01
282 NAM 3INBC0
««««ERROR 201 325 NAM CJUFLG
709808/1025
OBIQlNAL IMSPECTED
-•68 -
Page 45 C.JRPG "6/04/75 36:54,05
00215 | 4800 | OF | 09 | β | OPT | A | L I ST»MEM | OISARLE INTERRUPTS |
00218 | 96 | »THIS | NAM | A | RSEXR | GET P/S FLAG | ||
00219 | IF | OPT | LIST,MEM | SHIFT 37 TO C | ||||
00220 | ?5 | 10 | RSEX | 0R6 | S4800 | 8RAMCH IF B7 WAS A | ||
00221 | 4800 | 28 | A | BRANCH IF 56 IS 1 | ||||
00222 | 4801 | 44 | A | B7=B6=0 | ||||
00223 | 4803 | 43 | CS | B7=R6=1 (RUN!) | ||||
0 0 224 | 4814 | OE | GET PSGM PNTP | |||||
00225 | 480 6 | 09 | CA | SUBTRACT 1 | ||||
00226 | 450B | DP | 8 | SAVE IN INST PNTR | ||||
0 0 227 | 48.19 | 5F | B9 | POUTINE | B | PROCESSES THE RUN-STOP KEY | ||
00228 | 4R0A | D7 | 12 | R | CLEAR KEY BUFFER | |||
00229 | 480C | D7 | 09- | SEI | A | CLEAR STEo FLAG | ||
00230 | 4*510 | 97 | LDA | RSFLG | RESTOPE ME1·* FLAG | |||
0 0231 | 480F | OE | ASL | ENARLE INTERRUPTS | ||||
00232 | 4810 | 39 | BCS | A | B70N | RETURN | ||
00233 | 4SI? | 4F | CA | ZIP | BMI | B60N | CLEAR 3/S FLAG | |
00234 | 4314 | DE | C3 | RACK | LSR | GET INST DNTR | ||
00235 | 4316 | OF | 40 | COM | B | SAVE P^GM PNTR | ||
00236 | 4817 | ce | 08 | »50Ν | LOX | P | UPP | PRESET ACCR |
00237 | 481* | 0Λ | 08 | DEX | θ | SET THE ENTOY FLA<3 | ||
00238 | 4819 | 07 | EF | ZIPl | STX | UIP | RESTORE FLAGS | |
00239 | 48 IB | 20 | EF | CLR | GO STOPE FI.AG | |||
002S-0 | 4810 | 2i | STA | Δ | BKWRT+1 | RETURN IF 86=0 | ||
0 0 241 | 43 IF | 4« | EA | STA | SFLG | 0 TO 3? | ||
002*2 | 4821 | 20 | STA | RSFLG | RETURN | |||
0 0 2^3 | &823 | 30 | R70N | CLI | ||||
002i4 | 4«'.5 | 4?. | RTS | |||||
002-5 | 4 3 57 | CLR | ||||||
002*5 | 4P?3 | LOX | UIP | |||||
00247 | 7D5O | STX | UPP | |||||
0 0 2^8 | 7D60 | LOA | if540 | |||||
0ft2->9 | ORA | UFLG | ||||||
0 0 250 | STA | UFLG | ||||||
00251 | BRA | 7IP | ||||||
BPL | PACK | |||||||
LSR | ||||||||
3RA | ZIP | |||||||
ORG | S7Q60 | |||||||
FOB | 3SEX | |||||||
709808/1025
OR'GIHAL !HSFS
Page 46 CJRPG 06/04/75 36:54.05
00254 00255 00256 00257 00258 00259 00260 00261 00262 0 0 263
00264 00265 00266 00267 00268 0 0 269 00270 00271 00272
00273 00274 00275 00?76 00277 00278
00279
4840
NAM | SUBAOD | |
OPT | LI ST,MEM | |
* ORG | S4840 | |
a- | ||
SUBADO | - 16 BIT 2'S COMP 4D0/SUBTRACT | |
■a· | ||
BRAD MILLEP 3/4/74 |
4840 73 4843 73 4846 OE 4348 08
4849 DF' 4843 96 4840 9B 484F 97 4851 96 4353 99
4855 97 4857 39
»THIS SUBPOUTINE PESPOPMS EITHER TP7-TP6 OR ΓΡ7+ΤΡ6
«DEPENDING UPON TH£ ENTRY POINT.WHEfE TP7 4NO
«TP6 ARE »16 BIT WORDS" STORED IN MEMORY. THE CONTENTS
*OF THE INDEX ARE DESTROYED.
«•THE RESULT IS STORED IN TP7 AND TP7+1
00 IE SUB7 COM TP6 1«S COMP' THE MSB'S
001F COM TP6+1 l'S COMP LSB'S
IE LDX · TP6 INOEX=THE NUMBER
INX INC FOR 2'S COMP
IE STX TP6 RESTORE THE NUMBER
21 ADD7 LDA A TP7S GET LS BITS
IF ADO A TP6S ADD
21 STA A TP7S RESTORE
20 LDA A TP7 GET MS BITS
IE ADC A TP6 AOD
20 STA A TP7 RESTORE
RTS RETURN
TO'9808/102
ORIGINAL INSPECTED
Page 47 CJRPG 06/04/75 36:54.05
00282 | 488C | OF | * | * | * | NAM | AND | Tl | BINBCD | - | . THE MAX INPUT IS |
00283 | 7F | »THIS I | OPT | LIST,MEM | DOES A BINAPY TO 8CD CONV | DIGITS ARE STORED | |||||
00284 | 7F | ORG | STX | S48BC | PEGISTER | DIGITS IN T2 | |||||
00285 | CE | CLR | . THE BCD | ||||||||
00286 | OF | CLR | WITH MS | SAVE 8INARY NUMBER | |||||||
00287 | BO | LDX | CLEAR LS BCD ACC | ||||||||
0028& | 2R | 20 | STX | TP7 | CLEAR MS BCD ACC | ||||||
00289 | 4BRC | 7C | 002Ε | JSR | Π | PRE0ARE TO SUST 1000 | |||||
00290 | 483E | 20 | 0020 | ROUTINE | BMI | T2 | SAVE THE SUBT VALUE | ||||
00291 | 48Cl | RO | FC13 | »ON THE INDEX | INC | «-1000 | DO TP7=TP7+TP6 | ||||
00292 | 48C4 | 20 | IE | »DECIMAL 9999 | BRA | - - | TP6 - | RESTORE IF NEGATIVE | |||
00293 | 48C7 | CE | 4848 | «IN T2 | JSR | ADD7 | ELSE INC LS BCD WORD | ||||
00294 | 48C9 | 20 | 05 | » | BRA | RESTOR | CONTINUE SUBTRACTING | ||||
00295 | 43CC | CE | 002E | RIMBCD | LDX | Tl , | RESTORE BINARY » | ||||
00296 | 43CE | 20 | F6 | BRA | MOREl | STORE BCD OIGIT | |||||
00297 | 480Γ | 9Α | 4840 | LOX | SU87 | PREPARE TO SU8T 100 | |||||
00298 | 48D3 | 9Δ | 11 | BRA | STOBCD | GO OO 100'S | |||||
00299 | 4806 | 97 | FF9C | STARTl | LDA | A | #-100 | PREPARE TO SUBT 10 | |||
00300 | 4808 | 39 | EA | MOREl | ORA | A | STARTl | go no lo»s | |||
00301 | 49Π3 | 96 | FFF6 | STA | A | «-10 | GET LS 3CD DIGIT | ||||
00302 | 4800 | 44 | ES | RTS | STARTl | COMBINE WITH LS 8CO WORO | |||||
00303 | 48Ε0 | C6 | 21 | LOA | A | ΤΡ7+1 | RESTORE THE RESULT | ||||
00304 | 43Ε2 | OC | 2E | RESTOR | LSR | A | Tl | CONVERSION COMPLETE | |||
00305 | 43Ε4 | 79 | 2E | LOA | B | Tl | GET LSB«S OF SUBT WORD | ||||
00306 | 48Ε6 | 79 | 8IN3 | CLC | SHIFT RIGHT FOR TEST | ||||||
00307 | 43Ε8 | 5Α | IF | ROL | ΤΡ6 + 1 | ACCR==!OTATE COUNT | |||||
003Π9 | 4ÖE9 | 2ft | RIN2 | ROL | CLEAR C FOR ROTATE | ||||||
00309 | 48Eq | 44 | 04 | DEC | OC) | *4 | ROT LEFT LSW,C=B7 | ||||
00310 | 48EC' | 25 | 9INl | ONE | ROT LEFT MSWtBO=C | ||||||
00311 | 48FE | 44 | 002E | LSR | A | Tl | OEC ROTATE CNTR | ||||
00312 | 48EF | 25 | 002O | BCS | T? | 4 ROTATES YET? | |||||
00313 | 48F2 | 20 | LSR | A | SHIFT LSR TO C | ||||||
00314 | 48F5 | F6 | STORCO | BCS | ROLLIT | C=I MEAMS 10"S DONE | |||||
00315 | 48F6 | BRA | SHIFT AGAIN | ||||||||
00316 | 48F8 | E7 | RINl | C=I MEANS 100'S DONE | |||||||
00317 | 43F9 | ROLLIT | 1000«S DONE BY DEFAULT | ||||||||
00318 | 43FB | DF | ΒΙΝ2 | ||||||||
00319 | 48FC | 08 | ΒΙΝ3 · | ||||||||
00 320 | 4BFE | ||||||||||
00321 | |||||||||||
00322 | |||||||||||
7 09 8 0*8 / 1 0 2 5
Page 48 CJBPG 06/04/75 36:54.05
00325 | 4380 | ■ | 49 | « | NAM | CJUFLG | * | MILLER 3/4/74 | ROUTINE HAS 8 | . ON ENTRY | FL^G. ON | ENTRY POINTS. 1 FOP EACH | * | SUBROUTINE | FLAG. OM | ENTRY POINTS. 1 FOR | ROL | A | THE C BIT IS |
00326 | 49 | « | OPT | FLAG | BIT MUST | THE CARRY | . ACCA MUST <3E ZERO AND | ENTRY. ACCA MUST | ROL | A | SET AND ROTATED | ||||||||
00327 | 49 | « | ORG | LIST.MEM | CARRY | BE SET. | ENTRY POINTS. 1 FOR | «BE ZERO AMO THE CARRY BIT MUST BE SET | ROL | A | THRU ACCA STOPPING - | ||||||||
00328 | 49 | • | $4860 | FLAG SUBROUTINES | A | A | ENTRY. ACCA MUST BE | POL | Λ | AT THE COORECT | |||||||||
00329 | 49 | « | BRAO | ROL | A | A | THE C BIT IS SET | 3IT MUST BE SET." - | IFS8 | ||||||||||
00330 | 49 | «««SET USER FLAG*** | ROL | A | A | AND POTATED THRU ACCA | IFS7 | ||||||||||||
00331 | 49 | USER | » | ROL | A | A | STOPPING 4T THE | THE C BIT IS | IFS6 | ||||||||||
00332 | 49 | *THIS | ROL | A | A | CORRECT POSITION FOR | SET ANO »OTATED | IFS5 | |||||||||||
00333 | 9A 08" | «USER | ROL | A | A | EACH FLAG. R7=FL6 8 | THRU ACCa STO=PIMG | ||||||||||||
00334 | 97 08 | «THE | ROL | A | A | WHILE 80= FLG 1 | AT THE CORRECT | ||||||||||||
00335 | 39 | β | ROL | A " | A | LOCATION FOR EACH | |||||||||||||
00336 | SF8 | ROL | A UFLG | A | FLAG. 37= FLG 8 | ||||||||||||||
00337 | 4880 | SF7 | ORA | A UFLG | A UFLG | »OR» IN THE USE» FLG WORD | WHILE 80= FLG 1 | ||||||||||||
00338 | 4381 | SF6 | STA | A UFLG | RESTORE NEW STATUS | ||||||||||||||
003^9 | 4882 | SF5 | RTS | RETURN | . 1»S COMP ACCA | ||||||||||||||
00340 | 4883 | SF4 | USER FLAG | CLEAR THE FLAG | |||||||||||||||
00341 | 48 B 4 | SF3 | CLEAR | RESTORE THE FLAG WORO | |||||||||||||||
00342 | 4385 | SF2 | ROUTINE HAS 8 | RETURN | |||||||||||||||
00343 | 4386 | 49 | SFl | USER | |||||||||||||||
00344 | 4887 | 49 | AND | IF FLAG SET SUBROUTINE | |||||||||||||||
00345 | 4388 | 49 | |||||||||||||||||
00346 | 488A | 49 | ROL | ||||||||||||||||
00347 | 43 8 C | 49 | ROL | ROUTINE HAS 8 | |||||||||||||||
00348 | 49 | « | ROL | USER | |||||||||||||||
00349 | 49 | ROL | |||||||||||||||||
00350 | 49 | «THIS | ROL | ||||||||||||||||
00351 | 4*3 | «EACH | ROL | ||||||||||||||||
00352 | 04 08 | «ZERO | ROL | ||||||||||||||||
00353 | 07 08 | 0· | ROL | ||||||||||||||||
00354 | 39 | CFS | COM | ||||||||||||||||
00355 | CF7 | AND | |||||||||||||||||
00356 | 43SE | CFS | STA | ||||||||||||||||
00357 | 438F | CF5 | RTS | ||||||||||||||||
00 35 A | 4890 | CF4 | |||||||||||||||||
O0359 | 4391 | CF3 | |||||||||||||||||
00360 | 439? | CF 2 | |||||||||||||||||
00361 | 4393 | CFl | |||||||||||||||||
00362 | 4394 | 49 | |||||||||||||||||
00363 | 4395 | 49 | |||||||||||||||||
00364 | 4896 | 49 | |||||||||||||||||
00365 | 4398 | 49 | |||||||||||||||||
00366 | 489A | « | |||||||||||||||||
00367 | |||||||||||||||||||
00368 | « | ||||||||||||||||||
00369 | «THIS | ||||||||||||||||||
00370 | «EACH | ||||||||||||||||||
00371 | |||||||||||||||||||
00372 | |||||||||||||||||||
00.373 | |||||||||||||||||||
00374 | 439R | ||||||||||||||||||
00375 | 489C | ||||||||||||||||||
00376 | 4890 | ||||||||||||||||||
00377 | 489E | ||||||||||||||||||
0037* | |||||||||||||||||||
00379 | |||||||||||||||||||
70 9 8.08/102 5
Page 49 CJBPG 06/04/75 36:54.05
00380 | 489F | 49 | IFS4 | ROL | A | UFLG | LOCATION FOR EACH | CARRY | ·* | ENTRY POINTS· 1 FOR |
00381 | 48A0 | 49 | IFS3 | ROL | A - | NOTSET | FLAG. 87= FLG 8 | ENTRY. ACCA MUST RE | ||
003«2 | 48Al | 49 | IFS2 | ROL | A | WHILE BO= FLG 1 | BIT MUST BE SET. | |||
003A3 | 48A2 | 49 | •IFS1 | ROL | A | NMET | ||||
00384 | 48Δ3 | 94 08 | AND | A | ACCA=FLAR STATUS | THE C BIT IS | ||||
00385 | 48AS | 27 01 | BEQ | ACCA=O IMPLIES NOT SET | SET AND POTATED | |||||
00386 | 48A7 | 39 | RTS | FLAG SET1. PETURN | THRU ACCA STOPPING | |||||
00387 | 48A3 | 7E 4BA8 | NOTSET JMP | 60 MODIFY PRGM. PNTR AND »ETU | AT THE CORRECT | |||||
00388 | « | LOCATION FOR.EACH | ||||||||
00389 | • 1 | [F FLAG ι | CLEAR SUBROUTINE | FLAG. B7= FLG 8 | ||||||
00390 | e | UFLG | WHILE BO= FLG 1 | |||||||
00391 | «THIS | HAS 8 | NOTSET | |||||||
00392 | «EACH | ROUTINE | FLAG. ON | ACCA = FLAG STATUS | ||||||
00393 | »ZERO | USER | ΓΗΕ | S4BA8 | ACCAaO IMPLIES FLG SET | |||||
00394 | β | AND 1 | S7C80 | not set; return | ||||||
00395 | 43AB | 49 | IFC8 | A | SFl | |||||
00396 | 48AC | 49 | IFC7 | ROL | A | SF 2 | ||||
00397 | 48AD | 49 | IFC6 | ROL | A | SF3 | ||||
00398 | 48ΔΕ | 49 | IFC5 | ROL | A | SF4 | ||||
00399 | 48AF | 49 | IFC4 | ROL | A | SF5 | ||||
00400 | 4830 | 49 | IFC3 | ROL | A | SF6 | ||||
00401 | 48Rl | 49 | IFC2 | ROL | A | SF7 | ||||
00402 | 4382 | 49 | IFCl | ROL | A | SF8 | ||||
00403 | 4883 | 94 08 | ROL | A | IFSl | |||||
00404 | 4335 | 26 Fl | AMO | IFS2 | ||||||
00405 | 48R7 | 39 | SNE | IFS3 | ||||||
00406 | 4BA8 | NMET ■ | RTS | IFS4 | ||||||
00407 | 7CP0 | EOU | IFS5 | |||||||
00408 | 7C30 | 4887 | ORG | IFS6 | ||||||
00409 | 7C32 | 4886 | FO9 | IFS7 | ||||||
00410 | 7C«4 | 4AA5 | F08 | IFS8 | ||||||
00411 | 7C«6 | 4AS4 | FOB' | CFl | ||||||
0041P | 7csa | 4<383 | FOB | CF2 | ||||||
00413 | 7C8A | 4flf»2 | FD8 | CF 3 | ||||||
00414 | 7C8C | 4fl«l | FOB | CF4 | ||||||
00415 | 7C8E | 4ββ0 | FD8 | CF5 | ||||||
00416 | 7C90 | 4ΛΑ2 | FOB | CF6 | ||||||
00417 | 7C92 | 4AAl | FOB | CF7 | ||||||
00418 | 7C94 | &ΑΔ0 | FOB | CF8 | ||||||
00419. | 7C96 | 4J59F | FDS | IFCl | ||||||
00*20 | 7C93 | 489E | FD8 | IFC2 | ||||||
00421 | 7C9A | 4A90 | FDB | TFC3 | ||||||
00422 | 7C9C | 4A9C | FOB | |||||||
00423 | 7C9E | 499B | FDB | |||||||
00424 | 7CA0 | 4394 | FOB | |||||||
00425 | 7CA? | 4«93 | FDB | |||||||
00426 | 7CA4 | 4692 | FDB | |||||||
00427 | 7CA6 | 4891 | FDB | |||||||
00428 | 7CAA | 4890 | FDB | |||||||
00429 | 7CAA | 4AAF | FOB | |||||||
00430 | 7CAC | 483E | FOB | |||||||
00431 | 7CAE | 4880 | FOB | |||||||
00432 | 7CR0 | 48R2 | FDB | |||||||
00433 | 7C82 | 4«B1 | FOB | |||||||
00434 | 7C34 | 48B0 | FDÖ | |||||||
FD8 | ||||||||||
7Q9&08/1025
ORIGINAL SMSPEOTED
β . - 73 -
Page 50 CJSPG 06/04/75 36:54.05
00435 7C36 48AF FOB IFC4
00436 7CR8 4βΑΕ · -FOB IFC5
00^37 7C8A 4βΑΠ ' ■ FDB IFC6
00438 7C3C 48AC FOB IFC7
00439 7CBE 48Α8 FD8 IFC8
7.098J08/1G25 ; / ■
ORiQSMAL INSPECTED
Page 51 cjbpg Ofi/04/75 36:54.05
END
ADATA | 0000 | ACTL | 0001 | 80ATA | 0002 | BCTL | 0003 | INPUT | 0004 | IOIM | 0005 |
EPROP | 0006 | TGL | 0007 | UFLG | 0008· | RSFLG | 0009 | EOM | OOOA | EOPM | oooa |
STKFLG | OOOD | RNO | OOOE | DIGFLG | OOOF | W2 | 0010 | Wl | 0011 | SFLG | 0012 |
OCNTR | 0013 | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0018 |
TP3S | 0019 | TP 4 | 001Δ | TP4S | 001B | TP5 | OOIC | TP5S | 0010 | TP 6 | 001E |
TP6S | 001F | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0023 | TH | 0024 |
TlO | 0025 | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | T5 | 002A |
T4 | 002R | T3 | 002C | T2 | 0020 | Tl | 002E | ISTK | 002F | !STACK | 0051 |
TA | 0052 | SPGM | 0054 | EXTRA | 0056 | BUFF | 0058 | REAL | 0063 | IMAG | 0070 |
ATI | 0073 | AT2 | 0080 | W | Ό088 | XR | 0090 | YP | 0098 | ZR | OOAO |
TR | 00A8 | LSTX | OOBO | 3KWRT | O ORS | 8KKC | O OB A | SOL7 | OOCo | UPP | o oca |
UlP | OOCA | ALPHA | OOCC | 101 | OOCO | 102 | OODO | IT7 | 0003 | FLAG | 00O5 |
TPOS | 0006 | FILE | 0QD7 | AR | 0 008 | BR | OOEO | CR | 00E3 | OP | OOFO |
ER · | 0OFe | SDBB | OORA | MT | 7E00 | TERMM7 | 003O | I"EO | 004-0 | PARCD | QOCO |
PAREX | 0080 | NT8L | 0000 | DOTS | 5ECO | PRTDPV | 6020 | FRvrr | 5CA3 | BLANK | 5D75 |
LOMSG | 57B0 | POLLO | 5582 | ROLLU | 57Fl | PSO | 55OA | TXL | 55E9 | STKUP | 55EF |
MAO | 749R | C « P | 74AA | NOR | 7406 | TXW | 7424 | TXXR | 7433 | EXXR | 7452 |
ARSR | 753S | OVUNF | 75*56 | OVERF | 75DD | XRO | 74OA | XRNINE | 75C8 | UNOPF | 75Fi |
I^ULT | 7649 | ODG | 7669 | FPA | 75FC | FPS | 75Fft | FPM | 7735 | FPD | 7793 |
FPAEX | 7630 | FPMEX | 7780 | LSHIFT | 7521 | ZEOOX | 7489 | XZEROQ | 7415 | XZEPO2 | 7417 |
PlECIP | 73E6 | TXR< | 73F3 | CONST | 6800 | FPDBRC | 6898 | TAN | *dA9 | ATN | 65C3 |
OSZERO | 6A46 | NTLM | 6A58 | EXPN | 6AC9 | SIN | 6894 | COS | 6Β<ΪΑ | ASIN | 6RF2 |
ACOS | 68F7 | •-PH1 | 6C50 | PH2 | 6C80 | PH3 | 6034 | PHi | 6OO0 | LSFT8 | 6E47 |
SORT | 6E65 | HAO 3 | 6F2C | C-MPS | 53E4 | IOUPX | 6F52 | LOGlO | 5FA7 | YUPX | 6FE9 |
RTOP | 73?8 | PTO^ | 738ή | RSEX | 4800 | ZIP | 4814 | BACK | 4810 | boon | 4318 |
ZIPl | 481R | 870N | 4525 | SU^7 | 4840 | A007 | 484H | rtlfv-'RCO | 488C | STAPTl | 43C7 |
MORE! | 48C9 | RESTOR | 4803 | 3IM3 | 4808 | 8IN2 | 480D | "INl | *8E2 | STOBCO | 48E9 |
ROLLIT | 48EE | SF8 | 4300 | SF7 | 4881 | SF6 | 4382 | SFS | i883 | SF4 | 4334 |
SF3 | 4835 | SF2 | 4-586 | SFl | 4887 | CF8 ' | 4880 | CF 7 | &88E | CF6 | 483F |
CF5 | 4890 | CF4 | 4891 | CF3 | 4892 | CF 2" | 4893 | CFl | &894 | IFS8 | 489B |
IFS7 | 489C | IFS6 | 4390 | IFS5 | 48QE | IFS4 | 489F | IFS3 | *8A0 | IFS2 | 48Al |
IFSl | 43A2 | MOTSET | 43A8 | IFCP | 48A3 | IFC7 | 43AC | IFC6 | 4«A0 | IFC5 | 48AE |
IFC4 | 48AF | IFC3 | 4880 | IFC2 | 4881 | IFCl | 48B2 | NMET | &BA8 |
TOTAL ERRORS
«■»»»ERROR 201 218 NAM IFEX
6»*«ERR0R 201
360 NAM REGEX
70 9 8 0 8/1025 ORIGINAL. INSPECTED
- 75 -
Page 52 CJBPG 06/04/75 36:54.05
00215 | 48Α4 | 91 | 92 | β | METl | OPT | A | LISTtMEM | IF+, AND IFO |
00218 | 27 | OC | «THIS | NAM | IFEX | ||||
00219 | OE | CA | » | OPT | LIST,MEM | XREG = 0 ? | |||
00220 | 08 | IFO | ORG | S4BA4 | RRANCH IF YES | ||||
00221 | 48 A 4 | Α6 | OO | A | ELSE GET INST PNTP | ||||
00222 | 43Α6 | 81 | BA | NMET | A | DOES IF-, | SKI·3 ONE INST | ||
00223 | 43Α8 | 23 | Ol | GET CURRENT INST | |||||
00224 | 48AA | 08 | XR + 2 | TWO BYTE INSTRUCTION ? | |||||
00225 | 48Α3 | DF | CA | MET · | BRANCH IF NOT | ||||
00226 | 48Α0 | 39 | UIP | ELSE MOVE FORWARD | |||||
00227 | 43AF | ROUTINE | RESTORE POINTER | ||||||
00228 | 4831 | 96 | 91 | A | X | RETURN | |||
00229 | 4392 | 28 | EF | MET | CMP | «SD8B | |||
Ό 0230 | 43Β4 | 39 | BEQ | MET-2 | GET MANTISSA SIGN | ||||
00231 | IFPLS | LDX | NOT MET IF NEG. - | ||||||
00232 | 48RS | 96 | 91 | INX | A | UIP | |||
00233 | 48R7 | 2Δ | EA | LDA | |||||
00234 | 4889 | 39 | β | CMP | GET MANTISSA SIGN | ||||
00235 | IFMi | BLS | XR+1 | NOT MET IF POS. | |||||
00236 | 438Α | OE | 90 | INX | NMET | ||||
00237 | 483C | 9C | 98 | STX | |||||
00238 | 453RE | 26 | E3 | » | RTS | GET X | |||
00239 | OE | 92 | IFXEY | XR+1 | = Y ? | ||||
00240 | 433F | 9C | 9A | LOA | NMET | BRANCH IF NOT | |||
00241 | 43Cl | 26 | DO | BMI | ELSE CONTINUE TEST | ||||
00242 | 43C3 | OE | 94 | RTS | ■ ■ — - - — · - - | ||||
00243 | 43C5 | 9C | 9C | XR | |||||
002*4 | 48C7 | 26 | D7 | LOA | YR | ||||
00245 | 43C9 | OE | 96 | BPL | NMET | ||||
00246 | •4 (3CR | 9C | 9E | RTS | XP + 2 | ||||
00247 | 43C0 | 26 | Ol | YR+2 | |||||
00?48 | 43CF | 19 | LDX | NMET | |||||
00249 | 4βΟ1 | CPX | XR+4 | * | |||||
00250 | 4303 | 4*C | BNE | A | YP+4 | RETURN IF CONDITION MET | |||
00251 | Δ-305 | 97 | 2E | LDX | A | NMET | |||
00252 | 4307 | CE | 0078 | «· | CPX- | XR+6 | SET »REVERSE SENSE" FLAG | ||
00253 | 80 | 73F3 | IFXGEY | BNE | YR+6 | 0 TO LESS THAN FLAG | |||
00254 | 43Oa | CE | 0098 | IFXLTY | LDX | NMET | PRESET INDEX | ||
00255 | 4309 | 80 | '75F6 | CPX | TRANSFER X REG | ||||
00256 | 4308 | 96 | 91 | BNE | A | PRESET INOEX | |||
00257 | 480Ε | D6 | 92 | LDX | Q | SURTRACT | |||
00258 | 43El | CE | 0073 | CPX | Tl | GET MANTISSA SIGN | |||
00259 | 43Ε4 | RO | 7433 | BNE | «ATI | GET MANTISSA DIGITS | |||
00260 | 4ΒΕ7 | 40 | RTS | A | TXRX | PPESET INOEX | |||
00261 | 43Ε9 | 23 | 08 | *YR | RESTORE X REG | ||||
00262 | 48Ε3 | 50 | INC | P | FPS | TEST SIGN OF OESULT | |||
00263 | 43EE | 27 | 05 | STA | XR + 1 | BRANCH IF NFG. | |||
00264 | 43Fl | 96 | 2E | LDX | A | XR + 2 | ELSE TEST FOR ZERO | ||
00265 | 43F2 | • | JSR | «ATI | BRANCH IF 7EPO RESULT | ||||
00?66 | 4BF4 | LOX | TXXR | GET SKIP FLAG | |||||
00267 | 48F5 | JSR | |||||||
00268 | 43F7 | LDA | NMETl | ||||||
00269 | LOA | ||||||||
00270 | LDX | NMETl | |||||||
00271 | JSR | Tl | |||||||
TST | |||||||||
0MI | |||||||||
TST | |||||||||
BEO | |||||||||
LDA | |||||||||
709808/102 5
ORIGINAL INSPECTED.
Page 53 CJBPG 06/04/75 36:54.05
00272 | 43F9 | 26 | AD | NMET-I | BNE | A | Δ | NMET |
00273 | 4RFB | 39 | RTS | |||||
00P74 | 4BFC | 96 | 2E | ■LDA | Tl | |||
00275 | 43FE | 27 | A8 | BEQ | A | NMET | ||
00276 | 4CQ0 | 39 | » | RTS | ||||
00277 | »THIS | ROUTINE | ||||||
00278 | A | |||||||
00279 | HANDL | |||||||
00280 | NEXTC | LDX | ||||||
00281 | STX | |||||||
00282 | 4C01 | CE | 00E8 | LDX | A | *CR . | ||
00283 | 4C04 | DF | 27 | LOA | T8 | |||
00284 | 4C06 | CE | OOFO | BRA | «DR | |||
0028S | 4C09 | 86 | AB | NEXTB | LOX | a$AB | ||
002R6 | 4C09 | ■20 | 11 | LDA | NEXTJ | |||
00287 | 4C0O | CE | OOEO | 8RA | «BR | |||
00288 | 4C10 | 86 | AA | MEXTA | LDX | eSAA | ||
002«9 | 4Cl 2 | 20 | 05 | LDA | NEXTI | |||
00290 | 4C14 | CE' | 0008 | NEXTI | STX | PAR | ||
00291 | 4C17 | 86 | AC | LDX | 8 | «SAC | ||
0029? | 4C19 | DF | 27 | NEXTJ | STX | R | T8 | |
00293 | 4C1<3 | CE | 6838 | STA | H. | «FP1 | ||
00294 | 4ClE | DF | 20 | LDX | T2 | |||
00?95 | 4C20 | 97 | 29 | JSR | B | T6 | ||
00296 | 4C22 | CE | 0 0 7B | LDX | B | *AT1 | ||
00297 | *C25 | 30 | 73F3 | JSR | B | TXRX | ||
0029β | 4C28 | OE | 20 | LDX | 8 | T? | ||
0 0 299 | 4C2A | RO | 7438 | JSR | 3 | TXXP. | ||
00300 | 4C2D | OE | 27 | LOX | B | T8 | ||
00301 | 4C2F | BO | 75FC | JSR | e | FPA | ||
00302 | 4C32 | OE | 27 | LDA | T8 | |||
00ΤΠ3 | 4C34 | RO | 73F3 | DEC | TXRX | |||
00304 | 4C37 | 06 | OA | STA | A | EOM | ||
Ό0105 | 4C39 | 5* | LDX | Ft | ||||
0 0 306 | 4C3A | 07 | IC | LDA | TP5 | |||
00307' | 4C3C | OE | CA | SU6 | UIP | |||
0 0.10« | 4C3E | E6 | OO | ASL | B | X | ||
00309 | 4C40 | CO | AO | ASL | .MSAD | |||
00310 | 4C42 | 58 | ASL | |||||
00311 | 4C43 | 58 | ADO | A | ||||
00312 | 4C44 | 58 | STA | |||||
00313 | 4C45 | CB | 08 | LDX | *SD8 | |||
0031ft | 4C47 | 07 | 10 | JSR | TP5S | |||
00315 | 4C49 | OE | IC | LDA | TP5 | |||
00316 | 4C4B | RO | 75F6 | LDA | FPS | |||
00317 | 4C4E | 96 | 91 | LDX | XR + 1 | |||
00318 | 4C50 | 06 | 92 | JSR | XP+2 | |||
00319 | 4C52 | CE | 0078 | TST | «ATI | |||
00320 | 4C<5<5 | PO | 7433 | BEO | TXXR | |||
00321 | 4CS8 | 50 | LDX | |||||
00322 | 4C59 | 27 | 07 | EOR | MOREL | |||
003P3 | 4C53 | OE | 20 | BPL | T2 | |||
0032* | *C5D | A β | Ol | RTS | l.X | |||
00325 | 4C5F | 2Λ | Ol | MOREL | ||||
00326 | 4C61 | 39 | ||||||
REVERSE SENSE IF SET ELSE RETAIN SENSE NOT MET IF X>Y
RETAIN SKIP SENSE ELSE REVERSE SENSE
GET C-REG AORS SAVE IT
GET LOOP INC. ADRS GET "FO^ C" INST
SAVE THEM
GET B-REG AORS GET »FOP B" INST
SAVE THEM
GET A-REG AORS GET "FOR A" INST SAVE LOOP VAPIABLE AORS
GET LOOP INCREMENT SAVE LOOP INC. ADRS SAVE "FOR" INST GET ARITH TEMP ADRS
TRANSFER X-REG GET LOOP IMC. ADRS MOVE IT TO X-REG GET LOOP VARIABLE ADRS '
AOD THE "1"
RESTORE LOOP VAR. ADRS REPLACE WITH UPOATEO NUMBER
GET END OF MEMORY PMTR DEC PAGE AORS SAVE IT
GET IMST PNTR
GET THE "NEXT" INST REMOVE OFFSET MULTIPLY SY 2 MULTIPLY BY FOUR
AOO ALPHA REG OFFSET SAVE IN LS BITS OF PNTR GET ALPHA REG PNTR
DO THE "END OF LOOP" CHECK-GET SIGN OF RESULT
GET MAMTISSA OIGITS GET X-REG TEMP ADRS RESTORE X-REG
ZERO RESULT ?
CONTINUE IF YES GET LOOP INC. AORS SIGNS DIFFER ?
CONTINUE IF NOT ELSE RETURN
7098-68/102 5 ORlOlNAL INSPECTED
263315t
Page 54 C JfJPG 06/04/75 3fi:54.05
00327 | 4C62 | OE CA MOREL | 4885 | LDX | B | UIP | GET CURRENT USER ADRS |
00328 | 4C64 | 06 29 | 48BA | LOA | T6 | GET "FOR" IMST FOR SEARCH | |
00329 | 4C66 | 8C 0100 MORELl | 4RA4 | CPX | #256 | USER STATE ZERO YET ? | |
00 330 | 4C59 | 27 08 | 498F | BEQ | FEROR | ERROR IF YES ' · | |
00331 | 4C6B | 09 | 4309 | DEX | A | ELSE DEC SEARCH PNTR | |
00332 | 4C6C | El 00 | 43D8 | CMP | A | X | IS THIS THE »FOR" STMT ? |
00333 | 4C5E | 26 F6 | BNE | MORELl | BHANCH IF NOT | ||
OQ 33 4 | 4C70 | DF CA | 4C77 | STX | UIP | ELSF SAVE NEW INST ADRS | |
00335 | 4C72 | 39 | 4C77 | RTS | RETURN | ||
00336 | 4C73 | 86 OD FEROR | 4C77 | LOA | #13 | LOAO EPROR" | |
00337 | 4C75 | 97 06 | 4C14 | STA | ERROR | SAVE IT FOR OUTPUT | |
00339 | 4C77 | 39 FORS | 4C0D | RTS | RETURN | ||
00339 | 4 | 4C01 | |||||
00340 | fr | ||||||
00341 | 6838 FPl | EQU | S6838 | FLOATING POINT '1I" | |||
00342 | «■ | ||||||
00343 | « | ||||||
00344 | 7C62 | ORG | S7C62" | ||||
00345 | 7C62 | FOB | IFPLS | ||||
00346 | 7C64 | FOB | IFMI | ||||
00347 | 7C66 | FOB | IFO . | ||||
00348 | 7C6* | FDB | IFXEY | ||||
00349 | 7C6A | FOB | IFXLTY | ||||
00350 | 7C6C | FDS | IFXGEY | ||||
00351 | 7D54 | ORG | S7D54 | ||||
00352 | 7054 | FOB | FORS | ||||
00353 | 7D56. | FOB | FORS | ||||
00354 | 7058 | FDB | FORS | ||||
00355 | 705A | FOB | NEXTA | ||||
00356 | 705C | FOS | MEXTB | ||||
00357 | 7D5E | FDB | NEXTC | — -- — - - - - - | |||
709808/102 5
Page 55 CJRRG 06/04/75 36:54*05
00360 00361 00362 00363 00364 00365 00366 00367 00368
0.0 369 0037(1 00371 •00372 00 373 00374 OQ 375
00376 00-377 00378 00379 00380 00381 00382 00383 0Q3B4
0 0 3SS Q033& 003*7
00338 00389 00390 00391 00392 00393 00394 00395 00396 00397 00393
00399 00400 00401 00402 00403 00404 00405
00406 00407 00408 004Λ9 00410 004U
00412 00413 00414
4C78
NAM OPT ORG
PEGEX LIST.MEM
S4C78
4C78 4C 4C79 4C 4C7A 4C 4C7B 4C 4C7C 4C7E 5F 4C7F 4C1U
4C83 4C85 4CR7 4C88 4C84 4C8C DE 4CSE E6
4C90 4C91 4C93· Cl 4C95 4C97 Cl 4C99 4C98 4C90 BO 4CA0
4CA2 4Ca4 A6
4CA6 4CA8 4CA.A 2C
^CAC CE 4CAF DF
4CRl 4CB3 4CBS 5A 4CR6 D7
4C88 C6 4C«A 4CRC 4C8E 4C8F
4CC0 4CCl"9B 4CC3 4CC5 DE
»THIS ROUTINE HANDLES ALL 78 OF THE STOPAGE
»REGISTER IMSTPUCTIOMS. THIS INCLUDES REG. ARITHMETIC»
MNOIRECTS» ETC. FOR ALL RECALL INSTRUCTIONS»
»THE X REGISTER IS-COPIED TO LAST X. TP7.TLT2«
»AND T3 ARE USED BY THIS ROUTINE.- THE FLOATING
«POINT ROUTINES ARE CALLED IF NECESSARY«
OVDENT MLTENT SÜ6ENT
INC A
INC A
INC A ADDENT INC A
2E STOENT STA A- Tl
CLR B
09 BRA .PENT
OF RCLENT CMP A DIGFLG
05 BEQ RENT
OF STA A DIGFLG
COM A
OD STA A STKFLG
2D RENT STA 8 T?.
CA LDX UIP
00 . LDA B X • T8A
2C STA A T3
C7 CMP B 0&3O7
32 8HI. KfUMRlC
Cl CMP 8 «!»301
09 8HT TW08T
64 SUB A /*S64
5CA8 JSR FPMT
OF AND A *SF
04 8RA IAORS
01 TWOBT LDA A ItX
64 ' SUB A «100
05 IADRS CMP A #5
07 BGE USMEM
0008 LDX «AR 20 STX TP7 OB QRA GEN
OA USMEM LOA 8 EOM
DEC B
20 STA 8 TP7 08 LDA B ««D8
21 STA 8 TP7+1 05 SUR A #5
GEN ASL A
ASL A
ASL A
21 AOD A TP7+1
21 - STA A TP7+1
20 LDX TP7
ENTRY
ENTRY
ENfTRY
ENTRY
ENfTRY
PT. FOR DIVISION PT, FOR MULTIPLICATION PT. FOR SUBTRACTION
ENTRY PT FOP AOOITION SAVE ARITHMETIC OPERATOR
CLEAR RECALL FLAG
DOING OIGIT ε^4TRY
BRANCH IF NOT ELSE TERM. IT SET MSB
ENABLE LIFT SET UP RECALL FLAG GET INST ADDRESS
GET THE INSTRUCTION SAVE IN ACCA AND IN T3 ALPHA REGISTER?
8R4MCH IF NOT ONE OR TWO 9YTE
BRANCH IF TWO BYTE REMOVE INST OFFSET CONVERT TO SCO GET REG * CONVERT TO R/W ADDRESS
GET SECOND BYTE REMOVE OFFSET REG IM USER «EMORY BRANCH IF YES ELSE GET RASE PAGE 40RS
SAVE FOR MODIFICATION GO GENERATE ADDRESS GET ENO OF MEM PAGE
BACK UP ONE SAVE IN MS BITS OF AORS
GET AORS ON PAGE SAV(T IN LS BITS OF AORS
REMOVE OFFSET MULTIPLY REG S BY
ADO TO ADDRESS RESTOPE
INDEX=ADuRESS
709808/102
Page 56 CJBPG 06/04/75 36:54.05
00415 | 4CC7 | 20 | OA | NUMRIC | BRA | A | VALID | CONTINUE |
00416 | 4CC9 | A6 | Ol | .LDA | A | 1»X | GET SECOND BYTE | |
00417 | 4CC3 | 48 | . ASL | B . | SHIFT AORS TO 87 | |||
00418 | 4CCC | 57 | ASR | A | MSB TO CARRY | |||
00419 | 4CCD | 46 | ROR | CARRY TO B7 | ||||
00420 | 4CCE | BO | 4058 | JSR | SADRS | GO GENERATE SYSTEM ADORESS | ||
00421 | 4C01 | 26 | 26 | VALID | BNE | B | OVFLO | BRANCH IF ERROR |
00422 | 4CD3 | 06 | 2C | LDA | B | T3 | GET THE INST | |
00'+23 | 4C05 | Cl | D3 | CMP | #»323 | POSSIBLE INDIRECT? | ||
00424 | 4C07 | 22 | 08 | 8HI | P | INDR | BRANCH IF YES | |
00425 | 4C09 | Cl | C7 | CMP | *<δ>307 - | POSSIBLE INDIRECT? | ||
00426 | 4C08 | 22 | 21 | BHI | 8 | INSTY? | 8RANCH IF NOT | |
00427 | 4C0O | Cl | Cl | CMP | #51301 | POSSIBLE INOIRECT? | ||
00428 | 4C0F | 23 | 10 | INDR | BLS | A | INSTYP | BRANCH IF NOT |
00429 | 4CEl | 4F | CLR | B | PRESET FOR REG 0 | |||
00430 | 4CE2 | E6 | OO | LOA | X | GET REG EXPONENT | ||
00431 | 4CE4' | 28 | OE | 8MI | 8 | REGO | REG 0 IF NEG | |
00432 | 4CE6 | 5C. | INC | 8 | ACCR=« OF DIGITS | |||
00433 | 4CE7 | Cl | 03 | CMP | «3 | GREATER THAN 3? | ||
00434 | 4CE9 | 2E | OE | 8GT | OVFLO | BRANCH IF YES . | ||
00435 | 4CE9 | RD | 49CE | JSR | A | TSFR | GO GENERATE NEW AORS | |
00436 | 4CEE | 96 | 20 | LDA | TP7 | GET MS BINARY | ||
00437 | 4CF0. | 26 | 07 | BNE | A | OVFLO | ERROP IF NON-ZERO | |
00438 | 4CF2 | 96 | 21 | REGO | LOA | TP7+1 | GET LS BINARY | |
00439 | 4CF4 | RO | 4058 | JSR | SAORS | GENEPATE SYSTEM AORS | ||
00440 | 4CF7 | 27 | 05 | OVFLO | BEQ | A | INSTYO | BRANCH IF NO ERROR |
00441 | 4CF9 | «6 | 18 | LDA | A | «24 | LOAD ERROP | |
00442 | 4CFB | 97 | 06 | STA | ERROR | SAVE IN ERROR WORD | ||
00443 | 4CF0 | 39 | INSTYP | RTS | A | RETURN | ||
00444 | 4CFE | 96 | 20 | LOA | T2 | GET RECALL FLAG | ||
00445 | 4D00 | 27 | 19 | BEQ | STOINS | 0 !«PLIES STORE IMST, | ||
00446 | 4002 | DF | IE | STX | TP6 | SAVE REG ADDRESS | ||
00447 | 4004 | BD | 55E9 | JSR | TXL | X TO LAST X | ||
00448 | 40 07 | RD | 55EF | JSR | STKUP ■ | STACK UP ? | ||
00449 | 400A | OE | IE | LDX | TP6 . | RESTORE REG AOORESS .. | ||
00450 | 4D0C | RO | 7438 | PCHEK | JSR | B | TXXR | DO THE RECALL |
00451 | 4D0F | 06 | 2C | LOA | P | T3 | GET THE INSTRUCTION | |
00452 | 4D11 | Cl | BA | CMP | *S0B9 | TWO RYTE INSTRUCTION ? | ||
00453 | 4013 | 23 | 05 | LBLEX | BLS | DOONE | BRANCH IF YES ' ' . ' | |
00454 | 4015 | QE | CA | LDX | UIP | GET INST PNTP | ||
00455 | 4017 | 08 | INX | INC TO SKIP 2ND BYTE | ||||
00456 | 40 1β | DF | CA | ODONE | STX | HIP | RESTORE IT | |
00457 | 4DlA | 39 | STOINS | RTS | A | RETURN | ||
00459 | 4013 | 96 | 2E | LDA | Tl | GET ARITHMETIC FLAG | ||
00459 | 4010 | 27 | 34 | BEQ | NOARI | 0 IMPLIES NO ARITHMETIC | ||
00460 | 401F | OF | 20 | STX | TP7 | SAVE REG ADRS | ||
00461 | 4021 | CE | 0078 | LDX | «ATI | GET ARITh. TEMP. ADRS | ||
00462 | 4024 | BO | 73F3 | JSR | TXRX | TRANSFER X TO TEMP. | ||
00463 | 4027 | OE | 20 | LOX | A | TP7 | GET REG ADRS | |
00464 | 4029 | 96 | 2E | LOA | A | Tl | GET OPERATION FLAG | |
00465 | 4029 | 4A | DEC | = 1? | ||||
00466 | 402C | 27 | 15 | BEQ | A | REGADO | YES! OO AODITION | |
00467 | 402E | 4A | DEC | =2? | ||||
00468 | 4D2F | 27 | OD | BE» | A | REGSUS | yes: do subtraction | |
00469 | 4031 | 4A | DEC | =3? | ||||
709808/1025
ORiGlHAL IHSFECTED
Page 57 CJBPG 06/04/75 36:54.05
00470 00471 00472 00473 00474 00475 00476 00477 00478 00479 00430 00481
00482 00^83 00484 00485 00486
00437 00438 00489 00490 00491 00492 00493 00494 004^5 00496 00497
00498 00^99 00500 oosni
00502 005(13 00504 00505 00^06
005Π7 00508 00509 00510 00511 0C512
00513 00514 00515 00516 00517 00518 00519
00520 00521 00522 00523 00524
4032 4034 4D37 4039 403C 403E 4041 4043
4046 4D48 4D48 4D4E
4051 4053 4056
27 05 BEQ REGMLT YES; OO MULTIPLICATION
PO 7793 JSR FPO DIVISIOM BY OEFAULT
20 OD BRA MOONE GO WRAP IT UP!
RO 7735 PEGMLT JSR FPM MULTIPLY
20 08 BRA . MDONE WRAP IT UP!
RD 75F6 REGSUB JSR FPS SUPTRACT
20 03 BRA MOONE WRAP IT UP!
BO 75FC REG4DD JSR FPA AOO
OE 20 MDOME LDX TP7 GET REG AORS
BO 73F3 JSR TXRX ' STORE THE F.P. NUMQER
CE 0078 LOX »ATI GET TEMP. AORS
PD 743B JSR TXXR RESTORE X REG.
20 BC BRA PCHEK GO CHECK PRGM CNTR
SO 73F3 NOAPI JSR TXRX STORE THE NUMBER
20 87 BRA PCHEK GO CHECK PRGM CNTR
»THIS SUBROUTINE CO.NVERTS A NUMERIC REGISTER AOORESS
»TO THE ACTUAL R/W ADDRESS OF THAT REGISTER. IT »THEN CHECKS FOR VALIDITY GENERATING ERROR 7 IF
»INVALID ANO CLEARING ACCA IF VALID. THE ADDRESS" »IS RETURNED IM THE INDEX REGISTER.
»ON ENTRY, ACCA=THE REGISTER ADDRESS
4058 5F SADRS
4D59
405A
4D5B
4D5C
405D
4D5E
4D5F BR
4061 C9
4063 07 IE
&065 97 IF
4067 DE
4069 OP 406B RO 4840 4D6E OF
4070 OF IC 407? DE
4074 OF IE 407P, RH 4840
4079 ?4 4D7S P6 4D70 20 OF
407F DE IC SADl 4011 4F
4082
4083 Oft 90 REGS 4085 2R OA
4087 5C 4038 Cl 403A 2F OB
408C 86 07 ERR
CLR | E) | S8 | ZERO TO ACC9 |
ASL | A | «0 | MULTIPLY THE REGISTER |
ROL | 8 | TP6 | ADDRESS BY 8 9Y |
ASL | A | TP6S | SHIFTING LEFT |
ROL | 9 | SPGM | 3 TIMES. |
ASL | A | TP7 | |
ROL | B | SUB7 | |
ADD | A | TP7 | ADD P TO THE PESULT |
AOC | β | TP5 | AOO CARRY TO MSRiS |
STA | B | EOPM | SAVE RESULT FOR SU=(TPACT |
STA | A | TP6 | |
LOX | SUB7 | GET PEG START AORS | |
STX | SADl | SAVE POR SUBTRACT | |
JSR | fi?4 | OO EOM-REG ADRS | |
LOX | EPR+2 | GET RESULT | |
STX | TP5 | SAVE FOR LATER | |
LDX | GET END OF PRfjM MEM | ||
STX | PREPARE TO SUBTRACT | ||
JSR | XR | OO REG ADPS-EOPM | |
BPL | REGZ | BRANCH IF NO ERROR | |
LDA | A | L04D ERROR | |
BRA | *3 | SAVE THE ERROR AND RETURN | |
LOX | OK | INDEx=VALIO ADORESS | |
CLR | A | K7 | no frror; clr acca |
RTS | RETURN | ||
LOA | 8 | GET X-REG EXPONENT | |
9MI | ZERO REGS IF NEG | ||
INC | B | ACCa=a OF DIGITS | |
CMP | a | TOO MANY ? | |
RLE | BRANCH IF NOT | ||
LDA | A | LOAD ERROR | |
709.8.08/102
ORIGINAL INSPECTED
Page 58 .CJBPG 06/04/75 36ί54.05
00525 | 408E | 97 | 06 | REGZ | STA | A | ERROR | SAVE IT |
00526 | 4090 | 39 | • | RTS | RETURN | |||
00527 | 4091 | οε | 54 . | LDX | SPGM | GET PEG START AORS | ||
00528 | 4093 | DF | ic · | OK | STX | TP5 | SAVE IT | |
00529 | 4095 | 20 | 2Α | BRA | OLD | GO ERASE BETWEEN PNTRS | ||
00530 | 409 7 | CE | 0090 | LDX | *fXR | GET X-REG ADDRESS | ||
00531 | 409A | BD | 49CE | JSR | TSFR | CONVERT X-REG | ||
00532 | 4D9D | 96 | 20 | LDA | A | TP 7 | GET MS BITS OF RESULT | |
00533 | 409F | 06 | 21 | LDA | 8 | TP7+1 . | GET LS «ITS | |
00534 | 4DAl | 58 | ASL | B | MULTIPLY RESULT BY 8 | |||
00535 | 40A2 | 49 | ROL | A | ||||
00536 | 40 A3 | 58 | ASL | 8 | ||||
00537 | 40A4 | 49 | ROL | A | ||||
00518 | 4045 | 58 | ASL | 8 | ||||
00539 | 4DA6 | 49 | ROL | A | ||||
00540 | 4DA7 | 97 | IE | STA | A | TP 6 | SAVE MS BITS | |
00541 | 40A9 | 07 | IF | STA | 8 | TP6+1 | SAVE LS 8ITS | |
00542 | 4DA3 | DE | 54 | LOX | SPGM | GET PEG START ADRS | ||
00543 | 40A0 | OF | 20 | STX | TP7 | SAVE FOR SUBTRACT | ||
00544 | 4DAF | RO | 4840 | JSR | SU87 | SU8TPACT (EOW-REG ADRS) | ||
0 0545 | 4082 | 2F | 03 | BLE | ERR | ERROR IF ΡΔ6Ε IS 0 0=» NEG | ||
00546 | 40R4 | οε | 20 | LDX | TP7 | GET RESULT | ||
00547 | 40R6 | DF | IC | STX | TP5 | SAVE IT | ||
00548 | 4038 | OE | OB | LOX | EOPM | GET OLO PMTP | ||
00549 | 4O=?A | OF | IE | STX | TP6 | SAVE FOR SUBTRACT | ||
0055(1 | 40BC | RO | 4840 | OLO | JSR | SU 8 7 | DO- NEW-OLD | |
00551 | 408F | 28 | OC | BMI | NEW | BRANCH IF MEG RESULT | ||
00552 | 40Cl | OE | 09 | LDX | EOPM | GET OLD EOPM | ||
00553 | 40C3 | DF | IE | STX | TP6 | SAVE IT | ||
00554 | 4OC5 | OE | IC | LDX | TPS | GET NEW EOPM | ||
00555 | 40C7 | OF | OB | STX | EOPM | SAVE IT | ||
00556 | 40C9 | OF | IE | NEW | LDX | TP6 | GET OLD EOPM | |
00557 | 40C8 | 20 | 25 | SRA | LOOP | ERASE | ||
O0S5S | 40CD | OE | IC | LDX | TP5 | GET NEW EOPM | ||
00559 | 4OCF | 8C | 0100 | CPX | «sioo | USER STATE 0 ? | ||
00560 | 4002 | 27 | 88 | 3EQ | EPR | ERROP IF YES | ||
00561 | 4004 | CE | 0OCA | LOX | «UIP | GET IMST PMTR ADRS | ||
00562 | 4007 | D6 | 09 | LDA | R | PSFLG | GET R/S FLAG | |
00563 | 4009 | 58 | ASL | 8 | RUNNING ? | |||
00564 | 40D.A | 23 | 02 | 8MI | RIJMING | BRANCH IF YES | ||
00565 | 400C | 09 | RUNING | DEX | ELSE GET PRGM PNTR AORS | |||
00566 | 4000 | 09 | DEX | |||||
00567 | 4ΟΟΕ | Α6 | 01 | LDA | A | 1»X | OO PNTR-TP5 | |
00568 | 40EO | 90 | ID | SU8 | Ä | TP5S | ||
00569 | 40Ε2 | Α6 | 00 | LDA | A | X | ||
00570 | 40Ε4 | 92 | IC | S8C | A | TP5 | ||
00571 | 40Ε6 | 28 | 08 | BMI | OKI | OK IF PNTR<TP5 | ||
00572 | 40 E 3 | 50 | TST | P | ELSE CHECK RUN/STOP | |||
00573 | 40Ε9 | 28 | Al | BMI | EPR | ERROP IF RUNNING | ||
00574. | 4DE8 | CE | 0100 | OKI | LDX | #256 | ELS^ SET UPP TO 0 " | |
00575 | 4οεε | DF | C8 | LOOP | STX | [IPP | ||
0057* | 4OF0 | OE | IC | LOX | TP5 | GET NEW EOPM | ||
00577 | 4OF2 | 9C | 08 | CPX | EOPM | ALL ERASED ? | ||
00578 | 40F4 | 27 | 05 | BEQ | OUT | 8RANCH IF YES | ||
00579 | 40F6 | 6F | 00 | CLR | X | CLEAR MEMORY | ||
709808/1025
ORIGINAL. !MSPEOTED
Page 59 | C. | 08 | 06/04/75 | 36:54. | - 82 - 05 |
INC | PNTR | NEW EOPH | • | I | NOP TO | "* | LAST STATE | .MLTENT« | ,PCLENT, | ,DVOENT | ''LTENT | ,STOENT |
00580 | 40F8 | 20 F7 | . INX | CONTINUE | IT | RETURN | ,MLTENT, | .RCLENTiRCLENT, | MLTENT | ,STOENT . | ||||||||
00581 | 40F9 | DE IC | BRA | LOOP | GET | UP | .OVOEMT, | ... | OVOENT | ,ADOENT | ||||||||
00582 | 40FB | DF OB | OUT | LOX | TP5 | SAVE | INST THERE | DVDENT,DVDENT,OVOENT, | OVOENT | .AOOENT | ||||||||
00583 | 40F0 | 09 | STX | EOPM | BACK | .STOENT, | OCLENT. | PCLENT | ,SUSENT | |||||||||
00584 | 40FF | A6 OO | DEX | GET | .STOENT. | RCLENTi | RCLENT | •SUBENT | ||||||||||
00585 | 4E00 | 81 BA | .LDA A | X | TWO | ,ADDENT, | S7D84 | ,MLTEMT | ||||||||||
00586 | 4E02 | 23 02 | CMP A | SSDBB. | ,AOOF.NT. | PCLENT | ,MLTEMT | |||||||||||
005a7 | 4E04 | 6F OO | BLS | 0UT2 | .SU8ENT, | STOENT | .OVOENT | |||||||||||
00588 | 4E06 | 39 | CLR | X | STOENT,STOENT | STOENT | ADDENT | ,STOENT | , OVOENT | |||||||||
00589 | 4E08 | 0UT2 | RTS | STOENT,STOEMT | STOENT | SUBENT | ,ADOENT | ,RCLENT | ||||||||||
00590 | 4848 | β | BYTE INSTPUCTION ? | AOOENT | AOOENT | MLTENT | SUSENTtSUBENT | ,RCLENT | ||||||||||
00591 | 4840 | ADD7 | EQU | 54848 | BRANCH IF NOT | ADOENT· | AOOENT | DVDENT | MLTENTfMLTENT | |||||||||
00592 | SUB7 | EOU | $4840 | ELSE | , aooent | SU8ENT | STOENTi | DVOENT, | ||||||||||
00593 | 7C70 | 4083 | ORG | S7C70 | ι AODENT | »SUBENT,SU3ENT,SUBENT | AODENTi | RCLENTi | ||||||||||
00594 | 7C70 | 49CE | F08 | REGS | SUBENT,SUBENT | »MLTEMT | .RCLENT | PCLENTi | ||||||||||
00595 | TSFR | EQU | S49CE | SUBENT. | .MLTENT | ,DVOENT | ||||||||||||
00596 | 7CC8 | 4C7C | 0R6 | S7CC8 | MLTEMT. | .DVDENT | ,PCLENT | |||||||||||
00597 | 7CC3 | 4C7C | FDB | MLTENT. | ,SCLENT | |||||||||||||
00598 | 7CD2 | 4C7B | FOB | OVDENT, | STOENT,STOEMT | |||||||||||||
00599 | 7CDC | 4C78 | FDB | ADDENT1 | ||||||||||||||
00600 | 7CE6 | 4C7A | F08 | SUPEMTi | ||||||||||||||
00601 | 7CF0 | 4C7A | FDB | rAOOEMT | ||||||||||||||
00602 | 7CFA | 4C79 | FOB | SUBENT | ||||||||||||||
00603 | 7004 | 4C79 | FDB | MLTENT,MLTENT | ||||||||||||||
00604 | 700E | 4C78 | FD3 | OVDENTi | ||||||||||||||
00605 | 7DlR | 4C78 | FOB | S707E | ||||||||||||||
00606 | 7022 | 4C81 | FOB | LBLEX | ||||||||||||||
00607 | 7D2C | 4C81 | FDB | |||||||||||||||
0060» | 7D36 | FDB | ||||||||||||||||
00609 | 7D84 | 4C81 | ORG | |||||||||||||||
00610 | 7084 | 4C7C | FD8 | |||||||||||||||
00611 | 7Ö86 | 4C73 | FOB | |||||||||||||||
00612 | 7DR8 | 4C7A | FD<3 | |||||||||||||||
00613 | 70 8 A | 4C79 | FDB . | |||||||||||||||
00614 | 7D8C | 6.C78 | FD8 | |||||||||||||||
00615 | 708E | 4C7C | FDB | |||||||||||||||
00616 | 7090 | 4C78 | FDB | |||||||||||||||
00617 | 7D94 | 4.C7A | FOB | |||||||||||||||
00618 | 709« | 4C79 | FDB | |||||||||||||||
00619 | 7O9C | 4C78 | FDB | |||||||||||||||
00620 | 7DA0 | 4C81 | FDB | |||||||||||||||
00621 | 7DA4 | 4C81 | FOB | |||||||||||||||
00622 | 7DA8 | 4C7C | FDB | |||||||||||||||
00623 | 70AC | 4C78 | FDB | |||||||||||||||
00624 | 7DB0 | 4C7A | FOB | |||||||||||||||
00625 | 7DB4 | 4C79 | FDB | |||||||||||||||
00626 | 70B8 | 4C78 | FOB | |||||||||||||||
00627 | 70RC | FOB | ||||||||||||||||
00628 | 7Ü7E | 4015 | ORG | |||||||||||||||
00629 | 7O7E | FOB | ||||||||||||||||
70-980871025
ORIGINAL IMSPECTED
Page 60 CJ8P6 06/04/7536:54.05
END
SYMBOL TABLE
AOATA | 0000 | ACTL | 0001 | BDATA | 0002 | BCTL | 0003 | INPUT | 0004 | IOIN | 0005 |
ERROR | 0006 | TGL | 0007 | UFLG | 0008 | RSFLG | 0009 | FOM | OOOA | EOPf | OOOB |
STKFLG | 0000 | RMD | OOOE | D IPFLG | OOOF | W2 | 0010 | Wl | 0011 | SFLG | 0012 |
DCNTR | 0013 | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0018 |
TP3S | 0019 | TP4 | 001A | TP4S | 001R | TP5 | ooic | TP5S | 0OiO | TP 6 | 001E |
TP6S | 001F | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | Tl? | 0023 | TIl | 0024 |
TlO | 0025 | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 002«? | T5 | 002A |
T4 | 0028 | T3 | 002C | T2 | 0020 | Tl | 002E | ISTK | 002F | ISTACK | 0051 |
TA | 005? | SPGM | 0054 | EXTRA | 0056 | BUFF | 0058 | REAL | 0068 | IMAG | 0070 |
ATI | 0078 | AT2 | 0080 | W | 0088 | XR | 0090 | YR | 0098 | ZP | OOAO |
TR | OOAB | LSTX | OOBO | BKWRT | 00B8 | BKKC | ■003A | S0L7 | 00C6 | UPP | ooca |
UIP | OOCA | ALPHA | OOCC | 101 | ooco' | 102 | 0000 | IT7 | 0003 | FLAG | 0005 |
TPOS | 0006 | FILE | 00D7 | AR | 0008 | BR | οοεο | CR | 0OE8 | DP | OOFO |
ER | OOF* | sosn | 008A | MT | 7E00 | TERMN'7 | 003D | IMED | 0040 | P4RC0 | ooco |
PAREX | 0080 | NTBL | 0000 | DOTS | 5ECO | PRTOPV | 6020 | FRMT | 5CA 8 | BLANK | 5075 |
LDMSG | 579D | ROLLO | 5582 | ROLLU | 57Fl | PSD | 55OA | TXL | 55e9 | STKUP | 55EF |
MAO | 749P. | CMP | 74AA | NOR | 7406 | TXW | 7424 | TXXP | 743B | EXXP | 7452 |
ARSR | 7530 | OVUNF | 7586 | OVEPF | 750D | XRO | 740Δ | XRNINE | 75C3 | UNOPF | 75F1 |
IMULT | 7639 | ODG | 7669 | FPA | 75FC | FPS' | 75F6 | FPM | 77 35 | FPD | 7793 |
FPAEX | 7630 | FPMEX | 7780 | LSHIFT | 7521 . | ZEROX | 7439 | XZEROO | 7416 | X2E&02 | 7417 |
RECIP | 73E6 | TXRX | 73F3 | COMST | 6800 | FPD3RC | 6898 | TAN | 68A9 | ATN | 69C3 |
OSZERO | 6Δ46 | NTLN | 6458 | EXPN | 6AC9 | SIN | 6394 | COS | 659A | ASIM | 6«F2 |
ACOS | 68F7 | PHl | 6C5D | PH2 | 6C3D | PH3 | 6034 | PH4 | 6000 | LSFT8 | 6E47 |
SORT | 6E6.5 | MAD8 | 6F2C | CMPS | 53E4 | IOUPX | 6F52 | LOGlO | *F-i7 | YUPX | 6F£9' |
RTOP | .7328 | PTOR | 7386 | IFO | ΔΒΔ4 | NMET | 4BA8 | MET | 43 q a | IFPLS | 43*5 |
IFMI | 4R8A | IFXEY | 438F | IFXGEY | 48D8 | IFXLTY | 4B09 | METl | 43F7 | N"ET1 | 4^FC |
MEXTC | 4COl | NEXT8 | 4COD | NEXTA | 4C14 | NEXTI | 4Cl 9 | NEXTJ | 4ClE | MOPEL | 4Ci2 |
MORELl | 4C66 | FEROR | 4C73 | FORS | 4C77 | FPl | 6838 | DVDENT | 4C7-} | «LTFNT | 4C79 |
SL)BENT | 4C7A | ΔΟΟΕΝΤ | 4C7P | STOENT | 4C7C | RCLENT | 4C81 | PENT | 4C3A | T.iOPT | 4CA4 |
IADRS | 4CAB | USMEM | 4CB3 | GEM | 4CRE | NUMRIC | 4CC9 | VALID | 6-C03 | INOP | 4C£l |
REGO | 4CF4 | OVFLO | 4CF9 | INSTYP | 4CFE | PCHEK | 4D0F | LBLEX | 4015 | DDONE | 4DlA |
STOINS | 401B | REGMLT | 4039 | REGSUB | 4D3E | REGADO | 4D43 | MOOME | 4D46 | NOARI | 4053 |
SAORS | 405« | SAOl | 407F | R EO S | 4083 | ERR | 4D8C | REGZ | 4091 | 0< | 4097 |
OLD | 40Cl. | NEW | 40CD | RUNING | 4D0E | OKI | 4-DFO | LOOP | 4DF2 | OUT | 40F3 |
0UT2 | 4E08 | ADD7 | 4848 | SU87 | 4840 | TSFR | 49CE |
TOTAL ERRORS
««•«■«ERROR
218 NAM EDIT
»«»«ERROR
472 NAM STEP
709808/1025
5HSPECTiD
Page 61 CJ8PG 06/04/75 36:54.05
00215 | 4EC8 | 4840 | 16 | *e | OPT | EQU | ON | LIST.MEM | - | S4840 | ALL CODE FOR ALL EDITTlNG |
00218 | 4848 | 05 | «THIS 1 | NAM | EOU | EDIT | S484B | ||||
00219 | 7978 | OPT | EQU | LIST»MEM | S797B | ||||||
00220 | 7B40 | 11 | ORG | EQU | S4EC8 | S7B40 | |||||
00221 | 0080 | C8 | EOU | AT2 | • | ||||||
00222 | 0082 | C7 ■ | EQU | CONTAINS | AT2+2 | ||||||
00223 | "0084 | EQU | CJ. | AT2+4 | |||||||
00224 | 86 | OE | LDA | «22 | |||||||
00225 | 06 | LOA | FLAG | ||||||||
00226 | 54 | OB | LSR | A | |||||||
00227 | 25 | 08 | 5OUTTNE | BCS | B | sfcio | PRESET ACCA FOR POSSIBLE ERROR | ||||
00228 | OE | OOCC | »FUNCTIONS | LDX | B | UPP | GET "MEMORY SECURE" INFO | ||||
00229 | 4EC8 | 96 | 07 | LOA | S0L7+1 | MOVE SECURE 8IT TO CARRY | |||||
00230 | 4ECA | 16 | 06 | SUB7 | TAB | BRANCH IF MEMORY SECURED | |||||
00231 | 4ECC | 2« | AD07 | BMI | A | STCl | ELSE LOAD PRGM PNTR | ||||
00232 | 4ECD | 08 | BWM | INX | GET INST TO BE STORED | ||||||
00233 | 4ECF | 9C | 52 | ERR0R7 | CPX | EOPM | SAVE IT IN ACCB | ||||
00234 | 4EDl | 26 | 2E | T8 | BNE | STCO | BRANCH IF ONE BYTE INST | ||||
00235 | 4E03 | 7F | AFFECT | CLP | ALPHA | ELSE BUMP PRGM PMTR | |||||
00236 | 4E04 | 86 | 03 | FIELD | LDA | 1*7 | -END OF MEMORY ? | ||||
00237 | 4ED6 | 97 | 4FC7 | STC0D7 | STA | ERROR | BRANCH IF NOT | ||||
00238 | 4E07 | 39 | 4FC7 | RTS | A | RESET POSSIBLE ALPHA | |||||
00239 | 4E09 | 09 | C8 | HEX- | A | LOAD MEM OVFLO ERROR | |||||
00240 | 4E0R | 96 | C6 | LDA | TA | SAVE THE EBROR NUMBER | |||||
00241 | 4EOE | 27 | OO | BEQ | STCZ | RETURN | |||||
00242 | 4EE0 | 50 | C7 | TST | A | BACK UP - - | |||||
00?.43 | 4EE2 | 28 | 02 | BMI | STC3 | INSERT MOOE SET ? | |||||
00244 | 4EE3 | PO | Ol | JSR | B | INSRT | BRANCH IF NOT | ||||
00245 | 4EE4 | 90 | JSR | INSRT | TdO SYTE INST ? | ||||||
00246 | 4EES | OE | C8 | LDX | UPP | BRANCH IF NOT . | |||||
00247 | 4EE8 | 96 | 07 | LDA | S0L7 | OROP MEMORY | |||||
0024« | 4EE9 | A7 | 60 | STA | X | DROP MEMORY | |||||
002*9 | 4EEB | 9"6 | 03 | STC7 ' | LOA | A | S0L7+1 | GET INST PNTR | |||
00250 | 4EEE | 2fl | 590A | STClO | Β« I | A | STC4 | GET INST | |||
00251 | 4EFl | Δ7 | C7 | STA | α | IfX | SAVE FIRST BYTE . ' | ||||
00252 | 4EF3 | 4F | Ol | STCO | CLR | GET 2ND BYTE | |||||
00253 | 4EF5 | OE | STCl | LDX | A | UPP | BRANCH IF NO 2ND BYTE | ||||
00254 | 4EF7 | 06 | LDA | A | TGL | ELSE STORE 2ND BYTE | |||||
00255 | 4EF9 | C5 | OR | BIT | *S60 | CLEAR 'ftCCA FOR KEYLOG | |||||
00256 | 4£F8 | 27 | CB | BEQ | B | STC5 | GET PROM PNTR | ||||
00257 | 4EF0 | 7E | JMp | B | KEYLOG | GET TOGGLES | |||||
0025ft | 4EFE | 06 | STC3 | LOA | S0L7+1 | KEYLOG MODE SET ? | |||||
00259 | 4F00 | 28 | STC9 | BMI | STC6 | BRANCH IF NOT | |||||
00260 | 4FO 2 | 08 | INX | B | OO KEYLOG AND RETURN | ||||||
00261 | 4F04 | 08 | INX | CHECK THE CURRENT INST. | |||||||
00262 | 4F06 | 9C | CPX | EOPM | 8RANCH IF ONE BYTE | ||||||
00263 | 4F09 | 27 | BEQ | STC7 | ELSE BUMP PHTR | ||||||
00264 | 4F0B | BUMP PNTP | |||||||||
00265 | 4F00 | STC4 | EMO OF MEMORY ? | ||||||||
00266 | 4F.0E | BRANCH IF YES | |||||||||
00267 | 4F0F | ||||||||||
00268 | 4FU | ||||||||||
00269 | |||||||||||
00270 | |||||||||||
00271 | STC5 | ||||||||||
STC6 | |||||||||||
709808/1025
Page 62 CJBPG 06/04/75 36:54.05
00272 | 4F13 | DF | C8 | STC2 | STX | B | UPP |
00273 | 4F15 | 39 | •RTS | ||||
00274 | 4F16 | 50 | TST | A | |||
00275 | 4F17 | 2A | 12 | BPL | A | STC8 | |
00276 | 4F19 | A6 | OO | LOA | X | ||
00277 | 4FlB | 81 | BA | CMP | #SDR8 | ||
00278 | 4FlD | 23 | 02 | BLS | STC9 | ||
00279 | 4FlF | DF | 82 | STX | AFFECT | ||
00280 | 4F21 | BD | 4FEC | JSR | DEL · | ||
00281 | 4F24 | ce | FFFF | LDX | «-1 | ||
00282 | 4F27 | 80 | 67 | STCS | BSR | A | DHOOO |
00283 | 4F29 | 20 | C6 | BRA | A | STC9 | |
00284 | 4F2B | Λ6 | OO | LDA | X | ||
00285 | 4F2D | 81 | BA | CMP | A- | as DR B | |
00286 | 4F2F | 22 | CO | BHI | STC9 | ||
00287 | 4F31 | A6 | Ol | LDA | ItX | ||
00288 | 4F33 | 27 | BC | BEQ | A | STC9 | |
002«9 | 4F35 | BD- | 4FC7 | JSR | A | IMSRT | |
00290 | 4F38 | 96 | C6 | LUA | A | S0L7 | |
00291 | 4F3A | Δ7 | OO | STA | A | X | |
00292 | 4F3C | 96 | C7 | LDA | S0L7+1 | ||
00293 | 4F3E | A7 | Ol | STA | ItX | ||
00294 | 4F40 | •08 | INX | ||||
00295 | 4F41 | OF | 52 | STX | TA | ||
00296 | 4F43 | 08 | INX | ||||
00297 | 4F44 | OF | 80 | STX | TB | ||
00298 | 4F46 | BD | 500C | » | JSR | AMOD | |
00299 | 4F49 | 20 | B2 | 4» | BRA | STC4 | |
00300 | INSERT | B | |||||
00301 | B | ||||||
00302 | 4F48 | 06 | D5 | LDA | FLAG | ||
00303 | 4F40 | 54 | LSR | A. | |||
00304 | 4'F4E | 25 | 08 | BCS | BACK | ||
00305 | 4F50 | 96 | 52 | LD* | TA | ||
00306 | 4F52 | 26 | 07 | BNE | TERM | ||
00307 | 4F54 | OE | C8 | BACK | LDX | UPP | |
00308 | 4F56 | OF | 52 | TERM | STX | TA | |
00309 | 4F58 | 7E | 7973 | JMP | 8WM · | ||
00310 | 4F5B | SD | 52F4 | ft | JSR | STEPl | |
00311 | 4F5E | 20 | F8 | ft | SRA | BACK | |
00312 | DELETE | B | |||||
00313 | B | ||||||
00314 | 4F60 | 06 | D5 | LDA | FLAG | ||
00315 | 4F62 | 54 | LSR | A | |||
00316 | 4F63 | 25 | F3 | BCS | PACK | ||
00317 | 4F65 | 96 | 52 | LDA | TA | ||
00318 | 4F67 | 26 | EF | BME | BACK | ||
00319 | 4F69 | OE | C8 | LOX | A | UPP | |
00320 | 4F6B | OF | 82 | STX | A | AFFECT | |
00321 | 4F6D | A6 | OO | LOA | A | X | |
00322 | 4F6F | 97 | 2E | * | STA | Tl | |
00323 | 4F71 | 81 | BA | CMP | «SDBB | ||
00324 | 4F73 | 23 | 03 | ORYTE | BLS | OBYTE | |
00325 | 4F75 | 3D | 4FEC | JSR | DEL | ||
00326 | 4F78 | BO | 4FEC | JSR | OEL | ||
ELSE SAVE NEW PRGM POINTER RETURN
2tBYT£ INST ?
BRANCH IF YES ELSE CHECK INST IN MEMORY TWO BYTE INSTRUCTION
BRANCH IF YES ELSE SAVE DELETE PMTR · · RAISE MEMORY PRESET INDEX MODIFY THE ADDRESSES
CONTINUE GET CURRENT INST IN MEMORY TWO BYTE-INSTRUCTION
BRANCH IF YES ELSE GET FOLLOWING INST BRANCH IF IT IS A NOP ELSE DROP MEMORY GET INST TO BE STORED
STORE IT GET 2ND 8YTE STORE IT PRESET INDEX SAVE »INSERT START"
GET »INSERT END» SAVE IT ALSO MODIFY THE ADDRESSES CONTINUE
PROTECTED MEMORY
RETURN IF YES INSERTING ? TERMINATE IF SET GET CURRENT USER AORS SAVE FOP INSERT START
RETURN TO SUPV TERMINATE THE INSERT RETURN
PROTECTED MEMORY
RETURN IF YES INSERTING ?
IGNORE IF YES GET PRGM PNTR SAVE CURRENT AORS GET INST
SAVE CURRENT INST r
TWO BYTE INSTRUCTION BRANCH IF NOT RAISE MEMORY RAISE MEMORY
70 9808/1025
M. INSPECTED
Page 63 CJBPG 06/04/75 36:54.05
00327 00328 00329 00330 00331
00332 00333 00334 00335 00336 00337 00338 00339 00340 00341 00342 00343
00344 00345 00346 00347 00343 003*9 00350 00351 00352
00353 00354 00355 00356 OQ 357
00358 00359 00360 00361 00362 00363 00364 00365 00366
00367 00368 00369 00370 00371 00372 00373 00374 00375 00376 00377 00378
00379 003fl0 00381
4F79 4F7E 4F80 4F82 4F84
4F85 4F87 4F8A 4F8C 4F8E 4F90 4F92 4F95
4F96 4F97 4F99 4F98 4F9C 4F9E 4FA0 4FA2
4FA 4FA6 4FA8
4FA9 4FAB
4Ff?2 4F34
4FB3
4FRA 4FB8 4F30
4FCl 4FC3 4FC4 4FC1S
4FC7 4FC9 4FC8 4FCC 4FCE 4FO0 4F02 4FD4
4F05 4F07 4F0S 4F0A 4F0C
CE FFFF 96 2E 81 BA 23 09 SD
80 4EF0 DE 82 · OF C8 20 C8 DF IE CE 0OFE
08
08
9C OB 26 Ol 39 A6 OO
81 DF 23 F4
80 28 EF
26 50
27 EA BO 4848
28 C6 FO E4 OO E7 OO D6 SS
49 54
E7 Ol AA OO A7 OO 20 4F 5F 20 Fl
OE C8 A6 OO 08
9C 27 E6 OO A7 OO 17
20 F4 09 A6 OO
81 BA 23
S8T
S8T1 OMODO
DM004 OMOOl
0M008
LDX
LDA A
CMP A
BLS
DEX
BSR
JSR
LDX
STX
3RA
STX
LOX
INX
INX
CPX
BNE
RTS
LDA A
CMP A
BLS
BSR
0M005
BNE TST B BEQ JSR
0M0D7
DMOD6
INSRT ILOOP
IDONE
LOA B AND B STA B LDA B ASL R
HOL A LSR STA B ORA A STA 8RA CLR A CLR
BRA
LDX LOA A INX CPX BEO LQA STA A T8A BRA
DEX LOA A CMP A BLS *-l INITIALIZE INDEX
Tl GET INST DELETED PSDBB TWO BYTE INSTRUCTION
SBT BRANCH IF NOT "
2 STATES DELETED DMODO . MODIFY THE ADDRESSES STC4 GO CHECK FOR KEYLOG
AFFECT GET OLO AORS (KEYLOG '-OVEO IT)
UPP . RESTORE IT 8ACK RETURN TP6 SAVE INOEX FOR MODIFICATION «254 PRESET INDEX FOR SEARCH
SKIP AHEAD ONE
SKIP AHEAD ONE EOPM FINISHED YET 0M0D8 BRANCH IF NOT
ELSE RETURN
X GET NEXT INST «SDF ELSE CHECK FOR JHP OR JS*
DMOOl BRANCH IF NOT UNPACK UNPACK AND CHECK THE ADRS DM0D4 BRANCH IF NO MOO. NECESSARY
DM0D5 NON-ZERO: GO MODIFY
ELSE TEST LS 3ITS DM004 NO MOD. IF ZERO
AD07 MODIFY THE OLD APOPESS 0MOD6 BRANCH IF NER RESULT
äSFO GET INST MASK X REMOVE OLO INST AOPS X RESTORE OLO IMST
TP7S ACCQ=LS BITS OF NEW AD9S
PACK THE NEW ADRS
1»X - RESTOPE NEW LS BITS
X »OR» IN NEW MS 8ITS X RESTORE NEW MS BITS
DM0D4 CONTINUE
ACCA=ACCB=MIn ADRS
DM0D7 - CONTINUE
UPP GET PRGM PNTR X GET THE INST
INC POINTER
EOPM END OF MEMORY
IDOME 3RANCH IF YES X GET CURRENT INST
X SAVE OLO INST ·
TRANSFER NEW INST ILOOP CONTINUE
BACK UP ONE X GET THE INST
«SDBB TWO RYTE INSTRUCTION RTNl BRANCH IF NOT
9806/1026
ORIGINAL INSPECTED
Page 64 CJBPG 06/04/75 36:54.05
00382 | 4FDE | 6F | OO | RTNl | ,- | AMOOO | CLR | B | X | ELSE WIPE IT OUT |
00383 | 4FE0 | 20 | 03 | BRA | IDl | SET ERROR | ||||
00384 | 4FE2 | 50 | IDl | TST | A | INSTRUCTION SHOVED OFF ? | ||||
00385 | 4FE3 | 27 | 04· | BEQ | A | RTN | BRANCH IF NOT | |||
00386 | 4FES | 86 | 07 | RTN | LDA | «7 | LOAD ERROR | |||
00387 | 4FE7 | 97 | 06 | STA | ERROR | SAVE IT | ||||
00388 | 4FE9 | DE | C8 | » | LDX | UPP | • RELOAD PRGM PNTR | |||
00339 | 4FEB | 39 | DEL | RTS | RETURN | |||||
0039O | DLOOP | A | ||||||||
00391 | 4FEC | DE | C8 | LDX | A | UPP | GET PRGM PNTR | |||
0 0392 | 4FEE | Δ6 | Ol | LDA | 1 ,X | GET NEW IMST | ||||
00393 | 4FF0 | A7 | OO | STA | X | SAVE IT IN NEW LOCATION | ||||
00394 | 4FF2 | 08 | INX | INC MEMORY PNTR | ||||||
00395 | 4FF3 | 9C | OB | CPX | EOPM | ENO OF MEMORY ? | ||||
00396 | 4FF5 | 26 | F7 | BNE | DLOOP | BRANCH IF NOT | ||||
00397 | 4FF7 | 09 | j» | DEX | ELSE BACK UP ONE | |||||
00398 | 4FF8 | 6F | OO | »UNPACK | CLR | X | NOP TO LAST STATE | |||
00399 | 4FFA | 39 | ft | RTS | RETURN | |||||
00401 | UNPACK | AND | 8 | CHECK THE | GOTO/GOSUB AOOPESS | |||||
00402 | 8 | • | ||||||||
00403 | 4FFB | E6 | Ol | LOA | A | ItX | GET 2ND BYTE OF INST | |||
00404 | 4FF0 | 58 | ASL | 8 | EXTRACT THE ADDRESS | |||||
00405 | 4FFE | 46 | ROR | A | ACCA=MS BITS | |||||
00406 | 4FFF | 56 | ROR | A | ACCR=LS BITS | |||||
00407 | 5000 | 84 | 07 | AND | B | #57 | MASK OFF THE IMST. COOE | |||
00408 | 5002 | 97 | 20 | STA | A | TP7 | SAVE MS BITS | |||
00409 | 5004 | 07 | 21 | STA | 8 | TP7S | SAVE LS BITS | |||
00410 | 5006 | 4C | INC | A | AOD BASE PiGE OFFSET | |||||
00411 | 5007 | DO | 83 | SUB | AFFECT+1 | AOPS MODIFICATION NECESSARY | ||||
00412 | 5009 | 9? | 82 | e | SBC· | AFFECT | - — | |||
00413 | 500B | 39 | ■» | RTS | ||||||
00414 | , | ο | ||||||||
00415 | AMOD | |||||||||
00416 | ||||||||||
00417 | 500C | DE | 52 | LDX | TA | GET INSERT START | ||||
00418 | 500Ε | DF | 82 | STX | AFFECT | SAVE FOR "AFPECTEO" TEST | ||||
00*19 | 5010 | OF | 84 | STX | FIELD | SAVE FOR "FIELD" TEST | ||||
00*20 | 5012 | OF | IE | STX | TP6 | SAVE FOR "B-A" | ||||
00421 | 5014 | OE | 80 | LDX | TP | GET INSERT ENO | ||||
00422 | 5016 | DF | 20 | STX | TP7 | SAVE FOR "B-A" | ||||
00423 | 5018 | BO | 4840 | JSR | SUB7 | OO "B-A" TO TP7 | ||||
00424 | 501R | OE | 20 | AM0D4 | LOX | TP7 | GET THE RESULT | |||
00425 | 5010 | 26 | 06 | BNE | AMODl | BRAMCH IF NON-ZERO | ||||
00426 | 501F | 7F | 0052 | CLR | TA | RESET ALPHA FLAG/POINTER | ||||
00427 | 5022 | DE | C8 | AMOOl | LDX | UPP | RESTORE INOEX FOR STEP ROUTINE | |||
00428 | 5024 | 39 | RTS | RETURN | ||||||
00429 | 5025 | OF | IE | STX | TP6 | SAVE RESULT FOR "OOIFI CATIONS | ||||
00430 | 5027 | CE | 0OFF | LOX | #255 | GET STARTING AD^S-l | ||||
00431 | 502Α | 0« | INX | INC MEMORY PNTR | ||||||
00432 | 50 28 | 9C | 84 | CPX | FIELD | FIELD BOUNOARY ? | ||||
00433 | 502D | 26 | IC | BNE | AMO02 | BPAMCH IF MOT | ||||
00434 | 502F | 9C | 52 | CPX | TA | "A" ROUNOARY ? | ||||
00435 | 5031 | 26 | OA | BNE | AM0D3 | BRANCH IF NOT | ||||
00436 | 5033 | OE | 80 | LDX | TB | ELSE GET "Π" POINTER | ||||
70 9808/102 5
Page 65 CJSPG 06/04/75 36:54.05
00437 | 5035 | OF | 84 | AM003 | STX | A | FIELD | . SAVE FOR NEXT FIELO TEST |
00438 | 5037 | DF | 82 | STX | A | AFFECT | SAVE FOR "AFFECTED" TEST | |
00439 | 5039 | OE | 52 | *LDX | TA | RESTORE USER ADRS | ||
00440 | 503B | 20 | OE | BRA | AM0D2 | CONTINUE | ||
00441 | 503D | 9C | OB | CPX | EOPM | FINISHED ? | ||
00442 | 503F | 27 | DE | BEQ | AM0D4 | BRANCH IF YES | ||
00443 | 5041 | OE | OB | LDX | A | EOPM | ELSE GET NEXT FIELD TEST | |
00444 | 5043 | DF | 84 | AM002 | STX | FIELD | SAVE IT | |
00445 | 5045 | OE | 52 | LDX | B | TA | GET NEW »AFFECTED» VALUE | |
00446 | 5047 | DF | 82 | STX | B | AFFECT | SAVE IT | |
00447 | 5049 | DE | 80 | LOX | B | TB | RESTORE WORK ADRS | |
00448 | 504B | A6 | OO | LDA | 8 | X | GET THE USER INST | |
00449 | 5040 | 81 | OF | CMP | 8 | SSOF | ELSE CHECK FOR JMP OR JSR | |
00450 | 504F | 23 | 09 | BLS | A | AMODO | BRANCH IF IT IS NOT | |
00451 | 5051 | 80 | A8 | BSR | B | UNPACK | UNPACK AND CHECK THE ADRS | |
00452 | 5053 | 23 | 05 | BMI | B | AMODO | BRANCH IF NOT | |
00453 | 5055 | BO | 484B | JSR | A | AD07 | ELSE MODIFY THE. ADDRESS | |
00454 | 5058 | 85. | F8 | BIT | A | KSF8 | NEW ADRS > 2047 ? | |
00455 | 505A | 26 | 13 | BNE | AM008 | BRANCH IF YES | ||
00*56 | 505C | CS | FO | AMOOlO | LDA | A | «SFO | ELSE GET INST MASK |
00457 | 505E | E4 | OO | AND | B | X | AND IT WITH THE INST | |
00453 | 5060 | E7 | OO | STA | X | RESTORE THE INST | ||
00459 | 5062 | 06 | 21 | LDA | TP7S | ACCR=LS BITS OF NEW ADRS | ||
00460 | 5064 | 58 | ASL | PACK THE NEW ADDRESS | ||||
00461 | 5065 | 49 | ROL | |||||
00462 | 5066 | 54 | LSR | |||||
00463 | 5067 | E7 | Ol | AM008 | STA | 1«X | SAVE NEW LS BITS | |
00464 | 5069 | AA | OO | ORA | X | "OP" IN NEW MS BITS | ||
00465 | 5068 | A7 | OO | STA | X | RESTORE INST | ||
00466 | 5060 | 20 | ΘΒ | BRA | AMODO | CONTINUE | ||
00467 | 506F | 86 | 07 | LDA | »57 | • ACCA h ACCB= MAX ADRS | ||
00468 | 5071 | C6 | FF | LDA | *SFF | |||
00469 | 5073 | 20 | EF | BRA | AMODlO | CONTINUE | ||
7 0 9 8 0 8/1025 ORiGlNAL INSPECTED
Page 66 cjßPG 06/04/75 36:54.05
00472 00473 00474 00475 00476 00477 00478
00479 00480 00481 00482 00483 00484 00485
00486 00487 00488 00489 00490 00491 00492 00493 00494 00495 00496 00497
00498 00499 00500 00501 00502 00503 00504 005Ί5 00506 00507 00508
00509 00510 00511 00512 00513 00514 00515 00516 00517 00518 005,19
00520 00521 00522 00523 00524 00525
00526
527A
NAM | STEP |
OPT | LIST,MEM |
ORG | S527A |
527A 527C 5270 527F
5281 5283 5285 5287 5289 5238
5230 529F 5291 5292 5294 5297 5299 5298
5 29 C 529F 52Al 52Δ3 52A5 52A7 52AA
52AD 52AF 5291 5?Θ3 5235
52B7
»THIS ROUTINE HANOLES THE STEP AND BACK STEP
«FUNCTIONS IN BOTH RUN AND PROGRAM MODE.
»IN RUN MODE, STEP SIMPLY EXECUTES ONE USER INSTRUCTION. *
«IN PROGRAM MODE, STEP WILL 1) STEP OVER THE CURRENT «INSTRUCTION INDICATED BY UPP 2) LIST THAT INST
«IF TRACE MODE IS SET 3) FNTER THE ALPHA MOOE IF »THE INSTRUCTION WAS AN ALPHA INITIATOR.
*
«8ACK STEP OPERATES ONLY IN PROGRAM MODE AND
«WILL 1) BACK STEP OVER THE PREVIOUS INSTRUCTION «2> EXIT THE ALPHA MOOE IF THAT INSTRUCTION
«WAS AN ALPHA INITIATOR« ■»
»90TH STEP AND BACK STEP WILL TERMINATE THE
»INSERT MODE IF IT IS SET WHEN THEY ARE CALLED *
»WRITTEN BY BRAD MILLER
96 44
25 8D 06 23 OF CA <?6 CO
97 En Cl 27 44
97 7E 7968 C5 27 4F
80 59DA 9fi
26 9ft CC
27 7E 519C 7E 797B A6
81 RA 23 OD 81 BE 26 E6
STED
LDA A LSR A BCS BSR LOA B
STX
LDA A STA A LDA R CMP BEQ
LSR A
STPS STA A JMP
PGMO BIT B BEO CLR A JSR LDA A BNE
STP<j LDA A' BEO JMP
OUTl JMP
NKEYLG LDA A CMP A BLS CMP A BNE
LDA R
FLAG GET PROTECT FLAG
GET PROTECT BIT
OUTl RETURN IF PROTECTED
STEPl CHECK FOR INSERT
TGL GET MODE
PGMD 9RAMCH IF PROGRAM MODE
UIP SAVE IN INST PNTR
«SCO ' GET R/S FLAG INFO
SFLG SET THE STEP FLAG
X GET CURRENT USER INST
«SRO STOP COM'-'AND ?. . -
STP8 BRANCH IF YES
ELSE RSFLG = $40
RSFLG SAVE THE FLAG
EXEC7 GO DO IT J
«Έ60 KEYLOG MODE SET
NKEYLG · BRANCH IF NOT
PRESET ACCA FOR KEYLOG
KEYLOG DO THE KEYLOG AND STEP
ERROR ERROR ?
OUTl RETURN IF YES
ALPHA ALPHA "0OE ?
OUTl 8RANCH IF NOT
TOALP ELSF DO "TO ALpHA·'
BWM RETURN TO SUPV
X GET CURRENT INSTRUCTION
»soea two byte instruction
STP3 BRANCH IF MOT
«S'BE FORMAT INSTRUCTION
STP4 BRANCH IF NOT
ItX ELSE GET 2ND RYTE
7098Ö8/102S
OJ^JGlM,
!AL JMSPECTED
Η·'
- 90 -
Page 67 CJBPG 06/04/75 36:54.05
00527 00528 00529 0.0530 00531 00532 00533 00534 00535
00536 00537 00538 00539 00540 00541 00542 00543 00544 00545 00546 00547 00543
00549 00550 00551 00552 00553 00554 00555 00556 00557 00558 00559 00560
00561 00562 00563 00564 00565 00566 00567 00568 00569 00570 00571 00572
00573 00574 00575 00576
5289 S28B 52BD 52BF 52C0 52Cl
52C3 52C5 52C6 52C8 52CA 52CC
52CE 52D0 52Dl 52D2 5204
5206 5208 52DA 520C 52DE 52E0
52E2 52E4 52E5 52E7 52E9
52E3 52ED 52EF 52F0 52F2
C5 OF
26 97 CC 08
08 81
27 2A 4F
9C OB 27 DF C8 20
80 09
09 DF
96 26
97 C9 97 CC 20 C5 A6 OO fll BA
22 Ol 08
81 BE 26 El E6 0Γ
C5 OF 26 DB 4F
97 CC 20
52F4 DE C8 52F6 96 52F8 26 Ol 52FA 52FB DF
S2F0 7E 500C
BIT B «SF ALPHA TYPE FOPMAT INST
BNE STP4 BRAMCH IF NOT
STA A ALPHA ELSE SET ALPHA FLAG
.STP4 INX MOVF AHEAD ONE
STP3 INX MOVE AHEAO ONE
CMP A f*SB4 ALPHA TERMINATOR ? ' ·
BEQ BSTP4 BRANCH IF YES AND RESET ALPHA
CLR A
STP7 CPX EOPM . END OF PROGRAM MEMORY ?
BEQ BSTP3 BRANCH IF YES
STP5 STX UPP ELSE SAVE NEW PPGM AQRS
BRA STP6 GO FINISH UP !
»BACK STEP BEGINS HERE
BSTEP
8STP3 BSTPl
BSTP2 3STO4
BSR DEX OEX STX
LDA A · BNE STA A STA A BRA LDA A CMP BHI INX CMP A BNE
LDA-R BIT R BNE CLR A STA A
BRA
STEPl
JPl TPl RSTPl
upp+i
ALPHA
STP6
«SDBR
8STP2
SSBE
STP5
ItX
#SF
STP5
ALPHA STP7
STEPl LDX UPP
LDA A TA
8NE STEP2 RTS
STEP2 STX TB
JMP AMOD
CHECK FOR INSERT
8ACK UP ONE
8ACK UP ONE
PRGM PNTR TO TEMP FOR CHECK
BACKED BEHIND ADRS ZERO ? ,
BRANCH IF NOT
ELSE SET UPP TO STATE ZERO
CLEAR THE ALPHA MODE
GET OUT !
GET THE INSTRUCTION
TWO BYTE INSTRUCTION
BRANCH IF YES (UPP OK)
ELSE MOVE AHEAD ONE
FORMAT INSTRUCTION
BRANCH IF NOT
ELSE GET 2ND ^YTE -- — -
ALPHA INST ?
BRANCH" IF NOT
CLEAR ALPHA MODE GET OUT Ϊ
GET CURRENT PPGM PNTR
ARE WE IN THE INSERT MODE
BRANCH IF YES
ELSE RETURN
SAVE FOR "INSERT END"
MOD, GOTO1S AND RET. UPP IN INOEX
7968. EXEC7 EQU S7968
519C TOALP EQU S519C 59DA KEYLOG EQU S590A
70980 8/1025 INSPECTED
Page 68 CJBPG 06/04/75 36:54.05
00579 | 0000 | ACTL | • · | ENO | 0002 | BCTL | 0003 | INPUT | 0004 | IOIN | 0005 |
0006 | TGL | 0008 | RSFLG | 0009 | EOM | OOOA. | EOPM | OOOB | |||
SYMBOL TABLE | OOOO | RNO | 0001 | BOATA | O O OF | W2 | 0010 | Wl | 0011 | SFLG | 0012 |
AOATA | 0013 | TPl | 0007 | UFLG | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0018 |
ERROR | 0019 | TP4 | οοοε | DIGFLG | OOIB | TP5 | OOIC | TPSS | ooio | TP 6 | 001E |
STKFLG | 001F | TP7 | 0014 | TPlS | 0021 | T13 | 0022 | T12 | 0023 | TIl | 0024 |
OCNTR | 0025 | T9 | OOIA | TP4S | 0027 | T7 | 002P | T6 | 0029 | T5 | 002A |
TP3S | 0028 | T3 | 0020 | TP7S | 002D | Tl | 002E | ISTK | 002F | ISTACK | 0051 |
TP6S | 0052 | SPGM. | 0026 | Τ8 | 0056 | BUFF | 0058 | REAL | 0068 | IMAG | 0070 |
TlO | 007« | AT2 | 002C | Τ2 | 0088 | XR | 0090 | YR | 0093 | ZR | OOAO |
T4 | 00A8 | LSTX | 0054 | EXTRA | 00B8 | BKKC | OOBA | S0L7 | 00C6 | UPP | 00C8 |
TA | OOCA | • ALPHA | 0080 | W | OOCO | 102 | 0000 | IT7 | 0003 | FLAG | 0005 |
ATI | 0006 | FILE | ΟΟΒΟ. | BKWRT | 0OD8 | BR | OOEO | CR | 00E8 | DR | OOFO |
TR | 00F8 | SOBi? | 0OCC | ΙΟΙ | 7E00 | TERMN7 | 003D | IMEO · | 0040 | PftRCO | OOCO |
UIP | 0080 | NTBL | 0007 | AR | 5EC0 | PRTORV | 602D | FRMT | 5CA8 | BLANK | 5075 |
TPOS | 5780 | ROLLO | .0OBA | MT | 57Fl | PSD | 55DA | TXL | 55E9 | STKUP | 55EF |
ER | 749B | CMP | 0000 | DOTS | 74D6 | TXW | 7424 | TXXR ' | 7438 | EXXR | 7452 |
PAREX | 753B | OVUNF | 5532 | ROLLU | 75DD | XRO | 74OA | XRNINE | 75C8 | UNORF | 75Fl |
LOMSG | 76B9 | QOG | 74AA | NOR | 75FC | FPS | 75F6 | FPM | 7735 | FPO - | 7793 |
MAO | 7630 | FPMEX | 75Β6 | OVERF | 7521 | ZEROX | 7489 | XZEROQ | 7416 | XZER02 | 7417 |
ARSR | 73E6. | TXRX | 7669 | FPA | 6800 | FPDBRC | 6898 | TAN | 63A9 | ATM | 69C3 |
IMULT | 6A4A | NTLN | 7780 | LSHIFT | 6AC9 | SIN | 6B94 | COS | 689A | ASIN | 69F2 |
FPAEX | 6SF7 | PHl | 73F3 | CONST | 6C8D | PH3 | 6D34 | PH4 | 60DO | LSFT8 | 6E47 |
RECIP | 6E65 | MA08 | 6Α58 | EXPN | 53E4 | IOUPX | 6F52 | LOGlO | 6FA7 | YUPX | 6FE9 |
OSZERO | 7328 | PTOR | 6C5D | ΡΗ2 | 4840 ' | AD07 | 484B | BWM | 7979 · | EQR0P7 | 7840 |
ACOS | 0030 | AFFECT | 6F2C | CMP8 | 0084 | STC0D7 | 4EC8 | STC7 | 4EDE | STClO | 4££0 |
SORT | 4EE3 | STCl | 7386 | SUB7 | 4EEE | STC9 | 4EFl | STC4 | 4EF0 | STC5 | 4F09 |
RTOP | 4FOE | STC2 | 0.082 | FIELD | 4F2B | INSERT | 4F4B | RACK | 4F58 | TERM | 4F5B |
. TB- | 4F60 | -08YTE- | 4ΕΕ4 | STC3 | 4F85 | S3T1 | 4F3E | OMOOO | 4F90 | DM004 | 4F95 |
STCO * | 4F96 | 0M008 | 4F16 | STCfi | 4FAB | DM0D7 | 4FB8 | 0M0D6 | 4FC3 | INSRT | 4FC7 |
STC6 | 4FC3 | I DO NE | 4F78 | SBT | 4FE2 | 101 | 4FE5 | RTN | 4FE9 | DEL | 4FEC |
- DELETE | 4FEE | UNPACK | 4F9C | θ"οος | 500C | •AMOO4 | 501F | AMODl | 5025 | ΔΜΟ00 | 502A |
OMOOl | 503O | AVOD2 | 4FD7 | RTNl | 5064 | AMODR | 506F | STEP | 5?7A | STP8 | 5292 |
ILOOP | 5297. | STP6 | 4FFB | AMOO | 52AA | NKEYLG | 52A0 | STP4 | 52RF | STP3 | 52C0 |
OLOOP | 52C6 | STP5 | 5048 | AMOOlO | 52CE | RSTP3 | 520Δ | BSTPl | 520E | BSTP2 | 52ES |
AM003 | 52EF | STEPl | 52Α3 | OUTl | 52F3 | EXEC7 | 796β | TOALP | 519C | KEYLOG | '590A |
PGMO | TOTAL ERRORS | 2 | 52CA | BSTEP | |||||||
STP7 | 52F4 | STEP2 | |||||||||
8STP4 | |||||||||||
• »«•»ERROR 201
218 NAM FMTFMT
70 9808/102 5
Page 69 CJßPG 06/04/75 36:54.05
00215 00218 00219 00220 00221
00222 00223 00224 00225 00226 00227
00228 00229 00230 00231 00232 00233
00234 00235 00236 00237 00238 00239 00240
00241 00242 00243 00244 00245 00246
00247 00248 00249 00250 00251 00252 00253 00254 00255
00256 00257 00253 00259 00260 00261 00262 00263 00264
00265 00266 00267 00268 00269 00270 00271
5075
OPT | LIST,MEM |
NAM | FMTFMT |
OPT | LIST1MEM |
ORG | $5075 |
5075 D6 5077 5079 507B 507D CA 507F 5081 OE 5083
5084
5085 9C 5087 5089 DF 508B A6 5080 508F 5091 5093 5095
5097 5099 509A OF 509C 7E 509F 50Al 50A3 50A5 50A7 5C SOAQ
50AA 7F 50AD BD SOBO
50R2 Sl 5034 5086
5089 50BB CE 503E 508F A6
50Cl el 50C3 50C5 A6 50C7
* THIS SUBROUTINE ACCEPTS IN ACCA EITHER AN ASCII
' * CHARACTER OR ZERO. IF ACCA=O. CHARACTERS ARE ASSUMED TO BE
* IN USER MEMORY AND THE OUTPUT IS BUILT FROM THERE.
* IF ACCA IS A CHARACTER. THE ROUTINE WILL SIMPLY β PUT THAT CHARACTER INTO THE CURRENT OUTPUT LINE
* BEING BUILT AND RETURN TO THE CALLER.
* ON THE INITIAL ENTRY» T13 MUST BE SET TO ZERO. (T13=FIELD
* THIS ROUTINE BUILDS THE LINE IN LOCATIONS REAL AND IMAG
»
09 AFMT LDA 8 PSFLG · GET CURRENT RUN/STOP FLAG
27 STA B T8 SAVE IT FOR EXIT CHECK
25 STA A TlO SINGLE CHARACTEP MODE
14 BNE SCHAR BRANCH IF YES.
CO ORA R #SCO SET IT FOR »STOP·1 COMMANO CHECK
09 ..STA B RSFLG RESTORE THE UPDATE CA "LDX UIP ELSE GET PRGM PNTR
INX BUMP IT TO FIRST CHAR
AFMTO INX " BUMP TO THE CHARACTER
08 CPX EOPM END OF MEMOPY
13 BEQ AFMT15 TERMINATE IF YES
CA STX UIP ELSE SAVE UPDATED POINTED
00 LDA A X GET THE CHARACTER
02 8NE SCHAR CONTINUE IF NON ZERO 20 LDA A #$20 ELSE LOAD A BLANK
B4 SCHAR CMP A £SB4 ALPHA TERMINATOR
07 BEQ- AFMT15 BRANCH IF YES
Bl - CMP A «SB1 END STATEMENT
06 8NE' AFMTl BRANCH IF NOT
DEX ELSE BACK UP ONE
CA STX UIP RESTORE UIP
513E AFMT15 JMP ATERM TERMINATE THE OUTPUT
B2 AFMTl CMP A «SB2 IS IT A PRINT COMMAND
47 BNE AFMT2 BRANCH IF NOT
22 LDA B T13 GET FIELD INDICATOR
3C BNE AFMTlO IGNORE PRINT IF ONE ALREADY DONE
INC B ELSE SET PRINT FLAG
22 STA B T13 RESTORE FIELD INDICATOR
000F AFMT13 CLR DIGFLG TERM. DIGIT ENTRY
5C8C JSR FRMT+S14 FORMAT X-REG
67 AFMT4 LDA A BUFF+15 GET RIGHT-MOST CHAR
20 . CMP A £«120 IS IT A BLANK
05 BNE AFMT3 BRANCH IF NOT
S184 JSR. SHBUFF ELSE SHIFT THE BUFFER RISHT
F5 BRA AFMT4 CONTINUE REMOVING TRAILING RLANKS
0057 AFMT3 LDX #8UFF-1 GET LEFT-END CHAP AORS -
AFMT5 INX GET CHAR AORS
00 LDA A X GET THE CHARACTER
20 CMP A #S20 . IS IT A BLANK
F9 BEQ AFMT5 BRANCH IF YES
10 LDA A 16.X ELSE GET CORRESPONDING STRING LOCATlO
03 3EQ AFMT7 BRANCH IF IT»S EMt>TY
709808/1025
Page 70 CJBPG 06/04/75 36:54.05
00272 | 50C9 | 7Ε | 5173 | OO | AFMT7 | - | APMTlO | JMP | A . | LOVFl |
00273 | 50CC | DF | 23 | 0077 | AFMT14 | STX | A | T12 | ||
00274 | 50CE | Α6 | 00· | ca | LDA | X | ||||
00275 | 5000 | Α7 | 10' | 56 | STA | 16t-X | ||||
00276 | 50D2 | 08 | 0078 | AFMT2 | INX | |||||
00277 | 50D3 | ac | 0068 | CPX | «BUFF+16 | |||||
00278 | 50D6 | 26 | F6 | OO | BNE | AFMT14 | ||||
00279 | 5008 | DE | 23 | F8 | LDX | T12 | ||||
00280 | 50DA | ac | 0053 | CPX | B | «RUFF. | ||||
00281 | 50DD | 27 | 39 | 23 | BEQ | AFMT6· | ||||
00282 | 50DF | E6 | OF | 02 | AFMT16 | LOA | 15»X | |||
002*3 | 50El. | 26 | 35 | Ol | 8NE | A | AFMT6 | |||
00284 | 50E3 | DE | CA | LDX | UIP | |||||
00285 | 50E5 | 96 | 25 | 0076 | LOA | TlO | ||||
00 286 | 50E7 | 27 | 9B | F6 | BEQ | A | AFMTO | |||
00287 | 50E9 | 39 | Ol | RTS | ||||||
00288 | 50EA | 81 | 02 | 23 | CMP | A | HZ | |||
00289 | 50EC | 27 | 2A | 0067 | AFMT17 | BEQ | AFMT6 | |||
00290 | 50EE | Bl | 03 | 38 | CMP | *3 | ||||
00291 | 50FO | 26 | 05 | OO | BNE | AFMT16 | ||||
00292 | 50F2 | 73 | 0026 | AFMT9 | COM | 3 | T9 | |||
00293 | 50F5 | 20 | EC | 8RA | AFMTlO | |||||
0029Λ | 50F7 | Dft | 26 | LDA | A | T9 | ||||
00295 | 50F9 | 27 | OA | BEQ | AFMT17 | |||||
00296 | 50FB | 81 | 48 | CMP | A | #S48 | ||||
00297 | 50FO | 22 | 06 | 8HI | AFMT17 | |||||
00298 | SOFF | 81 | 40 | A FMT 6 | CMP | A | «S40 | |||
00299 | 5101 | 23 | 02 | AFMT8 | BLS | .8 | AFMT17 | |||
00300 | 5103 | 88 | IF | AFMT12 | AOD | #S1F | ||||
00301 | 5105 | 06. | 22 | LDA | T13 | |||||
00302 | 5107 | 26 | 11 | 8NE | AFMT8 | |||||
003Π3 | 5109 | CE | 0067 | LDX | 8 | ePEAL-l | ||||
00304 | 510C | 08 | INX | |||||||
00305 | 51OD | E6 | OO | AFMTIl | LDA | A | X | |||
00306 | 510F | 26-F8- ■- | 8NE | AFMT9 | ||||||
00307 | 5111 | A7 | STA | X | ||||||
00308 | 5113 | flC | CPX | ÖPEAL+15 | ||||||
00309 | 5116 | 26 | BNE | AFMTlO | ||||||
00310 | 5118 | 20 | 3RA | LOVF | ||||||
00311 | 511-Λ | CE | LDX | B | «PEAL+16 | |||||
00312 | 5110 | 09 | OEX | |||||||
00313 | SIlE | E6 | LOA | X | ||||||
003U | 5120 | 26 | BNE | AFMT12 | ||||||
00315 | 5122 | 09 | DEX | B | ||||||
00316 | 5123 | OF | STX | β | Tl 2 | |||||
00317 | 5125 | E6 | LOA | 2.X | ||||||
00318 | 5127 | E7 | STA | ItX | ||||||
00319 | 5129 | oa | INX | |||||||
00320 | S12A | ac | CPX | A | «PEAL+14 | |||||
00321 | 5120 | 26 | BNE | AFMTIl | ||||||
00322 | 512F | A7 | STA | ItX | ||||||
00323 | 5131 | DE | LDX | T12 | ||||||
00 324 | 5133 | 8C | CPX | B | «REAL-1 | |||||
00325 | 5136 | 27 | REO | LOVF | ||||||
00326 | 5138 | E6 | LDA | X | ||||||
ELSF TESMiMATE THIS LIME
SAVE INDEX FOR FULL CHECK TRANSFER X-REG ASCII THE RIGHT MOST END OF THE
STRING HElNG 8UILT
DONE YET ? BRANCH IF NOT GET INITIAL INDEX VALUE · POINTING TO LEFT MOST CHAt? ?
LINE OVERFLOW IF YES GET STRING CHAR LEFT OF X-REG LIME FULL IF NON-ZERO ELSE GET PRGM PNJR
SINGLE CHARACTER MOOE BRANCH IF NOT
ELSE RETURN TO CALLER "NEW LINE» COMMAND BRANCH IF YES "SHIFT" COMMAND ?
BRANCH IF NOT ELSE TOGGLE THE SHIFT FLAG CONTINUE
GET THE SHIFT FLAG BRANCH IF SHIFT NOT INVOKED ELSE CHECX CURRENT CHARACTER
BRANCH IF UNAFFECTED SY "SHIFT" ELSE CHECK LOWER LIMIT
8RANCH IF UNAFFECTED GENERATE SHIFTED'CHARACTER GET THE FIELD INDICATOR
BRANCH IF "PRINT" ALREADY RECEIVED
ELSE FIND FIRST AVAILABLE LOCATION
BUMP SEARCH AORS GET CURRENT CONTENTS CONTINUE SEARCHING IF IT'S FULL ELSE SAVE NEV CHARACTER
LAST AVAILABLE LOCATION BRANCH IF NOT FULL YET ELSE LINE OVERFLOW
GET RIGHT MOST ADRS ■+ BACK INTO THE LINE GET CURRENT CHARACTER
BRANCH IF NOT EMPTY ELSF BACK UP AGAIN
SAVE BUFFER ADRS MOVE THE RIGHT ENO ASCII LEFT ONE POSITION IN THE PUFFER
DONE SHIFTING YET ?" BRANCH IF NOT SAVE LATEST CHARACTER GET INITIAL BUFFER PNTR
LINE FULL NOW ?
BRANCH IF YES · ·
ELSE GET CHAR LEFT OF X-REG
709808/102 5
Page 71 CJRPG 06/04/75 36:5*.05
- 94 -
00327 00328 00329 00330 00331 00332 00333
00334 00335 00336 00337 00333 00339 003*0
00341 00342 00343 00344 00345
00346 00347 00348 00349 00350 00351 00352 00353 354 00355 00356 00357
-00358 00359 00360
-00361-00362 00363 00364 00365 00366 00367 00368 00369
00370 00371 00372 00373 00374 00375 00376 00377 0037a
00379 003«0 00381
513A 513C 513E 5140 5142 5144 CE
5147 E6 5149 5148 514C S14E
514F CE
5152 OR
5153 A6 5155 5157
5159 A7
5158 8C-515E 26" 5160 5162
5164 516628 5168 516A 516C 5160 7E 5170 7F
5173 5175 CE 5178 6F 517A 09· 517B 517D
-517F 51*1 7E 5184 CE 5187 A6
5189 0« 518A 8C 519D 518F E6
5191 Δ7 5193 5194 5195
5197 5199 5198 519C D6 519E
51AO 51A2 2A 51A4 «Ο 51A7 7F
34
A5
27
02
09.
0010
67
04
F9 0057
10
02
20
OO
0067
F2
25
09
09
05
12
Ol
5300
0022
DA
0010
67
FB
22
88 -
SOAA
0058
OO
0068 08 OO OO
F3 20 58
07
OE
07
3C
4EC8
00C6
AFMT.18 ATERM
ATERMO ATERM4
ATERM3 ATERM2
ATERMl
PRINT
LOVF
LOVFl
L0VF2
SHSUFF
SSS
TOALP ALPHAK
BNE .BRA LOA B
BMI STA LDX LDA B BNE DEX 8NE RTS LDX INX LDA A 8NE LDA A
STA A CPX BNE LDA A BNE LDA A BMI LDA A BNE RTS JMP CLR
BSR LDX CLR DEX 8NE LOA B 8EQ JMP LDX LDA A
INX CPX BEO LDA B STÄ A TBA INX BRA LDA A STA A
RTS LOA 8MI LDA R BPL JSR CLR
LOVF
AFMTlO
T8
ATERMO
RSFLG
REAL-ItX ATERM3
ATERM4' «BUFF-1
16,X
ATERMl
#520
«BUFF+15
ATEPM2
TlO
PRINT
PSFLG
PRINT
SFLG
PRINT
OEVICE
T13
ATERM3
#16
REAL-1»X
L0VF2
T13
AFMT18
AFMT13
SBUFF
«8UFF+16
SSS
»$20 8UFF
TGL
NKLGl
TGL
RMODl
STC007
S0L7 OVERFLOW IF NON-ZERO GO SEE WHAT'S NEXT GET SAVED R/S FLAG
BRANCH XF NO CHANGE NECESSARY ELSE RESTORE OLD FLAG SET CHARACTER COUNT
GET RIGHT END CHAR. 8RANCH IF NOT NULL ANO PRINT
ELSE CONT. CHECKING FOR NULL STRING ALL CHAR. CHECKEO ?
YESf NULL LINE: NO PRIMTt RETURN
PRESET INOEX TO MOVE THE LINE THE TEMPORARY BUILDING BUFFER
TO THE OUTPUT BUFFER PUTTING BLANKS IN THE OUTPUT SUFFER IN THE COCRESPONDING LOCATIONS
WHERE ZERO'S WERE FOUND IN THE TEMPORARY BUFFER
SINGLE CHARACTER MODE ? PRINT IF YES
STOP KEY HIT ? PRINT IF NOT
STEPPING ?
PRINT IF YES ELSF SKIP THE PRINT CALL THE OUTPUT DEVICE RESET FIELO POINTER OUTPUT THE CURRENT STRING PRESET INDEX FOR CLEAR CLEAR LINE BUFFER
STOP KEY HIT ? PRINT IF NOT
STEPPING ?
PRINT IF YES ELSF SKIP THE PRINT CALL THE OUTPUT DEVICE RESET FIELO POINTER OUTPUT THE CURRENT STRING PRESET INDEX FOR CLEAR CLEAR LINE BUFFER
GET FIELD POINTER CONTINUE IF IN ALPHA. ... -ELSE RE-OO X-REG
GET THE SUFFER STARTING GET LEFT MOST CHARACTER
INC THE BUFFER POINTER
FINISHED YET ? BRANCH IF YES
ELSF. SAVE NEXT CHARACTER REPLACE IT WITH THE OTHER TRANSFER NEW CHAR TO ACCB
ADJUST THE PNTR .
CONTINUE SHIFTING PIGHT THE BUFFER
REPLACE THE LEFT MOST CHAR WITH A BLANK ANO RETURN.
WHAT MODE ?
BRANCH IF PPQGPAM MODE
GET MOOE
BRANCH IF PUN MOOE
ELSE STORE INST CLEAR THE INSTRUCTION REGISTER
7 0 9 8 0 8/1025
GWGlHAL I
Page 72 CJFIPG 06/04/75 36:54,05
- 95 -
00382 | SlAA" | C6 | 80 | NKLGl | LDA | 8 | #$80 |
00383 | 51AC | 07 | C7 | STA | P | S0L7+1 | |
00384 | 51AE | 07 | CC | ST-A | R | ALPHA | |
00385 | 5180 | 96 | 06 | AK2 | LOA | A | ERROR |
003β6 | 5182 | 26 | 29 | BNE | AK3+3 | ||
00387 | 5184 | BD | 7A64 | JSR | SOISPl | ||
00388 | 5187 | 80 | 5229 | JSR | KTOA | ||
00389 | 518A | 81 | 04 | CMP | A | «4 | |
00390 | 518C | 26 | 03 | AK8 | 8NE | AK8 | |
00391 | 518E | 7E | 527A | JHP | STEP | ||
00392 | 51Cl | 81 | 05 | CMP | A | #5 | |
00393 | S1C3 | 26 | 03 | AK9 | BNE | AK9 | |
00394 | 51C5 | 7E | 52CE | JMP | 8STEP | ||
00395 | 51C8 | 97 | C6 | STA | A | S0L7 | |
00396 | 51CA | 80 | 4EC8 | JSR | STC0D7 | ||
00397 | 51CO | 96 | 06 | LOA | A | ERROR | |
00398 | 5ICF. | 26 | OC | 8NE | AK3+3 | ||
00399 | 5101 | 96 | C6 | LDA | A | S0L7 | |
00400 | 5103 | 7F | 00C6 | CLR | S0L7 | ||
00401 | 51D6 | 81 | 84 | AK3 | CMP | A | #?84 |
00402 | 51D8 | 26 | DA | BNE | AK2 | ||
O0403 | 51DA | 7P | OOCC | PMOOl | CLR | ALPHA | |
00404 | 5100 | 7E | 7978 | JMP | BWM | ||
00405 | 51E0 | 4F | CLR | A | |||
00*06 | 51El | «J 7 | 22 | STA | A | T13 | |
00407 | 51E3 | 97 | 26 | STA | A | T9 | |
004Ö8 | 51E5 | 4C | INC | A | |||
00409 | 51Eft | 97 | CC | AK7 | STA | A | ALPHA |
00410 | 51E8 | CE | 0010 | LOX | «Ί6 | ||
004Π | 51EB | 6F | 67 | CLR | REAL-1»X | ||
00412 | 51E0 | 09 | AK6 | OEX | |||
00413 | SiEE | 26 | F8 | BNE | AK7 | ||
00414 | 51F0 | RO | 7A64 | — - - | JSR | SOISPl | |
00415 | 51F3 | 80 | 36 | BSR | KTOA | ||
00416 | 51F5 | 06 | C7 | LOA | 8 | S0L7+1 | |
00417 | 51F7 | C4 | 70 | ANO | B | «570 | |
00418 | 51F9 | 27 | 16 | BEQ | PRT | ||
00419 | 51F8 | 97 | 68 | STA | A | REAL | |
00420 | 51FO | 80 | 5324 | JSR | IOFMT | ||
00421 | 5200 | 96 | 06 | LOA | A | ERROR | |
00422 | 5202 | 26 | 06 | BNE | AK3 | ||
00^23 | 5204 | 96 | 68 | LDA | A | REAL | |
00424 | 5206 | 81 | 84 | CMP | A | «584 | |
00425 | 5208 | 27 | OO | 8EO | AK3 | ||
00426 | 520A | CE | 00C6 | LDX | #S0L7 | ||
00427 | 5200 | DF | CA | PRT | STX | UIP | |
00423 | 520F | 20 | OF | BRA | AK6 | ||
00429 | 5211 | «0 | 15 | BSR | AK5 | ||
00430 | 5213 | 96 | 25 | LDA | A | TlO | |
00431 | 5215 | 81 | 84 | CMP | A | #SB4 | |
00432 | 5217 | 27 | Cl | R.MPRT | BEQ | AK3 | |
00433 | 5219 | 20 | 05 | BRA | AK6 | ||
00434 | 52 IB | 4F | CLR | A | |||
00*35 | 521C | 97 | 22 | STA | A | T13 | |
00436 | saiE | 97 | 26 | STA | A | T9 | |
PREPARE THE SECOND 8YTE
SET THE ALPHA FLAG ERROR GENERATED 8RANCH IF YES GET NEXT KEY
CONVERT TO ASCII STEP COMMAND BRANCH IF NOT ELSE DO "STEP" BACK STEP COMMAND BRANCH IF NOT
ELSE OO "8ACK STEP" SAVE THE ASCII STORE IT IN MEMORY
ERROR ?
BRANCH IF YES GET THE CHARACTER RESET THE INST REGISTER
^LPHA TERMINATOR BRANCH IF MOT ELSE RESET THE AL=HA FLAG
RETURN TO SUPV.
ZERO TO ACCA CLEAR THE FIELD POINTER RESET THE SHIFT FLAG SET ACCA
SET ALPHA FLAG PRESET INDEX CLEAR LINE BUFFER
GO GET NEXT CHAR. CONVERT ACCA TO ASCII
GET IMST - -
MASK OFF SELECT COOE
■BRANCH IF PRINTER ELSE PUT CHAR IN PE^L
CALL THE DEVICE ERROP GENERATED BRANCH IF YES GET LAST CHAR OUTPUT
ALPHA TERMINATOR.?
BRANCH IF YES ELSE RESET INST PNTR SAVE IT
CONTINUE OUTPUT TO RUFFER GET LAST CHAO OUTPUT
ALPHA TERMINATOR
BRANCH IF YES ELSE CONTINUE
CLEAR FIELD POINTER CLEAR SHIFT INOICATOR
709808/1025 ORIGINAL
Page 73 CJBPG 06/04/75 36:54.05
00^37 | 5220 | CE 0010 | - | • | AK5 | LDX | #16 | PRESET INDEX |
00438 | 5223 | 6F 67 | RMPRTl | KTOA | CLR | PEAL-I» | X CLEAR LINE BUFFER | |
00439 | 5225 | 09 | DEX | |||||
00440 | 5226 | 26 FB' | BNE | RMpRTl | ||||
00441 | 52?5 | 7E 5075 | JMP | AFMT | OUTPUT THE ASCII | |||
0 0442 | 52?q | CE 5239 | LDX | «ASCII. | GET ASCII TABLE ADORESS | |||
00443 | 522Ε | OF 14 | STX | TPl | SAVE FOR MODIFICATION | |||
00444 | 5230 | 9B 15 | ADD A | TPlS | ADO THE KEYCODE TO LSB · S | |||
00445 | 5232 | 97 15 | STA A | TPlS | RESTORE RESULT | |||
00446 | 5234 | OE 14 | STC0D7 | LDX | TPl | RESTORE NEW INDEX | ||
0-0 447 | 5236 | A6 OO | IOFMT | LDA A | X | ACCA=ASCII CHARACTER1 | ||
00448 | 5233 | 39 | SOISPl | RTS | RETURN | |||
00449 | BWM | |||||||
00450 | 4EC8 | STEP | EQU | S4EC8 | ||||
00451 | 532A | BSTEP | EQU | S532A | ||||
00452 | 7A64 | EQU | S7A64 | |||||
00453 | 7973 | EQU | $7978 | |||||
00454 | 527A | EQU | S527A | |||||
00 455 | 52CE | EQU | 552CE |
7Ό9808/1025
263315'
Page 74 CJBPG 06/04/75 36:54.05
00457 | 5239 | 50 | 30 | » | IN OROER | S50 | ASCII SET FOR CJ. |
00458 | 523A | 51 | 2E | «ZERO TO OCTAL 77. | $51 | OF KEYCOOES FROM | |
00459 | 5238 | 52 | 24 | «THIS FILE OEFINES THE | β | $52 | |
00460 | 523C | 53 | 23 | •EMTRIES ARE | ASCII FCB | $53 | |
00461 | 5230 | 84 | 3F | FCB | SB4 | .P | |
00462 | 523E | 57 | 25 | FCB | S57 | Q | |
00463 | 523F | 27 | 5E | FC8 | S27 | R · . | |
00464 | 5240 | 3E | 3A | FCB | S3E | S | |
00465 | 5241- | 54 | 2A | FCB | $54 | TERMINATOR | |
00466 | 5242 | 55 | 20 | FCB | $55 | W | |
00467 | 5243 | 56 | 40 | FC8 | $56 | r | |
00468 | 5244 | 04 | 03 | FC8 | $4 | > | |
00469 | 5245 | OS · | FCB | $5 | T | ||
00470 | 5246 | 58 | FCB | S58 | U | ||
00471 | 5247 | 37 | FCB | $37 | V | ||
00472 | 5248 | 38 | FCB | S38 | STEP COMMAND | ||
00473 | 5249 | 41 | FCB | $41 | SACK STEP COMMAND | ||
00474 | 524 A· | 42 | FC8 | $42 | X | ||
00475 | 5248 | 43 | FCB | $43 | 7 ■ | ||
00476 | 524C | 44 | FCB | $44 | 8 | ||
00477 | 5240 | 45 | FCB | $45 | A | ||
00478 | 524E | 59 | FCB | $59 | B | ||
00479 | 524F | 34 | FC8 | S34 | C | ||
00480 | 5250 | 35 | FCB | $35 | O | ||
00481 | 5251 | 46 | FC8 | $46 | E | ||
00482 | 5252 | 47 | FC8 | S47 | Y | ||
00483 | 5253 | 48 | FCB | $48 | 4 | ||
00484 | 5254 | 49 | FCB | $49 | 5 | ||
00485 | 5255 | 4A | FCB | 34A | F . - — ._ | ||
00486 | 5256 | 5A | FCB | $5A ■ | G | ||
00487 | 5257 | 31 | FCB | S31 | H | ||
00488 | 5258 | 32 | FCB - | . $32 | I | ||
00489 | 5259 | 48 | FCB | $4B . | J | ||
00490 | 525A | 4C | FCB | . $4C | z | ||
00491 | 525B | Λ D | FCB | $40 | 1 | ||
00492 | 525C | 4E | FCB | $4E | 2 | ||
00493 | 525D | .4F | FC8 | S4F | K | ||
00494 | -525E -J» ft« | FCB | - $20 - | L | |||
00495 | 525F | FCB | $30 | M . | |||
00496 | 5260 | FCB | $2E | N | |||
00497 | 5261 | ... FCB-- | S24 | O | |||
00498 | 5262 | FCB | $23 | BLANK | |||
00499 | 5263 | FC 8 | $3F | 0 | |||
00500 | 5264 | FCB | $25 | • | |||
00501 | 5265 | FCB | $5E | $ | |||
00502 | 5266 | FCB | $3A | ||||
00503 | 5267 | FCB | $2A | * | |||
00504 | 5268 | FCB | S2D | 95 | |||
00505 | 5269 | FCB | S40 | A | |||
00506 | 526A | FCB | $3 | • • - · |
|||
00507 | FCB | ||||||
00508 | FCB | — | |||||
00509 | FCB | ||||||
00510 | SHIFT | ||||||
00511 | |||||||
70 9808/1025
t ORIGINAL INSP£CT£D
Page 75 CJBPG 06/04/75 36:54.05
00512 00513 00514 00515 00516 00517 00518 00519 00520 00521 00522 00523
00524 00525 00526 00527 00528 00529 00530 00531 00532 00533 00534 00535
00536 00537 00538
5268 526C-2F 5260 3C
526E 526F 5270
5271 2C
5272 5273 5274
5275 Ol
5276 5277 5273
FCB | SB2 | |
FCB | $2F | / |
FCB | " 53C | < |
FCB | $39 | 9 . |
FCB | 536 | 6 |
FCB | S33 | 3 |
FC8 | S2C | » |
FC8 | $29 | ) |
FCB | S30 | = |
FCB | $28 | ( |
FCB | Sl | TAB |
FCB | ■ S20 | UNUSED KEYCOOP |
FC8 | $2 | NEW LINE |
FCB | S2B | + |
(075)
»CODE TO SELECT THE PRINT OEVICE. IF EOM
»IS NEGATIVE, THE OUTPUT DEVICE IS SPECIFIED 3Y THE
«CONTENTS OF T6 AND, T5. EOM MUST SE CÜNTROLLED
»BY THE CALLER AND 'fiESET TO THE CORRECT VALUE «WHEN FINISHED.
53D0 5300 06 OA 5302 2B 53D4 7E 6034
53D7 OE 53D9 6E
ORG DEVICE LDA B
BMI
JMP NOPPT LDX
JMP S53D0
EOM GET END OF MEMORY WORD
NOPRT NOT INTERWiL PPINTEP I? NEGATIVE
PRTDPV+7 ELSE CALL THE PRINTER
T6 GET THE DEVICE ADRS
X CALL THE DEVICE
09808/102
ORIGINAL INSPECTED
Page 76 CJBPG 06/04/75 36:54*05
ENO
SYMBOL TABLE | 0000 | ACTL | 0001 | BOATA | 0002 | BCTL | 0003 | INPUT | 0004 | IOIN | 0005 |
AOATA | 0006 | TGL | 0007 | UFLG | 0008 | 'RSFLG | 0009 | EOM | OOOA | EOPM | 00Od |
ERROR | OOOD | RND | OOOE | DIGFLG | OOOF | W2 | 0010 | Wl | 0011 | SFLG | 0012 |
STKFLG | 0013 | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0018 |
DCNTR | 0019 | TP4 | 001A | TP4S | 001B | TP5 | OOIC | TP5S | 001D | TP6 | 001E |
;TP3S | 001F | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0023 | TIl | 0024 |
TP6S | 0025 | T9 | 0026 | T8 | 0027 | T7 | 002« | T6 | 0029 | TS | 002Δ |
TlO | 002B | T3 | 002C | T2 | 002O | Tl | 002E | ISTK | 002F | ISTACK | 0051 |
T4 | 0052 | SPGM | 0054 | EXTRA | 0056 | BUFF | 0058 | REAL | 0063 | IMAG | 0070 |
TA | 0078 | AT2 | 0080 | W | 0088 | XR | 0090 | YR | 0098 | ZR | OOAO |
ATI | O0A8 | LSTX | OOBO | BKWRT | 00B8 | BKKC | 003A | S0L7 | 00C6 | uop. | 00C8 |
TR | OOCA | ALPHA | OOCC | 101 | O OCO | 102 | OODO | IT7 . | 0003 | FLAG | 0OO5 |
UIP | 0006 | FILE | 0007 | AR | 0008 | BR | OOEO | CR | 00E8 | DR. | OOFO |
TPOS | 00F8 | S08B | OOBA | MT | 7E00 | TERMN7 | 003D | IMEO | 0040 | PARCD | OOCO |
ER | 0080 | NTBL | 0000 | DOTS | 5EC0 | PRTDRV | 6020 | FRMT | 5CA8 | BLANK | 5075 |
PAREX | 5780 | ROLLD | 55B2 | ROLLU | 57Fl | PSO | 55DA | TXL | 55E9 | STKUP | 55EF |
LOMSG | 749B | CMP | 74AA | NOR | 7406 | TXW | 7424 | TXXR | 743B | EXXR | 7452 |
MAO | 753R | OVUNF | 75B6 | OVERF | 75DO | XRO | 74OA | XRNINE | 75Cfl | UNORF | 75Fl |
ARSR | 76B9 | QDG | 7669 | FPA | 75FC | FPS | 75F6 | FPM | 7735 | FPO | 7793 |
IMULT | 76.30 | FPMEX | 7780 | LSHIFT | 7521 | ZEROX | 7489 | XZEPOQ | 7416 | XZER02 | 7417 |
FPAEX | 73E6 | TXRX | 73F3 | CONST | 6800 | FP08RC | 6898 | TAN | 68A9 | ATN | 69C3 |
RECIP | 6446 | NTLN | 6A58 | EXPN | 6AC9 | SIN | 6B94 | COS | 6B9A | ASIN | 63F2 |
OSZERO | 6BF7 | PHl | 6C5D | PH2 | 6C80 | PH3 | 6034 | PH4 | 6000 | LSFTe | 6E47 |
ACOS | 6E65 | MA 08 | 6F2C | CMP8 | 53E4 | IOUPX | 6F52 | LOGlO | 6FA7 | YUPX | 6FE9 |
SQRT | 7328 | PTOR | 7386 | AFMT | 5075 | AFMTO | 5084 | SCHAR | 5091 | iFMfl5 | 509C |
RTOP | 509F | AFMT13 | 50ÄA | AFMT4 | 50B0 | 4FMT3 | 5ÖBB | AFMT5 | SORE | 4FMT7 | 50CC |
AFMTl | 50CE | AFMTlO | 50E3 | AFMT2 | 50EA | 4FHT16 | 50F7 | ÄFMT17 | 5105 | AFMT9 | 510C |
AFMT14 | 5118 | AFMT8 | 511A | AFMT12 | 511D | AFMTlI | 5125 | AFMTl« | 513C | ATEP*·1 | 513£ |
AFMT6 | 5144 | ATF.RM4 | 5147 | ATERM3 | 514F | ATERM2 | 5152 | ATEPMl | 5159 | PRINT · | 5160 |
ATERMO | 5170 | LOVFl | 5173 | L0VF2 | 5178 | SHBUFF | 5184 | S | 518A | SSS | 5197 |
LOVF | 519C | ALPHAK | 51AO | NKLGl | 51AE | AK2 | 5134 | AKH | 51Cl | AK9 | 51Cd |
TOALP | 510A | RMOOl | 51E0 | AK7 | 51EB | AK6 | 51F0 | PRT | 5211 | RMPRt | 5218 |
AK3 | 5223 | AK5 | 5228 | KTOA | 522B | STC007 | 4EC8 | IOFMT | 532A | SOISPl | 7A64 |
RMPRTl | 797R | STEP | 527A | BSTEP | 52CE | ASCII | 5239 | DEVICE | 5300 | NOPRT | 53D7 |
BWM | TOTAL ERRORS | 1 | |||||||||
7 0 9808/1025
ORIGINAL IMSPECTED
Page 77 CJBPG 06/04/75 36:54.05
00215 00218 00219 00220 00221 00222 00223
00224 00225 00226 00227 00228 00229 00230 00231 00232
00233 00234 00235 00236 00237 00238 00239 00240 00241 00242 00243 0024&
00245 00246 00247 .00248 00249 00250 00251 00252 00253 00254 00255
00256 00 257 00258 00259 00260 00261 00262 00263
OPT
LIST.MEM
5550 5550 5553 5556 5558 555A 555B 555C 5550 555F 5561
5562 5564 5566 556« 556A 556C 556F 5572
5574 5576 5579 557B 557D 557F 5530 5583
5536 5588 558A 558C 55SE 5590 5591 5594 5596 5598 559A
0014
RO 55E9 CE 0092 06 2B 5C 57 5A
29 A7 OO 08' 20 F8 24 A6 OO 84 OF A7 OO 7E 7406
BO 55E9 9ft 2A 7E 74OA 81 .OB
?Λ ID 9ft 4C
7F 0014 44
97 OE 24 Aft 84 FO A7 08
8C 0006 27 6F 20 F6 39
THESE POUTINES RETURN THE INTEGER AND FRACTIONAL PART OF THE ORIGINAL ARGUMENT
JOHN KEITH
MAY 28. 1974
REV A
REGPTR INTFRl
INTFR2
INTFR3
INTFR4 INTFR5
INTFR6
EOU ORG JSR LDX LOA β BMI INC P
ASR B DEC B BMI STA A INX BRA BCC LOA A AND A STA A JMP JSR ' LOA A BPL JMP CMP A
BCC LDA A INC A CLR LSR A STA A LOX BCC
LDA A AND A STA A INX
8EQ
CLR
BRA
IMTFR9 RTS
TPl
S5550-
TXL
MXR+2
XR
INTFR9
INTFR3 X
INTFR2
INTFR4
SSF
NOR
TXL
XR
INTFR6
XRO
Pll
INTFR9
XR
REGPTR
REGPTR+1
PEGPTR
INTFR7+1
$92»X
PSFO
S92,X
»6
INTFR9 S92.X INTFR7 SAVE X IN LAST X
SET INOEX TO MANTISSA (EXP+1)/2=WHOLE WORDS TO CLEAR
RET. IF .NEG. (ALREADY FRACT.)
loop to clear whole words exit from loop · clear pair of mantissa digits
move pointer test if done clear half word ?
yes» load word clear upper half restore result now normalize result
save x in last x examine exponent positive, check size of exponent
negative» no integer pa=?!", cle*r ano
IS EXP > 10 ? YES» CX] IS INTEGER ^APT
GET EXPONENT AOD 1 SO EXP/2 POINTS TO =POPE= WORO
CLEAR FIRST SYTE CF -3OlNTER
DIVIDE EXP+l SY SAVE WO«O
WAS EXP+1 OOD ?
YES» CLEAR SECOND HALF OF 9YTE
CLEAR SECOND HALF RESTORE WORD IN X POINT TO NEXT WOPO IN X-REG IS CLEARING COMPLETE
YES» EXIT-CLEAR NEXT WORD
CONTINUE OPERATION
RETURN
709808/102 OBSGiMAL INSPECTED
263315t
Page 78 CJBPG 06/04/75 36:54.05
00265 »
00266 * 00?.67 « 00263 *
00269 . » ·
00270 5598 D7 2E CLXRl
00271 5590 80 740A
00272 55A0 4F LOEX
00273 55Al 97 OF
00274 55A3 7E 569C
CLEAR X-PEGISTER
JOHN | KEITH A | Tl |
STA | R | XRO |
JSR | ||
CLR | A | DIGFLG |
STA | A | DEXIT |
JMP |
APRIL 2» 1974
REV A
SAVE RTS FLAG CLEAR X-REG COMMON EXIT POINT FOR STACK LIFT OISA
CLEAR FLAG TO START NEW DATA ENTRY RETURN TO SUPV
709 8087102 5
ORlGWAL INSPECTED·
- 102 -
Page 79 CJBPG 06/04/75 36:54.05
00276 | 5 5 AS | D7 | 2E | * | TRANSFER | ROUTINES | 9 | ,X->Y', X | KYR | UNCHANGED |
00277 | 55A8 | 80 | 4A | » REGISTER | EXXR | |||||
00278 | 55AA | 20 | F4 | β | ·.» JOHN KEITH APRIL 2» 1974 REV B | Tl | SAVE RTS FLAG | |||
00279 | * | STKUP+5 | LIFT STACK | |||||||
00280 | * ENTER KEY | LOEX | RET TO SUPV | |||||||
00281 | * 2->T»Y->2 | |||||||||
00282 | 554C | CE | 0098 | *. | • X EXCHANGE Y | |||||
00283 | 55AF | 7E | 7452 | ENTERl STA B | * | |||||
00284 | 8SR | XEYl LOX | GET Y-REG AORS | |||||||
00285 | BRA | JMP | EXCHANGE REGISTERS | |||||||
00286 | ||||||||||
00288 | ||||||||||
00289 | ||||||||||
00290 | ||||||||||
00291 | ||||||||||
00292 | ||||||||||
709808/1025
Page 80 CJBPG 06/04/75 36:54.05
00294 | 55B2 | CE | ■ | 91 | i | DOWN | LOX | A | X->T.Y->X | CMP | iZ->Y.TEMP->Z | DIfiFLG | • - |
00295 | 5585 | A6 | 27 | t | β . T->TEMP, | LDA | B | BEO | RLSTX2 | DOING DIGIT ENTRY ? | |||
00296 | 55B7 | E6 | 97 | LDA | A | #P10 | STA | LOAD COUNTER/POINTER | DIGFLG | BRANCH IF NOT | |||
00297 | 5589 | A7 | 43 | » ROLL | i | STA | A | S8F.X | COM | LOAD WORD FROM X | ELSE TERMINATE IT | ||
00298 | 5588 | A6 | 97 | 0008 ROLLOl | LDA | B | SA7,X . | STA | LOAD WORD FROM T | STKFLG | SET MS8 | ||
00299 | 5580 | E7 | 8D | 8F ROLLOS | STA | B | 5A7«X | BSR | STORE X IN T | STKUP | ENARLE LIFT | ||
00300 | 558F | E6 | CE | A7 | LDA | A | S9F,X | LDX | LOAD WORO FPOM Z . | *LSTX | DO STACK UP IF.ENARLED | ||
00301 | 55Cl | A7 | 7E | A7 | STA | B | S9F»X | JMP | STORE T IN X | TXXR | SET INDEX REGISTER TO LAST X | ||
00302 | 55C3 | E7 | 9F | STA | $97»X | LOAD WORD. FROM Y | TRANSFER X TO LAST K | ||||||
00303 | 55C5 | 09 | 9F | DEX | S97»X | STORE Z IN Y ■ : | |||||||
00304 | 55C6 | 26 | 97 | BNE | S8F.X | STORE Y IN X | |||||||
00305 | 55C8 | 39 | 97 | RTS | DECREMENT COUNTER/POINTE-R | ||||||||
00306 | 8F | R0LLD5 | CONTINUE. | ||||||||||
00307 | RETURN TO CALLING ROUTINE | ||||||||||||
00308 | EO | ||||||||||||
00309. | * RECALL LAST X TO | X-REGISTER | |||||||||||
00311 | |||||||||||||
00312 | 55C9 | KEITH APRIL 3» 1974 REV A | |||||||||||
00313 | 55C8 | * JOHN | |||||||||||
00314 | 55CD- | ι· : | A | ||||||||||
00315 | 55CF | OF RLSTXl | |||||||||||
00316 | 5500 | 05 | A | ||||||||||
00317 | 5502 | OF | A | ||||||||||
00318 | 5504 | A | |||||||||||
00319 | 5507 | OO | |||||||||||
00120 | |||||||||||||
00321 | |||||||||||||
00322 | |||||||||||||
00323 | |||||||||||||
18 RLSTX2 | |||||||||||||
0080 | |||||||||||||
7438 | |||||||||||||
709808/1025
ORIGINAL INSPECTED
Page 81 cjbpg 06/04/75 36:54.05
00325 | 550A | - | 55E9 | CE | * | PARTIAL | ■ | STACK DOWN | < | LOA | V | 00BO | t | KEITH | • |
00326 | 55D0 | 55EC | A6 | * PSD« | » PREFORMS OPERATION Ζ->Υ.Τ->Ζ· | STA | ♦ TXL» | 73F3 | * JOHN | APRIL 3» 1974 REV A | |||||
00327 | 550F | E6 | STA | I | *8 | ||||||||||
00328 | 55El | A7 | ► JOHN | OEX | < | LDX | A 5A7.X | LOAD COUNTER/POINTER | |||||||
00329 | 55E3 | E7 | BNE | JMP | B S9F»X | LOAD WORO FROM T | |||||||||
00330 | 55E5 | 09 | 0008 PSOl LOX | RTS | A M9FiX | LOAD WORD FPOM Z | |||||||||
00331 | 55E6 | 26 | A7 PS05 LDA | B S97,X | STORE INTO Z. | ||||||||||
00332 | 55E8 | 39 | 9F | STORE INTO Υ" | |||||||||||
00333 | 9F | PS05 | OECR COUNTER | ||||||||||||
00334 | 97 | NOT COMPLETE | |||||||||||||
00335 | RETURN TO CALLING ROUTINE | ||||||||||||||
00336 | F5 | TRANSFER | |||||||||||||
00337 | X TO LAST X | ||||||||||||||
00338 | CE | KEITH | |||||||||||||
00340 | 7E | APRIL 3» 1974 PEV A | |||||||||||||
00341 | «LSTX | ||||||||||||||
00342 | TXRX | GET LAST X ADRS | |||||||||||||
00343 | TRANSFER X-REG | ||||||||||||||
00344 | |||||||||||||||
00345 | |||||||||||||||
00346 | |||||||||||||||
709008/1025
ORIGINAL INSPE
-Page 82 CJ8PG 06/04/75 36:54.05
0034B 00349 00350 00351 0035a
00353 0035-4 00355 00356 00357 00358 00359 00350 00361 00362
00363 00364 00365 00366 00367 00363 00369 00370 00371 00372 00373 00374
00375 00376 00377 00379 00380 003Bl 00382
00383 003S4 003flS 00386
00387 00303
00389 00390 00391 00393 00393 00394 00395
■Β-
55EF 55F2 55F4 55F5 55F7 55FA 55FC 55FE 5600 30 5604
5606 5607 5608 5604 560C 5600 5610
5611 5612 5614 5617 561A 56 IC
5610 561E 5620 562?. 5623
0020 7D 0000 2A IC OF
9F CE 0008 AE 9E AF Δ6 AE AF 9E
AE SE iF 09 09
26 FO 9E OE
7F 0000 39
STKUP PERFORMS THE FOLLOWING OPERTION:
z->T»y->z.x->Y, τ lost'
THIS OPERTIOM OCCURS ONLY IF THE AUTO" STACK UP FLAG IS SET. IF THE ROUTINE
IS ENTERED AT STKUP2 THEM THE OPERATION
IS ALWAYS PERFORMED.
JOHN KEITH MAR 24, 1974
REV R
STEMP EQU
STKUPl TST BPL
STKUP2 SEI STS LDX
STKUP3 LDS STS LOS STS LDS
STS OEX OEX
LDS CLI CLR
STKUP9 RTS
* CLEAR
TP7
STKFLG TEST CONDITION OF AUTO STACK FLG IM H
STKUP9. AUTO LIFT IS NOT ENABLED
DISABLE IMTESRUPTS WHILE LIFTING STAC
STEMP SAVE STACK POINTER IN TE^PGRARY
«8 LOAD LOOP COUNTER
S9E«X LOAD TWO WORDS FROM Z
$A6*X STORE WORDS IN T
•F96.X LOAD TWO WORDS FPOM Y
S9E»X STORE WORDS IN Z
5βΕ·Χ LOAD TwO wriPOS FROM X
S96.X STORE WORDS IN Y
DECREMENT COUNTER« POINT TO «EXT LOCA
STKUP3 CONTINUE MOVING RESIS STEMP RELOAD ORIGINAL STACK
ENABLE INTERRUPTS STKFLG CLEAR AUTO STAC* FLiG
RETURN TO CALLING POlMT
STACK ROUTINE
JOHM KEITH JUNE 3» 1974
E^J A
0014 SAVE
OF CLRl
9F
8E QOOO
CE 0020
AF 8E CLR3
09
09
26 FA
SE
OE
39
EOU ScI STS LDS LDX STS
οεχ
DEX SNE LDS CLI »TS
TPl
SAVE
«0
#32 DISABLE INTERRUPTS
SAVE STiCK POINTER
LOAD STACK POINTER "ΊΤΗ CLEAR VALUE
INITIALIZE LOOP CT^/POINTEP»
CLEAR TWO RYTES
DECREMENT LOOP CTR/POINTE»
CLR3 SAVE CONTINUE
RESTORE STACK POIMTE«»
ENABLE I*JTEP«UPTS
RETURN
709808/1025
OBiGiMAL !HSFECTED
Page 83 CJBPG 06/04/75 36:54.05
00397 | 5624 | 97 | OF | OF | * | β | KEY EXECUTION | TERM. DIGIT ENT. | TERM. DIGIT ENT. |
00398 | 5626 | BO | 5C8C | 04 | FORMAT | SET CNTR | |||
00399 | 5629 | 7E | 6034 | 2E | β | « | PRINT AND RETURN | SAVE CTR | |
00400 | 57Fl | ·* JOHN | « JOHN | KEITH APRIL 19. 1974 REV A | POSITION OATA | ||||
00401 | 5C8C | » | FORMAt CURRENT DATA IN X-REG | ||||||
00402 | 6034 | PRTl STA | TEMP EQU | A DIGFLG. | PRINT THE X-REG | ||||
00403 | 002E | JSR | PTSTKl STA | FRMT+S14 | KEITH JUNE 4, 1974 REV A | DECREMENT LOOP CTRt DONE ?. | |||
00404 | F2 | JMP | LDA | PRTDRV+7 | NO, CONTINUE | ||||
00406 | 002E | STA | Tl | RETURN | |||||
00407 | 562C | 97 | PTSTK3 JSR | STACK | A OIGFLG | ||||
OQ408 | 562E | 86 | JSR | A «4 | |||||
00409 | 5630 | 97 | JSR | A TEMP | |||||
00410 | 5632 | 3D | DEC | ROLLUP | |||||
00411 | 5635 | RO | 8NE | FRMT+S14 | |||||
00412 | 5638 | 80 | RTS | PRTDRV+7 | |||||
00413 | 5638 | 7A | TEMP | ||||||
00414 | 563E | 26 | PTSTK3 | ||||||
00415 | 5640 | 39 | |||||||
00416 | |||||||||
00417 | |||||||||
00418 | |||||||||
00419 | |||||||||
00420 | |||||||||
709808M025
ORiGlMAL INSPECTED
Page 84 CJBP6 06/04/75 36:54.05
00422 00423 00424 00425 00426 00427 00428 0Q429
' 0.04.30 00431 00432 00433 00434 00435
00436 00437 00438 00439 00440 00441
00442 00443 00444 00445 00446. 00447 00443 00449 00450 00451
00452 00453 00454 00455
00456 00457 0045S
5641 5643 5645 5647 5649 5648 5640 564F 5651 5653 5655
5657 5659 5658 5650 565E 5660
DIGIT ENTRY ROUTINES. KEYS SERVICED IN .THIS PACKAGE INCLUDE DIGIT KEYS (0-9),
-DECIMAL POINT» CHANGE SIGN· AND ENTE" EXPONENT
0088 . | EXP | EQU | W |
0089 | EXPl | EQU | W+1 |
0014 | OTEMP | EQU | TPl |
008A | EXP2 | EQU | W+2 |
7982 | 8WM2 | EQU | S7982 |
♦ CHANGE SIGN ROUTINE
• PART OF ENTER EXPONENT IS INCLUOED
JOHN KEITH MAY 8,1974
REV D
« CHS
Ol
03
00460 00461 00462 00461 •00464 00465 00466 00467 00468 00469 00470
00471 00472 00473 0047« 00475 00476
5663 5665 5667 566A 566C 566F 5671 5673 5675 5676 5677 5678
5679 567A 5679 5670 567F 5681 5683 5685
07 2E D6 OF CS 26
96 88
97 20 4E CS 07- OF 86
06 DO
07 40
.70.-9088 D6 88
DB RD 75B8 28
7F OOOF 20 2B 06 97 17 49 49 49 IB
STA LDA BIT BNE LDA A EOR A STA A BRA EOR
STA B LDA A LDA B SUB B STA R TST A BPL NEG
D9
9R 97 06 OF C5 26 DB 20· OC
LDA B ADO B JSR BVC CLR BRA LDA B STA A
T8A ROL A ROL A ROL A ABA ABA ADD A STA A
LDA S BIT B BNE BRA Tl SAVE RTS FLAG DIGFLG CHECK IF EEX FLAG IS SET
«S01000000 TEST EEX FLAG» SET ?
Dl YES» CHANGE SIRM OF EXPONENT MODIFIER
XR+1 NO» CHANGE MANTISSA SIGN HSBO CHANGE SIGN
XR+1 STORE UPDATED SIGN WORO OEXITl DO NOT MODIFY STACK FLAG #»00010000 TOGGLE NEGATIVE 3IT (EXPONENT INO
OIGFLG SAVE UPDATED VALUE «$90 LOAD CHANGE SIGN FLAG XR LOAD CURRENT VALUE OF EXPONENT
EXP SUBTRACT EXPONENT MOOlFIER XR RESTORE EXP
IS THIS CHS OR ENTER EXP DIGIT D9 ENTER DIGIT EXP _ COMPLEMENT EXPONENT MOOIFIEP (CHS) _
Exp 'preset- b-reg~ """ ' """'" "" "
XR AOD MODIFIER TO EXPONENT OVUNF+2 TEST FOR OVER/UNDERFLOW
DEXIT NONE. RETURN DIGFLG OVER/UNDERFLOW OCCURRED, SET NEW ENTR
DEXIT RETURN
EXPl · LOAD LAST OIRIT USED IN EXP MODIFIER
EXPl STORE NEW DIGIT USED MULTIPLY OLD DIGIT RY 10 (BINARY)
PERFORM A »8 BY
SHIFTING THREE PLACES
COMPLETE »10 BY PERFORMING TWO ADDITIONS
EXPl NOW ADO NEW DIGIT TO EXP "ODIFIER
EXP SAVE NRW EXP MOOIFIER
DIGFLG CHECK TO SEE WHAT SIGN FXP MOD SHOULD *»*00010000 IS NEGATIVE BIT SET
DS YES» CHANGE SIGN D7 NO
709808/VO25
Page 85 CJHPG 06/04/75 36:54.05
00478 00479 00480 00481 00432 00483 00484 00485 00486
00487 00488 00489
00491 00492 00493 00494 00495 0 0 496
00497 00498 0Q499
DECIMAL POINT ENTRY ROUTINE
JOHN KEITH MAY 85 1974 REV .F
5687 07 2E DECPMT STA B
5689 06 OF LDA 568B 26 OB BNE 5680 BO 55EF DIl JSR
5690 BD 74OA JSR
5693 4F CLR A
5694 97 8A STA A 5696 97 88 STA A 5698 CA 80 D15 ORA B 569A 07 OF STA B
569C 7F 0000 DEXIT CLR 569F 06 2E OEXITl LDA B
56Al 26 Ol BNE 56A3 39 RTS 56A4 31 FIXl INS 56A5 31 INS 55A6 7E 7982 JMP
Tl SAVE RTS FLAG
DlGFLG IS THIS A NEW DIGIT ENTRY
D15 NO, SET FLAG
STKUP DO A STACK UP IF ENABLED
XRO CLEAR X-REG FOR ME-V ENTPY
EXP2 CLEAR EX° FOR 0.0^0.... CASE
EXP CLEAR EXP FO° FPMT ROUTINE «MOOOQOOQ SET OECIMAL POINT FLAG
DIGFLG SAVE NEW FLAG VALUE STKFLG DISABLE AUTO STACK LIFT Tl DO RTS ?
FIXl . BRANCH IF NOT ELSE OO RETURN INCREMENT STACK POINTER TO DELETE LAST RETURN VECTOR
BWM2 RET. TO SUPERVISOR
709808/1025
ORIGINAL IMSPSGTED
Page 86 CJ8PG 06/04/75 36:54.05
00501 00502 00503 00504 00505 00506 00507
00508 00509 00510 005.11 00512 00513 0051Ί
00515 00516 00517 0051fi 00519 00520 00521 00522 00523
0052Λ. 00525 00526 00527 00528
00529 .00530 00531 00532 00533 00534 00535
ENTER EXPONENT ROUTINE
INCLUDES ROUTINE TO ENTER OK3ITS IM MANTISSA
56A9 56A3 56AO"C5 56AF 56Bl CA 56B3
563 5 5697 56B9 C4 568B 5630 RD
56C0 8D 56C3 4C 56C4 56C6 C4 56Ca Cl
56CA 56CC 56CD 56CF 5600
5601 4« 56D2 5603 5605 7F
560« OE 5ODA AA 560C Δ7
56DE 7C
JOHN KEITH APRIL 2» 1974
REV C
2E
OF
40
EB
40
OF
88
89
OF
OF
55EF
74OA
OF OF OA DO
04
EEX
022
023
15
0014
14
92
92
OOOF
89 02 Tr
STA LDA B 8IT B BNE ORA R
STA R STA A STA A AND B BNE JSR JSR INC A LOA B AND CMP B BCC LSR B
8CS ASL A ASL A ASL A ASL A STA p CLR LDX ORA A STA A
INC "BRA
Tl ' SAVE RTS FLAG DIGFLG PREPARE TO SFT EEX FLAG
3*01000000 IS EEX FLAG ALREADY SET
DEXIT YES» EXIT FROM ROUTINE ««S01000000 SET EEX FLAG
DIGFLG SAVE NEW FLAG VALUE EXP CLEAR EXP MOOIFIE" LOCATION (A WiS CL
EXPl CLEAR LAST EXP DIGIT TEMP e*ilOOOllll SAVE COUNTER POPTION OF 0IGFL3
DEXIT THIS IS MOT A NEW ENTRY. »ETURN
STKUP NEW ENTRY. OO A STACK UP XRO CLEAR X-REG FOR NEW ENTRY
SET A TO 1 FOR NEW MANTISSA OIGIT
DIGFLG LOAD MANTISSA COUNTER #«00001111 SAVE COUNTER
«10 IS COUNTER=IO ? OEXIT YES» IGNORE ENTRY
DIVIDE CTR BY 2· SAVE REMAINDER IN CA
DP5 CTR WAS ODD. SKIP OIGIT SHIFT
POSITION NEW OIGIT
OTEMP+l SAVE COUNTER
OTE"D CLEAR FIPST BYTE OF CTR
DTEMP LOAD CTR INTO INDEX
XR+2.X ADO NEW DIGIT TO MANTISSA
XP+2»X STORE RESULT
DIGFLG INC COUNTER
OEXIT - RETURN TO SUPERVISOR
709808/1025
:CTED
Page 87 CJBPG 06/04/75 36:54.05
00538 00539 00540 00541 00542 00543 00544 00545 00546 00547 0 0548
00549 00550 00551 00552 00553 00554 00555 00556 00557 00558 00559 00560
00561 00562 00563 00564 00565 00566 00567 00568 00569 00570 00571 00572
00573 00574 00575 00576 00577 00578 00579 0058Π 00581 00582 00583
00584 00585 00586 00587 0058ft 00589 00590 00591 00592
DIGIT ACCEPTANCE ROUTINE
JOHN KEITH APRIL 2, 1974 S REV D
56E3 4C 56E4 4C 56E5 4C 56E6 4C 56E7 4C
56E8 4C 56E9 4C 56EA 4C 56EB 4C 56EC 56EE
56FO 56F2 SO 56F5 BD 56F8 56FA 56FC 4D
56FD 56FF 5701 Cl 5703 5705 5706 5708 570A C5 570C 570E 7E
5711 C4 5713
5715 5C
5716 OB 5718 571A RD 571D 571F "56
5721 5723 D6 572S 5727 7Δ
572A D6 572C Cl 572E 5730 7E 5733 5734 5736 7C 5739 573B 7E 573E C6
5740
2E
OF
OF
55EF
740A
88
8A
3F C3 20 05
0IGIT9 DIGITS 0IGIT7 DIGIT6 0IGIT5
DIGIT4 0IGIT3 0I6IT2 DIGITl
DIGITO
035
09
BA
40 D36
03
5657
80
OE
90 8B
7588 11
ag
Al
92 90
008A BA 90 03
566C 047 A3
008A 90
56C4
20 OF
INC A INC A INC A INC A INC A INC A INC A INC A INC A STA B LDA B BNE
JSR JSR STA B STA B TST A BEQ BRA CMP B 8NE TST A BEQ
BRA BIT B BEQ. JMP AND BNE INC ADD B STA A
JSR 8VS LOA A BRA LDA B BNE
DEC LDA CMP BCC JMP TST A 8EO ■ INC STA B
JMP
LDA B STA q BUILD APPROPRIATE DIGIT IN A-REGISTER
Tl SAVE RTS FLAG
DIGFLG CHECK CURRENT STATUS
D35 IT IS NOT A NEW ENTRY
STKUP DO A STACK UP IF ENABLED
XRO CLEAR X-REG FOR NF.W ENTRY
EXP CLEAR EXP FOR FRMT ROUTINE
EXP2 CLEAR EXP2 FOR FPMT
WAS DIGIT A ZEPO
D28 YES: GO SET "LEAOING ZERO" 9IT
D22 NO, ENTER OIGIT IN MANTISSA
#520 - ONLY "LEADING ZER.O" BIT SET
D36 BRANCH IF NOT THE CASE
ANOTHER LEADING ZERO
027 . RETURN IF YES
022 ENTER FIRST NON-ZERO DIGIT
«S40 IS EEX FLAG SET
039 NO. CHECK OTHER FLAG
D3 YES? ENTER NEW OIGIT IN EXPONENT
«Ϊ10000000
IS DECIMAL POINT FLAG SET
043 rES
NO. SET R TO 1 FOR VALUE TO AOO TO EX
XR INC EXPONENT
W+3 SAVE DIGIT
OVUNF+2 TEST FOR OVER/UNDERFLOW
D45 OVERFLOW EXIT
W+3 NO OVERFLOW. RELOAD OIGIT
D?2 ENTER OIGIT IMTO MANTISSA
XR+2 IS MANTISSA=O
D?2 NO. ENTER DIGIT INTO MANTISSA
EXP2 YES» DECREMENT EXPONENT TEMPORARY
EXP2 CHECK IF UNDERFLOW OCCUPIED
#^235 UNDERFLOW ?
D47 NO. CONTINUE
08 SET NEV DIGIT ENTRY AND EXIT
WAS DIGIT ENTERED A ZERO
027 YES» IGNORE
EXP2 RESTORE EXP? FOR FORMATTED
XP VALUE OF EXP INTO X-^EG
D22 AND ENTER DIGIT INTO MNATISSA
«■520 GET "LEADING ZERO" FLAG
DIGFLG SAVE IT IN O.E. FLAG
709808/1025
ORIGINAL
- Ill -
Page 88 CJBPG 06/σ4/75 36:54.05
00593 | 5742 | 20 | 9D | OC | * | BRA | 027 | RETURN TO SUPV. | SETUP | SAVE X» LOAD INDEX |
00595 | 5744 | 0007 | 75FC | « | RM8 | 7 | FPA | ADD | ||
00598 | 13 | * | ■ | M28 | GO TO COMMON EXIT | |||||
00599 | 05 | MATH FUNCTION ACCESS +-*/ | SETUP | SAVE X.» LOAD INDEX | ||||||
00600 | 75F6 | •a | FPS | SUBTRACT | ||||||
00601 | OC | Ml | M28 | GO TO COMMON1 EXIT | ||||||
00602 | 55E9 | TXL | TRANSFER X TO LST X | |||||||
00603 | 5748 | 80 | 0098 | JOHN KEITH APRIL 3» 1974 REV A | «YR | SET INDEX REG TO Y | ||||
00604 | 574D | BO | MlO | RETURN | ||||||
00605 | 5750 | 20 | F7 | 8SR | SETUP | ■ SAVE X» LOAD INDEX | ||||
00606 | 5752 | 8D | 7735 | JSR | FPM | MULTIPLY | ||||
00607 | 5754 | BD | 550A | SETUP | BRA | PSD | DROP STACK | |||
00608 | 5757 | 20 | EF | 8SR | SETUP | SAVE X» LOAD INDEX | ||||
00609 | 5759 | 3D | 7793 | JSR | FPD | DIVIDE | ||||
00610 | 575C | CE | F6 | M20 | BRA | M28 | GO TO COMMON EXIT | |||
00611 | 575F | 39 | 55E9 | JSR | TXL | TRANSFER X TO LST X | ||||
00612 | 5760 | 80 | 68A9 | M28 | LDX | TAN | DO TAN X | |||
00613 | 5762 | 80 | 55E9 | M30 | RTS | TXL | TRANSFER X TO LST X | |||
00614 | 5765 | 7E | 69C3 | BSR | ATN | DO ATAN X | ||||
00615 | 5768 | 80 | 55E9 | JSR | TXL | SAVE LAST X | ||||
00616 | 576A | 8D | 6E65 | W40 | JMP | SORT | DO SORT X | |||
00617 | 5760 | 20 | 55E9 | BSR | TXL | SAVE LAST X | ||||
00618 | 576F | RD | 6AC9 | M50- | JSR · | EXPN | DO EXPN X | |||
00619 | 5772 | 7E | 55E9 | 8RA | TXL | SAVE LAST X | ||||
00620 | 5775 | 3D | 6A58 | MtO | JSR | NTLN | OO LN X | |||
00621 | 5778 | 7E | 55E9 | JMP | TXL | SAVE X IN LAST X | ||||
00622 | 577B | PD | 73E6 | M70 | JSR | RECIP | DO 1/X | |||
00623 | 577E | 7E | 55E9 | JMP . | TXL | • SAVE X IN LAST X | ||||
00624 | 5781 | 80 | 6B94 | M30 | JSR | SIN | DO SIN X | |||
00625 | 5784 | 7E | 55E9 | JMP | TXL | SAVE X IN LAST X | ||||
00626 | 5787 | BD | 68F2 | MlOO | JSR | fiSIN | DO ASIN X | |||
00627 | 578A | 7E | 55E9 | JMP | TXL | SAVE X LAST X | ||||
00628 | 5780 | SD | 6894 | MHO | JSR | COS | OO COS X | |||
00629 | 5 790 | 7E | 55E9 | JMP | TXL | SAVE X IN LAST X | ||||
00630 | 5793 | RD | 68F7 | M120 | JSR | ACOS | DO ACOS X | |||
00631 | 5796 | 7E | 55E9 | JMP | TXL | X TO LAST X | ||||
00632 | 5799 | 8D | 6F52 | M130 | JSR | IOUPX | DO 10-»öX | |||
00633 | 579C | 7E | 55E9 | JMP | TXL | X TO LAST X | ||||
00634 | 579F | BD | f.FE9 | M 1 4 0 | JSR | YUPX | DO Y»*X | |||
00635 | 57*2 | 7E | 5SE9 | JMP | TXL | X TO LAST X | ||||
00636 | 5 7A5 | PD | 6FA7 | M150 | JSR | LOGlO | DO LOG X | |||
00637 | 57A8 | 7E | JMP | |||||||
0063=5 | 57AB | 80 | M160 | JSR | ||||||
00639 | 57ΔΕ | 7E | JWP | |||||||
006^0 | 5731 | 3D | m'i70 | JSR | ||||||
00641 | 57R4 | 7E | JMP | |||||||
00642 | 57B7 | RD | JSR | |||||||
006*3 | 57BA | 7E | JMP | |||||||
JSR | ||||||||||
JMP | ||||||||||
709808/1025
Page 89 CJ8PG 06/04/75 36:54.05
00645 | 5780 | * SUBROUTINE TO LOAD MESSAGES INTO BUFFER | 18 MSGPTR | 18 | -(SGLP | EQU | KEITH APRIL 23« 1974 REV A | ΤΡ2 | LOAO FIOST CHARACTER |
00646 | 578F | OO L0MSG2 | 16 | EOU | ΤΡ3 | INCREMENT MESSAGE PTR | |||
00647 | 57C0 | t | 7F | LDA | X | STORE MESSAGE PTR | |||
00648 | 57C2 | K JOHN | INX | LOAD INDEX WITH BUFFER. PTR | |||||
00649 | 57C4 | 02 | STX | θ | MSGPTR | ZERO MS8 | |||
00650 | 57C6 | 0016 BFPTR | 20 | LDX | BFPTR | LIST ROUTINE CALL? | |||
00651 | 57C7 | 00 | AND | *S7F | NO» E°ROR.MESSAGE | ||||
00652 | 57C9 | E6 | OO NTLST | TST | AOD OFFSET SACK TO GET ASCII | ||||
00653 | 57C9 | 08 | 8NE | β | NTLST | STORE CHARACTER IN HUFFER | |||
00654 | 57CO | OF | 16 | AOD | A | #520 | INCR SUFFER PTR · | ||
00655 | 57CE | OE | 18 | STA | X | SAVE IT | |||
00656 | 5700 | C4 | OO | INX | B | RELOAD MESSAGE PTR | |||
00657 | 5702 | 40 | E9 | STX | OR | BFPTR | LOAD ANOTHER CHARACTER | ||
00658 | 57D4 | 26 | LDX | MSGPTR | DONE LOADING MESSAGE? | ||||
00659 | 5706 | CB | LOA | X | YES, RETURN | ||||
00660 | E7 | BPL | MSGLP | ||||||
00661 | 08 | RTS | 3 | ||||||
00662 | OF | ||||||||
00663 | OE | ||||||||
00664 | E6 | ||||||||
00665 | 2A | ||||||||
00666 | 39 | ||||||||
709808/1025
ORIGINAL
.Page 90 CJBPG 06/04/75 36:54.05
00668 | 5707 | > ENTER | CMP | PI | -3.14159265360 | DIGFLG | DOING DIGIT ENTRY ? |
00669 | 57D<? | 8EQ | ENTPI2 | BRANCH IF NOT | |||
00670 | 5703 | • | STA | DIGFLG | ELSE TERMINATE IT | ||
00671 | 5700 | » JOHN | COM | KEITH APRIL 3» 1974 PEV A | SET MSS | ||
00672 | 57DE | STA | STKFLG | ENABLE LIFT | |||
00673 | 57E0 | 91 OF ENTPIl | JSR | A | STKUP | OO STACK UP IF ENA3LE0 | |
00674 | 57E3 | 27 05 | LDX | HPl | SET INDEX REGISTER TO PI | ||
00675 | 57E6 | 97 OF | JMP | A | TXXR | TRANSFER PI | |
00676 | 57E9 | 43 | FOB | A | SOOOO | FORM PI IN ROM | |
00677 | 57EB | 97 OO | FOB | A | ■S3141 | ||
00678 | 57E0 | FOB | 'S5926 | ||||
00679 | 57EF | FOB | S5360 | ||||
00680 | |||||||
00ft«l | |||||||
006*2 | RO 55EF ENTPI2 | ||||||
006R3 | CE 57E9 | ||||||
00684 | 7E 7433 | ||||||
0000 PI | |||||||
3141 | |||||||
5926 | |||||||
5360 | |||||||
70 9 8 0 8/1025
ORIGINAL INSPECTED
- 114 Page 91 CJRPG 06/04/75 36.:54.05
»ROLL UP ROUTINE
00686 ' ■
00687
00687
00688 *
00689 57Fl BfI 55B2 ROLLUP JSR
00690 57F4 BD- 5582 JSR
00691 57F7 7E 55B2 JMP
00692 *
00693 «LINE FEED ROUTINE
00694 »
-00695 57FA BO 5075 LF JSR BLANK
POLLD ROLLO ROLLO OO 3 ROLL DOWNS ANO RETURN
BLANK THE PRINT RUFFER
00696 57FD 7E 6034
JMP PRTDRV+7 PRINT BLANKS 709808/1025
ORIGINAL IKSPSQTED
- 115 Page 92 CJRPG 06/04/75 36:54.05
00698 | 7C2E | 57D7 | ORG | S7C2E |
00699 | 7C2E | FOB | F.NTPI1 | |
00700 | 7CSA | 556F | 'ORG | S7C5A |
00701 | 7C5A | FOB | INTFR5 | |
00703 | 7C26 | 5598 | ORG | S7C26 |
00703 | 7C26 | FOB | CLXRl | |
00704 | 7C20 | 55A6 | ORG | S7C20 |
00705 | 7C20 | FD8 | ENTERl | |
00706 | 7C2A | 55AC | ORG ' | S7C2A |
00707 | 7C2A | FOB | XEYl | |
00708 | 7C2C | 5582 | ORG | S7C2C |
00709 | 7C2C | FDB | POLLDl | |
00710 | 7C30 | 55C9 | ORG | S7C30 |
00711 | 7C30 | FOB | RLSTXl | |
00712 | 7C28 | 5ftll | ORG | S7C28 |
00713 | 7C28 | FOB | CLRl | |
00714 | 7064 | 5624 | ORG | ?7D64 |
00715 | 7D64 | FOB | PRTl | |
00716 | 7C72 | 562C | ORG | S7C72 |
00717 | 7C72 | FOB | PTSTKl | |
00718 | 7C22 | S6A9 | ORG | S7C22 |
00719 | 7C22 | 5641 | FOB | EEX |
0072η | 7C24 | FDB | CHS | |
00721 | 7C02 | 56EC | ORG | S7C02 |
00722 | 7C02 | 56E8 | FOB | DIGITO |
00723 | 7C04 | 56EA | FDB | DIGITl |
00724 | 7C06 | 56E9 | FD8 | 0IGIT2 |
0072S | 7C0fi | 56E8 | FOB | DIGIT3 |
00726 | 7C0A | 56E7 | FDB | DIGIT4 |
00727 | 7C0C | 56E6 | FDB | DIGITS |
00728 | 7C0E | 56E5 | FDB | DIGIT6 |
00729 | 7C10 | 56E4 | FOB | DIGIT7 |
00730 | 7C12 | 56E3 | FDB | DIGIT8 |
00731 | 7C14 | 5687 | FOB | 0IGIT9 |
00732 | 7C16 | FOB | OECPNT | |
00733 | 7C18 | 574B | ORG · | S7C18 |
00734 | 7ClB | 5752 | FOB | Ml |
00735 | 7ClA | 5760 | FOB | MlO |
00736 | 7ClC | 5768 | FDB | M20 . |
00737 | 7ClE | .. . ... | FDB | M30 |
00738 | 7C3? | 5793 | ORG | S7C32 ■ "" |
00739 | 7C32 | 5787 | FOB | ■M110tM130»M40»M120tM140,M50 |
00740 | 7C3E | 5787 | FOB · | MflO |
00741 | 7C40 | FOB | M170 | |
00742 | -7C4A | 577B | ORG | S7C4A |
00743 | 7C4A | 5780 | FOB | M60 |
00744 | 7C4C | FOB | MlOO | |
00745 | 7C42 | 5781 | ORG | S7C42 |
00746 | 7C42 | 57AB | FOB | M70 |
00747 | 7C44 | 5781 | FOB | M150 |
00748 | 7C4A | FOB | M160 | |
00749 | 7C49 | 57Fl | ORG | S7C48 |
00750 | 7C48 | FOB | ROLLUP | |
00751 | 7C7A | 57FA | ORG | 57C7A |
00752 | 7C7A | FDB | LF · | |
709808/1025
Page 93 CJRPG 06/04/75 36:54.05
END
SYMBOL TABLE
ADATA | 0000 | ACTL | 0001 | BDATA | 0002 | BCTL | 0003 | INPUT | 0004 | ΙΟΙΝ | 0005 |
ERROR | 000ft | T6L | 0007 | UFLG | 0008 | RSFLG | 0009 | EOM | OOOA | EOPM | OOOB |
STKFLG | OOOD | RND | OOOE | DIGFLG | OOOF. | W2 | 0010 | Wl | 0011 - | SFLG | 0012 |
OCNTR | 0013 | TPl | 0014 | TPlS · | 0015 | TP2 | 0016 | TP2S | 0017 | ΤΡ3 | ooia |
TP3S | 0019 | TP4 | 001A | TP4S | 0018 | TP5 | OOIC | TP5S | 001D | Τ=>6 | οοιε |
TP6S | OOIF | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0023 | TIl | 0024 |
TlO | 0025 | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | Τ5 | 002A |
T4 | 0025 | T3 | 002C | T2 | 002D. | Tl | 002E | ISTK | 0 02F | ISTACK | 0051 |
TA · | 0052 | SPGM | 0054 | EXTRA | 0056 | 8UFF | oosa | REAL | 0068 | IMAG | 0070 |
ATI | 007R | ΑΤ2 | 0080 | W | 0088 | XR | 0090 | YR | 0098 | ZR | OOAO |
TR | OOAfl | LSTX | 0080 | SKWRT | OORfi | 3KKC | OOBA | S0L7 | 00C6 | UPP | 00C8 |
UIP | OOCA | ALPHA | OOCC | 101 | OOCO | 102 | OODO | IT7 | 0003 | FLAG | 00D5 |
TPOS | 0ΛΟ6 | 'FILE | 00O7 | AR ' | 00D8 | SR | OOEO | CP | 00E8 | DR | OOFO |
ER | 00F8 | SOBB | 008A | MT | 7E00 | TERMN7 | O O 3D | IMED | 0040 | PARCD | OOCO |
PAREX | ooeo | NTBL | 0000 | DOTS | 5EC0 | PRTDPV | 602D | FOMT | 5C4* | BLANK | 5075 |
LDMSQ | 57B0 | ROLLD | 55B2 | ROLLU | 57Fl | PSD | 550A | TXL | 55E9 | STKUP | 55EF |
MAO | 749R | CMP | 74AA | NOR | 74D6 | TXW | 7424 | TXXR | 7433 | EXXR | 7452 |
APSR | 751H | OVUNF | 75B6 | OVERF | 7500 | XRO | 74OA | XPNINE | 75C3 | UMDRF | 75Fi |
I«*ULT | 7M9 | QOG | 7669 | FPA | 75FC | FPS | 75F6 | FPM | 7735 | FPQ | 7793 |
FPAEX | 7630 | FPMEX | 7780 | LSHIFT | 7521 | ZEROX | 7489 | XZEROQ | 7^16 | XZER02 | 7417 |
RECIP | 73E6 | TXRX | 73F3 | CONST | 6800 | FPDBRC | .6893 | TAN | 6ΒΔ9 | ATN | 69C3 |
OSZERO | 6Δ46 | NTLN | 6A58 | EXPN | 6AC9 | SIN | 6R94 | COS | 6«9A | ASIN | 63F2 |
ACOS | 63F7 | PHl | 6C5D | PH2 | frCBD | PH3 | 6034 | PH4 | 6000 | LSFT8 | 6E47 |
SORT | 6E65 | . ΜΑΟβ | 6F2C | CMPP | 53E4 | IOUPX | 6F52 | LOGlO | 6FA7 | YUPX | 6FE9 |
RTOP | 732«ί | PTOR | 7336 | REGPTP | 0014 | INTFRl | 5550 | INTFR2 | 555C | TITFR3 | 5564 |
INTFR4 | 556C | INTFR5 | 556F | INTFR* | 5579 | INTFR7 | 5590 | IMTFR<5 | 559A | CLXPl | 5598 |
LDEX. - | 55Δ0 | ENTERl | 55A6 | XEYl | 55AC | ROLLDl | 55=?2 | ROLLOS | 55^S | RLSTXl | 55C9 |
RLSTX2 | 5502 | PSDl | 55DA | PSD5 | 5500 | STEMP | 0020 | STKUPl | 5C-£F | STKUP2 | 55FV |
STKUP3 | 55FA | ST*U»9 | 5610 | SAVE | 0014 | CLRl | 5611 | CLR3 | 561Δ | Ρ·5ΤΙ | 5fi?4 |
TE1^P | 002E | PTSTKl | 562C | PTSTK3 | 5632 | EXP- | ooeg | E* Pl | DTE^'P | 0 014 | |
EXP?. | 003A | 8 W" 2 | 7982 | CHS | 5641 | Dl- | 5651 | 03 | 5^-57 | Π=5 | 5660 |
D7 | 5663 | D8 | 566C | 09 | 5671 | OECPNT | 5687 | Oil | 56-ΪΟ | D,15 | 5698 |
DEXIT | 569C | DEXITl | 569F | FIXl | 56A4 | EEX | 56A9 | 022 | 56C4 | 023 | 56CC |
025 | 5fiD3 | D27 | 55El | OIGITR | 56E3 | DIGITS | 56E4 | 0IGIT7 | 56E5 | .DIGIT6 | 56E6 |
DIGITS | 56E7 | DIGIT4 | 56E8 | DIGIT3 | 56E9 | DIGIT2 | 56EA | DIGITl | 5^Εβ | DIGIT*) | 56EC |
035 | 5701 | D36 | 570A | 039 | 5711 | D43 | 5723 | D*5 | 5730 | 047 | 5733 |
02a | 573E | Ml | 5748 | MlO | 5752 | SETUP | 5759 | M20 | 5760 | M28 | 5 765 |
M30 | 5768 | M40 | 576F | M50 | 5775 | M60 | 5779 | M70 | 57*1 | ^«80 | 5717 |
MlOO | 57ßO | . MIlO | 5793 | M120 | 5799 | M130 | 579F - | M140 | 57Δ5 | M150 | 57AB |
M160 | 57Bl | M170 | 57B7 | 8FPTR | 0016 | MSGPTR | 0013 | LDMSG2 | 57Β0 | MSGLP | 573F |
NTLST | 57CB | ENTPIl | 57D7 | ENTPI2 | 57E0 | PI | 57E9 | ROLLUP | 57Fl | LF | 57FA |
7 0-9 808/1025
ORiGINAL IMSPECTED
~ 1,17
Page 94 CJ8PG 06/04/75 36:54.05
00215 | 5800 | 2E | TA8LE | OPT | LISTtMEM | NOP ■ . | ZERO | CLEAR X |
00218 | 5800 | 2F | ORG | S5S00 | * | ONE | ||
00219 | 5801 | 30 | FCB | S2E | TWO | |||
00220 | 5802 | 90 | FCB | $2F | THREE | CLEAR | ||
00221 | 5303 | 91 | FCB | $30 | FOUR | |||
00222 | 5804 | 92 | FCB | S90 | FIVE ■ | |||
00223 | 5805 | 93 | FCB | S91 | SIX | |||
00224 | 5806 | 94 | FCB | S92 | SEVEN | |||
00225 | 5807 | 95 | FC8 | $93 | EIGHT | X EXCHANGE Y | ||
00226 | 5808 | 96 | FCB | $94 | NINE | |||
00227 | 5809 | 97 | FCB | S95 | DECIMAL POINT | |||
00228 | 580A | 98 | FCB | S96 | PLUS SIGN | ROLL DOWN | ||
00229 | 5808 | 99 | FCB | $97 | MINUS SIGN | |||
00230 | 580C | 8E | FCB | 598 | ASTERISK (MULTIPLY) | |||
00231 | 580O | 8B | FCB | $99 | DIVIDE SIGN | |||
00232 | 58 OE | •8D | FCB | $8E | ENTER | |||
00233 | 580F | 8Λ | FCB | SSB - | PI | |||
00234 | 5810 | BS | FC8 | S80 ' | LAST X | |||
00235 | 5811 | A5 | FCB | S8A | ||||
00236 | 5812 | 2E | FCB | SRB | ||||
00237 | 5813 | 34 | FCB | SA5 | ||||
00238 | 5814 | 25 | FCB | S2E | ENTER EXPONENT | SIN | ||
00239 | 5815 | 32 | FCB | $34 | ||||
00240 | 5816 | 3E | FCB | S25 | ||||
00241 | 5817 | A5 | FCB | $32 | CHANGE SIGN | |||
00242 | 5818 | 25 | FCB | S3E | -.— · | |||
00243 | 5319 | 38 | FCB | SA5 | ||||
00244 | 581A | 88 | FCS | $25 | ||||
00245 | 581B | 01 | FCB | $38 | ||||
00246 | 531C | OD | FCB | *8B | ||||
00247 | 5310 | A3 | FCB | si- - | ||||
00248 | 581E | 2C | FCB | «D | ||||
00249 | 58 IF | 38 | FCB | $A3 | ||||
00250 | 5820 | A3 | FC8 | S2C | ||||
00251 | 5821 | 2C | FCB | $38 | ||||
00252 | 5322 | 25 | FCB | 5A3 | ||||
00253 | 5323 | 21 | FCB | . S2C | ||||
00254 | 5824 | 32 | FC8 | 525 | ||||
00255 | 5825 | 88 | FC8 | $21 | ||||
00256 | 5826 | 01 | FCB | S 32 | ||||
00257 | 5327 | 39 | - | FCB | SB8 | |||
00258 | 5328 | B2 | FCB | $1 | ||||
00259 | 5329 | 2F | FCB | S39 | ||||
0026α | 532A" | 2C | FCB | SR2 | ||||
00261 | 5828 | 2C | FCB " | 52F | ||||
00262 | 582C | 3F | FCB | S2C | ||||
00263 | 5820 | 90 | FCB | S2C | ||||
00264 | 582E | AC | FCB | S3F | ||||
00265 | 532F | 33 | FCB | 5BO | ||||
00266 | 5330 | 34 | FCS | SAC | ||||
00267 | 5831 | 38 | FCB | $33 | ||||
00268 | 5332 | B3 | FCB | S34 | ||||
00269 | 5333 | 29 | FCB | $38 | ||||
00270 | 5334 | FCB | $B3 | |||||
00271 | FCB | $29 | ||||||
098 08/1025
ORIGINAL INSPECTED
Page 95 CJBPG 06/04/75 36:54.05
00272 | 5835 | 2E |
00273 | 5836 | A3 |
00274 | 5837 | 2F |
00275 | 5838 | 33 |
00276 | 5839 | 84 |
00277 | 583A | 21 |
00278 | 5839 | 2E |
σ0279 | 583C | Al |
00280 | 5830 | 33 |
00281 | 583E | 29 |
00282 | 583F | 2E |
00283 | 5840 | Al |
00284 | 5841 | 23 |
00285 | 5842 | 2F |
00286 | 5843 | 33 |
00237 | 5844 | Al |
002R8 | 5345 | 34 |
00239 | 5846 | 21 |
00290 | 5847 | 2E |
00?91 | 5848 | AC |
00292 | 5849 | 2E |
00293 | 534A | AC |
00294 | 584PJ | 2F |
00295 | 584C | 27 |
00296 | 5840 | «2 |
00297 | 584E | 3E |
00299 | 584F | 38 |
00299 | 5850 | 91 |
00300 | 5351 | 10 |
00301 | 5852 | 3E |
003Q2 | 5853 | 33 |
00303 | 5854 | 89 |
0030^ | 5355 | 3E |
00305. | 5856 | 3« |
00306 | 5857 | 82 |
0.0.30 7 | 5358 | 2F- |
00306 | 5359 | 2C |
00309 | 5354 | 2C |
00310 | 585B | 3E |
C0311 | 5856 | P3 |
00312 | 5850 | 31 |
00313 | 535E | 32 |
00314 | 585F | 34 |
00315 | 5860 | 91 |
00316 | 5861 | OF |
00317 | 5862 | 3« |
00313 | 5363 | B3 |
00319 | 5864 | 35 |
00320 | 5365 | 20 |
00321 | 5366 | OB |
00322 | 5367 | 83 |
00323 | 5368 | 35 |
00324 | 5869 | 20 |
00325 | 586A | OO |
00326 | 586R | B2 |
FCB | S2E | COS |
FC8 | SA3 | |
FCB | S2F | |
FC8 | S33 | TAN |
FCB | SR4 | |
FCB | $21 | |
FCB | S2E | ASIN |
FC8 | SAl | |
FCB | S33 | |
FCB | S29- | |
FCB | S2E | ACOS |
FCB | SAl | |
FCB | $23 | |
FCB | S2F | |
FCB | S33 | ATAN |
FC8 | 5Al | |
FCB | S34 | |
FCB | 521 | |
FCB | $2E | LN |
FC8 | SAC | |
FCS | S2E | LOG |
FCB | SAC | |
FC8 | S2F | |
FC8 | S27 | EaX |
rCB | S82 | |
FCB | S3E | |
FC8 | S38 | 1OaX |
FC8 | $91 | |
FCB | SlO | |
FC8. | S3E | |
FC8 | S38 | YAX |
FCB | SB9 | |
FCB | S3E | |
FCB | $38 | ROLL UP |
FC8 | SB2 | |
FCB | S2F | |
FCB | S2C | |
FC8 | $2C | |
FCB | S3E | SQUARE ROOT |
FCB | S83 | |
FCB | S31 | |
FCB | $32 | |
FCB | S34 . | 1/X-- |
FCB | $91 | |
FCd | SF | |
FC3 | • S38 | SUM+ |
FCB | S83 | |
FC8 | S35 | |
FCB | S20 | |
FCB | $8 | SUM- |
FCB | 5B3 | |
FC3 | S35 | |
FCB | S 20 | |
FCfI | SD | RECT TO POL |
FCO | SB? | |
7 0 9 8 Ö 8 / 1 0 2 S
Page 96 CJBPG 06/04/75 36:54.05
00327 | 586C | 3C |
00328 | 5860 | 30 |
00329 | 586E | 80 |
00330 | 586F | 3C |
00331 | 587 0 | 32 |
00332 | 5871 | Al |
00333 | 5872' | 23 |
00334 | 5873 | 23 |
00335 | 5874 | 08 |
00336 | 5875 | Al |
00337 | 5876 | ?3 |
00338 | 5877 | 23 |
00339 | 5878 | OO |
00340 | 5879 | A9 |
00341 | 5874 | 2E |
00342 | 5878 | 34 |
00343 | 587C | A4 |
00344 | 5870 | 25 |
00345 | 537E | 27 |
00346 | .58 7F | 33 |
00347 | 5880 | BC |
00348 | 5881 | 24 |
00349 | 5882 | OE |
00350 | 5883 | 20 |
00351 | 5884 | 33 |
00352 | 5885 | A4 |
00353 | 588Λ | OE- |
00354 | 5887 | 20 |
00355 | 5888 | 33 |
00356 | 5889 | 3C |
00357 | 588A | A9 |
00358 | 5889 | 26 |
00359 | 588C | 00 |
00360 | 5880 | OB |
00361 | 588E | A9 |
00362 | 588F | 26 |
00363 | 5890 | OO |
00364 | 5891 | OO |
00365 | 5892 | A9 |
00366 | 5893 | 26 |
00367 | 5894 | OO |
0036R | 5895 | 10 |
00369 | 5896 | A<* |
00370 | 5897 | 26 |
00371 | 589« | OO |
00372 | 5899 | .38 |
00373 | 589A | 10 |
00374 | 589B | 39 |
00375 | 589C | A9 |
Ö0376 | 5890 | 26 |
00377 | 589E | OO |
00378 | 589F | 38 |
00379 | 58A0 | IC |
00380 | 58Al | 39 |
00381 | 58A2 | A9 |
FCB | • $3C | POLAR TO RECT | ■ | FROM O.MS |
FCB | $30 | |||
FCB | SRO | |||
FCB | S3C | ACC+ | ||
FCB | S32 | |||
FCB | SAl | IF + | ||
FCB | $23 | |||
FCB | $23 | ACC- | ||
FCB | SB | |||
FCB | SAl | IF - | ||
FCB | S?3 | |||
FC8 | $23 | INTEGER .. | ||
FC8 | SO | |||
FCB | SA9 | IF 0 | ||
FCB | S2E | OEG | ||
FCB | $34 | |||
FCB | $A4 | |||
FCB | S25 | IF X=V | ||
FCB | $27 | TO O.MS | ||
FCB | $33 | |||
FCB | SBC | |||
FCB | $24 | |||
FC3. | SE | |||
FCB | $20 | IF X<Y | ||
FCB | $33 | |||
FCB | SA4 | |||
FCB | SE | |||
FCB | $20 | |||
FC8 | $.33 | |||
FCB | $3C | IF X>=Y | ||
FCB | SA9 | |||
FCB | S26 | |||
FC8 | SO | |||
FCB | SB | |||
FCB | SA9 | |||
FCB | $26 | |||
FCB | $0 | |||
FCB | $0 | |||
FCB | $A9 | |||
FCB | $26 | |||
FCB | SO | |||
FCB | SlO | |||
FCB | SA9 | |||
FCB | . $26 | |||
FCB | SO | |||
FCB | S38 | |||
FC8 | SlO | |||
FCB | $39 | |||
FCB | SA9 | |||
FCB | S26 | |||
FCR | SO | |||
FCB | $38 | |||
FCB | SlC | |||
FCB | $39 | |||
FCB | $A9 | |||
7 0 9 8 0 8/1025
ORIGINAL INSPECTED
Page 97 CJBPG 06/04/75 36:54.05
0 0382 | 58A3 | 26 |
003*3 | 58A4 | ob |
00384 | 58A5 | 38 |
003*55 | 58A6 | 18 |
00386 | 58A7 | 39 |
00387 | 58A8 | AO |
003H8 | 58A9 | 2E |
00389 | 5SAA | 06 |
00390 | 58AB | 33 |
00391 | 58AC | 24 |
00392 | 58AD | 83 |
00393 | 53AE | 32 |
00394 | 58AF | ?5 |
00395 | 58Θ0 | 27 |
00396 | 5831 | 33 |
003^7 | 5882 | BO |
00398 | 58B3 | 3? |
00399 | 5834 | 34 |
00400 | 5885 | 33 |
00401 | 5886 | 34 |
00402 | 5887 | 23 |
00403 | 5888 | B2 |
00404 | 5889 | 2F |
00405 | 588A | 35 |
004Π6 | 5888 | 2E |
00407 | 588C | 24 |
004OR | 588D | 82 |
00409 | 588E | OO |
004ln | 538F | 21 |
O0411 | 58C0 | 23 |
00412 | 58Cl | 23 |
00413 | 58C2 | 08 |
00414 | 58C3 | A3 |
00415 | 58C4 | ?C |
00416 | 58C5 | 32 |
00417 | 53C6 | 21 |
00418 | 58C7 | 3C |
00419 | 58C8 | 2A |
00420 | 58C9 | 83 |
00421 | 58CA | 30 |
00422 | 58C8 | 21 |
00423 | 58CC | 23 |
00424 | 58C0 | 25 |
00425 | 58CE | A7 |
00426 | 5SCF ■ | 32" |
00427 | 5800 | 21 |
00428 | 5301 | 24 |
00429 | 58Π2 | 33 |
00430 | 5803 | 82 |
00431 | 5SD4 | 21 |
00432 | 5805 | 24 |
00433 | 5806 | 33 |
00434 | 5807 | ca |
00435 | 580R | 33 |
00436 | 5809 | 26 |
FCB | $26 |
FCB | so |
FC8 | $38 |
FCB | SlB |
FCB | $39 |
FCB | $A0 |
FCB | S2E |
FCB | $6 |
FCB | $33 |
FCB | $24 |
FCB | $fl3 |
FCB | $32 |
FCB . | $25 |
FCB | $27 |
FC8 | $33 |
FCB | SBO |
FCB | $32 |
FCB | $34 |
FCB | $33 |
FC8 | $34 |
FC8 | $28 |
FCB | SB2 |
FCB ■ | S2F |
FCB | $35 |
FCB | S2E |
FCB | $24 |
FCB | SB2 |
FC8 | 1KO |
FCB | $21 |
FCB | $23 |
FCB | $23 |
FCB | $8 |
FCB | $A3 |
FCB | *2C |
FCB | $32 |
FC8 | S21 |
FC8 | $3C |
FCB | «2A |
FCB | SB3 |
FCB | $30 |
FCB | $21 |
FC8 | $23 |
FCB | $25 |
FCB | SA7 |
FCB | '$32 |
FCB | $21 |
FC8 | $24 |
FCB | $33 |
FCB | $82 |
FC8 | $21 |
FCB | $24 |
FCB | S33 |
FC8 | SC8 |
FCB | *33 |
FCB | $26 |
MEAN ANO STANDARD DEVIATION NO. OF REGISTERS PRINT STACK
ROUNO RCL ACC+
CLEAR ALPHA REGISTERS
SPACE
GRADS
RADS
SFG
709 8*0.8/102.5
Page 98 CJRPG. 06/04/75 36:54.05
00437 580A 27 . FCB $27
00438 58DB C8 FC8 SC8*
00Δ-39 53DC ?9 - FCB 529 IF SFG
00440 56D0 26 FCB $26
00441 58DE 00 FCB $0
0044? 58DF 33 FCB $33 00443 58E0 26 FC8 S26
0044? 58DF 33 FCB $33 00443 58E0 26 FC8 S26
.00444 5-3E1 27 FCB $27
00445 58E2 C8 FCB $C8.
00446'58E3 23 FCB $23 CFG
00447 58E4 26 FCB $26
00448 58E5 27 FCB $27
00449 58E6 CR FCB $C8
00450 58E7 29 FCB $29 IF CFG
00451 58E9 26 FCB $26
00452 58E9 00 . FCB $0
00453 58EA 23 . FCB S23
00454 58EB 26 ' FCB $26
00455 58EC 27 · FCB $27
00456 58ED A7 TABLEl FCB SA7 GO TO
00457 58EE 2F FCB $2F
00458 58EF 34 FCS S34-
00459 58F0 2F FC8 $2F
00460 58Fl A7 FC8 SA7 GOSUB
00461 58F2 2F FCB $2F
00462 58F3 33 FC3 $33
00463 58F4 35 FCS $35
00464 58FS ?2 FCB $2?
00465 58F6 Cl _FC8 SCl GOTO
"00466 53F7 «0~ " FCB $80
Q0467 58F8 Cl FCB- $C1 GOSUB
.00468 58F9 Bl FC3 $81
00469 53FA CA FCB $CA
0047(1 58F8 33 ■ FC8 ' S33 ' STORE
00471 58FC 34 FC8 $34 _
00472 58FD 2F '" " FCB $2F
00473 58FE CA FCB $CA
00474 58FF 33 FCH $33 STORE+
00475 5900 34 FC8 S34
00476 5901 2F FCB $2F
00477 5902 OB FCB SP
00478 5903 Ca ' " FCB ' J=CA
00479 5yO4 33 FCB «33 ' STORE-
00480 5905 34 FCB $34 004Λ1 5906 2F FCB ·$2F
00482 5907 OD FCB $0
004S3 5908 CA FCB $CA
004S3 5908 CA FCB $CA
00484 5909 33 FC8 S33 STORE*
00485 590Λ 34 FCB $34 004RA 5<)0B 2F FCB $2F
00487 590C OA FCB SA
00488 5900 CA . FCB SCA
00489 590E 33 FCB $33 STORE/
00490 590F 34 · FCB S34
00491 5910 Z? . FCB S2F
7098 08/1025
Page 99 CJ8PG 06/04/75 36:54.05
00492 | 5911 | 3B |
00493 | 5912 | CA |
00494 | 5913 | 32 |
00495 | 5914 | 23 |
00496 | 5915 | 2C |
00497 | 5916 | CS |
00*98 | 5917 | 23 |
00499 | 5918 | 21 |
00500 | 5919 | 2C |
00501 | 591A | 2C |
00502 | 5918 | B6 |
00503 | 591C | 25 |
00504 | 5910 | 32 |
00505 | 591E | 29 |
00506 | 591F | 26 |
005Λ7 | 5920 | 39 |
00508 | 5921 | AC |
00509 | 5922 | 24 |
00510 | 5923 | 06 |
00511 | 5924 | 27 |
00512 | 5925 | 2F |
00513 | 5926 | 82 |
00514 | 5927 | ?3 |
00515 | 5928 | 24 |
00516 | 5929 | 21 |
00517 | 592A | 34 |
00518 | 59?e | 21 |
00519 | 592C | 82 |
00520 | 5920 | 25 |
00521 | 592E | 37 |
00522 | 592F | 29 |
00523 | 5930 | 2E |
00524 | 5931 | 24 |
00525 | ■5932 | 80 |
00526 | 5933 | 21 |
00527 | 5934 | 35 |
00 528 | 5935 | 33 |
0 0529 | 5936 | 25 |
00530 | 5917 | C3 |
00531 | 5938 | 26 |
00532 | 5939 | 2F |
00533 | 591A | 32 |
00534 | 5938 | C3 |
00535 | 593C | ?E |
0053ft | 5930 | 25 |
00537 | 593E | 38 |
00538 | 593F | 34 |
00539 | 5940 | 83 |
00540 | 5941 | 34 |
60541 | 5942 | ?F |
00542 | 5943 | 30 |
00543 | 5944 | A5 |
00544 | 5945 | 2E |
00545 | 5946 | 24 |
00546 | 5947 | BO |
FCB | $38 | RECALL |
FCB | $CA | |
FCB | S32 | |
FCB | $23 | |
FCB | S2C | 5 MAINFRA |
FCB | $C5 | |
FCB . | $23 | |
FCB | $21 | |
FCB | $2C | VERIFY. |
FCB | S2C | |
FCB | *B6' | |
FCB | S25 | |
FCB | $32 | |
FCB | $29 | |
FCB | $26 | LOAD (, GO |
FCB | S39 | |
FCB | SAC | |
FCB | $24 | |
FCB | $6 | |
FCB | $27 | RECOPD DA |
FCB | $2F | |
FCB | SB2 | |
FCB | $23 | |
FCB | $24 | |
FCB | 521 | |
FCB | $34 | REWIND |
FCS | $21 | |
FCB | $82 | |
FCB | S25 | |
FCB | $37 | |
FC8 ' ' | S29 | |
FCB | 52E | PAUSE |
FCB | S24 | |
FCB | $80 | |
FCB | $21 | |
FCB | S35 | |
FCB | 533 | |
FCB | $25 | FOR |
FCB | $C3 | |
FCB | $26 | |
FCB | $2F | |
FCB | $32 | NEXT |
FCB | $C3 | |
FCB | $2E | |
FCB | $25 | |
FCB | $38 | STOP |
FCB | $34 | |
FCB. | $B3 | |
FCB | S34 | |
FCB | $2F | END |
FCB | S30 | |
FCB | $A5 | |
Fca | S2E | |
FCB | $24 | |
FCB | SRO | |
709808/1025
%-iS?l;vTZÖ
Page 100 CJRPG 06/04/75 36:54.05
00547 | 5948 | 32 |
00548 | 5949 | 29. |
00549 | 594A | 2E |
00550 | 5948 | 34 |
00551 | 594C | B2 |
00552 | 5940 | 25 |
00553 | 594E | 34 |
00554 | 594F | 35 |
00555 | 5950 | 32 |
00556 | 5951 | ?ε· |
00557 | 5952 | A5 |
00558 | 5953 | 2E |
00559 | 5954 | 24 |
0056η | 5955 | 4.8- |
00561 | 5956 | 82 |
00562 | 5957 | 23 |
00563 | 5958 | 30 |
00564 | 5959 | 32 |
00565 | 595A | 27 |
00566 | 595S | 20 |
00567 | 595C | B2 |
00568 | 5950 | 23 |
00569 | 595E | 33 |
00570 | 595F | 25 |
00571 | 596 0 | 23 |
0057? | 5961 | AD |
00573 | 5962 | 21 |
00574 | 5963 | 32 |
00575 | 5964 | 23 |
00576 | 5965 | A9 |
00577 | 5966 | 24 |
00578 | 5967 | 25 |
00579 | 5*968 | 2E |
00580 | 5969 | 34 |
00581 | 596A | AC |
005R2 | 5968 | ?F |
00583 | 596C | 21 |
00584 | 5960 | 24 |
00585 | 596E | 80 |
00586 | 596F | A6 |
00587 | 5970 | 29 |
00588 | 5971 | 38 |
00589 | 5972 | 93 |
00590 | 5973 | 23 |
00591 | 5974 | 29 |
00592 | 5975 | B3 |
00593 | 5976 | 23 |
00594 | 5977 | 29 |
00595 | 5978 | 13 |
00596 | 5979 | Cl |
00597 | 59 7 A | CO |
00598 | 597« | AC |
00599 | S97C | 22 |
00600 | 5970 | 2C |
00601 | S97E | -Cl |
FC8 | $32 | RETURN |
FCB | $29 | |
FCB | $2E | |
FC8 | S34 | |
PCS | $B2 | |
FCB | $25 | |
FCB | $34 | END ALPHA |
FCB | 535 | |
FCB | S32 "■ - | |
FCB | S2E . | |
FCB | $A5 | RECOPO PROGP |
FCB | S2E | |
FC8 | $24 | |
FCB | $48 | |
FCB | $B2 | |
FCB | S23 | |
FCB | $30 | RECORD SECUR |
FC8 | $32 · | |
FCB | $27 | |
FCB | $2D | |
FCB | SB2 | |
FCB | $23 | MARK |
FCB | • S33 | |
FCB | $25 | |
FCB | $23 | |
FCB | $AD | IDENTIFY |
FCB | $21 | |
FCB | $32 | |
FCB | $28 | |
FCB | . SA9 . | |
FCB | $24 | LOAD |
FCB | $25 | |
FCB | $2E | |
FC8 | . $34 | |
FCB | SAC | 1 EMPTY SLOT |
FC8 | S2F | FIX |
FCB | S21 · | |
FCB | $24 | |
FCB | $80 | SCI |
FCB | $A6 | |
FCB . | 529 | |
FCB | $38 | SCI3 |
FCB" | $83 | |
FCB | $23 | |
FCB | S29 | |
FCB | $B3 | |
FCB | $23 | |
FCB | $29 | LABEL |
FCB | $13 | |
FC8 | SCl | |
FCB | *C0 | GOSUB LBL |
FCB | SAC | |
FCB | $22 | |
FCB | $2C | |
FCB | *C1 | |
7 0 980*8/1 02 5
ORIGINAL !MSFEGTED
Page 101 CJBPG 06/04/75 36:54.05
00602 00603 00604 00605 00606 00607 0060«
00609 00610 00611 00612 00613 00614 00615 00616 00617 0061« 00619 00620
00621 00622 006P3 00624 00625
00626 00627 0062« 00629 00630 00631 OOf.32
00631 00*34 00635 00636 130637 00631 0 0639 00640
00641 00642 00*43
00644 0 0645
00646 00647 00648 00649 00650 006Sl 00652
006^3 00*54 00A55 00656
597F
5980 Cl
5981 5982 5983
5984 2C
5985 5936
5987 B3
5988
5989 2F 598A 598S. 598C 5980
598E 2F 598F OR 5990 5991
5992 B3
5993
5994 2F
5995 OD
5996 5997
5998 Bl
5999 599A 2F 5998 OA 599C 5990 599E B3
S99F 59Δ0 2F 59Al 59A2 59A3 59Δ4 C?
59AS as
59A6 C2 59A7 RE 59A8 C2 59A9 59AA C2 59AB A2 59AC C2 59AO AC 59AF C2
59AF B6 59R0 C2 59Bl E2 59B2 C2
59B3 E3 5984 C2 59B5 F.4
FCB | S81 | GOTO LBL |
FCB | SCl | |
FCB | $80 | RECALL INOIRECT |
FC8 | SB2 | |
FCB | SH3 | |
FCB | sac | |
FCB | so | |
FCB | S29 | STORE. INDIRECT |
FCB | $83 | |
FCB | $34 | |
FCB | S2F | |
FCB | $0 | |
FCB | $29 · | STO+ INDIRECT |
FCB | $R3 | |
FC8 | $34 | |
FCB | SHF | |
FCB | SB | |
FCB | SO | |
FCB | $?9 | STO- INOIRECT |
FCB | SB3 | |
FCB | S3 4 | |
FCB | $2F | |
FCB- | SD | |
FCB | $0 | |
FCB | S29 | STO» INDIRECT |
FCB | SB3 | |
FCB | S34 | |
FCB | S2F | |
FCB | SA | |
FC8 | SO | |
FC8 | S29 ' | STO/ INDIRECT |
FCB | «B3 | |
FCB | S34 | |
FCB | S2F- | |
FCB | S3B | |
FCB | $0 | |
FCB | S29 | 2 STORES |
FCB | SC2 | |
FCB | S85 | 2 STO + |
FCB | SC2 | |
FCB | 58E | 2 STO- |
FCB | $C2 | |
FCB | S98 | 2 STO» |
FCB | SC2 | |
FCB | SA2 | 2 STO/ |
FCB | SC2 · | |
FC8 | SAC | 2 RECALLS |
FCB | SC2 | |
FCB | •SB6 | 2 RCL IND |
FCB | SC2 | |
FCB | SE2 | 2 STO IND |
FCB | SC2 | |
FCB | SE3 | 2 STO+ INO |
FCB | SC2 | |
FCB | SE4 | |
7Q9ÄÖ8./10.2
ORSGiNAL
- 125 -
Page 102 CJBPG 06/04/75 36:54.05-
00657 | 5986 | C2 |
0065Θ | 59B7 | E5 |
00659 | 59P8 | C2 |
00660 | 5989 | E6 |
00661 | 598A | C2 |
00662 | 5988 | E7 |
00663 | 598C | 00 |
00664 | 59B0 | 81 |
00665 | 59βΕ | 00 |
00666 | 593F | 80 |
00667 | 59C0 | 00 |
00668 | 59Cl | 52 |
00669 | 59CH | 4E |
00570 | 59C3 | 54 |
00671 | 59C4 | 68 |
00672 | 59C5 | 04 |
00673 | 59C6 | 41 |
00674 | 59C7 | 42 |
00675 | 59C8 | 20 |
00676 | 59 C9 | ?0 |
00677 | 59CA | CC |
00678 | 59CB | 49 |
00679 | 59CC | 4E |
0068(1 | 59C0 | 45 |
00631 | 59CE | ?0 |
00632 | 59CF | 03 |
00633 | 5900 | 48 |
00684 | 59Dl | 49 |
00685 | 59D2 | 46 |
00686 | 5903 | 54 |
FT9L
TSNL
FCB | $C2 | 2 STO- INO |
FCB' | $E5-' | |
FC8 | SC2 | 2 STO* IND |
FCB. | $E6 | |
FCB | SC2 | 2 STO/ INO |
FCB | $E7 | |
FCB | SDO | 16 GOSUBS |
FCB | $81 | |
FCB | SDO ' | 16 GOTOS |
FCB | $80 | |
FCB | SOO | PRINT ALPHA |
FCR | S52 | |
FCB | S4E | |
FCB | S54 | |
FCB | S68 | |
FCB | $04 | TAB |
FCB | $41 | |
FCB- | S42 | |
FCB | $20 | |
FCB | 520' | |
FCB | $CC | LINE |
FC8 | $49 | * |
FCB | $4E | |
FCB | S45 | |
FCB | S20 | |
FCB | SO3 | SHIFT |
FCB | S48 | |
FCB | $49 | |
FCB | $46 | |
FCB | $54 |
70 98087102 5
Page 103 CJBPG 06/04/75 36:54.05
00688 | 59D4 | 7978 | 19 | * THIS | ROUTINE | OROVIOES | A PROGRAM LISTING | THE | THE | PUN/STOP | " STATEMENT IS REACHED | A | OCTOBER 15»1974 LIST PEV I | GIO ENTRY | . | SET LSTFLG=O |
00689 | 59D6 | OOIC | 797B | * FROM | WHERE THE PROGRAM COUNTER IS | A KEYLOG IN | KEY IS HIT. IT ALSO | A | STORE GIO FLAG | SET INOEX TO USER PSTN PTR | ||||||
00690 | 59D9 | 0010 | * SETTING UNTIL AN "ENO | THE PROGRAM MODE | A | SAVE IJPP IN W+4 | ||||||||||
00691 | 59DA | 0014 | 14 | ♦ OR UNTIL | PRINT ALL SWITHCH IS ON. | A | 5797B | LOAO INSTRUCTION | ||||||||
00692 | 590C | 0015 | * PROVIDES | TP5 | SAVE IT IN SVINS | |||||||||||
00693 | 5900 | 0018 | 15 | » WHEN | TP5S | |||||||||||
00694 | 590F | 0016 | C8 | β | UHLRICH | A | TPl | AUDIT TRAIL? · | ||||||||
00695 | 59El | 48BC | ac | « | A | TPlS | YES, DON'T WORRY ABOUT SEC | |||||||||
00696 | 5«5E3 | 4EA4 | OO | « DAVE | A | TP3 | ||||||||||
00697 | 59E5 | 5300 | IC | EQU | A | TP2 | STORE GIO FLAG | |||||||||
00698 | 59E7 | 57FA | ID | EQU | «488C | |||||||||||
00699 | 59E9 | S2F4 | 07 | BWM | EQU | S4EA4 | LOAD ÄCCB WITH NEW RSFLG | |||||||||
00700 | 59 E3 | 80 | 2A | SVINS | EQU | A | $5300 | SET LSTFLG .NE. 0 | ||||||||
00701 | 59ED | 7E | 18 | SAVE | EQU | 157FA | SET INOEX TO USER PSTN PTR | |||||||||
00702 | 59EF | 4C | 14 | GIOFLG | EQU | P | S52F4 | SAVE 1JOP IN W+4 | ||||||||
00703 | 59Fl | 97 | 52F4 | LSTFLG | EQU | B | LIST | LOAO INSTRUCTION | ||||||||
00704 | 59F4 | 4F | CO | MSGPTR | EQU | BWM | SAVE THE INSTRUCTION | |||||||||
00705 | 59F6 | 97 | 15 | 3FPTR | EQU | |||||||||||
00706 | 59F8 | OE | C8 | RINBCO | EQU | A | GIOFLG | IS IT AN END IMSTPUCTION? | ||||||||
00707 | 59FA | DF' | 8C | OGTS | EQU | A | NO. SET RSrLG=SCO | |||||||||
00708 | 59FC | A* | OO | POMID | EQU | A | LSTFLG | YES» SET RSFLG=S40 | ||||||||
00709 | 59FE | 97 | IC | LF | BSR | A | UPP | STORE NcW RUN/STOP FL*G | ||||||||
00710 | 5A00 | 97 | 10 | STEPi | JHP | W+4 | ||||||||||
00711 | 5A.02 | 96 | 81 | LSTNTR | INC | E) | X | |||||||||
00712 | 5A04 | 2A | 02 | STA | α | SVINS | SECURED PROGRAM? | |||||||||
00713 | 5A06 | 20 | 40 | GIONTR | CLR | A | SAVE | |||||||||
00714 | 5A08 | 97 | 09 | KEYLOG | STA | A | TGL | |||||||||
00715 | 5A0A | BD | 05 | LDX | OKAY | |||||||||||
0G716 | 5A0C | C6 | STX | KYLG | ||||||||||||
00717 | 5A0O | 07 | 03 | LOA | GIOFLG | |||||||||||
00718 | OE | STA | STEPl | |||||||||||||
00719 | OF | STA | «SCO | |||||||||||||
00720 | Δ6 | LDA | LSTFLG | |||||||||||||
00721 | 97 | BPL | UPP | |||||||||||||
00722 | 97 | BRA | W+4 | |||||||||||||
00723 | 81 | STA | X | |||||||||||||
00724 | 26 | JSR | SVINS | |||||||||||||
00725 | C6 | LIST | LDA | SAVE | ||||||||||||
00726 | 07 | STA | «SBl | |||||||||||||
00727 | 96 | LSTOK | LDX | NTEND | ||||||||||||
Q !J 728 | 44 | STX | *S40 | |||||||||||||
00729 | 24 | LOA | RSFLG | |||||||||||||
00730 | STA | FLAG | ||||||||||||||
00731 | STA | |||||||||||||||
00732 | CMP | OKAY | ||||||||||||||
00733 | BNE | |||||||||||||||
00734 | LQA | |||||||||||||||
00735 | STA | |||||||||||||||
00736 | LDA | |||||||||||||||
00737 | MTEmO | LSR | ||||||||||||||
05738 | KYLG | BCC | ||||||||||||||
00739 | ||||||||||||||||
00740 | ||||||||||||||||
00741 | ||||||||||||||||
00742 | ||||||||||||||||
709808/1025
Page 104 CJHPG 06/04/75 36:54.05
007A3
00744
00745
00744
00745
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756
00748
00749
00750
00751
00752
00753
00754
00755
00756
•00757
0075«?
00759
00760
00761
0076?
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772
773
00774
Ό0775
00776
00777
0077«
00779
7*0.
00781
00782
00783
007Ρ4
00785
00786
00737
0078Η
00789
00790
00791
00792
00793
00794
0075«?
00759
00760
00761
0076?
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772
773
00774
Ό0775
00776
00777
0077«
00779
7*0.
00781
00782
00783
007Ρ4
00785
00786
00737
0078Η
00789
00790
00791
00792
00793
00794
.00795
00796
00797
00796
00797
5A0F 86 5Α11 97 5Α13 4F 5Α14 97 5Al6 39
5Α17 flO SAlA 7Α 5Α10 DE SAlF 7C
5A22 80 5A25 CE 5A28 86 5A2A BO 5A20 96
5A2F 08 5A30 08 5A31 DF 5A33 70 5A36 27 5A38 40 5A39 2F.
5A38 85 5A30 27 5A3F 7E 5A42 CE
5A45 OF 5A47 16 5A48 5A 5A49 RO 5A4C 7E 5A4F fil
5A51 27 5A53 81 5A55 27 5A57 81 5A59 26 5A53 7F
5A5E CE 5A61 4F 5A62 91 5A64 27 5A66 08 5A67 E6 5A69 ?A
5A6B Ci 5A6D 26
5A6F 4C 5A70 20 5A72 C4 5A74 08 5A75 4C 5A76 91 5A78 27 5A7A 5A 5A7B 27
16 06
09
5075
00C8
C8
00C8
488C
0058
10
4EA4
IC
16
OOCC
26
14
FC '
03
5AFl
59C5
18
5B7E
58F2
B2 ■
08
84
04
Bl
Fl
OOCC
5800
10 26
OO F8 40 03
FO 3F
SPERR
OKAr
TLS
END2 ENOASC
NALPHA NTASC
CMPCTR NOCNT
MRTHNl MOTYET
ID 05
E9
LDA A STA A "CLR A STA A RTS JSR DEC LDX
INC JSR LDX LDA A JSR LDA A INX INX STX TST BEQ TST A BLE
BIT A BEQ JMP' LDX STX TAB DEC B JSR JMP CMP A BEQ CMP A
SEQ CMP A BNE CLR LDX CLR A CMP A BEQ INX
LDA. BPL BIT B BNE INC A BRA -AND B
INX INC A CMP A BEO OEC B REQ
«22
ERROR
RSFLG
BLANK
UPP
UPP
UPP
BIN8C0
«BUFF
«16
D6TS
SVINS
BFPTR ALPHA NTASC
ENOASC
#SFC
TLS
STOOP
«TSNL
MSGPTR
PRTMSG
END
«5B2
MTASC
«ΪΒ4
NALPHA
EN02
ALPHA
«TABLE
SAVE FOUND·
NOCNT
MRTHNl
CMPCTR «S3F
SAVE EOUAL
NOCNT
RSFLG=O
MSB SET?
SET TABLE OFFSET IN ACCB " PRINT TAB» SHIFT. Of? LINE.
PRINT COMMAND?· YES» LIST IT■ AL0HA TERMINATOR?
YES. END ALPHA NO» IS IT AN "END"?
NO. TREAT IT AS A PLANK YES. CLEAR ALPHA FLAG
SET INOEX TO START OF TABLE CLEAR INSTRUCTION CTR CTP=INSTP.?
YES» FOUND ASCII NO» INCR TAPLE ADOR LOAD NEXT ASCII CHAR
MSB SET?
BIT 6 SET?
YES. MORE THAN ONE OF SPECIFIC INSTU INCR INSTR CTR
CLEAR TOP 2 BITS INX TABLE ADDRESS
INCR INSTR CTR CTR=INSTR.?
YES. ADDRESS FOUND OECW MULTIPLE INSTR CTR
IF =0» NOT THIS MULTIPLY USED INST.R
709808/1025
Page 105 CJBPG 06/04/75 36:54.05
00798 | 5A7D | "20 | F.6 | EQUAL | BRA | B | NOTYET |
00799 | 5A7F | E6 | OO | LDA | X | ||
ΟΟβηΟ | 5AAl | 2A | 09 | BPL | B | FOUND | |
00801 | 5Δ83 | C4 | 7F | ANO | B | **$7F | |
00802 | 5Δ35 | 07 | 10 | STA | SAVE | ||
00803 | 5ΑΛ7 | CE | 58EO | LOX | «TABLEl | ||
00804 | 5AAA | 20 | D5 | FOUND | BRA | A | CMPCTR-I |
00805 | 5A8C | 4F- | CLR | ||||
00806 | 5AA0 | 80 | 57BO | JSR | A | LDMSG | |
00807 | 5A90 | 86 | 64 | LDA | A | #$64 | |
00808 | 5A92 | 97 | 17 | STA | BFPTR+1 | ||
00609 | 5A94 | DE | 16 | LDX | A | BFPTR | |
00810 | 5A96 | 96 | IC | LOA | A | SVINS | |
00811 | 5A98 | 81 | 3F | CMP | «$3F | ||
00812 | 5A9A | 23 | 57 | TBL20 | BLS | A | DONE |
00813 | 5A9C | «1 | 5F | CMP | «S5F | ||
00814 | 5A9E | .22 | 07 | BHI | A | TRL21. | |
00815 | 5ΑΔ0 | 84 | 07 | AND | A | #S7 | |
00816 | 5AA2 | 4C | INC | A | |||
00*17 | 5AA3 | 8A | 30 | ORA | #S30 | ||
00818 | 5AA5 | 20 | 4A | TBL21 | BRA | A | STOOP |
00819 | 5AA7 | 81 | 61 | CMP | #S61 | ||
00820 | 5ΑΔ9 | 22 | 05 | BHI | B | TBL22 | |
00821 | 5AA3 | C6 | 4C | LOA | 8 | eS4C | |
00822 | 5ÄAD | E7 | OO | STA | X | ||
00823 | 5AAF | 08 | TBL22 | INX | A | ||
00824 | 5ARO | 81 | 63 | CHP | «S63 | ||
00825 | 5A82 | 22 | 04 | BHI | A | TBL23 | |
00826 | 5A-4 | B6 | 58 | LDA | #S58 | ||
00«27 | 5AR6 | ?0 | 39 | T9L23 | BRA | A | STOOP |
0082« | 5A«58 | fll | A4 | CMP | «$A4. | ||
00829 | ,5ARA | 22 | OA | BHI | A | TBL24 | |
0O83O | 5ABC | 80 | 19 | SUBlO | SUB | A | «S19 |
00931 | 5A^E | 80 | OA | sua | A | «10 | |
00832 | 5AC0 | 81 | 4A | CMP | «S4A | ||
0 0 833 | 5AC2 | 22 | FA | BHI | SUBlO | ||
00834 | 5AC4 | 20 | 28 _ | T3L24 | .BRA | A | STOOP |
00835 | 5AC6 | 81 | Δ9 | CMP | CSA9 | ||
00836 | 5ACi | ?3 | 29 | T8L25 | 8LS | A | DONE |
00837 | 5ACA | 81 | AF | CMP | «SAF | ||
00838 | 5ACC | Z?. | 28 | BHI | B | TBL30 ' | |
00839 | 5ACE | C6 | 41 | LOA | A | *54l | |
00840 | 5A00 | 85 | 02 | BIT | #2 | ||
OOflM | 5A02 | 27 | 06 | BEQ | 8 | LDARC | |
00842 | 5A04 | 5 C | INC | A | |||
00843 | 5A05 | 85 | Ol | BIT | «1 | ||
00844 | 5AD7 | 27 | Ol | BEQ | B . | LDABC | |
00845 | 5AD9 | SC | LDA3C | INC | R | ||
00346 | 5A0A | E7 | OO | STA | A | X | |
00847 | 5A0C | 81 | AC | CMP | «SAC | ||
00848 | 5A0E | 22 | 13 | BHI | DONE | ||
00849 | 5AEO | oa | INX | A | |||
00850 | 5AEl | 86 | 5C | LDA | A | SS5C | |
00851 | 5AE3 | Δ7 | OO | STA | X | ||
0085? | 5AE5 | 08 | INX | ||||
CONTINUE COUMTING LOAD RYtE AFTER BYTE WITH TOP 2 BITS
MSB SET? NO» ADDRESS FOUND YES* CLEAR THIS BIT STORE NEW INSTR TO βΕ COUNTED TO
LOAD PARTIAL TABLE STARTING AODRESS START SEARCH OVER AGAIN
LOAD MNEMONIC INTO BUFFER
SET BUFFER PTR TO OPERAND FIELD STORE IT
SET INDEX TO BUFFER PTR LOAD INSTRUCTION NO OPERAND INSTRUCTION? YES« YOU ARE DONE
FLAG INSTRUCTION? NO» CHECK FURTHER YES» MASK OFF BOTTOM 3 BITS ADD ONE TO THEM CONVERT RESULT TO ASCII
STORE OPERAND INTO BUFFER G0SU8/G0T0 LBL X? NO» CHECK FURTHER
YES» LOAD ASCII L STORE IT IN BUFFER INCR BUFFER PTR GOSUB/GOTO X? NO» CHECK FURTHER
YES» LOAD ASCII X STOPF OPERAND STO+-*/ A-J Oh PCL A-J OR CALL ArE
MO» CHECK FURTHER SUBTRACT OFFSET SUBTRACT 10 REACHED ASCII CODE FO=? A THRU J?
NO» SURTRACT 10 MO»E
YES» STORE OPERANO NO .OPERAND INSTRUCTIONS?
YES» ALL DONE FOR/NEXT?
no» check further load ascii a into acc9 for a/next a?
YES» OPERAND=A NO, ASCII Β IN ACC*
FOR R/NEXT B? YES· OPEBANO=B
NO. OPERANO=C STORE OPERANO FOR INSTRUCTION? YES» YOU ARE DONE
LOAD RIGHT ARROW STOPE IT IN ThE BUFFER
709808/1025 orkshnal lmspcct
Page 106 CJBPG 06/04/75 36:54.05
00853 | SA E 6 | CS | 05 | STOOP | AOO | R | «5 |
00 354 | 5AES | E7 | 00 | DONE | STA | B | X |
00855 | 5AEA | Cl | 48 | T3L30 | CMP | B | . *$48 |
00856 | 5AEC | 26 | 05 ." | BNE | DONE | ||
00857 | 5AEE | 08 | INX | ||||
00858 | 5AEF | 86 | 44 | LOA | A | «S44 | |
00859 | 5AFl | AT | 00 | STA | A | X | |
00860 | 5AF3 | 7E | 5BF2 | JMP | END | ||
00861 | 5AF6 | 81 | BA | CMP | A | «SBA | |
00862 | 5AF8 | 23 | F9 | BLS | DONE | ||
00863 | 5AFA | 81 | BF | CMP | A | #$8F · | |
00864 | 5AFC | 26 | IC | BNE | NOLBL | ||
00865 | 5AFE | 96 | 14 | DASH | LOA | A | GIOFLG |
00866 | 58 00 | 26 | 52 | BNE | ID25-1 | ||
00867 | 5B02 | BO | 6034 | JSR | PRTDRV+7 | ||
00868 | 5805 | RD | 5075 | JSR | BLANK | ||
0 0869 | 5308 | CF | 0058 | LOX | «BUFF | ||
00870 | 5303 | C6 | 20 | LDA | B | #S2D | |
00871 | 530D | E7 | 00 | STA | 8 | X | |
00872 | 580F | 08 | NOLBL | INX | |||
00873 | 5B10 | 8C | 005C | CPX | -SS5C | ||
00874 | 5813 | 26 | F8 | BNE | OASH | ||
00875 | 5815 | 08 | INX | ||||
00876 | 5Bl 6 | OF | 16 | STX | BFPTR | ||
00877 | 5318 | 96 | IC | LDA | A | SVINS | |
00878 | 53IA | OE | C8 | FORMAT | LDX | UPP | |
00879 | 531C | 08 | INX | ||||
00880 | 5HlD | DF | 8C | STX | W+4 | ||
00881 | 53 IF | E6 | 00 | LDA | B | X | |
00882 | 5321 | 31 | BE | CMP | A | a*BE | |
00683 | -5323 | ..-26.. | 6A-- | BNE | NTFMT.. | ||
00S84 | 5325 | CE | 59C0 | LDX | »FTBL | ||
00835 | 5928 | DF | 18 | STX | MSGPTR | ||
00686 | 5d2A | 37 | PSH | B | |||
00887 | 5B2R | 50 | PRTFMT | TST | β | ||
00888 | 53 2 C | 2? | 2F | 3EO | MNEM | ||
00**9 | 5Ö2E | C4 | 70 | AND | #$70 | ||
00S90 | 5B30 | 17 | TBA | ||||
00891 | 5331 | SD | 5300 | JSR | ROMID | ||
00692 | 5334 | 27 | IF | 8EO | ID25 | ||
00893 | 533'6 | 33 | PUL | B | |||
008Q4 | 5337 | 17 | TBA | ||||
00«95 | 5333 | 80 | OF | AMOOE | 3SR | DIGIT | |
00896 | 533A | 08 | INX | ||||
00t)97 | 533R | C4 | OF | AND | B | -eSF | |
00898 | 533D | 27 | 04 | DIGIT | BEO | AMOOE | |
00899 | 533F | C8 | 40 | AOD | B | «S40 | |
00900 | 5341 | 20 | 61 | BRA | STRB | ||
00901 | 5343 | 86 | 68 | LDA | A | «S68 | |
00902 | 534-5 | 97 | CC | STA | A | ALPHA | |
00903 | 5347 | 20 | AB | BRA | STOOP | ||
00904 | 5349 | CE | 0064 | LDX | «S64 | ||
00905 | 534C | 44 | LSR | A | |||
0090ft | 5R40 | 44 | LSR | A | |||
00907 | 5*4E | 44 | LSR | A | |||
ADD 5 Τσ GET SECOND LETTER
STORE SECOND CHARACTER WAS IT AN «H»?
NO. DONE
YESt INCR BUFFER PTR LOAD ASCII "D"
STORE OPERANO IN BUFFER
NO OPERAND INSTRUCTION? YES. DONE · IS INSTRUCTION A LABEL? NO» LOAD OPERAND
GIO? YES» RETURN
PRINT LABEL WITHOUT OPERAND BLANK OUT BUFFER SET INDEX TO BEG OF BUFFER
LOAD ACCB WITH ASCII MINUS SIGN STORE DASHES INCR BUFFER PTR
4 DASHES?
NO. LOAD ANOTHER ONE INTO BUFFER INCR BUFFER PTR
STORE SUFFER PTR
SET INOEX TO USER PSTN PTR POINT TO SECOND BYTE SAVE 2ND 3YTE PTR LOAD 2ND 3YTE IMTO ACC3
FORMAT INSTRUCTION?
NO, CHECK FURTHER
PRINT ALPHA?
MASK OFF I/O DIGIT
ROM EXIST?
YES« LOAO ASCII RELOAO SECOND BYTE PUT IT IN ACCA ALSO
PUT ASCII DIGIT INTO SUFFER
MASK OFF LETTER CALL-DIGIT-CALL?
NO. CONVERT LETTER TO ASCII
LOAD ALPHA SET ALPHA FLAG STORE AL0HA IN OPERAND
POINT TO OPERAND FIELO
7-096Γ08/1025
«»«ΝΑΙ.
- 13O -
Page 107 CJPPG 06/04/75 36:54.05
00908 | 5B4F | 44 | 30 | ID25 | LSR | A | PS30 |
00909 | 5350 | AA | OO | ORA | A | X | |
00910 | 5852 | A7 | STA | A | |||
00911 | 5354 | 39 | 18 | RTS | HSGPTR | ||
00912 | 5855 | DF | 8E | MNEM | STX | W+6 | |
00913 | 5Ö57 | DF | 25 | STX | **$25 | ||
00914 | 5859 | 86 | 19 | LOA | A | MSGPTR+1 | |
00915 | 5B53 | 97 | OOCC | STA | A | ALPHA | |
00916 | 535D | 7F | CLR | ||||
00917 | 5360 | 33 | OF | LEQO | PUL | B | *SF |
00913 | 5861 | C4 | 02 | AND | B | LEOO | |
00919 | 5863 | 26 | CC | BNE | ALPHA | ||
009?.O | 5865 | 97 | 15 | STA | A | PRTMSG | |
00921 | 5B67 | fiD | SE | BSR | W+6 | ||
009?? | 5569 | DE | OO | LDX | X | ||
00923 | 586B | A6 | LDA | A | |||
00924 | 5860 | 08 | OO | INX | X | ||
00925 | 586E | Al | 34 | CMP | A | ENDl | |
00926 | 5870 | 27 | &C | BEQ | W+4 | ||
00927 | 5372 | OE | OO | GENIO | LDX | X | |
009?« | 5B74 | A6 | 70 | LOA | A | «$•70 | |
00929 | 5876 | 84 | 78 | PrtTMSG | AND | A | END |
00930 | 5878 | 27 | CD | BEQ | DIGIT | ||
00931 | 5S7Ä | «n | 74 | BSR | END | ||
00932 | 587C | ?0 | BRA | ||||
00933 | 537E | 17 | T8A | ||||
00934 | 537F | 58 | ASL | β | |||
00935 | 53A0 | SP | ASL | B | |||
00936 | 5B81 | IR | 19 | ABA | MSGPT3+1 | ||
00937 | 58*2 | 9R | 19 | ADO | A | MSGPTR+1 | |
0093« | 5884 | 97 | 50 | STA | A · | *$5D ■ | |
00939 | 5986 | H 6 | 17 | NTFMT | LDA | A | OFPTP+1 |
0094(1 | 58fl« | 97 | 18 | STA | A | MSGPTR | |
00941 | 588A | OF | 57BD | LDX | LOMSG | ||
0 09&2 | 588C | 7E | 19 | JMP | MSGPTR+1 | ||
00941 | 53SF | D7 | STA | B | |||
00944 | 5B91 | 16 | C? | TAB | a*C7 | ||
00945- | 5892 | «I | 2F | CMP | A | PEG | |
00946 | 5394 | ??. | BHI | ||||
00947 | 5896 | SF | 49 | CLR | B | CNVRT | |
0094R | 5397 | 'fiD | 16 | BSR | BFPTP | ||
00949 | 5399 | DE | 0020 | LOX | T2 | ||
00950 | 5393 | 7D | 08 | STR9 | TST | LE99 | |
00951 | 5B9E | 27 | 19 | ENDl | BEQ | MSGPTR+l | |
00952 | 58A0 | 06 | 23 | LE99 | LOA | B | **S23 |
00953 | 5342 | CO | OO | SUB | 3 | X | |
00954 | 5βΑ4 | E7 | 4A | STA | B | END | |
00955 | 5BA6 | ?.O | IC | BRA | SVINS | ||
00956 | 5BAS | 96 | BF | LDA | A | «58F | |
00957 | 58ΛΑ | 31 | 09 | CMp | A | NTLBL | |
0095R | 5BAC | 23 | Cl | BLS | «SCI | ||
00959 | 58AE | ai | 05 | CMP | A | NTLBL | |
00960 | 53B0 | 22 | 4C | BHI | *S4C | ||
00961 | 583?. | C6 | OO | LDA | B | X | |
0Q962 | 5BB4 | E7 | STA | 8 | |||
CONVEOT OIGIT TO ASCII
STOPE IT IN THE BUFFER
STORE I/O ROM ADOR
AOD S25 TO IT
AOD 525 TO GET ADDR OF ASCII MESSAG CLEAP AL0HA FLAG
RELOAD SECONO- BYTE MASK OFF LETTER LETTER=O?
YESt SET ALPHA FLAG
YESt SET ALPHA FLAG
NO, CHECK IF ID'S THE SAME LOAD ID«1
COMPAPE WITH 10*2
NOT SAMEt NO OPERAND SET INOEX TO 2ND BYTE
RELOAD SECOND RYTE MASK OFF I/O OIGIT
DIGIT=Ot YOU ARE DONE YES, OUT ASCII DIGIT IMTO 8UFFER
MULTIPLY BY 4 ADD TO MULTIPLY BY
ADD RESULT TO BASE ADOR LOW RESTORE IT
SET RFPTR TO MNEMONIC FIELO RESTORE IT
PUT INSTo. into ACCB ALSO
2-BYTE IMSTO WITH 2-OIGIT OPERAMO?
NO. CHECK FURTHER OPERAND IN 2NO BYTE ONLY
CONVERT O0EPAND TO QCO
SET INDEX RUFFER PTR
OPF.RANO>=100? (A-O) NOt OPERAND A NUM3ER
YESt LOAD BOTTOM 2 BCD DIGITS CONVERT TO ASCII A THRU
STORE OPERAND DONE
LOAD INSTRUCTION LAKtL IN OPERAND FIELD?
NO
LABEL IN OPERAND FIELD? NO
YES» LOAD L INTO ACCR PUT IT INTO BUFFER
70 9.8 08/1025
Page 108 CJBPG 06/04/75 36:54.05
00963 | 5BB6 | 08 | 08 | NTLBL | INX | A | 08 |
00964 | 5BB7 | 16 | 30 | TAB | B | «"R80 | |
00965 | 5B83 | «6 | 02 | LDA | DIGITS | ||
00966 | 538A | Cl | 04 | CMP | A | «4 | |
00967 | 5B8C | 22 | 4EA4. | BHI | DGTS | ||
00968 | 5BRE | 86 | 2D | DIGITS | LDA | " END | |
00969 | 5BCO | BO | OF | JSR | A | «SDF | |
00970 | 53C3 | 20 | OF | REG | 3RA | ADDR | |
00971 | 5BCt | ar | Ol | CMP | B | *1 | |
00972 | 53C7 | 2? | 15 | BHI | CNVRT "· | ||
00973 | 5BC9 | C4 | 16 | AND | RFPTR | ||
00974 | SBC3 | ao | 52 | BSR | B | «»$52 | |
00975 | '58C0 | OE | OO | LDX | B | X | |
00976 | 5HCF | C6 | LDA | ||||
00977 | 5B01 | E7 | OC | STA | A | #12 | |
00978 | 5BD3 | 08 | £8 | INX | DIGITS | ||
00979 | 5t304 | 86 | OF | LDA | B | *SF | |
00980 | 5306 | 20 | 06 | ADOR | BRA | CNVRT | |
00981 | 5908 | C4 | 16 | AND | .EFPTR | ||
009P2 | 5B0A | «D | 10 | BSR | A | *16 | |
00993 | 5BDC | OE | OE | LDX | DIGITS | ||
009AA | 53DE | 86 | 18 | LOA | B | MSGPTP | |
00985 | 53EO | 20 | 0019 | CNVRT | BRA | MSGPTR+1 | |
00986 | 53E2 | 07 | 0018 | STA | MSGPTR | ||
00987 | 5BE4 | 7R | 0019 | ASL | MSGPTR+1 | ||
009R8 | 5BE7 | 74 | 18 | LSR | MSGPTR | ||
00989 | 53EA | 76 | 48BC | ROR | BINBCD | ||
00990 | 53E0 | DE | 14 | LDX | A | GIOFLG | |
00991 | 53E- | 7E | 3A | END | JMP | NTLIST | |
0099? | 53F2 | 96 | 6034 | LDA | PRTDRV+7 | ||
00993 | 53F4 | 26 | 8C | BNE | W+4 | ||
00994 | SdF* | RO | JSR | ||||
00995 | 5*3F9 | OE | 08 | LDX | — | EOPM . | |
00996 | 59FB | Ofl | OD | INX | ARORTl | ||
00997 | 53FC | 9C | C8 | CPX | UPP | ||
00998 | 53FE | 27 | 06 | BEO | A | ERROR | |
00999 | 5COO | OF | 20 | STX | NOEND | ||
01000 | 5C02 | 96 | 09 | LDA | A | PSFLG | |
01001 | 5C04 | • 26 | 07 | BNE | ABORT | ||
01002 | 5C06 | 96 | 59F4 | LDA | LSTOK | ||
01003 | 5C03 | 2A | 07 | BPL | A | #7 | |
01004 | 5COA | 7 E | 06 | A30RT1 | JMP | A | ERROR |
0100«; | 5COO | «6 | IC | lda' | A | SVINS | |
01006 | 5C0F | 97 | Bl | ABORT | STA | A | «SB1 |
01007 | 5CIl | 96 | OF | LDA | MOEND ' | ||
01008 | 5C13 | 81 | 57FA | CMP | LF | ||
01009 | 5C15 | 26 | 57FA | BNE | " LF | ||
01010 | 5C17 | BD | 57FA | JSR | LF | ||
01011 | 5ClA | 90 | 57FA | JSR | LF | ||
01012 | 5C10 | RO | 57FA | .,JSR | LF | ||
0101-3 | 5C20 | PO | JSR | A | |||
01014 | 5C23 | RO | 09 | NOENO | JSR | A | BSFLG |
01015 | 5C26 | 4F | 15 | CLR | A | LSTFLG | |
01016 | 5C27 | 97 | STA | ||||
01017 | 5C29 | .96 | LDA | ||||
INCR BUFFER PTR
LOAO NO. OF DIGITS»* FIX, SCI. OR SCI3?
NO. DON'T SUPPRESS LEADING YES· SUPPRESS LEADING 0 ON OPERANO
PUT DIGITS INTO BUFFER DONE
2-BYTE IMST« i»ITH cpg OPERAND?
NO, OPERAND IS ABSOLUTE ADDRESS LSR- 1ST BYTE IS PART OF OPERAND
CONVERT OPEPANO TO BCD SET INDEX TO BUFFER PTR PUT R INTO BEG OF O0ERANO
STORE IT IN BUFFER INCR BUFFER PTR LOAD NO. OF DIGITS»*
PUT 3 DIGITS INTO PUFFER MASK OFF LOWEP 4 BITS OF INSTR CONVERT 11-BIT OPEPANO TO BCD
SET -INDEX TO BUFFER PTR LOAD NO. OF DIGITS»*
PUT 4 DIGITS INTO RUFFEP STORE UPPER PART OF OPERAND
SHIFT 2NO BYTE LErT 1 BIT
SHIFT LSB OF 1ST .BYTE INTO CARRY
ROTOATE IT INTO 2NO BYTE SET INDEX TO OPERAND
GIO? YES« RETURN NO, PRINT LINE
INCREMENT IT
END OF USER PROGRAM M£.MO=?Y?
YES. MEMORY 0VE«FLCW
RESTORE USER PSTN PTR OUT OF PAPER?
YES', STOP LIST OR KEYLOG
NO. CHECK RSFLG FLAG CONTINUE LISTING?
YES, DO ANOTHER LINE MEMORY OVERFLOW
LOAD INSTRUCTION END INSTRUCTION? NO, DON'T SPACE
NO. CLEAR RUN/STOP FLAG
LIST?
709808/1025 INSPECTED
Page 109 CJBPG 06/04/75 3.6:54.05
0101Θ | SC2B | 57 | 03 | BEQ | AUDIT | NTLIST | «Ϊ20 | NO« KEYLOG |
01019 | 5C20 | 7F | OOCC | CLR | ALPHA | AUD5 | YES» CLEAR ALPHA FLAG | |
01020 | 5C30 | 39 | NTLIST RTS | BIT | DIRFLG | |||
01022 | •5 | BEQ | «SB | |||||
01023 | ■0 | LDA | TRAIL | AUD5 . | ||||
010R4 | » | CMP | «$ll | |||||
01025 | 5C31 | 85 | 20 | AUDIT | BLS | A | AUD5 | |
01026 | 5C33 | 27 | 56 | CMP | «SBF | |||
01027 | 5C35 | 96 | OF | BEO | A | AUD5 | ||
01028 | 5C37 | Cl | 08 | CMP | B | «512 | ||
01029 | 5C39 | 23 | •50 | 8EQ | AUOl , | =DIGIT | ||
010.10 | "5C38 | Cl | Ii | CMP | B | |||
01031 | 5C3O | 27 | 4C | BNE | AU05 | =EEX. | ||
01<Π2 | 5C3F | Cl | BF | TST | β | OUTXR | ||
01033 | 5C41 | 27 | 48 | BNE | IJPP | =LA8EL | ||
01034 | 5C43 | Cl | 12 | BSR | 8 | AT2+6 | ||
01035 | 5C45 | 26 | 03 | LDX | «S0L7 | #CHS | ||
01036 | 5C47 | 40 | STX | A | UPP | |||
01037 | 5C48 | 26 | 41 | LDX- | STILL DIGIT ENTRY | |||
01038 | 5C4A | 80 | 4F | AUDI | STX | GIONTH | ||
01039 | 5C4C | DE | C8 | CLR | AT2+6 | |||
01040 | 5C4E | DF | 86 | JSP | UPP | SAVE UPP | ||
01041 | 5C50 | CE | 00C6 | LOX | S0L7 | |||
01042 | 5C53 | OF | C8 | STX | «S80 | SET NEW INSTRUCTION POINTER | ||
01043 | 5C55 | 4F | LDA | A | AU02 | |||
010*4 | 5C56 | eo | 5909 | CMP | *S5255 " | GIONTR-INSTRUCTIOM ASCII | ||
01045 | 5C59 | DE | 86 | 8NE | PUFF+5 | |||
01046 | 5C5R | OF | C8 | LOX | «S4E20 | RESTORE UPP | ||
01047 | 5C50 | 06 | C6 | STX | 8 | RUFF+7 | ||
010^8 | 5C5F | Cl | 80 | LDX | R | #RUFF | ||
01049 | 5C61 | 26 | OA | STX | 5,X | #RUN | ||
01050 | 5C63 | CE | 5255 | LDX | O.X | |||
01051 | 5C66 | DF | 50 | LDA | STUFF «RUN · | |||
Ό1052 | 5C69 | CE | 4E20 | STA | «RUFF+11 | |||
01053 | 5C6R | DF | 5F | INX | AUD2+3 * | |||
01054 | 5C6D | CE | 0058 | AUD2 | CPX | OtX | ADDRESS | |
01055 | 5C70 | AA | 05 | BNE | A | |||
01056 | 5C72 | A7 | OO | CLR | A | «RUFF+16 | SHIFT 8UFFER. LEFT | |
01057 | 5C74 | 08 | INX | AUO3 | ||||
01Π58 | 5C75 | ec | 0063 | CPX | PRTDRV+7 | |||
010^9 | 5C73 | 26 | F6 | BNE | T13 | |||
01060 | 5C7A | 6F | OO | AU03 | JSR | DIGFLG | ||
01061 | 5C7C | 08 | LDA | S0L7 | ||||
0106? | 5C7D | 8C | 0068 | STA | ||||
01063 | 5C80 | 26 | F8 | LOA | ||||
01064 | 5Cfl2 | BO | 6034 | AU04 | RTS | |||
01065 | 5CQ=; | 96 | 22 | A | ||||
01066 | 5C37 | 97 | OF | A | RESTORE DIGIT ENTRY FLAG | |||
01067 | 5Cfl9 | D6 | C6 | B | RESTORE COMMAND | |||
01063 | SC89 | 39 | AU05 | |||||
709808/1025
SUSPECTED
:n ο··
- 133 -
Page ΠΟ CJBPG 06/04/75 36:54.05
01070 | 5C3C | 96 | OF | AUDITl LDA | A | DIGFLG | ASCII LETTER |
01071 | 5CeE | 80 | 08 | 8SR | OUTXR | ||
01072 | 5C90 | BO | 5075 | JSR | BLANK · | ||
01073 | 5C93 | 96 | 2Ε· | LDA | A | Tl | SAVE DIGIT E |
01074 | 5C95 | 8ß | 40 ' | ADD | A | #S40 | SKIP IT |
01075 | 5C97 | 97 | 58 | STA | A | BUFF | |
01076 | 5C99 | 20 | E7 | BRA | AUD4 | FORMAT XR | |
01077 | 5C98 | 97 | 22 | OUTXR STA | A | T13 | PRINT IT |
01078 | SC90 | 27 | EC | 8EQ | A UOS | ||
01079 | 5C9F | 7F- | OOOF | CLR | OIGFLG | ||
01080 | 5CA2 | 80 | 5C8C | JSR | FRMT+-S14 | ||
οιοβι | 5CA5 | IE | 6034 | JMP | PRTORV+7 | ||
709808/1025
Page 111 CJBPG 06/04/75 36:54.05
END
SYMBOL TA8LE
ADATA | 0000 | ACTL | 0001 | 8DATA | 0002 | BCTL | 0003 | INPUT | 0004 | IOIN | 0005 |
ERROR | 0006 | TGL | 0007 | UFLG | 0008 | RSFLG | 0009 | EOM | OOOA | EnPM | 0008 |
STKFLG | 0000 | RNO | οοοε | DIGFLG | OOOF | W2 | 0010 | Wl | 0011 ' | SFLG | 0012 |
OCNTR | 0013 | TPl | 0014 | TP]S | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0018 |
TP3S | 0019 | TP4 | OOIA | TP4S | 001B | ' TP5 | OOIC | TP5S | 0010 | T»6 | 001E |
TP6S | OOIF | TP7 | 0020 | TP7S | 0 021 | T13 | 0022 | T12 | 0023 | TIl | 0024 |
TlO | 0025 | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | T5 | 002A |
T4 | 002B | T3 | 002C | T2 | 002D | Tl | "002E | ISTK | 002F | ISTACK | 0051 |
TA | 0052 | SPGM | 0054 | EXTRA | 0056 | BUFF | 005« | REAL | 0068 | IMAG | 0070 |
ATI | 0078 | AT2 | 0080 | W | 0088 | XR | 0090 | YR | 0098 | ZR | OOAO |
TP | 00A8 | LSTX | 0030 | BKWRT | 00B8 | RKKC | O (RA | S0L7 | O0C6 | UPP | 00C8 |
UIP | OOCA | ALPHA | OOCC | roi | OOCD | 102 | OOOO | IT7 | O0D3 | FLAG | 0005 |
TPOS | 0006 | FILE | 00D7 | AR | 0008 | BR | OOEO | CP | O0E8 | 0« | OOFO |
ER | 00F8 | SORB | 008A | MT · | 7E00 | TERMN7 | 003O | IMtO | 0040 | PARCO | OOCO |
PAREX | 0080 | NTBL | 0000 | DOTS | 5EC0 | PRTOPV | 602D | FRMT | 5C48 | BLANK | 5075 |
LOMSG | 5730 | ROLLD. | 5582 | ROLLU | 57Fl | PSO | 550A | TXL | 55E9 | STKUP | 55EF |
MAD | 749.3 | CMP | 74AA | NOR | 7406 | TXW | 7424 | TXXR | 743^ | EXXR | 7452 |
ARSR | 753B | OVUNF . | 7586 | OVERF | 7500 | XRO | 74OA | XRNINE | 75C8 | UNOPF | 75Fl |
IMULT | 7689 | QOG | 7β69 | FPA | 75FC | FPS | 75F6 | FPM | 7735 | FPO | 7793 |
FPAFX | 7*30 | FPMEX | 7780 | LSHIFT | 7521 | ZEROX | 7439 | xze'ooq | 7416 | XZER02 | 7417 |
REdP | 73E6 | TXRX | 73F3 | CONST | 6800 | FPD3PC | 6398 | TAN | 68*9 | ATN | 69C3 |
Q^7£RO | 6A46 | NTLN | 6458 | EXPN | 6AC9 | SIN | 6394 | COS | ASIN | 6-3F2 | |
ACOS | 6BF7 | PHl | 6C5D | PH2 | 6C8D | PH3 | 6D34 | PH4 | 6000 | LSFT8 | 6E47 |
SOPT | 6E65 | MA03 | 6F2C | CMPR | 53E4 | IOUPX | 6F52 | LOGlO | 6FA7 | YUPX | 6FE9 |
RTOP | 73?.« | PTOR | 7386 | TABLE | 580 0 | TA3LE1 | 58E0 | FTBL | 59CO | TSNL | 59C5 |
8WM | 797B | "SVINS | oaic | SAVE | 0010 | GIOFLG | 0014 | LSTFLG | Λ O 15 | MSGPTR | 0018 |
(3FOTR- | 0016 | BIN=CO | 4SBC | DGTS | 4EA4 | ROMlO | 5300 | LF | 57F4 | STEPl | 52F4 |
LSTNTR | =5904 | GIONTP | 5909 | KEYLOG | 590A | LIST | 59EF | LSTOK | S'JF'i· | NTEMO | 5 AO 8 |
KYLG | SAOA | SPE99 | SiOF | OKAY | 5A17 | TLS | 5A42 | ENO? | 5A4C | ENOASC | 5A4F |
NALPHA | 5A5P- | NTASC | 5A5E | CMPCTR | 5Λ62 | NOCNT | 5A66 | MRTHNl | 5A72 | NOTYET | 5Δ75 |
EOlJAL | =5A7F | FOUNO | 5A«C | TBL20 | 5A9C | TSL2.1 | 5AA7 | TPL2? | 5ASO | T«L23 | 5A38 |
SU? 10 | 5ARE | T3L24 | 5AC6 | TBL.?5 | 5ACA | LDAec | 5AO Λ | STOOO | 5AFl | OONE | 5AF3 |
TBL30 | 5AF6 | DASH | 550O | NOLBL | 5BlA | FORMAT | 5325 | DRTFvT | 5436 | A"0Dc | 5343 |
DIGIT | 5R49 | 1025 | 5=555 | MNEM | 5B50 | LEQO | 5B67 | GENlO | 5β7Α | PDTMSG | 5B7E |
NTFMT | 588F | STR3 | 53A4 | ENOl | 5BA6 | LE99 | 5-3Δ8 | NTLRL | 5R=i7 | DIGITS | 5BC0 |
REG | 5BC5 | ADO=? | 5=?08 | CNVRT | 5RE2 | ENO | 53F2 | ABORTl | 5COO | ARORT | 5CIl |
NOENO | 5C26 | NTLIST | 5C30 | AUOIT | 5C31 | AUDI | 5C4A | AU02 | 5C60 | A UD 3 | 5C7A |
AUD4 | 5C8? | AUD5 | 5C8B | AUOITl | 5C8C | OUTXR | 5C9B |
70 9 808/102 5
JL35 _
Page 112 CJ8P6 06/04/75 36:54.05
00215 00218 00219 00220 00221 00222 00223
00224 00225 00226 00227 00228 00229 00230 00231 00232
00233 00234 00235 00236 00237 00238 00239 00240 00241
00242 00P43 00244 00245 00246 00247 00248 00249 00250
00251 00252 00253 00254
SCAB
LNGTH | OPT | LISTfMEM | |
0 02D· | DECPT | EQU | T2 |
002C | XPNT | EQU | T3 |
002B | CARRY | EQU | T4 |
002A | NUMOVF | EQU | T5 |
0029 | FLTFLG | EQU | T6 |
0028 | EXP | EQU | T7 |
00<?8 | EXP2 | EQU | W |
008A | EQU- | W+2 | |
ORG | FRMT | ||
5CA8 5CAA 5CAR 5CA0 5CAE 5CR0
5C82 5CR4 5C85 5C36 5CB7 5C38
5C83
?A 40
C6 FF 5C
30 OA 2C FB 88 OA 58
se
58 58 IB
97 39
OAVE UHLRICH OCTOBER 15»1974 FORMATTER REV N
* THIS POUTINE CONVERTS THE EXPONENT. STORED
* IN TWO'S COMPLEMENT FORM. TO ITS BCD
* EQUIVALENT. THE VwO1S COMPLEMENT OF THE
* EXPONENT MUST BE IN ACCA BEFORE
* ENTERING THIS ROUTINE. THE ANSWER WILL
* SE STORED IN XPNT WHEN THE CONVERSION
* IS COMPLETED,-
EXPNT 3PL EXPPL
NEG A
EXPPL LDA B «SFF XPINC INC B
SUB'A *
SGE XPINC
AOD A «10
ASL B
ASL B
ASL B
ASL B
ABA
STA A XPNT
RTS IS SIGN OF EXPMT POSITIVE?
NO. MAKE IT POSITIVE YES. LOAO CTR«S START VALUE
INCR TEN'S COLUMN SUBTRACT 10 FROM ARS(EXPNT) IF>=0. EXPNT INCOMPLETE
IF<0t ADO 10 TO ONE'S COLUMN CTR VALUE IN ACCB EQUALS TEN'S COLUMN OF EXPNT. SO SHIFT
IT LEFT 4 PLACES
OBTAIN WHOLE EXPNT STORE EXPNT IN XPNT
709808/1025
Page 113 CJBPG 06/04/75 36:54.05
00256 00257 00258 00259 00260 00261 00262
00263 00264 00265 00266 00267 00268 00269 00270 00271 00272 00273 00274
00275 00276 00277 00278 00279 0028η 00291 00?32
00233 00284 0028S "00286 00287
00288 00289 00290 00291 00292 002^3
00294 00295 00?96 00297 00298 00299 00300 00301 00302 003Π3
00304 00305 00306 00307 0030*1 00309 00310
5CBC 5CB0 5CBF 5CCl 5CC3 5CCS 5CC7 5.CC9 5CCB 5CC0
5CCF SCDl 5CD3 5C05 5CD7 5CD1J
5C09 5C00 5CDF 5CEl 5CE3 5CES 5CE7
5CE9 5CEA 5CEC 5CE0 5CEE 5CF0 5CFl 5CF3
97 2C 97 2D 97 97
96
80 OF Dft 96 OF
81 27 7D 84 DF
26 96 84 IC Rl
20 ?.E
96 OE fl 2F 86
97 OE 17
2A Ol 40 5F
CB 11
27 2E F9
* THIS ROUTINE FORMATS THE DATA "STORED IN
* THE X REGISTER. THE FORMAT MODE INFORMA-
* TION IS FOUND IN TGL AND THE DIGIT ENTRY
* FLAG IS LOCATED IN DIGFLG. THE
* FOLLOWING ARE THE 3 FORMAT MOOES:
* 1) FXD N Ρ8ΗΗ-123.456ΒΒ8Θ
» 2) FLT N PßBOS^:t-1.234880^
* 3) PVR3 N P3HB-123.456BB00
* THE FORMAT MODE USEO IN DIGIT EMTRY WILL QF.
* FIXED FORMAT. FIXED FORMAT WILL OVERFLOW
* INTO FLOATING POINT WHEN IT BECOMES
» TOO 8IG TO FIT IN THE DISPLAY. IN THE
* PWR3 MODE. THE ANSWER IS DISPLAYED WITH AN
* EXPONENT WHICH IS THE POWER OF 3 JUST
* BELOW THE ACTUAL EXPONENT. THIS MODE WILL
* ALSO OVERFLOW INTO ORDINARY FLOATING POINT ■
* WHEN THE MANTISSA IS TOO LARGE FOR THE
* DISPLAY. THE LARGEST ALLOWABLE ROUND IN
* PWP3 MODE WILL BE 7; ANY LARGER ROUND
* FACTOR WILL DEFAULT TO 7.
FRMTl
RND7
EXPL PWR3
CLR A STA A STA A STA A STA A LDA A 8SR
LOA R LDA A CMP A BEO AND A BME
LDA A AND A CMP A BLT " BGT LDA A CMP A BLE LDA A STA A TBA 8PL NEG A
CLR B ADD CBA BEQ BGT
DECPT SET DEC PT PTSZ=O
LNGTH StT LNGTH PTR=O
MUMOVF CLEAR NUMERIC OVERFLOW FLAG
FLTFLG CLEAR FLT PT OVERFLOW FLAG
XR LOAD EXPNT - :
EXPNT CONVERT IT TO BCO
XP LOAO EXPNT INTO ACC3
DIGFLG · LOAO DIGIT ENTRY FLAG
«$20 LEADING ZEROES?
NTROS ■ YES
#?OF DIGIT ENTRY?
DlGNTR YES
TGL NO, LOAO TOGGLE SWITCHES
«®34 MASK FORMAT MODE BITS .
#7 · R0UN0=7?
*7 SET RND TO 7
PUT BINAPYEXPNT INTO fCCA
EXPL POSITIVE?
CLEAR P'4R3 CTR »3 BUILD pWR3 EXPNT RY 31S
COMPApF REAL AND P*R3 EX°NTS
FLT ALREAOY PWR3. USE FLT PT
PWP3 REAL>PWR1. CONT BUILOtNG
709808/1025
OHiSlNAL ΪΜ2ΡΕΟΪΗ)
Page 114 CJBPG 06/04/75 36:5*.05
00311 | 5CF5 | 70 | 0090 | * | TST | B | XR |
00312 | 5CF8 | 28 | 02 | BMI | NEGl | ||
00313 | SCFA | CO | 03 | MEGl | SU8 | «3 | |
00314 | 5CFC | 10 | SBA | A | |||
00315 | 5CFO | 2A | Ol | BPL | A | NEG2 | |
00316 | 5CFF | 40 | NEG2 | NE6 | |||
00317 | 5000 | 97 | 2C | STA | DECPT | ||
00318 | 50 02 | 17 | T8A | A | |||
00319 | 5D03 | 8D | A3 | FLT | BSR | A | EXPNT |
00320 | 5D05 | 96 | OE | LDA | A | RND | |
00321 | 5O07 | 98 | 2.C | FLOAT | AOD | DECPT | |
00 322 | 5D09 | 4C | FLTl | INC | |||
00323 | 5D0A | 7C | 0028 | INC | R | FLTFLG | |
00 324 | 5000 | 20 | 71 | FLT2 | BRA | B | LDMNT |
00325 | 500F | 06 | OF | LDA | DIGFLG | ||
00326 | 5011 | C5 | DF | BIT | A | #$0F | |
0 0-327 | 5013 | 27 | F4 | BEQ | B | FLOAT | |
00.323 | 5D15 | 86 | OA | LDA | B | #*10 | |
003P9 | 5D17 | C4 | OF | AND | tfSF | ||
00330 | 5019 | Cl | OA | CMP | #10 | ||
00331 | 5D19 | 27 | 03 | BEO | CHKOVF | ||
00332 | 5010 | 17 | TBA | B | |||
0 0333 | 5DlE. | 20 | EA | CHKOVF | BRA | B | FLTl |
00334 | 5D20 | 06 | 90 | LDA | XR | ||
00335 | 5022 | OO | 88 | SUB | 8 | EXP | |
00336 | 5024 | 2.0 | E4 | BLT | FLTl | ||
00337 | 5D26 | Cl | OA | CMP | rtlO | ||
00338 | 5028 | 2C | EO | BGE | FLTl | ||
0 0339 | 5D2A | 20 | IA | FXO | 8RA | A" | FIXED |
00340 | 5D?C | 17 | T8A | A | |||
00341 | 5020 | 9R | OE | ADO | A | RNO ' | |
.00342 | 50 2F | 4C | INC | ||||
00343 | 5D30 | 81 | OA | CMP | eio | ||
00344 | 5032 | 2E | Dl | BGT | B | FLT | |
00345 | 5034 | 20 | 10 | DIGNTR | BRA | A | FIXED |
00346 | 5036 | DO | 38 | SU8 | EXP | ||
00347 | 5038 | 81 | 80 | CMP | A | asao | |
0034a | 503A | 27 | 12 | BEQ | A | NTROS | |
00349 | 5D3C | 84 | OF | AND | A | it SF | |
00350 | 5D3E | 90 | 8A . | ?U8 | EXP2 | ||
00351 | 5040 | «I | OA | CMP | A | SlO | |
0035? | 5042 | 2C | CB | BGE | R | FLT2 | |
00353 | 5044 | 98 | 8A | FIXED | ADO | EXP2 | |
00354 | 5046 | 07 | 2C | STA | B | DECPT | |
00355 | 5048 | 2C | 36 | BGE | LDMNT | ||
00356 | 5D4A | D7 | 20 | STA | A | LNGTH | |
00357 | 504C | 20 | 32 | NTfiOS | BRA | LDMNT | |
0035« | 5D4E | 96 | 8A | LOA | A | EXP2 | |
00359 | 5050 | PO | 5CA3 | JSR | A | EXPNT | |
00360 | 5053 | 96 | 8A | LOA | A | EXP2 | |
00361 | 5055 | 40 | NEG | A | |||
00362 | 5056 | 4C | INC | ||||
00363 | 5057 | 81 | OA | CMP | A | #10 | |
00364 | 5059 | 2F | 25 | BLE | LDMNT | ||
00365 | 505*3 | 86 | OA | LOA | #10 | ||
TEST SIGN OF EXPNT MIMI)Sf PWO3 EXPNT ^UILT
PLUSt SUB TO GET PWR3 EXPNT FIND OIFF PEAL 5. PWR3
POSITIVE?
NO, MAKE IT POSITIVE STORE OIFF IM DEC PT PTR
TRANSFER PWR3 EXPMT TO ACCA CONVERT IT TO BCD RELOAD ROUND OFF FACTOR
ADO OEC PT PTR TO RNO RN.D+DECPT + 1=POS CTR
SET FLOATING POINT OVERFLOW FLAG LOAO THE MANTISSA
NOT DIGIT ENTPY, FLT PT DIGIT ENTRY, CHECK OVERFLOW MASK OFF DIGIT CTR
MORE 10 DIGITS HIT? YES. CHECK OVERFLOW NO, POS CTR=OIGIT CTR
LOAD EXPNT
SURTRACT EEX EXPNT EXPNT<0. FLT PT OVPFL
MANT. EXPMT>=10? ■
YES. FLT PT OVERFLOW NO. FIXEO PT SHIFT EXPNT TO ACCA
"RNO+EXPNT —:
RND+EX°NT+1=POS CTR
FIXED OQINT OVERFLOW?
YES, FLT PT
NO, FXO PT
XR-EXP=MNT EXPNT DEC PT S, O'S ONLY?
YES. ENTER ZEROES GET DIGIT CTR ADO NO. LEADING O1S TO DIG CTR
MO, «ORE THAN 10 DIGITS HIT?
YES, CHECK OVERFLOW NO. GET OIGIT CTR AGAIN
STOßE OEC PT PTR
EXPMT<0? NO. LOAD MAnT
YES, SET LNGTH PTR=EXPNT LOAD THE MANTISSA LOAO MO. O'S AFTER DEC PT
SET UP EXPNT DUE TO THEM GET NUMRFR
OF ZEROES TO DISPLAY
10 OF THEM?
NO. LOAD M4NT WITH ZEROES
YES. FILL DISPLAY rfITH ZEROES
709808/1025 ORIGINAL INSPECTED
Page 115 CJRPG 06/04/75 36:54.05
00366 00367 00368 00369 00370 00371 00372 00373 00374 00375 00376 00377
00378 00379 00380 00381 00382 00383 00384 003Λ5 00386 00387 00388
00339 00390 00391 00392 00393 00394 00395 00396 00397 0039B
00399 00^00
00401 00402 00403 00404 004(15 00406 00407 00408 00409 00Mn
00411 00412 00413 00414 00415 00416 00417 00418 00419
00420
5O5D 505F 5061 5063 5065 5067 5069 506A 5D6R
506C 506D 50SE 5070 5072
5074 5075 5078 507A 507C 507D 507F 5080
5082 5085 5086 5087
5088 5D8C 5D°E 5090 5091
5093 5095 5097 5099 509C 509D 5D9F 5OA0
5DAl 50A3 50A5 50A7 50A8 50A9 50ΔΒ 50AD
50AF
5DB3 50R5 5017 5DR9
5088
20 AB DF OE A6 CS 26 44 44-44
44 09
84 OF OF DE 16· 39
CE 0010 C6 El 09
26 FB 39
80 F3 CE 0064 16
44
8B 97
97 97 2A 50
2B 3D CA
81 ^D 7C 002A 5D
2F 3C 09 5A
«0 BC Ol 2C 26 OF 36
96 OF 2B 96
26 96 OF
85 OF
27 96 27 20
LDDGT
STROGT
BLANKl MORE
LOMNT
CARRYl
XP99 LOAOO
BRA
STX
LDX
LOA A
BIT B
BNE
LSR A
LSR A
LSR A
LSR A
OEX
ANO A
STX
LDX
RTS
LDX
LDA B
STA B
OEX
BNE
RTS
BSR
LOX.
TAB
LSR A
ADD A
STA A
CLR A
STA A
STA A
TST
BMI
BSR
CMP A
BLT
INC
TST B
BLE
DEX
DEC B
BSR
CMP R
BNE
SEI
PSH A
LDA A
BMI
LDA A
BNE
LOA A
BIT A
BEQ
LOA A
BEO
BRA
FLTl
TP2
TP3
«1
STRDGT
TP3
TP2
#$10 £K40 S57,X·
MORE • BLANKl
«P222 TP3S
TP3 CARRY
ENDMNT LDDGT
«5
CARRYl CARRY
ENDMNT
LDDGT DECPT NODPT
DIGFLG
DCPT
NUMOVF
DCPT
DIGFLG
PSDF
CHKRNO
FLTFLG
NOOPTl
DCPT yes* flt point ovrfl " store buff ptr load x-reg ptr
loaq digit into· acca pos ctr even?
no. digit in lower half yes. digit in upper half byte; shift IT DOWN
OECR X-REG PTR ' MASX LOWER HALF BYTE
CHANGE INDEX PEG FPOM X-REG PTR TO BUFF PTR
DIGIT LOADED; RETURN SET SUFFER PTR
LOAO BLANK CODE STOPE BLANK IN BUFF DECR RlJFFER PTR
LOAD ANOTHER BLANK RETURN
LOAO BLANKS INTO DISPLAY BUFFER SET BUFF PTR AT END OF MANT AREA
POS PTR IN ACCB ALSO GET »OS CTR/2 3UFP PTR=222+P0S CTR/2 2ND BYTE IMDEX REG
1ST BYTE INDEX REG CLEAR CARRY
LOAD ROUNDING DIGIT COMPARE IT TO
IS IT <5?
NOtSET CAPRY TEST POS CTR AGAIN IS IT NEGATIVE?
NO. OECR RUFF PTR OECR POS CTR LOAD DIGIT CTR=DEC PT PTR?
NO. NO OEC PT
YES» DISABLE KEY INTERRUPT SAVE DIGIT OM STACK
OEC PT HIT?
NUMERIX OVERFLOW?
IF OVRFL. PUT IN OEC PT
DIGIT ENTRY? NO. CHECK ROUND MODE
YES. FLT PT OVEPFLOW NO. DEC PT SUPPPESSED
YES. DEC PT
709808/1025
Page 116 CJBPG 06/04/75 36:54.05
00421 | 5OBD | 96 | OE | CHKRNO | . | LDA | A | RNO |
00423 | 50BF | 27 | 05 | BEQ | NODPTl | |||
00423 | 50Cl | 86 | 2E | DCPT | LOA | A | «056 | |
00424 | •5DC3 | A7 | 00 ; | STA | A | . X | ||
00425 | 5DC5 | 09 | • | DEX | ||||
00426 | 5OC6 | 32 | NODPTl | PUL | A | |||
00427 | 5DC7 | OE | CLI | |||||
00428 | 5DC8 | 93 | 2A | NODPT | ADD | A | CARRY | |
00429 | 5DCA | 7F | 002A | CLR | CAPRY | |||
00430 | 50CD | 81 | .0A | CMP | A | «10 | ||
00431 | 50CF | 2D | 04 | BLT | CARRY2 | |||
00432 | 50Dl | 7C | 002A | INC | CAPRY | |||
00433 | 5D04 | 4F | CLR | A | ||||
00434 | 5DD5 | βΑ | 30 | CAP.3Y2 | ORA | A | «060 | |
0.0435 | 5DD7 | A7 | 00 | STA | A | X | ||
00436 | 5DD9 | 20 | Cl | BRA | CARRYl | |||
00437 | 5003 | Ol | 20 | ENDMMT | CMP | B | LNGTH | |
00438 | 5000 | 2F | 05 | BLE | CHKCR | |||
00439 | 500F | 4F | LOAOl | CLR | A | |||
00441) | 5DE0 | 5A | DEC | B | ||||
00441 | 50E1 | 09 | OEX | |||||
00442 | 50E2 | 20 | BF | BRA | LOADO | |||
00443 | 5DE4 | 96 | 2A | CHKCR | LDA | A | CARRY | |
00444 | 50E6 | 85 | 01 | BIT | A | Pl. | ||
004Λ5 | 50E8 | 27 | 56 | BEO | SGNMT | |||
004*6 | SDEA | 7F | 002A | CLR | CARRY | |||
00447 | 5DE0 | 96 | 28 | UDA | A | XPNT | ||
00443 | 5DEF | 81 | 99 | CMP | A | #$99 | ||
00449 | 50Fl | 26 | OO | BNE | N0T99 | |||
00450 | 50 F 3 | 86 | 96 | LDA | A | «&226 | ||
00451 | 5DF5 | 97 | 19 | STA | A | TP3S | ||
00452 | 50F7 | C6 | 09 | LDA | B | *(9 | ||
00453 | 50F9 | 07 | 29 | STA | B | NUMOVF | ||
00454 | 5DF3 | CE | 0063 | LDX | #19143 | |||
00455 | 5DFE | 20 | Al | BRA | XP99 | |||
00456 | 5E00 | 96 | 91 | N0T99 | LDA | A | XR + 1 | |
00457 | 5E02 | 85 | 01 | 8IT | A | «1 | ||
00458 | 5E04 | 26 | 30 | BNE | FLTOVF | |||
00459 | 5E06 | 96 | 07 | LDA | A | TGL | ||
00460 | 5E0S | 85 | 08 | BIT | A | »a 10 | ||
00461 | 5E0A | 26 | 22 | BNE | POWER3 | |||
00462 | 5E0C | 96 | 28 | LDA | A | FLJFLG | ||
00463 | 5E0E | 26 | 26 | BNE | FLTOVF | |||
004*4 | 5E10 | P6 | 01 | RGBUF | LDA | A | «1 | |
00465 | 5E12 | 09 | DEX | |||||
00466 | 5El 3 | SC | 0058 | CPX | #«130 | |||
00467 | 5E16 | 26 | BD | BNE | CARRY2 | |||
00468 | 5El 8 | 9A | 90 | OVRFL | LDA | A | XR | |
00469 | 5ElA | BO | 5CA8 | JSR | EXPNT | |||
00470 | 5ElD | 06 | 07 | -LOA | 8 | TGL | ||
00471 | 5ElF | C5 | 08 | 9IT | P | «βίο | ||
00472 | 5E21 | 27 | 08 | 9EQ | FLT3 | |||
00473 | 5E23 | 7C | 0091 | INC | ΧΟ + 1 | |||
00474 | 5E26 | 4F | CLR | A | ||||
00475 | 5E27 | 97 | 28 | STA | A | FLTFLG |
RND=O, NO DEC PT LOAD DEC PT CODE STORE IT IN BUFF DECR RUFF PTR
RELOAD DIGIT INTO ACCA ENARLE KEY INTERRUPT , "
ADD CAPRY TO DIGIT CLEAR THE CARRY OIGIT+CAPRY.<10?
YES» NO CARRY NOt SET CARRY % ' PUT RCD O INTO ACCA
CONVERT BCD TO ASCII STORE DIGIT IN BUFF
FINISHED MANTISSA?
YES» STILL A CARRY?
LOAD ACCA WITH BCD 0 DECR POS CTR DECR QUFF PTR
LOAD ZERO INTO BUFF LOAD CARRY IS THERE A CARRY?
NO. LOAD SIGN OF MANT CLEAP THE CARRY '
LOAD BCO EXPNT IS IT = 99? ■
YES, SET XR PTR=!3226
STORF IT - _ ■
SET POS PTR=9 SET NUMERIC OVERFLOW 8IT RESET RUFF PTR
RELOAD MANTISSA WITHOUT ROUNDING PWR3 OVRFL FLAG SET?
YES. FLT PT OVERFLOW LOAD TOGRLE SWITCH REG
PWR3?
YES» CHECK DWR3 OVERFLOW
FLT PT OVERFLOW?
YES» FLT PT OVERFLOW LOAO 1 DUE TO CARRY
OECR 3UFF PTR REACHED REG. MANT AREA IN BUFF?
NO. LOAD CARRY INTO BUFF LOAD EXPNT
C0NVE9T πΛθ BCD
PWR3 MODE?
NO, FIXED POINT OVERFLOW
YES« SET PWR3 OVRFL FLAG
CLEAR FLT PT OVERFLOW FLAG
709808/10 25
Page 117 CJ=?pc,
- 140 06/04/75 36:54.05
00476 | 5E29 | 97 | 2C | FLT3 | STA | A | DECPT | SET DECPT=O | FLT PT OR EEX? | . | CHGSGN FLAG SET? |
00477 | 5E2R | 7E | 5005 | POWER3 | JMP | FLT | NEITHER» NO EXPMT | YES. SIGN EXPMT MEG | |||
00478 | 5E2E | 96 | 2C · | • | LDA | A | DECPT | LOAD POWEP3 «ANT EXPNT | FLT PT? | LOAD NON-ZEPO EEX EXPNT | |
00479 | 5E30 | 81 | 02 | CMP | A | «2 | MANTISSA OVERFLOW? | YES. EXPMT IN XR | CHECK ITS SIGN | ||
00480 | 5E32 | ?6 | OC | BNE | RGBUF | NOME. LOAD CARRY | NO? SET EEX EXS=NT UP | RELOAD DIGIT ENTRY FLAG | |||
00481 | 5E34 | ?0 | E2 | FLTOVF | BRA | OVRFL | YES. REDO IN FLT PT | CLEAR LEADING ZEPQES 9tT | |||
00482 | 5E36 | 86 | 31 | LDA | Δ | #061 | STOPE 1 IN RUFF LOC | EEX EXPN" ZERO? | OEC PT ^ O'S ONLY? | ||
00483 | 5E38 | A7 | OO | STA | A | X | NEXT TO DEC PT | «ME. 0, CHECK SIGN | YES» NEGATIVE EXPNT | ||
00484 | 5Ε3Δ | 96 | .90 | LDA | A | XR | LOAD EXPNT . | LOAD BCD EXPNT | |||
00485 | 5E3C | 4C | INC | A | INCPEMENT IT RY 1 | IF ZEPO» SIGN EXP1JT =>LUS | |||||
00486 | 5E3D | 90 | 5CA8 | SGNMT | JSR | EXPNT | CONVERT IT TO BCD | L04Q ΕχβΊΤ FPOM XR | |||
00487 | 5E40 | 56 | 91 · | LDA | A | XR +1 | LOAD MANT SIGN | SIGN EXPNT PLUS? | |||
00488 | 5E42 | S4 | 80 | AND | A | SS80 | CLF.AR PWR3 OVFRL FLAG | NO, LOAD MINUS SIGN CODE | |||
00489 | 5E44 | 97 | 91 | STA | A | XR+1 ■ | RESTORE ΜΔΝΤ SIGN | STORE EXPNT SIGN | |||
00490 | 5E46 | 2A | 05 | BPL | SGNPOS | POSITIVE? | INCR BUFF PTR | ||||
30491 | 5E48 | ce | 20 | LDA | B | 31355 | NO. LOAD MTNUS SIGN CODE | LOAD 8CO EXPNT | |||
00492 | 5E4A | 09 | DEX | DECR 81JFF PTR | PUT IT IN ACCB ALSO | ||||||
00493 | 5E48 | E7 | OO | SGSPOS | STA | B | X | STORE MINUS OR BLANK | TENts COLUMN OF | ||
00494 | 5E4D | CE | 0065 | CHKtEX | LOX | SS145 | SET 3UFF PTR AT BEG EXPNT AREA | EXPNT IN UPPER | |||
00495 | 5c SO | 96 | OF | LD^ | A | OIGFLG | • | HALF BYTE; SHIFT | |||
00496 | 5E52 | 84 | 40 | ANO | A | SS40 | IT DOWN | ||||
Q049" | 5E54 | 9A | 28 | ORA | a | FLTFLG | CONVERT PCO TO ASCII | ||||
00498 | 5E56 | 27 | 20 | SEQ | NOEXP | STORE TEN'S COLUMN | |||||
0&499 | 5E58 | «5 | Ol | BIT | A | #1 | INCR BUFF PTO | ||||
O05ftO | 5E5A | 26 | 12 | 3NE | SGNXP | GET ONE'S COLUMN | |||||
30501 | 5E5C | 96 | 88 | LOA | A | EXP | |||||
0050? | 5E5E | 30 | 5CA8 | JSR | EKPNT | ||||||
50503 | SE61 | 40 | 1ST | Ä | |||||||
00504 | 5E62 | 26 | 06 | 3NE | EXPNO | ||||||
00505 | 5E64 | 96 | OF | LDA | A | DIGFLQ | |||||
00506 | 5E66 | 85 | 10 | BIT | 'A | «sio | |||||
00507 | 5E6« | 26 | 14 | EX?NO | BNE | NEGSGN | |||||
0050S | 5E6A | 96 | S8 | LDA | A | EXP | |||||
00509 | 5E6C | 20 | OE | SGNXR | BRA | CHKSGN | |||||
00510 | 5E6E | 96 | OF | LDA | A | DIGFLG | |||||
00511 | 5E70 | 34 | OF | AND | A | **0F | |||||
0051? | 5E72 | «1 | 80 | CMP | A | «?80 | |||||
00513 | 5E74 | 27 | 08 | 8EQ | MEGSGN | ||||||
00514 | 5E76 | 96 | 2B | LOA | A | XPNT | |||||
00515 | 5E78 | ?7 | 08 | 8EQ | SGNXP | ||||||
00516 | 5E7A | 96 | 90 | CH<SGN | LDA | A | XP | ||||
00517 | 5E7C | 2i | 04 | NEGSGN | BPL | SGNXP | |||||
0051a | 5E7E | CS | 20 | LDA | a | SP3S5 | |||||
00519 | 5ERO | E7 | OO | SGNXP | STA | B | |||||
00520 | 5E82 | 08 | INX | ||||||||
00521 | 5Ξ83 | 96 | 2B | LDA | A | XPNT | |||||
00522 | 5E«55 | 16 | TAB | ||||||||
00523 | 5E86 | 40 | LSR | A | |||||||
00524 | 5E87 | 44 | LSR | A | |||||||
00525 | 5E88 | 44 | LSR | A | |||||||
00526 | 5E89 | 44 | LSR | A | |||||||
00527 | 5Ε3Δ | 8A | 30 | ORA | A | »««60 | |||||
00.528 | 5 ES C | A7 | OO | STA | A | X | |||||
00529 | 5E«?E | 08 | INX | ||||||||
00530 | 5ESF | C4 | OF | ANO | 8 | *5F | |||||
709808/1025
Page 118 GJPPG 06/04/75 36:54.05
00531 | 5E91 | CA | 30 | NOEXP | ORA | B | !ȣ60 |
00532 | 5E93 | E7 | 00 | STA | P | X | |
005^3 | 5E95 | 86 | 20 | LOA | A | 0S2O | |
00S34 | 5E97 | C6 | 2E | BEGNO | LDA | B | #S2E |
00535 | 5E99 | CE | 0057 | LDX | #BUFF-1 | ||
00536 | 5E9C | 08 | INX | ||||
00537 | 5E90 | Al | 00 | OPBLK | CMP | A | X |
00538 | 5E9F | 27 | F8 | BEQ | BEGNO | ||
00539 | 5EAl | 08 | INX | ||||
00540 | 5EA2 | Al· | 00 | CMP | A | X | |
00541 | 5EA4 | 27 | 04 | BEQ | LOCOM | ||
00542 | 5EA6 | El | 00 | LDCOM | CMP | 8 | X |
00543 | SE A 8 | 26 | Fl | COMMA | BNE | DPBLK | |
00544 | 5EAA | 09 | OEX | ||||
00545 | 5EA9 | 09 | DEX | ||||
00546 | 5EAC | 09 | DEX | ||||
00547 | 5EA0 | 09 | DEX | ||||
00548 | 5EAE | A6 | 00 | LDA | A | X | |
00549 | 5ES0 | 81 | 2F | CMP | A | #S2F | |
00550 | 5EB2 | 23 | 06 | BLS | COMEND | ||
00551 | 5EB4 | 8A | 80 | ORA | A | #$80 | |
00552 | 5E86 | A7 | 00 | COMENO | STA | A | X |
00553 | 5E83 | 20 | Fl- | BRA | COMMA | ||
00554 | 5E3A | 39 | RTS | ||||
CONVERT BCD TO ASCII STORE ONE'S COLUMN OF EXPNT
PUT BLANK CODE IN aCCA PUT DEC PT CODE IN ACC8
SET INDEX TO BEG OF 3UFF-I
CHARACTER A BLANK? YES» NOT BEG OF NO. YET
BLANK?
YESt START TO LOAD COMMAS DEC PT?
NO, CONTINUE LOOKING
FIND COMMA POSITION LOAD CHARACTER REACHED ENO OF NUMBER?
YES, DONE
NO. PUT IN COMMA RESTORE CHAR WITH COMMA
NO. PUT IN COMMA RESTORE CHAR WITH COMMA
709808/1025
ORIGINAL IMSPECTED
Page Π9 CJBPG 06/04/75 36.:54.05
00557 | 7338 | - | 55E9 | • | ROUTINE CONVERTS THE RECTANGULAR | IN THE | X AND Y REGISTERS ' | » | AND THE | AND THE Y-COORDINATEt | A | • | A | S55AC | SAVE X IN LAST X |
00558 | 7338 | 92 | * COORDINATES | FORM. THE X-COORDINATE MUST BE | THE ANSWER IS | A | S57E3 | ||||||||
00559 | 7338 | 9A | • THIS | * TO POLAP | REGISTER | MAGNITUOE IN THE | $7338 | BOTH X AND Y=O? | |||||||
00560 | 733D | 4B | * IN THE X | REGISTER. | ANGLEt IN THE Y | TXL | YESt YOU ARE DONE | ||||||||
00561 | 733F | 0098 | » IN THE Y | WITH THE | A | XP+2 | POINT TO ?NO DIVIDE ARG | ||||||||
00562 | 7341 | 7793 | • RETURNED | * X REGISTER | A | YR+2 | OIVIDE Y BY X | ||||||||
00563 | 7344 | 69C3 | ♦ REGISTER, | A | YONLY | FIND ATAN Y/X | |||||||||
00564 | 7347 | Bl | ft | UHLRICH 1/3/75 R TO P REV C | A | *YR | IS X NEGATIVE? | ||||||||
00565 | 734A | 29 | * | A | FPO | NO« ANGLE IS CORRECT | |||||||||
00566 | 734C | 55AC | * DAVE | A | ATN | PUT ANGLE INTO Y | |||||||||
00567 | 734E | 74OA | EOU | B | LSTX+1 | ZERO OUT X | |||||||||
00568 | 7351 | 02 | EOU | B | STOANS | ||||||||||
00569 | 7354 | 90 | XEY | ORG | XEY | SET XR EXPNT=2 ~" | |||||||||
00570 | 7356 | 99 | -LDPI | JSR | B | XRO | • SIGN OF ANGLE NEGATIVE? | ||||||||
00571 | 7-358 | 80 | LDA | «2 | YES« CHANGE SIGN | ||||||||||
00572 | 735A | 91 | TOPOL | ORA | A | XR | PUT SIGN ON 180 DEG OFFSE | ||||||||
00573 | 735C | 20 | 8EQ | A | YR+1 | LOAD 200 GPADS | |||||||||
00574 | 735E | ~07 | LDX | £S80 | |||||||||||
00575 | 7360 | JSR | XR+1 | ||||||||||||
00576 | 7362 | 05 | JSR | «S20 | GRAOS? | ||||||||||
00577 | 7363 | LDA | TGL | ||||||||||||
00578 | 7365 | 06 | NTDIVO | 8PL | A | RADS? | |||||||||
00579 | 7366 | 18 | JSR | GRAD | • LOAD ISO DEGREES | ||||||||||
00580 | 7368 | 92 | JSR | STORE IN X | |||||||||||
00581 | 736A | 03 | LDA | RAD | |||||||||||
00582 | 736C | 57E3 | STA | HSlQ | LOAO PI INTO X | ||||||||||
00583 | 736E | 0098 | LOA | XP + 2 | |||||||||||
00584 | 7371 | 75FC | EOR | ADDOFF | AOD OFFSET TO ANGLE | ||||||||||
00585 | 7374 | 06 | STA | LDPI | |||||||||||
00586 | 7377 | 11 | LDA | A | #YR | ANGLE=90 DEGREES? | |||||||||
00587 | 7379 | 55AC | 0098 | LDA | FPA | ||||||||||
00588 | 7378 | 57E3 | 38 | ASR | E3ROR · | NO« PUT ANGLE INTO Y ALSO | |||||||||
00539 | 737E | 689A | 8CS | YONLY | |||||||||||
00590 | 7380 | 80 | 73E6 | ASR | #YR | 1/COS ANGLE | |||||||||
00591 | 7383 | 96 | 0080 | 8CS | TXRXl | ||||||||||
00592 | 7386 | 9A | 7735 | LOA | COS | X/COS ANGLE | |||||||||
00593 | 7389 | 27 | STA | RECIP | |||||||||||
00594 | 738C | CE | BRA | SLSTX | |||||||||||
0 059.5 | BD | GRAO | JSR | FPM | |||||||||||
00596 | 3D | LDX | |||||||||||||
00597 | 96 | RAD | JSP | ||||||||||||
00598 | ?A | ADDOFF | LDA | ||||||||||||
00599 | RD | 8NE | |||||||||||||
00600 | 90 | STOANS | LDX | ||||||||||||
00601 | 86 | BSR | |||||||||||||
00602 | 97 | JSR | |||||||||||||
00ft03 | 96 | JSR | |||||||||||||
00604 | «8 | LDX | |||||||||||||
00605 | 97 | JMP | |||||||||||||
00606 | 86 | CLR | |||||||||||||
00607 | 06 | ||||||||||||||
00608 | 57 | YONLY | |||||||||||||
00609 | 25 | ||||||||||||||
00610 | 57 | ||||||||||||||
00611 | 25 | ||||||||||||||
«6 | |||||||||||||||
97 | |||||||||||||||
20 | |||||||||||||||
9D | |||||||||||||||
CE | |||||||||||||||
80 | |||||||||||||||
9Λ | |||||||||||||||
26 | |||||||||||||||
CE | |||||||||||||||
80 | |||||||||||||||
PO | |||||||||||||||
BO | |||||||||||||||
CE | |||||||||||||||
7E | |||||||||||||||
4F | |||||||||||||||
.709808/ 1 025
l&SFESTED
Page 120 CJRPG 06/04/75 36554.05
00612 | 738D | 97 | 06 | * | 55E9 | STA A | * | ERROR | MAKE MAGNITUOE POSITIVE | • | TXL | SAVE X IN LAST X |
00613 | 738F | 97 | 99 | 25 | STA A | * THIS ROUTINE | YR+1 | YTOX | TRANSFER ANGLE TO t | |||
00614 | 7391 | 7E | 55AC | 689A | JMP . | ο OPERATION TO | XEY | 6/10/74 P TO R PEV 8 | COS | TAKE COS OF ANGLE | ||
00615 | O08O | SLSTX | POINT TO 2NO MULT AOG | |||||||||
00616 | 7735 | PEPFOPMS THE COMPLEMENT | FPM | •MAGNITUDE*SIN OF ANGLE' | ||||||||
00617 | 0078 | THE RECTANGULAR-TO- | »ATI | • POINT TO ATl | ||||||||
00618 | 14 | » POLAR ROUTINE» 0ESCRI8E0 ABOVE. | TXRXl | SAVE X COOPDTNATE IN ATI | ||||||||
00619 | 15 | β | YTOX | TRANSFER ANGLE TO X AGAIN | ||||||||
Θ0620 | 6394 | a | SIN ■ | TAKE SIN OP ANGLE | ||||||||
00621 | 0OBQ | ο DAVE UHLRICH | ^LSTX | POINT TO 2NO-MULT ARR | ||||||||
00622 | 7735 | » | FPM | ^AGMITUDE*COS OF AMGLE | ||||||||
00623 | 55AC | XEY | PUT Y COOPOINATE INTO Y | |||||||||
006.24 | 0078 | TORCT JSR | 3ATl | POINT TO ATl | ||||||||
00625 | 7394 | HO | 7433 | BSR | TXXR | |||||||
00626 | 7397 | «0 | 73F3 | JSR | TXRX | |||||||
00627 | 7399 | BO | 0098 | LDX | ÖYR | |||||||
G0ft28 | 739C | CE | F5 | JSR | TXXRl | . _. - - - - - - - | ||||||
30629 | 739F | BO | LDX | S7C52 | ||||||||
00630 | 73 A 2 | CP | 7338 | BSR | TOPOL | |||||||
00631 | 73A5 | 30 | 7394 - | SSR | TORCT | |||||||
00632 | 73A7 | RD | JSR * | |||||||||
Ö0633 | 73 A 9 | go | LDX | |||||||||
00634 | 73AC | CE | JSR | |||||||||
00615 | 73AF | BO | JSR | |||||||||
00636 | 7332 | 30 | LDX | |||||||||
00637 | 7395 | CF. | TxxPi· JMP | |||||||||
00639 | 7333 | 7E | TXRXl JMP | |||||||||
00*39 | 7339 | 7E | YTOX LOX | |||||||||
00640 | 73BE | CE | BRA . | |||||||||
00641 | 73Cl | 20 | ORG* | |||||||||
00642 | 7C52 | FDB | ||||||||||
00643 | ?C52 | FDB | ||||||||||
00644 | 7C54 | |||||||||||
709*808/102
• ORIGINAL INSPECTgp
Page 121 cjbp-G 06/04/75 36:54.05
ENO
SYMBOL TABLE
AOATA | 0000 | ACTL | 0001 | BOATA | 0002 | BCTL | 0003 | INPUT | 0O04 | ΙΟΙΝ | 0005 |
ERPfOR | 0006 | TGL | 0007 | UFLG | 0008 | RSFLG | 0009 | EOM ■ | QOOA | EOPM | 0008 |
STKFLG | 0000 | RND | OOOE | DIGFLG | OOOF | -W2 | 0010 | Wl | 0011 . | SFLG | 0012 |
DCNTf* | 0013 | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | T»3 | 0013 |
TP3S | 0019 | TP4 | 001A | TP4S | 0016 | TP5 | OOIC | TP5S | 0010 | TP6 | QOiE |
TP6S | 001F | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0023 | TIl | 0024 |
TlO | 0025 | T9 | 0026 | Ta | 0027 | T7 | 002a | T6 | 0029 | T5 | 002A |
T4 | 002B | T3 | 002C | T2 | 002D | Tl | 002E | ISTK | 002F | !STACK | 0051 |
TA | 0052 | SPGM | 0054 | EXTPA | 0056 | 3UFF | 3053 | REAL | 0068 | IMAG | 0070 |
ATI | 007β | AT2 | 0080 | W | ooea | XR | 0090 | YR | 0098 | Ζ» | OOAO |
TR | 00A8 | LSTX | OOBO | BKWRT | 0088 | BKKC | 00=?Α | SOL? | 00C6 | UPP | 00C3 |
LiIP | OOCA | ALPHA | oocc | 101 | OGCD | Σ02 | OQOO | ΪΤ7 | 0003 | FLAG | 0005 |
TPOS | 0006 | ""ILE | 0007 | AR | .0ODS | BR | οοεο | CR | 00E3 | DP | OOFO |
.C (5 | 30F3 | SOBS | QOBA | MT | 7E30 | T£RMN7 | 0030 | IM£O | 9040 | PARCO | ooco |
.-AREX | 0OBiI | NTBL | 0000 | DOTS | 5 EC O | PRTORV | S020 | FPmT | SCA3 | BLANK | 5075 |
LOMSG | 57BO | !30LLD | 55B2 | ROLLU | 57FI | PSD | 55DA | T*l | 55E9 | STKUP | 55EF |
.MAO | T49B | CMp | 74AA | NOR | 7406 | TXW | ?42& | TXXR | 7433 | EXXR | 74=2 |
ARSR | T538 | OVUNF | 75B6 | OVERF | 75DD | «RO | 743A | XRNlNE | 75C3 | UNOPF | 75Fl |
IWUL T | 7689 | QOG | 7669 | FPß | 75FC | FPS | 75F6 | FPM | 7735 | F»0 | 7793 |
FPAEX | 763D | FPMEX | 7780 | LSHIFT | 7521 | ZEROX | 7439 | XZEROO | 7416 | XZER02 | 7417 |
«ECIP | 73E6 | TXRX | 73F3 | CONST | 6800 | FPOBRC | 6898 | TAfo | 68A9 | ATN | 69C3 |
OSZERO | 6Δ46 | NTLN | 6Δ58 | EXPN | 6AC9 | SIN | 6*394 | COS | 6594 | ASIN | 6HF2 |
ACOS | 68F7 | PHi | 6C50 | PH? | 6C80 | °H3 | 6034 | PH4 | ftono | LSFT8 | 6E47 |
SORT | 6E65 | MAD8 | 6F2C | CMD8 | 53E4 | IOUP X | 6F52 | LOGlO | 6FA7 | YUPX | 6FE9 |
RTOP | 7328 | PTOR | 7386 | LNGTH | 0020 | OECPT | 002C | XPMT | 00 2=1 | CARRY | 002A |
NUMOVF | 0029 | FLTFLG | 0028 | EXP | 0083 | E?P2 | 00«A | EXPNT | 5CA3 | EXPPL | 5CA8 |
XPINC* | 5CA0 | FRMTl | 5C8C | RMO 7 | 5CE9 | EXPL | 5CE0 | P Wi? 3 | SCEc | McGl | 5CFC |
NEG2 | 5000 | FLT | 5005 | FLOAT | 5009 | FLTl | 5D0A | FL T2 | 50Or | C^KOVF | 502 0 |
FXO | 502C | DIGNTR | 5036 | FlifED | 5046 | NTROS | 504 E | LDOGT | 505F | STPOGT | 506E |
HLANKl | 5075 | MOPE | 507A | LOmnT | 5D«0 | CARRYl | 509C | Χ»«5«ϊ | 50Al | LOAOO | 50 43 |
CHKRNO | 5DB0 | OCPT | 5DCl | NOOPTl | 50C6 | NOOPT | 50C8 | CÄWOY2 | 500S | t*!0MMT | 5008 |
LOAOl | 500F | CHKCR | 50E4 | M0T9Q | 5E00 | 3GBUF | 5ElO | OVRFL | 5Ξ13 | FLT3 | 5E2B |
P0WER3 | 5E2E | FLTOVF | 5E36 | SGMMT | 5EiO | SGNPOS | 5E4D | CHKEEX | 5E5Q | EXPMO | 5E6A |
SGNXR | 5E6E | CHKSGN | 5E7C | NEGS3N | 5E7E | SGNXP | 5E82 | NOEXP | 5E91; | REGNO | 5E9C |
OPBLK | 5EAl | LDCOM | 5EAA | COMv a | 5EA3 | CO^END | 5EÖA | XEY | 55AC | LDPI | 57E3 |
TOPOL | 7339 | NTOIVO | 7347 | GRan | 736A | RAD | 736E | AOOOFF | 7371 | STOANS | 7377 |
YONLT | 738C | TORCT | 7394 | TXXRl | 73B8 | TXRXI | 73BS | YTOX | 733E |
7 0.9 808/1025
Page 122 CJ8P6 06/04/75 36:54.05
00215 | 5EC0 | 00 |
00218 | 00 | |
00219 | 5ECO | 00 |
00220 | 5ECl | 00 |
00221 | 5EC2 | 00 |
00222 | 5EC3 | |
00223 | 5EC4 | 14 |
00224 | 16 | |
00225 | 5EC5 | 55 |
00226 | 5EC6 | 34 |
00227 | 5EC7 | 14 |
00228 | 5EC8 | |
00229 | 5EC9 | 2C |
00230 | 4A | |
00231 | 5ECA | 4A |
00232 | 5ECB | 4A |
0023.3 | 5ECC | 3C |
00234 | 5ECD | |
00235 | 5ECE | 14 |
00236 | 7F | |
00237 | 5ECF | 14 |
00238 | 5ED0 | 7F |
00239 | 5EDl | 14 |
00240 | 5E02 | |
00241 | ■5ED3- | 12 |
00242 | 2A | |
00243 | 5ED4 | 7F |
00244 | 5ED5 | 2A |
00245 | 5ED6 | 24 |
0 0246 | 5ED7· | |
00247 | 5ED8 | 62 |
00248 | 64 | |
00249 | 5ED9 | 08 |
00250 | 5EDA | 13 |
00251 | 5EDB | 23 |
00252 | 5EDC | |
00253 | 5EOD | 50 |
00254 | 20 | |
00255 | 5EDE | 56 |
00256 | '5EDF | 49 |
00257 | 5EE0 | 36 |
00258 | 5EEl | |
00259 | 5EE2 | |
00260 | ||
00261 | ||
00262 | ||
00263 | ||
00264 | ||
00265 | ||
00266 | ||
00267 | ||
00268 | ||
00269 | ||
00270 | ||
OPT | ORG | LIST1MEM | 514 | PRINTER — STORED | 25 | 15 | —.— |
» SPACE - | $16 | 35 | 24 | 14 | |||
FCB | S55 | 34 | 23 | 13 | • | ||
* DOT MATRICES | FCB | FOR | $34 | 33 | 22 | 12 | |
» 75 65 55 | FCB | 45 | $14 | 32 | 21 | U | |
e 74 64 54 | FCB | 44 | 31 | ■— " | |||
« 73 63 53 | FCB | 43 | $2C | ||||
* 72 62 52 | 42 | $4A | |||||
» 71 61 51 | 41 | S4A | |||||
4 | S4A | ||||||
DOTS | $3C | ||||||
$0 ' | $14 | ||||||
$0 | $7F | ||||||
$0 | $14 | ||||||
SO | $7F | ||||||
SO | $14 | ||||||
» EXCHANGE SIGN | |||||||
FCB | $12 | ||||||
FCB | S2A | ||||||
FCB | S7F | ||||||
FCB | $2A | ||||||
FCB | $24 | ||||||
* LOWER CASE E | |||||||
FCB | $62 | ||||||
FCB | $64 | ||||||
FCB | $8 | ||||||
FCB | $13 · | ||||||
FCB | $23 | ||||||
* POUND SIGN | |||||||
FCB | $50 | ||||||
FCB | $20 | ||||||
FCB | $56 | ||||||
FCB | S49 | ||||||
• - FC8 | $36 | ||||||
« DOLLAR SIGN | |||||||
FC8 | |||||||
FCB | |||||||
FC8 | |||||||
FCS | |||||||
FCB | |||||||
• PERCENT SIGN | |||||||
FCB | |||||||
FCB | |||||||
FC8 | |||||||
FCB | |||||||
FCB | |||||||
» AND U) SIGN | |||||||
FCB " | |||||||
FCB | |||||||
FCB | |||||||
FCB | |||||||
■ FCB |
709808/1025
Page 123 CJRPG 06/04/75 36:54.05
00272 | 5EE3 | 00 | * APOSTROPHE | $0 | $0 | » COMMA | FCB | so | SO |
00273 | 5EE4 | 00 | F CB | $0 | S41 | FCB | SlC | $0 | |
00274 | 5EE5 | 07 | FCB | $7 | $22 | FC8 | $22 | $60 | |
00275 | 5EE6 | 00 | FCB . | $0 | SlC · | FCB | S41 | $60 | |
00276 | 5EE7 | 00 | FCB | SO | so | FCB | $0 | $0 | |
00277 | FC8 | • LEFT PARENTHESIS | * RIGHT PARENTHESIS | ♦ MINUS SIGN | |||||
00278 | 5EE8 | 00 | FCB | FCB | FCB | $8 | $2 | ||
00279 | 5EE9 | 41. | FCB | FCB | FC8 | S2A | S4 | ||
00280 | 5EEA | 22 | FCB | FCB | FCB | SlC | S8 | ||
00281 | 5EE8 | IC | FCB | FCB | FCB | S2A | SlO | ||
Ö02R2 | 5EEC | 00 | FCB | FCB | FCB | $8 | $20 | ||
00283 | * ASTERISK | ||||||||
00284 | 5EEO | 00 | FCB - | $8 | |||||
00285 | 5EEE | IC | FCB | S8 | |||||
00286 | 5EEF | 22 | FCB | S3E | |||||
00287 | 5EF0 | 41 | FCB | S8 | |||||
00288 | 5EFl | 00 | FCB | . sa | |||||
00 289 | * PLUS SIGN | ||||||||
00290 | 5EF2 | 08 | FC8 | SO | |||||
00291 | 5EF3 | 2A | ■ FCB | SO | |||||
00292 | 5EF4 | IC | FCB | $38 | |||||
00293 | 5EF5 | 2A | FCB | 558 | |||||
00296- | 5EF6 | 08 | FCB . | $0 | |||||
00295 | |||||||||
00296 | 5EF7 | 08 | $8 | ||||||
00297 | 5EF3 | 08 | S8 | ||||||
00298 | 5EF9 | 3E | S8 | ||||||
00299 | SEFA | 08 | S3 | ||||||
00300 | .5EFB | 08 _. | S8 | ||||||
00301 | * OECIMAL POINT | ||||||||
00302 | 5EFC | 00 | FCB | ||||||
00303 | 5EFD | 00 | FC8 | ||||||
003Oi | 5EFE | 38 | FCB | ||||||
00305 | 5EFF. | 58 | FCB | ||||||
00306 | 5F00 | 00 | FCB | ||||||
00307 | • SLASH (/) | ||||||||
00308 | 5FOl | 08 | FC8 | ||||||
00309 | 5F02 | 08 | FCB | ||||||
00310 | 5F03 | 08 | FCB | ||||||
00311 | 5F04 | 08 | FCB | ||||||
00312 | 5F05 | 08 | FCB | ||||||
00313 | |||||||||
00314 | 5F06 | 00 | |||||||
00315 | 5F07 | 00 | |||||||
00316 | 5F08 | 60 | |||||||
00317 | 5F09 | 60 | |||||||
0 0 31R | 5F0A | 00 | |||||||
00319 | |||||||||
00320 | SFOB | 02 | |||||||
00321 | 5F0C | 04 | |||||||
00322 | 5F0O | 08 | |||||||
00323 | 5F0E | 10 | |||||||
00324 | 5F0F | 20 | |||||||
00325 | |||||||||
709808/1025
ORIGINAL IHSFSGTS
Page 124 CJ8PG 06/04/75 36:54.05
00327 | 5F10 | 3E |
00328 | 5F11 | 45 |
00329 | 5F12 | 49 |
00330 | 5F.I3 | 51 |
00331 | 5F14 | 3E |
00332 | ||
00333 | 5F15 | 00 |
00334 | 5F16 | 40 |
00335 | 5F17 | 7F- |
00336 | 5F18 | 42 |
00337 | 5F19 | 00 |
00338 | ||
00339 | 5FlA | 46 |
00340 | 5FlB | 49 |
00341 | 5FlC | 49 |
00342 | 5F10 | 51 |
0ß343 | 5FlE | 62 |
00344 | ||
00345 | 5FlF | 36 |
00346 | 5F20 | 49 |
0034t | 5F21 | 49 |
00348 | 5F22 | 41 |
00349 | 5F23 | 22 |
00350 | ||
00.351 | 5F24 | 10 |
00352 | 5F25 | 7F |
00353 | 5F26 | 12 |
00354 | 5F27 | lu |
00355 | 5F28 | 18 |
00356 | " | |
00357 | 5F29 | 39 |
.00353 | 5F2A | 45 |
00359 | 5F28 | 45 |
00360 | 5F2C | 45 |
00361 | 5F2D | 27 |
00362' | ||
00363 | 5F2E | 31 |
00364 | 5F2F | 49 |
00365 | 5F30 | 49 |
00366 | 5F31 | 4A |
00367 | 5F32 | 3C |
00368 | ||
00369 | 5F33 | 03 |
00370 | 5F34 | 05 |
00371 | 5F35 | 09 |
00372 | 5F36 | 71 |
00373 | 5F37 | 01 |
00374 | ||
00375 | 5F38 | 36 |
00376 | 5F39 | 49 |
00377 | 5F3A | 49 |
00378 | 5F3B | 49 |
00379 | 5F3C | 36 |
00380 | ||
» 0
♦ 1
ο 2
» 3
* 5
* 6
* 7
* 6
FCB | S3E |
FCB | S45 |
FCB | S49 |
FCB | S51 |
FCB | S3E |
FC8 | $0 |
FCB | $40 |
FCB | S7F |
FCB | S42 |
FCB | SO |
FC8 | S46 |
FC8 | S49 |
FCB | S49 |
FCB | S5! |
FCB | S62 |
FCB | . S36 |
FCB | £49 |
FC8 | •349 |
FCB | • S41 |
FC8 | S22 |
FCB | SlO |
FCB | S7F |
FCB | $12 |
FCB | $14 |
FCB | S18 |
FC8 | S39 |
FCB | $45 |
FC8 | $45 |
FC8 | ' $45 |
FCB | S27 |
FCB | $31 |
FC8 | 549 |
FC8 | $49 |
FCB | ■ S4A |
FCB | S3C |
FCB | $3 |
FCB | $5 |
FCB | S9 |
FCB | S71 |
FC9 | $1 |
FCB | $36 |
FC8 | S49 |
FC8 | $49 |
FCB | S49 |
FCB | 536 |
709808/1025
OBIGiNAt INSPECTED
Page 125 CJHPG 06/04/75 36:54.05
00382 | 5F30 | IE | * 9 | FCB | * COLON | FCB | SlE | S48 | 58 | ♦ A | FCB | 36 |
003S3 | 5F3E | 29 | FCB | FC8 | S29 | S54 | S14 | FCB | S9 | |||
00384 | 5F3F | 49 | FCB | FC9 | S49 | Ϊ62 | $22 | FCB | S51 | |||
00385 | 5F40 | 49 | FCB | - FCB | S49 | 341 | S41 | FC8 | Sl | |||
00386 | 5F41 | 06 | FCB | FCB | $6 | 50 | $0 -_----- - - | FCB | 56 | |||
00387 | SIGN | a QUESTION MAPK | AT SIGN | |||||||||
00388 | 5F42 | OO | $0 | SO | FCB | SlE | ||||||
00389 | 5F43 | OO | SO | 341 | FCB | S55 . | ||||||
00390 | 5F44 | 36 | S36 | - 322 | FCB | S5D | ||||||
00391 | 5F4=i | 36 | S36 | £14 | FCB | S4I | ||||||
00392 | 5F46 | OO | so · | SS | FC8 | ' S3E | ||||||
00393 | » GREATER THAN OR EQUAL TO SIGN | * COMMEPCIAL | ||||||||||
00394 | 5F47 | 48 | FCB | 3 i ":· | FCB | S7E | ||||||
0039S | 5F48 | 54 | FCB | CIi- | FCB | S9 | ||||||
00396 | SF49 | 62 | FC8 | 314· | FCB | $9 | ||||||
00397 | 5F4A | 41 | FCB | 314 | FCB | S9 | ||||||
00398 | 5F4B | OO | "CB | S14 | FCB | S7E | ||||||
00399 | * LESS THAN ! | * GREATER THAN SIGN | ||||||||||
00400 | 5F4C | QO | FCB | FCB | ||||||||
90401 | 5F4D | 41 | FCB | FC8 | ||||||||
00402 | 5F4E | 22 | "CB | FCB | ||||||||
00403 | 5F4F | 14 | FCB- | FCB | ||||||||
00404 | SF 5 O | 08 | FGB | FCB | ||||||||
ο EQUAL SIGM | ||||||||||||
BF3") | FCB | |||||||||||
S 04 ft 7 | 5FS2 | \ h | Fee | |||||||||
G S £ O 5 | 5F33 | ΐί· | FCB | |||||||||
5F54 | 14 | PCS ■ | ||||||||||
Oß&iO | 5F55 | 14 _ | FC8 | |||||||||
60411 | ||||||||||||
00412 | 5F56 | 08 | ||||||||||
00413 | 5F57 | 14 | ||||||||||
00*14 | 5F58 | 22 | ||||||||||
00415 | 5F59 | 41 | ||||||||||
00416 | 5F5A | OO " " " | ||||||||||
00417 | ||||||||||||
30418 | 5F5e | 06 | ||||||||||
00419 | 5F5C | 09 | ||||||||||
00420 | 5F50 | 51 | ||||||||||
00421 | 5F5E | Ol | ||||||||||
00422 | 5F5F | 06 | ||||||||||
00423 | ||||||||||||
00424 | 5F60 | IE | ||||||||||
00425 | 5F61 | 55 | ||||||||||
004?6 | 5F62 | 50 | ||||||||||
00427 | 5F63 | 41 | ||||||||||
00428 | 5F64 | 3E | ||||||||||
00429 | ||||||||||||
Ö0430 | 5F65 | 7E | ||||||||||
00431 | 5F66 | 09 | ||||||||||
00432 | 5F67 | 09 | ||||||||||
00433 | 5F68 | 09 | ||||||||||
00434 | 5F69 | 7E | ||||||||||
00435 | ||||||||||||
709808/1025
1N8?£GT£D
263315
Page 126 CJRPG 06/04/75 36:54.05
00437 | 5F6A | 36 |
00438 | 5F68 | 49 |
00439 | 5F6C | 49 |
00440 | 5F6D | 49 |
00441 | 5F6E' | 7F |
00442 | ||
00443 | 5F6F | 22 |
00444 | 5F70 | 41 |
00445 | 5F71 | 41 |
00446 | 5F72 | 41 |
00447 | 5F73 | 3E |
00448 | ||
00449 | 5F74 | 3E |
00450 | 5F75 | 41 |
00451 | 5F76 | 41 |
00452 | 5F77 | 7F |
00453 | 5F78 | 41 |
00454 | ||
00455 | 5F79 | 41 |
00456 | 5F7A | 49 |
00457 | 5F78 | 49 |
00458 | 5F7C | 49 |
00459 | 5F70. | 7F |
00460 | ||
00461 | 5F7E | 01 |
00462 | 5F7F | 09 |
00463 | 5F80 | 09 |
00464 | 5F81 | 09 |
00465 | 5F82 | 7 F |
00466 | _ | |
00467 | 5F83 | 71 |
00468 | 5F84 | 51 |
00469 | 5F85 | 41 |
00470 | 5F86 | 41 |
00471 | 5F87 | 3E |
00472 | ||
0O473 | 5F88 | 7F |
00474 | 5F89 | 08 |
00475 | 5F8A | 08 |
00476 | 5F83 | 08 |
00477 | 5F8C | 7F |
00478 | ||
00479 | 5F8D | 00 |
00480 | 5F8E | .41 |
00481 | 5F8F | 7F |
00482 | 5F90 | 41 |
0C433 | 5F91 | 00 |
00484 | ||
00485 | 5F92 | 3F |
00486 | 5F93 | 40 |
00487 | 5F94 | 40 |
0048« | 5F95 | 40 |
00489 | 5F96 | 20 |
00490 | ||
* C
* D
• ε
* G
* H
« I
FCB | S36 |
FCB | $49 |
FCB | ' $49 |
FCB | S49 |
FCB | S7F |
FCB | S22 |
FCB | £41 |
FCB | $41 |
FCB | $41 |
FC8 | S3E |
FCB | S3E |
FCB | S41 |
FCB | 541 |
FCB | $7F |
FCB | S41 |
FCB | $41 |
FCB | $49 |
FCB | $49 |
FCB | $49 |
FCB | S7F |
FC8 | $1 |
FC8 | $9 |
FC8 | 59- |
FCB | $9 |
FCB | S7F |
FCB | $71 |
FC8 | 551 |
FC8 | S41 |
FCB | 541 |
FCB | S3E |
FCB | $7F |
FCB | S8 |
FCB | $8 |
FC8 | S8 |
FCB | $7F |
FCB | $0 |
FC8 | $41 |
FCB | S7F |
FC8 | $41 |
FCB | $0 |
FCB | $3F |
FCB | $40 |
FCB | $40 |
FCB | $4 0 |
FC8 | $20 |
709808/1025
ORIGINAL INSPECTED
Page 127 CJ8PG 06/04/75 36:54.05
00492 | 5F97 | 41 |
00493 | 5F98 | 22 |
00494 | 5F99 | 14 |
0 0495 | 5F9A | OB |
00496 | 5F9B | 7F |
00497 | ||
00498 | 5F9C | 40 |
00499 | 5F90 | 40 |
oosno | 5F9E | 40 |
00501 | 5F9F | 40 |
00502 | 5FA0 | 7F |
00503 | ||
00504 | 5FAl | 7F |
005(15 | 5FA2 | 02 |
00506 | 5FA3 | OC |
00507 | 5FA4 | 02 |
00508 | 5FA5 | 7F |
00509 | ||
00510 | 5FA6 | 7F |
00511 | 5FA7 | 10 |
00512 | 5FAQ | 08 |
00513 | 5FA9 | 04 |
00514 | 5FAA | 7F |
00515 | ||
00516 | 5FAB | 3E |
00517 | 5FAC | 41 |
00518 | 5FA0 | 41 |
00519 | 5FAE | 41 |
00520 | SFAF | 3E |
00521 | ||
00522 | 5FB0 | 06 |
00523 | 5FBl | 09 |
00524 | 5FB2 | 09 |
00525 | 5FB3 | 09 |
00526 | 5FfU | 7F |
00527 | ||
00528 | 5FB5 | 5E |
00529 | 5F36 | 21 |
00530 | 5FB7 | 51 |
00531 | 5F88 | 41 |
00532 | 5FR9 | 3F |
00533 | ||
00534 | 5F<U | 46 |
00535 | 5F3R | 29 |
00536 | 5FBC | 1<J |
00537 | 5F8D | 09 |
00538 | 5FRE | 7F |
00539 | ||
00540 | 5FBF | 32 |
0054t | 5FC0 | 49 |
00542 | 5FCl | 49 |
00543 | 5FC2 | 49 |
00544 | 5FC3 | 26 |
00545 | ||
• L
* M
* N
* O
■· P
* Q
* R
♦ S
FCB | S41 |
FCB | $22 |
FCB | S14 |
FCB | S8 |
FCB | S7F |
FCB | $40 |
FCB | S40 |
FCB | S40 |
FCB | S40 |
FC8 | S7F |
FCB | 57F |
FCB | $2 |
FCB | SC |
FCB | $2 |
FCB | S7F |
FC8 | S7F |
FCB | $10 |
FC8 | $8 |
FCB | $4 |
FCB | $7F |
FCB | S3E |
FCB | S41 |
FCB | S41 |
FCB | S41 |
FC8 | $3E |
FCB | 56 |
Fca | $9 |
FCB | S9 |
FC8 | $9 |
FC8 | S7F |
FCB | S5E |
FCB | S21 |
FCB | 3551 |
FCB | S41 |
FCB | S3E |
FCB | $46 |
FCB | S29 |
FCB | $19 |
FCB | S9 |
FCB | S7F |
FCB | S32 |
FCB | S*9 |
FC8 | S49 |
FC8 | S49 |
FC8 | S26 |
•709&Q8/1025
Page 128 CJBPG 06/04/75 36:54.05
00547 | 5FC4 | ■ | 5FCE | - | » T | FCB | $1 |
00548 | 5FC5 | 5FCF | 01 | FCB | Sl | ||
00549 | 5FC 6 | 5FD0 | 01 | FCB | S7F | ||
00550 | 5FC7 | SFDl | 7F | FCB | Sl | ||
00551 | 5FC8 | 5FD2 | 01 | FCB | Sl | ||
00552 | 01 | ||||||
00553 | 5FC9 | 5FD3 | . a U | FCB | S3F | ||
00554 | 5FCA | 5F0.4 | 3F | FCB- | S40 | ||
00555 | 5FCB | 5FD5 | 40 | FCB | S40' | ||
00556 | 5FCC | 5F06 | 40 | FCB | S40 | ||
Θ0557 | 5FCD | 5FD7 | 40 | FCS | SS3F | ||
00553 | 3F | ||||||
00559 | 5F08 | ο ν | FCB | S7 | |||
Ö0S60 | 5FD9 | 07 | FCB | S18 | |||
00561 | 5FDA | 18 | FCB | S60 | |||
00562 | 5FDB | 60 | FCB | sia | |||
90563 | 5FDC | 18 | FCB | 27 | |||
00564 | 07 | ||||||
00565 | 5FDD | FCB | S7F | ||||
Ö0566 | 5FDE | 7F | FCB | §20 | |||
00567 | 5FDF | 20 | FCB . | S18 | |||
00568 | 5FE0 | lfl | FSB" | S20 | |||
06569 | 5FEl | 20 | FCB | S7F | |||
Q057O | 7F | ||||||
00571 | 5FE2 | •s χ | FCB | S63 | |||
00572 | 5FE3 | 63 | FCB | $14 | |||
00573 | 5FE4 | 14 | FC8 | $8 | |||
00574 | 5FE5 | 08 | FCB | $14 | |||
00575 | 5FE6 | 14 | FCB | $63 | |||
00576 | 63 | ||||||
00577 | 5FE7 | β Y | FCB | $3 | |||
00578 | 5FE8 | 03 | FCB | $4 | |||
00579 | 5FE9 | 04 | FCB | S78 | |||
00580 | 5IfEA | 78 | FCB | $4 | |||
005Si | 5FEB | 04 | FCB | 53 | |||
0Ό582 | 03" | ||||||
00583 | 5FEC | * Z | FCB | $43 | |||
00584 | 5FED | 43 | FCB | $45 | |||
00585 | 5FEE | 45 | FC8 | $49 | |||
00586 | 5FEF | 49 | FCB | $51 | |||
005Β7 | SFFO | 51 | FCB | S61 | |||
00588 | 61 | s DIVIDE SIGN | |||||
00589 | sa | ||||||
00590 | 08 | 58 | |||||
00591 | 08 | 22A | |||||
00592 | 2Α | S8 | |||||
00593 | 08 | $8 | |||||
00594 | 08 | FCB | |||||
00595 | FCB | S8 | |||||
00596 | OS | FCB | SlC | ||||
00597 | IC | FCB | S2A | ||||
00598 | 2A | FCB | SB | ||||
00599 | 08 | * RIGHT ARROW | S8 | ||||
00600 | 08 | ||||||
FCB | |||||||
FCB | |||||||
FC8 | |||||||
FCB | |||||||
FCB | |||||||
709808/1025
L INSPECTED
5FFl | 02 | 06/04/75 36:54.< | FCB | - 152 | S2 | S3C | |
5FF2 | 7C | «'pi | FCB | 05 | S7C | $43 | |
5FF3 | 04 | FCB | SA | S42 | |||
Page- 129 C JBPG | 5FF4 | 7C | FCB | *7C | 543 | ||
00602 | 5FF5 | 08 | FCB | S8 | S3C | ||
00603 | » UP ARROW | S3C | |||||
00604 | 5FF6 | 04 | FCB | S4 | S41 | ||
00605 | 5FF7 | 02 | FCB | S2 | S40 | ||
00606 | 5FF3 | 7F ■ | FCB | S7F | 541 | ||
00607 | 5FF9 | 02 | FCB | S2 ' | S3C | ||
00608 | 5FFA | 04 | FCB | $4 | S7C | ||
00609 | » DOWN ARROW | S13 | |||||
00610 | 5FFB | 10 | FC8 | SlO | «12 | ||
00611 | 5FFC | 20 | FCB | S20 | S13 | ||
00612 | 5FFO | 7F | FCB | S7F | S7C | ||
00613 | SFFE | ?O | FC8 | S20 | S7C | ||
00614 | 5FFF | IO | FCB | SlO | S12 | ||
00615 | «■ GM8H CHARPACTERS | S13 | |||||
00616 | 6000 | 3C | FC8. | S12 | |||
00617 | 6001 | 43 | FCB | S7C | |||
00618 | 6002 | 42 | FCB | $49 | |||
00619 | 6003 | 43 | FCS | 549 | |||
00620 | S004 | 3C | FCB | S7F | |||
00621 | 6005 | 3C | FCS | S9 | |||
00622 | 6006 | 41 | FCB | S7E | |||
0Π623 | 6007 | 40 | FC8 | S42 | |||
00624 | 6003 | 41 | ■ FCB | $41 | |||
00*325 | 6009 | 3C | FC8 | S49 | |||
006P6 | 600A | 7C | FCB | S7E | |||
00ft?7 | 600B- | 13 | FCB ■ | S48 | |||
00628 | 600C | 12 | FC8 | ||||
00629 | 60 00 | 13 | FC3 | ||||
00630 | 600E | 7C | FCB | ||||
00631 | 600F | rc | FCB | ||||
00*32 | ■6010 | 12 | FCB | ||||
00633 | 6011 | 13 | FCB | ||||
00634 | 6012 | 12 | FCB | ||||
00635 | 6013 | 7C | FCB | ||||
00636 | 6014 | 49 | FCB | ||||
00637 | 6015 | 49 | FCB | ||||
00633 | 6016 | 7F | FCB | ||||
0C639 | 6017 | 09 | FCB | ||||
00640 | 601« | 7E | FCB | ||||
00641 | 6019 | 42 | FCB | ||||
00642 | 601A | 41 | FCB | ||||
00643 | 601R | 49 | FCB | ||||
00644 | 601C | 7E | FCB- | ||||
00645 | 6010 | 48 | FCB | ||||
00646 | |||||||
00647 | |||||||
00648 | |||||||
00649 | |||||||
00650 | |||||||
QU.5
U C . . I
AC.)
709808/1025
Page 130 CJ8PG 06/04/75 36:54.05
00652 | 601E | 30 | » SPANISH | * ALPHA | FCB | CHAPACTERS |
00653 | 601F | 40 | FCB | FCB | 530 | |
00654 | 6020 | 45 | • F-C8 | FCB | S40 | |
00655 | 6021. | 43 | FCB | FCB | S45 | |
00656 | 6022 | 30 | FCB | FCB | S48 | |
00657 | 6023 | 7D | FCB | S30 | ||
0065B | 6024 | 21 | FCB | S7D | ||
00659 | 6025 | 11" | FCB | S21 | ||
00660 | 6026 | 09 | FCB | SlI ■ | ||
00661 | 6027 | 70 | FCB | S9 | ||
00662 | FCB | $70 | ||||
00663 | 6028 | 26 | ||||
00664 | 6029 | 18 | $26 '■ | |||
00665 | 602A | 24 | S18 | |||
00666 | 602B | 24 | $24 | |||
00667 | 602C | 18 | S24 | |||
00668 | $18 | |||||
UPSIDE DOWN ?
N ßAR
709808/102 5
OBlGiNAL INSPECTED
Page 131 CJBPG 06/04/75 36:54.05
00672 00673 00674 00675 00676 00677 00678 00679 00680
00681 00682 00683 00684 00685 00686 00687 00688 00689 00690 00691
00692 00693 00694 00695 00696 00697 00698 00699 00700 00701 00702 00703 00704 00705
00706 00707 00708 00709 0 0710 00711 00712 00713 00714
00715 00716 00717 00718 00719 00720 00721 00722 00723
00724 00725 00726
0016 | PSTN | EOU | TP2 |
001ft | STACK | EQU | TP4 |
002D | ROW | EQU | T2 |
002C | PASS | EQU | T3 |
002B | OOT | EQU | T4 |
002A | PULSE | EQU | T5 |
♦ |
6020 602F-6031 6033 6034 6036 6038 603A
603R 601D 603F 6041 6043 6045 6046
6048 6048 604C
* DAVE UHLRICH AUGUST 14,1974 PRINTER REV G
* THIS ROUTINE TAKES THE ASCII DATA IN BUFF» β CONVERTS THEM TO THEIR DOT MATRIX
* EQUIVALENTS» AND PRINTS THEM ON THE
* PRINTER. IT DOES THE CONVERSION AND » PRINTING ON A ROW-BY-ROW BASIS» USING
β AN ADAPTIVE FOUR-PASS SYSTEM'. FOR *
* EXAMPLE, IT WILL PRINT ROW 1 OF
* CHARACTERS 1.5,9,U3 ON THE FIRST
* PASS» ROW 1 OF 2,6,10.5.14 ON THE SECONO,
* ETC. UNLESS THE NUMBER OF DOTS TO BE
* PRINTED IN ANY ONE PASS EXCEEDS
* TEN. IN- THAT CASE1 IT WILL PRINT THE
* ROW DATA TWO CHARACTERS AT A TIME
* FOR THAT PARTICULAR PASS ONLY. «
* PRINTER SELECT CODE=IlOl IN LOWER 4 RITS OF AOATA,
* PRINT SELECTS IN UPPER. 4 BITS OF AOATA:
* 1) #1=1110
* 2) «2=1101
* 3) #3=1011 » 4) #4=0111
* PRINTER LOAD CODE IS 101 IN BITS
* 3,4,S,5 OF BCTL. THE PRINTER SHIFT
» REGISTER IS CONNECTED TO 8IT O OF BOATA.
96
85
26 39
«6 OC
97 06 4F
97 C5
27
86 97 39
86 FO BD 6128 4F 97 IA
PRNTR LDA A BIT A BNE RTS
PRNTRl LDA A STA A LOA B CLR A STA A BIT B BEQ LOA A STA A RTS
PRNTR2 LDA A JSR CLR A STA A
TGL
#S60
PRNTRl
AOATA INPUT
ADATA "
«2
PRNTP2
«23
ERROR
«$FO PPRADV
STACK
LOAD TOGGLE SWITCH REG PRINT ON OR AUDIT? YES, PRINT
NO, RETURN
NO, RETURN
SEND OUT TOGGLE SWITCH ENABLE LOAD TOGGLE SWITCHES
CLEAR SELECT CODE OUT OF PAPER?
NO, PRINT
YES» LOAD ERROR COOE
PAPER ADVANCE SET SPH=O
709808/1025
ORIGINAL
Page 132 CJRPG 06/04/75 36:5*.05
00727 | 604E | 4C | 20 | NXTROW | - - | INC | A | A | ROW ' |
00728 | 604F | 97 | 08 · | - | STA | A | Δ | #8 | |
00729 | 6051 | 86 | 2C | LDA | A | PASS | |||
00730 | 6053 | 97 | STA | A | A | ||||
00731 | 6055 | 4F | 2B | CLR | A | DOT | |||
00 732 | 6056 | 97 | 68 | LOOOT | STA | A | A | «REAL | |
00733 | 6058 | 86 | IB | LDA' | A | B | STACK+1 | ||
00734 | 605A | 97 | 0067 | STA | A | A | #$67 | ||
00735 | 605C | CE | LOASC | LOX | A | ||||
00736 | 6Ö5F | OF' | OO | SEI | A | X | |||
00737 | 6060 | A6 | 7F | LDAtA | B | «$7F | |||
0073B | 6062 | 84 | 68 | NOOOT | AND | A | ÜJS68 | ||
00739 | 6064 | 81 | 04 | CMP | β | GT68 | |||
. 00740 | 6066 | 22 | 20 | BHI | A | 3S20 | |||
• 00741 | 6068 | 80 | Ol | GT68 | SUB | A | OK | ||
00742 | 606A | 2A | OK | BPL | 8 | ||||
00743 | 606C | 4F | 5E | CLR | B | W)OTSZS | |||
00744 | 6060 | C6 | 2A | LDA | PULSE | ||||
00745 | 606F | 97 | STA | ||||||
'. 0Ο74β | 6071 | 48 | ASL. | B | |||||
0074? | 6072 | 48 | OO | ASL | 8 | SO | |||
00748 | 6073 | C9 | 2A | ADC | A | PULSE | |||
00749 | 6075 | 98 | OO | ADD | A | 00 | |||
00750 | 6077 | C9 | co | ADC | «SCO | ||||
00751 | 607Q | 8R | 19 | AOD | R | TP3S | |||
00752 | 6078 | 97 | OO | STA | HQ | ||||
00753 | 6070 | C9 | 18 | ADC | TP3 | ||||
00754 | 607F | 07 | 16 | STA | B | PSTN | |||
i - 00755 | 6081 | DF | 18 | STX | TP 3 | ||||
1 00756 | 6083 | DE | F8 | LDX | #SF8 · | ||||
" .00757 | 60H5 | C6 | LDA | R | |||||
; 00758 | 6087 | 58 | OO | ASL | X | ||||
00759 | 6038 | Δ6 | 20 | LOA | A | ROW | |||
00760 | 60βΑ | 94 | 04 | AND | A | NODOT | |||
• 00761 | 608C | 27 | BEQ | A | |||||
'-- "00762 | 608Ε | 5C | 0028 | INC | DOT | ||||
00763 | 608F | 7C | INC | A | |||||
00764 | 6092 | oe | EO | INX | OSEO | ||||
00765 | 6093 | CS | FO | BIT | A | LDOOT | |||
00766 | 60 9.5 | 26 | IA | BNE | STACK | ||||
00767 | 6097 | OE | OO | LOX | A | X | |||
00768 | 6099 | F7 | 001R | STA | B | STACK+1 | |||
00769 | 609.3 | 7C | 17 | INC | B | PSTN+i | |||
00770 | 609Ε | 96 | 04 | LDA | *4 | ||||
00771 | 60Α0 | 80 | 17 | SUB | PSTN+1 | ||||
00772 | 60Δ2 | 97 | 16 | STA | PSTN | ||||
00773 | 6ΟΑ4 | OE | 58 | LDX | «$58 | ||||
00774 | 60Α6 | 81 | B6 | CMP- | LDASC | ||||
00775 | 60Α8 | 2C | 28 | BGE | DOT | ||||
00776 | 60AA | 96 | LDA | ||||||
00777 | 60AC | 16 | TAB | ||||||
00778 | 60Α0 | 44 | IF | LSR | «SI F | ||||
00779 | 60AE | C4 | OA | ANO | *10 | ||||
00780 | 60R0 | Cl | 02 | CMP | LTlO | ||||
007*11 | 6082 | 2F | BLE | ||||||
SET ROW PTR=I SET PASS CTR
POINT PSTN PT" 4T LAST CHAR
DISABLE KEY INTERRUPT LOAD ASCII CODE LOP OFF TOP BIT
IS ASCII CODE > $6*5? •YES» TREAT IT AS A BLANK
SUBTRACT OFF ASCII OFFSET IS ASCII CODE < S20? YES, TREAT IT AS A RLANK
LOAD DOT VECTOR AODR HIGH
MULTIPLY BY 4 IF CARRY. INCR AOOR HIGH AOD TO MULTIPLY BY 5
IF CARRf9 INCP AOOR HIGH AOD TABLE AOOR LOW TO OFFSET
STORE IT IM AOOR LOW IF CARRY, INCP ADDR HIGH
STORE ADDRESS HIGH
STORE POS PTR LOAD DOT MATRIX ADDR .
LOAO COLUMN CTR " Y -
DECR COLUMN CTR LOAD DOT COLUMN CHOOSE DOT OF ONE ROW
IS IT A ZERO?
NO. LOAD ONE IN OOT ROW
INCR DOT CTR
POINT TO NEXT COLUMN DONE BUILDING OOT VECTOR?
NO, LOAD NEXT OOT LOAO INDEX WITH STACK PTR STORE OOT VECTOR ON STACK
INC«EMENT STACK PTR
LOAD LOWER HALF »STN PTR OECR IT BY 4 STORE IT RACK
LOAD INDEX WITH POS PTR IS POS PTP<S58? NO, CONVERT NEXT ASCII CHAR
LOAD OOT CTR PUT IT IM ACCB ALSO SHIFT OOT FLAßS PIGHT ONF. BIT
MASK OFF NO. OF DOTS NO. OF DOT? >10? NO, DO NOT SET OOT FLAG
7 0 9 8 0 8/1025 ORIGINAL SMSPEOTED
Page 133 CJ8PG 06/04/75 36:34.05
00782 | 6084 | SB | 80 | LTlO | AOD | A | #580 | YES» SET 0OT FLAG |
007H3 | 608* | 94 | FO | ANO | A | #SF0 | SAVF. DOT FLAGS AND | |
00734 | 6088 | 97 | 28 | "STA | A | 0OT | CLEAR 0OT CTR | |
00785 | 60SA | 96 | 17 | LOA | A | PSTN+i | LOAO POS PTR | |
00786 | 60.BC | 31 | 54 | CMP | A | «554 | ENO OF COMPLETE ROW? | |
00787 | 608E | 27 | OB | BEO | ENOROW | YES. PAPER AOVANCE | ||
00781 | 60CO | 88 | OF | AOO | A | #15 | AOO 15 TO POS PTR | |
00789 | 60C2 | 97 | 17 | STA | A | PSTN-H | STOPE 8ES OF NEXT PASS | |
00790 | 60C4 | OE | 16 | LDX | PSTN | LOAD POS PTR INTO INOEX | ||
00791 | 60C6 | 74 | 002C | LSR | PASS | SHIFT PASS CTR | ||
ΘΘ792 | 60C9 | 20 | 95 | ENOROW | SRA | LOASC | ||
C 0793 | 60C3 | CE | FE7F | LOX | »-385 | 7.5-4.42»W4IT TO FINISH OFF TIME | ||
90794 | 60CE | BO | 6138 | JSR | LOOP | |||
0079S | 6001 | 36 | FO | LOA | A | #*F0 | LOAO PRINTER SELECT COOE | |
00796 | 6003 | 97 | OO | Qi)TPT | STA | A | AOATA | TURN PRINTER ON |
00 797 | 6005 | C6 | 2C | LOA | 3 | #«2C | ||
007<?β | 6007 | 07 | 03 | STA | 8 | 3CTL | SNAflLE PRINTER SHIFT SEQ | |
G0799 | 6009 | 80 | .30 | SSR | LOCHAR | SEND OOTS OUT TO PRINTER | ||
eesoo | ciooa | 80 | 39 | BSR | LDCHAR | SEND OOTS OUT TO PRINTER | ||
GoSOi | 600D | «6 | 28 | LOA | A | QOT | ||
0Ö3C2 | SOOF | SA | OA | SPL | MOOVFL | NOBE THAN 10 OOTS ON THIS PASS? | ||
GC303 | ίΐοεί | 5F | 6LS | |||||
fjoao* | 60£2 | 36 | F6 | LOO | LSA | A | s*-10 | IfES* SET ZERO CTR»-10 |
QOSOS | 60E4 | 07 | 02 | STA | R | 8DATA | SHIFT O INTO PRINTER REG | |
GQBOi) | 60E6 | 4C | INC | A | "NCP ZERO CTR | |||
00907 | 6057 | 26 | FB | 3NE | LOO | 10 ZEROES LOADED? | ||
ooao* | 60E9 | 80 | 54 | NOOVFt | BSR | YES« PRINT | ||
GOSOS | SCgB | 80 | as | SSR | LDCHA* | SEND OOTS OUT TO PRINTER | ||
00320 | 69SO | 30 | 39 | SSR | LDCHAR | SEND OOTS OUT 70 PRINTER | ||
GGSIi | ΘΒ | 4S | SSR | |||||
00312 | 96 | 3C | LOA | A | *S3C | |||
00813 | 30F3 | 97 | 33 | STA | A | acTL | TURM PRINTER SHIFT REG OFF | |
00814 | 60F5 | 7»? | 0025 | ASL | DOT | POINT TO NEXT 0OT FLAG | ||
00815 | 60F8 | 96 | 2C | LDA | A | PASS | ||
00816 | 60FA | 48 | ASL | A | ||||
00817 | 60F3 | 97 | 2C | STA | A | PASS " ' | ||
00313 | 60F0 | 81 | 10 | CMP | A | »16 | PRINTED ALL POUR PASSES? | |
00819 | 60FF | 26 | 04 | BNE | OUTPT | NO, PRINT NEXT PASS | ||
00820 | 6101 | CE | FF06 | LOX | #-250 | WAIT 2 MSEC AFTER flUHN | ||
00821 | 6104 | BO | 35 | SSR | LOOP | |||
00832 | 6106 | OE | CLI | ENABLE KEY INTERRUPT | ||||
00323 | 6107 | AA | FO | LOA | A | #$F0 | ||
00824 | 6109 | 97 | OO | STA | A | AOATA | TURN PRINTER OFF | |
00625 | 6109 | 78 | 0020 | ASL | POW | SHIFT ROW PTR | ||
00fl?6 | 610E | 28 | 03 | BMI | DONE | MINUS» PRINT COMPLETE- | ||
00827 | 6110 | 7E | 6051 | DONE | JMP | NXTROW | ||
00*28 | 6113 | 80 | 13 | SSR | PPRAOV | PAPER AOVANCE | ||
00829 | 6115 | 30 | 11 | SSR | PPRAOV | PAPER ADVANCE | ||
00830 | 6117 | 39 | LOCHAR | RTS | ||||
00831 | 6118 | 7A | 001R | OEC | STACK+1 | OECR STACK PTR | ||
00832 | 611β | OE | IA | LDX | STACK | LOAD I.NOEX WITH STACK PTR | ||
00833 | 6110 | E6 | OO | SNOOT | LDA | B | X | LOAD DOT VECTOR |
00834 | 6UF | 07 | 02 | STA | B | 80ATA | SEND DOT OUT TO PRINTER | |
00835 | 6121 | OO | SEC | SET CARRY | ||||
00836 | 6122 | 56 | ROR | 8 | ROTATE NEXT 0OT INTO POSITION | |||
709808/1025
Page 134 CJBPG 06/04/75 36:54.05
00837 | 6123 | Cl | F8 | • | 16 | PPRADV | CMP | ß | 0$F8 |
00838 | 6125 | 26 | F8 | FF06 | BNE | SNDOT | |||
00839 | 6127 | 39 | 75 | RTS | |||||
00840 | 6128 | OF | 2A | SEI | |||||
00841 | 6129 | CE | FC57 | 2C | LDX | #-937 | |||
00842 | 612C | 80 | OD | BSR | LOOP | ||||
00343 | 612E | CE | F380 | LDX | #-3187 | ||||
00844 | 6131 | C6 | FO | LDA | B | #SFO | |||
00845 | 6133 | 07 | OO | STA | 8 | ADATA | |||
00846 | 6135 | 8D- | 04 | BSR | LOOP. | ||||
00847 | 6137 | 97 | OO | OO | LOOP | STA | A | ADATA | |
00848 | 6139 | OE | OO | CLI | |||||
.00849 | 613A. | 39 | E6 | RTS | |||||
00850 | 613B | 08 | FD | INX | |||||
00851 | 613C | 26 | FO | OO | BNE | LOOP | |||
00852 | 613E | 39 | 002A | RTS | |||||
00853 | 613F | DF | 03 | STX | PSTN | ||||
00854 | 6141 | CE | 16 | LDX | a-250 ' | ||||
00855 | 6144 | 86 | LDA | A | #117 | ||||
00H56 | 6146 | 97 | OO | STA | A | PULSE | |||
00857 | 6148 | 96 | 07FF | LDA | A | PASS | |||
00858 | 614A | 43 | ED | COM | A | ||||
00859 | 6148 | 48 | ASL- | A | |||||
00860 | 614C | 48 | ASL | A | |||||
00861 | 6140 | 48 | ASL | .A | |||||
00862 | 614E | 48 | ASL | A | |||||
00863 | 614F | 8A | DUTY | ORA | A | tf«D | |||
00864 | 6151 | 97 | STA | A | AOATA | ||||
00865 | 6153 | 8D | 8SR- | LOOP | |||||
00866 | 6155 | C6 | LDA | B | #SFD | ||||
00β67 | 6157 | 07 | STA | B | ADATA | ||||
ΟΟΘ6β | 6.159 | 7A | DEC | PULSE | |||||
00869 | 615C | 26 | MRPLS | BNE | MPPLS | ||||
0087Π | 615E | DE | LDX | PSTN | |||||
00871 | 61(SO | 39 | RTS | ||||||
00872 | 6161 | 97 | STA | A | ADATA | ||||
00873 | 6163 | 87 | STA | A | S7FF | ||||
00874 | 6166 | 20 | BRA | DUTY |
DONE WITH CHAR?
NO, SEND OUT ANOTHER DOT
DISABLE KEY INTERRUPT LOAO 7.5 MSEC OFF TIME
LOAD '25.5 MSEC ON COUNT TURN PRINTER ON
TURN PRINTER OFF ENABLE KEY INTERRUPT
STORE PSTN PTR LOAD 2.0 MSEC BURN.COUNT
SET PULSE CTR LOAD PASS CTR COMPLEMENT IT
OR WITH PRINTER SELECT COOE START PRINT
HOLD PRINT FOR 2.0 MSEC
TURN OFF PRINT PULSE HOLD PRIMT PULSE OFF 15 USEC
PRINT COMPLETE?
YES» RELOAO PSTN PTR RETURN
TURN PRINT PULSE PACK ON HOLO PRINT PULSE ON FOR 15 USEC
0-87/-102
SNSPECTED
Page 135 CJBPG 06/04/75 36:54.05
END
SYMBOL TABLE
AOATA | OOQO | ACTL | 0001 | BDATA | 0002 | BCTL | 0003 | INPUT | 0004 | 10IN | 0005 |
ERROR | 0006 | TGL | 0007 | UFLG | 0008 | RSFLG | -0009 | EOM | OOOA | EOPM | oooe |
STKFLG | OOOO | RND | οοοε | DIGFLG | OOOF | W2 | 0010 | .wi | 0011 | SFLG | 0012 |
DCNTR | 0013 | TPl | 0014 | TPlS | 0015 | •TP2 | 0016 | TP2S | 0017 | TP3 | 0018 |
TP3S | 0019 | TP4 | OOIA | TP4S | 001B | TP5 | boic | TP5S | 0010 | TP6 | 001E |
TP6S | 001F | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0023 | TU | 0024· |
TlO | 0025 | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | T5 | 002A |
T4 | 002B | Τ3 | 002C | T2 | 002D | Tl | 002E | ISTK | 002F | ISTACK | 0051 |
TA | 0052 | SPGM | 0054 | EXTPA | 0056 | BUFF | 0058 | PEAL | 0068 | IMAG | 0070 |
ATI | 007β | ΑΤ2 | 0080 | W | 0088 | XR | 0090 | YR | 0098 | ZR | OOAO |
TR | 00A8 | LSTX | 0OB O | BKWRT | 0088 | BKKC | 003A | S0L7 | 00C6 | UPP | 00C8 |
UIP | OOCA | ALPHA | OOCC | 101 | OOCD | 102 | OOOO | IT7 | 00D3 | FLAG | 00D5 |
TPOS | 0006 | FILE | 00D7 | AR | 00D8 | 9R | οοεο | CR | Q0E8 | OR | OOFO |
ER | OOFS | SDBB | OOBA | MT | 7E00 | TERMN7 | 003O | IMED | 0040 | PARCD | OOCO |
PAREX | 0080 | NTBL | 0000 | DOTS | 5ECO | PRTORV | 602D | FRMT' | 5CA8 | BLANK | 5075 |
LDMSG | 5780 | ROLLD | 55B2 | ROLLU | .57Fl | PSD | 550A | TXL | 55E9 | STKUP | 55EF |
MAO | 7498 | CMP | 74AA | NOR | 74D6 | TXW | 7424 | TXXR | 743R | EXXR' | 7452 |
ARSR | 753β | OVUNF | 75B6 | OVEPF | 750D | XRO | 74OA | XCiNINE | 75C8 | UNDRF | 75Fl |
IMULT | 76B9 | QOG | 7669 | FPA | 75FC | FPS | 75F6 | FPM. | 7735 | FPD | 7793 |
FPAEX | 763D | FPMEX | 7780 | LSHIFT | 7521 | ZEROX | 7439 | XZEROO | 7415. | X7ER02 | 7417 |
RECIP | 73E6 | TXRX | 73F3 | CONST | 6800 | FP03RC | 689B | TAN | 68A9 | ATN | 69C3 |
DSZERO | 6A46 | NTLN | 6A58 | EXPN | 6AC9 | SIN | 6894· | COS | 6B9A | ASIN | 68F2 |
ACOS | 68F7 | PHl | 6C5D | PH2 | 6C8D | PH3 | 6034 | PH4 | 6DD0 | LSFT8 | 6E47 |
SORT | 6E65 | ΜΑ08 | 6F2C | CMP8 | 53E4 | IOUPX | 6F52 | LOGlO | 6FA7 | YUPX | 6FE9 |
RTOP" | 7328 | PTOR | 7386 | PSTN | 0016 | STACK | O O 1A | PQW | 0020 | PASS | 002C |
DOT , | 0028 | PULSE | 002A | PRNTP | 6020 | PRNTRl | 6034 | PDNTP2 | ^O 46 | NXTROW | 6051 |
LOASC | 6060 | GT68 | 606C | OK | 6060 | LDDOT | 6087 | NOOOT | 6092 | LTlO | 60B6 |
ENOPOW | 60CP | OUTPT | 6005 | LOO | 60E4 | NOOVFL | 60E9 | DONE | 6113 | LDCHAR | 6118 |
SNOOT | 6UF . | PPRADV | 6128 | LOOP | 6138 | 613F | DUTY | 6155 | MPPLS | 6161 |
709808/102 5
ORIGINAL
263315
Page 136 CJBP.G 06/04/75 36:54.05
00124 | Ö02E | » | OPT | EQU | LISTtMEM |
00127 | 0020 . | * | EQU | ||
001.28 | 002C | • | EQU | ||
00129 | 0028 | ♦ EQUATE TABLE | EQU | ||
00130 | Ö02A | * | EQU | ||
00131 | O07A | * | EQU | ||
00132 | 007B | SAVE | EQU | Tl | |
00133 | 007C | FLCTR | EQU | T2 | |
00134 | 608A | MASK | E6U | T3 | |
00135 | Q08D | REWFLG | EQU | T4 | |
Ö0136 | 00?8 | KNWALL | EQU | TS ' | |
00137 | 0026 | MRK8OT | EQU | AT1+2 | |
00138 | 0024 | FNOCMD | EQU | AT 1+3 | |
00139 | 0023 | STACK | EQU | ΛΤΪ+4 ' | |
0014© | 0022 | SVIMS | EQU | Vi+2 | |
00141 | 0016 | SaVSTK | EQU | V3+5 ■ | |
$0142 | 00D5 | SPADRS | EQU | 17 | |
001^3 | 00O6 | CFS2 | EQU | T9 | |
00144 | 0007 | AFSZ | EQU | TU | |
00145 | 4058 | TYPE | EQU | ΤΪ2 | |
00146 | 49CE | CHivSM | EQU | T13 | |
©0147 | &B&8 | 8FPTR | EQU | TP2 ' | |
00148 | 4840 | FLAG | EQU | S05 | |
00149 | 5CA8 | . T^OS | EQU | S06 | |
OQlSO | 5D75 | FILE | EQU . | S07 | |
00151 | 57R0 | SADRS | EQU | §4058 | |
00152 | 4P.8C | TSFR | EQU | S49CE | |
00153 | 55EF | ÄDD7 | EQU | S4848 | |
00154 | 740A | SUB7 | EQU | S4840 | |
00155 | 7406 . | FRMT | EQU | S5CA8 | |
00156 | 4EA4 | BLANK | EQU | S5D75 . | |
00157 | ftO2D | LOMSG | EQU | S5790 | |
00158 * | 57Fl | P. INRCO | EQU | S488C | |
00159 | STKUP | S55EF | |||
00160 | XRO | 574OA | |||
00161 | NOR. | S7406- | |||
00162 | OGTS | <54EA4 | |||
00163 | PRTORV | S602D | |||
00164 | ROLLU | S57F1 | |||
709808/1025
'D
Page 137 CJRPG 06/04/75 3.6:54.05
00166 00167 00168 00169 00170 00171 00172 00173 00174 00175 00176 00177
00178 00179 00180 00181 00132 00183 00184
00185 00186 00187 00188 001S9 00190 00191 0019? 00193
00194 00195 00196 00197 00198 00199 0 0 200 00201 00202
00203 00204 00205 00206 00207 00208 00209
00210 00211 00212 00213 00214 00215 00216 00217 0021S
00219 00220
6168 -
ORG
$6168
• CASSETTE INITIALIZATION AND EXIT ROUTINES.
6168 OF
6169 OF 6168 616C 6160 DF 6I6F 6171 2A
6173 4F
6174 6176 BD 6179 617A RO
6170 617F 4F 6180 6182
6184 6186 6188 618A. 6leC
&18E 6190 6192 6194 8A 619ft
6198 9E 619A 6198 EE 6190 AO 619F 61A1 61A3 DE 61A5 8C 61A8 6UA D6
61AC CB 61AE 61R0 C4 61B2 Cl 6184 61*36 7E
61fl9 61BB gO 61RE 9E
61C0 61C2 61C4 OE 61C5
SETUP SEI
8A STX SVINS
TSX
INX
80 STX SAVSTK
03 LOA A BCTL
03 8PL CRTIN-
CLR A
06 STA A TPOS
6740 CRTIN JSR COT
TAB
672C JSR LIGHT
02 LDA A 80ATA CLR A
OF STA A DIGFLG
SB STA A REWFLG
2A STA- A KNWALL
7A STA A MPK80T
05 LDA A »5
20 STA A FLCTR
7B STA Δ FNOCMO
30 P.QA A a$3D
03 STA A BCTL 05 LDA A FLAG
02 " ORA A *2 05 STA A FLAG 80 LOS SAVSTK
DEX
OO LDX X
OO ' JSR' X"
OE ERRMSG CMP A «14
16 BNE STERR
8A LDX SVINS
6398 CPX «VERIFY
OF BEQ STERP -
05 LOA R FLAG
20 400 8 *520
05 STA Β FLAG 60 AND B «560
60 CMP B #$60
03 BEQ STEPR 67Pl JMP OVER
06 STERR STA A ERROR 66D3 JSR STOP
RO TRNOFF LDS SAVSTK 3C LOA A #53C 03 STA A PCTL
CLI
05 LDA B FLAG
DISABLE KEY INTERRUPT SAVE INSTR. STARTING AOORESS
SAVE STACK POINTER CHECK IF CARTRIDGE HAS BEEN OUT
IPOS=LOST
CHECK IF CARTRIDGE IS STILL OUT
TAPE SPOOLED OFF? SESET EOT h COT INTERRUPT 8IJ
CLEAR DIGIT ENTRY FLAG
SET FILE CTR=5 SET FIND COMMftND FLAG
ENABLE EOT ί. COT INTERRUPT SET CASSETTE OP FLAG
SET INDEX TO "ETURN ADDRESS
OO INSTRUCTION ' " " ' "~."
CHECKSUM ERROR?
LOAD AOnRESS OF INSTR JUST ExECUTEO
CHECKSUM ERROD ON VcRIFY?
YES» DON'T TRY AGAIN
INCREMENT TRY CTR
MASK OFF TRY CTR FAILED THRFE TIMES? YES. PRINT EOROR
NO» TRY AGAIN
MAKE SURE TAPE IS STOPPED
RESET STACK POINTER
DISABLE EOT K COT INTERRUPT
ENABLE KEY INTERRUPT LOAD CASSETTE OP FLAG
7 0 9808/1025
Page 138 CJBPG 06/04/75 36:54.05
002?! 61C7 C4 90
00222 61C9 07 DS
00223 61CH 39
00225 61CC E6 00 ' T03IN
00226 61CE 5C
00227 61CF 2E 04
00228 6101 86 06 ERR6
00229 6103 20 CA
00230 6105 Cl 05 NOOK
00231 6107 2C F8
00232 6109 7E 49CE
ANO | B | «S9D | CLEAR IT |
STA | B | FLAG | RESTORE IT |
RTS | |||
LDA | B | X | LOAD EXPNT |
INC | B | INCR IT | |
BGT | NOOK | IS IT > 0? | |
LOA | A | #6 | ILLEGAL ARGUMENT |
SRA | ERRMSG | ||
CMP | B | #5 | IS IT < 5? |
BGE | ERR6 | NO, EOROR ■ | |
JMP | TSFR ' | YES» CONVERT NO. TO 8INARY |
709808/1025
ORIGINAL INSPECTED
Page 139 CJBPG 06/04/75 36:54.05
00234 00335 00236 00237 00238 00239 00240
00241 00242 00243 00244 00245 00246 00247 0024P 00249
00250 00251 00252 00253 00254 00255 00256
00257 00258 00259 00260 002M
00262 00263 00264 0 0?f.5 00266 00267 00268 00269 00270
00271 00272 00273 00274 00275 00276 00277 00278 00279
002«0 00281 00282 002S3 00234
00285 00236 00287 00288
THIS ROUTINE MARKS THE NUMBER OF FTLES
CONTAINED IN THE Y-REGISTER. THE SIZE OF EACH FILE IS FOUND IN THE Z-REGISTER.
THE STARTING FILE NUMBER IS IN THE X-REGISTER.
61DC 61DE 610F 61El 61E3 61E4
61E7 61E9 61E3 61ED 61EF 61Fl 61F3 61F6
61F3 61FA 61FC 61FE 6201 6203 6205 6206 620 620A 620C
620E 6210 6211 6213 6216 6219 621A
621C 621E 6220 6222 6224 6226 6228
622A 622C 622E 6231 6233 6235 6237
BD 8A MARK 54
25 86 39
CE 009β MRKOK 80 E3 96
26 E4
96
27 EO
97 8C CE 00AO 80 D4 DE 27 D5 OF IC
3D 6527 96 27 16
9R 8C
25 C7 Ol
26
96 D6 44
2=;
90 6553 FINOl
RD 65AA
4F 8EGIN
97 97 97 DE IC DF 96 IC ?6
06 Cl 22 CE 0050 DF IC
Co 19 AODSLK OB ID
24
8SR -
LSR
BCS
LDA A
RTS
LDX
BSR
LDA A
8NE
LDA A
SEO
STA A
LOX
BSR
LOX
BEQ
STX ·
JSR
LDA A
BEQ
TAB
ADD A
BCS
CMP P!
RNE
LDA A
LSR A-
BCS
JSR
JSR
CLR A
STA A
STA A
STA A
LOX
STX
LOA A
BNE
LDA B
CMP B
BHI
LOX
STX
LDA
AOD B
BCC
SETUP
MBKOK «21
frYR T08IN TP7 ERR6 TP7S ERR6 W+4
«ZP TOBIN •TP7 ER R 6 TP5
FILENO TP7S BEGIN
W+4
ERP6
FILE
FINDl
TPOS
BEGIN
FINO+2
CHECK
FNOCMO
CFSZ
CFSZ+1
TP5
AFSZ
TP5
NOSLK
TP5S
»80
ADDSLK
«80
TP5
#25
TP5S
NOMORE RECORO INHIBITED? NO» OKAY TO RECORD
RECORD INHIBIT
SET INDEX TO YR ADDRESS CONVERT ITS CONTENTS TO BINARY
NO. OF FILES TO BE MARKEO>255?
■ NO. OF FILES TO BE SAVE NO. OF FILES TO BE MARKEO
SET INDEX TO 7R ADDRESS CONVERT ITS CONTENTS TO PINARY
FILE SIZE=O. ILLEGAL ARGUMENT SAVE FILE SIZE IN TP5 STARTING FILE MO. TO BINARY
LOAD NE'V FILE NUMBER
IF =0, SET EVERYTHING U=> FOR MARK
NEW FILE+NO. OF FILES>255?
YESf ILLEGAL ARGUMENT
NEW FILE=OLD FILE?
NO, FIND FILE YES. CHECK TAPE POSITION
- IN GAP? _ ..
YES, DON'T SEARCH*, BEGIN MARKING
FIND FILE
CHECK IF RIGHT FILE
CLEAR FINO CMMQ FLAG SET CURR FILE SIZE=O
SET ABS FILE SIZE FILE SIZE>255, NO SLACK
A3S FILE SIZE<80?
NO, ADO. SLACK YES, SET MARKED FILE SIZE TO
SET NEW ABS FILE SIZE=BO
AOD 25 BYTES SLACK SIZE+SLACK>?55?
70 9 8 0 871Q 2 5
ORIGINAL INSPECTED
Page 140 CJ8PG 06/04/75 36:54.05
00289 | 6239 | 4C | 10 | NOMORE | INC | A | TP5S | β | flOATA |
00290 | 623A | 5F | IC | CLR | B | TPS | «37500 | ||
00291 | 623B | 07 | 05 | NOSLK | STA | B | #5 | WAIT | |
00292 | 6230 | 97 | 23 | STA | A | TYPE | «580 | ||
00293 | 623F | C6 | 21 | LDA | B | TP7S | ADATA | ||
00294 | 6241 | 07 | 05 | STA | 8 | START | PREMBL | ||
00295 | 6243 | 96 | 7A | LDA | A ■ | MRK8OT | RCDHO | ||
00296 | 6245 | 26 | 6742 | BNE | PEWIND+5 | AFSZ | |||
00297 | 6247 | 07 | 6668 | START | STA | R | PART | FINl | |
00298 | 6249 | 7E | 18 | JMP | MRKPRE | TP5 | |||
00299 | 624C | PD | 67 | FILEO | JSR | #567 | ÖSFF | ||
00300 | 624F | 20 | OO | BRA | AOATA | RECORD | |||
00301 | 6251 | '86 | OO | NXTFL | LDA | A | AOATA | ||
00302 | 6253 | 97 | STA | A | MRKMR | ||||
00303 | 6255 | 96 | LDA | A | FILE | ||||
00304 | 6257 | OE | CLI | W+4 | |||||
00305 | 6258 | 02 | OO | NOP | NXTFL | ||||
00306 | 6259 | OF | 927C | SEI | |||||
00307 | 62SA | 97 | 660E | STA | A | AFSZ | |||
00308 | 625C | CE | 80 | LDX | AFSZ+1 | ||||
00309 | 625F | BO | OO | JSR | *6 | ||||
00310 | 6262 | 88 | 6676 | EOR | A | TYPE | |||
00311 | 6264 | 97 | 667F | MRKPRE | STA" | A | NXTFL * | ||
00312 | 6266 | 3D | 24 | JSR | YR+1 | ||||
00313 | 6269 | BO | 10 | JSR | FIN2 | ||||
0031* | 626C | DE | IC | LDX | RETGP · | ||||
00315 | 626E | 27 | FF | BEQ | |||||
00316 | 6270 | OE | 6638 | MRKMR | LOX | ||||
00317 | 6272 | 86 | LDA | A | OS80 | ||||
00318 | 6274 | BO | FA | JSR | MRKBOT | ||||
00319 | 6277 | 09 | 0007 | DEX | ADATA | ||||
00320 | 6'278 | 26 | 008C | BNE | »SDF | ||||
00321 | 627A | 7C | 03 . | INC | P.EWINO+1 | ||||
00322 | 627D | 7A | DEC | ||||||
00323 | 6280 | ■ 26. | 24 | BNE | |||||
00324 | 6232 | 4F | 25 | CLR | A | ||||
00325 | 6283 | 97 | 06 | STA | A | ||||
00326 | 6285 | 97 | 23 | STA | A | ||||
00?27 | 6287 | 86 | C8 | LDA | A | ||||
0032« | 6239 | 97 | 99 | FINl | STA | A | |||
00329 | 628B | 20 | 05 | BRA | |||||
00330 | 6280 | 96 | 66C9 | LDA | A | ||||
00331 | 628F | 2R | BMI | ||||||
00332 | 6291 | BO | JSR | ||||||
00333 | 6294 | 4F | 80 | FIN2 | CLR | A | |||
00334 | 6295 | 39 | 7A | RTS | |||||
00335 | 6296 | «6 | OO | LOA | A | ||||
00336 | 6298 | 97 | OF | STA | A | ||||
00337 | 629A | 96 | 6747 | LDA | A | ||||
00338 | 629C | 84 | .AND | A | |||||
00339 | 629E | 7E | JMP | ||||||
YESt ONLY ENOUGH SLACK TO =256
SET FILE TYPE=EMPTY LOAD NEW FILE NO.
IF NOT 0» REGIN MARKING
IF=O.SET MARK BEG. OF TAPE FLAG
REWIND TAPE TO LOAO POINT MARK PART OF PREAMBLE
FORWARD SLOW WRITE OATA=O RECORO GAP
RESTART TAPE IF INTERRUPTED SET INOEX TO MARK 3" GAP '
YES» CAUSE TRANSITION fciRITE 1ST PREAMBLE
RECORD HEAOING MARKER FILE?
YES. ALL DONE NO, LOAD INDEX WITH HO. OF BYTES
SET ACCA WITH ALL ONES RECORD 3YTE OF ALL ONES OECR BYTE CTR
DONE? NOi mark ANOTHER BYTE
YES» INCR FILE NO.
DECR NO. OF FILES TO HE MARKEO
DONE?...NO» MAPK NEXT FILE
SET ABS FILE SIZE=O TYPE=MARKEr FILE
NO. OF FILES<O. ERASE TO END OF TAPE
SET ERASE TO END OF TAPE FLAG
LOAD PRESENT TAPE STATUS FORWARD FAST WRITE
709808/1.Q25 ORIGINAL INSPECTED
Page Hl CJBPG 06/04/75 36:54.05
00341 00342 00343 00344 00345 00346 00347 00348
00349 00350 00351 00352 00353 00354 00355 00356 00357 00358 00359 00360 00361 00362
00363 90364 00365 00366 00367 0 036« 00369 00370 00371 00372 00373
00374 00375 .00376 00377 00378 00379 0 0380
00381 00382 00383 00384 00385 003B6 00387
00388 00389 00390 00391 00392 00393 00394 00395
62Al 62A2 62Ä3 62A5 62A6
62A8 62AA 62AC 62A0 52AE 6280 6283 6284.
6286 6298 6289 6233
6280 628F 62Cl 62C3 62C5 62C7 62CA 62CC 62CE 62D0 6202
6204 6206 6208 620A
4C 4C
D6 54
24 86 97 39.. 4C
97 BO 6168 54
25 86 39
96 81
26 IE OE IA OF DE OF IE
RD 4840 DE DF IC DE OF 86 06 C5
27 4C
THIS ROUTINE RECORDS INFORMATION IN THE CORE OF THE CALCULATOR INTO THE FILE POINTEO
TO BY THE NUMBER IN THE X-PEGISTER. THERE
ARE FOUR RECORD INSTRUCTIONS:
1} FORMAT RECORO
Z) RECOOD PROGRAM
3) RECORO DATA
4) STORE SIWARY
THE RECORD PROGRAM INSTRUCTION STORES THE
PROGRAM BEGINNING AT THE PRESENT PROGRAM
POSITION INTO THE FRE ON THE TAPE.
THE FORMAT RECORD INSTRUCTION DOES THE SAME
EXCEPT THAT THE PROGRAM is STORED AS
Ä SECURED PROGRAM. THE RECORD DATA
IMSTRUCTION USES THE STARTING REGISTER NUMBER IN
THE Y-REGISTER AND THE NUMBER OF REGISTERS IN THE
Z-REGISTER TO STORE DATA INTO A FILE ON THE
TAPE. THE STORE öINARY INSTRUCTION STORES A
SPECIAL PROGRAM ONTO THE TAPE.
FRCRD INC A
RCPRGM INC A
LOA P
LSR B
acc
LDA A STA A RTS
ST8IN INC λ RCOATA STA A JSR LSR 8CS LOA A RTS
PCOOK LDA A CMP A 3NE LDX STX LOX STX JSR
LDX STX LOX STX .LDA A LOA B BIT BEO INC A
FLAG
STBIN
«22
ERROR
W SETUP
RCDOK
«1
NTS8N
TP4
TP7
SPGM
TP6
SU87
TP7
TP5
SPGM
TP7
»3
FLAG
«4
FINRCD FORMAT RECORO ENTRY RECORD PROGRAM ENTRY
SECURED MEMORY? NO. DO THE RECORO SECURED MEMORY .ERROR
STORE ßIMARY ENTRY POINT
RECOPO INHIBITED? NO. OKAY TO RECORO RECORD INHIBITED
STORE BINARY? NO, CONTINUE SAVE ENOING AOOR IN
LOAO START OF SPECIAL PRGM TP7-TP6=CFSZ
STARTING ADDRESS IN TP7 BINARY FILE TYPE
RECORD SPEC PRQM SECURED? NO, TYPE=3
YES, TYPE=4
YES, TYPE=4
709808/1025 ORIGINAL INSFiQTED
Page 142 CJBPG 06/04/75 36:54.05
00396 | 6208 | 20 | 6E | N7S3N | BRA | A | FINRCO |
00397 | 620D | CE | 0000 | LOX | UQ | ||
00398 | 62E0 | DF | IC | STX | TP5 | ||
00399 | 62E2 | CE | 0098 | LOX | #YR | ||
00400 | 62E5 | BO | 61CC | JSR | TOBIN | ||
00401 | 62E8 | 96 | 88 | LDA | W | ||
00402 | 62EA | 27 | 2A | 6EO | A | ROATA | |
00403 | 62EC | 7C | 0020 | INC | TP7 | ||
00404 | 62EF | OE | 20 | LOX | TP7 | ||
00405 | 62Fl | 8D | 6489 | JSR | CHADRS | ||
00406 | 62F4 | 2A | 38 | CONT | BPL | ILLARG | |
00407 | 62F6 | A6 | OO | LDA | A | X | |
00408 | 62F8 | 08 | INX | ||||
©0409 | 62F9 | 7C | 0010 | INC | TP5S | ||
00410 | 62FC | 26 | 03 | BNE | CHKEND | ||
00411 | 62FE | 7C | OOIC | CHKENJD | INC | TP5 | |
00412 | 6301 | 81 | 81 | CMP | A | #SB1 | |
0Ό413 | 6303 | 27 | 05 | BEQ | R | ENDFND | |
00414 | 6305 | 8D | 6489 | JSR | B | CHADRS | |
00415 | 6308 | 2* | EC | ENDFND | 8MI | CONT | |
00416 | 630A | OF | IA | STX | A | TP4 | |
00417 | 630C | 4F | CLR | ||||
00418 | 6300 | 06 | 88 | LOA | A | W | |
00419 | 630F | Cl | 03 | CMP | #3 | ||
00420 | 6311 | 26 | 38 | BNE | A | FINRCO | |
00421 | 6313 | 4C | INC | ||||
00422 | 6314 | 20 | 35 | RDATA | BRA | FINRCO | |
0 0423 | 6316 | 96 | 20 | LOA | TP7 | ||
00424 | 6318 | 27 | 03 | RNERR | 8EO | PNOK | |
00425 | 631A | 86 | 18 | LOA | B | #24 | |
00V26 | 631C | 39 | RNOK | RTS | |||
00427 | 6310 | HO | 646E | JSR | A | ENOADR | |
0042a | 6320 | CE | OOAO | LDX | #ZR | ||
Qd\2<3 | 6323 | 80 | 61CC | JSR | A | TOBIN | |
00430 | 6326 | 06 | 20 | LOA | TP7 | ||
00431 | 6328 | 26 | FO | RNE | A | RNERR | |
00432 | 632A | 96 | 21 | LDA | 8 | TP7S | |
00433 | 632C | 26 | 03 | ILLARG | 3NE | A | RGNTO |
00434 | 632E | 36 | 06 | LOA | 8 | #6 | |
6330 | 3') | RGNTO | RTS | A | |||
0U436 | 6331 | 48 | ASL | B | |||
00437 | 6332 | 59 | ROL | A | |||
00438 | 6333 | 49 | ROL | B | |||
00439 | 6334 | 59 | ROL | A | |||
00440 | 6335 | 49 | ROL | R | |||
00441 | 6336 | 59 | ROL | ||||
00442 | 6337 | 97 | 27 | STA | CFSZ+1 | ||
00443 | 6339 | 07 | 26 | STA | CFSZ | ||
00444 | 6338 | 97 | ID | STA | TP5S | ||
00445 | 6330 | D7 | IC | STA | A | TP5 | |
00446 | 633F | OE | IA | LDX | TP4 | ||
00447 | 6341 | 80 | 6470 | JSR | STAOR | ||
00448 | 6344 | 80 | 6489 | JSR | CHADRS | ||
00449 | 6347 | 2R | Dl | BMI | RNERR | ||
00450 | 6349 | 36 | 02 | LDA | »2 | ||
SET INDEX TO YR ADDRESS CONVERT ITS CONTENTS TO BINARY
W=O « RECORD DATA GET SYSTEM ADDRESS PUT ADDR IN INDEX
STARTING ADDR OUT OF RANGE?
YES. ILLEGAL ARGUMENT NO, LOAD CONTENTS OF MEMORY
INCR ADDRESS INCR CURR FILE SIZE CARRY INTO HIGH 8? NO« CHECK FOR "END
INCR CURR FILE SIZE HIGH "END"?
YES» END FOUND END OF MEMORY?
NO, CONTINUE IN LOOP SAVE ENDING AODR IN TP4
FORMAT RECORD?
SET TO SECURED PROGRAM TYPE
REG. NO. >255? ILLEGAL ADORESS
FIND ENDING ADDRESS Z-REG AODR INTO INDEX CONVERT ITS CONTENTS TO «UNARY
#REGS>255? YES. EO
LOAD NQ. OF PEGS NO. OF REGS=O? YEStILLEGAL ARGUMENT
MULTIPLY NO* OF REGS 3Y
STORE NEW CURRENT FILE SIZE
RELOAD ENOING FINO STARTING ADDRESS
REGISTER EXIST?
REG NOT EXIST, ERROR SET TO DATA TYPE
703808/1025
ORIGINAL INSPECTED
Page 143 CJBPG 06/04/75 36:54.05
00451 | 6348 | .97 | 8C | FINRCD | STA | A | W+4 |
00452 | 6340 | OE | 20 | LOX | TP7 | ||
00453 | 634F | OF | 14 | STX | TPl | ||
00454 | 6351 | 80 | 6551 | JSR | FIND | ||
00455 | 6354 | BO | 65AA | JSR | CHECK | ||
00456 | 6357 | OE | 24 | LDX | AFSZ | ||
00457 | 6359 | 26 | 03 | BNE | NTMRKR | ||
00458 | 6358 | 86 | 11 | LDA | A | «17 | |
00459 | 6350 | 39 | RTS | ||||
00460 | 635E | OE | IC | NTMRKR | LDX | TP5 | |
00461 | 6360 | OF' | 26 | STX | CFSZ- | ||
00462 | 6362 | 96 | 8C | LOA | A | W+4 | |
00463 | 6364 | 97 | 23 | STA | A | TYPE | |
00464 | 6366 | 96 | 24 | LDA | A | AFSZ | |
00465 | 6368 | 06 | 25 | LDA | B | AFSZ+1 | |
00466 | 636A | DO | 27 | SUB | B | CFSZ+1 | |
00467 | 636C | 92 | 26 | SBC | A | CFSZ | |
00468 | 636E | •2A | 03 | BPL | FLRGi | ||
00469 | 6370 | 86 | OF | LDA | A | #15 | |
00470 | 6372 | 39 | RTS | ||||
00471 | 6373 | RD | 6668 | FLRGE | JSR | . PART | |
00472 | 6376 | 80 | 667F | JSR | RCOHD | ||
00473 | 6379 | 7F | 0022 | CLR | CHKSM | ||
00474 | 637C | DE | 14 | LDX | ' TPl | ||
00475 | 637E | A6 | OO | RCDMR | LDA | A | X |
O0476 | 6380 | 98 | 22 | AOD | A | CHKSM | |
00477 | 6382 | 97 | 22 | STA | A | CHKSM | |
00478 | 6384 | A6 | OO | LDA | A | X | |
00479 | 6386 | 90 | 6633 | JSR | RECORD | ||
00480 | 6389 | 08 | INX | ||||
00481 | 638A | 9C | IA | CPX | TP4 | ||
00482 | ,6 38C | ?6 | FO | BNE | RCOMR | ||
00483 | 638E | 96 | 22 | LDA | A | CHKS'-1 | |
00484 | 6390 | RO | 663Θ | JSR | PECORD | ||
00485 | 6393 | 4F | CLR | A | |||
00486 | 6394 | 39 | RTS |
STORE NEW FILE TYPE
STARTING ADORESS INTO TPl
FIND FILE .
CHECK IF RIGHT ONE
MARKER FILE?
YES. WRONG FILE TYPE
SET NEW CURR FILE SIZE SET NEW FILE TYPE
ABS FILE SIZE-CURR FILE SIZE FILE LARGE ENOUGH? FILE TOO SMALL
WRITE PARTIAL PREAMRLE RECORD THE HEAOING
CLEAR CHECKSUM STARTING ADDRESS INTO INDEX LOAD INFO OUT OF CORE AOD IT TO THE CHECKSUM
RESTORE CHECKSUM RELOAD 8YTE RECORD BYTE
DONE RECORDING BOOY? ~ :
NO, RECORD "ORE LOAO CHECKSU" INTO ACCA
RECOPO CHECKSUM
709808/102 5
ORIGINAL
Page 144 CJBPG 06/04/75 36:54.05
00488 00489 00490 00491 00493 00493 00494 00495 00496
00497 0049« 00499 ,00500
•00501 00502 00503 00504 00505 00506 00507 00508
0 0509 00510 00511 00512 00513 00514 00515 00516 00517
.00513" 00519 00520 00521 00522 00523 00524
0052-5 00526 00527 00528 00529 00530 00531
00532 00533 00534 00535 00536 00537 00538 00539 00540 00541 '0054?
■Β·
* S'
THIS ROUTINE LOADS A FILE FPOM THE TAPE ANO EITHER LOADS IT INTO MEMORY OR COMPARES
IT WITH WHAT IS IN MEMORY. THERE ARE FOUR INSTRUCTIONS HANDLED BY THIS ROUTINE: . "
Π LOAO
2) VERIFY
3).FORMAT LOAD
4) LOAD BINARY
ALL FOUR INSTRUCTIONS PERFORM THEIR OPERATIONON THE FILE POINTED TO 8Y THE NUMBER IN THE »-REGISTER.
THE LOAD AND THE VERIFY INSTRUCTIONS PEQUIRE A STARTING ADDRESS OR STARTING REGISTER NUMBER
WHICH IS FOUND IN THE Y-REGISTER. THE
FILE TYPE, WHICH IS DETERMINED WHILE THE TAPE IS RUNNING»
TELLS THE ROUTINE WHETHER IT IS A LOAD DATA ; .
OR A LOAD PROGRAM !VERIFY DATA OR VERIFY PROGRAM). THE FORMAT LOAD LOADS THE. CONTENTS OF THE FILE INTO
MEMORY 8EGINNING AT THE ADDRESS IMMEDIATELY FOLLOWING THE FORMAT LOAD INSTRUCTION
AND» ONCE THE LOAD IS COMPLETE« EXECUTION OF THE NEW
CODE IS BEGUN.· THE LOAD BINAPY INSTRUCTION LOADS A FILE OFF THE TAPE 4ND STORES IT IN MEMORY AS A
SPECIAL PROGRAM.
6395 6396 6397 6398 639A 6390 63A0 63A3 63A6 63AA 63AB
63AD 63AF 63Bl 6384 63B6 63B«
638A 63BC 633E 63C0 63Cl 63C3 63C4 63C6 63C8 63CA 63CD
4C 4C 4C
97 BD 6163 BO 6551 BD 660E
BD 65BE 27 BD 6566 20 F3 OE 27 CE 0098 D6
96
ei oi
2E Cl 27 4A 40
27 50
27 9A
97 BD 61CC 7C 0020
FLOAD L08IN LOAD VERIFY
CHKHD
FILEOK
NTSCRO
INC A
INC A
INC A
STA A
JSR
JSR
JSR
JSR
BEQ
JSR
8RA
LDX
BEO
LDX
LOA R
LDA A
CMP A
BGT
CMP B
BEQ
TST A
BEO
TST B
BEO
ORA A
STA A
JSR
INC
SETUP
FIND
RDHD
PIGHT
FILEOK
RETRY
CHKHD
CFSZ
TYPERR
«YR
TYPE
LOAD AMO RUN EMTRY POINT
LOAD BINARY ENTRY POINT
LOAD ENTRY POINT VERIFY ENTRY POINT ~ "
FIND FILE
BEGIN READING THE FILE
CHECK IF IT IS RIGHT FILE
YES. CONTINUE
NO, FIND PIC1HT FILE
CHECK HEAOPJfi AGAIN
#2 LOAD BINARY?
PRGM FILE?
NTSCPD YES. NOT SECURED
NTSCRO
FLAG
FLAG
TOBIN
TP7
VERIFY?
709808/1025
ORiQINAi. INSPECTED
Page 145 CJBPG 06/04/75 36:54.05
00543 | 63D0 | DE | 20 | MEMOVF | LDX | A | TP7 |
00544 | 63D2 | OF | IE | STX | TP6 | ||
00545 | 6304 | 80 | OA | ENDADD | BSR | ENDADD | |
00546 | 63D6 | BD | 6489 | JSR | CHADRS | ||
00547 | 63D9 | 28 | 14 | 8MI | ADROK | ||
00548 | 6308 | 27 | OF | BEQ | CHKO | ||
00549 | 63D0 | 86 | 07 | LDA | -«7 | ||
00550 | 630F | 39 | RTS | ||||
00551 | 63E0 | DE | 26 | CHKO | LOX | B | CFSZ |
00552 | 63E2 | OF | 20 | STX | TP7 | ||
00553 | 63E4 | BD | 4848 | ADROK | JSR | ADD7 | |
00554 | 63E7 | DE | 20 | LDX | 8 | TP7 | |
00555 | 63E9 | DF | IA | STX | TP 4 | ||
00556 | 63ES | 39 | RTS | ||||
00557 | 63EC | 5D | TST | ||||
00558 | 63ED | 26 | EE | BNE | B | MEMOVF | |
00559 | 63EF | DE | IE | LDX | TP6 | ||
00560 | 63Fl | 06 | 88 | LOA | W | ||
00561 | 63F3 | 27 | 4E | 8EQ | STPTLD | ||
00562 | 63F5 | BD | 40FF | JSR | S4DFF | ||
00563 | 63F8 | 08 | INX | ||||
00564 | 63F9 | Cl | 03 | DTFL | CMP | A | #3 |
00565 | 63FB | 26 | 46 | BNE | STPTLD | ||
00566 | 63FD | 09 | DEX | ||||
00567 | 63FE | DF | CA | STX | UIP | ||
00568 | 6400 | OS | TYPERR | SNX | A | ||
00569 | 6401 | 20 | 40 | SRA | STRTLD | ||
00570 | 6403 | 81 | 02 | NTDTFL | CMP | 8 | |
00571 | 6405 | 26 | 06 | 3NE | NTDTFL | ||
00572 | 6407 | U | C8A | 8 | |||
00573 | 6408 | 2 E | 29 | BGT | DTFLl | ||
0 0 574 | 6404 | 86 | 11 | LDA | #17 | ||
00575 | 640C | 39 | RTS | ||||
00576 | 6400 | 5D | TST | ||||
00577 | 640E | 27 | 19 | BEQ | SPEC | ||
00578 | 6410 | Cl | 02 | CMP | A | «2 | |
00579 | 6412 | 26 | F6 | 8NE | A | TYPER» | |
00580 | 6414 | OE | 23 | LDX | B | SPADRS | |
00581 | 6416 | flD | 71 | 8SR | B | CHADRS | |
00582 | 6418 | 28 | C3 | 8MT | MEMOVF | ||
ÖQ533 | 64 IA | Df | Ü4 | STX | SPGM | ||
00584 | 64 IC | 96 | D5 | NOTSEC | LDA | A | FLAG |
00585 | 64 IE | 84 | FB | S=EC | AND | SJF8 | |
00586 | 6420 | Dft | 23 | LDA | TYPE | ||
00587 | 6422 | Cl | 04 | CMP | S4 | ||
00588 | 6424 | 26 | Ol | 8NE | NOTSEC | ||
00539 | 6426 | IB | A8A | ||||
00590 | 6427 | 97 | D5 | OTFLl | STA | FLAG | |
00591 | 6429 | DE | 54 | LOX | A | SPGM | |
00592 | 6428 | DF | IE | STX | TP6 | ||
00593" | 64?0 | 80 | 81 | 3SR | ENDAOO | ||
00594 | 642F | DE | 54 | LOX | SPG« | ||
00595 | 6431 | ?0 | 10 | BRA | STRTLD | ||
00596 | 6433 | 80 | 61CC | JSP | TOBIN | ||
00597 | 6436' | 96 | 20 | LDA | TP7 | ||
STARTING ADDR INTO TP6
CHECK ADDRESS ADDRESS OUT OF RANGE?
MEMORY OVEPFLOW ERROR
NO. OF BYTES INTO TP7 STARTING ADDP + NO. OF BYTES
STORE ENDING ADDR INTO TP4
EQUAL TO EDPM?
NO, GREATER THAN; ERROR STARTING INTO INDEX
IF VERIFY» START VERIFYING CLEAR 1ST BYTE IF LOAD AT 2ND BYTE
LOAD & RUN? NO, START LOAD
'/ES, SET UIP TO PRGM ♦ S BEGINNING STARTING ADDR INTO ΪΝΟΕΧ AGAIN
OATA FILE?
NO. BINARY FILE LOAD BINARY S, DATA FILE?
NO» OKAY
YES, WRONG FILE TYPE
VERIFY BINARY?
YES, SET UP STARTING ANO ENDING AOORS
LOAD RINARY?
NO, WRONG FILF TYPE LOAO STARTING ADDR OF S^G-SPEC
PSGM TOO PIG?
YES, ERROR RESET SPGM TO NEW AOORESS
CLEAR SECURED BINARY
SECUPEO BINARY?
NO, LOAD
YES» SET SEC BIN BIT AGAIN!
STORE NEW FLAG
INTO TP6
CONVERT STAHTING REG NO TO BINARY
STARTING ADOR OF S FIND ENDING ADDRESS
LOAO STARTING
7 0 9808/1025
i. IsWi
Page 146 CJ8PG 06/04/75 36:54.05
00598 | 6438 | 27 | 03 | RNOERR | BEQ | A | LT256 |
00599 | 643A | •86 | 18 | LOA | «24 | ||
00600 | 643C | 39 | LT256 | RTS | |||
00601 | 6430 | 80 | 2F | BSP | ENDADR | ||
00602 | 64 3F | 80 | 48 | BSP- | CHADRS | ||
00603 | 6441 | 28 | F7 | STRTLO | BMI | RNOERR | |
00604 | 6443 | 7F | 0022 | CLR | CHKSM | ||
00605 | 6446 | RO | 65F9 | RD8YTE | JSR | SPCHl | |
00606 | 6449 | BO | 6501 | JSR | B | READ | |
00607 | 644C | 06 | 88 | LDA | W | ||
00608 | 644E | 26 | 07 | BNE | A | LOBYTE | |
00609 | 6450 | Al | 00 | CMP | X | ||
00610 | 6452 | 27 | 05 | BEQ | A | CMPOK | |
00611 | 6454 | 86 | 10. | LDA | P16 | ||
00612 | 6456 | 39 | LDBYTE | RTS | A | ||
00613 | 6457 | A7 | 00 | CMPOK | STA | A | X |
00614 | 6459 | 9ß | 22 | ADD | A | CHKSM | |
00615 | 6458 | 97 | 22 | STA | CHKSM | ||
00616 | 645D | 0ß | INX | ||||
00617 | 645E | 9C | IA | CPX | TP.4 | ||
00618 | 6460 | 26 | E7 | BNE | RDBYTE | ||
00619 | 6462 | BD | 6501 | JSR | A | READ | |
0062Π | 6465 | 91 | 22 | CMP | CHKSM | ||
00621 | 6467 | 27 | 03 | BEO | A | LDCMPL | |
00622 | 6469 | 86 | OE | LDA | «14 | ||
00623 | 6468 | 39 | LDCMPL | RTS | A | ||
00624 | 646C | 4F | CLR | ||||
00625 | 6460 | 39 | RTS | ||||
REG. NO.<256?
ILLEGAL AODRESS
FIND ENDING ADORESS REGISTER EXIST?
RtG NOT EXIST« ERROR CLEAR CHECKSUM FINO END OF SECOND PREAMBLE
READ BYTE
VERIFY?
YES» COMPARE IT WITH BYTE IN CORE EQUAL» NO ERROR VERIFY FAILED
LOAD! STORE BYTE INTO CORE ADD BYTE TO CHECKSUM RESTORE CHECKSUM
INCR ADDRESS
NOT FINISHED» READ ANOTHER BYTE READ CHECKSUM CHECKSUMS EQUAL?
YES. LOAD OR VERIFY COMPLETE CHECKSUM ERROR
70 9ΊΒ 0 8 / 1 0 2 5
ORIGINAL INSPECTED
Page U7. CJ8PG 06/04/75 36:54.05
00627 | 646E | 96 | 21 | ENOAOR LDA | A | TP7S |
00628 | 6470 | 80 | 4058 | JSR | SAORS | |
00629 | 6473 | OB | . INX | |||
00630 | 6474 | 08 | INX | |||
00631 | 6475 | 08 | INX | |||
00632 | 6476 | 08 | INX | |||
00633 | 6477 | 08 | INX | |||
00634 | 6478 | 08 | INX | |||
00635 | 6479 | 08 | INX | |||
00636 | 647A | 08' | INX | |||
00637 | 6478 | DF | IA | STX | TP 4 | |
00*3ί3 | 6470 | OF | 20 | STAOR STX | TP7 | |
00630 | 647F | OE | 26 | LDX | CFSZ | |
00640 | 64Rl | OF | IE | STX | TP6 | |
00641 | 6483 | BD | 4840 | JSR | SUB7 | |
00642 | 6486 | DE | 20 | LOX | TP7 | |
00643 | 648« | 39 | RTS | |||
00645 | 6489 | OF | 14 | CHAORS STX | TPl | |
00646 | 648B | 06 | 15 | LOA | 3 | TPlS |
00647 | 6480 | OO | OC | SUB | R . | EOPM+1 |
00648 | 648F | 96 | 14 | LDA | A | TPl |
00*49 | 6491 | 92 | OB | S8C | A | EOPM |
00650 | 6493 | 39 | RTS |
LOAD «EG NO.
FIND- ITS SYSTEM AOOPESS
ENDING ADOPESS INTO TP4
ENDING 4D0RESS INTO TP7
CURR FILE SIZE INTO TP6 ENDING AODR-CFSZ=STARTInG ADDR
SET INDEX TO STARTING ADDRESS
709808/1025
ORIGINAL INSPECTED
Page 148 CJBPG 06/04/75 36:54.05
00652 00653 .00654 00655 00656 00657 00658 00659 00660 0066!
00662 00663 00664 •00665 00666 00667 00668 00669 00670 00671 00672 00673 0067*·
00675 00676 00677 00678 00679 0068Π 00681 00682 0068?
» THIS ROUTINE IDENTIFIES THE FILE POINTED
* TO 8Y THE NUMBER IN THE X-REGISTEP.
» WHEN THIS ROUTINE IS FINISHEO» THE STACK WILL
* CONTAIN:
* FILE TYPE IN T
« CURRENT FILE SIZE IN Z
* ABSOLUTE FILE SIZE IN Y ■* FILE NUMRER IN X
* THIS INFORMATION WILL ALSO QE PRINTED
* OUT ON THE PRINTER IF THE PRINT SWITCH IS ON.
00685 00686 00687 •00638 00689 00690
00691 00692 00693 00694 00695 00696 00697 00698 00699 00700 00701
00702 00703 00704 00705 00706
6494 6497 649A 6490 649F 64Δ1 64A3
64A6 64A8 64AA 64AC 64AE 6480 6482 64R5
6487 64R9 64f?C 64βΕ 64C0 64C2
64 C 64C6 64C8 64CA 64CC 64CF 6401 640*
6407 640A 6400 64OF 64El 64E2 64E5
64E7 64E8 64EB 64EE
64Fl
BO 6168 PO 6551 SD 65AA
96 84
97 CE 6518 DF 8D 2D
96 D5 2A 86
97 5F BO 483E 80 80 IE 7F 0022
OE 80 80 DE 80 22 80 OF DE .80 IC =0 5075
80 BD 57Fl 7E 613E =?D 5075
CE 0058 DF OE 4F ■
PO 57B0
OF
39
RO 488C
BO 55F4
RD 740A
OE 2D
IOENT JSR JSR JSR LDA A AND A
STA A LDX STX BSR LDA A BPL LDA A STA A
TKA JSR BSR BSR CLR LOX 3SR BSR LDX 9SR
BSR LDX 9SR JSR 3SR JSR JMP
HSSG JSR LOX STX LDX CLR A '- JSR
STX RTS
PRINFO JSR JSR JSR LDX
SETUP
FIND
CHECK
FLAG
a$9D
FLAG
a IDTBL
M.SS6
FLAG
TKA
#520.
BUFF+7
BINRCD+2
EOLO
MSSG
CHKSM
CHKSM
PPINFO
MSSG
CFSZ
PRINFO "
MSSG
AFSZ
PRINFO
RLANK
IDPRNT
POLLU
TPNOFF
QLANK
«S58
BFPTR
LDMSG W FIND FILE-CHECK IF IT IS PIGHT FILE
RESET CASSETTE OP FLAG
LOAD STARTING ADDR OF IO TABLE
SAVE IT IM W
TRACK B?
YES, PUT MINUS SIGM On FILE NO.
NO» PRINT FILE NO.
CLEAR CHECKSUM WOPD " " "
LOAn FILE TYPE PRINT FILE TYPE
LOAD CUR=EMT FILE SIZE
PRIMT CURRENT FILE SIZE
"
LOAD ABSOLUTE FILE SIZE PRINT ABSOLUTE FRE SIZE
PUT FILE NUMBER IN X
BLANK OUT RUFFER
SET RUFF PTR TO 8EG OF BUFFER LOAD MESSAGE PTP
LOAD MESSAGE
STORE MESSAGE PTR
STORE MESSAGE PTR
8INBCD CONVERT BINARY TO SCO
STKUP+55 STACK UP
XRO ZERO OUT X-PEGISTER
T2
7 0 9808/1025 ORiGSNAL INSPECTED
Page 149 CJBPG 06/04/75 36:54.05
00707 | 64F3 | .27 | 09 | BEQ | A | EQLO |
00708 | 64F5 | OF | 92 | STX | A | XR+2 |
00709 | 64F7 | 86 | 03 | LDA | «3 | |
00710 | 64F9 | 97 | 90 | STA | A | XP |
00711 | 64FR | BO | 7406 | JSR | A | NOR |
00712 | 64FE | 96 | 90 | EQLO LOA | A | XR |
00713 | 6500 | 4C | INC | A | ||
00714 | 6501 | 48 | ASL | |||
00715 | 6502 | 48 | ASL | |||
00716 | 6503 | CE | 0060 | LDX | A | «8UFF+8 |
00717 | 6506 | 80 | 4EA4 | JSR | DGTS | |
00718 | 6509 | 96 | 09 | IDPRNT LDA | A | PSFLG |
00719 | 6508 | 28 | OA | BHI | «+12 | |
00720 | 650D | 48 | ASL | A | ||
00721 | 650E | 2A | 04 | 8PL | »+6 | |
00722 | 6510 | 96 | 12 | LOA | SFLG | |
00723 | 6512 | 27 | 03 | BEQ | *+5 | |
00724 | 6514 | 7E | 6020 | JMP | PRTOR1V | |
00725 | 6517 | 39 | RTS | |||
00727 | 6518 | 26 | IDTBL FCB | 526 | ||
00728 | 6519 | 29 | FCB | S29 | ||
0072*3 | 6514 | 2C | FCB | S2C | ||
00730 | 6518 | 25 | FCB | 525 | ||
00731 | 651C | 84 | FCB | SB4 | ||
00732 | 6510 | 39 | FC8 | S39 | ||
00733 | 651E | 30 | FC8 | S30 | ||
00734 | 651F | ?5 | FCB | $25 | ||
00735 | 6520 | B5 | FC8 | SB5 | ||
00736 | 6521 | 33 | FCB | S33 | ||
00737 | 6522 | 25 | FCB | 525 | ||
0073a | 6523 | 24 | — | FC3 | $24 - | |
00739 | 6524 | AO | FCB | SAO | ||
00740 | 6525 | 21 | FCB | 521 | ||
00741 | 6526 | 38 | FCB | S38 | ||
LOAD 4 BCD DIGITS INTO X
SET EXPNT TO 3 · NORMALIZE THE NUM8ER
LOAD NEW EXPNT
LOAD DIGITS INTO BUFFER PROGRAM RUNNING?
PRINT IF RSFLG=OO?
NO PRINT IF RSFLG=Ol AND SFLG=O
FILE:
type:
USED MAX!
709808/1025 ORiGlMAL IMSFECTED
Page 150 cjbpg 06/04/75 36:54.05
00743 | 6527 | CE | 0090 | • | CONVERTS THE (7ILE NUMBER TO | • | A | «XR | THE CASSETTE TO THE |
00744 | 652A | RO | 61CC | ♦ | ·» BINARY AND CHANGES | * 1) POSITIVE FILE | TOBIN | ||
00745 | 6520 | 96 | 20 | « PROPER TRACK | • 2) NEGATIVE FILE- | TP7 | NC=TRACK A | ||
00746 | 652F | 27 | 03 | » | θ | FNOK | NO.=fRACK B | ||
00747 | 6531 | 7E | 6101 | * THIS ROUTINE | <y | ERR6 | |||
.00748 | 6534 | 06 | 05 | FILENO LDX | A | FLAG | |||
00749 | 6536 | 17 | JSR | SET INDEX TO X-REG AOORESS | |||||
00750 | 6537 | 98 | 91 | LDA | A. | XR+1 | CONVERT ITS CONTENTS TO RIN/ | ||
00751 | 6539 | 2A | 03 | BEQ | Δ | SAME | |||
00752 | 653B | 4F | JMP | A | FILE NO. > 255? | ||||
00753 | 653C | 97 | 06 | FNOK LDA | TPOS | YES, ILLE6AL ARGUMENT | |||
00754 | 653E | 96 | 91 | TBA | A | XR+1 | |||
00755 | 6540 | 2A | 06 | EOR | Pt | TRACK4 | |||
00756 | 654? | 86 | 12 | BPL | «S12 | SAME TRACK? | |||
00757 | 6544 | CA | 80 | CLR | A | #580 | YES. DON'T SET TPOS=LOST | ||
00758 | 6546 | 20 | 04 | STA | B | TRACK | |||
00759 | 6548 | 36 | 16 | SAME LDA | R | *S16 | YES. TfOS=LOST | ||
00760 | 654A | C4 | IF | BPL | A | «S7F | FILE NO. 0OSITIVE? | ||
00761 | 654C | 07 | 05 | LDA | FLAG | YES» TRACK A | |||
00762 | 654E | 97 | OO | ORA | ADATA | NO, TRACK B SELECT | |||
00763 | 6550 | 39 | BRA | SET TRACK β | |||||
007A4 | TRACKA LDA | ||||||||
00765 | . AND | TRACK A SELECT COED | |||||||
00766 | TRACK STA | SET TRACK A | |||||||
00767 | STA | RESTORE FLAG | |||||||
00768 | RTS | CHAN6E TRACKS | |||||||
00769 | |||||||||
00770 | |||||||||
- 00771 | |||||||||
0077? | |||||||||
709808/1025
ORIGINAL !MSFEGTED
-. 174 -
Page 151 CJ8PG 06/04/75 36:54.05
00774 00775 00776 00777 00778 00779 00780 00781 00782
007R3 00784 00785 00786 00 787 00783 00789 00790 00791
00792 00793 00794 00795 00796 00797 00798 00799 008O0 00801 00802 00803
00804 00805 00806 00807 00808 00809 00810 00811 00812 00813
00814 00315 00Ή6
00817
THIS SUBROUTINE PERFORMS A FAST FILE SEARCH TO THE FILE POINTED TO BY
THE NUMBER IN THE X-REGISTER.
00819 00820
6551 8D 6553 9F 6555 6557 6559 6558 6550 BD
6560 BD 6563 7C 6566 SD 6569 656B 656D
656F BD 6572 6574 6576 BD 6579 6578 657C 657E 657F 7F
6532 9F 6584 6586
6588 9* 658Λ 658B 658D 7C
6590 6592 6594 7A 6597 6599 6593 «590 7C
65A0 65A2 65A4 RD 65A7 7E
04
7C
D6
03
OE
17
66CD
660E
002A
66D3
07
21
10
66D3
2A
03
66C9
06
OF
002A
7C
21
•11
06
03
00D7
17
OE
00D7
00
57
05
0007
C7
00
6698
6681
FIND
RETRY NTLOST
FAST
FNEX
DCFN
FLTX
COUNT
BSR
STS
LOA A.
AND A
BNE
LDA A
JSR
JSR
INC
JSR
LDA A
CMP A
BNE
JSR
LOA A
BEQ
JSR
.LDA A
LSR A
BCC
RTS
CLR
STS
CMP A
SLS
LDA A
LSR A
3CS
INC
LDA A
3SR
DEC
3RA
LDA A
BSR
IfJC
BRA
STA A
JSR
JMP
FILENO
STACK
TPOS
#3
NTLOST
*$17
RETGP+4
RDHD
KNWALL
STOP
FILE
TP7S
FNEX
STOP
KNWALL
FAST
RETGP
TPOS _
DCFN-3
KNWALL
STACK
TP7S
FLTX
TPOS
DCFN FILE
COUNT
FILE
NTLOST
«S57
COUNT
FILE
NTLOST
ADATA
OSRCH
GSPCH NO, BEGIN FILE SEA»C«
REVERSE FAST READ DATA=O
FIND FIRST GAP IN REV DIR READ ITS HEADING SET KNOW ALL FLAG
FILE=XFILE?
NO, CHECK DIRECTION TO GO
IF KNOW ALL ABOUT HEADING. RETURN SLO RETURN TO GAP SLOW
TPOS=GAP?
NO, FAST PEWIND TO THE GAP
CLEAR KNOW ALL FLAG
FILE < XFILE?
TPOS=GAP?
YES, DON'T CHANGE FILE NO.
YES, INC FILE *iO.
FORWARD FAST READ DAIA=O
IMCR FILE NO.
START TAPE
DATA SEARCH
GAP SEARCH
DATA SEARCH
GAP SEARCH
709808/1025 OBfQLMAL IMSP2Ü7ED
Page 152 CJRPG 06/04/75 36:54.05
00 «2 2 | 65ΔΑ | 7D | 002A | CHECK | TST | A | KNWALL |
00823 | 65AD | '2h | OE | BNE | A | FIN | |
00fl?4' | 65AF | PD | 660E | JSR | PDHD | ||
00825 | 65R2 | PO | 66C9 | JSR | B | RETGP | |
00826 | 6535 | 8D | 07 | BSR | B | RIGHT | |
00827 | 65B7 | 27 | 04 | BEQ | FIN | ||
00*28 | 65B9 | 80 | C4 | BSR | FNEX | ||
00829 | 65BB | 20 | ED | BRA | CHECK | ||
00830 | 65BD | 39 | FIN | RTS | A | ||
0083? | 65BE | 96- | 07 | RIGHT | LDA | FILE . | |
0O833 | 65C0 | 91 | 21 | CMP | TP7S | ||
00«34 | 65C2 | 26 | 04 | BNE | NTRFL | ||
00835 | 65C4 | 5F | CLR | ||||
00836 | 65C5 | 07 | 7B | STA | FNDCMO | ||
00837 | 65C7 | 39 | AGAIN | RTS | |||
00838 | 65C8 | 7A | 002D | NTRFL | DEC | FLCTR | |
00839 | 65CB | 26 | FA | BNE | AGAIN | ||
00*4(1 | 65CD | .86 | 12 | LDA | »18 ' | ||
00841 | 65CF | 20 | 62 | BRA | ERR | ||
KNOW ALL FLAG SET?
YES» FINISHED NO. PEAD HEADING RETURN TO THE GAP RIGHT FILE? YES» RETURN
NO, LOOK FOR RIGHT ONE CHECK NEW FILE
LOAD FILE NO.
IS IT THE RIGHT ONE?
NO, DECR FILE CHECK CTR SET EXIT FLAG CLEAR FIND CMMD FLAG
DEGR FILE CHECK CTR FAILED CHECK 5 TIMES? FILE NOT FOUND
7 09 808 / 10 2 5 ·' OhKMNAL INSPECTS)
Page 153 CJBPG 06/04/75 36:54.05
00843 008*4 00845 00846
00847 008*8 00849 00850 00«51
00852 00853 00854 00855 00856 00857 00858 00859 00860
00861 00362 00863 00864 00P65 00*66 00867
Q0P6B 00370 00871 00872 00873
00874 00875 00*76 00877 00878 00879
00*30 00881
00882
♦ READ SERVICE ROUTINES •β
6501 6503 65D5 6507 6509 650B
650D 65DE 650F 65El 65E2 65E4 65E6
65E7 65E8 65EA 65EC 65EE 65F0
65F3 65F5 65F6 f>5F9 65FB 65F0 65FF ■6601
6603 6604 6606 6608 6609 6608 6600
96 2A FC
96 C6. FO 86
97 SC 4F
36
CR 5A
96 2A F8 32 50 2C
98 2C 06 C6 FB
78 002C 24 E9 39
BO 6699 06 00 * 06 2A FC C6 96 5A
96 2A FB 50
2A F4 96 39
READ
TRANS TRANSl
READO
PAST SRCHl
NTONE NOTRN
LDA A 8PL LDA A LOA LDA A STA A CLR A PSH A
AOD P OEC B LDA A 8PL PUL A TST B •8GE
AOD A LOA LDA ASL BCC RTS JSR LDA P LOA B BPL LDA B LDA A
DEC Β LDA A RPL TST B
BPL LOA A RTS
ACTL LOOK FOR EMO OF 9TH 8IT
»-2 FOUND ITS END?
ADATA VES. RESET TRANSITION BIT
«-3 · YES» SET READ OFFSET
MASK SET MASX=I
SAVE BYTF. BEING REAO
S24 AOD THRESHOLD TO OFFSET (T=216 USEC:
OECR TIMING CTR
ACTL TRANSITION OCCURRED?
TRANSl NO« CONTINUE IN LOOP
RELOAD BYTE REING READ.
READO CTR>=0· PIT=O
MASK CT»<0» BIT=I
ADATA RESET TRANSITION BIT
a-5 SET READ OFFSET
MASK SHIFT MASK TO- NEXT BIT »STN
TRANS CARRY CLEA», SYTE NOT FIMISHEO
OSPCH GET PAST SWITCH-TO-1WRITE"GLITCH
AOATA RESET TRANSITION BIT
ACTL TRANSITION?
SPCH1+2
«22 SET PEO THRESHOLD
40ATA RESET TRANSITION
. OEC«3 TIMING CTR
ACTL TRANSITION?
NOTRN NO. CCNTIMiJE
SIT=O?
NTONE YES» COMT LOOKING FOR 1ST ONE
ADATA RESET TRANSITION PIT
709808/1025
Page 154 CJ3PG 06/04/75 36:54.05
- 177 -
00S84 | 660E | «56 | 77 RDHD | LOA | A | «577 |
00835 | 6610 | 97 | oo· | STA | A | ADATA |
00886 | 6612 | CE | FFF9 | LDX | a-7 | |
00887 | 6615 | BD | 6699 | JSR | DSRCH . | |
00888 | 6618 | 80 | DC | 8SR | PAST | |
00.889 | 661A | 80 | 35 | SSR | READ | |
00890 | 661C | 97 | 89 | STA | A | -W+l |
00891 | 661E | ■57 | 22 | STA | A | CHKSM |
00892 | 6620 | 50 | AF RORST | 8SR | READ | |
00893 | 6622 | A7 | 2A | STA | A | S2AfX |
00894 | 6624 | 98 | 22 | ADD | A | CHKSM |
008Q5 | 6626 | 97 | 22 | STA | A | CHKSM |
00896 | 6628 | 08 | INX | |||
00897 | 6629 | 26 | F5 | BNE | RDRST | |
00398 | 662B | SD | A4 | 3SR | READ | |
00899 | 6620 | 91 | 22 | CMP | A | CHKSM |
00900 | 662F | 27 | 05 | BEQ | HDRED | |
00901 | 6631 | 36 | OE | LDA | A | #14 |
00902 | 6633 | 7E | 619F ERf? | JMP | ERRMSG | |
00903 | 6636 | 96 | 89 HDRED | LDA | A | W+l |
00904 | 663a | 97 | 07 | STA | A | FILE |
00905 | 663A | 39 | RTS |
FORWARD SLOW REAH DATA=O START TAPE
SET INDEX TO HEADING TEMP OFFSET DATA SEARCH
FIND END OF 1ST PREAMBLE
READ FILE NO.
SAVE IT UNTIL HEADING IS »EAD CORRECT INITIALIZE CHECKSUM
READ NEXT BYTE OF HEADING STORE IT IN TE^PS ADD IT TO CHECKSUM RESTORE CHECKSUM
NO, REAO ANOTHER BYTE
YES. READ CHECKSUM CHECKSUMS EQUAL? YES» HEADING READ CHECKSUM ERROR
STORE NEW FILE NO. IN FILE
709808/1025
OBSQIMAL INSPECT!
Page 155 CJBPG 06/04/75 36:54.05
00907 00908 00909 00910 00911 00912 00913 00914 00915
00916 00917 00918 00919 00920 00921 00922 00923 00924
00925 00926 00927 00928 00929 00930 00^31 0093?
00933 00934 00936 00937 00938 00939 00940 00941 00942 00943 00944 00945 00946 00947
* RECORD SERVICE ROUTINES,
663R 663D 663E 6640 6642 6644 6646 6648
6643 664E 6650 6652
6654 6656 6657 6659 665B 665D 665F 6660 6662 6665 6667 6668 666A 666C"
666E 6670 6672 6674 6676 6677 t>679 6679
667D
C6 E2 5C
26 FD D6 C8 D7 C6 FA 7F 002C 7C 002C CB 95 2C
27 CR 5A
?6 FD
06 C8
07 02
C6 FA 78 002C 24 E7 39
DE DF R6 97 3D
96' 97 4F
BD C2 86 C6 F5 20 C9
RECORD LDA B INC B BNE LDA P EOR
STA R LDA B
N09TH CLR INC
BYTE ' AOD R BIT A BEQ ADO B
BIT DEC B BNE LDA EOR B STA B
NOP LDA B ASL BCC RTS
PART LDX STX LDA A STA A BSR LDA A STA A
PREMBL CLR A
BSR LDA A LDA B BRA
«-30
ADATA ADATA
MASK
MASK
«18
MASK
BIT
«36 '
BIT AOATA 3580 ADATA
MASK BYTE
SPGM
SPADRS
«$77
AOATA
DSRCH
«$67
ADATA
RECOPD #$80 «-11 MO9TH
WAIT 130 USEC FOR 9TH 3IT
9TH 8IT SET WRITE OFFSET
SET MASK=I AOD ZERO COUNT (0=108 USECI
IS BIT A ONE OR A ZERO?
ADD 0-1 DIFFERENCE (1=324 USECJ DECR TIMING CTR
TIMIMG CTR=O?
YESt CHANGE DATA OUT 3IT -
SET WRITE OFFSET SHIFT MASK LEFT ONE done With ςγτε?
YES, RETURN
SAVE SPGM STARTING ADDRESS
FORWARD SLOW PEAD OATA=O
START TAPE OATA SEARCH FORWARD SLOW WRITE OATA=O
SET fiCCA TO ALL ZEPOES
WRITE <? ZEROES LOAD 7 ZEROtS AND A ONE SET TIMING CTR
RECORD RESET OF PREAMBLE
7098-08/1025
QRKSINAl SHSPSOTSO
- 179 Page 156 CJBPG 06/04/75 36:54.05
00949 | 667F | 96 | 07 RCDHD | LDA | A | FILE |
00950 | .6681 | 97 | 22 | STA | A | CHKSM |
00951 | 6683 | 80 | 86 | 8SR | RECORO | |
00952 | 6685 | CE | FFF9 | LDX | #-7 | |
00953 | 6688 | A6 | 2A " MRHD | LDA | A | S?A,X |
00954 | 668A | 9R | 22 | ADO | A | CHKSM |
00955 | 668C | 97 | 22 | STA | A | CHKSM |
00956 | 668E | A6 | 2A | LDA | A | S2A,X |
00957 | 6690 | 8D | A9 | BSR | RECORD | |
00958 | 6692 | 08. | INX | |||
00959 | 6693 | 26 | F3 | BNE | MRHD | |
00960 | 6695 | 96 | 22 | LDA | A | CHKSM |
00961 | 6697 | 80 | A2 | BSR | RECORD | |
00962 | 6699 | 20 | DB | BRA | PREMBL |
LOAD FILE NO.
INITIALIZE CHECKSUM RECORD FILE NO.
SET INDEX TO HEADING TEMP OFFSET LOAD OTHER HYTES IN HEADING
ADD IT TO CHECKSUM RESTORE CHECKSUM
RELOAD HEADING BYTE RECORD NEXT «YTE OF HEADING INCR HEADING TEMP PTR
NO, DO NEXT BYTE YES 9 LOAD CHECKSUM RECORD CHECKSUM RECORD 2ND PREAMBLE
709808/1025
Page 157 CJ8PG 06/04/75 36:54.05
00964 | 6693 | 86 | 06 | » SETARC-H ANO | LOA | A | * | SET NO. OF TRANSITIONS CTR. | • |
00965 | 6690 | D6 | OO | O | LOA | 8 | TAPE MOVEMENT ROUTINES. | RESET TRANSITION HlT | |
009*6 | 669F | OE | « | CLI | RESTART TAPE IF INTERRUPTED | ||||
00967 | .66AO | 02 | OSRCH | NOP | TRANSITION? | ||||
00968 | 66Al | OF | BTOCC | SEI | #6 | NOtCHECK AGAIN | |||
00969 | 66A2 | 07 | OO | NOQIT | STA | ß | - ADATA | YESi OECR NO. OF TRANS CTR | |
00970 | 66A4 | 7D | 0001 | TST | NOt LOOK'FOR ANOTHER | ||||
00971 | 66Δ7 | 2Δ | F6 | 8PL | |||||
00972 | 66A9 | 4A | DEC | A | TPOS =DATA | ||||
00973 | 66AA | 26 | Fl | 8NE | ADATA | ||||
00974 | 66AC | 86 | 02 | LDA | A | ACTL | LOAD .35" 3 60 IPS | ||
00975 | 66AE | 97 | 06 | STA | A | NOBIT | |||
00976 | 661^O | 39 | RTS | SEARCH SPEED? | |||||
00977 | 66Bl | CE | 0190 | LDX | BTOCC | YES. GO TO LOOP | |||
00978 | 66B4 | 96 | OO | LDA | A | «2 | LOAD .75" « IO IPS | ||
00979 | 6636 | A5 | 20 . | BIT | A | TPOS | TRANSITION? | ||
009Ö0 | 66*3 | 27 | 03 | GSHCH | BEQ | CES. START ALL OVER | |||
00981 | 66B4 | CE | 1388 | LDX | #400 | NO» DECR CTR | |||
00983 | 6630 | D6 | Ol | LDa | H | AOATA | FOUND GAP? NO. CONTINUE LOOPING | ||
009«4 | 66RF | 29 | FO | 3MI | ' «520 | ||||
00985 | 66Cl | 09 | OEX | CNTLP | TPOS=GAP | ||||
00986 | 66C2 | 26 | F9 | CNTLP | BNE | «5000 | |||
00987 | 66C«. | 86 | Ol | LDA | A | ACTL | ... - ... . — | ||
00988 | 66C6 | 97 | 06 | STA | A | GSRCH | PEVERSE SLOW READ OATA=O | ||
00.939 | 66C5 | 39 | RTS | START TADE | |||||
00990 | 66C9 | «0 | 08" | ISGAP | BSR | CNTLP | OATA SEARCH | ||
00991 | 66C3 | 86 | 37 | LDA | A | «1 | GAP SEARCH | ||
00992 | 66CD | 97 | OC | STA | A | TPOS | |||
00993 | 66CF | 80 | CA | RETGP | esR | STOP | |||
0099a | 66Dl | 80 | OE | BSR | - STOP " | READ | |||
00996 | 6603 | 96 | OO | LDA | A | #537 | STOP TAPE | ||
00997 | 6605 | 84 | FO | AND | A | ADATA | WAIT FOR TAPE TO STOP ' | ||
00993 | 6607 | 3Δ | 10 | ORA | A | DSRCH | |||
0Q999 | 6609 | 97 | OO | STOP | STA | A | GSRCH | WAIT DONE? | |
01000 | 660=3 | CE | 3004 | LDX | ADATA | ||||
01001 | 660ε | 09 | DEX | *5>F0 | |||||
01002 | 66DF | 26 | FD | 3NE | #$10 | ||||
01003 | 66El | 39 | RTS | ADATA | |||||
01004 | WAIT | «12500 | |||||||
01005 | |||||||||
01006 | WAIT | ||||||||
01007 | |||||||||
01003 | |||||||||
709808/1025
- 181 Page 158 CJ8PG 06/04/75 36:54.05
01010 | 66E2 | 5F | 28 | LOOK | CLR | B | VALID |
01011 | 66E3 | «0 | 23 | NTINVT | BSR | FNDVTP | |
0101? | 66E5 | 27 | 78 | 8EQ | ATI | ||
01013 | 66E7 | 96 | 03 | LDA | A | «3 | |
01014 | 66E9 | 81 | OA | CMP | A | BEG | |
01015 | 66EB | 23 | 2F | 8LS | «52F | ||
01016 | 66ED | 81 | 03 | CMP | A | PASS2 | |
01017 | 66EF | 22 | BHI | ||||
01018 | 66Fl | 5D | 08 | FOOT | TST | B | END |
01019 | 66F2 | 26 | BNE | ||||
01020 | 66F4 | 5C | EC | PASS2 | INC | B | NTINVT |
01021 | 66F5 | 20 | 57 | BRA | »$57 | ||
01022 | 66F7 | 86 | BEG | LDA | A | • | |
01023 | 66F9 | 5F | 02 | CLR | B | KWE | |
01024 | 66FA | 20 | 17 | BRA | #$17 | ||
01025 | 66FC | 86 | 2E | END | LDA | A | SAVE |
01026 | 66FE | 91 | El | KWE | CMP | A | NTINVT |
01027 | 6700 | 27 | 2E | BEQ | SAVE | ||
01028 | 6702 | 97 | CD | .STA | A | STOP | |
01029 | 6704 | 8D | 08 | '8SR | VALID | ||
01030 | 6706 | 80 | 09 | SSR | NTINVT | ||
01031 | 6708 | 26 | 04 | BNE | 84 | ||
01032 | 670A | «6 | 06 | FNOVTP | LDA | A | TPOS |
01033 | 670C | 97 | C3 | STA | A | STOP | |
01034 | 670E | 20 | 38 | BRA | COT | ||
01036 | 6710 | 80 | 02 | VALID | BSR | BDATA | |
01037 | 6712 | 96 | Ό000 | LOA | A | SO | |
01038 | 6714 | CE | 2E | LDX | SAVE | ||
01039 | 6717 | 96 | OO | LDA | A | ADATA | |
01040 | 6719 | 97 | STA | A | |||
01041 | 6718 | 08 | 78 | NOHOLE | INX | ATI | |
01042 | 671C | OF | 4E20 | STX | #20000 | ||
01043 | 671E | 8C | 19 | CPX | VLDTP | ||
01044 | 6721 | 27 | 03 | 8EO | 9CTL | ||
01045 | 6723 | 96 | F 4 | LDA | A | NOHOLE | |
010Δ.6 | 67?5 | 2A | 00C8 | BPL | #200 | ||
01047 | 6727 | CE | P2 | LDX | WAIT | ||
01043 | 672A | 80 | BSR | ||||
01049 | 672C | 37 | 13 | LIGHT | PSH | 8 | «19 |
010?0 | 672D | R6 | 15 | LDA | Δ | «SI 5 | |
01051 | 672F | C6 | OO | LDA | a | AOATA | |
01052 | 6731 | 07 | 04 | STA | R | INPUT | |
01053 | 6733 | 06 | 04 | LDA | B | 24 | |
0105* | 6735 | CS | IF | BIT | B | OFF | |
01055 | 6737 | 27 | BEQ | ||||
01056 | 6739 | 33 | 03 | PUL | P | RCTL | |
01057 | 673A | 96 | LOA | A | |||
0105R | 673C | 39 | VLOTP | RTS | |||
FIRST PASS
LOOK FOR 2 1/2 FT OR HOLE 2 1/2 FTt FOUND VALID TAPE
HOLE. CHECK DISTANCE
YES» BEGINNING OF TAPE <=1 1/2 FT?
NO, 2 FT
FIRST PASS?
NO. AT END OF TAPE YES, INCR PASS WORD TO 2ND PASS
FORWARD FAST READ DATA=O FIRST PASS
KNOW WHICH END
REVERSE FAST READ OATA=O SAME DIRECTION?
YES, CONT LOOKING FOR 2 1/2 FT NO, SWITCH DIRECTIONS AND CONT LOOKIN
BACK TAPE ACROSS HOLE HOLE HIT, CONTINUE IN NOOP
LOST BUT IN VALID TAPE
CHECK IF CARTRIDGE IS OUT RESET EOT S, COT INTERRUPT BIT
LOAD TAPE STATUS START TAPE
INCREMENT DISTANCE CT»
2 1/2 FT?
YES, CHECK IF IN VALID TAPE
NO, HOLE BEEN HIT?
NO, CONTINUE IN LOOP
WAIT UNTIL PAST .023" HOLE SAVE Β ACCUM
ENP OF TAPE ERROR
TAPE SPOOLED OFF? YES, GIVE ERROR
NO, RELOAD ACC8
HOLE HIT?
NO, RELOAD ACC8
HOLE HIT?
70 9808/1025
INSPECTED
Page 159 cJRPG 06/04/75 36:54.05
- 182 -
01060 01061 01062 01063 0106* 01065 01066 01067 01069
01070 01071 01072 01073 01074 01075
6730 6740 6742 6744 6746 6747 67Δ-9
6748 6740
6751 6753 6754 67=56 6753
RD 6168 97 2B
9F 7C 86 17 · OE
«3700 20 FC 20 16
97 96 44
24 E6 96 7E 619F
REWIND JSR
STA A STS LDA A CLI . STA A ' BRA
STOPl BRA
COT LOA A STA A LDA A LSR A BCC LDA A
OFF JMP
SETUP PEwFLG STACK #517
ADATA *-2
STOP #515 ADATA · INPUT
VLDTP
#20
EPRMSG
CARTRIDGE OUT? NO. IT IS IN CAPTRIDGE OUT ERPOR
0 9 8.08/1025
OH!f
Page 160 CJBPG 06/04/75 36:5*.05
01077 01078 01079' 01080 01081 01082
01083 01084 01085 01086 01087 01088 01089 01090 01091
01092 01093 01094 01095 01096 01097 01098
01099 01100 01101 01102 01103
01104 01105 01106 01107 01108 01109 01110 01111 01112 01113 01114 01115
01116 01117 01118
01119 01120 01121 01122
01123 01124 01125 011?6 01127 01128
01129 01130 01131
* THIS ROUTINE IS THE COT AND EOT INTERRUPT
* ROUTINE. IT HANDLES THE SITUATIONS WHERE THE
* CARTRIDGE IS REMOVED IN THE MIDDLE OF
* A CASSETTE ROUTINE AND WHERE THE TAPE HITS EITHER
* THE LOAD POINT OR EARLY WARNING HOLES
* ON THE TAPE.
675B 4F 675C OF 675D 675F 8Δ
6761
6762 6764 CE 6767 BD 676A 8D
676C C4 676E C3 6770 6772 6774 6776 6778 677A
677C 677E 4F 677F 6781 9E 6783 OE
6785 *F
6786 6E 6783 9E
678A 678C 6780 PA 678F 6701 6793 fJO
6796
6798 679A 4F
6799 679D 4C 679E 67A0 67A2
67A4 67A6 67A8 67AA 67AC 67AE BD
HOLE
00 37
00
61A8
66DE
CO
DF
40
2E
D7
3C
03
96
OC
CD
06 8D 8A
00 7C 2E
3C
06
05
66E2
E9
Bl
D7
D6 02 3D 03 7A IE 77 00 66DS
OVER
HIT
CLR | A | ADATA | SO SEI-SEI WORKS!!! |
SEI | «$37 | ||
LDA | A | ||
ORA | A | ADATA | READ SLOW |
TAB | «25000 | ||
STA | A | WAIT | START TAPE |
LDX | LIGHT | ||
JSR | £$DF | WAIT 2" | |
BSR | «S40 | TAPE SPOOLED OFF? | |
AND | B | SAVE | FAST |
EOR | B | STOPl | OPPOSITE DIRECTION |
STA | B | #$3C · | SAVE TAPE STATUS |
BSR | BCTL | STOP TAPE | |
LDA | A | VALID | |
STA | A | HIT | DISABLE EOT & COT INTERRUPT |
BSR | STOPl | BACK TAPE ACROSS HOLE | |
BNE | HIT HOLE? | ||
BSR | TPOS | ||
CLR | A' | SAVSTK | NO. FALSE HOLE |
STA | A | SVINS | TPOS=LOST |
LDS | RESET STACK PTR | ||
LDX | X ' | LOAD STARTING ADOR OF IMSTR | |
CLR | A | STACK | |
JMP | SAVE | DO INSTR OVER AGAIN | |
LDS | |||
LDA | A | EOT | RELOAD TAPE STATUS |
ASL | A | TPOS | FOPWARD DIRECTION? |
BPL | KNOWN | NO, END OF TAPE | |
LDA | A | LOOK | |
BNE | OVER | POSITION'KNOWN? | |
JSR | STOPl | WHICH HOLE? | |
BRA | DO REWIND AGAIN | ||
BSR | FILE | ||
CLR | A | ||
STA | A' | TPOS | FILE=O |
INC | A | BDATA | |
STA | A | a$3D | TPOS=GAP |
LDA | A | RCTL | RESET EOT % COT INTERRUPT P |
LDA | A | MRKBOT | |
STA | A | MARKl | ENABLE EOT S. COT INTE»RH»T |
LDA | A | #t77 | |
BNE | AOATA | HARK BEG OF TAPE? | |
LDA | A | WAIT-3 | FORWARD SLOW READ DATA=O |
STA | Δ | ||
JSR | MOVE TAPE I" | ||
709808/1025
<£\JiSl
Page 161 cjbpg 06/04/75 36:54.05
- 184 -
01132 | 67R1 | 80 | 98 | BSR | A | STOPl |
01133 | 67B3 | 96 | 2Β | LDA | REWFLG | |
01134 | 67B5 | 26 | OE | BNE | ISRWND | |
01135 | 6 78 7 | 7Ε | 6569 | JMP | A | NTLOST |
01136 | 678A | 96 | D7 | ΕΡΔ5Ε LDA | A | FILE |
01137 | 67BC | 97 | 21 | STA | A | TP7S |
01138 | 67BE | 86 | 3D | LDA | A | 4$3D |
01139 | 67C0 | 97 | 03 | STA | BCTL | |
01140 | 67C2 | BD | 6555 | JSR | FINO+4 | |
01141 | 67C5 | 7Ε | 61BE | ISRWND JMP | TRNOFF | |
01142 | 67C8 | 7Ε | 6251 | MARKl JMP | FILEO | |
01143 | 67C8 | BO | 66Ε2 | EOT JSR | A | LOOK |
01144 | 67CE | 96 | 2Ε | LDA | A | SAVE |
01145 | 67D0 | 48 | ASL | |||
01146 | 67Dl | 2R | AE | BMI | A | OVER |
01147 | 67D3 | 86 | 12 | LDA | B | «18 |
01148 | 67D5 | D6 | 7Β | LDA | FNDCMD | |
01149 | 6707 | 26 | 05 | BNE | B | FNDERR |
01150 | 6709 | 06 | 7Α | VLDA | MPKBOT | |
01151 | 670Β | 29 | DO | BMI | A | ERASE |
01152 | 6700 | 4C | INC | |||
01153 | 67DE | 7Ε | 619F | FNDERR JMP | ERRMSG | |
CHECK REWIND FLAG
REWIND» YOU ARE DONE NOT REWIND» CONTINUE WITH INSTRUCTION
MOVE TAPE TO GAP OF MARKER FILE
DETERMINE IF REALLY EW HOLE
FORWARD DIRECTION?
YES. BEG. OF TAPE; OO INSTR OVER FILE NOT FOUND
FIND?
ERASE TO END OF TPAE?
NO» END OF TAPE
709808/1025
ORIGINAL
■2653-151
Page 162 CJRPG 06/04/75 36:5*.05
.01155
01156
01157
01159
01160
01161
01162
01163
01165
01166
01167
01168
01169
01170
01156
01157
01159
01160
01161
01162
01163
01165
01166
01167
01168
01169
01170
7FFA 7FFA 7FFC 7D4A 704A-7D4C 7D4E
7D<50 706A 7DAA 7D6C 7D6E
7D70 7D72
6758 6758
6398 6395 62ΔΕ 673D
62A2
610C 6*94
6397
ORG | S7FFA |
FD8 | HOLE |
FOB | HOLE · |
0R6 | S7D4A |
FOB | VERIFY |
FOB | FLOAO |
FOB | RCOATA |
FOB | REWIND |
ORG | S706A |
FOB | PCPRGM |
FD8 | FRCRO |
FDB | MARK |
FDB | IOENT |
FDB | LOAD |
70 9808/102
ORlGSMAL INSPECTED
Page 163 cjflPG 06/04/75 36:54.05
01173
END
SYM80L | TARLE | ACTL | 0001 | BDATA | 0002 | 8CTL | 0003 | '- | INPUT | 0004 | IOIN | 0005 |
ADATA | 0000 | TGL | 0007 | UFLG | 0008 | RSFLG | 0009 | EOM | OOOA | EOPM | 0008 | |
ERROR | 0006 | RND | OOOE | OIGFLG | OOOF | W2 | 0010 | Wl | 0011" | SFLG | 0012 | |
STKFLG | OOOD | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0017 | TP3 | 0013 | |
DCNTR | 0013 | TP4 | 001A | TP4S | 0015 | TPS | OOIC | TP5S | 001D | TP6 | 001E | |
TP3S | 0019 | TP7 | 0020 | TP7S | 0021 · | T13 | 0022 | T12 | 0023 | TH | 0024 | |
T°6S | 001F | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0029 | TS | 002A | |
TlO | 0025 | T3 | 002C | T2 | 002D | Tl | 002E | ISTK | 002F | ISTACK | 0051 | |
T4 | 0028 | SPGM | 0054 | EXTRA | 0056 | BUFF | 0058 | PEAL | 0068 | IMAG | 0070 | |
TA | 0052 | AT2 | 0080 | W | 0088 | XR | 0090 | YR | 0098 | ZP | OOAQ | |
.ATI | 0073 | LSTX | 0080 | BKWRT | 0088 | 8KKC | 003Δ | SOL7 | 00C6 | UPP | 00C8 | |
TR | OOAfl | SAVE | 002E | FLCTR | 0020 | MASK | 002C | REWFLG | 0028 | KNWALL | 002A | |
UIP | nOCA . | FNDCMD | 007B | STACK | 007C | SVINS | 008A | SAVSTK | 00*0 | SPADRS | 0023 | |
MRKSOT | 007A | AFSZ | 0024 | TYPE | 0023 | CHKS" | 0022 | RFPTR | 0016 | FLAG | 0005 | |
CFSZ | 0026 | FILE | 00D7 | SADRS | 4D58 | TSFR | 49CE | ADD7 | 4348 | SU87 | 4340 | |
TPOS | 00D6 | BLANK | 5D75 | LOMSG | 57BD | 8IN8CD | 488C | STKUP | 55EF | XRO | 7&0A | |
FRMT | 5CA8 | DGTS | 4EA4 | PRTDRV | 6-020 | ROLLU | 57Fl | SETUP | 6168 | CRTIN | 6176 | |
NOR " | 7406 | STERR | 61B9 | TRNOFF | 6.1BE | T08IN | 61CC | ERR6 | 5101 | NOOK | 6105 | |
ERRMSG | 619F | MRKOK | 61E4 | FINDl | 6213 | BEGIN | 6219 | ADOSLK | 6233 | NO^1ORE | 623B | |
MARK ' | 61DC | START | 624C | FILEO | 6251 | NXTFL | 6255 | MRKPRE | 6269 | MRKMR | 6274 | |
NOSLK | 623F | FIN2 | 6256 | FRCRD | 62Λ1 | RC=RRM | 62Λ2 | STRIN | 62A0 | RCDATA | 62AE | |
FINl | 6280 | NTS8N | 62DD | COMT | 62F6 | CHKEND | 6301 | EMOFND | 630A | RDATA | 6316 | |
PCDOK | 6289 | RNOK | 631D | ILLSRG | 632E | RGNTO | 6331 | FINPCO | 6348 | NTMPKR | 635E | |
RNERR | 631Δ | RCDMR | 637E | FLOAD | 6395 | LOSIN | 6396 | LOAD | 6397 | VERIFY | 6393 | |
FLRGE | 6373 | FILEOK | 63AD | NTSCPD | ft 3CA | mEMOVF | 6300 | ENOADO | 63EO | CHKO | 63EC | |
CHKHD | 63A0 | OTFL | 6403 | TY0ERP | 640A | NTOTFL | 6400 | NOTSEC | 6427 | SPEC | 6429 | |
ADROK- | 63EF | RNOERR | 643A | LT256 | 643D | STRTLD | 6443 | PDFiYTE | 6449 | LDRYTt | 6*57 | |
DTFLl | 6433 | LOCMPL | 646C | ENDADP | 646E | STAOR | 647D | CHAQPS | 64«9 | IDEnT | 6494 | |
CMPOK | 6459 | MSSG | 6407 | PR IMFO | A4EA | EQLO | 64FE | IDPRNT | 6509 | ΙΟΤβί | 6518 | |
TKA | 64B2 | FNOK | 6534 | SAME | 653E | TRACKi | 654« | TPACK | 654C | FIN=O | 6551 | |
FILENO | 6527 | NTLOST | 6569 | FAST | 6579 | FNEX | 6=57F | OCFN | 6590 | FLTX | 659<i | |
RETRY | 6566 | CHECK | 65AA | FIN | 653D | RIGHT | 658E | AGAIN | 65C7 | NTRFL | 6 5CS | |
COUNT | 65A2 | TRANS | 65DE | TPANSl | 65El | READO | 65EC | PAST | 65F6 | SRCHl | 65F9 | |
READ | 6501 | NOTRN | 6603 | RDHD.-':·. | 660E | PORST | 6620 | ERR | 6633 | HO^ED | •6036 | |
NTOMt | 65FF | NO 9 TH | 6648 | BYTE | 664E | 8IT | 6656 | PART | 6668 | PRE^fiL | 6676 | |
RECORD | 6638 | MRHO | 6668 | DSRCH | 669R | 3T0CC | 669D | NOBIT | 6fj9F | GSPCH | 6681 | |
RCOHD | 667F | ISGAP | 66C4 | RETGP | 66C9 | STOP | 66D3 | WAIT | 660E | LOOK | 66E2 | |
CNTLP | 668D | FOOT | 66Fl | PASS2 | 66F4 | BEG | 66F7 | END | 66FC | KWE | 66FE | |
NTINVT | 66E3 | VALID | 6710 | NOHOLE | 671B | LIGHT | 672C | VLOTP | 673C | REVi IND | 6730 | |
FNDVTP | 670A | COT | 6740 | OFF | 6758 | HOLE | 6758 | OVER | 6781 | HIT | 6758 | |
STOPl | 6748 | ERASE | 67BA | ISRWND | 67C5 | MARKl | 67C8 | EOT | 67C8 | FnDERR | 670E | |
KNOWN | 6798 | |||||||||||
««»»ERROR 201 | NAM EXIO rtn ofli |
|||||||||||
216 | U1* c. U I NAM SIGMA |
|||||||||||
392 | »»»»ERROR 201 | |||||||||||
582 NAM LINK | ||||||||||||
709808/1025
Pa'ge 164 CJBPG 06/04/75 36:54.05
00001 00002 00003 00004 00005 00006 00007
00008 00009 00010 00011 ;00012 00013 00014 00015 00016 00017 00018
00019 00020 00021 00022 00023 00024 00025 00026 00027
00028 00029 00030 00031 00032 00033 00034 00035 00036
00037 00038 00039 00040
00041 00042 00043 00044 00045 00046 00047 0004β 00049
00Λ50 000S1 00052 00053 00054 00055
NAM
CJ8P6
0000 0001
0001 0001
0002 0001
0003 0001
0004 0001
0005 0001
0006 0007 0008 0009 OOOA OOOB 0000 OOOE OOOF 0010 0011
0012 0013
0014 0015 0016 0017 0019 0019 001A 0013
OOIC 001D 001E 001F 0020
0021
0001 0001 0001 0001 0001 0002 0001 0001 0001 0001 0001 0001 0001
0001 0001 0001 0001 0001 0001 0001 0001
oooi oooi
0001 0001
oooi
0001
0022 0001
0023 0001
0024 0001
0025 0001
0026 0001
»THIS FILE. DEFINES THE BASE PAGE READ/WRITE «ALLOCATION FOR CJ. ADDRESSES ARE HEX 0 THRU FF
INCLUSIVE.
ADATA RMB
ACTL RMB
BDATA RMB
BCTL RMB
INPUT RMB
IOIN RMB
PERIPHERAL ACCESS REGISTER PERIPHERAL CONTROL REGISTER PERIPHERAL ACCESS REGISTER
PERIPHERAL CONTROL REGISTER MAINFRAME INPUT PORT I/O ROM INPUT PORT
»FOLLOWING IS THE STATUS AREA. IT IS PERMANENT «READ/WRITE USED TO RETAIN THE STATUS OF THE MACHINE
ERROR RMB TGL RMB UFLG RMB RSFLG νRMB
EOM 'RMB EOPM RMB STKFLG RMB
RND RMB DIGFLG RMB W2 RMB Wl RMB SFLG RMB OCNTR RMB
1 1 1 1 1 2 1 1 1 1 1 1 1
«FOLLOWING IS THE »USED FOR TEMPORARY ERROR WORD (NON-ZERO IMPLIES ERROR)
TOGGLE SWITCHES ARE RETAINED HERE USER FLAGS ARE KEPT HERE USER PRGM RUN/STOP FLAG
END Ορ USER R/W WQRD (PAGE ADRS ONLY)
END OF PROGRAM MEMORY (16 BIT PNTR)
AUTO-STACK FLAG (NEG IMPLIES LIFT ENA DISPLAY ROUND SETTING
DIGIT ENTRY FLAG - ÖCO ACC. FOR COMPILER
BCD ACC. FOR COMPILER STEP FLAG FOR SINGLE STEP MO.DE DIGIT COUNTER FOR COMPILER
■BYTE TEMPORARY AREA STORAGE OF POINTERS» ETC.
ΤΡΓ
TPlS
TP2
TP2S
TP3
TP3S
TP4
TP4S
TP5
T°5S
T°6
TP7 TP7S
RMB RMB R Mo RMB RMB
RMB RMB RMB RMB RMB RMB RMB RM8
RMH
«FOLLOWING IS THE 1-BYTE TEMPORARY
•USED FOR TEMPORAPY STORAGE OF FLAGS» ETC.
T13 T12 TIl TlO T9
RMfJ RMB RMß
70 9808/1025 ORIGINAL IMSFECTED
Page 165 CJ8PG 06/04/75 36:54.05
00 056 00057 0005? 00059
00060 00061 0006? 00063 00064 00065 00066 00067 00068 00069 00070 00071
00072 00073 00074 00075 O O 076 00077 00078 00079 00080
000«l 000«2 000B3 000*4 00085 000β6
00037 00058 00069 00090
0027 0023 0029 002A 0 OO 2C
0020 002E
0001 0001 0001 0001 0001 0001 0001 0001
RM8
OO0S2 00093 00094 00095 00096
00097 0009P. 00099 OOIOO oomi
00102 O01O3 00194 00105 00106
00107 00108 00109 00110
002F 0022 0051 0001
0052 0002 0054 O002 0056 0002
0058 0010
0068 0008
007O 0O08
"0078 0008
0030 0008
0038 0008
0090 0008
009« 0008
OOAO 0008
00A8 0008
0030 0008
RMB RMB RMB RMS
T7 T6 T5 T T3 T2 Tl β
»FOLLOWING IS THE INTERNAL SYSTEM -STACK. THE STACK
•ALLOWS FOR 7 USER SUBROUTINES, 7 SYSTEM «SUBROUTINES« AND ONE INTERRUPT.
RM8
ISTK RMB ISTACK RMB
34 1
(STARTS HERE; BUILDS DOWN)
«FOLLOWING ARE 3 PERMANENT POINTERS
TA RMB SPGM RMB EXTSA RMB ·
•FOLLOWING IS THE PRINTER/DISPLAY BUFFER. •(ALSO USED AS DIGIT STACK BY CORDIC)
BUFF RMB
»FOLLOWING ARE 4 ARITHMETIC TE*
»(ALSO USEO BY PRINTER DRIVER FOP DOTS)
REAL RMB. - 8 — _.
IMAG RM8
ATI RM8
AT2 RMB
»FOLLOWING IS THE WORKING REGISTER FOR THE
»FLOATING POINT MATH SUBROUTINES
W RMB
»FOLLOWING ARE THE USER STACK REGISTERS
XR RM3 β
YR RMB
ZR PMB
TR PMB β
•FOLLOWING IS THE LAST X REGISTER
LSTX RMB
•FOLLOWING IS THE BUFFERED KEYBOARD KEYCOOE
•STORAGE AREA. IT WILL 9UFFFR i? <£YS
♦LOCATION RKWRT MUST ALWAYS BE ZF.QO. IF
•NON-ZERO. THE NEXT KEYCOOE WILL ALWAYS
IS
709808/1025
ORK
Page 166 CJBPQ 06/04/75 36:54.05
00111 00112 00113 00114 0P115 00116 00117 ooiia
00119 00120 00121 OO 122 00123
00124 00125 00.126 00127 00128
00129 00130 00131 00132 00133 00134 00135
00136 00137 00138 00139 00140 00141 00142 00143
00144 00145 00146 00147 00148 00149 00150 00151 00152 00153 00154 00155
00156 00157 ooise
00159 00160 00161 00162 00163 00164 00165
«BE IN LOCATION BKKC
00B8 OOBA
00C6 00C8 OOCA OOCC OOCD 0000 0003
0005 0006 0007
0002 OOOC
0002 0002 0002 0001 0003 0003 0 0001 0001
onoi
oooe OOEO 00E8 OOFO 00F8
0008 0008 0008 0008 0008
BKWRT-BKKC
RMB RM8
2 12 BUFFEREO. KEYBOARD W»ITE POINTER
NEXT AVAILABLE KEYCOOE
»FOLLOWING ARE SOME MORE PERMANENT STORAGE
«LOCATIONS AND POINTERS.
S0L7 RHB
UPP RMB
UIP RMB
ALPHA RMB
101 RMB
102 RMB IT7 RMB FLAG RMB
TPOS RM8 FILE RM8
«FOLLOWING APE «ALPHA REGISTERS. «OUT OF USER P/W SINGLE OPERATION LOCATlQN
USPR PROGRAM POINTER
USER INSTRUCTION POINTER • MEmOPY ALPHA FLAG
I/O CHANNEL 1 POINTER/FLAG I/O CHANNEL 2 POINTER/FLAG
SYNTAX TA3LE POINTER CASSETTE OPERATION FLAG CASSETTE TAPE POSITION INDICATOR CASSETTE FILE INDICATOR
(A-E) OF THE 10 (A-J) USER
THE OTHER 5 (F-J) ARE TAKEN ON POWER ON.
AR RR CR OR ER
RMB RMB RMB
RMS RMa
8 8 8 8 8
«THIS CONCLUDES BASE PAGE READ/WRITE
«USER PROGRAM m£moRY FOLLOWS IMMEDIATELY HEREAFTER
»FOLLOWING ARE SOME EQUATES DEFINING STARTING
«ADDRESSES OF COMMONLY USED SYSTEM SUBROUTINES
00RA | SOBB | EQU | "•272 |
7E00 | MT | EQU | 077000 |
003D | TERMM7 | EQU | «975 |
0040 | IMED | EQU | 3100 |
OOCO | PARCD | EQU | »300 |
0080 | PAREX | EQU | •5200 |
0000 | NTRL | EQU | OO |
sEcn | DOTS | EGU . | S5EC0 |
6020 | PRTORV | EQU | S602O |
5CA8 | FRMT . | EQU | S5CA8 |
5075 | BLANK | EOU | S5D75 |
57B0 | LONSG | EOU | S578D |
55R2 | ROLLD | EQU | S55B2 |
57Fl | ROLLU | EGU | S57FI |
550A | PSO | EQU | S55DA |
55E9 | TXL | EQU | S55E9 |
55EF | STKUP | EQU | 555EF |
749B | MAD | EQU | $7498 |
74AA | CMP | EQU | S74AA |
7406 | NOR | EQU | $7406 |
709808/1025
JHSPHOTED
Page 167 CJBPG 06/04/75 36:54.05
00166 ' | -7424 | TXW | EOU | $7424 |
00167 | 7438 | TXXR | EOU | 5743B |
00168 | 7452 | EXXR | EOU | $7452 |
00169 | 753B | ARSR | EQU | 5753B |
00170 | 7586 | OVUNF | EQU | $7586 |
00171 | 75DD | OVERF | EQU | S75DD |
00172 | 74OA | XRO | EQU | S740A. |
00173 | 75C8 | XRNINE | EQU | *75C8 |
00174 | 75Fl | UNDRF | EQU | $75F1 |
00175 | 7689 | IMULT | EQU | $7689 |
00176 | 7669 | ODG | EQU . | S7669 |
00177 | 75FC | FPA | EQU | S75FC |
00178 | . 75F6 | FPS | EQU | $75F6 |
00179 | 7735 | FPM | EQU | S7735 |
OOIRQ | 7793 | FPO | EQU | S7793 |
00181 | 763D | FPAEX | EQU | $7630 |
001 «2 | 7780 | FPMEX | EQU | $7780 |
00183 | 7521 | LSHIFT | EQU | $7521' |
00184 | 7489 | ZEP-OX | EQU | S7489 |
00185 | 7416 | XZEROO | EQU | "57416 |
00186 | 7417 | XZER02 | EQU " | $7417 |
50187 | 73E6 | RECIP | EQU | $73E6 |
00188 | 73F3 | TXRX | EQU | S73F3 |
00189 | (S^OO | CONST | EQU | $6800 |
00190 | 6898 | FPOSRC | EGU | •56898 |
001<U | 68A9 | TAN | EQU | $68A9 |
0019? | 69C3 | ATN | EQU | S69C3 |
00193 | 6A46 | DSZERO | EQU | S6A46 |
- 00194 | 6AS8 | NTLN | EQU | S6A58 |
00195 | 6AC9 | E Χ» Ν | EQU | $6AC9 |
00196 | 6R94 | SIN | EQU | T6B94 |
. 00197 - | 6R9A | COS | EQU | S6B9A |
00198 | 6HF2 | ASIN | EQU | S68F2 |
00199 | 6RF7 | ACOS | EQU | S6F3F7 |
002(10 | 6C5D | PHl | EQU | S6C5D |
00201 | 6C8D | PH2 | EQU | $6C8D |
00202 | 6D34 | PH3 | EQU | S6D34 |
00203 | ADOO | PH* | EQU | S6DO0 |
00204 | 6E47 | LSFT8 | EQU | «6E47 |
00205 | ' 6E65 | SORT | EQU | $f£65 |
00206 | *F2C | MA08 | EQU | S6F2C · |
00207 | S3E4 | CMP8 | EQU | $F3E4 |
00208 | 6F52 | IOUPX | EOU | S6F.52 |
002O9 | 6FA7 | LOGlO | EQU | $6FA7 |
00210 | 6FE9 | YUPX | EQU | 116Ρε9 |
00211 | 7328 | RTOP | EQU ' | S7328 |
00212 | 7386 | PTOR | EQU | ■57386 |
00213 | OPT | LIST,MEM |
709808/1025
Page 168 CJRPG 06/04/75 36:54,05
00216 | 5300 | CE· | 1000 | NAM | EXIO | [N | ACCB (5 |
00217 | or | 24 | ORG | S5300 | |||
00218 | Al | OO | #$1000 | ||||
00219 | 27 | 20 | • ROMID | TIl | |||
00220 | C6 | 08 | » | A | ο.χ | ||
00221 | og | 24 | IS PAS | Rfc*3 | |||
00222 | 07 | 24 | * ROM ADDRESS IN | B | #B | ||
00223 | DE | 24 | * CODE ] | B | TIl | ||
00?24 | 5300 | SC | 4f>00 | B | TIl | ||
00?25 | 5303 | ?6 | EF | ROMID LDX | TIl | ||
00226 | 5305 | O* | 24 | * I/O CODE | STX | #$4800 | |
00227 | 5307 | CO | 08 | RMl CMP | RMl | ||
00228 | 5309 | D7 | 24 | BEQ | B | TIl . | |
00229 | 530B | DE | 24 | LDA | R | #8 | |
00230 | 5300 | Al | Ol | AOD | B | TIl | |
00231 | 530F | 27 | 07 | STA | TIl - | ||
0023? | 5311 | ^C | 1000 | LDX | A | ItX | |
O0233 | 5314 | 26 | EF | CPX | RM3 | ||
00214 | 5316' | C6 | 05 | BNE | 1 | «siooo | |
00235 | 531Θ | 39 | RM2 LDA | RM2 | |||
00236 | 531A | sue | B | «5 | |||
00237 | 531C | STA | |||||
0023R | 531E | LDX | |||||
00239 | 5320 | CMP | |||||
00?4(ί | 5322 | BEQ | |||||
00?4i | 5325 | CPX | |||||
00?42 | 5327 | BNE | |||||
00243 | 5329 | ' LDA | |||||
00244 | RM3 RTS | ||||||
SES IN ACC4. ROUTINE RETURNS
IX(ALSO IN TH) OR ERROR
FIRST ROM ADDRESS SET IT
CHECK PRIMARY COOc FOUND A MATCH.
BUMP ADDRESS TO NEXT ROM
LOAD NEXT POM ADDRESS LAST ONE CWECKED? NOT YET
BACK UP TO PREVIOUS ROM
LOAD ROM POINTER CHECK SECONDARY CODE FOUNO A MATCH '
BACK TO RO^ ONE?
NOT YET
LOAD ERROR CODE RETURN
70-8 8 0-8/10-2
ORIGINAL INSPECTED
Page 169 CJBPG
- 192 06/04/75 36:54.05
00246 | 532A | DE | CA | ft | IOFMT | β | I/O CONTROL | LOAD INSTR POSTER. |
00247 | 532C | E6 | 01 | B | SECOND 3YTE OF INSTR | |||
00248 | 532E | C& | 70 | UIP | MASK CALL CODE NUMBER · | |||
00249 | 5330 | 17 | \ ,χ | |||||
00250 | 5331 | 27 | .ιε | * | «570 | RUNNING PRINT | ||
00251 | 5333 | HO | ce | IOFMT | MAINFRAME | LOCATE RO" ADDRESS | ||
00252 | 5335 | 26 | 46 | PNPRT | POM NOT FOUND | |||
00253 | 5337 | OE | CA | LDX | 8 | POMID' | INSTR POINTER | |
00254 | 5339 | E6 | 01 | LOA | B | SPSl | SECOND 8YTE | |
00255 | 533s? | C4 | OF | AND | B | UIP | MASK LETTER COOE | |
00256 | 5330 | 58 | TBA | 8 | l.X | TIMES TWO . | ||
00257 | 533E | D7 | 25 | 8EO | #$F | SET LOWER HALF OF POINTER | ||
00258 | 5340 | OE' | 24 | I0F1 | BSR | LOAD POINTEP | ||
00?59 | 5342 | EE | 05 | 8NE | A | TlO | LOAD ADDRESS OF ROUTINE | |
00260 | 5344 | 4F | LDX | TU | ||||
00261 | 534S | AD | OO | LDA | 5»X | MAKE I/O ROM CALL | ||
00262 | 5347 | DE | CA | AND | A | |||
00263 | 5349· | 96 | 06 | ASL | 0»X | LOAD ERROR WORD | ||
00264 | 534B | 26 | Ol | STA | UIP | W6.S AM ERROR | ||
00?6S | 534D | 08 | LDX | ERROP | NO ERROR» RU^P INSTR POINTER | |||
00266 | 534E | DF | CA | LDX | I0F2 | SET INSTR POINTER | ||
00?67 | 5350 | 39 | I0F1A | CLR | RETURN | |||
0026* | S351 | 7E | JSR | UIP | CALL PRINT | |||
00269 | LDX | |||||||
00270 | LDA | $5218 | ||||||
00271 | I0F2 | 8NE | ||||||
00272 | INX | |||||||
00274 | L8 RNPRT | STX | ||||||
RTS | ||||||||
JMP | ||||||||
709808/1025
5354 | 5 06/04/75 36:54. | 04 | STBIN EQU | - 193 - | S62AD | JSR | ■9 | A | FILE # | B | EXTRA | C\J | • | |
5356 | /S2AD | D5 | LOBIN EQU | 05 | S6396 | LDA | » FINOS | A | R | LIMl | ||||
5358. | 6396 | 26 | » | ANO | #4 | ΙΟΙ | ■ * | STORE TO TAPE CARTRIGE. | ||||||
Page 170 CJ8PC | 535A· | 54 | * SPST - | SPSTS | STA | FLAG | IOl + l | AS A SECURED PROGARM | ||||||
00276 | 535C | IC | SPSOA RTS | LIMIT | 102+1 | |||||||||
00277 | 535E | D5 | PROGRAM | LDA | R | SPGM | LIMl | |||||||
00279 | 5360 | 04 | STOPES IT | SPSl STA | R | SPSOA | 102 | |||||||
00280 | 5362 | 17 | * USER PARAMETERS: | RTS | FLAG | SECURE 9IT | ||||||||
00281 | 5364 | 05 | * XR .· | A | ||||||||||
00282 | 5366 | ■a- | SPS1-2 | FINO LOWER LIMIT | ||||||||||
00283 | 5367 | OO | * SPECIAL | SPSTS LOA | A | FLAG | NULL PROGRAM? | |||||||
00284 | 53A9 | 86 | FB | » SPSTS | SPST ORA | YES | ||||||||
00285 | 536R | 9A | RSR | O, X | ||||||||||
00286 | 536C | 80 | IA | CPX | SPSO | SECURED SPGM? | ||||||||
00287 | 536E | 9C | BEQ | A | YES | |||||||||
00288 | 536F | 27 | LOA | TP4 | SET NEW FLAG | |||||||||
00289 | 5372 | DA | BIT | |||||||||||
00290 | 5374 | CS | 8WE | A | «STBIN | FINO END OF SPGM | ||||||||
00291 | 5376 | 26 | STA | A | O, X | |||||||||
00292 | 5378 | 97 | SPSO DEX | A | FLAG | |||||||||
00P93 | 537A" | 09 | LDA | tfSFB | SET ENO+1 FOR CASSETTE | |||||||||
00294 | 5378 | A6 | BEQ | R | FLAG | |||||||||
00295 | 5370 | 27 | INX- | P | ||||||||||
002q6 | 537F | 08 | STX | «22 | CALL ATAPE | |||||||||
00297 | OF | CLR | ERROR | |||||||||||
00298 | 4F | 62A0 LDX | CLEAR SECURE RIT | |||||||||||
00299 | CF | OO | ||||||||||||
00300 | AD | 05 | THE UPPER | |||||||||||
00301 | 5380 | 96 | FB | * THE VALUE IN IX, | SECURE MEMORY | |||||||||
00302 | 5382 | 84 | 05 | » | SET ERROR | |||||||||
00303 | 5384 | 97 | LIMIT LDX | |||||||||||
00304 | 5386 | 39 | 16 | BNE | ||||||||||
00305 | 5338 | C6 | 06 | LDX | LIMIT OF MEMOPY ANO RETURNS | |||||||||
00306 | •538A | D7 | LDA | |||||||||||
00307 | 538C | 39 | CMP | |||||||||||
00308 | 538E | "" BLS | S0FCIAL ROM THERE? | |||||||||||
00^09 | LDX | YES | ||||||||||||
00310 | LIMl RTS | . LOAD SLOT A | ||||||||||||
00312 | 56 | LOAD TEST PART | ||||||||||||
00313 | OE | OA | I0K=I02? - - - | |||||||||||
00314 | 26 | CD | YES. ΚΖΈΡ ΊΟ1 | |||||||||||
00315 | DE | CE | NO, LOAO 102 | |||||||||||
00316 | 06 | Dl | ||||||||||||
00317 | Ol | 02 | ||||||||||||
00313 | 23 | DO | ||||||||||||
00319 | OE | |||||||||||||
00320 | 39 | |||||||||||||
00321 | ||||||||||||||
00322 | ||||||||||||||
00 323 | ||||||||||||||
709808/102 5
ORIGINAL
Page 171 CJBPG 06/04/75 36:54.05
00325 | 53RF | 80 | EF- | * | ERASES | PREVIOUS | ■ | FILE S | SPGM AND DATA REGISTERS | - . _ | FIMD LOWER LIMIT |
00326 | 5391 | DF | 54 | * | |||||||
00327 | 5393 | 9C | OB | 8SR | LIMIT | SPECIAL | KILL | MEMORY LIMIT | NULL PROGRAM? | ||
00328 | 5395 | 27 | F7 | ■KILL | STX | SPGM | USER PARAMETERS: | öLOBIN | YES | ||
00329 | 5397 | 09 | CPX | EOPM | XR - | 0«X | COLLAPSED ALL? | LOAD STARTING ADDRESS | |||
00330 | 5398 | 6F | OO | KILl | BEO | LIMl | EPROR | YES | MAKE CALL | ||
00331 | 539A | 20 | F7 | DEX | BSR | SPLl | |||||
00332 | CLR | 0»X | LDX | KILL | |||||||
00333 | BRA | KILl | JSR | SPGM | |||||||
00334 | LDA A | EOPM | |||||||||
00336 | * | SPLD | 8EQ | ||||||||
00337 | « | BSR | |||||||||
00338 | « | LOADS A | LDX ' | PROGRAM FROM CARTRIDGE. | |||||||
00339 | * | STX | |||||||||
00340 | 539C | SD | Fl | RTS | SPECIAL | ||||||
00341 | 539E | CE | 6396 | * | |||||||
00342 | 53Al | AO | OO | SPCAL | LIMIT | ERASE MEMORY | |||||
00343 | 53Δ3 | 96 | 06 | SPLD | #24 | ||||||
00344 | 53Δ5 | 27 | 02 | CALLS A | SPGM | CALL TAPE | |||||
00345 | 53A7 | 8D | E5 | SPSl | CASSETT ERROR? | ||||||
00346 | 53A9 | OE | 54 | BSP | SPGM | NO | |||||
00347 | 53A3 | OF | 08 | LDA R | OtX | ||||||
00348 | 53Δ0 | 39 | CPX | ||||||||
00349 | SPLl | BEQ | SET «REGS TO ZERO | ||||||||
00350 | LDX | ||||||||||
00351 | JMP | ||||||||||
00353 | * | ||||||||||
00354 | |||||||||||
00355 | -53AE | 80 | OO | PROGRAM | |||||||
00356 AMAf -J |
53R0 | C6 | IS | * | |||||||
00357 | 5382 | 9C | 54 | ||||||||
0035ft | 53R4 | ?7 | C7 | SPCAL | |||||||
00359 | 5396. | DE | 54 | ||||||||
00360 | 53fl«i' | 6E | OO | ||||||||
00361 | |||||||||||
00362 | |||||||||||
003*3 | |||||||||||
709808/1025
ORiGiMAL KS^GTfi
Page 172 CJBPG 06/04/75 36:54.05
00365 00366 00367' 00368 00369 00370 00371 00372 00 373
00374 00375 00376 00377 •00378 00379 00380
SPTAP
00 383 00384 00385 00386 00387 00388 00389
53RA βη 53RC C6 53RE FO 3000
53Cl 26 53C3 07 53CS 80 37FD 53C8 20 D9
53CA C6 53CC 07 53CE 20 D9
7O40 7040 539C 7042 53AE 7044 5356 7046 S354
7048 53BA 7O7C 707C 53?A
SPTAP
BSR
LDA
SUB B
BNE
STA
JSR
BRA
LDA B
STA B
BRA
ORG
FOB
FOB
FDB
F03
FDB
ORG
FDB
KILL
«S20
S3000
SPTl
TP7+1
S37FD
SPLl-6
«5
EPROR
SPLl
$7040
SPLD
SPCAL
SPST
SPSTS
SPTAP
SJD7C
IOFMT ERASE DATA REGS
GIO ROM PRESENT?
NO
ZERO CHECKSUM GIO ROM JUMP
CHECK FOR EPROR SET ERROR
709808/1025
ORIGINAL INSPECTED
Page 173 CJRPG 06/04/75 36:54.05
00392 | 7250 | NAM | t | 2E | EQU | SIGMA | • | ACCUMULATE ROUTINES | ROUTINE IMPLEMENTS THE DOURLE VARR | PARAMETERS: | NUMBER | - | A | •I+XP' OR | Tl | — | A | VALUE OF 1 | ANO ·Υ· INTO REGS ·Ι· | [R | STACK OPERATION |
00393 | ORG | β | $7250 | SUMMATION OF ·χι | — | NUMPER | - | A | •J+XR« OR | — | A | VALUE OF JR | |||||||||
00394 | 4CB3 USMEM EQU | 2D | S4CB3 | THIS | USER | RETURNED VALUES: | A | T2 | R | LAST DiVGE OF RAM | |||||||||||
00395 | 55AC XEY | < | 2C | S55AC | XR | I | B | T3 | B | STKUP | REG J | ||||||||||
00396 | t | 08 | • YR | J | B | 1 | «8 | A | EOM | SET FOR AUTO STACK | |||||||||||
00397 | ACCM | 4CB3 | B | USMEM | B | •I-XR· | |||||||||||||||
00398 | ACCP | 05 | INC | A | XEYl | •J-XR» | *SF8 | POINTER | |||||||||||||
00399 | 09 | INC | «9 | STKFLG | |||||||||||||||||
00400 | 4CB3 | STA | USMEM | T13 | LOAD JR INTO XR | ||||||||||||||||
00401 | CCR | A | XEY | A | T12 | STACK RESULT | |||||||||||||||
00402 | STA | A | SET ·+· OR ·-· FLAG | T13 | |||||||||||||||||
00403 | STA | TXX | POINTER TO IR | ||||||||||||||||||
00404 | LDA | STKUP | |||||||||||||||||||
00405 | JSR | PCL-ACC | RETUPNEO VALUES: | SET OTHER MACRO FLAGS | «$F0 | LOAO IR INTO XR | |||||||||||||||
00406 | BSR | XR | •I· PEG. INDICATOR | T12 | |||||||||||||||||
00407 | 7250 | LOA | YR | STO +»- I | T13 | ||||||||||||||||
00 408 | 7251 | 4C | JSR | EXCHANGE XP ANO YR | TXX | ||||||||||||||||
00409 | 725?.· | 4C | JMP | JSR | •J· REG. INDICATOR | ||||||||||||||||
0O410 | 7254 | 97 | 55AC XEYl | LDA | STO + ♦- J | ||||||||||||||||
OOMl | 7255 | 5F | -C | OEC | |||||||||||||||||
0O412 | 7257 | 07 | { | LOA | |||||||||||||||||
00413 | 7259 | Π7 | C | STA | |||||||||||||||||
00414 | 725R | 86 | t | STA | |||||||||||||||||
00415 | 725E | RO | t | STA | |||||||||||||||||
00416 | 7260 | 8D | t | LOX | |||||||||||||||||
00417 | 7262 | 86 | t | BSR | |||||||||||||||||
00418 | 7265 | =50 | V | JSR | |||||||||||||||||
00419 | 7E | LDA | |||||||||||||||||||
00421 | y | STA | |||||||||||||||||||
00422 | LDX | ||||||||||||||||||||
00423 | BRA | ||||||||||||||||||||
00424 | > | ||||||||||||||||||||
00425 | |||||||||||||||||||||
00426 | 55EF RACC | ||||||||||||||||||||
00Δ.27 | 7268 | OA | |||||||||||||||||||
00*28 | 7263 | RO | |||||||||||||||||||
00429 | 7260 | 96 | F8 | ||||||||||||||||||
00430 | 726E | 4A | OD | ||||||||||||||||||
00431 | 7270 | C6 | 22 | ||||||||||||||||||
00432 | 7272 | 07 | 23 | ||||||||||||||||||
00433 | 7274 | 97 | 22 | ||||||||||||||||||
00434 | 7276 | 07 | 61 | ||||||||||||||||||
0 0435 | 727=5 | DE | 55EF | ||||||||||||||||||
0043ft | .727A | 80 | FO | ||||||||||||||||||
00437 | 727D | «0 | 23 | ||||||||||||||||||
00438 | 727F | 86 | 22 | ||||||||||||||||||
00439 | 7281 | 97 | 56 | ||||||||||||||||||
00440 | 7283 | OE | |||||||||||||||||||
00441 | 20 | ||||||||||||||||||||
709808/1025
.; ORIGINAL INSPECTED
~ 197 -
Page 174 CJRPQ 06/04/75 36:54.05
00443 . ♦
00444 ' . ♦ .00445 * 00.446 *
00447 *
00448 ·. 00449. * 0045Π «
00451 *
00452 ' ♦
00453 »'
00454 · *
00455 *
00456 ' · ·
00457 ·
00458 *
00459 7285 96 F9 MSOEV LDA A
00460 7287 .2A 05 BPL
00461 7289 86 06 LDA A
004-62 7288 97 06 STA A
00463 7280 39 RTS
00464 72SE RO 55EF JSR
00465 7291 CE 00E8 LOX
00466 7294 RD 45 8SR
00467 7296 CE 0078 LDX
00468 7299 BO 73F3 ' JSR
00469 729C CE 0OF8 LDX
00470 729F 80 3A BSR
00471 72Al CE 0078 LOX 0047? 72A4 BD 7793 JSR 00473 72A7 CE 0078 LDX
00*74 72AA 80 32 BSR
00475 72AC CE 00E8 LDX
00476 72AF 30 7735 JSR
00477 7232 CE OOFO LDX 0047R 72B5 BD 75F6 JSR
00479 72B8 CE 0080 LDX 00*80 72R8 80 21 BSR
0043-1 72BD CE 6838 LOX
00432 72CO 80 19 BSR
00483 72C2 CE 00F8 LDX
00484 72C5 3D 75F6 JSR
00485 72CR CE 0080 - LDX
00486 72CR RO 7793 JSR
00487 72CE »Ο 6Ε65 JSR
00488 7201 86 80 LDA A
00489 7203 97 OO STA A
00490 72D5 10 55EF JSR
00491 72D8 CE 0078 LDX
00492 72D8 7E 743B TXX JMP
00493 720E 7E 73F3 TXR JMP
THIS ROUTINE CALCULATES THE MEAM -AND STANDARD
OEVIATION GIVEN THE FOLLOWING ALPHA REGISTER VALUES:
CR - SUM txt
DP - SUM ιΧλ2»
ER - N (tfOF TERMS) RETURNED VALUES:
XR - MEAN
YR - STANDARD DEVIATION FORMULAS IMPLEMENTED:
MEAN = (SUM ·Χ·)/Ν
ER +
#6 ERROR
STKUP
TXX
PATl
TXRX
HER
TXX
#AT1
FPO
#AT1
TXR
&CR
FPM
«OR
FPS
«AT2
TXR
TXX
#ER
FPS
«AT2
FPD
SORT
PS80
STKFLG
STKUP
«ATI
TXXR
TXRX
(+) NUMBER? YES
LOAD SUM «X·
MEAN*SUM'X«
»Ni-1.0
S.O. SOUAREO FINISH S.D.
SET AUTO STACK LOAD MEAN INTO XR
709808/1025
- 198 Page 175 CJ3PG 06/04/75 36:54.05
00495 | 72El | &C | « SIGMA | ROUTINES | PARAMETERS | * ER | i | - NEW »X» | «ι «Χα2·, AND »Ν». | • | JPER STX | LOX | T12 | •SAVE REG POINTE» | 0PER1+3 | POINTER |
00496 | 72E? | 97 | - NEV! 'X· | - NEW SUM | : | EXECUTE ·+' OR '-» | LDA | 8RA | A T13 | FPA | SAVE RESULT | |||||
00497 | 72Ε4 | CE | - CURRENT | 5IGM INC | - NEW SUM | VALUE | 8EO | OPERl | DO AOD | T12 | ||||||
00498 | 72Ε7 | ?O | - CURRENT | sIGP STA | - NEW IN» | SUM ·χι | RELOAD «X« INTO XR | JSR | FPS | TXR | ||||||
00499 | 72Ε9 | CE | = CURRENT | LDX | SUM «Χλ2Ι | BRA | ||||||||||
00500 | 72EC | ?0 | ROUTINE IMPLEMENTS THE SINGLE VARS | » RETURNED VALUES | 8SR | A | "Ν« | 'X · a2 | 75FC OPERl JSR | |||||||
00501 | 72EE | CE | » SUMMATION OF «X | * XR | LDX | A T13 | • • |
23 · | ||||||||
O0502 | 72Fl | AO | » THIS | * USER | * CR | 8SR | «ATI | EXECUTE ·+· OR '-» | BF | |||||||
00503 | 72F3 | CE | * XR | * DR | LDX | TXR | ·Χ· | |||||||||
00504 | 72F6 | RQ | * CR | t | BSR | «CR | •Χλ2· | LOAD 1.0 INTO X» | ||||||||
00505 | 72F9 | CE | λ | LOX | OPER | |||||||||||
00506 | 7?FC | ?0 | < | OSR | .«ATI | EXECUTE '+· OP ·-· | ||||||||||
00507 | 72FE | CE | 22 ί | LDX | TXX | |||||||||||
00508 | 7301 | SQ | i | 007a | ■ BSR | *AT1 | SET ENTRY FLAG | RESTOPE ·Χ· | ||||||||
00509 | 730 3 | CE | i | F5 | LOX | FPM | ||||||||||
00510 | 7306 | CO | * DR | 00E8 | 3SR | «OR | SAVE »Χ» | ·-« OPERATION DEPENDING | ||||||||
00511 | 7308 | CE | » ER | IF | LDX | OPER | <» ON SPECIFIER FLAG T13 (0-AOD). | |||||||||
00512 | 7308 | 20 | 0 07ft | «SR | «S6838 | |||||||||||
00513 | E8 | LOX | TXX | 23 f | ||||||||||||
00514- | 0 073 | BRA | «ER | 22 | ||||||||||||
00515 | 7735 | OPER | 05 | |||||||||||||
00516 | OOFO | «ATI | 75F6 | |||||||||||||
00517 | 73ÖD | OF | TXX | 03 | ||||||||||||
0051β | 730F | 683« | ||||||||||||||
00519 | 73 ΙΊ | 27 | 08 | * PERFORMS »+· OR | ||||||||||||
00520 | 7313 | 00F8 | ||||||||||||||
00521 | 7316 | ?0 | 05 | |||||||||||||
0052? | 731« | *O | 0073 | |||||||||||||
00523 | 731? | DE | CE | |||||||||||||
0052* | 7310 | 20 | ||||||||||||||
0052S | ||||||||||||||||
0C526 | ||||||||||||||||
0052? | ||||||||||||||||
00528 | ||||||||||||||||
00530 | ||||||||||||||||
00531 | ||||||||||||||||
00532 | ||||||||||||||||
00533 | ||||||||||||||||
00534 | ||||||||||||||||
00535 | ||||||||||||||||
00536 | ||||||||||||||||
00537 | ||||||||||||||||
00538 | ||||||||||||||||
00539 | ||||||||||||||||
00540 | ||||||||||||||||
00541 | ||||||||||||||||
709808/1025
ORiGi^AL
Page 176 cjbpg 06/04/75 36:54.05
00543 | 731F | CF. 0008 | * CREG | * | B | ALPHA REGISTERS A-J. ' ' | CLEAR A-E | ORG | S7C4E | SIGMA + |
00544 | 7322 | 80 OB | » | B | FDB | SIGP | SIGMA - | |||
00545 | 7324 | 06 OA | • CLEARS | B | «AR | LAST PAGE OF RAM · | FDB | SIGM | ||
00546 | 73?6 | 5A | B | CLG | ORG | S7C56 | ACCUM + | |||
00547 | 7327 | 07 14· | CREG LDX | B | EOM | 8UILD AOORESS | FOB | ACCP | ACCUM - | |
00548 | 7329 | C6 08 | BSR | FOB | ACCM | |||||
00549 | 732B | 07 15 | LOA | 8 | TPl | ADDRESS OF F-J | ORG | S7C6E | MEAN S, S.O. | |
00550 | 7320 | OF. 14 | OEC | A | #SD8 | TOTAL COUNT | FOB | MSDEV | ||
00551 | 732F | C6 28· | STA | TP1 + 1 | ZERO BYTE | . 0RG- | S7C76 - | |||
00552 | 7331 | 47 OO | LOA | B | TPl | BUMP .ADDRESS | FDB | RACC | ||
00553 | 7333 | 08 | STA | «40« | DONW WITH FIVE REGS YET? | - FDB | CREG -- | |||
00554 | 7334 | 5A' | LDX | O,X | NO | |||||
00555 | 7335 | ?6 FA | CLG LOA | |||||||
00556 | 7337 | 39 | STA | |||||||
00557 | INX | CLG+2 ' | * INSTRUCTION' ADORESS TABLE INSERTS | |||||||
00558 | DEC | « | ||||||||
00559 | BNE" | |||||||||
00560 | 7C4E | RTS | ||||||||
00561 | 7C4E | 72E2 | ||||||||
00563 | 7C50 | 7?E1 | ||||||||
00564 | 7C56 | |||||||||
00565 | 7C56 | 7251 | ||||||||
00566 | 7C58 | 7250 | ||||||||
00567 | 7C6E | |||||||||
00568 | 7C6E | 7285 | ||||||||
00570 | "7C76 | |||||||||
00571 | 7C.76 | 7268 | ||||||||
00572 | 7C78 | 731F " | ||||||||
.00574 | ||||||||||
00575 | ||||||||||
00577 | ||||||||||
00578 | ||||||||||
00579 | ||||||||||
709808/1025
ORIGINAL INSPECTED
Page 177 CJBPG 06/04/75 36:54.05
00582 | 78FF | 39 | NAM | » | LINK | ■ | RRTN | THE LINKAGE |
00583 | 7PFF | OPT | »THIS ROUTINE | ♦INST»2+$7C00=ROUTIME | RRTN | |||
005β4 | 7«FF | ORG | •TABLE FOR CJ | LISTtNOMEM | RRTN | ADDRESS | ||
00585 | 7BFF | S78FF | RRTN RTS | PRTN | ||||
005R6 | 73FF | FOB | RRTN | RETURN FOR OUMMYS | ||||
00587 | 7BFF | DEFINES | FD8 | RRTN | NOP | |||
005R8 | 78FF | '7RFF | FOB | RRTN | 0 | |||
00589 | 7C00 | 7(?FF | FOB | RRTN | 1 | |||
0059ο | 7C02 | 7RFF | FOB | RRTN | (M | |||
00591 | 7C04 | 7RFF | FD8 | RRTN | 3 | |||
00592 | 7C06 | 7PFF | FOB | RRTN | 4 | |||
00593 | 7C08 | 73FF | FOB | RRTN | S | |||
00594 | 7C0A | 78FF | FOB | RRTN | 6 | |||
00595 | 7C0C | 7PFF | FOB | RRTN | 7 | |||
00596 | 7C0E | 7BFF | FD8 | RRTN | 8 | |||
00597 | 7C10 | 78FF | FOB | RRTN | 9 | |||
0059« | 7C12 | 78FF | FD8 | RPTN | • | |||
00599 | 7C14 | 78FF | FOB | RRTN | + | |||
00*00 | 7C16 | 78FF | FOB | PRTN | ||||
00601 | 7C19 | 7BFF | FOB | RRTN | * | |||
00602 | 7ClA | 78FF | FDB | RRTN | / | |||
00603 | 7ClC | 73FF | rDB | RPTN | ENTF.R | |||
00604 | 7ClE | 78FF | " FOB | PRTN | EEX | |||
00605 | 7C20 | 7PFF | FOB | RRTN | CHS | |||
00606 | 7C22 | 78FF | FOB | PRTN | CLX | |||
00607 | 7C24 | 78FF | FOB - | RRTN | CLEAR | |||
00608 | 7C26 | 78FF | FOB | RRTN | XEY | |||
00609 | 7C28 | 78FF | FDR | RRTN | ROLL DOWN | |||
00610 | 7C2A | 7SFF | FOB | RRTN | PI | |||
00611 | 7C2C | 78PF | FDB | RRTN | LAST X | |||
00612 | 7C2E | 79FF | FOB | PRTN | SIN | |||
00613 | 7C30 | 7«FF | FDB | RRTN | COS | |||
00614 | 7C3? | 7*FF | FOB | RRTN | TAN | |||
00615 | 7C34 | 7HFF | F08 | RPTN | ARCSIN | |||
00616 | 7C16 | 78FF | FOB | RRTN | ARCCOS | |||
00617 | 7C3* | 78FF | FOB | RRTN | ARCTAN | |||
00618 | 7C3A | 78FF | FOB | RRTN | LN | |||
00619 | 7C3C | 78FF | FOB | PRTN | LOG | |||
00620 | 7C3E | 78FF | FOB | RRTN | Eax | |||
00621 | 7C40 | 78FF | FDB | PRTN | 1OaX | |||
00622 | 7C42 | 78FF | FD8 | RRTN | YAX | |||
00623 | 7C44 | 78FF | FDB | PPTN | ROLL UP | |||
00624 | 7C46 | 73FF | FOB . | RRTN | SORT X | |||
00625 | 7C4fl | 78FF | FOB | RRTN | 1/X | |||
00626 | 7C4A | 7RFF | FOB | RRTN | SIGMA ♦ | |||
00627 | 7C4C | 78FF | FOB | RPTN | SIGMA - | |||
00628 | 7C4E | 78FF | FOB | R TO P | ||||
00629 | 7C50 | FOB | P TO R | |||||
00630 | 7C52 | F08 | ACC+ | |||||
00631 | 7C54 | FDB | ACC- | |||||
00632 | 7C56 | INT | ||||||
00633 | 7C58 | |||||||
00634 | 7C5A | |||||||
00635 | ||||||||
00636 | ||||||||
709808/1.0 25
•ORIGINAL IMSPEOTED
Page 178
06/Q4/75 36:54.05
00637 | 7C5C | 7HrF | FDS | RRTM | OEGPEES |
0063« | 7C5E | 7<?=Τ | FOB | PPTM | TO D.MS |
00639 | 7C60 | 7RFF | FDB | RRTN | FROM O.MS |
006£Q | 7C62 | 7^FF | F.08 | RRTN | IF+ |
00641 | 7 C-S 4 | 7r<FF | FD3 | RPTM | IF- |
0064? | 7C66 | 7^FF | FDB | RRTN | IFO |
0 0643 | 7C^B | 7RFF | FOB | PRTN | IFX=Y |
00644 | 7C6A | 7RFF | FOB | RRTN | IFX<Y |
00645 | 7C6C | 7UFF | FD8 | RPTN ' | IFX>=Y |
0064ft | 7C6E | 79FF | FOB | PRTN | MEAM« STO DEV |
00647 | 7C70 | 7BFF | FDB | PRTN. | ft OF R1S |
006-*« | 7C7? | 7RFF | ■ FOB | RRTN | LIST STACK |
0064g | 7C74 | 7RFF | FDß | PRTN | ROUND X · |
00650 | 7C76 | 7=FF | FD8 | RRTN | RCL ACC + |
00651 | 7C7B | 7BFF | ' FDS | RPTN | CLR A THRU J |
00652 | 7C7A | 7PFF | ■ FDB | RRTN | LINE FEED |
00653 | 7C7C | 75FF | FOB | RRTN | GRADS |
00654 | 7C7E | 7P.FF | FDB - | RRTN | RADIAMS |
00655 | 7C90 | 7BFF | FDB | PRTN | SFG 1 |
00656 | 7CB2 | 7^FF | FD3 | DRTN | SFG 2 |
00657 | 7C34 | 7HFF | FDb | RPTN | SFG 3 |
0065P. | 7C36 | 7RFF | FOB | RRTN | SFG 4 |
00659 | 7C3B | 7=FF | FOB | RRTN | SFG 5 |
00660 | 7C=SA | 7BFF | FDB | RRTN | SFG 6 |
00661 | 7CBC | 7?FF | FOB | PPTN | SFG 7 |
006^2 | 7CSE | 7"FF | FOH | PoTtM | SrG β |
00663 | 7C*?0 | 7-FF | FOd | PRTN | IF SFG 1 |
00664 | 7C92 | 7-FF | FOB | PRTN | IF SFG 2 |
00^65 | 7C94 | ~ = FF | FDB | RRTN | IF SFG 3 |
00-66 | 7C96 | 7mFF | FD3 | RRTN | IF SFG 4 |
00*^7 | 7C33 | 7PFF | FDB | PRTN | IF SFG 5 |
006^8 | 7C9A | 7^fF | FDB | BPTN | IF S^G 6 |
006*9 | 7C9C | 7^FF | FOB | PPTN | IF SFG 7 |
00670 | 7C9F. | 73FF | FOB | RPTN | IF SFG a |
00671 | 7 CAO | 73FF | FOR | PRTN | CFG 1 |
00672 | 7CA2 | 7hFF | FDB | RPTM | CFG 2 |
00673 | 7CA4 | 7JFF | FD3 | RPTM | 'CFG 3 |
00674 | 7CA6 | 75FF | FOB | RRTN | CFG 4 |
O0675 | 7CAq | 7BFF | FDB | ο Ρ TM | CFG H |
00676 | 7CAA | 7PFF | FOB | PRT1N | CFG 6 |
00677 | 7CAC | 7=>FF | F03 | PRTN | CFG 7 |
00678 | 7CAE | 7KFF | FOS | PRTN | CFG H |
00*79 | 7CB1 | 7-FF | FOB | PRTN | IF CFG 1 |
O O 6? Π | 7CB2 | 73FF | FOB | RPTN | IF CFS 2 |
006Sl | 7CB4 | 7^FF | FDB | PRTM | IF CFG 3 |
0CSP2 | 7CB6 | 7«FF | FOB | RPTN | IF CFG 4 |
00·=·Η3 | 7C30· | 7BFF | FOB | PRTM | IF CFG 5 |
ο η ή« 4 | 7C^A | 73FF | FD3 | PRTN | IF CFG 6 |
TCBC | 7^FF | FOrI | PPTN | IF CFG 7 | |
O O γ» -* 6 | 7C3E | 7f,FF | FDB | ο ο TN | IF CFG 3 |
006^7 | 7CCO | 7BFF | FD3 | PPTN | GOTO L-iL X |
006ΛΗ | 7CC 2 | 7:jlFF | FDB | RRTN | GOSUR L*L < |
006«9 | 7CC4 | 7-SFF | FOc? | P ο T>M | GOTO X |
O O 690 | 7CC6 | 7»FF | FOft | PPTM | GOS'in X |
00*>91 | 7CC"i | 7°FF | FOB | r-RTM | STO A |
709808/102
ORIGINAL JNSPECTSD
Page 179 CJBPG 06/04/75 36:54.05
00692 | 7CCA | 7BFF | FD8 | RRTN | STO R |
00693 | 7CCC | 73FF | .FDB | RRTN | STO C |
00694 | 7CCE | 7BFF | FOB | RRTN | STO D |
00695 | 7C00 | 7RFF | FDB | RRTN | STO E |
00696 | 7CD2 | 7RFF | FOB | RRTN | STO F |
00697 | 7CD4 | 7RFF | FDB | RRTN | STO G |
00698 | 7CD6 | 7BFF | FDB | RRTN | STO H |
00699 | 7COa | 7RFF | FOR | RRTN | STO I |
00700 | 7COA | 7SFF | FD8 | PRTN | STO J |
0070Γ | 7CDC | 78FF | FOB | RRTN | STO+ A |
00702 | 7COE | 7RFF | FDB | RRTN | STO+ B |
00703 | 7CE0 | 7BFF | FD8 | RRTN | CTO+ C |
00704 | 7CE2 | 7BFF | FDB | RRTN | STO+ O |
00705 | 7CE4 | 7RFF | FDB | RRTN | STO+ E |
00706 | 7CE6 | 79FF | FD3 | PRTN | STO+ F |
00707 | 7CEB | 7RFF | FDB | RRTN | STO+ G |
00708 | 7CEA | 78FF | FDB | RRTN | STO+ H |
00709 | 7CEC | 79FF | FOB | RPTN | STO+ I |
00710 | 7CEE | 7RFF | FDS | RRTN | STO+ J |
00711 | 7CF0 | 78FF | " FD8 | RRTN | STO- A |
00712 | 7CF2 | 7RFF | FD8 | PPTN | STO- 8 |
00713 | 7CF4 | 7RFF | FOB | RRTN | STO- C |
00714 | 7CF6 | 7RFF | FDB | RRTN | STO- D |
00715 | 7CF8 | 7BFF | fob' | RRTN | STO- E |
0 0716 | 7CFA | 78FF | FDB | RRTN | STO- F |
00717 | 7CFC | 7RFF | FOB | RRTN | STO- G |
0071ft | 7CFE | 73FF | FOB | RRTN | STO- H |
00719 | 7000 | 7HFF | FOB | RRTN | STO- I |
0072Π | 7O02 | 7RFF | FDB | RRTN | STO- J |
00721 | 7004 | 7RFF | FDB | RPTN | STO* A |
00722 | 7D06 | 7RFF | FOB | RRTN | STO* B |
00723 | 7.008 | 7RFF | FOB | RRTN | STO* C |
00724 | 700A | 78FF | FOB | PRTN | STO* O |
00725 | 7O0C | 7»FF | FOB | RRTN | STO* E |
00726 | 700E | 73FF | FOB | RRTN | STO* F |
00727 | 7DlO | 7<?PF | FDB | RRTN | STO* G |
00728 | 7012 | 7RFF | FOB | ORTN | STO* H |
00729 | 7Ü14 | 7RFF | FOB | PRTN | STO* I |
00730 | 7016 | 7BFF | FOB | PPTN | STO* J |
00731 | 701* | 7O.FF | FDB | RRTN | STO/ A |
00732 | 7DlA | 7RFF | FOB | RRTN | STO/ 3 |
00733 | 70 IC | 7RFF | FOR | RRTN | STO/ C |
00734 | 70 IE | 7RFF | FDB | RRTN | STO/ D |
00735 | 7020 | 73FF | FD8 | PRTN | STO/ E |
00736 | 7022 | 7?»FF | FOB | PPTN | STO/ F |
00737 | 7024 | 7BFF | FDB | RPTN | STO/ G |
00738 | 7026 | 7RFF | FOB | PRTN | STO/ H |
00739 | 7028 | 78FF | FOB | RRTN | STO/ I |
00740 | 7O2A | 79FF | FOB | RPTN | STO/ J |
00741 | 7O2C | 7RFF | FDB | RPTN | RCL-A |
00742 | 7O2E | 7RFF | FD8 | RRTN | RCL 8 |
00743 | 7030 | 7RFF | FOB | RRTN | RCL C |
00744 | 7032 | 78FF | FDB | ORTN | RCL O |
00745 | 7D34 | 7RFF | FOB | PRTN | RCL E |
00746 | 7D36 | 78FF | FOB | RPTN | RCL "F |
709808/1-0 25
Page 180 CJBPG 06/04/75 36:54.05
00747 | 7D38 | 7BFF | eft | 7BFF | FOB | RRTN | RCL G |
00748 | 7D3A | 7"FF " | 7BFF | FDB | RRTN | RCL H | |
00749 | 703C | 7BFF | 7BFF | FOB | RRTN | RCL I | |
00750 | 7D3E | 7BFF | 7BFF | FDB | RRTN | RCL J | |
00751 | 7040 | 7BFF | 7BFF | FOB | RRTN | CALL A (LOBIN). | |
00752 | 7042 | 7BFF | 7BFF | FOB | PRTN | CALL B (RUMBIN) | |
00753 | 7D44 | 79FF | 78FF | FDB | RRTN | CALL C (RCBIN) | |
00754 | 7D46 | 7BFF | 7BFF | FOB | PRTN | CALL D (RCBINSC) | |
00755 | 7D48 | 7RFF | 7RFF | FDB | RRTN | CALL E (PTAPE) | |
00756 | 704A | 7BFF | 7BFF | FOB | RRTN | VERIFY FILE | |
00757 | 704C | 73FF | 7BFF | FOB | RRTN | LOAD S, RUN | |
00758 | 7D4E | 7BFF | 7BFF | FDB | RRTN- | RECORD DATA | |
00759 | 7Ü50· | 7BFF | 7BFF- | FOB | RRTN | REWIND | |
00760 | 7D52 | 78FF · | 7BFF | FOB | RRTN | PAUSE | |
00761 | 7054 | 7BFF | 7BFF | FDB | RRTN | FOR 3 TO G | |
00762 | 7056 | 7BFF | 7BFF | FD8 | RRTN | FOR C TO H | |
00763 | 7D58 | 7BFF | 7BFF | FDB | RRTN , | FOR A TO F | |
00764 | 705A | 78FF | 7BFF | FOB | PRTN | NEXT A · . | |
00765 | 705C | 7BFF | 7BFF | FOB | RRTN | NEXT 8 | |
00766 | 7D5E- | 7PFF | 7BFF | FD8 | RPTN | NEXT C | |
00767 | 7D60 | 7BFF | 7BFF | FOB | RRTN | RUIM/STOP | |
00768 | 7062 | 7BFF | 7BFF | FDB | PRTN | ENO | |
00769 | 7064 | 7BFF | 7BFF | FDB- | RRTN | ||
00770 | 7066 | 7BFF | FDB | RPTN | RETURN | ||
00771 | 7D68 | 78FF | FD8 | PRTN | ALPHA TERMINATOR | ||
00772 | 706A | 7RFF | FDB | RPTN | RECORD PROGRAM- | ||
00773 | 7D6C | 7BFF | FDB | RRTN | RECORD PROTECTED | ||
00774 | 7D6E | 7RFF | FDB | RRTN | MARK FILE | ||
00775 | 7070 | 7BFF | FDB | PRTN | IDENTIFY FILE | ||
00776 | 7072 | 7BFF | FD8 | RPTN | LOAD FILE | ||
00777 | 7074 | 7BFF | FDB | RRTN | THIS RIT PATTERN IS UNUSED | ||
00778 | • | ||||||
00779 | 7076 | FDB | PRTN | FIXED | |||
00730 | 7078 | FOB | RRTN | SCI | |||
00781 | 707A | FOB | RRTN | SCI 3 | |||
00792 | 7D7C | FDB | PRTN | FORMAT | |||
00733 | 7D7E | FOB | RRTN | LABEL | |||
007«4 | 7060 | FOB | PRTN | GOSUR LBL | |||
007Λ5 | 70«2 | FOB | RRTN | GOTO LBL | |||
00786 | 7084 | FDB | PRTN | RCL PCL ALPHA | |||
00787 | 7D86 | FDB | PRTN | • STO RCL ALPHA | |||
00 788 | 7D83 | FDB | RRTN | STO RCL + ALPHA | |||
00789 | 70PA | FDB | PRTN | STO »CL - ALPHA | |||
00790 | 7D8C | FOB | RRTN | STO »CL · ALPHA | |||
00791 | 7O(3E | FD8 | PRTN. | STO RCL / ALPHA | |||
0079? | 7090 | FDB | RRTN | STO 0 | |||
00793 | 70.92 | FOB | RRTN | STO 1 | |||
00794 | 7D94 | FOB | RRTN | STO*. 0 | |||
00795 | 7096 | '" FDB | RRTN | STO+ 1 | |||
00796 | 7098 | FDB | RRTN | STO- 0 | |||
00797 | 7D9A | FDB | RRTN | STO- 1 | |||
007<?8 | 709C | .FD9 | PRTN | STO» 0 | |||
00799 | 709E | FOB | RRTN | STO» 1 · | |||
00300 | 7040 | F08 | PRTN | STO/ 0 | |||
00801 | 70AP | FOB | RRTN | STO/ I · |
709808/1025
ORIGINAL INSPECTED
Page 181 CJRPG 06/04/75 36:54.05
00β02 | 70 A4 | 7RFF | F08 | RRTN | RCL O | O | O |
00803 | 70Afi | 73FF ■ | FOB | RPTN | RCL 1 | 1 | 1 |
00604 | 7DA8 | 7RFF | FOB | RRTN | RCL RCL | O | O |
00*05 | 70AA | 7BFF | FOB | RRTN | RCL RCL | 1 | 1 |
00ΡΠ6 | •7OAC | 73FF | FOB | RRTN | STO RCL | O | |
O0S07 | 7DAE | 7RFF | FOB | RRTN | STO RCL | 1 | |
OOPOS | 7DR0 | 7PFF | FOB - | RRTN | STO RCL+ | O | |
00809 | 7D82 | 7BFF | FDB | RRTN | STO RCL+ | 1 | |
00*510 | 7084 | 7=3FF | F08 | RRTN | STO RCL- | ||
00P11 | 70R6 | 7PFF | FDB | RRTN | STO RCL- | ||
ooai? | 7088 | 7RFF | FOB | RRTN | STO RCL* | ||
00*13 | 7Ö8A | 7RFF | FDB ■ | RRTN | STO RCL* | ||
00314 | 7DBC | • 7RFF | FDB | PRTN | STO RCL/ | ||
00*15 | 70BE | 7RFF | FD9 | RRTN | STO RCL/ | ||
O0P16 | 70CO | 7RFF | FDB | RRTN | GOSUB O | ||
00M7 | 70 C2 | 78FF | FDB | PRTN | GOSUB 1 | ||
oooia | 70C4 | 7RFF | FD8 | PPTN | GOSUR 2 | ||
00319 | 70C6 | 7RFF | FOB | RRTN ' | G0SU8 3 | ||
on?2o | 70C8 | 7RFF | FOB | PRTN | GOSUB 4 | ||
00321 | 7DCA | 7RFF | FD8 | RRTN | GOSUB 5 | ||
00 = 22 | 7OCC | 7RFF | F08 | RRTN | G0SU8 6 | ||
00323 | 70CE | 7=>FF | FOB | PPTN | GOSUB 7 | ||
00324 | 7000 | 7RFF | FDB- | PRTN | GOSUB 8 | ||
00825 | 7002 | 73FF | F08 | RRTN | G0SU8 9 | ||
00*26 | 70D4 | 7RFF | F08 | RRTN | G0SU8 10 | ||
00-527 | 7006 | 7HFF | FOB | PRTN | GOSUB 11 | ||
00928 | 7008 | 7RFF | FDB | RRTN | GOSUB 12 | ||
00*29 | 7ODA | 7RFF | FOB | RRTN | GOSUB 13 | ||
00330 | 7onc | 7BFF | FDB | RRTN | G0SU8 14 | ||
00831 | 70OE | 78FF | FDB | RRTN | GOSUB 15 | ||
00332 | 7OEO | 73FF | FDB | PPTN | GOTO O | ||
00333 | 7-0 E 2 | 73FF | FOB | RRTN | GOTO 1 | ||
00*34 | 70E4 | 7BFF | F08 | PRTN | GOTO 2 | ||
00335 | 70E5 | 7RFF | FOB | RRTN | GOTO 3 | ||
00836 | 70E8 | 7RFF | FOB | RRTN | GOTO 4 | ||
00337 | 7OEA | 7RFF | FDB | RRTN | GOTO 5 | ||
0 0338 | 70FC | 7RFF | FOB | PRTN | GOTO 6 | ||
0OS39 | 7DEE | 7HFF | FD8 | RPTN | GOTO 7 | ||
00*40 | 7OFO | 7BFF | FOB | RPTN | ■ GOTO 8 | ||
00341 | 7DF2 | 78FF | F08 | RRTN | GOTO 9 | ||
00342 | 70F4 | 7BFF | FOB | RRTN | . GOTO 10 | ||
00843 | 70f6 | 7RFF | FOB | RRTN | GOTO 11 | ||
00844 | 7DFR | 7PFF | FOB | RRTN | GOTO 12 | ||
00845 | 70FA | 7RFF | FOB | PRTN | GOTO 13 | ||
00346 | 7OFC | 7RFF | FOB | PRTN | GOTO 14 | ||
00847 | 70FE | 7RFF | FOB | RRTN | GOTO 15 | ||
709808/1025
Iirt!.w'*i>
Page 182 CJ8PG 06/04/75 36:54.05
00850
END
SYMROL 1 | TARLE | ACTL | . 0001 | 8DATA | 0002 | 8CTL | 0003 | INPUT | * | IOIN | 0005 |
ADATA | 0000 | TGL | 0007 | UFLG | 0008 | RSFLG | 0009 | EOM | 0004 | EOPM | 0003 |
EOOOR | 0006 | RND | OOOE | DIGFLG | OOOF | W2 | 0010 | Wl | OQOA | SFLG | 0012 |
STKFLG | OOOD | TPl | 0014 | TPlS | 0015 | TP2 | 0016 | TP2S | 0011 | TP3 | 0018 |
DCNTR | 0013 | TP4 | 001A | TP4S | 001B | TP5 | OOIC | TP5S | 0017 | TP6 | 001E |
TP3S | 0019 | TP7 | 0020 | TP7S | 0021 | T13 | 0022 | T12 | 0010 | TIl | 0024 |
TPAS | 001F | T9 | 0026 | T8 | 0027 | T7 | 0028 | T6 | 0023 | T5 | 0 02A |
TlO | 0025 | T3 | 002C | T2 | 0020 . | Tl | 002E | ISTK | 0029 | ISTACK | 0051 |
T4 | 002« | SPGM | 0054 | EXTRA | 0056 | 8UFF | 0058 | REAL | 002F | IMAG | 0070 |
TA | 0052 | AT2 | 0080 | W | 0088 | XR | 0090' | YR | 0068 | ZR | OOAO |
ATI | 0078 | LSTX | 0080 | BKWRT, | 00B8 | SKKC | 008A | S0L7 | 0098 | UPP | 00C8 |
TR | 00A8 | ALPHA | OOCC | 101 | OOCD | 102 | OODO | IT7 | 00C6 | FLAG | 0005 |
UIP | 00C4 | •FILE | 00D7 | AR | 00D8 | 8R | OOEO | CP | 0003 | DR | OOFO |
•TPOS | 00D6 | SDB8 | OOBA | MT | 7EOO | TERMN7 | 0030 | IMED | O0E8 | PARCD | OOCO |
ER | OOFS | MTBL | 0000 | DOTS | 5EC0 | PRTORV | 602D | FRMT | 0040 | BLANK | 5D75 |
PAREX | 0080 | ROLLD | 5582 | ROLLU | 57Fl | PSD | 55DA | TXL | 5CA8 | STKUP | 55EF |
LOMSG | 5780 | CMP | 74AA | NOR | 74D6 | TXW | 7424 | TXXR | 55E9 | EXXP | 7452 |
ΜΔΟ | 7498 | OVUNF | 7586 | OVEPF . | 750D | XRO | 740Δ | XRNINE | 7438 | UNDRF | 75Fl |
AOSR | 753^ | QDG | 7669 | FPA | 75FC | FPS | 75F6 | FPM | 75C8 | FPD | 7793 |
IMiJLT | 7639 | FPMEX | 7780 | LSHIFT | 7521 | ZEROX | 7489 | XZEROQ | 7735 | XZER02 | 7417 |
FPAE< | 7630 | TXRX | 73F3 | CONST | 6800 | FPD8RC | 6898 | TAN | 7416 | ATN | 69C3 |
RECIP | 73E6 | NTLN | 6A58 | EXPN | 6AC9 | SIN | 6394 | COS | 68A9 | ASIN | 63F2 |
DSZERO | 6A4ft | PHl | 6C50 | PH2 | 6C8D | PH3 | 6D34 | PH4 | 689A | LSFT8 | 6E47 |
ACOS | 68F7 | MAD8 | 6F2C | CMP8 | 53E4 | IOUPX | 6F52 | LOGlO | 6000 | YUPX | 6FE9 |
SORT | 6E65 | PTOR | 7336 | ROMID | 5300 | RMl | 5305 | RM2 | 6FA7 | RM3 | 5329 |
RTOP | 7328 | I0F1 | 5337 | I0F1A | 5347 | I0F2 | 534E | RNPPT | 5316 | STBIN | 62A0 |
IOF^T | 512Δ | SPSTS | .5354 | SPST | 5356 | SPSO | 5366 | SPSOA | 5351 | SPSl | 5370 |
LOBIN- | 6396 | LIMl | 538E | KILL | 538F | KILl | 5393 | SPLD | 537A | SPLl | 53A9 |
LIMIT | 53*0 | SPTAD | 538A | SPTl | 53CA | USMEM | 4C83 | XEY | 539C | ACCM | 7250 |
SPCAL | 53AE | XEYl | 7265 | RACC ' | 7268 | MSDEV | 7285 | TXX | 55AC | TXR | 72DE |
ACCP | 72"5I | SIGP | 72E2 | OPER | 7300 | OPERl | 7318 | CREG | 7203 | CLG | 732F |
SIGM | 72El | 731F | |||||||||
RRTM | 73FF. | 3 · | |||||||||
TOTAL ERRORS | |||||||||||
218 NAM CONST
303
»«««ERROR 201
»«««ERROR 201
324 NAM TAN »»«»ERROR 206
327 FLAG EOU BUFF+1S »««»ERROR 206
333 AOORST EOU TP7 »»»«ERROR 206
335 TS EOU REAL »♦«»ERROR 201
4flO NAM ATN »»»»ERROR 206
483 FLAG EOlJ 8UFF+15
7Ö98Q8/ 1 025
INSPECTED
Page 183
»»»»ERROR 206 • 484 EXP EOU BUFF+14
»»»«ERROR 206 487 ADORST EQU TP7
- 206 -
48BSHIFTl EOU Tl
»»»»ERROR 206 "
489 SHIFT2. EQU T2 ««»»ERROR 206 ■
491 TEMP EOU T »»»»ERROR 201
567 NAM DSZERO «»»»ERROR 206
570 DIGIT EQU BUFF »«»«ERROR 201
589 NAM NTLN «»»»ERROR 206
592 FLAG EQU BUFF+15 «»»»ERROR 206
593 EXP EQU BUFF+14 »«»»ERROR 206
594 SHIFTl EQU Tl »«»»ERROR 206
595 SHIFT3 EQU T3 «»«»ERROR 206
596 TEMP EQU T4 «»»«ERROR 206
597 TS EQU PEAL «»»»ERROR 201
665 NAM EXPN »»»«ERROR 206
668 FLAG EOU BUFF+15 »»«»ERROR 206
669 EXP EQU RUFF+14 »«»»C.QR0R 206
671 AOORST EQU TP7 »»«»ERROR 206
672 SHIFTl EQU Tl »»«»ERROP 206
673 AOORS EQU TP6 ««»«ERROR 206
674 ZQFLAG EQU TPS «««»ERROR 206
675 DIGIT EQU 8UFF ««»«ERROR 206
676 TRIG EQU TRIG1-14 ««««ERROR 201
788 NAM SIN ««««ERROR 206
791 FLAG EQII BUFF+15 »«»»ERROR 206
792 TS EQU REAL »»»»ERROR 206
793 QAO EQU BUFF+13
»»»«ERROR 206
794 TEMP EQU T4 »«»»ERROR 201
851 NAM ASIN «»»»ERROR 206
854 TS EQU REAL
««««ERROR 206
855 ADDRST EQU TP7 ♦»«»ERROR 206
856 FLAG EQU BUFF+15 »«»«ERROR 206
857 XTS EQU IMAG
709808/(1025
j ■ . ■ ■ - ·- ·
ί Page 184 ' " · ·' "^- 20?--
. »»««ERROR 201
qpO NAM PHl - «»»«ERROR 206
923 DIGIT ECU BUFF 20ή
»»««ERROR 206 925 ADDCIST EOU TP7
»»«»ERROR 206
9?6 QOIGIT EQU TP3. «»««ERROR 206 " ·
927 SHIFTl EQU Tl »«««ERROR 206
92« ZOFLAG EQU TP5 »•««ERROR 201
965 NAM PH2 »«««ERROR 206 • 963 SHIFT3 cQU T3
»«««ERROR 206
969 FLAG EOU 3UFF+15
»•««ER-^OR 206
970 AOORS EOU TP6
»«««ERROR 206
971 SHIFT2 EOU »««»ERROR 206
972 TS EQU REAL
70 9808/10
L INSPECTED
Page 185 CJ3PG 06/04/75 36:54.05
00215 00218 00219 00220 00221
00222 00223 00224 00225 00226 00227 00228 002?9 00230 00231 00232
00233 00234 00235 00236 00237 00238 00239 00240 00241
00242 00243 00244 00245 00246 00247 .00248 00249 00250
00251 00252 00253 00254 00255
00256 00257 00258 00259 00260 00261 00262
00263 00264 00265 00266 00267 00268 00269 00270 00271
6800
OPT | LIST.MEM |
NAM | CONST |
OPT | OBl6,HEM |
ORG | CONST |
6800 6808 HO 6310 6618
6.820 6828 6830 6838 6340 6848 684E
6854
»THIS FILE CONTAINS THE CONVERSION CONSTANTS USED IN
«THE MATH SUFiPOUTINES. BOTH THE T"IG AND LN CONSTANTS
«USED RY THE MATH ALGORITHMS HAVE ONLY THE MANTISSA «STORED. ALSO« FOP EACH SET, EACH SUCCESSIVE CONSTANT
«IS LEFT SHIFTED ONCE FROM THE PRECEEOING CONSTANT. «PROPER VALUE ALIGNMENT IS PERFORMED DURING EXECUTION
«OF EACH ALGORITHM.
«ALL OTHER CONSTANTS ARE STORED AS FULL «FLOATING POINT NUMBERS.
2/28/75 REV B
GRADS/UNIT CIRCLE ( 400 )
GRADS/UNIT CIRCLE ( 400 )
$02>SOO,S40,<S00»S00,$00.SO0.SOO
RADIANS/UNIT CIRCLE ( 2PI )
• R. | FUHRMAN |
* | |
FIRST | FCB |
β | |
A2PI | FCB |
* | |
FC3 | |
FCB | |
ΡΙ02 | FCB |
» |
GRAD ONE
FCB
FCB
FCB DEGREE FC8 FCB FCB FCB
TRIGl
$62»Sa3»$18.S53,S07»$18
DEGREES/UNIT CIRCLE ( 360 )
GRADS/QUADRANT ( 100 )
$02.$O0tSl0."500.SOO.SOO.SOOfSOO
RADIANS/QUADRANT ( PI/2 )
$00»$OOfS15,.'570i'S79.$63»j;26»S80
DEGREES/QUADRANT < 90 J
SOIfSOO. 590.. 500. 500, 500.SOOiSOO
GRADS/RADIAN ( 200/PI )
RADIANS/RADIAN ( 1 )
SOOfSQO.SlOtSOOf-SOn', SOQ.SOO.SQO
DEGREES/RADIAN { 180/PI )
SO 1«$00,557,529,^57,$79,S51,S31
ARCTAN« 1 )
S78,S53.S98.S16,533,S97 ARCTAN( .1 )
S99,S66»S86,S52.S49,S12
ARCTAN( .01 )
S99,S99«S66,566.S86,S67
ARCTANt .001 )
709808/1025
Page 186 CJBPG 06/04/75 36:54.05
00272 | 685Α | 99 | ' β. | . FCB | • | FCB | $99,$99,$99,$66,566,$67 |
00273 | «· | ARCTAN( .0001 ) | |||||
00274 | |||||||
00275 | 6860 | 99 | β | FCB | FCR | S99,$99,$99,599,$66,$67 " | |
00276 | ft | OPT | ARCTANt .00001 ) | ||||
00277 | |||||||
00278 | 6866 | 99 | « | FCB | $99,$99,£99.$99,$99,$67 | ||
00279 | ■β | LN( 2 ) | |||||
00280 | |||||||
00281 | 686C | 69 | β | FCB | S69,$31,$47.Sl8,$05,560 | ||
00282 | ■0· | LN( 1.1 ) | |||||
00283 | |||||||
00284 | 6872 | •95 | * | FCB | 595, $31, $01 ,$79,-580, 543 | ||
00285 | » | LN( 1.01 ) | |||||
00286 | |||||||
00287 | 6878 | 99 | * | FCB | $99,$50,533,$08,$53, 517 | ||
00288 | LNt 1,.0Ol ) | ||||||
00289 | |||||||
00?90 | 68 7Ε | 99 | FCB | $99«$95,$00,$33»530,584 | |||
00291 | » | LNt 1.0001 ) | |||||
00292 | |||||||
00293 | 6384 | 99 | β | FC8 | $99, $99, $5.0, $00, "533, 533 | ||
00294 | LN{ 1.00001 ) | ||||||
00295 | |||||||
00296 | 688Α | 99 | » | $99,$99,$95,$00,S00,$33 | |||
00297 | LN( 10 ) | ||||||
00298 | LNlO | ||||||
00299 | 6890 | 00 | $0 0, 500,523.502.558,SSO,$92,599 | ||||
00300 | LIST | ||||||
70980-8*/ 1025
- 210 Page 239 PL0T 07/09/75 07:57.00
00239 0024(J 00241 00242
00243 002&4 00245 00246 00247 00248 00249
00250 00251 00252 00253 00254 00255 00256 00257 0025? 00259 00260 00261
00262 00263 00264 00265 00266 00267 00268 0026«?
00270 00271 00272 00273 0027* 00275 00276 00277
0027P 00279 0028(1 00281 00282 002R3
00284 00285 00286 "00287
00288 0028Q 00290 00291 00292
00293
3BD0
ORG
OGTZR
S3BD0
3BD0 3BD2 4C 39D3 3B 38D5 8B
3SD7 8B 33D9 3305 BO
38DE 3SE0 2A 3BE2 -7E
38E5 3BE7 BD 3BEA 4F 33EB
33ED 33EF 38Fl BO 33F4
33F6 3BFfl 38FA 38FC 33FE 7F 3COl 3C02
3C03 3C04 3C06 3C0S OE 3C0A 3C0H DF
3COO 3C0F CE 3C12 OF 3C14 7Δ 3C17 3C19 7C 3ClC CE 3ClF RD
3C22 3C25 7Δ 3C28 BO 3C2B 7F
80
07
08
14
2E
3924
2E
03
3C54
A8
55EF
09
B9
OD
3CA0
89
3C
OF
OO
04
0000
2E 28 28
28
E5
03E8
28
002O
03
0078
0073
75FC
3C00
0009
3AP3
0009
DGTZ5
0GTZ2
DGTZl
DGTZ3
DGTZ4
THIS ENABLES THE USER TO POSITIOM THE PEM BY
PRESSING DIRECTION STEP KEYS. BY HOLDING THE KEY DOWN THE STEP IS REPETED. STEPS ARE 0.1* OF FULL SCALE FOR 25 STEPS (REPETED). ANO THEN INCREASED TO 1.0« INCREMENTS. UPON EXITING
THE USER COORDINATES ARE UPTURNED IN THE X AND Y REGISTERS.
PRESSING DIRECTION STEP KEYS. BY HOLDING THE KEY DOWN THE STEP IS REPETED. STEPS ARE 0.1* OF FULL SCALE FOR 25 STEPS (REPETED). ANO THEN INCREASED TO 1.0« INCREMENTS. UPON EXITING
THE USER COORDINATES ARE UPTURNED IN THE X AND Y REGISTERS.
OTO
DTl
0T3
LDA A
INC A
ADD
ADD A
ADD A
STA A
JSR
LDA A
BPL
JMP
BSR
JSR
CLR A
STA A
STA A
STA A
JSR
LDA A
BNE
LDA A
STA "Δ
LDA A
CLR
COM a
LSR A
LSR A
CMP A
BNE
LDX
DEX
STX
BNE
LOX
STX
DEC
BNE
I'.C
LDX
JSR
JSR
DEC
JSR
CLR
«P200
Tl
INIT
Tl
DTO
DT7
PENU
STKUP
RSFLG
BKWRT+1
STKFLG
SETUP
BKWRT+1
DT4A
ADATA INPUT ADATA
Tl
DT4
T4
T4
DTl
#1000
T4
T2
DT3
ATI
«ATI
FPA
PANGE
RSFLG
MOV
RSFLG EXIT.
RIGHT
LEFT
DOWN
SAVE KEY CODE
EXIT COMMAN? NO
LIFT THE PEN
RESET FLAGS
INITIALIZE ALL
NEW KEY? YES
KEYROiRO SELECT
KEYROiRO SELECT
READ <EY BOARD SCAN RESET SELECT COOE -
FIX KEY CODE
KEY RELEASED LOAD TIME -COUNT
TIME NOT UP
SET FAST REPETE TIME
SAME STEP
1.0 * STEP
AOO DELTA ADJUST
MAKE STEP MOVE
709808/1025 ORIGINAL
7£S -j
- 211 Page 240 PLOT 07/09/75 07:57.00
00294 | 3C2E | 20 | C4 | 0T4 | • | DT9 | BRA | A | OTl | ANOTHER STEP |
00295 | 3C30 | 7F | 00B9 | CLR | A | 8KWRT+1 | CLEAR KEY PUFFER | |||
00296 | 3C33 | 3E | DT4A | WAI | A | WAIT FOR KEY | ||||
00297 | 3C34 | 96 | BA | LDA | BKKC | |||||
00298 | 3C36 | 97 | 2E | STA | A | Tl | SAVE COMMAND | |||
00299 | 3C38 | 81 | 22 | CMP | «042 | EXIT? | ||||
00300 | 3C3A | 27 | 18 | BEQ | A | 0T7 | YES | |||
00301 | 3C3C | 81 | 25 | CMP | #045 | STOP KEY? | ||||
00302 | 3C3E | -27 | 14 | DT5 | OTlO,. | BEQ | A | 0T7 | YES | |
00303 | 3C40 | 81 | 14 | CMP | #®24 | UP? | ||||
00304 | 3C42 | 27 | OC | BEQ | A | DT6 | ||||
00305 | 3 C 44 | 81 | IC | CMP | #034 | DOWN? | ||||
00306 | 3C46 | 27 | 08 | BEO | A | DT6 | ||||
00307 | 3C4R | 81 | 23 | - CMP | «©43 | LEFT? | ||||
00308 | 3C4A | 27 | 04 | BEQ | DT6 | |||||
00309 | 3C4C | 81 | 24 | CMP | <*P44 | RIGHT? | ||||
00310 | 3C4E | 26 | EO | DT6 | BNE | A | DT4 | |||
00311 | 3C50 | 80 | 4E | BSR | A | SETUP | INITIALIZE | |||
00312 | 3C52 | 20 | C8 | DT7 | BRA | DT3 | ||||
00313 | 3C54 | 86 | 08 | LDA | R | *8 | ||||
00314 | 3C56 | 97 | 24 | 0T8 | STA | 8 | TIl | XYFLG=Y | ||
00315 | 3C58 | BO | 55EF | JSR | A | STKUP | PUSH UP STACK | |||
00316 | 3C5ß | C6 | 80 | LDA | *S80 | |||||
00317 | 3C5O | 07 | OD | STA | A | STKFLG | SET AUTO STACK | |||
00318 | 3C5F | 86 | 10 | LDA | #510 | |||||
00319 | 3C61 | 80 | 39A6 | JSR | GET | LOAO OFFSET | ||||
00320 | 3C64 | 86 | 20 | LDA | tf$20 | |||||
00321 | 3C66 | RO | 3973 | JSR | A | INDX | ||||
00322 | 3C69 | 80 | 75F6 | JSR | FPS | MINUS POSITION | ||||
00323 | 3C6C | BD | 39AA | JSR | TEMPI | |||||
00324 | 3C6F | 4F | CLR | |||||||
00325 | 3C70 | BO | 39A6 | JSR | GET | LOAD SCALE | ||||
00326 | 3C73 | CE | 0058 | LDX | «BUFF | |||||
00327 | 3C76 | RO | 7793 | JSR | FPD | (POSITION-OFFSET)/SCALE | ||||
00328 | 3C79 | CE | 0000 | LDX | «0 | |||||
00329 | 3C7C | OF | 94 | STX | XR+4 | |||||
00330 | 3C7E | OF | 96 | STX | B | XR+6 | ZERO NON-SIGNIFICANT OI | |||
00331 | 3C80 | BO | 38C3 | JSR | R | ADJST | ||||
00332 | 3C83 | 27 | D3 | 8EQ | A | DT8 | ||||
00333 | 3C85 | 06 | 26 | LDA | A | T9 | ||||
00334 | 3Ca7 | 07 | 09 | STA | PSFLG | RESTORE PSFLG | ||||
00335 | 3C89 | 96 | 2E | LDA | β | Tl | KEY COOE | |||
00336 | 3C8B | 81 | 22 | CMP | a<ü42 | |||||
00337 | 3C80 | 27 | 06 | 8EQ | OTlO | EXIT KEY | ||||
00338 | 3C8F | 50 | TST | |||||||
00339 | 3C90 | 2A | 03 | 3PL | A | DTlO | NOT PROGRAM EXECUTIOM | |||
00340 | 3C92 | 90 | 4800 | JSR | A | S4800 | RETURN TO KEYROAPD '-1OOE | |||
00341 | 3C95 | 7F | 00B9 | CLR | RKWRT+1 | CLEAR KEY BUFFER | ||||
00342 | 3C98 | 96. | 04 | LDA | #4 | 106 | ||||
00343 | 3C9A | 97 | 00 | STA | AOATA | RESET CHANNFL | ||||
00344 | 3C9C | 7F | 0000 | CLR | AOATA | |||||
00345 | 3C9F | 39 | RTS | |||||||
7098 08/10
- 212 Page 241 PLOT 07/09/75 07:57.00
00347 | 3CA0 | CE | 0078 | SETUP | SETUP | A | #AT1 | CLEAR STEP BUFFER |
00348 | 3CA3 | 8D | 7489 | A | ZEROX | |||
00349 | 3CA6 | CE | 1388 | LDX | «5000 | SET TIME LOOP | ||
00350 | 3CA9 | OF | 2B | JSR | A | T4 | ||
00351 | 3CA8 | 86 | 19 | LDX | A | «25 | STEP COUNTER | |
00352 | 3CAD | 97 | 2D | STX | A | T2 | ||
0 0 353 | 3CAF | 7C | 0078 | LDA | A | ATI | ||
00354 | 3CB2 | 86 | 10 | STA | A | #$10 | STEP=.1% | |
00355 | 3CS4 | 97 | 7A | INC | A | AT1+2 | ||
00356 | 3C86 | 4F | LDA | B | XYFLG=X | |||
00357 | 3C87 | 97 | 24 | STA | A | TIl | ZERO KEY BUFFER | |
00358 | 3CB9 | 97 | B9 | CLR | BKWRT+1 | |||
00359 | 3CBS | 96 | 2E | STA | 3 | Tl | ||
00360 | 3CB0 | C6 | 08 | STA | A | #8 | VERTICAL COMMAND? | |
00361 | 3CBF | 81 | IC | LDA | #5134 | |||
00362 | 3CCl | 22 | 08 | LOA | STl | XYFLG=Y | ||
00363 | 3CC3 | 07 | 24 | CMP | A | TIl | UP? | |
00364 | 3CC5 | 81 | 14 | BHI | #@24 | NO | ||
00365 | 3CC7 | 26 | 06 | STA | A | SET2 | ||
00366 | 3CC9 | 20 | 08 | CMP | A | SET3 | LEFT? | |
00367 | 3CCB | 81 | 23 | STl | 8NE | A | #943 | NO |
00368 | 3CCD | 26 | 04 | BRA | SET3 | |||
00369 | 3CCF | 86 | 80 | SET2 | CMP | #580 | NEGATIVE STEP | |
00370 | 3CDl | 97 | 79 | BNE | AT1 + 1 | |||
00371 | 3CD3 | 86 | 20 | SET3 | LDA | #$20 | POINTER TO POINT | |
00372 | 3CD5 | RO | 3973 | STA | INDX | SET IT | ||
00373 | 3C08 | OF | 20 | LOA | TP7 | LOAD INTO XR | ||
00374 | 3CDA | 7E | 7438 | JSR | A | TXXR | ||
00375 | β- | STX | ||||||
00376 | JMP | |||||||
00377 | A | NEG NUMBER? | ||||||
00379 | 3CDD | 96 | 91 | RANGE | RANGE | A | XR + 1 | NO |
00380 | 3CDF | 27 | 03 | PANl | ||||
00381 | 3CEl | BD | 3BAl | : LDA | A | 7ERXR | ||
00382 | 3CE4 | 96 | 90 | P4N1 | 8EQ | A | XR | EXPONENT>3? |
00383 | 3CE6 | 81 | 03 | JSR | #3 | NO | ||
00384 | 3CE8 | 2F | 09 | LOA | RAM? | |||
0038R | 3CEA | 86 | 03 | CMP | #3 | SET EXP TO 3 | ||
00386 | 3CEC | «37 | 90 | BLE | XR | |||
00387 | 3CEE | CE | 9999 | LOA | #$9999 | SET TO M4X | ||
00388 | 3CFl | OF | 92 | STA | XR + 2 | POINTER | ||
00389 | 3CF3 | OE | 20 | RAN2 | LDX | TP7 | SAVE CORO. | |
00390 | 3CF5 | 7E | 73F3 | STX | TXRX | |||
00391 | LOX | |||||||
0039? | JMP | |||||||
00393 | ||||||||
709808/10
Tabellenseite 1
00223 Netz ein und Supervisor
00226 Diese Routine ist die Netzeinschaltsequenz und
00227 Der Supervisor für CY.
00229 Netzausfall/Vektor neu starten
00230 Netzeinschaltung beginnt hier
00231 Stapelhinweismarke initialisieren
00232 Mögliches Test-ROM nehmen
00233 Ist es da?
00234 Abzweigen, wenn nicht
00235 Anderenfalls Steuerung übernehmen lassen
00236 ACCA = Alles Einsen
00237 AIO nun an allen Ausgängen
00238 BIO nun an allen Ausgängen
00239 Datenregisterauswahl vorbereiten
00240 Α-Daten auswählen
00241 B-Daten auswählen
00242 Index löschen
00243 Auf Basisseite bewahren
00244 Seitenadressen erhöhen
00245 Neuen Index wieder speichern
00246 Speicherprüfwort nehmen
00247 Im "vorgeschlagenen" Speicher speichern
00248 War der Speicher da außerhalb?
00249 Abzweigen wenn ja
00250 Anderenfalls ACCB = Seitenadresse der leeren Seite
00251 R/B ganz löschen 00253 Schon fertig?
00255 Ende der Speicheradresse bewahren
00256 Eine Seite unterstützen
00257 Und Ende des Programmspeichers
00258 Adresse auf Seite nehmen
00259 Alpha-Register initialisieren
00260 Laufende End-Hinweismarke nehmen
00261 1/0-1 initialisieren
00262 1/0-2 initialisieren
7 0S808/1025
00263 00264 00265 00266 00267 00268 00269 00270 00271
Seitenadresse erzeugen Auswahlcode-Spur A laden
Kassettenspur A setzen
Festkonffliabit nehmen
Verbindungswort setzen
Zahl fiir gerundete Anzeige laden
Im gerundeten Wort bewahren
MSB'S der verkürzenden Adresse nehmen
Um 1 ROM verschieben
Tabellenseite
00272 00273 00274 00275 00276 00277 00278 00279 00280 00281 00282 00283
00285 00286 00289 00290 00291 00292 00293 00294 00295 00296 00297
Wiederherstellen
Schon beendet?
Abzweigen wenn ja
Anderenfalls laufende ROM-Adresse laden
Drittes ROM-Wort nehmen
Ist es eine JMP-Anweisung?
Verkürzung fortsetzen wenn nicht
Anderenfalls Initialisierung anbieten
Verkürzung fortsetzen
Modifiziertes EOPM nehmen
In spezieller Programmhinweismarke bewahren
End-Hinweismarke nehmen
Zehn Register initialisieren
Hinweismarke wiederherstellen
Netzeinschalt-I/O-Fehler
Abzweigen wenn ja
Verbindungs-Auswahlcode laden
Verbindungs-Auswahlcode senden
Verbindungsbedingungen nehmen
I/O-Transfer sperren
Bit für automatischen Start zum Übertrag schieben
Abzweigen wenn kein automatischer Start
Druckpuffer ausblenden
709808/1025
00298 00299 00300 00301 00302.
00303 00304 00305 00306 00307 00308 00309 00310
00311 00312 00313 00314 00315
00316
Anderenfalls Pufferadresse nehmen
Für "Ladenachricht" bewahren Nachrichtenadresse für automatischen Start nehmen Nachricht in Puffer geben
Automatikstart drucken
Adresse für "Laden und Gehen" nehmen CCA initialisieren
Kassette rufen
Fehler erzeugt?
Abzweigen wenn nicht
Puffer ausblenden
Pufferadresse nehmen
Für "Ladenachricht" bewahren
"Ausgefallene" Nachrichtenadresse nehmen
Nachricht in Puffer geben
Druck ausgefallen
Speziellen Kassettenfehler ausgeben
ACCB = "LaufIJ-Instruktion
Lauf
Tabellenseite 3
00322 00323 00326 003 28 00329 00330 00331 00332 00334 00335 00336
00337 00338 00339
Der Supervisor folgt. Er ist der
Steuerabschnitt für die gesamte Maschine
Unterbrechungen freigeben
Alpha-Betrieb zurückstellen
Einzeloperationsplatz löschen
BCD-ACC.löschen
BCD-ACC. löschen
BLABR-Ziffernzähler löschen
Zweites Byte initialisieren
Adresse für Einzeloperationsplatz nehmen
In den Instruktionszähler setzen
Haupttabellenadresse nehmen
Zeitweise in Index bewahren
Zur Anzeigeansteuerung gehen
709808/1
00342 00344 00345 00346 00347 00348 00349 00350 00351 00352 00353 00354
55 00356 00357 00358 00359 00360 00363 65
00368 00369 00370 00371 00372 00373 00374
Wenn eine Taste verfügbar war, wird ihr Code zurückgegeben
in einen Akkumulator
Laufende Suchtabellenadresse nehmen
Rückschritt-Taste?
Abzweigen wenn nicht und suchen
Anderenfalls Prüfbetrieb
Abzweigen wenn Programmbetrieb
Anderenfalls "OPS" ausführen
Irgendeine Präfixtaste gedrückt?
Abzweigen wenn ja und vergessen
Tabelleneintritt in ACCB geben
Tabellen-Terminator?
Nach "Terminator gefunden" gehen
Zwei MSB'S ausblenden
Passendes gefunden?
Ja; nach "Passendes gefunden" gehen
Nein; fortfahren
Ein Byte folgt
Index erhöhen
Suche fortsetzen
"Tabellenterminator gefunden"
wird hier behandelt
Fehler oder "ODER"-Bedingung? Fehler! Zur Fehlerbehandlung gehen Tabellenadresse bewahren
Tabellenstartadresse nehmen Haupttabelle? Nein, fortfahren Anderenfalls Betrieb prüfen
Tabellenseite
Fortsetzen wenn Laufbetrieb Anderenfalls Index wieder laden Über den Laufbetrieb erhöhen
709808/1025
"ODER"-Bedingung Neue Tabellenadresse nehmen Tabellenadresse wiederherstellen
Neue Tabellenadresse nehmen Zeitweilig im Index bewahren Suche fortsetzen "N"-Bit ausblenden
Im Fehlerwort bewahren Zur Fehlerausgaberoutine gehen
Tabelleneintritt testen Bit 6 (7=0) nehmen Zur unmittelbaren Ausführung gehen Adresse HI nehmen
Tabelleneintritt nehmen Verdoppeln C .in MSW schieben MSW wiederherstellen
LSW wiederherstellen Neue Taste nehmen Instruktionscode nehmen
Ein Einzeloperationsplatz speichern ACCB = Instruktion Programmbetrieb?
Nein; zur Ausführung gehen Anderenfalls Instruktion speichern Aufwickeln
Ja; teilweise Codeoperation Für teilweise Ausführung "Teilweise Ausführung" durchführen
Einzeloperationswort nehmen Teilcode addieren Wiederherstellen Neue Tabelfenadresse bilden
Üb erwachung s anh ang Seitenverschiebung und C nehmen
ACCB verdoppeln In LS-Wort speichern
709808/1025
00424 00425 00426 00427 00428 00429
In C verschieben MS-Wort wiederherstellen
Tabellenadresse nehmen Routinenadresse nehmen ACCA (aber nicht C) löschen Zur Ausführung gehen
Tabellenseite
00430 00432 00433 00434 00435 00436 00437 00438 00439 00440 00443 00444
00445 00446 00447 00448 00449 00450 00451 00452 00453 00454 00455 00456 00457 00458
Zifferneintritt-Hinweismarke löschen
Stapelanhebung freigeben
Fehlerwort nehmen
Ja; Fehler drucken
Hinweismarke für Benutzerinstruktion nehmen
Auf nächste Instruktion zeigen
Aktualisierung bewahren
Nächste Benutzerinstruktion nehmen
Gültigkeit der neuen Hinweismarke prüfen
Durch Ausführung von (UIP)-(EOPM)
Fehler wenn ungültige Adresse
stehenbleiben?
Abzweigen wenn nicht
Bit "wir tun es" nehmen
Zur Spitze zurückkehren, wenn gestoppt
Anderenfalls Schrittmarke nehmen
Bei Schritt abzweigen
Anderenfalls Stapelmarke prüfen
Fortfahren, wenn Anhebung gesperrt
Anderenfalls Programm stoppen
Zurück zum Tastenfeld gehen
Fehler laden
In Fehlerplatz bewahren
Benutzerzustand Null nehmen
Instruktionshinweismarke zurückstellen
Fehler drucken
709808/1025
Tabellenseite
00471-00484 RDKEY1 Ist die Unterbrechungs-Dienstroutine zum Bearbeiten einer Tastenfeldunterbrechung.
Der Tastencode für die gedrückte Taste wird im Pufferbereich am Platz (BKWRT+D+BKKC gespeichert,
wenn der Puffer nicht voll ist. Wenn diese Routine bei RDTGL1 eingegeben wird,
wird die laufende Bedingung der Verbindungsschalter gelesen. Wenn keine Veränderung
zwischen (DGL) und den laufenden Stellungen festgestellt wird, wird das B-Register gelöscht.-Wenn
eine Differenz vorhanden ist, zeigt das B-Register an, welche Bits verändert wurden,
und die neuen Stellungen werden in TGL gespeichert.
Laufende I/O-Auswahl nehmen
Tastenfeld auswählen (Kassettenbit bewahren) Ausgeben Tastencode eingeben Bits invertieren
In LSB1S schieben I/O-Auswahl nehmen
Tastenfeld ausblenden Tastenfeld sperren Läuft Kassette?
Abzweigen wenn nicht R/S-Taste?
Abzweigen wenn nicht Anderenfalls Bandpositions-Hinweismarke zurückstellen
Null zu MSB von Lauf/Stopp-Marke Kassette abschalten Taste "Marke setzen"?
Zurück wenn nicht Läuft Programm?
Abzweigen wenn ja Anderenfalls zurück Lauf/Stopp-Marke nehmen
Lauf/Stopp-Taste?
Ja; verarbeiten Tasten "Marke setzen"?
709808/1025
OO517 00518 00519 00520 00521
Ja; verarbeiten Läuft Programm? Abzweigen wenn nicht
Anderenfalls Taste ignorieren 0 zu MSB
Tabellenseite
OO522 OO523 OO524 00525 00526
00527 00528 00529 00530 00531 00532 OO533 00534 00535 00536 OO537
00538 00539 00540 00541 00542 00543 00544 00545 00546 00548 OO55O
Von Lauf/Stopp-Marke
Neue Marke wiederherstellen
Taste puffern?
Abzweigen wenn ja und puffern
Schrittmarke zurückstellen
Anderenfalls zurückkehren
Lauf/Stopp-Marke prüfen
Fortsetzen wenn B7=0
ACCA vorstellen
Verbindungsmarke
Marken zurückstellen
Von Unterbrechung zurückkehren
Schrittr-Taste?
Abzweigen wenn ja
ACCB vorstellen
Eingangsmarke löschen
Marken zurückstellen
Schreibhinweismarke laden
Ist Puffer voll?
Ja, Taste ignorieren und zurückkehren
Nein, Schreibhinweismarke laden
Tastencode an nächsten Platz speichern
Schreibhinweismarke für nächste Taste erhöhen
Aktualisierte Schreibhinweismarke speichern
Von Unterbrechung zurückkehren
Verbindungsschalter werden hier gelesen
Unterbrechungen sperren
709808/1
00552 00553 00554 00555 00556 00557 00558 00559 00560
00562 00563 00564 00565 00568 00572 00573 00574
Verbindungsauswahl-Code laden
Auswahlcode ausgeben
Verbindungsbedingungen eingeben
Bits invertieren
I/O-Transfer sperren
Unterbrechungen wieder freigeben
Alte Bedingungen laden
Trigonometrie und Format ausblenden
Automatik Start und Format ausblenden
Neues Wort kombinieren
Alte Bedingungen nehmen
Neue Bedingungen speichern
Alte Bedingungen bewahren
ACCB = geänderte Bits
zurück
Routine zum Setzen von Grad, rad, Neugrad
Alte Einstellung nehmen
Alten Betrieb ausblenden
Neue Stellung anfordern
Tabellenseite
00581 00582 00583 00584 00585 00586 00587 00588 00589 00590 00591 00592
Alten Anzeigebetrieb nehmen
Alte Stellung ausblenden
Neue Stellung anfordern
Aktualisierung bewahren
Instruktions-Hinweismarke nehmen
Um Eins vorbewegen
Aktualisierung bewahren
Rundungseinstellung nehmen
Größer als
Ignorieren; RAM/Instruktions-Fehler
Bewahren
Zurück
709808/1025
Tabellenseite
00610-00619 Diese Routine steuert die Anzeige an, während auf die nächste Taste gewartet wird. Sie prüft ob eine
Taste nach Anzeige jedes Zeichens und liest die Verbindungsschalter ab nach jedem vollständigen
Durchlauf (16 Zeichen) durch die Anzeige. Wenn sich die Schalter geändert haben, führt ein Betriebswechsel zur Beendigung des vorherigen aufgebauten
Codes (falls möglich), und eine Formatänderung führt zu einem neuen Format des Anzeigepuffers.
Pausenfaktor nehmen
00624 00625 00626 00627 00628 00628 00630 00631 00632 00633 00634 00635
00636 00637 00638 00639 00640 00641 00642 00643 00644 00645 00647 00648 00649 00650
00651 00652 00653
Bewahren Ungerade Zahl sperrt Pause Pausenfaktor bewahren Ist eine Taste verfügbar?
Abzweigen wenn ja Anzeigepuffer initialisieren Tastenpuffer leer?
Abzweigen wenn ja Unterbrechungen sperren Tastenhinweismarke erniedrigen
Laufenden Tastencode laden Schleifenzähler vorstellen Nächsten Tastencode laden An neuem Platz wiederherstellen
Ist Schleife fertig?
Nein; Pufferlöschung halten
Ja; Unterbrechung wieder freigeben Zurück Verbindungsschalter lesen
Abzweigen wenn kein Betriebswechsel Pause oder Anzeige?
Wechsel ignorieren wenn Pause Aufgebaute Instruktion nehmen Zwei-Byte-Instruktion?
Abzweigen wenn ja Auswischen den Alten Rückkehrvektor Einfügungsbetrieb gesetzt?
709808/1025
ΌΟ654 00655 00656 00657 00658 00659 00660
Abzweigen wenn nicht
Anderenfalls Einfügung beenden
System zurückstellen
Alte Bedingung wiederherstellen
Auswischen den Rückkehr-
Vektor und beenden
Die vorhergehende Operation
Tabellenseite
Anzeige-S.C. laden
Index = Pufferadresse
Pufferadresse bewahren
Letzte Pufferadresse nehmen
ASCII-Zeichen abrufen
Für Kommaprüfung bewahren
Kommaindikator (MSB) ausblenden
ASCII-Verschiebung beseitigen
Fortsetzen, wenn erlaubter Code
Anderenfalls Leerstelle durch Fehler laden
Puffer-Hinweismarke erhöhen
Aktualisierten Wert bewahren
Index auf Zeichendecodierungstabelle setzen
Im Zwischenspeicher bewahren
ZeichenverSchiebung zur Tabellenadresse addieren
Neue Adresse wiederherstellen
Index wiederherstellen
ACCB = "Leer"
Segmente abschalten
ACCB vorstellen
Komma abschalten
S.C. und Zeichenhinweismarke ausgeben
Wartezähler für "Segment ein" laden
Erniedrigen
Schleife fortsetzen
Neue Segmentinformation nehmen
709808/1025
00687 00688 00689 00690 00691 00692 00693 00694 00695 00696 00697 00699
00702 00703 00704 00705 00706 00707 00708 00709 00710
00711 00713 00715
Segmentinformation ausgeben
Originalzeichen nehemn
Abzweigen wenn kein Komma
Anderenfalls Komma-Code (CB2) laden
Komma erleuchten
Zeichenhinweismarke erhöhen
Auf neue Taste prüfen
letzte Ziffer laden, warten
Zum Warten gehen
ACCB = "leer"
Zeichen 15 abschalten
Anzeige sperren
Zurück wenn Null
Anderenfalls Ansteuerung fortsetzen
Zifferneinschaltzeit laden
Zum Warten gehen
Tastenpuffer leer?
Abzweigen wenn ja
Anderenfalls Anzeige sperren
ACCB vorstellen
Komma abschalten
Neue Taste nehmen und zurück
Zeichendecodierungstaste
Alle Eingänge müssen auf derselben Seite seinl
Tabellenseite
00717 00719
00723 00752 00753 00762
00765
Eine "Null" gibt ein gegebenes Segment frei
Codierung ist A, B, C, D, E, F, G, Dezimalpunkt
in Bits 7 bis 0
Leer
Zeichen einfügen
Alle Segmente und DP
Warteschleife in einem anderen ROM für Einschaltbetrachtungen
Warten
709808/1
Tabellenseite 12
Tabellenseite 13
00788-00791 Dies ist die Fehlerausgaberoutine. Sie nimmt eine Fehlernummer auf den Basisseitenplatz "Fehler"
entgegen und gibt die zugeordnete Buchstabennachricht an den thermischen Drucker (ohne Rücksicht
auf das Bit" Papier alle".)
00793-00797 Alle Hauptrahmen-Fehlernummern sind positiv und spezifizieren einfach die Nummer in den Nachrichtenlisten.
Zum Beispiel bedeutet 1 die erste Eingabe, 2 die zweite Eingabe usw. MSB des ersten Zeichens
jeder Eingabe wird gesetzt um seinen Start anzuzeigen.
00799-00804 Alle Fehlernummern für I/O-Einrichtungen sind
negativ und die ROM-Identifizierungsnummer ist in Bits B6 bis B4 enthalten. Bits B3 bis BO enthalten
die Tabellenverschiebung wie oben für Hauptrahmenfehler beschrieben ist. Es ist zu beachten, daß
I/O-ROMS auf maximal 15 Fehlernachrichten begrenzt
sind.
00806-00809 Hauptrahmen-Fehler 1-5 sind in einem laufenden Programm
maskierbar. Wenn die Benutzermarke für 6 gesetzt ist, wenn sie auftreten, wird die Marke 5
gesetzt und das Programm läuft weiter.
00811-00813 Fehler Null ist ein Spezialfehler, der von den
SYNTAX-Tabellen erzeugt wird und benutzt wird, numerische Adresse zu terminieren, nachdem sie von
einer nicht-numerischen Taste empfangen wurden.
00817 Lauf/Stopp-Marke nehmen
00818 Lauf?
00819 Erzeugen wir nicht
00820 Fehlernummer nehmen
00821 Maskierbare Fehler?
00822 Abzweigen wenn ja
00823 Maskierbare Fehler?
00824 Abzweigen wenn ja
00825 Maskierbare Fehler?
00826 Abzweigen wenn ja
00827 Bit für Marke 6 setzen
00828 Marke 6 gesetzt?
709808/1025
00829 00830 00831 00832 00833 00834 00835 00836
Abzweigen wenn nicht Anderenfalls ACCB vorstellen Benutzermarke 5 setzen
Marken wiederherstellen Fehler auslöschen Programmablauf fortsetzen Ablauf stoppen
Laufende Programmadresse nehmen
Tabellenseite
In Programmhinweismarke bewahren
Fehlernummer nehmen
Abzweigen wenn kein Fehler
Tastenunterbrechung sperren
Schleifenzähler vorstellen
"Boden"-Taste nehmen
Herunterbewegen
Hinweismarke-Zähler erniedrigen
Fortfahren wenn nicht beendet
Alte Taste zurück auf Spitze setzen
Schreibindikator nehmen
Puffer voll?
Abzweigen wenn ja
Anderenfalls diese Eingabe registrieren
Neuen Indikator bewahren
Systemunterbrechung wieder freigeben
Vorherige Instruktion beenden
ACCA vorstellen
Tastenpuffer leeren
Zifferneingabe beenden
Stapelanhebung freigeben
Puffer ausblenden
Hinweismarke vorstellen für
Die Ladungsnachricht routine
Tabellenhinweismarke für Fehlernachricht nehmen
709808/1025
00863 00864 00865 00866 00867 00868
00869 00870 00871 00872 00873 00874 00875 00876 00877
00878 00879 00880 00881 00882 00883 00884 00891
Fehler nehmen Abzweigen wenn Hauptrahmenfehler Anderenfalls I/O-Identifizierungsnummer ausblenden
ROM-Adresse erzeugen Fehlertabellenverschiebung nehmen
In ROM-Identifizierungszwischenspeicher (LSB'S)
bewahren
Index = Fehlertabellenadresse -1 ACCA = Fehler ACCA = Tabellenverschiebungsnummer
Tabellensuchadresse vorschieben Laufende Eingabe nehmen Weitersehen wenn positiv
Anderenfalls Verschiebungsnummer erniedrigen Fortfahren wenn nicht Fehlerwort löschen
ACCA für LDMSG nicht -0 machen Fehlerbemerkung zum Puffer Fehler drucken
Alpha-Betrieb?
Abzweigen wenn ja Anderenfalls Spitze zurückkehren
"Zum Alpha" ausführen Division durch Null
Tabellenseite
00895 00897 00899 00901 00903 00905 00907 00909 00911
00913
I/O-Vorrichtung Unerlaubtes Argument Speicherüberlauf
Etikett nicht gefunden GOSÜB-Überlauf Fohlendes GOSUB
Taste nicht definiert Unrichtige SYNTAX Fehlende FOR-Anweisung Summenprüfungsfehler
709808/102
00915 Datei zu klein
00917 Verifizierung falsch
00919 Falscher Dateityp
00921 Datei nicht gefunden
00923 Ende des Bandes
00925 Kassette draußen
00927 Beschütztes Band
00929 Gesicherter Speicher
00931 Papier zu ende
00933 Unerlaubte Adresse
Tabellenseite 16
00937 Ende
SYMBOLTABELLE
Error = Fehler
00937 Ende
SYMBOLTABELLE
Error = Fehler
Tabellenseite 17
Tabellenseite 18
00161-00170 Es folgen die SYNTAX-Tabellen für CJ. Diese Tabellen
definieren zusammen mit der Supervisor-Suchroutine die vom Tastenfeld empfangenen Tastenfolgen. Es gibt
vier mögliche Aktionen, die ausgeführt werden können, nachdem ein Zusammenpassen mit dem laufenden Tastencode
gefunden wurde: 1) Unmittelbare Ausführung einer Funktion, 2) Zurückstellung auf eine neue Tabelle für
weiteres Suchen, 3) Sprung zu einer gegebenen Adresse und Ausführung eines Zwischencodes, 4) Hinzufügung
eines Aufbaucodes zum Instruktionsregister und Rückstellung auf eine neue Suchtabelle.
00179 Zurück
709808/1025
00197 Laden und laufen
00199 Einfügen
00201 Herausnehmen
00204 Speicherherausnahme
00210 Hier beginnt die Haupttabelle
Tabellenseite 19
00250 | Druck |
00254 | Herunterrollen |
00256 | Hochrollen |
Tabellenseite 20
00270 | Verschieben |
00272 | Löschen |
00295 | Eingeben |
00297 | Zurückspulen |
00299 | Programm laden |
00301 | Auflisten |
00303 | Programm aufnehmen |
00305 | Ende |
00312 | Etikett |
Tabellenseite 21
00321 Schritt
00322 Rückschritt
00326 "ODER" für Laufbetrieb
00327 "ODER" für Programmbetrieb 00361 SYNTAX-Fehle
00363 Sekundärtabellen
00365 Löschen
709808/10
Tabellenseite 22
00392 SYNTAX-Fehler 00400 (Alpha-Tabelle) 00410 Verschieben
Tabellenseite 23
00434 | Verschieben |
00436 | Band markieren |
00439 | Grad |
00441 | Rad |
00443 | Neu-Grad |
00445 | Festkommabetrieb |
00448 | Gleitkommabetrieb |
00451 | Gleitkommabetrieb 3 |
00454 | Nach Alpha |
00456 | Runden |
00458 | Verifizieren |
00460 | • Daten zurückrufen |
00462 | Identifizieren |
00476 | Von D.MS |
00482 | Nummer von R1S |
00484 | Stapel auflisten |
Tabellenseite 24
00504 Aufnahmegesichert
00506 Binär laden
00508 Binär laufen
00510 Binär aufnehmen
00512 Gesichert binär aufnehmen
00514 P-Band
00540 SYNTAX-Fehler
709808/1025
Tabellenseite 25
00542 Zum Etikett gehen
00546 Nach X gehen
00549 (Alpha-Tabelle)
00551 GOSUB-Etikett
00558 (Alpha-Tabelle)
00567 SYNTAX-Fehler
00578 Tabellender dritten Ebene
Tabellenseite 26
00611 (Zifferntabelle)
00625 STO löschen (Alphä-Register löschen)
00634 (Alpha-Tabelle)
00640 (Alpha-Tabelle)
Tabellenseite 27
00666 Fehler Null (Spezialfall)
Tabellenseite 28
00673 Aufbauroutine für Programmsprachenadresse
00675-00680 Nach Eingabe und Fall durch diese Liste von Erhöhungs-Instruktionen
enthält ACCA die richtige BCD-Ziffer, die durch'"den Benutzer eingegeben wurde.
00684 1 zum Ziffernzähler addieren
00685 ACCB für Rotation setzen
00686 Übertrag löschen
00687 W1 nach links rollen (LSW)
00688 W2 mit übertrag rollen
00689 ' Zähler erniedrigen
00690 Fortfahren wenn nicht Null
7 09808/1025
00691 00692 00693 00694 00695 00696 00697 00698 00699
00700 00701 00702 00703 00704 00705 00706 00707 00709 00711
00712 00714-00715
"ODER" neue BCD-Ziffer W1 wiederherstellen
Ziffernzähler nehmen Instruktion nehmen Adresse mit vier Ziffern?
Abzweigen wenn ja Adresse mit drei Ziffern?
Abzweigen wenn ja Anderenfalls zwei Ziffern Abzweigen wenn 2 eingegeben
Anderenfalls nächste Taste nehmen Vier Ziffern eingegeben?
Abzweigen wenn ja Anderenfalls nächste Taste nehmen Drei Ziffern eingegeben?
Abzweigen wenn ja Anderenfalls nächste Taste nehmen Behandlung des Dezimalpunkt-Terminators
BCD/Binär-Umwandlung Instruktionstyp prüfen
Die folgende Routine führt eine BCD/Binär-Umwandlung auf W1 und W2 durch
00718-00722 BCD/Binär-Umwandlung auf W1 und W2 mit binärem Resultat
in TP7 und TP7S. Resultat ist gleich L+64H+32H+4H, wobei L = binärer Wert der unteren zwei BCD-Ziffern und
A = binärer Wert der oberen zwei BCD-Ziffern
Tabellenseite 29
00724 00725 00726 00727 00731 00733 00739 00741 00743
00747
MS-BCD-Ziffern nehmen In binär umwandeln ACCB für Multiplikationen vorstellen
Ergebnis mit 4 multiplizieren 4* (hohe Binärziffern) bewahren mit 32 multiplizieren
32* (hohe Binärziffern) bewahren mit 64 multiplizieren
64H+32H ausführen 64H+32H+4H ausführen
709808/1025
00748 Untere zwei BCD-Ziffern nehmen
00749 In binär umwandeln
00750 L+34H+32H+4H ausführen
00752 Abzweigen wenn kein Übertrag
00753 Anderenfalls TP7 um eins vorschieben
00754 Index löschen
00755 BCD-Plätze löschen
00756 Mit Binärwerten in TP7 und TP7+1 zurückkehren
00758-00759 Diese Routine führt eine BCD-Binär-Umwandlung
auf ACCB-Bit zurückgeführten Binärzahlen in ACCA aus.
00761 ACCA = BCD-Ziffern
00762 ACCA = LS-Ziffer
00763 ACCB = MS-Ziffer
00764 Binär = MS-Ziffer * 10+LS-Ziffer
00769 ACCA = Binär
00771-00773 Diese Routine prüft den Instruktionstyp, prüft diesen Typ auf Überlauf und fügt Adressen- oder
Etikett-Information ein, wenn gültig
00776 Mit Instruktion vergleichen
00777 Abzweigen wenn JMP oder JSR
00778 Datenspeicherungsinstruktion?
Tabellenseite 30
00779 Mit Instruktion vergleichen
00780 Abzweigen wenn ja
00781 LS-Binär nehmen
00782 In Ordnung; Daten bewahren
00783 In Supervisor fortfahren
00784 MS-Binär nehmen
00786 Fehler wenn ja
00787 LS-Binär nehmen
00788 Übertrag = B7
00789 LSB von MSW = B7
00790 LSB wiederherstellen
00791 Im zweiten Byte bewahren
00792 "ODER" in Instruktion
709808/1025
00793 Mit Adresse wiederherstellen
00794 In Supervisor fortfahren
00795 MS-Binär nehmen
00796 In Ordnung wenn Null
00797 Fehler laden
00798 Im Fehlerwort bewahren
00799 Zum Fehlerausgang springen
00801 Alpha-Tabellen-Teilausführungscode
00810-00813 ACC = 7, wenn "H"-Taste und ACCA = 0, wenn "A"-Taste.
00817 Instruktion nehmen
00819 Ja; einzelnes Byte
0082O JMP oder JSR?
00821 Abzweigen wenn ja
00822 Alpha-Taste zu groß?
00823 Abzweigen wenn ja
00826 Neue Instruktion wiederherstellen
00827 Tasten-"Nummer" zur Etikettverschiebung addieren
00828 Im zweiten Byte bewahren
00829 In Supervisor fortfahren
00830 Zwei-Byte-Instruktion?
00831 Abzweigen wenn ja
00832 Alpha-Taste zu groß?
00833 Abzweigen wenn ja
Tabellenseite 31
00834-00837 Neue Instruktion = Alte Instruktion - 264 multipliziert
mit 5 + ACCA
00840 + "Tastennummer"
00841 Neue Instruktion wiederherstellen
00842 In Supervisor fortfahren
00843 JMP-Instruktion?
00844 Abzweigen wenn ja
00845 JSR-Etikett laden
00846 Bewahren
00847 JMP-Etikett laden
00848 Fortfahren
709808/1025
Tabellenseite 32
00859 Diese Routine behandelt die Ausführung der vom Benutzer definierbaren Funktion I
00876 Instruktion nehmen
00877 Abzweigen wenn "Ruf"-Instruktion
00878 Alpha-Taste bewahren
00879 Schalterstellung nehmen
00880 Überwachungsanhang?
00881 Abzweigen wenn nicht
00882 Anderenfalls drucken
00883 Fehler "Papier zu Ende"?
00884 Abzweigen wenn ja
00885 Alpha-Taste wiederherstellen
00886 Etikett-Verschiebung addieren
00887 Etikett finden
00888 Abzweigen wenn gefunden
00889 Fehler laden
00890 Bewahren
00891 Ausgeben
00892 Routinenadresse bewahren
00893-00896 Prüfen·ob zwei identische Etiketten aufeinanderfolgen,
und, falls zutreffend, die Rückkehr nicht stapeln.
00897 Stapelhinweismarke nehmen
00898 Subroutinenüberlauf?
00899 Abzweigen wenn nicht
00900 Fehler laden
00901 Ausgeben
00902 Programmhinweismarke LO nehmen
00903 Bewahren
00904 Programmhinweismarke HI nehmen
00905 UDF-Marke addieren
00906 Bewahren
00907 ACCA = alles Einsen
00908 R/S-Marke setzen 00910 Schrittmarke löschen
709808/1025
Tabellenseite 33
00911 Tastenpuffer leeren
00912 Fortfahren
00914 Aufbau der "Formatanweisung"
00916 "Alpha"-Nummer bewahren
00917 Alpha-Taste zur Instruktion addieren
00918 Sicherstellen, daß MSB = 0
00919 Instruktion wiederherstellen
00920 Alpha-Ausgabe-Instruktion?
00921 Abzweigen wenn ja
00922 SYNTAX-Fehler laden
00923 Hauptrahmen-RufInstruktion?
00924 Fehler wenn ja
00925 In Supervisor fortfahren
00926 Zum Tastenfeld-Alpha gehen
Tabellenseite 34
00935 Ziffernannahmetabelle für Marken- und RufInstruktionen
00937-00938 Die folgende Tabelle empfängt I/O-Einrichtungs-Nummern
und packt sie in die im Aufbau befindliche Instruktion
00947-00949 Vorrichtungs-Rufnummer in die vier MS-Bits von ACCA
bewegen.
00951 In der Instruktion bewahren
00952 Neue SYNTAX-Tabellenadresse nehmen
00953 Für nächste Suche, bewahren
00954 Nächste Taste nehmen
00956-00957 Die folgende Tabelle empfängt Markennummern-Information
und packt sie in die im Aufbau befindliche Marken-Instruktion
00968 Laufende Instruktion nehmen
00969 Abzweigen wenn nicht eine Markeninstruktion
00970 Marke 1 = "Marke 0"
00971 Neue Instruktion erzeugen
00972 Bewahren
00973 Ausführen
709808/1025
00974 Rundungseinstellung bewahren
0097 5 Ausführen
00977 Routine für Programmspeicherlöschung
00979 Index = Benutzerzustand
00980 NOP zum laufenden Zustand
00981 Hinweismarke vorschieben
00982 Ende des Programmspeichers?
00983 Abzweigen wenn nicht
00984 Zur speziellen "END"-Anweisung gehen
Tabellenseite 35 00987 Ende SYMBOLTABELLE Error = Fehler
Tabellenseite 36
00222-00225 Anzeige-Formatgeber für CJ. Tm Laufbetrieb wird das
X-Register angezeigt. Bei eingestelltem Programmbetrieb werden der Programmzähler und die Bestimmungsadresse
angezeigt
00227 Welcher Betrieb?
00228 Abzweigen wenn Programmbetrieb
00229 Alpha-Marke gesetzt?
00230 Abzweigen wenn nicht
00231 Anderenfalls Puffer löschen
00232 "Alpha" anzeigen
00233 Anderenfalls Laufformatgeber benutzen
00234 Index = Benutzerzustand
00235 Unrichtige Programmhinweismarke aktualisieren
00236 Lauf?
00237 Wenn ja, hier kein Format geben
00238 Anderenfalls Puffer löschen
709808/1025
00239 00240 00241 00242 00243 00244 00245 00246 00247 00248 00249 00250
00251 00253 00254 00255 00256 00257 00266 00270
Systemadressenverschiebung beseitigen
Programmhinweismarke nehmen
Systemverschiebung wiederherstellen
In BCD umwandeln
Pufferadresse nehmen
"P" nehmen
Zeichenzählung setzen
Zeichen laden
Ziffernzähler setzen
Ziffern laden
Einfügungsbetrieb?
Abzweigen wenn nicht
Pufferhinweismarke positionieren
"Einfügungs"--Zeichen nehmen
bewahren
Laufende Instruktion nehmen
Anzeige erleuchten?
Abzweigen wenn ja
Abzweigen wenn UPP in Datenregistern ist
Ziffern laden und zurückkehren
Tabellenseite
00272 00273 00274 00275 00276 00277 00278 00279 00280 00281 00282 00283
00284
"Alpha"-Nachricht nehmen
Zeichenzählung nehmen
Zeichen bewahren
Nächsten Zeichen nehmen
Pufferhinweismarke positionieren
Zeichenzählung erniedrigen
Fortfahren wenn nocht nicht beendet
Anderenfalls zurückkehren
BCD-Adressen nehmen
Zum Zwischenspeicher für Ladung bewegen
Pufferhinweismarke setzen
Ziffernzähler setzen
Ziffern laden
709808/1025
26331S1
Hinweismarke setzen Instruktion für Nachrichtentyp decodieren
"LBL"-Nachricht nehmen Zeichenzählung nehmen Laden und zurückkehren
"A-"Nachricht nehmen Zeichenzählung nehmen Laden und zurückkehren Eins aufstellen
"REG"-Nachricht nehmen Zeichenzählung nehmen Laden und zurückkehren DGTS überträgt BCD-Ziffern zum Puffer
Zeichen/Schiebe-Zähler in ACCB laden
Byte in Puffer löschen LSW nach links rollen MSW nach links rollen Bit in Pufferwort rollen
Ziffern/Verschiebungs-Zähler erniedrigen Schon vier Verschiebungen?
Nein, nächstes Bit rollen Ja, Ziffern/Schiebe-Zählerverfahren ACCB mit gerade geladener Ziffer laden
In ASCII umwandeln Im Puffer wiederherstellen Ziffern/Schiebe-Zähler wieder laden
Fertig?
Ja, zurück Nein, vordere Null geladen?
Ja, nächste Ziffer über sie laden Nein, Pufferhinweismarke erhöhen
Nächste Ziffer in nächsten Pufferplatz laden
709808/1025
Tabellenseite 38
00331-00335 Diese Routine ist der Ausführungscode für alle JSR-Anweisungen.
Sie prüft auf Niveau-Überlauf (größer als 5), bewahrt die Rückkehradrssse im Stapel und
überträgt die Steuerung an die richtige JMP-Routine für den gewünschten Typ der Übertragung.
003 37 JSR-Marke setzen
00338 Auf Eins
003 39 Alten Stapel auswischen
00340 Rückkehr-Vektor
00341 Stapel auf Index
00342 Subroutinen-Überlauf?
00343 Abzweigen wenn nicht
00344 Fehler laden
00345 Im Fehlerwort speichern
00346 Zurück zum Supervisor
00347 Anweisungshinweismarke nehmen
00348 Instruktion nehmen
003 49 Abzweigen wenn einzelnes Byte
00350 Anderenfalls Rückkehrhinweismarke erhöhen
00351 Im Zwischenspeicher bewahren
00352 LS-Byte nehmen
00353 In den Stapel schieben
00354 MS-Byte nehmen
00355 In den Stapel schieben
00356 Welcher Typ von JSR?
00357 Abzweigen, wenn ABS oder LBL
00359 Abzweigen wenn ja
00360 Anderenfalls JSR LBL X ausführen
00361 Absolut oder Etikett?
00362 JSR LBL ausführen
00363 JSR ABS ausführen
00365-00367 Diese Routine führt absolute Sprünge und absolute JSR1S
in Abhängigkeit vom Eingangspunkt aus.
00369 Alten Stapel auswischen
00370 Rückkehr-Vektor
00371 JSR-Marke löschen
709808/1025
00372 Index = Instruktionsadresse
00373 CCR = erstes Byte
00374 ACCA = MSB'S der Adresse 003 75 ACCB = LSB1S der Adresse
00376 B7 = B8 der Adresse
00377 Übertrag = B7 der Adresse
00378 B7 von ACCB = B7 der Adresse
00379 Adresse = Adresse + 256
00380 LS-Bits bewahren
00381 MS-Bits bewahren
Tabellenseite 39
00382 Adressen-EOPM ausführen
00384 Fehler wenn Adressei EOPM
00385 Adresse nehmen
00386 ACCB = Instruktion vorhanden 003 87 Mögliches zweites Byte?
00388 Zustand Null?
00389 Ja; fortfahren
003 90 Nein; erstes Byte prüfen
003 91 "erstes" Byte nehmen
00392 2-Byte-Instruktion?
00393 Abzweigen wenn nicht
00394 Adresse erhöhen
00395 Programmhinweismarke aktualisieren
00396 Aufbauen
00397 Instruktionshinweismarke aktualisieren
00398 Zum Supervisor zurück
00400-00404 Diese Routine setzt die Benutzerinstruktions-Hinweismarke
und die Benutzerprogramm-Hinweismarke auf die Adresse des in Frage stehenden Etiketts wenn sie dieses Etikett findet.
Wenn das Etikett nicht existiert, ergibt sich ein Fehler.
00406 Alten Stapel auswischen 00407. Rückkehrvektor 00408 JSR-Marke löschen
709808/1025
00409 Instruktionsadressen nehmen
00410 ACCA = Etikett
00411 Etikett auffinden
00412 Abzweigen wenn Etikett gefunden
00413 Fehler laden
00414 Im Fehlerwort bewahren
00415 JSR-Marke testen
00416 Abzweigen wenn nicht JSR
00417-00418 Anderenfalls den gespeicherten Rückkehrvektor auswischen
00419 Zurück zum Supervisor
00421-00425 Diese Routine empfängt ein Etikett in ACCA und kehrt mit der R/W-Adresse dieses Etiketts in das Index-Register
zurück. Die Suche beginnt bei Zustand 0 des Benutzerprogramms. Wenn kein Etikett gefunden wurde,
wird das N-Bit gesetzt.
00427 Startadresse initialisieren
00428 ACCB = Etikettinstruktion
00429 Adresse erhöhen
00430 Ende des Speichers?
00431 Abzweigen wenn ja
00432 Etikett-Instruktion?
00433 Abzweigen wenn nein
00434 Anderenfalls Adresse erhöhen
00435 Richtiges Etikett?
00436 Nein, suchen
Tabellenseite 40
00437 Ja; zurück
00438 N-Bit (Fehler) setzen
00439 Zurück
00441-00446 Diese Routine setzt die Benutzerinstruktions-Hinweismarke
und die Benutzerprogramm-Hinweismarke auf den absoluten Wert des ganzzahl Teils des X-Registers. Wenn
die resultierende Adresse außerhalb des Bereichs liegt, entsteht ein Fehler und es findet keine Änderung der
Hinweismarken statt.
00448 Alten Stapel auswischen
00449 Rückkehrvektor
709808/1025
00450 JSR-Marke löschen
00452 Abzweigen wenn negativer Exponent
00453 Exponent erhöhen
00454 Mit +4 vergleichen
00455 Abzweigen wenn größer
00456 X-Register umwandeln
00457 MSB'S des Ergebnisses nehmen
00458 Seitenadresse erhöhen
00459 LS-Bits nehmen
00460 Auf gültige Adresse prüfen
00461 Fehler laden
00462 Auf JSR prüfen
00463 Adresse Null nehmen
00464 Fortfahren
00466-00470 Diese Routine setzt -die Benutzerinstruktions-Hinweismarke
und die Benutzerprogramm-Hinweismarke auf die die Adresse des im X-Register gefundenen Etiketts.
Wenn das Etikett gefunden wird, tritt keine Änderung der Hinweismarken auf.
00472 Alten Stapel auswischen
00473 Rückkehrvektor
00474 JSR-Marke löschen
00475 ACCA für Etikett Null vorstellen
00477 Wenn negativ, Etikett Null finden
00478 ACCB = Anzahl der internen Ziffern
00479 Mehr als 2?
00480 Fehler wenn ja
00481 X-Register umwandeln
00482 Binäres Resultat nehmen
00483 Nach Etikett suchen
00484 Abzweigen wenn gefunden
00485 Anderenfalls Fehler
00487-00491 Diese Routine überträgt den ganzzahl Teil des X-Registers
nach W1 und W2 für eine BCD/Binär-Umwandlung. Nach Eingabe
ist ACCB = Anzahl der ganzzahligen Ziffern und Index = Registeradresse
709808/1
Tabellenseite 41
004 9 3 Spezialeingabe nur für X-Register
00495 Index vorstellen
00497 Vier Mantissenziffern nehmen
004 9 8 In BCD-Umwandlungsworten bewahren
00499 ACCB = -(Ziffernverschiebungszählung)
00500 Keine Verschiebung; zurück
00501 Anderenfalls Drehzähler laden
00502 Wort mit höchstem Stellenwert verschieben
00503 LSW drehen
00504 Drehzähler ernidrigen
00505 Fortfahren wenn nicht Null
00506 Ziffern/Schiebe-Zähler erhöhen
00507 Fortfahren, wenn nicht Null
00508 In Binär umwandeln
Tabellenseite 42
00532 Spezialangabe für "Lösch"-Routine
00534 Speichersicherungsinformation nehmen
00535 Sicherungsbit löschen 0053 6 Marke wiederherstellen 00537 Einfügungsbetrieb löschen
00539 Diese Routine führt die Endanweisung aus
00541 Stapelhinweismarke zurückstellen
00542 Benutzermarke löschen
00543 R/S-Marken löschen
00544 256 = Benutzerzustand Null
00545 UPP vorstellen und zurückkehren
Tabellenseite 43
00554-00556 Diese Routine behandelt die Rückkehr von der Subroutineninstruktion.
Sie prüft erst, ob ein JSR
i: u: / 1 fi? r,
00558 00559 00560 00561 00562 00563 00564 00565 00566 00567 00568 00569
00570 00571 00572 00573 00574 00575 00576 00577 00578
ausgeführt worden ist. Wenn nicht, ergibt sich ein Fehler
Alten Stapel auswischen
Rückkehrvektor
Stapel auf Index
Wurde GOSUB ausgeführt?
Abzweigen wenn nicht
Anderenfalls MSW der Adresse nehmen
UDF zurück?
Abzweigen wenn ja
In Instruktionshinweismarke bewahren
LSW der Adresse nehmen
In Instruktionshinweismarke bewahren
Zurück zum Supervisor
Fehler laden
Im Fehlerwort bewahren
Zurück zum Supervisor
UDF-Marke entfernen
Programmhinweismarke HI wiederherstellen
Programmhinweismarke LO nehmen
Wiederherstellen
Lauf stoppen
Zurück zum Tastenfeld
Tabellenseite
Ende
SYMBOLTABELLE
Error = Fehler
Tabellenseite
Diese Routine verarbeitet die Lauf/Stopp-Taste
709808/1025
00224 00225 00225 00227 00228 00230 00231 00232 00233 00235 00236 00236
00238 00239 00240 00241 00242 00243 00244 00245 00246 00247 00248 00249
Unterbrechungen sperren R/S-Marke nehmen B7 auf C schieben
Abzweigen wenn B7 1 war Abzweigen wenn B6 1 ist (Lauf)
Programmhinweismarke nehmen 1 subtrahieren
In Instruktions-Hinweismarke bewahren Tastenpuffer löschen Schrittmarke löschen
Neue Marke wiederherstellen Unterbrechungen freigeben Zurück
R/S-Marke löschen Instruktions-Hinweismarke nehmen Programmhinweismarke bewahren
ACCB vorstellen Eingabemarke setzen Marken wiederherstellen Marke speichern Zurück wenn B6 =
Null auf B7 Zurück
Tabellenseite
00258 00262-00266
00268 00269 00270 00271 00272 00273
SUBADD-16 Bit - zweier Komplement-Addition/Subtraktion
Diese Subroutine führt entweder TP7-TP6 oder TP7+TP6 aus abhängig vom Eingangspunkt, wo TP7 und TP6 im
Speicher gespeicherte 16-Bit-Worte sind. Die Inhalte
des Index werden zerstört. Das Ergebnis wird in TP7 und TP7+1 gespeichert.
MSB'S einer-komplementieren
LSB'S einer-komplementieren Index = Anzahl
Für zweier-Komplement erhöhen Anzahl wiederherstellen LS-Bits nehmen
7098 0 8/1025
OO274 00275 00276 00277 00278 00279
Addieren
Wiederherstellen
MS-Bits nehmen
Addieren
Wiederherstellen
Zurück
Tabellenseite
00286-00289
Diese Routine führt eine Binär/BCD-Umwandlung auf
dem Indirect-Register durch. Maximaleingang ist Dezimal 9999. Die BCD-Ziffern werden in T2 und T1
mit MS-Ziffern NT2 gespeichert.
Binärzahl bewahren
LS-BC-Akkumulatbr löschen
MS-BCD-Akkumulator löschen
Subtraktion von 1000 vorbereiten
Subtraktionswert bewahren
TP7=TP7+TP6 ausführen
Wiederherstellen wenn negativ
Anderenfalls LS-BCD-Wort erhöhen
Subtraktion fortsetzen
Binärzahl wiederherstellen
BCD-Ziffer speichern
Subtraktion von 100 vorbereiten
1001S ausführen
Subtraktion von 10 vorbereiten
10'S ausführen
LS-BCD-Ziffer nehmen
Mit LS-BCD-Wort kombinieren
Resultat wiederherstellen
Umwandlung komplett
LSB1S des Subtraktionsworts nehmen
Für Test nach rechts verschieben
ACCB = Drehzählung
C für Drehung löschen
LSW nach links drehen, C = B7
7η
00315 00316 00317
00318 00319 00320 00321 00322
MSW nach links drehen, BO = C
Drehzähler erniedrigen
Schon vier Drehungen?
LSB nach C verschieben
C = 1 bedeutet 10's fertig
Wiederverschieben
C = 1 bedeutet 100's fertig
1000's fertig durch Fehler
Tabellenseite
00331 Benutzermarke-Subroutinen 00333 Benutzermarke setzen
00335-00337 Diese Routine hat acht Eingangspunkte, jeweils einen für jede Benutzermarke. Bei Eintritt muß
ACCA Null sein und das Übertragsbit muß gesetzt sein.
Das C-Bit ist gesetzt und durch ACCA rotiert,
mit Stopp an der richtigen Position für jede Marke
B7 = Marke 8, während BO = Marke
"ODER" im Benutzermarkenwort
Neuen Zustand wiederherstellen
Zurück
Subroutine für Benutzermarkenlöschung
Diese Routine hat acht Eingangspunkte, jeweils einen für jede Benutzermarke. Bei Eingang muß
ACCA Null sein und das Übertragsbit muß gesetzt sein.
Das C-Bit ist gesetzt und durch ACCA rotiert, mit Stopp an dem richtigen Platz für jede Marke. B7
= Marke 8, während BO = Marke
ACCA einer-komplementieren
Marke löschen
Markenwort wiederherstellen
Zurück
Subroutine für "IF"-Markensetzung
Diese Routine hat acht Eingangspunkte, jeweils
einen für jede Benutzermarke. Bei Eingang muß ACCA Null sein und das Übertragsbit muß gesetzt
sein.
00376-00379 Das C-Bit ist gesetzt und durch ACCA rotiert, mit
00339-00344
00347 00348 00349 00351 00353-00355
00357-00363
00365 00366 00367 00368 00370 00372-00374
709808/1025
Stopp am richtigen
Tabellenseite 4
00380-00382
00384 00385 00386 00387 00389 00391-003
00395-00401
Platz für jede Marke. B7=Marke 8/ während BO-Marke
ACCA = Markenzustand
ACCA = 0 bedeutet nicht gesetzt
Marke gesetzt; zurück
Programmhinweismarke modifizieren und zurückkehren
Subroutine für "IF"-Markenlöschung
Diese Routine hat acht Eingangspunkte, jeweils einen für jede: Benutzermarke. Bei Eingang muß ACCA
Null sein und das Übertragsbit muß gesetzt sein.
Das C-Bit ist gesetzt und durch ACCA rotiert, mit Stopp an dem richtigen Platz für jede Marke. B7 =
Marke 8, während BO = Marke
ACCA = Markenzustand
ACCAO bedeutet "Marke gesetzt"
nicht gesetzt; zurück
Tabellenseite
Tabellenseite
Ende
SYMBOLTABELLE Error = Fehler
709808/1025
Tabellenseite
00222 00225 00226 00227 00228 00229 00230 00231 00232 00233 00235 00236
00239 00240 00243 00245 00246 00255 00257 00258 00259 00260 00261 00262 00263 00264
00265 00266 00267 00268 00269 00270 00271
Diese Routine für IF-, IF+ und IFO aus
Abzweigen wenn ja
Anderenfalls Instruktions-Hinweismarke nehmen
Eine Instruktion überspringen
Laufende Instruktion nehmen
Zwei-Byte-Instruktion?
Abzweigen wenn nicht
Anderenfalls vorwärts bewegen
Hinweismarke wiederherstellen
Zurück
Mantissenvorzeichen nehmen
Nicht angetroffen wenn negativ
Mantissenvorzeichen nehmen
Nicht angetroffen wenn positiv
X nehmen
Abzweigen wenn nicht
Anderenfalls Test fortführen
Zurück wenn Bedingung angetroffen
"Rückwärtssinn"-Marke setzen
Null auf weniger als Marke
Index vorstellen
X-Register übertragen
Index vorstellen
Subtrahieren
Mantissenvorzeichen nehmen
Mantissenziffer nehmen
Index vorstellen
X-Register wiederherstellen
Vorzeichen des Ergebnisses testen
Abzweigen wenn negativ
Anderenfalls auf Null testen
Abzweigen wenn O-Ergebnis
tiberspringungsmarke nehmen
709808/1025
Tabellenseite
00272 00273 00274 00275 00276 00279
Rückwärtssinn wenn gesetzt Anderenfalls Sinn festhalten Nicht angetroffen wenn X-Y
Überspringungssinn zurückhalten Anderenfalls Sinn umkehren
Diese Routine behandelt die Ausführung aller "FOR-"Anweisungen
C-Register-Ädresse nehmen
Bewahren
Schleifen-Anhebungsadresse nehmen
Instruktion "FOR C" nehmen
Bewahren
B-Register-Adfesse nehmen
"FOR B"-Instruktion nehmen
Bewahren
A-Register-Adresse nehmen
"FOR A"-Instruktion nehmen
Schleifenvariablen-Adresse bewahren
Schleifenerhöhung nehmen
Schleifenanhebungs-Adresse bewahren
"FOR"-Instruktion bewahren
Arithmetische Zwischenadressen nehmen
X-Register übertragen
Schleifenerhöhungs-Adresse nehmen
Ins X-Register bewegen
Schleifenvariablen-Adresse nehmen
1 addieren
Schleifenvariablen-Adresse wiederherstellen
Durch Äkutalisierte Zahl ersetzen
Ende der Speicherhinweismarke nehmen
Seitenadresse erniedrigen
Bewahren
Instruktionshinweismarke nehmen
"Next"-Instruktion nehmen
709808/1025
00309 Verschiebung beseitigen
00310 Mit 2 multiplizieren
00311 Mit 4 multiplizieren
00313 Alpha-Register-Verschiebung addieren
00314 In LS-Bits der Hinweismarke bewahren
00315 Alpha-Register-Hinweismarke nehmen
00316 "Schleifenende"-Prüfung vornehmen
00317 Vorzeichen des Ergebnisses nehmen
00318 Mantissenziffer nehmen
00319 Zwischenadressen für X-Register nehmen
00320 X-Register wiederherstellen
00321 O-Ergebnis?
00322 Fortfahren wenn ja
00323 Schleifenerhöhungs-Adresse nehmen
00324 Vorzeichen verschieden?
00325 Fortfahren wenn nicht
00326 Anderenfalls zurück
Tabellenseite 54
00327 Laufende Benutzeradresse nehmen
00328 "FOR"-Instruktion für Suche nehmen
00329 Benutzerzustand schon Null? 003 30 Fehler wenn ja
00331 Anderenfalls Such-Hinweismarke erniedrigen
00332 Ist dies die "FOR"-Anweisung?
00333 Abzweigen wenn nicht
00334 Anderenfalls neue Instruktionsadresse bewahren
00335 Zurück
00336 Fehler laden
003 37 Bewahren für Ausgabe
003 38 Zurück
003 41 Fließ, "1"
709808/1025
OO364-OO369
Diese Routine behandelt alle 7 8 Speicherregister-Instruktionen. Sie schließen Registerarithmetik/
Indirect usw. für alle RückrufInstruktionen ein. Das X-Register wird zum letzten X kopiert. TP7,
T1 und T2 und T3 werden von dieser Routine benutzt. Die Gleitkomma-Routinen werden abgerufen falls notwendig.
Eingangspunkt für Division Eingangspunkt für Multiplikation Eingangspunkt für Subtraktion
Eingangspunkt für Addition Arithmetikoperator bewahren Rückrufmarke löschen Zifferneingabe im Gang?
Abzweigen wenn nicht Anderenfalls beenden MSB setzen Anhebung freigeben Rückrufmarke aufsetzen
Instruktionsadresse nehmen Instruktion nehmen In ACCA bewahren
UND in T3 Alpha-Register? Abzweigen wenn nicht
Ein oder zwei Bytes? Abzweigen wenn zwei Bytes Instruktionsverschiebung entfernen
In BCD umwandeln Registernummer nehmen
In R/W-Adresse umwandeln Zweites Byte nehmen Verschiebung entfernen
Register im Benutzerspeicher? Abzweigen wenn ja Basisseitenadresse nehmen
Für Modifikation bewahren Adresse erzeugen Ende der Speicherseite nehmen
7 0 9808/1025
00404 00405 00406 00407 00408 00409 00412 00413
00414
Eine aufstellen
In MS-Bits der Adresse bewahren
Adresse auf der Seite nehmen
In LS-Bits der Adresse bewahren
Verschiebung entfernen
Registernummer mit acht multiplizieren
Zur Adresse addieren
Wiederherstellen
Index = Adresse
Tabellenseite
00415 00416 00417
00418 00419 00420 00421 00422 00423 00424
00425 00426 00427 00428 00429 00430 00431 00432 00433 00434 00435 00436 00437
Fortsetzen Zweites Byte nehmen Adresse auf B7 schieben MSB zum übertrag
Übertrag nach B7 Systemadresse erzeugen Abzweigen wenn Fehler Instruktion nehmen
Möglich Indirekt? Abzweigen wenn ja Möglich Indirekt? Abzweigen wenn nein
Möglich Indirekt? Abzweigen wenn nein Für Register Null vorstellen Registerexponent nehmen
Register Null wenn negativ ACCB = Anzahl der Ziffern Größer als Abzweigen wenn ja
Neue Adresse erzeugen MS-Binär nehmen Fehler wenn nicht Null
709808/1025
00438 00439 00440 00441 00442 00443 00444 00445 00446 00447 00448 00449
00450 00451 00452 00453 00454 00455 00456 00457 00458 00459 00460 00461 00462 00463
00464 00466 00468
LS-Binär nehmen
Systemadresse erzeugen
Abzweigen wenn kein Fehler
Fehler laden
In Fehlerwort bewahren
Zurück
Rückrufmarke nehmen
Null enthält Speicherinstruktion
Registeradresse bewahren
X zum letzten X
Stapel aufwärts?
Registeradresse wiederherstellen
Rückruf
Instruktion nehmen
Zwei-Byte-Instruktion?
Abzweigen wenn ja
Instruktions-Hinweismarke nehmen
Anheben zum Überspringen des zweiten Byte
Wiederherstellen
Zurück
Arithmetikmarke nehmen
Null enthält keine Arithmetik
Registeradresse bewahren
Arithmetische Zwischenadresse nehmen
X in Zwischenspeicher übertragen
Registeradresse nehmen
Operationsmarke nehmen
Ja; Addition durchführen
Ja; Subtraktion durchführen
Tabellenseite
00470 00471 00472 00473
Ja; Multiplikation durchführen Division durch Fehler Aufwickeln Multiplizieren
709808/1025
00474 00475 00476 00477 00478 00479 00480 00481 00482 00483 00484 00486-00491
00493 00494-00497
00500 00501 00502 00504 00505 00506 00507 00508 00509 00510 00511
00512 00513 00514 00515 00516 00517
Aufwickeln
Subtrahieren
Aufwickeln
Addieren
Registeradresse nehmen
F.P.-Nummer speichern
ZwJs^henadresse nehmen
X-Register wiederherstellen
Programmzähler prüfen
Nummer speichern
Programmzähler prüfen
Diese Subroutine wandelt alle numerischen Registeradressen in die akuteile R/W-Adresse
des Registers um. Sie prüft dann auf Gültigkeit und erzeugt Fehler 7, wenn ungültig bzw. Löschung von ACCA wenn gültig.
Die Adresse wird in das Indexregister zurückgegeben. Bei Eingang ist ACCA = Registeradresse.
Null nach ACCB
Registeradresse mit acht multiplizieren durch dreimalige Linksverschiebung.
8 zum Ergebnis addieren
Übertrag zu MSB'S addieren
Ergebnis für Subtraktion bewahren
Registerstartadresse nehmen
Für Subtraktion bewahren
EOM-Registeradresse durchführen
Ergebnisnehmen
Für später bewahren
Ende des Programmspeichers nehmen
Für Subtraktion vorbereiten
Registeradresse-EOPM ausführen
Abzweigen wenn kein Fehler
Fehler laden
Fehler bewahren und zurück
Index = gültige Adresse
Kein Fehler; ACCA löschen
Zurück
7-0 9808/1025
00519 00520 00521 00522 00523 00524
X-Register-Exponent nehmen
Register auf Null wenn negativ
ACCB = Anzahl der Ziffern
Zuviele?
Abzweigen wenn nicht
Fehler laden
Tabellenseite
00525 00526 00527 00528 00529 00530 00531 00532 00533 00534 00540 00541
00542 00543 00544 00545 00546 00547 00548 00549 00550 00551 00552 00553 00554 00555
00556 00557
Bewahren
Zurück
RegisterStartadresse nehmen
Bewahren
Zwischen Hinweismarken löschen
X-Registeradresse nehmen
X-Register umwandeln
MS-Bits des Ergebnisses nehmen
LS-Bits nehmen
Ergebnis mit 8 multiplizieren
MS-Bits bewahren
LS-Bits bewahren
Registerstartadresse nehmen
Für Subtraktion bewahren
Subtrahieren (EOM-Registeradresse)
Fehler wenn Seite Null oder negativ ist
Ergebnis nehmen
Bewahren
Alte Hinweismarke nehmen
Für Subtraktion bewahren
Neu-Alt ausführen
Abzweigen wenn negatives Resultat
Altes EOPM nehmen
Bewahren
Neues EOPM nehmen
Bewahren
Altes EOPM nehmen
Löschen
709808/1025
00558 Neues EOPM nehmen
00559 Benutzerzustand Null?
00560 Fehler wenn ja
00561 Instruktions-Hinweismarken-Adresse nehmen
00562 R/S-Marke nehmen
00563 Im Lauf?
00564 Abzweigen wenn ja
00565 Anderenfalls Programm-Hinweismarken-Adresse nehmen 00567 Hinweismarke -TP5 ausführen
00571 In Ordnung wenn Hinweismarke £ TP5
00572 Anderenfalls Lauf/Stopp prüfen
00573 Fehler bei Lauf
00574 Anderenfalls UPP auf Null setzen
00576 Neues EOPM nehmen
00577 Alles gelöscht?
00578 Abzweigen wenn ja
00579 Speicher löschen
Tabellenseite 59
00580 Hinweismarke erhöhen
00581 Fortfahren
00582 Neues EOPM nehmen
00583 Bewahren
00584 Aufstellen
00585 Instruktion dort nehmen
00586 Zwei-Byte-Instruktion?
00587 Abzweigen wenn nicht
00588 Anderenfalls NOP zum letzten Zustand
00589 Zurück
Tabellenseite 60
00632 Ende
SYMBOLTABELLE
00632 Ende
SYMBOLTABELLE
7 0 9808/1025
Error = Fehler
Tabellenseite
00222-00223
00232 00233 0O234 00235 00236 00237 00238 00239 00240
00241 00242 00243 00244 00245 00246 00247
Diese Routine enthält alle Codes für alle tiberarbeitungsfunktionen
auf CJ.
ACCA für möglichen Fehler vorstellen
Information "Speichersicherung" nehmen
Sicherungsbit zum Übertrag bewegen
Abzweigen bei Speichersicherung
Anderenfalls Programmhinweismarke laden
Zu speichernde Instruktion nehmen
In ACCB bewahren
Abzweigen wenn 1—Byte-Instruktion
Anderenfalls Programmhinweismarke vorschieben
Ende des Speichers?
Abzweigen wenn nicht
Mögliches Alpha zurückstellen
Speicherüberlauffehler laden
Fehlernummer bewahren
Zurück
Aufbauen
Einfügungsbetrieb gesetzt
Abzweigen wenn nicht
Zwei-Byte-Instruktion?
Abzweigen wenn nicht
Speicher fallenlassen
Speiche^ fallenlassen
Instruktions-Hinweismarke nehmen
Instruktion nehmen
Erstes Byte bewahren
Zweites Byte nehmen
Abzweigen wenn kein zweites Byte
Anderenfalls zweites Byte speichern
ACCA für Tastenaufzeichnung löschen
Programm-Hinweismarke nehmen
Verbindungen nehmen
709808/1025
00263 00264 00265 00266 00267 00268 00269 00270 00271
Tastenaufzeichnungsbetrieb gesetzt?
Abzweigen wenn nicht
Tasten aufzeichnen und zurück
Laufende Instruktion prüfen
Abzweigen wenn ein Byte
Anderenfalls Hinweismarke vorschieben
Hinweismarke vorschieben
Ende des Speichers?
Abzweigen wenn ja
Tabellenseite
00272 00273 00274 00275 00276 00277 00278 00279 00280 00281 00282 00283
00284 00285 00286 00287 00288 00289 00290 00291 00292 00293 00294 00295
Anderenfalls neue Programmhinweismarke bewahren
Zurück
Zwei-Byte-Instruktion?
Abzweigen wenn ja
Anderenfalls Instruktion in Speicher prüfen
Zwei-Byte-Instruktion?
Abzweigen wenn ja
Herausnahme-Hinweismarke bewahren
Speicher erhöhen
Index vorstellen
Adressen modifizieren
Fortfahren
Laufende Instruktion in Speicher nehmen
Zwei-Byte-Instruktion?
Abzweigen wenn ja
Anderenfalls folgende Instruktion nehmen
Abzweigen wenn ein NOP
Anderenfalls Speicher fallenlassen
Zu speichernde Instruktion nehmen
Speichern
Zweites Byte nehmen
Speichern
Index vorstellen
Einfügungsstart bewahren
709808/1025
00296 00297 00298 00299 00302 00304 00305 00306 00307 00308 00309 00310
00311 00314 00316
00317 00318 00319 00320 00321
00322 00323 00324 00325 00326
Einfügungsende nehmen
Aufbewahren
Adressen modifizieren
Fortsetzen
Geschützter Speicher?
Zurück wenn ja
Einfügung?
Beenden wenn gesetzt
Laufende Benutzeradresse nehmen
Für Einfügungsstart bewahren
Zurück zum Supervisor
Einfügung beenden
Zurück
Geschützter Speicher?
Zurück wenn ja
Einfügung?
Ignorieren wenn ja
Programm-Hinweismarke nehmen
Laufende Adresse bewahren
Instruktion nehmen
Laufende Instruktion bewahren
Zwei-Byte-Instruktion?
Abzweigen wenn nicht
Speicher anheben
Speicher anheben
Tabellenseite
00327 00328 00329 ΟΘ33Ο 00331 00332 00333
00334
Index initialisieren
Herausgenommene Instruktion nehmen
Zwei-Byte-Instruktion?
Abzweigen wenn nicht
Zwei Zustände herausgenommen
Adressen modifizieren
Auf Tastenaufzeichnung prüfen
Alte Adressen nehmen (Tastenfeld-Aufzeichnung bewegte sie)
7 09808/1025
Wiederherstellen Zurück Index für Modifizierung bewahren
Index für Suche vorstellen Um Eins nach vorne überspringen Um Eins nach vorne überspringen
Schon beendet?
Abzweigen wenn nicht Anderenfalls zurück Nächste Instruktion nehmen
Anderenfalls auf JMP oder JSR prüfen Abzweigen wenn nicht Auspacken und Adresse prüfen
Abzweigen wenn keine Modifikation nötig Nicht Null; modifizieren Anderenfalls LS-Bits testen
Keine Modifikation wenn Null Alte Adresse modifizieren Abzweigen wenn negatives Resultat
Instruktion ausblenden Alte InstruktiQnsadresse entfernen Alte Instruktion wiederherstellen
ACCB = LS-Bits der neuen Adresse Neue Adresse packen Neue LS-Bits wiederherstellen
"ODER" in neuen MS-Bits Neue MS-Bits wiederherstellen Fortfahren ACCA = ACCB = Minimaladresse
Fortfahren Programm-Hinweismarke nehmen Instruktion nehmen Hinweismarke erhöhen Ende des Speichers?
Abzweigen wenn ja Laufende Instruktion nehmen Alte Instruktion bewahren
Neue Instruktion übertragen
709808/1025
00377 00378 00379 00380 00381
Fortfahren Eins aufbauen Instruktion nehmen Byte-Instruktiai ?
Abzweigen wenn nicht
Tabellenseite
Anderenfalls auswischen
Fehler setzen
Instruktion abgestoßen?
Abzweigen wenn nicht
Fehler laden
Bewahren
Programm-Hinweismarke wiederherstellen
Zurück
Programm-Hinweismarke nehmen
Neue Instruktion nehmen
An neuem Platz bewahren
Speicher-Hinweismarke erhöhen
Ende des Speichers?
Abzweigen wenn nicht
Anderenfalls 1 aufbauen
NOP zum letzten Zustand
Zurück
GOTO/GOSUB-Adresse auspacken und prüfen
Zweites Byte der Instruktion nehmen
Adresse herausziehen
ACCA = MS-Bits
ACCB = LS-Bits
Instruktionscode ausblenden
MS-Bits bewahren
LS-Bits bewahren
Basisseitenverschiebung addieren
Adressenmodifikation notwendig?
Einfügungsstart nehmen
709808/1025
00418 00419 00420 00421 00422
00423 00424 00425 00426 00427 00428 00429 00430 00431 00432 00433 00434 00435 00436
Für Test "Angegriffen" bewahren
Für Test "Feld" bewahren
Für Test "B-A" bewahren
Einfügungsende nehmen
Für "B-A" bewahren
B-A nach TP7
Ergebnis nehmen
Abzweigen wenn nicht Null
Alpha-Marke/Hinweismarke zurückstellen
Index für Schrittroutine wiederherstellen
Zurück
Ergebnis für Modifikationen bewahren
Startadresse - 1 nehmen
Speicher-Hinweismarke erhöhen
Feldgrenze?
Abzweigen wenn nicht
"A"-Grenze?
Abzweigen wenn nicht
Anderenfalls "B"-Hinweismarke nehmen
Tabellenseite
00437 00438 00439 00440 00441 00442 00443 00444 00445 00446 00447 00448
00449 00450
Für nächsten Test "Feld" bewahren
Für Test "Angegriffen" bewahren
Benutzeradresse wiederherstellen
Fortsetzen
Fertig?
Abzweigen wenn ja
Anderenfalls nächsten Feldtest nehmen
Bewahren
Neu "angegriffen"-Wert nehmen
Bewahren
Arbeitsadresse wiederherstellen
Benutzerinstruktion nehmen
Anderenfalls auf JMP oder JSR prüfen
Abzweigen wenn 6s nicht ist
709808/1025
00451 00452 00453 00454 00455 00456 00457 00458 00459 00460 00463 00464
00465 00466 00467 00469
Auspacken und Adresse prüfen
Abzweigen wenn nicht
Anderenfalls Adresse modifizieren
Neue Adresse £ 2047?
Abzweigen wenn ja
Anderenfalls Instruktionsmaskierung nehmen
Mit Instruktion UNÖ-verknüpfen
Instruktion wiederherstellen
ACCB = LS-Bits der neuen Adresse
Neue Adresse packen
Neue LS-Bits bewahren
"ODER" in neuen MS-Bits
Instruktion wiederherstellen
Fortfahren
ACCA und ACCB = Maximaladresse
Fortfahren
Listenseite
00476-00492
00496 00497 00498 00499 00500 00501 00502 00503
Diese Routine behandelt die Schritt- und Rückschrittfunktionen sowohl im Lauf als auch im Programmbetrieb.
Im Laufbetrieb führt "Schritt" lediglich eine Benutzerinstruktion
aus. Im Programmbetrieb veranlaßt "Schritt" folgendes: 1) Schritt über die laufende
Instruktion, angezeigt durch UPP, 2) Auflisten dieser
Instruktion, falls Verfolgungsbetrieb, 3) Eingang in den Alpha-Betrieb wenn die Instruktion ein Alpha-Initiator
war. "Rückschritt" arbeitet nur im Programmbetrieb und bewirkt folgendes: 1) Rückschritt
zur vorherigen Instruktion, 2) Ausgang aus Alpha-Betrieb wenn diese Instruktion ein Alpha-Initiator
war. Sowohl Schritt als auch Rückschritt beenden den Einfügungsbetrieb wenn er bei ihrem Abruf gesetzt ist
Schutz-Marke nehmen
Schutz-Bit nehmen
Zurück wenn geschützt
Auf Einfügung prüfen
Betrieb nehmen
Abzweigen wenn Programmbetrieb
In Instruktionshinweismarke bewahren
R/S-Marken-Information nehmen
7 0 9 808/1025
00504 00505 00506 00507 00508 00509 00510 00511 00512
00513 00514 00515 00516 00517
00518 00519 00520 00521 00522 00523 00524
00525 00526
Schrittmarke setzen
Laufende Benutzerinstruktion nehmen
Stoppbefehl?
Abzweigen wenn ja
Anderenfalls RSFLG = $
Marke bewahren
Ausführen
Tastenaufzeichnungsbetrieb gesetzt?
Abzweigen wenn nicht
ACCA für Tastenaufzeichnung vorstellen
Tastenaufzeichnung ausführen und Schritt
Fehler?
Zurück wenn ja
Alpha-Betrieb?
Abzweigen wenn nicht
Anderenfalls "nach Alpha ausführen"
Zurück zum Supervisor
Laufende Instruktion nehmen
Zwei-Byte-Instruktion?
Abzweigen wenn nicht
Formatinstruktion?
Abzweigen wenn nicht
Anderenfalls zweites Byte nehmen
Tabellenseite
00527 00528 00529 00530 00531 00532 00533 00535 00536 00537
Formatinstruktion vom Alpha-Typ
Abzweigen wenn nicht
Anderenfalls Alpha-Marke setzen
Um eins nach vorne bewegen
Um eins nach vorne bewegen
Alpha-T ermi nator
Abzweigen wenn ja und Alpha zurückstellen
Ende des Programmspeichers?
Abzweigen wenn ja
Anderenfalls neue Programmadresse bewahren
70 9 808/1025
Beenden
Hier beginnt "Rückschritt"
Auf Einfügung prüfen
Eins zurück
Eins zurück
Programm-Hinweismarke zum Zwischenspeicher zur Prüfung
Hinter Adressen-Null zurückgeschoben?
Abzweigen wenn nicht
Anderenfalls UPP auf Zustand Null setzen
Alpha-Betrieb löschen
Herausnehmen
Instruktion nehmen
Zwei-Byte-Instruktion?
Abzweigen wenn ja (UPP in Ordnung)
Anderenfalls um Eins nach vorne bewegen
Formatinstruktion?
Abzweigen wenn nicht
Anderenfalls zweites Byte nehmen
Alpha-Instruktion?
Abzweigen wenn nicht
Alpha-Betrieb löschen
Her au snehmen
Laufende Programmhinweismarke nehmen
Im Einfügungsbetrieb?
Abzweigen wenn ja
Anderenfalls zurück
Für "Einfügung zu Ende" bewahren
GOTO's modifizieren und UPP in Index zurück
Tabellenseite
Ende
SYMBOLTABELLE
Error * Fehler
709808/1025
Täbellenseite
00221-00228
00230 00231 00232 00233 00234 00235 00236 00237 00238
00239 00240 00241 00242 00243 00244 00245 00246 00247 00248 00249 00250 00251
00252 00253 00254 00255 00256 00257
Diese Subroutine empfängt in ACCA entweder ein ASCII-Zeichen
oder Null. Wenn ACCA =0, wird angenommen, daß Zeichen im Benutzerspeicher sind und die Ausgabe
wird von dort aufgebaut. Wenn ACCA ein Zeichen ist, gibt die Routine einfach dieses Zeichen in die laufende
Ausgabeleitung, die aufgebaut wird, und zurück zum Aufrufer. Beim ersten Eintritt muß T13 auf Null
gesetzt werden (T13 = Feld). Diese Routine baut die Leitung an den Plätzen real und imaginär auf.
Laufende Lauf/Stopp-Marke nehmen
Für Ausgangsprüfung bewahren
Einzelzeichenbetrieb?
Abzweigen wenn ja
Auf Stoppbefehl-Prüfung setzen
Aktualisierung wiederherstellen
Anderenfalls Programm-Hinweismarke nehmen
Zum ersten Zeichen schieben
Zum Zeichen schieben
Ende des Spechers?
Beenden wenn ja
Anderenfalls aktualisierte Hinweismarke bewahren
Zeichen nehmen
Fortfahren wenn nicht Null
Anderenfalls eine Leerstelle laden
Alpha-Terminator?
Abzweigen wenn ja
End-Anweisung?
Abzweigen wenn nicht
Anderenfalls um Eins zurück
UIP wiederherstellen
Ausgabe beenden
Druckkommanäo?
Abzweigen wenn nicht
Feldindikator nehmen
Druck ignorieren wenn Eins schon erledigt
Anderenfalls Druckmarke setzen <
Feldindikator setzen
709808/1025
00258 Zifferneingabe beenden
00259 Format X-Register
00260 Äußerstes rechtes Zeichen nehmen
00261 Leerstelle?
00262 Abzweigen wenn nicht
.00263 Anderenfalls Puffer nach rechts verschieben
00264 Mit Entfernung anhängender Leerstellen fortfahren
00265 Zeichenadresse - 1 des linken Endes nehmen
00266 Zeichenadresse nehmen
00267 Zeichen nehmen
00268 Leerstelle?
00269 Abzweigen wenn ja
00270 Anderenfalls entsprechenden Zeichenreihenplatz nehmen
00271 Abzweigen wenn er leer ist
Tabellenseite 7o
00272 Anderenfalls diese Zeile beenden
00273 Index für volle Prüfung bewahren
00274 X-Register-ASCII übertragen
00275 Das äußerst rechte Ende der
00276 im Aufbau befindlichen Zeichenreihe
00277 Schon fertig?
00278 Abzweigen wenn nicht
00279 Anfangsindexwert nehmen
00280 Wird auf äußerst linkes Zeichen gezeigt?
00281 Zeilenüberlauf wenn ja
00282 Zeichenreihen-Zeichen links vom X-Register nehmen
00283 Zeile voll wenn nicht Null
00284 Anderenfalls Programm-Hinweismarke nehmen
00285 Einzelzeichenbetrieb? 00285 Abzweigen wenn nicht
00287 Anderenfalls zurück zum Abrufer
00288 Befehl "Neue Zeile"?
00289 Abzweigen wenn ja
709808/102
00290 00291 00292 00293 00294 00295 00296 00297 00298 00299 00300 00301
00302 00303 00304 00305 00306 00307 00308 00309 00310
00311 00312 00313 00314 00315
00316 00317 00318 00320 00321
00322 00323 00324 00325 00326
11 Umschalt"-Befehl?
Abzweigen wenn neine
Anderenfalls Schiebemarke verbinden
Fortfahren
Schiebemarke nehmen
Abzweigen wenn Verschiebung nicht aufgerufen
Anderenfalls laufendes Zeichen prüfen
Abzweigen wenn durch Umschaltung nicht beeinflußt
Anderenfalls untere Grenze prüfen
Abzweigen wenn nicht beeinflußt
Umgeschaltetes Zeichen erzeugen
Feldindikator nehmen
Abzweigen wenn "Druck" bereits empfangen
Anderenfalls ersten verfügbaren Platz finden
Suchadressen vorschieben
Laufenden Inhalt nehmen
Suche fortsetzen wenn voll
Anderenfalls neues Zeichen bewahren
Letzter verfügbarer Platz
Abzweigen wenn noch nicht voll
Anderenfalls Zeilenüberlauf
Äußerst rechte Adresse +
Zurück in die Zeile
Laufendes Zeichen nehmen
Abzweigen wenn nicht leer
Anderenfalls noch einmal Rückschritt
Pufferadresse bewahren
ASCII für rechtes Ende bewegen
Linke Eins Position in Puffer
Umschalten fertig?
Abzweigen wenn nicht
Letztes Zeichen bewahren
Anfängliche Puffer-Hinweismarke nehmen
Zeile nun voll?
Abzweigen wenn ja
Anderenfalls Zeichen links vom X-Register nehmen
709808/102S
Tabellenseite 71
00327 Überlauf wenn nicht null
00328 Was kommt als nächstes?
00329 Bewahrte R/S-Marke nehmen
00330 Abzweigen wenn keine Änderung nötig
00331 Anderenfalls alte Marke wieder herstellen
00332 Zeichenzähler setzen
00333 Zeichen am rechten Ende nehmen
00334 Abzweigen wenn nicht null und drucken
00335 Anderenfalls Prüfung auf Nullreihe fortsetzen
00336 Alle Zeichen geprüft?
00337 Ja; Nullzeile; kein Druck; zurück
00338 Index vorstellen für Zeilenbewegung
00339 Zwischenaufbaupuffer
00340 Zum Ausgangspuffer
00341 Leerstellen im Ausgangspuffer ÖO342 An den entsprechenden Plätzen
00343 Wo Nullen gefunden wurden
00344 Im Zwischenpuffer
00346 Einzelzeichenbetrieb?
00347 Drucken wenn ja
00348 Stopptaste gedrückt?
00349 Drucken wenn nein
00350 Schritt?
00351 Drucken wenn ja
00352 Anderenfalls Druck überspringen
00353 Ausgabevorrichtung rufen-
00354 Peldhinweismarke zurückstellen
00355 Laufende^ Zeichenreihe ausgeben
00356 Index für Löschung vorstellen
00357 Zeilenpuffer löschen
00360 Feldhinweismarke nehmen
00361 Fortfahren wenn in Alphabetrieb
00362 Anderenfalls wieder X-Register
00363 Pufferstartadresse nehmen
00364 Ganz linkes Zeichen nehmen
00365 ■ Pufferhinweismarke erhöhen
709808/1025
00366 Schon fertig?
00367 Abzweigen wenn ja
00368 Anderenfalls nächstes Zeichen nehmen
00369 Durch anderes ersetzen
00370 Neues Zeichen nach ACCB übertragen
00371 Hinweismarke einstellen
00372 Puffer-Rechtsverschiebung fortsetzen
00373 Ganz linkes Zeichen ersetzen
00374 Durch eine Leerstelle und
00375 Zurück
00376 Welcher Betrieb?
00377 Abzweigen wenn Programmbetrieb
00378 Betriebsart nehmen
00379 Abzweigen wenn in Laufbetrieb
00380 Anderenfalls Instruktion speichern
00381 Instruktionsregister löschen
Tabellenseite 72
00382 Zweites Byte vorbereiten
00384 Alphamarke setzen
00385 Fehler erzeugt?
00386 Abzweigen wenn ja
00387 Nächste Taste nehmen
00388 In ASCII umwandeln
00389 Schrittbefehl?
00390 Abzweigen wenn nicht
00391 Anderenfalls "Schritt" ausführen
00392 Rückschrittbefehl?
00393 Abzweigen wenn nicht
00394 Anderenfalls "Rückschritt" ausführen
00395 ASCII bewahren
00396 Im Speicher speichern
00397 Fehler?
00398 Abzweigen wenn ja
00399 Zeichen nehmen
7.0 9808/1025
00400 Instruktionsregister zurückstellen
00401 Alphaterminator?
00402 Abzweigen wenn nicht
00403 Anderenfalls Alphamarke zurückstellen
00404 Zum Supervisor zurückkehren
00405 Null nach ACCA
00406 Feldhinweismarke löschen
00407 Schiebemarke zurückstellen
00408 ACCA setzen
00409 Alphamarke setzen
00410 Index vorstellen
00411 Zeilenpuffer löschen
00414 Nächstes Zeichen nehmen
00415 ACCA in ASCII umwandeln
00416 Instruktion nehmen
00417 Ausfallkode ausblenden
00418 Abzweigen wenn Drucker
00419 Anderenfalls Zeichen in Realteil geben
00420 Vorrichtung rufen
00421 Fehler erzeugt?
00422 Abzweigen wenn ja
00423 Letzte Zeichenausgabe nehmen
00424 Alphaterminator?
00425 Abzweigen wenn ja
00426 Anderenfalls Instruktionshinweismarke zurückstellen
00427 Bewahren
00428 Fortfahren
00429 Ausgabe zum Puffer
00430 Letzte Zeichenausgabe nehmen
00431 Alphaterminator?
00432 Abzweigen wenn ja
00433 Anderenfalls fortfahren
00435 Feldhinweismarke löschen
00436 Umschaltanzeiger löschen
Tabellenseite 73
Index vorstellen
T0 9808/1025
- 3,74 -
00438 Zeilenpuffer löschen
00441 ASCII ausgeben
00442 ASCII-Tabellenadresse nehmen
00443 Für Modifikation bewahren
00444 Tastencode zu LSB's addieren
00445 Ergebnis wieder herstellen
00446 Neuen Index wieder herstellen
00447 ACCA = ASCII-Zeichen
00448 Zurück
Tabellenseite 74
00458 - 00460 Diese Datei, definiert die ASCII-Stellung
für CJ. Eingänge sind in der Reihenfolge der Tastencodes von 0 bis oktal
00473 Schrittbefehl
00474 Rückschrittbefehl 00499 Leerstelle
00511 Umschalten
Tabellenseite 75
00512 Druck
00523 Nicht benutzter Tastencode
00524 Neue Zeile
00527 - 00531 Code zur Auswahl der Druckvorrichtung wenn EOM negativ ist, wird die Ausgabevorrichtung
durch den Inhalt von T6 und T5 spezifiziert. TOM muß durch den Rufer gesteuert werden und nach Beendigung
auf den richtigen Wert zurückgestellt werden.
00534 Ende des Speicherwortes nehmen
00535 Nicht innerer Drucker wenn negativ
00536 Anderenfalls Drucker rufen
00537 Vorrichtungsadresse nehmen 00533 Vorrichtung rufen
7 0 9808/1025
Tabellenseite 76
Symbol-Tabelle ERROR = Fehler
Ende
Tabellenseite 77
00219 - 00220 Diese Routinen führen den ganzzahligen und den Bruchteil des ursprünglichen Argumentes
zurück
00226 X in letztem X bewahren
00227 Index auf Mantisse setzen'
00228 (EXP + 1)/2 = Ganze Worte zu löschen
00229 Zurück wenn negativ (schon Bruch)
00232 Schleife zum Löschen ganzer Worte
00233 Ausgang von Schleife
00234 Paar von Mantissenziffern löschen
00235 Hinweismarke verschieben
00236 Prüfen ob fertig
00237 Halbes Wort löschen?
00238 Ja, Wort laden
00239 Obere Hälfte löschen
00240 Ergebnis wieder herstellen
00241 Ergebnis jetzt normalisieren
00242 X in letztem X bewahren
00243 Exponent prüfen
00244 Positiv, Größe des Exponenten prüfen
00245 Negativ^ kein ganzzahliger Teil, löschen
00246 Exponent >
00247 Ja, (X) ist ganzzahliger Teil
00248 Exponent nehmen
00249 1 addieren, so daß EXP/2 auf richtiges Wort zeigt
00250 . Erstes Byte der Hinweismarke löschen
00251 EXP + 1 durch 2 dividieren
00252 ·' Worthinweismarke bewahren
709808/102
- lie -
00253 Worthinweismarke in X laden
00254 War EXP + 1 ungerade?
00255 Ja, zweite Hälfte des Byte löschen
00256 Zweite Hälfte löschen
00257 Wort in X wieder herstellen
00258 Auf nächstes Wort in X-Register zeigen
00259 Löschung fertig?
00260 Ja, Ausgang
00261 Nächstes Wort löschen
00262 Operation fortsetzen
00263 Zurück
Tabellenseite 78
00266 X-Register löschen
00270 RTS-Marke bewahren
00271 S-Register löschen
00272 Gemeinsamer Ausgangspunkt der Sperre der Stapelanhebung
00273 Marke für Start von neuer Dateneingabe löschen
00274 Zurück zum Supervisor
Tabellenseite 79
00277 Register-Übertragungsroutinen
00281 Eingabetaste
00282 Unverändert
00284 RTS-Marke bewahren
00285 Stapel anheben
00286 Zurück zum Supervisor
00291 Y-Register-Adresse nehmen
00292 Register vertauschen
Tabellenseite 80
00295 Herunterrollen
00298 Zähler/Hinweismarke laden
00299 Wort von X laden
709808/1025
00300 Wort von T laden
00301 X in T speichern
00302 Wort von Z laden
00303 T in X speichern
00304 Wort von Y laden
00305 Z in Y speichern
00306 Y in X speichern
00307 Zähler/Hinweismarke erniedrigen
00308 Fortfahren
00309 Zurück zur rufenden Routine
00312 Letztes X zum X-Register zurückrufen
00316 Zifferneingabe?
00317 Abzweigen wenn nein
00318 Anderenfalls terminieren
00319 MSB setzen
00320 Anhebung freigeben
00321 Stapel anheben wenn freigegeben
00322 Indexregister auf letztes X setzen
00323 X zum letzten X übertragen
Tabellenseite 81
00326 PSD, teilweises Herunterschieben des Stapels
00327 Führt die Operation Z->Y, T->Z aus
00331 Zähler/Hinweismarke laden
00332 Wort von T laden
00333 Wort von Z laden
00334 In Z speichern
00335 In Y speichern
00336 Zähler erniedrigen
00337 Nicht fertig
00338 Zurück zur rufenden Routine 00341 TXL, X zum letzten X übertragen
00345 Adresse des letzten X nehmen
00346 X-Register übertragen
709808/1025
Tabellenseite 82
00349 STKUP führt die folgende Operation durch
00351 T verloren
00352 - 00355 Diese Operation tritt nur auf wenn die
Marke für automatische Stapelanhebung gesetzt ist. Wenn in die Routine bei STKÜP2 eingetreten
wird, wird die Operation immer durchgeführt.
00360 Testbedingung für Marke "automatischer Stapel" in B
00361 Automatische Anhebung ist nicht freigegeben
00362 Unterbrechungen sperren bei der Anhebung des Stapels
00363 Stapelhinweismarke im Zwischenspeicher bewahren
00364 Schleifenzähler laden
00365 Zwei Worte von Z laden
00366 Worte in T. speichern
00367 Zwei Worte von Y laden
00368 Worte in Z speichern
00369 Zwei Worte von X laden
00370 Worte in Y speichern
00372 Zähler erniedrigen, auf nächsten Platz zeigen
00373 Registerverschiebung fortführen
00374 Ursprüngliche Stapelhinweismarke wieder laden
00375 Unterbrechungen freigeben
00376 Automatikstapel-Hinweismarke löschen
00377 Zum rufenden Punkt zurückkehren 00380 Stapel-Löschroutine
00385 Unterbrechungen sperren
00386 Stapel-Hinweismarke bewahren
00387 Stapel-Hinweismarke mit Löschwert laden
00388 Schleifenzähler-Hinweismarke initialisieren
00389 Zwei Bytes löschen
00390 Schleifenzähler/Hinweismarke erniedrigen
00392 Löschen fortsetzen
00393 Stapelhinweismarke wieder herstellen
00394 Unterbrechungen freigeben
00395 Zurück
709808/1025
Tabellenseite
00398 00402 00404 00407 00412 00413 00414 00415 00416 00417 00418 00419
00420
Drucktastenausführung Zifferneingabe beendet Drucken und zurück
Stapeldrucken Zifferneingabe beenden Zähler setzen Zähler bewahren Datenpositioniern
Laufende Daten in X-Register in Format bringen X-Register drucken Schleifenzähler erniedrigen, fertig
Nein, fortfahren Zurück
Tabellenseite
00423-00425 Zifferneingabe-Routinen. Hiermit behandelte
Tasten umfassen die Zifferntasten CO-9), Dezimalpunkt , Vorzeichenwechsel und Exponenteneingabe
00434 Vorzeichenwechsel-Routine
00435 Teil von Exponenteingabe ist eingeschlossen
00440 RTS-Marke bewahren
00441 Prüfen ob EEX-Marke gesetzt ist
00442 EEX-Marke prüfen, gesetzt?
00443 Ja, Vorzeichen des Exponentenmodifikators
wechseln
00444 Nein, Mantissenvorzeichen wechseln
00445 Vorzeichenwechsel
00446 Aktualisiertes Vorzeichenwort speichern
00447 Stapelmarke nicht modifizieren
00448 Negatives Bit anhängen (Exponent-Indikator)
00449 Aktualisierten Wert bewahren
00450 Vorzeichenwechselmarke laden
00451 ' Laufenden Wert des Exponenten laden
00452 Exponenten-Modifikator subtrahieren
00453 ' Exponent wieder herstellen
709808/1025
00455 00456 00457 00458 00459 00460 00461 00462 00463
00464 00465 00466 00467 00469 00470 00471
Ist dies Vorzeichenwechsel- oder Exponenten-
eingabeziffer?
Ziffer eingeben
Exponenten-Modifikator komplementieren (CHS)
B-Register vorstellen Modifikator zum Exponenten addieren
Auf Über-/Unterlauf prüfen Nichts, zurück
Über-/Unterlauf aufgetreten, neuen Eingang setzen
Zurück Letzte im Exponentenmodifikator benutzte Ziffer
laden Neue benutzte Ziffer speichern Alte Ziffer mit 10 (binär) multiplizieren
A * 8 durchführen durch Verschiebung um drei Plätze * 10 vollenden durch Durchführung
Von zwei Additionen Nun neue Ziffer zum Exponenten-Modifikator
addieren Neuen Exponenten-Modifikator bewahren Prüfen welches Vorzeichen Exponenten-Modifikator
haben sollte Negativ Bit gesetzt?
Ja, Vorzeichen wechseln Nein
Tabellenseite
00479 00483 00484 00485 00486 00487 00489 00490 00491
Dezimalpunkt-Eingabe-Routine RTS-Marke bewahren Neue Ziffern-Eingabe?
Nein, Marke setzen Stapel anheben, wenn freigegeben X-Register für neue Eingabe löschen
Exponent für Fall 0.000.... löschen Exponent für Pormatxoutine löschen
Dezimalpunktmarke setzen
709808/1025
00492 Neuen Markenwert bewahren
00493 Automatische Stapelanhebung sperren
00494 RTS fertig?
00495 Abzweigen wenn nicht
00496 Anderenfalls zurück
00497 Stapelhinweismarke erhöhen
00498 Letzten Rückkehrvektor herausnehmen
00499 Zurück zum Supervisor
Tabellenseite 86
00502 Exponenteneingabe-Routine 503 enthält
Routine für Eingabe von Ziffern in Mantisse
00507 RTS-Marke bewahren
00508 Setzen der EEX-Marke vorbereiten
00509 Ist EEX-Marke schon gesetzt?
00510 Ja, Ausgang von Routine
00511 EEX-Marke setzen
00512 Neuen Markenwert bewahren
00513 Platz für Exponenten-Modifikator löschen
(A war CL)
00514 Letzte zwischengespeicherte Exponentenziffer löschen
00515 Zählerteil der Ziffernmarke bewahren
00516 Dies ist kein neuer Eingang, zurück
00517 Neuer Eingang, Stapel anheben
00518 X-Register für neuen Eingang löschen
00519 A auf 1 für neue Mantissenziffer setzen
00520 Mantissenzähler laden
00521 Zähler bewahren
00522 Zähler = 10?
00523 Ja, Eingang ignorieren
00524 Zähler durch 2 dividieren, Rest in CA bewahren
00525 Zähler war ungerade, Ziffernverschiebung überspringen
00526 Neue Ziffer positionieren
00530 Zähler bewahren
00531 Erstes Byte für Zähler löschen
00532 Zähler in Index laden
00533 Neue Ziffer zur Mantisse addieren
7 0 9 8 0 8/1025
00534 00535 00536
Ergebnis speichern Zähler erhöhen Zurück zum Supervisor
Tabellenseite
00539 00543 00544 00552 00553 00554 00555 00556 00557 00558 00559 00560
00561 00562 00563 00564 00565 00566 00567 00568 00569 00570 00571 00572
00573 00574 00575 00576 00577 00578 00579
Z iffernannahme-Routine
Passende Ziffer aufbauen
Im A-Register
RTS-Marke bewahren
Laufenden Zustand prüfen
Keine neue Eingabe
Stapel anheben, wenn freigegeben
X-Register für neue Eingabe löschen
Exponent für Formatroutine löschen
Exponent 2 für Format löschen
War Ziffer eine
Ja; "Anfangsnull"-Bit setzen
Nein/ Ziffer in Mantisse eingeben
Nur "Anfangsnull"-Bit gesetzt?
Abzweigen wenn nicht der Fall
Andere Anfangsnull?
Zurück wenn ja
Erste Ziffer eingeben die nicht Null ist
EEX-Marke gesetzt?
Nein andere Marke prüfen
Ja, neue Ziffer in Exponent eingeben
Dezimalpunkt-Marke gesetzt?
Ja
Nein, B auf 1 für Wert für Addition zu EX
setzen
Exponent erhöhen
Ziffer bewahren
Test auf über-/ünterlauf
Überlaufausgang
Kein überlauf, Ziffer wieder laden
Ziffer in Mantisse eingeben
Mantisse =
709808/1025
00580 00581 00582 00583 00584 00585 00586 00587 00588 00589 00590 00591
00592
Nein, Ziffer in Mantisse eingeben
Ja, Exponent zwischenzeitlich erniedrigen
Prüfen ob Unterlauf aufgetreten ist
Unterlauf?
Nein fortfahren
Neue Zifferneingabe setzen und herausgehen
War eingegebene Ziffer
Ja, ignorieren
EXP2 für Formatgebung wieder herstellen
Wert des Exponenten ins X-Register
Ziffer in Mantisse eingeben
"Anfangsnull"-Marke nehmen
In D.E.-Marke bewahren-
Tabellenseite
00593 00599 00603 00604 00605 00606 00607 00608 00609 00610 00611 00612
00613 00614 00615 00616 00617 00618 00619 00620 00621
Zurück zum Supervisor
Zugriff zu mathematischen Funktionen
X bewahren, Index laden
Addieren
Zumgemeinsamen Ausgang gehen
X bewahren, Index laden
Subtrahieren
Zum gemeinsamen Ausgang gehen
X zum letzten X übertragen
Index-Register auf Y setzen
Zurück
X bewahren, Index laden
Multiplizieren
Stapel fallen lassen
X bewahren, Index laden
Dividieren
Zum gemeinsamen Ausgang gehen
X zum letzten X übertragen
TAN X ausführen
Zum letzten X übertragen
ARC TAN X ausführen
709808/102
00622 00623 00624 00625 00626 00627 00628 00629 00630 00631 00632 00633
00634 00635 00636 00637 00638 00639 00640 00641 00642 00643
Letztes X bewahren
χ ausführen Letztes X bewahren E ausführen Letztes X bewahren
LNX ausführen X in letztem X bewahren 1/X ausführen X in letztem X bewahren
SIN X ausführen X im letzten X bewahren ARC SIN X ausführen X in letztem X bewahren
COS X ausführen X in letztem X bewahren ARC COS X ausführen X zum letzten X
■v
10 ausführen X zum letzten X Υ ausführen X zum letzten X LOG X ausführen
Tabellenseite
00652 00653 00654 00655 00656 00657 00658 00659 00660 00661
Subroutine zum Laden von Nachrichten in
den Puffer
Erstes Zeichen laden
Nachrichten-Hinweismarke erhöhen
Nachrichten-Hinweismarke speichern
Index mit Puffer-Hinweismarke laden
MSB auf Null
Listenroutxnenruf?
Nein, Fehlermeldung
Rückverschiebung addieren um ASCII zu nehmen
Zeichen in Puffer speichern
Puffer-Hinweismarke erhöhen
709808/1025
00662 Bewahren
00663 Nachrichten-Hinweismarke wieder laden
00664 Anderes Zeichen laden
00665 Nachrichtenladung fertig?
00666 Ja, zurück
Tabellenseite 90
00669 PI eingeben
ΌΟ673 Zifferneingabe?
00674 Abzweigen wenn nein
00675 Anderenfalls beenden
00676 MSB setzen
00677 Anhebung freigeben
00678 Stapel anheben wenn freigegeben
00679 Index-Register auf PI setzen
00680 PI übertragen
00681 PI in ROM bilden
Tabellenseite 91
00687 Hochrollroutine
00689 3 mal herunterrollen und zurück
00695 Druckpuffer löschen
00696 Leerstellen drucken
Tabellenseite 92
Tabellenseite 93
00755 Ende Symbol Tabelle
Tabellenseite 94
00222 Null
00223 Eins
709808/10
00224 | Zwei |
00225 | Drei |
00226 | Vier |
00227 | Fünf |
00228 | Sechs |
00229 | Sieben |
00230 | Acht |
00231 | Neun |
00232 | Dezimalpunkt |
00233 | Pluszeichen |
00234 | Minuszeichen |
00235 | Stern (Multiplikation) |
00236 | Divisionszeichen |
00237 | Eingabe |
00243 | Exponenten-Ε ingabe |
00246 | Vorzeichenwechsel |
00249 | X löschen |
00252 | löschen |
00257 | X und Y vertauschen |
00260 | Nach unten rollen |
00266 | Letztes X |
Tabellenseite
Hochrollen
Quadratwurzel
Karfch^isch/Polar
Tabellenseite
00329 | Polar/karthesisch |
00340 | Ganzzahl |
00343 | Gerad |
00347 | Nach D.MS |
00352 | Von D.MS |
709800/1
Tabellenseite 97
00387 Mittelwert und Standardabweichung
00392 Anzahl der Register
00397 Stapel drucken
00403 Runden
00408 ACC+ zurückrufen
00414 Alpharegister löschen
00420 Abstand
00425 Neue Grade
00430 Rad
Tabellenseite 98
00470 Speichern ·
Tabellenseite 99
00494 Zurückrufen
00498 5 Hauptrahmenrufe
00502 Verifizieren
00508 Laden und gehen
00513 Daten aufnehmen
00519 Zurückspulen
00546 Druck
Tabellenseite
00551 | Zurück |
00557 | Alpha Ende |
00561 | Programm aufnehmen |
00567 | Aufnahme gesichert |
00572 | Markieren |
00576 | Identifizieren |
00581 | Laden |
00585 | Ein leerer Schlitz |
00586/ | Festkomma |
00589 | Gleitkomma |
709808/1025
00592 | Gleitkomma 3 |
00598 | Etikett |
00601 | GOSUB-Etikett |
Tabellenseite 101
00603 GOTO-Etikett
00605 Rückruf indirekt
00610 Speicherung indirekt
00639 Zwei Speicherungen
00649 Zwei Rückrufe
Tabellenseite 102
00667 | Alpha drucken |
00677 | Zeile |
00682 | Umschalten |
Tabellenseite 103
00690-00695 Diese Routine ergibt eine Programm-Auflistung,
von der aus der Programmzähler setzt, bis eine Endanweisung erreicht wird oder bis die Lauf-/
Stopp-Taste gedrückt wird. Sie bewirkt auch eine Tastenaufzeichnung im Programmbetrieb, wenn der
Schalter "alles drucken" eingeschaltet ist.
00715 GIO-Eingang
00716 GIO-Marke speichern
00718 Listenmarke auf Null setzen
00719 Index auf Benutzerpositions-Hinweismarke setzen
00720 UPP in W+4 bewahren
00721 Instruktion laden
00722 In SVINS bewahren
00724 Überwachungsanhang?
00725 Ja, gesicherter Speicher unbeachtlich 007'27 GIO-Marke speichern
00729 ACCB mit neuer RS-Marke laden
709808/1025
00732 ÖO733 00734 00736 00737 00738 00739
00742
Listenmarke .NE. 0 setzen
Index auf Benutzerpositions-Hinweismarke
setzen
UPP in W+4 bewahren
Instruktion laden
Instruktion bewahren
Endinstruktion?
Nein, RS-Marke = $ CO setzen
Ja, RS-Marke = $ 40 setzen
Neue Lauf/Stojpmarke speichern
Gesichertes Programm?
Tabellenseite
00746 00748 00750 00752 00753 00754 00755 00756 00757 00758 00759 00760
00761 00762 00763 00764 00766 00767 00770 00771 00773 00774 00775 00776
RS-Marke =
Puffer ausblenden
Index auf Benutzerpositions-Hinweismarke setzen
PC in BCD umwandeln
Index auf Pufferbeginn setzen
ACCA = NO setzen, von Ziffern*4
PC in Puffer geben
Instruktion laden
Puffer-Hinweismarke erhöhen
Puffer-Hinweismarke nochmal erhöhen
Puffer-Hinweismarke speichern
Alpha-Marke gesetzt?
Nein, keine Alpha-Zeichenreihe
MSB gesetzt?
Ja, Alpha zu Ende falls nicht Druck
Tabelle, Umschaltung oder Zeile?
Nein, ASCII speichern
Ja, Tabellenadresse laden
Tabellenverschiebung in ACCB setzen
Tabelle, Umschaltung oder Zeile drucken
Druckbefehl?
Ja, auflisten
Alpha-Terminator?
Ja, Alpha beenden
709808/1025
00777 00778 00779 00780 00781 00782 00783 00784 00785 00786 00787 00788
00789 00791 00792 3 00794 00795 00796 00797
Nein, Ist es eine "END"?
Nein, als Leerstelle behandeln
Ja, Alpha-Marke löschen
Index für Tabellenstart setzen
Instruktionszähler löschen
Zähler = Instruktion?
Ja, ASCII gefunden
Nein, Tabellenadresse erhöhen
Nächstes ASCII-Zeichen laden
MSB gesetzt?
Bit 6 gesetzt?
Ja, mehr als eine von spezifischen
Instruktionen
Instruktionszähler erhöhen
Oberste 2 Bits löschen
Tabellenadresse erhöhen
Instruktionszähler erhöhen
Zähler = Instruktion?
Ja, Adresse gefunden
Vielfach-Instruktionszähler erniedrigen
IF = 0, dies nicht, benutzte Instruktion
multiplizieren
Tabellenseite
00798 00799 00800 00801 00802 00803 00804 00806 00807 00808 00809 00810
00811
Zählung fortsetzen
Byte hinter Byte mit obersten zwei Bits laden
MSB gesetzt? Nein, Adresse gefunden
Ja, dieses Bit löschen
Neue zu zählende Instruktion speichern
Um teilweise Tabellenstartadresse zu laden
Suche wieder starten
Mnemonik in Puffer laden
Puffer-Hinweismarke auf Operandenfeld setzen
Speichern
Index auf Puffer-Hinweismarke setzen
Instruktion laden
Keine Operanden-Instruktion?
709808/1025
00812 00813 00814 00815 00816 00817 00818 00820 00821 00822 00823 00825
00826 00827 00829 00830 00831 00832 00833 00834 00835 00836 00838 00839
00841 00842 00844 00845 00846 00848 00850 00851
Ja, fertig
Marken-Instruktion?
Nein, weiterprüfen
Ja, untere drei Bits ausblenden
Eins hinzuaddieren
Ergebnis in ASCII umwandeln
Operand in Pufferspeicher
Nein, weiterprüfen
Ja, ASCII L laden
Im Puffer speichern
Puffer-Hinweismarke erhöhen
Nein, weiterprüfen
ASCII X laden
Operand speichern
Nein, weiterprüfen
Verschiebung abziehen
10 abziehen
ASCII-Code für A bis J erreicht?
Nein, noch einmal 10 abziehen
Ja, Operand speichern
Keine Operanden-Instruktionen?
Ja, fertig
Nein, weiterprüfen
ASCII A in ACCB laden
Ja, Operand = A
Nein, ASCII B in ACCB
Ja, Operand = B
Nein, Operand =* C
Operand speichern
Ja, fertig
Rechten Pfeil laden
Im Puffer speichern
Tabellenseite
00853 00854 00855 00856
5 addieren um zweiten Buchstaben zu nehmen Zweites Zeichen speichern
War es ein "H"? Nein, fertig
709808/1025
00857 Ja, Puffer-Hinweismarke erhöhen
00858 ASCII "D" laden
00859 Operand in Puffer speichern
00861 Keine Operanden-Instruktion?
00862 Ja, fertig
00863 Ist Instruktion ein Etikett?
00864 Nein, Operand laden
00866 GIO? Ja, zurück
00867 Etikett ohne Operand drucken
00868 Puffer ausblenden
00869 Index auf Pufferanfang setzen
00870 ACCB mit ASCII-Minuszeichen laden
00871 Gedankenstriche speichern
00872 Puffer-Hinweismarke erhöhen
00873 4 Gedankenstriche?
00874 Nein, weitere Eins in Puffer laden
00875 Puffer-Heinweismarke erhöhen
00876 Puffer-Hinweismarke speichern
00878 Index auf Benutzerpositions-Hinweismarke setzen
00879 Auf zweites Byte zeigen
00880 Hinweismarke für zweites Byte bewahren
00881 Zweites Byte in ACCB laden
00882 Format-Instruktion?
00883 Nein, weiterprüfen
00888 Alphadruck?
00889 I/O-Ziffer ausblenden
00891 Existiert ROM?
00892 Ja, ASCII laden
00893 Zweites Byte wiederladen
00894 Auch in ACCA geben
00895 ASCII-Ziffer in Puffer geben
00897 Buchstabe ausblenden
00898 Ruf-Ziffer-Ruf?
00899 Nein, Buchstabe in ASCII umwandeln
00901 Alpha laden
00902 Alpha-Marke setzen
00903 Alpha in Operand speichern
00904 Auf Operandenfeld zeigen
709808/1025
Tabellenseite
00909 00910 00912 00914 00915
00916 00917 00918 00919 00920 00922 00923 00925 00926 00927 00928 00929
00930 00931 00935 00936 00937 00938 00939 00940 00944 00945 00946 00947 00948 00949
00950 00951 CO952 00953
Ziffer in ASCII umwandeln
Im Puffer speichern I/0-ROM-Adresse speichern
$ 25 hinzuaddieren $ 25 hinzuaddieren um Adresse von ASCII-Nachricht
zu nehmen Alpha-Marke löschen Zweites Byte wieder laden Buchstabe ausblenden
Buchstabe = O?
Ja, Alpha-Marke setzen Nein, prüfen, ob ID's gleich
ID-Zahl 1 laden Mit ID-Zahl 2 vergleichen Nicht gleich, kein Operand
Index auf zweites Byte setzen Zweites Byte wieder laden I/O-Ziffer ausblenden
Ziffer = 0, fertig Ja, ASCI-Ziffer in Puffer geben Mit 4 multiplizieren
Zum Multiplizieren mit 5 addieren Ergebnis zu tiefer Basisadresse addieren wiederherstellen
BF-Hinweismarke auf Mnemonikfeld setzen wiederherstellen Instruktion auch in ACCB geben
Zwei-Byte-Instruktionen mit Zwei-Ziffer-Operand?
Nein, weiterprüfen Operand nur im zweiten Byte
Operand in BCD umwandeln Index-Puffer-Hinweismarke setzen Operand > 100? (A-O)
Nein, Operand ist eine Zahl Ja, untere zwei BCD-Ziffern laden In ASCII A bis O umwandeln
709808/1025
00954 00955 00956 00957 00958 00959 00960 00961 00962
Operand speichern
Fertig
Instruktion laden
Etikett im Operandenfeld?
Nein
Etikett im Operandenfeld?
Nein
Ja, L in ACCB laden
In Puffer geben
Tabellenseite 108
00963 00965 00966 00967 00968 00969 00970 00971 00972 00973 00974 00975
00976 00977 00978 00979 00980 00981 00982 00983 00984 00985 00986 00987 00988
Pufferhinweismarke erhöhen
Anzahl der Ziffer * 4 laden
Festkomma, Gleitkomma oder Gleitkomma
Nein, Anfangsnull nicht unterdrücken
Ja, Anfangsnull bei Operand unterdrücken
Ziffern in Puffer geben
Fertig
Zwei-Byte-Instruktionen mit Registeroperand?
Nein, Operand ist absolute Adresse
LSB erstes Byte ist Teil des Operanden
Operand in BCD umwandeln
Index auf Puffer-Hinweismarke setzen
R an Operandenanfang setzen
In Puffer speichern
Puffer-Hinweismarke erhöhen
Anzahl der Ziffern * 4 laden
Drei Ziffern in Puffer geben
Untere 4 Bits der Instruktion ausblenden
11-Bit-Operand in BCD umwandeln
Index auf Puffer-Hinweismarke setzen
Anzahl der Ziffern # 4 laden
Vier Ziffern in Puffer geben
Oberen Teil des Operanden speichern
Zweites Byte um ein Bit nach links verschieben
LSB des ersten Byte in Übertrag schieben
709808/1025
- £95 -
00989 00990 00993 00994 00996 00997 00998 00999
01000 01001 01002 01003 01004 01005 01007 01008 01009 010CÜ6
01017
In zweites Byte rotieren
Index auf Operand setzen
GIO? Ja, zurück
Nein, Zeile drucken
Erhöhen
Ende des Benutzer-Programmspeichers?
Ja, Speicherüberlauf
Benutzer-Positions-Hinweismarke wieder
herstellen
Papier zu Ende?
Ja, Liste oder Tastenaufzeichnung stoppen
Nein, RS-Marke prüfen
Auflisten fortsetzen?
Ja, nächste Zeile
Speicherüberlauf-Fehler
Instruktion laden
End-Instruktion?
Nein, kein Abstand
Nein, Lauf/Stopp-Marke löschen
Auflisten?
Tabellenseite
01018 01019 01029 01033 01037 01040 01042 01046 01051 01054 01056 01066
01067
Nein, Tastenaufzeichnung
Ja, Alphamarke löschen
Ziffer
Etikett
Immer noch Zifferneingabe
UPP bewahren
Neue Instruktions-Hinweismarke setzen
UPP wieder herstellen
"Lauf" verschieben
Adresse
Puffer nach links verschieben
Ziffern-Eingabemarke wiederherstellten
Befehl wiederherstellen
709808/1025
Tabellenseite
01074 01077 01078 01080 01081
ASCII-Buchstabe
Ziffern-Eingabemarke bewahren
Überspringen
XR in Format bringen
Drucken
Tabellenseite
01085 Ende Symbol-Tabelle
Tabellenseite
0232-0238
00241 00242 00243 00244 00245 00246 00247 00248 00249 00250 00251 00252
00253
Diese Routine wandelt den in Zweier-Komplement-Form gespeicherten Exponenten in sein BCD-Äquivalent
um. Das Zweier-Komplement des Exponenten muß in ACCA sein, bevor in dieser Routine eingetreten
wird. Die Antwort wird in XPNT gespeichert, wenn die Umwandlung abgeschlossen ist.
Ist Vorzeichen des Exponenten positiv? Nein, positiv machen Ja, Startwert des Zählers laden
Zehnerspalte erhöhen Zehn von ABS (Exponent) abziehen
Wenn> 0, Exponent unvollständig Wenn < 0, Zehn zur Einerspalte addieren
Zählerwert in ACCB Gleich Zehnerspalte Des Exponenten,verschieben
Um vier Plätze nach links Gesamten Exponenten nehmen Exponent in XPNT speichern
Tabellenseite
00258-00262 Diese Routine bringt die im X-Register ge-
709808/1025
speicherten Daten in Format. Die Information über die Formatart findet sich in TGL und die
Ziffern-Eintrittsmarke ist in die IGFLG enthalten. Folgende drei Formate sind möglich:
00266-00277 Bei Zifferneingabe wird Festkomma-Format verwendet.
Festkomma-Format geht in Gleichtkomma-Format über, wenn es zu groß für die Anzeige wird. Im PWR3-Betrieb
wird mit einem Exponenten angezeigt, der die Dreierpotenz gerade unterhalb dem tatsächlichen
Exponenten ist. Diese Betriebsart geht auch in gewöhnliches Gleitkomma-Format über, wenn die Mantisse
zu groß für die Anzeige ist. Die größte erlaubte Rundung im BWA3-Betrieb ist sieben; jeder größere
Rundungsfaktor wird zu sieben.
00281 00282 00283 00284 00285 00286 00287 00288 00289 00290 00291 00292
00293 00294 00296 00297 00298 00299 00300 00301 00302 00303
Dezimalpunkt-Hinweismarke = 0 setzen Längen-Hinweismarke = 0 setzen
Numerische Überlaufmarke löschen Gleichtkomma-Überlaufmarke löschen
Exponent laden In BCD umwandeln Exponent in ACCB laden Ziffern-Eingabemarke laden
Anfangsnullen?
Ja Z if ferne ingabe Ja Nein, Verbindungschalter laden Formatart-Bits maskieren
Wenn < /0IO, Gleitkomma '
Wenn >|® 10, Festkomma Rundungsfaktor laden
Rundung =7?
< = 7, Rundung nicht beachten Rundung auf 7 setzen
Neue Rundung = 7 speichern Binären Exponenten in ACCA geben
709808/J
00304 00305 00306 00307 00308 00309 00310 00311 00312 00313 00314
00315 00316 00137 00318 00319 00320 00321 00322 00323 00324 00327 00328
00329 00330 00331 00332 00334 00335 00336 00338 00339 00340 00342 00343 00344
Positiv?
Nein, positiv machen
PWR3-Zähler löschen
PWR3-Exponent aus dreien aufbauen
Tatsächlichen und PWR3-Exponent vergleichen
Schon PWR3, Gleitkomma benutzen
Real>PWR3, Aufbau fortsetzen
Vorzeichen des Exponenten testen
Minus, PWR3-Exponent aufgebaut
Plus, PWR3-Exponent nehmen
Differenz zwischen tatsächlichem Exponenten
und PWR3 finden
Positiv?
Nein, positiv machen
Differenz in Dezimalpunkt?Hinweismarke speichern
PWR3-Exponent nach ACCA übertragen
In BCD umwandeln
Rundungsfaktor wieder laden
Dezimalpunkt-Hinweismarke zu Rundung addieren
Rundung + Dezimalpunkt + 1 = positiver Zähler
Gleitkomma-Überlaufmarke setzen
Mantisse laden
Keine Zifferneingabe, Gleitkomma
Zifferneingabe, Überlauf prüfen
Ziffernzähler ausblenden
Mehr als zehn Ziffern gedrückt?
Ja, Überlauf prüfen
Nein, Positionszähler = Ziffernzähler
Exponent laden
EEX-Exponent subtrahieren
Gleitkomma-Überlauf
Ja, Gleitkomma-Überlauf
Nein, Festkomma
Exponenten nach ACCA schieben
Rundung + Exponent + 1 = Positionszähler
Festkomma-Überlauf?
Ja, Gleitkomma
70 9808/102
00345 Nein, Festkomma
00347 Nur Dezimalpunkt und Nullen?
00348 Ja, Nullen eingeben
00349 Ziffernzähler nehmen
00350 Anzahl der Anfangsnullen zum Ziffernzähler addieren
00351 Nein, mehr als zehn Ziffern gedrückt?
00352 Ja, Überlauf prüfen
00353 Nein, Ziffernzähler wieder nehmen
00354 Dezimalpunkt-Hinweismarke speichern
00355 Nein, Mantisse laden
00356 Ja, Längenhinweismarke = Exponent setzen
00357 Mantisse laden
00358 Anzahl der Nullen hinter Dezimalpunkt laden
00359 Entsprechenden Exponenten aufstellen 00360-00361 Anzahl der Anzeige zugeführten Nullen nehmen
00363 Zehn davon?
00364 Nein, Mantisse mit Nullen laden
00365 Ja, Anzeige mit Nullen füllen
Tabellenseite 115
00366 Ja, Gleitkomma-Überlauf
00367 Puffer-Hinweismarke speichern
00368 X-Register-Hinweismarke speichern
00369 Ziffer in ACCA laden
00370 Positionszähler gerade?
00371 Nein, Ziffern in unterer Hälfte
00372 Ja, Ziffern in
00373 Oberen halben
00374 Byte; schieben
00375 Nach unten
00376 X-Register-Hinweismarke erniedrigen
00377 Unteres Halbes Byte maskieren
00378 . Indexregister ändern von
00379 X-Register-Hinweismarke auf Piffer-Hinweismarke
00380 . Ziffer geladen; zurück
709808/1025
00381 Puffer-Hinweismarke setzen.
00382 Leerstellenkode laden
00383 Leerstelle in Puffer speichern
00384 Puffer-Hinweismarke erniedrigen
00385 Weitere Leerstelle laden
00386 Zurück
00387 Leerstellen in Anzeigepuffer laden
00388 Puffer-Hinweismarke ans Ende des Mantissenbereichs setzen
00389 Positions-Hinweismarke auch in ACCB
00390 Positions-Zähler/2 nehmen
00391 Puffer-Hinweismarke = 222 + Positionszähler/2
00392 Zweites Byte Indexregister
00394 Erstes Byte Indexregister
00395 Übertrag löschen
00398 Rundungsziffer laden
00399 Mit 5 vergleichen
00400 Kleiner als 5?
00401 Nein, Übertrag setzen
00402 Positionszähler wieder testen
00403 Negativ?
00404 Nein, Hinweismarke erniedrigen
00405 Positionszähler erniedrigen
00406 Ziffer laden
00407 Zähler = Dezimalpunkt-Hinweismarke?
00408 Nein, kein Dezimalpunkt
00409 Ja, Tastenunterbrechung sperren
00410 Ziffer auf Stapel bewahren
00412 Dezimalpunkt gedrückt?
00413 Numerischer Überlauf?
00414 Wenn Überlauf, Dezimalpunkt eingeben
00416 Zifferneingabe?
00417 Nein, Rundungsbetrieb prüfen
00418 Ja, Gleitkomma-Überlauf
00419 Nein, Dezimalpunkt unterdrückt ~
00420 Ja, Dezimalpunkt
709808/1025
Tabellenseite 116
00422 00423 00424· 00425 00426 00427 00428 00429 00430 00431 00432
00433 00434 00435 00437 00438 00439 00440 00441 00442 00443 00444 00445 00446 00447
00448 00430 00451 00452 00453 00454 00455 00456 00458 00459 00461 00462
Kein Dezimalpunkt
Dezimalpunktcode laden
Im Puffer speichern
Puffer-Hinweismarke erniedrigen
Ziffer wieder in ACCA laden
Tasten-Unterbrechung freigeben
übertrag zur Ziffer addieren
übertrag löschen
Ziffer + Übertrag < 10?
Ja, kein übertrag
Nein, Übertrag setzen
BCDO in ACCA geben
BCD in ASCII umwandeln
Ziffer in Puffer speichern
Mantisse fertig?
Ja, immer noch Übertrag?
ACCA mit BCDO laden
Positionszähler erniedrigen
Puffer-Hinweismarke erniedrigen
Null in Puffer laden
übertrag laden
Übertrag?
Nein, Mantissen-Vorzeichen laden
Übertrag löschen
BCD-Exponent laden
Ist er = 99?
Ja, XR-Hinweismarke = RD 226 setzen
Speichern
Positions-Hinweismarke - 9 setzen
Numerisches Überlaufbit setzen
Puffer-Hinweismarke zurückstellen
Mantisse ohne Rundung wieder laden
überlaufmarke für PPR3 gesetzt?
Ja, Gleitkomma-Überlauf
Verbindungsschalter-Register laden
Ja, PPR3-Überlauf prüfen
Gleitkomma-Überlauf?
709808/1025
00463 00464 00465 00466 00467 00468 00469 00471 00472 00473 00475
Ja, Gleitkomma-Überlauf Eins entsprechend übertrag laden
Puffer-Hinweismarke erniedrigen Anfang des Mantissen-Bereichs im Puffer erreicht?
Nein, Übertrag in Puffer laden Exponent laden
In BCD umwandeln
PWA3-Format?
Nein, Festkomma-Überlauf Ja, PPR3-überlaufmarke setzen
Gleitkomma-Überlaufmarke setzen
Tabellensette
00476 00478 00479 00480 00481 00482 00483 00484 00485 00486 00487 00488
00489 00490 00491 00492 00493 00494
00497 00498 00499 00500 00501
Dezimalpunkt = 0 setzen Mantissen-Exponent für PWR3 laden
Mantissen-Überlauf?
Keiner, übertrag laden Ja, in Gleitkomma lesen
Eins an Pufferplatz speichern Als nächstes zum Dezimalpunkt Exponent laden
Um eins erhöhen In BCD umwandeln Mantissen-Vorzeichen laden PWR3-überlaufmarke löschen
Mantissenvorzeichen wieder herstellen Positiv?
Nein, MinusZeichencode laden Puffer-Hinweismarke erniedrigen
Minus- oder Leerstelle speichern Puffer-Hinweismarke an den Anfang des Exponentenberöichs
stellen Gleitkomma oder EEX?
Weder noch, kein Exponent Gleitkomma?
Ja, Exponent in XR Nein, EEX-Exponent aufstellen
709808/1025
00503 EEX-Exponent null?
00504 .NE.O, Vorzeichen prüfen
00506 Vorzeichen-Wechselmarke gesetzt?
00507 Ja, Vorzeichen-Exponent negativ
00508 EEX-Exponent (nicht 0)laden
00509 Sein Vorzeichen prüfen
00510 Ziffern-Eingabemarke wieder laden
00511 Anfangsnullen-Bit löschen
00512 Nur Dezimalpunkt und Nullen?
00513 Ja, negativer Exponent
00514 BCD-Exponent laden
00515 Wenn Null, Exponentenyorzeichen plus
00516 Exponent von XR laden
00517 Exponenten-Vorzeichen plus?
00518 Nein, Minuszeichen-Code laden
00519 Exponenten-Vorzeichen speichern
00520 Puffer-Hinweismarke erhöhen
00521 BCD-Exponent laden
00522 Auch in ACCB geben
00523 Zehnerspalte des
00524 Exponenten in oberen
00525 halben Byte; schieben
00526 nach unten
00527 BCD in ASCII umwandeln
00528 Zehnerspalte speichern
00529 Puffer-Hinweismarke erhöhen
00530 Einerspalte nehmen
Tabellenseite 118
00531 BCD in ASCII umwandeln
00532 Einerspalte des Exponenten speichern
00533 Leerstellen-Code in ACCA geben
00534 Dezimalpunkt-Code in ACCB geben
00535 Index auf Pufferanfang -1 setzen
00537 Leerstelle?
00538 ' Ja, noch kein Anfang der Zahl
709808/1025
00540 00541 00542 00543 00547 00548 00549 00550 00551 00552
Leerstelle?
Ja, laden von Kommas starten Dez imalpunkt?
Nein, weitersehen Kommaposition finden
Zeichen laden Ende der Zahl erreicht?
Ja, fertig Nein, Komma eingeben Zeichen mit Komma wiederherstellen
Tabellenseite
00559-00566
Diese Routine wandelt die karthesischen Koordinaten in den X- und Y-Registern in polare Form um. Die
X-Koordinate muß im X-Register und die Y-Koordinate muß im Y-Register sein. Als Ergebnis wird der Radius
im X-Register und der Winkel im Y-Register wiedergegeben
00575 | X in letztem X bewahren |
00577 | Sowohl X als auch Y=O? |
00578 | Ja, fertig |
00579 | Auf zweites Divisionsargument zeigen |
00580 | Y durch X dividieren |
00581 | RRCTAN Y/X finden |
00582 | Ist X negativ? |
00583 | Nein, Winkel ist richtig |
00584 | Winkel in Y geben |
00585 | X löschen |
00587 | XR-Exponent = 2 setzen |
00585 | Winkel-Vorzeichen negativ? |
00589 | Ja, Vorzeichen wechseln |
00590 | Vorzeichen auf 180° Verschiebung geben |
00591 | 200 Neugrad laden |
00594 | Neugrad? |
00596 | Rad? |
00597 | 180° laden |
709808/1025
00598 00600 00602 00604 00606 00608 00610
in X speichern
PI in X laden
Verschiebung zum Winkel addieren
Winkel = 90 Grad?
Nein, Winkel auch in Y geben
1/COS-Winkel
X/COS-Winkel
Tabellenseite
00613 00617-00619
00625 00626 00627 00628 00629 00630 00631 00632 00633
00634 00635 00636 00637
Radius positiv machen
Diese Routine führt die komplementäre Operation
zur oben beschriebenen Karthesisch/polar-Routine
durch
X im letzten X bewahren
Winkel nach X übertragen
COS des Winkels nehmen
Auf zweites Multiplikationsargument zeigen
Radius + SIN des Winkels
Auf ATl zeigen
X-Koordinate in ATl bewahren
Winkel wieder nach X übertragen
SIN des Winkels nehmen
Auf zweites Multiplikationsargument zeigen
Radius + COS des Winkels
y-Koordinate in Y geben
Auf ATl zeigen
Tabellenseite
00647 Ende Symboltabelle
Tabellenseite
Punkt-Matrizen für Drucker— gespeichert: Punkte
709808/1025
00229 Abstand
00235 Vorzeichen wechseln
00241 Kleines E
00247 Rundungsζeichen
00253 Dollarzeichen
00259 Prozentzeichen
00265 Undzeichen (&)
Tabellenseite 123
00272 | Apostroph |
00278 | Klammer auf |
00284 | Klammer zu · |
OO29O | Stern |
00296 | Pluszeichen |
00302 | Komma |
OO3O8 | Minuszeichen |
00314 | Dezimalpunkt |
00320 | Schrägstrich |
Tabellenseite 124
Tabellenseite 125
00388 Doppelpunkt
00394 Größer/gleich-Zeichen
00400 Kleiner/als-Zeichen
OO4O6 Gleichheitszeichen
00412 Größer/als-Zeichen
00418 Fragezeichen
OO424 Kommerzielles Bei-Zeichen
Tabellenseite 126
709808/1025
Tabellenseite 127
Tabellenseite 128
00589 Divisionszeichen 00595 Rechter Pfeil
. Tabellenseite 129
00602 | PI |
00608 | Pfeil nach oben |
00614 | Pfeil nach unten |
00620 | Deutsche Zeichen |
Tabellenseite 130
00652 Spanische Zeichen
00653 Oberseite unten? 00658 N-Balken
Tabellenseite 131
00683-00696 Diese Routine gibt die ASCII-Daten in den
Puffer, wandelt sie um in ihre Punktmatrix-Äquivalente
und druckt sie auf dem Drucker. Umwandlung und Druck erfolgen auf Zeile bei Zeile Basis, wobei ein adaptives Vier-Paß-System
verwendet wird. Zum Beispiel druckt sie Zeile 1 der Zeichen 1/5, 9 und 13 auf dem
ersten Paß, Zeile 1 von 2, 6, 10 und 14 dem zweiten usw., es sei denn, die Anzahl der zu
druckenden Punkte in irgendeinem Paß überschreitet 10. In diesem Fall werden die Zeilendaten
gleichzeitig mit zwei Zeichen für nur diesen speziellen Paß gedruckt.
709808/1025
00699 OO7O4-OC7O6
0070J 00710 00711 00712 00714 00715 00717 00718 00719
00720 00724 00726
Γ'-ucker-Ausfallcode = llOl in unteren vier Bits
der A-Daten
Druckauswahlen in oberen vier Bits der A-Daten:
Drucker-Ladecode ist 101 in Bits 3,4 und 5 von
BCTL. Das Drucker-Schieberegister ist mit Bit
der B-Daten verbunden.
Verbindungsschalter-Register laden
Druck ein oder Überwachung?
Ja, drucken
Nein, zurück
Verbindungschalter Freigabe aussenden
Verbindungsschalter laden
Ausfallcode löschen
Papier zu Ende?
Nein, drucken
Ja, Fehlercode laden
Papiervorschub
SPH = 0 setzen
Tabellenseite
00728 00730 00734 00735 00736 00737 00738 00740 00741 00743 00744 00747
00748 00749 00750 00751
Zeilen-Hinweismarke = 1 setzen
Paßzähler setzen
SPL = real setzen
Positions-Hinweismarke auf letztes Zeichen zeigen
Tasten-Unterbrechung sperren
ASCII-Code laden
LOP außerhalb des obersten Bits
Ja, als Leerstelle behandeln
ASCII Verschiebung subtrahieren
Ja, als Leerstelle behandeln
Punkt-Vektoradresse hoch laden
Mit vier multiplizieren
Wenn übertrag, Adresse hoch erhöhen
Zu Multiplikation mit fünf addieren
Wenn übertrag Adresse hoch erhöhen
Tabellenadresse tief zur Verschiebung addieren
709808/1025
00752 00753 00754 00755 00756 00757 00758 00759 00760 00761 00762 00763
00764 00765 00766 00767 00768 00769 00770 00771 00772
00773 00774 00775 00776 00777 00778 00779 00780 00781
In Adresse tief speichern
Wenn Übertrag, Adresse hoch erhöhen
Adresse hoch speichern
Positions-Hinweismarke speichern
Punkt-Matrixadresse laden
Spaltenzähler laden
Spaltenzähler erniedrigen
Punktspalte laden
Punkt einer Zeile auswählen
Ist es eine Null?
Nein, eins in Punktreihe laden
Punktzähler erhöhen
Auf nächste Spalte zeigen
Aufbau des Punktvektors fertig?
Nein, nächsten Punkt laden
Index mit Stapel-Hinweismarke laden
Punktvektor auf Stapel speichern
Stapel-Hinweismarke erhöhen
Positions-Hinweismarke für untere Hälfte laden
Um vier erniedrigen
Zurückspeichern
Index mit Positions-Hinweismarke laden
Positions-Hinweismarke < $
Nein, nächstes ASCII-Zeichen umwandeln
Punktzähler laden
Auch in ACCB geben
Punktmarken um ein Bit nach rechts verschieben
Anzahl der Punkte ausblenden
Anzahl der Punkte > 10 j
Nein, Punktmarke nicht setzen
Tabellenseite
00782 00783 00784 00785 00786
Ja, Punktmarke setzen Punktmarken bewahren und Punktzähler löschen
Positions-Hinweismarke laden Ende der gesamten Zeile?
709808/1025
Ja, Papiervorschub 15 zur Positions-Hinweismarke addieren
Beginn des nächsten Passes zu speichern Positions-Hinweismarke in Index laden Paßzähler verschieben
Warten bis zur Beendigung der Abschaltzeit Drucker-Auswahlcode laden Drucker einschalten
Drucker-Schieberegister freigeben Punkte zum Drucker aussenden Punkte zum Drucker aussenden
Mehr als 10 Punkte auf diesem Paß?
Ja, Nullzähler = -10 Null in Druckerregister schieben
Nullzähler erhöhen 10 Nullen geladen?
Ja, drucken Punkte zum Drucker aussenden
Punkte zum Drucker aussenden Drucken Drucker-Schieberegister abschalten Auf nächste Punktmarke zeigen
Alle vier Pässe gedruckt?
Nein, nächsten Paß drucken Nach dem Einbrennen zwei Millisekunden warten
Tastenunterbrechung freigeben Drucker abschalten Zeilen-Hinweismarke verschieben
Minus, Druck fertig Papiervorschub Papiervorschub Stapel-Hinweismarke erniedrigen
Index mit Stapel-Hinweismarke laden Punktvektor laden Punkte zum Drucker aussenden
Übertrag setzen Nächsten Punkt in Position rotieren
709808/1025
Tabellenseite
00837 00838 00840 00841 00843 00845 00847 00848 00853 00854 00856 00857
00858 00863 00864 00865 00867 00868 00869 00870 00871 00872 00873
Zeichen fertig?
Nein, weiteren Punkt aussenden
Tastenunterbrechung sperren
7,5 Millisekunden Abschaltzeit laden
25,5 Millisekunden auf Zählung laden
Drucker einschalten
Drucker abschalten
Tastenunterbrechung freigeben
Positions-Hinweismarke speichern
2,0 Millisekunden Einbrennzählung laden
Pulszähler setzen
Paßzähler laden
Komplementieren
Oder mit Drucker-Auswahlcode
Druck starten
Druck für 2,0 Millisekunden halten
Druckimpuls abschalten
Druckimpuls 15 Mikrosekunden heraushalten
Druck fertig?
Ja, Positions-Hinweismarke wieder laden
Zurück
Druckimpuls zurück einschalten
Druckimpuls für 15 Mikrosekunden halten
Tabellenseite
00877 Ende Symbol-Tabelle
Tabellenseite
Gleichstellungstabelle
Tabellenseite
Kassetten-Initialisierungs- und Ausgangsroutinen 709 808/1025
00172 00173 00176 00177 00180 00181 00183 00184 00186 00191 00192 00194
00196 00200 00201 00202 00204 00205 00206 00208 00210 00211 00212 00213 00215 00216
00218 00219 00220
Tastenunterbrechung sperren
Startadresse der Instruktion bewahren
Stapel-Hinweismarke bewahren
Prüfen ob Kassette draußen
TPOS = verloren
Prüfen ob Kassette immer noch draußen ist
Band abgespult?
BOT- und COT-Unterbrechungsbit zurückstellen
Ziffern-Eingabemarke löschen
Dateizähler = 5 setzen
Marke für Befehlsauffindung setzen
EOT- und COT-Unterbrechung freigeben
Kassetten-Betriebsmarke setzen
Index auf Rückkehradresse setzen
Instruktion ausführen
Summen-Prüfungsfehler?
Adresse der gerade ausgeführten Instruktion laden
Summenprüfungsfehler bei Verifizierung?
Ja, nicht wieder versuchen
Versuchszähler erhöhen
Versuchszähler ausblenden
3 mal Fehler?
Ja, Fehler drucken
Nein, nochmal versuchen
Sicherstellen, daß Band gestoppt
Stapel-Hinweismarke zurückstellen
EOT- und COT-ünterbrechung sperren
Tasten-Unterbrechung freigeben
Kassettenbetriebsmarke laden
Tabellenseite
00221 | Löschen |
00220 | Wiederherstellen |
00225 | Exponent laden |
00226 | Erhöhen |
00227 | > 0? |
709808/1025
00228 00230 00231 00232
Unerlaubtes Argument
Kleiner als Null?
Nein, Fehler
Ja, Zahl in binär umwandeln
Tabellenseite 13g
00236-00240
00244 00245 00246 00248 00249 00251 00253 00254 00255 00256 00258 00259
00260 00261 00263 00264 00265 00266 00267 00268 00269 00270 00271 00272 00274 76
00278
Diese Routine markiert die im Y-Register enthaltene Anzahl von Dateien. Die Größe jeder
Datei findet sich im Z-Register. Die Startdatei-Nummer ist im X-Register. Aufnahme gesperrt?
Nein, Aufnahme möglich Aufnahmesperre Index auf X-R-Adresse setzen Inhalt in binär umwandeln
Anzahl der zu markierenden Dateien >255? Anzahl der zu markierenden Dateien =
Anzahl der zu markierenden Dateien bewahren Index auf ZR-Adresse setzen Inhalt in binär umwandeln
Dateigröße = 0. Unerlaubtes Argument Dateigröße in TP5 bewahren
Startdatei-Nummer in binär umwandeln Neue Dateinummer laden
Wenn = 0, alles für Markierung einstellen Neue Datei + Anzahl der Dateien
> 255? Ja, unerlaubtes Argument Neue Datei = alte Datei? Nein, Datei finden
Ja, Bandposition prüfen Im Spalt?
Ja, nicht suchen, Markierung beginnen Datei auffinden Prüfen ob rechte Datei
Marke für Auffindbefehl löschen Laufende Dateigröße = 0 setzen Absolute Dateigröße setzen
709808/1025
00280 00282 00283 00284 00285 00287 00288
Dateigröße >255, kein Durchhang
Absolute Dateigröße <
Nein, Durchhang addieren
Ja, markierte Dateigröße auf 80 setzen
Neue absolute Dateigröße = 80 setzen
25 Byte-Durchhang addieren
Größe plus Durchhang > 255?
Tabellenseite
00290 00294 00295 00296 00297
00298 00299 00301 00303 00307 00308 00311 00312 00313 00314 00315 00316
00317 00318 00319 00320 00321 00322 00323 00326 00328 00331
Ja, nur genug Durchhang bis =256
Dateityp = leer setzen
Neue Dateinummer laden
Wenn nicht Null, Markierung beginnen
Wenn Null, Markierung für Marke für Bandbeginn
setzen
Band für Ladung von Punkt zurückspulen
Teil von Präambel markieren
Vorwärts langsam Daten schreiben =
Spalt aufnehmen
Band wieder starten wenn unterbrochen
Index auf Markierung von 3" Spalt setzen
Ja, Übergang bewirken
Erste Präambel schreiben
Überschrift aufnehmen
Markierungsdatei?
Ja, fertig
Nein, Index mit Anzahl der Bytes laden
ACCA mit nur Einsen setzen
Byte aller Einsen aufnehmen
Byte-Zähler erniedrigen
Fertig? Nein, anderes Byte markieren
Ja, Dateinummer erhöhen
Anzahl der zu markierenden Dateien erniedrigen
Fertig? Nein, nächste Datei markieren
Absolute Dateigröße = 0 setzen
Typ = Markierungsdatei
Anzahl der Dateien < 0, bis Ende des Bandes
löschen
• 709808/1025
Löschen auf Ende der Bandmarke setzen Gegenwärtigen Bandzustand laden
Vorwärts schnell schreiben
Tabellenseite
00341-00361
Diese Routine nimmt Information aus dem Inneren des Rechners in die Datei auf, auf die durch die
Zahl im X-Register gezeigt wird. Es gibt vier Aufnahme-Anweisungen:
1) Format für Aufnahme
2) Programm aufnehmen
3) Daten aufnehmen
4) binär speichern
Die Instruktion "Programm aufnehmen" speichert das Programm beginnend mit der gegenwärtigen
Programmposition in der Datei auf dem Band. Die "Aufnahmeformat"-Instruktion tut das gleiche mit
der Ausnahme, daß das Programm als gesichertes Programm gespeichert wird. Die Datenaufnahmeinstruktion
benutzt die Startregister-Nummer im Y-Register und die Anzahl der Register im Z-Register,
um Daten in eine Datei auf dem Band zu speichern. Die Instruktion "binär speichern"
speichert ein spezielles Programm auf dem Band.
00364 00365 00367 00368 00369 00372 00375 00376 00377 00380 00381 00382
Eingang-Aufnahmeformat
Eingang Programm-Aufnähme
Gesicherter Speicher?
Nein, Aufnehmen
Fehler bei gesichertem Speicher
Binären Eingangspunkt speichern
Aufnahme gesperrt?
Nein, Aufnahme möglich
Aufnahme gesperrt
Binär speichern?
Nein, fortfahren
Endadresse in TP4 speichern
709808/1025
00384 00390 00391 00393 00394 00395
- 3U"-
Start von Spezialprogramm laden
Startadresse in TP7
Binärer Dateityp
Aufnahme von Spezialprogramm gesichert?
Nein, Typ =
Ja, Typ =
Tabellenseite
00399 00400 00402 00403 00404 00405 00406 00407 00408 00409 00410
Index auf YR-Adresse setzen
Inhalt in binär umwandeln
Daten aufnehmen
Systemadresse nehmen
Adresse in Index geben
Startadresse außerhalb des Bereichs?
Ja, unerlaubtes Argument
Nein, Inhalt des Speichers laden
Adresse erhöhen
Laufende Dateigröße erhöhen
Übertrag in hoher 8? Nein, auf Ende prüfen
709808/1025
00442-00443
Laufende Dateigröße erhöhen
Ende?
Ja, Ende gefunden
Ende des Speichers?
Nein, in Schleife fortfahren
Endadresse in TP4 bewahren
Formataufnahme?
Auf gesicherten Programmtyp setzen
Unerlaubte Adresse
Endadpesse auffinden
Z-Register-Adresse in Index
Inhalt in binär umwandeln
Anzahl der Register > 255; Ja Fehler
Anzahl der Register laden
Anzahl der Register =
Ja, unerlaubtes Argument
Anzahl der Register mit 8 multiplizieren
Neue laufende Dateigröße speichern
Endadresse wieder laden
Startadresse auffinden
Existiert Register?
Register existiert nicht, Fehler
Auf Datentyp setzen
Tabellenseite
00451 00453 00454 00455 00457 00458 00461 00463 OO467
00468
Neuen Dateityp speichern
Startadresse in TP1
Datei auffinden
Prüfen, ob die richtige
Markierungsdatei?
Ja, falscher Dateitype
Neue laufende Dateigröße setzen
Neuen Dateityp setzen
Absolute Dateigröße - laufende Dateigröße
Datei groß genug?
709808/1025
00469 00471 00472 00473 00474 00475 00476 00477 00478 00479 00481 00482
00483 00484
Datei zu klein
Teilweise Preambel schreiben
Überschrift aufnehmen
Summenprüfung löschen
Startadresse in Index
Info aus Rechnerinnerem laden
Zur Summenprüfung addieren
Summenprüfung wiederherstellen
Byte wieder laden
Byte aufnehmen
Aufnahmekörper fertig?
Nein, mehr aufnehmen
Summenprüfung in ACCA laden
Summenprüfung aufnehmen
Tabellenseite
00490-00493
00494 00495 00496 00497 00498-00512
Diese Routine lädt eine Datei vom Band und lädt sie entweder in den Speicher oder vergleicht sie
mit dem Speicherinhalt. Es gibt vier von dieser Routine behandelte Instruktionen:
1) laden
2) verifizieren
3) Format laden
4) binär laden
Alle vier Instruktionen führen ihre Operation *uf der Datei aus, auf die durch die Zahl im X-Register
gezeigt wird. Die Lade- und die Verifizier-Instruktion
benötigen eine Startadresse oder Startregisternummer, die im Y-Register gefunden wird. Der Dateityp,
der während des Bandlaufs festgelegt wird, zeigt der Routine an, ob die Daten oder ein Programm
geladen werden soll (Daten oder Programm verifizieren) Die Anweisung "Format laden" lädt den Inhalt der Datei
in den Speicher, beginnend bei der Adresse, die unmittelbar der Formatladeinstruktion folgt und, nachdem
das Laden fertig ist, wird die Ausführung des neuen Codes begonnen. Die Instruktion "binär laden"
lädt eine Datei vom Band und speichert sie im Speicher als Spezialprogramm.
Lade- und Lauf-Eingangspunkt Eingangspunkt für "binär laden"
7 09808/1025
00517 00518 00520 00521 00522
00523 00524 00525 00527 00528 00532 00533 00534 00535 00536 00537 00538 00540 00541
00542
Lade-Eingangspunkt
Värifizier-Eingangspunkt
Datei auffinden
Datei-Lesen beginnen
Prüfen, ob richtige Datei
Ja, fortfahren
Neir, richtige Datei auffinden
Überschrift wieder prüfen
Falscher Dateityp
Index auf Y-Register-Adresse setzen
Datendatei?
Binär laden?
Ja, falscher Dateityp
Pr ogr airundat ei ?
Ja, nicht gesichert
Värifizieren?
Ja, Programmsicherungsbit nicht setzen
Programmsicherungsbit setzen
Startadresse in binär umwandeln
Adresse auf Systemadresse einstellen
Tabellenseite
00544 00546 00547 00549 00552 00553 00555 00557 00558 00559 00561 00562
00564
Startadresse in TP6
Adresse prüfen
Adresse außerhalb des Bereichs?
Speicherüberlauffehler
Anzahl der Bytes in TP7
Startadresse + Anzahl der Bytes
Endadresse in TP4 speichern
Gleich EOPM?
Nein, größer; Fehler
Start.dn Index
Wenn värifizieren, värifizieren starten
Erstes Byte löschen wenn beim zweiten Byte geladen
Laden und Laufen?
709808/1025
00565 00567 00568 00570 00571 00572 00573 00574 00576 00577 00578 00579
00580 00581 00582 00583 00585 00587 00588 00589 00590 00592 00593 00594 00596
Laden starten
Ja, UIP auf Programmanfang setzen
Startadresse wieder im Index
Datendatei?
Nein, binäre Datei
Binäre und Datendatei laden?
Nein, in Ordnung
Ja, falscher Dateityp
Binär värifizieren?
Ja, Start- und Endadressen aufstellen
Binär laden?
Nein, falscher Dateityp
Startadresse von Spezialprogramm laden
Spezialprogramm zu groß?
Ja, Fehler
Spezialprogramm auf neue Adresse setzen
Gesichertes Binärbit löschen
Binär gesichert?
Nein, laden
gesichertes Binärbit wieder setzen
Neue Marke speichern
Startadresse von Spezialprogram in TP6
Endadresse auffinden
Startadresse laden
Startregisternummer in binär umwandeln
Tabellenseite
00599 00601 00602 00603 00604 00605 00606 00608 00609 00610
Unerlaubte Adresse
Endadresse auffinden
Existiert Register?
Register existiert nicht, fehler
Summenprüfung löschen
Ende der zweiten Preamble auffinden
Byte lesen
Värifizieren?
Ja, mit Byte im Inneren des Rechners vergleichen
Gleich, kein Fehler
7 09808/1025
- 331 -
00611 00613 00614 00615 00616
00618 00619 ΌΟ62Ο 00621 00622
Verifizierung fehlgeschlagen
Laden! Byte im Inneren speichern
Byte zur Summenprüfung addieren
Summenprüfung wiederherstellen
Adresse erhöhen
Nicht fertig, anderes Byte lesen
Summenprüfung lesen
Summenprüfung gleich?
Ja, laden oder värifizieren fertig
Summenprüfungsfehler
Tabellenseite
00627 00628 00637 00638 00640 00641 00642
Registernummer laden Systemadresse finden
Endadresse in TP4 Endadresse in TP7 Laufende Dateigröße in TP6 Endadresse - CFSZ = Startadresse
Index auf Startadresse setzen
Tabellenseite
00654-00657
00658 00659 00660 00661 00662-00663
Diese Routine identifiziert jeder Teil, auf die durch die Zahl im X-Register gezeigt wird. Wenn
diese Routine fertig ist, enthält der Stapel:
Dateitype in T Laufende Dateigröße in Z Absolute Dateigröße in Y
Dateinummer in X
Diese Information wird auch auf dem Printer ausgedruckt, wenn der "Druck"-Schalter eingeschaltet
ist.
Datei auffinden
Prüfen ob es die richtige Datei ist
Kassettenbetriebsmarke zurückstellen
709808/1025
00672 00673 00676 00678 00680 00682 00683 00684 00686 00687 00689 00690
00693 00695 00697 00698 00700 00701 00703 00704 00705
Startadresse der ID-Tabelle laden
In W bewahren
Spur B?
Ja7 - auf Dateinummer geben
Nein, Dateinummer drucken
Summenprüfungswort löschen
Dateityp laden
Dateityp drucken
Laufende Dateigröße laden
Laufende Dateigröße drucken
Absolute Dateigröße laden
Absolute Dateigröße drucken
Dateinummer in X geben
Puffer ausblenden
Pufferhinweismarke auf Pufferbeginn setzen
Nachrichtenhinweismarke laden
Nachricht laden
Nachrichtenhinweismarke speichern
Binär in BCD umwandeln
Stapel anheben
X-Register auf Null
Tabellenseite 149
00708 00710 00711 00712
00717 00719 00721 00723 00121
00731 00735
Vier BCD-Ziffern in X laden
Exponent auf drei setzen
Zahl normalisieren
Nächsten Exponenten laden
Ziffern in Puffer laden
Läuft Programm?
Drucken wenn RS-Marke = 00?
Nein, drucken wen RS-Marke = 01 und S-Marke
Datei: .
Typ:
Benutzt
= 0
709808/1025
Tabellenseite
00745-00747
00748 00749 00752 00753 00755 00756 00759 00760 00762
00763 00764 00765 00766 00768 00769 00770 00771
Diese Routine wandelt die Dateinummer in binär um und ändert die Kassette auf die richtige Spur.
1) positive Dateinummer = Spur A
2) negative Dateinummer = Spur B Index auf X-Registeradresse setzen
Inhalt in binär umwandeln Dateinummer > 255?
Ja, unerlaubtes Argument
Gleiche Spur?
Ja7 nicht TPOS = verloren setzen
Ja, TPOS = verloren
Dateinummer auf positiv?
Ja, Spur A"
Nein, Spur B ausgewählt
Spur B setzen
Auswahlcode Spur A
Spur A setzen
Marke wieder herstellen
Spuren vertauschen
Tabellenseite
00776-00778
00785 00786 00787 00788 00789 00792 00793 00796 00797
00799 00800
Diese Subroutine führt eine schnelle Dateisuche nach der Datei durch, auf die durch die Zahl im
X-Register gezeigt wird
Nein, Dateisuche beginnen
Umkehren schnelle Lesedaten =
Ersten „Spalt in Rückwärtsrichtung finden
Überschrift lesen
Marke für "Weiß alles" setzen
Datei = X-Datei?
Nein, einzuschlagende Richtung prüfen
Wenn Überschrift ganz bekannt, langsam zurück
Langsam zum Spalt zurück
TPOS = Spalt?
Nein, schnell zum Spalt zurück spulen
709808/1025
00802 Marke "weiß alles" löschen
00805 Datei < X-Datei?
00806 Nein, Bandposition prüfen
00807 TPOS = Spalt?
00808 Ja, Dateinuinmer nicht ändern
00809 Ja, Dateinummer erhöhen
00810 Daten = 0 für schnelles Lesen umkehren 00812 Dateinummer erniedrigen
00814 Daten = 0 für schnelles Lesen vorwärts
00816 Dateinummer erhöhen
00818 Band starten
00819 Datensuche
00820 Spaltsuche
Tabellenseite 152
00821 Marke " weiß alles" gesetzt?
00823 Ja, fertig
00824 Nein, Überschrift lesen
00825 Zurück zum Spalt
00826 Richtige Datei?
00827 Ja, zurück
00828 Nein, nach richtiger sehen
00829 Neue Datei prüfen
00832 Dateinummer1laden
00833 Ist es die richtige?
00834 Nein, Datei-Prüfhinweismarke erniedrigen
00835 Ausgangsmarke setzen
00836 Befehlauffindungsmarke löschen
00838 Datei-Prüfhinweismarke erniedrigen
00839 Prüfung fünfmal falsch?
00840 Datei nicht gefunden
Tabellenseite 153
00845 Lese-Dienst-Routinen
709808/1025
00870 -
Nach Ende des neunten Bit sehen
Ende gefunden?
Ja, Übergangsbit zurückstellen
Ja, Lese-Verschiebung setzen
Maskierung = 1 setzen
Gerade gelesenes Byte bewähren
Schwellwert zur Verschiebung addieren
Zeitgabezähler erniedrigen
Übergang stattgefunden
Nein, in Schleife fortfahren
Gerade gelesenes Byte wieder laden
Zähler <- = O,Bit =
Zähler > 0, Bit =
Übergangsbit zurückstellen
Leseverschiebung setzen
Maske zur nächsten Bitposition verschieben
übergang gelöscht, Byte nicht beendet
Hinter Umschaltung auf Schreiben gehen
Übergangsbit rückstellen
übergang?
Lese-Schwellwert setzen
Übergangsbit zurückstellen
Zeitgabezähler erniedrigen
Übergang?
Nein, weiter warten
Ja, weiter nach erstem sehen
Übergangsbit zurückstellen
Tabellenseite
Daten,= 0 für langsames Lesen vorwärts Band starten
Index auf zeitweilige Verschiebung der Überschrift setzen
Datensuche
Ende der ersten Präambel finden
709808/ 1 02S
00889 00890 00891 00892 00893 00894 00895 00897 00898 00899 00900 00901
00904
Dateinummer lesen
Bewahren bis die Überschrift richtig gelesen'ist
Summenprüfung initialisieren
Nächstes Byte der Überschrift lesen
Im Zwischenspeicher speichern
Zur Summenprüfung addieren
Summenprüfung wiederherstellen
Nein, anderes Byte lesen
Ja, Summenprüfung lesen
Summenprüfungen gleich?
Ja, Überschrift gelesen
Summenprüfungsfehler
Neue Dateinummer in Datei speichern
Tabellenseite
Aufnahmedienst-Routine
180 ms auf neuntes Bit warten
Neuntes Bit schreiben
Schreibverschiebung setzen
Maske = 1 setzen
O-Zählung addieren
Ist Bit eine 1 oder eine
0-1 Differenz addieren
Zeitgabezähler erniedrigen
Zeitgabezähler =
Ja, Datenausgabebit wechseln
Schreibverschiebung setzen
Maske um Eins nach links verschieben
Fertig mit Byte?
Ja, zurück
Spezial-Programm-Startadresse bewahren
Daten = 0 für langsames Lesen vorwärts
Band starten
Datensuche
Daten = 0 für langsames Schreiben vorwärts
ACCA ganz auf O setzen
709808/1025
00944 Acht Nullen schreiben
ΟΘ945 Sieben Nullen und eine Eins laden
00946 Zeitgabezähler setzen
00947 Rückstellung der Präambel aufnehmen
"Tabellenseite 156
00949 Dateinummer laden
00950 Summenprüfung initialisieren ΌΟ951 Dateinummer aufnehmen
00952 Index auf zeitweilige Verschiebung der Überschrift setzen
00953 Andere Bytes in Überschrift laden
00954 Zur Summenprüfung addieren
00955 Summenprüfung wiederherstellen
00956 Überschrifts-Byte wieder laden
00957 Nächstes Byte der Überschrift laden
00958 Zwischenspeicher-Hinweismarke der Überschrift erhöhen
00959 Nein, nächstes Byte
00960 Ja, Summenprüfung laden
00961 Summenprüfung aufnehmen
00962 Zweite Präambel aufnehmen
Tabellenseite 157
00966 Such- und Bandbewegungs-Routinen
00969 Nummer des Übergangszählers setzen
00970 Übergangsbit zurückstellen
00974 Band wieder starten wenn unterbrochen
00975 Übergang?
00976 Nein, wieder prüfen
00977 Ja, Nummer des Übergangszählers erniedrigen
00978 Nein, nach anderer sehen 00980 TPOS = Daten
00983 Laden
00985 . Suchgeschwindigkeit?
00986 Ja, zur Schleife gehen
709808/1025
00987 00988 00989 00990 00991 00993 00997 00998 00999
01000 01003 01004 01005 01007
Laden
Übergang?
Ja/ alles starten
Nein, Zähler erniedrigen
Spalt gefunden? Nein, Schleife fortfahren
TPOS = Spalt
Daten = 0 für langsames Lesen rückwärts
Band starten
Datensuche
Spaltsuche
Lesen
Band stoppen
Auf Bandstopp warten
Warten fertig?
Tabellenseite
01010 01011 01012 01013 01015 01017 01018 01019 01020 01022 01023 01024
01025 01026 01027 01028 01030 01031 01033 01036
Erster Paß
Zweieinhalb Fuß oder Loch sehen
Zweieinhalb Fuß, gültiges Band gefunden
Loch, Abstand prüfen
Ja, Bandbeginn
Nein, zwei Fuß
Erster Paß?
Nein, Bandende
Ja, Paßwort auf zweiten Paß erhöhen
Daten = 0 für schnelles Lesen vorwärts
Erster Paß
Wissen, welches Ende
Daten = 0 für schnelles Lesen rückwärts
Gleiche Richtung?
Ja, weiter nach zweieinhalb Fuß sehen
Nein, Richtungen schalten und weitersehen
Band zurück über Loch
Loch gefunden, in Schleife fortfahren
Verloren aber in gültigem Band
Prüfen ob Kassette draußen
709808/102
01037 . EOT und COT-Unterbrechungsbit zurückstellen
01039 Bandstatus laden
01040 Band starten
01041 Abstandszähler erhöhen
01044 Ja, prüfen ob im gültigen Band
01045 Nein, Loch angetroffen?
01046 Nein, in Schleife fortfahren
01048 Warten bis nach 0,023 "-Loch"
01049 B-Akkumulator bewahren
01050 Fehler "Ende des Bandes"
01054 Band abgespult?
01055 Ja, Fehler ausgeben
01056 Nein, ACCB wieder laden
01057 Loch angetroffen?
Tabellenseite 159
01061 Rücklaufmarke setzen
01063 Daten = 0 für schnelles Lesen rückwärts
01070 COT-Prüfung freigeben
01072 Kassette draußen?
01073 Nein, eingelegt
01074 Fehler "Kassette draußen"
Tabellenseite 160
0179-01084 Diese Routine ist die COT- und EOT-Unterbrechungsroutine.
Sie behandelt die Situation, bei denen die Kassette mitten in einer Kassettenroutine entfernt
wird und wo das Band entweder auf den Ladepunkt oder auf frühe Warnlöcher im Band trifft.
01087 So arbeitet SEI-SEI
01090 Langsam lesen
01092 Band starten
01094 Zwei "warten"
01095 Band aufgespult?
01096 Schnell
01097 Gegenrichtung
709 8 0 8/1025
01098 Bandstatus bewahren
01099 Band stoppen
01101 EOT- und COT-Unterbrechung sperren
01102 Band zurück über Loch
01103 Loch angetroffen?
01105 Nein, falsches Loch
01106 TPOS = verloren
01107 Stapelhinweismarke zurückstellen
01108 Startadresse der Instruktion laden 01110 Instruktion nochitial durchführen
01112 Bandstatus wieder laden
01113 Vorwärtsrichtung?
01114 Nein, Ende des Bandes
01116 Position bekannt?
01117 Welches Loch?
01118 Wieder zurückspulen 01121 Datei = 0
01123 TPOS = Spalt
01124 EOT- und COT-Unterbrechungs-Bit zurückstellen
01126 EOT- und COT-Unterbrechung freigeben
01128 Bandbeginn markieren?
01129 Daten = 0 für langsames Lesen vorwärts
01131 Band 1 "bewegen"
Tabellenseite 161
01133 Rücklaufmarke prüfen
01134 Rücklauf, fertig
01135 Kein Rücklauf, mit Instruktion fortfahren
01140 Band zum Spalt der Markierungsdatei bewegen 01143 Prüfen ob schon Frühwarn-Loch
01145 Vorwartsrichtung?
01146 Ja, Bandbeginn; Instruktion ausführen
01147 Datei nicht gefunden
01149 Finden?
01150 Bis Ende des Bandes löschen? 01152 Nein, Ende des Bandes
709808/1025
Tabellenseite
Tabellenseite
Ende
SYMBOLTABELLE Error = Fehler
Tabellenseite
00003-00004
00006 00007 00008 00009 00010 00011 00013-00014
00016 00017 00018 00019
00020 00021 00022
Diese Datei definiert die Basisseiten-Lese/Schreib-Zuordnung für CJ. Adressen sind hexadezimal 0 bis
FF einschließlich
Periphäres Zugriffsregister Periphäres Steuerregister
Periphäres Zugriffsregister Periphäres Steuerregister Hauptrahmen-Eingangstor
I/0-ROM-Eingangstor
Es folgt der Zustandsbereich. Er wird dauernd für Lese/Schreiben gebraucht, um den Status der Maschine
zu erhalten
Fehlerwort (Fehler wenn nicht Null) Verbindungsschalter werden hier festgehalten
Hier werden Benutzermarken gehalten Benutzerprogramm-Lauf/Stopp-Marke
Ende des Benutzer-R/B-Wortes (nur Seitenadresse) Ende des Prograinmspeichers (16-Bit-Hinweismarke)
Stapelautomatik-Marke (Anhebung freigegeben, wenn negativ)
Setzen der Anzeigerundung Z ifferneingabemarke
BCD-Akkumulator für Compiler
709808/102
00026 00027 00028 00030-00031
BCD-Akkumulator für Compiler Schrittmarke für Einzelbetrieb
Ziffernzähler für Compiler
Es folgt der Zwei-Byte-Zwischenbereich, der für die Zwischenspeicherung von Hinweismarken usw.
benutzt wird.
00048-00049 Es folgt der Ein-Bit-Zwischenbereich, der für die Zwischenspeicherung von Marken usw. benutzt wird.
Tabellenseite
00065-00067
00070 00072 00074 00075 00076 00078-00079
00083-00084 00091-00092
00096 00103 00107-00110
Es folgt der interne Systemstapel. Der Stapel erlaubt sieben Benutzer-Subroutinen, sieben System-Subroutinen
und eine Unterbrechung.
(Starts hier; baut ab) Es folgen die drei ständigen Hinweismarken Starthinweismarke/Marke einfügen
Spez ialprogramm-Hinwei smarke
Zusätzliche Hinweismarke für zukünftige ROMs
Es folgt der Drucker/Anzeige-Puffer (auch als Ziffernstapel durch CORDIC benutzt)
Es folgen die vier arithmetischen Zwischenspeicher (auch benutzt von der Druckeransteuerung für Punkte)
Es folgen die Arbeitsregister für die Gleitkomma-Mathematik-Subroutinen
Es folgen die Benutzer-Stapelregister Es folgt das Register "letztes X"
Es folgt der gepufferte Tastenfeld-Tastencode-Speicherbereich. Er puffert zwölf Tasten. Platz BKWRT muß
immer Null sein. Wenn BKWRT + 1 nicht Null ist, ist der nächste Tastencode immer
Tabellenseite
00111 00113 00114 00116-00117
am Platz B KKC Schreib-Hinweismarke für gepuffertes Tastenfeld
Nächster verfügbarer Tastencode
Es folgen einige weitere ständige Speicherplätze und
Hinweismarken.
7 0 9808/1025
00119 00120 00121 00122
00123 00124 00125 00126 00127 00128 00130-00132
00140 00141 00143-00144
Platz für Einzeloperation 2633151
Benutzerprogramm-Hinweismarke
Benutzerinstruktions-Hinweismarke
Speicher-Alpha-Marke
I/0-Kanal 1 Hinweismarke/Marke
I/0-Kanal 2 Hinweismarke/Marke
Syntax-Tabellen-Hinweismarke
Kassettenbetriebsmarke
Kassetten-Bandpositions-Anzeiger
Kassetten-Datei-Anzeiger
Es folgen fünf (a-e) der zehn (a-j) Benutzer-Alpha-Register.
Die anderen fünf (f-j) werden aus dem Benutzer-R/W bei Netzeinschaltung herau s genommen.
Dies schließt Lesen/Schreiben der Basisseite ab Benutzerprogramm-Speicher folgt sofort nach
Es folgen einige Gleichungen, die die Startadressen der gemeinsam benutzten System-Subroutinen
definieren
Tabellenseite
Tabellenseite
00221-00223
00225 00226 00227 00228 00230 00232 00233 00234
I/O-Code ist nach ACCA geschoben worden. Die
Routine führt ROM-Adressen in IX (auch in T11) oder Fehlercode in ACCB zurück (5 = keine 1/0-Vorrichtung).
Erste ROM-Adresse
Setzen
Primärcode prüfen
Passung finden
Adresse zum nächsten ROM verschieben
Nächste ROM-Adresse laden
Letztes geprüft?
Noch nicht
709808/1025
00236 00238 00239 00240 00241 00242 00243 00244
Zurück zum vorhergehenden ROM
ROM-Hinweismarke laden
Sekundärcode laden
Passung gefunden
Zurück zum ROM 1?
Noch nicht
Fehlercode laden
Zurück
Tabellenseite 169
00249 00251 00252 00253 00255 00256 00257 00258 00259 00260 00261 00262
00263 00264 00266 00268 00269 00270 00271 00272 00274
Hauptrahmen-I/O-Steuerung
Instruktionshinweismarke laden
Zweites Byte der Instruktion
RufCodenummer maskieren
Druck läuft
ROM-Adresse lokalisieren
ROM nicht gefunden
Instruktions-Hinweismarke
Zweites Byte
Buchstabencode maskieren
Mal zwei
Untere Hälfte der Hinweismarke setzen
Hinweismarke laden
Adresse der Routine laden
I/O-ROM rufen
Fehlerwort laden
Fehler
Kein Fehler, Instruktions-Hinweismarke vorschieben
Instruktionshinweismarke setzen
Zurück
Druck rufen
Tabellenseite 170
00282
Spezialprogramm-Speicherung zur Bandkassette
709808/1025
00313-00314
00316 00317 00318 00319
00321 00322 0
SPSTS speichert es als gesichertes Programm
Benutzerparameter:
XR-Dateinummer
Sicherungsbit
Untere Grenze finden
NuI1-Programm?
Ja
Gesichertes Spezialprogramm?
Ja
Neue Marke setzen
Ende des Spezialprogramms finden
Ende + 1 für Kassette setzen
Α-Band rufen
Sicherungsbit rufen
Speicher sichern
Fehler setzen
Findet die obere Grenze des Speichers und gibt den Wert zurück in IX. ->
Spezial-ROM anwesend?
Ja
Schlitz A laden
Testteil laden
Ja, 101 halten
Nein, 102 laden
Tabellenseite
00326 00328 00330 ΟΘ331 00339 00340 00341
00343
Löscht vorheriges Spezialprogramm und Datenregister
Speichergrenze
Alles zusammengebrochen?
Ja
Lädt ein Spezialprogramm von Kassette
Benutzerparameter:
XR-Dateinummer
Speicher1 löschen
709808/1025
00346 Kassettenfehler?
00347 Nein
00350 Nummernregister auf Null setzen
00356 Ruft ein Spezialprogramm
00358 Untere Grenze finden
00360 Null-Programm?
00361 Ja
00362 Startadresse laden 003 63 Rufen
Tabellenseite 172
00368 Lädt ein Spezialprogramm durch das GIO-ROM vom Papierband
00369 Bandformat: Adresse, Größe, Daten, Summenprüfung Größe, Daten, ...
00371 Datenregister löschen
00373 GIO-ROM anwesend?
00374 Nein
00375 Summenprüfung Null
00376 GIO-ROM springen
00377 Auf Fehler prüfen
00378 Fehler setzen
Tabellenseite 173
00397 Akkumulierungsroutine
00399-00400 Diese Routine setzt die doppelte Variablensummation
von "X" und "Y" in die Register "I" und "J".
00401 Benutzerparameter:
00402 XR-Nummer
00403 YR-Nummer
00404 Zurückgekehrte Werte:
00405 1-"1+XR" oder "3I-XR"
00406 J-"J+XR" oder "J^XR"
00410 Marke für "+" oder "-" setzen
709808/1025
00413 00414 00415
6 00417 00418 00428 00430 00431 00432 00434 00436 00437
00439 00441
Andere Makro-Marken setzen
I-Register-Indikator
Speichern
XR und YR austauschen
Y-Register-Indikator
Speichern
Stapeloperation
Letzte Seite des RAM
Register J
Auf Stapelautomatik stellen
Hinweismarke
JR in XR laden
Ergebnis stapeln
Hinweismarke auf IR
IR in XR laden
Tabellenseite
00444 00446-00448
00449 00450 00451 00452 00453 00454 00455 00456 00457
00459 00460 00462 00464 00466
Mittelwert-Standardabweichung
Diese Routine berechnet den Mittelwert und die Standardabweichung, die durch die folgenden Alpha-Registerwerte
gegeben sind.
CR - Summe "X"
DR - Summe "X*2"
ER-N (Anzahl der Terme)
Zurückgekehrte Werte:
XR-Mittelwert
YR-Standardabweichung
Angewandte Formeln
Mittelwert = (Summe "X")/N
Standardabweichung = Quadratwurzel ((( Summe "X"t 2) !(Summe
"X") * (Mittelwert) ) / (N-1))
(+) Zahl? Ja
Nein, Fehler setzen Stapeloperation
Summe
Il γ Μ
laden
709808/1025
00468 00470 00472 00474 00476 00478 00480 00482 00486 00487 00489 00492
XR in Zwischenspeicher kopieren
"N" in XR laden
"N" in Summe "X" dividieren
Mittelwert bewahren
Mittelwert Summe "X"
Summe "X12" - Mittelwert* Summe "X"
Teilergebnis bewahren
1,0 in Gleitkomma laden
Standardabweichung quadriert
Standardabweichung fertig
Stapelautomatik setzen
Mittelwert in XR laden
Tabellenseite
00496 00498-00499
00500 00501 00502 00503 00504 00505 00506 00507 00508 00509 00512 00514
00516 00518 00522 00524 00526 00538 00531-00532
S igmaroutinen
Diese Routine führt die Einzelvariablensummation von "x", "Xt 2" und "N* aus
Benutzerparaiheter:
XR-Neuer X-Wert
CR-laufende Summe "X"
DR-lau£ende Summe "X φ 2"
ER = laufendes "N"
Zurückgekehrte Werte
XR-neues X
CR-neue Summe "X"
DR-neue Summe 11X φ 2"
ER-neues "N"
Eingangsmarke setzen
"X" bewahren
11+" oder "-2 ausführen
"X" in XR wiederladen
"+" oder "-" ausführen
1,0 in XR laden
11+" oder "-" ausführen
"X" wieder laden
Führt "+"- oder "-"- Operation durch in Abhängigkeit
von Spezifizierermarke T13 (O-Addition).
709808/1025
00534 00536 00540 00541
Register-Hinweismarke bewahren Addition ausführen Hinweismarke
Ergebnis bewahren
Tabellenseite
00546 00549 00551 00553 00555 00556 00557 00558 00559 00560 00564 00575
Löscht Alpha-Register A-J
A-E löschen
Letzte Seite des RAM
Adresse aufbauen
Adresse von F-J
Gesamtzählung
Null-Byte
Adresse vorschieben
Schon mit 5 registern nach unten?
Nein
Tabelleneinfügungen für Instruktionsadressen
Mittelwert und Standardabweichung
Tabellenseite
00586-00587 | Diese Routine definiert die Verbindungs |
für CJ. | |
00588 | Instruktion 2*$ 7C00 = Routinenadresse |
00590 | Rückkehr für Leerstellen |
00607 | Eingabe |
00611 | Löschen |
00613 | Herunterrollen |
00615 | Letztes X |
00627 | Heraufrollen |
00628 | Quadratwurzel aus X |
00632 | R nach P |
00633 | P nach R |
709808/1025
Tabellenseite 178.
00637 | Grad |
00638 | Nach D.MS |
00639 | Von D.MS |
00646 | Mittelwert, Standardabweichung |
00647 | Anzahl von R1S |
00648 | Stapel auflisten |
00649 | X runden |
00650 | Akkumulator + Rückruf |
00651 | A-J löschen |
00652 | Zeile voll |
00653 | Neugrad |
00654 | Rad |
00691 | A speichern |
Tabellenseite 179
STO = Speichern RCL = Rückruf
Tabellenseite 180
RCL = Rückruf
CALL = Ruf
STO = Speichern
00756 Datei verifizieren
00757 Laden und Laufen
00758 Daten aufnehmen
00759 Rückspulen
00761 Für B nach G
00762 Für C nach H
00763 Für A nach F
00764 Nächstes A
709808/1025
00765 Nächstes B
00766 Nächstes C
00767 Lauf/Stopp
00768 Ende
00769 Drucken
00770 Zurück
00772 Programm aufnehmen
•00773 Aufnahme geschützt
00774 Datei markieren
00775 Datei identifizieren
00776 Datei laden
00777 Dieses Bit-Muster wird nicht benutzt
00778 Festkomma
00780 Gleitkomma
00781 Gleitkomma 00783 Etikett
Tabellenseite 181
Tabellenseite 182
00850 Ende SYMBOLTABELLE
Error = Fehler
Tabellenseite 183
Tabellenseite 183
709808/1025
Tabellenseite 184
Tabellenseite 185
00222-00228 Diese Datei enthält die Umwandlungskonstanten,
die in den Mathematik-Subrautinen benutzt werden. Von den von den mathematischen Algorithmen benutzten
trigonometrischen und LN-Konstanten sind nur die Mantissen gespeichert. Außerdem ist für
jeden Satz jeder aufeinanderfolgende Konstante einmal verschoben gelassen von der vorhergehenden
Konstante. Während der Ausführung jedes Algorithmus wird richtige Wertausrichtung durchgeführt.
Alle anderen Konstanten sind als volle Gleitkommazahlen gespeichert.
00234 Neugrad/Einheitskreis (400)
00237 Rad/Einheitskreis (2pi)
00240 Grad/Einheitskreis (360)
00243 Neugrad/Quadrant (100)
00246 Rad/Quadrant (pi/2)
00249 Grad/Quadrant (90)
00252 Grad/Rad (200/pi)
00255 Rad/Rad (1)
00258 Grad/Rad (180/pi)
Tabellenseite 186
00300 Auflisten
00300 Auflisten
Tabellenseite 239
00243-00249 Dies ermöglicht dem Benutzer, den Schreibstift durch Drücken von Richtungs/Schritt-Tasten zu
positionieren. Der Schritt wird durch Niederhal-
709808/1025
ten der Taste wiederholt. Die Schritte betragen 0,1% der vollen Skala für 25 Schritte (wiederholt),
und dann erhöht auf 1,0%-Zuwächse. Nach Ausgang werden die Benutzerkoordinaten ins X-
und Y-Register zurückgegeben
Ausgang
Rechts
Links
Herunter
Herauf
Tastencode bewahren
Ausgangsbefehl?
Nein
Schreibstift anheben
Marken zurückstellen
Alles initialisieren
Neue Taste?
Ja
Tastenfeldauswahl
Tastenfeldabtastungen lesen
Auswahlcode zurückstellen
Tastencode festlegen
Taste gelassen
Zeitzählung laden
Zeit nicht herauf
Schnelle Wiederholungszeit setzen
Gleicher Schritt
1,0%-
Delta addieren
Einstellen
Schrit,tbewegung machen
Tabellenseite
00294 00295 00296 00298 00299
Anderer Schritt Tastenpuffer löschen Auf Taste warten Befehl bewahren
Ausgang?
709808/1025
00300 00301 00302 00303 00305 00307 00309 00311
00314 00315 00317 00319
00322 00325 00327 00330 00334 00335 00337 00339 00340 00341 00343
Ja
Stopptaste? Ja
Herauf? Herunter? Nach links? Nach rechts? Initialisieren X-Y-Hinweismarke = Y
Stapel anheben Stapelautomatik setzen Verschiebung laden Minusposition
Skala laden
(Position - Verschiebung)/Skala Unwesentliche Ziffern auf Null RS-Marke wiederherstellen
Tastencode Tastenausgang Keine Programmausfuhrung Zurück zum Tastenfeldbetrieb
Tastenpuffer löschen Kanal zurückstellen
Tabellenseite
00348 00351 00353 00355 00358 00360 00361 00364 00366
Aufstellen
Schrittpuffer löschen Zeitschleife setzen Schrittzähler Schritt * 0,1%
XY-Marke = Y Tastenpuffer auf Null Vertikalbefehl? XY-Marke = Y
709808/1025
00367 | Herauf? |
00368 | Nein |
00370 | Nach links? |
00371 | Nein |
00373 | Negativschritt |
00375 | Hinweismarke auf zeigen |
00376 | Setzen |
00377 | In XR laden |
00380 | Bereich |
00382 | Negative Zahl? |
00383 | Nein |
00387 | Nein |
00389 | Exponent auf 3 setzen |
003 91 | Auf maximum setzen |
00392 | Hinweismarke |
003 93 | CORD, bewahren |
709808/1025
- 34$ -
Betrieb des Rechners
Allgemeine Beschreibung
Allgemeine Beschreibung
Alle vom Rechner ausgeführten Operationen können gesteuert oder in Gang gesetzt werden von der Tastenfeld-Eingabeeinheit aus
und/oder durch Tastencodes, die in den Rechner von der Tastenfeld-Eingabeeinheit,
der Magnetbandkassetten-Einheit oder peripheren Eingabe/Ausgabe-Einheiten (I/O-Einheiten) aus eingegeben
werden und in modifizierter Form als Programmschritte im Programmspeicherabschnitt
des Lese/Schreib-Speichers gespeichert werden. Die Beschreibung des Rechnerbetriebs wird daher im folgendem
unter spezieller Bezugnahme auf die perspektivische Ansicht des Rechners (Figur 1) und die Draufsicht auf das Tastenfeld
(Figur 2) gegeben, es sei denn, es ist etwas anderes angegeben .
Der Rechner benutzt umgekehrte polnische Notation (RPN) die die Benutzung eines Arbeitsstapels mit vier Registern einschließt,
welche hier als X-, Y-, Z- und T-Register bezeichnet werden. Einfache arithmetische Operationen werden durch
Eingabe von Daten in das X- und das Y-Register und Betätigung einer der arithmetischen Operator-Tasten ausgeführt. Das berechnete
Ergebnis wird ins X-Register gegeben.
Die 16-Zeichen-Anzeige 14 zeigt jede vom Tastenfeld IO aus eingegebene
Zahl und jedes berechnete Ergebnis an. Der thermische 16-Spalten-Drucker 16 kann so aufgerufen werden, daß er die
gerade angezeigten Daten druckt. Darüberhinaus sind die Anzeige 14 und der Drucker 16 werfevolle Programmierungshilfen.
99 Der dynamische Bereich des Rechners geht von -9,999999999 χ 10
99
bis 9,999999999 χ 10 . Wenn ein berechnetes Ergebnis außerhalb dieses Bereichs liegt, wird die Nachricht ÜBERLAUF gedruckt. Alle Rechnungen erfolgen auf zwölf Stellen, jedoch hängt die Genauigkeit der ausgeführten Funktiomyab» Gewöhnliche arith-
bis 9,999999999 χ 10 . Wenn ein berechnetes Ergebnis außerhalb dieses Bereichs liegt, wird die Nachricht ÜBERLAUF gedruckt. Alle Rechnungen erfolgen auf zwölf Stellen, jedoch hängt die Genauigkeit der ausgeführten Funktiomyab» Gewöhnliche arith-
70 9808/1025
metische Funktionen sind auf eine Zählung in der zwölften Zif-•fer
genau.
Zusätzlich zu den vier Arbeitsregistern X, Y, Z, und T, die
den Ärbeitsstapel bilden, enthält der Rechner in der Grundausführung
10 ständig vorhandene Datenspeicherregxster und einen Programmspeicher für 472 Schritte. Der Programmspeicher kann
auf 2008 Programmschritte erweitert werden, indem ein Lese/ Schreib-Speicher eingefügt wird, wie weiter oben beschrieben
ist. Zusätzliche Datenspeicherregister' können vom Benutzer benannt werden, falls benötigt.
Der Rechner kann mit einem Programm betrieben werden, welches auf einer externen Magnetbandkassette gespeichert ist, welche
in die Magnetbandkassetteneinheit 12 eingesetzt ist. Auf solchen Magnetbandkassetten können entweder bereits vom Hersteller
aufgenommene Programme gespeichert sein, oder aber vom Benutzer geschriebene Programme.
Durch Einfügen vom wahlweisen einsteckbaren I/O-ROMS in einen
oder beide der dafür auf der Rückseite des Rechners vorgesehenen Schlitze,, kann der Rechner mit einer oder mehreren
peripheren I/O-Einheiten verbunden werden. Diese können z.B.
ein X-Y-Schreiber, ein Lochstreifenleser, ein Streifenlocher, ein Digitizer oder ein Sfcitendrucker sein. Zusätzlich kann
der Rechner mit den meisten BCD-kompatiblen Geräten mittels einer universellen Interface-Sammelschiene verbunden werden.
Tastenfeld
Figur 2 zeigt die Aufteilung des Tastenfeldes des Rechners und enthält die jeder Taste zugeordnete mnemonische Bezeichnung.
Viele Tasten haben sowohl eine Erstfunktion, die durch die Bezeichnung auf der Taste selbst erläutert ist, sowie eine
zweite Funktion, die durch die Bezeichnung oberhalb der Taste erläutert ist, mit Ausnahme einer Taste ENTER (Eingabe) einer
Taste DECIMAL POINT (Dezimalpunkt) und einer Gruppe von Tasten A bis 0, die in der linken oberen Ecke des Tastenfeldes ange-
7-09808/1025
ordnet sind und deren verschiedene Funktionen durch Bezeichnungen unterhalb der Taste erläutert sind. Mit der Ausnahme der Tasten
A bis 0 können diese verschiedenen Funktionen dadurch eingegeben werden, daß vor der Betätigung der gewünschten Taste eine Leertaste
gedrückt wird, die im rechten oberen Teil des Tastenfeldes angeordnet ist (im folgenden als Taste BLANK bezeichnet). Die
alternativen Funktionen, die unterhalb der Tasten A bis 0 aufgeführt sind, stellen alle Programmierfunktionen dar, die durch
einfache Betätigung ihrer zugeordneten Tasten eingegeben werden, wenn sich der Rechner im Programmbetrieb befindet. In Verbindung
mit dieser Gruppe von Funktionen ist keine vorherige Betätigung der BLANK-Taste nötig.
Einige von diesen und anderen Tasten auf dem Tastenfeld sind Zeichen zugeordnet, die sich unterhalb der Taste befinden. Diese
Zeichen können gedruckt werden und werden automatisch in den Rechner eingegeben, indem ihre zugeordneten Tasten gedrückt
werden, wenn sich der Rechner im ALPHA-Betrieb befindet, wie weiter unten im Detail beschrieben ist.
Die beiden Schalter auf dem Tastenfeld werden benutzt, um die verschiedenen Druck- und Rechen-Betriebsarten zu wählen. Der
Drucker wird auf die Stellung ALL gesetzt, wenn er automatisch jede Tastenfeldoperation drucken soll. Um Papier zu sparen,
kann der Druckerschalter in die Stellung OFF gestellt werden.
Der Druckerschalter kann in die Stellung NORMAL gestellt werden,
in der ein Druck während der Programmeingabe stattfindet, jedoch nicht während der Ausführung von Funktionen. Die NORMAL-Stellung
ist nützlich zur Vermeidung einer manuellen Druckerabschaltung, wenn oft unerwünschtes Drucken während der Ausführung
von Funktionen vermieden werden soll. Der Rechner druckt verschiedene Nachrichten ohne Rücksicht auf die Stellung des
Druckerschalters, z.B. Nachrichten über den Zustand von peripheren I/O-Einheiten und Fehlermeldungen, die unrichtige Operationen
anzeigen. Eine Liste von ausdruckbaren Fehlermeldungen befindet Bich weiter unten. Der Betriebsartenschalter wird in die .
Stellung RUN gebracht, wenn Funktionen vom Tastenfeld aus ausge-
709808/1025
führt werden oder wenn ein Programm ablaufen soll, das im Lese/
Schreib-Speicher enthalten ist.
Die 16-Zeichen-Anzeige zeigt während längerer Tastenfeld- oder
Programmausführungen an, daß der Rechner in Betrieb ist, indem sie auf jedem Zeichenplatz in der Anzeige einen Bindestrich
wiedergibt. Eine angezeigte Zahl kann zu jeder Zeit gedruckt werden, indem einfach die PRINT-Taste gedrückt wird.
Die Tasten für Zahleneingabe auf dem Tastenfeld sind wie auf einer Addiermaschine angeordnet. Zahlen werden Ziffer für
Ziffer in den Rechner von links nach rechts eingegeben und können einen Dezimalpunkt enthalten. Vor der Eingabe einer
zweiten Zahl in den Rechner wird die erste durch Betätigung der ENTER-Taste fixiert. Die Eingabe einer negativen Zahl in
den Rechner wird nach der eingegebenen Zahl die Vorzeichenwechseltaste (+2f-) gedrückt. Große Zahlen können in wissenschaftlicher
(Gleitkomma-) Notierung eingegeben werden, indem die EEX-Taste zwischen Eingabe von Mantisse und Exponent
betätigt wird.
Das X-Register kann immer während einer Zahleneingabe gelöscht werden, indem die Taste CLX gedrückt wird. Alle vier Register
des Arbeitsstapels können durch Betätigung der Taste CLEAR gelöscht werden. Die Taste RESET (Rückstellung) kann benutzt
werden, um eine Tastenfolge zu löschen, welche noch nicht vollständig
war.
ein Rechnungen, bei denen zwei Zahlen und/arithmetischer Operator beteiligt
sind, werden ausgeführt durch Eintasten der ersten Zahl, Fixierung dieser Zahl im Y-Register durch Betätigung der
ENTER-Taste, Eintasten der zweiten Zahl und schließlich Betätigung der Taste für den ausgewählten arithmetischen Operator,
Im X-Register wird dann das Ergebnis angezeigt.
Rechnungen, bei denen mehr als eine arithmetische Operation beteiligt
ist, werden durchgeführt durch Eintasten der ersten Zahl, Fixierung dieser Zahl und Eintasten der folgenden Zahlen,
709808/1025
- 35Ö -
wobei auf jede Zahl der passende arithmetische Operator folgt. Nur die erste Zahl muß durch Betätigung der ENTER-Taste
fixiert werden. Jede folgende Zahl, welche nach Betätigung einer Taste für einen arithmetischen Operator eingegeben wird,
wird automatisch fixiert.
Die letzte in den Rechner vor Betätigung einer Operator-Taste eingegebene Zahl wird automatisch an einem Platz gespeichert,
welcher mit LAST X (letztes X) bezeichnet ist. Diese Zahl kann ins X-Register zurückgerufen werden und nach Betätigung der
Operator-Taste benutzt werden durch Betätigung der BLANK-Taste, gefolgt von der Taste LAST X. Solch ein Rückruf bewirkt auch
ein automatisches ENTER, genauso wie das Eintasten einer Zahl nach Betätigung einer arithmetischen Operatortaste. Der LAST
X-Platz wird nicht durch Betätigung der Tasten CLEAR oder CLX gelöscht.
Einfache arithmetische Operationen ähnlich den oben angeführten erfordern lediglich die Benutzung der Register X und Y des
Arbeitsstapeis. Kompliziertere Funktionen benötigen gegebenenfalls
auch die Register Z und T. Die vier Register des Arbeitsstapels kann man sich als vertikal übereinander angeordnet denken,
und zwar in der Reihenfolge X, Y, Z und T von unten nach oben. Vom Tastenfeld aus eingegebenerZahlen gelangen automatisch in
das X-Register. Eine darauffolgende Betätigung der ENTER-Taste dupliziert diese Zahl ins Y-Register, während die zuvor im
Y-Register gespeicherte Zahl inssT-Register geschoben wird. Die zuvor im T-Register gespeicherte Zahl geht verloren. Die Betätigung
der ENTER-Taste bewegt also den Inhalt der Stapelregister nach oben. In ähnlicher Weise wird bei Betätigung einer arithmetischen
Operatortaste das Rechenergebnis ins Y-Register gegeben, und die vorherigen Inhalte der Register Z und T werden
nach unten in die Register Y bzw. Z geschoben.
Der Inhalt der Stapelregister läßt sich durch einige Steuertasten auf dem Tastenfeld manipulieren. Die Taste X£?Y tauscht
den Inhalt der Register Y und X gegeneinander aus, ohne daß die Register Z und T in Mitleidenschaft gezogen werden. Die
709808/1025
Taste R^ rollt den Inhalt jedes Stapelregisters nach unten ins
nächste Register, wobei der Inhalt des X-Registers ins T-Register gegeben wird. Eine ähnliche Operation wird in Aufwärtsrichtung
mittels der Taste R^ ausgeführt. Die Betätigung der BLANK-Taste gefolgt von der Betätigung der Taste STACK bewirkt
das Drucken des Inhalts jedes Stapelregisters in der Reihenfolge T bis X.
Gedruckte und angezeigte Zahlen erscheinen normalerweise im Festkommaformat mit zwei Ziffern rechts vom Dezimalpunkt. Zur
Auswahl eines anderen Festkommaformats, wird die BLANK-Taste betätigt, gefolgt von der Betätigung der Taste iFIX und einer
der numerischen Tasten 0 bis 9. Die numerische Taste gibt dann die Anzahl der Ziffern rechts vom Dezimalpunkt an. Wenn
ein berechnetes Ergebnis oder eine vom Tastenfeld aus eingegebene Zahl zu groß für das jeweilige Festkommaformat ist,
wird vom Rechner automatisch ein Gleitkommaformat gewählt. Der Benutzer kann entweder ein Standard-Gleitkommaformat oder
ein spezielles Gleitkommaformat für angezeigte und gedruckte Zahlen wählen. Das Standard-Gleitkommaformat wird durch aufeinanderfolgender
Betätigung der Tasten BLANK und SCI, gefolgt von einer numerischen Taste gewählt. Wie im Falle des
Festkommaformats gibt'.-.die numerische Taste die Zahl der Ziffern
rechts vom Dezimalpunkt an. Das spezielle Gleitkommaformat wird gewählt,durch aufeinanderfolgender Betätigung
der Tasten BLANK und SCI3, gefolgt von einer numerischen Taste. Wenn dieses Format gewählt wird, erscheinen die gedruckten und
angezeigten Zahlen mit Exponenten, die immer gerade Vielfache von drei sind.
Zehn feste Datenspeicherregister werden automatisch für den Benutzer bereitgestellt, für die Speicherung von Zahlen, die
z.B. Zwischenergebnisse von Rechnungen darstellen können. Jedes dieser Register kann eine Zahl speichern und ist für
Speicherung und Rückruf zugänglich durch Betätigung der Tasten STO und RCL gefolgt von einer der Tasten A bis J, welche die
einzelnen Register bezeichnen. Zusätzliche DatenspeicherEegister
709808/1025
können vom Benutzer nach Bedarf benannt werden.
Alle Datenspeicherregister werden automatisch gelöscht, wenn der Rechner eingeschaltet wird. Zum Löschen der festen Datenspeicherregister
A bis J ohne Beeinträchtigung der übrigen Register wird die Taste STO und dann die Taste CLEAR betätigt.
Zusätzliche, vom Benutzer benannte Datenspeicherregister werden dadurch gelöscht, daß in ihnen die Zahl Null gespeichert
wird, oder indem eine Löschroutine benutzt wird, die weiter unten beschrieben ist.
Arithmetische Operationen können mit dem Inhalt des X-Registers und eines Datenspeicherregisters direkt ausgeführt werden,
ohne daß erst die gespeicherte Zahl zurückgerufen wird. Das Ergebnis wird in das Datenspeicherregister eingegeben, ohne
daß der Inhalt des X-Registers beeinträchtigt wird. Diese Operationen werden durch Betätigung der Taste STO, gefolgt
von der gewünschten arithmetischen Operatortaste und gefolgt von der Taste oder den Tasten zur Bezeichnung des gewünschten
Datenspeicherregisters ausgeführt.
Indirekte Speicher- und Rückrufoperationen können durch Spezifizierung
einer Registerbezeichnung ausgeführt werden, die die Bezeichnung des Registers enthält, in welcher die gewünschten
Daten gespeichert sind. Diese Operationen werden genauso ausgeführt wie direkte Speicher- und Rückrufoperationen, mit
der Ausnahme, daß die RCL-Taste vor der Taste betätigt wird, die das Zwischenregister bezeichnet. Nur der absolute Ganzzahlwert
des Inhalts des Zwischenregisters wird als indirekte Registernummer benutzt. Vorzeichen und Bruchteile werden ignoriert.
Die oben beschriebenen Registerarithmetik- und indirekten Speicheroperationen können zur Durchführung indirekter Registerarithmetik
kombiniert werden. Die allgemeine Tastenfolge ist STO, gefolgt von der gewünschten arithmetischen Operatortaste,
gewünscht von RCLy gefolgt von der Bezeichnungstaste
709808/1025
- 3S3 -
für das Speicherregister. In jedem Fall wird die gewählte arithmetische
Operation mit dem Inhalt des X-Registers und dem Inhalt des durch den Inhalt des Registers bezeichneten Registers ausgeführt,
welches in der Tastenfolge bezeichnet ist. Als Ergebnis wird in das in der Tastenfolge bezeichnete Register gegeben, und
das X-Register bleibt unverändert.
Zusätzliche Datenspeicherregister können vom Benutzer bei Bedarf benannt werden. Diese Datenspeicherregister werden aus dem Teil
des Lese/Schreib-Speichers für den Benutzer gebildet, welcher noch nicht mit Programmanweisungen gefüllt ist. Die zusätzlichen
Datenspeicherregister werden durch Betätigung der numerischen Tasten benannt, welche die gewünschte Zahl von zusätzlichen
Datenspeicherregxstern darstellen, gefolgt von der BLANK-Taste, gefolgt von der STO-Taste. Wenn der ungefüllte Teil des Benutzer-Lese/Schreib-Speichers
nicht groß genug für die Annahme einer bestimmten Datenspeicherbenennung ist, wird eine Fehlermeldung
SPEICHERÜBERLAUF gedruckt und die versuchte Benennung wird ignoriert. Zusätzliche Speicherregister bleiben benannt bis die
Benennung entweder geändert wird oder der Rechner abgeschaltet wird. Der Inhalt von zuvor benannten Datenspeicherregistern
wird durch eine darauffolgende Benennung nicht verändert, sofern die vorherige Benennung innerhalb der folgenden Benennung liegt.
Wenn nicht genug Programmspeicherraum für die Annahme einer spezifizierten Registerbenennung verfügbar ist, wird eine Fehlermeldung
SPEICHERÜBERLAUF gedruckt, und die Benennung wird ignoriert. Der Benutzer kann bis zu 250 zusätzliche Datenspeicherregister benennen,
wenn der Rechner mit dem wahlweisen Lese/Schreib-Speicher 103 ausgerüstet ist, der in Figur 3 dargestellt ist. Dieser
Register sind mit 000 bis 249 bezeichnet. Der Teil des Benutzer- Lese/Schreib-Speichers,
welcher nicht als Datenspeicherregister benannt ist, ist für die Speicherung von Programmschritten verfügbar.
Diese Anordnung führt zu einer wirksameren Nutzung des Lese/Schreib-Speichers, als sie in solchen Rechnern möglich ist,
die voneinander getrennte feste Bereiche für die Programm- und Datenspeicherung besitzen. Die obengenannte Tastenfolge für die
Benennung zusätzlicher Datenspeicherregister kann entweder manuell oder unter Programmsteuerung erfolgen, so daß dem Benutzer genügend
Flexibilität für die neue Konfiguration des Benutzer-
70980 8/1025
Lese/Schreib-Speichers zur Verfügung steht, um den Rechner jeder Zeit an seine spezifischen Bedürfnisse anzupassen.
Dadurch wird das bei bekannten Rechner aft auftretende Problem vermieden, daß zuviel Programmspeicherraum und zuwenig
Datenspeicherraum zur Verfügung steht bzw. umgekehrt. Zusätzlich zu dieser Flexibilität bei der Speicherdefinition ist
beim erfindungsgemäßen Rechner ein vollständiger Schutz jedes Speicherbereichs vorhanden. Das bedeutet, daß der Rechner den
Benutzer daran hindert, Daten in ein Speicherregister einzugeben, welches nicht vorher als Datenspeicherregister benannt
war, und den Benutzer in ähnlicher Weise an der Eingabe von Programmschritten in benannte Datenspeicherregister hindert.
Wenn der Benutzer versucht, Daten in ein Datenspeicherregister zu geben, welches nicht vorher benannt worden war, wird eine
Fehlermeldung UNERLAUBTE ADRESSE gedruckt.
Ein Block von benannten Datenspeicherregistern kann dadurch gelöscht werden, daß erst der Block herausgenommen wird und
er dann neu benannt wird. Wenn z.B. die Datenspeicherregister 000 bis 042 benannt worden sind und gewünscht ist, die Register
010 bis 024 zu löschen, läßt sich dies dadurch erreichen, daß zunächst die Register 000 bis 009 benannt werden und daß dann
die Register 000 bis 024 benannt werden. Das Ergebnis ist, daß die benannten Datenspeicherregister OCtO bfts 024 gelöscht werden,
während die Register 000 bis 009 unverändert bleiben.
Zusätzlich zu den zuvor diskutierten vier einfachen arithmetischen
Funktionen gibt es 24 wissenschaftliche Funktionen, die durch Tasten auf dem Tastenfeld dargestellt werden. Diese Tasten sind
in einem Block gruppiert und befinden sich in der Nähe der rechten Seite des Tastenfeldes unmittelbar links von den Schaltern
für Drucker und Steuerung. Jeder dieser Tasten für wissenschaftliche Funktionen ist eine Brst- eine Alternativ- und eine
inverseteunktion zugeordnet. Eine Erstfunktion wird einfach durch Betätigung der gewünschten Taste angegeben. Die Alternativfunktion,
die oberhalb der Taste angegeben ist, wird, wie oben beschrieben, durch vorherige Betätigung der BLANK-Taste
gewählt. Die ipverse Funktion wird durch vorherige Betätigung
709808/1025
der Taste f eingegeben.
Winke^Detreffende Funktionen, z.B. trigonometrische Funktionen
und Winkelumwandlungen können mit Grad (dezimal), rad oder Neugrad ausgeführt werden. Der Rechner wird automatisch auf die
Eingabe von Winkelwerten in Grad eingestellt, wenn eingeschaltet wird. Der Benutzer kann eine der drei Winkeleinheiten durch aufeinanderfolgende
Betätigung der BLANK-Taste und einer der numerischen Tasten 1, 2 und 3 spezifizieren, wobei 1 für Grad, 2
für rad und 3 für Neugrad gilt.
Eine Umwandlung von dezimalen Winkeleinheiten in Grad, Minuten
und Sekunden ist möglich, indem die BLÄNK-Taste und dann die Taste-^DMS gedrückt werden. Eine Umwandlung von Grad, Minuten
und Sekunden in die äquivalente dezimale Form der jeweils gewählten Winkeleinheiten ist möglich durch aufeinanderfolgende
Betätigung der Tasten BLANK und D.MS-*. Bei Ausführung der
Umwandlung von dezimalen Grad, rad oder Neugrad in Grad, Minuten und Sekunden enthält das ins X-Register zurückgegebene Ergebnis
den dezimalen Teil der Sekunden.
Drucker st euerung
Eine ALPHA-Betriebsart kann durch ^weilmalige Betätigung der
Taste CALL ALPHA (Alpha rufen) gewählt werden. Diese Taste wird auch mit einmaliger Betätigung benützt, um Zugriff zur Steuerung
von peripheren I/O-Einheiten zu nehmen, die mit dem Rechner
verbunden sind. Nach zweimaliger Betätigung dieser Taste erscheint die Nachricht ALPHA auf der Anzeige, um anzuzeigen,
daß der ALPHA-Betrieb gewählt wurde. Der Benutzer kann dann selektiv die verschiedenen alphanumerischen Tasten auf dem Tastenfeld
betätigen, um eine gewünschte Nachricht zu bilden. Nach Eintasten der letzten alphanumerischen Taste der Nachricht kann der
ALPHA-Betrieb beendet werden und die Nachricht kann gedruckt werden, indem die Taste CALL ALPHA noch einmal gedrückt wird.
Für den Fall, daß die gewünschte Nachricht eine Länge von 16
709808/10-25
Zeichen oder mehr hat, erfolgt das Drucken automatisch nach jedem 16. eingetasteten Zeichen.
Eine Reihe von Tasten auf dem Tastenfeld übernimmt Steuerfunktionen
in der ALPHA-Betriebsart. Z.B. wird die ENTER-Taste zu einer Taste NEW LINE (neue Zeile). Die Betätigung dieser
Taste bewirkt, daß der Rechner alle eingetasteten alphanumerischen Zeichen druckt und dann das Papier des Druckers für
eine neue Zeile vorschiebt. Aufeinanderfolgende Betätigungen der Taste NEW LINE bewirken, daß das Papier um jeweils eine
Zeile vorgeschoben wird. Die Taste X»?Y wird zu einer Steuertaste
SPACE (Abstand) während des Alphabetriebs und wird benutzt, um Abstände in eine Nachricht aus alphanumerischen
Zeichen einzufügen. Die Betätigung der Taste PRINT (Druck) an einer ausgewählten Position innerhalb der alphanumerischen
Nachricht bewirkt, daß der Rechner die gerade im X-Register gespeicherte Zahl an dieser Position innerhalb der alphanumerischen
Nachricht druckt. Die Zahl erscheint rechtsbündig auf der Zeile, es sei denn, daß ihr alphanumerische Zeichen
folgen. Sie wird auch in den jeweils gewählten speziellen Fest- oder Gleitkommaformat gedruckt. Dieses Merkmal ist
nützlich für den Druck von Etiketten (Labels) und berechneten Ergebnissen in derselben Zeile. Die gedruckte Zahl erscheint
immer auf derselben Zeile wie die alphanumerische Nachricht, vorausgesetzt, daß genügend Raum für sie innerhalb des 16-Spalten-Druckfeläes
vorhanden ist. Wenn der verfügbare Raum zu klein ist, wird die gesamte Zahl in der nächstfolgenden
Druckzelle gedruckt. Für den Fall, daß der Benutzer beim Eintasten einer alphanumerischen Nachricht einen Fehler macht,
kann die ALPHA-Betriebsart ohne Drucken der Nachricht gelöscht werden, indem der Steuerschalter in der rechten unteren Ecke
des Tastenfeldes in die Stellung PRGM und dann zurück in die Stellung RUN gebracht wird. Diese Schalterbetätigung hat keine
Wirkung auf die in den vier Registern des Arbeitsstapels oder im Rechner gespeicherten Zahlen.
709808/1025
- 3S7 -
Programmierung
Zusätzlich, zur manuellen Ausführung von vom Tastenfeld aus
eingegebenen Befehlen kann der Rechner auch automatisch mittels eines Programms betrieben werden, welches im Benutzer-Lese/Schreib-Speicher
enthalten ist. Das Programm wird in Form einer modifizierten Version der Tastencodes gespeichert,
welche jeder der Tasten zugeordnet sind. Anders als bei einigen Rechnern, bei denen nur ein Teil der Tasten programmierbar
ist, erlaubt der erfindungsgemäße Rechner dem Benutzer den Einschluß jeder Tastenfolge in ein Programm, welche auch
beim manuellen Betrieb des Rechners möglich ist. Zusätzlich enthält das Tastenfeld einen Block von Tasten, die Programmsteuerfunktionen
darstellen. Dies sind z.B. Tasten für Abzweigungen und Etikettierung von Subroutinen, Qualifizierertasten
und Schleifentasten zur automatischen Wiederholung von Programmsegmenten. Diese Programmsteuertasten befinden
sich im linken Drittel des Tastenfeldes. Sie enthalten auch die Alternativfunktionen, die unterhalb der Tasten A bis 0
bezeichnet sind. Die Grundausführung des Lese/Schreib-Speichers hat eine Kapazität für die Speicherung von 472
Programmschritten an Plätzen 0000 bis 0471. Durch Hinzufügung eines wahlweisen Lese/Schreib-Speichers kann die Programmspeicherkapazität
auf 2008 Programmschritte erhöht werden. Jeder Schritt enthält eine Programmanweisung, die entweder
durch eine einzelne Tastenbetätigung vorgegeben ist, z.B. durch die Tasten + oder PRINT, oder durch eine Tastenfolge,
z.B. Taste STO gefolgt von A, oder Taste BLANK gefolgt von SIN. Passende Tastenfolgen werden automatisch kombiniert,
wenn ein Programm eingegeben wird. Im Benutzer-Lese/Schreib-Speicher wird dann ein einzelner Instruktionscode gespeichert,
der die Gesamtfolge darstellt. Diese Instruktionscode wird intern mittels einer Reihe von Firmware-Syntaxtabellen gebildet.
Diese Tabellen definieren eine Anzahl von Tastenfolgen, die zu jeder gegebenen Zeit gültig sind, zusammen
mit den ihnen entsprechenden Instruktionscodes. Diese Anordnung unterscheidet sich von der bei bekannten Rechnern, bei
709808/1025
denen jede Tastenbetätigung einen gesonderten Platz im Speicher beansprucht. Die Anordnung im erfindungsgemäßen
Rechner hat den Vorteil, daß ein größeres Programm bei gleichen Speicherbedarf gespeichert werden kann. Sie ist
auch deshalb vorteilhaft, weil die Programmausführung effizienter ist, da dann weniger Syntaxprüfung erforderlich
ist. Dies ergibt sich aus der Tatsache, daß eine teilweise Syntaxprüfung effektiv bereits bei der Programmeingabe ausgeführt
worden ist, wenn erkannt wird, daß bestimmte Tastenfolgen zu einem einzelnen internen Instruktionscode führen.
Der Programmspeicherbereich des Benutzer-Lese/Schreibspeichers des Rechners kann vor Eingabe jedes neuen Programms
gelöscht werden, ohne daß der Inhalt der Datenspeicherregister oder der Register des Arbeitsstapel verändert
wird. Dies geschieht dadurch, daß der Steuerschalter in die Stellung PRGM gebracht wird und dann aufeinanderfolgend
die Tasten K und N betätigt werden. Zum Löschen des gesamten Lese/Schreib-Speichers kann der Rechner
abgeschaltet werden.
Der Rechner enthält einen internen Programmzähler, mit welchem bestimmbar ist, welcher Programmschritt angezeigt, gedruckt
oder ausgeführt wird. Viele Programmtasten und Instruktionen steuern den Betrieb des Programmzählers, wobei
dem Benutzer ermöglicht wird, Programm einzugeben, zu überarbeiten, ablaufen zu lassen und aufzunehmen. Der Programmzähler
kann auf jeden beliebigen Schritt gestellt werden, wenn sich der Rechner im PRGM-Betrieb befindet, indem die
Taste GOTO gefolgt von den Programmschritt im Speicher darstellenden numerischen Tasten betätigt wird. Wie bei der
Spezifizierung benannter Datenregister brauchen nur die wesentlichen, den Speicherplatz darstellenden Ziffern eingetastet
werden, wenn diesen Betätigungen sofort die Betätigung einer nichtnumerischen Taste oder der Dezimalpunkttaste
folgt. Soll z.B. der Programmzähler auf Platz 0025 gesetzt werden, wird der Rechner in den RÜN-Betrieb geschaltet
7 0 9808/1025
und die Tastenfolgen GOTO 25. oder GOTO 0025 werden eingegeben. Der Rechner wird dann auf PRGM-Betrieb geschaltet, und der
laufende Speicherplatz 0025 zusammen mit der Zahl der Speicherplätze zwischen ihm und dem Ende des Programmspeicherbereichs
werden angezeigt. Der Programmzähler kann während der Eingabe eines Programms manuell inkrementiert oder dekrementiert werden,
indem die Tasten STEP (Vorwärtsschritt) oder BKSTEP (Rückwärtsschritt) gedrückt werden. Der Programmzähler wird
bei Eingabe jedes Programmschritts automatisch inkrementiert. Er wird automatisch auf den Programmschrittplatz 0000 gesetzt,
wenn die Taste END betätigt wird, während sich der Rechner im RUN-Betrieb befindet, immer wenn der Rechner eingeschaltet
wird und immer wenn der Programmspeicherteil des Benützer-Lese/Schreib-Speichers
gelöscht wird.
Ein Programm wird eingegeben, indem der Programmzähler auf den gewünschten Anfangsschritt-Platz gesetzt wird und indem
dann der Rechner auf PRGM-Betrieb geschaltet wird und das Programm eingegeben wird. Bei jeder Programmschritteingabe
listet der Drucker die Programmschrittinstruktionen auf und druckt den nächsten Programmschritt-Platz. Die letzte Schrittinstruktion
jedes Programms muß END sein.
Der Drucker listet automatisch jeden Programmschritt-Platz und jede Programmschritt-Instruktion während der Programmeingabe
auf, wenn der Druckerschalter in der Stellung NORM steht. Wenn sich der Rechner im PRGM-Betrieb befindet, listet der
Drucker auch jeden Programmschritt-Platz auf, wenn der Programmzähler
manuell 'inkrementiert oder dekrementiert wird. Jeder Teil eines gespeicherten Programms kann aufgelistet
werden, indem der Programmzähler auf den gewünschten Anfangsschrittplatz gesetzt wird und die Taste LIST betätigt wird.
Das Auflisten kann durch Betätigung der Taste RUN STOP beendet werden. Das Auflisten hört automatisch auf, wenn die Instruktion
END auftritt.
709808/1025
Nachdem ein Programm eingegeben wurde, kann es dadurch ausgeführt werden, daß der Rechner in den RUN-Betrieb geschaltet
wird, der Programmzähler auf den Anfang des Programms gestellt wird und die Taste RUN STOP betätigt wird. Die Programmausführung
läuft solange, bis entweder eine STOP- oder END-Instruktion angetroffen wird. Der Benutzer kann die Programmausführung
jederzeit anhalten, indem er die Taste RUN STOP drückt.
Als Programmierungshiife zur Benennung eines Platzes in einem
Programm können Etiketten (Labels) benutzt werden. Die Etikettinstruktion
befindet sich unmittelbar vor dem Programmbereichj,
auf -weichen sie sich bezieht. Der Programmzähler kann dann durch eine passende Abzweiginstruktion, z.B. GOTO, auf
den Stikettenplatz gesetzt werden. Die Etikettierung stellt
•sin Tsrfahren sum Adressieren von Prograramsegmenten unabhängig
Ton -lan Speicherplätzen im Speicher dar. Eine bei der Eingabe
und der Korrektur von Programmen oft benutzte zeitsparende Technik besteht darin, Etiketten wenn immer möglich für Abzweigung
zu verwenden. Wenn das Programmschritte eingefügt oder herausgenommen werden, brauchen die Äbzweiginstruktionen
nicht verändert zu werden. Sobald das Programm befriedigend arbeitet, können die ursprünglich in Verbindung mit den Abzweiginstruktionen
verwendeten Etiketten durch absolute Programmschritt-Plätze im Speicher ersetzt werden.
Sin Etikett kann durch aufeinanderfolgender Betätigung der
Taste LABEL und einer oder mehrerer alphanumerischer Tasten zur Bestimmung des Etiketts eingegeben werden. Wenn z.B. gewünscht
ist, ein Etikett 01 am Speicherplatz 0050 zu bilden, wird der Programmzähler zunächst auf diesen Speicherplatz gesetzt
und dann wird die Tastenfolge LABEL 01 eingegeben. Ein etikettiertes Programmsegment kann unter" Programmsteuerung
oder manuell vom Tastenfeld aus ausgeführt werden. Zur Ausführung eines Sät .06 etikettierten Programmsegmentes vom Tastenfeld
aus, ist es lediglich erforderlich, die Tastenfolge GOTO LABEL 6 RUN einzugeben.
709808/1025
Die Ausführung einer Abzweiginstruktion stellt den Programmzähler auf einen vorgegebenen Speicherplatz. Die Programmausführung
wird dann automatisch von diesem Speicherplatz aus
fortgesetzt. Es sind sowohl absolute als auch berechnete Abzweiginstruktionen für den Benutzer verfügbar. Eine absolute Abzweiginstruktion bewirkt, daß der Programmzähler auf einen •festen Platz gesetzt wird, der als Etikett spezifiziert werden kann. Die aufeinanderfolgende Betätigung der Taste GOTO
und numerischer Tasten für den Speicherplatz oder die aufeinanderfolgende Betätigung der Taste GOTO, der Taste LABEL und alphanumerischer Tasten für das Etikett sind Beispiele für
absolute Verzweigungsinstruktionen.
fortgesetzt. Es sind sowohl absolute als auch berechnete Abzweiginstruktionen für den Benutzer verfügbar. Eine absolute Abzweiginstruktion bewirkt, daß der Programmzähler auf einen •festen Platz gesetzt wird, der als Etikett spezifiziert werden kann. Die aufeinanderfolgende Betätigung der Taste GOTO
und numerischer Tasten für den Speicherplatz oder die aufeinanderfolgende Betätigung der Taste GOTO, der Taste LABEL und alphanumerischer Tasten für das Etikett sind Beispiele für
absolute Verzweigungsinstruktionen.
Eine berechnete Verzweigungsinstruktion hat das Ergebnis,
daß der Programmzähler auf einen Speicherplatz gesetzt wird, der durch den jeweiligen Inhalt des X-Registers bezeichnet
wird. Abhängig von der Verzweigungsinstruktion zeigt der absolute Ganzzahlteil des Inhalts des X-Registers entweder einen Programmschritt-Platz oder ein numerisches Etikett an. Die
allgemeine Folge für die Eingabe von berechneten Verzweigungsinstruktionen ist GOTO X oder GOTO LABEL X. Diese Anordnung
für berechnete Verzweigungsanweisungen stellt einen Fortschritt gegenüber dem Stand der Technik dar, wo der Benutzer einen begrenzten Satz von Stimmungsadressen für jede berechnete Verzweigungsinstruktion vordefinieren mußte und dann die eine Adresse des Satzes berechnen mußte, welche zu einem gegebenen Zeitpunkt benutzt werden sollte. Beim erfindungsgemäßen Rechner gibt der Benutzer lediglich den BeStimmungsplatz ins X-Register vor der Ausführung der Verzweigungsinstruktion. Zusätzlich hat der Benutzer mehr Flexibilität, da die Verzweigung entweder zu einem berechneten festen Speicherplatz oder zu einem berechneten Etikett führen kann.
daß der Programmzähler auf einen Speicherplatz gesetzt wird, der durch den jeweiligen Inhalt des X-Registers bezeichnet
wird. Abhängig von der Verzweigungsinstruktion zeigt der absolute Ganzzahlteil des Inhalts des X-Registers entweder einen Programmschritt-Platz oder ein numerisches Etikett an. Die
allgemeine Folge für die Eingabe von berechneten Verzweigungsinstruktionen ist GOTO X oder GOTO LABEL X. Diese Anordnung
für berechnete Verzweigungsanweisungen stellt einen Fortschritt gegenüber dem Stand der Technik dar, wo der Benutzer einen begrenzten Satz von Stimmungsadressen für jede berechnete Verzweigungsinstruktion vordefinieren mußte und dann die eine Adresse des Satzes berechnen mußte, welche zu einem gegebenen Zeitpunkt benutzt werden sollte. Beim erfindungsgemäßen Rechner gibt der Benutzer lediglich den BeStimmungsplatz ins X-Register vor der Ausführung der Verzweigungsinstruktion. Zusätzlich hat der Benutzer mehr Flexibilität, da die Verzweigung entweder zu einem berechneten festen Speicherplatz oder zu einem berechneten Etikett führen kann.
IF-Instruktionen bewirken, daß der Rechner logische Vergleiche
zwischen den Inhalten d es X- und des Y-Registers oder dem
jeweiligen Zustand einiger Programm-Marken macht, wie weiter
jeweiligen Zustand einiger Programm-Marken macht, wie weiter
709808/1025
unten beschrieben ist. Wenn der Vergleich "wahr" ist, wird die nächste Prograinmschritt-Instruktion ausgeführt. Wenn jedoch
der Vergleich "falsch" ist, wird die nächste Programmsehritt-Instruktion
übersprungen. Die auf eine IF-Instruktion nächstfolgende Programmschritt-Instruktion ist üblicherweise aber
nicht notwendig eine Verzweigungs-Instruktion. Acht IF-Instruktionen
und die ihnen zugeordneten Tastenfolgen sind im folgenden in Tabelle 3 dargestellt.
X-i-Y? IF X ^ Y
X = Y? IF X=Y
X > Y ? IPX2Y
X^O? IF-
X > 0 ? IF +
X = O? IF 0
IST MARKE N GESETZT? IF SFG N
IST MARKE N GELÖSCHT? IF CFG N
Eine Subroutine ist eine Folge von Programminstruktionen, die wiederholt benutzt werden kann, sogar in verschiedenen
Programmen, jedoch nur einmal in den Speicher' eingegeben werden muß. Ein Programm kann jederzeit zu einer Subroutine
abzweigen oder eine solche aufrufen, indem die Instruktion GOSUB benutzt wird. Nachdem dann die Subroutine ausgeführt
worden ist, bewirkt eine Rückkehrinstruktion (RETURN) am Ende der Subroutine, daß die Programmausführung an dem
Schritt fortgesetzt wird, der der Instruktion GOSUB folgt. Die Instruktion GOSUB ruft eine Subroutine auf, indem sie
entweder einen Programmschritt-Platz oder ein Etikett spezifiziert. Es kann auch eine berechnete Verzweigungsform sein
ähnlich der berechneten GOTO-Instruktion. Bis zu sieben
Subroutinen können ineinander geschachtelt werden. Die Rückführungen erfolgen nach dem Prinzip "zuletzt hinein, zuerst
hinaus", so daß die Rückkehrreihenfolge der Aufrufreihenfolge
immer entgegengesetzt ist.
FOR-NEXT-Instruktionen erlauben die Wiederholgung jeder Instruktionsfolge
. Die FOR Und NEXT-Instruktionen bilden eine
709808/1025
Schleife, in der die zwischen ihnen angeordnete Instruktionsfolge wiederholt wird. Jeder FOR-NEXT-Instruktion ist ein
Paar von Datenspeicherregistern zugeordnet. Datenregisterpaare A und F, B und G, sowie C und H sind für diesen Zweck verfügbar.
Das erste Register jedes Paars wird in der FOR-Instruktion spezifiziert und ist der Schleifenzähler. Das zweite Register
jedes Paars hält den Endwert fest. Wenn die Registerpaare A und F bzwο B und G benutzt werden, wird der Schleifenzähler
bei jeder Schleifenausführung um Eins erhöht. Wenn jedoch das Registerpaar C und H benutzt wird, ifird der Schleifenzähler
so inkrementiert, wie durch den Inhalt des Registers
D spezifiziert ist. FOR-NEXT-Instruktionen können ineinandergeschachtelt
werden, jedoch nur bis maximal drei, da nur drei Registerpaare verfügbar sind.
Marken können als programmierbare Indikatoren eingesetzt werden,
um dem Rechner die Möglichkeit su geben, Entscheidungen zu treffen oder um den Benutzer über bestimmte Programmbedingungen
in Kenntnis zu setzen. Jede dieser Marken ist entweder gesetzt oder gelöscht, und dieses Setzen oder Löschen
kann manuell vom Tastenfeld aus oder unter Programmsteuerung erfolgen. Zusätzlich werden alle Marken durch Betätigung der
END-Taste, durch Ausführung einer END-Instruktion innerhalb eines Programms oder durch Einschalten des Rechners gelöscht.
Acht Marken sind im Rechner verfügbar. Marken 1 bis 4 stehen für allgemeine Anwendungen im Programm zur Verfügung, während
die Marken 5 bis 8 bestimmte Funktionen haben. Im allgemeinen Gebrauch wird eine Marke durch eine bestimmte Programmfolge
oder ein Ereignis gesetzt. Später im Programm kann dann der Zustand der Marke geprüft werden, um eine spätere Aktivität
zu bestimmen. Die Marken 1 bis 4 können gesetzt werden- durch Betätigung der Taste SFGCFG, gefolgt von einer numerischen
Taste zur Bestimmung der Marke. Diese Marken können gelöscht werden durch zweimalige Betätigung der Taste SFGCFG gefolgt
von der entsprechenden numerischen Taste. Die Marken 5 und 6 werden zum Abfangen bestimmter Fehlermeldungen benutzt. Wenn
die Marke 6 gesetzt ist, wird die unterdrückbare Fehlermeldung
709808/1025
z.B. ÜBERLAUF nicht gedruckt. Stattdessen wird automatisch die Marke 5 gesetzt, wenn ein unterdrückbarer Fehler auftritt. Die
Marke 7 wird automatisch gesetzt, wenn eine STOP-Instruktion ausgeführt wird. Wenn Daten eingegeben werden, bevor eine Programmausführung
fortgesetzt wird, wird die Marke 7 gelöscht. Wenn jedoch keine Daten eingegeben werden, bevor die Programmausführung
fortgesetzt wird, bleibt Marke 7 gesetzt. Die Marke 8 kann von dem Satz ausgeschaltet werden,um durch aufeinanderfolgende
Betätigung der Taste SFGCFG während der Programmausführung Zustände zu löschen.
Verschiedene Tasten auf dem Tastenfeld dienen der Ausführung von Überarbeitungsfunktionen an einem gespeicherten Programm.
Wenn ein Programm nicht wie erwartet läuft, besteht der erste vom Benutzer unternommene Schritt gewöhnlich darin, daS eine
Auflistung des Programms geprüft wird. Um sin vollständiges
Programm aufzulisten, wird der Prcgrammzähler auf den ersten
Platz des Programms gesetzt, und die LIST-Taste wird betätigt. Ein Teil eines Programms kann aufgelistet werden, indem der
Programmzähler auf den gewünschten Platz gesetzt wird und dann die LIST-Taste betätigt wird. Die Taste RUN STOP kann betätigt
werden, um das Auflisten anzuhalten.
Eine oft benutzte Methode zum Prüfen eines fehlerhaften Programms besteht darin, daß man es Instruktion für Instruktion
ausführt. Dies kann dadurch erfolgen, daß, während sich der Rechner im RUN - Betrieb befindet, der Programmzähler auf den
ersten Platz des Programms gesetzt wird und dann aufeinanderfolgend die STEP-Taste betätigt wird. Bei jeder Betätigung
der STEP-Taste wird die jeweilige Instruktion ausgeführt, der Programmzähler wird zur nächsten auszuführenden Instruktion
wextergeschaltet und das jeweilige Ergebnis wird angezeigt.
Um eine Programmschrittinstruktion zu ändern, wird der Programmzähler
auf den gewünschten Platz gesetzt, die PRGM-Betriebsart gewählt, die neue Instruktion wird vom Tastenfeld
709808/1025
aus eingegeben, und der Rechner wird zurück auf RÜN-Betrieb
geschaltet. Wenn die neue Instruktion zwei Programmschritte benötigt, während die alte Instruktion mit einem auskam,
schiebt der Rechner automatisch den Rest des Programms um einen Schritt weiter, so daß die neue Instruktion angepaßt
wird. Alle betroffenen Verzweigungsinfetruktionen werden automatisch neu numeriert. Ähnliches geschieht, wenn die neue
Instruktion nur einen Schritt benötigt, während die alte Instruktion zwei Schritte benötigt hatte. Der Rechner verschiebt
dann ebenfalls den Rest des Programms um einen Schritt und numeriert die betroffenen Verzweigungs-Instruktionen neu.
Programminstruktionen können herausgenommen werden, indem der
Programmzähler auf den Platz der nicht gewollten Instruktionen gesetzt wird, der Rechner auf PRGM-Betrieb geschaltet wird,
und dann die Taste DELETE (Herausnahme) gedrückt wird. Der Rechner verschiebt automatisch den Rest des Programms, so daß
der leere Schritte ausgefüllt wird, und numeriert alle betroffenen Verzweigungs-Instruktionen neu. Ein vollständiger
Block von Instruktionen kann herausgenommen werden, indem der Programmzähler auf den ersten nicht gewollten Schritt
gesetzt wird, der Rechner auf PRGM-Betrieb geschaltet wird, und dann die DELETE-Taste je einmal für jede Instruktion in
der Folge betätigt wird. Jedesmal,wenn eine Instruktion herausgenommen wird, wird die neue Instruktion durch den
Rechner verschoben, so daß der Programmschritt-Platz gedruckt wird, es sei denn der Rechner ist abgeschaltet.
Eine oder mehrere Instruktionen können in ein Programm eingefügt werden, indem erst der Programmzähler auf den Platz
gesetzt wird, an welchen die erste neue Instruktion kommen soll. Der Rechner wird dann auf PRGM-Betrieb geschaltet, die
Taste INSERT (Einfügung) wird betätigt, und die gewünschte neue Instruktion wird eingetastet. Die Einfügungsoperation
wird dadurch beendet, daß der Rechner auf RUN-Betrieb geschaltet wird oder daß eine der Überarbeitungstasten gedrückt
wird mit Ausnahme von MEMORY (Speicher) oder DELETE. Der
709808/1025
Rechner numeriert automatisch alle Verzweigungs-Instruktionen neu, die von der Einfügungsoperation betroffen werden.
Der Programmspeicherteil des Benutzer-Lese/Schreib-Speichers
kann dadurch gelöscht werden, daß der Rechner auf PRGM-Betrieb geschaltet wird und die Tasten MEMORY und DELETE aufeinanderfolgend
betätigt werden. Diese Operation füllt den Programmbereich mit NOP-Instruktionen, was "keine Operation" bedeutet.
Auf dem Tastenfeld befindet sich eine NOP-Taste, mit welcher der Benutzer NOP-Instruktionen in sein Programm eingeben kann.
Diese Anordnung ist zum Beispiel wünschenswert in Fällen, in denen der Benutzer einen Platz für ..möglicherweise spätere Eingabe
einer ausführbaren Instruktion reservieren will.
Instruktionen, die eine zu druckende alphanumerische Nachricht bilden, können ebenfalls überarbeitet werden, indem die gerade
beschriebenen verschiedenen Tasten benützt werden. Der einzige Unterschied besteht darin, daß der Rechner zuerst auf ALPHA-Betrieb
geschaltet werden muß, wie oben im Abschnitt "Druckersteuerung" beschrieben ist. Eine Ausnahme besteht darin, daß
der Rechner sich nicht im ALPHA-Betrieb befinden muß, wenn der Benutzer versucht, alphanumerische Instruktionen herauszunehmen.
Anderenfalls wird bei Betätigung der DELETE-Taste der Buchstabe O eingegeben.
Bandbetrieb
Die in den Rechner eingebauten Magnetbandkassetten-Einhfeit 12
erlaubt dem Benutzer eine dauerhafte Aufnahme seiner Programme und Datenblöcke auf eine externe Magnetbandkassette. Jedes
solche Programm bzw. jeder solche Datenblock kann anschließend sooft wie gewünscht zurück in den Rechnerspeicher eingelesen
werden. Für die Steuerung des Betriebs der Magnetbandkassetten-Einheit 12 sind im linken Teil des Tastenfeldes 10 fünf Tasten
vorgesehen, die alle programmierbar sind. Ihre Erstfunktionen sind LOAD (Laden), REWIND (Zurückspulen), RECORD (Aufnehmen),
709808/1025
LIST (Auflisten) und L. Jede externe Bandkassette hat eine Kapazität von ungefähr 96 OOO Programmschritten oder die
Kapazität von ungefähr 12 000 Datenspeicherregistern. Ein Aufnahmesperrschieber auf jeder Bandkassette kann so gestellt
werden, .daß er ein ungewolltes Löschen der auf der Kassette gespeicherten Information verhindert, indem er die
Ausführung einer Aufnahmeinstruktion (RECORD) verhindert.
Die Magnetbandkassetten-Einheit 12 führt eine routinemäßige
Prüfung aus, um sicherzustellen,, daß alle Information die
von einer externen Magnetbandkassette in den Rechner geladen wird, genau der ursprünglich aufgenommenen Information
entspricht. Wenn während einer Datenladungs- oder Programmladungs-Operation ein Fehler festgestellt wird wird eine erneute
Ladung versucht. Wenn.die Information nach drei solchen automatischen Versuchen nicht erfolgreich in den Rechner
geladen werden kann, wird die Ladeoperation angehalten und eine Fehlermeldung SUMMENPRÜFUNGSFEHLER wird ausgedruckt.
Typische Ursachen für. einen solchen Fehler sind abgenutzte oder teilweise gelöschte Bänder oder ein verschmutzter Magnetkopf
.
Bevor Programme oder Daten auf eine leere Bandkassette geladen werden können, müssen eine oder mehrere Bandmarkierungs-Instruktionen
(MARK TAPE) ausgeführt werden. Jede Bandmarkierungs-Instruktion führt zur Aufnahme eines Blocks von
leeren Dateien auf einer Spur des Bandes. Auf jeder Bandkassette sind zwei Spuren verfügbar, von denen jede unabhängig
von der anderen für die Informationsspeicherung und -wiedergewinnung verwendet werden kann. Die erste Spur kann
durch Spezifizierung einer positiven Dateinummer in jeder Bandinstruktion benutzt werden. Die zweite Spur kann in ähnlicherweise
benutzt werden,indem eine negative Dateinummer spezifiziert wird. Dem Anfang jeder Datei ist ein .leerer
Bereich zugeordnet, der als Trennung zwischen den Dateien dient. Einen Datei-Identifizierer enthält die sich auf eine
bestimmte Datei beziehende Information, wie Dateinummer,
709808/1025
Dateityp, absolute Dateigröße, tatsächliche Dateigröße usw.
Ein Teil jeder Banddatei, "Dateikörper" genannt, wird für die tatsächliche Programm- und Datenspeicherung benutzt. Die in
der Bandmarkierungs-Instruktion spezifizierte absolute Dateigröße bestimmt die Größe dieses Dateikörpers.
Jede Bandmarkierungs-Instruktion, die durch aufeinanderfolgende Betätigung der Tasten BLANK und MARK (Markieren) eingegeben
wird, initialisiert eine Spur auf der Bandkassette, indem ein Block von Leerdateien zusammen mit den passenden
Datei-Identifizierungen gespeichert wird. Der Ganzzahlteil von in den Registern Z, Y bzw. X gespeicherten Zahlen spezifiziert
die Größe jeder Datei, die Anzahl der Datein im Block und den Zahlenbenenner für die erste Datei. Die Größe
jeder Datei ist in Programmschritten ausgedrückt. Um die Dateigröße in Programmschrittsn su bestimmen, die für die Aufnahme
einer gewünschten Anzahl von Datenspeicherregistern benötigt wird, wird die Anzahl der Datenspeicherregister
lediglich mit 8 multipliziert.
Nachdem die spezifizierte Anzahl von Dateien markiert worden
ist, wird automatisch eine Zusatzdatei markiert und das Band wird auf den Anfangder Zusatzdatei gestellt. Die Zusatzdatei
wird markiert, um die Markierung zusätzlicher Dateien zu einem späteren Zeitpunkt zu erleichtern, und hat
daher keinen Dateikörper. Programme oder Daten können nun in jeder markierten Datei gespeichert werden oder es können
weitere Dateien markiert werden, beginnend mit der Zusatzdatei. Dateien werden in numerischer Reihenfolge markiert
und benannt, beginnend mit Datei 0 auf der ersten Spur und Datei -0 auf der zweiten Spur.
Die Bandmarkierungs-Instruktion hat für neue und bereits benutzte Bandkassetten das gleiche Format. Wenn jedoch Dateien
auf einem gebrauchten Band markiert werden, ist es wichtig, alle alten Datein zu überspielen oder zu löschen. Dadurch
werden unerwartete Ergebnisse vermieden. Alte Dateien können
TO 9808/1025
dadurch gelöscht werden, daß einfach neue Dateien in genügender Menge oder genügender Größe markiert werden/ die über die alten
Dateien hinausreichen. Sie können auch gelöscht werden durch Spezifizierung einer negativen Anzahl von Dateien in irgendeiner
Bandmarkierungs-Instruktion. Wenn z.B. -1 im Y-Rdgister
während einer Zeit gespeichert ist,· während der eine Bandmarkierungsinstruktion
ausgeführt wird, wird eine einzelne Datei markiert, und der Rest der spezifizierten Spur wird automatisch
gelöscht.
Eine Identifizierungs-Instruktion (IDENTIFY), die durch aufeinanderfolgender
Betätigung der BLANK-Taste und einer IDENT-Taste eingegeben wird, überträgt die Datei-Identifizierungsinformation,
die einer benannten Datei zugeordnet ist, in die Register des Arbeitsstapels. Die Nummer der gewünschten Datei
wird im X-Register vor Ausführung der Instruktion gespeichert. Nach Ausführung der Instruktion wird im T-Register eine dem
Dateityp entsprechende Zahl gespeichert, im Z-Register die Anzahl der in Benutzung befindlichen Schritte gespeichert,
im Y-Register die ursprünglich markierte Dateigröße gespeichert. Selbstverständlich verbleibt die Dateinummer im X-Register gespeichert.
Die verschiedenen Dateitypen und ihre zugeordneten Zahlbenennungen sind in Tabelle 4 dargestellt.
0 PROGRAMMDATEI
1 GESICHERTES PROGRAMM
2 DATENDATEI
3 BEREITS VOM HERSTELLER AUFGENOMMENES PROGRAMM
4 GESICHERTES, BEREITS VOM HERSTELLER AUF- ■ GENOMMENES PROGRAMM
5 LEERE DATEI
6 ZUSATZDATEI
Als zusätzliche Hilfe für den Benutzer wird der Inhalt der vier Register des Arbeitsstapeis zusammen mit den Etiketten DATEI,
TYP, BENUTZT und MAX automatisch gedruckt, wenn eine Identifizierungs-Instruktion
vom Tastenfeld aus ausgeführt wird.
709808/1025
Die Ausführung einer Aufnahme-Instruktion die durch Betätigung
der RECORD-Taste eingegeben wird, nimmt den Inhalt des Programmspeicherteils
des Benutzer-Lese/Schreib-Speichers von einem jeweiligen Platz bis zur END-Instruktion auf eine benannte Banddatei
auf. Wenn keine END-Instruktion angetroffen wird, wird der Rest des Programmspeicherteils des Benutzer-Lese/Schreib-Speichers
aufgenommen. Vor Ausführung der Instruktion sollte der gewünschte Anfangsplatz im Y-Register gespeichert werden,
und die Nummer der gewünschten Datei sollte im X-Register gespeichert werden. Wenn die benannte Datei zu klein ist oder
das Band geschützt ist, wird die RECORD-Instruktion gelöscht und eine Fehlermeldung ausgedruckt.
Die Ausführung einer Lade-Instruktion, die durch Betätigung
der LOAD-Taste eingegeben wird, lädt Programme oder Daten von einer gewünschten Banddatei in den Benutzer-Lese/Schreib-Speicher.
Der Dateityp legt fest, ob Programme oder Daten geladen werden. Vor Ausführung einer LOAD-Instruktion sollte
der gewünschte Anfangsschritt-Platz im Speicher im Y-Register
gespeichert werden, und die Nummer der gewünschten Datei sollte im X-Register gespeichert werden. Wenn die Datei vom falschen
Typ ist oder wenn nicht genügend Raum im Lese/Schreib-Speicher verfügbar ist, wird die LOAD-Instruktion gelöscht und eine
Fehlermeldung ausgedruckt.
Eine Instruktion "Laden und gehen", die durch Betätigung der Taste LD&DO eingegeben wird, stellt eine programmierbare
Methode für automatisches Laden und Ausführen eines spezifizierten Programms bereit. Vor Ausführung der Instruktion
sollte der Anfangssehritt-Platz im Speicher im Y-Register
gespeichert werden und die Nummer der gewünschten Datei sollte im X-Register gespeichert werden. Ein extrem langes Programm
kann in Segmente aufgeteilt werden, von denen jedes in eine separate Datei geladen wird. Eine Instruktion "laden und
gehen" kann zum Ende jedes Programmsegmentes hinzugefügt werden,, um automatisch in Aufeinanderfolge die Programmsegemente
709808/102S
.aufzurufen und auszuführen.
Die Ausführung einer Datenaufnahme-Instruktion (RECORD DATA),
die durch aufeinanderfolgende Betätigung der Tasten BLANK und RECORD eingegeben wird, nimmt den Inhalt eines Blocks von
numerierten Datenspeicherregistern in einer spezifizierten Datei auf. Vor Ausführung der Instruktion sollte die Anzahl
der aufzunehmenden Datenspeicherregister im Z-Register gespeichert
werden, die erste Registernummer sollte im Y-Register
•gespeichert v/erden und die Dateinummer sollte im X-Register gespeichert werden. Wenn die spezifizierten Register nicht vorher
benannt worden sind, wenn die Datei su; klein ist oder vom
falschen Typ ist, oder wenn das Band geschützt ist, wird die Datenaufnahme-Instruktion gelöscht und eine Fehlermeldung
wird ausgedruckt.
Wie oben dargestellt wurde, wird die LOAD-Instruktion sowohl
für das Laden von Daten als auch von Programmen in den Rechner benutzt. Der Dateityp legt fest, ob Programme oder Daten
geladen werden» Vor dem Laden von Daten sollte die Registernummer für die Anfangsdaten im Y-Register gespeichert werden
und die Dateinummer sollte im X-Registsr gespeichert werden. Die Daten werden Register für Register, beginnend mit dem
Startregister, geladen. Wenn die Datei vom falschen Typ ist oder eine unzureichende Anzahl von Datenspeicherregistern
benannt worden ist, wird die Instruktion gelöscht, und eine Fehlermeldung wird gedruckt.
Die Ausführung einer Verifizierungs-Instruktion, die durch
aufeinanderfolgende Betätigung der BLANK-Taste und einEr VARIFY-Taste eingegeben wird, vergleicht die auf einer Banddatei
aufgenommene Information mit dem Programm oder den Daten, die gerade im Rechnerspeicher enthalten sind. Zur
Verifizierung einer Programmdatei sollte der Anfangsschritt-Platz im Y-Register und die Dateinummer im X-Register ge-
709808/1025
speichert werden. Zum Verifizieren einer Datendatei sollten die Anzahl der Datenspeicherregister im Y-Register und die Dateinummer
im X-Register gespeichert werden. Die Verifizierungsinstruktion wird am leichtesten direkt hinter einer Lade- oder
Aufnahmeoperation ausgeführt, da die richtigen Zahlen schon
im Y- und im X-Register gespeichert sind. Wenn die Information in der Datei nicht identisch mit der im Benutzer-Lese/Schreib-Speicher gespeicherten ist, wird eine der Fehlermeldungen
KEINE VERIFIZIERUNG oder SUMMENPRÜFUNGSFEHLER gedruckt. Keine dieser beiden Fehler bewirkt ein Stoppen der Programmausführung, wenn Marke 6 gesetzt ist. In diesem Fall wird von jedem der Fehler automatisch die Progamm-Marke 5 gesetzt. Eine
Aufnahme-Sicherungsinstruktion, die durch aufeinanderfolgende Betätigung der Tasten CALL und RECORD eingegeben wird, stellt eine Methode für eine vertrauliche Programmaufnahme auf das
Band dar. Bei Ausführung dieser Instruktion wird ein Programm auf eine spezifizierte Datei aufgenommen, ähnlich wie bei der Programmaufnahme-Instruktion, mit der Ausnahme, daß der Dateityp als Typ 1 bezeichnet wird. Vor Ausführung der Instruktion sollte im Y-Register der Anfangsschritt-Speicherplatz gespeichert sein, und die Nummer der gewünschten Datei sollte
im X-Register gespeichert sein. Die Ausführung der Aufnahme-Sicherungsinstruktion beeinträchtigt nicht den Inhalt des
Speichers. Ein gesichertes Progamm kann zurück in den Rechner geladen werden wie jedes andere Programm und dann in normaler Weise ausgeführt werden. Sobald jedoch ein gesichertes Programm in den Rechner geladen worden ist,führt jeder Versuch
eine Auflistung, Aufnahme oder Überarbeitung des Programms
zum Druck der Fehlermeldung GESICHERTES PROGRAMM. Wenn ein
gesichertes Programm in den Rechnerspeicher geladen worden
ist, werden all übrigen im Speicher befindliche Programme
automatisch gesichert. Datenspeicherregister werden jedoch
nicht betroffen. Der gesicherte Speicher kann gelöscht werden, was auch durch Abschalten des Rechners geschieht.
im Y- und im X-Register gespeichert sind. Wenn die Information in der Datei nicht identisch mit der im Benutzer-Lese/Schreib-Speicher gespeicherten ist, wird eine der Fehlermeldungen
KEINE VERIFIZIERUNG oder SUMMENPRÜFUNGSFEHLER gedruckt. Keine dieser beiden Fehler bewirkt ein Stoppen der Programmausführung, wenn Marke 6 gesetzt ist. In diesem Fall wird von jedem der Fehler automatisch die Progamm-Marke 5 gesetzt. Eine
Aufnahme-Sicherungsinstruktion, die durch aufeinanderfolgende Betätigung der Tasten CALL und RECORD eingegeben wird, stellt eine Methode für eine vertrauliche Programmaufnahme auf das
Band dar. Bei Ausführung dieser Instruktion wird ein Programm auf eine spezifizierte Datei aufgenommen, ähnlich wie bei der Programmaufnahme-Instruktion, mit der Ausnahme, daß der Dateityp als Typ 1 bezeichnet wird. Vor Ausführung der Instruktion sollte im Y-Register der Anfangsschritt-Speicherplatz gespeichert sein, und die Nummer der gewünschten Datei sollte
im X-Register gespeichert sein. Die Ausführung der Aufnahme-Sicherungsinstruktion beeinträchtigt nicht den Inhalt des
Speichers. Ein gesichertes Progamm kann zurück in den Rechner geladen werden wie jedes andere Programm und dann in normaler Weise ausgeführt werden. Sobald jedoch ein gesichertes Programm in den Rechner geladen worden ist,führt jeder Versuch
eine Auflistung, Aufnahme oder Überarbeitung des Programms
zum Druck der Fehlermeldung GESICHERTES PROGRAMM. Wenn ein
gesichertes Programm in den Rechnerspeicher geladen worden
ist, werden all übrigen im Speicher befindliche Programme
automatisch gesichert. Datenspeicherregister werden jedoch
nicht betroffen. Der gesicherte Speicher kann gelöscht werden, was auch durch Abschalten des Rechners geschieht.
Zum automatischen Laden eines in der Banddatei 0 gespeicherten Programms in den Rechnerspeicher und zur Initiierung der
709808/1025
Ausführung dieses Programms kann der Rechner im automatischen Startbetrieb (AUTOSTART) auf das Einschalten des Rechners hin
betrieben werden. Der automatische Startbetrieb wird dadurch gewählt, daß der Betriebsartenschalter des Rechners (rechts
unten auf dem Tastenfeld) in die Position AUTOSTART gebracht wird. Dieser Schalter wird von der Rechner-Firmware abgefragt.
Wenn festgestellt wird, daß sich der Schalter in der AUTOSTART-Position befindet, wird das Band nach der Datei 0 abgesucht,
und der Dateityp wird abgefragt. Wenn die Datei 0 vom Typ 0 oder 1 ist, wird sie automatisch in den Rechnerspeicher geladen
und die Ausführung wird bei Platz 0000 initiiert. Wenn irgendwelche Fehler während der Ladung dieser Datei auftreten,
wird der AUTOSTART-Betrieb gelöscht, eine Fehlermeldung wird gedruckt, und der Rechner wird in den RUN-Betrieb zurückgeschaltet.
Der AUTOSTART-Betrieb ist vorteilhaft, da er eine automatische Speicherdefinition ohne Eingriff seitens eines
möglicherweise ungeübten Benutzers ermöglicht. Zusätzlich wird dadurch die automatische Wiederaufnahme der Ausführung
eines Programms ermöglicht, nachdem die Netzspannung, z.B. nach einem Netzausfall, wiederkommt.
Die Gruppe der Tasten A bis 0 enthält eine Gruppe von Spezialfunktionstasten,
die vom Benutzer so programmiert werden können, daß sie vom Benutzer definierte Funktionen aufrufen
und ausführen. Jede derart definierte Funktion ist im Effekt eine Subroutine, die mit einem Etikett beginnt und mit einer
RETURN-Instruktion endet. Für diese Gruppe von Tasten sind Leerauflagen vorgesehen, auf die der Benutzer Beschriftungen
für die definierten Funktionen bringen kann. Jede definierte Funktion.· kann vom Tastenfeld aus ausgeführt werden, indem
lediglich die gewünschte Taste betätigt wird, oder sie kann während der Programmausführung unter Benutzung einer GOSUB-Instruktion
aufgerufen werden.
Jede Spezialfunktionstaste wird dadurch programmiert, daß die Instruktionen in den Rechnerspeicher eingegeben werden, die
die definierte Funktion enthalten. Jede definierte Funktion
709808/1025
enthält ein Etikett und eine RETURN-Instruktion, wie im Fall
der oben beschriebenen Subroutinen. Jede definierte Funktion kann im Benutzer-Lese/Schreib-Speicher beginnend an einem
ausgewählten platz gespeichert werden. Bis zu sieben spezielle Funktionen können ineinander geschachtelt werden. Bevor
ineinandergeschachtelte Funktionen aufgerufen werden, sollte die END-Taste betätigt werden, um den Verschachtelungszähler
zurückzustellen.
Falschen Dateineingabe, falsche Tasten- oder Programm-Instruktionssyntax
und falsche Rechnungen werden dem Benutzer durch gedruckte Fehlermeldungen angezeigt. Anders als bei bekannten
Rechnern, die numerische Fehlermeldungen verwenden und somit die Benutzung einer erläuternden Tabelle erfordern, sind die
vom erfindungsgemäßen Rechner gedruckten Fehlermeldungen in sich selbst verständlich,als Aussage über den angezeigten
Fehler.ASCII-Zeichen, die jeder möglichen Fehlermeldung entsprechen,
werden im Rechnerspeicher gespeichert. Nach Feststellung
eines Fehlers und Auswahl einer entsprechenden Fehlernummer durch die ROM-Ausführungsroutinen überträgt ein
Fehlerausgaberoutine die ASCII-Zeichen zum Drucker, welche die der ausgewählten Fehlernummer zugeordnete Fehlermeldung
bilden. Eine Liste der möglichen Fehlermeldungen, die sich aus verschiedenen unrichtigen Rechneroperationen ergeben, zusammen
mit den zugeordneten Fehlerquellen befindet sich im folgenden in Tabelle 5. Ein Stern auf der linken Seite einer
Fehlermeldung zeigt an, daß sie mittels der oben beschriebenen Marken unterdrückbar ist.
F ehlermeldungen
^ÜBERLAUF - Zahl oder Ergebnis überschreitet Rechenbereich
^QUADRATWURZEL AUS NEGATIVER ZAHL
*DIVISION DURCH NULL
"LOGARITHMUS AUS ZAHL^=O
*DIVISION DURCH NULL
"LOGARITHMUS AUS ZAHL^=O
*KEINE I/0-VORRICHTUNG - keine periphere I/O-Einheit angeschlossen
7 0 9808/1025
UNERLAUBTE ADRESSE - Unrichtiger Prograitimschritt-Platz oder
falsches Speicherregister spezifiziert
UNERLAUBTES ARGUMENT - Mathematisch inkorrektes Funktionsargument spezifiziert
SPEICHERÜBERLAUF - Programminstruktion, Daten-Speicherregister-Benennung
oder vom Band geladenes Programm bzw. Daten überschreiten den verfügbaren Speicherraum
ETIKETT NICHT GEFUNDEN
GOSUB-ÜBERLAUF - Mehr als sieben Subroutinen oder
Spezialfunktionen ineinandergeschachtelt
FEHLENDES GOSUB
TASTE NICHT DEFINIERT - Gerade aufgerufen Spezialfunktion
ist nicht definiert
UNRICHTIGE SYNTAX
FEHLENDE FOR-ANWEISUNG
^SUMMENPRÜFUNGSFEHLER - Unkenntliche Information vom Band gelesen
DATEI ZU KLEIN
*KEINE VERIFIZIERUNG - Programm oder Daten auf Banddatei nicht
identisch mit Speicherinhalt
^FALSCHER DATEITYP
DATEI NICHT GEFUNDEN
ENDE DES BANDES - Bandende oder Bandriß während Ausführung
einer Dateimarkierungs-Instruktion erfaßt
KASSETTE DRAUßEN - Magnetbandkassefeteneinheit enthält keine
Bandkassette
GESCHÜTZTES BAND - Der Aufnahmeschieber der Bandkassette ist
•so eingestellt, daß er Markierungs- und
Aufnahmeoperationen verhindert
GESICHERTER SPEICHER - Es ist ein Versuch gemacht worden, ein gesichertes
Programm aufzulisten, zu überarbeiten oder aufzunehmen
PAPIER ZU ENDE - Papierversorung für Drucker zu Ende
709808/102 5
Einsteck-I/O-ROM für Kurvenschreiber
Mittels eines Kurvenschreiber-I/O-ROMs, welches in eine von
zwei peripheren I/O-Einstecköffnungen 18 auf der Rückseite
des Rechners eingesteckt werden kann, kann mit dem Rechner ein X-Y-Schreiber verbunden werden. Die Kombination des Rechners
mit einem X-Y-Schreiber schaft ein System, welches graphische Lösungen für komplizierte Probleme finden kann.
Öie Funktionen des Schreibers werden vom vom Rechner mittels Instruktionen gesteuert, die vom Tastenfeld aus oder unter
Programmsteuerung ausgeführt werden können. Der Schreiber kann in üblicher Weise benutzt werden, um Kurven zu schreiben,
die mathematische Funktionen darstellen, um Istogramme oder Karten zu schreiben oder um alphanumerische oder Spezialzeichen
zu zeichnen. Zusätzlich kann die Kombination Schreiber/ Rechner als Digitalisierer benutzt werden, um früher in
Sechner/Schreiber-Systemen nicht verfügbare Funktionen auszuführen. Im Digitalisierbetrxeb kann das Rechner/Schreiber-System
benutzt werden, um Kurven und Figuren in numerischer Koordinatenwerte umzuwandeln.
Im Digitalisierbetrxeb kann der Benutzer den Schreibstift des Schreibers über verschiedene Punkte der Schreibfläche
schieben, und zwar mit Hilfe von Tastenfeldinstruktionen. Sobald der Schreibstift sich genau über einem gewünschten
Punkt befindet, überträgt der Schreiber die Koordinaten dieses Punktes zum Rechner. Diese Information kann dann
vom Rechner benutzt werden, um Kurvenlänge, eingeschlossene Fläche oder andere Parameter zu berechnen, die untersetzte
Punktdaten benötigen.
Der Zeichenbereich, der durch BegrenzungsSteuerungen auf dem
Schreiber und eine SCALE-Instruktion (Skala) wird in jeder Koordinatenrichtung in tausend Skaleneinheiten geteilt. Z.B.
hat eine Zeichenfläche von 10 χ 10 cm eine Digitalisierungsauflösung
von 0,1 mm. Die sich aus der Digitalisierung eines Punktes ergebenden Koordinatenwerte werden in den Registern
709808/1025
des Arbeitsstapels gespeichert und beziehen sich auf den mit der SCALE-Instruktion gewählten Koordinatenursprung.
Die SCALE-Instruktion baut für einen gegebenen Zeichenbereich
die Vollskalawerte in Benutzereinheiten auf. X . , X , Y .
min max mm
und Υ entsprechen genau den zugeordneten horizontalen und vertikalen Grenzen des Zeichenbereichs, der mittels Einstellung
der Grenzsteuerungen auf den Rechner definiert ist. Diese Instruktion bestimmt auch einen Punkt innerhalb oder außerhalb
des Zeichenbereichs, wo sich der Koordinatenursprung befindet.
Zur Vorbereitung der Ausführung einer SCALE-Instruktion sollten
die Werte von X . , X , Y . und Y in den Registern
mxn max rain max 3
T, Z, Y bzw. X gespeichert werden. Die SCALE-Instruktion kann
dann ausgeführt werden durch aufeinanderfolgende Betätigung der Tasten CALL, 1 und F. Die vom Benutzer ausgewählten Skalenwerte bleiben wirksam, bis eineneue SCALE-Instruktion ausgeführt
wird oder der Rechner abgeschaltet wird. Es ist wichtig, daß sichergestellt ist, daß die Werte Xminf x max' Y min und
Y in die richtigen Stapelregister eingegeben worden sind.
Ilia. X
Wenn dies nicht zutrifft, wird die Fehlermeldung UNERLAUBTES ARGUMENT gedruckt. Wenn der Rechner eingeschaltet wird, wird
eine automatische Wertzuordnung gemacht, so daß X . = Y . =
mm mm
0 und X = Y = 9999 ist. Diese automatischen Grenzwerte
max max
können natürlich durch nachfolgende Ausführung einer SCALE-Instruktion
verändert werden.
Der Digitalisierungsbetrieb kann gewählt werden durch Ausführung einer der vier Schreibstift-Richtungs-Tastenfolgen CALL
1 E, CALL 1 J, CALL 1 N und CALL 1 0. Sobald der Digitalisierungsbetrieb
gewählt worden ist, ist es lediglich erforderlich, eine der Richtungstasten E, J, N oder 0 zu betätigen, um den
Schreibstift nach oben, nach unten, nach links bzw. nach rechts zu bewegen. Jedesmal wenn einer dieser Richtungstasten
betätigt wird, bewegt sich der Schreibstift um einen Inkrementabstand, der gleich einer Benutzereinheit in der spezifizierten
Richtung ist. Wird die Richtungstaste nicht losgelassen, be-
0 9808/1025
wegt sich der Schreibstift Inkrement für Inkrement mit wachsender
Geschwindigkeit weiter, wodurch der Schreibstift bequemer, und schneller an den gewünschten Punkt gebracht werden kann.
Der Digitalisierungsbetrieb läßt sich aufheben, indem entweder die Taste M oder die Taste RUN STOP betätigt wird. Zu diesem
Zeitpunkt werden die Koordinatenwerte der jeweiligen Schreibstiftposition in das X- und das Y-Register eingegeben. Falls
der Digitalisierungsbetrieb unter Programmsteuerung gewählt worden war, wird durch Betätigung der Taste M das Programm
wieder gestartet. Die Betätigung der Taste RUN STOP hält die Ausführung des Programms auf.
Eine EXIT-Instruktion (Ausgang), die durch aufeinanderfolgender
Betätigung der Tasten CALL,1 und M eingegeben wird, gibt die Koordinatenwerte der jeweiligen Schreibstiftposition in
die Register X und Y. Diese Instruktion ist unabhängig vom Digitalisierungsbetrieb, ist aber nützlich, wenn die laufenden
X- und Y-Koord±naten der Schreibstiftposition als Bezug benötigt werden.
Der Digitalisierungsbetrieb ergibt sich im einzelnen aus den entsprechenden Teilen der Firmware-Listen. Die Hauptroutine
hat fünf Eingangspunkte, die durch Tasten E, J, M, N und 0 aufgerufen werden können. Diese Eingangspunkte bilden den
äquivalenten Tastencode für spätere Bezugnahme und dienen zur Initialisierung verschiedener Hinweismarken. Im Fall,
daß die Routine durch die M-Taste (EXIT-Instruktion) eingegeben
worden ist, rechnet die Routine sofort die X- und Y-Koordinaten der jeweiligen Schreibstift-Position aus Information
in den Schreiberregistern aus und gibt die Steuerung an den Rechner zurück, ohne daß der Zustand einer Marke
RSFLG geändert wird. Falls der Eingang über eine der Tasten E, J, N oder 0 erfolgte, wird der Schreibstift angehoben,
und der Arbeitsstapel wird hochgeschoben, so daß im X-Register intern Rechnungen ausgeführt werden können. Eine
Routine SET UP wird aufgerufen, um das Schrittinkrement des
709808/1025
Schreibstiftes auf zehn absolute Sehreibereinheiten, die
Anfangswartezeit auf ungefähr 0,5 Sekunden, die Richtung des Schritts entsprechend Bestimmung durch den Tastencode
und verschiedene Marken intern zur Routine zu bringen. Die SET UP-Routine prüft dann jedes Loslassen der Eingabetaste
oder eine neue Tastenbetätigung. Wenn die Taste solange niedergedrückt bleibt, bis die 0,5 Sekunden Wartezeit überbrückt
sind, wird ein Schrittinkrement zur jeweiligen Schreibetiftposition
addiert, die Wartezeit wird auf ungefähr 1 Sekunde erhöht und eine Zählung der Schrittzahl in der gewählten
Richtung wird gestartet. Nach 25 Schritten in derselben Richtung wird das Schrittinkrement auf 100 Einheiten oder
1% des Zeichenbereichs erhöht, der Schreibstift wird in die neue Position bewegt,und die Schleife wird solange fortgesetzt,
wie die Taste niedergedrückt bleibt. Wenn ein gegebener Schritt zu einer Bewegung des Schreibstiftes aus
dem Zeichenbereich heraus führt, wird eine passende Grenzkoordinate substituiert. Wenn die Taste losgelassen wird,
wird der Eingangspuffer gelöscht, und die Routine wartet auf eine weitere Richtungstastenbetätigung. Wenn die nächste
betätigte Taste die RUN STOP-Taste ist, wird die jeweiligen Schreibstiftkoordinaten berechnet und in den Registern X
und Y gespeichert.
Einsteck-ROM für allgemeine Eingabe/Ausgabe
Ein allgemeines I/O-ROM kann in einen der Einstecköffnungen
18 auf der Rückseite des Rechners eingesteckt werden und bildet ein acht-Bit-paralleles,8esfechenserielles Interface
für den Anschluß einer großen Vielfalt von peripheren 1/0-Einheiten
an den Rechner. Dieses ROM überträgt Daten im Halbduplex-Betrieb und stellt einen Pufferspeicher für jedes
Zeichen oder Datenbyte bereit. Obwohl der Rechner selbst nur ASCII-codierte Information verarbeitet, kann das allgemeine
I/O-ROM Daten in jedem acht-Bit-Binärcode übertragen.
Dieser Codes werden dann mittels eines Umwandlungsprogramms in ASCII umgewandelt.
709808/1025
Verschiedene Instruktionen, die entweder vom Tastenfeld aus
oder unter Programmsteuerung ausgeführt werden können, sind dem allgemeinen I/O-ROM zugeordnet. Diese Instruktionen enthalten
Routinen und Subroutinen, die im allgemeine I/O-ROM
selbst gespeichert sind und finden sich detailliert auf den Tabellenseite 187 bis 220. Auch kann Figur 3 zum Verständnis
des Zusammenwirkens zwischen den dem allgemeinen I/O-ROM zugeordneten
Instruktionen und der restlichen Rechner-Hardware herangezogen werden. Jedem wahlweise auf der Rückseite des
Rechners einsteckbaren I/O-ROM ist ein separater numerischer
Auswahlcode zugeordnet, der in jeder I/O-Instruktion spezifiziert
werden muß, welcher sich auf dieses I/O-ROM bezieht.
Der dem allgemeinen I/O-ROM zugeordnete Auswahlcode ist 2.
Eine Dateninstruktion, die in den Rechner durch aufeinanderfolgende
Betätigung der Tasten CALL, 2 und 0 eingegeben wird, wird benutzt, um für die I/O-Datenleitungen eine positiv
"wahre" oder negativ "wahre" Logik auszuwählen. Diese Auswahl erfolgt durch.passendes Einstellen des Vorzeichens einer
im X-Register gespeicherten Zahl vor der Ausführung der Dateninstruktion. Negativ "wahre" Logik wird automatisch gewählt,
wenn der Rechner eingeschaltet wird.
Eine Markeninstruktion, die in den Rechner durch aufeinanderfolgender
Betätigung der Tasten CALL, 2 und N eingegeben wird, wird benutzt, um den Logikpegel und den Rückmeldungsmodus für die Marken-Leitung des Rechners einzustellen. Eine
Rückmeldungs-Steuerleitung ECH kann durch Eingabe von 0 ins
X-Register und Ausführung der Markeninstruktion gesperrt werden. Ähnlich kann die Leitung ECH freigegeben werden, indem
die Zahl 1 ins X-Register gegeben wird und die Markeninstruktion ausgeführt wird. Die Leitung ECH wird automatisch
gesperrt, wenn der Rechner eingeschaltet wird. Der Logikpegel der Markenleitung wird durch das Vorzeichen der ins X-Register
eingegebenen Zahl vorgegeben, -!bevor die Markeninstruktion ausgeführt
wird. Negativ "wahre" Logik wird automatisch gewählt, wenn der Rechner eingeschaltet wird.
709808/1025
Eine Schreibinstruktion, die in den Rechner durch aufeinanderfolgende
Betätigung der Tasten CALL, 2 und C eingegeben wird, wird benutzt, um das Vorzeichen, die Ziffern und den Dezimalpunkt
der gerade im X-Register gespeicherten Zahl zur peripheren I/O-Einheit zu übertragen. Die Zahl erscheint rechtsbündig
in einem Feld, das durch das jeweilige Zahlenformat des Rechners vorgegeben ist. Zeichen für Wagenrücklauf und
volle Zeile werden automatisch auf die Zahl folgend übertragen,
Eine Instruktion "X schreiben", die in den Rechner durch aufeinanderfolgende
Betätigung der Tasten CALL, 2, und A eingegeben wird, wird die gleiche Funktion wie die WRITE-Instruktion
aus, mit der Ausnahme, daß die Übertragung der Zeichen für Wagenrücklauf und volle Zeile unterdrückt wird.
Die Zeichen für Wagenrücklauf und volle Zeile werden zusammen mit einem Abstandszeichen als Abgrenzungen in Verbindung mit
Schreibinstruktionen verwendet. Die Abstandszeichen werden benutzt, um das'Oatenfeld zu füllen, während die Zeichen für
Wagenrücklauf und volle Zeile zur Begrenzung des Datenfeldes dienen.
Eine Feldinstruktion, die in den Rechner durch aufeinanderfolgende
Betätigung der Tasten CALL, 2 und D eingegeben wird, wird benutzt, um die Datenfeldbreite für Schreibund
X-Schreibinstruktionen wirksam werden zu lassen. Diese Datenfeldbreite wird automatisch auf 16 Zeichen gestellt,
wenn der Rechner eingeschaltet wird. Eine Feldbreite von 1 bis 127 Zeichen kann durch Eingabe der Feldbreite ins X-Register
und Ausführung der Feldinstruktion gewählt werden. Wenn die durch eine Schreib- oder X-Schreibinstruktion übertragene
Zahl zu groß für das benannte Feld ist, wird ein Feld von #-Zeichen übertragen.
Eine Buchstaben-Schreibinstruktion, (WRITE ALPHA), die in
den Rechner durch aufeinanderfolgende Betätigung der Tasten CALL, 2, CALL, GEWÜNSCHTE ZEICHENTASTE, CALL, wird benutzt,
709808/1025
um einen I/O-Alphabetrieb ähnlich dem Alphabetrieb zu wählen,
der gewählt werden kann, wenn der Rechner alleine arbeitet. Die ASCII-Äquivalente der Zeichen, die in der Buchstaben-Schreib-Instruktion
spezifiziert sind, werden zur peripheren I/O-Einheit übertragen.
Eine Instruktion READ X (X lesen), die in den Rechner durch aufeinanderfolgende Betätigung der Tasten CALL, 2 und B eingegeben
wird, wird benutzt, um eine Zahl von der peripheren I/O-Einheit ins X-Register einzugeben. Die Zahl kann in
Freifeldformat erscheinen oder mit den Abgrenzungen, die in einer AbgrenzungsInstruktion spezifiziert werden.
Eine Begrenzungsinstruktion, die in den Rechner durch^aufeinanderfolgende
Betätigung der Tasten CALL, 2, und E eingegeben wird, erlaubt dem Rechner, drei ASCII-Zeichen als
Begrenzer zu spezifizieren, die der Dateneingabe in den Rechner über die X-Lese-Instruktion zugeordnet sind. Die
spezifizierten Begrenzer, die mit 1 bis 3 etikettiert sind, müssen in die Register X, Y bzw. Z eingegeben werden. Wenn
weniger als drei Begrenzer spezifiziert sind, muß das nicht benutzte Stapelregister mit Nullen gefüllt werden. Der
Begrenzer 1 führt als zusätzliche Funktion das Setzen der Programm-Marke 4 durch. Bekannte Rechner hatten sehr begrenzte
Dateneingabemöglichkeiten wegen der Einschränkung durch feste Begrenzer. Indem dem Benutzer die Spezifikation
von Begrenzern erlaubt wird, wird erheblich mehr Flexibilität und Kontrolle über numerische Dateneingabe erreicht.
Da die Erkennung des Begrenzers 1 durch den Rechner die Programm-Marke 4 setzt, kann der Benutzer Datenblocks unbekannter
Länge eingeben, indem einfach die Blocks mit dem Begrenzer voneinander getrennt werden. Dies vermeidet
z.B. Verzögerungen bei der Rechnung die auftreten, wenn auf Daten gewartet wird, die nicht verfügbar sind.
Eine WBYTE-Instruktion, die in den Rechner durchaaufeinanderfolgender
Betätigung der Tasten CALL, 2 und F eingegeben werden, werden benutzt,um das 8-Bit-Binärgquivalent einer im
709808/1025
X-Register gespeicherten Ganzzahl auszugeben. Die Ganzzahl muß TBwischen O und 255 liegen.
Eine RBYTE-Instruktion, die in den Rechner durch aufeinanderfolgender
Betätigung der Tasten CALL, 2 und F eingegeben wird, wird verwendet, um ein 8-Bit-Binärzeichen von einer periphären
I/O-Einheit aus einzugeben und sein Dezimaläquivalent ins X-Register
zu getjen.
Eine UND-Instruktion, die in den Rechner durch aufeinanderfolgender
Betätigung der Tasten CALL, 2 und H eingegeben wird, wird benutzt, um die 8-Bit-Binäräquivalente der in den Registern
X und Y enthaltenen Zahlen zu kombinieren, indem eine logische UND-Operation ausgeführt wird. Das Ergebnis wird in
dezimaler Form umgewandelt und ins X-Register gegeben.
Eine ODER-Instruktion, die in den Rechner durch aufeinanderfolgender
Betätigung der Tasten CALL, 2 und I eingegeben wird, wird benutzt, um die 8-Bit-Binäräquivalente der in den Registern
X und Y enthaltenen Zahlen zu kombinieren, indem eine logische ODER-Operation durchgeführt wird. Das Ergebnis wird
in dezimaler Form umgewandelt und ins X-Register gegeben.
Eine Rotations-Instruktion, die in den Rechner durch aufeinanderfolgender
Betätigung der Tasten CALL, 2 und J eingegeben wird, wird benutzt, um die Bits des 8-Bit-Binäräquivalenz der
im X-Register gespeicherten Zahl um einen Platz nach rechts zu rotieren. Das Ergebnis wird in dezimaler Form ins X-Register
gegeben.
Eine Instruktion DUMP PROGRAMM (Programm abladen), die in
den Rechner durch aufeinanderfolgender Betätigung der Tasten CALL, 2 und M eingegeben wird, gibt im Programmteil des Benutzer-Lese/Schreib-Speichers
gespeicherte Instruktionen aus, beginnend mit dem Programmschritt-Platz,der durch die Zahl
angezeigt wird, welche im X-Register gespeichert ist und
709808/1025
endend, wenn eine.END-Instruktion angetroffen wird.
Eine Instruktion EROGRAMM LADEN, die in den Rechner durch
aufeinanderfolgender Betätigung der Tasten CALL, 2 und L eingegeben wird, wird benutzt, um Programm-Instruktionen
von einer peripheren I/O-Einheit in den Rechnerspeicher
einzugeben, beginnend mit dem Programmschritt-Platz, der durch die im X-Register gespeicherte Zahl angezeigt wird,
und solange, bis eine END-Instruktion angetroffen wird. Wenn die Programmladeinstruktion unter Programmsteuerung
ausgeführt wird, setzt der Rechner automatisch die Ausführung dieses Programms bei der Instruktion fort, die als
nächste der Programmladeinstruktion folgt, nachdem das neue Programm von der I/O-Einheit geladen worden ist.
Eine Listeninstruktion, die in den Rechner durch aufeinanderfolgender
Betätigung der Tasten CALL, 2 und K eingegeben wird, wird benutzt, um eine Programmliste auszugeben,
beginnend an dem Programmschritt-Platz, der durch die jeweilige Stellung des Programmzählers angezeigt wird, und
endend, wenn eine END-Instruktion angetroffen wird. Die Liste wird in vier Spalten zu 50 Schritten für die Benutzung
mit einem seitenbreiten Zeilendrucker aufgeteilt. Die Auflistung hält alle 200 Schritte an, um dem Benutzer zu ermöglichen,
neues Druckerpapier einzulegen. Das Auflisten kann dann durch Betätigung der Taste K fortgesetzt werden.
Die Listeninstruktion kann nur vom Tastenfeld aus ausgeführt werden und ist nicht programmierbar.
Ein REMOTE-Betrieb kann gewählt werden durch Eingabe von -2 in das X-Register gefolgt von einer aufeinanderfolgenden
Betätigung der Tasten CALL, 2 und N. Diese Betriebsart ist nützlich, da sie bewirkt, daß der Rechner bei jeder 1/0-Instruktion
wartet, bis die periphäre I/O-Einheit die entsprechende
Operation beginnt. Normalerweise gibt der Rechner eine I/O-Instruktion aus und wartet dann, bis die periphere
I/O-Einheit die Fertigstellung der Operation signalisiert.
709808/1025
Die Fertigstellung der Operation wird dadurch angezeigt, daß die periphäre I/O-Einheit die Marken-Leitung auf einai niedrigen
Pegel zieht. Das bedeutet, daß die periphäre I/O-Einheit immer auf Instruktionen vom Rechner wartet. Der REMOTE-Betrieb
ist nützlich in einem System, welches einen Rechner für das Sammeln von Daten und einen anderen Rechner für die Ausführungen
von Rechnungen mit diesen Daten benutzt. Die Rechner können über allgemeine I/0-ROMs verbunden werden. Der die
Daten sammelnde Rechner wird dann jedesmal auf REMOTE-Betrieb geschaltet, wenn er fertig für die Übertragung von Daten zum
anderen Rechner ist. Diese "zwei-Prozessor-Anordnung" mit einem Rechner, der die I/O-Operationen zwischen ihnen steuert,
bietet ein extrem schnelles und flexibles System für die Sammlung und Reduzierung von Daten.
709808/1025
Claims (7)
1.) Elektronischer Rechner mit einem Eingabe-Tastenfeld, einem
Speicher für Programme und Daten, einem Prozessor und eine Ausgabe-Einheit, dadurch gekenn?zeichnet ,
daß der Speicher eine bewegliche Grenze zwischen Programmund D^tenspeicherbereich aufweist.
2. Rechner nach Anspruch 1,·dadurch gekennzeichnet,
daß der Speicher eine Vielzahl von Registern aufweist, die als Programm- und als Datenregister verwendbar
sind, unddaß die Grenze zwischen Programm- und Datenspeicherbereich durch Eingabe der gewünschten Anzahl von Datenregistern
wählbar ist.
3. Rechner nach Anspruch 1 und/oder 2, dadurch gekennzeichnet , daß er eine Lese- und Aufnahmeeinheit
für externe Datenträger aufweist, und.daß durch Einschalten des Rechners;.:ein auf einem externen Datenträger gespeichertes
Programm automatisch in den Speicher einlesbar und anschließend ausführbar ist.
4. Rechner nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet", daß er eine Magnetbandkassetteneinheit
für zweispurige Magnetbänder aufweist und daß auf beide Bandspuren Dateien für Programme und/oder Daten
aufnehmbar sind, wobei eine wahlweise Zugriffsmöglichkeit zu beiden Bandspuren besteht.
5. Rechner nach Anspruch 4, dadurch gekennzeichnet,
daß der einen Bandspur positive und der anderen Bändspur negative Dateinummern zugeordnet sind.
709808/1025
- 38? -
6. Röchner nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet , daß er einen Ausgabedrucker
aufweist, dessen Papierbreite ein Vielfaches der zu druckenden Zeilenlänge beträgt und der das Papier in mehreren
nebeneinanderliegenden Spalten bedruckt.
7. Rechner nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet , daß in den Speicher über das
Tastenfeld einzelne Instruktionen durch aufeinanderfolgender Betätigung mehrerer Tasten eingebbar sind und daß
die den einzelnen Tasten zugeordneten internen Instruktionscodes intern zu einem einzigen Instruktionscode zusammengefaßt
werden, der in ein einzelnes Speicherregister paßtl
3. Rechner nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet , daß er einen X-Y-Schreiber
aufweist, dessen Schreibstiftposition vom Tastenfeld aus steuerbar ist und daß die Koordinaten der jeweils eingestellten
Schreibstiftposition vom Rechner anzeigbar bzw. auidruckbar sind.
709808/1025
Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/597,957 US4089059A (en) | 1975-07-21 | 1975-07-21 | Programmable calculator employing a read-write memory having a movable boundary between program and data storage sections thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2633151A1 true DE2633151A1 (de) | 1977-02-24 |
Family
ID=24393657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19762633151 Withdrawn DE2633151A1 (de) | 1975-07-21 | 1976-07-23 | Programmierbarer elektronischer rechner |
Country Status (6)
Country | Link |
---|---|
US (1) | US4089059A (de) |
JP (1) | JPS5213745A (de) |
CA (1) | CA1094690A (de) |
DE (1) | DE2633151A1 (de) |
GB (1) | GB1573013A (de) |
HK (1) | HK34483A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2842654A1 (de) * | 1977-09-30 | 1979-04-05 | Canon Kk | Elektronisches geraet mit anzeigeeinrichtung und druckwerk |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4500956A (en) * | 1978-07-21 | 1985-02-19 | Tandy Corporation | Memory addressing system |
NL7906416A (nl) * | 1979-08-27 | 1981-03-03 | Philips Nv | Rekenmachinesysteem, waarbij het programmageheugen geschikt is om doorlopen te worden waarbij niet tot een instruktie behorende gegevens apart gedetekteerd worden. |
JPS57169879A (en) * | 1981-04-13 | 1982-10-19 | Canon Inc | Electronic equipment with printer |
EP0546977A3 (en) * | 1991-12-13 | 1994-10-19 | Ibm | Method and apparatus for solving numerical problems that use a plurality of processing elements operating in parallel |
US6189137B1 (en) * | 1997-11-21 | 2001-02-13 | International Business Machines Corporation | Data processing system and method for simulating “include” files in javascript |
US7028071B1 (en) * | 2000-01-28 | 2006-04-11 | Bycast Inc. | Content distribution system for generating content streams to suit different users and facilitating e-commerce transactions using broadcast content metadata |
US8533439B2 (en) * | 2005-11-07 | 2013-09-10 | Atmel Corporation | Elastic shared RAM array including contiguous instruction and data portions distinct from each other |
US7913103B2 (en) * | 2007-08-31 | 2011-03-22 | Globalfoundries Inc. | Method and apparatus for clock cycle stealing |
KR101275698B1 (ko) * | 2008-11-28 | 2013-06-17 | 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. | 데이터 처리 방법 및 장치 |
JP1577390S (de) * | 2016-09-12 | 2017-05-29 | ||
JP1577389S (de) * | 2016-09-12 | 2017-05-29 | ||
CN116071759B (zh) * | 2023-03-06 | 2023-07-18 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种融合gpt2预训练大模型的光学字符识别方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3461434A (en) * | 1967-10-02 | 1969-08-12 | Burroughs Corp | Stack mechanism having multiple display registers |
US3548384A (en) * | 1967-10-02 | 1970-12-15 | Burroughs Corp | Procedure entry for a data processor employing a stack |
US3588841A (en) * | 1969-03-27 | 1971-06-28 | Singer Co | Programmable electronic calculator |
US3596257A (en) * | 1969-09-17 | 1971-07-27 | Burroughs Corp | Method and apparatus for allocating small memory spaces to a computer program |
US3878513A (en) * | 1972-02-08 | 1975-04-15 | Burroughs Corp | Data processing method and apparatus using occupancy indications to reserve storage space for a stack |
JPS5031844A (de) * | 1973-07-20 | 1975-03-28 | ||
US3902054A (en) * | 1973-09-13 | 1975-08-26 | Texas Instruments Inc | Calculator system having keyboard with double entry protection and serialized encoding |
US3892958A (en) * | 1974-01-11 | 1975-07-01 | Hewlett Packard Co | Inverse/complementary function prefix key |
JPS5062437U (de) * | 1974-10-09 | 1975-06-07 | ||
JPS60191657A (ja) * | 1984-03-09 | 1985-09-30 | Toyota Motor Corp | 鋳造用溶湯保持炉 |
-
1975
- 1975-07-21 US US05/597,957 patent/US4089059A/en not_active Expired - Lifetime
-
1976
- 1976-07-12 GB GB28914/76A patent/GB1573013A/en not_active Expired
- 1976-07-20 CA CA257,596A patent/CA1094690A/en not_active Expired
- 1976-07-21 JP JP51087727A patent/JPS5213745A/ja active Granted
- 1976-07-23 DE DE19762633151 patent/DE2633151A1/de not_active Withdrawn
-
1983
- 1983-09-08 HK HK344/83A patent/HK34483A/xx unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2842654A1 (de) * | 1977-09-30 | 1979-04-05 | Canon Kk | Elektronisches geraet mit anzeigeeinrichtung und druckwerk |
Also Published As
Publication number | Publication date |
---|---|
JPS6141432B2 (de) | 1986-09-16 |
US4089059A (en) | 1978-05-09 |
GB1573013A (en) | 1980-08-13 |
HK34483A (en) | 1983-09-16 |
CA1094690A (en) | 1981-01-27 |
JPS5213745A (en) | 1977-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2633151A1 (de) | Programmierbarer elektronischer rechner | |
DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
EP0346801B1 (de) | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem | |
EP0108969B1 (de) | DMA-Steuereinrichtung zur Übertragung von Daten zwischen einem Datensender und einem Datenempfänger | |
DE2655241A1 (de) | Programmierbarer rechner | |
DE2449547A1 (de) | Computer- und datenverarbeitungsanlage | |
DE2228742A1 (de) | Programmierbare Rechenmaschine | |
DE1774870C3 (de) | Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage | |
DE2744251A1 (de) | Mehrprogramm/mehrprozess-computersystem | |
DE1190704B (de) | Rechenanlage | |
DE2365569A1 (de) | Elektronischer rechner | |
EP0632668B1 (de) | Verfahren zum Aktualisieren eines Systemprogramms in einer Vermittlungseinrichtung | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
EP0171572B1 (de) | Verfahren zur Herstellung eines Filmkartenduplikats sowie Filmkartenkamera zur Durchführung des Verfahrens | |
DE2507405C2 (de) | Anordnung zum Synchronisieren gleichzeitig auszuführender Tasks für Peripheriegeräte einer Datenverarbeitungsanlage | |
DE1181948B (de) | Elektronische Datenverarbeitungsmaschine | |
Pocklington | AMAP-A General Optical Mark Reader Form Evaluation Program | |
DE1188839B (de) | Elektrische Rechenanlage | |
ATE30976T1 (de) | Verfahren zur sicherung einer von einem lieferant in einem tragbaren magnetischen traeger gespeicherten software. | |
DE1934441C3 (de) | Befehlswerkgesteuertes Rechenwerk für einen Digitalrechner | |
DE1774181C3 (de) | Datenspeichereinnchtung | |
DE1296430B (de) | Steuerschaltung fuer den Zugriff eines Rechenwerkes und mindestens einer peripheren Einheit zum Hauptspeicher eines programm-gesteuerten Ziffernrechners | |
EP0651313B1 (de) | Verfahren zur Datensicherung und Datenrücksicherung | |
DE1549457C3 (de) | Datenverarbeitungsanlage | |
DE2519395C3 (de) | Anordnung zur Steuerung der Befehlsfolge in Datenverarbeitungseinrichtungen mit Speicherprogrammierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8128 | New person/name/address of the agent |
Representative=s name: SCHULTE, K., DIPL.-ING., PAT.-ASS., 7030 BOEBLINGE |
|
8141 | Disposal/no request for examination |