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.....