Hallo Besucher, der Thread wurde 7,5k mal aufgerufen und enthält 35 Antworten

letzter Beitrag von daybyter am

Z80 Software für den C128

  • Soweit ich noch in Erinnerung habe, startet ein C128 zunächst mit der Z80 CPU, welche die Kontrolle an den 8502 übergibt, wenn keine Z80 Software von Laufwerk 8 gebootet werden soll. Die einzig mir bekannte Z80 Software für den C128 ist CP/M (bzw. CP/M basierte Anwendungssoftware). Gab/gibt es eigentlich andere Software für den C128, die den Z80-Prozessor nativ nutzt, ohne CP/M vorauszusetzen (z.B. Demos, o.ä.)?

  • Soweit ich noch in Erinnerung habe, startet ein C128 zunächst mit der Z80 CPU, welche die Kontrolle an den 8502 übergibt, wenn keine Z80 Software von Laufwerk 8 gebootet werden soll.

    Fast. Der Start mit dem Z80 dient dazu, bei eingesteckten C64-Modulen in den C64-Modus schalten zu können, noch bevor der 8502 seinen Resetvektor liest - denn der könnte bereits aus dem Modul kommen, und wenn dann die Maschine noch im 128er-Modus ist, passiert Murks. Mit dem Booten von CP/M hat das überhaupt nichts zu tun; das Laden und Ausführen des Bootsektors erledigt der 8502, und falls es sich bei der gebooteten Software um CP/M handeln sollte, wird halt wieder auf den Z80 zurückgeschaltet.

    Die einzig mir bekannte Z80 Software für den C128 ist CP/M (bzw. CP/M basierte Anwendungssoftware). Gab/gibt es eigentlich andere Software für den C128, die den Z80-Prozessor nativ nutzt, ohne CP/M vorauszusetzen (z.B. Demos, o.ä.)?

    Aufgrund der niedrigen Taktrate lohnt es sich schlicht und einfach nicht, im 128er den Z80 einzusetzen - der 8502 ist schneller.

  • Das einzige Programm das mir dazu Einfällt ist "Double-Ass", das ist ein Assembler Programm das Beide Prozessoren nutzt. Veröffentlicht im 64'er Sonderheft 22 ab Seite 66. Das Programm läßt sich auch in ein Eprom Brennen und in U36 Einbauen.

  • Fast. Der Start mit dem Z80 dient dazu, bei eingesteckten C64-Modulen in den C64-Modus schalten zu können, noch bevor der 8502 seinen Resetvektor liest - denn der könnte bereits aus dem Modul kommen, und wenn dann die Maschine noch im 128er-Modus ist, passiert Murks. Mit dem Booten von CP/M hat das überhaupt nichts zu tun; das Laden und Ausführen des Bootsektors erledigt der 8502, und falls es sich bei der gebooteten Software um CP/M handeln sollte, wird halt wieder auf den Z80 zurückgeschaltet.

    Ja, jetzt wo Du's sagst, erinnere ich mich wieder. Danke für die Aufklärung. :)

    Aufgrund der niedrigen Taktrate lohnt es sich schlicht und einfach nicht, im 128er den Z80 einzusetzen - der 8502 ist schneller.

    Irgendwie schade...

  • Das einzige Programm das mir dazu Einfällt ist "Double-Ass", das ist ein Assembler Programm das Beide Prozessoren nutzt. Veröffentlicht im 64'er Sonderheft 22 ab Seite 66. Das Programm läßt sich auch in ein Eprom Brennen und in U36 Einbauen.

    Klingt interessant. Muss ich mir mal ansehen. Danke.

  • Vielleicht mag ja jemand SymbOS portieren, das ist ein Z80-Betriebssystem, das auf verschiedenen Geräten läuft.
    Ich habe aber mal mit dem Programmierer geredet, soweit ich mich erinnern kann war das vergleichsweise seltsame Bank-Switching am C128 ein wesentlicher Grund, der ihn davon abgehalten hat, das auch mal dort zu probieren.


    Edit: Hier habe ich einen Thread gefunden, da erklärt er das nochmal genau:
    http://c-128.freeforums.net/post/1670/thread


    Also... Theoretisch würde es natürlich gehen.


    Eine andere theoretische Möglichkeit wäre wohl Fuzix, wo auch bereits darüber diskutiert wurde:
    https://github.com/EtchedPixels/FUZIX/issues/161

  • das vergleichsweise seltsame Bank-Switching am C128

    Ehrm... das Banking im C 128 ist deutlich 'normaler' und leistungsfähiger als das des CPC 6128. Nur ist es a) nicht über die 128K hinaus erweiterbar und arbeietet b) völlig anders als die AMstrad-Variante. Die ist zwar genauso bekloppt wie LIM-EMS auf dem PC, eignet sich dafür aber hervorragend zum Umschaltten zwischen kleinen Programmen- und genau da drauf ist SymbOS optimiert.

  • Ich habe jetzt nochmal mit dem SymbOS-Entwickler geredet, und dabei ist die Frage aufgetaucht ob es eigentlich eine RAM-Erweiterung gibt, die - im Gegensatz zur REU - auch zulässt dass man diesen RAM verwendet um dort Code auszuführen usw. Denn selbst wenn man das SymbOS portiert, dann wäre es aufgrund der 128 KB etwas mühsam.


    Daher stellen sich die Fragen:
    Gibt es solche RAM-Erweiterungen oder ist das schon eine Limitierung des Systems?
    Funktionieren die mit dem Z80?
    Könnte das theoretisch über die 1541 Ultimate emuliert werden? Dann hätten ja genug Leute dieses Device.

  • Aufgrund der niedrigen Taktrate lohnt es sich schlicht und einfach nicht, im 128er den Z80 einzusetzen - der 8502 ist schneller.

    Ist der Z80 nicht mit 4 MHZ getaktet (C128 max 2 MHZ)?


    Oder arbeitet der Z80 die Befehle so kompliziert ab, das er schlussendlich wieder langsamer ist?



    ist "Double-Ass", das ist ein Assembler Programm das Beide Prozessoren nutzt.

    Dachte immer, dies funktioniert nicht.


    Ist das Programmieren der "Doppelnutzung" so kompliziert oder handelt man sich damit andere gravierende Nachteile ein, das dies nie benutzt wurde?


    So rein aus Neugier :D


    Gruss C=Mac.

  • Ist der Z80 nicht mit 4 MHZ getaktet (C128 max 2 MHZ)?

    Das ist im C128 etwas kompliziert... Ca. 4MHz war aber anfangs ein typischer CPU-Takt für ein Z80-System.


    Zitat

    Oder arbeitet der Z80 die Befehle so kompliziert ab, das er schlussendlich wieder langsamer ist?

    Im Prinzip ja. Der 6502 ist grundsätzlich eine ziemlich effiziente CPU, in jedem Taktzyklus wird ein Speicherzugriff gemacht und im Mittel werden viele davon tatsächlich benötigt und nicht etwa verworfen. Beim Z80 dagegen brauchen Speicherzugriffe IIRC drei bis vier Taktzyklen und die nur vier Bit breite ALU (im Gegensatz zu 8 Bit beim 6502) bremst ebenfalls einige Operationen aus.

  • Hinzu kommt, daß für Diskettenoperationen immer die 8502 Eingeschaltet werden muß. Und daß die Programierer nicht unbedingt auf beiden Prozessoren Programieren können. Die Umschaltung ist auch nicht unbedingt einfach.

  • Wenn man so einfach Z80-Software zwischen den System hin- und herportieren könnte, hätte das CP/M vom 128er schon längst eine angepasste Fassung der GSX-Grafikbibliothek vom CPC erhalten und wir könnten 1:1 das CP/M-Käsekästchenspiel spielen. Verglichen mit dem Umfang eines SymbOS wäre so eine Portierung nur ein Bruchteil an Aufwand, dafür hätte man eine aber eine systemübergreifende Plattform für Programmentwicklungen mit guter Toolunterstützung...


    Nachtrag: es gibt im Internet Anleitungen, die MMU zu erweitern um mehr als 128KB intern zu nutzen. Nur gibt's da keine Software für...

  • Wenn man so einfach Z80-Software zwischen den System hin- und herportieren könnte, hätte das CP/M vom 128er schon längst eine angepasste Fassung der GSX-Grafikbibliothek vom CPC erhalten und wir könnten 1:1 das CP/M-Käsekästchenspiel spielen.

    Ja, das liegt an der ungewöhnlichen Hardware-Architektur des C128.
    Es sind ja nicht nur die beiden verschiedenen CPUs (Z80 und 8502)


    Hinzu kommt ja auch noch die merkwürdige Ansteuerung des VDC-Chips, der außerhalb des normalen Adressraums des C128 liegt.
    Der VDC und sein RAM lassen sich ja nur über 2 Speicherzellen ansprechen. Das würde es für eine GSX-Portierung nicht gerade einfacher machen.

  • Wenn ich nicht komplett falsch liege kommt noch hinzu, dass der VDC pro Zeichenblock nur 2 Farben (Vorder- und Hintergrundfarbe) hat. Wird also ein ziemlich monochrom. Bei GSX denke ich mal ist es verschmerzbar, aber SymbOS dürfte so optisch mit GEOS konkurrieren. Dazu ist der CPC fast doppelt so schnell wie ein C128 (mit Z80 - hatten wir mal auf der Interface verglichen).

  • Dachte immer, dies funktioniert nicht. Ist das Programmieren der "Doppelnutzung" so kompliziert oder handelt man sich damit andere gravierende Nachteile ein, das dies nie benutzt wurde?

    Damit kein Missverständnis entsteht: Double-Ass beherrscht zwar beide Befehlssätze. Die beiden Prozessoren können aber nicht parallel arbeiten. Wenn der eine aktiv ist, wartet der andere, bis wieder umgeschaltet wird. Da der Z 80 bei gleicher Taktfrequenz langsamer ist als die 65xx-CPUs, überwiegen die Nachteile.

  • Wie wird das mit dem 'langsamer' gerechnet? Der z80 kann ja theoretisch mit 1 Befehl 16 bit laden, also doppelt soviel wie der 6502. Dann kommen so Sachen wie Blockbefehle dazu, wo man für Speicherblöcke kein DEC + Branch mehr braucht. Ist er dann immer noch langsamer?

  • Die beiden Prozessoren können aber nicht parallel arbeiten. Wenn der eine aktiv ist, wartet der andere, bis wieder umgeschaltet wird. Da der Z 80 bei gleicher Taktfrequenz langsamer ist als die 65xx-CPUs, überwiegen die Nachteile.

    Dann frag ich mal als Ahnungsloser.
    Was ist den der Sinn davon?


    Wenn die Prozessoren nicht parallel arbeiten können und der Z80 langsamer als der 6502 ist (wie Unseen schon erklärt hat).


    Gruss C=Mac.

  • cp/m braucht einen 8080-kompatiblen Prozessor. Und es gab halt ne Menge 'professioneller' Software für cp/m. Wordstar, DBase2 uvm
    Und der c128 sollte ja so bisserl als Bürocomputer vermarktet werden (was sinnlos war, weil da schon überall PCs standen).