Basirgb: farbige Videografik mit Atmega1284P
--------------------------------------------

basirgb.asm	Variante mit 192x132 Pixel Grafik, Gesamte Grafik im RAM
testbild.asm	Darstellung eines Testbildes direkt vom Flash

Steuerzeichen:
--------------
Steuerzeichen fuer Textausgabe:
 0x01: Sonderzeichen     Nachfolgendes Zeichen drucken (egal ob Steuerzeichen)
 0x02: Zeilenauswahl     Nachfolgendes Zeichen ist Zeilennummer
 0x03: Spaltenauswahl    Nachfolgendes Zeichen ist Spaltennummer
 0x04: Seite loeschen    Seite loeschen und Cursor nach links oben setzen
 0x05: Hexmodus ein/aus  Alle Zeichen als Hexzahlen anzeigen (z.B. '41 ' fuer A)
 0x06: Zeichengroesse    Nachfolgendes Zeichen ist Zeichenbreite (nur 6 oder 12 erlaubt)
 0x07: Piepston
 0x08: Vorhergehendes Zeichen loeschen
 Zaehlung von Zeilen und Spalten beginnt jeweils mit 0

Steuerzeichen fuer Grafik:
 0x10: Hintergrundfarbe  Nachfolgendes Zeichen ist Farbe, Werte 0 bis 8 erlaubt
 0x11: Vordergrundfarbe  Nachfolgendes Zeichen ist Farbe, (1=rot, 2=gruen, 4=blau, 8=durchsichtig)
 0x12: Moveto    Position setzen: 2 Zeichen fuer Spalte, 2 Zeichen fuer Zeile, jeweils erst Low dann High
 0x13: Lineto    neue Position setzen und Linie zeichnen
 0x14: Punkt zeichnen    An aktueller Position einen Punkt zeichnen, nachfolgendes Zeichen ist Farbe
 0x15: Drawbox   Viereck zeichnen (neue Position wie bei Lineto)
 0x16: Fillbox   Gefuelltes Viereck zeichnen (neue Position wie bei Lineto)
 0x17: Drawcircle  Kreis oder Ellipse zeichnen, nachfolgende 4 Zeichen ist x- und y-Durchmesser
 0x18: Fillcircle  Gefuellter Kreis (Ellipse) zeichnen, nachfolgende 4 Byte x- und y-Durchmesser
 0x19: Seite loeschen    Seite mit Hintergrundfarbe fuellen, Cursor unveraendert
 0x1A: Echo  Naechstes Zeichen zuruecksenden (zum Uebertragung testen)
 0x1B: ESC-Sequenzen (noch nicht programmiert)
 Da die Pixel je nach Monitor nicht quadratisch sind, muss jeweils x- und y-Durchmesser
 entsprechend gesetzt werden um einen runden Kreis zu erhalten.

Noch nicht perfekt:
 0x06, Position veraendert sich, Problem: bei Abstand zwischen den Zeichen geht es nicht auf
 0x13, Lineto noch optimierbar beim Zeichnen von waagrechten Linien
 Fillbox, gefuellte Kreise: Ebenfalls waagrechte Linien optimieren
 Texte an beliebiger Position noch nicht moeglich, auf Textausgabe-Raster beschraenkt.
 Audio-Ausgabe noch nicht programmiert.

Noch zu machen:
---------------
- Interlace-Modus
- ESC-Sequenzen

Bekannte Fehler:
----------------
- Vermutlich noch in rs232bas:
  fehlender Sprung vor "ma_status_auswerten:", wodurch Steuercode 0x01 nicht funktioniert
  (in basirgb schon korrigiert)
- Uebergrosse Kreise: wenn Kreise ueber den Rand hinausgehen gibt es unerwartete Resultate


Letzte Aenderungen:
-------------------
19.7.2014  Version 0.3
9.8.2014   Version 0.4


Hilfsprogramme
==============
ser.cc:
-------
Dieses Testprogramm ist im Archiv seriell.tar.gz zu finden. (www.rolfp.ch)
Es ist mit Linux und MacOSX (mit Anpassungen eventuell auch unter Windows)
verwendbar.
Der Modus 6 eignet sich gut um auch die Steuerzeichen auszuprobieren.

Fonteditor:
-----------
Damit koennen eigene Fonts erstellt werden. Als Fonttyp 1 und in der
Groesse 6x8 oder 12x16 gespeichert sind diese in basirgb direkt verwendbar.
(bei rs232bas/basi.asm hingegen Fonttyp 3 und Groesse nur 6x8 verwendbar)
Der Fonteditor ist unter www.rolfp.ch/computer/archiv/ zu finden (fonteditor.tar.gz).
