009
04.05.2012, 21:06 Uhr
jmueller
|
Nach der Hexenvebrennung am Montag und dem 1. Mai habe ich nun mal wieder etwas Zeit gefunden für den MPC4:
Zitat: | Was mir im Weiteren noch etwas komisch vorkam ist die Auswahl der RAM - Bank. ... Das würde dann bewirken, dass Bank 4 ausgewählt ist. Auf dem Plan zur RAM - Karte sind aber nur Bank 0..3 vorhanden, was mir ein kleines Rätsel aufgibt.
|
Auch ich finde keine Lösung für dieses Rätsel, außer dass der Plan falsch beschriftet sein könnte.
Zitat: | Ich habe dieses aber erst mal beiseite geschoben und gehe einfach davon aus, dass im gesamten Addressraum RAM vorhanden ist. Wie die Bank nun heißt ist ja eigentlich auch egal. :-)
|
Sicherlich ist von Anfang an RAM eingeblendet, sonst würden ja die CALL-Befehle nicht funktionieren. Aber spätestens wenn ein Programm die Bänke umschaltet, muss es dann schon passen. An der Stelle ergibt sich übrigens das nächste Unlogische für mich: So wie ich es sehe, werden immer die kompletten 64K umgeschalet, d.h., bei der Umschaltung sägt das gerade laufende Programm sich selbst den Ast ab, auf dem es sitzt. Das Programm würde ja ab da mit undefinierten Code weiterlaufen. Bei anderen Computern wird deshalb der Adressraum in Pages eingeteilt, die separat umschaltbar sind.
Zitat: | Verzeiht mein Unwissen, aber was ist TC?
|
TC heißt Terminal Count. Mit diesem Signal wird eine laufende IO-Operation des FDC beendet. Wenn man TC nicht auslöst, läuft der FDC in einen EOT-Fehler (End Of Track). Es gibt zwar Computer, die ohne TC arbeiten (CPC, KC compact), aber dann muss die Software ein EOT als Erfolgszustand behandeln. Im Normalfall, und ich glaube, da gehört auch der MPC4 dazu, wird TC verwendet, und dann muss man es auch auslösen können. Solange die TC-Problematik nicht geklärt ist, braucht man eigentlich mit einer Emulation gar nicht anfangen, da man schon das Booten nicht hinbekommen wird.
Zitat: | ...mein erster Versuch im Schaltplan - lesen (und Emulator basteln)...
|
Ich finde dich sehr mutig! Neben der genauen Kenntnis des zu emulierenden Systems ist die genaue Funktionsweise der hochintegrierten Schaktkreise notwendig. Der Z80-Prozessor ist sehr gut erforscht und dokumentiert. Da gibt es auch genügend Beispielcode. PIO und CTC gehen auch noch. Bei den anderen Peripherieschaltkreisen sieht das aber schon anders aus. Meistens ist nur der übliche Erfolgsfall dokumentiert. Emulieren muss man aber auch das links und rechts davon mögliche, denn es gibt garantiert Programme, die dort hineinlaufen. SIO, DMA und GDC bieten sehr weite programmtechnische Freiräume und sind deshalb für die Emulation hoch komplex.
Ich selbst habe nach mehrjähriger Arbeit im JKCEMU "gerade mal" die Schaltkreise CPU, PIO, CTC und FDC vollständig umgesetzt. GDC ist nur partiell realisiert und die SIO sogar nur rudimentär. Dort wo im JKCEMU die GDC-Emulation zur Anwendung kommt (A5105 und Z1013) werden die Grafikfunktionen des GDC nicht benutzt. Deshalb konnt ich mir das sparen. Aber der MPC4 scheint diese Funktionen zu verwenden. Jens |