<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sat, 24 Jan 2004 12:59:52 -0000
From   : tom@...
Subject: Re: BBC Hard Drive Package Update

I've had a think about this this morning. It's something I've wanted 
to do too. I've come up with a header file with some structs and 
function prototypes, but it's not out of the ideas stage really.

What are you planning? From what I remember of how BeebEm works, it 
should be straightforward to come up with something that could work 
with model-b too.

My current ideas include some support for exporting configurable 
settings to the emulator, so that it can generate appropriate dialog 
boxes and config file entries. It doesn't currently include support 
for:

1/ accessing PC devices
2/ devices accessed other than through addresses in the IO area
3/ communication with other installed devices
4/ accessing disk drives
5/ asserting VIA interrupts

So it's hardly complete :) I'd be interested in hearing your ideas.

Thomas Harte has a doc about the new Electrem on the the 'Downloads' 
section of his site:

    http://electrem.emuunlim.com/

It's the 'Electrem Future' download. His system works quite similarly 
to the model-b one, it looks like. I suspect all the C++ would make 
it difficult to put in a compiler-agnostic DLL, so my interface only 
uses C features.

--Tom

P.S. "any part of memory" -- what devices have IO addresses outside 
the 0xFC00-0xFEFF area?

On 24 Jan 2004 at 2:07, Richard Gellman wrote:

> I be many steps ahead of you :)
> 
> The operating model of BeebEm permits a plugin system to be written that 
> can not only map to any  part of memory/system, but can also (if needed) 
> generate its own IRQs and NMIs.
> 
> The plugin support is due for a further release. The next version will 
> be 1.5, which will feature major improvements in the area of graphics 
> stability, sound accuracy, speed calibration, and input resolution (I 
> intend to convert the input system for the keyboard, joystick and mouse 
> to use DirectInput), and possibly also set up a much-requested BBC-to-PC 
> keyboard mapping system.
> 
> The version after (most likely 1.6) will feature an extensive plugin 
> system allowing an extremely flexible hardware configuration.
> 
> Does anyone know if Thomas Harte is still doing the rounds? I seem to 
> remember he was developing a unified Acorn hardware plugin spec. which 
> would allow ElectrEm plugins to be used with BeebEm and vice versa. I 
> can't remember how far he got with this or whether he implemented it.
> 
> -- Richard Gellman
> 
> Jonathan Graham Harston wrote:
> 
> >>Message-ID: <40096192.8000200@...>
> >>    
> >>
> > 
> >Richard Gellman <splodge@...> wrote:
> >  
> >
> >>Hard drive support will be in the next version of BeebEm (due out
> >>spring-ish).
> >>    
> >>
> > 
> >I was just thinking of a long list of other emulated hardware to ask you
> >to consider implementing, when I realised there's a better idea.
> > 
> >At http://www.mdfs.net/Docs/Comp/Spectrum/RISCOS/EmulatedIO is a proposal
> >to allow Spectrum emulators running on RISC OS to pass unknown hardware
> >I/O access to other modules, so then other people could build emulated
> >hardware themselves and "plug" it in.
> > 
> >I'm not too up to speed with Windows DLLs and stuff, but I imagine a
> >similar concept could work with BeebEm and Windows-based BBC emulators in
> >general.
> > 
> >What would be needed is a generally agreed protocol by which a BBC
> >emulator passes hardware access to hardware it doesn't implement itself to
> >other modules to allow them to pick it up. A minimum would be the
> >following:
> > 
> >BBC_Resetting:
> >The emulated BBC is performing a hardware reset. To the emulated hardware
> >this would be like the ~RST signal on the 1MHz bus. Nothing should claim
> >this call.
> > 
> >BBC_IOWrite:
> >The emulated BBC is attempting to write to an address in &FCxx/&FDxx to
> >something that is not emulated by the emulator itself. If an external
> >module can deal with this, claim the call.
> > 
> >BBC_IORead:
> >The emulated BBC is attempting to read from an address in &FCxx/&FDxx from
> >something that is not emulated by the emulator itself. If an external
> >module can deal with this, claim the call, and return a value.
> > 
> >So, if an emulator implements, for instance, a SCSI card at &FC40-&FC43,
> >then access to those addresses would not get passed to the calls.  If
> >nothing claims a read call, then the emulator should assume it has read
> >&FF.
> > 
> >The emulator could even pass through access to addresses in &FExx that
> >aren't implemented by the emulator, so, for example, an external module
> >could emulate a 6854 ADLC at &FEA0-A7.
> > 
> >A more advanced implementation would allow the external emulated hardware
> >to generate 6502 IRQs and NMIs.
> > 
> >  
> >
> 
> 
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>