Gremlin 2
Basil the Great Mouse Detective
version 2.5: Mask

Some of the values are only approximate.

version 2:
PILOT standard 1024x[P 2670]
SYNC 10x[DP 630]
SPEED DETECTION 128x[DP 1260, DP 630]
DATA
  bit 0 = DP 630
  bit 1 = DP 1260
  FLAG BYTE present
  first two bytes - length of the block
  PARITY WORD 16 bit ADD
dummy DP 1260

version 2.5:
PILOT standard 1024x[P 2670]
SYNC 10x[DP 690]
SPEED DETECTION 128x[DP 1380, DP 690]
DATA
  bit 0 = DP 690
  bit 1 = DP 1380
  FLAG BYTE present
  first two bytes - length of the block
  MID SYNC - 4 bits 0001
    at the 16B boundary of the remaining bytes and before the parity word
  PARITY WORD 16 bit ADD
dummy DP 1380

Warning - due to the wrong concept of the loading routine (it detects the falling edge), all the double pulses must start with the EAR=0 pulse followed by the EAR=1 pulse!

The loading routine:
 DA20 DD2100B0   LD   IX,+B000
 DA24 11001B     LD   DE,+1B00
 DA27 3E32       LD   A,+32
 DA29 CD56DA     CALL DA56
 DA2C 20F2       JR   NZ,DA20
 DA2E 2100B0     LD   HL,+B000
 DA31 110040     LD   DE,+4000
 DA34 01001B     LD   BC,+1B00
 DA37 EDB0       LDIR
 DA39 DD21006A   LD   IX,+6A00
 DA3D 11006C     LD   DE,+6C00
 DA40 3E33       LD   A,+33
 DA42 CD56DA     CALL DA56
 DA45 20F2       JR   NZ,DA39
 DA47 DD2100E4   LD   IX,+E400
 DA4B 11001C     LD   DE,+1C00
 DA4E 3E34       LD   A,+34
 DA50 CD56DA     CALL DA56
 DA53 20F2       JR   NZ,DA47
 DA55 C9         RET
 DA56 08         EX   AF,AF'
 DA57 3E0C       LD   A,+0C
 DA59 D3FE       OUT  (+FE),A
 DA5B 2640       LD   H,+40
 DA5D 0632       LD   B,+32
 DA5F CDC5DA     CALL DAC5
 DA62 FE6E       CP   +6E
 DA64 38F7       JR   C,DA5D
 DA66 10F7       DJNZ DA5F
 DA68 060A       LD   B,+0A
 DA6A CDC5DA     CALL DAC5
 DA6D FE6E       CP   +6E
 DA6F 30F7       JR   NC,DA68
 DA71 10F7       DJNZ DA6A
 DA73 97         SUB  A
 DA74 D9         EXX
 DA75 67         LD   H,A
 DA76 6F         LD   L,A
 DA77 57         LD   D,A
 DA78 D9         EXX
 DA79 CDC5DA     CALL DAC5
 DA7C D9         EXX
 DA7D 5F         LD   E,A
 DA7E 19         ADD  HL,DE
 DA7F 7C         LD   A,H
 DA80 D9         EXX
 DA81 10F6       DJNZ DA79
 DA83 C604       ADD  A,+04
 DA85 32BCDA     LD   (DABC),A
 DA88 CDB6DA     CALL DAB6
 DA8B 08         EX   AF,AF'
 DA8C B9         CP   C
 DA8D C0         RET  NZ
 DA8E CDB6DA     CALL DAB6
 DA91 5F         LD   E,A
 DA92 CDB6DA     CALL DAB6
 DA95 57         LD   D,A
 DA96 FD210000   LD   IY,+0000
 DA9A CDB6DA     CALL DAB6
 DA9D DD7700     LD   (IX+00),A
 DAA0 DD23       INC  IX
 DAA2 FD09       ADD  IY,BC
 DAA4 1B         DEC  DE
 DAA5 7A         LD   A,D
 DAA6 B3         OR   E
 DAA7 C29ADA     JP   NZ,DA9A
 DAAA CDB6DA     CALL DAB6
 DAAD FDBD       CP   L
 DAAF C0         RET  NZ
 DAB0 CDB6DA     CALL DAB6
 DAB3 FDBC       CP   H
 DAB5 C9         RET
 DAB6 0E01       LD   C,+01
 DAB8 CDC5DA     CALL DAC5
 DABB FE00       CP   +00
 DABD 3F         CCF
 DABE CB11       RL   C
 DAC0 D2B8DA     JP   NC,DAB8
 DAC3 79         LD   A,C
 DAC4 C9         RET
 DAC5 7B         LD   A,E
 DAC6 E601       AND  +01
 DAC8 C60C       ADD  A,+0C
 DACA D3FE       OUT  (+FE),A
 DACC 2E00       LD   L,+00
 DACE 2C         INC  L
 DACF DBFE       IN   A,(+FE)
 DAD1 A4         AND  H
 DAD2 CACEDA     JP   Z,DACE
 DAD5 3E08       LD   A,+08
 DAD7 D3FE       OUT  (+FE),A
 DAD9 2C         INC  L
 DADA DBFE       IN   A,(+FE)
 DADC A4         AND  H
 DADD C2D9DA     JP   NZ,DAD9
 DAE0 7D         LD   A,L
 DAE1 C9         RET

Version 2.5 loading routine:
 A9C2 E0         DW   #57E0
 A9C4 00         DW   #5B00
 A9C6 00         DW   #7000
 A9C8 70         DW   #7370
 A9CA 00         DW   #D000
 A9CC 00         DW   #DB00
 A9CE 00         DW   #5B00
 A9D0 00         DW   #5C00
 A9D2 C0         DW   #62C0
 A9D4 A0         DW   #69A0
 A9D6 00         DW   #6A00
 A9D8 70         DW   #6B70
 A9DA EA6E       DW   #6EEA
 A9DC 0A6F       DW   #6F0A
 A9DE 00         DW   #EB00
 A9E0 C0         DW   #F1C0
 A9E2 80         DW   #F380
 A9E4 00F4       DW   #F400
 A9E6 0080       DW   #8000
 A9E8 B0         DW   #A9B0
 A9EA 00         DW   #5C00
 A9EC 00         DW   #5E00
 A9EE 18FC       DW   #FC18
 A9F0 08         DW   #0008
 A9F2 F3         DI			;start
 A9F3 3118FC     LD   SP,+FC18
;test 128/48
;cls
 AA36 21D2AB     LD   HL,+ABD2
 AA39 22CEAB     LD   (ABCE),HL
 AA3C 3E20       LD   A,+20
 AA3E CD13AB     CALL AB13
 AA41 C20000     JP   NZ,0000,START
 AA44 21C6A9     LD   HL,+A9C6
 AA47 11C2A9     LD   DE,+A9C2
 AA4A 010800     LD   BC,+0008
 AA4D EDB0       LDIR
 AA4F 3E20       LD   A,+20
 AA51 CD13AB     CALL AB13
 AA54 C20000     JP   NZ,0000,START
...
 AA76 21CEA9     LD   HL,+A9CE
 AA79 11C2A9     LD   DE,+A9C2
 AA7C 012400     LD   BC,+0024
 AA7F EDB0       LDIR
 AA81 3E20       LD   A,+20
 AA83 CD13AB     CALL AB13
 AA86 C20000     JP   NZ,0000,START
...
 AAB6 210040     LD   HL,+4000
 AAB9 22C2A9     LD   (A9C2),HL
 AABC 21005B     LD   HL,+5B00
 AABF 22C4A9     LD   (A9C4),HL
 AAC2 3E20       LD   A,+20
 AAC4 CD13AB     CALL AB13
 AAC7 C20000     JP   NZ,0000,START
...
 AB13 08         EX   AF,AF'		;LD_BYTES
 AB14 3E0C       LD   A,+0C
 AB16 D3FE       OUT  (+FE),A
 AB18 2640       LD   H,+40
 AB1A 0632       LD   B,+32
 AB1C CDA2AB     CALL ABA2
 AB1F FE6E       CP   +6E
 AB21 38F7       JR   C,AB1A
 AB23 10F7       DJNZ AB1C
 AB25 060A       LD   B,+0A
 AB27 CDA2AB     CALL ABA2
 AB2A FE6E       CP   +6E
 AB2C 30F7       JR   NC,AB25
 AB2E 10F7       DJNZ AB27
 AB30 97         SUB  A
 AB31 D9         EXX
 AB32 67         LD   H,A
 AB33 6F         LD   L,A
 AB34 57         LD   D,A
 AB35 D9         EXX
 AB36 CDA2AB     CALL ABA2
 AB39 D9         EXX
 AB3A 5F         LD   E,A
 AB3B 19         ADD  HL,DE
 AB3C 7C         LD   A,H
 AB3D D9         EXX
 AB3E 10F6       DJNZ AB36
 AB40 C604       ADD  A,+04
 AB42 3299AB     LD   (AB99),A
 AB45 3264AB     LD   (AB64),A
 AB48 3284AB     LD   (AB84),A
 AB4B CD93AB     CALL AB93
 AB4E 08         EX   AF,AF'
 AB4F B9         CP   C
 AB50 C0         RET  NZ
 AB51 CD93AB     CALL AB93
 AB54 5F         LD   E,A
 AB55 CD93AB     CALL AB93
 AB58 57         LD   D,A
 AB59 CDBFAB     CALL ABBF
 AB5C FD210000   LD   IY,+0000
 AB60 CDA2AB     CALL ABA2
 AB63 FE00       CP   +00
 AB65 38F9       JR   C,AB60
 AB67 CD93AB     CALL AB93
 AB6A DD7700     LD   (IX+00),A
 AB6D DD23       INC  IX
 AB6F FD09       ADD  IY,BC
 AB71 1B         DEC  DE
 AB72 7B         LD   A,E
 AB73 E60F       AND  +0F
 AB75 C267AB     JP   NZ,AB67
 AB78 CDCCAB     CALL ABCC
 AB7B 7A         LD   A,D
 AB7C B3         OR   E
 AB7D C260AB     JP   NZ,AB60
 AB80 CDA2AB     CALL ABA2
 AB83 FE00       CP   +00
 AB85 38F9       JR   C,AB80
 AB87 CD93AB     CALL AB93
 AB8A FDBD       CP   LY
 AB8C C0         RET  NZ
 AB8D CD93AB     CALL AB93
 AB90 FDBC       CP   HY
 AB92 C9         RET
 AB93 0E01       LD   C,+01
 AB95 CDA2AB     CALL ABA2
 AB98 FE00       CP   +00
 AB9A 3F         CCF
 AB9B CB11       RL   C
 AB9D D295AB     JP   NC,AB95
 ABA0 79         LD   A,C
 ABA1 C9         RET
 ABA2 7B         LD   A,E
 ABA3 E601       AND  +01
 ABA5 C60C       ADD  A,+0C
 ABA7 D3FE       OUT  (+FE),A
 ABA9 2E00       LD   L,+00
 ABAB 2C         INC  L
 ABAC DBFE       IN   A,(+FE)
 ABAE A4         AND  H
 ABAF CAABAB     JP   Z,ABAB
 ABB2 3E08       LD   A,+08
 ABB4 D3FE       OUT  (+FE),A
 ABB6 2C         INC  L
 ABB7 DBFE       IN   A,(+FE)
 ABB9 A4         AND  H
 ABBA C2B6AB     JP   NZ,ABB6
 ABBD 7D         LD   A,L
 ABBE C9         RET
 ABBF D9         EXX
 ABC0 21C4A9     LD   HL,+A9C4
 ABC3 22C0A9     LD   (A9C0),HL
 ABC6 DD2AC2A9   LD   IX,(A9C2)
 ABCA D9         EXX
 ABCB C9         RET
 ABCC D9         EXX
 ABCD CDD2AB     CALL ABD2
 ABD0 D9         EXX
 ABD1 C9         RET
 ABD2 DD7D       LD   A,LX
 ABD4 CB67       BIT  4,A
 ABD6 C0         RET  NZ
 ABD7 DDE5       PUSH IX
 ABD9 E1         POP  HL
 ABDA 11E0FF     LD   DE,+FFE0
 ABDD 19         ADD  HL,DE
 ABDE 25         DEC  H
 ABDF 7C         LD   A,H
 ABE0 2F         CPL
 ABE1 E607       AND  +07
 ABE3 200A       JR   NZ,ABEF
 ABE5 7D         LD   A,L
 ABE6 D620       SUB  +20
 ABE8 6F         LD   L,A
 ABE9 3804       JR   C,ABEF
 ABEB 7C         LD   A,H
 ABEC C608       ADD  A,+08
 ABEE 67         LD   H,A
 ABEF E5         PUSH HL
 ABF0 DDE1       POP  IX
 ABF2 CB74       BIT  6,H
 ABF4 C0         RET  NZ
 ABF5 DD210058   LD   IX,+5800
 ABF9 2100AC     LD   HL,+AC00
 ABFC 22CEAB     LD   (ABCE),HL
 ABFF C9         RET
 AC00 2AC0A9     LD   HL,(A9C0)
 AC03 DD7D       LD   A,LX
 AC05 BE         CP   (HL)
 AC06 C0         RET  NZ
 AC07 23         INC  HL
 AC08 DD7C       LD   A,HX
 AC0A BE         CP   (HL)
 AC0B C0         RET  NZ
 AC0C 23         INC  HL
 AC0D 5E         LD   E,(HL)
 AC0E 23         INC  HL
 AC0F 56         LD   D,(HL)
 AC10 23         INC  HL
 AC11 22C0A9     LD   (A9C0),HL
 AC14 D5         PUSH DE
 AC15 DDE1       POP  IX
 AC17 C9         RET