RunCPM Speed-Vergleich auf verschiedenen Plattformen

    • Offizieller Beitrag

    Danke !

    Beziehst du das jetzt auf dich?

    Ich hab gelesen, dass du das einem Timer gestoppt hast. Hast du gelesen, das ich ueber "handgestoppten Zeiten" geschrieben habe?



    Ich schreib's mal anders:

    Ich hatte dich so verstanden, das die geringe Differenz der Runs mit/ohne PRINT auf Toleranzen vonf handgestoppten Zeiten zurückzuführen ist

    Wer bei einer handgestoppten Zeit die Millisekunde angibt, hat fuer mich einen :wand:

  • Beziehst du das jetzt auf dich?

    Ja, das ist eben die Krux mit den Zitaten, Laß uns das nicht weiter vertiefen... Für mich sind diese Zeitmessungen interessante Infos zu den Systemen, denn CPU und Clockfreq. sind allzu häufig nur marketing. Abgesehen davon geht mitunter auch der Spaß am eigenen System mit einem durch...


    Cheers

    Kurt

  • mit RunCPM auf OpenWRT (Router-Plattform: LinkIt Smart Duo MT7688 = 580Mhz MIPS CPU mit 128MB Ram)

    dauert das Fractal 12 Sekunden ;)


    Fuers compilieren der RunCPM-Version mit DR-CCP brauchte ich (komischerweise) noch extra Swap-Ram.

    (eingestellt hatte ich dafuer auf dem Filesystem der SDCard als File nochmal 128MB)

    Code
    MT7688 Swapfile for compile RunCPM:
    dd if=/dev/zero of=/swapfile bs=1024 count=128000
    mkswap /swapfile
    swapon /swapfile

    Das compilieren mit dem internal-CCP klappte auch ohne extra Swap-Ram.

  • Ich vermisse hier noch ein paar Rechner.. :)


    zB. Kaypro II und Commodore 128 im CP/M Modus.. Hat die jemand startbereit oder muß ich ins Archiv klettern ? :D



    Gruß Jan

  • 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

    • Offizieller Beitrag

    Da Color Maximite 2 ja etwas moderner ist, wollte ich damit das Programm auch in einer etwas moderneren Bildschirmauflösung laufen lassen.


    Ich habe also einen kleineren Font definiert und den Mandelmann mal mit 199 mal 93 Zeichen gerechnet.


    Dadurch musste ich auch die Berechnung von CA und CB ändern, da sonst ein winziges Bild in der Mitte von ganz vielen Nullen berechnet wird. Daher ausser Konkurrenz. :)


    Dann dauert es knapp 2,9 Sekunden und sieht so aus:



    Hier noch der Code.

  • 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