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

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)

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.

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

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.

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

  • z9001/software/paintbox.txt
  • Zuletzt geändert: 2021/02/12 08:10
  • von volkerp