Z80-Programme im C128-Modus (nicht CP/M) möglich?

Es gibt 176 Antworten in diesem Thema, welches 32.822 mal aufgerufen wurde. Der letzte Beitrag (9. Januar 2023 um 23:24) ist von Mike.

  • Ich möchte aber sogar behaupten, dass sich bei geschickter Assembler-Programmierung kaum ein Geschwindigkeitsnachteil für die real mit ca. 2.5 MHz getaktete Z80 CPU im Vergleich zur 8502 ergeben würde.


    Vielleicht gelingt es Snoopy ja sogar, das in einem Benchmark zu beweisen

    Warum Snoopy? Wer gackert, muss auch legen!

    Das ist schon ein krasses Fehldesign, wenn man bedenkt, dass es ausser für CP/M eigentlich keinen vernüftiges Grund gab, überhaupt einen Z80 einzubauen.

    Das wäre wirklich mal spannend gewesen, aus erster Hand zu erfahren, wie man auf die Idee gekommen ist.

    Das steht alles in den diversen Texten von Bil Herd.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Und wohl auch besser so, daß man nicht doch einen 8088 genommen hat. Das hätte den C128 echt vernichtet.

    Also für MICH wäre das perfekt gewesen: In BASIC 7.0 hätte ich weiter entwickeln können, was ich auf dem C16 mit BASIC 3.5 angefangen hatte (Tools, wie etwa zum Drucken, keine Spiele oder so), die Schul-PCs waren eh arschlahm und hatten nur Hercules-Grafik und 5,25"-Laufwerke, so hätte mir der Rechner getaugt die ganzen Turbo-Pascal-Aufgaben zu Hause fertig stellen zu können (und nicht in Freistunden) und zu guter Letzt hätte der 64er Modus gereicht endlich mal ordentlich zu Tauschen (vor allem Demos ... das war ja auf dem C16 damals dürftig).

    So wurde es bei mir ein Amiga 500, der natürlich viel leistungsfähiger war als ein C128, aber mich auch zum passiven Konsumenten gemacht hat. Das war zwar ein irrer Tripp durch die Software, hat aber auch dafür gesorgt, dass ich den C16 (später plus/4) doch zusätzlich behielt.

    Was mir bei der Frage, was man mit dem Z80 im 128er machen kann, gerade so einfiel (und auch vor dem Hintergrund des parallelen Threads zu Emulatoren unter DOS): Hat es eigentlich mal Bemühungen gegeben auf dem 128er Emulatoren für Spectrum und CPC zu entwickeln? Wie weit könnte man dem Original da mit starker Optimierung kommen?

    Ideen, die ich mit eurer Hilfe gerne wahr machen würde:

    1. Eine wirklich neue Maus am C64 auf Basis der Bitte melde dich an, um diesen Link zu sehen.

    2. Die erste echte Maus für die 264er mittels Anschluss einer Bitte melde dich an, um diesen Link zu sehen.

  • Ein 4 MHz Z80 hat ungefähr die Performance eines 1 MHz 6502.

    Nö, selbst ein 3,58 MHz Z80 im ZX-Spectrum hängt C64 & Co. gnadenlos ab, aber es ging mir ja auch darum, dass die pauschale Aussage 8502 outperformt Z80 FALSCH ist, da es Z80 Prozessoren eben bis min. 20 MHz gibt, während beim NMOS 6502/8502 bei 2 MHz (experimentiell und in homöopathischen Dosen auch 3 MHz) Schluss war. Da -selbst wenn man obige 4MHz :1MHz nimmt- 3x4 nur 12 ist und somit kleiner 20, outperformt der Z80 in Maximaler Konfiguration den 6502 in dessen maximaler Konfig beiweitem. Und somit ist die pauschale Aussage, dass 6502/8502 Z80 outperformen würde einfach schlichtweg falsch und wenn man bedenkt, dass ca. 100 Mal so viele Z80 Prozessoren produziert und eingesetzt wurden, wie 6502 samt sämtlicher Derivate, dann wird das wohl seinen Grund haben :wink:

  • Hallo Snoopy , falls es Dich interessiert: auf der Seite Bitte melde dich an, um diesen Link zu sehen. gibt es das Spiel Bitte melde dich an, um diesen Link zu sehen. zum Herunterladen, das es sowohl in einer 40- und 80-Spaltigen Version, als auch as 6502 und Z80-Version gibt. Ich meine, da ist auch der Quellcode dabei. Da bin ich durch Zufall mal drauf gestoßen, habe es mir aber nich nicht genau angesehen.

    Dass man den C128 auch mit der Z80 CPU betreiben kann, ist eigentlich deswegen schon klar, weil sonst CP/M selbst gar nicht möglich wäre.

  • daß man nicht doch einen 8088 genommen hat. Das hätte den C128 echt vernichtet.

    Wieso vernichtet?

    Das wäre der richtige Zeitpunkt dafür gewesen, das Sidecar resp. die Bridge-Boards für den Amiga kamen doch auch um gefühlt 3-5 Jahre zu spät, als da noch Marktanteile räubern zu können. 1985 einen C128 als Kombination eines C64 und eines IBM PCjr. und dann 1987 einen C640 mit vollen 640KB RAM nachgeschoben, das hätte eingeschlagen und Commodore sicher wieder ein paar Jahre über die Runden geholfen, bis mit i486 und höher dann der C64 nahezu virtuell integriert hätte werden können (SIDs z.b. weiter in HW...). Der Amiga war der Fremdkörper in der C= Produktfamilie, nicht der PC!

  • ...
    Vielleicht gelingt es Snoopy ja sogar, das in einem Benchmark zu beweisen

    Warum Snoopy? Wer gackert, muss auch legen!

    Na ja, Snoopy will sich ja mit dem Thema beschäftigen, ich hab Z80 tagtäglich auf dem beruflichen Schreibtisch, nur geht es dort um industrielle Steuerungen mit SIL3+, da empfinde ich die Krücken-Architektur des C128 einfach nur als Zumutung und gar Rufschädigung für den Z80 Prozessor, der wirklich deutlich mehr kann, siehe z.b. ZX81, der ohne CRTC auskam...

    VC20 war mein erster Rechner und daher hängt mein Herz daran, aber mein Verstand sagt: das waren von Anfang an Fehlkonstruktionen, die immer noch weiter verschlimmbessert wurden, oder frei nach Goethe: Zwei Herzen schlagen ach, gar in meiner Brust...

  • aber es ging mir ja auch darum, dass die pauschale Aussage 8502 outperformt Z80 FALSCH ist, da es Z80 Prozessoren eben bis min. 20 MHz gibt, während beim NMOS 6502/8502 bei 2 MHz (experimentiell und in homöopathischen Dosen auch 3 MHz) Schluss war.

    Der Unterschiede zwischen aktueller KI und Bots gegenüber menschlichen Usern ist, dass die Menschen normalerweise den Kontext besser verstehen, in dem etwas geschrieben wird. :D

    Schau doch einfach mal auf den Thread-Titel.

  • Das wäre der richtige Zeitpunkt dafür gewesen

    Die Idee einen 8088 zu verwenden wäre sicher richtig gewesen, aber wenn man sich vorstellt, daß der mit 2 Mhz vor sich hin geschlichen wäre, währen die PC-Klone munter dabei waren, immer schneller zu werden, kann man das doch nur als vernichtend bezeichnen.

  • Das wäre der richtige Zeitpunkt dafür gewesen

    Die Idee einen 8088 zu verwenden wäre sicher richtig gewesen, aber wenn man sich vorstellt, daß der mit 2 Mhz vor sich hin geschlichen wäre, währen die PC-Klone munter dabei waren, immer schneller zu werden, kann man das doch nur als vernichtend bezeichnen.

    Ja, Commodore hätte halt einmal was konsequent machen und durchziehen müssen: ein paar KB Dualport-RAM und den 6502 als "Helferlein" für Video und I/O, statt komischer Doppel-Bus-Timings. Dann wäre der 8088 mit 4.77 oder auch 8 MHz gelaufen und hätte dennoch die HW der traditionellen CBM-Seite nutzen können. Aber das hätte ja ein bisschen was gekostet und das ging ja absolut nicht, ein C64 kostete in der Herstellung (China) um die 10 USD und verkaufte sich für 150 USD, das war die Messlatte... (siehe heutige iPhones...)

  • Neben 8088 müsste dann der VDC weg und dafür ein 6845(?) CRTC rein, damit man wenigstens CGA hat. Sonst macht der 8088 keinen Sinn. Aber der war mit 4,77 MHz schon elendig lahm. Mit Bremse dann sicher unbenutzbar. Und RAM... Da waren 128k schon zu wenig. Mindestens das Doppelte.

  • Neben 8088 müsste dann der VDC weg und dafür ein 6845(?) CRTC rein, damit man wenigstens CGA hat. Sonst macht der 8088 keinen Sinn. Aber der war mit 4,77 MHz schon elendig lahm. Mit Bremse dann sicher unbenutzbar. Und RAM... Da waren 128k schon zu wenig. Mindestens das Doppelte.

    Das wäre der richtige Zeitpunkt dafür gewesen

    Die Idee einen 8088 zu verwenden wäre sicher richtig gewesen,

    Ernsthaft jetzt? Wozu? Als billige Konkurrenz zum eigenen PC-10? So dusselig wäre kein Produktmanager gewesen.

  • da empfinde ich die Krücken-Architektur des C128 einfach nur als Zumutung und gar Rufschädigung für den Z80 Prozessor, der wirklich deutlich mehr kann, siehe z.b. ZX81, der ohne CRTC auskam...

    Na ja, 6502 mit Software-definiertem Videotiming gabs zB im Atari 2600.

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    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.

  • Hallo Snoopy , falls es Dich interessiert: auf der Seite Bitte melde dich an, um diesen Link zu sehen. gibt es das Spiel Bitte melde dich an, um diesen Link zu sehen. zum Herunterladen, das es sowohl in einer 40- und 80-Spaltigen Version, als auch as 6502 und Z80-Version gibt. Ich meine, da ist auch der Quellcode dabei. Da bin ich durch Zufall mal drauf gestoßen, habe es mir aber nich nicht genau angesehen.

    Dass man den C128 auch mit der Z80 CPU betreiben kann, ist eigentlich deswegen schon klar, weil sonst CP/M selbst gar nicht möglich wäre.

    Super, vielen Dank für den Hinweis! :thumbup:

    Ich schau mir das sicherlich mal genauer an. :)

  • Das ist schon ein krasses Fehldesign, wenn man bedenkt, dass es ausser für CP/M eigentlich keinen vernüftiges Grund gab, überhaupt einen Z80 einzubauen.

    Das wäre wirklich mal spannend gewesen, aus erster Hand zu erfahren, wie man auf die Idee gekommen ist.

    Wurde doch oft genug in Interviews und so erwähnt: Zum einen hätte angeblich das C64-CP/M-Modul nicht ins geplante Strombudget des Netzteils gepasst, zum anderen haben sich manche Module wie das Magic Voice beim Systemstart hat anhand der Adresse eingeblendet, was am C128-Prototypen zu Crashes führte. Der Z80 startet die Ausführung am anderen Ende des Adressraums und triggert damit die Erkennung im Modul nicht, so dass der ohne Interferenz per Commodore-Taste in den C64-Modus umschalten kann.

    Das ist die technische Erklärung. Aber aus Produktmanagementsicht - warum denn überhaupt CP/M? Das Thema war doch längst durch?

    Am im Video vom 8-Bit-Guy wird es erklärt. Es gab gerade kein Management, das die Entwickler gestoppt hat. Und sowas kommt dabei raus, wenn man die Entwickler machen lässt. :D

  • Code: Dhrystone
    Processor / System   | Dhrystone MIPS or MIPS, and frequency   | D instructions per clock cycle
    ---------------------|-----------------------------------------|-------------------------------
    MOS Technology 6502  | 0.430 MIPS at 1.000 MHz                 | 0.43
    Intel 8080A          | 0.435 MIPS at 3.000 MHz (Not Dhrystone) | 0.145
    Zilog Z80            | 0.580 MIPS at 4.000 MHz (Not Dhrystone) | 0.145
    Code: Whetstone
    Supplier or   | CPU and    | Clock |         |        | VAX  | MWIPS |      |     | Cost | Intr 
    System        | Precision  |  MHz  | MWIPS   | MFLOPS | MIPS |   DP  | Lang | Opt |  $K  | Date 
    --------------|------------|-------|---------|--------|------|-------|------|-----|------|--------
    Acorn BBC B   | 6502       |    2  | 0.0031  |        |      |       | BasI |     | 0.75 | 1982 
    Apple II      | 6502       |    1  | 0.0011  |        |      |       | BasI |     |   1  | 1976 
    Apple II      | 6502       |    1  | 0.0027  |        |      |       | Bas  |     |   1  | 1976 
    Sinclair ZX81 | Z80A       |  3.54 | 0.00052 |        |      |       | Bas  |     | 0.12 | 1981 
    S. Spectrum   | Z80A       |  3.54 | 0.00052 |        |      |       | Bas  |     | 0.23 | 1982 

    Ein paar Basic Benchmarks:

    Bitte melde dich an, um diesen Link zu sehen.

    Der C64 ist hier schneller als ein Spectrum 128, ähnlich schnell wie ein MSX Panasonic CF 2700

    Der CPC 464 schlägt dagegen einen Commodore 128 (80Z, 2MHz) knapp.

    Das zeigt wie stark das restliche System die Rechenleistung beeinflusst und ein CPC 464 trotz gleicher CPU doppelt so schnell ist wie einen Spectrum 128.

  • Vielen Dank für die vielen Beiträge schon. Ich werde mich hier auch zeitnah noch aufmerksam durchlesen! :thnks:

    Ich habe es gerade nicht im Kopf, welches Sonderheft der 64er es war. Da gab es einen Double-Assembler, mit dem man 6502 und Z80 Code assemblieren konnte.

    Danke für den Hinweis! :thumbup:

    Ich bin hier im Bitte melde dich an, um diesen Link zu sehen. fündig geworden.

    muffi : Dein Tipp war "Gold wert"! :)

    Auf den Seiten 91-96 in dem Sonderheft 22 sind noch viele Infos zum Z80 im C128 drin! :thumbup:

    Ich habe die Seite auch mal extrahiert und als PDF hier angehängt. Dann hat man hier im Thread bisschen Stoffsammlung zum Thema "Z80 im C128". ;)

  • Hallo,


    ich habe gerade mit Interesse diesen Thread gelesen.

    Vor einigen Jahren hatte ich einen 128'er und diesen habe ich mit meinem Kaypro 4/84

    mit CPM verglichen.

    Der Kaypro 4/84 wird mit 4 Mhz getaktet. Betriebssystem cpm 2.2

    Der 128 mit 2 MHz. Betriebsystem cpm plus 3.. 3.1

    Der Kaypro war schneller. BASCOM Compiler mit KSAM. Beim 128'er konnte ich noch einen Pott Kaffee kochen.

    Der Z80 wird vom Commodore 128 schlecht eingenommen. Die Umschaltung jeweils zur Peripherie kostet

    viel Zeit. 2 MHz für Z80 sind auch zu wenig.

    Software für den Test habe ich die genannte Double-Ass genommen. Nöö, das war nichts.

    Wer einen 128'er hat kann unter CPM das Programmieren z80asm oder C, Pascal, etc ...... lernen.

    Aber, alles ein wenig langsamer.

    Den Rechner habe ich hier bei forum64 verkauft.

    Was sagt heute der Käufer?

    Zu langsam. Wenig Diskettenkapazität. Das war der Grund zur Umstellung auf die rc2014 Serie.

    Mein Z80-Board stammt von karl(carlab) aus Norwegen.

    20 Mhz, CF Card, 128 RAM, usw. Habe ich schon einmal im Forum beschrieben

    Demnächst werde ich hier zwei kleine System im Verkauf anbieten.

    Sehr Günstige Angebote, da ich den Z80 Kreis auch fördern möchte.

    Fazit:

    Der Commodore 128 ist unter CPM bedingt brauchbar.

    C64 mit CPM gibt es. Habe das CPM C64-Modul verschenkt.

    Commodore C64, das ist mein Rechner.

    Schöne Grüße

    Kurt