Simon E.
Simon E.

Reputation: 58460

Why does my 8XP program produce the error "Not enough free space on the calculator" when loaded into WabbitEmu?

I've written an 8XP program for my Texas TI-84 Plus calculator, but when attempting to load it into the WabbitEmu emulator, I see this error:

Not enough free space on the calculator

I've checked the available free space, and I definitely have enough space, so this does not appear to be the issue. I've also written numerous other programs that all loaded correctly – it's only this one that gives the error.

Is there something else that might trigger this error?

Upvotes: -2

Views: 106

Answers (1)

Simon E.
Simon E.

Reputation: 58460

So, firstly it's good to check that you definitely do have enough free space on your calculator/emulator, by pressing 2nd, MEM, 2, and checking the amount of RAM free. Delete programs using the DEL button to free up space.

But after doing that, you might continue to receive this error message.

After much troubleshooting and comparing the binary internals of this file with other working files, it appears that there might be a bug in WabbitEmu, presenting a false error message.

The bug appears to be triggered by a single byte inside the file metadata – the version flag, which is present at byte 0x44, highlighted in red, below.

HxD hex editor with 8XP file for analysis

(For more on the binary structure of 8XP files, see here.)

Most programs I've looked at have a version of 00, 04, 05, 06. I discovered that my program (written in TI Connect CE) had a version of 0B, for some reason.

Unfortunately WabbitEmu does not seem to support programs with a version above 06, and when it encounters those, it presents this error about "Not enough free space".

The three workarounds I discovered were:

  1. In TI Connect CE, remove sections of code one by one and resave, which sometimes updates the version byte to something else. This takes some trial and error.

  2. Manually update the byte in a hex editor. This seems to allow WabbitEmu to load the file, but will also invalidate the 2-byte checksum at the end of the file, and the file will present a warning when opened inside TI Connect CE. You can proceed, and I think TI Connect will generate a new checksum, however it's possible that the problem may eventually resurface after future edits to your program.

  3. Write a script which modifies the version byte and updates the checksum. This is what I eventually did. Maybe I'll release this script sometime soon.

Other TI Basic editors/compilers may not create this issue, but I haven't experimented with them.

Neither workaround is completely ideal, but since WabbitEmu is no longer under active development, bugs are likely to remain unfixed, and workarounds might be the best option we have.

Upvotes: -1

Related Questions