Posts by tokra

    Ich denke eher, dass beim "The VIC-20" die Prüfkosten der USK gespart werden sollten. Für den Rest Europas gilt ja PEGI, nur der deutsche Jugendschutz hält sich mal wieder für besser und macht sein eigenes Ding. Ohne USK-Prüfung und Kennzeichnung sind solche Artikel dann per Gesetz wie "ab 18" zu behandeln im Versand und da haben die Versandhändler wegen der höheren Kosten/Aufwand dann wohl keine Lust drauf.

    Der VIC-II lässt sich nur in der Version beim C128 durch das Test-Bit von $d030 in einen "echten" Interlace-Modus bringen (320x400)

    Ist das nicht ein forcierter Reset aller interner Zähler? Das ergibt kein sauberes Interlace, der VSync muss eigentlich nicht nur in der Mitte der Zeile anfangen, sondern auch in der Mitte der Zeile aufhören.

    Die genauen Details sind by Hydrohphilic auf der Seite erklärt:

    https://sites.google.[com]/site/h2obsession/CBM/C128/Interlace (Link bitte reparieren, hat das Forum in der Original-Form nicht zugelassen)

    Selbst wenn das nicht ganz "sauber" sein sollte, das originale VIC-Signal ist ja auch kein 100% sauberes PAL

    Also beim VDC hat sowohl die alte als auch die neue Version die Fähigkeit zum Interlace. Macht aber eigentlich nur Sinn mit 64K VDC-RAM-Ausbau, und der ist nur beim 8568 serienmäßig schon dabei. Sonst muss man halt upgraden.

    Der VIC-II lässt sich nur in der Version beim C128 durch das Test-Bit von $d030 in einen "echten" Interlace-Modus bringen (320x400)


    Der VIC-I (vom VC20) hat nur in der NTSC-Version (6560) die Fähigkeit zu echtem Interlace, bei der PAL-Version (6561) hat das Setzen des Bits keinen Effekt. Mit geschickter Programmierung lässt sich so dem NTSC-VIC20 ein Bild von 192x416 entlocken.

    Zum TED müssen andere schreiben, damit kenne ich mich gar nicht aus.

    Ich meine, Gideon hätte irgendwann mal bei Facebook geschriebeben, dass man die "richtigen" Werte für die jeweilige Maschine ggf. softwaremäßig bestimmen kann? Kennt sich da jemand besser mit dem Thema aus? Ich sehe häufig C128-Nutzer mit derartigen Problemen und da wäre ein Programm, dass die passenden Werte ausgibt ja eine schöne Lösung.

    Also, wenn du einfach willst, dass es läuft solltest Du die gesockelten RAMs rausnehmen können und die Platine einsetzen, wo der VDC wieder oben drauf kommt. Der Sinn der Platine ist tatsächlich der, das Upgrade OHNE das Entlöten der RAMs vornehmen zu können, da der VDC meistens gesockelt ist. D.h. die alten 16 KB VDC-RAM werden mit dem Adapter einfach umgangen und liegen brach. Mehr macht die Platine nicht.


    Ich habe selber damals 1990 oder so meinen C128 entsprechend durch das Entlöten der RAMs und Einsetzen neuer RAMs upgegradet, so stand es auch im 128er Sonderheft Nr. 44.


    Das Bit 4 von Register 28 muss man IMMER manuell setzen, wenn man die 64K RAM nutzen möchte, das ist unabhängig vom VDC- oder C128-Typ.

    Wenn man den VDC richtig einstellt, kann man da auch ein EGA- oder VGA-kompatibles Signal rausquetschen :) Der 8568 hat sogar extra ein weiteres Register, um EGA-kompatibel zu sein (Sync-Polarität, braucht man heute aber nicht mehr).

    Also ich nutze einen LDC-TV von ca. 2013. Der hat noch S-Video-Eingang wählbar, die gibt es sonst kaum noch. Und das 80 Zeichen-Signal geht nach einem RGBI->RGB-Analog-Wandler (bit-c128.com) in die Scart-Buchse (RGB). Das ganze ist über einen Umschalter dann schaltbar.


    Vorteil ist, dass TV-Geräte die 15 kHz ab Werk können, Monitore sind meistens nur 31.5 kHz-tauglich, da kommt man nur mit Linedoublern weiter. Die Lösung per LCD-TV braucht das nicht.


    Mit dem GBS8200 wirst du das 80-Zeichen-Signal ebenfalls nur via vorgeschaltetem RGBI->RGB-Analog-Wandler darstellen können. Die Qualität ist eher mittelmäßig. Seit ich den LCD-TV nutze will ich nicht mehr zurück dahin.

    P.S.: Je nachdem welches ROM du in deinem C128 hast, sind die PAL-Einstellungen des VDC im Commodore-Kernal auch etwas anders. Die wurden bei der neueren ROM-Version von 1986 etwas optimiert. Die älteren Versionen des ROMs haben etwas weniger PAL-kompatible Einstellungen. Die ROM-Version deines 128er erkennst Du an der Einschaltmeldung. Wenn da 1986 steht ist es die neue Version. Sollte es beim C128DCR eigentlich immer sein.

    Da steht 1985, ist ja auch kein C128 DCR, sondern ein C128 (den man wohl auch "Türkeil" nennt?)

    Achso, weil Du oben schriebst:

    Quote

    Realisierung eines 80-Zeichen Mode Konverters für meinen C128DCR


    Jedenfalls sind die PAL-Registereinstellungen wie folgt geändert worden vom 1985er zum 1986er ROM für PAL:


    Reg 0: 126 (1985), 127 (1986)

    Reg 4: 39 (1985), 38 (1986)

    die 1986er Werte sind dichter an PAL.

    Kurze Berechnung für 1985er-ROM: 16 Mhz / (127 Zyklen (=Reg 0 +1) * 8 Pixel) = ca. 15748 Hz Horizontalfrequenz, dies geteilt durch (8 * 40 Zeilen (Reg 4 +1))= 49,21 Hz Bildwechselfrequenz

    Kurze Berechunng für 1986er-ROM: 16 Mhz / (128 Zyklen (=Reg 0 +1) * 8 Pixel) = 15625 Hz Horizontalfrequenz (das ist schonmal die perfekte PAL-Horizontalfrequenz), dies geteilt durch (8 * 39 Zeilen (Reg 4 +1))= 50,08 Hz Bildwechselfrequenz (und das ist auch deutlich besser als 49,21 Hz)

    https://www.diffen.com/difference/NTSC_vs_PAL


    Wenn man also schon ein sauberes Eingangssignal möchte sollte man zumindest die besseren PAL-Werte nehmen. Habe da vor ein paar Jahren jemand auf der Interface in Kiel auch drauf gebracht, dessen Konverter auch kein sauberes Bild liefern wollte, bis ich ihn auf die Werte des neuen ROMs hingewiesen hatte.

    Das Problem wird sein, dass die VDC-Einstellungen bei GEOS128 im Geos-Kernel gemacht werden und standardmäßig auf NTSC-kompatible Parameter eingestellt sind (auch beim deutschen GEOS128). Also muss man entweder da direkt dran oder sich ein kleines GEOS-Autoboot-Programm schreiben, das den VDC auf die gewünschten PAL-Werte setzt, solange die identisch von den Frequenzen zum Textmodus sind muss man auch nichts nachjustieren.

    Ob und wie oft GEOS128 den VDC-Mode selbständig dann wieder auf seine Kernel-Werte zurücksetzt weiß ich leider aus dem Stegreif auch nicht. Ich hatte damals so 1993 ein GEOS-Program geschrieben, dass GeoPaint-Bilder in 640x720 Interlace auf dem Monitor anzeigt und das setzt auch die VDC-Register entsprechend um für die GUI und Anzeige.

    Für eine bessere Bildqualität sollte man den GBS8220 meiden, der ist nicht das Gelbe vom Ei. Idealerweise nimmt man einen LCD-TV (15 kHz) mit RGB-Scart-Eingang, den kannst Du direkt mit dem RGBI DAC verkabeln und hast das beste Bild. Dieses zwanghafe Umwandeln des GBS8220 auf 31.5 kHz (VGA) macht das Bild nicht besser.


    P.S.: Je nachdem welches ROM du in deinem C128 hast, sind die PAL-Einstellungen des VDC im Commodore-Kernal auch etwas anders. Die wurden bei der neueren ROM-Version von 1986 etwas optimiert. Die älteren Versionen des ROMs haben etwas weniger PAL-kompatible Einstellungen. Die ROM-Version deines 128er erkennst Du an der Einschaltmeldung. Wenn da 1986 steht ist es die neue Version. Sollte es beim C128DCR eigentlich immer sein.

    Also bei der MegaCart sollte das SJLOAD normalerweise schon vorinstalliert sein in den Bereich ab $9c40 (= dezimal leicht zu merken 40000), ansonsten ist das ins NVRAM nachlbar mit dem Inject-Tool von tlr. Bei der UltiMem hab ich seinerzeit dafür ein Image erstellt, das beim Einschalten die RAM-Konfiguration abfragt und das SJLOAD in den selben Bereich lädt. Zur Aktivierung des SJLOAD muss man hier noch einmal SYS 40000 eingeben, bevor man was damit laden will. Einmal installiert flutscht das Reinladen von Doom und das Level-Nachladen dann aber erfreulich schnell.


    Hier der Link zu meinem UltiMem-Image:

    http://sleepingelephant.com/ip…c.php?f=11&p=87470#p87463

    Per Rasterzeilen-Prüfcode kannst Du es so erkennen:

    Hier werden einfach zwei Schleifen durchlaufen, so dass auf jeden Fall genug Taktzyklen verbraucht werden. Dann wird geprüft, ob $9004 irgendwann einmal den Wert 136 erreicht, was nur bei PAL der Fall sein wird. Das Ergebnis wird dann nach $033c geschrieben. D.h. wenn dort nach dem Aufruf 0 drinsteht, ist ein NTSC-VIC verbaut, wenn 1 drinsteht ein PAL-VIC.

    Du kannst auch das Kernal-ROM testen, da sind die Grundwerte für den VIC hinterlegt.


    PEEK(60900)=12 bei PAL

    PEEK(60900)=5 bei NTSC


    Wenn du für beide Systeme programmieren willst, einfach die Werte für $9000 und $9001 nur relativ zum Ausgangspunkt setzen.


    Knifflig wird es erst bei raster-genauen Code. Da wirst du um spezielle Versionen für PAL und NTSC nicht umhinkommen oder nach PAL-Erkennung ein paar Wartezyklen einbauen (da 71 statt 65 Zyklen je Rasterzeile).