Check Out “Akalabeth 128”, A Commodore 128 Port of “Akalabeth”
When he isn’t working on upgrading old NES games, Fox Cunning dabbles in other projects involving retro games (and retro hardware, for that matter); a cursory glance at his Twitter profile will reveal a showcase of early-80s electronic nostalgia.
One of his more recent passion projects, released just last month, was a port of Akalabeth to the Commodore 128:
This is a single-file almost line-by-line conversion of the original Apple II source found here: https://archive.org/details/a2_Akalabeth_1980_California_Pacific_Computer_a
There are already better conversions for the Commodore 64, but the purpose of this exercise was not to compete with them. Instead, noting the similarities between the two versions of BASIC, the goal was simply to create a conversion that was as close to the original code as possible.
One of the main differences is that AppleSoft BASIC lets you move the cursor and output characters outside of the “text window”. The way around that is to change the window every time instead (e.g. lines 60237, 60240). Also, when the bitmap screen in split mode is cleared, the current text window is also cleared. To prevent that, a dummy window is defined before clearing the bitmap screen (lines 1097, 1098).
MS BASIC also does not have a command to move the cursor to an arbitrary position that corrisponds to the VTAB()/HTAB() commands of AppleSoft BASIC. Luckily there is a Kernal routine to do exactly that (line 5 sets up the “pointer”). BASIC v7.0 also has the CHAR command, which can be used with an empty string to the same effect, but that would be slightly slower.
You can find disk image and source code downloads at Fox’s GitHub profile, or at the newly-created project entry here at the Codex.