The TransWarp IIgs ROM 1.8s Disassembly (and reassembly!)
This project is intended for educational purposes only.
The TransWarp GS was an accelerator card add-on for the Apple IIgs. This project features a complete dissassembly of the source code of the TransWarp IIgs ROM (v1.8s) which can be built into a 100% binary parity version using Merlin32.
You can build the source using Merlin32 directly in the
src/twgs_1.8s directory like
merlin32 -V . twgs.s
There's also a build script in the root folder called
build.sh but it expects
merlin32 to exist in your path so you'll need to set that up or modify the script to point to where it's located on your system. The advantage of running
./build.sh is that it checks the output binary and if everything matches it will tell you with the following message:
Binary is v1.8s compatible
You could always use
diff to check against the 1.8s ROM for differences in your output object file, but that only tells you that a difference exists. I find visual diff is very helpful for reassembling these binaries and have included a script I use, in unison with my
hihex command-line tool to visually diff the resultant binaries. If you don't have hihex, it should fall back to vimdiff with hexdum.
This project uses GitHub actions that I've published on the open marketplace to build the project and also verify the resulting binary. Now it can check the binary parity on every commit!
This was a quick release to get this shared out as a priority. Right now, I'd like to accept contributions that add to the documentation and/or disassembly, versus changes or enhancements. If you want to work on enhancements, I suggest you fork the project, add a branch, add a separate version folder in both
src directories. Then if you have a new version you'd like to contribute back you can submit a pull request of that branch to this project.
There's no way I would've been able to get this far with the contributions of the following stellar technologists:
Henry Courbis, Anthoni Martino, Antoine Vignau, Geoff Body, Ferox (The Flaming Bird Disassembler), Ewan Wanop (BrkDown)