Micromega
Braxx Bluff
version 1.1: Kentilla, Jasper
version 1.2: Jasper (PCG)
version 1.5: A Day in the Life

Some of the values are only approximate.

The first two blocks (loader):
PILOT 8063x[P 1739] (header) or 3223x[P 1739] (data)
SYNC standard P 667, P 735
DATA standard
  bit 0 = DP 855
  bit 1 = DP 1710
  FLAG BYTE #00 (header) or #ff (data)
  PARITY BYTE present

version 1, 1.1, 1.2 subblocks:
PILOT 8063x[P 1739] (header) or 3223x[P 1739] (data)
SYNC standard P 667, P 735
DATA
  subblock type 0
    bit 0 = DP 647
    bit 1 = DP 1294
  subblock type 1
    bit 0 = DP 855 (standard)
    bit 1 = DP 1710 (standard)
  subblock type 2
    bit 0 = DP 673
    bit 1 = DP 1346
  FLAG BYTE #00 (header) or #ff (data)
  PARITY BYTE present

Logical structure of the block:
header1 (subblock type 1) length 16
  offset 00 type (#03) (unused)
  offset 01 name
  offset 0B total length of the data (unused)
  offset 0D start of the first datablock
  offset 0F number of datablocks N
data1 (subblock type 0) length 3510, the datablocks overlap (the actual lenght of the data is 3500)
data2 (subblock type 1) length 3510
data3 (subblock type 2) length 3510
data4 (subblock type 0) length 3510
...
dataN (subblock type (N-1) mod 3) length 3510
header2 (subblock type N mod 3) length 16
  offset 00 type (#03) (unused)
  offset 01 name
  offset 0B length of the last datablock
  offset 0D start of the first datablock (unused)
  offset 0F number of datablocks N (unused)
data(N+1) (subblock type (N+1) mod 3)

version 1.1: using only types 1,2 (header1 - type 1, data1 - type 2 etc.)
version 1.2: using only type 2

version 1.5 subblocks:
PILOT 3223x[P 1739]
SYNC standard P 667, P 735
DATA
  subblock type 0
    bit 0 = DP 855 (standard)
    bit 1 = DP 1710 (standard)
  subblock type 1
    bit 0 = DP 673
    bit 1 = DP 1346
  FLAG BYTE #ff
  PARITY BYTE present

Logical structure of the version 1.5 block:
header1 (subblock type 1) length 19
  offset 00 name
  offset 0A #20 (unused)
  offset 0B number of the subblocks
  offset 0C subblock number
  offset 0D length of the last subblock (unused)
  offset 0F start of the first subblock
  offset 11 start of the last subblock (unused)
data1 (subblock type 1) length 3510, the datablocks overlap (the actual lenght of the data is 3500)
header2 (subblock type 0) length 19
data2 (subblock type 0) length 3510
header3 (subblock type 1) length 19
data3 (subblock type 1) length 3510
...
headerN (subblock type N mod 2) length 19
dataN (subblock type N mod 2) length 3510
header(N+1) (subblock type (N+1) mod 2) length 19
  offset 00 name
  offset 0A #20 (unused)
  offset 0B number of the subblocks
  offset 0C subblock number
  offset 0D length of the last subblock
  offset 0F start of the first subblock (unused)
  offset 11 start of the last subblock
data(N+1) (subblock type (N+1) mod 2)


The loading routine:
 F6E0 210000     LD   HL,+0000
 F6E3 220FF7     LD   (F70F),HL
 F6E6 2113F7     LD   HL,+F713
 F6E9 220DF7     LD   (F70D),HL
 F6EC 7E         LD   A,(HL)
 F6ED 5F         LD   E,A
 F6EE 1600       LD   D,+00
 F6F0 2A0FF7     LD   HL,(F70F)
 F6F3 19         ADD  HL,DE
 F6F4 220FF7     LD   (F70F),HL
 F6F7 2A0DF7     LD   HL,(F70D)
 F6FA 112AF9     LD   DE,+F92A
 F6FD 37         SCF
 F6FE 3F         CCF
 F6FF ED52       SBC  HL,DE
 F701 CA70F7     JP   Z,F770
 F704 2A0DF7     LD   HL,(F70D)
 F707 23         INC  HL
 F708 220DF7     LD   (F70D),HL
 F70B 18DF       JR   F6EC
 F70D 00         DW   0
 F70F 00         DW   0				;checksum f713..f92a
 F711 1C00       DW   +1C			;expected checksum
 F713 00         DB   0
 F714 15         DB   +15,+C5,+C7,+DA,+C5	;timing constants
 F719 16         DB   +16,+B0,+B2,+CB,+B0
 F71E 15         DB   +15,+C2,+C4,+D8,+C2
 F723 3A13F7     LD   A,(F713)
 F726 FE00       CP   +00
 F728 CA3BF7     JP   Z,F73B
 F72B FE01       CP   +01
 F72D CA49F7     JP   Z,F749
 F730 AF         XOR  A
 F731 3213F7     LD   (F713),A
 F734 211EF7     LD   HL,+F71E
 F737 CD57F7     CALL F757
 F73A C9         RET
 F73B 2114F7     LD   HL,+F714
 F73E CD57F7     CALL F757
 F741 3A13F7     LD   A,(F713)
 F744 3C         INC  A
 F745 3213F7     LD   (F713),A
 F748 C9         RET
 F749 2119F7     LD   HL,+F719
 F74C CD57F7     CALL F757
 F74F 3A13F7     LD   A,(F713)
 F752 3C         INC  A
 F753 3213F7     LD   (F713),A
 F756 C9         RET
 F757 7E         LD   A,(HL)			;set timing constants
 F758 3295F8     LD   (F895),A
 F75B 23         INC  HL
 F75C 7E         LD   A,(HL)
 F75D 3253F8     LD   (F853),A
 F760 23         INC  HL
 F761 7E         LD   A,(HL)
 F762 3274F8     LD   (F874),A
 F765 23         INC  HL
 F766 7E         LD   A,(HL)
 F767 327CF8     LD   (F87C),A
 F76A 23         INC  HL
 F76B 7E         LD   A,(HL)
 F76C 3281F8     LD   (F881),A
 F76F C9         RET
 F770 CD49F7     CALL F749
 F773 DD21B4F8   LD   IX,+F8B4
 F777 111000     LD   DE,+0010
 F77A AF         XOR  A
 F77B 37         SCF
 F77C CDF1F7     CALL F7F1
 F77F D20000     JP   NC,0000,START
 F782 AF         XOR  A
 F783 3213F7     LD   (F713),A
 F786 CD23F7     CALL F723
 F789 DD2AC1F8   LD   IX,(F8C1)
 F78D DD22C8F8   LD   (F8C8),IX
 F791 AF         XOR  A
 F792 32CAF8     LD   (F8CA),A
 F795 3AC3F8     LD   A,(F8C3)
 F798 47         LD   B,A
 F799 C5         PUSH BC
 F79A CDDAF8     CALL F8DA
 F79D 11B60D     LD   DE,+0DB6
 F7A0 DD2AC8F8   LD   IX,(F8C8)
 F7A4 3EFF       LD   A,+FF
 F7A6 37         SCF
 F7A7 CDF1F7     CALL F7F1
 F7AA D20000     JP   NC,0000,START
 F7AD CD23F7     CALL F723
 F7B0 FB         EI
 F7B1 2AC8F8     LD   HL,(F8C8)
 F7B4 11AC0D     LD   DE,+0DAC
 F7B7 19         ADD  HL,DE
 F7B8 22C8F8     LD   (F8C8),HL
 F7BB C1         POP  BC
 F7BC 10DB       DJNZ F799
 F7BE 3ACAF8     LD   A,(F8CA)
 F7C1 3D         DEC  A
 F7C2 32CAF8     LD   (F8CA),A
 F7C5 CDDAF8     CALL F8DA
 F7C8 DD21B4F8   LD   IX,+F8B4
 F7CC 111000     LD   DE,+0010
 F7CF AF         XOR  A
 F7D0 37         SCF
 F7D1 CDF1F7     CALL F7F1
 F7D4 D20000     JP   NC,0000,START
 F7D7 CD23F7     CALL F723
 F7DA CDDAF8     CALL F8DA
 F7DD DD2AC8F8   LD   IX,(F8C8)
 F7E1 ED5BBFF8   LD   DE,(F8BF)
 F7E5 3EFF       LD   A,+FF
 F7E7 37         SCF
 F7E8 CDF1F7     CALL F7F1
 F7EB D20000     JP   NC,0000,START
 F7EE C3B671     JP   71B6
 F7F1 D5         PUSH DE			;LD-BYTES
 F7F2 F5         PUSH AF
 F7F3 2A11F7     LD   HL,(F711)
 F7F6 ED5B0FF7   LD   DE,(F70F)
 F7FA 37         SCF
 F7FB 3F         CCF
 F7FC ED52       SBC  HL,DE
 F7FE C20000     JP   NZ,0000,START
 F801 F1         POP  AF
 F802 D1         POP  DE
 F803 14         INC  D
 F804 08         EX   AF,AF'
 F805 15         DEC  D
 F806 F3         DI
 F807 3E01       LD   A,+01
 F809 D3FE       OUT  (+FE),A
 F80B 213F05     LD   HL,+053F
 F80E E5         PUSH HL
 F80F DBFE       IN   A,(+FE)
 F811 1F         RRA
 F812 E620       AND  +20
 F814 F602       OR   +02
 F816 4F         LD   C,A
 F817 BF         CP   A
 F818 C0         RET  NZ
 F819 CD94F8     CALL F894
 F81C 30FA       JR   NC,F818
 F81E 211504     LD   HL,+0415
 F821 10FE       DJNZ F821
 F823 2B         DEC  HL
 F824 7C         LD   A,H
 F825 B5         OR   L
 F826 20F9       JR   NZ,F821
 F828 CD90F8     CALL F890
 F82B 30EB       JR   NC,F818
 F82D 069C       LD   B,+9C
 F82F CD90F8     CALL F890
 F832 30E4       JR   NC,F818
 F834 3EA6       LD   A,+A6			;+C6 in ROM
 F836 B8         CP   B
 F837 30E0       JR   NC,F819
 F839 24         INC  H
 F83A 20F1       JR   NZ,F82D
 F83C 06C9       LD   B,+C9
 F83E CD94F8     CALL F894
 F841 30D5       JR   NC,F818
 F843 78         LD   A,B
 F844 FED4       CP   +D4
 F846 30F4       JR   NC,F83C
 F848 CD94F8     CALL F894
 F84B D0         RET  NC
 F84C 79         LD   A,C
 F84D EE03       XOR  +03
 F84F 4F         LD   C,A
 F850 2600       LD   H,+00
 F852 06B0       LD   B,+B0
 F854 181F       JR   F875
 F856 08         EX   AF,AF'
 F857 2007       JR   NZ,F860
 F859 300F       JR   NC,F86A
 F85B DD7500     LD   (IX+00),L
 F85E 180F       JR   F86F
 F860 CB11       RL   C
 F862 AD         XOR  L
 F863 C0         RET  NZ
 F864 79         LD   A,C
 F865 1F         RRA
 F866 4F         LD   C,A
 F867 13         INC  DE
 F868 1807       JR   F871
 F86A DD7E00     LD   A,(IX+00)
 F86D AD         XOR  L
 F86E C0         RET  NZ
 F86F DD23       INC  IX
 F871 1B         DEC  DE
 F872 08         EX   AF,AF'
 F873 06B2       LD   B,+B2
 F875 2E01       LD   L,+01
 F877 CD90F8     CALL F890
 F87A D0         RET  NC
 F87B 3ECB       LD   A,+CB
 F87D B8         CP   B
 F87E CB15       RL   L
 F880 06B0       LD   B,+B0
 F882 D277F8     JP   NC,F877
 F885 7C         LD   A,H
 F886 AD         XOR  L
 F887 67         LD   H,A
 F888 7A         LD   A,D
 F889 B3         OR   E
 F88A 20CA       JR   NZ,F856
 F88C 7C         LD   A,H
 F88D FE01       CP   +01
 F88F C9         RET
 F890 CD94F8     CALL F894
 F893 D0         RET  NC
 F894 3E16       LD   A,+16
 F896 3D         DEC  A
 F897 20FD       JR   NZ,F896
 F899 A7         AND  A
 F89A 04         INC  B
 F89B C8         RET  Z
 F89C 3EFF       LD   A,+FF
 F89E DBFE       IN   A,(+FE)
 F8A0 1F         RRA
 F8A1 D0         RET  NC
 F8A2 A9         XOR  C
 F8A3 E620       AND  +20
 F8A5 28F3       JR   Z,F89A
 F8A7 79         LD   A,C
 F8A8 2F         CPL
 F8A9 4F         LD   C,A
 F8AA 3E01       LD   A,+01
 F8AC E607       AND  +07
 F8AE F608       OR   +08
 F8B0 D3FE       OUT  (+FE),A
 F8B2 37         SCF
 F8B3 C9         RET
 F8B4 00         DB   0				;header
 F8B5 00         DS   10			; name
 F8BF 0000       DW   0				; total length of the data/lenth of the last block
 F8C1 0000       DW   0				; start of the first block
 F8C3 00         DB   0				; number of blocks
 F8C4 00         DS   4
 F8C8 0000       DW   0				;block start
 F8CA 00         DB   0				;block number
 F8CB 16         DB   AT,0,0,"Loading:-",AT,1,0
 F8DA 3E01       LD   A,1
 F8DC CD0116     CALL +1601,CHAN_OPEN
 F8DF 010F00     LD   BC,+000F
 F8E2 11CBF8     LD   DE,+F8CB
 F8E5 CD3D20     CALL 203D
 F8E8 010A00     LD   BC,+000A
 F8EB 11B5F8     LD   DE,+F8B5
 F8EE CD3D20     CALL 203D
 F8F1 3E20       LD   A,+20
 F8F3 D7         RST  0010,PRINT_A_1
 F8F4 3E20       LD   A,+20
 F8F6 D7         RST  0010,PRINT_A_1
 F8F7 3ACAF8     LD   A,(F8CA)
 F8FA F5         PUSH AF
 F8FB CD0AF9     CALL F90A
 F8FE F1         POP  AF
 F8FF CD1CF9     CALL F91C
 F902 3ACAF8     LD   A,(F8CA)
 F905 3C         INC  A
 F906 32CAF8     LD   (F8CA),A
 F909 C9         RET
 F90A CB3F       SRL  A
 F90C CB3F       SRL  A
 F90E CB3F       SRL  A
 F910 CB3F       SRL  A
 F912 FE0A       CP   +0A
 F914 3802       JR   C,F918
 F916 C607       ADD  A,+07
 F918 C630       ADD  A,+30
 F91A D7         RST  0010,PRINT_A_1
 F91B C9         RET
 F91C E60F       AND  +0F
 F91E 18F2       JR   F912

Version 1.5 loading routine:
 FC5A 210000     LD   HL,+0000
 FC5D 2258FC     LD   (FC58),HL
 FC60 218AFC     LD   HL,+FC8A
 FC63 2286FC     LD   (FC86),HL
 FC66 7E         LD   A,(HL)
 FC67 5F         LD   E,A
 FC68 1600       LD   D,+00
 FC6A 2A58FC     LD   HL,(FC58)
 FC6D 19         ADD  HL,DE
 FC6E 2258FC     LD   (FC58),HL
 FC71 2A86FC     LD   HL,(FC86)
 FC74 115DFF     LD   DE,+FF5D
 FC77 A7         AND  A
 FC78 ED52       SBC  HL,DE
 FC7A CAFDFC     JP   Z,FCFD
 FC7D 2A86FC     LD   HL,(FC86)
 FC80 23         INC  HL
 FC81 2286FC     LD   (FC86),HL
 FC84 18E0       JR   FC66
 FC86 0000       dw   0
 FC88 6141       dw   #4161
 FC8A 00         db   00		;the number of the subblock to load
 FC8B FF         db   +FF
 FC8C		 ds   10		;header - name
 FC96            db			; #20
 FC97            db			; number of the subblocks
 FC98            db			; subblock number
 FC99		 dw			; lenght of the last block
 FC9B            dw			; start of the block
 FC9D            dw			; start of the last block
 FC9F            db   00
 FCA0 FF	 db   +FF
 FCA1            ds   19		;copy of the header (for reloading)
 FCB4            db   00
 FCB5 0000       dw   00		;addr of the active header
 FCB7 0000       dw   0000		;start addr of the block to load
 FCB9 00         db   00		;1=reload block
 FCBA 160000     db   "Loading:-"
 FCC9 160000     db   "Searching:-"
 FCDA 160000     db   "Found:-"
 FCE7 160010     db   "ERRON ON BLOCK:-"
 FCFD 31FFFF     LD   SP,+FFFF
 FD00 CD69FE     CALL FE69
 FD03 AF         XOR  A
 FD04 32B9FC     LD   (FCB9),A
 FD07 3E01       LD   A,+01
 FD09 CD0116     CALL 1601,CHAN_OPEN
 FD0C 011100     LD   BC,+0011
 FD0F 11C9FC     LD   DE,+FCC9
 FD12 CD3D20     CALL 203D
 FD15 AF         XOR  A
 FD16 328AFC     LD   (FC8A),A
 FD19 CD91FD     CALL FD91
 FD1C DD2A9BFC   LD   IX,(FC9B)
 FD20 DD22B7FC   LD   (FCB7),IX
 FD24 3A97FC     LD   A,(FC97)
 FD27 FE01       CP   +01
 FD29 2800       JR   Z,FD2B
 FD2B 47         LD   B,A
 FD2C C5         PUSH BC
 FD2D 1804       JR   FD33
 FD2F C5         PUSH BC
 FD30 CD91FD     CALL FD91
 FD33 11B60D     LD   DE,+0DB6
 FD36 DD2AB7FC   LD   IX,(FCB7)
 FD3A 3EFF       LD   A,+FF
 FD3C 37         SCF
 FD3D CD9BFE     CALL FE9B
 FD40 FB         EI
 FD41 302D       JR   NC,FD70
 FD43 2AB7FC     LD   HL,(FCB7)
 FD46 11AC0D     LD   DE,+0DAC
 FD49 19         ADD  HL,DE
 FD4A 22B7FC     LD   (FCB7),HL
 FD4D 3A8AFC     LD   A,(FC8A)
 FD50 3C         INC  A
 FD51 328AFC     LD   (FC8A),A
 FD54 CD61FE     CALL FE61
 FD57 C1         POP  BC
 FD58 10D5       DJNZ FD2F
 FD5A CD91FD     CALL FD91
 FD5D DD2A9DFC   LD   IX,(FC9D)
 FD61 ED5B99FC   LD   DE,(FC99)
 FD65 3EFF       LD   A,+FF
 FD67 37         SCF
 FD68 CD9BFE     CALL FE9B
 FD6B 3003       JR   NC,FD70
 FD6D C3409C     JP   9C40
 FD70 3E01       LD   A,+01
 FD72 32B9FC     LD   (FCB9),A
 FD75 218CFC     LD   HL,+FC8C
 FD78 11A1FC     LD   DE,+FCA1
 FD7B 011300     LD   BC,+0013
 FD7E EDB0       LDIR
 FD80 CDC9FD     CALL FDC9
 FD83 CD49FE     CALL FE49
 FD86 21ACFC     LD   HL,+FCAC
 FD89 3A98FC     LD   A,(FC98)
 FD8C BE         CP   (HL)
 FD8D 20A1       JR   NZ,FD30
 FD8F 18C9       JR   FD5A
 FD91 DD218CFC   LD   IX,+FC8C
 FD95 111300     LD   DE,+0013
 FD98 3EFF       LD   A,+FF
 FD9A 37         SCF
 FD9B CD9BFE     CALL FE9B
 FD9E 30F1       JR   NC,FD91
 FDA0 0602       LD   B,+02
 FDA2 CD440E     CALL 0E44,CL_LINE
 FDA5 3AB9FC     LD   A,(FCB9)
 FDA8 A7         AND  A
 FDA9 2833       JR   Z,FDDE
 FDAB 0611       LD   B,+11
 FDAD 21A0FC     LD   HL,+FCA0
 FDB0 118BFC     LD   DE,+FC8B
 FDB3 1A         LD   A,(DE)
 FDB4 BE         CP   (HL)
 FDB5 203C       JR   NZ,FDF3
 FDB7 13         INC  DE
 FDB8 23         INC  HL
 FDB9 10F8       DJNZ FDB3
 FDBB 3AADFC     LD   A,(FCAD)
 FDBE 2198FC     LD   HL,+FC98
 FDC1 BE         CP   (HL)
 FDC2 2816       JR   Z,FDDA
 FDC4 CDC9FD     CALL FDC9
 FDC7 1815       JR   FDDE
 FDC9 011600     LD   BC,+0016
 FDCC 11E7FC     LD   DE,+FCE7
 FDCF CD3D20     CALL 203D
 FDD2 DD21A1FC   LD   IX,+FCA1
 FDD6 CD10FE     CALL FE10
 FDD9 C9         RET
 FDDA AF         XOR  A
 FDDB 32B9FC     LD   (FCB9),A
 FDDE 3A8AFC     LD   A,(FC8A)
 FDE1 2198FC     LD   HL,+FC98
 FDE4 BE         CP   (HL)
 FDE5 200C       JR   NZ,FDF3
 FDE7 010F00     LD   BC,+000F
 FDEA 11BAFC     LD   DE,+FCBA
 FDED CD3D20     CALL 203D
 FDF0 181A       JR   FE0C
 FDF2 C9         RET
 FDF3 3AB9FC     LD   A,(FCB9)
 FDF6 FE00       CP   +00
 FDF8 C4C9FD     CALL NZ,FDC9
 FDFB 010D00     LD   BC,+000D
 FDFE 11DAFC     LD   DE,+FCDA
 FE01 CD3D20     CALL 203D
 FE04 CD0CFE     CALL FE0C
 FE07 CD49FE     CALL FE49
 FE0A 1885       JR   FD91
 FE0C DD218CFC   LD   IX,+FC8C
 FE10 DD22B5FC   LD   (FCB5),IX
 FE14 010A00     LD   BC,+000A
 FE17 ED5BB5FC   LD   DE,(FCB5)
 FE1B CD3D20     CALL 203D
 FE1E 3E20       LD   A,+20
 FE20 D7         RST  0010,PRINT_A_1
 FE21 3E20       LD   A,+20
 FE23 D7         RST  0010,PRINT_A_1
 FE24 2AB5FC     LD   HL,(FCB5)
 FE27 110C00     LD   DE,+000C
 FE2A 19         ADD  HL,DE
 FE2B 7E         LD   A,(HL)
 FE2C F5         PUSH AF
 FE2D CD33FE     CALL FE33
 FE30 F1         POP  AF
 FE31 1812       JR   FE45
 FE33 CB3F       SRL  A
 FE35 CB3F       SRL  A
 FE37 CB3F       SRL  A
 FE39 CB3F       SRL  A
 FE3B FE0A       CP   +0A
 FE3D 3802       JR   C,FE41
 FE3F C607       ADD  A,+07
 FE41 C630       ADD  A,+30
 FE43 D7         RST  0010,PRINT_A_1
 FE44 C9         RET
 FE45 E60F       AND  +0F
 FE47 18F2       JR   FE3B
 FE49 06AA       LD   B,+AA
 FE4B C5         PUSH BC
 FE4C 78         LD   A,B
 FE4D 0F         RRCA
 FE4E D3FE       OUT  (+FE),A
 FE50 10FB       DJNZ FE4D
 FE52 C1         POP  BC
 FE53 10F6       DJNZ FE4B
 FE55 C9         RET
 FE56 00         db   00
 FE57 16B0       db   +16,+b0,+b2,+cb,+b0
 FE5C 15c2       db   +15,+c2,+c4,+d8,+c2
 FE61 3A56FE     LD   A,(FE56)
 FE64 FE00       CP   0
 FE66 CA74FE     JP   Z,FE74
 FE69 AF         XOR  A
 FE6A 3256FE     LD   (FE56),A
 FE6D 215CFE     LD   HL,+FE5C
 FE70 CD82FE     CALL FE82
 FE73 C9         RET
 FE74 2157FE     LD   HL,+FE57
 FE77 CD82FE     CALL FE82
 FE7A 3A56FE     LD   A,(FE56)
 FE7D 3C         INC  A
 FE7E 3256FE     LD   (FE56),A
 FE81 C9         RET
 FE82 7E         LD   A,(HL)
 FE83 323EFF     LD   (FF3E),A
 FE86 23         INC  HL
 FE87 7E         LD   A,(HL)
 FE88 32FCFE     LD   (FEFC),A
 FE8B 23         INC  HL
 FE8C 7E         LD   A,(HL)
 FE8D 321DFF     LD   (FF1D),A
 FE90 23         INC  HL
 FE91 7E         LD   A,(HL)
 FE92 3225FF     LD   (FF25),A
 FE95 23         INC  HL
 FE96 7E         LD   A,(HL)
 FE97 322AFF     LD   (FF2A),A
 FE9A C9         RET
 FE9B D5         PUSH DE               ;LD_BYTES
 FE9C F5         PUSH AF
 FE9D 2A88FC     LD   HL,(FC88)
 FEA0 ED5B58FC   LD   DE,(FC58)
 FEA4 37         SCF
 FEA5 3F         CCF
 FEA6 ED52       SBC  HL,DE
 FEA8 C20000     JP   NZ,0000,START
 FEAB F1         POP  AF
 FEAC D1         POP  DE
 FEAD 14         INC  D
 FEAE 08         EX   AF,AF'
 FEAF 15         DEC  D
 FEB0 F3         DI
 FEB1 3E01       LD   A,+01
 FEB3 D3FE       OUT  (+FE),A
 FEB5 213F05     LD   HL,+053F
 FEB8 DBFE       IN   A,(+FE)
 FEBA 1F         RRA
 FEBB E620       AND  +20
 FEBD F602       OR   +02
 FEBF 4F         LD   C,A
 FEC0 BF         CP   A
 FEC1 C0         RET  NZ
 FEC2 CD3DFF     CALL FF3D
 FEC5 30FA       JR   NC,FEC1
 FEC7 211504     LD   HL,+0415
 FECA 10FE       DJNZ FECA
 FECC 2B         DEC  HL
 FECD 7C         LD   A,H
 FECE B5         OR   L
 FECF 20F9       JR   NZ,FECA
 FED1 CD39FF     CALL FF39
 FED4 30EB       JR   NC,FEC1
 FED6 069C       LD   B,+9C
 FED8 CD39FF     CALL FF39
 FEDB 30E4       JR   NC,FEC1
 FEDD 3EA6       LD   A,+A6
 FEDF B8         CP   B
 FEE0 30E0       JR   NC,FEC2
 FEE2 24         INC  H
 FEE3 20F1       JR   NZ,FED6
 FEE5 06C9       LD   B,+C9
 FEE7 CD3DFF     CALL FF3D
 FEEA 30D5       JR   NC,FEC1
 FEEC 78         LD   A,B
 FEED FED4       CP   +D4
 FEEF 30F4       JR   NC,FEE5
 FEF1 CD3DFF     CALL FF3D
 FEF4 D0         RET  NC
 FEF5 79         LD   A,C
 FEF6 EE03       XOR  +03
 FEF8 4F         LD   C,A
 FEF9 2600       LD   H,+00
 FEFB 06B0       LD   B,+B0
 FEFD 181F       JR   FF1E
 FEFF 08         EX   AF,AF'
 FF00 2007       JR   NZ,FF09
 FF02 300F       JR   NC,FF13
 FF04 DD7500     LD   (IX+00),L
 FF07 180F       JR   FF18
 FF09 CB11       RL   C
 FF0B AD         XOR  L
 FF0C C0         RET  NZ
 FF0D 79         LD   A,C
 FF0E 1F         RRA
 FF0F 4F         LD   C,A
 FF10 13         INC  DE
 FF11 1807       JR   FF1A
 FF13 DD7E00     LD   A,(IX+00)
 FF16 AD         XOR  L
 FF17 C0         RET  NZ
 FF18 DD23       INC  IX
 FF1A 1B         DEC  DE
 FF1B 08         EX   AF,AF'
 FF1C 06B2       LD   B,+B2
 FF1E 2E01       LD   L,+01
 FF20 CD39FF     CALL FF39
 FF23 D0         RET  NC
 FF24 3ECB       LD   A,+CB
 FF26 B8         CP   B
 FF27 CB15       RL   L
 FF29 06B0       LD   B,+B0
 FF2B D220FF     JP   NC,FF20
 FF2E 7C         LD   A,H
 FF2F AD         XOR  L
 FF30 67         LD   H,A
 FF31 7A         LD   A,D
 FF32 B3         OR   E
 FF33 20CA       JR   NZ,FEFF
 FF35 7C         LD   A,H
 FF36 FE01       CP   +01
 FF38 C9         RET
 FF39 CD3DFF     CALL FF3D
 FF3C D0         RET  NC
 FF3D 3E16       LD   A,+16
 FF3F 3D         DEC  A
 FF40 20FD       JR   NZ,FF3F
 FF42 A7         AND  A
 FF43 04         INC  B
 FF44 C8         RET  Z
 FF45 3EFF       LD   A,+FF
 FF47 DBFE       IN   A,(+FE)
 FF49 1F         RRA
 FF4A D0         RET  NC
 FF4B A9         XOR  C
 FF4C E620       AND  +20
 FF4E 28F3       JR   Z,FF43
 FF50 79         LD   A,C
 FF51 2F         CPL
 FF52 4F         LD   C,A
 FF53 3E01       LD   A,+01
 FF55 E607       AND  +07
 FF57 F608       OR   +08
 FF59 D3FE       OUT  (+FE),A
 FF5B 37         SCF
 FF5C C9         RET