APPLICATIONSDIVERS ★ Windowmanager ★

Windowmanager (CPC Amstrad International)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 ★ 

Windows fix im Griff

Fenstertechnik in eigenen Programmen

Vielen CPC-Programmen fehlt ein wenig professioneller Touch, wie man ihn vom PC her gewohnt ist. Dies liegt jedoch nur daran, daß für MS-DOS-Com-puter fast für jeden Zweck schon Routinen vorhanden sind. Damit Sie nun Ihre Programme etwas stylen können, hier der Window-Manager, der wesentlich mehr kann,als nur Auswahlfenster zu verwalten. Bei der Entwicklung eines Window-Generators auf dem CPC müssen mehrere Aspekte in Betracht gezogen werden.

Als erstes muß eigenständig erkannt werden, ob es sich bei dem CPC um einen 464 oder aber um einen 664 oder 6128 handelt. Weiterhin ist wichtig, daß die Window-Routinen nicht allzuviel des wertvollen Speicherplatzes in Anspruch nehmen und somit noch genug Speicherplatz für das eigentliche Programm vorhanden ist. Trotzdem muß darauf geachtet werden, die Routinen so sicher wie möglich zu gestalten und Fehleingaben abzufangen. Alle neuen Befehle lassen sich von BASIC aus mit "'ON ERROR GOTO" abfragen. Gerade diese Eigenschaft macht es auch dem Nur-BASIC-Programmierer möglich, Programme zu schreiben. Die Nutzung von Window-Manager beschränkt sich jedoch auf Mode 1 und 2. Mode 0 wäre aufgrund der übergroßen Zeichen nicht sinnvoll für eine gelungene Window-Steuerung.
Sieben neue Befehle

|SETMEMORY : Dieser Befehl muß nach der Installation des MC-Codes aufgerufen werden. Der Aufruf veranlaßt den Window-Manager dazu, den Bereich vom Himem bis hin zu BASIC für die Window-Spei-cherung zu nutzen. Window-Manager setzt hierbei selbständig mit einem MEMORY-Befehl die Speicherober-genze herab und füllt den freigewordenen Platz mit den Window-Daten. Sollten zuvor schon Windows definiert worden sein, werden diese nach SETMEMORY nicht mehr beachtet.

|SETMEMORY,banknr : Anstatt die Window-Daten im Hauptspeicher abzulegen, kann der Window-Manager auch einen vom Benutzer gewählten Bereich einer Speichererwei-terung nutzen, "banknr" gibt dabei eine Zahl von 0 bis 31 an, die für eine 16 kByte große Speicherbank steht. Für die 6128-User stehen aufgrund der 64 kByte mehr Speicher die Bänke 0 bis 3 zur Verfügung. Wenn dieser Befehl benutzt wird, darf der Window-Manager nicht im Bereich &4000bis &7FFF stehen, da dieser Bereich kurzzeitig aus-geblendetwird.

|SETMEMORY,start,ende : Dieser Befehl verwendet für die Window-Speicherung den mil "start" und "ende" benannten Bereich im Hauptspeicher.

|CHECK,wert : Normalerweise wird über die abgelegten Daten eine Prüfsumme gebildet. Dadurch wird weitgehend ausgeschlossen, daß die gespeicherten Daten nach einem Öffnen verändert werden und beim Schließen des Windows der Computer abstürzt. Mit "wert=0" wird diese Funktion abgeschaltet (Zeitgewinn 5 Prozent), "wert=l" schaltet sie wieder ein. Beim Einschalten wird die Routine CLOSE aufgerufen, um eine Ausgangslage zu gewährleisten. Der Sinn dieser Routine liegt darin, daß bei der Entwicklung eines Programms oftmals in verschiedenen Speicherbereichen gearbeitet wird und so ein Überschreiben der Fensterdaten nicht ausgeschlossen werden kann. Sobald das Programm jedoch aus der Entwicklungsphase heraus ist, kann die Checksummenbildung im Sinne der Geschwindigkeit ausgeschaltet werden.

|SHADOW,rahmen,schatten : Hiermit läßt sich festsetzen, welche Farbe beim nächsten Fenster für den Rahmen und den Schatten gewünscht wird. Die Werte reichen je nach Mode von 0 bis 1 (Mode2)oderObis3 (Mode 1).

|SHADOW, matrixl, matrix2, rahmen, schatten : Zusätzlich zu den Farben kann noch eine Schattenmatrix gewählt werden. Die Werte von "matrixl" beziehungsweise "matrix2" haben mit der Verknüpfung und der Art der Darstellung von Zeichen am Bildschirm zu tun. Hierbei möchten wir auf die Demo (MW3.DEM) auf der DATABOX verweisen.

|OPEN, paper, pen,x,y, länge, höhe : Der Computer öffnet an der Position "x,y" ein Fenster, welches die angegebene Länge und Höhe gemessen in Zeichen hat. Das Fenster erhält die Farbe "paper" mit der Schreibfarbe "pen". Die Bildschirminformationen unterhalb des Fensters werden komprimiert abgespeichert. Je nach Art des Befehls SETMEMORY werden die Daten entsprechend abgelegt und die neuen Obergrenzen des Puffers (Himem) korrigiert.

|OPEN,@txt$, paper, pen, x,y, länge, höhe : Zusätzlich zu den vorhergenannten Aktionen erhält das Window noch einen zusätzlichen Strich lur die Überschrift, die sich in der Variablen "txt$" befinden muß.

|CLOSE,anz : Es wird bewirkt, daß "anz" Windows entgegen der Reihenfolge beim Öffnen der Fenster geschlossen werden. Gleichzeitig werden alle Daten eines alten Windows #7 wieder aktiv. Falls die Routine CHECK angeschaltet ist, wird vordem Schließen die Prüfsumme verglichen. Sollte ein Fehler auftreten, wird die Routine abgebrochen, und es sollte kein weiteres Fenster geschlossen weiden.

|CLOSE : |CLOSE ohne Parameter schaltet alle Parameter in den Ursprungszustand zurück. Der durch Windows belegte Speicher wird wieder freigegeben. Falls der Window-Manager beim Schließen einen Fehler in den abgelegten Window-Daten entdeckt hat, kann so die Arbeil fortgesetzt werden, ohne das System neu zu starten.

|INVERS, x,y, länge : Dieser Befehl setzt an die Position "x,y" einen inversen Balken mit anzugebender Liinge. Hiermit kann auf einfache und schnelle Weise eine Menüführung programmiert werden. Näheres entnehmen Sie bitte der Demo.

|INVERS,matrix,x,y,länge : Es kann zusätzlich eine Verknüpfungsmatrix angegeben werden. Dies ist zum Beispiel im Mode 1 von Vorteil, da so bestimmte Farbkombinationen hergestellt werden können.

|CHAR,x,y,@wert : Dieser Befehl wurde speziell für die 464-Besitzer geschrieben. Er setzt den Cursor an die Position "x,y" und testet die Stelle auf ein ASCII-Zeichen. Falls es identifiziert werden konnte, steht in "wert" die jeweilige ASCII-Nummer.

Flexible Programmierung Mit dem dritten Listing wird es möglich, den Window-Manager an eine andere Speicheradresse anzupassen. Sollte also der vorgesehene Bereich für den Window-Manager schon von anderen Routinen genutzt werden, kann er damit schnell in einen anderen Bereich geschoben werden.

rs, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1992
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1992
★ AUTHOR: Alfred Roßmadl
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» WindowManager    (CPC  Amstrad  International)    GERMANDATE: 2020-04-26
DL: 279
TYPE: ZIP
SiZE: 13Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » RSX Menu (Amstrad Computer User)
» Applications » RSX : Sound (CPC Magazin)
» Applications » Rsx - Basic Aid Plus (Amstrad Action)
» Applications » RSX Scroll (CPC Amstrad International)
» Applications » Compilation: RSX
» Applications » RAM-Dump (CPC Amstrad International)
Je participe au site:
» 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
Page créée en 216 millisecondes et consultée 1693 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.