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 ________________________________ From: cctalk <cctalk-boun...@classiccmp.org> on behalf of Pontus Pihlgren via cctalk <cctalk@classiccmp.org> Sent: Tuesday, February 20, 2018 11:22:32 AM To: Adrian Stoness; General Discussion: On-Topic and Off-Topic Posts Subject: Writing emulators [Was: Re: VCF PNW 2018: Pictures!] On Mon, Feb 19, 2018 at 06:36:13PM -0600, Adrian Stoness via cctalk wrote: > whats invovled in makin an emulator? > i have a chunk of stuff for the phillips p1000 I would say it depends a lot on how complex your target machine is. But in essense you will have to write code for each device you wish to emulate mapping their functionality over to your host machine, the one running the emulator. As a minimum you will write code for the CPU and some sort of output device, such as a serial console. For some machines you might need images of ROM code in order to be fully compatible with existing software. I wrote a PDP-8 emulator for fun. The basic CPU and serial was done in a few hours. I then hardcoded the paper tape loader in memory and allowed input to be read from an image file. Adding extended memory support and running conformance tests has taken the bulk of the time. /P