; =============================================================================
; Floppy load path 1000h (simple boot + type21 branch into 10B8)
; Source: VECTOR 4/8086 - V2_AC_Interleaved_XHE_XHO.bin
; CPU: Z80  |  base: 0000h  |  size: 8192
; Generated linear disassembly with fixed relative branch targets
; =============================================================================

; --- Floppy select, header validate, simple JP 2400 or type21 ---
1000  3e03              LD A, 03h  ; FLOPPY LOAD entry (menu F)
1002  cd0016            CALL 1600h  ; select unit 3
1005  b7                OR A
1006  c25d15            JP NZ, 155Dh
1009  06fe              LD B, FEh
100B  3e03              LD A, 03h
100D  0e00              LD C, 00h
100F  cd3414            CALL 1434h  ; geometry B=FEh + restore
1012  c25d15            JP NZ, 155Dh
1015  210024            LD HL, 2400h
1018  010000            LD BC, 0000h
101B  110000            LD DE, 0000h
101E  3e01              LD A, 01h
1020  cda814            CALL 14A8h  ; read LBA0 -> 2400h (1 sector)
1023  c25d15            JP NZ, 155Dh
1026  3a0224            LD A, (2402h)  ; require (2402)==02h
1029  fe02              CP 02h
102B  3e01              LD A, 01h
102D  c2c011            JP NZ, 11C0h
1030  3a1524            LD A, (2415h)
1033  47                LD B, A
1034  3a4224            LD A, (2442h)
1037  4f                LD C, A
1038  3e03              LD A, 03h
103A  cd3414            CALL 1434h  ; re-geometry from header
103D  c25d15            JP NZ, 155Dh
1040  3a4224            LD A, (2442h)  ; require (2442)&C0==80h
1043  47                LD B, A
1044  e6c0              AND C0h
1046  fe80              CP 80h
1048  3e01              LD A, 01h
104A  c2c011            JP NZ, 11C0h
104D  af                XOR A
104E  32f667            LD (67F6h), A
1051  78                LD A, B
1052  e63f              AND 3Fh
1054  fe21              CP 21h
1056  cab810            JP Z, 10B8h  ; type==21h -> 10B8
1059  2a0024            LD HL, (2400h)
105C  7c                LD A, H
105D  b5                OR L
105E  c20024            JP NZ, 2400h  ; simple: JP 2400 if vector nonzero
1061  3e01              LD A, 01h
1063  c3c011            JP 11C0h
1066  cd7210            CALL 1072h  ; WINCHESTER entry (menu W)
1069  c25d15            JP NZ, 155Dh
106C  dac011            JP C, 11C0h
106F  c30024            JP 2400h  ; JP 2400 on success
1072  af                XOR A  ; winchester load helper
1073  32f667            LD (67F6h), A
1076  3e00              LD A, 00h
1078  cd0016            CALL 1600h
107B  b7                OR A
107C  c0                RET NZ
107D  3e00              LD A, 00h
107F  0e01              LD C, 01h
1081  cdde15            CALL 15DEh
1084  b7                OR A
1085  c0                RET NZ
1086  210024            LD HL, 2400h
1089  3e00              LD A, 00h
108B  0601              LD B, 01h
108D  110000            LD DE, 0000h
1090  0e00              LD C, 00h
1092  cd3816            CALL 1638h
1095  b7                OR A
1096  c0                RET NZ
1097  3a0224            LD A, (2402h)
109A  fe02              CP 02h
109C  2805              JR Z, 10A3h
109E  af                XOR A
109F  3e02              LD A, 02h
10A1  37                SCF
10A2  c9                RET
10A3  3aaa09            LD A, (09AAh)
10A6  210b24            LD HL, 240Bh
10A9  be                CP (HL)
10AA  2805              JR Z, 10B1h
10AC  af                XOR A
10AD  37                SCF
10AE  3e05              LD A, 05h
10B0  c9                RET
10B1  3e00              LD A, 00h
10B3  cd3414            CALL 1434h
10B6  b7                OR A
10B7  c9                RET

; --- Type 21h orchestration through config build call ---
10B8  0608              LD B, 08h  ; TYPE 21h SYSTEM FILE path
10BA  2a1124            LD HL, (2411h)
10BD  b7                OR A
10BE  cb1c              RR H
10C0  cb1d              RR L
10C2  cb18              RR B
10C4  30f7              JR NC, 10BDh
10C6  3a1624            LD A, (2416h)
10C9  87                ADD A, A
10CA  3c                INC A
10CB  5f                LD E, A
10CC  1600              LD D, 00h
10CE  ed530c20          LD (200Ch), DE
10D2  19                ADD HL, DE
10D3  220a20            LD (200Ah), HL
10D6  af                XOR A
10D7  321c20            LD (201Ch), A
10DA  321520            LD (2015h), A
10DD  cdee11            CALL 11EEh  ; directory search loop
10E0  3e07              LD A, 07h
10E2  dac011            JP C, 11C0h
10E5  c25d15            JP NZ, 155Dh
10E8  7e                LD A, (HL)
10E9  fee5              CP E5h
10EB  28f0              JR Z, 10DDh
10ED  060b              LD B, 0Bh
10EF  111e24            LD DE, 241Eh  ; compare name to (241E)
10F2  1a                LD A, (DE)
10F3  cbbe              RES 7, (HL)
10F5  be                CP (HL)
10F6  20e5              JR NZ, 10DDh
10F8  23                INC HL
10F9  13                INC DE
10FA  10f6              DJNZ 10F2h
10FC  110f00            LD DE, 000Fh
10FF  19                ADD HL, DE
1100  5e                LD E, (HL)
1101  23                INC HL
1102  56                LD D, (HL)
1103  ed531d20          LD (201Dh), DE  ; alloc index -> (201D)
1107  3a1624            LD A, (2416h)
110A  110100            LD DE, 0001h
110D  010000            LD BC, 0000h
1110  210026            LD HL, 2600h
1113  cda814            CALL 14A8h  ; read alloc map -> 2600
1116  c25d15            JP NZ, 155Dh
1119  210022            LD HL, 2200h
111C  cd3112            CALL 1231h  ; first data block -> 2200
111F  c0                RET NZ
1120  3e03              LD A, 03h
1122  dac011            JP C, 11C0h
1125  3a0022            LD A, (2200h)
1128  214224            LD HL, 2442h
112B  be                CP (HL)
112C  3e04              LD A, 04h
112E  c2c011            JP NZ, 11C0h
1131  2a2722            LD HL, (2227h)
1134  22f167            LD (67F1h), HL
1137  2a2922            LD HL, (2229h)
113A  22f367            LD (67F3h), HL
113D  2a2322            LD HL, (2223h)
1140  221820            LD (2018h), HL
1143  3add5f            LD A, (5FDDh)
1146  b7                OR A
1147  200a              JR NZ, 1153h
1149  11d800            LD DE, 00D8h
114C  ed52              SBC HL, DE
114E  3e07              LD A, 07h
1150  d2c011            JP NC, 11C0h
1153  110065            LD DE, 6500h
1156  210023            LD HL, 2300h
1159  018000            LD BC, 0080h
115C  edb0              LDIR  ; copy 2300->6500
115E  210022            LD HL, 2200h
1161  cd3112            CALL 1231h  ; second structure
1164  c0                RET NZ
1165  3e03              LD A, 03h
1167  dac011            JP C, 11C0h
116A  213031            LD HL, 3130h
116D  ed5b4622          LD DE, (2246h)
1171  b7                OR A
1172  ed52              SBC HL, DE
1174  3e04              LD A, 04h
1176  dac011            JP C, 11C0h
1179  3a4822            LD A, (2248h)
117C  fe43              CP 43h  ; require (2248)=='C'
117E  3e04              LD A, 04h
1180  c2c011            JP NZ, 11C0h
1183  114c24            LD DE, 244Ch
1186  214c22            LD HL, 224Ch
1189  01b400            LD BC, 00B4h
118C  edb0              LDIR  ; config 224C->244C
118E  210400            LD HL, 0004h
1191  221620            LD (2016h), HL
1194  ed5b1620          LD DE, (2016h)  ; bulk load loop
1198  cd2004            CALL 0420h
119B  cd3112            CALL 1231h
119E  c0                RET NZ
119F  3e03              LD A, 03h
11A1  dac011            JP C, 11C0h
11A4  2a1620            LD HL, (2016h)
11A7  23                INC HL
11A8  23                INC HL
11A9  221620            LD (2016h), HL
11AC  2a1820            LD HL, (2018h)
11AF  2b                DEC HL
11B0  221820            LD (2018h), HL
11B3  7d                LD A, L
11B4  b4                OR H
11B5  20dd              JR NZ, 1194h
11B7  cdb112            CALL 12B1h  ; build 6600/6660
11BA  cdfb12            CALL 12FBh
11BD  c3a913            JP 13A9h  ; JP 13A9 handoff

