Yet Another Z80 Emulator by AG (YAZE-AG), ein Z80-Emulator für Unix / Linux / RaspberryPi / MacOS / Windows

  • Hallo CP/M and Z80 Freaks,


    ich habe die "Release Candidate 1" von der Version "2.50.0" in die Development Directory meiner Projektseite (http://yaze-ag.de/) abgelegt.


    YAZE-AG ist ein Z80 Emulator der exakt sogar die undokumentierten Befehle des Z80 interpretiert. Im Innern des Emulators läuft ein original CP/M 3.1 oder CP/ 2.2.

    Über die Software-MMU kann das CP/M 3.1 bis zu 1 MB adressieren. Es werden alle 16 Laufwerke von A: bis P: unterstützt die jeweils bis zu 64 MB haben können.


    Die "Release Candidate 1" ist zum Testen um zu sehen ob noch Fehler in dem/der Programm/App sind. Bitte gebt mir in jedem Fall eine Rückantwort.


    Ihr könnt die folgenden Installationspakete herunterladen:


    Tar-Archive für Unix / Linux / Raspberry Pi / MacOS:

    http://www.mathematik.uni-ulm.…yaze-ag-2.50.0-rc1.tar.gz

    http://www.mathematik.uni-ulm.…-ag-2.50.0-rc1.tar.gz.sig


    X86_32Bit-Version für 32Bit-Windows und "Windows on ARM64":

    http://www.mathematik.uni-ulm.…rc1-x86_32bit-generic.exe

    http://www.mathematik.uni-ulm.…x86_32bit-generic.exe.sig


    X86_64Bit-Bersion für 64Bit-Windows:

    http://www.mathematik.uni-ulm.…rc1-x86_64bit-generic.exe

    http://www.mathematik.uni-ulm.…x86_64bit-generic.exe.sig


    Die Signaturen sind mit dem GPG-Key: 0x4E54554C, Fingerprint: 6093 AFC3 40C6 920B A8F3 A9A5 1137 80FD 4E54 554C signiert. Der GPG-Key kann von den öffentlichen PGP-Servern geholt werden.


    Für Windows gibt es https://gpg4win.org/ ein GPG-Paket das auch die deutsche Sprache beherrscht. Bitte unterstützt das Projekt. Unix/Linux hat meist schon standartmäßig gpg installiert. Wenn nicht kann es meist sehr einfach nachinstalliert werden.


    Der Emulator ist sehr gut für Softwareentwicklung (Z80-Assembler, C, Modula2, SPL, ...), da er sehr schnell ist. Auf meiner schnellsten Maschine läuft der Z80-Interpreter mit 4,6 GigaHerz. Also ein Z80 mit 4,6 GHz!!!


    Herzliche Grüße

    Andreas Gerlich (agl)

  • YAZE-AG ist ein Z80 Emulator der exakt sogar die undokumentierten Befehle des Z80 interpretiert.

    Ich hatte "aeltere" Versionen ohne Probleme auch auf anderen ARM-Plattformen kompiliert bekommen.
    YAZE-AG lief immer sehr gut.


    Ich muss man nachsehen, wie ich YAZE-AG auf einem aarch64-CPU--System kompiliere, denn ein direktes Makefile dazu habe ich nicht gesehen.


    Allerdings kompiliert man fuer aarch64 auf dem System selber (z.B. weil man es eh unter armbian am laufen hat) dann soll man laut
    https://gcc.gnu.org/onlinedocs…/gcc/AArch64-Options.html

    auch als -march und -mtune fuer die CPU einfach "native" einstellen koennen:


    Zitat

    The value ‘native’ is available on native AArch64 GNU/Linux and

    causes the compiler to pick the architecture of the host system. This
    option has no effect if the compiler is unable to recognize the
    architecture of the host system

    Interessant koennte auch die folgende Seite mit Kompiler-Optionen sein:

    Externer Inhalt gist.github.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Hallo guidol,


    die Raspberry Pis 3B, 3B+ und 4 haben 64 Bit ARM Processoren (Cortex-A53 und Cortex-A72) . Auf einem RasPi 4 habe ich Manjaro Linux drauf installiert (Image gibt's bei https://manjaro.org). Das benutzt die 64Bit Architektur. Dort compiliere ich Yaze-AG mit der Makefile für den Raspberry Pi 4 (ARMv8 64Bit-Befehlssatz). Mit der müsstest Du auch weiter kommen. Ich bin noch nicht so weit, dass ich meine Web-Seite umgestellt habe. Aber wenn Du das Tar-Archive auspackst und in die doc_html Directory gehst dann index.html anklickst, dann hast Du die aktuelle Dokumentation dabei. Die interessante File heißt INSTALL-2.50.0[.html] in der die Installation von den Raspberry Pis genau beschrieben ist. Da Raspberry Pi 4 in 64 Bit Architektur (ARMv8-Befehlssatz) auswählen. Die Makefile müsstest Du für andere ARMv8-Rechner fast unverändert übernehmen können. Wenn Dein Rechner ein ARM-32-Bit (ARMv7-Befehlssatz) ist, dann die Makefile für RasPi 32 Bit auswählen.

    Man kann auch unter Raspbian (benutzt lediglich den 32-Bit-Befehlssatz (ARMv7)) die 64-Bit-Makefile benutzen. Dann läuft YAZE-AG nur für diesen Prozess in der 64Bit-Architektur (ist etwas schneller, macht aber nicht so viel aus, es muss ja jedesmal umgeschaltet werden wenn der Prozess betreten und wieder verlassen wird).


    Herzliche Grüße

    Andreas (agl)


    Herzliche Grüße

    Andreas (agl)

  • Auf einem RasPi 4 habe ich Manjaro Linux drauf installiert (Image gibt's bei https://manjaro.org).

    Das benutzt die 64Bit Architektur. Dort compiliere ich Yaze-AG mit der Makefile für den Raspberry Pi 4 (ARMv8 64Bit-Befehlssatz).

    Die interessante File heißt INSTALL-2.50.0[.html] in der die Installation von den Raspberry Pis genau beschrieben ist. Da Raspberry Pi 4 in 64 Bit Architektur (ARMv8-Befehlssatz) auswählen.

    Hallo agl,

    war kein Problem - alles gefunden :)
    Ich habe mir das Makefile_Raspberry_Pi_4_Model_B_ARMv8_64Bit genommen
    und -march und -mtune auf native gestellt und dann auf meinem NanoPi Neo2

    Code
    Welcome to Armbian Buster with Linux 5.6.2-sunxi64
    
    package bsp-kernel[20.05.0-trunk] u-boot[20.05.0-trunk] dtb   [20.05.0-trunk]
    firmware          [20.05.0-trunk] config[20.05.0-trunk] branch[dev]
    
    Linux npi-neo2-22 5.6.2-sunxi64 #trunk SMP Tue Apr 7 13:31:43 +03 2020 aarch64 GNU/Linux

    gespeichert als Makefile_aarch64_native_64Bit (File siehe Anhang - .txt entfernen nicht vergessen :) )

    Nach der Installations/Kompilierungsanleitung habe ich dann

    cp Makefile_aarch64_native_64Bit Makefile

    eingeben und ansonsten ganz normal

    make -j 4 und sudo make install


    Hat wunderbar geklappt :) Vielen Dank fuer die tolle Emulationssoftware!


  • Hallo,


    super, danke!

    Werde dann demnächst mal das Update einspielen und mir dann eine kleine CP/M-Umgebung zusammenbauen.


    Kann man bei YAZE-AG eigentlich die Emulationsgeschwindigkeit einstellen?


    Ich würde gerne ein paar Spiele testen, die aktuell einfach ... naja ... zu schnell laufen, sodaß ich gar keine Chance habe, etwas zu machen :)


    Danke!


    Viele Grüße

    Anna

  • Werde dann demnächst mal das Update einspielen und mir dann eine kleine CP/M-Umgebung zusammenbauen.


    Kann man bei YAZE-AG eigentlich die Emulationsgeschwindigkeit einstellen?


    Ich würde gerne ein paar Spiele testen, die aktuell einfach ... naja ... zu schnell laufen, sodaß ich gar keine Chance habe, etwas zu machen :)

    Hallo Anna,


    das habe ich bisher nicht vorgesehen gehabt, weil die Schnelligkeit des Emulator bisher so schnell wie möglich sein sollte. Muß ich mir überlegen wie ich das realisiere. Ok, auf meiner schnellsten Maschine läuft der Emulator so schnell wie ein Z80 mit 4,6 GHz. Das ist natürlich für Spiele die für 4 MHz optimiert wurden natürlich zu schnell.


    Die dargestellte Version ist nicht für eine Produktionsumgebung gedacht. Es ist die "Release Candidate 1" die nur zum Testen gedacht ist. Ich habe zwar bisher keine Fehler darin entdeckt, aber mehr Augen sehen mehr als nur meine zwei eigenen. Die "Finale Release" mache ich davon abhängig wieviel Rückmeldungen zurück kommen und ob ich noch was programmieren muss.


    Herzliche Grüße

    Andreas Gerlich

  • Kann man bei YAZE-AG eigentlich die Emulationsgeschwindigkeit einstellen?

    Ich würde gerne ein paar Spiele testen, die aktuell einfach ... naja ... zu schnell laufen, sodaß ich gar keine Chance habe, etwas zu machen :)

    Hallo Anna,

    wenn yaze-ag zu schnell ist, waer es evtl. besser zu SIMH - Altair 8800 simulator ( https://schorn.ch/altair.html )

    als CP/M Emulation zu greifen, weil da gibt es die passende Option:

    Ability to set the clock speed for "real-time" simulation (useful for games)

    Die "Vollversion" von SIMH ( https://github.com/simh/simh ) unterstuetzt auch viele andere Hardware-Plattformen und

    Betriebssysteme - die Du meist nicht brauchst ;)


    PS: The Altair 8800 simulator is part of the SIMH family of simulators

  • Hallo guidol,


    schön, daß alles geklappt hat. Konntest Du die profile.sub mit Wordstar editieren um die anderen .ydsk-files einzubinden bzw. um eigene .ydsk-files einzubinden? Du solltest den Inhalt von A: auf eine eigene A: umkopieren, weil z.B. der Wordstar gepatcht ist und das neue Feature ("automatisch die Koordinaten des Terminal-Emulators bestimmen") benutzt.


    Die "Makefile_aarch64_native_64Bit" werde ich der Distribution hinzufügen. Im Grunde genommen kann man die auch für ARM32 (ARMv7- und ARMv6-Befehlssatz) hernehmen, weil der GCC dann automatisch den betreffenden Prozessor einsetzt.


    Herzliche Grüße

    Andreas Gerlich (agl)

  • Die "Makefile_aarch64_native_64Bit" werde ich der Distribution hinzufügen. Im Grunde genommen kann man die auch für ARM32 (ARMv7- und ARMv6-Befehlssatz) hernehmen, weil der GCC dann automatisch den betreffenden Prozessor einsetzt.

    Hallo agl,


    ich weiss nicht ob dass auch fuer andere ARM Plattformen klappt beim gcc, der auf der "oben" verlinken Seite die Rede davon war, dass diese Option bei aarch64-Compilern vorhanden ist:
    "The value ‘native’ is available on native AArch64 GNU/Linux and

    causes the compiler to pick the architecture of the host system. This

    option has no effect if the compiler is unable to recognize the

    architecture of the host system"

  • Kann man bei YAZE-AG eigentlich die Emulationsgeschwindigkeit einstellen?

    Hallo Anna,


    Ich bin dabei mir zu überlegen wie ich die Verarbeitungsgeschwindigkeit von dem Z80-Emulator verringern kann.

    Kannst Du mir ein paar Spiele geben oder Links schicken, do dass ich mir die mal ansehen kann. Ich bräuchte real Spiele damit ich die auf dem YAZE-AG austesten kann.


    Herzliche Grüße
    Andreas (agl)

  • agl Da ich ein altes kleines ARM v5 System aoptiert habe (Acme Systems FOX G20 mit 64MB Ram),

    wollte ich dem yaze-ag auch nicht vor enthalten ;)


    Ich habe mir Dein aktuelles yaze-ag-2.50.0-rc3.tar.gz genommen und ein Makefile gemacht mit den folgenden Zeilen
    (als Aenderung):


    Code
    BUILD = " (build for ARMv5 (Acme Systems FOX G20 (ARM926EJ-S, 32Bit)))"
    OPTIMIZE        = -O3 -march=armv5te -mtune=arm926ej-s -msoft-float -mfloat-abi=soft

    Compile klappte wie immer prima bei Deinem Code :)

    Der Compile benoetigte natuerlich einiges an SWAP-Ram, da die 64MB fuers compilieren meist nicht reichen :)
    aber zum Glueck habe ich den "Kleinen" auf Kernel 4.9.124 und debian stretch gehoben gehabt.

    Einmal editiert, zuletzt von guidol ()

  • Moin, moin,

    habe die Version 2.40.5 auf meinem WIN10-64Bit PC installiert.

    Läuft absolut klasse, damit ein BIOS assemblieren macht richtig freude.

    Jetzt möchte ich aus yaze heraus die Dateien direkt zum Zielsystem PROF-/CT180 übertragen.

    Hierzu habe ich folgende Einstellungen vorgenommen:


    ; Test RS232 Zuordnung

    ; Host win10 64Bit

    ; COM2 9600Bd,8,n,1

    ; Yaze V2.40.5 für 86-64Bit


    A>sys

    $>attach aux /dev/com2

    $>go


    A>device aux:

    AUXIN: = Null Device

    AUXOUT: = Null Device

    A>


    Ergebnis: keine Verbindung


    Ist eigendlich verständlich da DEVICE das ja auch sagt.


    Habt ihr eine Idee dazu, denn die direkte Verbindung spart mir das umständliche gefrickel mit 22disks...


    LG Werner

  • Mhmm.


    wenn ich unter Yet Another Z80 Emulator by AG, final release 2.40.5 64BIT

    An meinem YAZE unter Windows klappt das aber auch nicht.a


    A: DEVICE eingeben kommt erst mal etwas Müll, dann die eigentliche Anzeige.


    In .YAZERC ist die Serielle definiert. Allerdings für LINUX


    #attach aux /dev/ttyS0

    ----------------^^^^^^^^^^^^


    Wie das nun unter Windows10 64bit aussehen soll :nixwiss:




    Ergänzung aus http://forumcpm.gaby.de/oldboa…opic64eb.html?threadid=7:



    24.01.2014, 16:35 Uhr

    agl


    Hallo CP/M und YAZE-AG Freunde,

    Hier die nächste Final Release 2.30.3 von meinem Z80 Emulator YAZE-AG.

    * Support von der Seriellen Schnittstelle einen PC's:

    Es kann Datenübertragungssoftware die das AUX Device von CP/M 3 benutzt werden, wie kermit und rz/sz.

    Im Monitor kann der "aux" Kanal an ein device von Unix/Linux/Windows gebunden werden (Default /dev/com1).

    Ich habe die Übertragung mit einem realen Z280 System getestet.

    (CPU280 by Reh Design).

    Mit freundlichen Grüßen


    fritz

    Einmal editiert, zuletzt von fritzeflink ()

  • Aus: yaze-ag-2.40.5/doc_html/yaze-ag_doc.html

    Mit freundlichen Grüßen


    fritz

  • Nicht gleich aufgeben - das Schaubild ist die Umgebung von Andreas.


    TTY sollte eigentlich in CGWIN nach COM umgesetzt werden - hoffe ich doch.


    Ich finde das Thema interessant, leider ist auch zu YAZE die Dokumenation so Linux like.



    Mit freundlichen Grüßen


    fritz