Paintbox
Zeichenprogramm von Andreas Bartusch (bsw).
die tollen Grafiken für Turbo von S. Huth und Karate wurden mit diesem Programm erstellt.
Dateiname | PAINTBOX.COM |
Laden in | OS |
Programmstandort | 4000h-5FFFh |
206h-21Dh Arbeitszellen | |
2000h-3FFFh, 6000h-7FFFh Speicher für Bilder | |
OS-Kommandos | BOXNEW, BOX, TEST |
Download
PAINTBOX_COM.TAP ist das Original. Es kann im Emulator nur per Audio/Kassetten-Emulation geladen werden. Dabei sieht man den Loader-Bildschirm und das Laden des Hauptprogramms. Nach Lade-Ende startet das Menü.
paintboxu.kcc ist quasi die originale Version am Stück, aber ohne Loader-Prozess. Laden, dann Abbruch mit Reset oder aber gleich mit CLOAD laden. Danach mit BOXNEW starten. Laden/Speichern geht nur mit Kassette!
paintbox.kcc ist meine gepatchte Version. Laden, Enter, fertig. Es wurden die Kassettenfunktionen auf CALL5-Standard gepatcht. Damit ist das Laden/Speichern auf USB/Diskette bei entsprechender OS-Erweiterung möglich. Laden/Speichern geht auch mit Diskette/USB. Im Unterschied zum Original wird beim Laden der Filename abgefragt. Diese Version bietet außerdem noch
- einen Farb-Pinsel, um vorhandene Bilder umzufärben: Grafik ein, dann wird beim Bewegen des Cursors mit den Cursortasten das aktuelle Farbattribut eingetragen.
- einen Farb-Picker: mit CTRL-P wird das aktuelle Farbattribut vom aktuellen Zeichens genommen (pick color)
Loader
Die originale Version hat einen Loader-Screen (Bild o.l.) und lädt das eigentliche Zeichenprogramm nach.
Meine gepatchte Version wird am Stück geladen, im Loader-Screen ist Enter zu drücken.
Bedienung
Mit Paintbox ist das Zeichnen von 8 verschiedenen Bildern möglich. Nach erfolgreichem Einladen ist nun das Menü zu sehen. Mit den Tasten rauf, runter, STOP & ENTER wird der Menübalken bewegt und die gewünschte Routine aufgerufen.
Die gewünschte Bildnummer 1..8 ist danach zu tippen.
Die in der Routine 'PAINT PICTURE' gezeichneten Bilder können überlagert (MOVE PICTURE) oder als Basicprogramm und verdichtetes oder unverdichtetes Maschinenprogramm (SAVE PICTURE) ausgeladen werden. Die Maschinenprogramme enthalten eine Ausgaberoutine, das Basicprogramm ist selbststartend.
In der Routine 'MAXI COMPACT' wird der Farbspeicher so umgeschrieben, dass er maximal verdichtet werden kann. Es werden in 'MAXI COMPACT' und bei verdichteten Bildern alle Bytes 00 & 01 durch Bytes 08 & 09 ersetzt.
Es können in 'LOAD PICTURE' alle als Maschinenprogramm ausgeladenen Bilder wieder eingeladen und weitergezeichnet werden.
Das Einladen von Bildern, die nicht mit Paintbox gezeichnet wurden, ist nur im unverdichteten Zustand möglich.
Wird im letzten Byte des Namens keine Bildnummer geschrieben, so wird ein '?' ausgegeben. Das Bild erhält die Nummer 8. (Bilder ohne Farbe sind nicht verwendbar).
Mit LIST ist ein Monitorsprung möglich. Zum Wiedereintritt muss 'BOX' eingegeben werden. 'BOXNEW' bewirkt das Löschen aller Bilder.
'TEST' zeigt bei paintbox alle 8 Bilder schnell hintereinander.
Tasten:
Hexadezimal | Funktionstasten | CONTR-Tasten | Wirkung |
---|---|---|---|
01 | CONTR-A | '\' | |
02 | CL LN | CONTR-B | '{' |
03 | STOP | CONTR-C | '~' |
04 | CONTR-D | fülle vertikal | |
05 | CONTR-E 1..8 | Farbe Bildschirmrand einstellen | |
06 | CONTR-F | Umschaltung auf Blinken | |
07 | CONTR-G | | | |
08 | cu left | CONTR-H | links |
09 | cu right | CONTR-I | rechts |
0A | cu down | CONTR-J | runter |
0B | cu up | CONTR-K | hoch |
0C | CONTR-L | Löschen des Bildschirmes | |
0D | ENTER | CONTR-M | Wechsel in nächste Zeile |
0E | CONTR-N | Bildschirm drucken | |
0F | CONTR-O | 0BFh | |
10 | CONTR-P | ||
11 | CONTR-Q | Tastatur-Kontrollton ein/aus | |
12 | CONTR-R | 8Eh | |
13 | PAUSE | CONTR-S | Bild nach oben verschieben |
14 | COLOR | CONTR-T 1..8 | Vordergrundfarbe |
15 | COLOR+SHIFT | CONTR-U 1..8 | Hintergrundfarbe |
16 | CONTR-V | Umschaltung auf Invers | |
17 | CONTR-W | aktuelle Farbe für das ganze Bild übernehmen | |
18 | tab right | CONTR-X | '[' |
19 | tab left | CONTR-Y | ']' |
1A | INS | CONTR-Z | ins |
1B | ESC | '}' | |
1C | LIST | '`' | |
1D | RUN | Wechsel zum Menü | |
1E | CONT | Bild nach unten verschieben | |
1F | DEL | del |
Bilder importieren
Im JKCEMU kann man einfach einen Bildschirm als Speicherbereich abspeichern, der dann von PAINTBOX eingelesen und weiter verarbeitet werden kann. Es muss Farbspeicher bis Ende Bildspeicher gespeichert werden (FBWS+BWS):
- Bereich E800-EFBF
- Dateiname sinnvollerweise PICTUREx.COM, (x=1..8) es funktioniert aber auch mit beliebigem Namen
- Anfangs-, End- und Startadresse können beliebig gefüllt sein, sinnvolle Werte wären E800,EFBF,FFFF
Die Datei wird mit „load picture“ geladen. Wird im letzten Byte des Namens keine Bildnummer geschrieben, so wird ein '?' ausgegeben. Das Bild erhält die Nummer 8.
Interna
Bilddatei (COM):
fcb name8 = bildnr 1..8 compressed - Kennung in FCB 67h = "C" FCB 68h = "M" AADR = 1000h EADR = 0FFFFh SADR = decomp
Beim Speichern wird der Name PICTURE1.COM .. PICTURE8.COM je nach Bildnummer genommen. Das komprimierte Bild wird nach 1000h geladen. Es endet mit einem 01-Byte. Nach dem Bild folgt die Decompress-Routine. Die Startadresse dieser Routine steht im FCB als SADR.
einfache RLE-Compression
01 - Ende 00 char anzahl RLE (max 256 Zeichen)
Abgespeichert wird FBWS und BWS (E800-EFBF) !
;------------------------------------------------------------------------------ ; decompact-routine ;------------------------------------------------------------------------------ decomp0: ld hl, 1000h ld (210h), hl ld hl, 0E800h ld (212h), hl decomp: ld hl, (210h) ; Quelle ld de, (212h) ; Ziel decomp1: ld a, (hl) cp 1 ; 1 - Ende ret z or a ; 0 - RLE jr z, decomp3 ld (de), a ; sonst Zeichen übernehmen inc de decomp2: inc hl jr decomp1 decomp3: inc hl ld a, (hl) ; Zeichen inc hl ld b, (hl) ; anzahl decomp4: ld (de), a inc de djnz decomp4 jr decomp2
BASIC wird als „BILD-BAS“ gespeichert, keine Farbe, einfache PRINT-Anweisungen