SIMATIC S5 Kommunikationsprozessor CP 521 BASIC Handbuch Bestell>Nr. 6ES5 998>0UW11 EWA 4NEB 812 6071>01 STEP “ und SIMATIC “ sind eingetragene Warenzeichen der Siemens AG und gesetzlich geschÂtzt. Copyright ” Siemens AG 1989 Technische 'nderungen vorbehalten. Vervielfßltigung dieser Unterlage sowie Verwertung ihres Inhalts nicht gestattet, soweit nicht ausdrÂcklich zuge> standen. Zuwiderhandlungen verpflichten zu Schaden> ersatz. Alle Rechte vorbehalten, insbesondere fÂr den Fall der Patenterteilung oder GM>Eintragung. EWA 4NEB 812 6071>01 SystemÂbersicht Technische Beschreibung Aufbaurichtlinien Arbeitsweise und Adressierung BASIC>Interpreter Kommunikations>Schnittstellen CPU>Auftrßge und St‘rverhalten Programme Anhang Stichwortverzeichnis EWA 4NEB 812 6071>01 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a Vorwort EinfÂhrung 1 2 3 4 5 6 7 8 A iv EWA 4NEB 812 6071>01 CP 521 BASIC Vorwort Vorwort Die Baugruppe CP 521 BASIC ist eine leistungsfßhige Peripheriebaugruppe, die Bestandteil des Automatisierungsgerßts AG S5>100U ist. Um die Baugruppe optimal einsetzen zu k‘nnen, ben‘tigen Sie als Anwender ausfÂhrliche Informa> tionen. Die Leistungsfßhigkeit des AG S5>100U wird stßndig gesteigert. Das Gerßte> handbuch des AG S5>100U ist deshalb schon sehr umfangreich. Aus diesem Grund erhßlt die Baugruppe CP 521 BASIC ein eigenes Handbuch, in dem nur die Fakten und Beispiele aufgefÂhrt sind, die fÂr diese Baugruppe wichtig sind. Gleichzeitig haben wir versucht, den erh‘hten Anforderungen an technische Dokumentation gerecht zu werden. Das bedeutet im einzelnen: f f f f Vereinheitlichung des Wortschatzes und der Schreibweisen Umfangreiche Gliederung Visualisierung einzelner Sachverhalte Kundengerechte Gestaltung der Inhalte Damit m‘chten wir erreichen, da˚ ungeÂbte ebenso wie routinierte SIMATIC S5> Anwender alle Informationen erhalten, die sie fÂr ihre Arbeit mit dem CP!521!BASIC ben‘tigen. Dennoch k‘nnen in einem Handbuch nicht alle Probleme erlßutert werden, die bei den vielfßltigen Einsatzm‘glichkeiten auftreten k‘nnen. Wenden Sie sich in diesen Fßllen bitte an Ihre zustßndige Geschßftsstelle, die Sie jederzeit um Rat fragen k‘nnen. EWA 4NEB 812 6071>01 v vi EWA 4NEB 812 6071>01 CP 521 BASIC EinfÂhrung EinfÂhrung Bevor Sie weiterblßttern, sollten Sie die EinfÂhrung aufmerksam lesen. Sie erleichtern sich dadurch die Arbeit mit diesem Handbuch und sparen Zeit. Inhaltsbeschreibung Dieses Handbuch stellt eine umfassende Beschreibung des CP 521 BASIC dar. Sie lß˚t sich in einzelne thematische Bl‘cke gliedern. f Beschreibung > In der ∫SystemÂbersicht∫ erfahren Sie, welche Aufgaben die Baugruppe Âbernehmen kann und wie sie im System AG S5>100U eingesetzt wird. > Die ∫Technische Beschreibung∫ liefert generelle Informationen zur Arbeitsweise der Baugruppe, enthßlt die technischen Daten, Angaben zu den seriellen Schnittstellen und Peripheriegerßten sowie eine Zubeh‘rliste. f Montage und Betrieb > In den ∫Aufbaurichtlinien∫ finden Sie sßmtliche Informationen, die Sie brauchen, um die Baugruppe zu montieren und mit einem Drucker oder einem anderen Peripheriegerßt zu verbinden (Pin>Belegungen und An> schlu˚plßne). f Arbeitsweise und Adressierung > Hier beschreiben wir ganz allgemein, wie der Datentransfer zwischen CPU, CP 521 BASIC und Peripherie koordiniert wird, sowie > das Anlaufverhalten und die Adressierung der Baugruppe. f Funktionsbeschreibung > Das Kapitel ∫BASIC>Interpreter∫ enthßlt alle Informationen, einschlie˚lich die Beschreibung aller BASIC>Befehle, die Sie fÂr die Programmerstellung ben‘tigen. > In ∫Kommunikations>Schnittstellen∫ werden detailliert der Datentransfer zwischen der CPU und dem CP 521 BASIC und einem angeschlossenen Peripheriegerßt beschrieben. Dieses Kapitel ist fÂr den Anwender vorwiegend interessant fÂr die selbstßndige Programmierung von FBs fÂr den Datenaustausch oder im Fall von Fehlersuche. GWA 4NEB 812 6071>01 vii EinfÂhrung CP 521 BASIC f St‘rverhalten Im Kapitel ∫CPU>Auftrßge und St‘rverhalten∫ sind alle in der Betriebsart BASIC zulßssigen CPU>Auftrßge zusammengestellt. Hier erfahren Sie alle Fehlermeldungen des BASIC>Interpreters, sowie Hinweise zur Fehler> behandlung. f Programme Das Kapitel ∫Programme∫ liefert Ihnen ablauffßhige Programme fÂr die CPU und den CP 521 BASIC fÂr eine fehlerfreie AusfÂhrung von Sende> und Empfangsauftrßgen. f Anhang A: Im Anhang haben wir alle BASIC>Befehle und die Zusatzbefehle fÂr die Kommunikation mit der CPU und der Peripherie in tabellarischer Form zusammengefa˚t. Es soll dem Anwender den Umgang mit dem CP 521 BASIC erleichtern. Vereinbarungen Um die ebersichtlichkeit des Handbuches zu verbessern wurde die Gliederung in Menue>Form durchgefÂhrt, das bedeutet: f f f f viii Die einzelnen Kapitel sind mit gedrucktem Register gekennzeichnet. Am Anfang des Buches finden Sie ein ebersichtsblatt, in dem die eberschrif> ten der einzelnen Kapitel aufgefÂhrt sind. Vor jedem Kapitel steht dann die Feingliederung. Die einzelnen Kapitel sind bis zur dritten Stufe gegliedert. Zur weiteren Unterteilung werden eberschriften fett gedruckt. Seiten, Bilder und Tabellen werden in jedem Kapitel getrennt durch> numeriert. Auf der RÂckseite der Feingliederung finden Sie je eine Liste der Bilder und Tabellen, die in diesem Kapitel enthalten sind. EWA 4NEB 812 6071>01 CP 521 BASIC EinfÂhrung Bei der Gestaltung des Buches wurden besondere Ausdrucksweisen verwendet, mit denen wir Sie an dieser Stelle vertraut machen m‘chten. f f f f a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a f f FÂr bestimmte Begriffe gibt es charakteristische AbkÂrzungen. Beispiel: Programmiergerßt (PG) Fu˚noten werden mit kleinen hochgestellten Ziffern (z. B. ∫1∫), oder hoch> gestellten Sternchen ∫*∫ gekennzeichnet. Die zugeh‘rigen Erlßuterungen finden Sie am unteren Blattrand oder unterhalb einer Tabelle. Querverweise werden folgenderma˚en dargestellt: ∫(Æ Kap. 7.2.1)∫ verweist auf den Abschnitt 7.2.1. Verweise auf einzelne Seiten werden nicht verwendet. Die Gr‘˚enangaben in Zeichnungen und Ma˚bildern werden in ∫mm∫ aus> gedrÂckt. Wertebereiche werden folgenderma˚en dargestellt: 17 ... 21 = 17 bis 21. Besonders wichtige Informationen werden durch einen grauen Hinweis>Balken hervorgehoben. f f Sßmtliche Programmbeispiele wurden als Anweisungsliste erstellt und beziehen sich immer auf den gleichen Steckplatz. Alle Angaben zu den Programmiergerßten beziehen sich auf die deutschen Versionen des PG 635, PG 685, PG 730 und PG 750. Eine ausfÂhrliche Beschrei> bung der Programmierung mit diesen Gerßten finden Sie in den zugeh‘rigen Bedienungsanleitungen. GerßtehandbÂcher k‘nnen immer nur den momentanen Ausgabestand des Gerß> tes beschreiben. Werden im Laufe der Zeit 'nderungen oder Ergßnzungen notwendig, so erhßlt das Handbuch einen Nachtrag, der bei der nßchsten eber> arbeitung des Buches eingearbeitet wird. Die jeweilige Ausgabe des Handbuches wird auf dem Deckblatt angezeigt; hier Ausgabe ∫1∫. Bei jeder eberarbeitung wird die Ausgabe um ∫1∫ erh‘ht. Am Ende des Buches sind Korrekturblßtter eingeheftet. Tragen Sie dort bitte Ihre ∫Verbesserungs> und Korrekturvorschlßge∫ ein und senden Sie das Blatt an uns zurÂck. Sie helfen uns durch Ihre Stellungnahme, die nßchste Auflage zu verbes> sern. EWA 4NEB 812 6071>01 ix EinfÂhrung CP 521 BASIC Kursangebot Dem Anwender von SIMATIC S5 bietet SIEMENS umfangreiche Schulungsm‘g> lichkeiten. Nßhere Informationen erhalten Sie bei Ihrer Siemens>Geschßftsstelle. Literaturverzeichnis Dieses Handbuch stellt eine umfassende Beschreibung der Baugruppe CP!521!BASIC dar. Themenkreise, die nicht CP 521 BASIC > spezifisch sind, werden nur kurz behandelt. AusfÂhrlichere Informationen hierzu finden Sie in folgenden Werken: f Speicherprogrammierbare Steuerungen SPS Band 1: VerknÂpfungs> und Ablaufsteuerungen; von der Steuerungsaufgabe zum Steuerungsprogramm. GÂnter Wellenreuther, Dieter Zastrow Braunschweig 1987 Inhalt: > Funktionsweise einer Speicherprogrammierbaren Steuerung > Theorie der Steuerungstechnik unter Verwendung der Programmierspra> che STEP 5 fÂr die SIMATIC S5>Automatisierungsgerßte. Bestell>Nr.: ISBN 3>528>04464>0 f Automatisieren mit SIMATIC S5>115U Speicherprogrammierbare Steuerungen Hans Berger 2., Âberarb. Aufl. >Berlin; MÂnchen: Siemens>AG, 1989 Inhalt: > Programmiersprache STEP 5 > Programmbearbeitung > Integrierte Bausteine > Schnittstellen zur Peripherie Bestell>Nr.: ISBN 3>8009>1526>X x EWA 4NEB 812 6071>01 CP 521 BASIC f EinfÂhrung Programmierfibel fÂr SIMATIC S5>100U Praktische ebungen mit dem Programmiergerßt PG 615 Siemens AG, Berlin und MÂnchen, 1988 Inhalt: > Gerßteaufbau und Montage des AG S5>100U > EinfÂhrung in die Programmierung mit dem PG 615 Bestell>Nr.: ISBN 3>8009>1500>6 EWA 4NEB 812 6071>01 xi xii EWA 4NEB 812 6071>01 a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 1 SystemÂbersicht EWA 4NEB 812 6071>01 CP 521 BASIC 1 SystemÂbersicht SystemÂbersicht Der CP 521 BASIC ist eine leistungsfßhige aktive Peripheriebaugruppe, die im System AG S5>100U einsetzbar ist (nicht mit CPU 100, 6ES5 100>8MA01). Die Baugruppe mit eigenem Zentralprozessor wird mit einem speziellen COM> Softwarepaket angeboten, das zur BASIC>Programmerstellung und >archivierung (FLOPPY, EPROM) erforderlich ist. Durch die Implementierung eines BASIC>Interpreters k‘nnen Sie BASIC> Programme erstellen und ablaufen lassen, die mit der CPU und einem angeschlossenen Peripheriegerßt Daten austauschen k‘nnen. Die Program> mierung des BASIC>Interpreters erfolgt Âber die COM>Software mit einem Pro> grammiergerßt (PG) oder an einem Terminal. Die Programme werden im batteriegepufferten baugruppeneigenen RAM oder in einem steckbaren Speichermodul abgelegt. Programmiergerßt oder Terminal werden Âber eine serielle Schnittstelle mit dem CP 521 BASIC verbunden. Es stehen eine TTY>Stromschnittstelle oder eine V.24> Spannungsschnittstelle fÂr ein Programmiergerßt oder Terminal zur VerfÂgung. Zum Ausdrucken von Listings oder Meldungen schlie˚en Sie einen Drucker an die unidirektionale V.24>Schnittstelle der Baugruppe an. Alle Signale fÂr TTY> und V.24>Schnittstelle liegen an einem gemeinsamen Stecker auf. Die Parametrierung (Anpassung) der Peripherieschnittstelle BASIC>Befehl oder im BASIC Programm verßndert werden. EWA 4NEB 812 6071>01 kann per 1>1 CP 521 BASIC Programme EWA 4NEB 812 6040>01a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 2 Technische Beschreibung 2.1 Technische Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 > 1 2.2 Speichermodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 > 2 2.3 Serielle Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 > 3 2.4 Integrierte Echtzeituhr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 > 3 2.5 Pufferbatterie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 > 4 2.6 LED>Anzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 > 4 2.7 Zubeh‘rliste und Bestellnummern . . . . . . . . . . . . . . . . . . . 2 > 5 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Tabellen 2.1 2.2 L‘sch> und Speicherm‘glichkeiten der Steckmodule . . . ebersicht der zulßssigen Speichersteckmodule . . . . . . . . 2 > 2 > 2 2 EWA 4NEB 812 6071>01 CP 521 BASIC Technische Beschreibung 2 Technische Beschreibung 2.1 Technische Daten Klimatische, mechanische und elektromagnetische Bedingungen siehe Gerßte> handbuch des verwendeten Automatisierungsgerßtes. Potentialtrennung TTY>Signale sind potentialgetrennt Speichermodul EPROM/EEPROM/RAM Bidirektionale Schnittstelle V. 24/TTY passiv (aktiv) ((EWA 0172)) ebertragungsart: asynchron 10>Bit>Zeichenrahmen/ 11>Bit>Zeichenrahmen ebertragungsgeschw. 110...9600 Bd Unidirektionale Schnittstelle V.24 zulßssige Kabellßnge > TTY ((EWA 0173)) Prinzipschaltbild EWA 4NEB 812 6071>01 > V.24 Spannungsabfall Empfßngertyp. 1,5 V Sender typ. 0,9 V 15 m Quarzfrequenz 14,7456 MHz Batterieausfallanzeige (gelbe LED) ja Pufferbatterie Lithium ΩAA 3,6 V/850 mAh Pufferzeit mind. 1 Jahr Schutzart IP 20 zulßssige Umgebungs> temperatur > waagrechter Einbau > senkrechter Einbau 0...60∞C 0...40∞C relative Feuchte 15%...95% Stromaufnahme aus +9 V (CPU) typ. 180 mA Verlustleistung der Baugruppe typ. 1.6 W Gewicht ca. 500 g 2>1 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaa a a a a a a aaaaa a a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a a aaaaa a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a Technische Beschreibung 2.2 2>2 CP 521 BASIC Speichermodule Wollen Sie BASIC>Programme oder Parametrierungsdaten abspeichern, ben‘> tigen Sie ein Speichersteckmodul. Sie k‘nnen drei Arten von Steckmodulen verwenden: Tabelle 2.1 L‘sch> und Speicherm‘glichkeiten der Steckmodule Modul>Typ L‘schen mit Programme speichern mit EPROM UV>L‘schgerßt PG EEPROM PG/CP 521 BASIC PG/CP 521 BASIC RAM PG/CP 521 BASIC CP 521 BASIC Tabelle 2.2 ebersicht der zulßssigen Speichersteckmodule Modul>Typ Modulbezeichnung Kapazitßt EPROM 6ES5 375 > 0LA15 bzw. 11 1 x 8KByte EPROM 6ES5 375 > 0LA21 2 x 8KByte EPROM 6ES5 375 > 0LA41 2 x 16KByte EEPROM 6ES5 375 > 0LC11 1 x 2KByte EEPROM 6ES5 375 > 0LC31 1 x 8KByte EEPROM 6ES5 375 > 0LC41 2 x 8KByte RAM 6ES5 375 > 0LD11 1 x 8KByte RAM 6ES5 375 > 0LD21 2 x 8KByte RAM 6ES5 375 > 0LD31 2 x 16KByte HINWEIS: Wßhrend des RUN>Betriebs der CPU darf das Speichermodul nicht gezogen werden. EWA 4NEB 812 6071>01 CP 521 BASIC 2.3 Technische Beschreibung Serielle Schnittstellen Der CP521 BASIC stellt eine bidirektionale V.24> bzw. eine TTY>Schnittstelle (parametrierbar) und eine unidirektionale V.24>Schnittstelle (z. B. zum Anschlu˚ eines Druckers) zur VerfÂgung. Die!TTY>Schnittstelle ist fÂr passiven Betrieb ausgelegt. Falls Âber den Front>Stecker +24 V eingespeist werden, kann die TTY> Schnittstelle auch aktiv betrieben werden. Bei aktiver TTY>Schnittstelle ist keine Potentialtrennung vorhanden. Es sind Koppellßngen bis 1000 m!m‘glich. Sie k‘nnen folgende Peripheriegerßte an die seriellen Schnittstellen des CP!521!BASIC anschlie˚en: PG Tastatur Terminal Drucker mit V.24>Schnittstelle Drucker mit aktiver TTY>Schnittstelle a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a f f f f f HINWEIS: aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Bei Verwendung der TTY>Schnittstelle ist keine gleichzeitige Nutzung der unidirektionalen V.24>Schnittstelle m‘glich. 2.4 Integrierte Echtzeituhr Die Baugruppe besitzt eine integrierte Uhr, die bei spannungsloser Baugruppe von einer Batterie gepuffert werden kann. Das Stellen und Lesen der Echtzeituhr erfolgt entweder mit einem Programmier> gerßt Âber die CPU oder vom BASIC>Programm aus. Die Uhr unterstÂtzt folgende Funktionen: f Sekunden f Minuten f Stunden (12/24>Modus) f Tag f Wochentag (wird aus Datum errechnet) f Monat f Jahr (Schaltjahr wird berÂcksichtigt) EWA 4NEB 812 6071>01 2>3 Technische Beschreibung 2.5 CP 521 BASIC Pufferbatterie a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Die Datensicherung der Echtzeituhr und des RAM bei ausgeschalteter Steuerung erfolgt Âber die baugruppeneigene Pufferbatterie. Bei einem Netzspannungsausfall oder beim Ausschalten des AGs bleiben die Uhrendaten nur dann erhalten, wenn eine Pufferbatterie in der Baugruppe eingelegt ist. Einlegen und Wechseln der Batterie sollte bei eingeschaltetem AG durchgefÂhrt werden. Andernfalls ist nach dem Einschalten die Eingabe neuer Uhrendaten erforderlich. Die Lebensdauer einer neuen Lithiumbatterie betrßgt bei stßndiger Pufferung mindestens ein Jahr. ACHTUNG a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Lithiumbatterien k‘nnen nicht geladen werden. > Explosionsgefahr! > Verbrauchte Batterien geh‘ren in den SondermÂll. 2.6 LED>Anzeige Die Baugruppe ist mit folgenden Leuchtdioden ausgestattet: f eine grÂne LED fÂr Senden (TxD) f eine grÂne LED fÂr Empfangen (RxD) f eine grÂne LED zur Anzeige der Sendebereitschaft (RTS) f eine gelbe LED zur Anzeige eines Batterieausfalls (BATTERY OFF/LOW) 2>4 EWA 4NEB 812 6071>01 CP 521 BASIC 2.7 Technische Beschreibung Zubeh‘rliste und Bestellnummern Speichermodule Speichermodul (EPROM) 1 x 8KByte Speichermodul (EPROM) 2 x 8KByte Speichermodul (EPROM) 2 x 16KByte Speichermodul (EEPROM) 1 x 2KByte Speichermodul (EEPROM) 1 x 8KByte Speichermodul (EEPROM) 2 x 8KByte Speichermodul (RAM) 1 x 8KByte Speichermodul (RAM) 2 x 8KByte Speichermodul (RAM) 2 x 16KByte 6ES5 375>0LA15 bzw.11 6ES5 375>0LA21 6ES5 375>0LA41 6ES5 375>0LC11 6ES5 375>0LC31 6ES5 375>0LC41 6ES5 375>0LD11 6ES5 375>0LD21 6ES5 375>0LD31 siehe Katalog Automatisierungsgerßt S5>100U ST 52.1 Drucker Programmiergerßte siehe Katalog Programmiergerßte ST 59 Pufferbatterie Pufferbatterie, Lithium Ω AA; 3,6 V/850 mAh EWA 4NEB 812 6071>01 6ES5 980>0MA11 2>5 CP 521 BASIC Programme EWA 4NEB 812 6040>01a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 3 Aufbaurichtlinien 3.1 Montage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 > 1 3.2 Ma˚bild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 > 2 3.3 3.3.1 3.3.2 Kabelanschlu˚bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . Schirmbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LeitungsfÂhrung des CP>Kabels . . . . . . . . . . . . . . . . . . . . . . 3 > 3 > 3 > 3 3 3 3.4 Anschlu˚ fÂr Peripheriegerßte . . . . . . . . . . . . . . . . . . . . . . . 3 > 5 3.5 Allgemeine Aufbaubeispiele . . . . . . . . . . . . . . . . . . . . . . . . 3 > 6 EWA 4NEB 812 6071>01 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Bilder 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.1 Codierelement einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ma˚bild des CP 521 BASIC . . . . . . . . . . . . . . . . . . . . . . . . . . . Anschlu˚plan CP 521 BASIC > Terminal (V.24>Schnitt> stelle mit HW>Handshake) . . . . . . . . . . . . . . . . . . . . . . . . . . . Anschlu˚plan CP 521 BASIC > CP 521 BASIC, CP 521 BASIC > Drucker (V.24>Schnittstelle mit HW>Handshake) . . . . . . . Anschlu˚plan CP 521 BASIC > PG 750/PG 730, CP 521 BASIC > Drucker (V.24>Schnittstelle ohne HW>Handshake) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anschlu˚plan CP 521 BASIC (TTY aktiv) > PG 685 (TTY passiv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anschlu˚plan CP 521 BASIC (TTY passiv) > PG 685 (TTY aktiv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anschlu˚plan CP 521 BASIC (TTY passiv) > PG 750/PG 730 (TTY aktiv) . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin>Belegung 25>polige D>Sub>Buchse . . . . . . . . . . . . . . . . 3 > 3 > 1 2 3 > 6 3 > 7 3 > 8 3 > 9 3 > 10 3 > 11 Tabelle 3 > 5 EWA 4NEB 812 6071>01 CP 521 BASIC Aufbaurichtlinien 3 Aufbaurichtlinien 3.1 Montage Bei der Montage und Demontage des CP 521 BASIC mÂssen Sie folgendes beachten: f Die Baugruppe darf nur im spannungslosen Zustand gesteckt oder gezogen werden. f Das Speichermodul darf nur im spannungslosen Zustand gesteckt oder gezogen werden. f Die Verbindung zum Peripheriegerßt (D>Sub>Buchsenleiste) darf nur oder gezogen werden, wenn der Datentransfer zwischen CP 521 BASIC und Peripheriegerßt beendet ist. f Die Baugruppe darf nur auf den Steckplßtzen 0 bis 7 auf einem Busmodul auf> geschnappt werden (Steckplatz 7 nicht erlaubt bei CPU 102, 6ES5!102>8MA01 und CPU 103, 6ES5 103>8MA01). f Bevor Sie den CP 521 BASIC montieren, mÂssen Sie am Codierelement des Busmoduls die Nummer 6 einstellen. ((EWA 0171)) Bild 3.1 Codierelement einstellen EWA 4NEB 812 6071>01 3>1 gesteckt Aufbaurichtlinien CP 521 BASIC Baugruppe befestigen: 1. Hßngen Sie die Baugruppe oben am Busmodul ein und schwenken Sie sie zum Busmodul hin. 2. DrÂcken Sie die Baugruppe fest an und verschrauben Sie sie mit dem Busmodul. 3.2 Ma˚bild ((EWA 0174)) Bild 3.2 Ma˚bild des CP 521 BASIC 3>2 EWA 4NEB 812 6071>01 CP 521 BASIC 3.3 Aufbaurichtlinien Kabelanschlu˚bedingungen Die in den folgenden Abschnitten beschriebenen Anschlu˚bedingungen garan> tieren die gr‘˚tm‘gliche St‘rsicherheit im CP 521 BASIC. 3.3.1 Schirmbehandlung FÂr die Schirmbehandlung gelten folgende Richtlinien: f Die Kabelschirme sind im Schrank in der Nßhe der KabeleinfÂhrung auf eine Schirmschiene aufzulegen. Geflechtsschirme sind m‘glichst gro˚flßchig an der Schirmschiene zu befestigen. f Bei Kabeln mit Folienschirm ist der mitgefÂhrte Schirmbeidraht auf m‘glichst kurzem Weg (ca. 3 cm) mit der Schirmschiene zu kontaktieren. Die Schirmschiene mu˚ gut leitend mit dem Tragholm, dem Schrankgehßuse sowie dem zentralen Erdungspunkt im Schrank verbunden sein. 3.3.2 LeitungsfÂhrung des CP>Kabels Je nach der Lage der Leitung mÂssen Sie folgendes beachten: LeitungsfÂhrung im Schrank f CP>Kabel dÂrfen im Schrank gemeinsam in einem Kabelkanal mit ungeschirm> ten Dgital> und Analog>Signalleitungen e 60 V verlegt werden. f Die Verlegung von Signal> und Versorgungsleitungen > 60 V und e 230 V in einem Kanal mit dem CP>Kabel ist nur m‘glich, wenn diese Versorgungslei> tungen abgeschirmt sind. f Bei ungeschirmten Signal> und Versorgungsleitungen bis 230 V mÂssen die CP>Kabel in einem getrennten Kabelkanal mit dem Mindestabstand von 10!cm verlegt werden. f Bei ungeschirmten Signal> und Versorgungsleitungen bis 1 kV mÂssen die CP> Kabel in einem getrennten Kabelkanal mit dem Mindestabstand von 10 cm verlegt werden. Zusßtzlich ist mindestens ein Kanal durch die Verwendung metallischer Kabelkanßle oder zusßtzlicher Schirmbleche nochmals abzu> schirmen. EWA 4NEB 812 6071>01 3>3 Aufbaurichtlinien CP 521 BASIC LeitungsfÂhrung au˚erhalb des Schrankes f CP>Kabel werden auf gleichen Kabelbahnen (Kabeltrassen, Kabelwannen, Kabelrinnen) verlegt wie ungeschirmte Digital> und Analog>Signalleitungen e 60 V, sowie geschirmte Signal> und Versorgungsleitungen bis 230 V. f Bei gemeinsamer Verlegung mit ungeschirmten Signal> und Versorgungslei> tungen bis 230 V ist ein Mindestabstand von 10 cm einzuhalten. f Leitungen mit Spannungen >230 V mÂssen in getrennten Kanßlen (Trassen , Rohren) verlegt werden. f Die Verlegung der Leitungen zwischen entfernten Schrßnken innerhalb von Gebßuden sollte auf metallischen Kabeltrßgern erfolgen. Die Sto˚stellen der Kabeltrßger sind galvanisch zu verbinden und sollten im Abstand von 20...30!cm mit der Ortserde verbunden werden. LeitungsfÂhrung zwischen Gebßuden Aus Blitzschutz> und ErdungsgrÂnden sind bei der Verlegung der Kabel au˚er> halb von Gebßuden folgende Ma˚nahmen vorzusehen. f Potentialausgleich > Verlegung einer Potentialausgleichsleitung mit einer Impedanz e 10% der Schirmimpedanz des CP>Kabels f Blitzschutzma˚nahmen > Verlegung der CP>Kabel in beidseitig geerdeten Metallrohren oder > Verlegung der Kabel in betonierten Kabelkanßlen mit durchgehend verbun> dener Bewehrung oder > Verwendung eines Blitzschutzkabels DarÂber hinaus sind die Signalleitungen mit Schutzelementen (Varistoren SIOV oder edelgasgefÂllte eberspannungsableiter esAg) gegen eberspannung zu beschalten. Diese sind unmittelbar am Kabeleintritt in das Gebßude vorzusehen. 3>4 EWA 4NEB 812 6071>01 CP 521 BASIC 3.4 Aufbaurichtlinien Anschlu˚ fÂr Peripheriegerßte Die Baugruppe ist mit einer bidirektionalen Strom> oder Spannungsschnittstelle (TTY/V.24) und einer unidirektionalen Spannungsschnittstelle (V.24) ausgestattet. Durch Parametrierung kann die bidirektionale Schnittstelle zwischen TTY> und V.24>Schnittstelle umgeschaltet werden. Die Leitungen aller Schnittstellen sind auf eine 25polige D>Sub>Buchse gefÂhrt. Die V.24> Schnittstellen entsprechen signalmß˚ig der RS 232 C Norm. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Tabelle 3.1 Pin>Belegung 25>polige D>Sub>Buchse Ansicht 1 2 3 4 5 6 7 8 9 10 11 12 13 * 14 15 16 17 18 19 20 21 22 23 24 25 Pin > Nr. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Signal>Name > TxD RxD RTS CTS DSR GND > RxD+ RxD> > > P24 LPO BUSY I20B TxD+ I20A DTR TxD> RI/T > > PM1 Bedeutung Sendedaten Empfangsdaten Sendeteil einschalten Sendebereitschaft Betriebsbereitschaft Signalmasse (V.24) TTY>Empfangsleitung+ TTY>Empfangsleitung > +24 V fÂr aktive TTY Line Printer Out BUSY>Signal Stromquelle TTY * TTY>Sendeleitung+ Stromquelle TTY* Endgerßt betriebsbereit TTY>Sendeleitung > Kommender Ruf/Takt Testschleife eingeschaltet falls an Pin 13 eine Spannung von +24 V eingespeist wird EWA 4NEB 812 6071>01 3>5 Aufbaurichtlinien 3.5 CP 521 BASIC Allgemeine Aufbaubeispiele In diesem Abschnitt finden Sie einige Aufbaubeispiele fÂr den Kommunikations> bzw. Druckeranschlu˚ der Baugruppe. CP 521 BASIC > Terminal (V.24>Schnittstelle mit HW>Handshake) CP 521 BASIC TERMINAL TxD (2) (3) RxD RxD (3) (2) TxD GND (7) (7) GND DSR (6) (20) DTR DTR (20) (6) DSR RTS (4) (5) CTS CTS (5) (4) RTS Bild 3.3 Anschlu˚plan CP 521 BASIC > Terminal (V.24>Schnittstelle mit HW>Handshake) 3>6 EWA 4NEB 812 6071>01 CP 521 BASIC Aufbaurichtlinien CP 521 BASIC > CP 521 BASIC, CP 521 BASIC > Drucker (V.24>Schnittstelle mit HW>Handshake) CP 521 BASIC CP 521 BASIC TxD (2) (3) RxD RxD (3) (2) TxD RTS (4) (5) CTS CTS (5) (4) RTS DSR (6) (20) DTR DTR (20) (6) DSR GND (7) (7) GND LPO (14) BUSY (15) Drucker PT88 (7) GND (3) RxD (25) BUSY Bild 3.4 Anschlu˚plan CP 512 BASIC > CP 512 BASIC , CP 521 BASIC > Drucker (V.24>Schnittstelle) EWA 4NEB 812 6071>01 3>7 Aufbaurichtlinien CP 521 BASIC CP 521 BASIC > PG 750/PG 730, CP 521 BASIC > Drucker PT 88 (V.24>Schnittstelle ohne HW>Handshake) CP 521 BASIC PG 750/PG 730 TxD (2) (3) RxD RxD (3) (2) TxD GND (7) (7) GND LPO (14) (6) DSR BUSY (15) (20) DTR Drucker PT88 (7) GND (3) RxD (25) BUSY Bild 3.5 Anschlu˚plan CP 512 BASIC > PG 750 / PG 730, CP 521 BASIC > Drucker (V.24>Schnittstelle) 3>8 EWA 4NEB 812 6071>01 aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaa aaaaaa aaaa aaaaaa Masse + +24 V Fremd> einspeisung EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a aa aa a a a a a a a aaaa aa a a aaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a TxD > (21) (7) aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa RxD > (10) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a RxD+ (9) I20 B (17) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a TxD+ (18) I20 A (19) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a CP 521 BASIC (4) K2 > P 24 (13) aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa 20 mA a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a 20 mA aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa CP 521 BASIC Aufbaurichtlinien CP 521 BASIC (TTY aktiv) > PG 685/PG 635 (TTY passiv) PG 685/PG 635 (6) RxD+ (8) RxD > 0V (10) TxD+ (12) TxD > (2) (3) K3 > Masse (17) K1 0V Bild 3.6 Anschlu˚plan CP 521 BASIC (TTY aktiv) > PG 685/PG 635 (TTY passiv) In obiger Abbildung ist der Stromflu˚ schematisch dargestellt. 3>9 Aufbaurichtlinien CP 521 BASIC CP 521 BASIC (TTY passiv) > PG 685/PG 635 (TTY aktiv) PG 685/PG 635 CP 521 BASIC TxD+ (18) (8) RxD> TxD> (21) (21) >12 V RxD+(9) (22) +12 V RxD> (10) (10) TxD+ (6) RxD+ (20)+12 V (12) TxD> (23) >12 V (2) GND (3) K3> (4) K2 (17) K1> Bild 3.7 Anschlu˚plan CP 521 BASIC (TTY passiv) > PG 685/PG 635 (TTY aktiv) Durch das Verbinden der Pin¡s (2), (3), (4) und (17) auf der PG>Seite wird eine ebertragungsrate von 9600 Baud eingestellt. 3>10 EWA 4NEB 812 6071>01 CP 521 BASIC Aufbaurichtlinien CP 521 BASIC (TTY passiv) > PG 750/PG 730 (TTY aktiv) PG 750/PG 730 CP 521 BASIC TxD> (21) (9) RxD+ RxD> (10) (18) TxD+ RxD+ (9) (19) +24 V TxD+ (18) (3) RxD (20) DTR Bild 3.8 Anschlu˚plan CP 521 BASIC (TTY passiv) > PG 750/PG 730 (TTY aktiv) EWA 4NEB 812 6071>01 3>11 CP 521 BASIC Programme EWA 4NEB 812 6040>01a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 4 Arbeitsweise und Adressierung 4.1 Allgemeine Arbeitsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 > 1 4.2 Prinzip des Datenaustausches . . . . . . . . . . . . . . . . . . . . . . . 4 > 2 4.3 4.3.1 4.3.2 Anlaufverhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eberprÂfung der Batterie . . . . . . . . . . . . . . . . . . . . . . . . . . . Uhrentest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 > 4 > 4 > 3 4 4 4.4 Verhalten bei Betßtigung des Betriebsartenschalters . . 4 > 5 4.5 Adressierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 > 6 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Bilder 4.1 4.2 4.1 4.2 4.3 Schematische Darstellung CP 521 BASIC . . . . . . . . . . . . . . . Systemumgebung der Baugruppe . . . . . . . . . . . . . . . . . . . . Meldungen beim Uhrentest . . . . . . . . . . . . . . . . . . . . . . . . . Verhalten bei Umstellung der Betriebsartenschalter . . . Steckplatzadressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 > 4 > 4 > 4 > 4 > 1 2 Tabellen 4 5 6 EWA 4NEB 812 6071>01 CP 521 BASIC Arbeitsweise und Adressierung 4 Arbeitsweise und Adressierung 4.1 Allgemeine Arbeitsweise Speichermodul CP 521 BASIC RAM HANDLE>Sendepuffer HANDLE>Empfangs> puffer Serielle Schnitt> stellen V.24 oder TTY (25poliger D>Sub> Stecker) Anschlu˚ des Peripheriege> rßtes (Drucker, Terminal, PG, usw.) Mikro> prozessor Betriebssystem> speicher Integrierte Echtzeituhr interner Bus 8 Byte Sende> fach 8 Byte Empfangs> fach aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a EPROM/EEPROM/RAM aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aa aa aa aa aa aa aa aa aa aa aa aa aa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa a Der CP 521 BASIC wickelt selbstßndig den Datentransfer mit einem angeschlos> senen Peripheriegerßt ab. Der Datentransfer zwischen CPU und CP!521!BASIC mu˚ immer von der CPU eingeleitet werden durch die ebersendung eines Auftrages von der CPU auf den CP 521 BASIC. AG100> Bus Bild 4.1 Schematische Darstellung CP 521 BASIC EWA 4NEB 812 6071>01 4>1 Arbeitsweise und Adressierung 4.2 CP 521 BASIC Prinzip des Datenaustausches Jeder Datenaustausch zwischen der CPU und dem CP 521 BASIC mu˚ von der CPU durch die ebersendung eines Auftrages an den CP 521 BASIC eingeleitet werden. Die CPU kontrolliert den Datenaustausch des CP 521 BASIC. Speicher> modul ’ “ CPU PAE — PAA CP 521> ” Peripherie> gerßt BASIC ‘ Drucker Bild 4.2 Systemumgebung der Baugruppe Die Baugruppe CP 521 BASIC enthßlt vier Schnittstellen: — Schnittstelle zum AG 100>Bus zur Kommunikation mit der CPU f Das Steuerungsprogramm Âbergibt Âber den AG 100>Bus Daten an die Baugruppe und wertet deren Informationen aus. f Der AG 100>Bus Âbermittelt 8 Byte von der CPU an den CP 521 BASIC und 8 Byte vom CP 521 BASIC an die CPU. “ Modulschacht zur Aufnahme eines Speichermoduls ” bidirektionale TTY> und V.24>Schnittstelle zum Datenaustausch mit einem Peripheriegerßt/Terminal ‘ unidirektionale V.24>Schnittstelle fÂr den Druckeranschlu˚ 4>2 EWA 4NEB 812 6071>01 CP 521 BASIC Arbeitsweise und Adressierung ’ m‘gliche Peripheriegerßte: f PG f Tastatur f Terminal f Drucker mit V.24>Schnittstelle (RS 232C) f andere Peripheriegerßte mit serieller Schnittstelle Das Speichermodul wird fÂr BASIC>Programme ben‘tigt. Zugelassene Speicher> module siehe Zubeh‘rliste (Æ Kap. 2.7). 4.3 Anlaufverhalten Der CP 521 BASIC fÂhrt bei Wiederkehr der Versorgungsspannung (NETZ>EIN) einen Anlauf durch. Der Anlauf besteht aus: f der Initialisierung der seriellen Schnittstellen f der eberprÂfung der Batteriefunktion (Æ Kap. 4.3.1) f dem Uhrentest (Æ Kap. 4.3.2) f der Abfrage des PROG/RUN>Schalters (Betriebsartenschalter). Das Anlaufverhalten des CP 521 BASIC wird im wesentlichen durch Parameter gesteuert (Æ!Kap.5.2): f RAM/Uhr>Ausfall bzw. fehlende Batteriepufferung f Stellung des Betriebsartenschalters der Baugruppe (PROG/RUN) f Parameter des zuletzt angewandten ∫PROG∫>Befehls (ÆTab.5.1). EWA 4NEB 812 6071>01 4>3 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaa Arbeitsweise und Adressierung 4.3.1 4.3.2 Fehlernummer im Byte 0 4>4 Meldung CP 521 BASIC eberprÂfung der Batterie Bei ausgeschalteter Baugruppe erfolgt die Versorgung der Uhr und des RAM Âber die Baugruppenbatterie. Um einen Batterieausfall zu erkennen, findet bei jedem Anlauf eine eberprÂfung der Batterie statt. Im RAM stehende Daten/BASIC> Programme werden im Fehlerfall gel‘scht. Wenn die Batteriespannung wßhrend des Betriebes oder im Anlauf unter den zur Pufferung notwendigen Wert sinkt, wird die LED BATTERY LOW gesetzt. Uhrentest Dieser Teil des Anlaufs testet die baugruppeneigene Uhr. Die Uhr wenn die Batteriepufferung bei NETZ>AUS des AGs ausgefallen ist. Bei der Grund> einstellung wird die Uhr mit den Default>Werten ∫01.01.90 00.00.∫ voreingestellt. Fehler und Grundeinstellung werden im Byte 0 ∫Status der Baugruppe∫ mit einer entsprechenden Fehlernummer versehen und k‘nnen im Anwenderprogramm oder mit dem PG ausgewertet werden. Tabelle 4.1 Meldungen beim Uhrentest Abhilfe 1XH Uhr defekt Baugruppe auswechseln 2XH Uhr gestellt Default>Uhrzeit eingestellt mit der PG>Funktion ∫STEUERN VAR∫ die aktuellen Uhrendaten an den CP!521!BASIC Âbergeben X : kann unterschiedliche Werte annehmen HINWEIS: Bei Ausfall der Uhr/Batteriepufferung mu˚ davon ausgegangen werden, da˚ die Daten im RAM fehlerhaft sind. Aus diesem Grund werden nach Uhr>/ Batterieausfall (bei ausgeschalteter Baugruppe) alle Systemvariablen des CP!521 BASIC mit Defaultwerten belegt und das RAM gel‘scht. EWA 4NEB 812 6071>01 wird gestellt, aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaa a CP 521 BASIC 4.4 Stellungen der Betriebs> artenschalter CPU: RUN O STOP ( O RUN) CP 521 BASIC: RUN oder PROG CPU: RUN CP 521 BASIC: RUN O PROG ( O RUN) EWA 4NEB 812 6071>01 Arbeitsweise und Adressierung Verhalten nach Betßtigung der Betriebsartenschalter Die Arbeitsweise der Baugruppe CP 521 BASIC hßngt ab nach NETZ> EIN wie folgt von der Stellung der Betriebsartenschalter: f STOP/RUN > Schalter bei CPU f PROG/RUN > Schalter bei CP 521 BASIC. Tabelle 4.2 Verhalten nach Umstellung der Bertriebsartenschalter Arbeitweise Status Bearbeitung des BASIC>Programms wird nicht unter> brochen. > AG100>BUS inaktiv > kein Datentransfer zwischen CPU und CP 521 BASIC* > Uhrendaten werden nicht aktualisiert Bearbeitung des BASIC>Programms wird nicht unter> brochen. > AG100>BUS aktiv > Datentransfer zwischen CPU und CP 521 BASIC > Uhrendaten werden stßndig aktualisiert * Mit dem Befehl SSTAT ( Kap.5.9.3) kann der Status ∫S5 > Bus inaktiv∫ ausgelesen werden. HINWEIS: Der Betriebsartenschalter des CP 521 BASIC wird nur im Anlauf abgefragt. Abhßngig von seiner Stellung kann ein vorher festgelegtes Programm gestartet werden oder die Baugruppe im Kommando>Modus anlaufen. 4>5 Arbeitsweise und Adressierung 4.5 CP 521 BASIC Adressierung Die CPU spricht den CP 521 BASIC im Adre˚bereich der Analogkanßle an. Der Adre˚bereich der Baugruppe betrßgt 8 Byte Eingabe und 8 Byte Ausgabe. Ein> und Ausgangsdaten werden Âber denselben Adre˚bereich angesprochen. Dabei ist folgendes zu beachten: f f f Die Baugruppe darf nur auf den Steckplßtzen 0 bis 7 eingesetzt werden. Der Adre˚raum reicht von Byte 64 bis Byte 127. Pro Steckplatz sind im Proze˚abbild der Eingßnge (PAE) und im Proze˚> abbild der Ausgßnge (PAA) der CPU jeweils 8 Byte reserviert. Im Proze˚abbild der Eingßnge (PAE) werden Daten von der Baugruppe an die CPU in dem angegebenen Adre˚raum abgelegt. Umgekehrt werden Informationen von der CPU an die Baugruppe unter den gleichen Adressen im Proze˚abbild der Ausgßnge (PAA) abgelegt. aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaa aa a Tabelle 4.3 Steckplatzadressen Steckplatz 0 1 2 3 4 Adressen PAE/PAA 64 ... 71 72 ... 79 80 ... 87 88 ... 95 96 ... 103 5 6 7 104 ... 112 ... 120 ... 111 119 127 Anfangsadresse eines Steckplatzes Die reservierten acht Byte (0...7) pro Steckplatz haben eine feste Bedeutung. Die in diesem Gerßtehandbuch angegebenen Bytenummern beziehen sich immer auf die Anfangsadresse des jeweiligen Steckplatzes. Darum mÂssen Sie in Ihrem Steuerungsprogramm zu den angegebenen Bytenummern die Anfangsadresse des Steckplatzes addieren, auf dem Sie die Baugruppe gesteckt haben. Beispiel: Baugruppe auf Steckplatz 3:Byte 2 hat die Adresse 90 Baugruppe auf Steckplatz 4:Byte 2 hat die Adresse 98 Byte 0 des PAA ∫Auftrag∫ legt die Bedeutung der Bytes 1 bis 7 im PAA fest. 4>6 EWA 4NEB 812 6071>01 a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 5 BASIC>Interpreter 5.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 > 1 5.2 Anlaufverhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 > 2 5.3 5.3.1 5.3.2 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kommando>Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RUN>Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 > 5 > 5 > 4 4 4 5.4 5.4.1 5.4.2 5.4.3 5.4.4 COM>Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminalemulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BASIC>Programme sichern . . . . . . . . . . . . . . . . . . . . . . . . . . . BASIC>Programme laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . Speicher> und Dateiinhalt anzeigen lassen . . . . . . . . . . . . 5 5 5 5 5 > 5 > 8 > 10 > 12 > 15 5.5 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.7 5.5.8 Der BASIC>Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anweisungen / Formatanweisungen . . . . . . . . . . . . . . . . . Datenformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AusdrÂcke / Relationale AusdrÂcke . . . . . . . . . . . . . . . . . . . Systemsteuerwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stackaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zeilen>Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 5 5 5 > > > > > > > > > 17 17 18 19 19 21 21 22 22 5.6 5.6.1 5.6.2 5.6.3 5.6.4 5.6.5 Beschreibung der Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LIST# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 > > > > > > 23 23 24 25 26 27 EWA 4NEB 812 6071>01 a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 5.7 5.7.1 5.7.2 5.7.3 5.7.4 5.7.5 5.7.6 Speicherbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAM und ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XFER ........................................ PROG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROG1 und PROG2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ERASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REORG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 5 > > > > > > > 28 28 30 31 33 34 34 5.8 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8 5.8.9 5.8.10 5.8.11 5.8.12 5.8.13 5.8.14 5.8.15 5.8.16 5.8.17 5.8.18 5.8.19 5.8.20 5.8.21 5.8.22 5.8.23 5.8.24 Beschreibung der Anweisungen . . . . . . . . . . . . . . . . . . . . . CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLEARI und CLEARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INIT# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DATA > READ > RESTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DO > UNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DO > WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FOR > TO > {STEP} > NEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GOSUB > RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ON GOTO und ON GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . IF > THEN > ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ONERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ONTIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK1 und CLOCK0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRINT# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PH0., PH1., PH0.#, PH1.# . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 > > > > > > > > > > > > > > > > > > > > > > > > > 35 35 36 37 39 41 42 44 45 46 47 48 50 52 53 54 56 59 61 62 64 66 67 72 73 EWA 4NEB 812 6071>01 a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 5.8.25 5.8.26 5.8.27 5.8.28 5.8.29 5.8.30 PUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RETI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 > > > > > > 74 76 78 79 80 81 5.9 Spezielle Anweisungen und Funktionen fÂr den Daten> austausch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SGET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SSTAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RSTAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BUFREAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BUFWRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SEND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 5 5 > > > > > > > > 82 85 86 86 87 87 88 89 Spezielle Anweisungen und Funktionen fÂr den Daten> austausch Âber die seriellen Schnittstellen . . . . . . . . . . . . HANDLE, HANDLE# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HSSTAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BUFIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HRSTAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BUFOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 5 > > > > > > > 90 91 92 93 95 96 97 Beschreibung der arithmetischen/logischen Operatoren und AusdrÂcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dyadische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unßre Operatoren > Allgemeine Anwendung . . . . . . . . . . Unßre Operatoren > Logarithmusfunktionen . . . . . . . . . . Unßre Operatoren > Trigonometrische Funktionen . . . . . 5 5 5 5 5 > > > > > 98 98 101 103 104 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.10 5.10.1 5.10.2 5.10.3 5.10.4 5.10.5 5.10.6 5.11 5.11.1 5.11.2 5.11.3 5.11.4 EWA 4NEB 812 6071>01 a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 5.11.5 5.11.6 Rangfolge der Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . Relationale AusdrÂcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 > 106 5 > 107 5.12 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 Beschreibung von String>Operationen . . . . . . . . . . . . . . . STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ∫+∫ (Verkettung zweier Strings) . . . . . . . . . . . . . . . . . . . . . MID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SLEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die String>Operatoren ASC und CHR . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 5 > > > > > > > 108 109 111 112 113 114 114 5.13 5.13.1 5.13.2 5.13.3 5.13.4 5.13.5 Funktionen und Anweisungen fÂr Uhrzeit und Datum . SETCLOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RDCLOCK ................................... SETDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RDDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T ADJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 > > > > > > 119 119 120 121 122 123 5.14 5.14.1 5.14.2 Weitere Funktionen und Systemsteuerwerte . . . . . . . . . Spezielle Funktionsoperatoren . . . . . . . . . . . . . . . . . . . . . . Systemsteuerwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 > 124 5 > 124 5 > 125 5.15 5.15.1 5.15.2 Fehlermeldungen und Besonderheiten . . . . . . . . . . . . . . . Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Besonderheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 > 126 5 > 126 5 > 130 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Bilder 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.1 Startmaske zur COM>Software . . . . . . . . . . . . . . . . . . . . . . . COM>Maske ∫Voreinstellung∫ . . . . . . . . . . . . . . . . . . . . . . . COM>Maske ∫Terminalemulation∫ . . . . . . . . . . . . . . . . . . . COM>Maske ∫Sichern∫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COM>Maske ∫Laden∫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COM>Maske ∫Inhalt∫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datentransfer zwischen CPU > CP 521 BASIC > Peripheriegerßt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anlaufverhalten CP 521 BASIC mit BASIC>Programm/ nach Intialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EWA 4NEB 812 6071>01 5 5 5 5 5 5 > 6 > 7 > 9 > 11 > 13 > 16 5 > 82 Tabelle 5 > 3 CP 521 BASIC Programme EWA 4NEB 812 6040>01a CP 521 BASIC 5 BASIC>Interpreter 5.1 Einleitung BASIC>Interpreter Dieses Kapitel des Handbuches ist kein Leitfaden zum Erlernen allgemeiner Programmiertechniken oder der Programmiersprache BASIC, sondern ein Nach> schlagewerk fÂr mit allgemeinen Programmierkonzepten vertraute Anwender. In Kapitel 3.5 finden Sie alles, was Sie zur Hardware>Inbetriebnahme der Bau> gruppe wissen mÂssen. Hierzu werden Fragen wie: f wie mu˚ mein Terminal verdrahtet werden? f wie schlie˚e ich einen Drucker an? beantwortet. Kapitel 5.2 behandelt das Anlaufverhalten der Baugruppe bis zur Eingabe der ersten Zeile des BASIC>Programms. Kapitel 5.3 und 5.4 befassen sich mit der Programmerstellung, sowie den Besonderheiten der fÂr diese Baugruppe angebotenen COM>Software. Kapitel 5.5 enthßlt allgemeine Informationen zum BASIC>Interpreter, z.B. Zahlen> darstellung und Variablenaufbau. In den Kapiteln 5.6 bis 5.14 schlie˚lich findet die Beschreibung aller vorhandenen BASIC>Befehle, der Zusatzbefehle fÂr die Kommunikation mit der CPU und der Peripherie statt. Daneben ist hier auch eine kurze Anleitung fÂr die Variablentypen und weitere Besonderheiten der hier eingesetzten BASIC> Variante beschrieben. Kapitel 5.15 behandelt Fehlermeldungen und deren Auswertung sowohl bei der Programmerstellung am CP 521 BASIC als auch deren Auswertung durch das laufende STEP5>Programm auf der CPU. Anmerkung Wird im Kapitel 5 von der ∫Ausgabe auf Konsole∫ geschrieben, dann hei˚t das, da˚ die Ausgabe Âber die bidirektionale Schnittstelle erfolgt. EWA 4NEB 812 6071>01 5>1 BASIC>Interpreter 5.2 CP 521 BASIC Anlaufverhalten FÂr den Anlauf mÂssen zwei Fßlle unterschieden werden: 1. Die Baugruppe wird das erste Mal eingeschaltet 2. Die Baugruppe enthßlt bereits ein Programm / ist bereits initialisiert Erstmalige Inbetriebnahme des CP 521 BASIC Wird der CP 521 BASIC nach dem Anschlu˚ des seriellen Eingabegerßtes einge> schaltet, passiert zunßchst einmal nichts. Das liegt daran, da˚ die Baugruppe als erstes die Hardware initialisiert und dann die Auto>Baud>Routine startet. Hier mu˚ am seriellen Eingabegerßt zunßchst die Leerschritt>Taste (Space) oder bei der COM>Software der Softkey ∫Init∫ betßtigt werden, um die Baudrate automatisch einzustellen und das SIGN ON am Bildschirm auszul‘sen. Es erscheint am Bildschirm daraufhin die Meldung ∫CP!521*MCS BASIC Vx.x*∫. Wir empfehlen dringend, zunßchst die Leerschritt>Taste zu betßtigen, damit Sie mit dem CP!521!BASIC arbeiten k‘nnen. aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Nach einem RESET wird der Speicher getestet, gegebenenfalls gel‘scht und systeminterne Variablen werden initialisiert. BASIC weist der Systemvariablen MTOP die h‘chstm‘gliche Adresse des CP>eigenen RAM (7FFFH) zu und verwendet diese Zahl als Basiszahl fÂr den Zufallszahlen>Generator. In EW 0...EW3 des PAE der Baugruppe werden bei fehlender Batteriepufferung Defaultwerte fÂr Datum und Uhrzeit hinterlegt. Hinweis: aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Es ist zu beachten, da˚ die Baugruppe nach RESET mit der Einstellung V.24 hochlßuft, wenn keine Schnittstellenparameter gespeichert sind. Ein angeschlossenes Eingabegerßt mu˚ also Âber die V.24>Schnittstelle mit dem CP!521 BASIC verbunden sein. 5>2 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Der CP 521 BASIC enthßlt bereits ein BASIC>Programm / ist bereits initialisiert Enthßlt der CP 521 BASIC bereits ein Programm, dann ist sein Anlaufverhalten entsprechend Tabelle 5.1. Es ist m‘glich, mit den ∫PROG∫> Befehlen die Schnitt> stellenparameter fÂr einen Wiederanlauf der Baugruppe zu speichern, sowie im Zusammenhang mit dem Betriebsartenschalter den automatischen Start eines Programms festzulegen. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaa a Tabelle 5.1 Anlaufverhalten CP 521 BASIC mit BASIC>Programm / nach Initialisierung Stellung des Betriebs> artenschalters des CP 521 BASIC PROG RUN zuletzt verwendeter ∫PROG∫>Befehl PROG PROG 1 PROG 2 Kommando>Modus Kommando>Modus Kommando>Modus Start des BASIC> Start des BASIC> Programms aus Programms mit der dem RAM, Nummer 1 aus dem falls vorhanden Speichermodul, Kommando>Modus falls vorhanden Schnittstellenparameter f Bei Wirkung des Befehls PROG werden die Schnittstellen mit den Default> Einstellungen parametriert. Die Baudrate fÂr die bidirektionale Schnittstelle wird durch die Auto>Baud> Routine (Eingabe von ∫Space∫) automatisch erkannt. f Bei Wirkung der Befehle PROG1 / PROG2 werden die bidirektionale sowie die unidirektionale Schnittstelle mit den Parametern, die bei der letzten Eingabe von PROG1 bzw. PROG2 aktiv waren, konfiguriert. Ist kein Programm vorhanden, befindet sich die Baugruppe im Kommando> Modus. In diesem Modus k‘nnen einzelne Kommandos eingegeben oder ein Pro> gramm erstellt oder gestartet werden (Æ Kap. 5.3.1 und 5.3.2) EWA 4NEB 812 6071>01 5>3 BASIC>Interpreter 5.3 CP 521 BASIC Programmierung Die Baugruppe arbeitet in zwei Betriebsarten, im Direktbetrieb (Kommando> Modus) mit Befehlen und im Interpreter>Betrieb (RUN>Modus). Die Befehle k‘nnen nur eingegeben werden, wenn sich der CP 521 BASIC im Kommando> Modus befindet. Nach Eingabe eines Befehls fÂhrt der BASIC>Interpreter sofort die entsprechende Ma˚nahme aus. Im vorliegenden Gerßtehandbuch (GHB) werden diese beiden verschiedenen Betriebsarten mit den Begriffen RUN>Modus und Kommando>Modus bezeichnet. 5.3.1 Kommando>Modus Im Kommando>Modus werden Befehle direkt abgearbeitet und das Ergebnis angezeigt. Die Programmerstellung findet ebenso in diesem Modus statt. Zur Aktivierung des Kommando>Modus mu˚ entweder > der Betriebsartenschalter des CP 521 BASIC wßhrend des Hochlaufs in Stellung ∫PROG∫ stehen > ein laufendes Programm abgebrochen werden <CTRL C>. Daneben ist es m‘glich, im Kommando>Modus vorhandene Programme zu korrigieren, Programme auf ein gestecktes EEPROM> oder RAM>Modul zu speichern sowie vorhandene Programme zu starten. Eine Speicherung der Programme auf EPROM ist nur mit Hilfe der COM>Software m‘glich (Æ Kap. 5.4). Der Transfer von BASIC>Programmen zwischen PG und CP 521 BASIC kann nur im Kommando>Modus erfolgen. 5.3.2 RUN>Modus Im RUN>Modus k‘nnen Sie Ihre Programme zum Ablauf bringen. Zur Aktivierung des RUN>Modus mu˚ entweder f das Kommando RUN im Kommando>Modus eingegeben werden f sich der Betriebsartenschalter wßhrend des Hochlaufs der Baugruppe in Stellung ∫RUN∫ befinden und ein Programm im Speichermodul vorhanden sein (Æ Kap. 5.7.3) f der CPU>Auftrag D0H an den CP 521 BASIC gesendet werden. 5>4 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Abbrechen k‘nnen Sie jedes Programm durch f Eingabe von <CTRL C> am Terminal (wenn dies nicht programmß˚ig verhindert wurde!) Programmfehler werden am Eingabeterminal und an der CPU>Schnittstelle angezeigt. 5.4 COM>Software Die COM>Software fÂr den CP 521 BASIC unterstÂtzt die Programmierung der Baugruppe und die Sicherung Ihrer Programme auf Speichermodul, Festplatte und Diskette. Sie lß˚t sich auf einem Programmiergerßt unter S5>DOS aufrufen. Um Sie mit der Handhabung des COM>Softwarepaketes vertraut zu machen, wird zunßchst beschrieben, wie Sie die Dateien von der Diskette auf die Festplatte des Programmiergerßtes Âbertragen und wie das Programm gestartet wird. COM>Software auf die Festplatte des PGs Âbertragen ∏ ∏ ∏ ∏ Betriebssystem laden COM>Diskette in Laufwerk A des PGs einlegen Inhalt der COM>Diskette in den Userbereich 0 der Festplatte kopieren; die Datei ist bezeichnet mit S5PDC21X.CMD Die Âbertragene Datei k‘nnen Sie mit folgenden Eigenschaften versehen: > [RO] um sie vor unbeabsichtigem eberschreiben zu schÂtzen > [SYS] um sie von jedem Userbereich aus aufrufen zu k‘nnen. COM>Software starten ∏ ∏ aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa ∏ S5>Kommandointerpreter aufrufen (Eingabe S5; anschlie˚end Taste <CR> drÂcken) In der Maske ∫Paketanwahl∫ die Schreibmarke auf die Zeile ∫COM521!BASIC∫ positionieren. Dieses Paket mit der Taste <F1> anwßhlen. Hinweis: aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Die COM>Software ∫S5PDC21X.CMD∫ mu˚ sich auf der Festplatte befinden. EWA 4NEB 812 6071>01 5>5 BASIC>Interpreter CP 521 BASIC Es wird folgende Maske am Bildschirm ausgegeben: Startmaske zur COM>Software am PG/PC DATEINAME: aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa PROGRAMMIERNUMMER: F1 F2 F3 F4 Terminal> emulation F5 F6 F7 F8 Help Exit Vorein> Sichern Laden Inhalt stellung Bild 5.1 Startmaske zur COM>Software F1: F2: F3: F4: F5: F7: F8: 5>6 Terminalemulation einschalten Verzweigung zur Maske SICHERN Verzweigung zur Maske LADEN Verzweigung zur Maske INHALT Arbeitsdateinamen bzw. Programmiernummer eingeben Hilfe>Menue zur aktuellen Maske Programm beenden EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter In dieser Startmaske sind folgende Verzweigungen m‘glich: f zur Terminalemulation f zum Sichern und Laden von vorhandenen Programmen, f zum Lesen von Textdateiinhalten f Inhalt von Festplatte, FLOPPY und Speichermodul anzeigen Vor Beginn der weiteren Arbeit mit dem COM sollten Sie Voreinstellungen fÂr das Programm eingeben. Sie werden fÂr die Speicherung und den erneuten Zugriff auf Ihre Anwenderprogramme ben‘tigt. Unter dem Dateinamen werden Programme auf Diskette oder Festplatte gespeichert. Die Programmiernummer kennzeichnet das Speichermodul auf welchem die Programme abgelegt werden k‘nnen. Das Menue ∫Voreinstellung∫ k‘nnen Sie von jeder Maske aus mit der Taste <F5> aufrufen. Maske VOREINSTELLUNG VOREINSTELLUNG DATEINAME: aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa PROGRAMMIERNUMMER: F1 F2 Dateiname Progr. ßndern Nr. ßndern F3 F4 F5 F6 F7 F8 Help Exit Bild 5.2 COM>Maske ∫Voreinstellung∫ EWA 4NEB 812 6071>01 5>7 BASIC>Interpreter CP 521 BASIC F1: Dateinamen ßndern F2: Programmiernummer ßndern F7: Hilfe>Menue zur aktuellen Maske F8: RÂcksprung zur vorhergehenden Maske Nach Eintrag eines Dateinamens oder einer Programmiernummer wird die Vor> einstellung auf allen Masken > au˚er Maske Terminalemulation > links oben ange> zeigt. 5.4.1 Terminalemulation Unter dem Menuepunkt ∫Terminalemulation∫ (Taste <F1>) verhßlt sich das Programmiergerßt wie ein Terminal, d. h. es sendet Tastatureingaben zum CP!521!BASIC und stellt die RÂckmeldungen am Bildschirm dar. Um eine fehler> freie Kommunikation zwischen CP 521 BASIC anzusto˚en, ist in der Terminalemu> lation die Funktionstaste <F1> zu drÂcken. Der CP 521 BASIC stellt sich dann auf das PG ein (Protokoll), das Arbeiten mit dem PG kann beginnen. In der Terminalemulation k‘nnen also Befehle zum CP 521 BASIC Âbergeben und direkt ausgefÂhrt oder als Programm eingegeben werden, falls sich der CP!521!BASIC im Kommando>Modus befindet. eber die Tastenkombination <CTRL C> kann au˚erdem, falls dies im Programm nicht verriegelt wurde, jedes laufende Programm abgebrochen und editiert werden. Ein Abbruch der Terminalemulation zum Âbergeordneten Menue erreichen Sie Âber die Funktionstaste <F8> (Hauptmenue) am PG. 5>8 EWA 4NEB 812 6071>01 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa CP 521 BASIC F1 F1: F7: F8: BASIC>Interpreter Maske TERMINALEMULATION der Bildschirminhalt entspricht den Ein> und Ausgaben zum/vom CP 521 BASIC Init F2 EWA 4NEB 812 6071>01 F3 F4 CP F5 F6 F7 F8 Help Exit Bild 5.3 COM>Maske ∫Terminalemulation∫ CP>Initialisierung Hilfe>Menue zur aktuellen Maske RÂcksprung zur Hauptmaske 5>9 BASIC>Interpreter 5.4.2 CP 521 BASIC BASIC>Programme sichern Durch Aktivierung des Menues ∫Sichern∫ k‘nnen Sie Ihre BASIC>Programme, die auf der Baugruppe im Kommando>Modus erstellt wurden, auf Festplatte oder Diskette abspeichern. Abhßngig von der Auswahl des Menuepunktes werden die Programme vom CP!521 BASIC in verschiedenen Formen Âbertragen: f f Menuepunkt ∫Quellcode O PG∫: Menuepunkt ∫Obj. code O PG∫: f Menuepunkt ∫CP>Inhalt 5>10 O PG∫: Programmtransfer in lesbarer Form Programmtransfer in speicheropti> mierter Form ebertragung eines kompletten Spei> cherabzuges vom derzeit gesteckten Speichermodul an das PG. EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Maske SICHERN aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa SICHERN F1 F2 F3 Quellcode Obj. code CP>Inhalt F4 Vorein> F5 Æ PG Æ PG Æ PG stellung F6 F7 F8 Help Exit Bild 5.4 COM>Maske ∫Sichern∫ F1: F2: F3: F5: F7: F8: Speicherung des aktuellen BASIC>Programmes des CP 521 BASIC auf dem Massenspeicher des PG/PC in ASCII>Form Speicherung des aktuellen BASIC>Programmes des CP 521 BASIC auf dem Massenspeicher des PG/PC in speicheroptimierter Form Speicherung eines kompletten Speicherabzugs des Speichermoduls des CP!521 BASIC auf dem Massenspeicher des PG/PC Arbeitsdateiname bzw. Programmiernummer eingeben Hilfe>Menue zur aktuellen Maske RÂcksprung zur Hauptmaske EWA 4NEB 812 6071>01 5>11 BASIC>Interpreter CP 521 BASIC Menuepunkt ∫Quellcode O PG∫ (Taste <F1>) Wird der Menuepunkt ∫Quellcode O PG∫ gewßhlt, Âbertrßgt der CP 521 BASIC das zuletzt aktivierte BASIC>Programm im ASCII>Format an das PG. Das Programm wird hier unter dem voreingestellten Dateinamen mit der Extension ∫.BAS∫ abgespeichert und kann nun mit einem Texteditor modifiziert werden. Ist kein BASIC>Programm vorhanden, so wird am PG eine Fehlermeldung ausgegeben. Menuepunkt ∫Obj. code O PG∫ (Taste <F2> Wird das Menue ∫Obj. code O PG∫ selektiert, Âbertrßgt der CP 521 BASIC das zuletzt aktivierte Programm in speicheroptimierter Form zum PG/PC. Hier wird das Programm unter dem voreingestellten Dateinamen mit der Extension ∫.TOK∫ abgespeichert und kann nun zum Programmieren von EPROMs verwendet werden. Ist kein BASIC>Programm im CP 521 BASIC vorhanden, so wird am PG eine Fehlermeldung ausgegeben. Menuepunkt ∫CP>Inhalt O PG∫ (Taste <F3>) Wird der Menuepunkt ∫CP>Inhalt O PG∫ gewßhlt, Âbertrßgt die Baugruppe einen kompletten Speicherabzug des gesteckten Speichermoduls an das PG. Der Speicherabzug wird unter dem voreingestellten Dateinamen mit der Erweiterung ∫.ALL∫ abgespeichert. Ist kein Speichermodul gesteckt, so wird eine Fehlermeldung ausgegeben. 5.4.3 BASIC>Programme laden BASIC>Programme sind sowohl vom baugruppeneigenen RAM als auch von Speichermodulen auf dem CP 521 BASIC ablauffßhig. Um die Programme auf die Baugruppe zu transferieren, gibt es dementsprechend auch zwei M‘glichkeiten: f Programmtransfer vom PG zum CP 521 BASIC f Programmierung von Speichermodulen am PG und Stecken in den CP!521!BASIC Die Maske zum Laden von BASIC>Programmen wird nach Betßtigung der Funk> tionstaste <F3> ∫Laden∫von der Hauptmaske aus angewßhlt. 5>12 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Maske LADEN aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa LADEN F1 F2 F3 F4 F5 CP>Inhalt Obj. code CP>Inhalt Programm Vorein> Æ EPROM Æ EPROM Æ CP Æ CP stellung F6 F7 F8 Help Exit Bild 5.5 COM>Maske ∫Laden∫ F1: F2: F3: F4: F5: F7: F8: Programmierung eines Speichermoduls mit einer Datei vom Massen> speicher des PG, welches einen Speicherabzug des CP 521 BASIC enthßlt (.ALL) Programmierung eines Speichermoduls mit einer Datei vom Massen> speicher des PG, welches ein lauffßhiges Programm enthßlt (.TOK) Download eines kompletten Speicherabzugs vom Massenspeicher des PG zum CP 521 BASIC (.ALL) Download eines BASIC Programms vom Massenspeicher des PG zum CP!521!BASIC (Prioritßt: .TOK, falls vorhanden, sonst . BAS) Arbeitsdateinamen bzw. Programmiernummer eingeben Hilfe>Menue zur aktuellen Maske RÂcksprung zur Hauptmaske EWA 4NEB 812 6071>01 5>13 BASIC>Interpreter CP 521 BASIC Programmtransfer vom PG zum CP 521 BASIC Menuepunkt ∫Programm O CP∫ (Taste <F4>) Nach Anwahl der Funktion ∫Programm O CP∫ wird das mit dem voreingestellten Dateinamen angewßhlte Programm an den CP 521 BASIC Âbertragen. Die COM>Software erkennt an der Dateiextension ∫.BAS∫ oder ∫.TOK∫, ob das Programm in lesbarer Form oder in speicheroptimierter Form vorliegt. Existieren beide Dateien, so wird immer das speicheroptimierte Programm in den CP!521!BASIC geladen. Wird ein Programm in lesbarer Form Âbertragen, erfolgt bei der ebertragung am CP 521 BASIC eine Umsetzung des Programms in speicheroptimierte Form. Menuepunkt ∫CP>Inhalt O CP∫ (Taste <F3>) Durch Aktivierung des Menuepunktes ∫CP>Inhalt O CP∫ (Taste <F3>) wird die voreingestellte Datei mit der Extension ∫.ALL∫ in die Baugruppe geladen. Dateien mit der Extension ∫.ALL∫ enthalten jeweils einen kompletten Speicher> abzug. Dazu ist es erforderlich, da˚ am CP 521 BASIC ein Speichermodul gesteckt ist, welches Daten aufnehmen kann. Programmierung von Speichermodulen Menuepunkt ∫Obj. code O EPROM∫ (Taste <F2>) Nach Anwahl der Funktion ∫Obj. code O EPROM∫ wird das mit dem vorein> gestellten Dateinamen angewßhlte Programm auf das EPROM programmiert. Bei erstmaliger Programmierung eines leeren EPROMs kennzeichnet das Program> miergerßt das Modul als BASIC>Modul fÂr den CP 521 BASIC. Wird ein mit einer anderen Kennzeichnung bereits programmiertes Modul ge> steckt, so erscheint eine Fehlermeldung. Das Speichermodul wurde in der Voreinstellmaske Âber die zugeh‘rige Program> miernummer (siehe Help>Maske) angewßhlt. Das BASIC>Programm mu˚ hierfÂr in speicheroptimierter Form als Datei mit der Namenserweiterung ∫.TOK∫ auf dem PG/PC vorhanden sein. Nach Beendigung der Programmierung bekommen Sie vom System die vom Programm belegte Programmnummer am Bildschirm mitgeteilt. Das Speicher> modul kann nun in den CP 521 BASIC eingesetzt werden und mit den Befehlen ROM bzw. RROM [integer] (Æ Kap. 5.7.1) aufgerufen werden. Der Parameter entspricht hier der Programmnummer, unter der das Programm gespeichert wurde. 5>14 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Menuepunkt ∫CP>Inhalt O EPROM∫ (Taste <F1>) Nach Anwahl dieser Funktion wird das EPROM komplett mit einem vorher erstellten CP>Speicherabzug programmiert. Speichermodul sowie Quelldatei mÂssen Âber die Voreinstellmaske angewßhlt sein. Der Speicherabzug mu˚ sich in der Datei mit der Extension ∫.ALL∫ befinden.∫ 5.4.4 Speicher> und Dateiinhalt anzeigen lassen DrÂcken Sie im Hauptmenue die Taste <F4>, so erscheint am Bildschirm das Menue ∫Inhalt∫, das Ihnen den Inhalt der verschiedenen Speichermedien bzw. der Dateien anzeigt. Menuepunkt ∫Laufwerk∫ (Taste <F1>) Unter diesem Menuepunkt kann das Directory des eingestellten Laufwerks an> gezeigt werden. Es werden dabei nur Dateien mit den Extensionen ∫.TOK∫, ∫.BAS∫ und ∫.ALL∫ angezeigt. Menuepunkt ∫EPROM∫ (Taste <F2>) Es werden die belegten Programmnummern des EPROM>Moduls angezeigt. Menuepunkt ∫Datei∫ (Taste <F3>) Der Inhalt der eingestellten Arbeitsdatei mit der Extension ∫.BAS∫ kann, falls vorhanden, unter diesem Menuepunkt am Bildschirm angezeigt werden, um z.B. ein bestimmtes BASIC>Programm zu finden. Ein Editieren der Datei ist mit dem COM nicht m‘glich. Hierzu mu˚ ein Texteditor eingesetzt werden. EWA 4NEB 812 6071>01 5>15 BASIC>Interpreter CP 521 BASIC Maske INHALT aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa INHALT F1 F2 F3 Laufwerk EPROM Datei F4 F5 F6 F7 F8 Help Exit Vorein> stellung Bild 5.6 COM>Maske ∫Inhalt∫ F1: F2: F3: F5: F7: F8: 5>16 Anzeige des Laufwerkinhalts Anzeige des Speicherinhalts (belegte Programmnummern) Anzeige des Dateiinhalts Arbeitsdateinamen bzw. Programmiernummer eingeben Hilfe>Menue zur aktuellen Maske RÂcksprung zur Hauptmaske EWA 4NEB 812 6071>01 CP 521 BASIC 5.5 BASIC>Interpreter Der BASIC>Interpreter Die folgenden Abschnitte geben eine allgemeine EinfÂhrung in den eingesetzten BASIC>Interpreter. Er basiert auf dem im ROM des 8052AH implementierten BASIC>Interpreter von INTEL. Es werden die unterschiedlichen Datentypen, die Kommandos und Befehle > kurz, alles was zur Programmierung ben‘tigt wird> beschrieben. Das Kapitel beinhaltet jedoch keine EinfÂhrung in die Programmiersprache BASIC. Das vorliegende BASIC verfÂgt Âber die meisten M‘glichkeiten der ∫Standard> dialekte∫ von BASIC, ergßnzt noch um einige Befehle zur Kommunikation mit der CPU sowie Âber die seriellen Schnittstellen. 5.5.1 Anweisungen / Formatanweisungen Anweisungen Ein Programm in BASIC besteht aus Programmzeilen. Jede Programmzeile beginnt mit einer Zeilennummer, auf die dann die eigentliche Anweisung folgt, und endet mit einem WagenrÂcklaufzeichen (CR). Stehen mehrere Anweisungen innerhalb einer Zeile, so sind diese durch einen Doppelpunkt (:) zu trennen. Einige Anweisungen, jedoch nicht alle, k‘nnen im Kommando>Modus ausgefÂhrt werden. Bei der Beschreibung der Anweisungen in diesem Handbuch wird zu den einzelnen Anweisungen angegeben, ob sie im Kommando>Modus oder nur im RUN>Modus ausgefÂhrt werden k‘nnen. Es gibt in BASIC drei Grundtypen von Anweisungen: Zuweisung, Eingabe/Ausgabe und Steuerung. Im Abschnitt Beschreibung der Befehle in diesem Handbuch wird zu jeder Anweisung angegeben, zu welchem Typ sie geh‘rt. > > > > > > Jede Zeile eines Programms mu˚ mit einer Zeilennummer zwischen 0 und 65.535 beginnen. Mit Hilfe der Zeilennummern ordnet BASIC die Programmanweisungen in der richtigen Reihenfolge. In allen Programmen mÂssen die Zeilennummern eindeutig sein. Die Anweisungen mÂssen nicht in numerischer Reihenfolge eingegeben werden, weil sie von BASIC automatisch in aufsteigender Reihenfolge sortiert werden. Eine Programmzeile darf (incl. Zeilennummer) h‘chstens 79 Zeichen ent> halten. Blanks (Leerzeichen) werden von BASIC ignoriert bzw. wßhrend LIST automa> tisch eingefÂgt. EWA 4NEB 812 6071>01 5>17 BASIC>Interpreter > CP 521 BASIC In einer Zeile dÂrfen mehrere Anweisungen enthalten sein, die dann durch Doppelpunkte (:) getrennt sein mÂssen; jedoch nur eine Zeilennummer. Formatanweisungen Formatanweisungen dÂrfen nur innerhalb der PRINT>Anweisung verwendet werden. Formatanweisungen sind TAB([expr]), SPC([expr]), USING [Sonder> zeichen] und CR (WagenrÂcklauf ohne Zeilenvorschub). Einzelheiten zu den Formatanweisungen werden in der Beschreibung zur PRINT>Anweisung in diesem Handbuch gegeben. 5.5.2 Datenformate Zur Darstellung von Zahlen gibt es in BASIC folgende zwei M‘glichkeiten: f Gleitpunktdarstellung f Ganzzahldarstellung Gleitpunktdarstellung In BASIC kann der folgende Zahlenbereich verarbeitet werden : ± 1.0E > 127 bis ± 0.99999999E + 127. BASIC arbeitet mit acht signifikanten Ziffern. Alle Zahlen werden intern entsprechend dieser Genauigkeit gerundet. Zahlen k‘nnen in vier Formaten ein> und ausgegeben werden: als Ganzzahlen, als Dezimalzahlen, als Hexadezimalzahlen und im Exponentialformat. Beispiel: 127, 34.98, 0A6EH, 1.23456E+3. Konstante Konstanten sind Gleitpunktzahlen im Bereich von: ± 1.0E > 127 bis ± 0.99999999E + 127. Im vorliegenden GHB werden Konstanten auf die folgende Weise bezeichnet: [const] Ganzzahldarstellung In BASIC sind Ganzzahlen alle Zahlen von 0 bis 65.535 bzw. 0FFFFH. Alle Ganzzahlen k‘nnen im Dezimal> oder im Hexadezimalformat eingegeben werden, wobei alle Hexadezimalzahlen mit einer gÂltigen Ziffer beginnen mÂssen (so mu˚ z.B. die Zahl A000H als 0A000H eingegeben werden). Bei Operatoren, z.B. bei .AND., die ganze Zahlen erfordern, schneidet BASIC den Dezimalteil der betreffenden Zahl ab, um eine Ganzzahl zu erhalten. Alle 5>18 EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC 5.5.3 5.5.4 FRED AMPERE1 EWA 4NEB 812 6071>01 BASIC>Interpreter Zeilennummern sind Ganzzahlen. Im vorliegenden GHB werden Ganzzahlen und Zeilennummern auf die folgende Weise bezeichnet: [integer] bzw. [ln num] Hinweis: In diesem GHB werden eckige Klammern [ ] nur verwendet, um eine ganze Zahl, eine Konstante usw. zu bezeichnen. Diese Klammern dÂrfen nicht bei der Eingabe der eigentlichen Zahl oder Variablen verwendet werden. Optionale Angaben sind durch { } gekennzeichnet. Operatoren Ein Operator fÂhrt eine festgelegte Operation an Variablen und/oder Konstanten durch. Operatoren erfordern einen oder zwei Operanden. Typische "dyadische" Operatoren, also fÂr zwei Operanden, sind Addition (+), Subtraktion (>), Multiplikation (*) und Division (/). Operatoren, fÂr die nur ein Operand erforderlich ist, werden oft als unßre Operatoren bezeichnet. Einige typische unßre Operatoren sind SIN, COS und ABS. Variablen Variablen mÂssen mit einem Buchstaben beginnen, anschlie˚end kann der Name Buchstaben, Ziffern sowie den Unterstrich enthalten. Auf diese Weise k‘nnen Sie einen aussagekrßftigen Namen fÂr eine bestimmte Variable verwenden. So sind in BASIC die folgenden Variablen zulßssig: I_I1 ARRAY(ELE_1) Hinweis: Variablen ben‘tigen fÂr jedes Zeichen ein Byte. Verwenden Sie deshalb m‘glichst kurze Variablennamen. 5>19 BASIC>Interpreter a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Hinweis: Beachten Sie, da˚ BASIC zur internen Referenzierung einer Variablen nur das erste und das letzte Zeichen, sowie die Lßnge des Variablennamens verwendet. Folglich werden ∫LAENGE0∫ und ∫LIEFER0∫ vom Interpreter nicht unterschieden werden. Bei der Verwendung der Variablennamen mu˚ auf jeden Fall beachtet werden, da˚: f BASIC lßnger braucht, um lßngere Variablennamen zu verarbeiten f keine SchlÂsselworte als Teile von Variablennamen verwenden werden dÂrfen (die Variable TABLE darf beispielsweise nicht verwendet werden, weil TAB ein reserviertes Wort ist). Das System meldet ERROR: BAD SYNTAX, wenn der Anwender versucht, eine Variable zu definieren, die ein reserviertes Wort enthßlt. Variablen, die einen eindimensionalen Ausdruck [expr] als Index (z.B. A(0)) ent> halten, werden oft als dimensionierte oder Array>Variable bezeichnet. Variablen, die nur aus dem Variablennamen ohne Index bestehen, werden als skalare Variablen bezeichnet. Einzelheiten zu dimensionierten Variablen werden in der Beschreibung der Anweisungsroutine DIM (Æ Kap. 5.8.7) behandelt. Im vorliegenden GHB werden Variablen wie folgt bezeichnet: [var] BASIC ordnet Variablen "statisch" zu. Bei der erstmaligen Verwendung einer Variable reserviert also BASIC einen Speicherbereich (8 Byte) spezifisch fÂr diese Variable. Dieser Speicherbereich kann nicht allgemein fÂr die Variable verwendet werden. Nach einer Anweisung wie z.B. Q = 3 kann spßter nicht angegeben werden, da˚ die Variable Q nicht mehr ben‘tigt wird und da˚ BASIC die 8 Byte des Speicherbereichs von Q freigeben soll. Die einzige M‘glichkeit, einen Speicherbereich zu l‘schen, der einer Variablen zugeordnet wurde, besteht darin, eine CLEAR>Anweisung (Æ Kap. 5.8.1) auszufÂhren. Diese Anweisung gibt den ganzen Speicherbereich, der fÂr die Variablen zugeordnet wurde, frei, d.h. alle Variablen werden gel‘sch 5>20 EWA 4NEB 812 6071>01 BASIC>Interpreter a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Hinweis: Im Vergleich zu einer dimensionierten Variablen ben‘tigt BASIC erheblich weniger Zeit, um eine Skalare Variable aufzufinden. In einer skalaren Variablen mu˚ nicht erst ein Ausdruck berechnet werden. Wenn also ein Programm m‘glichst schnell ablaufen soll, sollen dimensionierte Variablen nur dort verwendet werden, wo sie unbedingt erforderlich sind. FÂr Zwischenergebnisse k‘nnen skalare Variablen verwendet werden, und das Endergebnis kann dann wieder einer dimensionierten Variablen zugeordnet werden. 5.5.5 AusdrÂcke / Relationale AusdrÂcke AusdrÂcke Ein Ausdruck ist eine logische mathematische Formel, die Operatoren (sowohl unßre als auch dyadische Operatoren), Konstanten und Variablen enthßlt. AusdrÂcke k‘nnen einfach oder recht komplex sein, z.B. 12*EXP(A)/100, H(1) + 55 oder (SIN(A)*SIN(A) + COS(A)*COS(A))/2 sein. Eine "einzelne" Variable [var] oder Konstante [const] gilt ebenfalls als Ausdruck. Im vorliegenden GHB werden AusdrÂcke wie folgt bezeichnet: [expr] Relationale AusdrÂcke Relationale AusdrÂcke enthalten die Operatoren GLEICH (=), UNGLEICH (<>), GRTSSER ALS (>), KLEINER ALS (<), GRTSSER GLEICH (>=) und KLEINER GLEICH (<=). Sie werden in Steueranweisungen verwendet, um eine Bedingung zu "testen" (z.B. IF A < 100 THEN ...). Relationale AusdrÂcke erfordern stets zwei Operanden. Im vorliegenden GHB werden Relationale AusdrÂcke wie folgt bezeichnet: [rel expr] 5.5.6 Systemsteuerwerte Zu den Systemsteuerwerten geh‘ren: f LEN (gibt die Lßnge des Programms an), f FREE (gibt an, wieviele Bytes RAM>Speicher fÂr Variablen und Strings maximal verfÂgbar sind) und f MTOP (die letzte, fÂr BASIC reservierte Speicherstelle). EWA 4NEB 812 6071>01 5>21 BASIC>Interpreter 5.5.7 CP 521 BASIC Stackaufbau BASIC reserviert 512 Byte des Datenspeichers fÂr die Einrichtung von zwei "Software">Stacks. Dies sind der Steuerstack und der Argumentstack. FÂr Anwender, die nur in BASIC programmieren wollen, ist ein Verstßndnis der Arbeitsweise der Stacks nicht erforderlich. Steuerstack Dieser Stack nimmt alle Angaben auf, die zur Schleifensteuerung (z.B. DO>WHILE, DO>UNTIL und FOR>NEXT) und zu BASIC>Subroutinen geh‘ren (GOSUB). Es sind maximal 9 FOR>NEXT>Schachtelungen oder 52 andere m‘glich. Argumentstack Dieser Stack nimmt alle Argumente, Werte und Zwischenergebnisse auf, mit denen BASIC gegenwßrtig arbeitet. Operationen wie Addition, Subtraktion, Multiplikation und Division werden mit Hilfe des Argumentstacks durchgefÂhrt. 5.5.8 Zeilen>Editor aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa BASIC enthßlt einen Zeilen>Editor im Mindestumfang. Zur 'nderung einer einmal eingegebenen Zeile mu˚ die ganze Zeile neu eingegeben werden. Es ist jedoch m‘glich, einzelne Zeichen zu l‘schen, solange die Zeile noch nicht voll eingegeben ist. Hierzu ist ein ∫DEL∫ (7FH) einzugeben. Das Zeichen ∫DEL∫ (7FH) bewirkt, da˚ das zuletzt eingegebene Zeichen aus dem Texteingabepuffer gel‘scht wird. Durch die Eingabe von CTRL>D wird die ganze betreffende Zeile gel‘scht. BASIC enthßlt die Erkennung der Zeichen CTRL>Q!(X>ON) und CTRL>S (X>OFF). Bei der Eingabe von Daten mu˚ hier darauf geachtet werden, nicht versehentlich CTRL>S einzugeben, weil dann BASIC nicht mehr auf Konsolen> eingaben reagiert. Nach der Eingabe von CTRL>S mu˚ CTRL>Q eingegeben werden, um Konsoleneingaben wieder wirksam zu machen. aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Hinweis: Im vorliegenden GHB wird ein WagenrÂcklaufzeichen durch das Symbol (CR) bezeichnet. Das WagenrÂcklaufzeichen wird auf den meisten Tastaturen mit der Taste RETURN aufgerufen. EWA 4NEB 812 6071>01 5>22 CP 521 BASIC 5.6 BASIC>Interpreter Beschreibung der Befehle Die folgenden Befehle k‘nnen nur im Kommando>Modus eingegeben werden. RUN a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a 5.6.1 Befehl RUN(cr) Wirkung Nach der Eingabe von RUN(cr) werden alle Variablen gleich Null gesetzt, alle von BASIC aufgerufenen Interrupts sowie die Puffer zur S5>CPU und zur Peripherie werden gel‘scht und der Programmablauf beginnt bei der ersten Zeilennummer des gewßhlten Programms. Der Interpreter BASIC kann aus dem Kommando> Modus nur durch den Befehl RUN oder durch die GOTO>Anweisung den RUN> Modus versetzt werden. Der Programmablauf kann jederzeit durch Eingabe von CTRL>C in die Konsole abgebrochen werden. Varianten Im Gegensatz zu anderen BASIC>Interpretern, die hinter dem Befehl RUN die Eingabe einer Zeilennummer gestatten (z.B. RUN 100), lß˚t BASIC keine derartige Variante fÂr den Befehl RUN zu. Der Programmablauf beginnt stets bei der ersten Zeilennummer. Um die gleiche Wirkung wie durch den Befehl RUN![ln!num] zu erreichen, kann die GOTO>Anweisung [ln num] im Kommando>Modus verwendet werden. Siehe GOTO>Anweisung (Æ Kap. 5.8.13). Beispiel >10 FOR I=1 TO 3 >20 PRINT I >30 NEXT I >RUN 1 2 3 READY > EWA 4NEB 812 6071>01 5>23 BASIC>Interpreter CONT a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a 5.6.2 CP 521 BASIC Befehl CONT(cr) Wirkung Programme, die durch die Eingabe von CTRL>C Âber die Konsole oder durch AusfÂhrung einer STOP>Anweisung (Æ Kap. 5.8.29) abgebrochen wurden, k‘n> nen durch die Eingabe CONT(cr) fortgesetzt werden. Zwischen dem Abbruch und der Fortsetzung des Programms ist es m‘glich, die Werte der Variablen anzeigen zu lassen oder zu ßndern. Es ist jedoch nicht m‘glich, das Programm nach einem Fehler durch CONT fortzusetzen, oder wenn es nach dem Abbruch verßndert wurde. Nach Eingabe der Befehle RAM und ROM ist eine Programmfortsetzung durch CONT ebenfalls nicht mehr m‘glich. Varianten Keine Beispiel >10 FOR I=1 TO 10000 >20 PRINT I >30 NEXT I >RUN 1 2 3 4 5 - (TYPE CONTROL-C ON CONSOLE) STOP - IN LINE 20 READY >PRINT I 6 >I=10 >CONT 10 11 12 5>24 EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC 5.6.3 Befehl EWA 4NEB 812 6071>01 BASIC>Interpreter LIST LIST {ln num{-ln num}} (cr) Wirkung Der Befehl LIST(cr) gibt das Programm an die Konsole aus. Hierbei ist zu beachten, da˚ der Befehl LIST das Programm so "formatiert", da˚ es leicht zu lesen ist. Hinter der Zeilennummer und vor und nach den Anweisungen werden Blanks eingefÂgt. Diese Erweiterung soll die Fehlersuche in Programmen in BASIC unterstÂtzen. Das "Listing" eines Programms kann jederzeit durch Eingabe von CTRL>C Âber die Konsole abgebrochen werden. Varianten Es sind zwei Varianten des Befehls LIST m‘glich. Dies sind: LIST[ln num] (cr) und LIST[ln num] - [ln num] (cr) Die erste Variante bewirkt, da˚ das Programm von der angegebenen Zeilen> nummer (Ganzzahl) bis zum Ende ausgegeben wird. Die zweite Variante bewirkt die Ausgabe des Programms von der ersten Zeilennummer (Ganzzahl) bis zur zweiten Zeilennummer (Ganzzahl). Hinweis: Die beiden Zeilennummern mÂssen durch einen Bindestrich voneinander getrennt sein. 5>25 BASIC>Interpreter CP 521 BASIC Beispiel READY >LIST 10 PRINT ”SCHLEIFEN-PROGRAMM” 20 FOR I=1 TO 3 30 PRINT I 40 NEXT I 50 END READY >LIST 30 30 PRINT I 40 NEXT I 50 END READY >LIST 20-40 20 FOR I=1 TO 3 30 PRINT I 40 NEXT I LIST# aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa 5.6.4 Befehl List# {ln num{- ln num}} (cr) Wirkung Der Befehl LIST#(cr) gibt das Programm an die unidirektionale Schnittstelle aus. Alle Angaben zum Befehl LIST gelten auch fÂr den Befehl LIST#. 5>26 EWA 4NEB 812 6071>01 CP 521 BASIC NEW a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a 5.6.5 BASIC>Interpreter Befehl NEW (cr) Wirkung Nach der Eingabe von NEW(cr) l‘scht BASIC das gegenwßrtig im RAM>Speicher abgelegte Programm. Au˚erdem werden alle Variablen gleich Null gesetzt, und alle von BASIC aufgerufenen Interrupts, die Puffer zur S5>CPU und zur Peripherie werden gel‘scht. Zeichenketten (Stringvariablen) werden zwar gel‘scht, der durch den Befehl ∫String∫ hierfÂr reservierte Speicherbereich wird jedoch nicht freigegeben. Der Timer ist hiervon nicht berÂhrt. EWA 4NEB 812 6071>01 5>27 BASIC>Interpreter 5.7 CP 521 BASIC Speicherbefehle Der CP 521 BASIC kann mehrere Programme in einem Speichermodul ablegen. Es k‘nnen so viele Programme abgespeichert werden, bis der Speicher des Moduls ersch‘pft ist. Die Programme werden im Modul in laufender Reihenfolge abgelegt und k‘nnen beliebig abgerufen und ausgefÂhrt werden. Diese Abspeicherung von Programmen in laufender Reihenfolge wird als Modul>Datei bezeichnet. Mit den folgenden Befehlen kann der Anwender die Modul>Datei selektieren, erstellen und bearbeiten. RAM und ROM a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a 5.7.1 Befehle RAM(cr) und ROM [integer](cr) aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaa Wirkung Diese beiden Befehle geben dem BASIC>Interpreter an, ob das aktuelle Programm (das aktuelle Programm ist jeweils das Programm, das nach einem Befehl LIST ausgegeben bzw. nach Eingabe von RUN abgerufen wird) sich im RAM oder auf dem Speichermodul befindet. Befehl RAM(cr) Nach Eingabe von RAM(cr) wßhlt der Interpreter das aktuelle Programm aus dem RAM>Speicher. Dies gilt Âblicherweise als die "normale" Betriebsart, und in dieser Betriebsart rufen auch die meisten Anwender den Befehls>Interpreter auf. 5>28 EWA 4NEB 812 6071>01 BASIC>Interpreter a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC Befehl ROM [integer](cr) Nach Eingabe von ROM[integer](cr) wßhlt BASIC das aktuelle Programm im Speichermodul. Fehlt die Angabe der Ganzzahl hinter dem Befehl ROM (Eingabe also: ROM(cr)), so gilt fÂr BASIC die Standardangabe ROM 1. Da die Programme im Speichermodul in laufender Reihenfolge abgelegt sind, gibt die Ganzzahl hinter dem Befehl ROM an, welches der Programme Sie aufrufen oder ausgeben lassen m‘chten. Nach dem Versuch, ein nicht vorhandenes Programm anzuwßhlen (Beispiel: Es wird ROM 8 eingegeben, obwohl nur sechs Programme im Modul gespeichert sind), wird die Meldung ERROR: PROGRAM NOT FOUND ausgegeben. Nach Wahl der Betriebsart ROM Âbertrßgt BASIC keine Programme aus dem Speichermodul in den RAM>Speicher. Es ist also nicht m‘glich, in der Betriebsart ROM Programme durch EDIT zu bearbeiten. Nach dem Versuch, ein Programm in der Betriebsart ROM durch Eingabe einer Zeilennummer zu editieren, erscheint die Meldung ERROR: CAN'T EDIT ON MEMORY MODULE. Mit dem nachfolgend beschriebenen Befehl XFER (Æ Kap. 5.7.2) k‘nnen Programme aus dem Modul> in den RAM>Speicher Âbertragen werden, um dort editiert zu werden. Da der Befehl ROM kein Programm in den RAM>Speicher Âbertrßgt, k‘nnen das Speichermodul und der RAM>Speicher gleichzeitig verschiedene Programme enthalten. Der Anwender kann zwischen den beiden Betriebsarten beliebig umschalten. Ein weiterer Vorteil, da˚ Programme nicht in den RAM>Speicher Âbertragen werden brauchen, liegt darin, da˚ der gesamte RAM>Speicher fÂr die Speicherung von Variablen verwendet werden kann, wenn das Programm selbst im Speichermodul abgelegt ist. Die Systemsteuerwerte MTOP und FREE beziehen sich stets auf das RAM, nicht auf das Speichermodul. Varianten Keine EWA 4NEB 812 6071>01 5>29 BASIC>Interpreter XFER a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a 5.7.2 CP 521 BASIC Befehl XFER(cr) Wirkung Der Befehl XFER (Transfer) Âbertrßgt das gegenwßrtig gewßhlte Programm aus dem Speichermodul in den RAM>Speicher und stellt dann auf Betriebsart RAM um. Wird XFER eingegeben, wßhrend BASIC in der Betriebsart RAM lßuft, wird das im RAM abgespeicherte Programm in den RAM>Speicher Âbertragen und die Betriebsart RAM gewßhlt. Nach der DurchfÂhrung des Befehls XFER kann das Programm im RAM auf die gleiche Weise editiert werden wie jedes Programm aus dem RAM>Speicher. Varianten Keine 5>30 EWA 4NEB 812 6071>01 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaa a a a a a a aaa a a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a a aaa a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC 5.7.3 Befehl EWA 4NEB 812 6071>01 BASIC>Interpreter PROG PROG(cr) Wirkung Durch den Befehl PROG wird das gegenwßrtig gewßhlte Programm in das gesteckte Speichermodul Âbertragen. Das gegenwßrtig gewßhlte Programm mu˚ sich hierbei im RAM befinden. Nach der Eingabe von PROG(cr) gibt BASIC die Nummer der Modul>Datei an, unter der das Programm abgelegt wird. Hinweis: Das Programmieren und L‘schen von EPROM>Speichermodulen wird von der Baugruppe nicht unterstÂtzt. Hierzu ist ein COM>Softwarepaket auf dem Programmiergerßt erforderlich. Wenn Sie mit nachfolgend beschriebenen Befehlen ein EPROM-Speichermodul programmieren wollen oder kein Speichermodul gesteckt haben, so wird die Fehlermeldung ∫CAN©T PROGRAM AN EPROM MODULE∫ bzw. ∫UNKNOWN MODULE/NO BASIC MODULE∫ ausgegeben. Soll ein bis dahin nicht am CP 521 BASIC verwendetes Speichermodul zur Aufnahme von Programmen verwendet werden, so fragt der CP 521 BASIC interaktiv nach, ob das Speichermodul berschrieben werden darf. 5>31 BASIC>Interpreter CP 521 BASIC Beispiel >LIST 10 FOR I=1 TO 10 20 PRINT I 30 NEXT I READY >PROG 12 READY >ROM 12 READY >LIST 10 FOR I=1 TO 10 20 PRINT I 30 NEXT I READY > In diesem Beispiel ist das soeben im Speichermodul abgelegte Programm das 12. darin befindliche Programm. Varianten Keine 5>32 EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC 5.7.4 Befehle Befehl Befehl EWA 4NEB 812 6071>01 BASIC>Interpreter PROG1 und PROG2 PROG1(cr) und PROG2(cr) Wirkung PROG1(cr) Nach Anschalten der Stromversorgung mÂssen Sie normalerweise die bidirektio> nale Schnittstelle der Baugruppe initialisieren und hierzu unbedingt die Leerschritt>Taste betßtigen. Zur Vereinfachung verfÂgt BASIC Âber einen Befehl PROG1. Dieser Befehl programmiert den gepufferten RAM>Speicher mit den Angaben zur Baudrate. Beim nßchsten "Einschalten"der Baugruppe, d.h. beim RESET, liest der CP 521 BASIC diese Angaben ein und initialisiert die bidirektio> nale Schnittstelle mit dem abgespeicherten Wert der Baudrate. Anschlie˚end wird das Programm, das sich im gepufferten RAM>Speicher befindet, gestartet. PROG2(cr) Der Befehl PROG2 hat die gleiche Wirkung wie der Befehl PROG1, jedoch ruft die Baugruppe nach RESET sofort das Programm mit der Nummer 1 auf, das im Speichermodul abgespeichert ist. Hinweis: Der Start eines BASIC>Programms mit PROG1 / PROG2 wird nur ausgefÂhrt, wenn der Betriebsartenschalter der Baugruppe auf RUN steht und bei PROG2 ein Speichermodul gesteckt ist. Ist kein oder ein unzulßssiges Speichermodul gesteckt, wird die Fehlermeldung UNKNOWN MODULE / NO BASIC MODULE ausgegeben. Bei gestecktem EPROM>Modul erfolgt eine Fehlermeldung des Interpreters nach Eingabe von PROG1 bzw. PROG2. Die Informationen zum Anlauf werden aber trotzdem abgespeichert. 5>33 BASIC>Interpreter CP 521 BASIC Nach der Eingabe von PROG1/PROG2 gibt BASIC die Nummer der Modul>Datei an, unter der das Programm abgelegt wird. Mit den Befehlen PROG1 / PROG2 ist es m‘glich, nach einem RESET sofort ein Programm durch RUN abzurufen, ohne da˚ die Baugruppe mit einem Terminal verbunden ist. Die Angabe PROG2 entspricht damit einer Eingabe der Befehls> folge ROM 1, RUN. Dies ist fÂr Steueranwendungen ideal, wo es nicht immer m‘glich ist, Âber ein Terminal zu verfÂgen. Sie k‘nnen mit Hilfe dieser Eigenschaft eine spezielle Initialisierungsfolge in BASIC erstellen. Durch die Verwendung von PROG (ohne Parameter) lßuft der CP 521 BASIC nach dem nßchsten Einschalten (RESET) wieder mit der Auto>Baud>Routine (Betßtigung der Leerschritt>Taste durch den Anwender) hoch. ERASE a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a 5.7.5 Befehl ERASE [integer] Wirkung Das Programm mit der hinter dem Befehl ERASE stehenden ∫Programmnummer∫ wird als gel‘scht markiert. Ist die Programmnummer keine gÂltige (<1 oder >254), wird eine Fehlermeldung ausgegeben. Varianten keine REORG aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaa 5.7.6 Befehl REORG (cr) Wirkung Der Befehl REORG entfernt die mit ERASE als gel‘scht markierten Programme. Der Speicher wird so komprimiert, da˚ die darin verbleibenden Programme lÂckenlos aneinandergereiht im Speichermodul stehen. Die entsprechenden Programmnummern werden beibehalten. Gel‘schte Programmnummern werden wieder freigegeben. Varianten keine 5>34 EWA 4NEB 812 6071>01 BASIC>Interpreter a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Hinweis: Wßhrend ∫REORG∫ darf der CP nicht ausgeschaltet werden, da sonst mit einer Zerst‘rung der Programme auf dem Speichermodul gerechnet werden mu˚. 5.8 Beschreibung der Anweisungen Die Beschreibung der Anweisungen ist nach folgendem 3>zeiligen Schema tabellarisch aufgebaut. f Zeile 1: beschreibt die Syntax der Anweisung, f Zeile 2: gibt an in welcher Betriebsart die Anweisung genutzt werden kann, f Zeile 3: gibt eine Klassifizierung der Anweisung an, ob sie z.B. zur Programm> steuerung, fÂr Ein>/Ausgabefunktionen oder fÂr anderes verwendet werden kann. CLEAR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5.8.1 Anweisung CLEAR Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Die CLEAR>Anweisung setzt alle Variablen gleich Null, l‘scht die internen Puffer und setzt die Interrupts und Stacks zurÂck. Das bedeutet, da˚ nach der CLEAR> Anweisung eine ONTIME>Anweisung (Æ Kap. 5.8.19) ausgefÂhrt werden mu˚, bevor BASIC wieder Interrupts annimmt. Ebenso ist eine Software>Sperre durch ERROR Âber die ONERR>Anweisung (Æ Kap. 5.8.18) nicht m‘glich, solange nicht eine Anweisung ONERR [integer] ausgefÂhrt wurde. Die CLEAR>Anweisung berÂhrt nicht den Timer, der durch die CLOCK1>Anweisung (Æ Kap. 5.8.20) gestartet wird. CLEAR l‘scht au˚erdem nicht den Speicher, der fÂr Strings reserviert wurde, so da˚ es nicht erforderlich ist, die Anweisung STRING [expr], [expr] (Æ Kap. 5.12.1) einzugeben, um wieder Speicherplatz fÂr Strings zu reser> vieren, nachdem die CLEAR>Anweisung ausgefÂhrt wurde. CLEAR wird allgemein einfach dazu verwendet, alle Variablen zu "l‘schen". Varianten Keine EWA 4NEB 812 6071>01 5>35 BASIC>Interpreter CLEARI und CLEARS a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaa a 5.8.2 CP 521 BASIC Anweisungen CLEARI und CLEARS Betriebsart COMMAND und/oder RUN Typ Steuerung a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Wirkung Anweisung CLEARI aaaaaaa a a a a a a aaaaaaa a a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a a aaaaaaa a a a a a a aaaaaaa a Alle von BASIC aktivierten Interrupts werden gel‘scht (ONTIME). Der Timer des CP 521 BASIC ist hiervon nicht betroffen. Sie k‘nnen durch CLEARI den ONTIME> Interrupt wßhrend bestimmter Programmteile sperren und ihn nachher durch den Befehl ONTIME wieder freigeben. Anweisung CLEARS Der Befehl CLEARS setzt die interpretereigenen Stacks (Argumentstack und Steu> erstack) zurÂck. Dies kann erforderlich sein, wenn die Stacks nach einem Fehler in einer Subroutine (GOSUB) oder einer Programmschleife (DO>WHILE, FOR>NEXT, DO>UNTIL) gel‘scht werden sollen, damit das Programm ∫normal∫ fortgesetzt werden kann. CLEARS kann auch dazu verwendet werden, um Programm> schleifen (DO>WHILE, FOR>NEXT, DO>UNTIL) vorzeitig abzubrechen. Argumente, die durch PUSH auf den Argumentstack gebracht wurden, sind verloren. Beispiel >5 REM TEST VON CLEARS UND CLEARI 10 PRINT ”MULTIPLIKATIONSTEST, SIE HABEN JEWEILS 5 SEKUNDEN ZEIT” >20 FOR I = 2 TO 9 >30 N = INT(RND*10) : A = N*I >40 PRINT ”WAS IST”, N, ”*”, I, ”?”: CLOCK1 >50 TIME = 0 : ONTIME 5, 200 : INPUT R: IF R<>A THEN 100 >60 PRINT ”DAS IST RICHTIG”: TIME=0: NEXT I >70 PRINT ”DANKE,DAS WAR ES” >80 PRINT ”VIELLEICHT EIN ANDERES MAL WIEDER” : END >100 PRINT ”FALSCH, VERSUCH ES NOCH EINMAL”: GOTO 50 >200 REM ZEIT IST ABGELAUFEN; C-STACK BEREINIGEN >210 PRINT >220 CLEARS : PRINT ”LEIDER VERLOREN: SIE HABEN ZU LANGE GEBRAUCHT” >230 CLEARI : INTERRUPT WIEDER FREIGEBEN 5>36 EWA 4NEB 812 6071>01 aaaaaaa a a aaaaaaa a a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a a aaaaaaa a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaa a CP 521 BASIC 5.8.3 Baudrate: Paritßt: EWA 4NEB 812 6071>01 BASIC>Interpreter INIT Anweisung INIT [integer] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Mit dem Befehl INIT k‘nnen die Eigenschaften der seriellen bidirektionalen Schnittstelle parametriert werden. Hinweis: Die Umparametrierung der bidirektionalen Schnittstelle im Kommando>Modus bewirkt unter Umstßnden, da˚ die Baugruppe wegen unterschiedlicher Parameter vom Terminal nicht mehr ansprechbar ist. 1: 2: 3: 4: 5: 6: 7: 8: 110 Bd 200 Bd 300 Bd 600 Bd 1200 Bd 2400Bd 4800 Bd 9600 Bd 0: 1: 2: 3: f4: gerade (Default>Einstellung) ungerade mark ∫1∫ space ∫0∫ Paritßt wird nicht ausgewertet (Default>Einstellung) 5>37 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC 5>38 BASIC>Interpreter Hinweis: Soll die Paritßt nicht ausgewertet werden und ist ein Datenformat mit Paritßt parametriert, ist die sendeseitige Paritßt immer NULL. Handshake: 0: 1: 2: 3: Datenformat: 0: 1: Schnittstelle: 0: 1: ohne Handshake (Default>Einstellung) Auswertung der Modem>Signale (nur V.24) XON/XOFF>Protokoll PG>Protokoll 1 Startbit, 7 Datenbits, 1 Paritßtsbit, 2 Stoppbits 1 Startbit, 8 Datenbits, 1 Paritßtsbit, 1 Stoppbit (Default>Einstellung) 2: 1Startbit, 8 Datenbits, 2 Stoppbits 3: 1 Startbit, 7 Datenbits, 2 Stoppbits 4: 1 Startbit, 7 Datenbits, 1 Paritßtsbit, 1 Stoppbit f5: 1 Startbit, 8 Datenbits, 1 Stoppbit TTY V.24 (Default>Einstellung) Hinweis: Zur Kommunikation PG/PC und CP 521 BASIC mu˚ die serielle Schnittstelle mit 8!Datenbits parametriert sein. Die Schnittstellenparameter mÂssen bei PG/PC und CP 521 BASIC identisch sein. Bedeutung: Mit dem Befehl INIT parametrieren Sie die bidirektio> nale serielle Schnittstelle. Die Parameterliste mu˚ im> mer als fÂnfstellige Zahl angegeben werden. Beispiel: INIT 61241 EWA 4NEB 812 6071>01 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC f f f f Baudrate: Paritßt: Handshake: Datenformat: f Schnittstelle: 5.8.4 Baudrate: EWA 4NEB 812 6071>01 BASIC>Interpreter Hinweis: Ein Wert fÂr die Paritßt mu˚ auch dann angegeben werden, wenn ein Datenformat ohne Paritßt gewßhlt wird. Der Wert fÂr die Paritßt wirkt sich dann nicht aus. Die Schnittstelle ist wie folgt parametriert: 2400 ungerade XON/XOFF>Protokoll aktiviert 10>Bit>Zeichenrahmen (1 Startbit, 7 Datenbits, 1 Paritßtsbit, 1 Stoppbit) V.24 INIT# Anweisung INIT# [integer] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Mit dem Befehl INIT# k‘nnen die Eigenschaften der unidirektionalen Schnitt> stelle parametriert werden. 1: 2: 3: 4: 5: 6: 7: 110 Bd 200 Bd 300 Bd 600 Bd 1200 Bd 2400Bd 4800 Bd (Default>Einstellung) 5>39 aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa BASIC>Interpreter Bedeutung: Beispiel : f f f f Baudrate: Paritßt: Handshake: Datenformat: 5>40 CP 521 BASIC Paritßt: 0: 1: 2: f3: gerade ungerade mark ∫1∫ space ∫0∫ Handshake: 0: 1: ohne BUSY>Signal (Default>Einstellung) Auswertung des BUSY>Signals Datenformat: 0: 1: (Default>Einstellung) 1 Startbit, 7 Datenbits, 1 Paritßtsbit, 2 Stoppbits 1 Startbit, 8 Datenbits, 1 Paritßtsbit, 1 Stoppbit (Default>Einstellung) 2: 1 Startbit, 8 Datenbits, 2 Stoppbits 3: 1 Startbit, 7 Datenbits, 2 Stoppbits 4: 1 Startbit, 7 Datenbits, 1 Paritßtsbit, 1 Stoppbit f5: 1 Startbit, 8 Datenbits, 1 Stoppbit Mit dem Befehl INIT# parametrieren Sie die unidirek> tionale Schnittstelle. Die Parameterliste mu˚ als vier> stellige Zahl angegeben werden. Hinweis: Das Busy>Signal ist LOW>aktiv. INIT# 3010 Die Schnittstelle ist wie folgt parametriert: 300 gerade BUSY>Signal wird ausgewertet 11>Bit>Zeichenrahmen (1 Startbit, 7 Datenbits, 1 Paritßtsbit, 2!Stoppbits) EWA 4NEB 812 6071>01 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaa a CP 521 BASIC 5.8.5 EWA 4NEB 812 6071>01 BASIC>Interpreter BREAK Anweisung BREAK ([integer]) Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Mit dem Befehl BREAK ist es m‘glich, die Unterbrechbarkeit von BASIC>Program> men und Ausgaben durch <CTRL C> zu steuern. Nach BREAK (0) k‘nnen Programme nicht mehr mit <CTRL C> abgebrochen werden. Nach AusfÂhrung der BREAK>Anweisung (1) (Default>Einstellung) ist ein Pro> grammabbruch jederzeit m‘glich. Beispiel >10 STRING 1,5: A=1: REM STRINGDEFINITION >20 $(0) = ”BREAK” : REM ”BREAK” IST DAS PASSWORT >30 BREAK (0): REM CONTROL-C ABSCHALTEN >40 FOR I=1 TO 1000 : REM DUMMY SCHLEIFE >50 J=SIN (I) >60 K=GET : IF K<>0 THEN 80 ELSE NEXT I >70 END >80 IF K=ASC ($(0),A) THEN A=A+1 ELSE A=1 >90 REM TEST AUF BEREINSTIMMUNG >100 IF A=1 THEN NEXT I >110 IF A=6 THEN 130 ELSE NEXT I >120 END >130 PRINT ”BREAK” >140 BREAK (1) : REM CONTROL-C EINSCHALTEN In diesem Beispiel stoppt die Eingabe des Wortes ∫BREAK∫ die Programm> ausfÂhrung, d.h. das Wort ∫BREAK∫ ist ein Pa˚wort. Hinweis: Sie sollten nach BREAK (0) in Ihrem Programm eine Eingriffsm‘glichkeit vorsehen, um zumindest wßhrend der Testphase, das Programm dennoch beenden zu k‘nnen. Andernfalls ist ein Programmabbruch nur noch durch das Ausschalten des CP 521 BASIC m‘glich. 5>41 aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter 5.8.6 Anweisung Anweisung Anweisung 5>42 CP 521 BASIC DATA > READ > RESTORE Anweisungen DATA - READ - RESTORE Betriebsart RUN Typ Zuweisung Wirkung DATA [expr] {, [expr], ...} DATA spezifiziert AusdrÂcke, die mit einer READ>Anweisung eingelesen werden k‘nnen. Wenn Zeilen mehrere derartige AusdrÂcke enthalten, mÂssen diese durch Kommas getrennt sein. READ [var] {, [var], ...} READ liest die AusdrÂcke wieder ein, die in der DATA>Anweisung spezifiziert wurden und weist der Variablen in der READ>Anweisung den Wert des Ausdrucks zu. Hinter der READ>Anweisung mÂssen stets eine oder mehrere Variablen stehen. Falls hinter der READ>Anweisung mehrere Variablen stehen, mÂssen diese durch Komma getrennt sein. RESTORE RESTORE setzt den internen Lesezeiger auf den Anfang der mit DATA spezifizierten AusdrÂcke zurÂck, so da˚ diese erneut eingelesen werden k‘nnen. EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Beispiel >10 FOR I=1 TO 3 >20 READ A,B >30 PRINT A,B >40 NEXT I >50 RESTORE >60 READ A,B >70 PRINT A,B >80 DATA 10, 20, 10/2, 20/2, SIN(PI), COS(PI) >RUN 10 20 5 10 0 -1 10 20 Varianten Keine Erlßuterung des obigen Beispiels: Bei jedem Auftreten einer READ>Anweisung wird der nßchstfolgende Ausdruck in der DATA>Anweisung ausgewertet und der Variablen in der READ>Anweisung zugewiesen. DATA>Anweisungen k‘nnen an beliebiger Stelle im Programm stehen; sie werden nicht ausgefÂhrt und verursachen keine Fehlermeldung. DATA>Anweisungen werden als verkettet angesehen und wirken wie eine gro˚e DATA>Anweisung. Wenn der gesamte Inhalt von DATA eingelesen worden ist und eine weitere READ>Anweisung auftritt, bzw. keine DATA>Anweisung im Programm vorhanden ist, bricht das Programm ab und auf der Konsole wird die Meldung ERROR: NO DATA > IN LINE XX ausgedruckt. EWA 4NEB 812 6071>01 5>43 BASIC>Interpreter DIM a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.7 CP 521 BASIC Anweisung DIM [var(integer)]{,[var(integer)]} Betriebsart COMMAND und/oder RUN Typ Zuweisung Wirkung DIM reserviert Speicherplatz fÂr Arrays (Felder). Zunßchst wird der fÂr Arrays ben‘tigte Speicherbereich gleich NULL angenommen. In BASIC dÂrfen Arrays nur eine Dimension besitzen, und die Gr‘˚e des dimensionierten Array darf 254!Ele> mente nicht Âberschreiten. Variablen, die in einem Programm einmal dimensioniert wurden, dÂrfen nicht neu dimensioniert werden. Jeder Versuch, ein Array neu zu dimensionieren, wird mit einem ERROR: ARRAY SIZE quittiert. Wird eine Arrayvariable verwendet, der nicht durch die DIM>Anweisung eine Dimension zugewiesen wurde, nimmt BASIC einen Standardwert von 10 fÂr die Arraygr‘˚e an. Nach AusfÂhrung des Befehls RUN (Æ Kap. 5.6.1), des Befehls NEW (Æ!Kap.!5.6.5) oder der CLEAR>Anweisung (Æ Kap. 5.8.1) werden alle Arrays wieder gleich Null gesetzt, d.h. wieder aus dem Speicher entfernt. Die Anzahl der Byte, die fÂr ein Array reserviert werden, ist gleich dem Sechsfachen der um Eins vergr‘˚erten Arraygr‘˚e. So ben‘tigt das Array A (100) 606 Byte Speicherplatz. Die maximale Anzahl von dimensionierten Arrays wird durch die Speichergr‘˚e begrenzt. Varianten Mit einer einzigen DIM>Anweisung k‘nnen gleichzeitig auch mehrere Variablen dimensioniert werden, z.B. DIM A(10), B(15), A1(20). Beispiel ERROR BEI DEM VERSUCH EIN ARRAY NOCHMALIG ZU DIMENSIONIEREN >10 A(5)=10 >20 DIM A(5) (BASIC ORDNET DEN DEFAULTWERT 10 ALS FELDGROESSE ZU) (ARRAY KANN NICHT ERNEUT DIMENSIONIERT WERDEN) >RUN ERROR ARRAY SIZE - IN LINE 20 20 5>44 DIM A(5) EWA 4NEB 812 6071>01 CP 521 BASIC DO > UNTIL a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.8 BASIC>Interpreter Anweisung DO-UNTIL [rel expr] Betriebsart RUN Typ Steuerung Wirkung Die Anweisungen DO>UNTIL [rel expr] bieten eine M‘glichkeit, innerhalb eines Programms in BASIC Programmschleifen aufzubauen. Alle Anweisungen zwischen DO und UNTIL [rel expr] werden solange ausgefÂhrt, bis der logische Ausdruck hinter der UNTIL>Anweisung TRUE wird. Schleifen DO!>!UNTIL k‘nnen geschachtelt werden. Beispiele EINFACH DO-UNTIL VERSCHACHELT DO-UNTIL >10 A=0 >20 DO >30 A=A+1 >40 PRINT A >50 UNTIL A=4 >60 PRINT ”FERTIG” >RUN >10 DO : A=A+1 : DO : B=B+1 >20 PRINT A,B,A*B >30 UNTIL B=3 >40 B=0 >50 UNTIL A=3 >RUN 1 2 3 4 FERTIG READY > 1 1 1 2 2 2 3 3 3 1 2 3 1 2 3 1 2 3 1 2 3 2 4 6 3 6 9 READY > Varianten Keine EWA 4NEB 812 6071>01 5>45 BASIC>Interpreter DO > WHILE a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.9 CP 521 BASIC Anweisung DO-WHILE [rel expr] Betriebsart RUN Typ Steuerung Wirkung Die Anweisungen DO>WHILE [rel expr] bieten eine M‘glichkeit, innerhalb eines Programms in BASIC Programmschleifen aufzubauen. Die Wirkung dieser Anweisungen gleicht der von DO>UNTIL [rel expr], jedoch werden hier alle Anweisungen zwischen DO und WHILE [rel expr] solange ausgefÂhrt, wie der logische Ausdruck hinter der WHILE>Anweisung TRUE ist. DO>WHILE>Anwei> sungen und DO>UNTIL>Anweisungen k‘nnen geschachtelt werden. Beispiele EINFACH DO-WHILE VERSCHACHTELTS DO-WHILE >10 DO >20 A=A+1 >30 PRINT A >40 WHILE A<4 >50 PRINT ”FERTIG” >RUN >10 DO : A=A+1 : DO : B=B+1 >20 PRINT A,B,A*B >30 WHILE B<>3 >40 B=0 >50 UNTIL A=3 >RUN 1 2 3 4 FERTIG READY > 1 1 1 2 2 2 3 3 3 1 2 3 1 2 3 1 2 3 1 2 3 2 4 6 3 6 9 READY > Varianten Keine 5>46 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.10 END Anweisung END Betriebsart RUN Typ Steuerung Wirkung Die END>Anweisung beendet den Programmablauf. Programme, die durch die END>Anweisung beendet wurden, k‘nnen mit dem Fortsetzungsbefehl CONT (Æ!Kap. 5.6.2) nicht fortgesetzt werden, d.h. auf der Konsole wird dann eine Meldung ERROR: CAN'T CONTINUE ausgegeben. Wird keine END>Anweisung verwendet, so endet der Programmablauf in einem BASIC>Programm automa> tisch nach AusfÂhrung der letzten Anweisung. Beispiele PROGRAMMENDE NACH: AUSFHRUNG DER LETZTEN ANWEISUNG MIT ANWEISUNG END >10 FOR I=1 TO 4 >20 PRINT I >30 NEXT I >RUN >10 FOR I=1 TO 4 >20 GOSUB 100 >30 NEXT I >40 END >100 PRINT I >110 RETURN >RUN 1 2 3 4 1 2 3 4 READY > READY > Varianten Keine EWA 4NEB 812 6071>01 5>47 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.11 FOR > TO > {STEP} > NEXT Anweisungen FOR-TO-{STEP}-NEXT Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Die Anweisungen FOR > TO > {STEP} > NEXT werden fÂr den Aufbau und die Steue> rung von Schleifen verwendet. Beispiel >10 FOR A=B TO C STEP D >20 PRINT A >30 NEXT A Falls B=0, C=10 und D=2, wird die PRINT>Anweisung (Æ Kap. 5.8.22) in Zeile 20 sechsmal ausgefÂhrt. Es werden dann fÂr "A" die folgenden Werte ausgedruckt: 0, 2, 4, 6, 8, 10. "A" bezeichnet den Namen des Index oder Schleifenzßhlers. Der Wert von "B" ist der Anfangswert des Index, der Wert von "C" der Endwert des Index und der Wert von "D" das Inkrement des Index. Die STEP>Anweisung ist optional. Falls die STEP>Anweisung und der Wert "D" nicht angegeben werden, gilt ein Standardinkrement von 1. Die NEXT>Anweisung bewirkt, da˚ der Wert von "D" zum Index hinzugezßhlt wird. Der Index wird dann mit dem Wert von "C", dem Grenzwert, verglichen. Solange der Index nicht gr‘˚er als der Grenzwert ist, werden weiterhin die Anweisungen zwischen der FOR>Anweisung und der NEXT>Anweisung ausge> fÂhrt. Es ist zulßssig, den Index "rÂckwßrts" zßhlen zu lassen (z.B. FOR I = 100 TO 1 STEP > 1). 5>48 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Beispiele >10 FOR I=1 TO 4 >20 PRINT I >30 NEXT I >RUN 1 2 3 4 READY > >10 FOR I=0 TO 8 STEP 2 >20 PRINT I >30 NEXT I >RUN 0 2 4 6 8 READY > Wirkung BASIC erm‘glicht es, die Anweisungen FOR > TO > {STEP} > NEXT im Kommando> Modus auszufÂhren. Auf diese Weise kann der Anwender beispielsweise Speicherbereiche durch ein kurzes Programm ausgeben lassen, wie FOR I = 512 TO 560: PH0. XBY(I).: NEXT I. Die NEXT>Anweisung darf auch verwendet werden, ohne da˚ dahinter die Variable angegeben werden mu˚. Damit sind Programme wie im folgenden Beispiel m‘glich: Beispiel >10 FOR I = 1 TO 100 >20 PRINT I >30 NEXT Hierbei gilt als Variable zur NEXT>Anweisung stets die Variable, die in der letzten FOR>Anweisung verwendet wurde. EWA 4NEB 812 6071>01 5>49 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter Anweisung Anweisung 5>50 CP 521 BASIC 5.8.12 GOSUB > RETURN Anweisungen GOSUB - RETURN Betriebsart RUN Typ Steuerung Wirkung GOSUB [ln num] Durch die Anweisung GOSUB [ln num] wird die Subroutine, die mit der Zeilennummer ∫ln num∫ beginnt, abgearbeitet. RETURN Mit dieser Anweisung wird das Programm bei der Anweisung fortgesetzt, die auf die zuletzt ausgefÂhrte GOSUB>Anweisung folgt. Die Folge GOSUB > RETURN kann auch "verschachtelt" werden, so da˚ eine Subroutine, die durch die GOSUB>Anweisung aufgerufen wurde, ihrerseits eine weitere Subroutine durch eine GOSUB>Anweisung aufrufen kann. EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Beispiele EINFACHE SUBROUTINE VERSCHACHTELTE SUBROUTINEN >10 FOR I=1 TO 5 >20 GOSUB 100 >30 NEXT I >100 PRINT I >110 RETURN >RUN >10 FOR I=1 TO 3 >20 GOSUB 100 >30 NEXT I >40 END >100 PRINT I, >110 GOSUB 200 >120 RETURN >200 PRINT I*I >210 RETURN >RUN 1 2 3 4 5 READY > 1 1 2 4 3 9 READY > EWA 4NEB 812 6071>01 5>51 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.13 GOTO Anweisung GOTO [ln num] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung GOTO [ln num] bewirkt, da˚ das Programm bei der Zeilennummer ∫ln num∫ fortsetzt, die auf die GOTO>Anweisung folgt. Beispiel 50 GOTO 100 Hierdurch wird, falls es eine Zeile 100 gibt, bewirkt, da˚ das Programm in Zeile!100 fortgesetzt wird. Wenn keine Zeile 100 vorhanden ist, wird auf der Konsole die Meldung ERROR: INVALID LINE NUMBER ausgegeben. Im Gegensatz zum Befehl RUN (Æ Kap. 5.6.1) bewirkt die GOTO>Anweisung, wenn sie im Kommando>Modus ausgefÂhrt wird, keine L‘schung des Speicherbereichs fÂr Variablen oder von Interrupts. Wird jedoch die GOTO>An> weisung im Kommando>Modus ausgefÂhrt, nachdem eine Zeile editiert wurde, l‘scht BASIC den Speicherbereich fÂr Variablen und alle von BASIC aufgerufenen Interrupts. Dies ist notwendig, weil der Variablenspeicher und das BASIC> Programm im gleichen RAM>Speicher abgelegt sind. Durch das Editieren des Programms werden also Variablen zerst‘rt. 5>52 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaa a 5.8.14 ON GOTO und ON GOSUB Anweisung ON [expr] GOTO [ln num]{,[ln num], ... [ln num]} Betriebsart RUN Typ Steuerung ON [expr] GOSUB [ln num]{,[ln num], ... [ln Wirkung Der Wert des Ausdrucks hinter den Anweisungen ON GOTO / ON GOSUB ist der Index zur Liste der Zeilennummern hinter GOTO bzw. GOSUB. Mit der Anweisung, die zur Zeilennummer geh‘rt, auf die der Index zeigt, wird das Programm fortgesetzt. Beispiel >10 ON Q GOTO 100, 200, 300 Wßre Q gleich 0, wÂrde das Programm mit der Zeilennummer 100 fortgesetzt. Bei Q = 1 wÂrde das Programm mit der Zeile 200 fortgesetzt. Bei Q = 2 wÂrde sich GOTO auf Zeile 300 beziehen, usw. Alle Angaben zu GOTO und GOSUB gelten auch zur ON>Anweisung. Ist hier Q kleiner als Null, wird eine Fehlermeldung BAD ARGUMENT ERROR ausgegeben. Ist Q dagegen gr‘˚er als die Liste der Zeilennummern hinter der GOTO> oder GOSUB>Anweisung, wird eine Fehler> meldung ERROR: BAD SYNTAX ausgegeben. Die ON>Anweisung erm‘glicht eine "bedingte Verzweigung" innerhalb eines Programms. EWA 4NEB 812 6071>01 5>53 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.15 IF > THEN > ELSE Anweisung IF-THEN-{ELSE} Betriebsart RUN Typ Steuerung Wirkung Die IF>Anweisung leitet eine Alternativverzweigung ein. Die Anweisungen IF > THEN > ELSE haben allgemein die folgende Form: [ln num] IF [rel expr] THEN gÂltige Anweisung ELSE gÂltige Anweisung Das folgende Beispiel zeigt dies: >10 IF A=100 THEN A=0 ELSE A=A+1 Falls (IF) A = 100 bei AusfÂhrung von Zeile 10, dann (THEN) wird A der Wert 0 zugeordnet. Falls dagegen A nicht gleich 100 ist, erhßlt A den Wert A + 1. Die GOTO>Anweisung kann entfallen, wenn mit der IF>Anweisung auf verschiedene Zeilennummern verzweigt werden soll. Die folgenden Beispiele haben jeweils die gleiche Wirkung: >20 IF INT(A)< 10 THEN GOTO 100 ELSE GOTO 200 >20 IF INT(A)< 10 THEN 100 ELSE 200 Au˚erdem kann auch die THEN>Anweisung durch eine beliebige andere gÂltige Anweisung ersetzt werden, wie nachfolgend dargestellt: >30 IF A<>10 THEN PRINT A ELSE 10 >30 IF A<>10 PRINT A ELSE 10 Die ELSE>Anweisung kann entfallen. Das Programm wird dann bei der nßchsten Anweisung fortgefÂhrt. 5>54 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC EWA 4NEB 812 6071>01 BASIC>Interpreter Beispiel >20 IF A=10 THEN 40 >30 PRINT A In diesem Beispiel wird das Programm bei der Zeilennummer 40 fortgesetzt, wenn!A!= 10. Ist dagegen A ungleich 10, wird Zeilennummer 30 ausgefÂhrt. Hinweis: Wenn die >Anweisungen IF > THEN > ELSE zusammen mit anderen Anweisungen in der gleichen Zeile verwendet werden, ist es m‘glich, bei typischen Pro> grammstÂcken auf SprÂnge zu verzichten. Beispiel >10 IF A=B THEN C=A : A=A/2 >20 PRINT A Der Rest der Zeile wird nur dann ausgefÂhrt, wenn der Test A = B ein Ergebnis liefert, das TRUE ist. Dies bedeutet fÂr das Beispiel, da˚ BASIC, falls A = B, C!= A setzen und dann A = A/2 setzen wÂrde. Falls A ungleich B, wÂrde der Interpreter nur PRINT A ausfÂhren und die Anweisungen C = A : A = A/2 ignorieren. Diese gleiche logische Interpretation gilt auch fÂr die ELSE>Anweisung . 5>55 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.16 INPUT Anweisung INPUT oder ! Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Mit der INPUT>Anweisung k‘nnen Sie Daten wßhrend des Programmablaufs Âber die Konsole eingeben. Durch eine einzige Eingabeanweisung k‘nnen Daten einer oder mehreren Variablen gleichzeitig zugeordnet werden. Die Variablen mÂssen durch Komma getrennt sein. ∫!∫ ist eine AbkÂrzung fÂr die INPUT>Anweisung. Beispiel INPUT A,B Die Ausgabe eines Fragezeichens (?) Âber die Konsole fordert den Bediener auf, zwei Zahlen, durch ein Komma getrennt, einzugeben. Bei ungenÂgender Anzahl von Daten oder fehlerhaftem Datentyp reagiert BASIC durch die Ausgabe der Meldung TRY AGAIN Âber die Konsole. Beispiel >10 INPUT A,B >20 PRINT A,B >RUN ?1 TRY AGAIN ?1,2 1 2 READY 5>56 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Die INPUT>Anweisung kann so geschrieben werden, da˚ eine aussagefßhige Aufforderung ausgegeben wird, die Ihnen die gewÂnschte Eingabe angibt. Die Meldung, die hierbei ausgegeben werden soll, mu˚ in AnfÂhrungszeichen (") an die INPUT>Anweisung angefÂgt werden. Wenn vor der ersten Variablen in der Eingabeliste ein Komma steht, wird das Fragezeichen als Eingabeaufforderung nicht ausgegeben. Beispiele >10 INPUT ”EINGABE ZEICHEN” A >20 PRINT SQR(A) >RUN EINGABE ZEICHEN ?100 10 >10 INPUT ”EINGABE ZEICHEN-” ,A >20 PRINT SQR(A) >RUN EINGABE ZEICHEN-100 10 Durch eine INPUT>Anweisung k‘nnen auch Zeichenketten zugeordnet werden. Zeichenketten werden stets durch ein WagenrÂcklaufzeichen (CR) abgeschlossen. Wenn also durch eine einzige INPUT>Anweisung mehrere Zeichenketten ange> fordert werden, fordert BASIC Sie hierzu durch ein Fragezeichen auf. Beispiele >10 STRING 1,15 >20 INPUT ”NAME: ”,$(0) >30 PRINT ”HELLO ”,$(0) >RUN NAME: MARIA HELLO MARIA >10 STRING 2,15 >20 INPUT ”NAMEN: ”,$(0),$(1) >30 PRINT ”HELLO ”,$(0),”UND ”,$(1) >RUN NAMEN: KLAUS ?ANNE HELLO KLAUS UND ANNE READY READY EWA 4NEB 812 6071>01 5>57 BASIC>Interpreter CP 521 BASIC Au˚erdem k‘nnen auch gleichzeitig Zeichenketten und Variablen durch eine einzige INPUT>Anweisung zugeordnet werden. Beispiel >10 STRING 1, 10 >20 INPUT ”NAME(CR), ALTER”,$(0),A >30 PRINT ”HELLO ”,$(0),”, DU BIST ”,A,”JAHRE ALT” >RUN NAME(CR), ALTER - KLAUS ?15 HELLO KLAUS, DU BIST 15 JAHRE ALT READY > 5>58 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.17 LET Anweisung LET [var] = [expr] Betriebsart COMMAND und/oder RUN Typ Zuweisung Wirkung Durch die LET>Anweisung wird einer Variablen der Wert eines Ausdrucks zuge> wiesen. LET hat die folgende allgemeine Form: LET [var] = [expr] Beispiele >10 LET A = 10*SIN(3)/100 >20 LET A = A + 1 Das Gleichheitszeichen ∫=∫ in der LET>Anweisung ist also nicht eigentlich ein Gleichsetzungszeichen, sondern eher ein "Austauschoperator", der hier besagt, da˚ A durch A plus Eins zu ersetzen ist. Das Wort LET ist immer nur wahlweise zu verwenden, d.h.: >10 LET A = 2: REM IST GLEICH A = 2 Wenn die LET>Anweisung nicht ausdrÂcklich angegeben wird, gilt sie als soge> nannte implizite Anweisung. Im vorliegenden GHB werden durch LET sowohl die LET>Anweisung wie auch die implizite LET>Anweisung bezeichnet. EWA 4NEB 812 6071>01 5>59 BASIC>Interpreter CP 521 BASIC Die LET>Anweisung kann auch verwendet werden, um Zeichenketten Variablen zuzuweisen, d.h.: LET $(0)=”DAS IST EIN STRING” LET $(1)=$(0) Zeichenketten k‘nnen jedoch erst zugeordnet werden, nachdem unbedingt die STRING>Anweisung [expr], [expr] ausgefÂhrt wurde, da sonst eine Fehlermeldung ERROR: MEMORY ALLOCATION ausgegeben wird. 5>60 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.18 ONERR Anweisung ONERR [ln num] Betriebsart RUN Typ Steuerung Wirkung Mit der ONERR>Anweisung k‘nnen Sie eventuell auftretende Arithmetikfehler wßhrend der ProgrammausfÂhrung abfangen. Durch die ONERR>Anweisung k‘nnen jedoch nur Fehler der Typen ARITH. OVERFLOW, ARITH. UNDERFLOW, DIVIDE BY ZERO und BAD ARGUMENT "abgefangen" werden, andere Fehler nicht. Beim Auftreten eines Arithmetikfehlers hinter der ONERR>Anweisung setzt der Interpreter das Programm bei der Zeilennummer fort, die auf die ONERR>Anweisung folgt. Die ONERR>Anweisung soll als einfache M‘glichkeit angesehen werden, Fehler abzufangen, die auftreten, wenn Sie nach einer INPUT>Anweisung fehlerhafte Daten eingeben. Mit der ONERR>Anweisung haben Sie auch die M‘glichkeit, festzustellen, welcher Fehlertyp eingetreten ist. Hierzu mu˚ die externe Speicherstelle 257(101H) geprÂft werden, nachdem der Fehlerzustand abgefangen wurde. Hierbei gelten folgende Fehlercodes: ERROR CODE = 10 - DIVIDE BY ZERO ERROR CODE = 20 - ARITH OVERFLOW ERROR CODE = 30 - ARITH UNDERFLOW ERROR CODE = 40 - BAD ARGUMENT Diese Speicherstelle kann mit der Anweisung XBY (257) abgefragt werden. EWA 4NEB 812 6071>01 5>61 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.19 ONTIME Anweisung ONTIME [expr], [ln num] Betriebsart RUN Typ Steuerung Wirkung Da BASIC eine Programmzeile innerhalb von Millisekunden abarbeitet, die Timer/Zßhler jedoch im Zeitbereich von os arbeiten, wurde als Abhilfe fÂr diese Situation die ONTIME>Anweisung eingefÂhrt. ONTIME erzeugt hierzu jedesmal dann einen Interrupt, wenn der spezielle Funktionsoperator TIME mindestens so gro˚ wie der Ausdruck ist, der auf die ONTIME>Anweisung folgt. Es wird immer der ganzzahlige Anteil von TIME mit dem ganzzahligen Anteil des Ausdrucks verglichen. Der Interrupt erzwingt ein GOSUB (ÆKap. 5.8.12) zu der Zeilen> nummer ∫ln num∫ die hinter dem Ausdruck ∫expr∫ in der ONTIME>Anweisung angegeben ist. Da die ONTIME>Anweisung mit dem speziellen Funtionsoperator TIME arbeitet, mu˚ die CLOCK1>Anweisung ausgefÂhrt werden, damit ONTIME wirksam ist. Fehlt die CLOCK1>Anweisung, so wird der spezielle Funktionsoperator TIME nicht hochgezßhlt, und ONTIME kann nicht wirksam werden. Periodische Interrupts k‘nnen erzeugt werden, wenn in der Interrupt>Routine nochmals die Ontime>Anweisung ausgefÂhrt wird. 5>62 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Beispiel >10 TIME=0 : CLOCK1 : ONTIME 2,100 : DO >20 WHILE TIME<10 : END >100 PRINT ”TIMER UNTERBRICHT BEI -”, TIME,”SEKUNDEN” >110 ONTIME TIME+2,100 : RETI >RUN TIMER UNTERBRICHT BEI- 2.045 SEKUNDEN TIMER UNTERBRICHT BEI- 4.045 SEKUNDEN TIMER UNTERBRICHT BEI- 6.045 SEKUNDEN TIMER UNTERBRICHT BEI- 8.045 SEKUNDEN TIMER UNTERBRICHT BEI- 10.045 SEKUNDEN READY Es mag vielleicht verwundern, da˚ die ausgedruckte Zeit (TIME) 45 ms hinter dem Zeitpunkt liegt, an dem der Interrupt erzeugt werden sollte. Das liegt daran, da˚ das Terminal, auf dem dieses Beispiel gedruckt wurde, bei 4800 Baud lief und etwa 45 ms ben‘tigte, um die Meldung TIMER INTERRUPT AT >∫ ∫ auszudrucken. Wenn diese Verz‘gerung nicht tragbar ist, soll der Wert des speziellen Funktions> operators TIME zu Beginn der Interrupt>Routine einer Variablen zugeordnet werden. Beispiel: >10 TIME=0 : CLOCK1 : ONTIME 2,100 : D0 >20 WHILE TIME<10 : END >100 A=TIME >110 PRINT ”TIMER UNTERBRICHT BEI -”,A,”SEKUNDEN” >120 ONTIME A+2,100 : RETI >RUN TIMER TIMER TIMER TIMER TIMER UNTERBRICHT UNTERBRICHT UNTERBRICHT UNTERBRICHT UNTERBRICHT BEIBEIBEIBEIBEI- 2 SEKUNDEN 4 SEKUNDEN 6 SEKUNDEN 8 SEKUNDEN 10 SEKUNDEN READY EWA 4NEB 812 6071>01 5>63 BASIC>Interpreter CP 521 BASIC Die ONTIME>Interrupt>Routine mu˚ als letzte Anweisung ∫RETI∫ enthalten, damit weitere ONTIME>Interrupts m‘glich sind. Das BASIC>Programm wird nach AusfÂhrung des Befehls RETI an der Stelle fortgesetzt, an der es durch den ONTIME>Interrupt unterbrochen wurde. Die ONTIME>Anweisung stellt gegenÂber den meisten BASIC>Dialekten eine Besonderheit dar. Diese leistungsfßhige Anweisung macht es ÂberflÂssig, den Wert des Operators TIME wßhrend des ganzen BASIC>Programms in regel> mß˚igen Abstßnden abzufragen. Durch CLEARI wird die ONTIME>Anweisung wieder aufgehoben. aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.20 CLOCK1 und CLOCK0 Anweisungen CLOCK1 und CLOCK0 Betriebsart COMMAND und/oder RUN Typ Steuerung aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaa Wirkung Anweisung CLOCK1 Die CLOCK1>Anweisung gibt den Timer frei, der in BASIC resident verfÂgbar ist. Nach AusfÂhrung der CLOCK1>Anweisung wird der spezielle Funktionsoperator TIME (Zeit) alle 5 ms inkrementiert. Nachdem TIME den Wert von 65.535,995 erreicht hat, erfolgt ein eberlauf, und TIME lßuft mit einem Wert von 0 weiter. Der spezielle Funktionsoperator TIME zßhlt von 0 bis 65.535,995 Sekunden. Sobald der Zßhlwert von 65.535,995 Sekunden erreicht ist, springt der Zßhlwert auf Null zurÂck. Die zur CLOCK1>Anweisung geh‘renden Interrupts bewirken, da˚ Programme unter MCS!BASIC mit etwa 99,6% der normalen Geschwindigkeit ablaufen. Die Interrupt>Abarbeitung der Einrichtung Timer belegt also nur etwa 0,4% der gesamten CPU>Zeit. Dieser sehr geringe Interrupt>Aufwand konnte nur durch die schnelle und effektive Interrupt>Verarbeitung mit dem Prozessor erreicht werden. 5>64 EWA 4NEB 812 6071>01 BASIC>Interpreter a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC Anweisungen CLOCK0 Die CLOCK0>Anweisung (Null) schaltet den Timer ab. Nach AusfÂhrung von CLOCK0 wird also der spezielle Funktionsoperator TIME nicht mehr inkremen> tiert. CLOCK0 ist die einzige Anweisung, die den Timer sperren kann. Varianten Keine Neben dem Timer zur zeitgesteuerten Programmbearbeitung besteht die M‘glichkeit, Datum und Uhrzeit Âber den externen Uhrenbaustein mit den Funktionen SETCLOCK und RDCLOCK (Æ Kap. 5.13.1/2) zu stellen und auszulesen. Bei der Ein> und Ausgabe ist es m‘glich, wahlweise deutsches oder amerikani> sches Format zu wßhlen. EWA 4NEB 812 6071>01 5>65 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.21 TIME Funktion TIME Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Der Operator TIME wird verwendet, um einen Wert des Timers auszulesen und/oder diesem zuzuordnen. Nach einem RESET ist TIME = 0. Die CLOCK1>An> weisung (Æ Kap. 5.8.20) startet den Timer. Solange er freigegeben ist, wird der spezielle Funktionsoperator TIME nach jeweils 5 ms inkrementiert. TIME wird in Sekunden angegeben. Wenn TIME ein Wert durch eine LET>Anweisung zugeordnet wird (d.h. TIME = 100), wird nur der ganzzahlige Anteil von TIME verßndert. >CLOCK1 (gibt die Uhrenfunktion frei) >CLOCK0 (sperrt die Uhrenfunktion) >PRINT TIME 3.315 (zeigt TIME an) >TIME = 0 (setzt TIME = 0) >PRINT TIME .315 (zeigt TIME an) (nur die Ganzzahl von TIME wird verndert) 5>66 EWA 4NEB 812 6071>01 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a CP 521 BASIC >PRINT 10*10, 3*3 100 9 EWA 4NEB 812 6071>01 BASIC>Interpreter 5.8.22 PRINT Anweisung PRINT oder P. oder ? [Liste von Ausdrcken] Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung Die PRINT>Anweisung weist BASIC an, Daten Âber die Konsole auszugeben. Hierbei k‘nnen die Werte von AusdrÂcken, Zeichenketten, Konstanten oder Variablen ausgegeben werden. Die verschiedenen Formen k‘nnen auch in der Ausgabeliste zusammengefa˚t werden und mÂssen jeweils durch Komma ge> trennt werden. Wenn die Liste durch ein Komma abgeschlossen wird, entfallen WagenrÂcklauf und Zeilenvorschub. ∫P.∫ und ∫?∫ sind AbkÂrzungen fÂr die PRINT>Anweisung. Beispiel >PRINT ”MCS BASIC” MCS BASIC >PRINT 5,1E3 5 1000 Die Werte werden nebeneinander ausgegeben, jeweils durch zwei Blanks getrennt. Eine PRINT>Anweisung ohne Argumente bewirkt, da˚ an die Konsole nur die Zeichen fÂr WagenrÂcklauf und Zeilenvorschub ausgegeben werden. Hinweis: Die bidirektionale serielle Schnittstelle kann durch INIT (Æ Kap. 5.8.3) parame> triert werden. Anmerkung Zeilenvorschub und WagenrÂcklauf nach der PRINT>Anweisung erfolgen auto> matisch. 5>67 BASIC>Interpreter CP 521 BASIC SPEZIELLE ANWEISUNGEN ZUR AUSGABEFORMATIERUNG TAB ([expr]) TAB ([expr]) wird in der PRINT>Anweisung verwendet, um Daten genau positioniert Âber die Ausgabeeinrichtung ausgeben zu lassen. TAB!([expr]) gibt an, an welcher Stelle die Ausgabe des nßchsten Wertes in der Ausgabeliste begonnen werden soll. BASIC ignoriert die TAB>Funktion, wenn der Druckkopf oder Cursor die durch TAB spezifizierte Position bereits erreicht oder Âber> schritten hat. Beispiel >PRINT TAB(5),”X”,TAB(10),”Y” X Y SPC ([expr]) SPC ([expr]) wird in der PRINT>Anweisung verwendet, um BASIC zu veranlassen, die Anzahl der Leerstellen auszugeben, die als Argument von SPC angegeben wurde. Beispiel >PRINT A,SPC(5),B Hierdurch k‘nnen Âber die beiden Leerstellen hinaus, die normalerweise ausge> geben werden, fÂnf weitere Leerstellen zwischen A und B eingefÂgt werden. 5>68 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter CR CR in einer PRINT>Anweisung bewirkt einen WagenrÂcklauf, unterdrÂckt jedoch den Zeilenvorschub. Auf diese Weise kann auf einem Bildschirm, ein und dieselbe Zeile immer wieder beschrieben werden. Beispiel >10 FOR I=1 TO 1000 >20 PRINT I,CR, >30 NEXT I Dieses Programm bewirkt, da˚ die Ausgabe immer in derselben Zeile erfolgt. Es wird kein Zeilenvorschubzeichen an die Konsole Âbertragen. USING (Sonderzeichen) Mit USING wird angegeben, in welchem Format die ausgegebenen Werte dargestellt werden sollen. BASIC "speichert" das gewÂnschte Format nach AusfÂhrung der USING>Anweisung ab. Nach einer USING>Anweisung erfolgen also alle Ausgaben in dem Format, das durch die letzte ausgefÂhrte USING> Anweisung festgelegt wurde. Die USING>Anweisung mu˚ nicht in jeder PRINT> Anweisung enthalten sein, solange das Format gleichbleibt. ∫U∫ ist die AbkÂrzung fÂr USING. FÂr USING bestehen die folgenden Optionen: EWA 4NEB 812 6071>01 5>69 BASIC>Interpreter CP 521 BASIC USING (Fx) > Hierdurch wird veranla˚t, alle Zahlen im Gleitpunktformat auszugeben. Der Wert x gibt an, wieviele signifikante Ziffern ausgegeben werden. Bei x = 0 gibt BASIC nachgestellte Nullen nicht aus, so da˚ die Anzahl der Ziffern von der Zahl abhßngt. BASIC gibt auch bei x = 1 oder 2 mindestens drei signifikante Ziffern aus. Der h‘chstzulßssige Wert ist x = 8. Beispiel >10 PRINT USING(F3),1,2,3 >20 PRINT USING(F4),1,2,3 >30 PRINT USING(F5),1,2,3 >40 FOR I=10 TO 40 STEP 10 >50 PRINT I >60 NEXT I >RUN 1.OO E 0 2.00 E 0 3.00 E 0 1.000 E 0 2.000 E 0 3.000 E 0 1.0000 E 0 2.0000 E 0 3.0000 E 0 1.0000 E+1 2.0000 E+1 3.0000 E+1 4.0000 E+1 READY 5>70 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter USING (#.#) > Hierdurch wird BASIC angewiesen, alle Zahlen im Ganzzahl> oder Dezimalformat auszugeben. Die Anzahl der "#" vor dem Dezimalpunkt gibt die Anzahl der signifikanten Ganzzahlstellen an. Fehlt der Dezimalpunkt, werden nur ganze Zahlen ausgegeben. Z.B. USING (###.###), USING (######) und USING (######.##) sind zulßssige Anweisungen. Das Zeichen ∫#∫ darf bis zu acht Mal verwendet werden. Kann BASIC den Wert nicht im gewÂnschten Format ausgeben (meistens, weil er zu gro˚ ist), wird zunßchst ein Fragezeichen (?) an die Konsole ausgegeben und dann die Zahl im unten beschriebenen freien Format wiedergegeben. Beispiel >10 PRINT USING(##.##),1,2,3 >20 FOR I=1 TO 120 STEP 20 >30 PRINT I >40 NEXT I >RUN 1.00 1.00 21.00 41.00 51.00 81.00 2.00 3.00 ?101 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa READY aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Hinweis: Die Formate USING (Fx) und USING (#.#) ordnen die ausgegebenen Zahlen stets in Spaltenform nach dem Dezimalpunkt. Auf diese Weise sind die ausgegebenen Zahlenspalten leicht lesbar. EWA 4NEB 812 6071>01 5>71 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter Anweisung Betriebsart Typ CP 521 BASIC USING (0) > Dieses Argument gibt die Wahl des Formates frei. Die Regel fÂr die Auswahl ist einfach: Bei Zahlen zwischen ± 99999999 und ± 0.1 gibt BASIC Ganzzahlen und Dezimalzahlen aus. Au˚erhalb dieses Bereichs verwendet BASIC das Format USING (F0). Vorangestellte und nachgestellte Nullen werden stets unterdrÂckt. Nach einem Reset verwendet BASIC das Format USING!(0). 5.8.23 PRINT# PRINT# oder P.# oder ? # [Liste von Ausdrcken] COMMAND und/oder RUN Eingabe/Ausgabe Wirkung Die Anweisungen PRINT#, P.# oder ? # haben die gleiche Wirkung wie die Anweisungen PRINT, P. und ?, jedoch wird hier die Ausgabe nicht auf die Konsole, sondern an die unidirektionale Schnittstelle geleitet. Alle Angaben zu den Anweisungen PRINT, P. oder ? gelten auch fÂr die Anweisungen PRINT#, P.# oder ? #. P.# und ? # sind AbkÂrzungen fÂr PRINT#. Hinweis: Die unidirektionale Schnittstelle kann durch INIT# [integer] parametriert werden (Æ Kap. 5.8.4). 5>72 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.24 PH0., PH1., PH0.#, PH1.# Anweisung PH0., PH1., PH0.#, PH1.# Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung PH0. und PH1. haben die gleiche Wirkung wie die PRINT>Anweisung, jedoch werden die Werte hier im Hexadezimalformat ausgegeben. Die PH0.>Anweisung unterdrÂckt bei Zahlen, die kleiner als 255 (0FFH) sind, zwei vorangestellte Nullen. Die PH1.>Anweisung gibt stets vier Hexadezimalziffern aus. Bei der Aus> gabe durch PH0. oder PH1. wird hinter der Zahl stets das Zeichen "H" aus> gegeben. Die ausgegebenen Werte sind stets Ganzzahlen (Nachkommastellen abgeschnitten). Bei auszugebenden Zahlen, die nicht innerhalb des zulßssigen Bereichs fÂr Ganzzahlen liegen (d.h. zwischen 0 und 65.535 (0FFFFH) ein> schlie˚lich), schaltet BASIC auf die normale Ausgabeart. In einem derartigen Fall fehlt das Zeichen "H" hinter dem Wert. Da Ganzzahlen im Dezimalformat oder im Hexadezimalformat eingegeben werden k‘nnen, ist mit den Anweisungen PRINT, PH0. oder PH1. auch eine Umwandlung Dezimal/Hexadezimal oder Hexadezimal/Dezimal m‘glich. Alle Angaben zur PRINT>Anweisung gelten auch fÂr PH0. und PH1.. PH0.# und PH1.# haben die gleiche Wirkung wie PH0. bzw. PH1., jedoch wird hier die Ausgabe auf die unidirektionale Schnittstelle und nicht auf die Konsole geleitet. Beispiel >PH0.2*2 04H >PH1.2*2 0004H >PRINT 99H 153 >PH0.100 64H >PH0.1000 3E8H >PH1.1000 03E8H >P.3E8H 1000 PH0.PI 03H EWA 4NEB 812 6071>01 5>73 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.25 PUSH Anweisungen PUSH [expr] Betriebsart COMMAND und/oder RUN Typ Zuweisung Wirkung Der oder die arithmetischen AusdrÂcke hinter der PUSH>Anweisung werden berechnet und dann nacheinander auf den Argumentstack gebracht. Diese Anweisung bietet, in Verbindung mit der POP>Anweisung (Æ Kap. 5.8.26), eine einfache M‘glichkeit, um Parameter an Subroutinen von BASIC zu Âbergeben oder Variablen zu vertauschen. Der jeweils letzte Wert, der durch PUSH an den Argumentstack Âbergeben wurde, ist der erste Wert, der durch POP aus dem Argumentstack abgerufen wird. Varianten Durch eine einzige PUSH>Anweisung k‘nnen gleichzeitig mehrere AusdrÂcke auf den Argumentstack gebracht werden. Die AusdrÂcke werden hierzu einfach durch Komma aneinandergereiht: PUSH [expr], [expr] ... [expr]. Der jeweils letzte Wert, der durch PUSH auf den Argumentstack gebracht wird, ist der letzte Ausdruck [expr] in der PUSH>Anweisung. 5>74 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Beispiel VARIABLENTAUSCH PARAMETERUEBERGABE AN SUBROUTINEN >10 A=10 >20 B=20 >30 PRINT A,B >40 PUSH A,B >50 POP A,B >60 PRINT A,B >RUN >10 PUSH 1,3,2 >20 GOSUB 100 >30 POP R1,R2 >40 PRINT R1,R2 >50 END >100 REM GLEICHSETZUNG: A=2,B=3,C=1 >110 POP A,B,C >120 PUSH (-B+SQR(B*B-4*A*C))/(2*A) >130 PUSH (-B-SQR(B*B-4*A*C))/(2*A) >140 RETURN >RUN 10 20 20 10 READY > -1 -.5 READY > EWA 4NEB 812 6071>01 5>75 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter 5>76 CP 521 BASIC 5.8.26 POP Anweisungen POP [var] Betriebsart COMMAND und/oder RUN Typ Zuweisung Wirkung Der oberste Wert des Argumentstack wird der Variablen zugewiesen, die hinter der POP>Anweisung steht und der Argumentstack wird gepoppt (d.h. um 6 inkrementiert). Werte k‘nnen in den Stack durch die PUSH>Anweisung eingele> sen werden. Hinweis: Ein Fehler ERROR: A>STACK wird gemeldet, wenn eine POP>Anweisung ausgefÂhrt werden soll, ohne da˚ der Argumentstack einen Wert enthßlt. Varianten Innerhalb einer einzigen POP>Anweisung k‘nnen auch mehrere Variablen gleichzeitig aus dem Argumentstack ausgelesen werden. Die Variablen mÂssen hierzu durch Komma voneinander getrennt werden (d.h. POP [var], [var]!...![var]). Beispiele Siehe PUSH>Anweisung EWA 4NEB 812 6071>01 BASIC>Interpreter a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a Hinweis: Diese leistungsfßhigen Anweisungen k‘nnen dazu verwendet werden, das Problem der globalen Variablen "zu umgehen", da˚ in BASIC>Programmen hßufig auftritt. Dieses Problem entsteht dadurch, da˚ in BASIC das "Haupt"> Programm und alle Subroutinen, die aus dem Hauptprogramm aufgerufen werden, die gleichen Variablennamen verwenden mÂssen (d.h. globale Variablen). Es ist nicht immer zweckmß˚ig, in einer Subroutine die gleichen Variablen wie im Hauptprogramm zu verwenden, so da˚ in Programmen oft Variablen erneut zugewiesen werden (z.B. A = Q), bevor eine GOSUB> Anweisung ausgefÂhrt wird. Wenn hier einige Variablennamen ausschlie˚lich fÂr Subroutinen reserviert (z.B. S1, S2) und, wie im obigen Beispiel dargestellt, an den Stack Âbergeben werden, k‘nnen die meisten Probleme durch globale Variablen vermieden werden. EWA 4NEB 812 6071>01 5>77 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.27 REM Anweisungen REM Betriebsart COMMAND und/oder RUN Typ Steuerung > hat keine Wirkung Wirkung REM ist ein KÂrzel fÂr REMark (Bemerkung). Diese Anweisung hat keine Wirkung, erlaubt jedoch dem Anwender, sein Programm zu kommentieren. Kommentare werden normalerweise ben‘tigt, um ein Programm leichter verstßndlich zu machen. In Zeilen, die eine REM>Anweisung enthalten, gilt der rechts von REM stehende Teil der Zeile als Anmerkung, so da˚ die REM>Anweisung nicht durch einen Doppelpunkt (:) abgeschlossen werden mu˚. Sie kann jedoch hinter einem Doppelpunkt angefÂgt werden. Auf diese Weise kann der Programmierer jede Zeile um einen Kommentar ergßnzen. Beispiele >10 >20 >30 >40 >50 >60 >70 >80 REM EINGABE EINER VARIABLEN INPUT A REM EINGABE EINER ANDEREN VARIABLEN INPUT B REM BEIDE MITEINANDER MULTIPLIZIEREN Z=A*B REM AUSGABE DES ERGEBNISSES PRINT Z >10 >20 >30 >40 INPUT A :REM EINGABE EINER VARIABLEN INPUT B :REM EINGABE EINER ANDEREN VARIABLEN Z=A*B :REM BEIDE MITEINANDER MULTIPLIZIEREN PRINT Z :REM AUSGABE DES ERGEBNISSES 5>78 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Das folgende Programm kann nicht funktionieren, weil die ganze Zeile als Anmerkung interpretiert wird, so da˚ die PRINT>Anweisung nicht ausgefÂhrt wird: Beispiele >10 REM AUSGABE DES WERTES : PRINT A aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaa a 5.8.28 RETI Anweisungen RETI Betriebsart RUN Typ Steuerung Wirkung Die RETI>Anweisung wird verwendet, um den ONTIME>Interrupt zu beenden. Erst nach der RETI>Anweisung kann ein weiterer ONTIME>Interrupt verarbeitet werden. Wenn der Anwender in der Interrupt>Routine nicht die RETI>Anweisung ausfÂhren lß˚t, werden zukÂnftige Interrupts ignoriert. EWA 4NEB 812 6071>01 5>79 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.29 STOP Anweisungen STOP Betriebsart RUN Typ Steuerung Wirkung Mit der STOP>Anweisung kann der Programmierer den Programmablauf an spezifischen Punkten in einem Programm anhalten. Nach einem STOP des Pro> gramms k‘nnen Variablen angezeigt und/oder verßndert werden. Der Programmablauf kann mit dem Befehl CONT wieder aufgenommen werden. Die STOP>Anweisung dient dem Zweck, das Programm auf einfache Weise von "Bugs" befreien zu k‘nnen. Weitere Einzelheiten zur Kombination STOP>CONT werden bei der Beschreibung des Befehls CONT (Æ Kap. 5.6.2) in diesem Hand> buch angegeben. Beispiel >10 FOR I=1 TO 100 >20 PRINT I >30 STOP >40 NEXT I >RUN 1 STOP - IN LINE 40 READY >CONT 2 Hierbei ist zu beachten, da˚ die Zeilennummer, die nach der AusfÂhrung der STOP>Anweisung ausgegeben wird, die Zeilennummer hinter der STOP>Anwei> sung ist, nicht die Zeilennummer, die die STOP>Anweisung enthßlt. 5>80 EWA 4NEB 812 6071>01 CP 521 BASIC RROM a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.8.30 BASIC>Interpreter Anweisungen RROM [integer] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung RROM bedeutet RUN ROM. Diese Anweisung wßhlt also ein Programm aus dem Speichermodul aus und lß˚t dieses Programm ablaufen. Die Ganzzahl hinter der RROM>Anweisung mu˚ eine Konstante sein, diese gibt an, welches Programm des Speichermoduls ausgefÂhrt werden soll. Im Kommando>Modus entspricht RROM 2 einer Eingabe von ROM 2 mit anschlie˚endem RUN. Hier mu˚ jedoch beachtet werden, da˚ RROM [integer] eine Anweisung ist. Das bedeutet, da˚ ein Programm, das bereits ablßuft, die AusfÂhrung eines vollstßndig getrennten Programms erzwingen kann, das sich auf dem Speichermodul befindet. Damit erhßlt der Anwender die M‘glichkeit, Programme ∫fliegend∫ zu wechseln. aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Wird zu einer RROM>Anweisung eine ungÂltige Ganzzahl eingegeben (weil beispielsweise sechs Programme in der Modul>Datei enthalten sind, jedoch RROM 8 eingegeben wurde, oder kein Programm auf dem Modul vorhanden ist), so wird keine Fehlermeldung ausgegeben, und BASIC fÂhrt die Anweisung aus, die auf die RROM>Anweisung folgt. Liegt jedoch die Ganzzahl au˚erhalb der zulßssigen Grenzen (1 ... 254), so erfolgt eine Fehlermeldung. Ist kein Speichermodul, ein nicht spezifiziertes oder eines mit unbekanntem Modulinhalt (keine BASIC>Kennung) gesteckt, so wird eben> falls eine entsprechende Fehlermeldung ausgegeben. aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Hinweis: Bei jeder AusfÂhrung der RROM>Anweisung werden alle Variablen und Zeichenketten gleich Null gesetzt, so da˚ es nicht m‘glich ist, mit der RROM> Anweisung Variablen oder Zeichenketten zwischen Programmen zu Âber> tragen. Au˚erdem werden alle von BASIC ausgel‘sten Interrupts gel‘scht. EWA 4NEB 812 6071>01 5>81 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a BASIC>Interpreter 5.9 5>82 CP 521 BASIC Spezielle Anweisungen und Funktionen fÂr den Datenaus> tausch Neben den Standardbefehlen (LIST, CONT, PRINT etc.) sind noch einige zusßtzliche Befehle zum Datenaustausch vorhanden. PAE Sende> puffer 256 Byte HANDLE> Sende> puffer 1 KByte CPU SPUT BUFIN HSSTAT PAA Empfang immer aktiviert SEND SGET SSTAT RSTAT BUFWRITE BASIC> Programm HANDLE (#) Empfangs> puffer 256 Byte BUFREAD BUFOUT HRSTAT HANDLE> Empfangs> puffer 1 KByte CP 521 BASIC Empfang immer aktiviert Peripherie Bild 5.7 Datentransfer zwischen CPU > CP 521 BASIC > Peripheriegerßt EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Wirkung der Pufferbefehle Auf der Baugruppe befinden sich folgende vier Datenpuffer: f Sendepuffer (256 Byte) f Empfangspuffer (256 Byte) f HANDLE>Sendepuffer (1 KByte) f HANDLE>Empfangspuffer (1 KByte) Sendepuffer Mit dem Befehl SEND (Æ Kap. 5.9.7) stellen Sie der CPU Daten zur VerfÂgung. Diese Daten k‘nnen von der CPU als Telegramme abgeholt werden (CPU>Empfang). Es k‘nnen maximal 256 Byte lange Telegramme Âbertragen werden. Mit der SSTAT>Funktion (Æ Kap. 5.9.3) k‘nnen Sie sich den Status des letzten Sendeauftrags anzeigen lassen. Die BUFWRITE>Funktion (Æ Kap. 5.9.6) Âbertrßgt Daten aus einer Variablen des BASIC>Programms in den Sendepuffer. Empfangspuffer Das Empfangen der von der CPU Âbermittelten Daten lßuft selbstßndig im Hintergrund ab. Es werden Daten aus dem Proze˚abbild der Ausgßnge (PAA) der CPU in den 256!Byte gro˚en Empfangspuffer des CP 521 BASIC Âbertragen. Mit der RSTAT>Funktion (Æ Kap. 5.9.4) k‘nnen Sie die Anzahl der empfangenen Zeichen im Empfangspuffer sowie die Beendigung des Empfangsauftrages abfragen. BUFREAD (Æ Kap. 5.9.5) weist einer Variablen im BASIC>Programm einen be> stimmten Wert aus dem Empfangspuffer zu. HANDLE>Sendepuffer FÂr das Senden von Daten Âber die Peripherie>Schnittstellen steht der 1 KByte gro˚e HANDLE>Sendepuffer auf der Baugruppe zur VerfÂgung. Der Befehl HANDLE (Æ Kap. 5.10.1) aktiviert die Ausgabe auf die bidirektionale Schnitt> stelle.Das Senden von Daten wird im Hintergrund ausgefÂhrt. Mit dem Befehl HANDLE# (Æ Kap. 5.10.1) wird der Inhalt des HANDLE>Sende> puffers an die unidirektionale Schnittstelle ausgegeben. EWA 4NEB 812 6071>01 5>83 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a BASIC>Interpreter 5>84 CP 521 BASIC Der Befehl BUFIN (Æ Kap. 5.10.3) Âbertrßgt den Inhalt einer Variablen des BASIC> Programms in den HANDLE>Sendepuffer. Die HSSTAT>Funktion (Æ Kap. 5.10.2) liefert einen numerischen Wert, der Ihnen den Status des letzten HANDLE>Sendeauftrages und den Schnittstellenstatus angibt. HANDLE>Empfangspuffer FÂr das Empfangen von Daten Âber die Peripherie>Schnittstelle steht der 1 KByte gro˚e HANDLE>Empfangspuffer auf der Baugruppe zur VerfÂgung. Der Empfang von Daten ist immer aktiviert und wird im Hintergrund ausgefÂhrt. Der Befehl BUFOUT (Æ Kap. 5.10.6) Âbertrßgt aus dem HANDLE>Empfangspuffer Daten in eine Variable im BASIC>Programm. Die HRSTAT>Funktion (Æ Kap. 5.10.4) liefert einen numerischen Wert, der Ihnen den Status des letzten HANDLE>Empfangsauftrages angibt. Hinweis: Die DatenÂbertragung erfolgt interpretierend, d.h., da˚ z.B. ein CTRL>C (03H) ausgewertet wird. Durch die Anweisung BREAK(0) kann der Abbuch des Programms verhindert werden. EWA 4NEB 812 6071>01 CP 521 BASIC SGET a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.9.1 BASIC>Interpreter Anweisungen SGET [var],[var],[var],[var] Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Es werden 4 Datenworte aus dem PAA (Proze˚abbild der Ausgßnge) der CPU vom CP 521 BASIC gelesen und als Zahl (integer) in die angegebene Variable Âbertragen. [var] ist ein im Programm gÂltiger numerischer Variablenname. Das PAA wird wortweise angesprochen. Das erste Wort wird auf die erste Variable abgebildet. Beispiel SGET name1, name2, name3, name4 Es werden 4 Worte, die von der CPU Âbergeben wurden, in den Variablen name1 bis name4 abgelegt. EWA 4NEB 812 6071>01 5>85 BASIC>Interpreter SPUT a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.9.2 CP 521 BASIC Anweisungen SPUT [expr],[expr],[expr],[expr] Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Es werden 4 Datenworte an das PAE (Proze˚abbild der Eingßnge) der CPU vom CP 521 BASIC ausgegeben. [expr] ist ein im Programm gÂltiger numerischer Ausdruck. Das PAE wird wortweise angesprochen. Der erste Ausdruck wird auf das Wort 0 des PAE abgebildet. SSTAT aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa 5.9.3 Funktion SSTAT Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Da immer nur ein SEND>Auftrag angenommen wird, k‘nnen Sie mit der Funktion SSTAT ÂberprÂfen, ob der letzte SEND>Auftrag komplett abgearbeitet wurde. SSTAT liefert einen numerischen Wert, der den Status des letzten Sendeauftrag darstellt. Die Funktionswerte haben folgende Bedeutung: >0: Sendeauftrag ist noch nicht beendet 0: Sendeauftrag ist beendet >1: S5>Bus ist inaktiv (CPU>Stop) >2: fehlende Quittung von der CPU (Wartezeit Âberschritten) >3: fehlerhafte Quittung von der CPU 5>86 EWA 4NEB 812 6071>01 CP 521 BASIC RSTAT a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaa a 5.9.4 BASIC>Interpreter Funktion RSTAT Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Nach dem vollstßndigen bzw. teilweisen Entleeren des Empfangspuffers durch BUFREAD wird durch die Funktion RSTAT die Anzahl der im Puffer verbleibenden Zeichen als numerischer Wert dargestellt. Die Funktionswerte haben folgende Bedeutung: >0: Anzahl der im Puffer stehenden Zeichen 0: der Puffer enthßlt keine Zeichen >1: S5>Bus ist inaktiv (CPU>Stop) >2: Auftrag lßuft >3: Autrag abgewiesen BUFREAD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa 5.9.5 Funktion BUFREAD [datentyp,var{,lnge}] Betriebsart RUN Typ Eingabe/Ausgabe datentyp: 1: 2: 3: 4: var: gÂltiger Variablenname; passend zum Datentyp lnge : Funktions> werte: Byte>Variable Integer>Variable BCD>Variable String>Variable (CPU>Format: 1 Byte) (16>Bit>Festkommazahl: 2 Byte) (BCD>codierter Wert: 2 Byte) (∫lßnge∫ mu˚ angegeben werden) 1...254; Anzahl der Zeichen, die in den String Âbertragen werden sollen; der Parameter ist nur beim Datentyp String anzugeben 0: der Funktionsaufruf verlief fehlerfrei 1: der Funktionsaufruf wurde nicht fehlerfrei abgearbeitet. 2: Fehler bei der Wandlung einer BCD>Zahl EWA 4NEB 812 6071>01 5>87 BASIC>Interpreter CP 521 BASIC Wirkung Aus dem 256 Byte langen Empfangspuffer wird ein Wert in den angegebenen Datentyp konvertiert und in die ∫variable∫ Âbertragen. Bei String>Variablen ist fÂr den Parameter ∫lßnge∫ ein Wert von 1...254 zulßssig. Funktionswert=1 wird zurÂckgegeben wenn: f ∫lßnge∫ < 1 oder >254 f die Anzahl der zu Âbertragenden Zeichen die Gr‘˚e des konfigurierten Strings Âberschreitet. f weniger Zeichen im Empfangspuffer stehen, als durch den Aufruf von BUFREAD gefordert. Funktionswert=2 wird zurÂckgegeben wenn: f mindestens eine Ziffer der zu wandelnden BCD>Zahl au˚erhalb des zulßssigen Bereichs (0 ... 9) liegt. BUFWRITE aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaaaaa a a a a a a a a aaaaaaaaaaaaaaaaa a 5.9.6 Funktion BUFWRITE datentyp,var{,lnge} Betriebsart RUN Typ Eingabe/Ausgabe datentyp: var: lnge Byte>Variable Integer>Variable BCD>Variable String>Variable (CPU>Format: 1 Byte) (16>Bit>Festkommazahl: 2 Byte) (BCD>codierter Wert: 2 Byte) (∫lßnge∫ mu˚ angegeben werden) gÂltiger Variablenname; passend zum Datentyp : Funktions> werte: 5>88 1: 2: 3: 4: 1...254; Anzahl der Zeichen, die aus der String>Variablen Âbertragen werden sollen; der Parameter ist nur beim Datentyp String anzugeben. 0: der Funktionsaufruf verlief fehlerfrei 1: der Funktionsaufruf wurde nicht fehlerfrei abgearbeitet 2: eine Ziffer liegt au˚erhalb des Wertebereiches EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Wirkung Der angegebene Wert der Variable wird in den ∫datentyp∫ konvertiert und in den Sendepuffer Âbertragen. Bei String>Variablen ist eine Lßnge von 1...254 zulßssig und entspricht der ebertragungslßnge. Funktionswert = 1 wird zurÂckgegeben, wenn: 1. der Sendepuffer nicht alle zu Âbertragenden Daten aufnehmen kann. 2. sich weniger Zeichen im String befinden, als in ∫lßnge∫ angegeben. Die endgÂltige Freigabe zur DatenÂbergabe erfolgt mit der SEND>Anweisung (Æ!Kap. 5.9.7). SEND a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.9.7 Anweisung SEND [expr] Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Mit dem Befehl SEND und unter der Angabe der Telegrammlßnge im Ausdruck [expr] stellen Sie der CPU Daten zum Abholen zur VerfÂgung. Es k‘nnen maximal 256 Byte lange Telegramme Âbertragen werden. Die Blockung der Telegramme, sowie das Handshake>Verfahren bei der ebergabe zur CPU (siehe Anmerkung unten) wickelt der CP 521 BASIC selbstßndig ab. Der Wertebereich von [expr]: 1 ... 256. Anmerkung Die CPU liest die anstehenden Telegramme in Acht>Byte>Bl‘cken (6 Byte Nutzdaten und 2 Byte StatusrÂckmeldung) aus dem Sendepuffer der Baugruppe. Die Empfangsbereitschaft der CPU wird dem CP 521 BASIC durch einen Synchronisationswert in Byte 0 des PAA mitgeteilt. Die empfangenen Daten werden von der CPU quittiert (Æ Kap. 6). Es kann hier nur ein SEND>Auftrag aktiv sein. Ein weiterer wird vom CP 521 BASIC ohne Fehlermeldung ignoriert. Sie k‘nnen durch den Befehl SSTAT den Sende>Status abfragen und ent> sprechend darauf reagieren. EWA 4NEB 812 6071>01 5>89 BASIC>Interpreter 5.10 CP 521 BASIC Spezielle Anweisungen und Funktionen fÂr den Daten> austausch Âber die seriellen Schnittstellen Die DatenÂbergabe zu den seriellen Schnittstellen findet Âber einen HANDLE> Sendepuffer und einen HANDLE>Empfangspuffer statt. Beide Puffer sind als Ringpuffer realisiert und jeweils 1 kByte lang. Ankommende Daten werden grundsßtzlich zwischengespeichert. Sendedaten k‘nnen vor dem Senden im Sendepuffer aufbereitet werden. Durch folgende BASIC>Befehle wird der Datenaustausch Âber die seriellen Schnittstellen unterstÂtzt: f Parametrierung der Schnittstellen > INIT [parameter] Parametrierung der bidirektionalen Schnittstelle > INIT# [parameter] Parametrierung der unidirektionalen Schnitt> stelle f Senden von Daten Âber die bidirektionale Schnittstelle > HANDLE [lßnge] Ansto˚ der Datenausgabe von ∫lßnge∫ Zeichen aus dem HANDLE>Sendepuffer an das Periphe> riegerßt!der bidirektionale Schnittstelle > HSSTAT Status des letzten Sendeauftrags > BUFIN [strvar(, lßnge)] Kopieren des Inhalts von ∫strvar∫ in den HANDLE>Sendepuffer f Senden von Daten Âber die unidirektionale Druckerschnittstelle > HANDLE # [lßnge] wie HANDLE [lßnge], jedoch Ausgabe Âber die unidirektionale Schnittstelle >HSSTAT Status des letzten Sendeauftrages f Empfangen von Daten Âber die bidirektionale Schnittstelle > HRSTAT Statusabfrage des Empfangspuffers. Der Datenempfang wird von der Baugruppe selbsttßtig ausgefÂhrt. Nur der Status des Empfangspuffers mu˚ abgefragt werden. > GET Lesen eines Zeichens Empfangspuffers >BUFOUT [strvar(, lßnge)] Datentransfer vom HANDLE>Empfangspuffer in einen String namens ∫strvar∫. 5>90 aus dem HANDLE> EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a CP 521 BASIC EWA 4NEB 812 6071>01 BASIC>Interpreter 5.10.1 HANDLE , HANDLE# Anweisung HANDLE [expr], HANDLE# [expr] Betriebsart RUN Typ Eingabe/Ausgabe Wirkung HANDLE Mit der Anweisung wird eine durch ∫expr∫ vorgegebene Anzahl von Zeichen aus dem HANDLE>Sendepuffers an die bidirektionale Schnittstelle ausgegeben. HANDLE ist ein Sendeauftrag, der im Hintergrund ausgefÂhrt wird. Folgende Werte sind zulßssig: 0< ∫expr∫ e 1024: Senden von ∫expr∫ Zeichen aus dem HANDLE>Sende> puffer >1: Ausgabe aller Zeichen, die beim Aufruf des Befehls im Sendepuffer stehen. Wirkung HANDLE# Mit der Anweisung wird eine durch ∫expr∫ vorgegebene Anzahl von Zeichen aus dem HANDLE>Sendepuffer an die unidirektionale Schnittstelle ausgegeben. HANDLE # ist ein Sendeauftrag, der im Hintergrund ausgefÂhrt wird. Folgende Werte sind zulßssig: 0< ∫lßnge∫ e 1024: Senden von ∫lßnge∫ Zeichen aus dem HANDLE> Sendepuffer >1: Ausgabe aller Zeichen, die beim Aufruf des Befehls im Sendepuffer stehen Hinweis: HANDLE und HANDLE# lesen die Sendedaten aus demselben HANDLE>Puffer. Um Konflikte zu vermeiden, wird nie mehr als ein Sendeauftrag gleichzeitig ausgefÂhrt. Mit HSSTAT kann festgestellt werden, ob der vorherige Sendeauftrag abge> schlossen ist. 5>91 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter CP 521 BASIC 5.10.2 HSSTAT Funktion HSSTAT Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Die Funktion HSSTAT liefert einen numerischen Wert, der den Status des letzten HANDLE>Sendeauftrags darstellt. Die Funktionswerte haben folgende Bedeutung: >0: Sendeauftrag ist noch nicht beendet 0: bereit fÂr nßchsten Sendeauftrag >1: Gerßt an der unidirektionalen Schnittstelle inaktiv: BUSY lßnger als 20!Se> kunden aktiv und Auswertung des BUSY>Signals parametriert >2: Gerßt an der bidirektionalen Schnittstelle inaktiv: > falls XON/XOFF>Protokoll parametriert; zuletzt wurde XOFF vor mehr als 20 s empfangen. > falls Modem>Signale parametriert; seit mehr als 20 s DTR=OFF oder CTS=OFF. Hinweis: Bei negativen Funktionswerten sind Kombinationen m‘glich: >3 bedeutet, da˚ >1 und >2 gÂltig sind. 5>92 EWA 4NEB 812 6071>01 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a CP 521 BASIC EWA 4NEB 812 6071>01 BASIC>Interpreter 5.10.3 BUFIN Funktion BUFIN [strvar(,expr)] Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Der Inhalt der Variablen wird in den HANDLE>Sendepuffer kopiert. Bei String> Variablen mu˚ mit ∫expr∫ (Wertebereich: 1...254) die Anzahl der zu kopierenden Zeichen angegeben werden. ∫var∫ mu˚ vom Typ numerische Variable, numerische Konstante, numerischer Ausdruck sein. Kann der Puffer nicht alle zu Âbertragenden Daten aufnehmen oder enthßlt die Stringvariable weniger Zeichen als durch ∫expr∫ angegeben, so wird als Funk> tionswert 1 zurÂckgegeben. Enthßlt die String>Variable weniger Zeichen als durch ∫expr∫ angegeben, wird die Fehlermeldung ERROR: BAD ARGUMENT ausgegeben. Im Fehlerfall wird die Funktion nicht ausgefÂhrt. Die Funktionswerte haben folgende Bedeutung: 0: der Funktionsaufruf verlief fehlerfrei 1: der Funktionsaufruf wurde nicht fehlerfrei abgearbeitet. Hinweis: Mit dem Operator CHR() k‘nnen nichtdruckbare Zeichen in den HANDLE> Sendepuffer eingetragen werden. 5>93 BASIC>Interpreter CP 521 BASIC Beispiel 20 STRING 1,40 30 $(0)=”CP 521 BASIC” 40 STATUS = BUFIN $(0),10 50 PRINT Status 60 HANDLE# 10 > RUN 0 (BUFIN erfolgreich) (Ausgabe auf Drucker (unidirektionale Schnittstelle)): CP 521 BAS (10 Zeichen) Die Eingabe von Steuerzeichen in den HANDLE>Sendepuffer ist durch den Befehl BUFIN CHR(x) bzw. BUFIN CHR(§(y), z) m‘glich. Die beiden Befehle CHR(x) und CHR(§(y), z) sind wie im GHB (Æ Kap. 5.12.6) be> schrieben zu verwenden. Beispiel > 5 STRING 2,10 > 10 IF HSSTAT<>0 THEN 10 > 20 $(0)= ”ABCDEFG” > 30 $(1)= ”1234567890” > > > > 40 50 60 70 X= X= X= X= BUFIN BUFIN BUFIN BUFIN $(0),3 CHR(13) : REM CHR(10) : REM $(1),10 CR EINTRAGEN LF EINTRAGEN > 60 HANDLE -1 > RUN ABC 1234567890 5>94 EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a CP 521 BASIC EWA 4NEB 812 6071>01 BASIC>Interpreter 5.10.4 HRSTAT Funktion HRSTAT Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Die Funktion HRSTAT liefert, sofern kein Fehlerstatus vorliegt, die Anzahl der Zeichen im HANDLE>Empfangspuffer, d.h. Zeichen, die empfangen, aber noch nicht mittels GET oder BUFOUT ausgelesen wurden. Die Funktionswerte haben folgende Bedeutung: >0: Anzahl der im HANDLE>Empfangspuffer stehenden Zeichen 0: der Puffer enthßlt keine Daten >1: Dauerbreak auf der Empfangsleitung: > falls Modemsignale parametriert; seit mehr als 20 s ist DSR=OFF und/ oder CTS=OFF > falls XON/XOFF>Prototkoll parametriert; seit mehr als 20 s hat der CP 521 BASIC kein XON mehr gesendet, d.h. die Baugruppe ist nicht mehr empfangsbereit. >2: Paritßtsfehler beim Empfang auf der bidirektionalen Schnittstelle, HANDLE>Empfangspuffer gel‘scht >4: Empfang von mehr als 3 Zeichen nach XOFF bzw. DTR=OFF >8: eberlauf des Empfangspuffers Die Fehlermeldungen >4 und >8 werden mit dem Aufruf der Funktion HRSTAT zurÂckgesetzt. Hinweis: Ist der Funktionswert negativ, kann er auch eine Kombination von Fehlern sein, z.B.:Funktionswert >10 bedeutet Funktionswert >2 und Funktionswert >8. 5>95 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.10.5 GET Funktion GET Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung Die Funktion GET liest und entfernt das erste Zeichen aus dem HANDLE> Empfangspuffer. Als Funktionswert wird der ASCII>Code des Zeichens in Dezimal> form zugewiesen. Ist der Puffer leer, so ist der Funktionswert=0. Im Kommando>Modus ist er stets "0". Das folgende Beispiel lß˚t das Dezimal> ßquivalent aller Zeichen ausgeben, die von der Konsole Âbertragen werden. Beispiel >10 >20 >30 >40 65 49 24 50 5>96 REM *** GET-Funktion *** A = GET:IF A = 0 GOTO 20 PRINT A,” (EINGABE ”,CHR (A),” IN DIE TASTATUR)” GOTO 20 (EINGABE (EINGABE (EINGABE (EINGABE ”A” IN DIE TASTATUR) ”1” IN DIE TASTATUR) ”CONTROL-X” IN DIE TASTATUR) ”2” IN DIE TASTATUR) EWA 4NEB 812 6071>01 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a CP 521 BASIC EWA 4NEB 812 6071>01 BASIC>Interpreter 5.10.6 BUFOUT Funktion BUFOUT [strvar(,expr)] Betriebsart RUN Typ Eingabe/Ausgabe Wirkung Es werden vom Anfang des HANDLE>Empfangspuffers an Zeichen in den String ∫strvar∫ Âbertragen. Die Anzahl zu Âbertragender Zeichen wird durch den Ausdruck ∫expr∫ (Wertebereich: 1 ... 254) angegeben. ∫expr∫ mu˚ vom Typ numerischer Konstante, numerische Variable oder numerischer Ausdruck sein. Die Funktionswerte haben folgende Bedeutung: 0: der Funktionsaufruf verlief fehlerfrei 1: der Funktionsaufruf wurde nicht fehlerfrei abgearbeitet. Im Fehlerfall wird die Funktion nicht ausgefÂhrt. Der Funktionswert 1 wird ausgegeben, wenn: ∫expr∫ < 1 ∫expr∫ > 254 ∫expr∫ > Anzahl vorhandener Zeichen im Puffer ∫expr∫ > Lßnge des dimensionierten Strings. Hinweis: Die Funktion BUFOUT kann nur in der Betriebsart RUN ausgefÂhrt werden. 5>97 BASIC>Interpreter 5.11 CP 521 BASIC Beschreibung der arithmetischen/logischen Operatoren und AusdrÂcke 5.11.1 Dyadische Operatoren BASIC enthßlt einen vollstßndigen Satz arithmetischer und logischer Operatoren. Die Operatoren gliedern sich in zwei Gruppen, nßmlich dyadische Operatoren fÂr zwei Operanden und unßre Operatoren fÂr nur einen Operanden. Alle Anweisungen fÂr zwei Operanden haben die folgende allgemeine Form: [expr] OP [expr], wobei OP einen der folgenden Operatoren darstellt: + Operator fÂr Addition Beispiel PRINT 3+2 5 / Operator fÂr Division Beispiel PRINT 100/5 20 ** Operator fÂr Exponential>Funktionen Der zweite Operand ist Exponent fÂr den ersten Operanden. Der Exponent darf fÂr eine beliebige Zahl h‘chstens den Wert 255 besitzen. Beispiel PRINT 2**3 8 5>98 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter * Operator fÂr Multiplikation Beispiel PRINT 3*3 9 > Operator fÂr Subtraktion Beispiel PRINT 9-6 3 .AND. logischer UND>Operator Beispiel PRINT 3.AND.2 2 .OR. logischer ODER>Operator Beispiel PRINT 1.OR.4 5 .XOR. logischer EXKLUSIV>ODER>Operator Beispiel PRINT 7.XOR.6 1 EWA 4NEB 812 6071>01 5>99 BASIC>Interpreter CP 521 BASIC Hinweise zu den logischen Operatoren .AND., .OR. und .XOR. Diese Operatoren verknÂpfen die Bitmuster der entsprechenden gÂltigen Ganzzahlen. Beide Argumente fÂr diese Operatoren mÂssen zwischen 0 und 65.535 (0FFFFH) einschlie˚lich liegen. Anderenfalls gibt BASIC die Fehlermeldung ERROR: BAD ARGUMENT aus. Alle Werte, die keine Ganzzahlen sind, werden gegebenenfalls abgeschnitten. Es mag ungew‘hnlich erscheinen, da˚ fÂr die logischen Funktionen die Schreib> weise .OP. gewßhlt wurde. HierfÂr gibt es nur einen Grund, nßmlich den, da˚ BASIC bei der Verarbeitung der Befehlszeilen sßmtliche Blanks unterdrÂckt und andererseits vor und hinter allen Anweisungen Blanks einfÂgt, wenn Anwenderprogramme durch LIST ausgegeben werden. BASIC fÂgt keine Blanks vor und hinter Operatoren ein. Eingegebene Zeilen wie beispielsweise 10 A = 10 * 10 werden also im Listing als 10 A = 10*10 ausgegeben. Alle Blanks, die der Anwender vor und hinter dem Operator eingegeben hat, werden unterdrÂckt. Ohne die Schreibweise .OP. fÂr die logischen Operatoren wÂrde also eine Zeile, die als 10 B = A AND B einge> geben wurde, im Listing als 10 B = AANDB erscheinen. Durch die Punkte als Ein> grenzung der logischen Operatoren wird diese Zeile als 10 B = A.AND.B im Listing ausgegeben und ist so leichter zu lesen. 5>100 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter 5.11.2 Unßre Operatoren > Allgemeine Anwendung ABS([expr]) ermittelt den Absolutwert des Arguments. Beispiele PRINT ABS(5) 5 PRINT ABS(-5) 5 NOT([expr]) ermittelt das Einerkomplement des Arguments in 16 Bit Breite. Das Argument mu˚ eine gÂltige Ganzzahl sein (d.h. zwischen 0 und 65.535 (0FFFFH) einschlie˚lich). Zahlen, die keine Ganzzahlen sind, werden gegebenenfalls abgeschnitten. Beispiele PRINT NOT(65000) 535 PRINT NOT(0) 65535 INT([expr]) ermittelt den ganzzahligen Teil des Arguments. Beispiele PRINT INT(3.7) 3 EWA 4NEB 812 6071>01 PRINT INT(100.876) 100 5>101 BASIC>Interpreter CP 521 BASIC SGN([expr]) ermittelt fÂr Argumente, die gr‘˚er als 0 sind, den Wert +1, fÂr Argumente mit dem Wert 0 den Wert 0 und fÂr Argumente, die kleiner als 0 sind, den Wert!>1. Beispiele PRINT SGN(52) 1 PRINT SGN(0) 0 PRINT SGN(-8) -1 SQR([expr]) ermittelt die Quadratwurzel des Arguments. Das Argument darf nicht negativ sein. Das Ergebnis hat einen Fehler von maximal ± 5 der niederwertigsten Stelle. Beispiele PRINT SQR(9) 3 PRINT SQR(45) 6.7082035 PRINT SQR(100) 10 RND ermittelt eine Pseudo>Zufallszahl im Bereich zwischen 0 und 1 einschlie˚lich dieser Grenzen. Aus einer 16>Bit>Basis werden 65536 Pseudo>Zufallszahlen generiert, bevor die Zahlenfolge wiederholt wird. Im Gegensatz zu den meisten BASIC>Dialekten erfordert der Operator RND kein Argument oder Schein> argument. Es wird sogar die Fehlermeldung ERROR: BAD SYNTAX ausgegeben, wenn hinter dem Operator RND ein Argument angegeben wird. Beispiel PRINT RND .30278477 PI PI ist kein Operator, sondern eine fest abgespeicherte Konstante. PI ist mit dem Wert 3.1415926 abgespeichert. 5>102 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter 5.11.3 Unßre Operatoren > Logarithmusfunktionen LOG([expr]) ermittelt den natÂrlichen Logarithmus des Arguments. Das Argument mu˚ gr‘˚er als 0 sein. Das Ergebnis hat sieben signifikante Ziffern. Beispiele PRINT LOG(12) 2.484906 PRINT LOG(EXP(1)) 1 EXP([expr]) ermittelt den Wert der Zahl "e" (2,7182818) mit dem Argument als Exponenten. Beispiele PRINT EXP(1) 2.7182818 EWA 4NEB 812 6071>01 PRINT EXP(LOG(2)) 2 5>103 BASIC>Interpreter CP 521 BASIC 5.11.4 Unßre Operatoren > Trigonometrische Funktionen SIN([expr]) ermittelt den Sinus des Arguments. Das Argument mu˚ im Bogenma˚ angegeben werden. Das Ergebnis hat sieben signifikante Ziffern. Das Argument mu˚ zwischen ± 200000 liegen. Beispiele PRINT SIN(PI/4) .7071067 PRINT SIN(0) 0 COS([expr]) ermittelt den Kosinus des Arguments. Das Argument mu˚ im Bogenma˚ ange> geben werden. Das Ergebnis hat sieben signifikante Ziffern. Das Argument mu˚ zwischen ± 200000 liegen. Beispiele PRINT COS(PI/4) .7071067 5>104 PRINT COS(0) 1 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter TAN([expr]) ermittelt den Tangens des Arguments. Das Argument mu˚ im Bogenma˚ an> gegeben werden und mu˚ zwischen ± 200000 liegen. Das Ergebnis hat sieben signifikante Ziffern. Beispiele PRINT TAN(PI/4) 1 PRINT TAN(0) O ATN([expr]) ermittelt den Arcustangens des Arguments. Das Ergebnis wird im Bogenma˚ angegeben und hat sieben signifikante Ziffern. ATN liefert ein Ergebnis zwischen > PI/2 (3,1415926/2) und PI/2. Beispiele PRINT ATN(PI) 1.2626272 EWA 4NEB 812 6071>01 PRINT ATN(1) .78539804 5>105 BASIC>Interpreter CP 521 BASIC 5.11.5 Rangfolge der Operatoren In der Mathematik gibt es Regeln fÂr die Reihenfolge, in der mathematische Operationen auszufÂhren sind. Diese Regeln ordnen jede Operation einer Hierarchiestufe zu. Die Notwendigkeit fÂr diese Regeln wird am folgenden Beispiel deutlich: 4 + 3¥2 = ? Soll hier zuerst (4 + 3) addiert und dann das Ergebnis "7" mit 2 multipliziert oder aber zuerst multipliziert (3¥2) und dann 4 addiert werden? Die Hierarchie der Mathematik legt hier fest, da˚ die Multiplikation Vorrang gegenÂber der Addition hat, so da˚ zuerst zu multiplizieren (3¥2) und dann 4 zu addieren ist. Deshalb gilt: 4 + 3¥2 = 10 Die mathematischen Regeln sind einfach. Bei der PrÂfung eines Ausdrucks von links nach rechts werden Operationen solange nicht ausgefÂhrt, bis ein Operator eine niedrigere oder gleichhohe Prioritßt hat. Im obigen Beispiel konnte die Addition nicht ausgefÂhrt werden, weil die Multiplikation eine h‘here Prioritßt besitzt. In BASIC haben die Operatoren folgende Prioritßten: 1) aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa 2) 3) 4) 5) 6) 7) 8) 9) AusdrÂcke in Klammern () / logische Negationen (NOT) und unßre Operatoren Potenzierung (**) Negation (>) Multiplikation (*) und Division (/) Addition (+) und Subtraktion (>) Relationale AusdrÂcke (=, <>, >, >=, <, <=) Logisch und (.AND.) Logisch oder (.OR.) Logisch exklusiv>oder (.XOR.) aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Hinweis: Unabhßngig von allen Prioritßtsregeln gilt stets die folgende Faustregel: Im Zweifelsfall Klammern verwenden. 5-106 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter 5.11.6 Relationale AusdrÂcke Relationale AusdrÂcke enthalten die Operatoren =, <>, >, >=, <, <=. Diese Operatoren werden meist verwendet, um eine Bedingung auf Richtigkeit zu prÂfen. In BASIC geben die relationalen Operatoren als Ergebnis 65.535 (0FFFFH) zurÂck, wenn der relationale Ausdruck TRUE ist; bzw. 0, wenn der relationale Ausdruck FALSE ist. Das Ergebnis wird in den Argumentstack geladen. Aus diesem Grund ist es m‘glich, das Ergebnis eines relationalen Ausdrucks anzuzeigen. Beispiel PRINT 1=0 0 PRINT 1>0 65535 PRINT A<>A 0 PRINT A=A 65535 Es mag ungw‘hnlich erscheinen, da˚ ein relationaler Ausdruck tatsßchlich ein Ergebnis liefert. Der Vorteil liegt darin, da˚ dadurch relationale AusdrÂcke mit den logischen Operatoren .AND., .OR. und .XOR. miteinander verkettet werden k‘nnen. Auf diese Weise ist es m‘glich, auch eine komplexe Bedingung durch nur eine Anweisung abzufragen. Beispiel >10 IF A<B .AND. A>C .OR. A>D THEN Au˚erdem kann auch mit dem Operator NOT([expr]) gearbeitet werden. Beispiel >10 IF NOT (A>B). AND. A<C THEN EWA 4NEB 812 6071>01 5>107 BASIC>Interpreter CP 521 BASIC Durch "Verkettung" von relationalen AusdrÂcken mit logischen Operatoren ist es m‘glich, sehr umfangreiche Bedingungen durch nur eine Anweisung abzu> fragen. Bei der Verwendung von logischen Operatoren zur VerknÂpfung von re> lationalen AusdrÂcken mu˚ auf jeden Fall auf die Prioritßten der Operatoren geachtet werden. Die logischen Operatoren haben gegenÂber den relationalen AusdrÂcken nur deshalb eine niedrige Prioritßt erhalten, um eine VerknÂpfung von relationalen AusdrÂcken ohne Zuhilfenahme von Klammern zu erm‘glichen. 5.12 Beschreibung von String>Operationen Ein String (eine Zeichenkette) besteht aus einem oder mehreren Zeichen, die im Speicher abgelegt werden. Die in einer Zeichenkette abgespeicherten Zeichen bilden normalerweise ein Wort oder einen Satz. Zeichenketten sind komfortabel, weil der Programmierer so mit Worten arbeiten kann und keine Zahlen verwenden mu˚. Auf diese Weise k‘nnen "anwenderfreundliche" Programme geschrieben werden, in denen z.B. Sachverhalte oder Einzelpersonen mit ihrem Namen bezeichnet werden k‘nnen und nicht unter einer Nummer angesprochen werden mÂssen. BASIC unterstÂtzt eindimensionale String>Variablen, Syntax: §([expr]). Die Di> mension der String>Variablen (der Wert [expr]) liegt im Bereich von 0 ... 254. In BASIC k‘nnen also 255 verschiedene Zeichenketten definiert und verarbeitet werden. Zunßchst ist fÂr Zeichenketten keinerlei Speicher reserviert. Der erforderliche Speicherplatz mu˚ durch die Anweisung STRING[anzahl],[lßnge] re> serviert werden(Æ Kap. 5.12.1). In BASIC k‘nnen Zeichenketten auf zweierlei Art zugewiesen werden, nßmlich durch die LET>Anweisung und durch die INPUT>Anweisung. Im folgenden werden Operationen und Funktionen fÂr die Stringverarbeitung beschrieben. 5>108 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.12.1 STRING Anweisungen STRING [expr1],[expr2] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Die Anweisung STRING [expr1],[expr2] reserviert Speicherbereiche fÂr Zeichen> ketten (siehe auch Kap.5.12). Zunßchst ist fÂr Zeichenketten kein Speicherplatz vorgesehen. Nach einem Versuch, eine Zeichenkette durch eine Anweisung wie z.B. LET §(0) = "HELLO" zu definieren, bevor ein Speicherbereich fÂr Zeichen> ketten reserviert wurde, wird eine Fehlermeldung ERROR: MEMORY ALLO> CATION ausgegeben. Der Ausdruck [expr1] in der Anweisung STRING [expr1],[expr2] erfa˚t die Gesamt> anzahl der verwendeten Zeichenketten; der zulßssige Wertebereich betrßgt 0 ... 255 inclusive. Der Ausdruck [expr2] gibt die maximale Lßnge der Zeichenketten an; der zulßssige Wertebereich ist 0 ... 254 inclusive. Diese beiden Zahlen legen den Speicherbedarf der definierten String>Variablen fest. aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa Nach der Reservierung eines Bereichs fÂr die Abspeicherung von Zeichenketten k‘nnen Befehle wie NEW oder Anweisungen wie CLEAR diese Speicherreser> vierung nicht aufheben. Es gibt nur eine M‘glichkeit, einen reservierten Speicher wieder freizugeben, nßmlich durch AusfÂhrung der Anweisung STRING!0,0. Durch STRING 0,0 wird kein Speicherbereich fÂr String>Variablen reserviert. aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Hinweis: Jede AusfÂhrung einer Anweisung STRING [expr],[expr] entspricht in BASIC der AusfÂhrung einer CLEAR>Anweisung. Dies ist deshalb erforderlich, weil String> Variablen und numerische Variablen den gleichen externen Speicherbereich belegen. Nach AusfÂhrung einer STRING>Anweisung sind deshalb alle Variablen gel‘scht. Aus diesem Grund soll die Reservierung von Speicherbereichen fÂr Zeichenketten in einem Programm m‘glichst frÂhzeitig erfolgen (z.B. als erste Anweisung), und der Speicherbereich fÂr Zeichenketten soll auf keinen Fall wieder freigegeben werden, sofern nicht der Pro> grammierer in Kauf nimmt, alle definierten Variablen zu zerst‘ren. EWA 4NEB 812 6071>01 5>109 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa BASIC>Interpreter 5-110 CP 521 BASIC Beispiel >10 STRING 2,30 >20 $(0)=”DAS IST EIN STRING, ” >30 INPUT ”WIE IST IHR NAME? - ”,$(1) >40 PRINT $(0),$(1) >RUN WIE IST IHR NAME? - KLAUS DAS IST EIN STRING, KLAUS STRINGS k‘nnen auch durch eine LET>Anweisung einander zugeordnet werden. Beispiel $(1)=$(0) Hierdurch wird der Inhalt des STRING in §(0) dem STRING §(1) zugeordnet. Hinweis: Die Anweisung STRING [expr],[expr] l‘scht auch die ONXXXX>Anweisungen. Deshalb mÂssen ONXXXX>Anweisungen nach der Anweisung STRING stehen. EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.12.2 ∫+∫ (Verkettung zweier Strings) Funktion ”+” Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung Mit der Funktion ∫+∫ k‘nnen Sie zwei Strings miteinander verketten. FÂr die Strings §(0)...§(2) mu˚ vorher mit der Anweisung ∫STRING [expr],[expr]∫ entsprechender Speicherplatz dafÂr reserviert worden sein. Beispiel >10 >20 >30 >40 STRING 3,12 $(0)=”SIEMENS” $(1)=” AG” $(2)=$(0)+$(1) (§ (0) nimmt 7 Zeichen auf) (§ (1) nimmt 3 Zeichen auf) (§ (2) nimmt 10 Zeichen auf) Die Stringvariable §(2) enthßlt nun den String ∫SIEMENS AG∫. Beispiel >10 STRING 3,7 >20 $(0)=”PETER ” >30 $(1)=”MUELLER” (§ (0) nimmt 6 Zeichen auf) (§ (1) nimmt 7 Zeichen auf) ------------------------- >40 $(2)=$(0)+$(1) >50 PRINT $(2) >RUN § (2) mÂ˚te 13 Zeichen aufnehmen EXTRA IGNORED PETER M (Inhalt von $(2)) Am Bildschirm erscheint die Warnung EXTRA IGNORED. EWA 4NEB 812 6071>01 5>111 BASIC>Interpreter CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.12.3 MID Funktion MID (strvar, expr1, expr2) Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung Als Funktionswert wird ein Teilstring der gÂltigen Stringvariablen ∫strvar∫, beginnend bei der Position ∫expr1∫ mit der Lßnge ∫expr2∫, ermittelt. Die Zßhlrichtung verlßuft von links nach rechts und beginnt bei 1. strvar: expr1: expr2: gÂltiger Stringname, z. B. §(0) gÂltiger Ausdruck, 1eexpr1e254 gÂltiger Ausdruck, 1eexpr1e254 Beispiel >5 STRING 2,25 >10 REM 12345678901234567890123 >20 $(0)=”Kommunikationsprozessor” >30 $(1)= MID ($(0), 5, 6) >40 PRINT $(1) >RUN unikat Die Stringvariable § (1) enthßlt nun den Teilstring ∫unikat∫. Ist die Lßnge des Teilstrings gr‘˚er als die Anzahl der selektierbaren Zeichen (position+lßnge >SLEN(strvar)), erfolgt keine Fehlermeldung. Als Funktionswert wird die maximal m‘gliche Anzahl von Zeichen Âbertragen. Ist die Stringvariable, der der Funktionswert zugewiesen werden soll, zu klein dimensioniert, erfolgt ebenfalls keine Fehlermeldung. Die Stringvariable wird bis zur dimensionierten Gr‘˚e aufgefÂllt. 5>112 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.12.4 FIND Funktion FIND strvar1, strvar2 Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung Als Funktionswert wird die Position des ersten Auftretens des Teilstrings ∫strvar2∫ im String ∫strvar1∫ Âbergeben. Der Funktionswert ist gleich 0, wenn: f strvar2 lßnger als strvar1 ist (SLEN(strvar2)>SLEN (strvar)) f strvar2 oder strvar1 keine Zeichen enthßlt (Leerstring) f strvar2 in strvar1 nicht gefunden wurde. ∫strvar1∫ und ∫strvar2∫ sind gÂltige Stringnamen. Beispiel >5 STRING 2,40 >10 REM 1 2 3 4 >20 REM 1234567890123456789012345678901234567890 >30 $(0)=”Dies ist ein Beispiel zu dem Befehl FIND” >40 $(1)=”Beispiel” >50 pos=FIND $(0), $(1) >60 PRINT”Gefunden bei Position”, pos >70 END >RUN Gefunden bei Position 14 EWA 4NEB 812 6071>01 5>113 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter 5>114 CP 521 BASIC 5.12.5 SLEN Funktion SLEN strvar Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung Als Funktionswert Âbergibt diese Funktion die Lßnge des Strings ∫strvar∫. strvar: gÂltiger Stringname Funktionswert: Integerwert 0...254 Beispiel >5 STRING 1,30 >10 REM 1 2 >20 REM 1234567890123456789012 >30 $(0)=”Automatisierungsgeraet” >40 SLAENGE=SLEN $(0) >50 PRINT ”Die Stringlnge betrgt”,SLAENGE,”ZEICHEN” >RUN Die Stringlnge betrgt 22 Zeichen 5.12.6 Die String>Operatoren ASC und CHR Funktion ASC(ASCII-Zeichen) und CHR(expr) Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe In BASIC k‘nnen zwei Operatoren Strings manipulieren. Diese Operatoren sind ASC() und CHR(). Zeichenketten k‘nnen mit diesem verfÂgbaren String> Operatoren auf nahezu jede nur denkbare Weise bearbeitet werden . EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC Funktion EWA 4NEB 812 6071>01 BASIC>Interpreter ASC(ASCII-Zeichen) Wirkung Der Operator ASC() gibt den Ganzzahlwert fÂr das ASCII>Zeichen an, das zwischen den Klammern steht. Beispiel >PRINT ASC(A) 65 65 ist das Dezimalßquivalent fÂr das ASCII>Zeichen "A". Au˚erdem k‘nnen mit dem Operator ASC() auch Einzelzeichen in einer zuvor definierten ASCII>Zeichen> kette geprÂft werden. Beispiel >5 STRING 1,20 >10 $(0)=”DAS IST EIN STRING” >20 PRINT $(0) >30 PRINT ASC($(0),1) >RUN DAS IST EIN STRING 68 Hinweis: Die interne Darstellung eines Strings wird von dem Zeichen CR beendet. Mit Hilfe des Operators ASC darf dieses Zeichen nicht Âberschrieben oder an anderer Stelle im String hinterlegt werden, da der String sonst nicht mehr auslesbar ist, bzw. verkÂrzt wird. Bei der Verwendung des Operators ASC() mÂssen Sie darauf achten, da˚ zwischen dem Operatornamen ∫ASC∫ und dem Klammerausdruck ∫()∫ kein Blank (Leerzeichen) stehen darf. 5>115 BASIC>Interpreter CP 521 BASIC Beim Gebrauch des Operators ASC() in der oben beschriebenen Form gibt §([expr]) an, welche Zeichenkette geprÂft werden soll, wßhrend mit dem Aus> druck hinter dem Komma ein einzelnes Zeichen in der Zeichenkette "ausgesucht" wird. Im obigen Beispiel wurde das erste Zeichen der Zeichenkette gewßhlt, und 68 ist das Dezimalßquivalent fÂr das ASCII>Zeichen "D". Beispiel >5 STRING 1,50 >10 $ (0) = ”ABCDEFGHIJKL” >20 FOR X = 1 TO 12 >30 ? ASC($(0),X), CHR($(0),X) >40 NEXT X >RUN 65 66 67 68 69 70 71 72 73 74 75 76 A B C D E F G H I J K L Die im obigen Beispiel ausgegebenen Zahlen sind die Werte, die den ASCII>Zei> chen A, B, C ... L entsprechen. Au˚erdem k‘nnen mit dem Operator ASC() auch einzelne Zeichen in einer definierten Zeichenkette geßndert werden. 5>116 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter Beispiel >5 STRING 1,15 >10 $(0)=”ABCDEFGHIJKL” >20 PRINT $(0) >30 ASC($(0),1)=75 >40 PRINT $(0) >50 ASC($(0),2)=ASC($(0),3) >60 PRINT $(0) >RUN ABCDEFGHIJKL KBCDEFGHIJKL KCCDEFGHIJKL Mit dem Operator ASC() kann der Programmierer ganz allgemein einzelne Zeichen in einer Zeichenkette manipulieren. Mit einem einfachen Programm kann festgestellt werden, ob zwei Zeichenketten identisch sind. Beispiel >5 STRING 2,25 >10 $(0)=”GEHEIM” REM GEHEIM IST DAS PASSWORT >20 INPUT ”WIE IST DAS PASSWORT - ”,$(1) >30 FOR I=1 TO 6 >40 IF ASC($(0),I)=ASC($(1),I) THEN NEXT I ELSE 70 >50 PRINT ”DU HAST ES ERRATEN” >60 END >70 PRINT ”FALSCH, VERSUCH ES NOCH EINMAL” : GOTO 20 >RUN WIE IST FALSCH, WIE IST DU HAST DAS PASSWORT - SICHER VERSUCH ES NOCH EINMAL DAS PASSWORT - GEHEIM ES ERRATEN EWA 4NEB 812 6071>01 5>117 CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a BASIC>Interpreter Funktion CHR(expr) Der Operator CHR() ist das GegenstÂck zum Operator ASC(). Er bildet zu einem numerischen Ausdruck das entsprechende ASCII>Zeichen. Beispiel >PRINT CHR(65) A Wie der Operator ASC() kann auch der Operator CHR() einzelne Zeichen aus einer definierten ASCII>Zeichenkette "heraussuchen". Beispiel >5 STRING 1,5 >10 $(0)=”BASIC” >20 FOR I=1 TO 5 : PRINT CHR($(0),I), : NEXT I >30 PRINT : FOR I=5 TO 1 STEP -1 >40 A=BUFIN CHR($(0),I), : NEXT I >50 HANDLE -1 >RUN BASIC CISAB aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa Im obigen Beispiel haben die AusdrÂcke in den Klammern hinter der Funktion CHR die gleiche Bedeutung wie die AusdrÂcke im Operator ASC(). Im Gegensatz zum Operator ASC() kann jedoch der Operator CHR() nicht ein Wert zugeordnet werden. Eine Anweisung wie beispielsweise CHR(§(0),1) = H ist un> zulßssig und wird mit einer Fehlermeldung ERROR : BAD SYNTAX beantwortet. Werte in Zeichenketten k‘nnen nur mit dem Operator ASC() verßndert werden. Der Operator CHR() kann nur innerhalb einer PRINT> oder einer BUFIN>Anwei> sung verwendet werden. aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa Hinweis: Bei der Verwendung des Operators CHR() mÂssen Sie darauf achten, da˚ zwischen dem Operatornamen ∫CHR∫ und dem Klammerausdruck ∫()∫ kein Blank (Leerzeichen) stehen darf. 5-118 EWA 4NEB 812 6071>01 CP 521 BASIC 5.13 BASIC>Interpreter Funktionen und Anweisungen fÂr Datum und Uhrzeit a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.13.1 SETCLOCK Funktion SETCLOCK [strvar] Betriebsart COMMAND und/oder RUN Typ Steuerung Funktionswert: Integerwert 0..1 0: der Funktionsaufruf verlief fehlerfrei 1: der Funktionsaufruf wurde nicht fehlerfrei abgearbeitet Wirkung Mit der Funktion SETCLOCK stellen Sie die baugruppeneigene Uhr. ∫strvar∫ (Stringkonstante oder Stringvariable) enthßlt die Stellzeit im gewÂnsch> ten Format. Folgende zwei Formate sind zulßssig: f deutsches Format: Wertebereich: f Stunde : Minute : Sekunde 0..23 0..59 0..59 amerikanisches Format: Tageszeit / Stunde / Minute / Sekunde Wertebereich: AM oder PM 1..12 0..59 0..59 Beispiel >PRINT SETCLOCK ”AM/1/1/0” 0 READY > Es wird die Uhrzeit ∫1 Uhr 1 vormittag∫ eingestellt. Anmerkung Bei unzulßssiger oder unvollstßndiger Eingabe wird die aktuelle Uhrzeit nicht verßndert. Es wird der Funktionswert =1 zurÂckgegeben. Die Stellwerte dÂrfen zusßtzlich durch Blanks getrennt sein. EWA 4NEB 812 6071>01 5>119 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter CP 521 BASIC 5.13.2 RDCLOCK Anweisung RDCLOCK [strvar] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Der String ∫strvar∫ enthßlt nach dem Aufruf die aktuelle Uhrzeit. Das Format (deutsch/amerikanisch) der Uhrzeit ist identisch mit dem zuletzt bei SETCLOCK oder SETDATE verwendeten Format. Anmerkung Ist der ebergabestring zu klein dimensioniert, wird der String soweit wie m‘glich mit der Uhrzeit links beginnend ∫aufgefÂllt∫. Hinweis: Das deutsche Zeichenformat ben‘tigt 8 Zeichen. Das amerikanische Zeichen> format ben‘tigt 11 Zeichen. 5>120 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.13.3 SETDATE Funktion SETDATE [strvar] Betriebsart COMMAND und/oder RUN Typ Steuerung Funktionswert: Integerwert 0...1 0: der Funktionsaufruf verlief fehlerfrei 1: der Funktionsaufruf wurde nicht fehlerfrei abgearbeitet Wirkung Mit der Funktion SETDATE stellen Sie das aktuelle Datum ein, das Âber die Variable ∫strvar∫ (Stringkonstante oder Stringvariable; enthßlt das Stelldatum) im gewÂnschten Format Âbergeben wird. Folgende zwei Formate sind zulßssig: f deutsches Format: Tag : Monat : Jahr Wertebereich: 1..31 1..12 (19)90 ... (20)89 f amerikanisches Format: Monat / Tag / Jahr Wertebereich: 1..12 1..31 (19)90 ... (20)89 Anmerkung Bei unzulßssiger oder unvollstßndiger Eingabe wird das aktuelle Datum nicht verßndert. Es wird der Funktionswert =1 zurÂckgegeben. FÂr jeden Wert sind ein oder zwei Ziffern zulßssig. Die Stellwerte dÂrfen zusßtzlich durch Blanks getrennt sein. Die Jahreszahl ist zweistellig: > 90 ... 99 bezieht sich auf das 20. Jahrhundert > 0 ... 89 bezieht sich auf das 21. Jahrhundert EWA 4NEB 812 6071>01 5>121 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a BASIC>Interpreter 1: 2: 3: 4: 5: 6: 7: CP 521 BASIC 5.13.4 RDDATE Anweisung RDDATE [strvar] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Der String ∫strvar∫ enthßlt nach dem Aufruf das baugruppeneigene Datum. Das Format (deutsch/amerikanisch) des Datums ist identisch mit dem zuletzt bei SETCLOCK oder SETDATE verwendeten Format. Vorangestellt ist immmer der Wochentag mit folgender Bedeutung: Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag Anmerkung Ist der ebergabestring zu klein dimensioniert, wird der String soweit wie m‘glich mit dem Datum links beginnend ∫aufgefÂllt∫. Hinweis: Das komplette Datum ben‘tigt unabhßngig vom Format 11 Zeichen. 5>122 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.13.5 T ADJ Anweisung T ADJ [expr] Betriebsart COMMAND und/oder RUN Typ Steuerung Wirkung Zur Kompensierung einer z.B. temperaturbedingten Gangabweichung der bau> gruppeneigenen Uhr wird die Systemzeit in regelmß˚igen Abstßnden korrigiert. Der m‘gliche Korrekturwert liegt zwischen > 400 und +400, jeweils inclusive und hat die Einheit s/(30 Tage). Zur Korrektur wird die Uhr pro Stunde um max. 1 s angehalten oder vorgestellt, die Zeit ∫springt∫ also nicht. Der zuletzt eingegebe> ne Korrekturfaktor ist batteriegepuffert. Ein positiver Korrekturfaktor verlang> samt die Uhr. Varianten keine EWA 4NEB 812 6071>01 5>123 BASIC>Interpreter 5.14 CP 521 BASIC Weitere Funktionen und Systemsteuerwerte a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaaaa a 5.14.1 Spezielle Funktionsoperatoren Funktion XBY([expr]) Betriebsart COMMAND und/oder RUN Typ Eingabe/Ausgabe Wirkung Mit der Funktion XBY([expr]) wird ein Wert aus dem externen Datenspeicher ausgelesen. Das Argument der Funktion XBY([expr]) mu˚ eine zulßssige Ganzzahl sein (d.h. zwischen 0 und 65.535 (0FFFFH)). Anderenfalls wird eine Fehlermeldung ERROR: BAD ARGUMENT ausgegeben. Beispiel A=XBY(0F000H) Im Beispiel wird die Variable A gleich dem Wert an der Stelle 0F000H des externen Speichers gesetzt. Anmerkung Mit der Funktion XBY ist es m‘glich, den genauen Fehler bei der Fehlerbehand> lung mit 0NERR zu bestimmen. 5>124 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter 5.14.2 Systemsteuerwerte Die Systemsteuerwerte legen fest oder geben an, wieviel Speicher belegt wurde. MTOP Nach einem Reset formatiert BASIC den externen Speicher und weist dem Systemsteuerwert MTOP die h‘chste gÂltige Speicheradresse 7FFFH zu. BASIC verwendet keinen externen RAM>Speicher Âber den Wert hinaus, der MTOP zu> gewiesen wurde. Weisen Sie MTOP einen Wert zu, der Âber der h‘chsten gÂltigen Speicheradresse liegt, so wird eine Fehlermeldung ERROR: MEMORY ALLOCATION ausgegeben. Zulßssiger Wertebereich: 0E00H ... 7FFFH Beispiele >PRINT MTOP 2047 >MTOP=2000 >PRINT MTOP 2000 LEN Der Systemsteuerwert LEN gibt dem Anwender an, wieviel Speicherraum (in Byte) das gegenwßrtig gewßhlte Programm belegt. Demzufolge kann LEN kein Wert zugewiesen werden, sondern es kann nur LEN ausgelesen werden. Ein Programm NULL (d.h. kein Programm) liefert LEN = 1. Dieses eine Byte entspricht dem Abschlu˚zeichen der Programmdatei. FREE Der Systemsteuerwert FREE gibt Ihnen an, wieviel RAM>Speicher (in Byte) fÂr Variablen/Strings verfÂgbar ist. Die folgende Beziehung gilt fÂr alle aktuellen Programme, die im RAM>Speicher abgelegt sind. FREE = MTOP > LEN > 3583 EWA 4NEB 812 6071>01 5>125 BASIC>Interpreter 5.15 CP 521 BASIC Fehlermeldungen und Besonderheiten 5.15.1 Fehlermeldungen BASIC besitzt eine relativ komplexe Fehleranzeige. In der Betriebsart RUN von BASIC haben Fehlermeldungen die folgende allgemeine Form: ERROR: XXX - IN LINE YYY YYY BASIC STATEMENT -------------X Hierbei bezeichnen XXX den Fehlertyp und YYY die Nummer der Programmzeile, in der der Fehler auftrat. Ein spezifisches Beispiel ist: ERROR: BAD SYNTAX - IN LINE 10 10 PRINT 34*21* --------------X X gibt annßhernd die Stelle in der Zeile an, an der der Fehler auftrat. Die spe> zifische Stelle des Zeichens X kann, je nach Typ des Fehlers und je nach der Stelle, in der der Fehler im Programm auftrat, um ein oder zwei Zeichen oder AusdrÂcke neben dem eigentlichen Fehler liegen. Bei einem Fehler im Kommando>Modus wird nur der Fehlertyp ausgegeben, nicht die Zeilennummer. Dies ist sinnvoll, weil es im Kommando>Modus keine Zeilennummern gibt. Es sind folgende Fehlertypen m‘glich: BAD SYNTAX Der Fehler BAD SYNTAX bedeutet, da˚ ein fÂr BASIC unzulßssiger Befehl, Anweisung oder Operator eingegeben wurde und BASIC die Eingabe nicht verarbeiten kann. Hier mu˚ geprÂft werden, ob alle Eingaben richtig vorge> nommen wurden. Insbesondere ist darauf zu achten, da˚ reservierte SchlÂsselworte nicht im Variablennamen enthalten sind. 5>126 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter BAD ARGUMENT Der Fehler BAD ARGUMENT wird ausgegeben, wenn das Argument eines Operators nicht innerhalb der zulßssigen Grenzen liegt, z.B. T ADJ = 500 ARITH. UNDERFLOW Der Fehler ARITH. UNDERFLOW wird gemeldet, wenn das Ergebnis einer arith> metischen Operation die untere Grenze einer Gleitpunktzahl in BASIC unterschreitet. Die kleinste Gleitpunktzahl ist ±1.0E > 127. So liefert beispiels> weise ±1.0E > 80/1.0E+80 an ein ERROR: ARITH. UNDERFLOW . ARITH. OVERFLOW Der Fehler ARITH. OVERFLOW wird gemeldet, wenn das Ergebnis einer arith> metischen Operation den oberen Grenzwert fÂr eine Gleitpunktzahl Âberschreitet. Die gr‘˚te zulßssige Gleitpunktzahl ist ±0.99999999E + 127. So liefert beispielsweise 1.0E + 70*1.0E+57 ein ERROR: ARITH. OVERFLOW . DIVIDE BY ZERO Jeder Versuch, eine Division durch Null vorzunehmen, z.B. 12/0, liefert die Fehler> meldung DIVIDE BY ZERO. LINE TOO LONG Bei Eingabe einer Zeile, die mehr als 79 Zeichen enthßlt, werden Sie durch eine akustische Meldung darauf hingewiesen, da˚ eine Eingabezeile zu lang ist. NO DATA Die Fehlermeldung ERROR: NO DATA > IN LINE XXX wird Âber die Konsole ausgegeben, wenn eine READ>Anweisung ausgefÂhrt wird und keine DATA> An> weisung vorhanden ist oder aber alle Daten bereits eingelesen wurden und keine RESTORE>Anweisung vorhanden ist. CAN'T CONTINUE Die ProgrammausfÂhrung kann durch Eingabe von CTRL>C Âber die Konsole oder durch AusfÂhrung einer STOP>Anweisung unterbrochen werden. Normalerweise kann der Programmablauf durch Eingabe des Befehls CONT fortgesetzt werden. Wenn jedoch der Anwender das Programm editiert, nachdem er den Ablauf unterbrochen hat, und dann den Befehl CONT eingibt, wird ein ERROR: CAN'T CONTINUE gemeldet. Der Befehl CONT kann nur ausgefÂhrt werden, wenn unmittelbar vorher wßhrend des Programmablaufs CTRL>C eingegeben wurde oder eine STOP>Anweisung auszufÂhren war. EWA 4NEB 812 6071>01 5>127 BASIC>Interpreter CP 521 BASIC A>STACK Der Fehler A>STACK (Argumentstapel) wird gemeldet, wenn der Zeiger des Argumentstacks au˚erhalb der Grenzen gerßt. Dies ist m‘glich, wenn durch PUSH zu viele AusdrÂcke in den Argumentstack geladen werden oder durch POP versucht wird, Daten aus einem bereits leeren Stack auszulesen. C>STACK Der Fehler C>STACK (Steuerstack) wird gemeldet, wenn der Stackpointer au˚erhalb der Grenzen gerßt. Der Steuerstack belegt 158 Byte des externen Speichers. Schleifen FOR>NEXT belegen 17 Byte im Steuerstack, Schleifen DO> UNTIL, DO>WHILE und GOSUB jeweils 3 Byte des Steuerstacks. Dies bedeutet, da˚ BASIC maximal neun verschachtelte Schleifen FOR>NEXT verarbeiten kann, weil 9!x 17 = 153 ist. Bei einem Versuch des Anwenders, den Steuerstack stßrker zu belegen, als in BASIC zulßssig ist, wird eine Fehlermeldung C>STACK ausgegeben. Fehler C>STACK werden auch gemeldet, wenn das Programm ein RETURN vor dem entsprechenden GOSUB, ein WHILE oder UNTIL vor dem entsprechenden DO oder ein NEXT vor dem entsprechenden FOR enthßlt. I>STACK Die Fehlermeldung I>STACK (interner Stack) wird ausgegeben, wenn BASIC nicht mehr Âber genÂgend Stackspeicherkapazitßt verfÂgt, um einen Ausdruck abarbeiten zu k‘nnen. 5>128 EWA 4NEB 812 6071>01 CP 521 BASIC BASIC>Interpreter ARRAY SIZE Der Fehler ARRAY SIZE wird gemeldet, wenn ein Feld durch eine DIM> Anwei> sung dimensioniert wurde und anschlie˚end versucht wird, eine Variable aufzurufen, die au˚erhalb der Grenzen der Dimensionierung liegt. Beispiel >DIM A(10) >PRINT A(11) ERROR ARRAY SIZE READY MEMORY ALLOCATION Der Fehler MEMORY ALLOCATION wird gemeldet, wenn der Anwender versucht, Strings aufzurufen, die "au˚erhalb" der definierten String>Grenzen liegen. Der Fehler MEMORY ALLOCATION wird auch gemeldet, wenn dem Systemsteuerwert MTOP ein Wert zugeordnet wurde, der keinen RAM>Speicher enthßlt. EWA 4NEB 812 6071>01 5>129 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a BASIC>Interpreter >2OH=10 >LIST 32 =10 (FALSCH) CP 521 BASIC 5.15.2 Besonderheiten Die Angabe von bekannten Besonderheiten soll hier dem Programmierer helfen, Zeit zu sparen. Die bekannten Besonderheiten behandeln hauptsßchlich die Art, auf die BASIC das Programm verdichtet. Es sind folgende Besonderheiten bekannt: Hinweis: Nach einer Zeilennummer mu˚ bei Verwendung der Variablen H oder von SchlÂsselworten, die mit H beginnen, darauf geachtet werden, zwischen der Zeilennummer und den Buchstaben H ein Blank zu setzen, da BASIC die Zeilennummer sonst als eine Hex>Zahl ansieht. Beispiele >20 H=10 (richtig) >LIST 20 H=10 Hinweis: Das Argument des Operators ASC() darf keine Blanks enthalten. Anweisungen wie beispielsweise PRINT ASC( ) ergibt also einen ERROR: BAD SYNTAX. Zeichenketten dÂrfen jedoch Blanks enthalten, so da˚ eine Anweisung wie LET §(0) = ∫HELLO, HOW ARE YOU∫ keine Schwierigkeiten bereitet. Der Grund hierfÂr, da˚ ASC( ) einen Fehler liefert, liegt daran, da˚ BASIC bei der Verarbeitung der Zeilen alle Blanks unterdrÂckt, so da˚ ASC( ) in der Form ASC() abgespeichert wird. Dies sieht BASIC als Fehler an. 5>130 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a CP 521 BASIC EWA 4NEB 812 6071>01 BASIC>Interpreter Hinweis: Das deutsche Zeichenformat ben‘tigt 8 Zeichen. Das amerikanische Zeichen> format ben‘tigt 11 Zeichen. Interrupts BASIC kann zeitgesteuerte Interrupts verarbeiten. Die Anweisungen der erforderlichen Interrupt>Routinen werden im Anwenderprogramm hinterlegt. Die ONTIME>Anweisung (Æ Kap. 5.8.19) gibt den Interrupt frei. 5>131 CP 521 BASIC Programme EWA 4NEB 812 6040>01a 6.4 6.4.1 6.4.2 a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 6 Kommunikations>Schnittstellen 6.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 > 1 6.2 Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 > 2 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 Datentransfer CPU>CP 521 BASIC . . . . . . . . . . . . . . . . . . . . . Datentelegramme an den CP 521 BASIC senden . . . . . . . Datentelegramme vom CP 521 BASIC empfangen . . . . . . BASIC>Programme starten . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenaustausch Âber Direktzugriff . . . . . . . . . . . . . . . . . . . Uhr stellen (Status des CP 521 BASIC und aktuelle Uhrendaten) . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 6 6 6 6 > 29 Datentransfer CP 521 BASIC>Peripheriegerßt . . . . . . . . . . Bidirektionale serielle Schnittstelle des CP 521 BASIC . . . Unidirektionale serielle Schnittstelle des CP 521 BASIC . 6 > 34 6 > 34 6 > 40 EWA 4NEB 812 6071>01 > 3 > 5 > 18 > 26 > 28 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Bilder 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 Senden und Empfangen von Daten . . . . . . . . . . . . . . . . . . . Datentelegramme senden . . . . . . . . . . . . . . . . . . . . . . . . . . . Datentelegramme empfangen . . . . . . . . . . . . . . . . . . . . . . . Ablaufschema beim Senden von Daten . . . . . . . . . . . . . . . Ablaufschema beim Empfangen von Daten . . . . . . . . . . . Timing>Diagramm fÂr den Datentransfer zwischen CP 521 BASIC und Peripheriegerßt . . . . . . . . . . . . . . . . . . . . Daten Âber die bidirektionale Schnittstelle senden . . . . . Daten Âber die bidirektionale Schnittstelle empfangen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Daten Âber die unidirektionale Schnittstelle senden . . . 6 6 6 6 6 > 1 > 3 > 4 > 7 > 19 6 > 37 6 > 38 6 > 39 6 > 40 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Tabellen 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 6.23 M‘gliche CPU>Auftrßge beim Senden von Telegrammen (PAA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Koordinierungsauftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Koordinierungsinformation . . . . . . . . . . . . . . . . . . . . . . . . . Datentransfer: 1. Datenblock senden . . . . . . . . . . . . . . . . . Quittierung des 1. Datenblocks . . . . . . . . . . . . . . . . . . . . . . Datentransfer: 2. Datenblock senden . . . . . . . . . . . . . . . . . Quittierung des 2. Datenblocks . . . . . . . . . . . . . . . . . . . . . . Datentransfer: 43. Datenblock senden . . . . . . . . . . . . . . . . Quittierung des letzten (43.) Datenblocks . . . . . . . . . . . . . Koordinierungsauftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Koordinierungsauftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datentransfer: 1. Datenblock empfangen . . . . . . . . . . . . . Quittierung des 1. Datenblocks . . . . . . . . . . . . . . . . . . . . . . Datentransfer: 25. (letzten) Datenblock empfangen . . . Quittierung des 25. Datenblocks . . . . . . . . . . . . . . . . . . . . . Abschlie˚ende Koordinierungsinformation . . . . . . . . . . . CPU>Auftrag ∫Programm starten∫ . . . . . . . . . . . . . . . . . . . . Daten von der Baugruppe an die CPU . . . . . . . . . . . . . . . . . Status der Baugruppe (Byte 0 im PAE) . . . . . . . . . . . . . . . . Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zulßssiger Auftrag (Byte 0 im PAA) . . . . . . . . . . . . . . . . . . . ebergabe von zusßtzliche Angaben beim Auftrag ∫Uhr stellen∫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bedienbare Steuersignale der bidirektionalen V.24>Schnittstelle im Betrieb mit Modemsignalen . . . . . . EWA 4NEB 812 6071>01 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 > > > > > > > > > > > > > > > > > > > > > 6 9 10 11 12 13 14 15 16 17 20 21 22 23 24 25 27 29 30 31 33 6 > 33 6 > 35 CP 521 BASIC Programme EWA 4NEB 812 6040>01a CP 521 BASIC 6 Kommunikations>Schnittstellen Kommunikations>Schnittstellen In diesem Kapitel des GHB wird theoretisch der Datenaustausch zwischen CPU, CP!521 BASIC und angeschlossenem Peripheriegerßt beschrieben. Eine vollstßndige Zusammenstellung aller notwendigen FBs und OB1 fÂr das fehlerfreie AusfÂhren von Sende> und Empfangsauftrßgen mit dem CP 521 BASIC finden Sie im Kapitel 8. D.h., insbesondere die folgenden Kapitel 6.3.1 und 6.3.2 braucht der Anwender nur im Fall von Fehlersuche oder zum selbstßndigen Programmieren von FBs zu lesen. 6.1 Allgemeines FÂr die Kommunikation des CP 521 BASIC mit Peripheriegerßten Âber die seriellen Schnittstellen werden parametrierbare Treiber eingesetzt. Die DatenÂbertra> gung erfolgt interpretierend mit oder ohne HW>Protokoll oder SW>Protokoll. Die ebertragung der Daten erfolgt in zwei Schritten: 1. CPU N CP 521 BASIC Die ebertragung eines Telegramms zwischen CPU und CP 521 BASIC erfolgt in 8>Byte>Bl‘cken (6 Byte Nutzdaten). 2. CP 521 BASIC N Peripheriegerßte Der Datentransfer Âber die seriellen Schnittstellen wird vom CP 521 BASIC nach einem Ansto˚ Âber das BASIC>Programm selbstßndig abgewickelt. CPU 1 CP 521 BASIC AG100>Bus 2 Peripherie> gerßt Peripherie> Schnittstellen Bild 6.1 Senden und Empfangen von Daten Die ebertragung hßngt ab f von der Art der Schnittstelle (TTY oder V.24) f ob bei Verwendung der V.24>Schnittstelle Handshake parametriert ist (Hand> shake OFF oder ON). EWA 4NEB 812 6071>01 6>1 Kommunikations>Schnittstellen 6.2 CP 521 BASIC Inbetriebnahme Bevor Sie die Baugruppe in Betrieb nehmen, mÂssen folgende Voraussetzungen erfÂllt sein: 1. Einstellungen am Peripheriegerßt Die Einstellungen am Peripheriegerßt und die Parametrierungsdaten des CP!521!BASIC mÂssen Âbereinstimmen. Wenn zum Beispiel Ihr Peripheriegerßt Daten mit 2400!Bd Âbertrßgt, mu˚ diese Baudrate auch an der Baugruppe eingestellt sein. aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa 2. Parametrierung des CP 521 BASIC Sie haben drei M‘glichkeiten, die Baugruppe zu parametrieren: f Beim Hochlauf des CP 521 BASIC wird mittels der Auto>Baud>Routine die Schnittstelle mit Default>Einstellungen parametriert, wobei die Baudrate individuell automatisch erkannt wird. f Parametrierung des CP 521 BASIC Âber die ∫PROG∫> Befehle (Æ Kap. 5.7.4). f Sie legen die Parametrierungsdaten Âber den BASIC>Befehl INIT fest (Æ!Kap.!5.8.3). Hinweis: aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Nach erstmaligem Einschalten setzt der CP 521 BASIC eine V.24>Schnittstelle, 8!Datenbits, gerades Paritßtsbit, 1 Stoppbit und keine Handshakes voraus. Eine der Baudraten (110, 200, 300, 600, 1200, 2400, 4800, 9600) Bd wird automatisch erkannt. Wollen Sie mit einem Terminal oder PG mit TTY>Schnittstelle arbeiten, mÂssen Sie die bidirektionale Schnittstelle (Defaulteinstellung V.24) umparametrieren. Es!wird folgendes Vorgehen empfohlen: ∏ Schlie˚en Sie zuerst ein Terminal oder PG mit V.24>Schnittstelle (PG 7XX) an. ∏ Legen Sie mit INIT die zu ßndernden Schnittstellen>Parameter fest. ∏ Speichern Sie die Parameter in den batteriegepufferten RAM>Speicher mit PROG1 bzw. PROG2 ab. ∏ NETZ> AUS ∏ Ersetzen Sie angeschlossenes Terminal/PG 7XX durch gewÂnschtes Terminal/ PG mit TTY>Schnittstelle. ∏ NETZ > EIN 6>2 EWA 4NEB 812 6071>01 aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC 6.3 Kommunikations>Schnittstellen Datentransfer CPU > CP 521 BASIC Hinweis: Wßhrend laufendem Telegrammverkehr zwischen CPU und CP 521 BASIC sind keine Proze˚alarme (CPU 103) zulßssig. SENDEN: Die CPU Âbertrßgt Telegramme, die maximal 256 Bytes lang sein dÂrfen in 8>Byte> Bl‘cken. Jeder Block besteht aus 6 Byte Daten und 2 Koordinierungsbytes. Der Empfang eines jeden Blockes wird vom CP 521 BASIC quittiert. CPU CP Telegramm senden Telegramm empfangen EWA 4NEB 812 6071>01 Empfangsfach Sendefach Bild 6.2 Datentelegramme senden 1. Sendeansto˚ durch die CPU Mit dem Auftrag A001H ∫Daten senden∫ st‘˚t die CPU den Datentransfer zum CP!521 BASIC an. Mit diesem Auftrag wird auch die Sendelßnge (Telegramm> lßnge) festgelegt. 2.CP>Quittung Der CP 521 BASIC quittiert der CPU den Auftragseingang mit 5001H. 3. DatenblockÂbergabe Die CPU wertet die RÂckmeldung aus und beginnt mit der ebergabe der aktuellen Daten erst dann, wenn keine Fehler festgestellt werden. Eingeleitet wird die DatenblockÂbergabe mit dem Auftrag B0H und der Angabe der gerade Âbertagenen Datenblocknummer. Darauf folgen 6 Byte Daten. Der zuletzt Âbertragene Datenblock braucht nicht unbedingt 6 Bytes zu enthalten. 6>3 Kommunikations>Schnittstellen CP 521 BASIC 4. CP>Quittung Der CP 521 BASIC quittiert alle Datenbl‘cke und legt sie solange in einem Empfangspuffer ab, bis er ein vollstßndiges Telegramm erhalten hat. Ein Tele> gramm darf h‘chstens 256!Bytes lang sein. 5. TelegrammÂbergabe Der CP 521 BASIC fa˚t die Datenbl‘cke zu einem Telegramm zusammen. Diese Daten stehen dem BASIC>Programm zur weiteren Bearbeitung zur VerfÂgung. EMPFANGEN: Zur Pufferung der Daten steht ein Sendepuffer zur VerfÂgung, in dem bis 256!Byte Daten zwischengespeichert werden. Hierzu mÂssen sie von einem BASIC>Programm in den Sendepuffer abgelegt wer> den. Die DatenÂbergabe vom CP 521 BASIC zur CPU ist im folgenden beschrieben. Vor der DatenÂbergabe mu˚ das Senden vom BASIC>Programm angesto˚en worden sein. CP aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaa CPU aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaa Telegramm senden Telegramm empfangen Empfangsfach Sendefach Bild 6.3 Datentelegramme empfangen 1. Empfangsansto˚ Die CPU sendet einen Auftrag ∫Datenempfang koordinieren∫ (A080H) zum CP!521!BASIC. 2. CP>Quittung Der CP 521 BASIC startet die DatenÂbertragung und sendet die ersten sechs Bytes des Telegramms zusammen mit einer Blocknummer aus dem Sendepuffer zur CPU (FIFO>Prinzip). 6>4 EWA 4NEB 812 6071>01 CP 521 BASIC Kommunikations>Schnittstellen 3. CPU>Quittung Die CPU quittiert die empfangenen Daten mit C0H und der Nummer des eingegangenen Datenblocks. Die Baugruppe sendet einen weiteren Block usw., bis das gesamte Telegramm vom CP 521 BASIC zur CPU Âbertragen ist. 4. Abschlu˚meldung Auf den Auftrag ∫Datentransfer koordinieren∫ bekommt die CPU sofort die abschlie˚enden Quittungen: f 5000H in EW0 und 00XXH in EW2 auf die Auftrßge A001H und A080H, wenn ein Telegramm vollstßndig Âbertragen wurde und die Daten gÂltig sind oder f 5000H in EW0 und FFXXH in EW2 auf den Auftrag A001H, wenn bereits ein Telegramm im Empfangspuffer vorhanden ist, die Para> meter fÂr Telegrammlßnge oder Endezeichen falsch sind oder die Daten ungÂltig sind. f 5000H in EW0 und FFXXH in EW2 auf den Auftrag A080H, wenn kein Telegramm im Sendepuffer vorhanden ist oder die Daten ungÂltig sind. 6.3.1 Datentelegramme an den CP 521 BASIC senden Die CPU Âbertrßgt Telegramme, die max. 256 Byte lang sein dÂrfen, in acht Byte gro˚en Bl‘cken. Jeder Block besteht aus einer zwei Byte langen Kopfkennung und sechs Byte Daten. 1. Die CPU st‘˚t den Datentransfer mit dem Auftrag A001H an. Mit diesem Auftrag wird auch die Telegrammlßnge festgelegt (—). 2. Der CP 521 BASIC quittiert der CPU den Eingang dieses Auftrags (“). 3. Die CPU wertet die CP>RÂckmeldung aus, und erst wenn kein Fehler festge> stellt wurde, beginnt die CPU aktuelle Daten zu Âbertragen. Die ebertragung wird mit dem Auftrag B0H und der Angabe einer Datenblocknummer einge> leitet (”). Darauf folgen sechs Byte Daten. Der letzte Datenblock darf > abhßngig von der Sendelßnge oder Endezeichen > auch kleiner als 6 Byte sein. 4. Der CP 521 BASIC schreibt den Block in seinen Empfangspuffer, wo er zu> nßchst das gesamte Telegramm sammelt. Nach jedem Acht>Byte>Block be> kommt die CPU von dem CP 521 BASIC eine Quittung (‘). 5. Daraufhin schickt die CPU den nßchsten Datenblock an den CP 521 BASIC, usw. Diese DatenÂbertragung setzt sich so lange fort, bis alle Datenbl‘cke eines Telegramms transferiert sind. Ein Telegramm darf maximal 256 Bytes lang sein. EWA 4NEB 812 6071>01 6>5 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Kommunikations>Schnittstellen Byte 0 f f 6>6 CP 521 BASIC 6. Nachdem der letzte Datenblock vollstßndig empfangen wurde, quittiert der CP 521 BASIC mit der Abschlu˚meldung 5000H. 7. Der CP 521 BASIC fa˚t die Datenbl‘cke zu einem Telegramm zusammen. Die Daten Stehen dem BASIC>Programm zur weiteren Bearbeitung zur VerfÂgung. Hinweis: Im Empfangspuffer des CP 521 BASIC kann nur 1 Telegramm gespeichert wer> den. Erst wenn dieses Telegramm vom BASIC>Programm entsorgt wurde, kann die CPU das nßchste Sendetelegramm an den CP 521 BASIC Âbergeben. Telegramme unter Angabe der Lßnge an den CP 521 BASIC senden Im folgenden ist beschrieben, mit welchen Auftrßgen die CPU den CP 521 BASIC veranla˚t, Daten zu senden, und wie der CP 521 BASIC diese Auftrßge quittiert. Tabelle 6.1 M‘gliche CPU>Auftrßge beim Senden von Telegrammen (PAA) Bedeutung A0H Datentransfer koordinieren B0H Datentransfer CPU Æ CP 521 BASIC abwickeln Die DatenÂbertragung Âber den CP 521 BASIC verlßuft in zwei Schritten: Zunßchst wird der Datentransfer zwischen CPU und CP 521 BASIC koordiniert. Erst danach werden die Daten Âbertragen. Den gesamten Ablauf des Datentransfers beim Senden von Daten zeigt das Schema auf den beiden folgenden Seiten. Eine Beschreibung der dort aufgefÂhrten Schritte erfolgt im Anschlu˚. Dargestellt sind Datenbl‘cke von jeweils acht Bytes, wie sie beim Senden von Telegrammen genutzt werden. Dabei wechseln sich von Block zu Block Auftrag der CPU und die entsprechende Quittierung des CP 521 BASIC ab. EWA 4NEB 812 6071>01 CP 521 BASIC Kommunikations>Schnittstellen Datentransfer: CPU O CP 521 BASIC CPU O CP 521 BASIC Byte — 0 1 2 3 4 5 6 7 A0H 01H nnH nnH nnH nnH xxH xxH Koord. auftr. Koord. byte: SENDEN Sendelßnge Endezeichen irrelevant CPU M CP 521 BASIC “ 50H 01H 00H xxH nnH Koord. info. Koord. byte Daten gÂltig irrel. Telegr. anzahl xxH xxH xxH irrelelvant CPU O CP 521 BASIC ” B0H 01H nnH Daten> trans. Block> nummer nnH nnH nnH nnH nnH Daten CPU M CP 521 BASIC ‘ 50H 01H 00H 01H nnH Koord. info. Koord. byte Daten gÂltig Block> nummer Telegr. anzahl xxH xxH xxH irrelelvant Bild 6.4 Ablaufschema beim Senden von Daten EWA 4NEB 812 6071>01 6>7 Kommunikations>Schnittstellen CP 521 BASIC CPU O CP 521 BASIC ’ B0H 02H nnH Daten> trans. Block> nummer nnH nnH nnH nnH nnH Daten CPU M CP 521 BASIC ÷ 50H 01H 00H 02H nnH xxH Koord. info. Koord. byte Daten gÂltig Block> nummer Telegr. anzahl xxH xxH irrelelvant ... CPU O CP 521 BASIC ◊ B0H nrH nnH Daten> trans. Block nummer nnH nnH nnH nnH nnH letzter Datenblock CPU M CP 521 BASIC ÿ 50H 00H 00H nrH nnH Koord. info. Koord. byte Daten gÂltig Block> nummer Telegr. anzahl xxH xxH xxH irrelelvant Bild 6.4 Ablaufschema beim Senden von Daten (Fortsetzung) Die Schritte — bis ÿ sind im folgenden nßher erlßutert. 6>8 EWA 4NEB 812 6071>01 CP 521 BASIC Kommunikations>Schnittstellen — CPU>Auftrag: Datentransfer koordinieren (A0H) Um den Datentransfer zu koordinieren, wird der Auftrag A0H in Byte 0 des PAA geschrieben. Dadurch ist die Bedeutung der Bytes 1 bis 7 festgelegt. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Tabelle 6.2 Koordinierungsauftrag Byte Wert Bedeutung Auftrag: Datentransfer koordinieren 0 A0H 1 01H 2 01H Sendelßnge (hier: 256 Bytes) High>Byte 3 00H Sendelßnge (hier: 256 Bytes) Low>Byte 4 00H 5 00H 6 irrelevant 7 irrelevant Telegramm senden Endezeichen 1, 2; hier ohne Bedeutung Byte 1: Sie geben die Sendeerlaubnis fÂr ein Telegramm, indem Sie Bit!0=1 setzen. Damit ist der Datentransfer angesto˚en. Der CP!521!BASIC setzt dieses Bit zurÂck, nachdem er das Telegramm an die CPU weitergegeben hat. Bytes 2 u. 3: Byte 2 und 3 geben die Telegrammlßnge an. Sie kann im Bereich 0001H ... 0100H liegen. Bei der Telegrammlßnge 0 wertet der CP 521 BASIC die Endezeichen aus. Sind Sendelßnge und Endezeichen 0, liegt ein fehlerhafter Auftrag vor. Wenn Daten von der CPU zum CP 521 BASIC gesendet werden sollen, so sind die Parameter ∫Sendelßnge∫ oder ∫Endezeichen∫ dem CP 521 BASIC mit dem Sende> auftrag zu Âbergeben. EWA 4NEB 812 6071>01 6>9 Kommunikations>Schnittstellen CP 521 BASIC “ CP>RÂckmeldung zum Auftrag A001H Wenn der CP 521 BASIC den Auftrag A0H ∫Datentransfer koordinieren∫ mit gesetztem Sendebit 01H (∫Telegramm senden∫) erhßlt, und wenn kein Fehler vorliegt, quittiert der CP 521 BASIC den Auftrag der CPU wie folgt (PAE): a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaa a Tabelle 6.3 Koordinierungsinformation Byte Wert Bedeutung Quittierung: Koordinierungsinformation 0 50H 1 01H 2 00H / FFH 3 irrelevant 4 00H / 01H 5 irrelevant 6 irrelevant 7 irrelevant Koordinierungsbit ∫Senden∫ gesetzt Koordinierungsdaten gÂltig / ungÂltig Telegramm im CP>Sendepuffer nicht vorhanden/ vorhanden Byte 0: Quittierung zum Auftrag: Datentransfer ∫Senden∫ koordinieren. Im niederwertigen Halbbyte (X) k‘nnen Status> und Fehlermeldun> gen hinterlegt sein (Æ Kap. 7). Byte 1: Koordinierungsbit ∫Senden∫ gesetzt. Sind Koordinierungsdaten der CPU ungÂltig, so setzt der CP 521 BASIC das ∫Sendebit∫ auf 00H zurÂck. Byte 2: gibt an, ob die Koordinierungsdaten gÂltig (00H ) oder ungÂltig (FFH) sind. Byte 4: 6>10 meldet, ob ein Telegramm im Sendepuffer des CP 521 BASIC vor> handen ist. EWA 4NEB 812 6071>01 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC Byte Kommunikations>Schnittstellen die eigentliche DatenÂbertragung (” bis ÿ). Sobald der Datentransfer koordiniert ist (— und “), beginnt mit dem Auftrag B0H Hinweis: Der CP 521 BASIC Âbertrßgt in den Bytes 1 bis 7 Âblicherweise Datum und Uhrzeit zur CPU (Æ Kap. 6.3.5). Hat Byte 0 den Wert 50H oder 60H, so dÂrfen Sie diese Werte jedoch nicht als Uhrzeit interpretieren. ” CPU>Auftrag: ∫Daten senden∫ (B0H) Nachdem Sie den Auftrag A0H ausgegeben und eine entsprechende Quittierung vom CP 521 BASIC erhalten haben, geben Sie den Auftrag B001H mit dem 1. Da> tenblock des Telegramms aus (PAA). Tabelle 6.4 Datentransfer: 1. Datenblock senden Wert 0 B0H 1 01H 4 EWA 4NEB 812 6071>01 Bedeutung Auftrag: Daten senden Nummer des 1. Datenblocks 2 3 Daten 5 6 7 6>11 Kommunikations>Schnittstellen CP 521 BASIC Byte 0: Auftrag: Daten senden. Nach diesem Auftrag B0H interpretiert der CP 521 BASIC die Bytes 2 bis 7 als Daten. Byte 1: Gibt die Nummer des Datenblocks an, der gerade Âbertragen wird (hier: 1). In Ihrem Anwenderprogramm mÂssen Sie diese Block> nummer > bei 01H beginnend > hochzßhlen, sooft Sie einen Daten> block zum CP 521 BASIC senden. Das geschieht solange, bis das gesamte Datentelegramm zum CP 521 BASIC Âbertragen ist. ‘ CP>RÂckmeldung zum Auftrag B001H Den Auftrag ∫1. Datenblock des Telegramms senden∫ quittiert der CP 521 BASIC wie folgt (PAE): a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaa a Tabelle 6.5 Quittierung des 1. Datenblocks Byte Wert Bedeutung 0 50H Quittierung zum Auftrag: Daten senden 1 01H Koordinierungsbit ∫Senden∫ gesetzt, wenn Daten gÂltig 2 00H Daten gÂltig 3 01H Nummer des 1. Datenblocks 4 00H / 01H Telegramm im CP>Sendepuffer nicht vorhanden/ vorhanden 5 irrelevant 6 irrelevant 7 irrlevant Byte 3: 6>12 Gibt die Nummer des Datenblocks an, den der CP 521 BASIC gerade erhalten hat (hier: 1). EWA 4NEB 812 6071>01 aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC Byte Kommunikations>Schnittstellen Hinweis: Beachten Sie, da˚ der CP 521 BASIC nur auf eine Signalßnderung in Byte 0 oder 1 des PAA reagiert. Da sich der Auftrag B0H in Byte 0 nicht ßndert, solange Daten eines Telegramms gesendet werden, mÂssen Sie unbedingt in Byte 1 die Blocknummer hochzßhlen, bis alle Datenbl‘cke des Telegramms Âbertragen sind. Senden Sie eine falsche Blocknummer, dann wird der Datentransfer mit der RÂckmeldung 5000H gestoppt, und der CP 521 BASIC meldet bei weiteren Auftrßgen B0H im Statusbyte 0 der Baugruppe ∫Fehlerhafter Auftrag∫ (40H). Die Daten werden verworfen. Senden Sie den nßchsten Auftrag B0H mit hochgezßhltem Byte 1 (’), so quittiert der CP 521 BASIC mit hochgezßhltem Byte 3 (÷). ’ CPU>Auftrag: B002H Tabelle 6.6 Datentransfer: 2. Datenblock senden Wert 0 B0H 1 02H 4 EWA 4NEB 812 6071>01 Bedeutung Auftrag: Daten senden Nummer des 2. Datenblocks 2 3 Daten 5 6 7 6>13 a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaa a Kommunikations>Schnittstellen Byte 6>14 Wert CP 521 BASIC Tabelle 6.7 Quittierung des 2. Datenblocks ÷ CP>RÂckmeldung zum Auftrag B002H Bedeutung 0 50H Quittierung zum Auftrag: Daten senden 1 01H Koordinierungsbit ∫Senden∫ gesetzt, wenn Daten gÂltig 2 00H Daten gÂltig 3 02H Nummer des 2. Datenblocks 4 00H / 01H Telegramm im CP>Sendepuffer nicht vorhanden/ vorhanden 5 irrelevant 6 irrelevant 7 irrlevant EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC Byte Kommunikations>Schnittstellen Senden Sie ein Telegramm mit variabler Lßnge und nutzen die maximale Tele> grammlßnge, so sehen letzter CPU>Auftrag (◊) und CP>Quittierung (ÿ) folgen> derma˚en aus: ◊ CPU>Auftrag: B02BH Tabelle 6.8 Datentransfer: 43. Datenblock senden Wert 0 B0H 1 2BH EWA 4NEB 812 6071>01 Bedeutung Auftrag: Daten senden Datenblocknummer 43 (max.) 2 Daten 3 Daten 4 Daten (Byte 255) 5 Daten (Byte 256) 6 irrelevant 7 irrelevant Hinweis: Da ein Telegramm aus maximal 256 Bytes bestehen darf, k‘nnen Sie h‘chstens 43 Datenbl‘cke in einem Telegramm Âbertragen (42 ° 6 Bytes und 1 ° 4 Bytes). Somit stehen Ihnen im letzten Datenblock (2BH) nur noch vier Bytes fÂr Daten zur VerfÂgung. 6>15 a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Kommunikations>Schnittstellen Byte 6>16 Wert CP 521 BASIC ÿ CP>RÂckmeldung zum Auftrag B02BH Tabelle 6.9 Quittierung des letzten (43.) Datenblocks Bedeutung 0 50H Quittierung zum Auftrag: Daten senden 1 00H Koordinierungsbit ∫Senden∫ rÂckgesetzt, da letzter Datenblock 2 00H / FFH Koordinierungsdaten gÂltig / ungÂltig 3 2BH Nummer des 43. Datenblocks (max.) 4 00H / 01H Telegramm im CP>Sendepuffer nicht vorhanden/ vorhanden 5 irrelevant 6 irrelevant 7 irrelevant Telegramme mit Endezeichen senden Der Datentransfer mit variabler Telegrammlßnge lßuft ßhnlich ab wie der mit fester Telegrammlßnge. Im Unterschied zu diesem mÂssen Sie beim Senden mit variabler Lßnge zusammen mit dem Auftrag A001H (vgl.: — Telegramme senden) ein oder zwei Endezeichen in den Bytes 4 und 5 Âbergeben (ÆTab.6.10). EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaa a CP 521 BASIC Byte Kommunikations>Schnittstellen Tabelle 6.10 Koordinierungsauftrag Tabelle 6.11 Koordinierungsauftrag Wert EWA 4NEB 812 6071>01 Bedeutung 0 A0H 1 01H 2 00H Telegrammlßnge (hier: variable Lßnge) 3 00H Telegrammlßnge (hier: variable Lßnge) 4 0DH Endezeichen (nur wenn Telegrammlßnge = 0) 5 0DH Endezeichen (nur wenn Telegrammlßnge = 0) 6 irrelevant 7 irrelevant Auftrag: Datentransfer koordinieren Telegramm senden (Sendebit) Bytes 2 u. 3: Hier k‘nnen Sie festlegen, wie lang ein Telegramm sein soll (0000H!> 0100H). Wenn sie Telegramme mit variabler Lßnge senden wollen, programmieren sie hier 0000H = variable Lßnge. Sie mÂssen dann in den Bytes 4 und 5 noch ein oder zwei Endezeichen festlegen. Bytes 4 u. 5: Hier bestimmen Sie Ihre Endezeichen. Wenn Sie zwei Endezeichen nutzen wollen, belegen Sie beide Bytes. Wenn Sie nur ein Ende> zeichen nutzen, belegen sie nur Byte 5. Hinweis: Ist das Telegramm lßnger als 256 Daten > Bytes (> 0100H), reagiert der CP!521!BASIC mit der RÂckmeldung 5000H und anschlie˚end mit der Meldung 40H ∫Fehlerhafter Auftrag∫. Mit der gleichen Fehlermeldung reagiert der CP!521!BASIC, wenn er nach 256 empfangenen Daten>Bytes noch kein(e) Endezeichen erkannt hat. Die von der CPU gesendeten Daten werden dann verworfen. 6>17 Kommunikations>Schnittstellen 6.3.2 CP 521 BASIC Datentelegramme vom CP 521 BASIC empfangen Das Senden der Telegramme an die CPU wird vom CP 521 BASIC selbstßndig abgewickelt. Der CP 521 BASIC sendet Daten an die CPU aus dem 256 Byte gro˚en Sendepuffer. Sie programmieren die CPU so, da˚ sie das anstehende Telegramm in Acht>Byte> Bl‘cken (zwei Auftragsbytes und sechs Datenbytes) aus dem Sendefach des CP!521 BASIC ausliest: 1. Die CPU sendet einen Auftrag: Datentransfer ∫Empfangen∫ koordinieren CP 521 BASIC. 2. Der CP 521 BASIC startet die DatenÂbertragung. Er sendet die ersten sechs Bytes aus dem Sendepuffer (FIFO>Speicher). 3. Die CPU quittiert die empfangenen Daten. 4. Der CP 521 BASIC sendet einen weiteren Block usw., bis das gesamte Telegramm zur CPU Âbertragen ist. Nach dem Auftrag ∫Empfang koordinieren∫ (A080H) bekommt die CPU sofort die abschlie˚ende Quittung des gerade empfangenen Telegramms. Der Datenaustausch Âber den CP 521 BASIC verlßuft in zwei Schritten: f f Zunßchst wird der Datentransfer zwischen CPU und CP 521 BASIC koordiniert. Erst danach kann der CP 521 BASIC Daten, die er im Sendefach zwischen> gespeichert hat, an die CPU Âbertragen. Den gesamten Ablauf der DatenÂbertragung beim Empfangen von Datentele> grammen zeigt Bild 6.8. Eine Beschreibung der dort aufgefÂhrten Schritte erfolgt im Anschlu˚. Dargestellt sind Datenbl‘cke von jeweils acht Bytes, wie sie beim Empfangen von Telegrammen genutzt werden. Dabei wechseln sich von Block zu Block Auftrag der CPU und die entsprechende Quittierung des CP 521 BASIC ab. 6>18 EWA 4NEB 812 6071>01 zum CP 521 BASIC Kommunikations>Schnittstellen Datentransfer: CP 521 BASIC O CPU CPU O CP 521 BASIC Byte — 0 1 2 3 4 5 6 7 A0H 80H xxH xxH xxH xxH xxH xxH Koord. auftr. Koord. byte: EMPF. irrelevant CPU M CP 521 BASIC “ 60H 01H nnH Daten> trans. Block> nummer nnH nnH nnH nnH nnH Daten CPU O CP 521 BASIC ” C0H 01H xxH Quitt. Block> nummer nnH nnH nnH nnH irrelevant ... ‘ nnH CPU M CP 521 BASIC 60H nrH nnH Daten> trans. Block> nummer nnH nnH nnH nnH nnH Daten CPU O CP 521 BASIC ’ C0H nrH xxH Quitt. Block> nummer nnH nnH nnH nnH irrelevant ... ÷ nnH CPU M CP 521 BASIC 50H 00H 00H xxH nnH Koord. info. Koord. byte Daten gÂltig irrel. Telegr. anzahl xxH xxH xxH irrelelvant Bild 6.5 Ablaufschema beim Empfangen von Daten EWA 4NEB 812 6071>01 6>19 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Kommunikations Schnittstellen Byte Byte 1: 6>20 Wert 0 A0H 1 80H 2 irrelevant 3 irrelevant 4 irrelevant 5 irrelevant 6 irrelevant 7 irrelevant Auftrag: CP 521BASIC — CPU>Auftrag: Datentransfer koordinieren (A0H) Um den Datentransfer zu koordinieren, schreiben Sie den Auftrag A0H in Byte!0 des PAA. Dadurch ist die Bedeutung der Bytes 1 bis 7 festgelegt. Tabelle 6.11 Koordinierungsauftrag Bedeutung Datentransfer koordinieren Telegramm empfangen (Empfangsbit) Sie geben die Empfangserlaubnis fÂr ein Telegramm, indem Sie Bit!7=1 setzen. Damit ist der Datentransfer angesto˚en. Der CP!521!BASIC setzt dieses Empfangsbit zurÂck, nachdem ein komplettes Empfangstelegramm zur CPU geschickt wurde. EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC Byte Kommunikations>Schnittstellen “ CP>RÂckmeldung zum Auftrag A080H Wenn der CP 521 BASIC den Auftrag A0H (Datentransfer koordinieren) mit gesetztem Empfangsbit 80H (Telegramm empfangen) erhßlt und wenn kein Fehler vorliegt, quittiert der CP 521 BASIC den CPU>Auftrag mit 60H in Byte 0: Tabelle 6.12 Datentransfer: 1. Datenblock empfangen Wert 4 EWA 4NEB 812 6071>01 Bedeutung 0 60H Datentransfer CP 521 BASIC O CPU 1 01H Nummer des 1. Datenblocks 2 3 Daten 5 6 7 Byte 1: Gibt die Nummer des Datenblocks an, den der CP 521 BASIC an die CPU Âbergibt. Beginnend mit Block 01H erh‘ht der CP 521 BASIC die Blocknummer kontinuierlich um 1, sooft er einen Datenblock an die CPU Âbergibt. Byte 2 bis 7: Daten, die vom CP 521 BASIC in das PAE Âbertragen werden. 6>21 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Kommunikations Schnittstellen Byte Byte 1: 6>22 Wert CP 521BASIC ” CPU>Quittierung (C0H) Die CPU quittiert den Eingang des Datenblocks mit C0H im Byte 0: Tabelle 6.13 Quittierung des 1. Datenblocks Bedeutung 0 C0H quittiert den Eingang des 1. Datenblocks 1 01H Nummer des 1. Datenblocks 2 irrelevant 3 irrelevant 4 irrelevant 5 irrelevant 6 irrelevant 7 irrelevant Nummer des Datenblocks, den die CPU erhalten hat (hier 01H). Die quittierte Blocknummer mu˚ mit der Nummer des gesandten Blocks Âbereinstimmen. Ansonsten wird die DatenÂbertragung ab> gebrochen. Hinweis: Der CP 521 BASIC sendet einen Datenblock solange zur CPU, bis er die Quittier> ung empfßngt. Daher wird die CPU in dem Datenzyklus, in welchem sie quittiert, vom CP 521 BASIC noch einmal die Daten des soeben quittierten Blocks empfangen. Darauf mu˚ das CPU>Programm achten, da sonst der CP!521!BASIC eine Quittierung mit falscher Blocknummer empfßngt und den Datentransfer abbricht. EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC Byte Kommunikations>Schnittstellen Der Datentransfer setzt sich in der beschriebenen Weise solange fort, bis die CPU den letzten Datenblock des Telegramms quittiert hat (’). Der CP 521 BASIC beendet den Datentransfer mit einer letzten abschlie˚enden RÂckmeldung(÷): ‘ CP>RÂckmeldung auf die CPU>Quittierung C0H Tabelle 6.14 Datentransfer: 25. (letzten) Datenblock empfangen Wert 4 EWA 4NEB 812 6071>01 Bedeutung 0 60H Datentransfer CP 521 BASIC O CPU 1 19H Nummer des letzten Datenblocks: hier 25D 2 3 Daten 5 6 7 6>23 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Kommunikations Schnittstellen Byte 6>24 Wert CP 521BASIC ’ CPU>Quittierung fÂr den 25. Datenblock Tabelle 6.15 Quittierung des 25. Datenblocks Bedeutung 0 C0H quittiert den Eingang des letzten Datenblocks 1 19H Nummer des 25. Datenblocks 2 irrelevant 3 irrelevant 4 irrelevant 5 irrelevant 6 irrelevant 7 irrelevant EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC Byte Kommunikations>Schnittstellen ÷ Abschlie˚ende RÂckmeldung des CP 521 BASIC Tabelle 6.16 Abschlie˚ende Koordinierungsinformation Wert EWA 4NEB 812 6071>01 Bedeutung 0 50H Koordinierungsinformation 1 00H Koordinierungsbit zurÂckgesetzt 2 00H / FFH Daten gÂltig / Daten ungÂltig 3 irrelevant 4 00H 5 irrelevant 6 irrelevant 7 irrelevant irrelevant Byte 1: Das Koordinierungsbit ist zurÂckgesetzt Byte 2: Daten gÂltig / Daten ungÂltig 6>25 Kommunikations Schnittstellen CP 521BASIC 6.3.3 BASIC>Programme starten Zum Start eines Programmes auf dem CP 521 BASIC gibt es mehrere M‘glich> keiten: f f f Im Kommando>Modus durch die BASIC>SchlÂsselworte RUN bzw. RROM. Ein im RAM oder im externen Speichermodul vorhandenes BASIC>Programm wird gestartet, wenn sich der Betriebsartenschalter beim Einschalten in Stel> lung RUN befindet und mit dem letzten Befehl PROG der Parameter 1 oder 2 verwendet wurde. Automatischer Start durch Definieren eines Startprogramms auf dem CP!521!BASIC mit Hilfe des Befehls PROG1 oder PROG2. Start eines Programms mittels des CPU>Auftrags D0H. Dies erfolgt unabhßngig von der Stellung des Betriebsartenschalters (PROG/RUN). Die ersten zwei M‘glichkeiten wurden bereits im vorhergehenden Kapitel be> schrieben. Im folgenden Abschnitt wird der Start eines BASIC>Programms Âber CPU>Auftrag erlßutert. Bei Fehlern des BASIC>Programms mit anschlie˚endem STOP lß˚t sich auf diesem Weg zum Beispiel das Programm neu starten. Ein laufendes Programm kann mit diesem Auftrag nicht unterbrochen werden. 6>26 EWA 4NEB 812 6071>01 CP 521 BASIC Kommunikations>Schnittstellen CPU>Auftrag ∫Programm starten∫ (D0H) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Tabelle 6.17 CPU>Auftrag ∫Programm starten∫ Byte Wert Bedeutung 0 D0H Auftrag ∫Programm starten∫ 1 Nr. Nummer des zu startenden Programms 00H Programm steht im RAM 01H...FEH Programm >Nummer im Speichermodul FFH BASIC>Interpreter rÂcksetzen 2...7 irrelevant > Byte 0: Auftrag ∫Programm starten∫ Dies trifft nur zu, wenn kein Programm lßuft. Byte 1: Enthßlt die Nummer des Programms, das gestartet werden soll. Nr. = 00H: Das im baugruppeneigenen RAM stehende Programm wird gestartet. Befindet sich kein Programm im RAM, schaltet der Interpreter in den Kommando>Modus und wartet auf Eingaben vom Terminal. Nr. = 01H...FEH: Das im Speichermodul unter der Nr. abgelegte Pro> gramm wird gestartet. Befindet sich kein Programm mit dieser Nr. im Modul, schaltet der Interpreter in den Kommando>Modus und wartet auf Terminaleingaben. Nr. = FFH: Der CP 521 BASIC wird zurÂckgesetzt und verhßlt sich dann wie nach NETZ>EIN. Byte 2...7 sind ohne Bedeutung EWA 4NEB 812 6071>01 6>27 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa Kommunikations Schnittstellen 6.3.4 AWL : :L KH 0101 :T :L :T AW KH AW 120 3E5F 122 :L :T :L KH AW KH 57E8 124 3A97 Wort 2 :T : AW 126 Wort 3 CP 521BASIC Datenaustausch Âber Direktzugriff bzw. B0H Die Kommunikation zwischen CPU und CP 521 BASIC wird Âber die Auftrßge A0H unterstÂtzt. FÂr kurzen Datenaustausch kann es sinnvoll sein, ein eigenes Protokoll zu programmieren. Vom BASIC>Interpreter wird dieses Verfahren durch die Befehle SGET bzw. SPUT!(Æ Kap. 5.9.1 bzw. 5.9.2) unterstÂtzt, die einen Direktzugriff auf die ebergabeschnittstelle zur CPU zulassen. Es k‘nnen jeweils 8 Byte (4 Worte) gesendet oder empfangen werden. Bei einem eigenen Protokoll mu˚ jedoch beachtet werden, da˚ folgende reservierte Auftragsnummern im Byte 0 nicht verwendet werden: f A0H f 10H Werden Nummern > 0FH (Auftrßge) verwendet, erhßlt man die RÂckmeldung 40H!∫Fehlerhafter Auftrag∫. Das folgende Beispiel zeigt, wie spezielle Funktionen mit Parametern Âber ein eigenes Protokoll angesto˚en werden k‘nnen. Erlßuterung Kennung fÂr eigenes Protokoll schreiben in: Wort 0 Wort 1 Diese 4 Worte k‘nnen dann mit SGET W0,...,W3 gelesen werden. Hinweis: Zur Annahme von Daten oder Auftrßgen ist ein Flankenwechsel im Wort 0 erforderlich 6>28 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC 6.3.5 Byte 0 Status des CP 521 BASIC 1 Wochentag 2...7 EWA 4NEB 812 6071>01 Kommunikations>Schnittstellen Uhr stellen (Status des CP 521 BASIC und aktuelle Uhrendaten) Der CP 521 BASIC stellt zyklisch Âber das PAE folgende Informationen zur Ver> fÂgung: Tabelle 6.18 Daten von der Baugruppe an die CPU Bedeutung Datum und Uhrzeit der Uhr des CP 521 BASIC Die Informationen k‘nnen im Steuerungsprogramm mit Ladeoperationen einge> lesen und ausgewertet werden. Status der Baugruppe lesen (Byte 0 im PAE) Das Byte 0 ∫Status der Baugruppe∫ ist in zwei Halbbytes aufgeteilt. Die Informa> tionen der Halbbytes sind voneinander unabhßngig. Sie k‘nnen beliebig kombi> niert sein. Die Signalzustßnde der Bits 4 bis 7 (linkes Halbbyte) des Bytes 0 sind fÂr die Statusanzeige der Uhr relevant. 6>29 aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaa a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaa a Kommunikations>Schnittstellen Bit Beispiel: AWL FB 100 NAME 6>30 :FEHLER1 :L EB 120 :L :UW : KH 000F : :L KH :><F 0007 :BEB : := A 1.0 :BE CP 521 BASIC Tabelle 6.19 Status der Baugruppe (Byte 0 im PAE) 4 bis 7 0 bis 3 Status nßhere Erlßuterung 1 X Uhr defekt 2 X Default>Uhrzeit eingestellt Die Uhr ist mit den Werten Sonntag, 1.1.90, 00.00.00, gestellt worden. 3 X Uhrzeit/Datum>Fehler Mindestens ein Stellwert ist au˚erhalb des erlaubten Bereichs. Die Uhr hat die neuen Uhrendaten nicht Âbernommen und lßuft mit den aktuellen Daten weiter. X: Signalzustand fÂr die andere Bytehßlfte irrelevant Abfrage des Status der Baugruppe (Byte 0 im PAE) Die Baugruppe ist auf Steckplatz 7 (Anfangsadresse 120) montiert. Wenn die Batterie defekt ist, soll Âber den Ausgang A 1.0 ein Signal geschaltet werden. Erlßuterung Einlesen des Byte 0 (Statusbyte) in AKKU 1. Durch die wortweise UND>VerknÂpfung mit 000FH werden die Bits 4 bis 7 auf ∫0∫ gesetzt. Die Signalzustßnde der Bits 0 bis 3 bleiben erhalten. AKKU>Inhalt mit 0007H vergleichen. Wenn das Statusbyte nicht den Wert 7H enthßlt, ist die Batterie in Ordnung. Dann wird die Bearbeitung des Bausteins beendet. Die Batterie ist defekt. Der Ausgang A 1.0 wird geschaltet. EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC 7 Byte 5 Kommunikations>Schnittstellen Datum und Uhrzeit (Byte 1 bis 7 im PAE) Der CP 521 BASIC stellt die aktuellen Uhrendaten im BCD>Format zur VerfÂgung. Im rechten Halbbyte von Byte 1 ist der aus dem Datum berechneten Wochentag hinterlegt. Tabelle 6.20 Datum und Uhrzeit Byte Wertebereich 1 1 ... 7 2 01 BCD ... 31BCD Tag 3 01 BCD ... 12BCD Monat 4 00 BCD ... 99BCD Jahr 5 00 BCD ... 23BCD Stunde in 24 h>Darstellung 6 00 BCD ... 59BCD Minute 7 00 BCD ... 59BCD Sekunde EWA 4NEB 812 6071>01 Bedeutung Bit 0 bis 3 : 1=Sonntag, 2=Montag, 3=Dienstag, 4=Mittwoch, 5=Donnerstag, 6=Freitag, 7=Samstag * Hinweis zu Byte 5 ∫Stunde∫: Bitnummer 6 5 4 3 2 1 0 0 X X X X X X X = 0 oder 1 6>31 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Kommunikations>Schnittstellen Beispiel: AWL FB 100 NAME :UHRDATEN :L EB 121 :T AB 8 :L :T :L EW AW EW 122 9 124 :T :L :T AW EW AW 11 126 13 CP 521 BASIC Lesen der aktuellen Uhrzeit Die Baugruppe ist auf Steckplatz 7 (Anfangsadresse 120) angebracht. Die Uhrendaten sollen auf Digital>Ausgabebaugruppen ab Adresse 8 ausgegeben werden. Erlßuterung Auslesen des aktuellen Uhrendaten und transferieren zu den Digital>Ausgabebau> gruppen. :BE Hinweis: Sie k‘nnen bei der Handhabung der integrierten Uhr zusßtzlich noch folgende Meldungen auswerten: f Uhr defekt (1XH) Diese Fehlerauswertung ist nur nach dem Anlauf sinnvoll. f Default>Uhrzeit eingestellt (2XH) Diese Auswertung ist sinnvoll, wenn Sie Ihren CP 521 BASIC ohne Puffer> batterie betreiben. f Uhrzeit> oder Datumfehler (3XH) Diese Auswertung ist sinnvoll, nachdem Sie die Uhr gestellt haben. 6>32 EWA 4NEB 812 6071>01 aaaaa a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a aaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC Byte 0 Byte Kommunikations>Schnittstellen CPU>Auftrag ∫Uhr stellen∫ (10H) Tabelle 6.21 Zulßssiger Auftrag (Byte 0 im PAA) Byte 1 10H EWA 4NEB 812 6071>01 Bedeutung Uhr stellen, Stellwerte in den Bytes 2 ... 7 angeben Stellwerte in Byte 2 bis 7 BCD>codiert angeben. Die Wochentage werden aus dem angegebenen Datum errechnet. Soll ein Uhrendatum unverßndert bleiben,tragen Sie in das entsprechende Byte den Wert FFH ein. Liegt ein Stellwert au˚erhalb der erlaubten Grenzwerte, wird die Uhr nicht ge> stellt. Der CP 521 BASIC sendet die Fehlermeldung ∫Uhrzeit>/Datumfehler∫. Tabelle 6.22 ebergabe von zusßtzlichen Angaben beim Auftrag ∫Uhr stellen∫ Bedeutung des Stellwertes Belegung 2 Tag 01BCD ... 31BCD 3 Monat 01BCD ... 12BCD 4 Jahr 00BCD ... 99BCD 5 Stunde 6 Minute 00BCD ... 59BCD 7 Sekunde 00BCD ... 59BCD 00BCD ... 23BCD bei 24h>Darstellung * Schaltjahre werden automatisch erkannt 6>33 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Kommunikations>Schnittstellen Status Wochentag Tag Monat 6.4 6.4.1 6>34 (Byts 0) (Byte 1) (Byte2) (Byte3) : : : : CP 521 BASIC Hinweis: Wenn die Datums> und Uhrzeitinformation zum Ausl‘sen von Aktionen benutzt wird, fÂhren Sie eine PlausibilitßtsprÂfung Âber folgende 4 Bytes durch: 01BCD ... 07BCD 01BCD ... 31BCD 01BCD ... 12BCD Datentransfer CP 521 BASIC>Peripheriegerßt Der Datenverkehr Âber die bidirektionale Schnittstelle des CP 521 BASIC wird vollduplex abgewickelt. Bidirektionale serielle Schnittstelle des CP 521 BASIC Die bidirektionale Schnittstelle des CP 521 BASIC kann mit dem Befehl INIT be> liebig parametriert werden (Æ Kap 5.8.3). Bidirektionale V.24>Schnittstelle im Betrieb mit Modemsignalen Die V.24>Schnittstelle des CP 521 BASIC kann im Betrieb mit Modemsignalen fol> gende Steuersignale bedienen: EWA 4NEB 812 6071>01 CP 521 BASIC Bedienbare Steuersignale der bidirektionalen V.24>Schnittstelle im Betrieb mit Modem> signalen a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a Tabelle 6.23 Kommunikations>Schnittstellen Steuersignal Zustand Bedeutung Ausgßnge TxD Sendedaten Sendeleitung wird von dem CP 521 BASIC im Ruhezustand auf logisch 1 gehalten (Ue>3V). ON OFF Data Terminal Ready CP eingeschaltet, empfangsbereit CP nicht eingeschaltet, nicht empfangsbereit ON OFF Request to send CP im Sendebetrieb CP sendet nicht DTR RTS Eingßnge RxD Empfangsdaten Empfangsleitung mu˚ vom Peripheriegerßt auf logisch 1 gehalten werden (Ue>3V). DSR ON OFF CTS ON OFF EWA 4NEB 812 6071>01 Data set ready Peripheriegerßt eingeschaltet, empfangsbereit Peripheriegerßt nicht eingeschaltet, nicht empfangsbereit Clear to send Perpheriegerßt kann Zeichen von dem CP!521!BASIC empfangen Der CP 521 BASIC erwartet dies als Antwort auf ∫RTS∫ = ∫ON∫ Peripheriegerßt kann keine Zeichen von dem CP!521 BASIC empfangen 6>35 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a CP 521 BASIC 6>36 Kommunikations>Schnittstellen Im Handshake>OFF>Betrieb wertet der CP 521 BASIC nur die RxD>Leitung aus. Wenn der CP 521 BASIC keine Daten von dem Peripheriegerßt empfßngt, mu˚ das Peripheriegerßt die RxD>Leitung auf logisch ∫1∫ halten. Hinweis: Die Baugruppe nimmt direkt nach dem Anlaufen an, da˚ der ∫Kommunika> tionspartner∫ empfangsbereit ist, auch wenn kein XON gesendet wird. Hinweis: Wenn Sie die Steuersignale im Handshake>ON>Betrieb auswerten, ist kein XON/XOFF>Protokoll m‘glich. Der Datentransfer zwischen CP 521 BASIC und Peripheriegerßt lßuft wie folgt ab: Der CP 521 BASIC setzt nach dem Anlauf den Ausgang ∫DTR∫ = ∫ON∫. Er zeigt damit an, da˚ er betriebs> und empfangsbereit ist. Beispiel: CP 521 BASIC will Daten senden 1. CP wartet auf ∫DSR∫ = ∫ON∫ Wenn das Peripheriegerßt ∫DSR∫ nach 20s noch nicht auf ∫ON∫ gesetzt hat, kann dies mit HSSTAT erkannt werden. 2. CP setzt ∫RTS∫ = ∫ON∫ 3. CP wartet auf ∫CTS∫ = ∫ON∫ Wenn das Peripheriegerßt ∫CTS∫ nach 20s noch nicht auf ∫ON∫ gesetzt hat, kann dies mit HSSTAT erkannt werden. 4. CP sendet Daten 5. CP setzt nach dem Senden der Daten ∫RTS∫ = ∫OFF∫ 6. Peripheriegerßt setzt ∫CTS∫ = ∫OFF∫ EWA 4NEB 812 6071>01 CP 521 BASIC Kommunikations>Schnittstellen ∫1∫ TxD xxxxxxxx ∫0∫ xxxxxxxx ON DTR Off ON RTS Off ∫1∫ RxD xxxxxxxx ∫0∫ xxxxxxxx ON DSR OFF ON CTS xxxxxxx x OFF Einschalten des CP max: 20s. Sendeauftrag abgeschlossen max: 20s. Einschalten des Peripheriegerßtes Bild 6.6 Timing>Diagramm fÂr den Datentransfer zwischen CP 521 BASIC und Peripheriegerßt EWA 4NEB 812 6071>01 6>37 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa HANDLE> Empfangspuffer 6>38 aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaa HANDLE> Sendepuffer aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaa Kommunikations>Schnittstellen CP CP 521 BASIC Senden Âber die bidirektionale serielle Schnittstelle Vom CP 521 BASIC k‘nnen Daten Âber die bidirektionale Schnittstelle zu einem Peripheriegerßt gesendet werden. Das Peripheriegerßt mu˚ eine V.24> oder TTY> Schnittstelle besitzen. Das Senden von Daten Âber die bidirektionale Schnittstelle geschieht mit Hilfe der Anweisungen LIST, PRINT oder HANDLE, wobei HANDLE denselben HANDLE> Sendepuffer verwendet wie HANDLE#, der Daten Âber die unidirektionale Schnittstelle ausgibt. Die zu sendenden Daten k‘nnen, bevor sie im HANDLE>Sendepuffer abgelegt werden, durch das BASIC>Programm aufbereitet werden. Dadurch ist es m‘glich, eigene Protokolle zu implementieren. Eine Beschreibung der dazu relevanten Befehle finden Sie im Kapitel 5.10. Peripherie> gerßt Daten senden Daten empfangen Bild 6.7 Daten Âber die bidirektionale Schnittstelle senden Hinweis: Ein Parallelbetrieb von TTY> und V.24>Schnittstelle ist nur eingeschrßnkt m‘glich, da hierzu immer eine Umparametrierung vorgenommen werden mu˚. EWA 4NEB 812 6071>01 CP 521 BASIC Kommunikations>Schnittstellen Empfangen Âber die bidirektionale serielle Schnittstelle Der CP 521 BASIC kann Daten von einem Peripheriegerßt empfangen. Das Peri> pheriegerßt mu˚ dazu eine Schnittstelle nach V.24 oder TTY besitzen. Die empfangenen Daten k‘nnen nach dem Auslesen aus dem HANDLE>Empfangs> puffer durch das BASIC>Programm aufbereitet und weiterverarbeitet werden. Eine Beschreibung der dazu relevanten Befehle finden Sie im Kapitel 5.10. HANDLE> Empfangspuffer Peripherie> gerßt Daten senden a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaa a HANDLE> Sendepuffer a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaa a CP Daten empfangen Bild 6.8 Daten Âber die bidirektionale Schnittstelle empfangen Die DatenÂbertragung erfolgt interpretierend. Bis auf wenige Ausnahmen werden > zum Teil in Abhßngigkeit vom parametrier> ten Handshake > alle empfangenen Zeichen zwischen 00H und FFH in den HANDLE> Empfangspuffer eingetragen. Von dort k‘nnen sie mit den Anweisungen GET oder BUFOUT (ÆKap. 5.10) ausgelesen und weiterverarbeitet werden. Die Zeichen XON (11H) und XOFF (13H) werden bei dem XON/XOFF>Protokoll nicht in den HANDLE>Empfangspuffer eingetragen. Als solche erkannt und ausge> wertet werden sie nur, falls XON / XOFF>Protokoll parametriert wurde. Die Zeichen CTRL>C (03H), CTRL>S (13H) und CTRL>Q (11H) werden immer einge> tragen und ausgewertet (Æ Kap. 6.4, Hinweise). Soll das Zeichen CTRL>C (03H) Âbertragen werden, so ist mit BREAK (0) dies zu realisieren, ansonsten wird das Programm abgebrochen. EWA 4NEB 812 6071>01 6>39 Kommunikations>Schnittstellen CP 521 BASIC Ist XON/XOFF>Protokoll parametriert, wirken sich die Zeichen 11H (XON, CTRL>Q) und 13H (XOFF, CTRL>S) nur auf die bidirektionale Schnittstelle aus. Zeichen 11H (XON, CTRL>Q) und 13H (XOFF, CTRL>S) wirken sich immer bei PRINT und LIST aus. Bei allen anderen Handshakes (keine, Modemsignale, PG>Protokoll) wirken sich 11H und 13H auf die Ausgabe (nach LIST bzw. LIST#) auf beiden seriellen Schnittstellen (bidirektional, unidirektional) aus. 6.4.2 Unidirektionale serielle Schnittstelle des CP 521 BASIC Vom CP 521 BASIC k‘nnen auch Âber die unidirektionale serielle Schnittstelle Daten zu einem Peripheriegerßt (z.B. Drucker) gesendet werden. Ein BUSY>Signal kann vom CP 521 BASIC nach entsprechender Parametrierung ausgewertet werden. Das Senden von Daten Âber die unidirektionale Schnittstelle geschieht mit Hilfe der Anweisungen LIST#, PRINT# oder HANDLE#, wobei HANDLE# denselben HANDLE>Sendepuffer verwendet wie HANDLE (ÆKap. 5.10.1). HANDLE> Sendepuffer Peripherie> gerßt aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa aaa CP Daten senden Bild 6.9 Daten Âber die unidirektionale Schnittstelle senden Die unidirektionale Schnittstelle des CP 521 BASIC kann mit dem Befehl INIT# beliebig parametriert werden (ÆKap. 5.8.4). 6>40 EWA 4NEB 812 6071>01 a a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaa a 7 CPU>Auftrßge und St‘rverhalten 7.1 CPU>Auftrßge in der Betriebsart BASIC . . . . . . . . . . . . . . . 7 > 1 7.2 7.2.1 St‘rverhalten des BASIC>Interpreters . . . . . . . . . . . . . . . . Weitere Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . 7 > 7 > 2 7 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Tabellen 7.1 7.2 7.3 Zulßssige Auftrßge in der Betriebsart BASIC . . . . . . . . . . . Fehlermeldungen des BASIC>Interpreters . . . . . . . . . . . . . Fehlermeldungen in der Betriebsart BASIC . . . . . . . . . . . . 7 > 7 > 7 > 1 3 7 EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC Byte 0 CPU>Auftrßge und Fehlermeldungen 7. CPU>Auftrßge und St‘rverhalten 7.1 CPU>Auftrßge in der Betriebsart BASIC In diesem Abschnitt sind alle in der Betriebsart BASIC zulßssigen CPU>Auftrßge zusammengestellt. Tabelle 7.1 Zulßssige Auftrßge in der Betriebsart BASIC Byte 1 10H D0H 00H 01H ... 0FEH FFH EWA 4NEB 812 6071>01 Auftrßge 00H Stellen der baugruppeneigenen Uhr A0H 01H Datentransfer ∫Senden∫ koordinieren A0H 80H Datentransfer ∫Empfangen∫ koordinieren B0H Block>Nr. Blocktransfer ∫CPU O CP 521 BASIC∫ koordinieren C0H Block>Nr. Datenblockquittierung Byte 0: Auftrags>Nr. zum Start eines BASIC>Programms Byte 1: BASIC>Programm im RAM starten BASIC>Programm auf Speichermodul mit Nr. 1H ... FEH starten RÂcksetzen des BASIC>Interpreters wie nach dem Einschalten der Baugruppe HINWEIS: Ein laufendes BASIC>Programm kann von der CPU aus nicht abgebrochen werden. 7>1 CPU>Auftrßge und Fehlermeldungen 7.2 CP 521 BASIC St‘rverhalten des BASIC>Interpreters Der CP 521 BASIC bietet programmß˚ig eine komfortable Fehlererkennung und Fehlerbehandlung. Bei syntaktischen oder arithmetischen Fehlern, die wßhrend der Laufzeit erkannt werden, haben Sie die M‘glichkeit, mit dem Befehl ONERR [ln num], (Æ!Kap.!5.8.18) eine definierte Reaktion auf einen arithmetischen Fehler zu programmieren. Wird dies nicht gemacht, geht der Interpreter in STOP und gibt eine Fehlermeldung am Bildschirm aus. Wird das Programm durch einen Programmfehler, durch den Befehl END, durch die Befehle STOP bzw. CTRL>C abgebrochen, verlß˚t der Interpreter den RUN> Modus und wartet nun im Kommando>Modus auf Eingaben. Auf CPU>Seite ist ebenfalls eine Fehlerauswertung m‘glich. Fehlermeldungen werden zur CPU auf Anforderung durch den Auftrag A080H, (Datentransfer koordinieren; Daten empfangen) rÂckgemeldet. Die RÂckmeldung 7XH, die im Byte 0 Âbergeben wird, wird der CPU mitgeteilt. Byte 1 enthßlt die Fehlernummer. Die Bytes 2 bis 7 enthalten weitere Angaben zum Ort des aufgetretenen Fehlers. Die Zuordnung von Fehlernummer und Fehlerart zeigt die folgende Tabelle. 7>2 EWA 4NEB 812 6071>01 a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CP 521 BASIC EWA 4NEB 812 6071>01 CPU>Auftrßge und Fehlermeldungen Tabelle 7.2 Fehlermeldungen des BASIC>Interpreters Byte Wert Bedeutung 0 7XH Programmabbruch durch SW>Fehler oder END>Befehl; der CP 521 BASIC befindet sich in der Betriebsart PROG. 1 00H BASIC>Programm fehlerfrei beendet oder durch STOP oder CTRL>C abgebrochen. 01H DIVIDE BY ZERO* 02H ARITH. OVERFLOW* 03H ARITH. UNDERFLOW* 04H BAD ARGUMENT* 05H BAD SYNTAX 06H NO DATA 07H A>STACK 08H C>STACK 09H I>STACK OVERFLOW 0BH ARRAY SIZE 0CH MEMORY ALLOCATION 0DH ... 0FH reserviert fÂr weitere Systemmeldungen * Nur wenn diese Fehler nicht durch ONERR abgefangen werden 7>3 a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaa a CPU>Auftrßge und Fehlermeldungen Byte 2 0 1...0FEH 7>4 CP 521 BASIC Tabelle 7.2 Fehlermeldungen des BASIC>Interpreters (Fortsetzung) Wert Bedeutung enthßlt die Programmnummer des zuletzt bearbeiteten Programms Programm befindet sich im RAM Programmnummer im Speichermodul 3 00H 4+5 0...0FFH 6 00H nicht belegt 7 00H nicht belegt nicht belegt Programmzeilennummer des aufgetretenen Fehlers (HIGH>BYTE FIRST) Nach einem aufgetretenen Fehler kann von der CPU ein Programm mit dem Auftrag ∫D0H∫ neu gestartet werden. Eine Korrektur des fehlerhaften Programms ist von der CPU aus nicht m‘glich. EWA 4NEB 812 6071>01 CP 521 BASIC CPU>Auftrßge und Fehlermeldungen Erlßuterung einiger Fehlerarten Die Fehlerarten 01H bis 04H k‘nnen mit dem Befehl ONERR im BASIC>Programm abgefangen werden, so da˚ sie nicht zum Programmabbruch fÂhren. DIVISION BY ZERO (01H) Jeder Versuch, eine Division durch Null vorzunehmen, z.B. 12/0, liefert eine Fehlermeldung DIVIDE BY ZERO. ARITH. OVERFLOW (02H) Ein Fehler ARITH. OVERFLOW wird gemeldet, wenn das Ergebnis einer arith> metischen Operation den oberen Grenzwert fÂr eine Gleitpunktzahl in BASIC Âberschreitet. Die gr‘˚te zulßssige Gleitpunktzahl ist ±0.9999999E +127. So liefert beispielsweise 1.0E + 70*1.E+70 einen ARITH. OVERFLOW ERROR. ARITH. UNDERFLOW (03H) Ein Fehler ARITH. UNDERFLOW wird gemeldet, wenn das Ergebnis einer arith> metischen Operation die untere Grenze einer Gleitpunktzahl in BASIC unter> schreitet. Die kleinste Gleitpunktzahl ist ±1.0E > 127. So liefert beispielsweise 1.0E!> 80/1.0E +80 einen ARITH. UNDERFLOW ERROR. BAD ARGUMENT (04H) Ein Fehler BAD ARGUMENT wird ausgegeben, wenn das Argument eines Operators nicht innerhalb der fÂr diesen Operator zulßssigen Grenzen liegt. BAD SYNTAX (05H) Ein Fehler BAD SYNTAX bedeutet, da˚ ein fÂr den CP 521 BASIC unzulßssiger Befehl, Anweisung oder Operator eingegeben wurde und BASIC die Eingabe nicht verarbeiten kann. Hier mu˚ geprÂft werden, da˚ alle Eingaben richtig vorgenommen wurden. Ein BAD SYNTAX ERROR wird auch dann ausgegeben, wenn Sie versucht haben, ein reserviertes SchlÂsselwort als Teil einer Variablen zu verwenden. NO DATA (06H) Die Fehlermeldung ERROR: NO DATA > IN LINE XXX wird Âber die Konsole ausgegeben, wenn eine Read>Anweisung ausgefÂhrt wird und keine DATA> Anweisung vorhanden ist oder aber alle Argumente der DATA>Anweisung bereits eingelesen wurden und keine Restore>Anweisung vorhanden ist. EWA 4NEB 812 6071>01 7>5 CPU>Auftrßge und Fehlermeldungen CP 521 BASIC A>STACK (07H) Ein Fehler A>STACK (Argumentstack) wird gemeldet, wenn durch einen Befehl versucht wird, den A>STACK>POINTER auf einen unzulßssigen Wert zu setzen. Dies ist m‘glich, wenn durch PUSH zu viele AusdrÂcke in den Argumentstack geladen werden oder durch POP versucht wird, Daten aus einem bereits leeren Speicher auszulesen. C>STACK (08H) Ein Fehler C>STACK (Control>Stack) wird gemeldet, wenn der C>Stack Âberlßuft. Der C>Stack belegt 158 Bytes des baugruppeneigenen RAM. Schleifen FOR>NEXT belegen 17 Byte im C>Stack, Schleifen DO>UNTIL, DO>WHILE und GOSUB jeweils 3 Byte des C>Stacks. Dies bedeutet, da˚ der CP!521!BASIC maximal neun verschach> telte Schleifen FOR>NEXT verarbeiten kann, weil 9 x 17=153 ergibt. Bei einem Versuch des Anwenders, eine gr‘˚ere Schachtelungstiefe anzuwenden, als fÂr den CP 521 BASIC zulßssig ist, wird eine Fehlermeldung C>STACK ausgegeben. Fehler C>STACK werden auch gemeldet, wenn das Programm ein RETURN vor dem entsprechenden GOSUB, ein WHILE oder UNTIL vor dem entsprechenden DO oder ein NEXT vor dem entsprechenden FOR enthßlt. I>STACK (09H) Eine Fehlermeldung I>STACK (Interner Stack) wird ausgegeben, wenn der CP!521!BASIC nicht mehr Âber genÂgend Stackspeicherkapazitßt verfÂgt, um einen numerischen Ausdruck abarbeiten zu k‘nnen. Fehlermeldungen I>STACK k‘nnen normalerweise auftreten. Beim Auftreten des I>STACK>Fehlers kann durch das VerkÂrzen extrem langer AusdrÂcke in einer Zuweisung Abhilfe geschaffen werden (evtl. Aufteilen in kleinere AusdrÂcke). ARRAY SIZE (0BH) Ein Fehler ARRAY SIZE wird gemeldet, wenn ein Feld durch eine DIM> Anweisung dimensioniert wurde und anschlie˚end versucht wird, eine Variable aufzurufen, die au˚erhalb der Grenzen der Dimensionierung liegt (Default>Dimensionierung max. 10 Elemente). MEMORY ALLOCATION (0CH) Fehler MEMORY ALLOCATION werden gemeldet, wenn der Anwender versucht, STRINGS aufzurufen, die "au˚erhalb" der definierten String>Grenzen liegen. Der gleiche Fehler wird gemeldet, wenn die noch verfÂgbare Speicherkapazitßt nicht ausreicht, um weitere Variablen zuzuweisen bzw. zu deklarieren; z. B. String 250,250 , oder wenn MTOP ein unzulßssiger Wert zugewiesen wird. 7>6 EWA 4NEB 812 6071>01 CP 521 BASIC 7.2.1 CPU>Auftrßge und Fehlermeldungen Weitere Fehlermeldungen Der CP 521 BASIC meldet weitere Fehler, die im Byte 0 der Baugruppe abgelegt sind. Dieses Byte 0, das den Status der Baugruppe dokumentiert, ist in zwei Halbbytes unterteilt, deren Werte untereinander frei kombinierbar sind. So ist eine detaillierte Fehlerauswertung m‘glich. Beim gleichzeitigen Auftreten von mehreren Fehlern werden diese ihrer Prioritßt nach ausgegeben. Fehler mit h‘chster Nummer Âberschreibt alle anderen Fehler im jeweiligen Halbbyte. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a Tabelle 7.3 Fehlermeldungen in der Betriebsart BASIC Byte 0 Bit 4 bis 7 Bit 0 bis 3 Status X 0 kein Fehler X 7 Batteriepufferung fehlerhaft X F Baugruppe beschßftigt; CPU>Auftrag kann nicht entgegengenommen werden 1 X Uhr defekt 2 X Default>Uhrzeit eingestellt 3 X Uhrzeit/Datum>Fehler 4 X Unzulßssiger Auftrag 5 X Koordinationsinformation (Senden > Empfangen) 6 X Datentransfer CP 521 BASIC O CPU 7 X BASIC>Fehlermeldung (Æ Kap.7.2) 8 X Hardware>Fehler X= Signalzustand fÂr die andere Bytehßlfte irrelevant EWA 4NEB 812 6071>01 7>7 CP 521 BASIC Programme EWA 4NEB 812 6040>01a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a 8 Programme 8.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 > 1 8.2 Gerßteaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 > 2 8.3 Schnittstellenparametrierung . . . . . . . . . . . . . . . . . . . . . . . 8 > 2 8.4 CP 521 BASIC programmieren . . . . . . . . . . . . . . . . . . . . . . . . 8 > 3 8.5 8.5.1 8.5.2 8.5.3 8.5.4 AG programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eberblick Âber die Programmier>Bausteine . . . . . . . . . . . Programmstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufbau des Statusbyte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eingabe Programmier>Bausteine OB 1 und FB 10 ∫IMPULS∫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eingabe Funktionsbaustein FB 11 ∫VERTEILE∫ . . . . . . . . . Eingabe Funktionsbaustein FB 1 Telegramm mit fester Lßnge senden . . . . . . . . . . . . . . . . . . Eingabe Funktionsbaustein FB 2 (nur fÂr CPU 103) Telegramm mit Endezeichen senden . . . . . . . . . . . . . . . . . Eingabe Funktionsbaustein FB 3 Telegramm mit fester Lßnge empfangen . . . . . . . . . . . . . . Handhabung und Eingabe des parametrierbaren Funktionsbausteins FB 200 ∫SENDEN∫ . . . . . . . . . . . . . . . . Handhabung und Eingabe des parametrierbaren Funktionsbausteins FB 201 ∫EMPFANG∫ . . . . . . . . . . . . . . 8 8 8 8 8.5.5 8.5.6 8.5.7 8.5.8 8.5.9 8.5.10 EWA 4NEB 812 6071>01 > 7 > 7 > 9 > 10 8 > 11 8 > 12 8 > 13 8 > 16 8 > 20 8 > 23 8 > 33 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Bilder 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.1 8.2 8.3 8.4 Aufbauschema CPU und CP 521 BASIC programmieren . Programmstruktur des BASIC>Programms . . . . . . . . . . . . . Flu˚diagramm Empfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flu˚diagramm Senden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmstruktur Programmier>Bausteine . . . . . . . . . . . Aufbau des Statusbyte (MB 80) . . . . . . . . . . . . . . . . . . . . . . Schematischer Ablauf ∫Telegramm senden∫ (FB 200) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schematischer Ablauf ∫Telegramm empfangen∫ (FB 201) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bausteinparameter des FB 200 ∫SENDEN∫ . . . . . . . . . . . . . ebersicht Âber die vom FB 200 ∫SENDEN∫ benutzten Merker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bausteinparameter des FB 201∫EMPFANG∫ . . . . . . . . . . . ebersicht Âber die vom FB 201 ∫EMPFANG∫ benutzten Merker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 8 8 8 > 2 > 3 > 4 > 5 > 9 > 10 8 > 24 8 > 34 Tabellen 8 > 23 8 > 26 8 > 33 8 > 36 EWA 4NEB 812 6071>01 CP 521 BASIC 8 Programme 8.1 Einleitung Programme Dieses Kapitel bietet Ihnen eine komfortable Anwenderoberflßche, die die Handhabung der Auftrßge ∫Telegramm an den CP 521 BASIC senden∫ (A001H) und ∫Telegramm vom CP 512 BASIC empfangen∫ (A080H) stark vereinfacht. Au˚erdem finden Sie Hinweise, wie Sie beim Programmieren des Automa> tisierungsgerßtes (AG) und des CP 521 BASIC vorgehen sollten. Wir haben fÂr Sie Funktionsbausteine fÂr das Senden und Empfangen von Telegrammen mit Endezeichen oder mit fester Lßnge sowie parametrierbare Funktionsbausteine programmiert (Æ Kap. 8.5.6 bis Kap.!8.5.10). Neben den Sende> und Empfangsprogrammen stellen wir Ihnen weiterhin ∫Hilfs∫> Programme zur VerfÂgung, die einen problemlosen und fehlerfreien Datenaustausch zwischen CPU und CP 521 BASIC erm‘glichen (ÆKap. 8.5.4 und Kap.!8.5.5). An einem BASIC>Programm wird demonstriert, wie Sie den CP 521 BASIC programmieren k‘nnen, um Telegramme von der CPU zu empfangen und Daten zur CPU zu senden (Æ Kap. 8.4). FÂr den Transfer eines Datentelegramms mÂssen Sie lediglich noch ∏ die betreffenden Programme am PG bzw. Terminal eingeben, ∏ Programmier>Bausteine in das Automatisierungsgerßt und BASIC>Programm in den CP 521 BASIC Âbertragen, ∏ Telegramme im Datenbaustein ablegen und gegebenenfalls ∏ Sende> bzw. Empfangs>FB parametrieren. Sie k‘nnen selbstverstßndlich auch selbst Sende> und Empfangsprogramme entwickeln. Hinweise hierzu sowie fÂr die Fehlersuche sind im Kapitel ∫Kommunikationsschnittstellen∫ nachzulesen (Æ Kap. 6). EWA 4NEB 812 6071>01 8>1 Programme 8.2 CP 521 BASIC Gerßteaufbau Simul. DE DE DA a a a aa aa a a aa aa aa a Simul. BASIC a a a a a a a a a a a a a a a aaaa a CP 521 DA aaaaaaaaaa aaaaaaaaaa CPU 103 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaa a a a a a a a a a a aaaa a Der Gerßteaufbau ist schematisch in Bild 8.1 dargestellt. Der CP 521 BASIC ist auf Steckplatz 0 montiert. Zur Programmierung des AGs ist ein PG an die CPU anzuschlie˚en. CP 521 BASIC und Terminal sind durch ein V.24>Kabel miteinander verbunden. Beispiele fÂr die Anschlu˚belegungen finden Sie im Kapitel ∫Allgemeine Aufbaubeispiele∫ (Æ Kap. 3.5). aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaa PG TERMINAL Bild 8.1 Aufbauschema CPU und CP 521 BASIC programmieren 8.3 Schnittstellenparametrierung Gehen Sie bei der Parametrierung der seriellen Schnittstelle wie im Kapitel ∫Inbetriebnahme∫ beschrieben vor (Æ Kap. 6.2). Nach dem erstmaligen Einschal> ten des CP 521 BASIC mÂssen Sie zunßchst die Leerschritt>Taste (Space) betßtigen. 8>2 EWA 4NEB 812 6071>01 CP 521 BASIC 8.4 Programme CP 521 BASIC programmieren Nach dem Einschalten des CP 521 BASIC kann, wenn er sich gemeldet hat (Anlauf> verhalten Æ Kap. 5.2), mit der Eingabe des BASIC>Programms begonnen werden. Die Baugruppe befindet sich im Kommando>Modus. Mit folgendem BASIC>Programm dimensionieren Sie Empfangs> und Sende> variablen. Sie lassen sich den Status des letzten Sende> oder Empfangsauftrages am Terminal anzeigen. Es wird angenommen, da˚ der CP 521 BASIC 12 Byte lange Datentelegramme an die CPU sendet . Die CPU sendet 12 Byte Daten zum CP 521 BASIC . Dieses BASIC>Programm ist nur ein Beispiel>Programm. Sie k‘nnen es ent> prechend Ihren AnsprÂchen modifizieren. Schematischer Ablauf des BASIC>Programms START Variablen>Definition Unterprogramm Empfang Empfang auswerten Unterprogramm Senden Senden auswerten Bild 8.2 Programmstruktur BASIC>Programm EWA 4NEB 812 6071>01 8>3 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa a a a a a a a a a a a a a a a a a a a aaaa a a aa aa a aa aa aa aa a ja ja Weitere Daten vorhanden? 8>4 aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a aa aa a aa aa aa aa a Programme CP 521 BASIC Schematischer Ablauf > Unterprogramm Empfang Status lesen ∫Statuswert∫=0? nein ∫Statuswert∫<0? nein Daten einlesen und in Feldvariable ablegen ja nein RETURN Bild 8.3 Flu˚diagramm Empfang Hinweis: Daten k‘nnen nur eingelesen werden, wenn vorher der CP 521 BASIC ein Telegramm von der CPU erhalten hat. EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a aa aa a aa aa aa aa a ja ja Weitere Daten vorhanden? EWA 4NEB 812 6071>01 aaaaaaaaaa aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a aa aa aa a a aa aa aa aa a CP 521 BASIC Programme Schematischer Ablauf > Unterprogramm Senden Status lesen ∫Statuswert∫>0 nein ∫Statuswert∫<0 nein Daten in den Sen> depuffer schreiben ja nein Senden ansto˚en RETURN Bild 8.4 Flu˚diagramm Senden Hinweis: Erst wenn der Sendevorgang beendet ist > das AG alle Sendedaten mittels Telegrammm abgeholt hat > kann ein weiterer Sendevorgang angesto˚en werden. 8>5 Programme CP 521 BASIC BASIC > Programm > Status des letzten Datentransfers >10 >11 >20 >100 >110 >120 >130 >140 >150 >160 >200 >210 >220 >230 >240 >250 >300 >1000 DIM EVAR (254), SVAR (254) REM DIMENSIONIEREN DER EMPFANGSVARIABLEN UND SENDEVARIABLEN MAX = 12 : REM ANZAHL DER BYTES ZUM SENDEN REM HAUPTPROGRAMM GOSUB 1000 : REM EMPFANGEN VON DATEN VOM AG IF RS = 0 PRINT ”KEINE DATEN VORHANDEN” IF RS = - 1 PRINT ”S5-BUS INAKTIV” IF RS = - 2 PRINT ”AG SENDET NOCH DATEN” IF RS = - 3 PRINT ”FEHLER BEIM EMPFANG DER TELEGRAMME” IF RS > 0 PRINT RS ”BYTES EMPFANGEN” GOSUB 2000 : REM SENDEN VON DATEN ZUM AG IF SS > 0 PRINT ”LETZTER SENDEAUFTRAG NOCH NICHT BEENDET” IF SS = - 1 PRINT ”S5-BUS INAKTIV” IF SS = - 2 PRINT ”FEHLER BEIM SENDEN ZUM AG (WARTEZEIT UEBERZOGEN)” IF SS = - 3 PRINT ”FEHLERHAFTE QUITTUNG VON DER CPU” IF SS = 0 PRINT MAX, ”BYTES KOENNEN VON DER CPU EMPFANGEN WERDEN” GOTO 100 >1050 >1060 >1070 REM UNTERPROGRAMM ZUM EMPFANGEN VON BYTEVARIABLEN VOM AG RS = RSTAT : IF RS = 0 GOTO 1070 : REM EMPFANGSSTATUS LESEN IF RS < 0 GOTO 1070 FOR I = 0 TO (RS-1) : REM EMPFANGSVARIABLEN VON 0 BIS (RS-1) BR=BUFREAD 1, EVAR (I) : REM AUS DEM EMPFANGSPUFFER AUSLESEN IF BR < > 0 THEN STOP NEXT I RETURN >2000 >2010 REM UNTERPROGRAMM ZUM SENDEN VON BYTEVARIABLEN ZUM AG SS = SSTAT : IF SS > 0 GOTO 2080 : REM SENDESTATUS >1010 >1020 >1030 >1040 8>6 EWA 4NEB 812 6071>01 CP 521 BASIC 8.5 AG programmieren 8.5.1 eberblick Âber die Programmier > Bausteine Programme Bevor Sie folgende Anweisungslisten am PG eingeben und in das AG Âbertragen, m‘chten wir Ihnen die Grundeinstellung des Steuerungsprogramms erlßutern. 200 ms>Takt abwechselnd Es ist so konzipiert, da˚ das AG im empfangsbereit ist. Eine fehlerfreie ebertragung von Telegrammen zwischen CPU und CP 521 BASIC ist nur gegeben, wenn der letzte Sende> oder Empfangs> auftrag vollstßndig abgeschlossen ist, d. h., Sende> und Empfangsvorgßnge sind gegeneinander zu ∫verriegeln∫. Wir stellen Ihnen demnach folgende Programmier > Bausteine zur VerfÂgung: f Organisationsbaustein OB 1 (Æ Kap. 8.5.4): Im OB1 aufgerufene Bausteine werden zyklisch bearbeitet. f Funktionsbaustein FB 10 ∫IMPULS∫ (Æ Kap. 8.5.4): In periodischen Zeitabstßnden (200 ms) wird ein Impulsmerker (M 100.0) gesetzt. Zu Beginn des nßchsten Programmzyklus wird dieser wieder freigegeben. f Funktionsbaustein FB 11 ∫VERTEILE∫ (Æ Kap. 8.5.5): Im 200 ms>Takt (Abfrage des M 100.0 auf Signalzustand ∫1∫), wird abwech> selnd Sende> oder Empfangserlaubnis erteilt. f nichtparametrierbare FBs fÂr Senden und Empfangen: > FB 1 (Æ Kap. 8.5.6): Telegramm mit fester Lßnge senden > FB 2 (Æ Kap. 8.5.7): Telegramm mit Endezeichen senden > FB 3 (Æ Kap. 8.5.8): Telegramm mit fester Lßnge empfangen f parametrierbare FBs fÂr Senden und Empfangen: > FB 200 ∫SENDEN∫: Telegramm mit einstellbarer Lßnge senden (parametrierbar, Æ Kap. 8.5.9) > FB 201 ∫EMPFANG∫: Telegramm mit einstellbarer Lßnge empfangen (parametrierbar, Æ Kap. 8.5.10) EWA 4NEB 812 6071>01 8>7 sende> oder aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a CP 521 BASIC f f f 8>8 Programme Hinweis: FB 2, FB 200 ∫SENDEN∫ und FB 201 ∫EMPFANG∫ laufen nur auf der CPU 103. Die Operation ∫Merkerwort bearbeiten∫ (B MW) geh‘rt nicht zum Operations> vorrat der CPU 100 und CPU 102. Bei der Eingabe der Programmier>Bausteine zu beachten: Die Programmier>Bausteine OB1, FB10 ∫IMPULS∫ und FB 11 ∫VERTEILE∫ haben universellen Charakter. Hinweis: Tauschen Sie die von uns programmierten Sende> und Empfangs>FBs unter> einander aus oder m‘chten Sie mit selbstprogrammierten Sende> und Empfangs>FBs arbeiten, mÂssen Sie im FB 11 ∫VERTEILE∫ in den Anweisungen ∫Bausteinaufrufe∫ lediglich die Bausteinnummern korrigieren (Æ Bild 8.5). Vor dem Aufruf eines Sendeprogramms mÂssen Sie das zu Âbertragende Tele> gramm in einem Datenbaustein (Quell>Datenbaustein) ablegen. Hinweis: Die Bausteinnummer des Quell>Datenbausteins mu˚ mit der Bausteinnummer in den Anweisungen ∫Datenbaustein aufschlagen∫ Âbereinstimmen. In allen nun folgenden FBs ist das Merkerbyte 80 (MB 80) fÂr die Statusanzeige des Datenaustausches reserviert. EWA 4NEB 812 6071>01 FB 3* SPA FB 3* BE SPA FB 10 BE Ebene 1 * EWA 4NEB 812 6071>01 Ebene 2 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a SPA FB 11 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a FB 11 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa Name: VERTEILE a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a OB 1 FB 10 aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a aaaa a 8.5.2 aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa CP 521 BASIC Programme Programmstruktur Unser Steuerungsprogramm besteht aus 3 Schachtelungsebenen. Die vom OB 1 aufgerufenen Funktionsbausteine werden zyklisch bearbeitet. FB 1* Name: SENDEN SPA FB 1* BE Name: EMPFANG BE Name: IMPULS BE Ebene 3 FB 1 und FB 3 k‘nnen mit anderen FBs fÂr Senden und Empfangen (FB 2, FB 200, FB 201 oder vom Anwender selbst programmierten FBs) ausgetauscht werden. Bild 8.5 Programmstruktur Programmier>Bausteine 8>9 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a Programme 8.5.3 Bit 7 8>10 CP 521 BASIC Aufbau des Statusbyte Das Merkerbyte 80 ist das Statusbyte aller im Kapitel 8 aufgefÂhrten FBs fÂr Senden und Empfangen. Das Statusbyte (MB 80) gibt Auskunft darÂber, ob f ein Sende> oder Empfangsauftrag angesto˚en wurde (Bit 0=1 bzw. Bit 4=1). f ein Sende> oder Empfangsauftrag aktiv ist (Bit 2=1 bzw. Bit 6=1). f Fehler aufgetreten sind Wenn Bit 1 oder Bit 5 gesetzt sind, wurde der Auftrag abgewiesen. (Es konnten keine Daten gesendet oder empfangen werden). Wenn Bit 3 oder Bit 4 gesetzt sind, liegen Parameterfehler (FB200, FB201) vor. Statusbyte (MB 80) Empfangen Bit 6 Senden Bit 5 Bit 4 Parameter> fehler Bit 3 Empfangen aktiv Bit 2 Auftrag angesto˚en Auftrag abgewiesen Bit 1 Bit 0 Auftrag angesto˚en Auftrag abgewiesen Senden aktiv Parameter> fehler Bild 8.6 Aufbau des Statusbyte (MB 80) EWA 4NEB 812 6071>01 aaaaa a a a a a a a a a a aaaaa a a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a a a a a a a a aaaaa a a a a aaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaa a CP 521 BASIC 8.5.4 NAME :R Programme Eingabe Programmier>Bausteine OB 1 und FB 10 ∫IMPULS∫ AWL OB 1 NAME :SPB FB 11 :VERTEILE NAME : :SPA FB 10 :IMPULS EWA 4NEB 812 6071>01 Erlßuterung NETZWERK 1 Aufruf der Hilfs>FBs: Erteilung der Sende> oder Empfangs> erlaubnis : :BE Impulsgeber AWL FB 10 Erlßuterung NETZWERK 1 :IMPULS :U M 100.0 Abfrage und RÂcksetzen des Impuls> merkers 100.0 zu Beginn jedes neuen Programmzykluses 100.0 M : 4.0 20.0 4.0 4.0 : :UN M :L KT :SI T 4 :UN :UN T M 4 := M :S M Vorgabe der Zeitdauer; hier 200 ms Starten einer Zeit als Impuls Setzen des Impulsmerkers 100.0 nach Ablauf der eingestellten Zeit (200 ms). 100.0 :BE 8>11 aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaa a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Programme 8.5.5 * CP 521 BASIC Eingabe Funktionsbaustein FB 11 ∫VERTEILE∫ AWL FB 11 NETZWERK 1 NAME :VERTEILE :U M 100.0 :UN :S :S M M M 100.1 100.1 80.2 :BEB :U M :U M 100.0 100.1 :R M :S M :BEB 100.1 80.6 : :UN M 80.2 :SPB =M001 : NAME :SPA FB :SENDEN :BEA M001 : :UN M 80.6 :SPB =M002 ¡mpfangserlaubnis erteilt, Ist E wird der Empfangs>FB bearbeitet. Aufruf Empfangs>FB NAME : :SPA FB 3* :EMPFANG M002 : :BE 1* Erlßuterung Impulsmerker (M 100.0) gibt die ebertragung von Telegrammen frei. Senden aktiv Empfangen aktiv Ist Sendeerlaubnis erteilt, wird der Sende>FB bearbeitet. Aufruf Sende>FB FB 1 und FB 3 k‘nnen durch andere FBs (FB 2, FB 200 ∫SENDEN∫ und FB 201 ∫EMPFANG∫ oder vom Anwender selbst programmierten FBs) ersetzt werden. Hinweis: Wßhrend laufendem Telegrammverkehr zwischen CPU und CP 521 BASIC sind keine Proze˚alarme (CPU 103) zulßssig. 8>12 EWA 4NEB 812 6071>01 CP 521 BASIC 8.5.6 Programme Eingabe Funktionsbaustein FB 1 Telegramm mit fester Lßnge senden a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Angenommen, Sie haben den CP 521 BASIC auf Steckplatz 7 (Anfangsadresse 120) angebracht und wollen ein Telegramm mit fester Lßnge (12 Byte) von der CPU zum CP 521 BASIC Âbertragen. Die Daten fÂr das Telegramm haben Sie im AG im Datenbaustein (DB) 20 hinterlegt. AWL FB 1 Erlßuterung : NAME :SENDEN :A DB : 20 :U M 80.0 : :SPB =M001 Merker 80.0 kennzeichnet einen bereits angesto˚enen Sendeauftrag. : :L :T KH A001 AW 120 : : :L A001H wird an den CP 521 BASIC (Wort!0) geschickt, damit wird der Sendeauftrag angesto˚en. KH 000C In Wort 1 wird dem CP 521 BASIC die Sendelßnge (hier 12 Byte) Âbermittelt. :T : :S M001 Senden mit fester Lßnge (12 Byte) Quell>DB aufschlagen AW 122 M 80.0 :R M :BEA : 80.1 :L :L :UW EW 120 KH F00F :L KH 5001 :><F : :SPB =M002 : :L EW 122 :L KH 0000 :><F EWA 4NEB 812 6071>01 Merker 80.0 wird gesetzt: d.h.der Auftragsansto˚ wurde abgesendet; der Sendeauftrag lßuft. Auswertung der RÂckmeldung des CP 521!BASIC: > Ist die RÂckmeldung nicht positiv (5001H), dann Sprung zur Marke 002. > Sind die Koordinierungsdaten ungÂltig oder wird ein Datenblock quittiert, 8>13 CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Programme AWL FB 1 (Fortsetzung) Erlßuterung (Fortsetzung) : dann Sprung zur Marke 003. :SPB =M003 : : :L :T :L KH B001 AW 120 DW 0 :T :L :T AW DW AW :L DW :T AW :BEA : M003 wenn gÂltig, RÂckmeldung ist 5001H: > Kennung fÂr 1. Datenblock (B001H) in Wort 0 schreiben. > Nettodaten des 1. Datenblocks in Wort 1 ... 3 schreiben. 122 1 124 2 126 :L EW 122 :L KH 0001 :><F Wurde der Datenblock Nr. 1 vom CP!521!BASIC noch nicht quittiert, dann Sprung zur Marke 002. : :SPB =M002 : M002 :L :T :L KH B002 AW 120 DW 3 :T :L :T AW DW AW 122 4 124 :L DW :T AW :BEA 5 126 : :L :L EW KH :UW :L :>< KH 5000 F 120 F00F RÂckmeldung auf 1. Datenblock erfolgt, > Kennung fÂr 2. Datenblock (B002H) in Wort 0 schreiben. > Nettodaten des 2. Datenblocks in Wort 1 ... 3 schreiben. RÂckmeldung prÂfen Ist es eine Abschlu˚meldung? : :SPB =M004 8>14 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC :L :L :UW M005 M004 Programme AWL FB 1 (Fortsetzung) EW KH :BE EWA 4NEB 812 6071>01 122 FF00 :!= :S :L F M KH 80.1 0000 :T : :R :R AW 120 M M 80.2 80.0 Erlßuterung (Fortsetzung) : Wurde der Sendeauftrag abgewiesen? :L KH FF00 :>< F :SPB =M005 Abschlie˚end wird Leerauftrag 0000H an den CP 521 BASIC gesendet. Der Sendeauftrag wird wieder freigegeben. Der Auftrag ist beendet. 8>15 Programme CP 521 BASIC 8.5.7 Eingabe Funktionsbaustein FB 2 (nur fÂr CPU 103) Telegramm mit Endezeichen senden a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Sie haben den CP 521 BASIC auf Steckplatz 7 (Anfangsadresse 120) angebracht und wollen ein Telegramm mit unbestimmter Lßnge von der CPU zum CP!521!BASIC Âbertragen. Die Daten fÂr das Telegramm werden aus dem DB 21 entnommen. Die beiden Endezeichen kennzeichnen das letzte Wort das Âbertragen wird. AWL FB 2 Erlßuterung : NAME :A : : :U M : :SPB : : :U : :SPB : :L :T : : :L :T :L :T : :S :R : : 8>16 :SENDEN DB 21 90.0 =M001 M 80.0 Senden mit Endekennung Quell>DB aufschlagen Wurden alle Daten bereits an den CP!521!BASIC Âbergeben, dann Sprung zur Marke 001. Æ Auswertung der RÂckmeldung des CP 521 BASIC Merker 80.0 kennzeichnet einen bereits angesto˚enen Sendeauftrag. =M002 KH A001 AW 120 A001H wird an den CP 521 BASIC (Wort!0) geschickt, damit wird der Sendeauftrag angesto˚en. KH 0000 AW 122 KH 0D0D AW 124 Telegrammlßnge: d.h. 0000H M M Merker 80.0 wird gesetzt: d.h. der Auftragsansto˚ wurde abgesendet, der Sendeauftrag lßuft. 80.0 80.1 Endekennzeichen EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC : :L :T :L :T :L :T :L :T :L :T :BEA : M002 : :L :L :UW :L :><F :SPB : :L :L :><F :SPB : :L :T :B :L :T :B :L :T :B :L :T Programme AWL FB 2 KH MW KH MW KF MW KF MW KF MW EW MW MW AW MW DW AW MW DW AW MW DW AW EWA 4NEB 812 6071>01 0000 22 B001 24 +0 30 +1 32 +2 34 EW 120 KH F00F 122 22 24 120 30 0 122 32 0 124 34 0 126 Erlßuterung Vorbelegen der Hilfsregister Blockquittung rÂcksetzen ebergabe des ersten Datenblocks Zeiger im Quell>DB auf ihre Anfangswerte setzen Hat der CP 521 BASIC den Âbertragenen Datenblock quittiert? KH 5001 =M001 eberprÂfung der Nummer des quittierten Datenblocks =M001 Transfer des nßchsten Datenblocks mit entsprechender Nummer Zu Âbertragende Daten>Bytes aus dem Quell>DB auslesen und an den CP 521 BASIC Âbergeben. 8>17 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Programme 8>18 CP 521 BASIC AWL FB 2 (Fortsetzung) : :L :L :!=F :S :L :L :!=F :S :L :L :!=F :S : : :L :L :+F :T :L :L :+F :T : :L :L :+F :T :L :L :+F :T :L :L :+F :T :BEA : AW 122 KH 0D0D M 90.0 AW 124 KH 0D0D M MW 22 KF +1 MW 22 MW 24 KF +1 MW MW 30 KF +3 MW Erlßuterung (Fortsetzung) War in dem zu Âbertragenden Daten> Byte die Endekennung ∫0D0D∫ enthalten, dann warten auf die Quittung 5000H vom CP 521 BASIC. M 90.0 AW 126 KH 0D0D 90.0 Hilfsregister fÂr den nßchsten Daten> block vorbelegen: Blocknummer in der Blockquittung (MW 22) und Blocknummer im Auftrag ∫Daten senden∫ (MW 24) um 1 erh‘hen. 24 Zeiger im Quell>DB um 1 erh‘hen. MW 30 MW 32 KF +3 MW 32 MW 34 KF +3 34 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC AWL FB 2 (Fortsetzung) M001 M004 M003 : :L EW 120 :L KH F00F :UW :L KH 5000 :><F :SPB=M003 : :L EW 122 :L KH FF00 :UW :L KH FF00 :><F :SPB=M004 :!=F :S M 80.1 :L KM 0000 :T AW 120 : :R M 80.2 :R M 80.0 :R M 90.0 :BE EWA 4NEB 812 6071>01 Programme Erlßuterung (Fortsetzung) RÂckmeldung prÂfen Ist es eine Abschlu˚meldung? Wurde der Sendeauftrag abgewiesen? Abschlie˚end wird Leerauftrag 0000H an den CP 521 BASIC gesendet. Sendeauftrag wird wieder freigegeben. Der Auftrag ist beendet. 8>19 Programme 8.5.8 CP 521 BASIC Eingabe Funktionsbaustein FB 3 Telegramm mit fester Lßnge empfangen a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Sie haben die Baugruppe auf Steckplatz 7 (Anfangsadresse 120) angebracht und wollen zw‘lf Byte lange Datentelegramme vom CP 521 BASIC zur CPU Âber> tragen. Die ankommenden Daten hinterlegen Sie im Datenbaustein (DB) 3. AWL FB 3 NAME Erlßuterung : :EMPFANG :A DB 3 : :L :L Empfangen mit fester Lßnge (12 Byte) Ziel>DB aufschlagen EW 120 KH 0F00 :UW :L KH 0F00 :!=F Ist der CP 521 BASIC noch beschßftigt? : :BEB : :U M 80.4 : :SPB =M001 : :L :T : :S : M001 Merker 80.4 kennzeichnet einen ange> sto˚enen Empfangsauftrag. KH A080 AW 120 Empfangsauftrag an den CP 521 BASIC Âbergeben M Empfangsauftrag ist Âbergeben, Merker 80.4 wird gesetzt. 80.4 :BEA : :L EW 120 :L KH F00F Empfangsauftrag lßuft. RÂckmeldung prÂfen :UW :L KH 6001 :><F RÂckmeldung nicht 6001H, dann Sprung zur Marke 002. : :SPB =M002 : 8>20 EWA 4NEB 812 6071>01 Programme a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC AWL FB 3 M002 Erlßuterung :L EW 122 :T :L :T DW EW DW 0 124 1 :L :T :L EW DW EW 126 2 120 :L :T : KH C001 AW 120 :BEA : :L EW 120 :L KH 6002 RÂckmeldung ist 6001H: > Wort 1 ... 3 enthßlt die Nettodaten des ersten Blocks des Empfangstele> gramms. Quittierung des ersten Blocks an den CP!521 BASIC schicken. Ist die RÂckmeldung nicht 6002H, dann Sprung zur Marke 003. :><F : :SPB =M003 : :L :T EW DW 122 3 :L :T :L EW DW EW 124 4 126 :T : :L DW 5 KH C002 :T AW : :BEA M003 : :L :L 120 RÂckmeldung ist 6002H: > Wort 1 ... 3 enthßlt die Nettodaten des zweiten Blocks des Empfangstele> gramms. Quittierung des zweiten Blocks an den CP!521 BASIC schicken. Der nßchste Auftrag kann angesto˚en werden. EW 120 KH F000 :UW :L KH 5000 :><F Ist es eine Abschlu˚meldung? :SPB =M004 : EWA 4NEB 812 6071>01 8>21 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Programme M005 M004 8>22 CP 521 BASIC AWL FB 3 :L :L :UW :T : :R :R :BE EW 122 KH FF00 :!=F :S M 80.5 :L KH 0000 AW M M 120 80.6 80.4 Erlßuterung : Wurde der Empfangsauftrag abgewiesen? :L KH FF00 :<>F :SPB =M005 Abschlie˚end wird Leerauftrag 0000H an den CP 521 BASIC gesendet. Merker 80.6 und 80.4 werden zurÂck> gesetzt. Der Auftrag ist beendet. EWA 4NEB 812 6071>01 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a CP 521 BASIC 8.5.9 f f f f Programme Handhabung und Eingabe des parametrierbaren Funktionsbausteins FB 200 ∫SENDEN∫ Der FB 200 ∫SENDEN∫ Âbertrßgt ein Telegramm mit einstellbarer Lßnge von der CPU zum CP 521 BASIC. Sie mÂssen vor dem Aufruf des FB 200 ∫SENDEN∫ das zu Âbertragende Telegramm in einem Datenbaustein ablegen (Quell> Datenbaustein). Beim Aufruf des FB 200 ∫SENDEN∫ mÂssen Sie angeben: die Anfangsadresse des CP 521 BASIC des Quell>Datenbausteins, aus dem die Nummer CP 521 BASIC Âbertragen werden soll die Nummer des Quell>Datenwortes, ab der das Telegramm abgelegt ist die Lßnge des zu Âbertragenden Telegramms (Anzahl der Quell>Datenbytes) Hinweis: FB 200 ∫SENDEN∫ ist nur auf der CPU 103 ablauffßhig. Aufruf und Parametrierung des FB 200 ∫SENDEN∫* AWL EWA 4NEB 812 6071>01 KOP/FUP :SPA FB 200 NAME BEZ. BEZ. :SENDEN :BGAD :Q-DB :KF :B BEZ. BEZ. :QANF :QLAE :KF :KF FB 200 BGAD Q>DB QANF QLAE Tabelle 8.1 Bausteinparameter des FB 200 ∫SENDEN∫ Name (Bezeichner ) Art Typ Beschreibung BGAD Q>DB QANF QLAE D B D D KF Anfangsadresse der Baugruppe Nummer des Quell>Datenbausteins Nummer des ersten Quell>Datenwortes Anzahl der zu Âbertragenden Datenbytes KF KF * bitte beachten, da˚ im FB 200 Schmiermerker verwendet werden. 8>23 das Telegramm auf d a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Programme 8>24 CP 521 BASIC Schematische Funktionsweise des FB 200 ∫SENDEN∫ Hinweis: Dieser Abschnitt dient zum besseren Verstßndnis der Funktionsweise des FB 200 ∫SENDEN∫. Zur Bedienung des FB 200 ∫SENDEN∫ sind diese Informa> tionen nicht erforderlich. ANFANG ja ja nein nein ENDE Ist Baugruppe beschßftigt? ENDE Fehlermeldung in Statusbyte ablegen Netzwerk 2 nein Wurde Blockanzahl schon ermittelt? nein Errechnen der Blockanzahl Ist Quell>DB vorhanden? ja Hat Quell>DB die richtige Lßnge? ja 1 Bild 8.7 Schematischer Ablauf ∫Telegramm senden∫ (FB 200) EWA 4NEB 812 6071>01 CP 521 BASIC Programme 1 Adre˚zeiger stellen Netzwerk 3 Sendeauftrag A001H ansto˚en Netzwerk 4 Zeiger auf Quelldaten stellen nein Wurde Auftrag angenommen ? Netzwerk 5 ja Block Âbertragen Datenwortzeiger neu stellen nein Ist Auftrag abgeschlossen? ja Merker setzen bzw. rÂcksetzen ENDE Bild 8.7 Schematischer Ablauf ∫Telegramm senden∫ (Fortsetzung) EWA 4NEB 812 6071>01 8>25 Programme CP 521 BASIC Merker im FB 200 ∫SENDEN∫ Erklßrung zu den vom FB 200 ∫SENDEN∫ benutzen Merkern: a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Tabelle 8.2 ebersicht Âber die vom FB 200 ∫SENDEN∫ benutzten Merker Merker Bedeutung MW 230 Hilfsmerkerwort zum Zwischenspeichern der Quell>DB>Lßnge MW 234 Baugruppenadre˚register ∫Wort 0∫ MW 236 Baugruppenadre˚register ∫Wort 1∫ MW 238 Baugruppenadre˚register ∫Wort 2∫ MW 240 Baugruppenadre˚register ∫Wort 3∫ MW 242 Muster fÂr die BlockankÂndigung (Welcher Block wird belegt?) MW 244 Vergleichsmuster Blocknummer MW 246 Datenwortzeiger ∫Wort 0∫ MW 248 Datenwortzeiger ∫Wort 1∫ MW 250 Datenwortzeiger ∫Wort 2∫ MB 252 Hilfsregister fÂr Blockanzahl MB 253 Blockzßhler fÂr Quelldaten M 80.0 Merker: Auftrag angesto˚en M 80.1 Merker: Auftrag abgewiesen M 80.2 Merker: Senden aktiv M 80.3 Merker: Parameterfehler 8>26 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC BLK Programme FB 200 NETZWERK 1 NAME :SENDEN BEZ :BGAD BEZ :Q-DB BEZ :QANF BEZ :QLAE NETZWERK 2 :LW :T : :B :L :SPB : :LW :T :L :ADD :T :L E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: AWL FB 200 :L EW 0 :L KH 0F00 :UW :L KH 0F00 :!=F :BEB : : MB 252 :L KB 0 :><F =QLAE MB 253 MB 252 KF +1 MB 252 MB 253 :ADD KF -6 :T MB 253 :L KF +0 :<=F :SPB =BLDA : EWA 4NEB 812 6071>01 LAE = 282 D B D D KM/KH/KY/KC/KF/KT/KZ/KG: KF KM/KH/KY/KC/KF/KT/KZ/KG: KF KM/KH/KY/KC/KF/KT/KZ/KG: KF Erlßuterung =BGAD MW 234 Baugruppenadresse laden und abspeichern. beschßftigt? MW 234 Ist der CP 521 BASIC Wenn ja, Bausteinende. Blockanzahl: Berechnung der einmal Wenn die Blockanzahl ermittelt ist, wird keine Be> rechnung mehr durchgefÂhrt. =BLDA Lßnge zwischenspeichern. Blockzßhler erh‘hen und Bytean> von der Lßnge sooft die subtrahieren, zahl eines Blockes bis Null erreicht ist. Blockanzahl steht fest. 8>27 CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Programme AWL FB 200 Erlßuterung :LW =Q-DB :SLW 8 :SRW 7 :L KH E400 Parameter Q>DB laden, DB>Nummer isolieren :+F :LIR 0 : :L KH 0000 ermitteln. und Anfangsadresse des Q> DB Ist der Quell>DB vorhanden? :!=F :SPB : :TAK :L :+F :LIR :L :+F :T : : ∫FEHLER∫ =FEHL DB>Lßnge ermitteln KF -2 0 KF -5 MW 230 und zwischenspeichern. eberprÂfung der Lßnge des Quell>DB: :L KF +255 :>F :SPB =FEHL : :LW =QANF Ist der Quell>DB zu lang? ∫FEHLER∫ eberprÂfen, ob QANF < 0 ist? :L KH 0000 :<F :SPB =FEHL : :LW =QANF ∫FEHLER∫ eberprÂfen, ob QANF + QLAE > :LW :SRW :ADD :+F :L :>F :SPB : :LW 8>28 Quell>DB>Lßnge ist ? =QLAE 1 KF +1 MW 230 =FEHL ∫FEHLER∫ =QLAE eberprÂfen, ob QLAE > EWA 4NEB 812 6071>01 Programme a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a CP 521 BASIC AWL FB 200 FEHL WEIT : :L MB 80 :L KH 0008 :OW :T MB 80 :BEA :*** NETZWERK 3 :LW :T :L :+F :T :L :+F :T :L :+F :T : :*** NETZWERK 4 :U Erlßuterung Parameterfehler eintragen. Adre˚zeiger stellen: =BGAD MW 234 KF +2 Basisadresse (Wort 0) MW 236 KF +2 Basisadresse + 2 (Wort 1) MW 238 KF +2 Basisadresse + 4 (Wort 2) MW 240 Basisadresse + 6 (Wort 3) M Merker: Auftrag 80.0 angesto˚en :SPB =AUFS Ist der Merker gesetzt, : keinen neuen Auftrag dann ansto˚en. :L :B KH A001 MW 234 Auftrag in Wort 0 AW 0 =QLAE MW 236 Lßnge in Wort 1 schreiben. :T :LW :B hinterlegen. :T : :L AW 0 KH B001 Kennung fÂr die Blockquittung> :T :L :T MW 242 KF +0 MW 244 EWA 4NEB 812 6071>01 erster Block> speichern. Vergleichswert > Block 1> speichern. 8>29 CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Programme AWL FB200 : :L :+F :T :L :+F :T : :UN Erlßuterung KF +1 MW 248 KF +1 Anfang + 1 MW 250 Anfang + 2 M 80.0 Merker: ∫Sendeauftrag :S M :R M :BEA :*** 80.0 80.1 setzen Fehlermerker rÂcksetzen Bausteinende angesto˚en∫ AUFS NETZWERK 5 :B :L :L MW 234 EW 0 KH F00F Eingangswort ∫0∫ laden und ÂberprÂfen, ob der Auftrag angenommen wurde. :UW :L :><F :SPB : :B :L KH 5001 =KAUF MW 236 EW 0 eberprÂfen, ob der richtige Block entgegengenommen KH 00FF kann. werden :L :UW :L :><F :BEB : :B : :L :B :T : :B :L :B 8>30 MW 244 =Q-DB Quell>DB aufschlagen, MW 242 MW 234 AW 0 Block ankÂndigen und Âbertragen. MW 246 DW 0 MW 236 Wort 0 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a CP 521 BASIC : :B :L :B :T : :B :L :B :T : :L :L :+F :T :L :UW :L :+F :T : :L :L :+F :T : :L :L :+F :T : :L :L :+F :T : Programme AWL FB200 MW 242 KH 00FF :L MB 252 :>F :SPB =ENDE : :L MW 244 MW 246 KF +3 MW 248 KF +3 MW 250 KF +3 EWA 4NEB 812 6071>01 Erlßuterung MW 248 DW 0 MW 238 AW 0 Wort 1 MW 250 DW 0 MW 240 AW 0 Wort 2 aktualisieren MW 242 Blockquittung KF +1 und ÂberprÂfen, ob die zu Âbertragende Blockanzahl erreicht ist. aktualisieren. Blocknummer KF +1 MW 244 Datenwortzeiger erh‘hen: Wort 0 MW 246 Wort 1 MW 248 Wort 2 MW 250 8>31 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Programme KAUF RESE 8>32 CP 521 BASIC AWL FB200 : :B :L :L :UW :L :><F :SPB : :B :L :L :UW :L :><F :SPB :!=F :S :L :B :T :R :R MW 234 EW 0 MW 236 EW 0 KH FF00 freigegeben M 80.1 KH 0000 MW 234 AW 0 M 80.2 Auftrag wurde abgelehnt. M werden. 80.0 Erlßuterung eberprÂfen, ob ein neuer Auftrag gestartet werden kann KH F00F KH 5000 =ENDE eberprÂfen, ob ein Auftrag abgeschlossen wurde KH FF00 =RESE Auftrag kann wieder EWA 4NEB 812 6071>01 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaa a CP 521 BASIC f f f Programme 8.5.10 Handhabung und Eingabe des parametrierbaren Funktions> bausteins FB 201 ∫EMPFANG∫ Der FB201 ∫EMPFANG∫ Âbertrßgt Telegramme vom CP 521 BASIC zur CPU. Beim Aufruf des FB201 ∫EMPFANG∫ mÂssen Sie angeben: die Anfangsadresse des CP 521 BASIC die Nummer des Ziel>Datenbausteins, in dem das Telegramm vom CP!521!BASIC abgelegt werden soll die Nummer des Ziel>Datenworts, ab der das Telegramm abgelegt werden soll. Hinweis: FB 201 ∫EMPFANG∫ ist nur auf der CPU 103 ablauffßhig. Aufruf und Parametrierung des FB 201 ∫EMPFANG∫* AWL EWA 4NEB 812 6071>01 KOP / FUP NAME :SPA FB 201 :EMPFANG BEZ. BEZ. BEZ. :BGAD :Z-DB :ZANF FB 201 :KF :B :KF BGAD Z>DB ZANF Tabelle 8.3 Bausteinparameter des FB 201 ∫EMPFANG∫ Name (Bezeichner ) Art Typ BGAD Z>DB ZANF D B D KF KF Beschreibung Anfangsadresse der Baugruppe Nummer des Ziel>Datenbausteins Nummer des ersten Ziel>Datenwortes * bitte beachten, da˚ im FB 201 Schmiermerker verwendet werden. 8>33 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaa a Programme 8>34 CP 521 BASIC Schematische Funktionsweise des FB 201 ∫EMPFANG∫. Hinweis: Dieser Abschnitt dient zum besseren Verstßndnis der Funktionsweise des FB 201 ∫EMPFANG∫. Zur Bedienung des FB 201 ∫EMPFANG∫ sind diese Infor> mationen nicht erforderlich. ANFANG ja nein nein Fehlermeldung in Statusbyte ablegen ENDE Ist Baugruppe beschßftigt? Netzwerk 2 ENDE nein Ist Ziel>DB vorhanden? ja Hat Ziel>DB die richtige Lßnge? ja Adre˚zeiger stellen Netzwerk 3 Empfangsauftrag A080H ansto˚en Netzwerk 4 1 Bild 8.8 Schematischer Ablauf ∫Telegramm empfangen∫ (FB 201) EWA 4NEB 812 6071>01 CP 521 BASIC Programme 1 Zeiger auf Zieldaten stellen nein Wurde Auftrag angenommen ? Netzwerk 5 ja Block im Empfangs>DB eintragen Datenwortzeiger neu stellen nein Ist Auftrag abgeschlossen? ja Merker setzen bzw. rÂcksetzen ENDE Bild 8.8 Schematischer Ablauf ∫Telegramm empfangen∫ (Fortsetzung) EWA 4NEB 812 6071>01 8>35 Programme CP 521 BASIC Merker im FB201 ∫EMPFANG∫ Erklßrung zu den vom FB ∫EMPFANG∫ benutzten Merkern: a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a Tabelle 8.4 ebersicht Âber die vom FB201 ∫EMPFANG∫ benutzten Merker Merker Bedeutung MW 230 Zwischenspeicher fÂr DB>Lßnge MW 234 Baugruppenadre˚register∫Wort 0∫ MW 236 Baugruppenadre˚register ∫Wort 1∫ MW 238 Baugruppenadre˚register ∫Wort 2∫ MW 240 Baugruppenadre˚register ∫Wort 3∫ MW 242 Vergleichsmuster CP>Block>Quittung MW 244 Blockquittung von der CPU MW 246 Datenwortzeiger ∫Wort 0∫ MW 248 Datenwortzeiger ∫Wort 1∫ MW 250 Datenwortzeiger ∫Wort 2∫ M 232.0 Hilfsmerker Fehler: DB>Grenze Âberschritten M 80.4 Merker: Auftrag angesto˚en M 80.5 Merker: Auftrag abgewiesen M 80.6 Merker: Empfang aktiv M 80.7 Merker: Parameterfehler 8>36 EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaa a CP 521 BASIC Programme FB 201 NETZWERK 1 NAME :EMPF. BEZ :BGAD BEZ :Z-DB BEZ :ZANF E/A/D/B/T/Z: D E/A/D/B/T/Z: B E/A/D/B/T/Z: D NETZWERK 2 :LW =BGAD :T MW 234 : :B MW 234 :L :L :UW :L :!=F :BEB : : :LW :SLW :SRW EW 0 KH 0F00 :L KH E400 =Z-DB 8 7 EWA 4NEB 812 6071>01 LAE=236 KM/KH/KY/KC/KF/KT/KZ/KG: KF KM/KH/KY/KC/KF/KT/KZ/KG: KF AWL FB 201 Erlßuterung Baugruppenadresse laden und abspeichern beschßftigt? Ist der CP 521 BASIC KH 0F00 Wenn ja, Bausteinende eberprÂfen, ob der Ziel>DB vorhanden ist. Parameter Z>DB laden, DB>Nummer isolieren DB :+F und Anfangsadresse des Z> :LIR 0 : : :L KH 0000 :!=F :SPB =FEHL : :TAK ermitteln Ist der Ziel>DB vorhanden? ∫FEHLER∫ DB>Lßnge ermitteln :L KF -2 :+F :LIR 0 :L KF -5 :+F 8>37 CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Programme AWL FB 201 :SPB =FEHL : :LW =ZANF Erlßuterung ∫FEHLER∫ eberprÂfen, ob ZANF < 0 ist? :L KH 0000 :<F :SPB =FEHL :SPA =WEIT ∫FEHLER∫ Ansonsten weiter im Programm FEHL WEIT : :L :L :OW :T :BEA :*** : :LW :T :L :+F :T :L :+F :T :L :+F :T : :*** NETZWERK 4 : : :U MB 80 KH 0080 MB ∫FEHLER∫ 80 Adre˚zeiger stellen: =BGAD MW 234 KF +2 Basisadresse (Wort 0) MW 236 KF +2 Basisadresse + 2 (Wort 1) MW 238 KF +2 Basisadresse + 4 (Wort 2) MW 240 Basisadresse + 6 (Wort 3) M Merker: Auftrag ansto˚en Ist der Merker gesetzt, 80.4 dann :SPB =AUSP keinen neuen Auftrag ansto˚en. : :L KH A080 Auftrag in Wort 0 schreiben. :B 8>38 MW 234 EWA 4NEB 812 6071>01 Programme a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a CP 521 BASIC AWL FB 201 : :L Erlßuterung KH C001 Blockquittung >erster :T : : MW 244 speichern :LW :T :L :+F :T :L :+F :T : : :S : :BEA :*** =ZANF MW 246 KF +1 Zielanfang MW 248 KF +1 Anfang + 1 MW 250 Anfang + 2 M Merker: ∫Empfangsauftrag angesto˚en∫ setzen Bausteinende Block> Zeiger auf Zieldaten stellen: AUSP 80.4 NETZWERK 5 : Wenn die Datenbausteingrenze :U :BEB : :B :L :L M 232.0 MW 234 EW 0 MW 242 Âberschritten wurde, wird der Eintrag abgebrochen Eingangswort "0" laden und ÂberprÂfen, ob der Auftrag angenommen wurde :><F :SPB : :B : :B :L :B :T : :B =KAUF =Z-DB Ziel>DB aufschlagen MW 236 EW 0 MW 246 DW 0 Wort 0, MW 238 Wort 1 und EWA 4NEB 812 6071>01 8>39 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Programme 8>40 CP 521 BASIC AWL FB 201 : :B Âbertragen :L :B :T : :L :B :T : :L :L :+F :T : :L :L :+F :T : :L :L :+F :T : :L :L :+F :T : :L :L :+F :T :L MW 240 MW 244 MW 242 KF +1 MW 244 MW 246 KF +3 MW 248 KF +3 Âberschritten Erlßuterung Wort 2 in den DB EW 0 MW 250 DW 0 quittieren DatenÂbernahme MW 234 AW 0 Blockmeldung und MW 242 aktualisieren Blockquittung KF +1 MW 244 Datenwortzeiger Wort 0 MW 246 Wort 1 MW 248 MW 250 KF +3 Wort 2 erh‘hen MW 250 MW 230 die und ÂberprÂfen, ob dabei :<=F DB>Obergrenze :SPB =KAUF :UN M 232.0 :S M 232.0 wird Fehlermerker setzen und EWA 4NEB 812 6071>01 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a CP 521 BASIC KAUF RESE Programme AWL FB 201 : :OW :T MB 80 :BEA : : :B MW 234 Auftrag :L :L :UW :L :><F :SPB :B EW 0 KH F000 :L :L :UW :L :><F :SPB :!=F :S :L :B :T :R EW 0 KH FF00 =ENDE MW 236 M 80.5 KH 0000 MW 234 AW 0 M 80.6 EWA 4NEB 812 6071>01 Erlßuterung Meldung eintragen Bausteinende Auftrag eberprÂfen, ob der abgeschlossen wurde KH 5000 eberprÂfen, ob der abgelehnt worden ist KH FF00 =RESE Auftrag wurde abgelehnt. freigegeben Auftrag kann wieder 8>41 CP 521 BASIC Programme EWA 4NEB 812 6040>01a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaaaa a Anhang A: Befehle, Anweisungen und Funktionen A.1 Zusammenstellung aller Befehle, Anweisungen, Funktionen und Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . EWA 4NEB 812 6071>01 A > 1 EWA 4NEB 812 6071>01 CP 521 BASIC Zusammenstellung aller Befehle, Funktionen, Anweisungen und Operatoren a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a A.1 Befehle, Anweisungen und Funktionen Befehl, Funktion, Anweisung Bedeutung Beispiel ASC (ASCII>Zeichen) (Æ Kap.5.12.6) Einzelne Zeichen eines Strings manipu> lieren, Wandlung eines Zeichens in den ASCII>Code PRINT ASC(A) BREAK ([integer]) (Æ Kap.5.8.5) Ein>/Abschalten der Programmunter> brechbarkeit durch <CTRL C> BREAK (1) BUFIN [strvar(,expr)] (Æ Kap.5.10.3) schreibt den Variableninhalt in den Sendepuffer zur Peripherie Als Funktionswert wird ein Fehlerstatus Âbergeben X=BUFIN §(0), 250 BUFOUT [strvar(,expr)] (Æ Kap.5.10.6) liest aus dem Empfangspuffer von der Peripherie Zeichen in die Variable Als Funktionswert wird ein Fehlerstatus Âbergeben X=BUFOUT S(0), 6 BUFREAD datentyp, var {, lßnge} (Æ Kap.5.9.5) liest aus dem Empfangspuffer von der CPU den angegebenen Datentyp in die Variable Ein Fehler beim Lesen bzw. Wandeln wird als Funktionswert zurÂckgegeben X=BUFREAD 4, §(0), 10 BUFWRITE datentyp, var {, lßnge} (Æ Kap.5.9.6) wandelt die Variable in den angege> benen Datentyp und Âbertrßgt den Wert in den Sendepuffer zur CPU Ein Fehler beim Lesen bzw. Wandeln wird als Funktionswert zurÂckgegeben X=BUFWRITE 1, name CHR (expr) (Æ Kap.5.12.6) Einzelne Zeichen eines Strings manipu> lieren, Wandlung einer Zahl zum zuge> h‘rigen Zeichen X=CHR(35H) CLEAR (Æ Kap.5.8.1) l‘scht alle internen Puffer, numerischen Variablen und setzt Stacks zurÂck CLEAR CLEARI (Æ Kap.5.8.2) l‘scht alle aufgerufenen Interrupts CLEARI CLEARS (Æ Kap.5.8.2) initialisiert alle Stacks CLEARS CLOCK0 (Æ Kap.5.8.20) sperrt den Timer CLOCK0 CLOCK1 (Æ Kap.5.8.20) gibt den Timer frei CLOCK1 CONT (Æ Kap.5.6.2) setzt ein durch STOP oder <CTRL C> angehaltenes Programm fort CONT DATA [expr] {, [expr], ...} (Æ Kap.5.8.6) spezifiziert AusdrÂcke und Daten, die mit READ eingelesen werden DATA 50, 70, >5, PI/2 EWA 4NEB 812 6071>01 A>1 CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a Befehle, Anweisungen und Funktionen Befehl, Funktion, Anweisung Bedeutung Beispiel DIM [var(integer)] (Æ Kap. 5.8.7) reserviert Speicherplatz fÂr Arrays DIM A (20) DO>UNTIL [rel expr] (Æ Kap. 5.8.8) Anweisungen zwischen DO und UNTIL werden solange ausgefÂhrt, bis der Ausdruck hinter UNTIL TRUE wird DO A=A+1 UNTIL A=4 DO>WHILE [rel expr] (Æ Kap. 5.8.9) Anweisungen zwischen DO und WHILE werden solange ausgefÂhrt, solange der Ausdruck hinter WHILE TRUE ist DO A=A+1 WHILE A<4 END (Æ Kap. 5.8.10) beendet die ProgrammausfÂhrung END ERASE [integer] (Æ Kap. 5.7.5) l‘scht das angegebene Programm vom Speichermodul ERASE 15 FIND strvar1, strvar2 (Æ Kap. 5.12.4) Als Funktionswert wird die Position des ersten Auftretens von strvar2 in strvar1 Âbergeben POS=FIND §(0),∫Beispiel∫ FOR>TO>{STEP}>NEXT (Æ Kap. 5.8.11) erlaubt die Mehrfachverarbeitung einer Folge von Befehlen, Anweisungen und/ oder Funktionen in einer Schleife mit einer definierten Zahl von Durchlßufen FOR A=B TO C STEP D NEXT A FREE (Æ Kap. 5.14.2) Abfrage des fÂr Variable verfÂgbaren Speichers X=FREE GET (Æ Kap. 5.10.5) liest ein Zeichen aus dem Empfangs> puffer von der Peripherie A=GET GOSUB [ln num] (Æ Kap. 5.8.12) Programmverzweigung in die Subroutine ab ∫ln num∫ GOSUB 1000 GOTO [ln num] (Æ Kap. 5.8.13) Programmverzweigung zu einer be> stimmten Programmzeile GOTO 150 HANDLE [expr] (Æ Kap. 5.10.1) gibt die mit ∫expr∫ vorgegebene Anzahl von Zeichen aus dem Sendepuffer zur Peripherie an der bidirektionalen Schnittstelle HANDLE 10 HANDLE# [expr] (Æ Kap. 5.10.1) gibt die mit ∫expr∫ vorgegebene Anzahl von Zeichen aus dem Sendepuffer zur Peripherie an der unidirektionalen Schnittstelle HANDLE# >1 HRSTAT (Æ Kap. 5.10.4) liefert als Funktionswert den Status des Empfangspuffers von der Peripherie bzw. Fehler bei Empfang EMP=HRSTAT HSSTAT (Æ Kap. 5.10.2) liefert als Funktionswert den Status des letzten Sendeauftrags SEN=HSSTAT A>2 EWA 4NEB 812 6071>01 Befehle, Anweisungen und Funktionen a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a CP 521 BASIC Befehl, Funktion, Anweisung Bedeutung Beispiel IF>THEN>{ELSE} (Æ Kap. 5.8.15) erlaubt die Verzweigung in verschiede> ne Programmteile, abhßngig vom logi> schen Wahrheitsgehalt eines numeri> schen Ausdrucks IF A=100 THEN A=0 ELSE A=A+1 INIT (#) [integer] (Æ Kap. 5.8.3, 5.8.4) initialisiert die bidirektionale bzw. unidirektionale Schnittstelle mit den angegebenen Werten INIT 61241 INIT# 7001 INPUT [var] (Æ Kap. 5.8.16) Eingabe einer Zeichenkette oder Va> riablen INPUT A LET [var] = [expr] (Æ Kap. 5.8.17) weist den Wert eines beliebigen Aus> drucks einer Variablen oder Zeichen> kette zu LET A=50 LEN (Æ Kap. 5.14.2) Abfrage der Lßnge des in RAM abge> legten Programms PRINT LEN LIST {ln num{> ln num}} (Æ Kap. 5.6.3) gibt ein Programm am Bildschirm aus LIST LIST # {ln num{> ln num}} (Æ Kap. 5.6.4) gibt ein Programm Âber die unidirek> tionale Schnittstelle aus LIST # 50>100 MID (strvar, expr1,expr2) (Æ Kap. 5.12.3) als Funktionswert wird einer Stringva> riablen ein Teilstring der Lßnge ∫expr2∫ beginnend bei ∫expr1∫ zugewiesen §(0)=MID (§(1), 1,5) MTOP (Æ Kap. 5.14.2) Belegung des Speichers abfragen bzw. festlegen PRINT MTOP NEW (Æ Kap. 5.6.5) l‘scht alle Pufferinhalte sowie ein im RAM befindliches BASIC>Programm NEW ONERR [ln num] (Æ Kap. 5.8.18) Das Programm verzweigt zu einer ange> gebenen Zeilennummer, sobald der In> terpreter eine Fehlermeldung absetzen will ONERR 250 ONTIME [expr], [ln num] (Æ Kap. 5.8.19) Bildung eines Interrupts, wenn TIME mindestens gleich dem Argument ∫expr∫ ist und Sprung zu der Interrupt> Subroutine, die in der angegebenen Zeilennummer beginnt ONTIME 10, 1000 ON [expr] GOSUB [ln num] {, (ln num],...[ln num]} ON [expr] GOTO [ln num] {, [ln num],...[ln num]} (Æ Kap. 5.8.14) Der Wert des Ausdrucks hinter der An> weisung ON ist ein Index auf die Liste der Zeilennummern, mit der das Pro> gramm fortgesetzt wird (bedingte Verzweigung) ON A GOSUB 20, 60 EWA 4NEB 812 6071>01 ON A GOTO 100, 200, 300 A>3 CP 521 BASIC a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a Befehle, Anweisungen und Funktionen Befehl, Funktion, Anweisung Bedeutung Beispiel PH 0. PH 1. (Æ Kap. 5.8.24) gleiche Wirkung wie PRINT, jedoch Ausgabe der Werte im Hexadezimalfor> mat mit bzw. ohne UnterdrÂckung vor> angestellter Nullen PH 0. 1000 PH 0.# PH 1.# (Æ Kap. 5.8.24) Gleiche Wirkung wie PH0. UND PH1., je> doch Ausgabe der Werte an die unidirektionale Schnittstelle PH 0.# 500 POP [var] (Æ Kap. 5.8.26) weist die obersten Werte des Argu> mentstacks den Variablen zu, die hinter der Anweisung POP stehen POP A, B, C PRINT [Liste von Aus> drÂcken] (Æ Kap. 5.8.22) gibt Werte der Liste von AusdrÂcken Âber die bidirektionale Schnittstelle aus PRINT ∫CP 521 BASIC∫ PRINT # [Liste von Aus> drÂcken](Æ Kap. 5.8.23) gibt Werte der Liste von AusdrÂcken an die unidirektionale Schnittstelle aus PRINT # ∫CP 521 BASIC∫ PROG (Æ Kap. 5.7.3) speichert das aktuelle Programm vom RAM im Speichermodul ab PROG PROG 1 (Æ Kap. 5.7.4) wie PROG, speichert jedoch zusßtzlich die Angaben zur Baudrate ab. Im An> lauf startet das Programm in RAM, falls der Betriebsartenschalter auf RUN steht PROG 1 PROG 2 (Æ Kap. 5.7.4) wie PROG1, startet jedoch das Pro> gramm Nr. 1 vom Speichermodul PROG 2 PUSH [expr] (Æ Kap. 5.8.25) Die arithmetischen AusdrÂcke hinter der PUSH>Anweisung werden auf den Argumentstack geschrieben PUSH C, B, A RAM (Æ Kap. 5.7.1) wßhlt als aktuelles Programm das Programm aus dem RAM>Speicher RAM RDCLOCK [strvar] RDDATE [strvar] (Æ Kap. 5.13.2, 5.13.4) ∫strvar∫ enthßlt nach dem Aufruf die aktuelle Uhrzeit bzw. das aktuelle Datum. Als Funktionswert wird ein Fehler beim Lesen zurÂckgegeben X=RDCLOCK §(0) READ [var] {, [var], ...} (Æ Kap. 5.8.6) liest Daten aus einer DATA>Anweisungs> zeile und weist sie einer Variablen zu READ A REM (Æ Kap. 5.8.27) kennzeichnet Kommentarzeilen REM PRINT THE ANSWER REORG (Æ Kap. 5.7.6) entfernt durch ERASE gel‘schte Pro> gramme und reiht verbleibende Pro> gramme lÂckenlos aneinander REORG RESTORE (Æ Kap. 5.8.6) setzt internen Lesezeiger auf den An> fang der mit DATA definierten Daten zurÂck, soda˚ diese erneut eingelesen werden k‘nnen RESTORE A>4 EWA 4NEB 812 6071>01 Befehle, Anweisungen und Funktionen a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a CP 521 BASIC Befehl, Funktion, Anweisung Bedeutung Beispiel RETI (Æ Kap. 5.8.28) beendet Interrupt>Routinen RETI RETURN (Æ Kap. 5.8.12) Beenden eines Unterprogramms und RÂcksprung zum Hauptpropgramm RETURN ROM [integer] (Æ Kap. 5.7.1) wßhlt als aktuelles Programm das Pro> gramm mit der angegebenen Nr. im Speichermodul ROM 15 RROM [integer] (Æ Kap. 5.8.30) startet das Programm mit der angege> benen Nr. vom Speichermodul RROM 5 RSTAT (Æ Kap. 5.9.4) liefert einen numerischen Wert, der den Status des Empfangspuffers darstellt X=RSTAT IF X>0 THEN PRINT ∫Zeichen vorhanden∫ RUN (Æ Kap. 5.6.1) setzt alle Variablen gleich 0 und das Programm startet bei der 1. Zeilen> nummer RUN SEND [expr] (Æ Kap. 5.9.7) gibt die Sendedaten zum Abholen frei SEND 210 SETCLOCK [strvar] SETDATE [strvar] (Æ Kap. 5.13.1, 5.13.3) ∫strvar∫ enthßlt die Uhrzeit bzw. das Datum Als Funktionswert wird ein Fehlerstatus Âbergeben. X=SETCLOCK §(0) SGET [var1], ... ,[var4] (Æ Kap. 5.9.1) liest 4 Worte aus dem Peripheriebereich des CP 521 BASIC und weist sie den angegebenen Variablen zu. Die Werte wurden von der CPU Âbergeben. SGET W0, W1, W2, W3 SLEN strvar (Æ Kap. 5.12.5) liefert als Funktionswert die Lßnge des Strings ∫strvar∫ LNG=SLEN §(1) SPUT [expr1], ... ,[expr4] (Æ Kap. 5.9.2) weist den Wert der AusdrÂcke dem Peripheriebereich des CP 521 BASIC zu. Diese Werte k‘nnen in der CPU ausgelesen werden. SPUT W0, W1, W2, W3 SSTAT (Æ Kap. 5.9.3) liefert einen numerischen Wert, der den Status des Empfangspuffers darstellt X=SSTAT STOP (Æ Kap. 5.8.29) unterbricht die ProgrammausfÂhrung STOP STRING [expr] , [expr] (Æ Kap. 5.12.1) reserviert Speicherplatz fÂr Zeichenket> ten STRING 50, 10 EWA 4NEB 812 6071>01 A>5 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a Befehle, Anweisungen und Funktionen Befehl, Funktion, Anweisung A>6 CP 521 BASIC Bedeutung Beispiel T_ADJ [expr] (Æ Kap. 5.13.5) korrigiert die Systemzeit in regelmß˚igen Abstßnden T_ADJ 100 TIME (Æ Kap. 5.8.21) Zuweisung eines Wertes fÂr den Timer bzw. Abfrage des aktuellen Timewertes TIME=0 PRINT TIME XBY ([expr]) (Æ Kap. 5.14.1) Auslesen des Inhalts bestimmter Adres> sen A=XBY (0F000H) XFER (Æ Kap. 5.7.2) Âbertrßgt das aktuelle Programm zur Bearbeitung in den RAM>Speicher XFER ∫+∫ (Æ Kap. 5.12.2) Verkettung zweier Strings §(1)=§(0)+∫ENDE∫ EWA 4NEB 812 6071>01 a a a a a a aa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaaaaaa a CP 521 BASIC + ** PI COS TAN ATN EWA 4NEB 812 6071>01 Befehle, Anweisungen und Funktionen Vorhandene Funktionen und Operatoren Funktion / Operator Beschreibung SIN Trigonometrische Funktionen Beispiel Addition X=A+B > Substraktion PRINT A > B * Multiplikation A=B * X / Division X=5 / A Exponentialfunktion X=2**4 .AND. logisches Und X=26.AND.2 .OR. logisches Oder X=25.OR.0AH .XOR. logisches Exclusiv>Oder X=A.XOR.C NOT logische Negation X=NOT(X) ABS Absolutwert des Operanden X=ABS(B) INT ganzzahliger Anteil oder Zahl X=INT(X) SGN Vorzeichen (Signum der Zahl) X=SGN(X) SQR Wurzelfunktion X=SQR(C) RND Pseudozufallzahl zwischen 0 und 1 X=RND LOG natÂrlicher Logarithmus X=LOG(PI) EXP e>Funktion X=EXP(X) Konstante s=3,14 ... X=PI**PI Sinus X=SIN (PI / 4) Cosinus X=COS (PI) Tangens X=TAN (A) Arcustangens X= ATN (C) A>7 CP 521 BASIC Programme EWA 4NEB 812 6040>01a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aaaaaa a Stichwortverzeichnis EWA 4NEB 812 6071>01 CP 521 BASIC Programme EWA 4NEB 812 6040>01a CP 521 BASIC Stichwortverzeichnis Stichwortverzeichnis A BASIC>Programm 1>1 6>5, 6>16, > l‘schen 6>25 > Programmstruktur 8>3 Adre˚bereich 4>6 > sichern 5>10 Adressierung 4>6 > starten 6>26 > Âbertragen 5>30, 5>31 > unterbrechen 5>41 Abschlu˚meldung AG > programmieren 8>7 Alarm 6>3, 8>12 5>27, 5>34 Batterie Alternativverzweigung 5>54 > Ausfall Anlaufverhalten 4>3, 5>2, 5>3 > Puffer 2>4, 2>5 Anschlu˚plan 3>6 > eberprÂfung 4>4 > Wechsel 2>4 > TTY>Schnittstelle 3>9 > 3>11 > V.24>Schnittstelle 3>6 > 3>8 Anweisung Betriebsartenschalter Argumentstack 2>4 AusdrÂcke > relational Auto>Baud>Routine 4>5 Bidirektionale Schnittstelle 5>22, 5>74, > Empfangen von Daten 5>90 5>76 > Datenausgabe 5>67 > Senden von Daten 5>90, 5>91 Arrays (Felder) > dimensionieren 5>2, 5>33, 5>37, 5>39 5>17, 5>35 Anzeige > LED Baudrate 4>4 5>44 Bidirektionale TTY>Schnittstelle 2>3 5>21 > Daten empfangen 5>21 > Daten senden 6>38 5>2, 5>34, 6>2 > parametrieren 5>37 6>39 Bidirektionale V.24>Schnittstelle 2>3 > bedienbare Steuersignale 6>35 B BASIC>Befehl > zusßtzlich BASIC>Interpreter > Fehlermeldung > St‘rverhalten 5>23, 5>28 > Daten empfangen 6>39 5>82 > Daten senden 6>38 1>1, 5>1, 5>17 > parametrieren 5>126, 7>3 BUSY>Signal 7>2 1>1 C > ausgeben 5>25 COM>Software > fortsetzen 5>24, 5>52, BASIC>Programm > laden EWA 4NEB 812 6071>01 5>37 5>40, 6>40 > Maske INHALT 5>5 5>16 5>53 > Maske LADEN 5>13 5>12 > Maske SICHERN 5>11 1 Stichwortverzeichnis CP 521 BASIC COM>Software Daten > Maske TERMINAL> EMULATION 5>9 > eingeben 5>56 > empfangen 6>38, 6>39 > Maske VOREINSTELLUNG 5>7 > freigeben 5>89 > starten 5>5 > lesen aus dem PAA 5>85 > Startmaske 5>6 > Typ 5>87 > Âbertragen 5>5 > ebertragung CP 521 BASIC > programmieren CP>Quittung > 1. Datenblock 6>12 > 2. Datenblock 6>14 6>21 > Koordinierungs> 6>10 6>11 Datenausgabe > bidirektionale Schnitt> stelle 5>67 5>86 > unidirektionale Schnitt> stelle 6>15, 7>1 > 1. Datenblock senden 6>11 > 2. Datenblock senden 6>13 > (43.) letzten Datenblock senden 6>38 > 6>40 > CPU>Auftrag > an das PAE > (43.) letzter Datenblock CPU>Auftrag 6>34, 8>3 6>3, 6>4 > Empfangsauftrag information 6>1 Daten senden 5>72 Datenaustausch 4>2, 6>1 > Direktzugriff 6>28 Datenblock 6>3, 6>4, 6>21 > Nummer 6>3, 6>4, 6>15 > BASIC>Programm starten 6>27 > Daten senden 6>11 > Datentransfer koor> 6>12, 6>21 Datenformat 5>18, 5>38, 5>40, 5>69 > Ganzzahldarstellung 5>18 6>9, 6>20 > Gleitpunktdarstellung 5>18 > Telegramm senden 6>3 > Konstante 5>18 > Uhr stellen 6>33 dinieren CPU>Quittung > 1. Datenblock > empfangen vom CP 6>18 6>22 > senden an CP 6>6 empfangen Datentransfer 4>1, 6>1 > 1. Datenblock > 25. (letzen) Datenblock empfangen Datentelegramm 6>5 6>24 empfangen 6>21 > 1. Datenblock senden 6>11 D > 2. Datenblock senden 6>13 D>Sub>Buchse > 25. (letzten) Datenblock > Pin>Belegung 2 3>5 empfangen 6>23 EWA 4NEB 812 6071>01 CP 521 BASIC Stichwortverzeichnis Datentransfer > (43.) letzten Datenblock senden 6>15 Empfangsauftrag 6>4 Empfangsfach 4>1, 6>3, 6>4 Empfangs>FB > bidirektionale Schnitt> stelle 6>34 > CP 521 BASIC>Peripherie> gerßt > FB 3 8>20 > FB 201 ∫Empfang∫ 8>33 Empfangspuffer > HANDLE 6>34 5>83, 5>88 4>1, 5>84, > CPU>CP 521 BASIC 6>3 > Daten empfangen 6>20 5>95 > 5>97, > Daten senden 6>6 6>38, 6>39 > Fehlermeldung 6>13, 6>17 > koordinieren 5>90, Endezeichen 6>6, 6>9, 6>9, 6>16, 6>17 6>10, 6>17, > senden mit Endezeichen 6>20 F 6>16 Fehlerarten > unidirektionale > Betriebsart BASIC Schnittstelle Datum 7>5 Fehlermeldung > BASIC>Interpreter 6>31 Default>Einstellung 5>33, 5>126, 7>3 > Schnittstelle 5>37, 5>38 > Betriebsart BASIC > Uhr 6>30 > Datentransfer 6>13, 6>17 5>98 > Uhr 4>4 Dyadischer Operator FB 1 7>7 8>13 E FB 2 8>16 Echtzeituhr FB 3 8>20 > aktuelle Uhrzeit anzeigen 5>120 FB 200 ∫Senden∫ 8>23 > Datum anzeigen FB 201 ∫Empfang∫ 8>33 5>122 > Datum stellen 5>121 FB ∫IMPULS∫ 8>11 > Default>Wert 4>4 FB ∫VERTEILE∫ 8>12 Formatanweisungen 5>18 2>3, 4>1 Funktionsbaustein > Fehlermeldung > integriert > stellen 6>33 > FB ∫IMPULS∫ 8>11 > Test 4>4 > FB ∫VERTEILE∫ 8>12 > Uhrzeitkorrektur 5>123 Empfangen 6>4, 6>18 G Ganzzahldarstellung 5>18 6>39, 5>90 Gleitpunktdarstellung 5>18 > bidirektionale Schnitt> stelle > Daten 6>38, 6>39 > Telegramm 6>4, 6>18 EWA 4NEB 812 6071>01 3 Stichwortverzeichnis CP 521 BASIC H Maske > LADEN 5>13 4>1, 5>84, > SICHERN 5>11 5>90, > Startmaske 5>6 5>95 > 5>97, > TERMINALEMULATION 5>9 HANDLE > Empfangspuffer > VOREINSTELLUNG 6>38, 6>39 > Sendepuffer 4>1, 5>83, Montage 5>7 3>1 5>90, 5>91, Handshake 5>93, O 6>38 > 6>40 Operator 5>38, 5>40 5>19 > dyadisch 5>98 5>100 > OFF>Betrieb 6>36 > logisch > ON>Betrieb 6>36 > Rangfolge 5>106 > unßr 5>101, 5>103, I 5>104 Inbetriebnahme 6>2 Interrupt 5>62 P > beenden 5>79 PAAÆProze˚abbild der > l‘schen 5>36 > Routine 5>62, 5>79 Ausgßnge PAEÆProze˚abbild der Eingßnge K Proze˚abbild der Ausgßnge Kommando>Modus 5>3, 5>4 Kommunikations>Schnittstellen 6>1 Koordinierungsauftrag 6>9, 6>17, 6>20 Koordinierungsdaten 6>10 Konstante 5>18 > Daten lesen 4>6 5>85 Proze˚abbild der Eingßnge 4>6 > Daten ausgeben 5>86 Parametrierung > bidirektionale Schnitt> stelle 5>37, 5>38 > bidirektionale TTY>Schnitt> L stelle LED>Anzeige 2>4 5>37 > bidirektionale V.24> Schnittstelle 5>37 Leerschritt>Taste (Space) 5>2, 5>34 LeitungsfÂhrung 3>3 > Schnittstelle 5>37 Logarithmusfunktion 5>103 > serielle Schnittstelle 5>90, 6>2 Logischer Operator 5>100 > unidirektionale V.24> Schnittstelle M Paritßt 5>39, 5>40 5>37, 5>40 Maske > INHALT 4 5>16 EWA 4NEB 812 6071>01 CP 521 BASIC Peripheriegerßte > Daten empfangen > m‘gliche Pin>Belegung > D>Sub>Buchse ∫PROG∫>Befehl Stichwortverzeichnis 6>34, 6>38, S 6>40 Schnittstelle 5>33 4>3 > Kommunikations> 6>1 3>5 > Parameter 5>3, 8>1 Programmablauf > abbrechen > Parametrierung > anhalten 5>80 5>47 > fortsetzen 5>24 > starten 5>37, 5>90, 6>2 > seriell 1>1, 2>3, 6>1 > TTY 1>1, 2>3, 3>5, 5>23 > beenden 5>2, 5>3, 5>37 > 5>40 3>5 5>31 > 5>33 Programm 4>2 > initialisieren 6>39 6>38 > V.24 1>1, 2>3, 3>5, 5>2, 6>38 Sende>FB 5>81 > FB 1 8>13 Progammier>Baustein 8>7, 8>11 > FB 2 8>16 Programmierung 5>4 > FB 200 ∫Senden∫ 8>23 > AG 8>7 Sendeauftrag 6>3 > CP 521 BASIC 8>3 Sendefach 4>1, 6>3, 6>4 5>14 Senden > Speichermodule Programmschleifen > abbrechen 5>45, 5>46, > bidirektionale Schnitt> 5>48 stelle 6>38 5>36 > Daten 6>34, 8>3 > Telegramm 6>3, 6>5, 6>9 8>9 > unidirektionale V.24> 6>38 > 6>40 Programmstruktur > BASIC>Programm > Programmier>Baustein Programmzeile 5>17 Proze˚alarm 6>3, 8>12 Pufferbatterie 2>4, 2>5 > bidirektionale Schnittstelle5>90, 5>91 Pufferbefehl 5>83 > unidirektionale V.24> Schnittstelle Schnittstelle R Relationaler Ausdruck Sendepuffer 5>107 6>40 Senden von Daten > HANDLE 5>90, 5>91 5>83, 5>89, 4>1, 5>83, RESET 5>2, 5>34 5>90, 5>91, RUN>Modus 5>4 5>93 Serielle Schnittstelle > Parametrierung 1>1, 2>3, 6>1 5>90, 6>2 Spannungsschnittstelle > V.24 EWA 4NEB 812 6071>01 1>1 5 Stichwortverzeichnis CP 521 BASIC Speicherbefehl 5>28 Speichermodul 2>2, 2>5, 5>33 > senden 6>3, 6>5, 6>9 > Dateninhalt anzeigen 5>15 > senden mit Endezeichen 6>16 > Programmierung 5>14 > ebertragung 6>1 5>22 Terminalemulation 5>8 Timer Stack Telegramm > Argumentstack 5>22 > Aufbau 5>22 > abschalten 5>65 > Steuerstack 5>22 > freigeben 5>64 > zurÂcksetzen 5>36 > Wert auslesen 5>66 Status Trigonometrische Funktion 5>104 TTY>Schnittstelle 1>1, 3>5, 6>38 > Byte 8>10 > letzter Empfangsauftrag 5>87, 5>95 > Anschlu˚plan 3>9 > 3>11 > letzter Sendeauftrag 5>86, 5>92 > bidirektional 2>3 Steckplatz 3>1, 4>6 TTY>Stromschnittstelle 1>1 Steuersignale > bidirektionale V.24> Schnittstelle Steuerstack U 6>35 > Batterie 4>4 ebertragung St‘rverhalten > BASIC>Interpreter eberprÂfung 5>22 > Telegramm 7>2 String 6>1 Uhr > Lßnge 5>114 > aktuelle Uhrzeit anzeigen 5>120, 6>32 > manipulieren 5>114 > Datum anzeigen 5>122 > Teilstring 5>112, 5>113 > Datum stellen 5>121 > Variable 5>108, 5>109 > Default>Einstellung 6>30, 4>4 > verketten 5>111 > Default>Wert 4>4, 6>30 > Fehlermeldung 4>4 1>1 > integriert 2>3, 4>1 5>50, 5>74, > Status 6>29 5>77 > stellen 6>33 Stromschnittstelle > TTY Subroutine Systemsteuerwert 5>21, 5>125 > Test Uhrzeit T Technische Daten 2>1 Telegramm 6>3, 6>4 > empfangen 6>4, 6>18, 4>4 6>31 > stellen 5>119 > Korrektur 5>123 Unßrer Operator 5>101, 5>103, 5>104 6>20 > Lßnge 6 6>9, 6>17 EWA 4NEB 812 6071>01 CP 521 BASIC Stichwortverzeichnis Unidirektionale V.24>Schnitt> stelle > Datenausgabe 2>3 5>90, 5>91, 6>40, 5>72 V V.24>Schnittstelle 1>1, 2>3, 3>5, 5>2, 6>38 > Anschlu˚plan 3>6 > 3>8 > birektional 2>3 > unidirektional 1>1, 2>3 V.24>Spannungsschnittstelle 1>1 Variable 5>19, 5>56, 5>57, 5>76 > l‘schen 5>35 > String 5>108, 5>109 > Wert zuweisen 5>59 W WagenrÂcklauf 5>69 Z Zeichenkette EWA 4NEB 812 6071>01 5>108 7 CP 521 BASIC Programme EWA 4NEB 812 6040>01a Siemens AG AUT E1114B Postfach 1963 Werner>von>Siemens>Str. 50 Vorschlßge Korrekturen fÂr Druckschrift oder Handbuch: D>92209 Amberg Titel: CP 521 BASIC Absender: Bestell>Nr.: 6ES5 998>0UW11 Name Ausgabe: Firma/Dienststelle 1 Sollten Sie beim Lesen dieser Unterlage auf Druckfehler gesto˚en sein, bitten wir Sie, uns diese mit diesem Vordruck mitzuteilen. Anschrift Ebenso sind wir fÂr Anregungen, Hinweise und Verbesserungsvorschlßge dankbar. Telefon Vorschlßge und/oder Korrekturen: EWA 4NEB 812 6071>01 / CP 521 BASIC Programme EWA 4NEB 812 6040>01a