I think it would be better to propose the Bochs team a simple and very configurable "Plugin Interface" where plugins can be installed by copying them in a directory and then being able to point to more than one plugin directory using an INI file for Bochs itself (and maybe custom BXRC files with "plugin" directives --- to not break your old BXRC files).
In this way, it would be far more probable that they officially support your changes, but in the primary form of a plugin interface. Then you could offer the interface you are showing now for shipping with Bochs in the default Plugins directory, as a plugin, or as a separate but near download at least.
Then I have some requests:
- That you can temporarily halt at runtime with the only action of reading or writing, when you write or read at specific I/O ports, processor registers (ANY of them) memory locations by writing a specific value to them that Bochs should watch for THAT SHOULD BE SPECIFIED BEFOREHAND (in a BXRC?), or maybe other ways you can think of. In this way, it would provide the possibility of using any normal ports (instead of a "Bochs debug port") and standard resources that would have no effect at all when run in a real machine.
- You could also specify different actions for different values (both specified by the developer) to a "debug variable" (maybe even small language-like script directives for this purpose?)
- That you can have an interface with all existing I/O ports, which shows whether they are read-only, write-only or read/write, and show its hex values and maybe a technical description of the register width (byte, word, dword, qword...) and its "standard" bit-field definitions (in case those ports were moved by the code running and don't belong anymore to the standard device location).
- That there's a memory dump at all times, that you can also modify when you halt temporally, etc., and with different views (disassembly interpreted as 16, 32 or 64, memory addresses shown, a column of hex values at the left and the ASCII characters at the right in rows of 16 characters, etc, just like HIEW program).
- A way to show how many CPU cycles an instruction, memory or I/O port access takes, or how much time a device delays for making bit-field or state changes (but I think this one maybe would not be very precise when emulated anyway, and that is unless such delays get investigated on real hardware and emulated as part of this Plugin, and with the possibility to configure in a range that makes sense according to the differences that there could exist on real hardware, IT WOULD BE VERY USEFUL TO EMULATE THE BEHAVIOR OF DIFFERENT MACHINES WITH THE SAME BOCHS).
- This maybe would be part of another plugin, but it would be good also to emulate different PCI devices for "testing" different virtual video, sound, network or other cards.
- I think that also a feature to fill empty RAM with random trash would be appreciated to override the zero-fill memory of Bochs and thus really see if a program still works correctly with a random memory environment in case of forgetting to initialize stuff and having the luck to have it in a zero-filled place.
_________________ Live PC 1: Live PC 2:
YouTube: http://youtube.com/@AltComp126/streams http://youtube.com/@proyectos/streams
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
Last edited by ~ on Fri Aug 21, 2009 10:41 pm, edited 1 time in total.
|