<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 27 Sep 1993 10:57:53 +0100 (BST)
From   : "I Stephenson" <ian@...>
Subject: Re: Hardware projects & Emulators

>Has anyone ever tried to write a beeb emulator with any
>success. I've seen an attempt at one which was a conversion from an Apple II
>emulator which wasn't much cop, what we (James B and myself) would like to do
>is to be able to run a beeb emulator under X-Windows, just importing raw 6502
>binaries and watch them trundle away - Revs on X-Windows ;-) - dream on I
>think. Anyone want to try and emulate the sound chip (never mind the 6845).
>
>   Steve Youell

That sounds like the one I wrote...

Yes it's limited, but it's written to be prety extensible (I did add some  
graphcs capability, but it wasn't so effective, and needed NeXTStep, so I  
didn't release that version). However you can "just importing raw 6502
binaries and watch them trundle away", provided certain stuff is avoided. If  
you're intersted in taking it further it's probably a ggod start.

To load in binaries you need to add a header, which specifies the lad and  
execution address
There's a pseudo instruction which makes an OS trap. This has been inserted  
into the copy of the ROM, at the strategic entry points. This calls the  
function OS, which then switches to the appropriate routines. Filling out these  
routines would allow you to get all legal stuff running (it would probably be a  
good idea to reshuffle this to make it look like a co-processor).

To get the illegal stuff going you need to get into the read/write memory  
stuff. This is done by two funcitons which currently just block writes to ROM.  
Memory mapping hardware would be pretty easy (apart from the actuall  
impementation of a complex chip).

I converted the code into objective C. This makes it a little slower  
(potentially - I never noticed it), but makes it much easier to manage. There's  
a seperate Object to manage the screen, which you can just send vdu codes to.  
This almost worked, but had some problems of staying in sync. There's also a  
seperate memory object, keyboard, and other bits. I can release this if anyones  
interested.

Ian
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>