Writing emulators [Was: Re: VCF PNW 2018: Pictures!]

Charles Anthony charles.unix.pro at gmail.com
Tue Feb 20 18:20:29 CST 2018

On Tue, Feb 20, 2018 at 4:01 PM, Eric Christopherson via cctalk <
cctalk at classiccmp.org> wrote:

> On Tue, Feb 20, 2018 at 5:30 PM, dwight via cctalk <cctalk at classiccmp.org>
> wrote:
> > In order to connect to the outside world, you need a way to queue event
> > based on cycle counts, execution of particular address or particular
> > instructions. This allows you to connect to the outside world. Other than
> > that it is just looking up instructions in an instruction table.
> >
> > Dwight
> >
> What I've always wondered about was how the heck cycle-accurate emulation
> is done. In the past I've always felt overwhelmed looking in the sources of
> emulators like that to see how they do it, but maybe it's time I tried
> again.
An emulator does not necessarily need to be cycle accurate. Some
architectures have overlapping instruction execution, memory caches, I/O
memory contention --  calculating cycles can be very complex. Other
architectures, such as the DPS8/M do not seem to have left any
documentation about cycle timing. The dps8/m emulator is coded for
performance, not timing accuracy.

-- Charles

More information about the cctalk mailing list