Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

z1013:handbuecher:handbuch_2a [2013/06/25 11:54] – angelegt volkerpz1013:handbuecher:handbuch_2a [2013/06/25 12:27] (aktuell) – [Handbuch Teil 2] volkerp
Zeile 11: Zeile 11:
  
  
-5.     [[#|Software des MRB Z1013]]\\ +5.     [[#software_des_mrb_z1013|Software des MRB Z1013]]\\ 
-5.1.   [[#|Monitor]]\\ +5.1.   [[#monitor|Monitor]]\\ 
-5.1.1. [[#|Leistungen des Monitors]]\\ +5.1.1. [[#leistungen_des_monitors|Leistungen des Monitors]]\\ 
-5.1.2. [[#|Erweiterungen des Monitors]]\\ +5.1.2. [[#erweiterungen_des_monitors|Erweiterungen des Monitors]]\\ 
-5.2.   [[#|Aufbau einer Programmbibliothek]]\\ +5.2.   [[#aufbau_einer_programmbibliothek|Aufbau einer Programmbibliothek]]\\ 
-5.3.   [[#|BASIC]]\\ +5.3.   [[#basic|BASIC]]\\ 
-5.3.1. [[#|Programmiersprache BASIC]]\\ +5.3.1. [[#programmiersprache_basic|Programmiersprache BASIC]]\\ 
-5.3.2. [[#|BASIC-Interpreter]]\\ +5.3.2. [[#basic-interpreter|BASIC-Interpreter]]\\ 
-5.3.3. [[#|Laden des BASIC-Interpreters]]\\ +5.3.3. [[#laden_des_basic-interpreters|Laden des BASIC-Interpreters]]\\ 
-5.3.4. [[#|Arbeit mit dem BASIC-Interpreter]]\\ +5.3.4. [[#arbeit_mit_dem_basic-interpreter|Arbeit mit dem BASIC-Interpreter]]\\ 
-5.3.5. [[#|Kommandos des BASIC-Interpreters]]\\ +5.3.5. [[#kommandos_des_basic-interpreters|Kommandos des BASIC-Interpreters]]\\ 
-5.3.6. [[#|Programmierbare Befehle bzw. Anweisungen]]\\ +5.3.6. [[#programmierbare_befehle_bzw._anweisungen|Programmierbare Befehle bzw. Anweisungen]]\\ 
-5.4.   [[#|Hinweise für die Erarbeitung von Anwenderprogrammen]]\\ +5.4.   [[#hinweise_für_die_erarbeitung_von_anwenderprogrammen|Hinweise für die Erarbeitung von Anwenderprogrammen]]\\ 
-5.4.1. [[#|Allgemeine Hinweise]]\\ +5.4.1. [[#allgemeine_hinweise|Allgemeine Hinweise]]\\ 
-5.4.2. [[#|Problemanalyse]]\\ +5.4.2. [[#problemanalyse|Problemanalyse]]\\ 
-5.4.3. [[#|Erarbeitung der Rechenanweisung (Algorithmus)]]\\ +5.4.3. [[#erarbeitung_der_rechenanweisung_(algorithmus)|Erarbeitung der Rechenanweisung (Algorithmus)]]\\ 
-5.4.4. [[#|Programmierung]]\\ +5.4.4. [[#programmierung|Programmierung]]\\ 
-6.     [[#|Erweiterungen des MRB Z1013]]\\ +6.     [[#erweiterungen_des_mrb_z1013|Erweiterungen des MRB Z1013]]\\ 
-6.1.   [[#|Allgemeine Hinweise]]\\ +6.1.   [[#allgemeine_hinweise|Allgemeine Hinweise]]\\ 
-6.2.   [[#|Speichererweiterungen]]\\ +6.2.   [[#speichererweiterungen|Speichererweiterungen]]\\ 
-6.3.   [[#|Anschluss von Steüreinheiten]]\\+6.3.   [[#anschluss_von_steuereinheiten|Anschluss von Steuereinheiten]]\\
  
  
Zeile 52: Zeile 52:
 Monitorprogramm, das in einem nichtflüchtigen Speicher stehen muss, sind  Monitorprogramm, das in einem nichtflüchtigen Speicher stehen muss, sind 
 keinerlei Aktionen der CPU wie Tastaturabfrage oder Ausgaben möglich. Der  keinerlei Aktionen der CPU wie Tastaturabfrage oder Ausgaben möglich. Der 
-Monitor des MRB Z1013 umfasst eine Grösse von 2K Byte und belegt den +Monitor des MRB Z1013 umfasst eine Größe von 2K Byte und belegt den 
 Adressbereich von F000H bis F700H. Mit diesem Monitor kann der Benutzer  Adressbereich von F000H bis F700H. Mit diesem Monitor kann der Benutzer 
 Speicherbereiche ansehen, eigene Programme von Hand oder von Magnetband  Speicherbereiche ansehen, eigene Programme von Hand oder von Magnetband 
Zeile 62: Zeile 62:
 Kommandos festgelegt, die bereits im Abschnitt 1.3. vorgestellt wurden. Kommandos festgelegt, die bereits im Abschnitt 1.3. vorgestellt wurden.
  
-Ausser dem unmittelbaren Aufruf bestimmter Monitorleistungen durch Kommandos, +Außer dem unmittelbaren Aufruf bestimmter Monitorleistungen durch Kommandos, 
 auf die hier nicht mehr eingegangen werden soll, enthält der Monitor noch eine  auf die hier nicht mehr eingegangen werden soll, enthält der Monitor noch eine 
 Reihe weiterer, häufig verwendeter Programmteile. Reihe weiterer, häufig verwendeter Programmteile.
  
-Im folgenden werden diese Monitorfunktionen beschrieben. Dazu wird ausserdem die +Im folgenden werden diese Monitorfunktionen beschrieben. Dazu wird außerdem die 
 Adresse, unter der dieses Unterprogramm aufrufbar ist, und ein Datenbyte (DB),  Adresse, unter der dieses Unterprogramm aufrufbar ist, und ein Datenbyte (DB), 
 über dessen Verwendung weiter unten noch etwas gesagt wird, angegeben. In  über dessen Verwendung weiter unten noch etwas gesagt wird, angegeben. In 
Zeile 97: Zeile 97:
  
 Ausgabe des im A-Register stehenden Zeichens über den Videotreiber. 4  Ausgabe des im A-Register stehenden Zeichens über den Videotreiber. 4 
-Steürzeichen werden vom Z1013-Video-Treiber speziell verarbeitet:+Steuerzeichen werden vom Z1013-Video-Treiber speziell verarbeitet:
  
 08H - Kursor links\\ 08H - Kursor links\\
Zeile 109: Zeile 109:
 Mit dieser Routine wird die Eingabe eines Zeichens von der Tastatur in das A- Mit dieser Routine wird die Eingabe eines Zeichens von der Tastatur in das A-
 Register realisiert. Dabei wird die Routine INKEY genutzt. Die Register BC, DE  Register realisiert. Dabei wird die Routine INKEY genutzt. Die Register BC, DE 
-und HL werden gerettet. Der Rücksprurng aus INCH erfolgt nur bei (A) ungleich +und HL werden gerettet. Der Rücksprung aus INCH erfolgt nur bei (A) ungleich 
 0. Ansonsten befindet sich der Monitor in einer Eingabewarteschleife. 0. Ansonsten befindet sich der Monitor in einer Eingabewarteschleife.
  
Zeile 117: Zeile 117:
 Die der Datenbytedefinition (DB 2) folgende Bytekette wird ausgegeben, bis das  Die der Datenbytedefinition (DB 2) folgende Bytekette wird ausgegeben, bis das 
 7. Bit gesetzt ist. Graphikzeichen (80H..FFH) sind also mit dieser Routine nicht  7. Bit gesetzt ist. Graphikzeichen (80H..FFH) sind also mit dieser Routine nicht 
-ausgebbar. Für diesen Zweck ist ein Unterprogramm mit OUTCH aufzubaün.+ausgebbar. Für diesen Zweck ist ein Unterprogramm mit OUTCH aufzubauen.
  
 **INHEX (Konvertierung einer max. 4-steillgen hexadezimalen Zeichenkette in das interne Format)\\ **INHEX (Konvertierung einer max. 4-steillgen hexadezimalen Zeichenkette in das interne Format)\\
Zeile 126: Zeile 126:
 im DE-Register übergeben werden. Führende Leerzeichen werden überlesen. Das  im DE-Register übergeben werden. Führende Leerzeichen werden überlesen. Das 
 einer max. 4-stelligen hexadezimalen Zeichenkette folgende Leerzeichen bzw.  einer max. 4-stelligen hexadezimalen Zeichenkette folgende Leerzeichen bzw. 
-jedes andere Zeichen, welches verschiede von den Hexa-Zeichen ist, wird als +jedes andere Zeichen, welches verschieden von den Hexa-Zeichen ist, wird als 
 Trennzeichen interpretiert. Der konvertierte Wert steht im HL-Register. Bei  Trennzeichen interpretiert. Der konvertierte Wert steht im HL-Register. Bei 
-längeren Zeichenkettern erfolgt keine Fehlerausschrift, sondern im HL-Register +längeren Zeichenketten erfolgt keine Fehlerausschrift, sondern im HL-Register 
 befindet sich der gewandelte Wert der letzten 4 Hexa-Zeichen. befindet sich der gewandelte Wert der letzten 4 Hexa-Zeichen.
  
Zeile 228: Zeile 228:
 Adr. F2B3H   DB 05H** Adr. F2B3H   DB 05H**
  
-Ausgabe eines Promptsymbols und anschliessende Eingabe einer Zeichenkette bis +Ausgabe eines Promptsymbols und anschließende Eingabe einer Zeichenkette bis 
 Enter (0DH). die Startadresse für die Eingabezeile wird in SOIL  Enter (0DH). die Startadresse für die Eingabezeile wird in SOIL 
 zwischengespeichert und kann nach Rückkehr für die Auswertung, z. B. für  zwischengespeichert und kann nach Rückkehr für die Auswertung, z. B. für 
Zeile 240: Zeile 240:
 Ausgabe des A-Registers hexadezimal. Es werden pro Byte zwei Zeichen ausgegeben. Ausgabe des A-Registers hexadezimal. Es werden pro Byte zwei Zeichen ausgegeben.
  
-**OUTHL (OUT A-Register hexadeziamal)\\+**OUTHL (OUT A-Register hexadezimal)\\
 Adr. F31AH   DB 07H** Adr. F31AH   DB 07H**
  
Zeile 248: Zeile 248:
 Adr. F369H   DB 08H** Adr. F369H   DB 08H**
  
-Entspricht dem S-Kommando des Monitors, wobei die Anfangsadrese und die +Entspricht dem S-Kommando des Monitors, wobei die Anfangsadresse und die 
 Endadresse vorher in ARG1 und ARG2 einzutragen sind. Endadresse vorher in ARG1 und ARG2 einzutragen sind.
  
Zeile 273: Zeile 273:
  
 Entsprechend der Adresse im HL-Hegister werden 2 Byte = 4 Zeichen (erst High- Entsprechend der Adresse im HL-Hegister werden 2 Byte = 4 Zeichen (erst High-
-Teil, dann Low-Teil) und anschliessend ein Leerzeichen ausgegeben.+Teil, dann Low-Teil) und anschließend ein Leerzeichen ausgegeben.
  
 **OUTDP (Ausgabe eines Doppelpunktes (:) und weiter wie OTHLS)\\ **OUTDP (Ausgabe eines Doppelpunktes (:) und weiter wie OTHLS)\\
Zeile 283: Zeile 283:
 Adr. F5CFH     DB 0EH** Adr. F5CFH     DB 0EH**
  
-Ausgabe eines Leerzeiehens+Ausgabe eines Leerzeichens
  
 **TRANS (Transfer)\\ **TRANS (Transfer)\\
Zeile 294: Zeile 294:
 Adr. F2B9H      DB 10H** Adr. F2B9H      DB 10H**
  
-Es wird die Eingabe einer Zeichenkette abgefordert, die mit Enter abzuschliessen +Es wird die Eingabe einer Zeichenkette abgefordert, die mit Enter abzuschließen 
 ist. Wie in INLIN steht in SOIL die Anfangsadresse der Zeichenkette für eine  ist. Wie in INLIN steht in SOIL die Anfangsadresse der Zeichenkette für eine 
-anschliessende Auswertung. Im INSTR wird kein führendes Promptsymbol +anschließende Auswertung. Im INSTR wird kein führendes Promptsymbol 
 ausgegeben. ausgegeben.
  
Zeile 323: Zeile 323:
 Programmierung sehr wesentlich und verkürzt den sonst erforderlichen  Programmierung sehr wesentlich und verkürzt den sonst erforderlichen 
 Programmumfang. Der Anwender muss nur wissen, wie diese Programmteile aufgerufen  Programmumfang. Der Anwender muss nur wissen, wie diese Programmteile aufgerufen 
-werden und auf welche Art die übermittlung der Parameter vorgenommen wird.+werden und auf welche Art die Übermittlung der Parameter vorgenommen wird.
  
 Diese aufgeführten Monitorfunktionen können ohne Einschränkungen aus  Diese aufgeführten Monitorfunktionen können ohne Einschränkungen aus 
Zeile 330: Zeile 330:
 Ihr Aufruf kann erfolgen in der Art: 'CALL adr', wobei als Adresse die  Ihr Aufruf kann erfolgen in der Art: 'CALL adr', wobei als Adresse die 
 Aufrufadresse der Monitorroutine angegeben wird. Alle Routinen werden mit dem  Aufrufadresse der Monitorroutine angegeben wird. Alle Routinen werden mit dem 
-Befehl 'RET' beendet, so dass die Programnfortsetzung im aufrufenden Programm  +Befehl 'RET' beendet, so dass die Programmfortsetzung im aufrufenden Programm  
-gewärleistet ist.+gewährleistet ist.
  
 In Anlage 4 sind wichtige Arbeitszellen des Monitors angegeben. In Anlage 4 sind wichtige Arbeitszellen des Monitors angegeben.
  
-Allerdings muss bei einer eventuellen änderung des Monitors, die zwangsläufig +Allerdings muss bei einer eventuellen Änderung des Monitors, die zwangsläufig 
 zu neuen Adressen der Rufe führt, in allen Nutzerprogrammen, die diese Aufrufe  zu neuen Adressen der Rufe führt, in allen Nutzerprogrammen, die diese Aufrufe 
 benutzen, diese neuen Adressen in den 'CALL'-Befehlen geändert werden. benutzen, diese neuen Adressen in den 'CALL'-Befehlen geändert werden.
  
 Deshalb wurde noch eine andere Art des Aufrufs bereitgestellt, die unabhängig  Deshalb wurde noch eine andere Art des Aufrufs bereitgestellt, die unabhängig 
-von änderungen im Monitor stets den richtigen Anschluss garantiert  Dazu wird +von Änderungen im Monitor stets den richtigen Anschluss garantiert  Dazu wird 
 anstelle des Aufrufes mit dem 'CALL'-Befehl eine der Restart-Adressen verwendet.  anstelle des Aufrufes mit dem 'CALL'-Befehl eine der Restart-Adressen verwendet. 
 Beim Abarbeiten des Restart-Befehls 'RST 20' (E7H) wird ein 'CALL'-Befehl zur  Beim Abarbeiten des Restart-Befehls 'RST 20' (E7H) wird ein 'CALL'-Befehl zur 
Zeile 356: Zeile 356:
 Ein einfaches Beispiel soll das verdeutlichen: Ein einfaches Beispiel soll das verdeutlichen:
  
-In einem Programmstück so zürst der Bildschirm gelöscht und anschliessend +In einem Programmstück so zuerst der Bildschirm gelöscht und anschließend 
 eine beliebige Anzahl von Zeichen eingegeben werden. Diese Zeichen sollen sofort  eine beliebige Anzahl von Zeichen eingegeben werden. Diese Zeichen sollen sofort 
 wieder auf dem Bildschirm erscheinen, die Betätigung der Entertaste beendet das  wieder auf dem Bildschirm erscheinen, die Betätigung der Entertaste beendet das 
Zeile 373: Zeile 373:
                OUTCH: EQU 0F21B  ; AUSGABE ZEICHEN                OUTCH: EQU 0F21B  ; AUSGABE ZEICHEN
                INCH:  EQU 0F20C  ; EINGABE ZEICHEN                INCH:  EQU 0F20C  ; EINGABE ZEICHEN
-1000 3E 0C     BSP:   LD  A,0CH  ; LöSCHEN BILD-+1000 3E 0C     BSP:   LD  A,0CH  ; LOESCHEN BILD-
                                    SCHIRM                                    SCHIRM
 1002 CD 1B F2         CALL OUTCH ; AUSGABE 1002 CD 1B F2         CALL OUTCH ; AUSGABE
Zeile 387: Zeile 387:
                OUTCH:  EQU 0     ; AUSGABE ZEICHEN                OUTCH:  EQU 0     ; AUSGABE ZEICHEN
                INCH:   EQU 1     ; EINGABE ZEICHEN                INCH:   EQU 1     ; EINGABE ZEICHEN
-1000 3E 0C     BSP2:   LD  A,0CH ; LöSCHEN BILD+1000 3E 0C     BSP2:   LD  A,0CH ; LOESCHEN BILD
                                    SCHIRM                                    SCHIRM
 1002 E7                RST 20H   ; RUF 1002 E7                RST 20H   ; RUF
Zeile 404: Zeile 404:
 im Monitor zeigt, durch einen Sprungbefehl in eine eigene Auswerteroutine  im Monitor zeigt, durch einen Sprungbefehl in eine eigene Auswerteroutine 
 ersetzt werden. Bleibt die Zuordnung der Auswahlinformationen erhalten, so sind  ersetzt werden. Bleibt die Zuordnung der Auswahlinformationen erhalten, so sind 
-auch in diesem Fall keinerlei änderungen in den eigenen Programmen notwendig +auch in diesem Fall keinerlei Änderungen in den eigenen Programmen notwendig 
 die den Aufruf über den 'RST'-Befehl verwenden. die den Aufruf über den 'RST'-Befehl verwenden.
  
-Damit ist es z. B. möglich, eigene Ein- and Ausgaberoutinen, mit denen die +Damit ist es z. B. möglich, eigene Ein- und Ausgaberoutinen, mit denen die 
 Bedienung anderer Geräte realisiert wird, zu verwenden und damit die Ein- und  Bedienung anderer Geräte realisiert wird, zu verwenden und damit die Ein- und 
 Ausgaben über andere Geräte zu erreichen. Ausgaben über andere Geräte zu erreichen.
  
-Abschliessend sei noch bemerkt, dass ein komplettes Assemblerlisting des +Abschließend sei noch bemerkt, dass ein komplettes Assemblerlisting des 
 Monitors mit Hilfe des im Anhang abgedruckten Reassemblers durch Reassemblieren  Monitors mit Hilfe des im Anhang abgedruckten Reassemblers durch Reassemblieren 
 des ROM-Inhaltes erzeugt werden kann. des ROM-Inhaltes erzeugt werden kann.
Zeile 456: Zeile 456:
 meist sehr mühsam eingegebene Programmteile nach dem Ausschalten wieder  meist sehr mühsam eingegebene Programmteile nach dem Ausschalten wieder 
 verloren. Aus diesem Grund ist es notwendig, sich eine Programmbibliothek auf  verloren. Aus diesem Grund ist es notwendig, sich eine Programmbibliothek auf 
-einem ex ternen Datenträger anzulegen, in die jedes neue Programm aufgenommen +einem externen Datenträger anzulegen, in die jedes neue Programm aufgenommen 
 wird, um es für spätere Nutzung immer wieder zur Verfügung zu haben. Im  wird, um es für spätere Nutzung immer wieder zur Verfügung zu haben. Im 
 Monitor sind zu diesem Zweck die Kommandos "L" (load from cassette) und "S"  Monitor sind zu diesem Zweck die Kommandos "L" (load from cassette) und "S" 
Zeile 463: Zeile 463:
 laden. laden.
  
-Die Eingabe der Programme erfolgt beim erstenmal meist mittels der Tastatur. Im +Die Eingabe der Programme erfolgt beim ersten mal meist mittels der Tastatur. Im 
 allgemeinen wird die hexadezimale Ziffernfolge, die in einem vorgegebenen  allgemeinen wird die hexadezimale Ziffernfolge, die in einem vorgegebenen 
 Speicherbereich eingetastet werden soll, einer Liste entnommen (z. B. die in  Speicherbereich eingetastet werden soll, einer Liste entnommen (z. B. die in 
 diesem Buch enthaltenen Testbeispiele). diesem Buch enthaltenen Testbeispiele).
  
-Diese Listen entstanden entweder als Resultat eines übersetzungslaufes auf  +Diese Listen entstanden entweder als Resultat eines Übersetzungslaufes auf  
-einer EDV-Anlage oder wurden durch manülle übersetzung selbst gefertigt. In +einer EDV-Anlage oder wurden durch manuelle Übersetzung selbst gefertigt. In 
 jedem Fall wird es sich um ein in sich abgeschlossenes Programmteil handeln.  jedem Fall wird es sich um ein in sich abgeschlossenes Programmteil handeln. 
 Eine Programmänderung oder -erweiterung während der Eingabe wird kaum zu  Eine Programmänderung oder -erweiterung während der Eingabe wird kaum zu 
Zeile 477: Zeile 477:
 in der Art, wie er auch mit den D-Kommando auf dem Bildschirm zu sehen ist. in der Art, wie er auch mit den D-Kommando auf dem Bildschirm zu sehen ist.
  
-Damit können recht einfach Liste und tatsächlicher Speicher inhalt miteinander +Damit können recht einfach Liste und tatsächlicher Speicherinhalt miteinander 
 verglichen werden. Zur Eingabe wird das M-Kommando des Monitors verwendet. verglichen werden. Zur Eingabe wird das M-Kommando des Monitors verwendet.
  
 Mit dem Parameter wird die Anfangsadresse des Programmes an gegeben. Es ist  Mit dem Parameter wird die Anfangsadresse des Programmes an gegeben. Es ist 
-zweckmässig, vorher die Tastatur mit dem H-Kommando in die hexadezimale Eingabe +zweckmäßig, vorher die Tastatur mit dem H-Kommando in die hexadezimale Eingabe 
 zu schalten. Die Ziffern sind jetzt ohne Benutzung der Shift-Taste direkt  zu schalten. Die Ziffern sind jetzt ohne Benutzung der Shift-Taste direkt 
-erreichbar. Anschliessend kann ein grosser Bereich der Liste eingegeben werden.+erreichbar. Anschließend kann ein großer Bereich der Liste eingegeben werden.
  
-Es empfielt sich, nach einer bestimmten Anzahl von hexadezimalen Ziffern die +Es empfiehlt sich, nach einer bestimmten Anzahl von hexadezimalen Ziffern die 
 Eingabe mit dem Semikolon ";" zu beenden und mit dem Kommando 'D :' den bis  Eingabe mit dem Semikolon ";" zu beenden und mit dem Kommando 'D :' den bis 
 dahin eingetasteten Abschnitt zu kontrollieren. Die zeilenweise mitausgegebenen  dahin eingetasteten Abschnitt zu kontrollieren. Die zeilenweise mitausgegebenen 
Zeile 493: Zeile 493:
 Nach endlicher Zeit steht das Programm im gewünschten Speicherbereich und  Nach endlicher Zeit steht das Programm im gewünschten Speicherbereich und 
 entspricht dem Original auf der Liste. Es wäre nun grundfalsch, sofort mit der  entspricht dem Original auf der Liste. Es wäre nun grundfalsch, sofort mit der 
-Abarbeitung zu beginnen, vielmehr sollte das Programm zürst einmal auf +Abarbeitung zu beginnen, vielmehr sollte das Programm zuerst einmal auf 
 Magnetband abgespeichert und somit gesichert werden. Das erspart wiederholtes  Magnetband abgespeichert und somit gesichert werden. Das erspart wiederholtes 
 Eingeben von Programmteilen über Tastatur und erleichtert die Arbeit  Eingeben von Programmteilen über Tastatur und erleichtert die Arbeit 
Zeile 505: Zeile 505:
 sowie die im S-Kommando verwendeten Parameter notieren. Das erleichtert ein  sowie die im S-Kommando verwendeten Parameter notieren. Das erleichtert ein 
 späteres Wiederauffinden der gespeicherten Informationen und gewährleistet das  späteres Wiederauffinden der gespeicherten Informationen und gewährleistet das 
-ordnungegemässe Einlesen in den Speicher.+ordnungsgemäße Einlesen in den Speicher.
  
 Möchte man das wiederholte Einlesen vom Band, das ja auch einen gewissen  Möchte man das wiederholte Einlesen vom Band, das ja auch einen gewissen 
Zeile 513: Zeile 513:
 Mit dem T-Kommando (Transfer) wird eine gleichartige Kopie des Programms in  Mit dem T-Kommando (Transfer) wird eine gleichartige Kopie des Programms in 
 einem anderen, nicht genutzten Speicherbereich erzeugt. Falls jetzt das Programm  einem anderen, nicht genutzten Speicherbereich erzeugt. Falls jetzt das Programm 
-beim Testen zerstört, wird ist es möglich, wieder mit dem T-Kommanda die Kopie +beim Testen zerstört, wird ist es möglich, wieder mit dem T-Kommando die Kopie 
 auf den ursprünglichen Speicherbereich zurückzuspeichern und damit das  auf den ursprünglichen Speicherbereich zurückzuspeichern und damit das 
 Programm wieder herzustellen. Programm wieder herzustellen.
Zeile 519: Zeile 519:
 Im allgemeinen werden Programme nach dem Eingeben nicht sofort richtig und  Im allgemeinen werden Programme nach dem Eingeben nicht sofort richtig und 
 fehlerfrei arbeiten, dazu sind zu viele Fehlermöglichkeiten vorhanden. Sie  fehlerfrei arbeiten, dazu sind zu viele Fehlermöglichkeiten vorhanden. Sie 
-reichen von einfachen Eingabefehlern über falsche Anschlussstellen bishin zu  +reichen von einfachen Eingabefehlern über falsche Anschlussstellen bis hin zu  
-Fehlern im Programmentwurf (insbesondere bei manüll assemblierten Programmen).+Fehlern im Programmentwurf (insbesondere bei manuell assemblierten Programmen).
  
 Damit ergibt sich die Notwendigkeit, diese Programme auszutesten. Der Monitor  Damit ergibt sich die Notwendigkeit, diese Programme auszutesten. Der Monitor 
Zeile 528: Zeile 528:
 Zum Testen von Programmen unter den für diese Verhältnisse typischen  Zum Testen von Programmen unter den für diese Verhältnisse typischen 
 Bedingungen ergibt sich etwa nachfolgende Herangehensweise, die mit  Bedingungen ergibt sich etwa nachfolgende Herangehensweise, die mit 
-fortschreitendem Erfahrungsstand individüll modifiziert werden kann:+fortschreitendem Erfahrungsstand individuell modifiziert werden kann:
  
  
Zeile 539: Zeile 539:
   * Auftretende Programmschleifen sowie häufig aufgerufene Routinen (Unterprogramme) sind mindestens einmal im Schrittbetrieb abzuarbeiten. Sofern man danach von der Richtigkeit dieser Programmteile überzeugt ist, wird bei wiederholtem Aufruf die Haltepunktadresse auf den dem Aufruf oder dem Schleifenausgang folgenden Befehl gelegt und damit diese Programmteile direkt abgearbeitet.   * Auftretende Programmschleifen sowie häufig aufgerufene Routinen (Unterprogramme) sind mindestens einmal im Schrittbetrieb abzuarbeiten. Sofern man danach von der Richtigkeit dieser Programmteile überzeugt ist, wird bei wiederholtem Aufruf die Haltepunktadresse auf den dem Aufruf oder dem Schleifenausgang folgenden Befehl gelegt und damit diese Programmteile direkt abgearbeitet.
  
-  * Alle im schrittbetrieb abgearbeiteten Befehle werden bei richtiger Funktion in der Liste abgehakt, damit ist jederzeit ein überblick über das zu testende Programm vorhanden.+  * Alle im Schrittbetrieb abgearbeiteten Befehle werden bei richtiger Funktion in der Liste abgehakt, damit ist jederzeit ein Überblick über das zu testende Programm vorhanden.
  
-  * Falls die Testung des Programmes nicht auf einmal durchgängig erfolgen kann, sei es durch zu grossen Programmumfang oder durch Programmabsturz (undefiniertes Verhalten), kann mittels Aktivieren des letzten erfolgreich erreichten Haltepunktes oder der in Schrittbetrieb erreichten Adresse das zu testende Programm jederzeit wieder neu gestartet werden. Der weitere Ablauf ist dann genauso wie bereits beschrieben.+  * Falls die Testung des Programmes nicht auf einmal durchgängig erfolgen kann, sei es durch zu großen Programmumfang oder durch Programmabsturz (undefiniertes Verhalten), kann mittels Aktivieren des letzten erfolgreich erreichten Haltepunktes oder der in Schrittbetrieb erreichten Adresse das zu testende Programm jederzeit wieder neu gestartet werden. Der weitere Ablauf ist dann genauso wie bereits beschrieben.
  
   * Falls durch den Monitor nicht bereits die Protokollierung der Monitorbefehle bei Monitorrufen verhindert wird, sollte durch Setzen der Haltpunktadresse auf den dem Monitorruf folgenden Befehl diese Protokollierung ausgeschlossen worden.   * Falls durch den Monitor nicht bereits die Protokollierung der Monitorbefehle bei Monitorrufen verhindert wird, sollte durch Setzen der Haltpunktadresse auf den dem Monitorruf folgenden Befehl diese Protokollierung ausgeschlossen worden.
Zeile 547: Zeile 547:
 Bei Beachtung dieser Hinweise ist die Austestung aller Programme möglich.  Bei Beachtung dieser Hinweise ist die Austestung aller Programme möglich. 
 Sollten während der Testung in Programm Fehler festgestellt werden, die eine  Sollten während der Testung in Programm Fehler festgestellt werden, die eine 
-Vernänderung der Programmstruktur erforderlich machen, ist das bei den im +Veränderung der Programmstruktur erforderlich machen, ist das bei den im 
 Maschinenkode vorliegenden Programmen besonders schwierig. Entweder man bemüht  Maschinenkode vorliegenden Programmen besonders schwierig. Entweder man bemüht 
-sich um eine änderung mit anschliessender Neuübersetzung oder es wird an der  +sich um eine Änderung mit anschließender Neuübersetzung oder es wird an der  
-zu ändernden Stllen eine Maschinenkodeeinfügung vorgenommen.+zu ändernden Stellen eine Maschinenkodeeinfügung vorgenommen.
  
 Dazu wird an Stelle von drei oder mehr Befehlsbyte ein 'CALL'-Befehl  Dazu wird an Stelle von drei oder mehr Befehlsbyte ein 'CALL'-Befehl 
Zeile 566: Zeile 566:
  
 Diese Art der Maschinenkodeerweiterung ist zu Testzwecken durchaus möglich,  Diese Art der Maschinenkodeerweiterung ist zu Testzwecken durchaus möglich, 
-sollte aber zu einem späteren Zeitpunkt durch änderung im Programm und +sollte aber zu einem späteren Zeitpunkt durch Änderung im Programm und 
 Neuübersetzung Berücksichtigung finden. Neuübersetzung Berücksichtigung finden.
  
Zeile 574: Zeile 574:
 werden können. werden können.
  
-Allergrössten Wert ist auf ein genaüs Inhaltsverzeichnis zu legen, damit diese +Allergrößten Wert ist auf ein genaue Inhaltsverzeichnis zu legen, damit diese 
 Programmteile wiedergefunden und später problemlos geladen werden können. Programmteile wiedergefunden und später problemlos geladen werden können.
  
Zeile 592: Zeile 592:
 entwickelt. Sie hatten dabei die Entwicklung einer Computersprache vor Augen,  entwickelt. Sie hatten dabei die Entwicklung einer Computersprache vor Augen, 
 die einerseits vom Anfänger leicht zu erlernen ist und andererseits viele  die einerseits vom Anfänger leicht zu erlernen ist und andererseits viele 
-Möglichkeiten bietet. Man sollte mit dier Sprache leicht numerische (Zahlen-) +Möglichkeiten bietet. Man sollte mit dieser Sprache leicht numerische (Zahlen-) 
 Probleme angehen können, aber ebenso sollten Verwaltungsaufgaben, bei denen die  Probleme angehen können, aber ebenso sollten Verwaltungsaufgaben, bei denen die 
-Textverarbeitung eine grosse Rolle spielt, in der Sprache zu behandeln sein. +Textverarbeitung eine große Rolle spielt, in der Sprache zu behandeln sein. 
 Deshalb ersann man für diese Sprache die Bezeichnung BASIC, ein Wort, das  Deshalb ersann man für diese Sprache die Bezeichnung BASIC, ein Wort, das 
 konstruiert wurde aus den Anfangsbuchstaben von: Beginner's All purpose Symboic  konstruiert wurde aus den Anfangsbuchstaben von: Beginner's All purpose Symboic 
Zeile 600: Zeile 600:
  
 Neben den Wörtern "Beginner's" und "All purpose" (Allzweck), deren Bedeutung  Neben den Wörtern "Beginner's" und "All purpose" (Allzweck), deren Bedeutung 
-ohne weiterse einleuchtet, können die Wörter "Symbolic Instruction Code" +ohne weiteres einleuchtet, können die Wörter "Symbolic Instruction Code" 
 vielleicht ein wenig verwirren. Damit wird nur gesagt, dass man mit einem  vielleicht ein wenig verwirren. Damit wird nur gesagt, dass man mit einem 
-sogenannten symbolischen Befehlekode arbeitet. Das sind Schlüsselwörter, mit +sogenannten symbolischen Befehlskode arbeitet. Das sind Schlüsselwörter, mit 
 denen bestimmte Verarbeitungsbefehle mit Hilfe von Symbolen angegeben werden, z.  denen bestimmte Verarbeitungsbefehle mit Hilfe von Symbolen angegeben werden, z. 
 B. das Addieren oder Subtrahieren. Also nur wenige Wörter, deren Bedeutung bei  B. das Addieren oder Subtrahieren. Also nur wenige Wörter, deren Bedeutung bei 
Zeile 627: Zeile 627:
 übersetzten Programmen anzusehen. übersetzten Programmen anzusehen.
  
-Ein Vorteil ist die einfache Dialogfähigkiet, BASIC-Zeilen erscheinen so wieder  +Ein Vorteil ist die einfache Dialogfähigkeit, BASIC-Zeilen erscheinen so wieder  
-auf dem Bildschirm, wie sie eingegeben wurden. Ausserdem können einzelne +auf dem Bildschirm, wie sie eingegeben wurden. Außerdem können einzelne 
 Anweisungen sofort ausgeführt werden. Auf diese Weise kann der Computer an  Anweisungen sofort ausgeführt werden. Auf diese Weise kann der Computer an 
 Stelle eines Tischrechners verwendet werden. Auf diese Betriebsart wird noch  Stelle eines Tischrechners verwendet werden. Auf diese Betriebsart wird noch 
Zeile 636: Zeile 636:
 spätere Beispiele zeigen werden, kann ein Teil des BASIC-Programmes häufiger als  spätere Beispiele zeigen werden, kann ein Teil des BASIC-Programmes häufiger als 
 nur einmal ausgeführt werden, z. B. bei der Unterprogrammarbeit oder in  nur einmal ausgeführt werden, z. B. bei der Unterprogrammarbeit oder in 
-Programmschleifen. Vom Interpreter wird aber jedesmal, wenn der entsprechende +Programmschleifen. Vom Interpreter wird aber jedes mal, wenn der entsprechende 
 Abschnitt an der Reihe ist, Anweisung um Anweisung neu interpretiert. Das hat  Abschnitt an der Reihe ist, Anweisung um Anweisung neu interpretiert. Das hat 
-zur Folge, dass solche Programme längere Verarbeitungezeiten gegenüber gleichen +zur Folge, dass solche Programme längere Verarbeitungszeiten gegenüber gleichen 
 Programmlösungen in Maschinensprache erfordern. Im Extremfall kann das dazu  Programmlösungen in Maschinensprache erfordern. Im Extremfall kann das dazu 
 führen, dass besonders zeitkritische Probleme nur in Maschinensprache lösbar  führen, dass besonders zeitkritische Probleme nur in Maschinensprache lösbar 
Zeile 646: Zeile 646:
 === 5.3.3. Laden des BASIC-Interpreters ===  === 5.3.3. Laden des BASIC-Interpreters === 
  
-Da der BASIC-Interpreter selbst ein Maschinenprogranun darstellt, benötigt er im +Da der BASIC-Interpreter selbst ein Maschinenprogramm darstellt, benötigt er im 
 Speicher des Z1013 einen Speicherplatz von ca. 2.75 KByte. Dazu wird noch  Speicher des Z1013 einen Speicherplatz von ca. 2.75 KByte. Dazu wird noch 
 weiterer Speicherraum zum Ablegen der BASIC-Programme gebraucht. weiterer Speicherraum zum Ablegen der BASIC-Programme gebraucht.
Zeile 657: Zeile 657:
 Ein einziger Fehler kann das Interpreterprogramm funktionsunfähig machen. Ein einziger Fehler kann das Interpreterprogramm funktionsunfähig machen.
  
-Das Eintippen erfolgt mit dem in 1.3.  kennengelernten M-Kom mando. Es wird  +Das Eintippen erfolgt mit dem in 1.3.  kennengelernten M-Kommando. Es wird  
-immer ein kleiner Abschnitt eingegeben und an schliessend mit dem D-Kommando +immer ein kleiner Abschnitt eingegeben und anschließend mit dem D-Kommando 
 wieder angezeigt. Durch Vergleich mit den Prüfsummen je Zeile auf dem Bildschirm  wieder angezeigt. Durch Vergleich mit den Prüfsummen je Zeile auf dem Bildschirm 
-und in der Liste wird die Fehlerfreiheit festgestellt. Muss die Ar beit +und in der Liste wird die Fehlerfreiheit festgestellt. Muss die Arbeit 
 unterbrochen werden oder ist der Interpreter vollständig eingegeben, kann er wie  unterbrochen werden oder ist der Interpreter vollständig eingegeben, kann er wie 
 jedes andere Maschinenkode-Programm auf Magnetband gespeichert werden und steht  jedes andere Maschinenkode-Programm auf Magnetband gespeichert werden und steht 
Zeile 672: Zeile 672:
 Nach dem Start des BASIC-Interpreters erscheint auf dem vorher gelöschten  Nach dem Start des BASIC-Interpreters erscheint auf dem vorher gelöschten 
 Bildschirm die Meldung 'robotron Z 1013 BASIC 3.01', in der nächsten Zeile  Bildschirm die Meldung 'robotron Z 1013 BASIC 3.01', in der nächsten Zeile 
-'READY' und am Beginn der folgenden Zeile das Zeichen '>' (grösser als) als +'READY' und am Beginn der folgenden Zeile das Zeichen '>' (größer als) als 
 Promptsymbol. Promptsymbol.
  
Zeile 683: Zeile 683:
  
 Die Länge einer Programmzeile darf 64 Zeichen nicht überschreiten. Jede  Die Länge einer Programmzeile darf 64 Zeichen nicht überschreiten. Jede 
-Programmzeile und jede Kommandöingabe ist mit der Enter-Taste abzuschliessen+Programmzeile und jede Kommandoeingabe ist mit der Enter-Taste abzuschließen
  
-Beginnt die eingegebende Zeile mit einer Zeilennummer (Zlnr), so wird diese +Beginnt die eingegebene Zeile mit einer Zeilennummer (Zlnr), so wird diese 
 Zeile als Programmzeile interpretiert und abgespeichert. Diese Zeilennummern  Zeile als Programmzeile interpretiert und abgespeichert. Diese Zeilennummern 
-sind ganze Zahlen im Bereich zwischen 1 und 32767. Bei der Numerierung der +sind ganze Zahlen im Bereich zwischen 1 und 32767. Bei der Nummerierung der 
 Programmzeilen geht man sinnvollerweise in Zehnerschritten vor. Dadurch ergibt  Programmzeilen geht man sinnvollerweise in Zehnerschritten vor. Dadurch ergibt 
 sich die Möglichkeit, noch genügend Einfügungen in bereits bestehende Programme  sich die Möglichkeit, noch genügend Einfügungen in bereits bestehende Programme 
Zeile 693: Zeile 693:
 Zeilennummern. Zeilennummern.
  
-Alle anderen Eingaben ohne Zeilennunmmern werden als Befehl zur sofortigen +Alle anderen Eingaben ohne Zeilennummern werden als Befehl zur sofortigen 
 Ausführung angesehen. Sind sie zulässig werden sie ausgeführt, sonst erfolgt  Ausführung angesehen. Sind sie zulässig werden sie ausgeführt, sonst erfolgt 
 eine Fehlermeldung. Danach kann die nächste Eingabe erfolgen. eine Fehlermeldung. Danach kann die nächste Eingabe erfolgen.
Zeile 723: Zeile 723:
 weggelassen werden. Diese beiden Möglichkeiten der Programmverkürzung erlauben  weggelassen werden. Diese beiden Möglichkeiten der Programmverkürzung erlauben 
 es, den Programmspeicher besser auszunutzen, um mehr Programmzeilen  es, den Programmspeicher besser auszunutzen, um mehr Programmzeilen 
-unterzubringen. Dadurch geht aber die übersichtlichkeit der Programme verloren.+unterzubringen. Dadurch geht aber die Übersichtlichkeit der Programme verloren.
  
 Es dürfen mehrere Anweisungen in einer Programmzeile untergebracht werden. Diese  Es dürfen mehrere Anweisungen in einer Programmzeile untergebracht werden. Diese 
Zeile 737: Zeile 737:
 Den meisten der Schlüsselworte folgt ein weiterer Ausdruck. Das können Zahlen,  Den meisten der Schlüsselworte folgt ein weiterer Ausdruck. Das können Zahlen, 
 Variable oder arithmetische Konstruktionen mit diesen sein. Erforderlichenfalls  Variable oder arithmetische Konstruktionen mit diesen sein. Erforderlichenfalls 
-sind derartige Konstruktionen mit Klammern aufzubaün, um diese Konstruktionen +sind derartige Konstruktionen mit Klammern aufzubauen, um diese Konstruktionen 
 mathematisch eindeutig zu machen. Der Interpreter arbeitet nach mathematisch eindeutig zu machen. Der Interpreter arbeitet nach
  
Zeile 746: Zeile 746:
 Als Variable sind alle Buchstaben des Alphabets von A bis Z erlaubt. Eine  Als Variable sind alle Buchstaben des Alphabets von A bis Z erlaubt. Eine 
 Variable darf aber nur aus einem einzelnen Buchstaben bestehen. Es können nur  Variable darf aber nur aus einem einzelnen Buchstaben bestehen. Es können nur 
-Grossbuchstaben verwendet werden.+Großbuchstaben verwendet werden.
  
 Mit dem Symbol '@' ist die Nutzung eines eindimensionalen Feldes (Vektor)  Mit dem Symbol '@' ist die Nutzung eines eindimensionalen Feldes (Vektor) 
Zeile 794: Zeile 794:
 <code> <code>
 >LIST     Auflisten des gesamten Programmes in aufsteigender >LIST     Auflisten des gesamten Programmes in aufsteigender
-          Reihenfolge der Zei~ennnunrnern.+          Reihenfolge der Zeilennummern.
  
 >LIST 10  Auflisten des BASIC-Programmes ab der Zeile 10 >LIST 10  Auflisten des BASIC-Programmes ab der Zeile 10
Zeile 812: Zeile 812:
  
 Das im Speicher vorhandene BASIC-Programm wird scheinbar gelöscht. Tatsächlich  Das im Speicher vorhandene BASIC-Programm wird scheinbar gelöscht. Tatsächlich 
-ist es noch im Programmspeicher enthalten, wird aber bei neueingabe eines +ist es noch im Programmspeicher enthalten, wird aber bei Neueingabe eines 
 Programmes überschrieben. Programmes überschrieben.
  
Zeile 828: Zeile 828:
 **END** **END**
  
-Dieser Befehl wird zum Vergrössern des vom Interpreter genutzten +Dieser Befehl wird zum Vergrößern des vom Interpreter genutzten 
 Programmspeichers verwendet. Mit 'END' kann also das Programmspeicherende neu  Programmspeichers verwendet. Mit 'END' kann also das Programmspeicherende neu 
 gesetzt werden, z. B. bei Speichererweiterung. Lässt der augenblickliche  gesetzt werden, z. B. bei Speichererweiterung. Lässt der augenblickliche 
 Ausstattungsgrad des MRB Z1013 diesen Speicherbedarf nicht zu, weil er real  Ausstattungsgrad des MRB Z1013 diesen Speicherbedarf nicht zu, weil er real 
 nicht vorhanden ist, wird die Fehlermeldung 'SORRY' ausgegeben. Dabei ist zu  nicht vorhanden ist, wird die Fehlermeldung 'SORRY' ausgegeben. Dabei ist zu 
-beachten, dass ein Bereich von 140 Byte hinter den Programmspeicher freibleibt+beachten, dass ein Bereich von 140 Byte hinter den Programmspeicher frei bleibt
 der vom BASIC-Interpreter intern verwaltet wird. der vom BASIC-Interpreter intern verwaltet wird.
  
Zeile 852: Zeile 852:
  
 Mit diesem Kommando wird ein durch CSAVE abgespeichertes BASIC-Programm wieder  Mit diesem Kommando wird ein durch CSAVE abgespeichertes BASIC-Programm wieder 
-von Magnetband eingegeben. Zur Kontrolle wird der im CSAVE-Kommande verwendete +von Magnetband eingegeben. Zur Kontrolle wird der im CSAVE-Kommando verwendete 
 Name auf dem Bildschirm ausgegeben. Name auf dem Bildschirm ausgegeben.
  
Zeile 861: Zeile 861:
 Definiert den Anfang einer Ergibtanweisung, d. h. einer Wertzuweisung. 'LET'  Definiert den Anfang einer Ergibtanweisung, d. h. einer Wertzuweisung. 'LET' 
 muss nicht vorangestellt werden, es dient lediglich der besseren  muss nicht vorangestellt werden, es dient lediglich der besseren 
-übersichtlichkeit.+Übersichtlichkeit.
  
 Die im folgenden angegebenen Beispiele stellen nicht in jedem Die im folgenden angegebenen Beispiele stellen nicht in jedem
Zeile 894: Zeile 894:
  
 <code> <code>
-  >= grösser gleich+  >= größer gleich
   #  ungleich   #  ungleich
-  >  grösser+  >  größer
   =  gleich   =  gleich
   <  kleiner   <  kleiner
Zeile 925: Zeile 925:
 **FOR...TO...STEP...NEXT** **FOR...TO...STEP...NEXT**
  
-Damit lassen sich leicht Programmschleifen aufbaün, die mit einer  +Damit lassen sich leicht Programmschleifen aufbauen, die mit einer  
-freibestimmbaren Anzahl von Schleifendurchläufen abgearbeitet werden sollen. +frei bestimmbaren Anzahl von Schleifendurchläufen abgearbeitet werden sollen. 
 Jede mit 'FOR' eröffnete Schleife muss mit einer NEXT-Anweisung, die die gleiche  Jede mit 'FOR' eröffnete Schleife muss mit einer NEXT-Anweisung, die die gleiche 
 Zählvariable wie die FOR-Anweisung beinhaltet, abgeschlossen werden. Zählvariable wie die FOR-Anweisung beinhaltet, abgeschlossen werden.
Zeile 942: Zeile 942:
 Der Programmabschnitt von Zeile 110 bis Zeile 150 wird N-mal durchlaufen, wobei  Der Programmabschnitt von Zeile 110 bis Zeile 150 wird N-mal durchlaufen, wobei 
 '1' mit dem Wert '0' beginnend in jedem Durchlauf um '1' erhöht wird, bis der  '1' mit dem Wert '0' beginnend in jedem Durchlauf um '1' erhöht wird, bis der 
-Wert N überschritten wurde. Danach wird die Schleife verlassen-+Wert N überschritten wurde. Danach wird die Schleife verlassen.
  
 Eine Schrittweite wird mit dem Schlüsselwort STEP gekennzeichnet. Wird STEP  Eine Schrittweite wird mit dem Schlüsselwort STEP gekennzeichnet. Wird STEP 
Zeile 963: Zeile 963:
 Eine 'FOR-NEXT'-Schleife kann zu jedem beliebigen Zeitpunkt durch eine  Eine 'FOR-NEXT'-Schleife kann zu jedem beliebigen Zeitpunkt durch eine 
 'IF..GOTO'-Anweisung verlassen werden. Es darf aber nicht in eine 'FOR...NEXT'- 'IF..GOTO'-Anweisung verlassen werden. Es darf aber nicht in eine 'FOR...NEXT'-
-Schleife von ausserhalb der Schleife hineingesprungen werden.+Schleife von außerhalb der Schleife hineingesprungen werden.
  
 **GOSUB...RETURN** **GOSUB...RETURN**
Zeile 989: Zeile 989:
  
 Dadurch werden in einen BASIC-Programm; Kommentarzeilen gekennzeichnet. Sie  Dadurch werden in einen BASIC-Programm; Kommentarzeilen gekennzeichnet. Sie 
-dienen der besseren übersichtlichkeit der Programme und werden bei der +dienen der besseren Übersichtlichkeit der Programme und werden bei der 
 Abarbeitung durch den Interpreter überlesen. Die Programmzeile belegt aber  Abarbeitung durch den Interpreter überlesen. Die Programmzeile belegt aber 
 entsprechend ihrer Länge Speicherplatz in RAM-Bereich des Rechners. entsprechend ihrer Länge Speicherplatz in RAM-Bereich des Rechners.
Zeile 1005: Zeile 1005:
 sind mit der Taste 'Kursor links' bzw. 'Kursor rechts' möglich. Die gesamte sind mit der Taste 'Kursor links' bzw. 'Kursor rechts' möglich. Die gesamte
  
-Eingabe ist mit der Enter-Taste abzuschliessen (nach Korrekturen muss der Kursor +Eingabe ist mit der Enter-Taste abzuschließen (nach Korrekturen muss der Kursor 
 auf die erste freie Position in der Eingabezeile gestellt werden!). auf die erste freie Position in der Eingabezeile gestellt werden!).
  
Zeile 1036: Zeile 1036:
  
 Damit wird die Ausgabe von numerischen Werten und von Textketten ermöglicht.  Damit wird die Ausgabe von numerischen Werten und von Textketten ermöglicht. 
-Texte sind dabei in Hochkomma einzuschliessen. Mehrere Ausgabeparaneter +Texte sind dabei in Hochkomma einzuschließen. Mehrere Ausgabeparaneter 
 innerhalb einer 'PRINT'-Anweisung sind mit Komma voneinander zu trennen. Zahlen  innerhalb einer 'PRINT'-Anweisung sind mit Komma voneinander zu trennen. Zahlen 
 werden bei fehlender Formatangabe sechsstellig mit unterdrückten Vornullen  werden bei fehlender Formatangabe sechsstellig mit unterdrückten Vornullen 
Zeile 1045: Zeile 1045:
 Durch ein Doppelkreuz, gefolgt von einer Zahl 1...6), kann diese Formatisierung  Durch ein Doppelkreuz, gefolgt von einer Zahl 1...6), kann diese Formatisierung 
 geändert werden. Die Zahl gibt die maximal auszugebende Stellenzahl an. Die  geändert werden. Die Zahl gibt die maximal auszugebende Stellenzahl an. Die 
-Formatisierung bleibt bis zur naschsten 'PRINT'-Ausgabe bestehen. Wird die +Formatisierung bleibt bis zur nächsten 'PRINT'-Ausgabe bestehen. Wird die 
 'PRINT' Anweisung mit einem Komma beendet, so beginnt die Ausgabe der nächsten  'PRINT' Anweisung mit einem Komma beendet, so beginnt die Ausgabe der nächsten 
 'PRINT'-Anweisung in der gleichen Zeile nach der vorangegangenen Ausgabe. 'PRINT'-Anweisung in der gleichen Zeile nach der vorangegangenen Ausgabe.
Zeile 1077: Zeile 1077:
 Arbeit des Interpreters mit der folgenden BASIC-Anweisung fortgesetzt werden, so  Arbeit des Interpreters mit der folgenden BASIC-Anweisung fortgesetzt werden, so 
 ist das MC-Unterprogramm mit einen 'RETURN'-Befehl (bedingt oder unbedingt, z.  ist das MC-Unterprogramm mit einen 'RETURN'-Befehl (bedingt oder unbedingt, z. 
-b. 0C9H, siehe auch Abschnitt 4, Unterprogrammtechnik) abzuschliessen. Zur  +b. 0C9H, siehe auch Abschnitt 4, Unterprogrammtechnik) abzuschließen. Zur  
-übermittlung der Parameter werden die PEEK- und POKE-Befehle verwendet.+Übermittlung der Parameter werden die PEEK- und POKE-Befehle verwendet.
  
 Beispiel: Beispiel:
Zeile 1125: Zeile 1125:
   >10  POKE HEX (ED08),65   >10  POKE HEX (ED08),65
  
-Der Wert 65 (dezimal) wird in den Speicherplatz mit der Adrtsse ED08H (BWS) als  +Der Wert 65 (dezimal) wird in den Speicherplatz mit der Adresse ED08H (BWS) als  
-41H abgespeichert. 41H entspricht dem ASCII-Kode für den Grossbuchstaben A.+41H abgespeichert. 41H entspricht dem ASCII-Kode für den Großbuchstaben A.
  
 <code> <code>
Zeile 1139: Zeile 1139:
 3000H umgespeichert. 3000H umgespeichert.
  
-Dieses Programm entspricht dem Monitorkommande: T F000 3000 3FF. Man beachte die +Dieses Programm entspricht dem Monitorkommando: T F000 3000 3FF. Man beachte die 
 unterschiedlichen Ausführungszeiten. unterschiedlichen Ausführungszeiten.
  
Zeile 1178: Zeile 1178:
  
 Der durch ' '(Hochkomma) dargestellte Befehl QUOTE realisiert die  Der durch ' '(Hochkomma) dargestellte Befehl QUOTE realisiert die 
-Einzelzeichenunwandlung eines ASCII-Zeichens in einen Dezimalwert. Das ASCII-+Einzelzeichenumwandlung eines ASCII-Zeichens in einen Dezimalwert. Das ASCII-
 Zeichen ist zwischen dem Hochkomma anzugeben. Zeichen ist zwischen dem Hochkomma anzugeben.
  
Zeile 1232: Zeile 1232:
 Der in der OUT-Anweisung angegebene Wert des Ausdruckes wird an die in der  Der in der OUT-Anweisung angegebene Wert des Ausdruckes wird an die in der 
 Anweisung zugewiesene E/A-Adresse des MRB Z1013 ausgegeben. Der Wert darf 255  Anweisung zugewiesene E/A-Adresse des MRB Z1013 ausgegeben. Der Wert darf 255 
-nicht überschreiten (255 ist bekanntlich die grösste Dezimalzahl, die mit 8 Bit +nicht überschreiten (255 ist bekanntlich die größte Dezimalzahl, die mit 8 Bit 
 darstellbar ist.). darstellbar ist.).
  
Zeile 1285: Zeile 1285:
 </code> </code>
  
-Folgende Funktionen werden ausserdem durch den BASIC-Interpreter realisiert:+Folgende Funktionen werden außerdem durch den BASIC-Interpreter realisiert:
  
 **RND** **RND**
Zeile 1317: Zeile 1317:
 dar. Die sich aus dem nachfolgenden Ausdruck ergebende Anzahl dar. Die sich aus dem nachfolgenden Ausdruck ergebende Anzahl
 von Leerzeichen wird auf dem Bildschirm ausgegeben. Die von Leerzeichen wird auf dem Bildschirm ausgegeben. Die
-nachfolgende Ausgabe von Zeichen beginnt nach diesen Leer- +nachfolgende Ausgabe von Zeichen beginnt nach diesen Leerzeichen.
-zeichen.+
  
 <code> <code>
Zeile 1331: Zeile 1330:
 </code> </code>
  
-Durch die TAB-Punktion wird die Darstellung von Kurven mög- +Durch die TAB-Punktion wird die Darstellung von Kurven möglich.
-lich.+
  
   >10  FOR I=-5 TO 5; TAB (I*I); PRINT '*'; NEXT I   >10  FOR I=-5 TO 5; TAB (I*I); PRINT '*'; NEXT I
Zeile 1369: Zeile 1367:
 Natürlich können wir uns diese Denkarbeit ersparen und den Rechner mit fertigen  Natürlich können wir uns diese Denkarbeit ersparen und den Rechner mit fertigen 
 Programmen "füttern", die sich ein anderer für uns erdacht hat. Das ist bei der  Programmen "füttern", die sich ein anderer für uns erdacht hat. Das ist bei der 
-Lösung von häfig wiederkehrenden Problemen zweckmässig. Hier sei als Beispiel +Lösung von häufig wiederkehrenden Problemen zweckmäßig. Hier sei als Beispiel 
 nur das mitgelieferte BASIC-Interpreter-Programm genannt, in dem eine Fülle  nur das mitgelieferte BASIC-Interpreter-Programm genannt, in dem eine Fülle 
 geistiger Arbeit steckt und das einem breiten Anwenderkreis eine vereinfachte  geistiger Arbeit steckt und das einem breiten Anwenderkreis eine vereinfachte 
Zeile 1407: Zeile 1405:
 kurzen Programm den Zeichengeneratorinhalt mit ansteigender Kode-Zahl  kurzen Programm den Zeichengeneratorinhalt mit ansteigender Kode-Zahl 
 "hintereinanderweg" abbilden, das ergibt 256/32 - 8 Zeilen. Darunter würde aber  "hintereinanderweg" abbilden, das ergibt 256/32 - 8 Zeilen. Darunter würde aber 
-die übersichtlichkeit leiden, da in dieser gedrängten Darstellung insbesondere +die Übersichtlichkeit leiden, da in dieser gedrängten Darstellung insbesondere 
 die Grafikzeichen, die das 8x8-Bildpunkt-Format ausnutzen, Zum Teil ohne  die Grafikzeichen, die das 8x8-Bildpunkt-Format ausnutzen, Zum Teil ohne 
-übergang ineinanderfliessen. Da wir mit dieser Methode auch nur ein Viertel des +Übergang ineinanderfließen. Da wir mit dieser Methode auch nur ein Viertel des 
 Bildschirmes ausnutzen, bietet es sich an, die Zeichendarstellung durch das  Bildschirmes ausnutzen, bietet es sich an, die Zeichendarstellung durch das 
 Einfügen von Leerzeichen und Leerzeilen aufzuspreizen. Wir erhalten damit 16  Einfügen von Leerzeichen und Leerzeilen aufzuspreizen. Wir erhalten damit 16 
Zeile 1418: Zeile 1416:
 ausreichen würde, verzichten können. ausreichen würde, verzichten können.
  
-Auf Probleme der Verarbeitungezeit verden wir bei der Programmierung noch  +Auf Probleme der Verarbeitungszeit werden wir bei der Programmierung noch  
-zusprechen kommen. Prinzipiell wäre es möglich, den Bedienungekomfort zu +zusprechen kommen. Prinzipiell wäre es möglich, den Bedienungskomfort zu 
 steigern, z. B. eine Anwahl bestimmter Zeichen oder Zeichengruppen über die  steigern, z. B. eine Anwahl bestimmter Zeichen oder Zeichengruppen über die 
 Tastatur zu ermöglichen und parallel dazu den Zeichenkode sowohl hexadezimal als  Tastatur zu ermöglichen und parallel dazu den Zeichenkode sowohl hexadezimal als 
 auch dezimal darzustellen. Das würde aber unseren Forderungen nach Einfachheit  auch dezimal darzustellen. Das würde aber unseren Forderungen nach Einfachheit 
-und übersichtlichkeit (Erfassung aller Zeichen auf einen Blick) widersprechen.+und Übersichtlichkeit (Erfassung aller Zeichen auf einen Blick) widersprechen.
  
-=== 5.4.3. Erarbeitung der Rechnenanweisung (Algorithmus) === +=== 5.4.3. Erarbeitung der Rechenanweisung (Algorithmus) === 
  
 Nachdem wir unsere jeweilige Aufgabenstellung entsprechend den Empfehlungen des  Nachdem wir unsere jeweilige Aufgabenstellung entsprechend den Empfehlungen des 
Zeile 1432: Zeile 1430:
  
 Für unser gewähltes Beispiel könnte man den Algorithmus Für unser gewähltes Beispiel könnte man den Algorithmus
-folgendermassen beschreiben:+folgendermaßen beschreiben:
  
   - Setze auf die Anfangsadresse des Bildschirms das Zeichen mit der Kode-Zahl 0!   - Setze auf die Anfangsadresse des Bildschirms das Zeichen mit der Kode-Zahl 0!
Zeile 1442: Zeile 1440:
 Dieser mit Worten beschriebene Algorithmus stellt eine Liste dar, die von oben  Dieser mit Worten beschriebene Algorithmus stellt eine Liste dar, die von oben 
 nach unten abgearbeitet wird. Dadurch wird es schwierig, sich wiederholende  nach unten abgearbeitet wird. Dadurch wird es schwierig, sich wiederholende 
-Programmabschnitte (Zyklen) und Programmverzweigumgen (Sprünge) exakt zu +Programmabschnitte (Zyklen) und Programmverzweigungen (Sprünge) exakt zu 
 beschreiben. beschreiben.
  
Zeile 1452: Zeile 1450:
  
  
-<code> +Bild Bedeutung ^ ^ 
-Bild       Bedeutung +| {{:z1013:handbuecher:z1013handbuch_abb_5.4.10.gif|}} | Anweisung einzelne oder mehrere Operationen (Folge) | 
--------------------------------------------------------------- +| {{:z1013:handbuecher:z1013handbuch_abb_5.4.09.gif|}} | Verzweigung Variation des Programmablaufes in Abhängigkeit einer oder mehrerer Bedingungen, dadurch Aufbau von Zyklen möglich | 
-  Anweisung  einzelne oder mehrere +| {{:z1013:handbuecher:z1013handbuch_abb_5.4.08.gif|}} | Eingabe/Ausgabe beliebige E/A-Operationen | 
- Operationen (Folge) +| {{:z1013:handbuecher:z1013handbuch_abb_5.4.07.gif|}} | Grenzstelle Anfang (Start), Unterbrechung (Zwischenstop) oder Ende (Stop) eines Programmes | 
-  Verzweigung  Variation des Programmab- +| {{:z1013:handbuecher:z1013handbuch_abb_5.4.06.gif|}} | Verbindungsstelle Verbindung von Programmteilen | 
- laufes in Abhängigkeit +| {{:z1013:handbuecher:z1013handbuch_abb_5.4.05.gif|}} | Unterprogramm Programmteil, das an dieser Stelle aufgerufen wird |
- einer oder mehrerer Be- +
- dingungen, dadurch Aufbau +
- von Zyklen möglich +
-   Eingabe/Ausgabe  beliebige E/A-Operationen +
-  Grenzstelle  Anfang (Start), Unterbre- +
- chung (Zwischenstop) oder +
- Ende (Stop) eines Programmes +
-  Verbindungsstelle  Verbindung von Programm- +
- teilen +
-  Unterprogramm  Programmteil, das an dieser +
- Stelle aufgerufen wird +
-</code>+
  
 Um bei einem Programmentwurf durch die Vielfalt von Programmteilen und  Um bei einem Programmentwurf durch die Vielfalt von Programmteilen und 
-Gestaltungselementen nicht die übersicht zu verlieren, empfiehlt es sich, +Gestaltungselementen nicht die Übersicht zu verlieren, empfiehlt es sich, 
 schrittweise den Abstraktionsgrad zu verfeinern. schrittweise den Abstraktionsgrad zu verfeinern.
  
 Diese Methode soll an unserem gewählten Beispiel demonstriert werden. Den vorhin  Diese Methode soll an unserem gewählten Beispiel demonstriert werden. Den vorhin 
 angeführten verbalen Algorithmus könnte man in einer groben Abstraktion  angeführten verbalen Algorithmus könnte man in einer groben Abstraktion 
-folgendermassen als PAP darstellen:+folgendermaßen als PAP darstellen: 
 + 
 +{{:z1013:handbuecher:z1013handbuch_abb_5.4.04.gif|}}
  
 Dieser PAP enthält viele Vereinfachungen, die noch nicht geeignet sind für eine  Dieser PAP enthält viele Vereinfachungen, die noch nicht geeignet sind für eine 
-übersetzung in die BASIC-Sprache. Insbesondere die Zyklen 1 und 2 sind soweit  +Übersetzung in die BASIC-Sprache. Insbesondere die Zyklen 1 und 2 sind soweit  
-abstrahiert, dass ihr zyklischer Inhalt gar nicht erkennbar ist. 31+abstrahiert, dass ihr zyklischer Inhalt gar nicht erkennbar ist.
  
 Wir wollen deshalb zunächst Zyklus 1 präzisieren. Um eine Bildschirmzeile  Wir wollen deshalb zunächst Zyklus 1 präzisieren. Um eine Bildschirmzeile 
Zeile 1493: Zeile 1481:
 auch als Modul bezeichnet wird. Hier die Darstellung von Zyklus 1 als Teil-PAP: auch als Modul bezeichnet wird. Hier die Darstellung von Zyklus 1 als Teil-PAP:
  
 +{{:z1013:handbuecher:z1013handbuch_abb_5.4.03.gif|}}
  
 Zyklus 2 besteht aus der 32fachen zyklischen Wiederholung des Schreibens eines  Zyklus 2 besteht aus der 32fachen zyklischen Wiederholung des Schreibens eines 
 Leerzeichens bei ebenfalls fortlaufender Erhöhung der Adresse X und der Kode- Leerzeichens bei ebenfalls fortlaufender Erhöhung der Adresse X und der Kode-
-Zahl C. Da der Zyklus 2 an den abgeschlossenen Zyklus 1 anschliesst, kann die +Zahl C. Da der Zyklus 2 an den abgeschlossenen Zyklus 1 anschließt, kann die 
 Variable L, nachdem ihr ein neuer Anfangswert zugeordnet wurde, erneut für das  Variable L, nachdem ihr ein neuer Anfangswert zugeordnet wurde, erneut für das 
 Zählen der Zyklen-Anzahl benutzt werden: Zählen der Zyklen-Anzahl benutzt werden:
 +
 +{{:z1013:handbuecher:z1013handbuch_abb_5.4.02.gif|}}
 +
  
 Mit der einmaligen Realisierung der Folge (Zyklus 1/Zyklus 2) haben wir erst das  Mit der einmaligen Realisierung der Folge (Zyklus 1/Zyklus 2) haben wir erst das 
Zeile 1510: Zeile 1502:
 bereits aufgeführten Programm-Module Zyklus 1 und Zyklus 2 dargestellt werden: bereits aufgeführten Programm-Module Zyklus 1 und Zyklus 2 dargestellt werden:
  
 +{{:z1013:handbuecher:z1013handbuch_abb_5.4.01.gif|}}
  
 Damit ist unser PAP soweit aufbereitet, dass die Umsetzung in die  Damit ist unser PAP soweit aufbereitet, dass die Umsetzung in die 
Zeile 1522: Zeile 1515:
 Bei der eigentlichen Programmierung können wir die Vorteile nutzen, die uns das  Bei der eigentlichen Programmierung können wir die Vorteile nutzen, die uns das 
 BASIC durch seine Dialogfähigkeit bietet. Das bedeutet für uns, dass wir unser  BASIC durch seine Dialogfähigkeit bietet. Das bedeutet für uns, dass wir unser 
-Programm schrittweise aufbaün und testen können.+Programm schrittweise aufbauen und testen können.
  
 Wir wollen das wieder an unserem Programmbeispiel üben. Sicherheitshalber werden  Wir wollen das wieder an unserem Programmbeispiel üben. Sicherheitshalber werden 
Zeile 1539: Zeile 1532:
   # L 100 BFF   # L 100 BFF
  
-geben wir dem Rechner zu verstehen, dass er in den Speicher adressraum von 100H +geben wir dem Rechner zu verstehen, dass er in den Speicheradressraum von 100H 
 bis BFFH Daten einlagern soll. Nach dem Positionieren des Magnetbandes (optimal  bis BFFH Daten einlagern soll. Nach dem Positionieren des Magnetbandes (optimal 
 ist hier ein Bandlängenzählwerk) und Einschalten der Wiedergabe erwarten wir den  ist hier ein Bandlängenzählwerk) und Einschalten der Wiedergabe erwarten wir den 
Zeile 1552: Zeile 1545:
  
 Es ist z. B. möglich, dass durch Staubkörnchen zwischen Band und Tonkopf oder  Es ist z. B. möglich, dass durch Staubkörnchen zwischen Band und Tonkopf oder 
-durch Kontaktfehler der übertragungsleitung einzelne "Bits" verlorengehen. Das  +durch Kontaktfehler der Übertragungsleitung einzelne "Bits" verlorengehen. Das  
-erkennt unser Rechner durch Kontrolle der übereinstimmung der Summe aller Daten +erkennt unser Rechner durch Kontrolle der Übereinstimmung der Summe aller Daten 
 in einer Zeile mit den ebenfalls im Datensatz übermittelten Checksummen. in einer Zeile mit den ebenfalls im Datensatz übermittelten Checksummen.
  
Zeile 1568: Zeile 1561:
 Prinzipiell ist es auch möglich, beim Auftreten von einzelnen Checksummenfehlern  Prinzipiell ist es auch möglich, beim Auftreten von einzelnen Checksummenfehlern 
 mit dem D-Kommando den angegebenen Datenblock durch Vergleich mit der BASIC- mit dem D-Kommando den angegebenen Datenblock durch Vergleich mit der BASIC-
-Interpreter-Liste nach rehlern abzusuchen und diese mit dem N-Kommando zu +Interpreter-Liste nach Fehlern abzusuchen und diese mit dem N-Kommando zu 
 korrigieren. korrigieren.
  
Zeile 1613: Zeile 1606:
 entgegenzutreten, ist an dieser Stelle noch einmal der Hinweis angebracht, die  entgegenzutreten, ist an dieser Stelle noch einmal der Hinweis angebracht, die 
 Abschnitte 5.3.4. und 5.3.5. besonders gründlich zu studieren und anzuwenden.  Abschnitte 5.3.4. und 5.3.5. besonders gründlich zu studieren und anzuwenden. 
-Sollte z. B. durch mehrfache Fehlerausschriften, änderungen usw. die  +Sollte z. B. durch mehrfache Fehlerausschriften, Änderungen usw. die  
-Programdarstellung auf dem Bildschirm an übersicht verlieren, kann man jederzeit  +Programmdarstellung auf dem Bildschirm an Übersicht verlieren, kann man jederzeit  
-durch Eingabe des LIST-Kommados den aktuellen Stand aller geordneten +durch Eingabe des LIST-Kommandos den aktuellen Stand aller geordneten 
 Programmzeilen erfahren. Programmzeilen erfahren.
  
Zeile 1625: Zeile 1618:
   50 L=0   50 L=0
  
-Da die Variable L als Zähler dient, muss sie in jeder Pro- +Da die Variable L als Zähler dient, muss sie in jeder Programmschleife um den Wert 1 erhöht werden:
-grammschleife um den Wert 1 erhöht werden:+
  
   60 L=L+1   60 L=L+1
Zeile 1635: Zeile 1627:
   70 POKE X,C   70 POKE X,C
  
-Die Kode-Nr. und die Bildschirmadresse werden anschliessend+Die Kode-Nr. und die Bildschirmadresse werden anschließend
 für die nächste Programmschleife um 1 erhöht: für die nächste Programmschleife um 1 erhöht:
  
Zeile 1642: Zeile 1634:
  
 Auf diese neue Adresse schreiben wir ein Leerzeichen (Kode-Nr. 32) und erhöhen  Auf diese neue Adresse schreiben wir ein Leerzeichen (Kode-Nr. 32) und erhöhen 
-anschliessend wieder die Adresse:+anschließend wieder die Adresse:
  
   100 POKE X,32   100 POKE X,32
   110 X=X+1   110 X=X+1
  
-Damit diese Befehlsfolge nach eimaligem Durchlauf beendet wird, verwenden wir +Damit diese Befehlsfolge nach einmaligem Durchlauf beendet wird, verwenden wir 
 den bedingten Sprung IF..GOTO Als Abbruchbedingung wird der Stand unseres  den bedingten Sprung IF..GOTO Als Abbruchbedingung wird der Stand unseres 
 Zählers L kontrolliert: Zählers L kontrolliert:
Zeile 1653: Zeile 1645:
   120 IF L<16 GOTO 60   120 IF L<16 GOTO 60
  
-Sind wir hier erfolgreich angelangt (zweckmässig ist hier noch einmal die +Sind wir hier erfolgreich angelangt (zweckmäßig ist hier noch einmal die 
 Kontrolle des bisherigen Programms mit LIST), können wir das Teilprogramm  Kontrolle des bisherigen Programms mit LIST), können wir das Teilprogramm 
 bereits durch Eingabe des Kommandos RUN starten und damit das Beschreiben der  bereits durch Eingabe des Kommandos RUN starten und damit das Beschreiben der 
Zeile 1675: Zeile 1667:
  
 Wünschen wir über Bedienereingabe einen leeren Bildschirm, betätigen wir  Wünschen wir über Bedienereingabe einen leeren Bildschirm, betätigen wir 
-gleichzeitig S4 und T mit anschliessendem ENTER.+gleichzeitig S4 und T mit anschließendem ENTER.
  
-Kommenn wir nun zum Zyklus 2. Mit unseren Erfahrungen vom Zyklus 1 können wir +Kommen wir nun zum Zyklus 2. Mit unseren Erfahrungen vom Zyklus 1 können wir 
 ihn jetzt sofort umsetzen: ihn jetzt sofort umsetzen:
  
Zeile 1696: Zeile 1688:
 </code> </code>
  
-Dieser Befehl lässt sich später auf Wunsch wieder zurückwandeln. Durch LIST +Dieser Befehl lässt sich später auf Wunsch wieder zurück wandeln. Durch LIST 
 können wir uns überzeugen, dass der neue Programmteil sich entsprechend der  können wir uns überzeugen, dass der neue Programmteil sich entsprechend der 
-Zeilennumerierung in das Gesamtprogramm eingefügt hat.+Zeilennummerierung in das Gesamtprogramm eingefügt hat.
  
 Bei erneutem Starten des bisherigen Programms durch RUN werden jetzt die ersten  Bei erneutem Starten des bisherigen Programms durch RUN werden jetzt die ersten 
Zeile 1724: Zeile 1716:
 wir zur Realisierung der Programmschleifen gleich noch die elegantere  wir zur Realisierung der Programmschleifen gleich noch die elegantere 
 FOR...TO...NEXT-Anweisung benutzen, können wir durch Löschen und überschreiben  FOR...TO...NEXT-Anweisung benutzen, können wir durch Löschen und überschreiben 
-einiger Programzeilen folgende Variante erhalten:+einiger Programmzeilen folgende Variante erhalten:
  
 <code> <code>
Zeile 1749: Zeile 1741:
 Maschinenprogramm, das nach demselben Algorithmus arbeitet wie unser  Maschinenprogramm, das nach demselben Algorithmus arbeitet wie unser 
 Ausgangsprogramm. Es soll im folgenden komplett wiedergegeben werden (man  Ausgangsprogramm. Es soll im folgenden komplett wiedergegeben werden (man 
-beachte die Ausführungezeit im Vergleich zum BASIC-Programm):+beachte die Ausführungszeit im Vergleich zum BASIC-Programm):
  
 <code> <code>
Zeile 1782: Zeile 1774:
 Diese Erweiterungsbaugruppen sollen ebenfalls industriell gefertigt und im  Diese Erweiterungsbaugruppen sollen ebenfalls industriell gefertigt und im 
 Handel angeboten werden. Dazu gehört ein Baugruppenträger mit Rückverdrahtung,  Handel angeboten werden. Dazu gehört ein Baugruppenträger mit Rückverdrahtung, 
-die ausser den Bauelementen zur Verstärkung der Systemsignale eine Anzahl von +die außer den Bauelementen zur Verstärkung der Systemsignale eine Anzahl von 
 Steckverbinderplätzen enthält. Steckverbinderplätzen enthält.
  
Zeile 1788: Zeile 1780:
 Selbstbau elektronischer Baugruppen haben, werden sich ihre Erweiterungen  Selbstbau elektronischer Baugruppen haben, werden sich ihre Erweiterungen 
 vielleicht selbst bauen. Dieser Selbstbau ist aber nur erfahrenen Elektronikern  vielleicht selbst bauen. Dieser Selbstbau ist aber nur erfahrenen Elektronikern 
-anzuraten, da tiefgründiges Wissen und grosse Erfahrung vorausgesetzt werden. +anzuraten, da tiefgründiges Wissen und große Erfahrung vorausgesetzt werden. 
 Weiterhin ist zu beachten, dass aus Kostengründen die Grundausbaustufe nur die  Weiterhin ist zu beachten, dass aus Kostengründen die Grundausbaustufe nur die 
 unbedingt notwendigen Bauelemente enthält, die Systemsignale an den  unbedingt notwendigen Bauelemente enthält, die Systemsignale an den 
Zeile 1808: Zeile 1800:
 ==== 6.2. Speichererweiterungen ====  ==== 6.2. Speichererweiterungen ==== 
  
-Die Grundausbaustufe des MRB Z1013 besitzt standardmässig einen 2K Byte ROM mit +Die Grundausbaustufe des MRB Z1013 besitzt standardmäßig einen 2K Byte ROM mit 
 dem Monitorprogramm im Adressbereich F000H bis F7FFH und einen 1K Byte  dem Monitorprogramm im Adressbereich F000H bis F7FFH und einen 1K Byte 
 umfassenden statischen RAM im Bereich EC00H bis EFFFH als BWS. Zusätzlich ist er  umfassenden statischen RAM im Bereich EC00H bis EFFFH als BWS. Zusätzlich ist er 
Zeile 1815: Zeile 1807:
  
 Die letztgenannte Variante erfordert für die Nutzung des BASIC-Interpreters  Die letztgenannte Variante erfordert für die Nutzung des BASIC-Interpreters 
-einen grösseren Arbeitsspeicher.+einen größeren Arbeitsspeicher.
  
 Achtung! Bei allen Erweiterungen ist zu beachten, dass die Belastbarkeit der  Achtung! Bei allen Erweiterungen ist zu beachten, dass die Belastbarkeit der 
Zeile 1821: Zeile 1813:
 ist. ist.
  
-==== 6.3. Anschluss von Steüreinheiten ==== +==== 6.3. Anschluss von Steuereinheiten ==== 
  
-Für kleine Steür und Regelungsaufgaben steht als E/A-Port eine 8 Bit- +Für kleine Steuer- und Regelungsaufgaben steht als E/A-Port eine 8 Bit- 
-Schnittstelle des PIO's zur Verfügung (PIO-Port A). Dieser Peripherjeanschluss  +Schnittstelle des PIO's zur Verfügung (PIO-Port A). Dieser Peripherieanschluss  
-hat die ElAGrundadresse 0. Die erforderlichen Anschlüsse stehen am +hat die E/A-Grundadresse 0. Die erforderlichen Anschlüsse stehen am 
 Steckverbinder X4 zur Verfügung (siehe Anlage 6). Je nach Umfang der zu  Steckverbinder X4 zur Verfügung (siehe Anlage 6). Je nach Umfang der zu 
-steürnden Aufgabe kann das bereits ausreichend sein. Das Fort wird im Modus  +steuernden Aufgabe kann das bereits ausreichend sein. Das Fort wird im Modus  
-bitgesteürte E/A betrieben und kann sowohl Eingabesignale  entgegennehmen als  +bitgesteuerte E/A betrieben und kann sowohl Eingabesignale  entgegennehmen als  
-auch den Prozess böinflussende Signale abgeben.+auch den Prozess beeinflussende Signale abgeben.
  
 Sollte bei gewachsenen Anforderungen dieser 8 Bit breite Fort nicht ausreichen,  Sollte bei gewachsenen Anforderungen dieser 8 Bit breite Fort nicht ausreichen, 
 kann zusätzlich mit den Spaltenauswahlleitungen der Tastatur eine Auswahl der  kann zusätzlich mit den Spaltenauswahlleitungen der Tastatur eine Auswahl der 
-Signalqüllen sowie der zu steürnden Einheiten vorgenommen werden. Es können +Signalquellen sowie der zu steuernden Einheiten vorgenommen werden. Es können 
 damit 10 Jeweils 8 Bit breite E/A-Ports ausgewählt werden, ohne dass  damit 10 Jeweils 8 Bit breite E/A-Ports ausgewählt werden, ohne dass 
 zusätzlicher Dekodieraufwand notwendig ist. Beispiel: Es wird eine Information  zusätzlicher Dekodieraufwand notwendig ist. Beispiel: Es wird eine Information 
Zeile 1842: Zeile 1834:
 Port. Da durch den Spaltendekoder 10 Spaltenleitungen aktiviert werden können,  Port. Da durch den Spaltendekoder 10 Spaltenleitungen aktiviert werden können, 
 ist der Anschluss von 10 verschiedenen E/A-Ports am Steckverbinder X4 möglich.  ist der Anschluss von 10 verschiedenen E/A-Ports am Steckverbinder X4 möglich. 
-Damit stehen einem Anwender ohne grossen zusätzhohen Aufwand 80 +Damit stehen einem Anwender ohne großen zusätzlichen Aufwand 80 
 Kommandoleitungen zur Verfügung, die nach eigenem Ermessen in Ein- und  Kommandoleitungen zur Verfügung, die nach eigenem Ermessen in Ein- und 
 Ausgabeleitungen eingeteilt werden können. Ausgabeleitungen eingeteilt werden können.
  
  • z1013/handbuecher/handbuch_2a.1372161270.txt.gz
  • Zuletzt geändert: 2013/06/25 11:54
  • von volkerp