Hallo Besucher, der Thread wurde 8,8k mal aufgerufen und enthält 62 Antworten

letzter Beitrag von Natas am

C64 vs VC20

  • Würde der PAL Quartz durch 16 geteilt werden, hätten wir die selbe Frequenz wie am VC20.
    Wird aber bei PAL durch 18 geteilt, deshalb langsamer.


    Warum durch 18 statt durch 16 müsste man dann auch den Chipdesigner fragen?

    war das nicht eine bewusste Entscheidung mit dem Taktteiler, um "Farbmuster" zu vermeiden? :16 hiesse, dass man ein Verhältnis von 1:2 von Colorclock/4 und Dotclock hätte. Die Option mit genau 1MHz Takt aus einem separaten 8MHz Quarz wurde auch wieder verworfen, aus ähnlichen Gründen.

    Code: Floppy Fehlerkanal abfragen - Ausserdem kann ich bei "drive not ready" den I: und N: Befehl verwenden und notfalls den Kopf manuell zurückschieben. Und Finger weg vom Stepper!
    1. 10 open1,8,15 : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    2. 20 get#1,a$:?a$;:ifst<>64goto20 : rem Das CLOSE 1 am Ende kann man sich sparen, weil beim RUN automatisch ein CLOSE ALL ausgeführt wird.
    3. RUN
  • Die Option mit genau 1MHz Takt aus einem separaten 8MHz Quarz wurde auch wieder verworfen, aus ähnlichen Gründen.

    Den CPU-Takt an den VIC-Takt "anzubinden" und nicht separat zu erzeugen ergibt sich MMN aus dem notwendigen Zusammenspiel von CPU und VIC bei der "Busaufteilung", sowohl beim VC-20 als auch beim C64. Eine CPU, die mit separat erzeugtem Takt läuft, mit dem VIC zu synchronisieren ist quasi unmöglich; siehe die 8563-Story im C128.

  • Dotclock/Phi0 wären ja immer noch in festem Phasenverhältnis. Die Colorclock kann ja "frei" sein, sieht nur komisch aus evtl, drum wurde es nicht gemacht, und eben ein "krummer" Teiler genommen, um Muster/Oberwellen etc. zu vermeiden.

    Code: Floppy Fehlerkanal abfragen - Ausserdem kann ich bei "drive not ready" den I: und N: Befehl verwenden und notfalls den Kopf manuell zurückschieben. Und Finger weg vom Stepper!
    1. 10 open1,8,15 : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    2. 20 get#1,a$:?a$;:ifst<>64goto20 : rem Das CLOSE 1 am Ende kann man sich sparen, weil beim RUN automatisch ein CLOSE ALL ausgeführt wird.
    3. RUN
  • Dotclock/Phi0 wären ja immer noch in festem Phasenverhältnis. Die Colorclock kann ja "frei" sein, sieht nur komisch aus evtl, drum wurde es nicht gemacht, und eben ein "krummer" Teiler genommen, um Muster/Oberwellen etc. zu vermeiden.

    Getrennte Takte (DOTCLOCK/PHICOLOR) wären ja eh besser, daher wurde ja bei PAL und NTSC so ein "krummer" Farbträger gewählt, um möglichst keine Beeinflussung zu haben.


    Und die Heimcomputerhersteller haben das dann ad absurdum geführt und aus Einsparungsgründen auf nur einen Quarz und nur eine Taktquelle gesetzt.

  • der SX64 hat ja zwei getrennte Quarze. Hat das mal jemand verglichen, ob das Bild da deutlich besser ist als bei einem vergleichbaren C64 am identischen Monitor? Muss halt schon vergleichbar sein, also idealerweise identischer VIC-II und auch vergleichbare "Modulatorschaltung", sprich C64 mit Modulator-Ersatzschaltung oder C64 Reloaded oder dergleichen.

    Code: Floppy Fehlerkanal abfragen - Ausserdem kann ich bei "drive not ready" den I: und N: Befehl verwenden und notfalls den Kopf manuell zurückschieben. Und Finger weg vom Stepper!
    1. 10 open1,8,15 : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    2. 20 get#1,a$:?a$;:ifst<>64goto20 : rem Das CLOSE 1 am Ende kann man sich sparen, weil beim RUN automatisch ein CLOSE ALL ausgeführt wird.
    3. RUN
  • Das Color RAM ist aber SRAM, nicht wahr? Wäre vermutlich zu teuer gewesen dafür auch noch einen Refresh in den VIC-II zu packen...

    Für den VIC gibt es keine Trennung zwischen dem normalen DRAM und dem Color-SRAM, das ist alles nur ein Speicherinterface mit 12 Bit Breite. Theoretisch sollte man daher auch ein DRAM für das Color-RAM verwenden können, aber das lohnte sich nicht: Entweder hätte man dann sehr viel mehr Color-RAM auf der Platine oder man hätte uralte Chips verwenden müssen, die deutlich höhere Anforderungen an die Stromversorgung (wahrscheinlich +5V, +12V und -5V) gestellt hätten. Das im C64 verbaute SRAM ist dagegen billiger Standardkram, der unter anderem schon im VIC-20 verbaut wurde.

    Ohne mich zu weit aus dem Fenster zu lehnen habe ich das anders in Erinnerung.

    Der VIC-II hat ein 14-Bit Adressbus, deshalb auch die 16K Bänke. Die fehlenden 2 Adressbits kommen vom CIA

    Über die 14 Adressbits kann der VIC-II auf das DRAM zugreifen. Deshalb ist er auch in der Lage die Speicherstellen $0000 und $0001 zu lesen, macht man das mit der CPU landet man in den PLA Controlregistern der 6510 CPU was sie damit von der 6502 unterscheidet.

    Über den 8 Bit Datenbus erhält der VIC-II dann die Datenbytes zurück. In einer Badline gehe da z.B. 40 Zyklen verloren für die Characters. Das Colorram (SRAM) kann der VIC-II separat gleichzeitig ansprechen, weshalb in einer Badline auch nur 40 Zyklen verloren gehen (Sprites mal aussen vor). Hier hat er 4 Extra Datenleitungen wodurch oft der Eindruck entsteht es wäre ein 12-Bit Datenbus. Da würde ich nur ein "Jein" dazu sagen ;)

    Das SRAM ist meines Wissens auch kein extra baustein, sondern direkt im VIC-II Chip untergebracht.

  • Und die Heimcomputerhersteller haben das dann ad absurdum geführt und aus Einsparungsgründen auf nur einen Quarz und nur eine Taktquelle gesetzt.

    Schlimmer noch: Beim Apple II wurde die Interferenz zwischen Pixeln und Farbträger gezielt ausgenutzt, um überhaupt Farben erzeugen zu können.

  • Das SRAM ist meines Wissens auch kein extra baustein, sondern direkt im VIC-II Chip untergebracht.

    Oh, das kann ich wiederum verneinen, zumindest für meine Breadbins. Defektes Color RAM hatte ich schon einmal und habe den SRAM Baustein ausgetauscht. :-D

  • Das SRAM ist meines Wissens auch kein extra baustein, sondern direkt im VIC-II Chip untergebracht.

    Oh, das kann ich wiederum verneinen, zumindest für meine Breadbins. Defektes Color RAM hatte ich schon einmal und habe den SRAM Baustein ausgetauscht. :-D

    Und wenn, dann ist das SRAM im 64-Pin-Custom-IC integriert (252535-01), das ist bei der Platine 250469 Rev. B der Fall.


    [EDIT]

    Hier hat er 4 Extra Datenleitungen wodurch oft der Eindruck entsteht es wäre ein 12-Bit Datenbus. Da würde ich nur ein "Jein" dazu sagen

    Es ist aus der Sicht des VIC ein 12-Bit-Datenbus; alle 12 Bits werden gleichzeitig gelesen und intern in einem 40 Zeichen x 12 Bits Zeilenpuffer weiterverarbeitet.


    [/EDIT]

  • Leicht vom Thema abweichend:


    wenn ich einen VC20 wie von kinzi beschrieben ohne VIC betreibe (Ersatzteile und ihre Zweckentfremdung), könnte ich den dann zb mit 2 MHz betreiben (wenn es eine 6502A CPU ist)?

  • Leicht vom Thema abweichend:


    wenn ich einen VC20 wie von kinzi beschrieben ohne VIC betreibe (Ersatzteile und ihre Zweckentfremdung), könnte ich den dann zb mit 2 MHz betreiben (wenn es eine 6502A CPU ist)?


    Da müsste wirklich ALLES konsequent für 2MHz ausgelegt werden:

    • VIA
    • CPU
    • RAM wird passen wahrscheinlich
    • ...


    Die Uhr läuft dann zu schnell, oder kommt die von den 50Hz?

  • wenn ich einen VC20 wie von kinzi beschrieben ohne VIC betreibe (Ersatzteile und ihre Zweckentfremdung), könnte ich den dann zb mit 2 MHz betreiben (wenn es eine 6502A CPU ist)?

    Sollte klappen, ja.

    Die Uhr läuft dann zu schnell, oder kommt die von den 50Hz?

    Die VIAs haben keine Echtzeituhren. Wenn TI und TI$ gemeint sind: Die werden im IRQ hochgezählt. Der IRQ wird beim VC-20 durch die Timer in den VIAs erzeugt, wenn ich mich nicht irre. Da diese auch mit 2 MHz laufen, müsste auch der IRQ zu schnell sein, TI und TI$ also zu schnell laufen.

  • Sicher. Warum nicht. Könnte "man". ^^

  • Das SRAM ist meines Wissens auch kein extra baustein, sondern direkt im VIC-II Chip untergebracht.

    Oh, das kann ich wiederum verneinen, zumindest für meine Breadbins. Defektes Color RAM hatte ich schon einmal und habe den SRAM Baustein ausgetauscht. :-D

    Und wenn, dann ist das SRAM im 64-Pin-Custom-IC integriert (252535-01), das ist bei der Platine 250469 Rev. B der Fall.

    Dann hatte ich das falsch im Gedächtnis. Meinte mal einen Artikel gelesen zu haben wo erklärt wurde, dass das SRAM im VIC integriert wurde. Mein Fehler


    Hier hat er 4 Extra Datenleitungen wodurch oft der Eindruck entsteht es wäre ein 12-Bit Datenbus. Da würde ich nur ein "Jein" dazu sagen

    Es ist aus der Sicht des VIC ein 12-Bit-Datenbus; alle 12 Bits werden gleichzeitig gelesen und intern in einem 40 Zeichen x 12 Bits Zeilenpuffer weiterverarbeitet.


    [/EDIT]

    Ja da hast du recht, ich wollte damit nur aufzeigen, das die 4 extra Datenleitungen aber nichts mit dem Zugriff der CPU und des Zyklenklau in den Badlines zu tun haben. Wenn der VIC die CPU sperrt (Badlines) gilt das nur für die Zugriffe auf die 16k Bank. Vorher wurde ja diskutiert ob man mit schnelleren SRAM und anderen Argumenten Geschwindigkeitstechnisch einen Vorteil erzielen könnte und dem ist nun mal nicht so. Das hattest du ja auch schon erklärt.

  • Sicher. Warum nicht. Könnte "man". ^^

    Wie sag ich das jetzt am besten...


    :ilikeit::applaus::thumbsup:

  • Nächste Frage :-D


    wäre es am c64 auch möglich, einen ganzen Speicherbereich von einem RAM Modul am Expansionport über den internen RAM drüber zu legen?


    also statt kopieren wie beim GeoRAM oder beim REU, zwischen interner Bank und externen Bänken umschalten (zb in 8 oder 16 kB Blöcken)

  • Steckmodule können sich mit Hilfe der PLA grundsätzlich nicht nur bei $8000-$9FFF, sondern auch bei $A000-$BFFF und $E000-$FFFF einblenden.
    Der erste 8KB Bereich wäre dazu empfehlenswert.

    Der zweite 8KB Bereich liegt im selben Bereich wie das BASIC-ROM da die Anwendung auf dem Modul vermutlich nicht in Basic programmiert ist macht das aber nicht so viel.
    Der letzte Bereich ist eher unpraktisch außer man möchte das KERNAL-ROM ersetzen.


    https://blog.8bitchip.info/328-c64-uni-cart/

    https://github.com/msolajic/c64-magic-desk-512k

    Du findest bestimmt aber auch hier was mit der Board Suche

    Statt dem EPROM kann man ein SRAM einsetzen https://www.cypress.com/file/220561/download
    Allerdings gibt es die nicht mehr im DIP-Gehäuse oder nur für den 10-fachen Preis.