[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.")