APPLICATIONSDIVERS ★ Der Datagenerator für den CPC 464 ★

Datagenerator (Computer Schau)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 ★ 

Um Maschinenprogramme für den Schneider CPC 464 abdrucken bzw. als Listing weitergeben zu können, müssen diese in eine (für Nichtassemblerbesitzer) eingebbare Form gebracht werden. Eine Methode hierzu ist beispielsweise die Maschinencoderoutinen in sogenannte Datastatements eines Basic-Programmes abzulegen, um sie dann in die entsprechenden Speicherzellen zu poken. Auch andere Methoden, wie z. B. die Erzeugung von REM-Routinen sind denkbar. Durchgesetzt aber haben sich vor allem Listings mit den nicht immer beliebten Datazeilen.

Um den Schreibaufwand für ein derartiges Vorhaben aber möglichst gering zu halten, bedient man sich im Regelfälle irgendwelcher Hilfsprogramme, die diesen Vorgang automatisch durchführen. Viele dieser Hilfsprogramme, die allgemein Datageneratoren genannt werden und für andere Computer bereits in ausreichender Menge veröffentlicht wurden, bedienen sich des Tastaturpuffers. So auch dieses Programm.

In unseren letzten Ausgaben haben wir uns bereits näher mit dem Schneider CPC 464 beschäftigt. Wer unsere Artikel über diesen Computer verfolgt hat, weiß, daß wir bereits gezeigt haben, wie der Tastaturpuffer manipuliert werden kann (5/65). Diese Beeinflussung diente in unserer letzten Ausgabe der Computerschau dazu, den Computer zu veranlassen, daß er nach dem eigentlichen Programmlauf noch vom manipulierten Tastaturpuffer den Befehl „run 500“ bekam. Dieser Artikel, sowie auch das Listing des Programms „Keycode“ sollte dazu dienen, Sie in die Lage zu versetzen, mit dieser Technik zu arbeiten. Gleichzeitig hatten wir Ihnen mitgeteilt, daß wir in dieser Ausgabe auch den Datagenerator bringen werden. Die Erklärungen über die Manipulation selbst, sollten Sie in unserer letzten Ausgabe nachlesen. Das Verständnis über diese Technik können Sie sich vor allem durch Experimentieren erarbeiten, wenn Sie sie für eigene Anwendungen einsetzen wollen. Für den Einsatz des Datagenerators selbst, ist das Verständnis nicht erforderlich.

Die Tastaturpuffer-Manipulation selbst bereitete uns keinerlei Probleme mehr, nachdem wir das Prinzip erkannt hatten. Aber wie sollten wir von Basic aus die erzeugten Zeilen übernehmen? Der CPC 464 hat ja keinen Fullscreen-Editor. Die Methode den Bildschirm zu löschen, den Cursor auf die Zeile zu stellen, um diese dann mittels simulierten „Returns“ bzw. „Enter“ zu übernehmen, kam deshalb nicht in Frage. Aber wir fanden einen praktikablen Ausweg aus diesem kleinen Dilemma. Der CPC 464 bietet die Möglichkeit Funktionstasten frei zu definieren. Was lag also näher, als diese Möglichkeit einmal hierzu zu mißbrauchen? Wir möchten ausdrücklich darauf hinweisen, daß uns zu diesem Zeitpunkt noch kein Firmwarehandbuch oder ähnliche Literatur zur Verfügung stand. Dies erwähnen wir deshalb, weil es aufzeigt, daß man, wenn man sich mit einem Computer eingehend beschäftigt, viele Dinge auch selbst erarbeiten kann. Voraussetzung für derartige Problemlösungen sind auch kleine Hilfsprogramme, die man sich eben ausdenken und programmieren muß, wie beispielsweise den ASCII-Hexpeeker , das Programm Keycode usw.

Nachdem wir einmal die Idee hatten, mußte diese nur noch in die Tat umgesetzt werden. Das Programm kann bestimmt noch weiter verbessert werden, aber die wichtigsten „Grundfunktionen“ sind alle vorhanden.

Im Heft 4/85 hatten wir beim Bild 8 bereits angedeutet, daß ab &B446 anscheinend Interessantes für den CPC 464 steht. Ab dieser Adresse beginnt nämlich der Speicherbereich, in dem die definierten Funktionstastencodes abgelegt sind, und genau in diesem Bereich legen wir unsere generierten Zeilen ab. Allerdings nicht durch „Poken“, sondern ganz normal über die Basicfunktion „KEY“.

Der Datagenerator

Doch nun gleich zur Programmbeschreibung selbst, wobei wir uns allerdings auf das Wesentliche beschränken.

Die Zeile 100 bewirkt, daß in den Mode 2 (80 Zeichen pro Zeile) geschaltet wird. Weiterhin erfolgt die Zuweisung des Basiswertes für die neu zu erzeugenden Zeilennummern. Dieser Wert wird der Stringvariablen n$ zugewiesen.

Der Callbefehl in Zeile 100 bewirkt, daß die Tastatur initialisiert wird, das heißt, daß bereits festgelegte Keydefinitionen zurückgesetzt bzw. gelöscht werden.

Diesen Befehl konnten wir dem zwischenzeitlich vorliegenden Firmwarehandbuch entnehmen.

Durch Zeile 120 wird der Beginn und das Ende des zu übernehmenden Bereiches über den Inputbefehl festgelegt. Außerdem erfolgt noch die Umwandlung in später benötigte Stringvariablen.

In Zeile 130 wird g$ „zusammengebastelt“, diese Stringvariable erzeugt die Zeile 410. Durch Zeile 140 wird nach Zeile 260 gesprungen. Die Zeilen nach diesem Sprungziel bewirken die Ausgabe und Übernahme der neuen Zeile 410.

In Zeile 150 (diese wird nach dem Programmende durch die Manipulation angesprungen) werden verschiedenen Variablen Werte zugewiesen, wie z. B. cr$ = carriage return, oder az$ = Anführungszeichen. Ähnliches gilt für die Zeile
160. Die Variablenwerte werden nach jedem Wiedereinsprung aktualisiert, bzw. neu zugewiesen.

Die Zeilen 190 bis 240 dienen zur Erzeugung der jeweiligen neuen Zeilennummer.

Die Zeile 270 weist der Funktionstaste Null den Gesamtstring (g$) zu. Dieser enthält die Zeilennummer, das Basicbefehlswort Data, die Datas selbst und die Zeilenprüfsumme. In den Zeilen 280 und 290 erfolgt die Abfrage, ob das Programmlaufende erreicht ist und es erfolgen je nachdem die entsprechenden Zuweisungen.

Die Zeilen 310 bis 340 bewirken die Tastaturmanipulation.

Die Zeile 370 stellt die Aussprungzeile dar, wobei durch den Befehl „delete -400“ die Zeilen 100 bis einschließlich 400 gelöscht werden.

Außerdem wird durch diese Zeile die Tastatur neu initialisiert.

Nach dem kompletten Programmlauf verbleiben somit alle Zeilen ab 410, und damit der „Pokegenerator“, mit dem das Datalisting wieder zurückgepokt werden kann.

Damit Sie das abgetippte Programm auch überprüfen können, haben wir uns entschlossen, auch noch ein kleines Hilfsprogramm abzudrucken, welches die Aufgabe hat, den Speicherbereich (HIMEM) zu begrenzen, und die Zeichenfolge nr,0-255 zu erzeugen. Dadurch können Sie dann beim Programmlauf des Datagenerators überprüfen, ob dieser korrekt arbeitet.

Hilfsprogramm

Durch die Basiczeile 150 wird der RAM-Bereich mit seiner obersten Speicherstelle auf &6FFF begrenzt und die Adresse sowie der Byte-und Blockzähler vordefiniert. Das Programm schreibt im Speicherbereich von &7000 bis &76ff jeweils die nachfolgend angeführte Zahlenreihe:

Block-Nummer, 1...255. Durch die Zeilen 280 und 290 wird die momentane Adresse und der Inhalt des Bytezählers (in hexadezimaler Form) auf dem Bildschirm ausgegeben.

Nach dem Programmlauf dieses Hilfsprogrammes kann nun der Datagenerator wieder geladen werden. Um dessen Fehlerfreiheit zu überprüfen, sollte auf die Frage nach dem Anfang folgende Eingabe gemacht werden: &7000.

Auf die Frage nach dem Ende sollte die Eingabe &76FF erfolgen. Danach erfolgt der Programmlauf, und es verbleibt anschließend nur noch der Poketeil ab der Zeilennummer 410. Das „Arbeiten“ des Programmes selbst, können Sie am Bildschirm verfolgen.

Die Überprüfung kann nun folgendermaßen geschehen: In Zeile 1001 muß als erstes Statement „00“ stehen.

Danach in hexadezimaler Darstellung die Zahlenfolge von 01 bis FF, wobei am Ende jeder Basiczeile die Prüfsumme (Summe der jeweiligen Datas) steht. In Zeile 1033 ist als erster Wert 01 (Blocknummer) und dann wieder die Hexfolge 01 bis FF zu finden usw.

Lothar Miedel , ComputerSchau

Listing „Digitaluhr für den CPC 464“ auf der folgenden Seite.

Kurz und bündig

Der abgedruckte Datagenerator dient dazu, z. B. Maschinenspracheroutinen automatisch in Data-zeilen umzuwandeln. Das Listing eines Hilfsprogrammes, um die Korrektheit des abgetippten Programms zu überprüfen, ist ebenfalls abgedruckt. Der Datagenerator arbeitet durch Manipulation des Tastaturpuffers und durch Ausnutzung der Keydefinition.

★ PUBLISHER: COMPUTER SCHAU
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR:[ac=Lothar MIEDEL]
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Datagenerator    (Computer  Schau)    GERMAN    LISTINGDATE: 2023-10-29
DL: 35
TYPE: PDF
SiZE: 580Ko
NOTE: Supplied by www.acpc.me ; 2 pages/PDFlib v1.6

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

Lien(s):
» Applications » Database (Amstrad Computer User)
» Applications » Cree Data (CPC Revue)
» Applications » ProgData
» Applications » DATA-Zeilengenerator (CPC Magazin)
» Applications » DATA from nowhere
» Applications » Datagen (Moj Micro)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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 443 millisecondes et consultée 170 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.