I realized that my new way of loading gt1 files is silly. It relies on tracking calls to SYS_Exec to intercept the reset sequence just before executing the main menu. Instead I implant a little piece of code that involves the loader. This is silly because I can just implant the GT1 file we want to load and totally circumvent the loader in a much more portable manner.
So I changed it again. The new version loads GT1 files instantly and much more robustly. In the code,
https://github.com/lb3361/gigatron-rom/ ... runjs/html, the file loader.js is a link to either loader_d.js, the direct loader that directly writes the gt1 file into the ram, and loader_l.js, the old code that runs the main menu and invokes the loader by simulating button presses. I keep the old one working because it helps debugging loader stuff. But the default one is the direct loader, much simpler and much smaller...
All together than makes for a quite versatile online emulator. It can run any rom, It can mount FAT32 formatted disk images as virtual SPI SD Cards, and it can instantly load arbitrary gt1 files. It runs on
www.gigatron128k.com but can easily run on anywhere (the code is at
https://github.com/lb3361/gigatron-rom/ ... runjs/html).
You may have to clear the browser cache to get the latest version.
Examples of gt1 files running under dev128k7.rom which is the default in
http://www.gigatron128k.com:
Then you can load another ROM such as ROMv6.rom from
https://github.com/kervinck/gigatron-rom using the same dialog. Note that there is a trick to prevent it from booting from the SPI card when just loaded. If you want to boot ROMv6.rom from the SPI card, you have to make sure the vhd is mounted and long-press the start button to reset the gigatron (using the currently loaded ROM.)