CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ] [ Datenschutzerklärung ]

CP/M-Forum » CP/M-Emulatoren » CP/M 2.2 direct host filesystem access » Threadansicht

Autor Thread - Seiten: -1-
000
14.05.2015, 23:10 Uhr
timetube

Avatar von timetube

Hi Freaks,

habe soeben meinen Driver zum direkten Zugriff auf das Host- (linux) filesystem checked in.

Wer's probieren möchte muss die cpu Projekt Z80 und das Projekt CPM22 übersetzen.

Ich habe alle Projekte von Eclipse auf den Creator (QT developer environment) umgestellt. Wenn die generierten Makefiles auf eurem system nicht funktionieren, müsst ihr die mit dem Creator neu generieren.

Viel Spaß damit und ich bin dankbar für jedes Feedback

Z80 emulation Projcts
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
31.05.2015, 12:37 Uhr
Ronald



Hallo timetube,

tolles Projekt. Ich verfolge Deine Veröffentlichungen zu Deinem Z80 Bus Emulator schon seit über einem Jahr.

Auch ich versuche mich (etwa in diesem Zeitraum) mit einem eigenen Z80-Emulator (sozusagen Yet Another, Yet Another, Another Z80 Emulator
... frei nach YACC).

Viele Gedanken sind mir daher vertraut, z.B. auch Deine Bemerkungen zu "Dieser Emulator will nicht der schnellste sein, er dekodiert daher
nicht über die üblichen Tabellen oder "BigSwitches" ...". Der normale Leser wird hier sicher nicht immer wissen was Du meinst. Ich nutze
hier auch die Vorselektion über die Bitbereiche im Z80 OP-Code (laut Instruction Set) um nicht bei jedem Befehl alle Möglichkeiten
durchzugehen, was den Emulator unnötig verlangsamt.

Interessanterweise legt jeder neue Emulator seine Schwerpunkte an einer anderen Stelle. Meine liegen eher im Windows-Umfeld und programmiert
wird meist unter Pascal (Free Pascal/Lazarus).

Im Prinzip weiß ich schon, was Du mit "Wer's probieren möchte muss die cpu Projekt Z80 und das Projekt CPM22 übersetzen." meinst, kann es
aber nicht mal so eben schnell ausprobieren, da es eine komplett andere Systemumgebung ist,
als die, unter der ich gewöhnlich arbeite (trotz ersten Arbeiten mit dem Raspberry PI ist das Linux-System-Umfeld aber nicht meine
Baustelle).

Sehr interessant finde ich Deine Z80-Quelltexte. Ist auf jeden Fall ein Einblick wert. Damit die Windows Nutzer besser nachvollziehen
können, was Du hier tolles anbietest, habe ich mir erlaubt, Dein "drivei" aus dem Download mal in meinen Z80-Emulator zu kopieren.

Man möge also die ZIP-Datei:

http://www.daleske.de/projekte/EMUZ80.ZIP

auf einem Windows PC entpacken und den Emulator "EMUZ80.exe" starten. Installiert braucht nichts zu werden. Alle Dateien im Ordner
"CPM_LW_A" (das sind die Dateien von timetubes "drivei") werden automatisch in das Laufwerk "A:" eingelesen. CP/M startet auch gleich
automatisch.

Nun muss man nur:

submit SYSCPM2Z.SUB

eingeben und das Übersetzen der Quelltexte von timetube beginnt. Am Ende bleibt der Emulator natürlich hängen bei "BOOT" und "BOOTGEN". Hier
wird versucht das timetube-system in das EMUZ80-system zu laden, was natürlich nicht funktioniert. Das Prinzip aber dürfte deutlich werden.


Gruß Ronald
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
31.05.2015, 21:43 Uhr
timetube

Avatar von timetube

Hi Ronald,

es freut mich sehr, dass Dir das Projekt gefällt. Ich weiß ja nicht wie Deine Emulation arbeitet, auf jeden Fall musst Du das BIOS auf Dein System anpassen. Den Bootloader auch. Das CP/M 2.2 ist das Original, so wie man es hier bei Gaby downloaden kann. Das BIOS ist eine Anpassung des Skeleton, auch von hier runter geladen. Dann, sollte es aber auch für Deinen Emulator gehen. Es sei denn, das Du die BDOS Funktionen emulierst, also kein Z80 (8080) CP/M lädst.


Schade, dass Du keine Source-Level-Distribution publizierst, hätte mich mal interessiert, wie Du das in Pascal gelöst hast.

Was ich auch immer gerne mache ist zwei Emulationen, meine und z.B. den YAZE Opcode kompatible Z80 Software ausführen lasse und nach jedem Opcode alle Register und das RAM vergleiche, um Abweichungen in der Ausführung zu finden. Leider habe ich noch keine Emulation gefunden, die alle undokumentierten Befehle auch ausführen kann.

Ich bin aber gerade dabei meine Emulation gegen einen original Z80 so aufzubauen, dann erfahre ich, ob ich auch all diese Undokumentierten Opcodes richtig emuliere.

Aber toll hier noch welche zu finden, die dieser CPU anhängen.

Leider hat Zilog irgendwie den Anschluss verpasst. Habe mir vor 1 1/2 Jahren das eZ80F91 Development Kit gekauft. Nicht gerade billig. Es kam total überlagert hier an, der aufgelötete Akku war irreversible tiefenentladen und der USB Debugger (Smartkabel) nach wenigen Wochen bereits kaputt. Keine Verbindung zu Target mehr mglich, dieses führt aber die zuletzt geflashe Software noch aus. Zilog hat weder Ersatz geschickt noch sonst irgendwie reagiert auf meine Anfragen. Ich habe das Gefühl die sind fertig, haben keine Lust mehr.

Die paar Wochen die ich den eZ80F91 kennen lernen konnte, haben mich auch nicht wirklich überzeugen können. Naja alles Gute hat halt auch irgend wann ein Ende. Arbeite nun wieder auf einem original Z80 developer Board.


ie auch immer, freut mich, dass Du Dich über mein kleines Projekt erfreuen kannst.

Versuch doch auch mal meinen HP41CV unter

[url=https://sourceforge.net/projects/hp41cx] HP41CV[/url]

Gruß
Jürgen
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
01.06.2015, 13:38 Uhr
timetube

Avatar von timetube

Hi Ronald,

habe gerade mal Deinen Emulator unter WINE ausprobiert.

Da hast Du Dir aber eine Menge Mühe gegeben, besonders das mit dem CPU-Dialog
finde ich sehr gut gelungen und ja, inspirierend. Muss ich auch haben

Leider, wie Du sehen kannst, stimmen die Fonts von WINE nicht wirklich gut mit denene vom MS-Windows überein und ich konnte auch kein Konfigurationsmenü finden, wo ich einen Font
einstellen hätte können.

Ansonsten bin ich schon begeistert von dem Teil, sehr liebevoll gemacht, gefällt mir.




Gruß
Jürgen
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
07.06.2015, 17:55 Uhr
Ronald



Hi Jürgen,

vielen Dank für das viele Lob. Tut gut, vor Allem wenn man diese Projekte eigentlich nur "just for fun" für sich selbst umsetzt.

Mein Emulator EMUZ80 war eigentlich nicht meine Hauptmotivation, ist dann aber im Laufe der Zeit mein Hauptprojekt geworden. Eigentlich wollte ich einen Z80 Emulator auf Kommandozeileneben schreiben. So etwa in der Art von "22NICE.COM" (sehr hilfreich). Ich habe diesen Kommandozeilen-Emulator genutzt um meine Z80 Quelltexte zu übersetzen (M80.COM, L80.COM, LINKMT.COM usw.). Alles standesgemäß, wie man es eben damals auch gemacht hat.
Der "22NICE.COM" hat aber 2 große Nachteile. Er ist nicht Freeware und er ist noch ein DOS-Tool (das es ja inzwischen auch nicht mehr gibt und meist auch schon emuliert wird). Daher die Motivation es selber zu machen.
Im Quelltext meines Emulators habe ich für alle Emulationsschritte des Z80 darum zusätzliche Compilerschalter eingebaut, um im Kommandozeilenmodus alle grafischen Ausgaben auszublenden. So entstand dann "KEM80.exe" (Konsolen-Emulator für Z80). Wichtig: Dies ist kein DOS-Programm sondern ein Windows-Konsolenprogramm!

Hier ein kleiner Test:
http://www.daleske.de/projekte/KEM80.ZIP


So nun zu Deinen Fragen und Hinweisen:

# es freut mich sehr, dass Dir das Projekt gefällt. Ich weiß ja nicht wie Deine Emulation arbeitet, auf jeden Fall musst Du das BIOS auf Dein System anpassen. Den Bootloader auch. Das CP/M 2.2 ist das Original, so wie man es hier bei Gaby downloaden kann. Das BIOS ist eine Anpassung des Skeleton, auch von hier runter geladen. Dann, sollte es aber auch für Deinen Emulator gehen. Es sei denn, das Du die BDOS Funktionen emulierst, also kein Z80 (8080) CP/M lädst.

Die BIOS-Anpassung ist mir schon klar. Eigentlich wollte ich damit nur die Windows-Nutzer hier im Forum auf Deine interessanten Quelltexte neugierig machen.

# Schade, dass Du keine Source-Level-Distribution publizierst, hätte mich mal interessiert, wie Du das in Pascal gelöst hast.

Eigentlich veröffentliche ich die meisten Projekte recht ausführlich kommentiert auf meinen Internetseiten. Dazu muss das Projekt aber einen gewissen Entwicklungsstand haben. Dazu gehört natürlich auch ein gewisses Mindestmaß an Dokumentation. Diesen Stand habe ich aber bis jetzt noch nicht. Bin sozusagen noch im Alpha-Stadium. Ehrlich gesagt, erreichen einige meiner Projekte aber nie den Stand der Veröffentlichung, da die Vorbereitungen dazu auch wieder recht umfangreich sind.
Die Quellen (ohne Formulare) sind hier:

http://www.daleske.de/projekte/EMUZ80_Quellen.zip

(Eine dokumentierte Internetseite zum Emulator ist in Planung ...)

# Was ich auch immer gerne mache ist zwei Emulationen, meine und z.B. den YAZE Opcode kompatible Z80 Software ausführen lasse und nach jedem Opcode alle Register und das RAM vergleiche, um Abweichungen in der Ausführung zu finden. Leider habe ich noch keine Emulation gefunden, die alle undokumentierten Befehle auch ausführen kann.

In der Entwicklungsphase habe ich auch immer wieder Listen von Z80-Befehlen parallel zu meinem Emulator in einem zweiten Emulator laufen lassen, vor allem um die Veränderungen der Flags zu überprüfen. Dabei entdeckt man zusätzlich einige Fehler in den Original-Dokumentationen von Zilog (meist Schreibfehler, die sich offensichtlich beim Kopieren von Befehlsabschnitten eingeschlichen haben). Habe als Referenz-Emulator meist den Altair 8800 Emulator von Peter Schorn genutzt (tolles Programm).

http://schorn.ch/altair.html

Undokumentierte Befehle habe ich bisher noch nicht berücksichtigt. Bisher liefen die meisten Programme auch ohne diese Befehle. Mein mit Abstand wichtigstes Referenzprogramm ist dabei immer das Turbo Pascal 3.01 von Borland. Läuft auf meinem Emulator übrigens bestens. Auch im Edit-Modus (ist bei der Fehlersuche sehr wichtig und wird von den meisten anderen Emulatoren nicht sauber unterstützt).

# Leider, wie Du sehen kannst, stimmen die Fonts von WINE nicht wirklich gut mit denene vom MS-Windows überein ...

Diesen Effekt habe ich auch schon erlebt, wenn ich Windows-Pascal-Quelltexte unter RaspberryPI Raspbian übersetze. Meine Vermutung ist, dass die unter Linux üblicherweise verwendeten Grafikbibliotheken (qt, gtk1, gtk2 usw.) doch etwas anders funktionieren als die entsprechenden Grafikroutinen unter Windows. WINE wird wahrscheinlich (wie Free-Pascal unter Linux) versuchen die Schnittstellen möglichst direkt anzusprechen (ist aber nur eine Vermutung).
An dieser Stelle habe ich übrigens durch das Emulatorprojekt wieder etwas mehr Verständnis für diese Art von Schnittstellenproblemen bekommen. Denn meist wird man versuchen bei einem Emulator (auch WINE ist ja ein Emulator) nicht alles zu emulieren, sondern möglichst viele definierte Schnittstellen direkt zu bedienen. Beim CP/M-Emulator sind das dann z.B. die BIOS-Aufrufe.

# Versuch doch auch mal meinen HP41CV unter ...

werde ich testen. Bin aber momentan etwas knapp mit meiner Freizeit, so dass es etwas dauern kann.


Gruß Ronald
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
005
08.06.2015, 17:55 Uhr
timetube

Avatar von timetube


Zitat:
Ronald postete
Hi Jürgen,

Hi Ronald,

Zitat:
vielen Dank für das viele Lob. Tut gut, vor Allem wenn man diese Projekte eigentlich nur "just for fun" für sich selbst umsetzt.

Lob wem Lob gebührt

Zitat:
Mein Emulator EMUZ80 war eigentlich nicht meine Hauptmotivation, ist dann aber im Laufe der Zeit mein Hauptprojekt geworden. Eigentlich wollte ich einen Z80 Emulator auf Kommandozeileneben schreiben. So etwa in der Art von "22NICE.COM" (sehr hilfreich). Ich habe diesen Kommandozeilen-Emulator genutzt um meine Z80 Quelltexte zu übersetzen (M80.COM, L80.COM, LINKMT.COM usw.). Alles standesgemäß, wie man es eben damals auch gemacht hat.
Der "22NICE.COM" hat aber 2 große Nachteile. Er ist nicht Freeware und er ist noch ein DOS-Tool (das es ja inzwischen auch nicht mehr gibt und meist auch schon emuliert wird). Daher die Motivation es selber zu machen.
Im Quelltext meines Emulators habe ich für alle Emulationsschritte des Z80 darum zusätzliche Compilerschalter eingebaut, um im Kommandozeilenmodus alle grafischen Ausgaben auszublenden. So entstand dann "KEM80.exe" (Konsolen-Emulator für Z80). Wichtig: Dies ist kein DOS-Programm sondern ein Windows-Konsolenprogramm!

Hier ein kleiner Test:
http://www.daleske.de/projekte/KEM80.ZIP


So nun zu Deinen Fragen und Hinweisen:

# es freut mich sehr, dass Dir das Projekt gefällt. Ich weiß ja nicht wie Deine Emulation arbeitet, auf jeden Fall musst Du das BIOS auf Dein System anpassen. Den Bootloader auch. Das CP/M 2.2 ist das Original, so wie man es hier bei Gaby downloaden kann. Das BIOS ist eine Anpassung des Skeleton, auch von hier runter geladen. Dann, sollte es aber auch für Deinen Emulator gehen. Es sei denn, das Du die BDOS Funktionen emulierst, also kein Z80 (8080) CP/M lädst.

Die BIOS-Anpassung ist mir schon klar. Eigentlich wollte ich damit nur die Windows-Nutzer hier im Forum auf Deine interessanten Quelltexte neugierig machen.

# Schade, dass Du keine Source-Level-Distribution publizierst, hätte mich mal interessiert, wie Du das in Pascal gelöst hast.

Eigentlich veröffentliche ich die meisten Projekte recht ausführlich kommentiert auf meinen Internetseiten. Dazu muss das Projekt aber einen gewissen Entwicklungsstand haben. Dazu gehört natürlich auch ein gewisses Mindestmaß an Dokumentation. Diesen Stand habe ich aber bis jetzt noch nicht. Bin sozusagen noch im Alpha-Stadium. Ehrlich gesagt, erreichen einige meiner Projekte aber nie den Stand der Veröffentlichung, da die Vorbereitungen dazu auch wieder recht umfangreich sind.
Die Quellen (ohne Formulare) sind hier:

http://www.daleske.de/projekte/EMUZ80_Quellen.zip

(Eine dokumentierte Internetseite zum Emulator ist in Planung ...)

Habe mir Dein Projekt angesehen, bin nun nicht der große Pascal-Versteher, meine letzten Projekte in Pascal waren 1989 auf einem Kontron CP/M 2.2 (Turbopascal). Hat sich viel getan an diese Hochsprache, damit sie mithalten kann, mit den modernen Sprachen

Habe Dein Projet auch in Lazarus IDE compilieren können, indem ich die fehlenden Dateien mit deinen Z80 Code-Arrays Dummy-mäßig selber erstellte.


Quellcode:
{ missing file }

Const
  CPD7_ARR : Array [1..2] of Char = ('0','1');
  Laenge_CPD7_Array : Integer = 2;  

Das klappte für die fehlenden Dateien

BDO_TXT.INC
CCP_TXT.INC
CPD7_TXT.INC

auch ganz gut, da deren Zweck und damit Inhalt aus Deine Codes gut erkenntlich wurde.

Nicht hat es mit der Datei

MainForm_EMUZ80.ifm

geklappt, da dort die Ressource für die Main-form gespeichert ist, was sehr viel Aufwand machen würde sie zu rekonstruieren.

Vielleicht magst Du die Dateien ja noch "nachliefern"?

Jedenfalls ist damit sicher gestellt, dass Deine Applikation binnen Minuten unter Linux und wohl auch allen anderen Plattformen, die Lazarus bereits portierte, erstellt und ausgeführt werden könnte


Zitat:
# Was ich auch immer gerne mache ist zwei Emulationen, meine und z.B. den YAZE Opcode kompatible Z80 Software ausführen lasse und nach jedem Opcode alle Register und das RAM vergleiche, um Abweichungen in der Ausführung zu finden. Leider habe ich noch keine Emulation gefunden, die alle undokumentierten Befehle auch ausführen kann.


Versuch mal die beiden Programme

zexall und zexdoc

beides Z80 Assembler Programme, die unter CP/M laufen und wenn Deine Z80-EMU die
fehlerfrei absolvieren, hasst Du eine ausreichend genau Emulation.

Zitat:
...
...
Habe als Referenz-Emulator meist den Altair 8800 Emulator von Peter Schorn genutzt (tolles Programm).

http://schorn.ch/altair.html

kenne ich, wirklich einer der ersten und besten emus.

Zitat:
Undokumentierte Befehle habe ich bisher noch nicht berücksichtigt. Bisher liefen die meisten Programme auch ohne diese Befehle. Mein mit Abstand wichtigstes Referenzprogramm ist dabei immer das Turbo Pascal 3.01 von Borland. Läuft auf meinem Emulator übrigens bestens. Auch im Edit-Modus (ist bei der Fehlersuche sehr wichtig und wird von den meisten anderen Emulatoren nicht sauber unterstützt).

# Leider, wie Du sehen kannst, stimmen die Fonts von WINE nicht wirklich gut mit denene vom MS-Windows überein ...

Diesen Effekt habe ich auch schon erlebt, wenn ich Windows-Pascal-Quelltexte unter RaspberryPI Raspbian übersetze. Meine Vermutung ist, dass die unter Linux üblicherweise verwendeten Grafikbibliotheken (qt, gtk1, gtk2 usw.) doch etwas anders funktionieren als die entsprechenden Grafikroutinen unter Windows. WINE wird wahrscheinlich (wie Free-Pascal unter Linux) versuchen die Schnittstellen möglichst direkt anzusprechen (ist aber nur eine Vermutung).
An dieser Stelle habe ich übrigens durch das Emulatorprojekt wieder etwas mehr Verständnis für diese Art von Schnittstellenproblemen bekommen. Denn meist wird man versuchen bei einem Emulator (auch WINE ist ja ein Emulator) nicht alles zu emulieren, sondern möglichst viele definierte Schnittstellen direkt zu bedienen. Beim CP/M-Emulator sind das dann z.B. die BIOS-Aufrufe.

WINE greift letztendlich auf den Font-Server des Host-System zurück. Der bekommt ja nur so "ungefähr" Angaben (Größe,Type,Stile....), sucht dann selber den auf diese Angaben seiner Meinung nach besten Font heraus. Das klappt bei Linux Apps gut, bei Interoperabilität zwischen Windows (WINE) und X11 leider nicht.

Zitat:
# Versuch doch auch mal meinen HP41CV unter ...

werde ich testen. Bin aber momentan etwas knapp mit meiner Freizeit, so dass es etwas dauern kann.


Gruß Ronald

Ja, lass Dir Zeit und überlege mal ob Du die fehlenden Dateien noch herausgeben magst. Bekommst dafür von mir (wenn alles klappt) Dein Projekt Linux und Andriod fähig gemacht zurück
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 08.06.2015 um 17:56 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
006
04.07.2015, 11:58 Uhr
Ronald



Hi Jürgen,

habe in den letzten Wochen eine erste Website mit meinem Z80-Konsolen-Emulator KEM80 (gleicher Emulator wie auch EMUZ80) mit allen Quelltexten erstellt. Es war doch etwas aufwendiger, weil hier und da noch einige Korrekturen gemacht werden musste. Die Website ist unter:

http://www.projekte.daleske.de/prog/08_KEM80/prog_KEM80.htm

zu finden. Ich habe übrigens auch eine Linux-Version mit Online gestellt (RASPIAN auf Raspberry PI 2). Der gleiche Quelltext lässt sich unter Linux-Free-Pascal ohne Probleme übersetzen und läuft auch sofort, da es sich hier um ein Konsolenprogramm handelt und beide Betriebssysteme auf dieser Ebene recht kompatibel sind.

Der zweite Teil zum EMUZ80 folgt demnächst.


Hatte mir auch Dein Video unter:

https://www.youtube.com/watch?v=YloCQdboTi4&feature=youtu.be

zum "Zilog Z80-Simulator simulates vitage computer." angesehen. Ist schon etwas älter aber trotzdem sehr interessant. Viel Liebe zum Detail und gut umgesetzt.
Das Problem mit dem Aufruf von Turbo Pascal und dann den Aufruf des internen Editor (mit E) kenne ich. An dieser Stelle müssen die (von Turbo Pascal) empfangenen ESC-Sequenzen sehr genau umgesetzt werden. PUTTY kann damit aber nicht immer etwas sinnvolles anfangen. Daher hatte ich in meinem Emulator EMUZ80 ein eigenes Terminal geschrieben, dass die ESC-Sequenzen verschiedener Terminals (VT100, PC1715 usw.) emulieren kann. Das macht noch einmal recht viel Arbeit (abfangen der ESC-Sequenzen, analysieren was sie bewirken sollen und dann umsetzen). Zu CP/M-Zeiten gab es für die Terminalsteuerung keinen einheitlichen sauberen Standard, sondern eher viele herstellerspezifische Teilstandards (ADM31, VT52 usw.). Bei Turbo Pascal läuft es soweit ganz gut, bei Wordstar fehlt noch einiges bei der Umsetzung im Terminal (ToDo).

Bis bald

Ronald
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
007
11.08.2015, 11:06 Uhr
Ronald



Hi Jürgen,

habe jetzt auch meinen Z80-Emulator EMUZ80 mit grafischer Oberfläche und allen Quelltexten unter:

http://www.projekte.daleske.de/prog/09_EMUZ80/prog_EMUZ80.htm

online gestellt.

Gruß Ronald
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
008
11.08.2015, 12:29 Uhr
timetube

Avatar von timetube

Ronald, wirklich ein schönes Projekt, mit sehr viel Liebe zum Detail und Mühen hergestellt. Gefällt mir gut, auch die gesamte Projektseite.

Ein kleine Anmerkung aber zu Deinem Absatz bezüglich der "Unterstützung undokumentierter Befehle"

Der ist in der Form wohl mehr der Tatsache geschuldet, dass Du sie nicht unterstützt )
Diese Befehle werden mit kleinen Abweichungen, die es aber auch bei offiziellen Chips und Befehlssatz immer mal wieder gab, von allen Reinkarnationen unterstützt. Und, es gibt eine Menge historischer Software, die diese Nutzten. Auch das diese undokumentierter Befehle nur Firlefanz sind, kann ich nicht bestätigen. Es sind zum teil sehr mächtige Befehle, die ein enormes undokumentiertes Plus darstellen
Ansonsten hast Du aber recht. Es war damals riskant sie zu verwenden, man musste damit rechnen das sie nicht auf allen System liefen und auch bei neuen Chips nicht mehr so funktionierten. Dennoch ist es eine Leistung auch diese in einer Emulation nachzubilden, die man anerkennen sollte.

In diesem Sinne, eine tolle Leistung die da da vollbracht hast. werde mir die Codes nun mal genauer anschauen.

Gruß Jürgen alias timetube
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
009
16.08.2015, 16:19 Uhr
Ronald



Hi Jürgen,

vielen Dank noch einmal für die positive Bewertung.

zum Thema "Unterstützung undokumentierter Befehle":

Ich wollte an dieser Stelle mit meiner Bemerkungen auf keinen Fall die Leistungen anderer Personen schlecht reden.

Im Gegenteil. Mir ist schon bewusst, dass das Schreiben eines Emulators eine sehr aufwendige und anspruchsvolle Arbeit ist und wenn die meisten anderen Programmierer die undokumentierten Befehle ebenfalls in ihren Emulatoren berücksichtigen, ist das natürlich eine beachtenswerte Leistung (vor Allem, weil man mit dieser Erweiterung die Kompatibilität zu den dokumentierten Befehlen nicht eischränkt sondern den Befehlssatz um die undokumentierten Befehle erweitert).

Daher habe ich auch die entsprechende Zeile ("die Unterstützung der undokumentierten Befehle...") aus meiner Internetseite entfernt.

Trotzdem werde ich bis auf weiteres die "undokumentierten Befehle" in meinem Emulator nicht unterstützen (ist für mich auch eine Zeitfrage).

Gruß Ronald
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
010
18.08.2015, 00:18 Uhr
timetube

Avatar von timetube

Hi Ronald

Sorry, ich merke meine Bemerkung ging Dir doch sehr ins Mark und Bein. Das war nicht meine Absicht, ich wollte Dir da wirklich nichts unterstellen, einfach nur uns weiter bringen in unseren Überlegungen.

Und wie Recht Du mit Deiner Anmerkung bezüglich undokumentierte Opcodes doch hast, zeigt sich in meinem neuen Projekt, der Emulation des eZ80.

Da bin ich auf folgenden Abschnitt in der Doku gestoßen:


Quellcode:
Illegal Instruction Traps
The eZ80 ® CPU instruction set does not cover all possible sequences of binary values.
Binary values and sequences for which no operation is defined are illegal instructions.
When an eZ80 ® processor fetches one of these illegal instructions, it performs a TRAP
operation.
While not a true eZ80 ® instruction, a TRAP operation functions similar to an RST 00h
instruction. The function of the TRAP instruction is displayed in the following code
segment:
if ADL mode (ADL = 1) {
(SPL) ← PC[23:0]
if MIXED MEMORY mode (MADL = 1) {
(SPL) ← 03h
}
PC[23:0] ← 000000h
}
else Z80 mode (ADL = 0){
SPS ← PC[15:0]
if MIXED MEMORY mode (MADL = 1) {
(SPL) ← 02h
}
PC[15:0] ← 0000h
Effectively, PC[23:0] = {MBASE, PC[15:0]}.

Das bedeutet ich kann als die undokumentierten Befehle da nicht einbauen, weil er sie eh nicht ausführen würde. Das gilt dann sogar für die original eZ80 bei der Ausführung alter Software die diese verwenden.

Du lagst also gar nicht so schlecht mit Deinen Hinweisen die Finger von diesen undokumentierten Befehlen zu lassen.

In diesem Sinne

Danke für den Hinweis <3

Jürgen
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 18.08.2015 um 00:19 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
011
10.09.2015, 07:57 Uhr
timetube

Avatar von timetube


Zitat:
timetube postete
Hi Ronald,

Leider hat Zilog irgendwie den Anschluss verpasst. Habe mir vor 1 1/2 Jahren das eZ80F91 Development Kit gekauft. Nicht gerade billig. Es kam total überlagert hier an, der aufgelötete Akku war irreversible tiefenentladen und der USB Debugger (Smartkabel) nach wenigen Wochen bereits kaputt.
Zilog hat weder Ersatz geschickt noch sonst irgendwie reagiert auf meine Anfragen.

Ich muss dieses Posting gründlich revidieren.

Nur so aus langer weile hatte ich noch einmal eine Support-anfrage an Zilog gestellt. Es stellte sich schnell raus, das etwas komplett schief gelaufen sein muss und das Ergebnis weniger Wochen (Das Board musste zu den Philippinen eingeschickt werden) ist nun folgendes völlig unproblematisch und nach wirklich guter Kommunikation und Fehlereingrenzug dabei raus gekommen:


Quellcode:
18.  [2015-09-09 21:09:48]  [Technical Engineer ]  [Reported]
Hi Jurgen,

The board is now fixed and is ready for shipping back to you. Kindly confirm shipping address below:

[...]

Best Regards,


--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CP/M-Emulatoren ]  



gaby.de

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek