Projekt Project Hardware Hardware Bedienung Operation BASIC (1) BASIC (1) BASIC (2) BASIC (2) BASIC (3) BASIC (3) Interna Internals Beispiele Examples Erweiterungen Extensions Bibliotheken Libraries Treiber Driver Programme Programs Bezugsquellen: Where to buy: Bausatz Kit Leerplatine Empty board | AVR-ChipBasic2 - Treiber AVR ChipBasic2 - Drivers V1.45 (c) 2006-2012 Jörg Wolfram V1.45 (c) 2006-2012 Jörg Wolfram # 1 Videotreiber ohne externe Hardware 1 video driver without external hardware ## 1.1 24x40 Zeichen Treiber (Bibliothekscode 0x80) 1.1 24x40 characters driver (library code 0x80) ### 1.1.1 Allgemeines 1.1.1 General Diesen Modus erlaubt ein Darstellung von Text und Pseudografik mit eine Auflösung von 24 Zeilen zu je 40 Zeichen. This mode permits the display of text and graphics with pseudo a resolution of 24 lines of 40 characters. Allerdings ist die Darstellung nur monochrom (grün auf schwarz) möglich, die Ausgabepins für den roten und blauen Farbkanal werden hochohmig geschaltet. However, the representation is in monochrome (green on black) possible, the output pins for the red and blue channels are switched to high impedance. Eine Zeile im Bildschirmspeicher besteht aus 45 Bytes. A line on the display memory consists of 45 bytes. Zuerst kommen 5 Bytes bei denen jeweils 1 Bit für die Invertierung eines der nachfolgenden Zeichen verantwortlich ist. First 5 bytes are used for each of which one is responsible for the bit inversion of the subsequent characters. Danach folgen 40 Zeichen-Bytes, Bit 7 der Zeichen wird ignoriert. This is followed by 40-character byte, bit 7 of the character is ignored. Die Zeichen sind mit 8 Pixeln horizontal und 10 Pixeln Vertikal definiert, der Zeichensatz mit insgesamt 128 Zeichen befindet sich im RAM und kann auch geändert werden. The characters are 8 pixels horizontally and 10 pixels vertically defined, the character set with a total of 128 characters is in RAM and can also be changed. Da der Zeichensatz vom Speicherbedarf her nicht mehr in den Treiber gepasst hat, muß dieser auf den Programmplatz 7 geladen werden. Since the character set has the memory requirements ago no longer fit in the driver, it must be downloaded to the program location 7. Ein passender Zeichensatz ist charset10.bin . A suitable font is charset10.bin. Der Bildspeicher ist folgendermaßen aufgeteilt: The image memory is allocated as follows:
Anfangsadresse Start address | Endadresse End address | Bytes Bytes | Funktion Function
0 0 | 1079 1079 | 1080 1080 | 24 Zeilen Zeichen 24 lines of characters
1080 1080 | 1319 1319 | 240 240 | zTintern benutzt zTintern used
1320 1320 | 2599 2599 | 1280 1280 | Zeichensatz Charset
2600 2600 | 2759 2759 | 160 160 | ungenutzt unused
Der Zeichensatz im RAM ist zeilenweise aufgebaut, zuerst 128 Bytes für die erste Zeile, dann 128 Bytes für die zweite Zeile und so weiter bis zu 128 Bytes für die zehnte und damit letzte Zeile. The character set in the RAM is set up in rows, first 128 bytes for the first row, then 128 bytes for the second row, and so on up to 128 bytes for the tenth and last row. Der Zeichensatz auf Programmplatz 7 der als Quelle dient, hat eine ähnliche Struktur, nur dass hier eine Zeile 256 Bytes hat. The character set to channel 7 of serving as a source, has a similar structure, except that a line has 256 bytes. Das heisst auch dass der Treiber nur die unteren 128 Zeichen des Zeichensatzes nutzt. This also means that the driver only uses the lower 128 characters of the character set. ### 1.1.2 Funktionen 1.1.2 Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber zu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver must only be replaced by VMODE 7 in the USER Video Mode. Dabei wird dann der Zeichensatz von Programmplatz 7 in den RAM kopiert. It then character set of program number 7 is copied to RAM. Mit COLOR 0 werden die Zeichen invertiert ausgegeben, COLOR 1 schaltet in den nichtinvertierten Modus zurück. COLOR 0 with the sign inverted output, COLOR 1 returns to the non-inverted mode. Ebenfalls ist es möglich, 16 (0x00...0x0f) benutzerdefinierte Zeichen zu nutzen. It is also possible, 16 (0x00 .. 0x0f) to use custom characters. Dazu ist der I/O Bereich von 0xa00 bis 0xaff reserviert. To the I / O area of ​​0xa00 to 0xaff reserved. Dazu sind jeweils 16 aufeianderfolgende Bytes für ein Zeichen verantwortlich, genutzt werden nur die ersten 10 Bytes. To each 16 bytes aufeianderfolgende are responsible for a sign, used only the first 10 bytes. Innerhalb der Bytes werden die Bits 7...0 benutzt, wobei Bit 7 dem am weitesten links liegenden Pixel entspricht. Bytes within the bits 7 .. 0 are used, with bit 7 corresponds to the leftmost pixel. Alternativ kann auch mittels VPOKE direkt in den Bildschirmspeicher geschrieben werden, hier gibt es aber keinen linearen Zusammenhang zwischen Zeichenbytes und Adresse wie beim OUT Befehl, der bereits die Umrechnung der Adressen vornimmt. Alternatively, can also be written directly by VPOKE to screen memory, but here there is no linear relation between characters and byte address as the OUT command that already performs the conversion of addresses. ## 1.2 24x50 Zeichen Treiber (Bibliothekscode 0x81) 1.2 24x50 characters driver (library code 0x81) ### 1.2.1 Allgemeines 1.2.1 General Diesen Modus erlaubt ein Darstellung von Text und Pseudografik mit eine Auflösung von 24 Zeilen zu je 50 Zeichen. This mode permits the display of text and graphics with a resolution of pseudo 24 lines of 50 characters. Allerdings ist die Darstellung nur monochrom (grün auf schwarz) möglich, die Ausgabepins für den roten und blauen Farbkanal werden hochohmig geschaltet. However, the representation is in monochrome (green on black) possible, the output pins for the red and blue channels are switched to high impedance. Eine Zeile im Bildschirmspeicher besteht aus 50 Bytes. A line on the display memory consists of 50 bytes. Der dazugehörige Zeichensatz mit 6 Pixeln horizontal und 10 Pixeln vertikal muss auf Programmplatz 7 geladen werden. The corresponding character set with 6 pixels horizontally and 10 pixels vertically must be loaded into the program location 7. Er enthält 256 Zeichen wobei die Zeichen ab 128 denen von 0...127 entsprechen aber invertiert dargestellt werden. It contains 256 characters, the characters from 128 to those of 0 .. 127 match but are highlighted. Ein passender Zeichensatz ist charset_50z.bin . A suitable font is charset_50z.bin. Der Bildspeicher ist folgendermaßen aufgeteilt: The image memory is allocated as follows:
Anfangsadresse Start address | Endadresse End address | Bytes Bytes | Funktion Function
0 0 | 1199 1199 | 1200 1200 | 24 Zeilen Zeichen 24 lines of characters
1200 1200 | 2759 2759 | 1560 1560 | ungenutzt unused
Der Zeichensatz im Flash ist zeilenweise aufgebaut, zuerst 256 Bytes für die erste Zeile, dann 256 Bytes für die zweite Zeile und so weiter bis zu 256 Bytes für die zehnte und damit letzte Zeile. The character set in the flash is constructed in rows, first 256 bytes for the first row, then 256 bytes for the second row, and so on up to 256 bytes for the tenth and last row. Der Zeichensatz muss auf Programmplatz 7 stehen, die Anfangsadresse ist im Treiber fest codiert. The character set should be to channel 7, the initial address is encoded in the drivers fixed. ### 1.2.2 Funktionen 1.2.2 Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber zu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver must only be replaced by VMODE 7 in the USER Video Mode. Mit COLOR 0 werden die Zeichen invertiert ausgegeben, COLOR 1 schaltet in den nichtinvertierten Modus zurück. COLOR 0 with the sign inverted output, COLOR 1 returns to the non-inverted mode. ## 1.3 24x60 Zeichen Treiber (Bibliothekscode 0x82) 1.3 24x60 characters driver (library code 0x82) ### 1.3.1 Allgemeines 1.3.1 General Diesen Modus erlaubt ein Darstellung von Text und Pseudografik mit eine Auflösung von 24 Zeilen zu je 60 Zeichen. This mode permits the display of text and graphics with pseudo a resolution of 24 lines of 60 characters. Allerdings ist die Darstellung nur monochrom (grün auf schwarz) möglich, die Ausgabepins für den roten und blauen Farbkanal werden hochohmig geschaltet. However, the representation is in monochrome (green on black) possible, the output pins for the red and blue channels are switched to high impedance. Eine Zeile im Bildschirmspeicher besteht aus 50 Bytes. A line on the display memory consists of 50 bytes. Der dazugehörige Zeichensatz mit 6 Pixeln horizontal und 10 Pixeln vertikal muss auf Programmplatz 7 geladen werden. The corresponding character set with 6 pixels horizontally and 10 pixels vertically must be loaded into the program location 7. Er enthält 256 Zeichen wobei die Zeichen ab 128 denen von 0...127 entsprechen aber invertiert dargestellt werden. It contains 256 characters, the characters from 128 to those of 0 .. 127 match but are highlighted. Ein passender Zeichensatz ist charset_60z.bin . A suitable font is charset_60z.bin. Der Bildspeicher ist folgendermaßen aufgeteilt: The image memory is allocated as follows:
Anfangsadresse Start address | Endadresse End address | Bytes Bytes | Funktion Function
0 0 | 1439 1439 | 1440 1440 | 24 Zeilen Zeichen 24 lines of characters
1440 1440 | 2759 2759 | 1320 1320 | ungenutzt unused
Der Zeichensatz im Flash ist zeilenweise aufgebaut, zuerst 256 Bytes für die erste Zeile, dann 256 Bytes für die zweite Zeile und so weiter bis zu 256 Bytes für die zehnte und damit letzte Zeile. The character set in the flash is constructed in rows, first 256 bytes for the first row, then 256 bytes for the second row, and so on up to 256 bytes for the tenth and last row. Der Zeichensatz muss auf Programmplatz 7 stehen, die Anfangsadresse ist im Treiber fest codiert. The character set should be to channel 7, the initial address is encoded in the drivers fixed. Das letzte Pixel jedes Zeichens wird 2 mal wiederholt, dadurch sind zB die Pseudografiksymbole unsymmetrisch angelegt. The last pixel of each character is repeated 2 times, characterized as the pseudo-graphic symbols created unbalanced. {Funktionen Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. {Features The latest driver has installed any additional functions that are controlled via the "normal" edition BASIC commands. Um den Treiber zu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver must only be replaced by VMODE 7 in the USER Video Mode. Mit COLOR 0 werden die Zeichen invertiert ausgegeben, COLOR 1 schaltet in den nichtinvertierten Modus zurück. COLOR 0 with the sign inverted output, COLOR 1 returns to the non-inverted mode. ## 1.4 Tile/Sprite Mode Treiber (Bibliothekscode 0x90) 1.4 Tile / sprite mode driver (library code 0x90) ### 1.4.1 Allgemeines 1.4.1 General Der Tile-und-Sprite Treiber ist in erster Linie zum Programmieren von Spielen gedacht. The tile and sprite driver is primarily intended for programming games. Es gibt einen Tilemap der sich sowohl in X als auch in Y-Richtung wiederholt. There is a Tilemap repeats itself in both the X and in the Y-direction. Von diesem Map ist ein Fenster von 16 Tiles horizontal und 13 Tiles Vertikal sichtbar, die Position dieses Fensters lässt sich pixelweise über den gesamten Bereich verschieben. From this map is a window of 16 tiles horizontally and 13 visible Tiles vertical, the position of this window can be moved over the entire pixel area. Jede der 1024 Tile-Positionen enthält einen Index auf eine der 49 Tiles. Each of the 1024 tile positions contains an index to one of the 49 tiles. Jede dieser Tiles ("Fliesen") besteht aus 8 x 8 Pixeln, von denen jedes eine der 16 darstellbaren Farben haben kann. Each of these tiles ("tiles") consists of 8 x 8 pixels, each of which one of the 16 displayable colors can have. Neben umfangreichen Tile-Manipulationsmöglichkeiten gibt es auch noch Software-Sprites die selbst aus einer Tile bestehen und sich im gesamten Tilemap pixelweise bewegen können. In addition to extensive tile manipulation, there are also software-even the sprites consist of a tile and can move throughout Tilemap pixelwise. Am oberen und unteren Bildschirmrand gibt es jeweils noch eine Textzeile, die sich wie die ersten beiden Zeilen im Modus 0 verhalten. At the top and bottom of the screen there is still a line of text in each case, which behave like the first two lines in mode 0. Der Bildspeicher ist folgendermaßen aufgeteilt: The image memory is allocated as follows:
Anfangsadresse Start address | Endadresse End address | Bytes Bytes | Funktion Function
0 0 | 39 39 | 40 40 | System System
40 40 | 1063 1063 | 1024 1024 | Tilemap Tilemap
1064 1064 | 2599 2599 | 1568 1568 | 49 Tiledefinitionen 49 Tiledefinitionen
2632 2632 | 2691 2691 | 60 60 | 2 Zeilen Zeichen 2 lines
2692 2692 | 2751 2751 | 60 60 | 2 Zeilen Attribute 2 lines attributes
2752 2752 | 2759 2759 | 8 8 | nicht benutzt not used
Der Tilemap hat eine Größe von 32 mal 32 Tiles und wiederholt sich sowohl in X als auch in Y-Richtung. The Tilemap has. Size is 32 by 32 tiles and is repeated in both the X and Y direction Jede der 49 Tiles von je 8 x 8 Pixeln wird durch 32 Bytes repräsentiert, wobei jeweils 4 Bit für ein Pixel stehen. Each of the 49 tiles of 8 x 8 pixels is represented by 32 bytes, with 4 bits each represent one pixel. ### 1.4.2 Systemvariablen 1.4.2 System Variables Die Systemvariablen liegen alle in den ersten 40 Bytes der Bildspeichers und lassen sich mit VPOKE und VPEEK() ansprechen. The system variables are all within the first 40 bytes of video memory and can be addressed with VPOKE and VPEEK ().
Adresse Address | Größe Size | Funktion Function
0 0 | Byte Byte | Y-Koordinate (Punkt links oben) des sichtbaren Ausschnitts Y coordinate (top left point) of the visible section
1 1 | Byte Byte | X-Koordinate (Punkt links oben) des sichtbaren Ausschnitts X-coordinate (top left point) of the visible section
4 4 | Word Word | Anfangsadresse des Sprite-Bereiches im Speicher, wird durch Funktion 24 Initialisiert Start address of the sprite area in memory is Initialized by Function 24
6 6 | Byte Byte | Anzahl der initialisierten Sprites, wird durch Funktion 24 Initialisiert Number of uninitialized sprite, Initialized by Function 24
### 1.4.3 Die Sprite-Struktur im Array 1.4.3 The Sprite structure in the array Jedes der Sprites belegt 16 Bytes im Array Each sprite occupies 16 bytes in the array
Offset Offset | Bedeutung Importance
0 0 | Neue Y-Koordinate New Y coordinate
1 1 | Neue X-Koordinate New X coordinate
2 2 | Alte Y-Koordinate Old Y coordinate
3 3 | Alte X-Koordinate Old X-coordinate
4 4 | Sprite-Tile Sprite Tile
5 5 | Beginn der 4 Backup-Tiles Start of 4 Backup Tiles
6 6 | Transparenz-Farbe Transparent color
7 7 | sichtbar (0/1) visible (0/1)
8 8 | Sprite aktiv (0/1) Sprite active (0/1)
9 9 | Kollisionsflag Kollisionsflag
10 10 | horizontale Schrittweite horizontal pitch
11 11 | vertikale Schrittweite vertical increments
12 12 | Tile-Index 1 für Restore Tile index 1 for Restore
13 13 | Tile-Index 2 für Restore Tile index 2 for Restore
14 14 | Tile-Index 3 für Restore Tile index 3 for Restore
15 15 | Tile-Index 4 für Restore Tile index 4 for Restore
### 1.4.4 Funktionen 1.4.4 Functions Um den Treiber zu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver must only be replaced by VMODE 7 in the USER Video Mode. Die Ansteuerung der beiden Textzeilen am oberen und unteren Bildschirmrand erfolgt über die "normalen" BASIC Ausgabebefehle. The activation of the two lines of text at the top and bottom of the screen via the "normal" BASIC output commands. Die Zeile am oberen Rand entspricht dabei der Textzeile 0 und die am unteren Rand der Textzeile 1. The line at the upper edge corresponds to the line of text at the bottom of 0 and the first row of the text Weiterhin stehen noch folgende Funktionen über CALL zur Verfügung: Furthermore, the following functions are available through CALL:
Funktionsnummer Function number | Funktion Function
9 9 | Tile-Map mit konstantem Tile-Index füllen Tile Tile Map fill with constant index
10 10 | Tile-Map mit einer Tile nach Bitmap setzen Tile-map set with a tile to bitmap
11 11 | Tile-Map Bereich mit konstantem Tile Index füllen Tile-map region with a constant fill Tile Index
12 12 | Einen Tile-Index im Tile-Map setzen A tile index in the tile map set
13 13 | Einen Tile-Index im Tile-Map abfragen A tile index in Tile Map Query
14 14 | Tile mit Farbe füllen Tile with color fill
15 15 | Vordefiniertes Muster in Tile zeichnen Predefined pattern in Tile draw
16 16 | Array-definiertes Muster in Tile zeichnen Array-defined pattern in Tile draw
17 17 | Muster aus Zeichensatz in Tile zeichnen Pattern of character set in tile draw
18 18 | Tile horizontal spiegeln Tile flip horizontally
19 19 | Tile vertikal spiegeln Tile vertical mirror
20 20 | Tile 90 Grad im Uhrzeigersinn drehen Tile 90 degrees clockwise
21 21 | Tile 90 Grad entgegen dem Uhrzeigersinn drehen Tile 90 degrees anti-clockwise
22 22 | Tile kopieren Tile Copy
23 23 | Tiles zusammenfügen Tiles merge
24 24 | 2 Tiles rotieren 2 tiles rotate
25 25 | Sprites initialisieren Sprites initialize
26 26 | Sprite definieren Sprite define
27 27 | Sprite positionieren Sprite position
28 28 | Sprite aktivieren Sprite activate
29 29 | Sprite deaktivieren Sprite off
30 30 | Ein einzelnes Sprite zeichnen A single Sprite draw
31 31 | Ein gezeichnetes Sprite löschen A drawn sprite delete
32 32 | Alle Sprites sequentiell zeichnen All sprites draw sequentially
33 33 | Alle Sprites sequentiell löschen All sprites delete sequentially
34 34 | Alle Sprites-Koordinaten neu berechnen All sprites coordinates recalculate
35 35 | Alle Sprites bewegen All sprites move
36 36 | --- ---
37 37 | --- ---
### 1.4.5 Funktion 9 : Tile-Map mit konstantem Tile-Index füllen 1.4.5 Function 9: Tile Map filled with constant tile index Diese Funktion setzt den gesamten Tile-Bereich auf die angegebene Tile. This function sets the whole tile area on the specified tile.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.6 Funktion 10 : Tile-Map mit einer Tile nach Bitmap setzen 1.4.6 Function 10: Tile Map-set with a tile to bitmap Diese Funktion setzt im gesamten Tile-Bereich auf die angegebene Tile, wenn das korrespondierende Bit im Array auf "1" gesetzt ist. This function is available in the entire region to the specified tile Tile, when the corresponding bit is set in the array to "1". Der Bitmap-Bereich im Array umfasst 128 Bytes und ist wie folgt organisiert: The bitmap area of ​​the array comprises 128 bytes and is organized as follows: Die 32 Zeilen sind von oben nach unten organisiert The 32 rows are arranged from top to bottom Jede Zeile besteht aus 4 Bytes, von links nach rechts Each line consists of 4 bytes, from left to right Innerhalb jedes Bytes steht Bit 7 für die am weitesten links stehende Tile Within each byte bit 7 is the leftmost tile
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Bitmap-Position im Array (0...640) Bitmap position in the array (0 .. 640)
Parameter 2 Parameter 2 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.7 Funktion 11 : Tile-Map Bereich mit konstantem Tile Index füllen 1.4.7 Function 11: Tile-map region with a constant fill Tile Index Diese Funktion setzt den angegebenen Tile-Bereich auf die angegebene Tile. This function sets the specified tile area on the specified tile. Start- und Endposition ergeben sich aus 32 * Zeile + Spalte . Start and end positions resulting from 32 * row + column. Dabei gibt es weder in X noch in Y Richtungen Einschränkungen, da sich der Tile-Map quasi unendlich wiederholt. There are neither X nor Y directions restrictions because the Tile Map quasi infinitely repeated.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Startposition Start position
Parameter 2 Parameter 2 | Endposition End position
Parameter 3 Parameter 3 | Tile-Nummer (0...48) Tile number (0 .. 48)
Rückgabewert Return Value | 0 0
### 1.4.8 Funktion 12 : Einen Tile-Index im Tilemap setzen 1.4.8 Function 12: Set a tile index in Tilemap Setzt einen Tile-Index im Tilemap auf den angegebenen Wert. Sets a tile index in Tilemap to the specified value.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Y-Koordinate (0...31) Y coordinate (0 .. 31)
Parameter 2 Parameter 2 | X-Koordinate (0...31) X coordinate (0 .. 31)
Parameter 3 Parameter 3 | Tile-Nummer (0...48) Tile number (0 .. 48)
Rückgabewert Return Value | 0 0
### 1.4.9 Funktion 13 : Einen Tile-Index im Tilemap abfragen 1.4.9 Function 13: Query a tile index in Tilemap Liefert den an der angegebenen Stelle befindlichen Tile-Index zurück. Returns the tile located at the specified point index.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Y-Koordinate (0...31) Y coordinate (0 .. 31)
Parameter 2 Parameter 2 | Y-Koordinate (0...31) Y coordinate (0 .. 31)
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | Tile-Index Tile index
### 1.4.10 Funktion 14 : Tile mit Farbe füllen 1.4.10 Function 14: Tile with color fill Füllt die Tile Parameter 1 mit der Farbe Parameter 2 . Fills the tile with the color parameter 1 parameter 2.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | Farbe (0...15) Color (0 .. 15)
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.11 Funktion 15 : Vordefiniertes Muster in Tile zeichnen 1.4.11 Function 15: Predefined pattern in Tile draw Im Treiber sind bereits 32 verschiedene (zweifarbige) Muster definiert, die zum Erstellen von Tiles genutzt werden können. The drivers are already 32 different (two-color) patterns are defined, which can be used to create tiles. Parameter sind die Tile-Nummer, die Musternummer und ein Byte für die Festlegung der Zeichenfarbe. Parameters are the tile number, the pattern number and one byte for the determination of the character color. Dabei werden die Pixel in der Tile mit der eingestellten Farbe gesetzt, die eine "1" im Muster haben, alle anderen Pixel bleiben unverändert. Here, the pixels are set in the tile with the selected color, which have a "1" in the pattern, all other pixels are unchanged.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | Musternummer (0...31) Sample number (0 .. 31)
Parameter 3 Parameter 3 | Zeichenfarbe (0...15) Character color (0 .. 15)
Rückgabewert Return Value | 0 0
### 1.4.12 Funktion 16 : Array-definiertes Muster in Tile zeichnen 1.4.12 Function 16: draw array defined pattern in Tile Es können auch Muster im Array definiert werden, um Tiles zu erstellen. It can also be defined in the array pattern to create tiles. Erster Parameter ist die Tile, die gefüllt werden soll. First parameter is the tile that will be filled. Der zweite Parameter gibt die Arrayzelle an, ab der das Muster abgelegt ist. The second parameter is the array cell, from which the pattern is stored. Dieses besteht aus 8 aufeinanderfolgenden (Byte-) Zellen, bei denen Bit 7 das Pixel ganz links und Bit 0 das Pixel ganz rechts bestimmen. This consists of 8 consecutive (byte) cells in which the bit 7 determine the leftmost pixel and bit 0, the pixel on the right. Der dritte Parameter ist wieder ein Byte für die Festlegung der Zeichenfarbe. The third parameter is again one byte for defining the character color. Dabei werden die Pixel in der Tile mit der eingestellten Farbe gesetzt, die eine "1" im Muster haben, alle anderen Pixel bleiben unverändert. Here, the pixels are set in the tile with the selected color, which have a "1" in the pattern, all other pixels are unchanged.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | Array-Startzelle (0...760) Start cell array (0 .. 760)
Parameter 3 Parameter 3 | Zeichenfarbe (0...15) Character color (0 .. 15)
Rückgabewert Return Value | 0 0
### 1.4.13 Funktion 17 : Muster aus Zeichensatz in Tile zeichnen 1.4.13 Function 17: patterns of character set in tile draw Mit dieser Funktion können Zeichen aus dem Zeichensatz als Muster für Tiles benutzt werden. This feature allows characters from the character set to be used as a blueprint for Tiles. Da die Tiles eine Größe von 8x8 Pixeln haben, der Zeichensatz aber eine von 6x10 Pixeln, werden oben und unten je eine Pixelzeile abgeschnitten und rechts sowie links eine leere Pixelzeile hinzugefügt. Since the tiles have a size of 8x8 pixels, the character set but one of 6x10 pixels, are the top and bottom cut off a line of pixels left and right, and added an empty row of pixels. Erster Parameter ist die Tile, die gefüllt werden soll. First parameter is the tile that will be filled. Der zweite Parameter gibt das Zeichen aus dem Systemzeichensatz an, welches das Muster bestimmt. The second parameter specifies the character of the system font, which determines the pattern. Der dritte Parameter ist wieder ein Byte für die Festlegung der Zeichenfarbe, wobei nur die Pixel in der Tile mit der eingestellten Farbe gesetzt werden, die eine "1" im Muster haben. The third parameter is again one byte for defining the character color, and only the pixels are set in the tile with the selected color, which have a "1" in the pattern. Alle anderen Pixel bleiben unverändert. All other pixels are unchanged.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | Zeichen (0...255) Character (0 .. 255)
Parameter 3 Parameter 3 | Zeichenfarbe (0...15) Character color (0 .. 15)
Rückgabewert Return Value | 0 0
### 1.4.14 Funktion 18 : Tile horizontal spiegeln 1.4.14 Function 18: Tile flip horizontally Die angegebene Tile wird horizontal gespiegelt. The specified tile is flipped horizontally. Was vorher links war ist danach rechts und umgekehrt. What was before is left then to the right and vice versa.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.15 Funktion 19 : Tile vertikal spiegeln 1.4.15 Function 19: Tile vertical mirror Die angegebene Tile wird vertikal gespiegelt. The specified tile is flipped vertically. Was vorher oben war ist danach unten und umgekehrt. What was previously above the bottom, and vice versa.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.16 Funktion 20 : Tile um 90 Grad im Uhrzeigersinn drehen 1.4.16 Function 20: Tile rotate 90 degrees clockwise Die angegebene Tile wird um 90 Grad im Uhrzeigersinn gedreht. The specified tile is rotated 90 degrees clockwise.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.17 Funktion 21 : Tile um 90 Grad entgegen dem Uhrzeigersinn drehen 1.4.17 Function 21: Tile rotated 90 degrees counterclockwise Die angegebene Tile wird um 90 Grad entgegen dem Uhrzeigersinn gedreht. The specified tile is rotated 90 degrees counterclockwise.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile-Nummer (0...48) Tile number (0 .. 48)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.18 Funktion 22 : Tile kopieren 1.4.18 Function 22: Copy Tile Diese Funktion kopiert den Inhalt einer Tile in eine andere. This function copies the contents of one tile to another.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Quell-Tile (0...48) Source Tile (0 .. 48)
Parameter 2 Parameter 2 | Ziel-Tile (0...48) Target Tile (0 .. 48)
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.19 Funktion 23 : Tiles zusammenfügen 1.4.19 Function 23: Tiles merge Diese Funktion zeichnet den Inhalt der zweiten Tile in die erste. This function records the contents of the second tile in the first. Pixel, die in der zweiten Tile die Transparenz-Farbe haben, bleiben unverändert. Pixels in the second Tile have the transparent color do not change.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Quell- und Ziel-Tile (0...48) Source and destination tile (0 .. 48)
Parameter 2 Parameter 2 | Zeichen-Tile (0...48) Sign-Tile (0 .. 48)
Parameter 3 Parameter 3 | Transparenzfarbe (0...15) Transparency color (0 .. 15)
Rückgabewert Return Value | 0 0
### 1.4.20 Funktion 24 : Tiles rotieren 1.4.20 Function 24: Tiles rotate Diese Funktion rotiert den Inhalt zweier Tiles. This function rotates the contents of two tiles. Die beiden Tiles liegen gedacht nebeneinander oder übereinander, was am einen "Ende" hinausgeschoben wird, erscheint wieder am anderen Ende. The two tiles are designed by side or one above the other, which is delayed on an "End" will appear again at the other end. Der erste Parameter gibt die Tile an, die im gedachten Verbund oben bzw. links steht, der zweite Parameter gibt die Tile an, die im gedachten Verbund unten bzw. rechts steht. The first parameter specifies the tile, which is at the imaginary composite up or left, the second parameter specifies the tile, which is at the bottom and right imaginary composite.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Tile 1 (0...48) Tile 1 (0 .. 48)
Parameter 2 Parameter 2 | Tile 2 (0...48) Tile 2 (0 .. 48)
Parameter 3 Parameter 3 | Verschiebe-Richtung (0...3) Displacement direction (0 .. 3)
Rückgabewert Return Value | 0 0
Der dritte Parameter gibt die Richtung an: The third parameter specifies the direction:
Parameter 3 Parameter 3 | Richtung Direction
0 0 | Verschiebung/Rotation nach oben Displacement / rotation up
1 1 | Verschiebung/Rotation nach rechts Displacement / rotation to the right
2 2 | Verschiebung/Rotation nach unten Displacement / rotation down
3 3 | Verschiebung/Rotation nach links Displacement / rotation to the left
### 1.4.21 Funktion 25 : Sprites initialisieren 1.4.21 Function 25: Initialize sprites Mit dieser Funktion lassen sich bis zu 8 Sprites initialisieren. This function can be initialized up to 8 sprites. Die Sprite-Daten liegen danach im Array ab der angegebenen Adresse, für jedes Sprite werden 16 Bytes benötigt. The sprite data is then in the array starting at the specified address, for each sprite needs to be 16 bytes.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Array Position (0...511) Array position (0 .. 511)
Parameter 2 Parameter 2 | Anzahl der Sprites (1...8) Number of sprites (1 .. 8)
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | Maximale Sprite-Nummer Maximum sprite
### 1.4.22 Funktion 26 : Sprite definieren 1.4.22 Function 26: Define sprite Mit dieser Funktion lassen sich die in Funktion 24 Initialisierten Sprites hinsichtlich ihres Aussehens definieren. This function can be initialized in the function 24 sprites defined in appearance. Der erste Parameter ist die Sprite-Nummer, der zweite die Tile welche zur Darstellung benutzt werden soll. The first parameter is the sprite number, the second is the tile which can be used for display. Der dritte Parameter gibt schließlich die Farbe an, welche bei Darstellen des Sprites transparent sein soll. The third parameter is finally on the color that should be transparent in showing the sprite. Gleichzeitig wird das betreffende Sprite aktiviert. At the same time the corresponding sprite is enabled.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Sprite Nummer (0...7) Sprite number (0 .. 7)
Parameter 2 Parameter 2 | Tile Nummer (0...48) Tile number (0 .. 48)
Parameter 3 Parameter 3 | Transparenz-Farbe (0...15) Transparency color (0 .. 15)
Rückgabewert Return Value | 0 0
### 1.4.23 Funktion 27 : Sprite positionieren 1.4.23 Function 27: Sprite position Mit dieser Funktion werden die in Funktion 24 Initialisierten Sprites positioniert. With this function, the initialized in function 24 sprites are positioned. Der erste Parameter ist die Sprite-Nummer, der zweite und dritte Parameter geben die Position des Sprites im Map an. The first parameter is the sprite number, the second and third parameters specify the position of the sprite in the map. Der 4. The 4th und fünfte Parameter geben die Schrittweite an, um die das Sprite bei den Bewegungsfunktionen verschoben wird. and fifth parameters specify the increment by which the sprite will be moved to the motion functions. Der Wert 1 bedeutet dabei eine Verschiebung nach rechts oder unten um 1 Pixel, der Wert 255 eine Verschiebung nach links bzw. oben um 1 Pixel. A value of 1 means a shift to the right or down by 1 pixel, the value 255. Shifts to the left or up by 1 pixel
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Sprite Nummer (0...7) Sprite number (0 .. 7)
Parameter 2 Parameter 2 | Y Position (0...255) Y position (0 .. 255)
Parameter 3 Parameter 3 | X Position (0...255) X position (0 .. 255)
Parameter 4 Parameter 4 | Y Bewegung (0...255) Y motion (0 .. 255)
Parameter 5 Parameter 5 | X Bewegung (0...255) X motion (0 .. 255)
Rückgabewert Return Value | 0 0
### 1.4.24 Funktion 28 : Sprite aktivieren 1.4.24 Function 28: Enable sprite Aktiviert das Sprite innerhalb der Sequenz, so dass es nächstes mal mitgezeichnet wird. Enabled the sprite within the sequence so that it is drawn on screen next time.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Sprite Nummer (0...7) Sprite number (0 .. 7)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.25 Funktion 29 : Sprite deaktivieren 1.4.25 Function 29: Disable Sprite Deaktiviert das Sprite innerhalb der Sequenz, so dass es nächstes mal nicht mitgezeichnet wird. Disabled the sprite within the sequence so that it is not even drawn on screen next.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Sprite Nummer (0...7) Sprite number (0 .. 7)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.26 Funktion 30 : Ein einzelnes Sprite zeichnen 1.4.26 Function 30: Draw a single Sprite Zeichnet ein einzelnes Sprite, Daten befinden sich an der angegebenen Arrayadresse. Draws a single sprite, data located at the address specified array. Dabei werden die original Tiles in die 4 Backup-Tiles kopiert, das Sprite dorthinein gezeichnet und die Tile-Indizies für die 4 Tiles auf die Backup-Tiles "umgebogen". Here, the original tiles are copied to backup the 4 tiles, the sprite drawn into it and the tile and superscripts for the 4 tiles on the backup Tiles "bent". Zusätzlich wird das Visible-Flag gesetzt. In addition, the Visible flag.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Array-Adresse (0...752) Array address (0 .. 752)
Parameter 2 Parameter 2 | Y Position Y position
Parameter 3 Parameter 3 | X Position X position
Rückgabewert Return Value | 0 0
### 1.4.27 Funktion 31 : Ein gezeichnetes Sprite löschen 1.4.27 Function 31: Deleting a drawn sprite Löscht ein einzelnes Sprite, Daten befinden sich an der angegebenen Arrayadresse. Deletes a single sprite, data located at the address specified array. Es werden lediglich die 4 Tile-Indizies auf die ursprünglichen Werte zurückgestellt und das Visible-Flag zurückgesetzt. It will only reset the 4 tile subscripts to the original values ​​and reset the Visible flag.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Array-Adresse (0...752) Array address (0 .. 752)
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.28 Funktion 32 : Alle Sprites sequentiell zeichnen 1.4.28 Function 32: All sprites sequentially draw Zeichnet alle aktivierten Sprites in aufsteigender Reihenfolge. Draws all enabled sprites in ascending order.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | --- ---
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.29 Funktion 33 : Alle Sprites sequentiell löschen 1.4.29 Function 33: Delete all sprites sequentially Löscht alle aktivierten Sprites in absteigender Reihenfolge. Deletes all selected sprites in descending order.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | --- ---
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.30 Funktion 34 : Alle Sprites-Koordinaten neu berechnen 1.4.30 Function 34: All-sprite-resize Berechnet die Koordinaten aller aktivierten Sprites neu. Calculates the coordinates of all activated new sprites.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | --- ---
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.4.31 Funktion 35 : Alle Sprites bewegen 1.4.31 Function 35: move all sprites Bewegt alle aktivierten Sprites. Moves all selected sprites. Dazu werden alle Sprites gelöscht, die Koordinaten neu berechnet und danach wieder gezeichnet. To delete all the sprites, and then calculates the coordinates of newly signed again. Dazu erfolgt das Löschen in absteigender Reihenfolge und das Zeichnen in aufsteigender Reihenfolge. This is suppressed in descending order, and drawing in ascending order.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | --- ---
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
## 1.5 Vector Mode Treiber (Bibliothekscode 0x91) 1.5 Vector Mode driver (library code 0x91) ### 1.5.1 Allgemeines 1.5.1 General Diesen Modus könnte man als eine Art "Vektormodus" oder "Differentialmodus" bezeichnen. This mode could be described as a kind of "vector mode" or "differential" mode. Er entspricht dem Videomode 7 in früheren Versionen. It corresponds to the video mode 7 in earlier versions. Am oberen und unteren Bildschirmrand gibt es jeweils eine Textzeile, die sich wie die ersten beiden Zeilen im Modus 0 verhalten. At the top and bottom of the screen there is one line of text, which behave like the first two lines in mode 0. Dann hört aber die Ähnlichkeit schon auf. But then listen to the similarity to already. Danach kommen 105 Byte-Zeiger, gefolgt von 105 Zeilendefinitionen a 24 Bytes. Then come 105 byte pointer, followed by a 105 line definitions 24 bytes. Jeder der Zeiger gibt an, welche der 105 Zeilendefinitionen für die gerade aktuelle Zeile relevant ist. Each pointer indicates which is the 105-line definitions for the current row just relevant. Somit können alle Zeilen ihre eigene Definition oder auch alle Zeilen die gleiche Definition haben. Thus all lines their own definition, or all rows have the same definition. Werte größer als 104 sollten nicht eingestellt werden, da dann das Verhalten nicht definiert ist. Values ​​greater than 104 should not be set because the behavior is not defined. Der Bildspeicher ist folgendermaßen aufgeteilt: The image memory is allocated as follows:
Anfangsadresse Start address | Endadresse End address | Bytes Bytes | Funktion Function
0 0 | 59 59 | 60 60 | 2 Zeilen Zeichen 2 lines
60 60 | 119 119 | 60 60 | 2 Zeilen Attribute 2 lines attributes
120 120 | 224 224 | 105 105 | 105 Zeilenpointer 105 lines Pointer
225 225 | 2744 2744 | 2520 2520 | 105 Zeilendefinitionen 105 line definitions
2745 2745 | 2759 2759 | 15 15 | ungenutzt unused
Die Zeilendefinitionen bestehen aus 12 Einträgen zu jeweils 2 Bytes. The line definitions consist of 12 entries to 2 bytes. Das erste Byte bestimmt den Abstand zum linken Bildschirmrand wozu noch 160 addiert werden muß. The first byte determines the distance to the left of the screen what still has to be added the 160th Höchster Wert ist 254, so dass die horizontale Auflösung 95 Pixel beträgt. The highest value is 254, so that the horizontal resolution is 95 pixels. Das zweite Byte gibt die anzuzeigenden Farben an. The second byte specifies the colors to be displayed. Dabei werden im Wechsel Die Farbwerte aus dem oberen und dem unteren Nibble angezeigt. In this change, the color values ​​from the upper and lower nibbles are shown. Zu beachten ist noch, dass der kleinste Abstand 160 sein muß und jeder folgende Abstandswert mindestens um 1 größer als der vorherige. Note is still in that the smallest distance must be 160, and each following distance value greater by at least one than the last. ### 1.5.2 Funktionen 1.5.2 Functions Um den Treiber zu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver must only be replaced by VMODE 7 in the USER Video Mode. Die Ansteuerung der beiden Textzeilen am oberen und unteren Bildschirmrand erfolgt über die "normalen" BASIC Ausgabebefehle. The activation of the two lines of text at the top and bottom of the screen via the "normal" BASIC output commands. Die Zeile am oberen Rand entspricht dabei der Textzeile 0 und die am unteren Rand der Textzeile 1. The line at the upper edge corresponds to the line of text at the bottom of 0 and the first row of the text Weiterhin stehen noch weitere Funktionen über CALL zur Verfügung: Furthermore, it has additional features available through CALL:
Funktionsnummer Function number | Funktion Function
16 16 | löscht den Vektor-Bereich deletes the vector field
17 17 | Zeilenzeiger konstant füllen Line pointer constant fill
18 18 | Zeilenzeiger aufsteigend füllen Line pointer fill ascending
19 19 | Zeilenzeiger absteigend füllen Line pointer fill descending
20 20 | Zeilenzeiger mit Array-Werten füllen Line pointer with array values ​​fill
21 21 | Zeilenzeigerbereiche kopieren Line pointer to clone
22 22 | Zeilen mit konstanten Array-Werten füllen Fill lines with constant array values
23 23 | Zeilen mit aufeianderfolgenden Array-Werten füllen Fill lines with aufeianderfolgenden array values
24 24 | --- ---
25 25 | --- ---
26 26 | --- ---
27 27 | --- ---
### 1.5.3 Funktion 16 : Vektor-Bereich löschen 1.5.3 Function 16: Vector field delete Diese Funktion löscht nur den gesamten Vektor-Bereich, wohingegen ein CLS nur den Textbereich löscht. This function only deletes the entire vector field, while a CLS only clears the text area.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | --- ---
Parameter 2 Parameter 2 | --- ---
Parameter 3 Parameter 3 | --- ---
Rückgabewert Return Value | 0 0
### 1.5.4 Funktion 17 : Zeilenzeiger konstant füllen 1.5.4 Function 17: fill line pointer constant Setzt die Zeilenzeiger von Parameter 1 bis Parameter 2 auf den Wert von Parameter 3 . Sets the line pointer parameter 1 to parameter 2 to the value of parameter 3. Die Werte werden dabei automatisch auf den gültigen Bereich begrenzt, ebenso findet ein Überlauf von 104 nach 0 statt. The values ​​are automatically limited to the valid range, as there is an overflow of 104 to 0.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Startzeile Start Line
Parameter 2 Parameter 2 | Zeilenanzahl Number of lines
Parameter 3 Parameter 3 | Wert Value
Rückgabewert Return Value | 0 0
### 1.5.5 Funktion 18 : Zeilenzeiger aufsteigend füllen 1.5.5 Function 18: line pointer fill ascending Setzt die Zeilenzeiger von Parameter 1 bis Parameter 2 auf den Wert von Parameter 3 , welcher von Zeile zu Zeile um 1 erhöht wird. Sets the line pointer parameter 1 to parameter 2 to the value of parameter 3, which is of increasing row to row by 1. Die Werte werden dabei automatisch auf den gültigen Bereich begrenzt, ebenso findet ein Überlauf von 104 nach 0 statt. The values ​​are automatically limited to the valid range, as there is an overflow of 104 to 0.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Startzeile Start Line
Parameter 2 Parameter 2 | Zeilenanzahl Number of lines
Parameter 3 Parameter 3 | Startwert Start value
Rückgabewert Return Value | 0 0
### 1.5.6 Funktion 19 : Zeilenzeiger absteigend füllen 1.5.6 Function 19: line pointer fill descending Setzt die Zeilenzeiger von Parameter 1 bis Parameter 2 auf den Wert von Parameter 3 , welcher von Zeile zu Zeile um 1 erniedrigt wird. Sets the line pointer parameter 1 to parameter 2 to the value of parameter 3, which is reduced by row to row by 1. Die Werte werden dabei automatisch auf den gültigen Bereich begrenzt, ebenso findet ein Überlauf von 104 nach 0 bei den Adressen sowie von 0 nach 104 beim Wert statt. The values ​​are automatically limited to the valid range, as an overflow of 104 to 0 is at the addresses, and from 0 to 104 instead of the value.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Startzeile Start Line
Parameter 2 Parameter 2 | Zeilenanzahl Number of lines
Parameter 3 Parameter 3 | Startwert Start value
Rückgabewert Return Value | 0 0
### 1.5.7 Funktion 20 : Zeilenzeiger mit Array-Werten füllen 1.5.7 Function 20: fill line pointer with array values Kopiert die Werte der Arrayzellen ab Parameter 3 in die Zeilenzeiger ab Parameter 1 , die Anzahl steht in Parameter 2. Copies the values ​​of the array cells from parameter 3 in the row pointer parameter 1, the number is in the second parameter Die Werte werden dabei automatisch auf den gültigen Bereich begrenzt, ebenso findet ein Überlauf von 104 nach 0 bei den Adressen und einer von 767 nach 0 bei den Arrayzellen statt. The values ​​are automatically limited to the valid range, as an overflow of 104 to 0 is at the addresses and instead of 767 to 0 in the array cells.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Start-Zeilenzeiger Start line pointer
Parameter 2 Parameter 2 | Zeilenanzahl Number of lines
Parameter 3 Parameter 3 | Array-Startposition Array start position
Rückgabewert Return Value | 0 0
### 1.5.8 Funktion 21 : Zeilenzeigerbereiche intern kopieren 1.5.8 Function 21: Copy row pointer areas internally Kopiert Zeilenzeiger innerhalb des Zeilenzeigerbereiches. Copies row pointer in the row pointer range. Parameter 1 gibt den ersten Zeilenzeiger des Quellbereiches und Parameter 2 den ersten Zeilenzeiger des Zielbereiches an. Parameter 1 indicates the first line of the source area and pointer to the first two parameters of the line pointer target range. Der dritte Parameter gibt die Anzahl der zu kopierenden Zeilenzeiger an, wobei bei positiven Werten der Bereich beginnend beim ersten Zeilenzeiger kopiert wird, bei negativen Werten beginnen beim letzten Zeilenzeiger des zu kopierenden Bereiches. The third parameter specifies the number of rows to copy pointer, which is for positive values ​​of the area copied starting from the first row pointer to start with negative values ​​in the last row pointer of the area to be copied. Die Werte werden dabei automatisch auf den gültigen Bereich begrenzt, ebenso findet ein Überlauf von 104 nach 0 (sowie auch umgekehrt) bei den Adressen statt. The values ​​are automatically limited to the valid range, as is an overflow of 104 to 0 (and vice versa) rather than at the addresses.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Startzeile Quellbereich Start row source range
Parameter 2 Parameter 2 | Startzeile Zielbareich Start line Zielbareich
Parameter 3 Parameter 3 | Zeilenanzahl Number of lines
Rückgabewert Return Value | 0 0
### 1.5.9 Funktion 22 : Zeilen mit konstanten Array-Werten füllen 1.5.9 Function 22: fill lines with constant array values Kopiert die Werte der Arrayzellen ab Parameter 3 in die Zeilen ab Parameter 1 , die Anzahl steht in Parameter 2. Copies the values ​​of the array cells from parameter 3 in the line parameters from 1, the number is in the second parameter Je Zeile werden die selben 24 Bytes kopiert. Each line the same 24 bytes are copied. Es findet ein Überlauf von 104 nach 0 bei den Zeilen und einer von 767 nach 0 bei den Arrayzellen statt. It finds an overrun of 104 to 0 in the rows and a place of 767 to 0 in the array cells.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Startzeile Start Line
Parameter 2 Parameter 2 | Zeilenanzahl Number of lines
Parameter 3 Parameter 3 | Array-Startposition Array start position
Rückgabewert Return Value | 0 0
### 1.5.10 Funktion 23 : Zeilen mit aufeinanderfolgenden Array-Werten füllen 1.5.10 Function 23: rows with consecutive array values ​​fill Kopiert die Werte der Arrayzellen ab Parameter 3 in die Zeilen ab Parameter 1 , die Anzahl steht in Parameter 2. Copies the values ​​of the array cells from parameter 3 in the line parameters from 1, the number is in the second parameter Je Zeile werden 24 Bytes kopiert. 24 bytes per row to copy. Es findet ein Überlauf von 104 nach 0 bei den Zeilen und einer von 767 nach 0 bei den Arrayzellen statt. It finds an overrun of 104 to 0 in the rows and a place of 767 to 0 in the array cells.
Parameter Parameter | Bedeutung Importance
Parameter 1 Parameter 1 | Startzeile Start Line
Parameter 2 Parameter 2 | Zeilenanzahl Number of lines
Parameter 3 Parameter 3 | Array-Startposition Array start position
Rückgabewert Return Value | 0 0
# 2 Videotreiber für externe Displays 2 video drivers for external display ## 2.1 DUAL Text-LCD Treiber (Bibliothekscode 0xA0...0xA3) 2.1 DUAL text LCD driver (library code 0xA0 0xA3 ...) ### 2.1.1 Allgemeines 2.1.1 General Mit diesen Treibern lassen sich verschiedene einzeilige und mehrzeilige Text-LCD ansteuern. These drivers can be controlled several single-line and multi-line text LCD. Es werden die Datenleitungen D4...D7 benutzt, die Datenleitungen D0...D3 lassen sich über den I/O Adressbereich ab 0x800 bzw. die IN und ADC -Funktionen frei verwenden. The data lines D4 ... D7 are used, the data lines D0 ... D3 can be via the I / O address range from 0x800 and the IN and ADC functions are free to use. Die eigentliche Ausgabe erfolgt mit PRINT oder direktes Schreiben in das Video-RAM im Adressbereich ab 0x0000. The actual output with PRINT or writing directly to the video RAM in the address range from 0x0000. Eine zyklische Update-Funktion sorgt dafür, dass alle Zeichen Zeichen zum LCD übertragen werden. A scheduled update feature ensures that all characters characters are transferred to the LCD. Ebenfalls ist es möglich, die benutzerdefinierten Zeichen zu nutzen. It is also possible to use the user-defined character. Dazu ist der I/O Bereich von 0xa00 bis 0xa40 reserviert. To the I / O area of ​​0xa00 to 0xa40 reserved. Dazu sind jeweils 8 aufeianderfolgende Bytes für ein Zeichen verantwortlich. To each 8 bytes aufeianderfolgende are responsible for a sign. Innerhalb der Bytes werden die Bits 4...0 benutzt, wobei Bit 4 dem am weitesten links liegenden Pixel entspricht. Bytes within the bits 4 .. 0 are used, with bit 4 corresponding to the leftmost pixel. Benutzt werden diese Zeichen sinnvollerweise im Bereich von 8...15, der Bereich von 0...7 ist auch möglich, in einigen Fällen führt aber ein 0x00 im String zum Abbruch der Ausgabe. Use these characters are appropriately situated in the range of 8 .. 15, the range of 0 .. 7 is also possible, in some cases, but a 0x00 leads to termination of the output string. Parallel zum LCD wird auch der Displayinhalt am TV-Ausgang ausgegeben, die Anzeige sollte mit der des LCD übereinstimmen, wobei für Zeichen größer 128 die Zeichensätze voneinander abweichen können. Parallel to the LCD and the display content is the TV output, the display should match that of the LCD, which is greater for the characters 128 characters can vary. Vorder- und Hintergrundfarbe lassen sich ganz einfach über den COLOR Befehl einstellen, wobei die Einstellung sofort für die ganze (TV-) Anzeige übernommen wird. Foreground and background color can be set easily via the COLOR command, the setting takes effect immediately for all the (TV) display. ### 2.1.2 Hardware 2.1.2 Hardware Angeschlossen wird das Display an den Parallelport, dazu müssen allerdings auch die +5V mit herausgeführt sein. The display is connected to the parallel port, but it must also be taken out with +5 V. Es werden die Leitungen Strobe, Busy und die Datenleitungen D4...D7 benutzt. It leads the strobe, busy and the data lines D4 ... D7 are used. An die Datenleitungen D4...D7 können noch Taster etc. angeschlossen werden. To the data lines D4 ... D7 still switch etc. can be connected. Diese müssen die Signale über ca. 1KOhm nach Masse schalten. They must switch the signals over approximately 1KOhm to ground. Der Status der vier Datenleitungen lässt sich mittels IN($804) ... IN($807) abfragen. The status of the four data lines can be expanded using IN ($ 804) ... IN ($ 807) query. ### 2.1.3 unterstützte Displays 2.1.3 Compatible Displays Da nur eine (relativ langsame) Initialisierung mit 4 Bit Datenbus sowie das direkte Schreiben in das DD- und CG-RAM genutzt werden, sollte der Treiber mit den meisten auf dem Markt erhältlichen Displays funktionieren. Since only a (relatively slow) initialization with 4 bit data bus, and can be used to write directly in the DD and CG RAM, should the driver with the most available on the market displays work. Wenn Sie in Erfahrungen mit einem in der nachstehenden Tabelle nicht aufgeführten Display gemacht haben, würde ich um eine kurze Meldung bitten, damit ich es in die nachstehende Tabelle einfügen kann. If you have made experiences with a not listed in the following table display, I would send a short message, so I can include it in the table below. Zur Zeit werden folgende Display-Typen unterstützt: Currently, the following display types are supported:
Treiber Driver | Treibercode Driver Code | Display Display | Display funktioniert Display works | Display funktioniert nicht Display does not work
lcd116.bin lcd116.bin | 0xA0 0xA0 | 1 x 16 Zeichen 1 x 16 characters | Powertip PC1601A Powertip PC1601A | . .
lcd216.bin lcd216.bin | 0xA1 0xA1 | 2 x 16 Zeichen 2 x 16 characters | . . | . .
lcd220.bin lcd220.bin | 0xA2 0xA2 | 2 x 20 Zeichen 2 x 20 characters | Powertip PC2002-M Powertip PC2002-M | . .
### 2.1.4 Funktionen 2.1.4 Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber vzu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver VZU, must be changed only by VMODE 7 in the USER Video Mode. Beim Wechsel in einen anderen Videomode bleibt die Anzeige auf dem LCD erhalten. When switching to a different video mode, the display remains on the LCD receive. Allerdings sollte zwischen dem letzten Schreibvorgang und dem Wechsel des Videomode eine kleine Pause eingelegt werden (0,1s), damit die Daten auch sicher im LCD aktualisiert werden können. However, it should between the last write and change the video mode a little break to be inserted (0.1 s), so that the data secure on the LCD can be updated. Um den Treiber zu testen, muss kein LCD angeschlossen sein. To test the driver does not need to be connected to LCD. ## 2.2 DUAL Grafik-LCD Treiber 128x64 PIXEL (Bibliothekscode 0xA8) 2.2 dual graphical LCD driver 128x64 DOTS (library code 0xA8) ### 2.2.1 Allgemeines 2.2.1 General Mit diesem Treiber lassen sich verschiedene KS0107/0108 basierte bzw. kompatible Grafikdisplays mit 128x64 Pixeln ansteuern. With this driver, various KS0107/0108 based or control compatible graphics display with 128x64 pixels. Die Ausgabe erfolgt dabei parallel auch am TV-Ausgang, funktionell ist der Videomode gleich dem eingebauten Mode 5. The output is in parallel and the TV output, the video mode is functionally the same as the built-in Mode 5 Für die Ansteuerung wird der komplette Parallelport benutzt, zusätztlich ist ein 4 Bit breites Latch (bei H transparent) oder Register (beide Flanken möglich) notwendig. For control of the complete parallel port is used zusätztlich is a 4-bit wide latch (at H transparent) or register (both edges possible) necessary. Weiterhin können 7 Tasten angeschlossen werden. Furthermore, 7 buttons can be connected. Von dem Treiber gibt es zwei Versionen, die sich in der Polarität der Chip-Select Signale unterscheiden. From the driver, there are two versions, which differ in the polarity of the chip select signals. Die Vsrsion mit der Endung _ncs eignet sich für Displays mit LOW-aktiven Chip-Select Signalen, die mit der Endung _pcs dementsprechend für Displays mit HIGH-aktiven Chip-Select Signalen. The Vsrsion ending _ncs suitable for display with active-LOW chip select signals _pcs accordingly ending for displays with active HIGH chip select signals. Eine zyklische Update-Funktion sorgt dafür, dass der Bildschirminhalt ca. 12 mal pro Sekunde zum LCD übertragen wird. A scheduled update feature ensures that the screen content is about 12 times per second transmitted to the LCD. Vorder- und Hintergrundfarbe sind dabei mit blau und cyan fest zugeordnet und lassen sich nicht ändern. Foreground and background color are associated with this blue and cyan fixed and can not be changed. ### 2.2.2 Hardware 2.2.2 Hardware Angeschlossen wird das Display an den Parallelport, dazu müssen allerdings auch die +5V mit herausgeführt sein. The display is connected to the parallel port, but it must also be taken out with +5 V. Die Datenleitungen werden direkt zum Display geführt, die Steuerleitungen I/D, CS1 und CS2 sowie das Treibersignal für die Zusatztasten werden über ein 4 Bit Latch/Register zwischengespeichert. The data lines are routed directly to the display, the control lines I / D, CS1 and CS2, as well as the driving signal for the additional keys are cached on a 4-bit latch / register. Dazu dient das BUSY Signal, welches als Ausgang benutzt wird. Serves the BUSY signal which is used as an output. Das E-Signal wird vom STROBE-Ausgang geliefert, die R/W Leitung liegt fest an Masse, es wird nur zum Display hin geschrieben. The E-signal is supplied from STROBE output, the R / W line is fixed to the ground, it is only written into the display. ### 2.2.3 Ausgabe-Funktionen 2.2.3 Output Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber vzu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver VZU, must be changed only by VMODE 7 in the USER Video Mode. Beim Wechsel in einen anderen Videomode bleibt die Anzeige auf dem LCD erhalten. When switching to a different video mode, the display remains on the LCD receive. Allerdings sollte zwischen dem letzten Schreibvorgang und dem Wechsel des Videomode eine kleine Pause eingelegt werden (0,1s), damit die Daten auch sicher im LCD aktualisiert werden können. However, it should between the last write and change the video mode a little break to be inserted (0.1 s), so that the data secure on the LCD can be updated. Um den Treiber zu testen, muss kein LCD angeschlossen sein. To test the driver does not need to be connected to LCD. ### 2.2.4 Tasten-Funktionen 2.2.4 Key functions Es können bis zu 7 Tasten angeschlossen werden. You can connect up to 7 keys. Über die Funktion KEY(8) oder die API-Funktion api_scancode kann der Status direkt gelesen werden, wobei eine "1" für eine gedrückte Taste steht. Using the function KEY (8) or the API function api_scancode the status can be read directly with a "1" for a key pressed. Zusäztzlich werden verschiedene Tastendrücke emuliert, im Schaltbild ist dies neben den Tastern angegeben. Zusäztzlich different keystrokes to emulate, this is indicated in the diagram next to the buttons.
Taste Button | Bit im Scancode Bit in the scan code | Keycode Keycode
left left | 0 0 | 0xE2 0xE2
right right | 1 1 | 0xE3 0xE3
up up | 2 2 | 0xE4 0xE4
down down | 3 3 | 0xE5 0xE5
enter enter | 4 4 | 0xEA 0xEA
esc esc | 5 5 | 0xED 0xED
F5 F5 | 6 6 | 0xF5 0xF5
ACHTUNG! Sobald eine der Tasten gedrückt wurde, funktioniert eine angeschlossene PS2-Tastatur nicht mehr richtig. Attention soon as one of the keys is pressed, does a connected PS2 keyboard not working properly. ## 2.3 DUAL Grafik-LCD Treiber 24x40 Zeichen (Bibliothekscode 0xA9) 2.3 dual graphical LCD driver 24x40 characters (library code 0xA9) ### 2.3.1 Allgemeines 2.3.1 General Diesen Modus erlaubt ein Darstellung von Text und Pseudografik mit eine Auflösung von 24 Zeilen zu je 40 Zeichen. This mode permits the display of text and graphics with pseudo a resolution of 24 lines of 40 characters. Allerdings ist die Darstellung nur monochrom (grün auf schwarz) möglich, die Ausgabepins für den roten und blauen Farbkanal werden hochohmig geschaltet. However, the representation is in monochrome (green on black) possible, the output pins for the red and blue channels are switched to high impedance. Wahlweise kann der Displayinhalt auf ein am Parallelport angeschlossenes Grafikdisplay ausgeben. Alternatively, the contents of the display output to a parallel port connected graphic display. Unterstützt werden monochrome Displays ohne eigenen Controller mit 320x240 Pixeln. Supports monochrome displays without its own controller with 320x240 pixels. Die Anzeige kann nur auf einem Weg erfolgen, TV-Ausgang oder Display, eine simultane Anzeige ist nicht möglich. The display can be only one way, TV output, or display, simultaneous display is not possible. Die jeweils nicht aktive Anzeige ist dann abgeschaltet, beim LCD gibt es einen Steuer-Pin mit dem die LCD-Spannung abgeschalten werden kann und auch sollte. The display is not currently active then turned off the LCD, there is a control pin with the LCD voltage can be switched off and should. Eine Zeile im Bildschirmspeicher besteht aus 45 Bytes. A line on the display memory consists of 45 bytes. Zuerst kommen 5 Bytes bei denen jeweils 1 Bit für die Invertierung eines der nachfolgenden Zeichen verantwortlich ist. First 5 bytes are used for each of which one is responsible for the bit inversion of the subsequent characters. Danach folgen 40 Zeichen-Bytes, Bit 7 der Zeichen wird ignoriert. This is followed by 40-character byte, bit 7 of the character is ignored. Die Zeichen sind mit 8 Pixeln horizontal und 10 Pixeln Vertikal definiert, der Zeichensatz mit insgesamt 128 Zeichen befindet sich im RAM und kann auch geändert werden. The characters are 8 pixels horizontally and 10 pixels vertically defined, the character set with a total of 128 characters is in RAM and can also be changed. Da der Zeichensatz vom Speicherbedarf her nicht mehr in den Treiber gepasst hat, muß dieser auf den Programmplatz 7 geladen werden. Since the character set has the memory requirements ago no longer fit in the driver, it must be downloaded to the program location 7. Ein passender Zeichensatz ist charset10.bin . A suitable font is charset10.bin. Der Bildspeicher ist folgendermaßen aufgeteilt: The image memory is allocated as follows:
Anfangsadresse Start address | Endadresse End address | Bytes Bytes | Funktion Function
0 0 | 1079 1079 | 1080 1080 | 24 Zeilen Zeichen 24 lines of characters
1080 1080 | 1319 1319 | 240 240 | zTintern benutzt zTintern used
1320 1320 | 2599 2599 | 1280 1280 | Zeichensatz Charset
2600 2600 | 2759 2759 | 160 160 | ungenutzt unused
Der Zeichensatz im RAM ist Zeilenweise aufgebaut, zuerst 128 Bytes für die erste Zeile, dann 128 Bytes für die zweite Zeile und so weiter bis zu 128 Bytes für die zehnte und damit letzte Zeile. The character set in RAM is built line by line, first 128 bytes of the first line, then 128 bytes for the second row, and so on up to 128 bytes for the tenth and final line. Der Zeichensatz auf Programmplatz 7 der als Quelle dient, hat eine ähnliche Struktur, nur dass hier eine Zeile 256 Bytes hat. The character set to channel 7 of serving as a source, has a similar structure, except that a line has 256 bytes. Das heisst auch dass der Treiber nur die unteren 128 Zeichen des Zeichensatzes nutzt. This also means that the driver only uses the lower 128 characters of the character set. ### 2.3.2 Hardware 2.3.2 Hardware Zum Anschluss des Displays wird der Parallelport benutzt. To connect the display to the parallel port is used. Vorhanden sind die Datenignale D0...D3 (an den gleichnamigen Port-Pins), CP an Pin D7, LOAD an Pin D6 und FLM/FRAME an Pin D5. Present the Datenignale D0 ... D3 (the same port pins), CP pin D7, LOAD to pin D6 and FLM / FRAME to pin D5. An BUSY-Pin steht zusätzlich ein Schaltsignal (LOW-aktiv) zur Verfügung, mit dem die Display-Spannungen VEE und VO geschaltet werden sollten. To BUSY pin is an additional switching signal (active LOW) is available, with which the display voltages VEE and VO should be switched. Andernfalls kann es zu Schäden am Display kommen, sowohlbeimEinschalten bis zumWechsel in den Videomode 7 als auch wenn in einen anderen Videomode gewechselt wird. This may result in damage to the screen, both in turn to zumWechsel in video mode 7 as well when switching to a different video mode. ### 2.3.3 Funktionen 2.3.3 Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber zu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver must only be replaced by VMODE 7 in the USER Video Mode. Dabei wird dann der Zeichensatz von Programmplatz 7 in den RAM kopiert. It then character set of program number 7 is copied to RAM. Mit COLOR 0 werden die Zeichen invertiert ausgegeben, COLOR 1 schaltet in den nichtinvertierten Modus zurück. COLOR 0 with the sign inverted output, COLOR 1 returns to the non-inverted mode. Ebenfalls ist es möglich, 16 (0x00...0x0f) benutzerdefinierte Zeichen zu nutzen. It is also possible, 16 (0x00 .. 0x0f) to use custom characters. Dazu ist der I/O Bereich von 0xa00 bis 0xaff reserviert. To the I / O area of ​​0xa00 to 0xaff reserved. Dazu sind jeweils 16 aufeianderfolgende Bytes für ein Zeichen verantwortlich, genutzt werden nur die ersten 10 Bytes. To each 16 bytes aufeianderfolgende are responsible for a sign, used only the first 10 bytes. Innerhalb der Bytes werden die Bits 7...0 benutzt, wobei Bit 7 dem am weitesten links liegenden Pixel entspricht. Bytes within the bits 7 .. 0 are used, with bit 7 corresponds to the leftmost pixel. Alternativ kann auch mittels VPOKE direkt in den Bildschirmspeicher geschrieben werden, hier gibt es aber keinen linearen Zusammenhang zwischen Zeichenbytes und Adresse wie beim OUT Befehl, der bereits die Umrechnung der Adressen vornimmt. Alternatively, can also be written directly by VPOKE to screen memory, but here there is no linear relation between characters and byte address as the OUT command that already performs the conversion of addresses. Mit dem Befehl OUT $900,1 kann die Anzeige auf das angeschlossene LCD umgestellt werden, mit OUT $900,0 wird wieder auf TV-Ausgabe zurückgeschaltet. With the command OUT $ 900.1, the display on the connected LCD to be converted, with $ 900.0 OUT is switched back to TV output. Standardmäßig wird der Videomode mit TV-Anzeige gestartet. By default, the video mode is started with TV display. # 3 Videotreiber mit PWM-Funktionen 3 video driver with PWM functions ## 3.1 PWM 4 x 8 Bit Treiber (Bibliothekscode 0xB0) 3.1 x 4 8-bit PWM driver (library code 0xB0) ### 3.1.1 Allgemeines 3.1.1 General Dieser Treiber stellt 4 pulsweitenmodulierte Ausgänge zur Verfügung. This driver provides 4 pulse width modulated outputs. Diese haben eine Auflösung von 8 Bit und eine Frequenz von etwa 61 Hz. Daneben gibt es eine zum Videomode 0 weitestgehend kompatible Anzeige, allerdings sind von jeder Zeile nur die erten 24 Zeichen sichtbar. These have a resolution of 8 bits and a frequency of about 61 Hz There is also a video for fashion 0 largely compatible display, but of each line are the only Erten 24 characters visible. ### 3.1.2 Hardware 3.1.2 Hardware Die 4 PWM-Kanäle liegen an den Datenbits D4...D7 an, die Datenbits D0...D3 lassen sich über die Adressbereiche 0x800...0x803 (Daten) und 0x810...0x813 (Datenrichtung) sowie über die IN() und ADC() Funktionen frei benutzen. The 4 PWM channels are applied to the data bits D4 ... D7, the data bits D0 ... D3 can be on the address ranges ... 0x800 0x803 (data) ... 0x813 and 0x810 (data direction) as well as the IN ( ) and ADC () functions free use. ### 3.1.3 Funktionen 3.1.3 Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber vzu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver VZU, must be changed only by VMODE 7 in the USER Video Mode. Beim Aktivieren und beim Verlassen des Videomodes werden alle PWM-Kanäle auf 0 gesetzt. When activating and leaving the video mode all PWM channels are set to 0. Die einzelnen Kanäle werden mittels OUT Befehlen auf die Adressen 0x900...0x903 gesteuert, ei Zurücklesen ist über die Funktion IN() möglich. Each channel is controlled by means of OUT instructions to the addresses ... # CHAN_ 0x900 0x903, egg read back is possible with the function IN (). Die folgende Tabelle zeigt eine Übersicht über die nutzbaren I/O Adressen: The following table presents a summary of usable I / O addresses:
I/O Adresse I / O address | Zugriff Access | Funktion Function
0x800 0x800 | R/W R / W | Datensignal D0 Data signal D0
0x801 0x801 | R/W R / W | Datensignal D1 Data signal D1
0x802 0x802 | R/W R / W | Datensignal D2 Data signal D2
0x803 0x803 | R/W R / W | Datensignal D3 Data signal D3
0x808 0x808 | R/W R / W | Datensignal STROBE Data signal STROBE
0x809 0x809 | R/W R / W | Datensignal BUSY Data signal BUSY
0x810 0x810 | W W | Datenrichtung D0 (0=IN, 1=OUT) Data direction of D0 (0 = IN 1 = OUT)
0x811 0x811 | W W | Datenrichtung D1 (0=IN, 1=OUT) Data direction D1 (0 = IN 1 = OUT)
0x812 0x812 | W W | Datenrichtung D2 (0=IN, 1=OUT) Data direction D2 (0 = IN 1 = OUT)
0x813 0x813 | W W | Datenrichtung D3 (0=IN, 1=OUT) Data direction D3 (0 = IN 1 = OUT)
0x818 0x818 | R/W R / W | Datenrichtung STROBE Data direction STROBE
0x819 0x819 | R/W R / W | Datenrichtung BUSY Data direction BUSY
0x900 # CHAN_ 0x900 | R/W R / W | Pulsweite an D4 (0...255) Pulse width at D4 (0 .. 255)
0x901 0x901 | R/W R / W | Pulsweite an D5 (0...255) Pulse width at D5 (0 .. 255)
0x902 0x902 | R/W R / W | Pulsweite an D6 (0...255) Pulse width at D6 (0 .. 255)
0x903 0x903 | R/W R / W | Pulsweite an D7 (0...255) Pulse width at D7 (0 .. 255)
## 3.2 PWM 8 x 8 Bit Treiber (Bibliothekscode 0xB1) 3.2 x 8 8-bit PWM driver (library code 0xB1) ### 3.2.1 Allgemeines 3.2.1 General Dieser Treiber stellt 8 pulsweitenmodulierte Ausgänge zur Verfügung. This driver provides 8 pulse width modulated outputs. Diese haben eine Auflösung von 8 Bit und eine Frequenz von etwa 61 Hz. Daneben gibt es eine zum Videomode 0 weitestgehend kompatible Anzeige, allerdings sind von jeder Zeile nur die erten 24 Zeichen sichtbar. These have a resolution of 8 bits and a frequency of about 61 Hz There is also a video for fashion 0 largely compatible display, but of each line are the only Erten 24 characters visible. ### 3.2.2 Hardware 3.2.2 Hardware Die 8 PWM-Kanäle liegen an den Datenbits D0...D7 an. The 8 PWM channels are applied to the data bits D0 ... D7. ### 3.2.3 Funktionen 3.2.3 Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber vzu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver VZU, must be changed only by VMODE 7 in the USER Video Mode. Beim Aktivieren und beim Verlassen des Videomodes werden alle PWM-Kanäle auf 0 gesetzt. When activating and leaving the video mode all PWM channels are set to 0. Die einzelnen Kanäle werden mittels OUT Befehlen auf die Adressen 0x900...0x907 gesteuert, ein Zurücklesen der Daten ist über IN() möglich. Each channel is controlled by means of OUT instructions to the addresses ... # CHAN_ 0x900 0x907, a read-back of the data is possible via IN (). Die folgende Tabelle zeigt eine Übersicht über die nutzbaren I/O Adressen: The following table presents a summary of usable I / O addresses:
I/O Adresse I / O address | Zugriff Access | Funktion Function
0x808 0x808 | R/W R / W | Datensignal STROBE Data signal STROBE
0x809 0x809 | R/W R / W | Datensignal BUSY Data signal BUSY
0x818 0x818 | R/W R / W | Datenrichtung STROBE Data direction STROBE
0x819 0x819 | R/W R / W | Datenrichtung BUSY Data direction BUSY
0x900 # CHAN_ 0x900 | R/W R / W | Pulsweite an D0 (0...255) Pulse width of D0 (0 .. 255)
0x901 0x901 | R/W R / W | Pulsweite an D1 (0...255) Pulse width of D1 (0 .. 255)
0x902 0x902 | R/W R / W | Pulsweite an D2 (0...255) Pulse width of D2 (0 .. 255)
0x903 0x903 | R/W R / W | Pulsweite an D3 (0...255) Pulse width of D3 (0 .. 255)
0x904 0x904 | R/W R / W | Pulsweite an D4 (0...255) Pulse width at D4 (0 .. 255)
0x905 0x905 | R/W R / W | Pulsweite an D5 (0...255) Pulse width at D5 (0 .. 255)
0x906 0x906 | R/W R / W | Pulsweite an D6 (0...255) Pulse width at D6 (0 .. 255)
0x907 0x907 | R/W R / W | Pulsweite an D7 (0...255) Pulse width at D7 (0 .. 255)
## 3.3 PWM 2 x 8 Bit + 2 x Puls Treiber (Bibliothekscode 0xB2) 3.3 PWM x 2 + 2 x 8-bit pulse driver (library code 0xB2) ### 3.3.1 Allgemeines 3.3.1 General Dieser Treiber stellt 2 pulsweitenmodulierte Ausgänge zur Verfügung. This driver provides two pulse width modulated outputs. Diese haben eine Auflösung von 8 Bit und eine Frequenz von etwa 61 Hz. Zusätzlich gibt es noch zwei Pulsausgänge mit denen sich periodische Pulse im Bereich von 0...2,24 Milliskeunden erzeugen lassen. This a resolution of 8 bits and a frequency of about 61 Hz have Additionally, there are two pulse outputs which can generate periodic pulses in the range of 0 .. 2.24 Milliskeunden. Die Wiederholfrequenz entspricht dabei der Vertikal-Synchronfrequenz, also ca. 50Hz für PAL und 60Hz für NTSC. The repetition corresponds to the vertical sync frequency, or about 50Hz and 60Hz for PAL to NTSC. Daneben gibt es eine zum Videomode 0 weitestgehend kompatible Anzeige, allerdings werden nur die ersten 20 Zeilen angezeigt von denen auch nur 28 Zeichen sichtbar sind. There is also a video for fashion 0 largely compatible display, however, only the first 20 rows displayed by including only 28 characters are visible. ### 3.3.2 Hardware 3.3.2 Hardware Die 2 PWM-Kanäle liegen an den Leitungen D6 und D7 an, die beiden Pulskanäle an den Datenleitungen D4 und D5. The two PWM channels abut the lines D6 and D7, the two pulse channels to the data lines D4 and D5. Die Datenleitungen D0...D3 sowie BUSY und STROBE lassen sich über die Adressbereiche 0x800...0x809 (Daten) und 0x810...0x819 (Datenrichtung) sowie über die IN() und ADC() Funktionen (letztere nur D0...D3) frei nutzen. The data lines D0 ... D3 and BUSY and STROBE can be on the address ranges ... 0x800 0x809 (data) ... 0x819 and 0x810 (data direction) as well as the IN () and ADC () functions latter (only D0 .. . D3) use freely. ### 3.3.3 Funktionen 3.3.3 Functions Der aktuelle Treiber hat keine zusätzlichen Funktionen eingebaut, die Ansteuerung erfolgt über die "normalen" BASIC Ausgabebefehle. The current driver is installed, no additional functions are controlled via the "normal" edition BASIC commands. Um den Treiber zu aktivieren, muß nur mittels VMODE 7 in den USER-Videomode gewechselt werden. To enable the driver must only be replaced by VMODE 7 in the USER Video Mode. Beim Aktivieren und beim Verlassen des Videomodes werden alle PWM-Kanäle auf 0 gesetzt. When activating and leaving the video mode all PWM channels are set to 0. Die einzelnen Kanäle werden mittels OUT Befehlen auf die Adressen 0x900...0x903 gesteuert, die eingestellten Werte können auch über IN() zurückgelesen werden. Each channel is controlled by means of OUT instructions to the addresses ... # CHAN_ 0x900 0x903, the default values ​​can be read back via IN (). Die folgende Tabelle zeigt eine Übersicht über die nutzbaren I/O Adressen: The following table presents a summary of usable I / O addresses:
I/O Adresse I / O address | Zugriff Access | Funktion Function
0x800 0x800 | R/W R / W | Datensignal D0 Data signal D0
0x801 0x801 | R/W R / W | Datensignal D1 Data signal D1
0x802 0x802 | R/W R / W | Datensignal D2 Data signal D2
0x803 0x803 | R/W R / W | Datensignal D3 Data signal D3
0x808 0x808 | R/W R / W | Datensignal STROBE Data signal STROBE
0x809 0x809 | R/W R / W | Datensignal BUSY Data signal BUSY
0x810 0x810 | W W | Datenrichtung D0 (0=IN, 1=OUT) Data direction of D0 (0 = IN 1 = OUT)
0x811 0x811 | W W | Datenrichtung D1 (0=IN, 1=OUT) Data direction D1 (0 = IN 1 = OUT)
0x812 0x812 | W W | Datenrichtung D2 (0=IN, 1=OUT) Data direction D2 (0 = IN 1 = OUT)
0x813 0x813 | W W | Datenrichtung D3 (0=IN, 1=OUT) Data direction D3 (0 = IN 1 = OUT)
0x818 0x818 | R/W R / W | Datenrichtung STROBE Data direction STROBE
0x819 0x819 | R/W R / W | Datenrichtung BUSY Data direction BUSY
0x900 # CHAN_ 0x900 | R/W R / W | Pulsbreite an D4 (0...559) Pulse width at D4 (0 .. 559)
0x901 0x901 | R/W R / W | Pulsbreite an D5 (0...559) Pulse width at D5 (0 .. 559)
0x902 0x902 | R/W R / W | Pulsweite an D6 (0...255) Pulse width at D6 (0 .. 255)
0x903 0x903 | R/W R / W | Pulsweite an D7 (0...255) Pulse width at D7 (0 .. 255)
# 4 Treiber für Zusatzspeicher 4 Drivers for additional memory ## 4.1 Memory-Treiber für 2K internes RAM (Bibliothekscode 0xF0) 4.1 Memory Driver for 2K internal RAM (library code 0xF0) Dieser Treiber nutzt 2K des internen Speichers, wozu ein Teil des Bilschirmspeichers sowie ein Teil des Arrays benutzt werden. This driver uses 2K of internal memory, to which a portion of the Bilschirmspeichers and a part of the array are used. Dieser Treiber dient hauptsächlich dazu, Programme die XMEM benötigen zu testen. This driver is mainly used to test programs require XMEM. Es sind nur die Videomodi 0 und 5 nutzbar, bei den Videotreibern sollten zumindest die LCD Treiber funktionieren. Only the video modes 0 and 5 are available in the video drivers, at least the LCD driver function. ## 4.2 Memory-Treiber für 64K externes RAM (Bibliothekscode 0xF1) 4.2 Memory driver for 64K SRAM locations (library code 0xF1) Dieser Treiber erlaubt die Nutzung des XRAM64 Speichermodules wie es bei den Erweiterungen beschrieben wird. This driver allows the use of the memory module XRAM64 as described in the extensions. Es können die Pages 0...255 benutzt werden, bei nur einem 32K RAM die Pages 0...127. It can be used Pages 0 .. 255, with only one, the 32K RAM Pages 0 .. 127th created with latex2web.pl v0.62 © 2006-2011 Joerg Wolfram Created with latex2web.pl v0.62 © 2006-2011 Joerg tungsten