APPLICATIONSDIVERS ★ Text ins RAM|CPC Magazin) ★

Stringverwaltung fuer VOXTEX-Erweiterung (CPC Magazin)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Diese komfortable Stringverwaltung für die vortex-Erweiterung erleichtert die Arbeit mit Strings ganz erheblich.

Das Programm realisiert eine Stringverwaltung für die vortex-RAM-Erweiterung und arbeitet im normalen Modus, also nicht unter BOS.

Nachdem Sie das Programm abgetippt haben, speichern Sie es mit SAVE "STR-VERW.BAS” ab und starten mit RUN. Falls Sie einen Fehler gemacht haben, erscheint "Fehler in Zeile..”, und Sie müssen die angegebene Zeile korrigieren. Danach wird die Befehlserweiterung als Binärdatei abgelegt. Will man die Verwaltung verwenden, so muß man dieses kleine Programm benutzen:

Die eingeklammerten Symbolbefehle sind dann notwendig, wenn ein anderes MC-Programm den Platz ab &A000 braucht. Dieses Programm kann nach der obigen Sequenz mit Symbolbefehlen ohne MEMORY-Befehl eingelesen werden. Ist kein zweites Programm vorhanden, sollte vor dieser Sequenz ohne die Symbolbefehle ein normales SYMBOL AFTER 32 kommen. In diesem Fall kann maximal nur bis zum 32. Zeichen ins RAM kopiert werden. Danach stehen insgesamt 22 RSX-Befehle zur Verfügung.

Die Verwaltung arbeitet mit der RAM-Erweiterung von vortex zusammen. Der Grad des Ausbaus spielt keine Rolle. Die Speichererweiterung besitzt max. 8 Banks mit 64 KByte, die in zwei Blöcke zu je 32 KByte gespalten sind. Jeder dieser Blöcke läßt sich in den normalen RAM-Bereich einblenden. Die Stringverwaltung benutzt nur den unteren Teil der Banks in dem unter BOS die Basic-Programme stehen. Der obere kann von anderen Programmen genutzt werden. Wer interne Information über die Speichererweiterung haben möchte, kann sich mit einem frankierten Rückumschlag (DIN A4) direkt bei vortex ein Informationsblatt anfordern. In ca. einem Monat wird es auch ein Buch über die Steuerung der Karte geben.

Nun aber zu den Befehlen. Die Verwaltung spaltet jede Bank in gleich große Strings auf, die von 0 bis zur max. Anzahl, die sich nach der Stringlänge richtet, durchnumeriert sind. Dadurch wird eine Garbage Collection verhindert. Ein String ist also mit seiner Stringnummer (Abkürzung: SN) und der Banknummer genau definiert. Es gibt hier keine Variablennamen, sondern nur Nummern, die wie bei dimensionierten Strings verwaltet werden.

Mit |BANK, < Banknummer > kann eine Bank angewählt werden. Die Banknummer geht von 0-X, wobei sich X nach der Größe der Karte richtet (64=0, 128=1, 256=3, 320=4, 512=7). Alle anderen Befehle beziehen sich nun auf die angewählte Bank.

Mit |INIT, < Stringlänge >, < Füllwert > wird die aktuelle Bank, die durch das |BANK-Kommando definiert ist, neu initialisiert. Dabei wird die gesamte Bank gelöscht. Alle Strings erhalten die Länge <Stringlänge> und werden anfangs mit Zeichen <Füllwert> gefüllt. Normalerweise ist das 32, der ASCII-Code für ein Leerzeichen.

Die Anzahl der Strings in einer Bank richtet sich nach deren Stringlänge. Sie kann mit dem Kommando |ANZAHL, < Klammeraffe Integervariable > ausgelesen werden. Die Variable, in die die Anzahl kommen soll, muß vom Typ Integer und schon mit einem Wert gefüllt sein. Nach dem Kommando steht die Anzahl der Strings in der übergebenen Variablen.

Mit |CLEAR kann die aktuelle Bank gelöscht werden.

Mit |PEEK, < Adresse >, < Klammeraffe Integervariable > wird der Inhalt der Adresse in der aktuellen Bank in die Integervariable eingelesen.

Mit |DRUCK, < Stringnummer (SN) >, < Anfang >, < Ende > wird der Stringteil, der mit Anfang und Ende definiert ist, auf dem Drucker ausgegeben. Die Definition mit < Anfang > und < Ende > entspricht der des MID$-Befehls. Somit wird ein genauer Stringteil mit < Stringnummer >, < Anfang >, < Ende > definiert. Abgekürzt mit SN, A, E. (Bei IDRUCK wird kein Vorschub ausgegeben!)

Mit |LOWER, SN, A, e , wird der Stringteil in Kleinbuchstaben umgewandelt.

Mit |UPPER, SN, A, E wird der Stringteil in Großbuchstaben umgewandelt.

Mit |FILL, SN, A, E, < Füllwert > wird der Stringteil mit dem Füllwert aufgefüllt. Der Füllwert ist der ASCII-Code eines Zeichens.

Mit |BCOPY, < Klammeraffe Stringvariable >, SN, < Anfang > wird die Stringvariable in die aktuelle Bank, Stringnummer SN ab < Anfang > kopiert.

Mit |STRING, < Klammeraffe Stringvariable >, SN, A, E wird der Stringteil (SN, A, E) in die Stringvariable kopiert.

Mit |DREHE, SN, A, E wird der Stringteil umgedreht.

Mit |SEEK, SN, < Stelle >, < Klammeraffe INT-Variable > wird der ASCII-Wert der Stringsteile SN, A (= Stelle) in die Variable eingelesen.

Mit |SOKE, SN, < Stelle >, < ASCII-Wert > wird in die Stringstelle SN, A der ASCII-Wert geschrieben.

Mit |SWAP, SN, SN werden die beiden Strings SN und SN untereinander ausgetauscht. Der eine enthält dann den Text des anderen.

Mit |REIN, SN1, SN2 werden alle Strings zwischen SN1 und SN2 nach unten verschoben. Der String n, der zwischen den beiden Werten liegt, bekommt den Inhalt des Strings n+1. Dadurch wird eine Zeile an der Position SN1 eingeschoben.

Mit |RAUS, SN1, SN2 geschieht das gleiche, nur bekommt diesmal n den String n-1. Zusätzlich wird an der Stelle SN1 der String gelöscht und der Rest nachgezogen.

Mit |UNTEN, SN1, SN2, < lnt-Var > wird von unten her ab SN2 bis zu SN1 nach einem anderen String gesucht. Wird er nicht gefunden, d.h., alle Strings sind gleich, so erhält die Variable den Wert -1. Ansonsten hat sie den Wert, bei dem zum ersten Mal ein anderer String auftritt. (Sie hat dann dessen Stringnummer.) Damit kann man z.B. das Textende bei einem Textprogramm recht schnell bestimmen.

Mit |VERGLEICH, SN, SN, < lnt-Var > werden die beiden Strings verglichen. Die Integervariable hat folgende Werte:

  • 0 Beide Strings sind gleich.
  • 1 Der 1. String ist größer.
  • 2 Der 2. String ist größer.

Mit |VERSCHIEB, SN, A, E, SN, < Stelle > wird der Stringteil SN, A, E in den String mit der 2. Stringnummer ab kopiert.

Mit |VORNE, SN, < Stelle >, < ASCII-Wert >, < lnt-Var > wird von vorne ab < Stelle > nach einem anderen Wert als angegeben gesucht. Trifft die Verwaltung auf einen anderen Wert, so enthält die Variable die Stelle. Kommen nur gleiche vor, ist die Variable=0.

Mit |HINTEN, SN, < Stelle>, < ASCII-Wert >, < lnt-Var > geschieht das gleiche, nur von hinten. Hiermit läßt sich eine Art LEN-Befehi simulieren.

Eventuelle Fehlermeldungen werden in Deutsch ausgegeben. Mit den Befehlen läßt sich z.B. eine gute Textverarbeitung für die Erweiterung schreiben. Auch andere Anwendungen sind denkbar. Wer schon immer mit BOS und dessen Variablenverwaltung nicht so ganz zufrieden war, kommt hier voll auf seine Kosten.

CPC Magazin

★ PUBLISHER: CPC Magazin
★ YEAR: 1986
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC MAGAZIN 1985 1986
★ AUTHOR: Dieter Braun
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Stringverwaltung  fuer  VOXTEX-Erweiterung    (CPC  Magazin)    LISTING    GERMANDATE: 2021-02-02
DL: 175
TYPE: PDF
SiZE: 1047Ko
NOTE: 6 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Fullscreen (CPC Amstrad International)
» Applications » Screen-Manager (CPC Amstrad International)
» Applications » Timer
» Applications » Electron (CPC Revue)
» Applications » Scribe (AM-Mag)
» Applications » Head Aligment Kit
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 420 millisecondes et consultée 818 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.