Really-quite-fast loader
Gary Lineker's Superskills
PILOT standard 3223x[P 2168] (if FLAG>#7f) or 8063x[P 2168] (if FLAG≤#7f)
SYNC standard P 667, P 735
DATA
bit 0 = DP 582
bit 1 = DP 1164
FLAG BYTE #00 (header) or #ff (data)
PARITY BYTE present
C000 F3 DI C001 310000 LD SP,+0000 C004 AF XOR A C005 D3FE OUT (+FE),A C007 210058 LD HL,+5800 C00A 110158 LD DE,+5801 C00D 01FF02 LD BC,+02FF C010 77 LD (HL),A C011 EDB0 LDIR C013 DD210040 LD IX,+4000 C017 110084 LD DE,+8400 C01A D601 SUB +01 C01C CD26C0 CALL C026 C01F 30E3 JR NC,C004 C021 ED7B00C1 LD SP,(C100) C025 C9 RET C026 14 INC D C027 08 EX AF,AF' C028 15 DEC D C029 3E09 LD A,+09 C02B D3FE OUT (+FE),A C02D DBFE IN A,(+FE) C02F 1F RRA C030 E620 AND +20 C032 F601 OR +01 C034 4F LD C,A C035 BF CP A C036 C0 RET NZ C037 CDAEC0 CALL C0AE C03A 30FA JR NC,C036 C03C 211504 LD HL,+0415 C03F 10FE DJNZ C03F C041 2B DEC HL C042 7C LD A,H C043 B5 OR L C044 20F9 JR NZ,C03F C046 CDAAC0 CALL C0AA C049 30EB JR NC,C036 C04B 069C LD B,+9C C04D CDAAC0 CALL C0AA C050 30E4 JR NC,C036 C052 3EC6 LD A,+C6 C054 B8 CP B C055 30E0 JR NC,C037 C057 24 INC H C058 20F1 JR NZ,C04B C05A 06C9 LD B,+C9 C05C CDAEC0 CALL C0AE C05F 30D5 JR NC,C036 C061 78 LD A,B C062 FED4 CP +D4 C064 30F4 JR NC,C05A C066 CDAEC0 CALL C0AE C069 D0 RET NC C06A 2600 LD H,+00 C06C 06B0 LD B,+B0 C06E 181F JR C08F C070 08 EX AF,AF' C071 2007 JR NZ,C07A C073 300F JR NC,C084 C075 DD7500 LD (IX+00),L C078 180F JR C089 C07A CB11 RL C C07C AD XOR L C07D C0 RET NZ C07E 79 LD A,C C07F 1F RRA C080 4F LD C,A C081 13 INC DE C082 1807 JR C08B C084 DD7E00 LD A,(IX+00) C087 AD XOR L C088 C0 RET NZ C089 DD23 INC IX C08B 1B DEC DE C08C 08 EX AF,AF' C08D 06B2 LD B,+B2 C08F 2E80 LD L,+80 C091 CDAAC0 CALL C0AA C094 D0 RET NC C095 3EBD LD A,+BD C097 B8 CP B C098 CB1D RR L C09A 06B0 LD B,+B0 C09C D291C0 JP NC,C091 C09F 7C LD A,H C0A0 AD XOR L C0A1 67 LD H,A C0A2 7A LD A,D C0A3 B3 OR E C0A4 20CA JR NZ,C070 C0A6 7C LD A,H C0A7 FE01 CP +01 C0A9 C9 RET C0AA CDAEC0 CALL C0AE C0AD D0 RET NC C0AE 3E16 LD A,+16 C0B0 3D DEC A C0B1 20FD JR NZ,C0B0 C0B3 A7 AND A C0B4 04 INC B C0B5 C8 RET Z C0B6 3E7F LD A,+7F C0B8 DBFE IN A,(+FE) C0BA 1F RRA C0BB A9 XOR C C0BC E620 AND +20 C0BE 28F4 JR Z,C0B4 C0C0 79 LD A,C C0C1 2F CPL C0C2 4F LD C,A C0C3 E607 AND +07 C0C5 F608 OR +08 C0C7 D3FE OUT (+FE),A C0C9 37 SCF C0CA C9 RET
8600 21801F LD HL,+1F80 8603 CB7F BIT 7,A 8605 2803 JR Z,860A 8607 21980C LD HL,+0C98 860A 08 EX AF,AF' 860B 13 INC DE 860C DD2B DEC IX 860E 3E02 LD A,+02 8610 47 LD B,A 8611 10FE DJNZ 8611 8613 D3FE OUT (+FE),A 8615 EE0F XOR +0F 8617 06A4 LD B,+A4 8619 2D DEC L 861A 20F5 JR NZ,8611 861C 05 DEC B 861D 25 DEC H 861E F21186 JP P,8611 8621 062F LD B,+2F 8623 10FE DJNZ 8623 8625 D3FE OUT (+FE),A 8627 3E0D LD A,+0D 8629 0637 LD B,+37 862B 10FE DJNZ 862B 862D D3FE OUT (+FE),A 862F 010E26 LD BC,+260E 8632 08 EX AF,AF' 8633 6F LD L,A 8634 C34186 JP 8641 8637 7A LD A,D 8638 B3 OR E 8639 CA4886 JP Z,8648 863C DD6E00 LD L,(IX+00) 863F 7C LD A,H 8640 AD XOR L 8641 67 LD H,A 8642 3E01 LD A,+01 8644 37 SCF 8645 C35F86 JP 865F 8648 6C LD L,H 8649 18F4 JR 863F 864B 79 LD A,C 864C CB78 BIT 7,B 864E 10FE DJNZ 864E 8650 3004 JR NC,8656 8652 062D LD B,+2D 8654 10FE DJNZ 8654 8656 D3FE OUT (+FE),A 8658 0629 LD B,+29 865A 20EF JR NZ,864B 865C 05 DEC B 865D AF XOR A 865E 3C INC A 865F CB1D RR L 8661 C24E86 JP NZ,864E 8664 1B DEC DE 8665 DD23 INC IX 8667 061C LD B,+1C 8669 3E7F LD A,+7F 866B DBFE IN A,(+FE) 866D 1F RRA 866E D0 RET NC 866F 7A LD A,D 8670 3C INC A 8671 C23786 JP NZ,8637 8674 063B LD B,+3B 8676 10FE DJNZ 8676 8678 C9 RET