Installing an ND-500 Program Product on the SINTRAN III VSX/500 L Image¶
Worked example: ND-500 LINKAGE-LOADER, product number 210319, distribution media label
210319H02-XX-01D.
Target image: BIGDISK0-L.IMG (78,643,200 bytes), source of record
F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG, SINTRAN III VSX/500 L.
Scope: this is a procedure document. Nothing here was executed while writing it - the image was only READ (ndtool listing modes). Every command is traced to a manual, a repo document, or a listing shown below. Anything not traceable is marked ASSUMPTION or UNVERIFIED.
Companion documents in this repo:
- INSTALL-ND-LINKAGE-LOADER-AND-BACKUP-SYSTEM.md
- the live-session walkthrough of the same product, with observed gotchas.
- ND-500-MON Setup and Operations Guide
- domains, PLACE-DOMAIN, standard domains, swap files.
1. Where the 210319 media actually is on this machine¶
FOUND. The distribution floppy image is:
C:\Users\ronny\Downloads\ND-disk-00042.img (1,310,720 bytes)
Verified by reading its volume label and file list with ndtool (read-only -t mode, run
2026-07-28):
Volume: 210319H02-XX-01D
USER: FLOPPY-USER
[0000] 1988-03-03 17:49:34 (FLOPPY-USER)IN-NLL-XX-H02:PROG;1 194484 bytes 66 pages
[0001] 1988-03-03 17:50:13 (FLOPPY-USER)IN-NLL-XX-H02:XCOM;1 26030 bytes 13 pages
[0002] 1988-03-03 17:50:24 (FLOPPY-USER)IN-NLL-XX-H02:INIT;1 15514 bytes 8 pages
[0003] 1988-03-03 17:50:36 (FLOPPY-USER)DESCRIPTION-FILE:DESC;1 22528 bytes 8 pages
[0004] 1988-03-03 17:50:44 (FLOPPY-USER)LINKAGE-LOAD-H02:PSEG;1 123989 bytes 61 pages
[0005] 1988-03-03 17:51:30 (FLOPPY-USER)LINKAGE-LOAD-H02:DSEG;1 2184977 bytes 44 pages
[0006] 1988-03-03 17:52:13 (FLOPPY-USER)LINKAGE-LOAD-H02:LINK;1 0 bytes 0 pages
[0007] 1988-03-03 17:52:15 (FLOPPY-USER)LINKAGE-LOAD-H02:UTIL;1 2440 bytes 2 pages
The volume label IS the product identifier 210319H02-XX-01D, so this file is unambiguously the
product 210319 revision H02 media.
NOT FOUND: the prerequisite Backup System floppy 210337I04-XX-01D. The live-session document
records it as ND-disk-00081.img, but no file of that name exists in
C:\Users\ronny\Downloads or anywhere under F:\ND as of 2026-07-28. Its absence does not block
the installation on THIS image, because the Backup System is already installed on the pack
(see section 3).
Not in F:\ND: a recursive search of F:\ND for *210319* returned nothing. The floppy
images shipped alongside the L image (F:\ND\SINTRAN-L - 2026\FLOPPY\) are
210580B01-XX-01D.img, 210721C01-XX-01D.img, 211024E02-XX-01D.IMG,
211305B02-XX-01D.img, VSXL1.IMG, VSXL2.IMG, VSXL3.IMG - none of them is 210319.
Repo references to product 210319 (documentation, not media):
E:\Dev\Ronny\NDInsight\Installation\INSTALL-ND-LINKAGE-LOADER-AND-BACKUP-SYSTEM.mdE:\Dev\Ronny\NDInsight\Installation\Installation-Description\ND-211049-1-EN.md(lists 210319 LINKAGE-LOADER for ND-500 as a required product)E:\Dev\Ronny\NDInsight\Installation\Installation-Description\ND-210895-2-EN.md(lists210319HLINKAGE-LOADER for ND-500)E:\Dev\Ronny\NDInsight\Installation\Installation-Description\ND-211114-1-EN.md(requires Linkage Loader version H or later)E:\Dev\Ronny\NDInsight\Installation\Installation-Description\ND-895067-2-EN.mdE:\Dev\Ronny\NDInsight\Reference-Manuals\500\ND-500-MON-SETUP-AND-OPERATIONS-GUIDE.md
2. What an ND-500 program product consists of¶
From ND-500-MON-SETUP-AND-OPERATIONS-GUIDE.md section 3.0, which cites manual ND-60.136.04A
chapter 2:
- The executable unit is a DOMAIN, not a file. "For practical purposes a domain may be considered equivalent to a program."
- A domain is made of 1 to 32 segments. Each segment is a set of SINTRAN files sharing one
name:
:PSEG- the instruction (program) segment. Read-only at run time, read directly from the file, never written back, needs no swap-file space.:DSEG- the data segment.:LINK- used only during loading and by the symbolic debugger, not at run time.
- A domain is NOT a file. The segment tables for all domains of one user live in that user's
DESCRIPTION-FILE:DESC. There is no "program file" to run - you name the domain and the Monitor resolves it. - Each user has their own description file, up to 256 domains. Domain names are 1 to 16 characters, alphanumeric or hyphen.
- Compiler output before loading is an
:NRFrelocatable file. NLL turns:NRFinto:PSEG/:DSEG/:LINKplus a description-file entry.
So for product 210319 the actual product is the four files
LINKAGE-LOAD-H02:PSEG / :DSEG / :LINK / :UTIL plus the DESCRIPTION-FILE:DESC entry that
names the domain. :UTIL is not a domain segment type from the manual list.
UNVERIFIED: what :UTIL contains. The live session observed the installer copying
LINKAGE-LOAD-H02:UTIL to user UTILITY, and that file IS present on the pack today
((UTILITY)LINKAGE-LOAD-H02:UTIL, 2440 bytes), but I have not determined its purpose.
IN-NLL-XX-H02:PROG / :XCOM / :INIT are the ND-100 installer program and its data, not part
of the delivered ND-500 product.
Where each file must end up (from the live-session document, section 4):
| File | Destination |
|---|---|
LINKAGE-LOAD-H02:PSEG / :DSEG / :LINK |
user DOMAIN-USER (installer default) |
DESCRIPTION-FILE:DESC entry for domain LINKAGE-LOAD-H02 |
user DOMAIN-USER |
LINKAGE-LOAD-H02:UTIL |
user UTILITY |
Standard-domain name LINKAGE-LOADER |
ND-500 Monitor standard-domain table (SYSTEM only) |
3. Current state of BIGDISK0-L.IMG (read 2026-07-28)¶
Read with ndtool -u and ndtool -t against
F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG:
Users: 7
[000] SYSTEM 42 files Reserved: 15000 Used: 11182 Free: 3818
[001] FLOPPY-USER 0 files Reserved: 0 Used: 0 Free: 0
[002] UTILITY 3 files Reserved: 502 Used: 184 Free: 318
[003] BPUN-FILES 0 files Reserved: 1000 Used: 0 Free: 1000
[004] SCRATCH 25 files Reserved: 2500 Used: 30 Free: 2470
[005] RT 0 files Reserved: 0 Used: 0 Free: 0
[006] DOMAIN-USER 0 files Reserved: 1000 Used: 0 Free: 1000
Facts that follow directly from this listing:
- The Backup System IS already installed:
(UTILITY)BACKUP-SERV-I02:PROG,(UTILITY)BACKUP-SYS-I02:PROG,(SYSTEM)BACKUP-LOAD-I:MODE,(SYSTEM)BACKUP-LOAD-I:OUT,(SYSTEM)RESERVE-SYSTEM:MODE/:BATC,(SYSTEM)UE-ERMSG-EN-C05:ERR. The hard prerequisite is therefore satisfied and the missing 210337 floppy image is not needed for this pack. - Users
DOMAIN-USER(1000 pages) andUTILITY(502 pages) already exist with space. Prerequisites 1 and 2 of the live-session document are already done. - The NLL install is HALF DONE and currently broken.
(UTILITY)LINKAGE-LOAD-H02:UTILis present, and the installer left(SYSTEM)IN-NLL-XX-H02:INSTand(SYSTEM)IN-NLL-XX-H02:LOGGbehind, butDOMAIN-USERhas 0 files. This is exactly gotcha G12 in the live-session document: module 4's domain copy reported success and copied nothing. Section 5 below is therefore the procedure that actually matters for this image. - The ND-500 Monitor is present:
(SYSTEM)ND-500-MON-J:PROG,(SYSTEM)SWAPPER-K:PSEG,(SYSTEM)SWAPPER-K:DSEG,(SYSTEM)CONTROL-STORE:DATA. - There is NO
HENT-MODE:MODE, NOLOAD-MODE:BATCand NOND500-HENTfile on SYSTEM. The whole persistence chain described in section 7 does not exist on this image yet. Do not assume an append target exists - create it.
4. Prerequisites¶
| Prerequisite | Status on BIGDISK0-L.IMG | Command if missing |
|---|---|---|
| ND-500 Monitor available | present (ND-500-MON-J:PROG) |
out of scope here |
| ND-500 swapper + control store | present | out of scope here |
| Backup System installed | present | install 210337I04-XX-01D FIRST |
User DOMAIN-USER with space |
present, 1000 pages | CREATE-USER DOMAIN-USER then GIVE-USER-SPACE DOMAIN-USER, 1000 |
User UTILITY with >= 177 free pages |
present, 318 free | GIVE-USER-SPACE UTILITY, 500 |
| Free pages on SYSTEM | 3818 free | GIVE-USER-SPACE SYSTEM, <n> |
| Logged in as SYSTEM | required for DEFINE-STANDARD-DOMAIN (SYSTEM only, guide section 4.1) |
- |
| A swap file defined | UNVERIFIED - I did not determine whether a swap file is defined on this image | CREATE-FILE contiguous, then DEFINE-SWAP-FILE <name> (guide section 2.5) |
Note on the ND-500 subsystem: the guide states the swapper is normally loaded automatically on
the first ND-500 process. UNVERIFIED whether that works on this image without an explicit
LOAD-SWAPPER / START-SWAPPER.
Note on the ND-500 monitor entry point (MON 60B): the repo documents MON 60B / N500M as the
ND-100 side of the ND-500 interface. I did not verify that any special initialisation beyond
running @ND-500 is required, so nothing is claimed here.
Syntax reminders that apply to every command below (from the sintran-install skill):
@is the SINTRAN PROMPT. Do not type it at the terminal. Inside a:MODEor:BATCfile the@IS part of each line.- Double quotes mean "create this". They wrap the ENTIRE specification INCLUDING the
(USER)prefix:"(DOMAIN-USER)LINKAGE-LOAD-H02", never(DOMAIN-USER)"LINKAGE-LOAD-H02". - Command-name abbreviation is character-PREFIX per name part.
5. Install procedure¶
5.0 Mount the distribution floppy¶
In the emulator, attach C:\Users\ronny\Downloads\ND-disk-00042.img to a floppy unit, then in
SINTRAN, logged in as SYSTEM:
ENTER-DIRECTORY
DIRECTORY NAME: (empty CR - taken from the floppy label)
DEVICE NAME: FLOPPY-DISC-1
DEVICE UNIT: 0
Verify:
LIST-DIRECTORIES-ENTERED
LIST-FILES (210319H02-XX-01D:FLOPPY-USER)LINKAGE
Expect DIR INDEX nn : FLOPPY-DISC-1 UNIT 0 : 210319H02-XX-01D.
5.1 Route A - run the product installer (the ND-intended path)¶
(210319H02-XX-01D:FLOPPY-USER)IN-NLL-XX-H02:PROG
The installer presents a 5-module menu that must be run in order 1 to 5:
1 Get start information (which users get the domain / utility files:
defaults DOMAIN-USER and UTILITY)
2 Delete product files (strict YES/NO answers)
3 Check environment and resources
4 Copy product files (only allowed after module 3 says environment OK)
5 Exit program
Answering rules observed in the live session: a prompt reading (default: X) wants a VALUE, and
plain CR accepts the default - answering y there is taken as a literal user name and terminates
the installer. Module 2's questions insist on real YES / NO.
Verify module 4 before believing INSTALLATION FINISHED:
LIST-FILES (DOMAIN-USER)
If that listing is empty, module 4 failed silently. Go to route B.
5.2 Route B - install from the floppy by hand (the recovery path, and the one this image needs)¶
The floppy is itself a complete, runnable NLL installation under FLOPPY-USER: it carries a
DESCRIPTION-FILE:DESC plus the :PSEG / :DSEG / :LINK files. So NLL can be started from
the floppy and told to copy itself onto the disk.
Log in as the user who should OWN the loader. Domains on SYSTEM are found automatically for every user, so SYSTEM avoids needing a standard domain at all; the installer's own convention is DOMAIN-USER.
ND-500
N500: RECOVER-DOMAIN (210319H02-XX-01D:FLOPPY-USER)LINKAGE-LOAD-H02
NLL: COPY-DOMAIN (210319H02-XX-01D:FLOPPY-USER)LINKAGE-LOAD-H02,"LINKAGE-LOAD-H02"
NLL: LIST-DOMAIN
NLL: EXIT
COPY-DOMAIN with a quoted destination creates a new domain, and the destination always lands on
the CURRENT user - no user prefix is allowed on it (guide section 3.3, manual section 6.1.8).
Entering NLL creates the current user's DESCRIPTION-FILE:DESC if it is missing.
Test the local copy with the floppy no longer involved:
N500: LINKAGE-LOAD-H02
NLL: EXIT
Then, as SYSTEM, give it the short name:
N500: DEFINE-STANDARD-DOMAIN LINKAGE-LOADER (DOMAIN-USER)LINKAGE-LOAD-H02
(Drop the (DOMAIN-USER) prefix if the owner is SYSTEM.) DEFINE-STANDARD-DOMAIN is user SYSTEM
only.
Release the floppy:
RELEASE-DIRECTORY 210319H02-XX-01D
Status of route B: derived from manual ND-60.136.04A sections 6.1.8, 8.1.1, 8.1.2 as recorded in
INSTALL-ND-LINKAGE-LOADER-AND-BACKUP-SYSTEM.md. UNVERIFIED end to end on a live machine.
5.3 Route C - place the files with ndtool, offline (viable, with caveats)¶
ndtool can write files straight into the .img, which sidesteps the floppy device entirely.
E:\Dev\Ronny\norskdata-ndfs\ndfs-c\build-win\ndtool.exe
Extract from the floppy, then put into the pack. The emulator must be STOPPED while writing.
ndtool.exe -x -o C:\<somewhere>\nll C:\Users\ronny\Downloads\ND-disk-00042.img
ndtool.exe --put C:\<somewhere>\nll\LINKAGE-LOAD-H02.PSEG DOMAIN-USER/LINKAGE-LOAD-H02:PSEG "F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG"
ndtool.exe --put C:\<somewhere>\nll\LINKAGE-LOAD-H02.DSEG DOMAIN-USER/LINKAGE-LOAD-H02:DSEG "F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG"
ndtool.exe --put C:\<somewhere>\nll\LINKAGE-LOAD-H02.LINK DOMAIN-USER/LINKAGE-LOAD-H02:LINK "F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG"
ndtool.exe --put C:\<somewhere>\nll\DESCRIPTION-FILE.DESC DOMAIN-USER/DESCRIPTION-FILE:DESC "F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG"
ndtool.exe --chmod "PUBLIC+R" DOMAIN-USER/LINKAGE-LOAD-H02:PSEG "F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG"
Repeat --chmod for every file copied in.
Verdict: viable as a file-placement mechanism, but it is NOT a complete install. Reasons, each traceable:
--putleaves the new filePUBLIC=NONE, which producesNOT READ ACCESSfor any non-owner. Always follow with--chmod 'PUBLIC+R'(verified previously on this project).- ndtool writes sparse files FULL.
LINKAGE-LOAD-H02:DSEGis 2,184,977 bytes logical but only 44 pages on the floppy - a previous run of this same copy expanded a 44-page sparse DSEG to 1067 pages. DOMAIN-USER has 1000 pages reserved, so the copy can overflow the quota. Raise it first withndtool --quotaadd DOMAIN-USER <pages>or plan for the expansion. - The
NDFS_PATHform isUSER/NAME:TYPEwith a slash. The(USER)NAME:TYPEparen form MANGLES the name - do not use it. ndtool --fsckon this SMD image reports 2 PRE-EXISTING errors (a cross-link and a free-but-referenced block) which SINTRAN tolerates. Do not treat them as damage you caused.- Copying
DESCRIPTION-FILE:DESCwholesale brings the FLOPPY user's whole domain table with it. For a user with no other domains that is fine. For a user who already has domains it would overwrite them.
ASSUMPTION (not verified): that a description file copied byte-for-byte from the floppy is valid for a different owning user on a different pack. The domain table references segment files by name, and the names are unchanged, so it is plausible - but I did not verify it, and if it is wrong the symptom would be a domain that lists correctly and fails to place.
DEFINE-STANDARD-DOMAIN cannot be done by ndtool at all - the standard-domain table is a Monitor
run-time table, so that step always happens inside the running system.
6. Persistence - what does not survive a restart¶
The standard-domain table "survives a warm start but not a cold start" (guide section 4.1). The domain files themselves are ordinary SINTRAN files and do survive.
So after every COLD start the standard-domain definition must be re-issued. The ND convention, per the installer's own closing message:
Append to the ND500-HENT file on user SYSTEM:
@ND-500-MONITOR
DEFINE-STANDARD-DOMAIN LINKAGE-LOADER (DOMAIN-USER)LINKAGE-LOAD-H02
On BIGDISK0-L.IMG there is no ND500-HENT file and no HENT-MODE:MODE at all, so this must be
created and then wired into the boot chain. HENT-MODE:MODE is the cold-start mode file;
LOAD-MODE:BATC is the warm-start batch file
(Operations\SINTRAN\ND-30.003.007 EN SINTRAN III System Supervisor.md, appendix H).
UNVERIFIED: whether ND500-HENT is meant to be a :MODE file invoked from HENT-MODE:MODE, or
a separate file with its own invocation. The installer message quotes the name without a type.
Reminder from the skill: inside a :MODE file every line carries its own @, and a :BATC file
starts logged out so it must @ENTER SYSTEM,... and end with @EXIT.
7. How ND-500 install differs from ND-100 install¶
| ND-100 product | ND-500 product | |
|---|---|---|
| Delivered artefact | :PROG (runnable file) or :BPUN (binary punch) |
a DOMAIN: :PSEG + :DSEG + :LINK plus a DESCRIPTION-FILE:DESC entry |
| How it is made runnable by name | DUMP-PROGRAM-REENTRANT (or prompted DUMP-REENTRANT for :BPUN, which needs start/restart addresses) into the segment file |
DEFINE-STANDARD-DOMAIN in the ND-500 Monitor, SYSTEM only |
| Where "installed" state lives | the segment file SEGFIL0:DATA, plus RT-LOADER segments |
the user's description file (on disk) plus the Monitor's standard-domain table (in memory) |
| Loader used to build it | RT-LOADER / BRF-LINKER from :BRF |
ND-500-LINKAGE-LOADER from :NRF |
| Cold-start rebuild | HENT-MODE:MODE re-runs the RT-LOADER loads and reentrant dumps |
re-issue DEFINE-STANDARD-DOMAIN (the segment FILES persist; only the name table is lost) |
| Namespace | one system-wide reentrant-subsystem name space | per-user domain namespace, up to 256 domains per user |
| Invocation | @NAME at the SINTRAN prompt |
@ND-500 NAME, or NAME at the N500: prompt |
| Verification | LIST-REENTRANT |
LIST-DOMAIN, LIST-STANDARD-DOMAINS, WRITE-DOMAIN-STATUS |
The practical consequence: segment-file space can never explain a missing ND-500 domain. Segment files are an ND-100 reentrant mechanism; the NLL install never touches them. It copies plain files and defines a standard domain.
Note that a real product install mixes both worlds - product 210319 ships an ND-100 installer
program (IN-NLL-XX-H02:PROG) that installs an ND-500 domain, and its prerequisite (the Backup
System) is a pure ND-100 product installed with DUMP-PROGRAM-REENTRANT.
8. What could go wrong¶
All of these are real errors recorded in
INSTALL-ND-LINKAGE-LOADER-AND-BACKUP-SYSTEM.md from a live session, unless marked otherwise.
-
TOO LONG PARAMETERfrom@ND-500-LINKAGE-LOADER. Misleading. With no standard domain defined the name is treated as a domain name, and domain names are limited to 16 characters -ND-500-LINKAGE-LOADERis 21. It says nothing about the product being missing. The honest probe isN500: LINKAGE-LOADER, which answersDESCRIPTION FILE ERROR: DESCRIPTION-FILE / NO SUCH FILE NAMEwhen NLL has never been installed for that user. -
Module 4 reports success and copies nothing. CONFIRMED on this pack: the installer printed
Copying the domain ...,COPYING FINISHEDandDefining the domain: LINKAGE-LOADER as a standard-domainwith no error, yet DOMAIN-USER has 0 files today. The message is printed BEFORE the work and the result is not checked. Always verify withLIST-FILES (DOMAIN-USER). Root cause not determined. -
User DOMAIN-USER does not exist!aborts the whole installer. It re-prompts once then quits withYOU HAVE ABORTED THE PROGRAM. Create the user with pages first. -
The subsystem BACKUP-SYSTEM is not found./The environment is NOT OK.Module 3 fails hard if the Backup System is not installed. Install210337I04-XX-01Dfirst. That media is NOT present on this machine, so if the pack ever loses its Backup System this route is blocked until the floppy image is found. -
Illegal user name/User 'y' don't existthen termination. A(default: X)prompt was answeredy. Those prompts want a value; CR accepts the default. -
NOT REQUIRED ACCESS TO SEGMENTon RECOVER-DOMAIN. File access on the segment files. Fix withSET-FILE-ACCESSon the:PSEGand:DSEG(RW needed on:DSEGif the data segment swaps away from its original file). Documented in ND-60.136.04A chapter 14. The ndtool equivalent of this failure is--putleavingPUBLIC=NONE. -
NO SUCH (AMBIGUOUS) DOMAIN ON THE SPECIFIED USER. The domain name inside the floppy's description file differs from the file name. RunN500: LIST-DOMAIN (210319H02-XX-01D:FLOPPY-USER)to see the real name. -
Quota overflow when using ndtool. The 44-page sparse
:DSEGexpands to roughly 1067 pages when written back full - more than DOMAIN-USER's 1000 reserved pages. -
Directory-prefix abbreviation quirks.
(21:fl)worked with one floppy entered;(21-fl)gaveNO SUCH USER NAME IN MAIN DIRECTORY(hyphen instead of colon). With two product floppies entered, the second needed a longer prefix. AlsoLIST-DIRECTORIES-ENTEREDtakes a directory NAME, so a parenthesized spec givesILLEGAL CHARACTER IN PARAMETER. -
Cold start silently loses the loader. Everything works until the next cold start, then
LINKAGE-LOADERstops resolving because the standard-domain table is empty. The files are still there. See section 6. -
Leftover installer files.
(SYSTEM)IN-NLL-XX-H02:LOGGand:INSTmust be deleted by hand. Both are present on the pack right now.
9. What I could NOT verify¶
- The Backup System media
210337I04-XX-01D/ND-disk-00081.imgis not present on this machine. - Whether a swap file is defined on BIGDISK0-L.IMG, and whether the swapper auto-loads.
- What
LINKAGE-LOAD-H02:UTILis for. - Whether a
DESCRIPTION-FILE:DESCcopied byte-for-byte from the floppy is valid under a different user on a different pack (route C). - Whether
ND500-HENTis a:MODEfile and how it is chained fromHENT-MODE:MODE. - The root cause of the silent module 4 failure.
- Route B (the floppy recovery path) has never been confirmed on a running machine.
- Nothing in this document was executed. The disk image was opened read-only.
Document created: 2026-07-28
Method: sintran-install skill, repo documents cited inline, and read-only ndtool listings
of C:\Users\ronny\Downloads\ND-disk-00042.img and
F:\ND\SINTRAN-L - 2026\HDD\BIGDISK0-L.IMG.