Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:software:paintbox [2020/12/14 15:00] – [Loader] volkerpz9001:software:paintbox [2021/02/12 08:10] (aktuell) volkerp
Zeile 7: Zeile 7:
 die tollen Grafiken für [[z9001:software:turbo#turbo_von_shuth|Turbo von S. Huth]] und [[z9001:software:karate|]] wurden mit diesem Programm erstellt. die tollen Grafiken für [[z9001:software:turbo#turbo_von_shuth|Turbo von S. Huth]] und [[z9001:software:karate|]] wurden mit diesem Programm erstellt.
  
-====== Loader ======+| 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 ===== 
 + 
 +  * {{ :z9001:software:paintbox.zip |}}  
 + 
 +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. 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. Außerdem wurden die Kassettenfunktionen auf CALL5-Standard gepatcht. Damit ist das Laden/Speichern auf USB/Diskette bei entsprechender OS-Erweiterung möglich.+Meine gepatchte Version wird am Stück geladen, im Loader-Screen ist Enter zu drücken. 
  
  
  
-====== Bedienung ======+===== Bedienung =====
  
-Mit Paintbox ist das Zeichnen von 8 verschiedenen Bildern möglich. Nach erfolgreichem Einladen ist nun das Menue zu sehen. +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.+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 Die in der Routine 'PAINT PICTURE' gezeichneten Bilder können überlagert (MOVE
Zeile 48: Zeile 70:
 Tasten: Tasten:
  
-^ Hexadezimal  ^ Funktionstasten  ^ CONTR-Tasten  ^ Wirkung                            +^ Hexadezimal  ^ Funktionstasten  ^ CONTR-Tasten  ^ Wirkung                                       
-| 01                            | CONTR-A       | '\'                                +| 01                            | CONTR-A       | '\'                                           
-| 02           | CL LN            | CONTR-B       | '{'                                +| 02           | CL LN            | CONTR-B       | '{'                                           
-| 03           | STOP             | CONTR-C       | '~'                                +| 03           | STOP             | CONTR-C       | '~'                                           
-| 04                            | CONTR-D       lösche vertikal                    +| 04                            | CONTR-D       fülle vertikal                                
-| 05                            | CONTR-E       Farbe Bildschirmrand einstellen  +| 05                            | CONTR-E 1..8  | Farbe Bildschirmrand einstellen               
-| 06                            | CONTR-F       Umschaltung auf Blinken          +| 06                            | CONTR-F       | Umschaltung auf Blinken                       
-| 07                            | CONTR-G       | %%|%%                              +| 07                            | CONTR-G       | %%|%%                                         
-| 08           | cu left          | CONTR-H       | links                              +| 08           | cu left          | CONTR-H       | links                                         
-| 09           | cu right         | CONTR-I       | rechts                             +| 09           | cu right         | CONTR-I       | rechts                                        
-| 0A           | cu down          | CONTR-J       | runter                             +| 0A           | cu down          | CONTR-J       | runter                                        
-| 0B           | cu up            | CONTR-K       | hoch                               +| 0B           | cu up            | CONTR-K       | hoch                                          
-| 0C                            | CONTR-L       | Löschen des Bildschirmes           +| 0C                            | CONTR-L       | Löschen des Bildschirmes                      
-| 0D           | ENTER            | CONTR-M       neue Zeile                         +| 0D           | ENTER            | CONTR-M       Wechsel in nächste Zeile                      
-| 0E                            | CONTR-N                                          +| 0E                            | CONTR-N       Bildschirm drucken                            
-| 0F                            | CONTR-O       | 0BFh                               +| 0F                            | CONTR-O       | 0BFh                                          
-| 10                            | CONTR-P                                          +| 10                            | CONTR-P                                                     
-| 11                            | CONTR-Q                                          +| 11                            | CONTR-Q       Tastatur-Kontrollton ein/aus                  
-| 12                            | CONTR-R       | 8Eh                                +| 12                            | CONTR-R       | 8Eh                                           
-| 13           | PAUSE            | CONTR-S                                          +| 13           | PAUSE            | CONTR-S       Bild nach oben verschieben                    
-| 14           | COLOR            | CONTR-T       COLOR                              | +| 14           | COLOR            | CONTR-T 1..8  Vordergrundfarbe                              | 
-| 15           | COLOR+SHIFT      | CONTR-U       COLOR                              | +| 15           | COLOR+SHIFT      | CONTR-U 1..8  Hintergrundfarbe                              | 
-| 16                            | CONTR-V                                          +| 16                            | CONTR-V       Umschaltung auf Invers                        
-| 17                            | CONTR-W                                          +| 17                            | CONTR-W       aktuelle Farbe für das ganze Bild übernehmen  
-| 18           | tab right        | CONTR-X       | '['                                +| 18           | tab right        | CONTR-X       | '['                                           
-| 19           | tab left         | CONTR-Y       | ']'                                +| 19           | tab left         | CONTR-Y       | ']'                                           
-| 1A           | INS              | CONTR-Z       | ins                                +| 1A           | INS              | CONTR-Z       | ins                                           
-| 1B           | ESC              |               | '}'                                +| 1B           | ESC              |               | '}'                                           
-| 1C           | LIST                           | '`'                                +| 1C           | LIST                           | '`'                                           
-| 1D           | RUN              |               | Wechsel zum Menü                   +| 1D           | RUN              |               | Wechsel zum Menü                              
-| 1E           | CONT                                                              +| 1E           | CONT                           Bild nach unten verschieben                   
-| 1F           | DEL              |               | del                                |+| 1F           | DEL              |               | del                                           |
  
  
-====== Interna ======+===== 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.  
 + 
 +{{:z9001:software:jkcemu_save_screen.jpg?300|}} 
 + 
 +===== Interna =====
  
 Bilddatei (COM): Bilddatei (COM):
  
   fcb name8 = bildnr 1..8   fcb name8 = bildnr 1..8
-  compressed - Kennung in FCB 67h = "C""M" +  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 einfache RLE-Compression
Zeile 94: Zeile 136:
   00 char anzahl  RLE (max 256 Zeichen)   00 char anzahl  RLE (max 256 Zeichen)
 Abgespeichert wird FBWS und BWS (E800-EFBF) ! Abgespeichert wird FBWS und BWS (E800-EFBF) !
 +
 +<code>
 +;------------------------------------------------------------------------------
 +; 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
 +</code>
 +
 +BASIC wird als "BILD-BAS" gespeichert, keine Farbe, einfache PRINT-Anweisungen
 +
  
  • z9001/software/paintbox.1607958015.txt.gz
  • Zuletzt geändert: 2020/12/14 15:00
  • von volkerp