RunCPM Speed-Vergleich auf verschiedenen Plattformen

  • KC85/5 mit D004 unter ML-Dos (mit ZSDOS) 4:50 Minuten . Hier profitiert der KC von der Arbeitsteilung. Die D001 (KC85/5) ist hier nur Terminal und kümmert sich um die Grafik. Die D004 ist der CPM-Rechner mit immerhin genau 4 Mhz und braucht nur zu rechnen. Also die Bild-Daten werden nach unten geschickt. Der 1715 braucht deswegen fast doppelt so lange. Den BIC muss ich unter SCP Starten, da die Terminalemulation nahezu gleich ist.


    Basic ist das MBASIC von der 1715 Diskette!

  • Also "Bilddaten" ist ja in dem Moment recht übertrieben. :)

    Aber schon klar, was Du meinst. Prinzipiell wäre da aber auf der ersten CPU (im Rechner) sicher noch was frei an Kapazität. Könnte also noch schneller sein. Ich habe neulich mal bei (?) ein RAM Karte für PET mit 64KB gesehen, da war auch ein extra 6502 mit drauf. Das wären dann in Kombination mit der Floppy schon 3 Stück. Also: SMP hätte schon viel eher erfunden werden können.


    Mach mal bitte noch ein Bild, wenn Du magst. Ich finde nämlich das Schöne an dem Thread hier auch, daß man die ganzen unterschiedlichen Outputs so nett nebeneinander sehen kann.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Also "Bilddaten" ist ja in dem Moment recht übertrieben. :)

    Aber schon klar, was Du meinst. Prinzipiell wäre da aber auf der ersten CPU (im Rechner) sicher noch was frei an Kapazität. Könnte also noch schneller sein. Ich habe neulich mal bei (?) ein RAM Karte für PET mit 64KB gesehen, da war auch ein extra 6502 mit drauf. Das wären dann in Kombination mit der Floppy schon 3 Stück. Also: SMP hätte schon viel eher erfunden werden können.


    Mach mal bitte noch ein Bild, wenn Du magst. Ich finde nämlich das Schöne an dem Thread hier auch, daß man die ganzen unterschiedlichen Outputs so nett nebeneinander sehen kann.

    Also die D004 bildet eigentlich ein eigener Rechner ohne OS, das muss von Diskette kommen. Wegen den 64KB auch nur ein CPM 2.2. Dieser tut mit 4 Mhz. Die D001, also der KC85/5 geht mit 1.77 Mhz. Dieser hat 256K Arbeits-RAM und 64K Bild-RAM. Flaschenhals ist hier ein 2kb großer Koppelram, auf dem beide Prozessoren zugreifen. Im CAOS-Mode läuft die D004 wie ein Slave mit einem CPM, nur das Programm DEP (Disketten Erweiterungs Programm) läuft dort. Im PC-Mode funktioniert das D001 als Terminal, um die EIn und Ausgaben zur D004 zu regeln. Das heißt unten werden Bildschirm, Tastatur, Drucker, USB und das RAM-Floppy verwaltet.

    Dadurch, das ja unten ein Grafikfähiger Computer ist, wird das CPM hier sogar recht bunt, was nun nicht überall so ist. Es gibt sogar ein Fraktal.Com, was leider nur unter MicroDOS läuft (Systemaufrufe), was im Hires (Farbauflösung) Funktioniert. Die Pixelauflösung ist in beiden Fällen nur 320 * 256. Aber ich mach dir mal ein Foto...

  • Hier die Bilder, es gibt ja nicht nur das MBASIC, sondern auch das BASI.COM und das BASC.COM, sowie auf dem KC auch das HC-BASIC, was eine Portierung des KC-BASIC im Grundgerät ist.


    Das hier ist nur der Interpreter.

  • Außer Konkurenz, hier einen Lauf mit BWBASIC unter Linux in der Konsole, CPU-Takt ist 2.8GHz. Da BWBASIC nichts genaueres zur Zeitmessung bietet wie TIMER & TIME$, beide liefern nur 1s an Auflösung, liegt die Laufzeit zwischen 1...2s. Mehrfaches wiederholen des Laufes zeigt kein anderes Ergebnis wie 1s Zeitdifferenz, also irgendwo zwischen 1s und 2s. BWBASIC ist in C programmiert !, führt keine Tokenisierung durch und arbeitet rein interpretativ. Das Program ist leicht geändert, die '%'-Zeichen sind entfernt (mag BWBASIC nicht) und stattdessen am Anfang DEFINT und DEFSNG Anweisung eingefügt. Ändert aber gegenüber reinen REAL-Variablen nichts erkennbar am Ergebnis.


    Cheers

    Kurt


    ASCIIART_bas_BWBASIC.txt


    Nachtrag:

    Linux bietet den 'time'-Befehl zur Laufzeitmessung von Programmen auf Systemebene in der Konsole. Nutz man diesen, 'time bwbasic ASCIIART_bas_BWBASIC.bas', dann übernimmt Linux die Zeitmessung mit einer Auflösung von 1ms - schon mal deutlich besser als die 1s von TIME$. in Zeile 240 muss für diese Messung statt END QUIT stehen, sonst bleibt man in BWBASIC hängen !

    Interessanter Weise liegt die Zeit unter 1s ! und das obwohl hier der gesamte Ablauf, also 'time' starten, GWBASIC starten, welches dann wiederum das Program zu laden hat, gemessen wird. Dazu noch, im Rechner steckt eine SSD als Platte, was Ladevorgänge per se deutlich beschleunigt.


    Trotzdem wird man von dem Tempo nicht bewustlos und das bei 2.8GHz CPU-Clock. Dafür gibts dann aber Multi-User und Multi-Tasking satt, verdrehte Welt...:tüdeldü:

    2 Mal editiert, zuletzt von kmg () aus folgendem Grund: Laufzeitmessung auf Konsole-Ebene

  • Hallo,


    hier sind die gewünschten Zeiten für den C128 im CP/M-Modus:


    13 Minuten, 26 Sekunden


    Mit der Abschalten des 40-Zeichen-Modus mittels "A:SCREEN40 DISABLE" beschleunigt der Rechner wahnsinnig und erreicht das Ergebnis in


    12 Minuten, 31 Sekunden (-55 sec oder +7% schneller)


    Eine mit dem BASCOM kompilierte Version wird entweder heute ganz spät oder morgen...


    Gruß Thomas

  • Auf dem Adafruit Grand Central (mit SAMD51 CPU)habe ich (von einem anderen User) folgende Zeiten mitgeteilt bekommen (damit langsamer als der ESP32):


    Fractal.bas result:

    0:50 (Standard card speed 120Mhz)

    0:42 (Overclocked 150Mhz) RunCPM is compiled with -Ofast optimisation

    0:34 (Overclocked 180Mhz) -Ofast -funroll-loops...

    0:30 when pushed to max overclock @ 200Mhz

  • Hab mal das BASIC-Modul zum Epson-PX8 wieder rausgekramt, er schlägt sich mit seinen mageren 2,45Mhz

    mit rund 9 Minuten ganz tapfer, liegt aber deutlich hinter dem Moppel (ca.7Minuten).

    Nur die Anzeige ist mit 8 Zeilen nicht der Hit.

    (Man kann natürlich mittels Cursor in den virtuellen 24Zeilen scollen)


    LG Werner

  • Trotzdem wird man von dem Tempo nicht bewustlos und das bei 2.8GHz CPU-Clock.

    Stimmt, das ist schon ganz erstaunlich. Habe das mit dem BWBASIC von oben mal auf einem QuadCore, ok nützt da nix, mit ca. 3GHz probiert. Da kommen bei bißchen größerer Bildbreite ( in BWBASIC w=width(0,x) ) tatsächlich auch ca. 3 Sekunden zusammen und man kann quasi zuschauen, wie es sich aufbaut; zwar schon schnell aber wahrnehmbar. OK, kein Vergleich mit 11Minuten vom IMSAI.


    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • zu #79:

    Meinen Versuch, das Apfelmännchen mit X11basic (dieser Interpreter erzeugt Token als Zwischencode, eine Interpretation entfällt dadurch) zu berechnen habe ich abgebrochen. Um die beiden GOTO's aufzulösen, muß das Programm doch recht gründlich umgeschrieben werden. Damit dürfte aber auch die Vergleichbarkeit entschwinden. Sei's drum, ist ja keine Forschungsaufgabe, die Ergebnisse sind dennoch sehr aufschlußreich.


    Cheers

    Kurt

  • Es wär toll wenn Georg das mal auf seinem PX8 in HighSpeed macht und dabei die Zeit ermittelt. :streichel:

    Kein Problem. PX-8 unter CP/M, Messung über die eingebaute TIME$-Funktion:

    Normal: 9:05 Minuten

    High-Speed: 4:34 Minuten

  • Während der PX-8 sich damit rumquälte habe ich das noch auf einem TFT-Maximite ausprobiert, der hier gerade liegt. Die Verwandtschaft haben wir ja schon durch (Color Maximite 2 und Duinomite), aber den wohl noch nicht.

    Er schafft es aus dem Stand (ohne Optimierung, mit Zeilennummern) in 4,4 Sekunden.


    (Nicht von der Einheit irritieren lassen, der Timer zählt Millisekunden)

  • Hallo Georg,

    was ist denn High-Speed beim Epson PX-8?


    LG Werner


    Highspeed -> Taktumschaltung


    Georg hat meinen alten PX8 bei dem an Stelle der Analogwandlerbuchse ein Umschalter zur Taktfrequenzverdopplung verbaut ist.

    Ebenfalls ist eine 512 (2 * 256MB) Ramdisk verbaut.


    Ja, früher (tm) konnte ich noch basteln ohne dass was kaputt geht. ::cry::

    Mit freundlichen Grüßen


    fritz

    Einmal editiert, zuletzt von fritzeflink ()

  • Habe das Basicprogramm auf einer Philips P2500 (Z80@4MHz, CP/M 2.2 MBASIC) laufen lassen.


    Hier das Ergebnis:




    Die Laufzeit (handgestopt) war 4 Minuten und 50 Sekunden und ist damit etwas schneller als der erste IBM PC:


    Zitat von Peter z80.eu

    Der Original IBM PC mit 4.77 MHz mit CGA Karte ist recht lahm.

    Mit BASICA kann ich lange zuschauen bis das Bild aufgebaut ist, immerhin 307,2 Sekunden (also etwas mehr als 5 Min).

  • Eine WANG 2200B von 1973 braucht ohne Optimierung des Codes 11 Minuten und 43 Sekunden, rechnet dafür aber auch alle Zahlen immer mit 13 Stellen...

    Habe das Programm gerade auch mal mit dem WangEmu version 2.1 für Windows von Jim Battle mit "unregulated speed" laufen lassen und kam handgestoppt auf 5,0 s. :)

    Sammle Computer, Tisch- und Taschenrechner bis ca. 1990, CPUs, Speicher, Speichermedien aller Art und suche u. a. EPROM C1701, Intel C4040 CPU, i487SX-CPU, IBM CGA-Karte, Netzteil für IBM 5155, Video Seven FastWrite und V-RAM ISA-VGA-Karte, Texas Instruments Notebook TravelMate 3000, Citizen W1D 3,5"-Disklaufwerk, MiniSD- und eMMC-Karten, Magnetblasenspeicher, Bänder (3/4"/1"/AIT/Mammoth/Travan/VXA) und Medien (2" LT-1, Apple Twiggy-Disk 5,25", Bernoulli Box II, HiFD, Jaz, Quest, SQ100-400)

  • Hallo,


    hier git es jetzt noch erstaunliche Zahlen vom C128. Ich habe den BASIC-Code mit BASCOM-80 compiliert. Dann ergeben sich folgende Zeiten:


    5 Minuten, 55 Sekunden bzw.

    5 Minuten, 31 Sekunden (mit abgeschaltetem 40-Zeichen-Modus)


    Gegenüber dem interpretierten Code ist das schon Faktor 2,27 schneller. Die Geschwindigkeitsdifferenz zwischen mit und ohne 40-Zeichen-Modus bleibt bei 7%.


    Gruß Thomas

  • Hallo,


    wer hat einen ZX81 oder Kaypro II am Start? Die Werte wären vielleicht auch interessant!


    PS: Einen ZX81 hätte ich, allerdings keinen passenden Fernseher bzw. Monitor.

    Den armen Kaypro II habe ich in den 80ern massakriert, also ausgebeint und in das Gehäuse ein ECB System eingebaut :-(!


    Gruß

    Alfred


    @Tom, da hab ich mit dem HX20 aber Glück gehabt :-)!

  • Zitat

    Ich hoffe doch dass du uns davon Bilder zeigen wirst !?

    Fritz, das kann ich bei Gelegenheit gerne tun, aber zuerst muß ich den 9" Monitor reparieren.

    Da fällt nach ein paar Minuten die Zeilenendstufe aus, eijeihjei lang ist es her, aber das wird schon ;-)!

  • So :) heute ist mein TTGO VGA32 v1.4 aus China gekommen und ich habe das FabGL v1.0.0 Multitasking CPM3 installiert und dort mal das FRACTAL mit MBASIC 5.29 (Interpreter Mode) laufen lassen - das ergab:
    04 Minuten und 05 Sekunden ;) (gegen die 29 Sekunden mit RunCPM auf einem ESP32 mit -O3)

    Allerdings musste ich das FabGL v1.0.0 Multitasking CPM3 mit dem normalen Compile-Option -Os (fuer siize) compilieren, da es mit der Compile-Option -O3 (fuer fast/speed) nicht mehr in den ESP32 passte :(


  • da es mit der Compile-Option -O3 (fuer fast/speed) nicht mehr in den ESP32 passte :(


    Das macht auch durchaus Sinn, da -O3 üblicherweise in erster Linie ein Unrolling macht, d.h. Schleifen auflöst, indem es einfach die Kommandos immer wieder hintereinanderschreibt - und wenn man dann ein Programm hat, was i.P. effektiv eine einzige Schleife ist, wird das halt entsprechend größer.


    hier der TTGO

    https://www.tindie.com/product…tgo-vga32_v14-controller/

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Allerdings musste ich das FabGL v1.0.0 Multitasking CPM3 mit dem normalen Compile-Option -Os (fuer siize) compilieren, da es mit der Compile-Option -O3 (fuer fast/speed) nicht mehr in den ESP32 passte :(

    mit der Option -O2 nach den Informationen auf folgender Seite passte der compilierte Sketch zwar auch ins Board, brachte es aber nur auf ca. 8 Sekunden (handgestoppt) schnellere Ausfuehrung (also 03:57)