Benchmarko Logo
Benchmarko Logo
Home
Projekte
CPCEMU
Software
Download
Kontakt
Links

Englisch
 
zurück

Demomaker

Anleitung zum Demomaker (v1.1)

Demomaker (v1.1) ist ein Public-Domain-Programm und darf (soll sogar) frei kopiert werden. Demomaker ist geeignet für CPC 464/664/6128

Demomaker ist aus dem Wunsch entstanden, Mitteilungen in interessanter Form zu verschicken.

Alle Funktionen lassen sich von Menüs aufrufen. Dabei sollten sich viele Teile selbst erklären.

Demomaker-Files:

  • DEMOMA.BAS (mit DEMOMA.BIN) ist Hauptprogramm
  • DEMOMA.DOC ist dieses Dokumentations-File
  • *.FNT = Zeichensätze(Fonts) der Zeichen &20-&7F(32-127)
  • *.TEX = Textfiles mit Ascii-Texten
  • *.BAL = Balken-Files mit Farbwerten und Größe der Balken

Zu den Filearten:

  • Eine fertige Demo setzt sich aus Steuerprogramm, Text, Balken, Zeichensatz zusammen. Sie kann im Hauptmenü geladen und abgespeichert werden.
  • *.TEX-Files sind Ascii-Texte, die maximal &A00 Zeichen lang sein dürfen.
  • *.FON-Files sind Zeichensatzdateien, die die Zeichenmatrizen der Zeichen &20-&7F (32-127) beinhalten. Sie sind &300 Bytes lang. Falls kein eigener Zeichensatz geladen ist, wird der Rom-Zeichensatz benutzt. Die Demo ist dann um &300 Bytes kürzer!
  • *.BAL-Files sind BalkenFiles mit den Farbwerten des Balkens. Sie bestehen aus 52 Bytes: 1 Byte Hintergrundout, 1 Byte Balkenbreite (1 bis 50) und maximal 50 Byte Farbouts des Balkens.

Aus diesen Files lassen sich Demos zusammensetzen.

  • Demo starten: Mit diesem Aufruf können Sie sich Ihre Demo ansehen. Abbruch während der Textausgabe mit <SPACE>, am Textende mit jeder beliebigen Taste.

 

Die meisten Erläuterungen braucht das "Editieren:"

Text editieren

Hier können Sie ihre Texte schreiben. Dabei wird ein eventuell schon vorhandener Text angezeigt und Anfügen ist möglich. Im Unterschied zu einem normalen Editor wird jede Tastendruck abgespeichert (auch Steuerzeichen) und Cursorbewegungen. Beenden der Eingabe mit <ESC>.

Zu den Steuerzeichen: Sie können fast alle Steuerzeichen verwenden, die Sie aus den CPC-Handbuch kennen, z.B. Bildschirm löschen, Bildschirmmodus setzen,Cursor bewegen, Bereiche löschen ... (zu erreichen Über CTRL & Buchstabentaste). Symbole definieren funktioniert nicht. Auch Pen und Paper bleiben ohne Wirkung. Dafür gibt es folgende Zusatzsteuerzeichen:

  • CTRL & eckige Klammer auf (=Ctrl27) Zeichenfarben definieren. Dieser Ctrl-Code erwartet 8 Parameter mit den Pens(0 bis 15), aus denen die einzelnen Zeichen bestehen sollen.

Zeichen editieren

Die Zeilenpens eines Zeichens verändern. Hier müssen die Farbbytes angegeben werden (&F0=Pen 1 im Mode 1 ...)

Balken editieren

Es können die Hintergrundfarbe und die Farben des Balkens verändert werden. Dabei müssen FARBOUTS angegeben werden! Die "normalen" Inks können nicht direkt verwendet werden, sie werden erst durch eine Tabelle in Farbwertregister umgewandelt, die dann mittels OR &40 (64) ans Gate-Array geschickt werden:

Ink/Border Farbout Ink/Border Farbout
0 20+64 16 07+64
1 04+64 17 15+64
2 21+64 18 18+64
3 28+64 19 02+64
4 24+64 20 19+64
5 29+64 21 26+64
6 12+64 22 25+64
7 05+64 23 27+64
8 12+64 24 10+64
9 22+64 25 03+64
10 06+64 26 11+64
11 23+64 27 01+64
12 30+64 28 08+64
13 00+64 29 09+64
14 31+64 30 16+64
15 14+64 31 17+64
Ein Balken kann aus maximal 50 Rasterzeilen bestehen.

Sonstiges

  • Ausgabegeschwindigkeit: Gibt an, wie schnell die einzelnen Zeichen ausgegeben werden sollen (1=sehr schnell bis 255=lahm). Dabei werden Steuerzeichen zusammen mit ihren Parametern ausgegeben.
  • Balkenmove: Hier können verschiedene Parameter zur Balkenbewegung verändert werden. Ich habe versucht, mögliche Fehleingaben abzufangen. Trotzdem ist es sinnvoll, die gerade geschriebene Demo vorher abzuspeichern, bevor damit experimentiert wird!
  • Zeilenanzahl: Anzahl der Rasterzeilen,innerhalb derer sich der Balken bewegen kann 1 bis &85 (133).
  • Balkenmovespeed: Bewegungsgeschwindigkeit des Balkens in 1/50.Sekunden (1=sehr schnell,255=sehr lahm)
  • Prozessdauer: Anzahl der Prozesse(hier Interrupts), die nach dem Frame-Fly vor dem "Zeichnen" des Balkens für die Textausgabe ausgeführt werden. Abhängig von der Zeilenanzahl. Bei 2 fängt der Bereich für den Balken ziemlich weit oben an (nach 2 Interrupts für den Prozess der Textausgabe), bei 5 ziemlich weit unten.
  • Interruptnachhol: Anzahl der Interrupts, die nach dem Balken "nachgeholt" werden sollen, um auf insgesamt 6 Interrupts pro Bildaufbau zu kommen. Diese Variable wird automatisch vor jedem Editieren je nach Prozessdauer für die jeweils maximale Zeilenanzahl gesetzt. Der Interrupt dient auch der Tastaturabfrage, so daß ein 0-setzen bei zu großer Zeilenanzahl und Prozessdauer eine "EndlosDemo" verursacht (wenn also der Bereich für den Balken ziemlich weit nach unten reicht).
  • Balkenstartposition: Startposition des Balkens. Sie reicht von 0(oben) bis Zeilen- anzahl minus Balkenbreite (unten).
  • Balkenaddierwert: Der Wert, um den sich die Balkenposition jedesmal verändern soll. Reicht von 1 (Standardwert) bis ...

Mögliche Belegungen:

Prozessdauer Zeilenanzahl Interruptnachhol
2 max &85(133) 4 bei Zeilanz &85
3 max &73(115) 4 bei Zeilanz &51
4 max &42(066) 5 bei Zeilanz &20
5 max &17(023)? 6 bei Zeilanz &08

Noch ein paar Anmerkungen: Falls der Balken bei der Demo flimmern sollte, dauern der Prozess, das Balkenzeichnen und die Interrupts länger als ein Bildschirmaufbau. In diesem Fall Interruptnachhol, Zeilenanzahl oder Prozessdauer verringern, so daß unterhalb des Balkens mehr Platz verbleibt. Dies kann auch manchmal nötig sein, wenn längere Interrupt-Routinen (Frame-Fly-, Ticker- oder Fast-Ticker-Event) eingehängt sind (z.B. um einen Sound zu spielen). Nach einmaligem Aufruf der Demo sind die Vektoren zur Frame-Fly- Behandlung umgebogen. Es kann dann immer nur ein Frame-Fly eingehängt werden (KL ADD FRAMEFLY), der dann während der Demo ausgeführt wird. Dafür bietet die Variable 'extein' einen Word- Speicherplatz für die Adresse einer "externen" Routine , die vor der Demo aufgerufen wird, entsprechend 'extaus' nach der Demo (&0000 bedeutet unbenutzt).

 

Viel Spaß beim Schreiben von Demos!

Marco Vieth, 23.3.1991

 

Zurück zum Anfang.


MV, 04.03.2006 20:51:46