I was wondering if the following would be an amicable way to deal with
breaking up the bochs plug-in (and for making coding of hardware emulation
plug-ins & drivers more like real hardware/firmware & drivers....):

          |
monitor |       Stuff in user-land (feeds back into the monitor when
space     |                             needed--otherwise uses host OS services)
          |
        |                 /-->memory (needed or handled already?)
nexus<--->bridge<---|
          |       \-->"PCI-like" unit (I wanted to use a class--but screw that)
---------                       ^
                                        |
                        -------------------------------------------
                        |               |               |                       |
                        \/              \/              \/                      \/
                ISA device      PCI bridge              Super I/O unit  VGA/SVGA 
enhanced
                emulations      "emulation"             (most of the    video 
controller
                |                       ^               bochs plug-in)  emulation
                |                       |                       ^                      
 ^
                |               -------------           |-->EIDE                
|--output to
                |               |               |               |       handler |  
X-like GUI
                |               \/              \/              |-->serial             
 |--output to
                |       Ethernet                Other PCI       |       redirector     
 |  curses GUI
                |                               Stuff?  |-->parallel    |--raw 
frambuffer?
                |                                               |       redirector     
 |
                |-->Soundblaster emulation?             |-->PS/2 mouse  \--others?
                |                                               |       handler
                \-->others?                                     \-->keyboard handler

The "PCI-like" unit would pass signals "raw" in a way like a real PCI-bus
based modern architecture north/south bridge PC/AT system.  The bridge unit
would be a "clean up" so that the nexus could keep working with minimal
change involved.  Everything else would work much like it does on a real PC.
The advantage of this method would be that parts could be
added/subtracted/substituted much in the same way that they are on a real
PC--using much the same interface that the real PC does (something that
people are familiar coding around).

Any feedback on this would be greatly appreciated......

Drew Northup, N1XIM
P.S. If the ASCII-art doesn't work out I'll hack up a GIF.....


Reply via email to