The external device interface is defined in the module/ directory. The VM has a dedicated thread to manage all external devices (this way simulating the separation and individuality of external devices). Each device must implement a IsBusy() bool function and Handle(mm *[]builtin.Word) handle function which operates directly on the VM memory.
An external module has "device registers" mapped to the main memory.
Each device is free to do whatever it wants inside the Handle functions.
One option for the GUI is to attache each device to a stdout or have a nice web interface?
The external device interface is defined in the
module/directory. The VM has a dedicated thread to manage all external devices (this way simulating the separation and individuality of external devices). Each device must implement aIsBusy() boolfunction andHandle(mm *[]builtin.Word)handle function which operates directly on the VM memory.An external module has "device registers" mapped to the main memory.
Each device is free to do whatever it wants inside the
Handlefunctions.One option for the GUI is to attache each device to a
stdoutor have a nice web interface?