[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Writing emulator...



Mike Guidero <mike@bogus.net> wrote in message news:<unrcgd4ell7nef@corp.supernews.com>...
> Dosius wrote:
> 
> > Mike Guidero <mike@bogus.net> wrote in message
> > news:<unmvijtbqp48e0@corp.supernews.com>...
> >> But, hopefully the info is good for the guy writing the emulator.
> >> 
> >> Mike
> > 
> > I'm trying to make heads or tails of this, and I'll let you know
> > what's happening.  The CPU core is there, however, and I've got the
> > card in Slot 5 (is this correct?)
> > 
> > 44K CP/M 2.2 doesn't see the card yet, but I'm working on it.
> 
> Slot 4 is the usual place for the Z80 card, but 5 will work. (But if you 
> decide to emulate a IIe and add a smartport, then you have to locate that, 
> and it's usual slot is 5)
> 
> Did I read correctly that you are doing 16-bit real mode x86 code with Turbo 
> C?  Any chance that will ever change?
> 
> I also might suggest some things, dunno if they are possible with what you 
> are doing, but a good way to keep things clean and flexible is to implement 
> slots as DLLs or shared objects.  That allows for you to simply have a 
> config file that tells what cards to put in what slots.
> 
> Z80 card might not be able to work this way with a minimalist interface 
> (getCx00(), putCx00(), getC0x0(), putC0x0(), devSelect(), getC800(), and 
> putC800()), but other more generic ones could.
> 
> A real implementation would allow for DMA, IRQ, and other hardware things to 
> be emulated.
> 
> Mike
The Z80's memory accesses are directly to the corresponding 65C02
addresses, according to the manual quote you provided.  A variable,
cpuinuse, is set to emu6502 or emuZ80, and the opcode fetch-and-run is
executed for the proper CPU, although this needs work.  Also, CPU
switching doesn't seem to work right because I still get "CAN'T FIND
Z80 SOFTCARD" (or, in the hack, "CAN'T FIND STUPID CARD.")