Related: Memory map · Winchester parameters · Quick reference
Source: V2_AC_Interleaved_XHE_XHO.bin
Jump / service vectors
@ 0000
| Off | Bytes | Instruction | Role |
|---|---|---|---|
0000 |
C3 36 00 |
JP 0036 |
Cold reset |
0003 |
C3 4F 01 |
JP 014F |
Main menu |
0006 |
C3 D5 03 |
JP 03D5 |
Keyboard status |
0009 |
C3 DA 03 |
JP 03DA |
Keyboard data |
000C |
C3 43 04 |
JP 0443 |
Putchar |
000F |
C3 00 10 |
JP 1000 |
Floppy load |
0012 |
C3 66 10 |
JP 1066 |
Winchester load |
0015 |
C9 |
RET |
|
0016 |
00 00 |
NOP NOP |
|
0018 |
C3 34 14 |
JP 1434 |
Geometry + restore |
001B |
C3 A8 14 |
JP 14A8 |
Read sectors |
001E |
C3 C0 03 |
JP 03C0 |
Config copy |
0021 |
C3 20 04 |
JP 0420 |
Bank helper |
0024 |
C3 B1 12 |
JP 12B1 |
Config @6600 |
0027 |
C3 FB 12 |
JP 12FB |
Config @6660 |
002A |
C3 A9 13 |
JP 13A9 |
Type21 handoff |
002D |
C3 5D 15 |
JP 155D |
HW error print |
0030 |
C3 C0 11 |
JP 11C0 |
Sys error print |
0033 |
C3 2B 01 |
JP 012B |
Auto-boot |
Menu key table
@ 07F4 (3 entries × key + addr)
07F4: 46 00 10 'F' → 1000h floppy
07F7: 54 B2 01 'T' → 01B2h continuous test
07FA: 57 66 10 'W' → 1066h Winchester
N / S appear in banner text only —
not in this table.
Cold I/O init
@ 07FD (14 × port,value)
| Port | Value(s) |
|---|---|
9D |
00 |
98 |
00 |
9B |
14, 19, 0A,
0B |
91 |
FF, FF |
70 |
00 |
9A |
00 |
1A |
1B, then later 80 |
1B |
F8, 03 |
Floppy geometry table
@ 0831
Used only when 1434 has unit A ≥ 3
(floppy). Winchester uses header geometry instead — see winchester-parameters.md.
Search key in B; 4-byte records (key + 3 params):
| Key | Params | Notes |
|---|---|---|
FA |
09 04 50 |
|
FB |
08 04 50 |
|
FC |
09 03 28 |
|
FD |
09 05 28 |
|
FE |
08 03 28 |
Default floppy B=FEh at
1009 |
FF |
08 05 28 |
CRTC-style regs (ports
0E/0F) from
@ 0819–0826
Programmed high-to-low, R13…R0 (values written order starts at
0826):
| Reg | Value |
|---|---|
| R0 | 31 |
| R1 | 28 |
| R2 | 2A |
| R3 | 85 |
| R4 | 19 |
| R5 | 02 |
| R6 | 18 |
| R7 | 18 |
| R8 | 10 |
| R9 | 0C |
| R10 | 00 |
| R11 | 00 |
| R12 | 38 |
| R13 | 00 |
ROM config @ 09AA
| Addr | Dump | Role |
|---|---|---|
09AA |
C8 |
Nonzero → show [W], enable auto-boot path |
09AB–09AC |
00 00 |
Drive id slots |
09AD |
07 |
Floppy slot id (12FB checks ==07) |
09AE–09B1 |
00… |
|
09B2–09B7 |
FA…FF |
Geometry/media keys |
Templates for 12FB (12 bytes each):
| Addr | Bytes |
|---|---|
@09B9 |
88 00 00 00 00 40 01 00 00 01 04 FE |
@09C6 |
80 00 00 00 00 40 01 00 00 02 04 FE |
Full drive-id / unit-0 decode: winchester-parameters.md.
SYSTEM header (disk LBA 0 @
RAM 2400)
| Off | Field |
|---|---|
+00 |
Word; simple boot requires ≠0; execute at 2400 |
+02 |
Format id 02h |
+0B |
Config id |
+0D |
Sectors per alloc block |
+11 |
Directory entry count |
+15 |
Geometry key B |
+16 |
Dir LBA factor |
+1E |
11-byte SYSTEM FILE name |
+42 |
Flags 10xxxxxx; type in low 6 bits (21h =
file load) |
+4C |
Config / DPH-like records |
Major strings (bit-7 terminated)
| Addr | Text |
|---|---|
0585 |
title control + VECTOR GRAPHIC SX/5000 [XH] |
05A8 |
EXECUTIVE - REVISION 2.00 (AC) |
05D2 |
[W] .. LOAD SYSTEM FROM WINCHESTER |
05FA |
[F] .. LOAD SYSTEM FROM FLOPPY |
061A |
[N] .. LOAD SYSTEM FROM NETWORK |
063C |
[S] .. LOAD SYSTEM FROM SPECIFIC STATION |
0667 |
[T] .. TEST SYSTEM |
067E |
MAIN MEMORY NOT INSTALLED - HALTING |
06A4 |
PERFORMING CONTINUOUS SYSTEM TEST - CYCLE |
06CF |
PERFORMING SYSTEM TEST |
06E8 |
LOADING - PLEASE WAIT |
0849+ |
system error messages |
08EF+ |
hardware error messages |
097B |
< ERROR - |
0988 |
> |
Printer: 03E4 — BIT 7,A /
RES 7,A; last char has bit 7 set.