Diskussion:64'er Malwettbewerb Multicolor

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Welche Bilder sind HiRes?[Bearbeiten]

  • Der Ferrari (Bild 12)
Die folgenden Bilder sind ebenfalls Hires, aber nicht in der Galerie. (Du hast den Baum in deiner Abteilung Diskettenpack drin, Petrus.)
  • Raumschiff (22, Disk 3)
  • Baum (23, Disk 3)
  • Gestrandet (23, Disk 4)
--GoDot 11:03, 11. Mai 2008 (CEST)
Danke! Im Artikel sind also genau 3 HiRes-Bilder zu sehen:
"Ferrari" (12), "Raumschiff" (26) und "Baum" (Diskettenpack).
--Petrus 20:10, 11. Mai 2008 (CEST)

Hinweise[Bearbeiten]

Die Bilder auf den vier Disketten sind nicht im Diashow-Maker-Format. Der Programmierer des auf den Disks verwendeten Diashow-Players (namens Dieter Bayer) hat offensichtlich ein eigenes (gepacktes) Format verwendet. Da es meines Wissens nie wieder irgendwo aufgetaucht ist, habe ich dafür keinen GoDot-Lader entwickelt. Auch die FileType-Funktion von GoDot erkennt das Format der Bilder nicht. --GoDot 10:59, 11. Mai 2008 (CEST)

Damit es keine Verwechslung mit dem Diashow-Maker gibt, benenne ich das Programm von D.Bayer mal um wie oben ("Diashow-Player").
1989 hatte ich die Laderoutine des Diashow-Players in mein Farbdruckprogramm eingebaut, um eine ganze Reihe der Bilder drucken zu können. Für alle, die sowas auch programmieren möchten, gebe ich hier ein kommentiertes Assemblerlisting des wichtigsten Programmteils - der Entpackroutine.
Voraussetzung ist ein OPEN.
  ,08F2  A2 08     LDX #08      ; Gerät 8
  ,08F4  20 C6 FF  JSR FFC6     ; CHKIN
  ,08F7  A9 00     LDA #00      ; Zeiger (50/51) setzen
  ,08F9  85 50     STA   50
  ,08FB  A9 40     LDA #40      ; auf $4000               
  ,08FD  85 51     STA   51
  ,08FF  20 A5 FF  JSR FFA5     ; IECIN (Byte einlesen)
  ,0902  A6 90     LDX   90     ; Status prüfen
  ,0904  D0 20     BNE 0926     ; und ggf. beenden 
  ,0906  8D 9C 0C  STA 0C9C     ; 1. Byte = Packerkennung 
  ,0909  20 A5 FF  JSR FFA5     ; nächstes Byte holen
  ,090C  A6 90     LDX   90     ; Status
  ,090E  D0 16     BNE 0926       
  ,0910  8D 9D 0C  STA 0C9D     ; 2. Byte = Nullenkennung
                                ; 
  ,0913  20 A5 FF  JSR FFA5     ; Zeichen einlesen             
  ,0916  A6 90     LDX   90     ; Status
  ,0918  D0 0C     BNE 0926               
  ,091A  CD 9D 0C  CMP 0C9D     ; = Nullen-Kennung?                
  ,091D  F0 3B     BEQ 095A     ; ja, dann Nullenauswertung                 
  ,091F  CD 9C 0C  CMP 0C9C     ; = Packer-Kennung?
  ,0922  F0 0D     BEQ 0931     ; ja, dann Packerauswertung
  ,0924  D0 27     BNE 094D     ; Zeichen so speichern
  -----------------------------------                
  ,0926  20 CC FF  JSR FFCC     ; CLRCHN
  ,0929  A9 08     LDA #08
  ,092B  20 C3 FF  JSR FFC3     ; CLOSE
  ,092E  4C 9E 08  JMP 089E     ; fertig: hier kann man bei einer eigenen Routine ein RTS reinschreiben.
  -----------------------------------     
  ,0931  20 A5 FF  JSR FFA5     ; Byte einlesen         
  ,0934  8D 9A 0C  STA 0C9A     ; in Puffer für Zeichen         
  ,0937  20 A5 FF  JSR FFA5     ; nächstes Byte
  ,093A  AA        TAX	         ; als Zähler X nehmen
  ,093B  A0 00     LDY #00                
  ,093D  AD 9A 0C  LDA 0C9A     ; Zeichen ablegen                
  ,0940  91 50     STA  (50),Y  ; in Grafikspeicher            
  ,0942  E6 50     INC   50               
  ,0944  D0 02     BNE 0948               
  ,0946  E6 51     INC   51               
  ,0948  CA        DEX          ; x-mal        
  ,0949  D0 F5     BNE 0940               
  ,094B  F0 C6     BEQ 0913     ; bis Zählerende 
  -----------------------------------                
  ,094D  A0 00     LDY #00                
  ,094F  91 50     STA  (50),Y  ; Zeichen in Grafikspeicher         
  ,0951  E6 50     INC   50     ; und Zeiger erhöhen         
  ,0953  D0 02     BNE 0957               
  ,0955  E6 51     INC   51               
  ,0957  4C 13 09  JMP 0913               
  -----------------------------------     
  ,095A  A9 00     LDA #00	         
  ,095C  8D 9A 0C  STA 0C9A     ; Puffer für Zeichen
  ,095F  F0 D6     BEQ 0937
  -----------------------------------
Danach stehen folgende Daten-Bereiche zur Verfügung:
- Grafik $4000 - $5F39
- Rahmenfarbe $5F40
- Hintergrundfarbe $5F41
- Grafikmodus-Kennung $5F42: $00 bei Hires, $10 bei Multicolor
LDA $D016
AND #$EF
ORA $5F42
STA $D016
- Videoram ab $6000
- Farbram ab $6400
--Petrus 20:10, 11. Mai 2008 (CEST)