Copy Link
Add to Bookmark
Report
Commodore 64: Ode loader
Odeload
Trivial Pursuit Genus Edition side B, Sailing
Some of the values are only approximate.
PILOT 256x[byte #20] (Sailing) or 64x[byte #20] (Trivial Pursuit)
SYNC none (synchronisation by FLAG BYTE)
DATA
- bit 0 = DP 640
- bit 1 = DP 1280
- FLAG BYTE #24 (header), #db (data)
- the first two bytes contain the length of the following block
- PARITY BYTE present
- dummy byte (Sailing: probably an overall parity (=#00), a leftover from the previous version of the loader)
The loading routine:
E100 F3 DI
E101 31F0FF LD SP,+FFF0
E104 DD210040 LD IX,+4000
E108 CD1BE1 CALL E11B
E10B D20000 JP NC,0000,START
E10E DD210063 LD IX,+6300
E112 CD1BE1 CALL E11B
E115 D20000 JP NC,0000,START
E118 C30370 JP 7003
E11B F3 DI
E11C 3E7F LD A,+7F
E11E DBFE IN A,(+FE)
E120 1F RRA
E121 3061 JR NC,E184
E123 CDA2E1 CALL E1A2
E126 30F4 JR NC,E11C
E128 2600 LD H,+00
E12A CDA2E1 CALL E1A2
E12D 30ED JR NC,E11C
E12F 7C LD A,H
E130 FE14 CP +14
E132 38F4 JR C,E128
E134 CDA2E1 CALL E1A2
E137 30E3 JR NC,E11C
E139 2E05 LD L,+05
E13B CD9DE1 CALL E19D
E13E 2D DEC L
E13F 20FA JR NZ,E13B
E141 0E10 LD C,+10
E143 C5 PUSH BC
E144 CD86E1 CALL E186
E147 78 LD A,B
E148 FE20 CP +20
E14A C1 POP BC
E14B 20DB JR NZ,E128
E14D 0D DEC C
E14E 20F3 JR NZ,E143
E150 CD86E1 CALL E186
E153 30C7 JR NC,E11C
E155 78 LD A,B
E156 FE20 CP +20
E158 28F6 JR Z,E150
E15A FEDB CP +DB
E15C 20BE JR NZ,E11C
E15E CD86E1 CALL E186
E161 58 LD E,B
E162 CD86E1 CALL E186
E165 50 LD D,B
E166 ED53B8E1 LD (E1B8),DE
E16A CD86E1 CALL E186
E16D D0 RET NC
E16E DD7000 LD (IX+00),B
E171 78 LD A,B
E172 AD XOR L
E173 6F LD L,A
E174 1B DEC DE
E175 DD23 INC IX
E177 7A LD A,D
E178 B3 OR E
E179 20EF JR NZ,E16A
E17B CD86E1 CALL E186
E17E 78 LD A,B
E17F AD XOR L
E180 C4B6E1 CALL NZ,E1B6
E183 3F CCF
E184 FB EI
E185 C9 RET
E186 2602 LD H,+02
E188 CD9FE1 CALL E19F
E18B 0601 LD B,+01
E18D 1805 JR E194
E18F C5 PUSH BC
E190 CD9DE1 CALL E19D
E193 C1 POP BC
E194 D0 RET NC
E195 3E27 LD A,+27
E197 BC CP H
E198 CB10 RL B
E19A 30F3 JR NC,E18F
E19C C9 RET
E19D 2600 LD H,+00
E19F CDA2E1 CALL E1A2
E1A2 0EFE LD C,+FE
E1A4 ED40 IN B,(C)
E1A6 24 INC H
E1A7 C8 RET Z
E1A8 ED78 IN A,(C)
E1AA A8 XOR B
E1AB E640 AND +40
E1AD CAA6E1 JP Z,E1A6
E1B0 3E08 LD A,+08
E1B2 ED79 OUT (C),A
E1B4 37 SCF
E1B5 C9 RET
E1B6 37 SCF
E1B7 C9 RET
E1B8 00 NOP
E1B9 1B DEC DE