VECTOR 4/8086 - Floppy Load Path (1000h)From Inside a Vector Graphic SX/5000 (Vector 4/8086 variant)

Listing: 02-floppy-load.asm · driver 05-helpers-disk.asm
Related: Type 21h SYSTEM FILE · Winchester load path · How to boot floppy

Entry: Menu F or vector 000FJP 1000
Unit: A=03h (floppy)
First read: LBA 0 → 2400h (512 bytes)


Flowchart

1000
  CALL 1600                 ; unit 3 ready
  B=FEh, A=3, C=0
  CALL 1434                 ; geometry + restore
  HL=2400, DE=0, BC=0, A=1
  CALL 14A8                 ; sector 0 → 2400h
  require (2402)==02h
  B=(2415), C=(2442), A=3
  CALL 1434                 ; geometry from header
  require (2442)&C0h == 80h
  (67F6)=0
  type = (2442)&3Fh
       │
       ├─ ≠ 21h ── if (2400)≠0 → JP 2400h
       │            else error #1
       │
       └─ = 21h ── 10B8  (see 03-system-file-type21.md)

Steps

1. 1600 — select unit

Programs A2A6, waits ready on A6/A7. A=0 OK else HW error code.

2. 1434 — geometry + restore

(2009)=A                    ; unit
if A≥3:                     ; floppy
  (200E)=(C>>4)&3
  search table @0831 for B  ; default B=FEh
  fill 2003..2008
  JP 15DE                   ; restore
else:                       ; Winchester: geometry from header via HL
  …

Table @0831: keys FAFF. Default FE 08 03 28.

3. 14A8 — read N sectors

Reg Role
A Count
HL Buffer
DE/BC LBA

Uses geometry, CALL 1638 (INIR×2 from A0 = 512 bytes), advances H+=2 per sector.

4. Header validation (10261056)

(2402)==02h            else 11C0 #1 UNRECOGNIZED SYSTEM DISKETTE
B=(2415), C=(2442)
CALL 1434 A=3
(2442)&C0h==80h        else 11C0 #1
type=(2442)&3Fh
JP Z,10B8 if type==21h

5. Simple boot (10591063)

HL=(2400)
if HL≠0 → JP 2400h     ; run image in place
else 11C0 #1

SYSTEM header @ 2400 (LBA 0)

Off Field
+00 Nonzero for simple boot; execute at 2400, not through the word as a vector target
+02 02h format id
+0B Config id
+0D Sectors/block (type 21h)
+11 Dir entry count
+15 Geometry key
+16 Dir LBA factor
+1E 11-byte SYSTEM name (type 21h)
+42 Flags + type
+4C Config records

Branch summary

Type Path
≠ 21h JP 2400 if word nonzero
= 21h Full file load — Type 21h SYSTEM FILE

Winchester contrast (1066 / 1072)

Full write-up: Winchester load path · listing 06-winchester-load.asm

1066 CALL 1072 → NZ:155D / C:11C0 / else JP 2400
1072 unit 0, CALL 1600 / 15DE
     read sector → 2400 via 1638 (not 14A8)
     (2402)==02 else A=2 CF  (UNRECOGNIZED MEDIA FORMAT)
     (240B)==(09AA) else A=5 CF  (CONFIGURATION MISMATCH)
     CALL 1434 A=0   ; geometry from header

Primarily header + JP 2400, not the type-21h directory loader. No (2442) / type check.


Disk helpers

Addr Role
1600 Select unit
1434 Geometry + restore
14A8 Read N sectors
1638 Low-level read + INIR
168B Address regs A2A6
15DE Restore/seek command
155D / 11C0 Error printers

Controller ports

Port Use
A0 Data (512B INIR)
A1 Status/sense
A2A5 Address
A6 Unit control
A7 Busy/ready
A8 Gate
10/13 Aux pulses

Core listing outline

1000  LD A,03 / CALL 1600
1009  LD B,FE / A=3 / C=0 / CALL 1434
1015  HL=2400 / A=1 / CALL 14A8
1026  require (2402)=02
1030  B=(2415) C=(2442) A=3 / CALL 1434
1040  require (2442)&C0=80
1051  if type=21 → 10B8
1059  if (2400)≠0 → JP 2400 else error #1

If anyone has additional information, manuals, schematics, or software for this Vector 4/8086 CPU variant (Vector Graphic SX/5000), please contact me.

email

Document generated: July 31,2026
Updated: July 31, 2026