SCSI VENDOR / PRODUCT identification strings in Norsk Data software¶
Full path: E:\Dev\Ronny\NDInsight\tools\boot-floppy\SCSI-DEVICE-STRINGS.md
Companion tool written for this analysis (handles 7-bit / parity-set / byte-swapped
encodings, re-runnable on new media):
E:\Dev\Ronny\NDInsight\tools\boot-floppy\tools\find_nd_strings.py
Every statement below is tagged [VERIFIED] (exact file, byte offset, quoted bytes) or [INFERRED] (reasoning shown). Where nothing was found the document says NOT FOUND. The ndwiki "SCSI-TV" article was treated as a hypothesis, not as evidence; the tables below are decoded from the binaries.
0. Executive summary¶
| Question | Answer |
|---|---|
| Do hard-coded SCSI VENDOR / PRODUCT strings exist in ND software? | YES — but not in SINTRAN III and not in MACM. |
| Where? | In the ND stand-alone diagnostic programs SCSI-TV ("SCSI Test and Verify") and DISK-MM ("DISK Media Maintenance"), which ship on the ND-210523 test diskettes and run under TPE-MON. Also as an installed file-system copy on one hard-disk image, D:\ND\HDD\nd-test_ny.img (§5.5). [VERIFIED] |
| Is it a table? | YES — two linked tables: a VENDOR table (8-char ASCII + code + pointer + count) and a PRODUCT table (16-char ASCII + code). The vendor record points into the product table and says how many products that vendor has. Layout byte-verified, §2. |
| Is it a whitelist or cosmetic? | A whitelist. Both programs carry distinct operator-facing errors for a failed lookup: (CS) Disk drive vendor unknown to the program / (CS) Disk drive is unknown to the program (DISK-MM) and Unknown vendor / Unknown product / This test is not applicable for the selected drive / Unknown drive type in test (SCSI-TV). [VERIFIED as strings] Whether the program hard-aborts or only skips a test was not determined — no disassembly was done (§4). |
| Does the SINTRAN III kernel contain them? | NO — NOT FOUND in any carved K/L/M segment, resident common code, symbol list or NPL source, in any of the four encodings searched. The kernel's SCSI INQUIRY requests only 8 bytes, so it never even receives the vendor field (bytes 8-15) or product field (bytes 16-31). §5. |
| Does MACM contain them? | NO — NOT FOUND in D:\ND\BPUN\MACM-1718L.BPUN, MACM-1718K.BPUN, or the MACM copies on the K/L/M generation diskettes. §5. |
| Hardware in the binaries but NOT on the wiki list | EXABYTE EXB-8200 / EXB-8500, HP 88780, CDC 94161-156 / 94171-9 / 94171-7 / 94171-5 / 94181-15 / 94181-13, EMD 97201 (000) and (1.2), extra ARCHIVE VIPER serial variants 99999 / 25066 / 21835, TDC 3600 EXPR. and RG TDC 3600, plus the vendor aliases MICROP, CDC, NDARCHIV, ND ARCHV, NDTANDBE, NDEXABYT, NDEXABY, NDHP. §3. |
1. Where the tables live [VERIFIED]¶
The strings occur in exactly two ND program families, on the ND-210523 ("SCSI test") diskettes. Everything is plain 7-bit ASCII stored big-endian — not parity-set, not byte-swapped.
| diskette image | program file | version banner (byte offset) |
|---|---|---|
D:\ND\S\210523G02-XX-02D.image |
SCSI-TV-B00.TEST |
SCSI Test and Verify - Version : B00 - 1988-06-15 @ 531 |
D:\ND\S\210523G02-XX-02D.image |
DISK-MM-B00.TEST |
DISK Media Maintenance - Version : B00 - 1988-06-09 @ 541 |
D:\ND\S\210523H00-XX-02D.image |
SCSI-TV-C00.TEST |
SCSI Test and Verify - Version: C00 - 1988-12-08 @ 531 |
D:\ND\S\210523H00-XX-02D.image |
DISK-MM-B01.TEST |
DISK Media Maintenance - Version : B01 - 1988-11-14 @ 541 |
D:\ND\S\Nd-210523I01-XX-02D.img |
SCSI-TV-C04.TEST |
SCSI Test and Verify - Version: C04 - 1990-06-11 @ 2991 |
D:\ND\S\Nd-210523I01-XX-02D.img |
DISK-MM-C03.TEST |
DISK Media Maintenance - Version: C03 - 1990-06-11 @ 31237 |
D:\ND\S\210523G02-XX-02D.image-org |
identical copy of the G02 diskette | — |
The B00 program's overlays SCSI-TV-OVL2/OVL3/OVL4-B00.NEXT each contain a
second, identical copy of both tables (SCSI-TV-OVL2-B00.NEXT @ 26232
etc.), because a TPE overlay is a relinked image of the whole program.
[VERIFIED]
Files were extracted read-only with
ndtool -x -o <dir> <image> (no -p). Raw-image offsets of the tables inside
210523G02-XX-02D.image are 681032, 719372, 761266, 873602, 885700 etc.
(one per copy of the program on the diskette) — the per-file offsets below are
the authoritative ones. [VERIFIED]
Not on the wiki list: ND-DMM_1988-09-30.image¶
D:\ND\S\ND-DMM_1988-09-30.image offset 1185333 (0o4413065) carries the
free-text help line [VERIFIED]:
Micropolis 1375 : 1024
CDC EMD 97201 : 512
CDC WREN IV : 512
CDC WREN IV appears nowhere else and is not in the wiki list.
[INFERRED] these are the drives' native block sizes in bytes.
2. Record layout, byte-verified¶
Anchor example: SCSI-TV-B00.TEST (from 210523G02-XX-02D.image).
2.1 PRODUCT table — 18 bytes per record: 16 ASCII + 2-byte big-endian code¶
Starts at file byte 17290 (0o41612). Raw bytes of the first two records:
4c 44 20 31 32 30 30 20 53 43 53 49 20 20 20 20 "LD 1200 SCSI "
00 02 code = 2
31 33 37 35 20 20 20 20 20 20 20 20 20 20 20 20 "1375 "
00 00 code = 0
[VERIFIED]
2.2 VENDOR table — 16 bytes per record: 8 ASCII + code(2) + word-pointer(2) + (count-1)(4)¶
Starts at file byte 17488 (0o42120), 10 records, ends at 17648. Raw bytes of the first two records:
4e 44 4d 49 43 52 4f 50 00 00 8c ce 00 00 00 00 "NDMICROP" code 0 ptr 0x8cce n-1=0
4d 49 43 52 4f 50 20 20 00 00 8c ce 00 00 00 00 "MICROP " code 0 ptr 0x8cce n-1=0
[VERIFIED]
2.3 The pointer is a word address; the mapping is exact [VERIFIED]¶
byte_offset = 2 × word_address − 54784, i.e. file byte 0 loads at word
0o65400 (27392 = 0x6B00). All ten vendor pointers land exactly on a product
record start under this one constant — that is the proof, not an assumption:
| vendor | ptr | 2·ptr−54784 | product record found there |
|---|---|---|---|
OSI |
0x8cc5 | 17290 | LD 1200 SCSI |
NDMICROP |
0x8cce | 17308 | 1375 |
CDC |
0x8cd7 | 17326 | 94161-156 |
TANDBERG |
0x8cf2 | 17380 | TDC 3600 |
ARCHIVE |
0x8d0d | 17434 | VIPER 150 21247 |
NDSTK |
0x8d16 | 17452 | 2925 |
EXABYTE |
0x8d1f | 17470 | EXB-8200 |
The 4-byte trailing field is (number of products − 1): CDC and TANDBERG
carry 2, and each of them owns exactly 3 consecutive 18-byte product records;
every other vendor carries 0 and owns 1. [VERIFIED by the arithmetic above —
the pointer deltas 9 / 27 words are exactly 1 / 3 records.]
2.4 The two code fields¶
- The vendor
codeis a small vendor index (0…7). - The product
codeis a small model index.
They are different enumerations — OSI has vendor code 4 while its product
LD 1200 SCSI has product code 2 — and the product enumeration is not stable
across versions (94171-9 is code 7 in SCSI-TV-C00 but code 8 in
SCSI-TV-C04; 88780 is 8 in C00 and 10 in C04). [VERIFIED by comparison of
the dumps in §3.] What each index selects (test parameters? defect-list
format?) was not determined — NOT FOUND in the strings, and no
disassembly was done.
No device-type byte and no Direct/Sequential/Write-Once field exists in these
records. The 16-byte vendor record and 18-byte product record are fully
accounted for by the fields above. The wiki's "Device type" column has no
counterpart in the table — the programs get the peripheral device type from
the live INQUIRY reply instead (SCSI-TV prints it in its bus listing, §4.1).
[VERIFIED by exhaustive field accounting]
3. The tables, decoded, per version [VERIFIED]¶
3.1 SCSI-TV-B00.TEST (1988-06-15) — 10 vendor records, 11 product records¶
| vendor (byte) | vcode | product (byte) | pcode |
|---|---|---|---|
NDMICROP 17488 |
0 | 1375 17308 |
0 |
MICROP 17504 |
0 | (same) | |
CDC 17520 |
1 | 94161-156 17326EMD 97201 (736) 17344EMD 97201 (368) 17362 |
7 1 1 |
NDCDC 17536 |
1 | (same three) | |
ARCHIVE 17552 |
3 | VIPER 150 21247 17434 |
3 |
TANDBERG 17568 |
2 | TDC 3600 17380TDC 3600 EXPR. 17398RG TDC 3600 17416 |
4 4 4 |
NDTANDBE 17584 |
2 | (same three) | |
OSI 17600 |
4 | LD 1200 SCSI 17290 |
2 |
NDSTK 17616 |
5 | 2925 17452 |
5 |
EXABYTE 17632 |
6 | EXB-8200 17470 |
6 |
3.2 SCSI-TV-C00.TEST (1988-12-08) — 16 vendor records, 13 product records¶
Vendor table 17516…17772, product table 17264… (base 54784, same mapping).
| vendor | vcode | products |
|---|---|---|
NDMICROP, MICROP |
0 | 1375 (0) |
CDC, NDCDC |
1 | 94171-9 (7), EMD 97201 (736) (1), EMD 97201 (368) (1) |
TANDBERG, NDTANDBE |
2 | TDC 3600 (4), RG TDC 3600 (4), TDC 3600 EXPR. (4) |
ARCHIVE, NDARCHIV, ND ARCHV |
3 | VIPER 150 99999 (3), VIPER 150 21835 (3), VIPER 150 21247 (3) |
OSI |
4 | LD 1200 SCSI (2) |
NDSTK |
5 | 2925 (5) |
NDEXABYT, NDEXABY, EXABYTE |
6 | EXB-8200 (6) |
HP, NDHP |
7 | 88780 (8) |
Deltas from B00: 94161-156 replaced by 94171-9; HP 88780 added;
two more ARCHIVE VIPER serial variants added; six vendor aliases added.
[VERIFIED]
3.3 SCSI-TV-C04.TEST (1990-06-11) — 17 product records; vendor record shrinks to 14 bytes¶
Product table at file byte 54334, vendor table at 54640. In C04 the
vendor record has no vcode field: it is 8 ASCII + wordptr(2) + count-1(4)
= 14 bytes. Raw: 4e 44 4d 49 43 52 4f 50 d5 28 00 00 00 00. The word→byte
base is still 54784 and every pointer again lands on a product record.
[VERIFIED]
| vendor | products (pcode) |
|---|---|
NDMICROP, MICROP |
1375 (0) |
CDC, NDCDC |
94171-9 (8), EMD 97201 (736) (1), EMD 97201 (368) (1), 94181-15 (9) |
ARCHIVE, NDARCHIV, ND ARCHV |
VIPER 150 99999 (3), VIPER 150 25066 (3), VIPER 150 21835 (3), VIPER 150 21247 (3) |
TANDBERG, NDTANDBE |
TDC 3600 (4), RG TDC 3600 (4), TDC 3600 EXPR. (4) |
OSI |
LD 1200 SCSI (2) |
NDSTK |
2925 (5) |
NDEXABYT, NDEXABY, EXABYTE |
EXB-8200 (6), EXB-8500 (6) |
HP, NDHP |
88780 (10) |
Deltas from C00: EXB-8500 and 94181-15 added, VIPER 150 25066 added.
[VERIFIED]
3.4 DISK-MM — a disk-only table, different enumeration¶
DISK-MM-B00.TEST (1988-06-09): vendor table @ 34660 (16-byte records),
product table @ 34570.
| vendor | vcode | products (pcode) |
|---|---|---|
NDMICROP 34660 |
0 | 1375 (0) |
NDCDC 34676 |
1 | EMD 97201 (000) (1), EMD 97201 (368) (1), EMD 97201 (736) (1), 94171-9 (2) |
DISK-MM-B01.TEST (1988-11-14) is identical in content (tables at 34664 /
34574). [VERIFIED]
DISK-MM-C03.TEST (1990-06-11): 14-byte vendor records @ 45586, product table
@ 45370, 12 products:
1375 (0)
EMD 97201 (000) (1) EMD 97201 (368) (1) EMD 97201 (736) (1) EMD 97201 (1.2) (1)
94171-9 (2) 94171-7 (2) 94171-5 (2) 94171- (2)
94181-15 (3) 94181-13 (3) 94181- (3)
NDMICROP ptr 0xc39d (1 product), NDCDC ptr 0xc3a6 (11 products) — both
verified against base 54784. [VERIFIED]
[INFERRED] the trailing-blank entries 94171- and 94181- are
wildcard/family catch-alls; the record is a fixed-width prefix so a shorter
string matches a whole family. Not proven — no comparison code was read.
4. What the code does with the table¶
4.1 The bus listing prints the RAW INQUIRY reply, not the table [VERIFIED]¶
SCSI-TV-B00.TEST offset 5848 / 5878 / 5898:
DEVICES CONNECTED TO ADAPTOR
Block Media
Scsi Device Vendor Product size size
id type id id rev (dec.) (dec.)
Dir Seq Pri Pro WORMRdO ---
So the device-type classes (Dir / Seq / Pri / Pro / WORM / RdO) and
the vendor/product/rev fields shown to the operator come from the live
INQUIRY data, not from the table.
4.2 The table is a whitelist — failed lookup has its own errors [VERIFIED as strings]¶
DISK-MM-B00.TEST, error-message block, byte 45072-45264:
45072 (DF) Reservation conflict ( already reserved by another user )(DF) Disk table full(CS) No space in heap
45176 (CS) Disk drive vendor unknown to the program
45222 (CS) Disk drive is unknown to the program
45264 (CS) Error in consistency of partition block (not INITIALIZED ?)(CS) Table index out of range
(VD) Unknown disk type.
Identical strings at 44874 / 45180 / 45226 in DISK-MM-B01.TEST. [VERIFIED]
SCSI-TV-B00.TEST byte 63708-63902, the STV-A00 module's error enumeration:
No device selected / No space in free area / Unknown vendor / Unknown product /
No memory available / Memory already Used / Element is allocated outside area /
Wrong ident code / No ident code / Driver error return /
Parameters outside range / No information available
SCSI-TV-OVL2-B00.NEXT byte 2706 (also OVL3 @ 2774, OVL4 @ 2844, and
SCSI-TV-D0..D3-C00.NEXT):
Selected SCSI id number is not present
Unknown product
Unknown vendor
This test is not applicable for the selected drive
Unknown drive type in test
Errorous data read back from drive
[INFERRED] Two distinct errors — one for the vendor lookup, one for the
product lookup — plus a per-vendor product sub-list is the shape of a
two-level whitelist: match the 8-byte INQUIRY vendor field against the vendor
table, then match the 16-byte product field only against that vendor's product
records. This test is not applicable for the selected drive /
Unknown drive type in test show the consequence is at least a test being
refused.
NOT DETERMINED: whether an unmatched drive aborts the program or only
disables some tests. That requires disassembling the ND-100/PLANC code, which
was not done here. Structural evidence that a lookup loop exists: in
SCSI-TV-B00.TEST the constant 0x8d28 (= word address of the vendor table
start) occurs at byte 17726, and 0x8d78 (= word address of the vendor table
end) at 17770 and 17892 — a base/limit pair. [VERIFIED bytes, INFERRED
meaning.]
4.3 Other operator-facing messages found [VERIFIED]¶
SCSI-TV-B00.TEST: * Unable to detect device type (device not present ?) *
(byte 1478), Illegal SCSI type (15480), Illegal device record size (15498),
Unsupported function (28354, in the SCSI additional-sense text table),
Drive not ready (13970), Reservation conflict (15844),
Unexpected or illegal SCSI status (in DISK-MM at 41110).
5. Where the strings are NOT — the negative results¶
All of the following were searched with find_nd_strings.py in four
encodings — plain 7-bit ASCII, parity-set (byte | 0x80), byte-swapped word
pairs, and byte-swapped at odd phase — case-insensitively, for the needles
NDMICROP, MICROP, TANDBERG, NDTANDBE, ARCHIVE, VIPER, VIPER 150,
NDCDC, NDSTK, EXABYTE, 97201, 21247, TDC 3600, LD 1200 SCSI,
94161, 94171, 2925, 1375.
5.1 SINTRAN III (K / L / M) — NOT FOUND [VERIFIED]¶
Scanned: every *.bin under
E:\Dev\Ronny\NDInsight\tools\sintran-segment-carver\versions\ —
K-VSX-500, L-VSX-500, M-VSX-500, all carved segments plus
resident\SINTRAN-DATA_commoncode.bin (228 .bin files, 200 MB).
A second, exhaustive pass over the same 228 .bin files with the full needle
set NDMICROP NDCDC NDSTK NDTANDBE EXABYTE EXB-8 "VIPER 150" "TDC 3600"
"LD 1200" 97201 94171 94161 94181 88780 "ARCHIVE " returned literally
--- 0 hit(s). [VERIFIED]
Result: zero hits for any SCSI vendor or product string. The only
TANDBERG hits in the whole carved corpus are in
L-VSX-500\segments\134-SNA3270.bin at bytes 198696…199213, which is the
terminal-type list (3:TANDBERG-TDV2115, 36:TANDBERG-TDV2215-EXTENDED,
…) — unrelated to SCSI. [VERIFIED]
The carved SCSI driver/disk-layer segment 065-S3SIPIT.bin (L and M,
104 448 bytes) contains no ASCII strings at all — every printable run ≥6
chars is code bytes that happen to fall in the printable range. [VERIFIED by
exhaustive strings extraction]
5.2 SINTRAN NPL source and symbol lists — NOT FOUND [VERIFIED]¶
E:\Dev\Ronny\NDInsight\SINTRAN\NPL-SOURCE\ (92 MB, including SYMBOLS\L07,
K03, M06, the IP-P2-SCSI-*.NPL drivers and s3vs-4.symb) contains no
SCSI vendor/product string. The only TANDBERG matches are comments about the
Tandberg mag-tape controller and a Tandberg terminal
(s3vs-4.symb:4981 % TANDBERG MAG.TAPE DATAFIELD, :8055 % A TANDBERG
TERMINAL, IP-P2-1.NPL:402). [VERIFIED]
5.3 The kernel structurally cannot hold them [VERIFIED]¶
SINTRAN\NPL-SOURCE\NPL\IP-P2-SCSI-DISK.NPL:1216-1256 (listing 062214-062310),
the INQUI routine, quoted:
062215 INQUI: SUTYP/\SMASK\/77400=:SUTYP % ZERO OLD STATUS
062221 T:=SMBP1; X:=SMBP2 % PHYSICAL ADDRESS OF COMMAND BUFFER
062223 11000; *STATX 00; STZTX 10 % COMMAND (0x1200 = INQUIRY)
062226 "SINBL" SHZ 11; *STATX 20 % ALLOCATION LENGTH
...
062251 T:=SMBP1; X:=SMBP2+SINBS; *LDATX 00
062255 A\/377/\SUTYP=:SUTYP % UPDATE DEVICE TYPE INFORMATION
062260 IF A SHZ -10=0 OR =3 OR =4 THEN
062270 SUTYP BONE 5SCDA=:SUTYP % DIRECT ACCESS DEVICE
Only byte 0 of the INQUIRY reply (the peripheral device type) is ever read.
The allocation length is 8 (already byte-verified in
CARVED-DISC-SUPPORT.md §4.2 from the carved words at 062624/062625), so
the vendor field (INQUIRY bytes 8-15) and product field (bytes 16-31) are never
even transferred. [VERIFIED — source text plus the previously byte-verified
allocation length.]
5.4 MACM — NOT FOUND [VERIFIED]¶
Scanned D:\ND\BPUN\ entire directory, including MACM-1718L.BPUN,
MACM-1718K.BPUN, MACM-1718K:BPUN, MAC.BPUN, SINTRAN-I:DATA, and the
MACM copies on D:\ND\S\N-102-292-I.img, VSXK2.img,
N-250306K05--02D.img. Zero hits. The only TDC match in that tree is
TCD= TEST CDC MATRIX PRINTER in ND-disk-00501.img (a byte-swapped false
positive). [VERIFIED]
5.5 Real installed hard-disk images — the tables appear on exactly ONE ND disk, as an installed copy of the diagnostics [VERIFIED]¶
Every image in D:\ND\HDD\ was scanned (≈7 GB, 34 files produced hits out of
the whole directory; needles NDMICROP NDCDC NDSTK NDTANDBE EXABYTE VIPER
"LD 1200 SCSI" "TDC 3600" 97201 21247 ARCHIVE TANDBERG, all four encodings).
One ND image contains the tables: D:\ND\HDD\nd-test_ny.img. [VERIFIED]
| what | byte offset | contents |
|---|---|---|
| SCSI-TV product table | 713790 (0o2562076) | LD 1200 SCSI … 88780 — 17 records, identical to SCSI-TV-C04.TEST §3.3 |
| SCSI-TV vendor table | 714096 (0o2562560) | NDMICROP … NDHP — 17 records, 14-byte format |
| SCSI-TV version banner | 764848 (0o2725660) | SCSI Test and Verify - Version: C04 - 1990-06-11 |
| DISK-MM product table | 932154 (0o3434472) | 1375 … 94181- — 12 records, identical to DISK-MM-C03.TEST §3.4 |
| DISK-MM vendor table | 932370 (0o3435022) | NDMICROP, NDCDC |
| DISK-MM version banner | 946694 (0o3471006) | DISK Media Maintenance - Version: C03 - 1990-06-11 |
[INFERRED] This is simply the SCSI-TV/DISK-MM diagnostic pair copied
onto a SINTRAN file system, not a kernel or driver structure — the byte content
is identical to the diskette files of §3.3/§3.4, banners included.
All other ND disc images are NOT FOUND, including the SCSI-attached ones:
BIGDISK0-SCSI.IMG, SCSI-K.image, scsi-1.img, scsi-k.img,
sintran_iii_m05_st31200n.image, BIGDISK0-K/K2/L/M.IMG, 1325.img,
WD0-L/M.img, the c3* family, HD0.IMG, COPYTEST.IMG, tor-disk.img.
Their hits are all noise: TANDBERG from the terminal-type list, ARCHIVE
from the @COPY-USERS-FILES COPY-MODE help text ("Set a special mode for
copying, e.g. COPY, ARCHIVE, etc."), and VIPER/21247/97201 from
byte-swapped false positives inside Norwegian error text and octal patch
listings. [VERIFIED — each inspected.]
Not ND software: the SunOS/BSD images in the same directory
(micropolis1355-sun2-sunos1.1/2.0.img, my-sun2-s3.2-disk.img,
sun2-sunos-3.2.img, SUN2_BSD.img, MacDisk.img) carry their own
unrelated SCSI drive tables — e.g. SUN2_BSD.img @1243514
EXABYTE .EXB-8200 . … TANDBERG. TDC 3600 .ARCHIVE .VIPER 150
21247.VIPER 1500 21247., and my-sun2-s3.2-disk.img @11215812
HP.8124.LMS.ARCHIVE.WANGTEK.ADAPT.>..EXABYTE.st%d: warning, unknown tape
drive found.... These are Sun's st/probe_fbs driver tables and have
nothing to do with Norsk Data. [VERIFIED]
[INFERRED] A running SINTRAN system does not store the SCSI identity of its drives anywhere on disc, consistent with §5.3 — the only occurrences on disc are file-system copies of the diagnostic programs.
5.6 Rest of D:\ND\ — only modern emulator artefacts [VERIFIED]¶
A sweep of D:\ND\ excluding the already-covered S\ and HDD\ trees (needles
NDMICROP NDCDC NDSTK EXABYTE NDTANDBE "LD 1200 SCSI" "TDC 3600" 97201
"VIPER 150") produced hits in only 13 files, all of them modern. It found
NDMICROP / 1375 only in present-day SCSI-emulator artefacts created for
this project:
D:\ND\110.2\SCSI-EMU\bluescsi.ini (offsets 107, 294, 1403),
zuluscsi.ini, sd-card-prepped\*.ini, zululog.txt (7200),
dump-log.txt (82690). These are BlueSCSI/ZuluSCSI configuration and logs, not
ND software. D:\ND\S\Test-microprogram\*.exe (RetroCore.exe,
RetroCommander.exe, TDV.exe) and
D:\ND\S\string-scsi.txt / scsi-string-7.txt / tempfile are likewise
present-day project artefacts (the latter three are earlier strings dumps of
the 210523H00 diskette). [VERIFIED]
The remaining hits in that sweep were 97201 inside hex/trace dumps
(D:\ND\5000\RetroCommander.exe, D:\ND\500\csharp-window2-1095k-1100k.txt,
nd500x-window2-1095k-1100k.txt, FraTor\nc\*.txt) — decimal/hex digit runs,
not device names. [VERIFIED — each inspected.]
6. Mapping the wiki list onto the binaries¶
| wiki row | present in a binary? | where |
|---|---|---|
NDMICROP / 1375 / Direct |
YES | SCSI-TV B00, C00, C04; DISK-MM B00, B01, C03 |
TANDBERG / TDC 3600 / Sequential |
YES, as TDC 3600 (leading blank) |
SCSI-TV all versions |
OSI / LD 1200 SCSI / Write Once |
YES | SCSI-TV all versions |
NDCDC / EMD 97201 (736) / Direct |
YES | SCSI-TV all versions; DISK-MM all versions |
NDCDC / EMD 97201 (368) / Direct |
YES | SCSI-TV all versions; DISK-MM all versions |
NDSTK / 2925 / Sequential |
YES | SCSI-TV all versions |
ARCHIVE / VIPER 150 21247 / Sequential |
YES, as VIPER 150 21247 (two blanks) |
SCSI-TV all versions |
All seven wiki rows are real strings. But the wiki list is incomplete — it omits everything in §0's last row — and the "Device type" column is not a field in the table (§2.4); it must have come from a manual, not from the binary. [VERIFIED / INFERRED as marked.]
7. Reproducing this¶
# vendor/product string hunt, all encodings
python E:\Dev\Ronny\NDInsight\tools\boot-floppy\tools\find_nd_strings.py `
-n NDMICROP -n NDCDC -n NDSTK -n EXABYTE -n "LD 1200 SCSI" -n "TDC 3600" `
-n "VIPER 150" -n 97201 <file-or-directory>
# extract a diskette read-only (never use -p on binaries)
wsl -d Ubuntu -- bash -lc "ndtool -x -o /tmp/out /mnt/d/ND/S/210523G02-XX-02D.image"