Z80 Simulator
Hi fellas,
ich muss ein z80 simulator schreiben. ich weiss aber nicht welche datenstruktur für die register nehmen soll. In z80 gibt es das B,C,D,E Register. (und noch andere das ist jetzt aber irrilevant) Alle zu 8 bit. BC und DE können als 16 bit register gelesen werden. Nun wollte ich folgendes machen. char reg8[4] // B,C,D,E register short int *reg16[2] //BC DE wenn nun reg16[0] auf reg8[0] zeigt dann liest er automatisch BC. Nun hab ich aber ein PROBLEM da das ganze auch auf linux laufen soll. Und da ist char manchmal als 2 byte? short ist auch nicht immer 2 byte lang. Hab schon lange daran herumgeräzelt. Ich wäre sehr dankbar wenn jemand einen Lösungsvorschlag hat. MFG |
Re: Z80 Simulator
Mach's so, dann kannst du dir die Pointer sparen:
Delphi-Quellcode:
Die Typen BYTE und WORD sind übrigens immer 8 bzw. 16 Bits lang.
type
TZ80Regs = record case integer of 0: ( reg8: array [0 .. 3] of byte; ); 1: ( reg16: array [0 .. 1] of word; ); end; |
Re: Z80 Simulator
ja ich muss das in C machen da gibts irgendwie kein byte und kein word :-/
|
Re: Z80 Simulator
Zitat:
Das verschließt einem zwar ziemlich viele Optimierungsmöglichkeiten, aber das ist der Preis für eine Komplette Prozessoremulation in einem *komplett* unterschiedlichem Prozessor. Was nicht da ist, muss eben emuliert werden. Du könntest ja mit IFDEFs arbeiten, wenn du die passenden Architekturen rausgefunden hast. Per makefile übergibst du je nach Zielplattform ein Preprocessor-Symbol und wenn es eine von dir als "tauglich" eingeschätzte Plattform ist, nimmst du optimierte Funktionen, die allerdings 8bit große chars benötigen, und in allen anderen Fällen nimmst du eine generische Implementierung, die dafür langsamer läuft. |
Re: Z80 Simulator
ich muss nur schauen dass es nicht über den bereich hinausgeht. also 255 ist das maximum dann soll es wieder von unten hochzählen..
|
Re: Z80 Simulator
Zitat:
|
Re: Z80 Simulator
Zitat:
|
Re: Z80 Simulator
Schau mal bei Sourceforge. Da gibts eine LibSidPlay, bei der ist eine 6502/6510-Emulation dabei (8-bit Proz, der z.B. im C64 zum Einsatz kam). Ist zwar nicht der Z80, kann man aber viel draus lernen. Bin mir nicht sicher, aber hab derletzt auch irgendwo eine OpenSource-KC85-Emulator gesehen (der ja den Z80 hatte), weiß aber nicht ob das bei SF war. Muscht mal googlen.
|
Re: Z80 Simulator
Zitat:
(*seufz* da kommen alte Erinnerungen auf... ) |
Re: Z80 Simulator
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz