Diskussion:64'er Malwettbewerb Multicolor

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Welche Bilder sind HiRes?[Quelltext 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[Quelltext bearbeiten]

Die Bilder auf den vier Disketten (gemeint ist hier das Archiv "MCDiashow der 64'er") 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)

Warum zwei Diashow-Programme?[Quelltext bearbeiten]

Ist bekannt, wer und wieso dieser sich die Mühe gemacht hat, alle 4 Diskseiten nochmal neu mit dem anderen Format des Diashow-Player 1.3 zu packen? Er scheint minimal besser zu komprimieren, aber es macht am Ende keinen Unterschied, es bleiben 4 Diskseiten. ThunderBlade (Diskussion) 18:06, 4. Okt. 2019 (CEST)

Da beide Diskettenpackungen von der 64'er herausgegeben worden sind, wird wohl deren Redaktion entschieden haben, bei der zweiten Auflage ein verändertes Anzeigeprogramm zu benutzen. Wieso, darüber kann ich auch nur spekulieren. Wenn man beide Programme vergleicht, fällt auf, dass der eigentliche Diashow-Maker deutlich umfangreicher und leistungsfähiger ist. Das Anzeigeprogramm auf den Disketten ist eine verkürzte Version. Der Diashow-Player 1.3 ist eine abgespeckte Variante davon, die sich ganz auf das Anzeigen von Grafiken beschränkt. Vielleicht war geplant, diesen Player auch auf zukünftigen 64'er Disketten zu benutzen. Während das Format vom Diashow-Maker ein Quasi-Standard wurde, habe ich das vom Diashow-Player 1.3 bislang allerdings nirgendwo sonst gefunden. --Petrus (Diskussion) 12:36, 5. Okt. 2019 (CEST)
Alle Bilder nochmal zu packen hat bestimmt 'ne Weile gedauert. Vielleicht gab es Speeder, die beim Nachladen den Bildschirm abgeschaltet haben. Die neuere Version scheint einen Byte-für-Byte-Lader zu benutzen, der das verhindert. Andere Möglichkeit wäre dass es sich rechtlich um eine "kommerzielle" Veröffentlichung handelte und dafür der Original-Diashow Viewer nicht ohne Erlaubnis verwendet werden durfte (klingt an den Haaren herbeigezogen, aber das sind so rechtliche Dinge ja manchmal). ThunderBlade (Diskussion) 16:02, 5. Okt. 2019 (CEST)