The disassembly is of the original tape, loaded the way a Spectrum loads it: SkoolKit's
tap2sna runs the ROM's own LOAD and the tape's own loader on a simulated machine, and stops at
ENTRY, where the loader enters the game, before the game has run a single instruction. That matters here: the game turns its sprites round in place as things face about, rewriting their bytes and the flags in their headers, so an image taken once it has run is no longer the tape.
The tape holds a BASIC loader, the loading screen and four more blocks: the game, 34816 bytes loaded at 24576 ($6000); a 43-byte routine loaded into the printer buffer at
LOADER; one byte loaded into the system variable NMIADD at
NMIADD; and two into FRAMES at
FRAMES. The BASIC ends with
PRINT USR 23424, which runs the routine: it sets bit 7 of the R register, unscrambles the game block (each pair of bytes has a nibble swapped between them), moves it down to
ENTRY and jumps there.
All three of the small blocks are protection, and the game checks each: its start returns to BASIC unless FRAMES is where the tape put it (
START), every object is updated through a jump to the byte at NMIADD, which the tape set to
JP (HL) (
DISPATCH), and every new game resets the machine unless bit 7 of R is set, as the loader left it (
STOCK_BUILDINGS). The build does what the loader does to the tape's block itself and checks the result is what the snapshot holds.