Posts by tokra

    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).

    Ja, das ist im Prinzip ein schönes Netzeil, und es gibt ja auch eine Variante für den C128. Die superhelle Beleuchtung ist definitiv nervig. Ich war dazu letztes Jahr schon in Kontakt mit denen, ob es eine Variante OHNE Beleuchtung gibt oder zumindest abschaltbar. Werde da nochmal nachhaken.

    Bei diesen DIN auf Cinch-Adaptern muss man etwas aufpassen. Unter Umständen sind da Widerstände im Stecker eingelötet und dann bekommt man damit kein Bild. Anscheinend sind diese Widerstände im Audio-Bereich wohl teilweise nötig. Zu dem verlinkten Kabel konnte ich jetzt nicht feststellen, dass da Widerstände drin sind, aber wenn's nicht klappt liegt es (aus Erfahrung) meistens da dran.

    Mühsam nährt sich das Eichhörnchen:( Nächste Baustelle ist der VDC.

    Bevor du dich da verzettelst, empfehle ich die Lektüre dieses Links. Der VDC ist gerne mal "bockig"...

    http://c-128.freeforums.net/th…rrect-write-vdc-registers

    Zusammenfassung: Immer die Reihenfolge der RAM-Pointer-Register beim Lesen/Schreiben beachten. Beim Auslesen vom RAM-Register vorher das Ready-Bit prüfen. Zur Beschleunigung des VDC gerne das DRAM-Refresh-Register (36) auf 0 setzen.