Galaxy Jailbreak

Galaxy Jailbreak Inlay
Details
Year: 1981
RAM: 16K
Ref: G2003
Files
"GALAXY JAILBREAK"
Downloads
Inlay scans
Cassette photos
Program files
Galaxy Jailbreak Screenshot

Notes

A bug exists in at least some batches of cassettes where corruption randomly occurs within the top and bottom border areas. This is due to a CALL at location $4224 incorrectly specifying $C606 instead of $4606, i.e. it calls the the mirror copy 32K higher in the memory map.

The routine at $4606 is as follows:

  $4606  E5        PUSH HL
  $4607  D5        PUSH DE
  $4608  ED5B3340  LD DE,($4033)
  $460C  2A3240    LD HL,(SEED)
  $460F  19        ADD HL,DE
  $4610  223240    LD (SEED),HL
  $4613  7D        LD A,L
  $4614  D1        POP DE
  $4615  E1        POP HL
  $4616  C9        RET

Since the routine executes from memory that has address line 15 set, any instruction opcodes where data bit 6 is reset are interpreted as video data and hence results in pixel data being output. Although a random mix of bit patterns appears to occur in the border areas, these are all due to the same character codes being output into the video stream and it is the value of the hardware scan line counter that determines which pattern is visible. As a result, there can only be 8 different corruption patterns.

The routine actually executed as follows:

  $C606  E5        PUSH HL
  $C607  D5        PUSH DE
  $C608  ED5B3340  LD DE,($4033)
  $C60C  2A        NOP
  $C60D  32        NOP
  $C60E  40        LD B,B
  $C60F  19        NOP
  $C610  22        NOP
  $C611  32        NOP
  $C612  40        LD B,B
  $C613  7D        LD A,L
  $C614  D1        POP DE
  $C615  E1        POP HL
  $C616  C9        RET

The routine controls the random selection of the direction that the captured Generals move in. The routine is called correctly from 6 other locations and so the Generals still appear to move correctly.