APPLICATIONSCREATION GRAPHIQUE ★ Happy Computer ★

Background-Painter (Happy Computer)Applications Creation Graphique
★ 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 ★ 

Malermeister

Titelbilder und Hintergrundgrafiken zaubert »Background-Painter« komfortabel und schnell. Mühevolle »Planspiele« auf Millimeter-Papier und die anschließende Rechenarbeit zur programmtechnischen Umsetzung gehören damit der Vergangenheit an. Lassen Sie Ihrer Kreativität freien Lauf.

Um ein gutes Spiel zu programmieren, muß neben Spielidee und Sound auch die Grafik stimmen. Aber es ist recht mühsam, erst die Hintergrundgrafiken auf Papier zu entwerfen und dann das entsprechende Programm einzutippen. Ärgerlich wird es besonders dann, wenn man nachträglich etwas ausbessern will. Mit dem »Background-Painter« ersparen Sie sich diesen unnötigen Arbeitsaufwand.

Das Programm funktioniert ähnlich einem Construction-Set, jedoch lassen sich auch die einzelnen Bauelemente neu definieren. Die Zeichen haben eine Größe von 4x8 Punkten in 16 Farben (Modus 0). Gemäß der Zeichenmatrix passen in eine Zeile 40 und in eine Spalte 25 Zeichen. Folglich haben 1000 Zeichen auf dem Bildschirm Platz. Jedes Bild belegt somit 1000 Byte im Speicher. Hinzu kommt noch die Tabelle für die Zeichendefinition, die bei maximaler Ausnutzung der 256 verschiedenen Zeichen nochmals 4 KByte Speicher einnimmt.

Sie entwerfen zunächst mit »Background Painter« die Grafik und übernehmen dann die automatisch erzeugte Zeichendefinition samt Bildschirmaufbau in Ihr eigenes Programm. Der Vorteil besteht darin, daß Sie nach Herzenslust auf dem Bildschirm herumprobieren können, bis Ihnen das Bild gefällt.

Maschinencode-Routinen für zeitkritische Abläufe

Das Programm besteht aus einem Basic-Teil (Listing 1) und Maschinencode-Routinen (Listing 2) zur Ausgabe des Cursors, Vergrößerung des Bildes, das Auslösen der Garbage-Collection (Speicher-Reorganisation), etc. Den Startadressen sind gleich am Beginn (Listing 1, Zeilen 175 bis 190) Namen zugeordnet, um die Lesbarkeit zu verbessern. Listing 3 enthält die Daten für das Titelbild. Wenn Sie auf das Titelbild als Demonstration verzichten wollen, dürfen Sie Listing 3 weglassen. Die Funktion des Programmes bleibt gewährt.

Die Speicherorganisation:

Basic
8732 hex---------------------------
Maschinencode-Routinen
8E71 hex---------------------------
Daten für ünterroutinen
9283 hex---------------------------
FarbentabelleDieser Bereich
enthält die
Bilddaten für die
vollständige
Grafik
9293 hex---------------------------
Bereich für Bilddaten
967B hex---------------------------
Bereich für Zeichensatz
A67B hex---------------------------

Wie bauen Sie nun die fertigen Grafiken in Ihr Programm ein? Dazu benötigen Sie die Maschinenroutine aus Listing 4. die die Zeichen aus den vom Background-Painter erstellten Tabellen herausliest und als Grafik auf dem Bildschirm sichtbar macht. Nachdem diese Routine auf Diskette gespeichert ist, läßt sie sich später an jede beliebige Adresse laden. Dann muß man jedoch das höchstwertige Byte der neuen Adresse im 17ten Byte ändern {normalerweise steht dort»&C0<). Der Aufruf erfolgt mit

»CALL adresse,Spielfeld,zeichensatz «.

adresse ist die Lade-Adresse der Maschinenroutine.

spielfeld (Bereich für Bilddaten) ist die Adresse, ab der sich die Tabelle mit den Zeichennummern befindet. Sie liegt direkt hinter der Farbtabelle (siehe Speicherübersicht).

zeichensatz ist die Adresse, ab der die Zeichendefinition gespeichert ist (befindet sich hinter der Spielfeldtabelle).

Hier nun Schritt für Schritt die Vorgehensweise anhand eines Beispiels:

Die fertige Grafik haben Sie bereits gespeichert. Zuerst schützen Sie den Speicher ab Adresse 7000 hex mit dem Befehl »MEMORY &6FFF« vor Überschreiben und laden dorthin den Maschinencode mit »LOAD "prscreen.bin ", &7000«. Die Grafik laden Sie ebenfalls, beispielsweise durch »LOAD "grafik",&8000«. Den ersten Wert im Zeichensatz-Speicher belegt der »Background Painter«. Er muß bei Darstellung der Grafik Null sein, da sonst lauter Punkte in der Grafik erscheinen. Also führen Sie immer ein »POKE &8000+1016,0« aus (8000 hex ist die Basisadresse, dazu kommen 16 Farb-Byte und 1000 Byte für die Spielfeldtabelle). Nun setzen Sie noch die Farben entsprechend den Werten der ersten 16 Byte:

»FOR i=0 TO 15:INK i,PEEK (&8000+1):NEXT i«.

Um die Grafik dann aufzubauen, genügt der Aufruf »MODE 0:CALL &7000,&8000+16,&8000+1016«.

Während des Programmlaufs erscheint am linken Bildschirmrand das Menü. Die einzelnen Menüpunkte wählen Sie mit dem Cursor aus, indem Sie ihn auf die Symbole richten und mit Tastendruck die entsprechende Funktion aktivieren. Steuern läßt sich der Cursor wahlweise mit einem Joystick oder den Cursor-Steuertasten und der Copy-Taste als Feuerknopf. Bewegen Sie den Cursor zum unteren Bildschirmrand, scrollt das Menü nach oben und zeigt die restlichen Funktionen an. Angefangen von oben bedeuten die einzelnen Menüpunkte:

Paint: enthält die wichtigsten Funktionen für die Gestaltung der Grafik. Mit dem Cursor bestimmen Sie die Position und setzen das aktuelle Zeichen durch Druck auf den Feuerknopf (Copy-Taste). Dieses Zeichen muß bereits definiert sein. Es läßt sich so lange beliebig oft auf den Bildschirm bringen, bis Sie ein anderes Zeichen als aktuelles Zeichen bestimmen. Das geschieht, indem Sie den Cursor auf ein Zeichen richten und es mit »CTRL-G« anwählen. Ist das gewünschte Zeichen auf dem Bildschirm nicht vorhanden, rufen Sie mit »CTRL-T« die gesamte Zeichensatztabelle auf. Neben diesen beiden stellt »Paint« noch weitere Unterfunktionen bereit:

CTRL-T Aufruf der Zeichensatz-Übersicht.

CTRL-G Zeichen unter dem Cursor wird aktuelles Zeichen.

CTRL-N Ausgabe des ASCII-Codes für das aktuelle Zeichen.

CTRL-Z Umschalten zwischen vergrößerter und normaler Darstellung.

CTRL-D definiert neues Zeichen (Zeichen unter dem Cursor wird in die Definition übernommen, es können also vorhandene Zeichen als Vorlage dienen).

CTRL-R ändert definierte Zeichen

In den letzten beiden Routinen (CTRL-D und CTRL-R) sind ‘cigende Funktionen verfügbar:

CTRL-O überlagert zwei Zeichen (zweites Zeichen hat höhere Priorität).

CTRL-C Farbe für Punkt wählen.

CTRL-B Abbruch der Definition.

CLR löscht Definition.

ENTER übernimmt Definition in die Zeichensatztabelle.

CTRL-Z vergrößert Zeichen bei der Definition.

Nur bei der vergrößerten Zeichendefinition:

CTRL (und Pfeil-Taste hoch/runter) spiegelt an der x-Achse.

CTRL (und Pfeil-Taste rechts/links) spiegelt an der y-Achse.

SHIFT (und Pfeil-Taste) schiebt in jeweilige Richtung.

CTRL-S sucht Zeichen in Zeichensatztabelle.

Die Definition bei vergrößerter Darstellung unterscheidet sch etwas von der normalen Darstellung. Hier wird ein Punkt nmer durch Drücken des Feuerknopfes gesetzt und mit »Space« (Leer-Taste) gelöscht.

Color: Im Color-Menü wählen Sie aus der Farbpalette die 16 Farben für Ihre Grafik. Die Wahl der einzelnen Farbtöpfe erfolgt wieder mit Hilfe des Cursors. Die Farb-Nummern sind durch Bewegung des Joysticks (der Cursor-Tasten) nach rechts oder links zu erhöhen beziehungsweise zu erniedrigen. Bei Druck von »CTRL-A« erscheint wieder das Bild, und die Farbe ist direkt im Bild veränderbar. ENTER übernimmt den Farbwert.

Line: zieht zwischen zwei frei wählbaren Punkten eine

Linie Diese wird in Elemente (Zeichen) von 4x8 Punkten zerlegt und im Zeichensatz abgelegt. Das Programm beachtet dabei selbständig, daß ein Zeichen nicht mehrfach im Speicher steht. Die Position der Endpunkte läßt sich mit dem Cursor zunächst grob festlegen. Durch Drücken des Feuerknopfes (der Copytaste) erscheint ein Punkt, dessen Positionierung dann die endgültige Position bestimmt.

CTRL-C legt die Farbe des Punktes fest.

CTRL-B löscht die Positionen.

Circle: funktioniert ähnlich »Line«. Jedoch bestimmt die erste Position den Mittelpunkt, die zweite Position den Radius des Kreises.

Zoom: dient der Vergrößerung des aktuellen Bildschirmsektors. Dieser Sektor umfaßt 5x3 Zeichen. In der Mitte befindet sich der Cursor. Das Bild scrollt bei Positionsänderung über den Bildschirm. Bis auf »CTRL-T« und »CTRL-N« haben Sie auch bei vergrößerter Darstellung alle Funktionen aus Menüpunkt »Paint« zur Verfügung.

Copy: kopiert Inhalte von Bildschirmbereichen. Sie markieren den zu kopierenden Bereich mit dem Cursor an der linken oberen und rechten unteren Ecke. Dabei bleibt das Zeichen des Cursors an der jeweiligen Stelle stehen. Nun steht der Bildschirmsektor im Puffer und läßt sich beliebig oft kopieren. Dazu geben Sie durch Drücken des Feuerknopfes die neue Position der linken oberen Ecke an. Mit »Space« wählen Sie einen anderen Bereich.

Move: ist genauso zu bedienen wie »Copy«, jedoch löschen Sie den ursprünglichen Bildschirmbereich.

Fill: füllt einen markierten Bildschirmbereich (siehe »Copy«) mit einem gewählten Zeichen. Mit der Leertaste bestimmen Sie einen neuen Bereich.

Garbage ist eine Routine, die alte, nicht mehr benötigte Collection: Zeichen aus dem Zeichenspeicher entfernt. Dabei werden Zeichen gelöscht, die zwar im Zeichensatz noch definiert sind, aber in der Grafik keine Verwendung mehr finden. So läßt sich nach Fertigstellung einer Grafik der Zeichensatz von überflüssigen Zeichen bereinigen und Speicherplatz sparen.

Clear Screen: löscht den Bildschirm ganz oder teilweise. Beim Löschen von Bildteiien ist wieder nach dem Prinzip »von links-oben nach rechts-unten« der Bereich zu markieren.

Clear Character: löscht ein Zeichen, das Sie nur mit dem Cursor auszuwählen brauchen. Dabei rücken die Zeichen im Zeichensatz um eine Position nach vorn. In das Hauptmenü gelangen Sie, indem Sie das erste Zeichen der Zeichensatztabelle (Leerzeichen) anwählen.

Help: ruft eine Hilfsfunktion auf.

Value: dient zur Ausgabe der zweimal acht Byte (linke Seite und rechte Seite), aus denen sich jedes Zeichen zusammensetzt, auf Bildschirm oder Drucker.

Disc: stellt folgende Funktionen zur Wahl:

load file lädt alles, was Sie zuvor mit »Background Pain-ter« gespeichert haben (Grafik und/oder Zeichensatz). Dabei erkennt das Programm selbständig, ob eine Grafik vollständig oder nur teilweise gespeichert ist. Somit lassen sich beliebig viele Teile zusammen in den Bildschirm iaden, wobei Sie die ursprüngliche oder eine neue Position wählen,

save all speichert sowohl den Zeichensatz als auch die Grafik.

save picture speichert nur das Bild, weshalb Sie darauf achten sollten, daß bei wiederholtem Laden sich auch der ursprüngliche Zeichensatz im Speicher befindet (sonst gibt es nur Zeichen-Wirrwarr). Auch einzelne Bildschirmbereiche lassen sich speichern, um diese dann wieder in anderen Bildern zu verwenden, save speichert den Zeichensatz oder auch nur ein-table zelne Zeichen. Die Markierungen werden hier, wie auch bei »save picture«, mit dem Cursor fest* gelegt.

load table append hängt einen allein gespeicherten Zeichensatz an einen schon bestehenden an. Dabei müssen Sie darauf achten, daß Sie die maximale Länge von 255 Zeichen nicht überschreiten,

show picture und show table erlauben nach dem Ladevorgang die Betrachtung des Bildes oder der Grafik, catalog gibt ein Inhaltsverzeichnis des Kassetten-/Disketten-Laufwerks aus.

menu löst die Rückkehr ins Hauptmenü aus (wie die Enter-Taste).

Peter Ullrich/ja , HC

★ PUBLISHER: Happy Computer
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: HAPPY COMPUTER-SCHNEIDER SONDERHEFT
★ AUTHOR: Peter Ullrich
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Background-Painter    (Happy  Computer-Sonderheft)    GERMANDATE: 2021-03-10
DL: 151
TYPE: ZIP
SiZE: 16Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » CAD-3D
» Applications » 3-D-Apfelmännchen (Schneider Magazin)
» Applications » 3D-Road (Sizin Amstrad)
» Applications » 3D Surface Plotter (Computing with the Amstrad)
» Applications » 3D-Dreh (Happy Computer)
» Applications » 3-D-Funktionsplotter (Computer Partner)
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 746 millisecondes et consultée 731 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.