APPLICATIONSUTILITAIRES PROGRAMMATION EN LIGNE DE COMMANDE (RSX) ★ VARPUT ★

VarputApplications Utilitaires Programmation En Ligne De Commande (rsx)
★ 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 ★ 

Zweite Speicherbank genutzt

Zwei Speicherbänke besitzt Ihr CPC 6128, doch leider nutzt er nur eine. »Varput« stellt Dinen die zweite zur Verfügung.

Jeder Basic-Programmierer kennt das Problem: Plötzlich wird der Speicherplatz knapp, obwohl der Programmtext doch erst eine Länge von 25 KByte erreicht hat. Den Rest belegen Variablen, Arrays und selbstdefinierte Zeichen. Der Besitzer eines CPC 6128 erinnert sich dann freudig daran, daß sein Computer mit 128 KByte Arbeitsspeicher ausgerüstet ist. Will man in seiner zweiten RAM-Bank Strings speichern, geht das mit der Basic-Erweiterung »Bankmanager« mehr oder weniger komfortabel. Nach einem einfachen Verfahren, dort Variablen abzulegen oder auch nur einen einfachen PEEK- oder POKE-Befehl auszuführen, sucht man jedoch vergeblich.

Hier schafft »Varput« Abhilfe: Die Befehle zur Variablenablage in der zweiten Bank heißen POKE, INT und REAL und sind als RSX-Befehle in das Betriebssystem eingebunden. Dabei gelten folgende Syntaxregeln:

POKE ,adresse,wert

Funktioniert wie ein normaler POKE, spricht jedoch die zweite RAM-Bank an.

INT,adresse,wert

Schreibt einen Integer-Wert an die Adresse.

REAL ,adresse, @a

Legt an der Adresse fünf Byte ab. »@a« bezeichnet die Adresse einer Real variablen, die den Wert enthält.

An dieser Stelle sei nochmals darauf hingewiesen, daß sich alle Adressen auf die zweite RAM-Bank beziehen. Sie dürfen im Bereich 1 bis 66535 liegen (die Null ist aus später beschriebenen Gründen ausgeschlossen). Sie müssen beim Speichern beachten, daß sich die Adressen für POKEs mindestens um den Wert 1, fiirlnte-aerzahlen um 2 und für Reals um 5 unterscheiden.

Das Auslesen der gespeicherten Zahlen ist mit RSX-Befehlen unkomfortabel. Aus diesem Grunde kommt das folgende Verfahren zur Anwendung: Im Basic des CPC gibt es drei Funktionen, die nur positive Argumente zulassen: Es handelt sich um SQR, LOG und LOGIO. Varput »verbiegt« die Vektoren dieser Funktionen und ändert die Fehlerbehandlungsroutinen, daß bei Angabe eines negativen Arguments die Zahl als Adresse interpretiert wird. SQR ist dem RSX-Befehl POKE, LOG der RSX INT und LOGIO der RSX REAL zugeordnet. Bei positiven Argumenten arbeiten die Funktionen in der gewohnten Weise (da SQR (0) mathematisch definiert ist, sind keine Lesebefehle an Adresse 0 auszuführen). Macht man sich nun zunutze, mittels DEF FN Benutzerfunktionen auch mit mehreren Argumenten zu definieren, lassen sich mit den neuen Befehlen ganze Variablenfelder in der zweiten Bank verwalten.

Leider beansprucht aber das Lesen einer Variablen aus der zweiten Bank etwa die doppelte Zeit wie das Lesen einer »normalen« Variablen.

Varput arbeitet mit jedem Basic-Programm zusammen, da es vollkommen relokatibel ist. Auch der Bankmanager läßt sich natürlich weiterverwenden.

Wollen Sie Varput nur aus dem Basic heraus nutzen, tippen Sie zunächst den Basic-Lader (Listing 1; Listing 2 ist das Demoprogramm) ein und starten ihn. Vergessen Sie dabei nicht, das Programm vor dem Starten sicherheitshalber zu speichern.

Er erzeugt eine Binärdatei mit dem Namen »VARPUT. BIN«. Damit ist die Arbeit des Basic-Laders beendet.

Wollen Sie Varput in eigene Programme integrieren, benötigen Sie oberhalb von HIMEN 400 Byte Platz.

Angenommen, die Anfangsadresse liegt bei A000 hex, dann laden Sie Varput mit

LOAD "VARPUT. BIN ", &A000

Um das Programm zu relokalisieren, geben Sie nun »CALL &A000+40« ein und binden es schließlich mit »CALL &A000+103« ein.

Schließlich können Sie den durch die Relokalisie-rungstabelle und die Einbindungsroutine belegten Platz noch durch »MEMORY &A000 +150-1« wieder freigeben.

Natürlich läßt sich A000hex durch jede andere Adresse ersetzen, die jedoch oberhalb 8000hex liegen muß. Eine Einbindung in Abhängigkeit von HIMEM sehen Sie im Beispielprogramm. Wenn Sie lieber in Maschinensprache programmieren, steht Ihnen mit Listing 3 der Assembler-Quellcode zur Verfügung. Dort können Sie auch sehen, wie sich die zweite Speicherbank in eigenen Programmen nutzen läßt. Dafür ist nämlich nur die Routine ab dem Label »Switch« nötig, da sie die Umschaltung der Bänke übernimmt.

Andreas Bard/ja , HappyComputer

★ PUBLISHER: Happy Computer
★ YEAR: 1987
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: HAPPY COMPUTER 1987
★ AUTHOR: Andreas Bard
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-VarPut    (Happy  Computer)    LISTING    GERMANDATE: 2017-01-20
DL: 206
TYPE: PDF
SiZE: 449Ko
NOTE: Uploaded by hERMOL ; 3 pages/PDFlib v1.6

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

Lien(s):
» Applications » CP/M-Plus-BIOS abspeichern (Schneider Magazin)
» Applications » Arbre Généalogie (CPC Revue)
» Applications » Compilation : Demon PD - PD 27 - Utilities #3
» Applications » Reaktionstest (Schneider Aktiv Special)
» Applications » Compilation : Mega Bonanza - 100 Amstrad programs
» Applications » Knack Die Nub (CPC Amstrad International)
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 670 millisecondes et consultée 2088 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.