@Prodatron
I guess ep128emu is the best emulator. It can run on Linux and Windows too, it has debugger, and also you can do even tricky things by developing LUA scripts which can interact with the emulator. Also it can emulate some of the more modern hardwarers, like the IDE interface (not the SD-card one sadly, but as far as I can understand someone can even implement that without modifying the C++ source of the emulator itself in the form of developing LUA scripts to do ...). I've also written an Enterprise-128 emulator, which is a web based stuff (JSep, running inside the web browser written in Javascript) but it's highly experimental and it lacks any debug capabilities, so I wouldn't recommended it for developing something at least
Well, "I have symbOS kernel in C" is a big thing to say
What I basically did is simple, and was only to be able to execute cmdtest.com. It simply loads a SymExe10 format (and relocates, etc) to a 64K (no need banks etc, since all "system" is written in C) memory array used by the Z80 emulator. Then executing the Z80, entry points of RST vectors are handled by C code before returning to the Z80 emulator. Currently, I ignore any multitasking, modular, etc design of SymbOS, so what I do: if I get message 67 to process ID 7, I know it's a stringoutput message to symshell, so I simply print the text and I queue a message to ack the message from the app (id=195). If a message receive kernel RST couldn't find a suitable message in the queue it would exit that's all, because it's not a multitask system but a simple linear one only
The only motivation was to find out more information on SymbOS, not a very serious attempt to "re-implement" symbOS in C ... And sorry if I did some mistake describing SymbOS internals, but it's about two days I try to dig in symbOS so I am not yet a guru, far from it
Also, I haven't ever used SymbOS for real, only I saw some youtube videos
But since I am interested in internals of operating systems and also 8 bit stuffs, SymbOS seemed interesting enough to try to understand beyond the average user level.
But anyway, a more serious and precise implementation of as a "prototype-OS" is a good idea. I also did it with my some of my 65xx CPU projects. If you develop apps, it's easy to do mistakes. On a real hardware being 8 bit, without MMU etc, it's easy to mess up things an app should not touch, or things like this. With a prototype kernel implemented in C with the target CPU emulation you can make checks like memory protection etc, so it's much easier to catch errors you wouldn't be able to do so easily on a real hardware (because of the simplicity of such a hardware well at least compared to modern hardware ...).
Also one interesting idea I already had with GEOS operating system: if apps only signals the OS to draw GUI windows, controls etc, how mad would be to implement that OS in plain C (with some CPU emulator to run the application code!) and doing the GUI drawing primitives with a modern GUI toolkit! Then, you can run old GEOS apps with highly modern GUI controls with anti-aliased true-type fonts etc inside!
Maybe the same would be true for SymbOS as well as far as I can imagine. Well it wouldn't render Symvideos better
only toolkit elements of course.