@Tsargon
Basically, it works until I attempt to exit the program. When I do, I get a recoverable software error of 0100 000F followed immediately by an unrecoverable software error of 8100 0005. I know the x100 0005 means a corrupted memory list, but what does x100 000F mean?
0x0100000F is AN_BadFreeAddr, basically FreeMem was called with invalid pointer
or system memory lists have been corrupted in a way that makes the test return error for valid pointer. Considering the very next alert is AN_MemCorrupt, it looks as if the program would trash some memory.
If you feel bored, try MungWall 37.71 or
Wipeout. If it's simple memory trashing, these tools should notice it.