This web site exists to document my adventures in writing software emulators for old computer hardware. So far, I have completed (sort of) a Commodore PET emulation and am working on a Sinclair Spectrum emulation.
I came across a presentation on Youtube by Bjarne Soustrup in which he claimed that linked lists are usually the wrong data structure. As an example he used the following You have a random stream of N integers You have to insert each one in turn in the right place in a list to make … Continue reading Data Structures and Data Caches – part 1
At the end of my previous post, the spectrum was at the point where it would boot up and display the Sinclair copyright statement on the screen. Nothing else would happen and, indeed, you had to manually force the screen to refresh to get anything at all to display. Since then, it has now been … Continue reading Synchronising the Screen
So I got bored of implementing instructions and decided, instead, to start implementing the actual Spectrum. This may seem a bit presumptuous, but it’s more fun than just slogging through implementing instructions that nobody ever uses. To start, I decided to reuse the main window and memory window from my Z80Diagnostic app. This meant refactoring … Continue reading Beginning the Spectrum
So I completed the refactoring of the instruction decoding to allow two sources and two destinations. I’m pretty pleased with the results. It’s allowed me to completely eliminate several operations from the decoding code. All the jumps, calls and returns (except RETI, which is not implemented yet and RET cc which requires the stack to … Continue reading The Refactoring Results