Z80 mit 8 MHz im c128

Es gibt 30 Antworten in diesem Thema, welches 5.012 mal aufgerufen wurde. Der letzte Beitrag (11. Juni 2024 um 13:24) ist von Asklia.

  • Daher wäre es auch schon damals klüger gewesen, den Takt zu steuern und nicht den Prozessor mit Wait.

    ich habe mal bei "meiner" Platine nachgesehen, bzw. im Layout was ich oben gepostet habe. Da ist zwischen Sockel und CPU nur eine Leitung unterbrochen und wird vom GAL gesteuert: Pin 6, der Takt! Alle anderen Pins sind durchverbunden und nur anderweitig angezapft.

    Falls ich das Teil wiederfinde wären natürlich diverse Tests und Messungen im Betrieb interessant. Damals hatte ich nicht die Möglichkeiten dazu.

    Damit ich nicht alle meine C128 und C128D aufschrauben muss um nach der Platine zu suchen: gibt es einen Z80 Benchmark Programm der sich schnell laden lässt, oder auf Testmodul ist oder dergleichen?

    Dann wäre ein Testprogramm interessant um die folgende Situation zu provozieren und zu testen:

    Das fiel nur bei Programmen auf, die den erweiterten Z80 Befehlssatz nutzen, nicht aber bei CP/M selber, das nur den 8080 Befehlssatz nutzt.

    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!
    10 open1,8,15                   : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    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.
    RUN
  • Wenn der Takt gesteuert wird, sollte das kein Problem sein. Das war ein erweitertes Monitorprogramm, bei dem das Problem auftrat. DDT ging, aber das eben nicht. Und ich meine, das Kopierprogram Wash war auch betroffen.

  • Hmmm, ATF 16V8 als SOIC in den Sockel, und das Ding ist nicht grösser als die CPU,

    vielleicht könnte man sogar das LS74 im GAL integrieren.

    Aber isch abe gar keine CPM, und ich wüsste auch nicht wozu...

    Mfg Jood

    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.,
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.,
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von Jood (8. Juni 2024 um 19:44)

  • Klingt irgendwie interessant.

    Aber ist der Z80 nicht bescheiden ins System des C128 integriert und muss die ganze Zeit auf der Bremse stehen?

    Würde ein schnellerer Z80 überhaupt einen Vorteil haben bei CP/M im C128?

    Gruss C=Mac.

  • Das ist ja der Trick... ist halt weniger Brense... bzw. mehr gas wenn grad nicht Bremse...

    Mfg Jood

    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.,
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.,
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen., Bitte melde dich an, um diesen Link zu sehen.

  • "Damit ich nicht alle meine C128 und C128D aufschrauben muss"

    Wieviele hast du denn? Ich habe einen DCR.

    zwei oder drei DCR. da ist aber nix drin. 4 128D? C128 ???

    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!
    10 open1,8,15                   : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    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.
    RUN
  • Thanks! This is awesome find. I see that in my design I guessed some things right and missed others:

    • they are using register (latch) internal to GAL, latch trigger is generated inside GAL - output from pin 19 goes into pin 1 (CLK input) and pin 11 (/OE) is tied to GND; I couldn't figure out how to make it work (no matter 16v8 or 22v10) so I had to use external 74LS74
    • I thought that driving /WAIT is needed, but apparently controlling just the clock line is enough
    • other signals are the same, they are using /RD for something
    • I am using /RESET as input too

    The first point is just my lack of experience with GALs and CUPL in a dynamic setup. I was stuck for a long time tring to use dot clock as the CLK input for GAL and program this like a state machine. That was a dead end.

    I still can't tell if this thing is able to run at 8MHz all the time or only during Z80 phase of the 1MHz clock. I'm still hoping for GAL dump :).

  • You are on the right way. As I have learned 40 years ago, using the Wait signal ofcthe Z80 is more difficult than the Clock signal. I made it wrong at this time like you.

    Use the clock signal only. And this in the correponding half period of the system clock. The attached picture might help.

    Regards

    Asklia

    Bitte melde dich an, um diesen Anhang zu sehen.