Skip to content

ND-210073 — ISAM for ND-100/ND-500

Status: IN-PROGRESS — install mechanics verified from two real decoded scripts, including a genuine standalone ISAM floppy set; programming API NOT documented (source manual not in this repo)

Field Value
ND article number ND-210073 (unified ND-100+ND-500 product; older ND-10073 was ND-100-only and ND-10343 was ND-500-only, both max 6 keys — see below)
Product name ISAM for ND-100/ND-500
Functional category Database / file-access library — used from FORTRAN, PLANC, Pascal, and COBOL, not a standalone application
ND doc-category tag 60 General [curated]
CPU target ND-100 and ND-500 (file-compatible between the two)
OS requirement unknown — no install PD sheet located
Related products ND-10343 older ND-500-only ISAM (max 6 keys vs. this product's max 64) · ND-10176/ND-10177/ND-210177 COBOL, which also bundles ISAM directly on its own floppies (see below) — a genuine standalone ISAM floppy set (revision G) was found and decoded in this session, see below

What ISAM is

Indexed Sequential Access Method — disk storage/retrieval of records by index (key) or in sequential order, call-oriented (you call routines from the ISAM library). COBOL's own indexed file organization uses it directly; FORTRAN, PLANC, and Pascal call it explicitly. An ISAM file is normally two SINTRAN files (index part + data part), optionally one. Full feature list: ../../Product-Info/ND-210073-A1-EN.md. [PI]

Key numbers, per the PI sheet: up to 64 keys per file (all may have duplicates, may overlap, group keys allowed), up to 2^24 records, max record length 32 Kbytes, max key length 240 bytes, fixed or variable record length, ND-500 version "at least 4 times faster" than ND-100. [PI]

The four modules — what's actually on disk

Every mention of ISAM found on a real floppy in this catalog uses the same four-module shape the PI sheet describes:

Module What it is Confirmed on disk as
ISAM library all ISAM routines, linked into your program ISAMRT-I00:BRF (ND-100) — loaded as a background RT process, not linked directly into each program; see the install procedure below
ISAM service program interactive: convert a SINTRAN file to ISAM, modify structure (create/delete keys), reset error flag, verify/repair consistency, unload/load, rebuild index from data, estimate index size ISAM-SERVICE-I00:PROG (ND-100), ISAM-SERVICE-K01:PROG/ISAM-SERVICE-K02:PROG (ND-500, on the COBOL-500 floppies)
ISAM interactive interactive store/retrieve/modify/delete without writing a program ISAM-INTER-I00:PROG (ND-100), ISAM-INTER-K01:PROG (ND-500)
ISAM multiuser supervisor resolves concurrency between programs sharing the same ISAM files IS-MULTI-K00:NRF/:MODE (found only on the ND-500 COBOL floppies, e.g. ND-210177J02 — no ND-100-side multiuser supervisor file has been found)

Correction — standalone ISAM floppies DO exist, at the older revision G: real floppy images ND-10073G-PART1/-PART2 (ND-100) and ND-10343G-PART1/-PART2 (ND-500) were downloaded via NDwiki (imaged by Torfinn "Tingo" Ingolfsen) and decoded in this session. They confirm the exact same four-module shape at an earlier revision letter: ISAM-1BANK-G:BRF/ISAM-2BANK-G:BRF (ND-100 library, both bank splits — see TWO-BANK-PROGRAMS.md), ISAM-LIB-G:NRF (ND-500 library), ISAMRT-G:LOAD + ISAMRT-G:BRF (the RT-loader script and its library, shared identically between the ND-100 and ND-500 floppy sets), ISAM-INTER-G:BPUN, ISAM-SERVICE-G:BPUN. Later revisions (I00 etc.) happen to also be bundled onto COBOL floppies (ND-10176H00, ND-210177J02), which is what led to the earlier "no standalone floppy" note — that note is now superseded.

Installing the ND-100/500 ISAM runtime — REAL, decoded ISAMRT-G:LOAD (fuller than the I00 version)

Source: byte-for-byte decode (byte & 0x7F) of the real file, in full. [MODE]

@CC
@CREATE-FILE ISAM-WORK:BPUN,0
@SCHEDULE 503
@RT-LOADER
YES
DELETE-PROGRAM ISAMRT1
CLEAR-SEGMENT <SEGNO>
YES
NEW-SEGMENT <SEGNO>,,,,,,,
LOAD ISAMRT-G:BRF,,,,,,
YES
LOAD ISAM-1BANK-G:BRF,,,,,
WRITE-LOAD-ADDRESS,,,,
WRITE-REFERENCES,,,,
END-LOAD
BINARY-DUMP ISAM-WORK,<SEGNO>,,,,,
Y
Y      Load ISAMRT1 onto segment <SEGNO>
Y
CLEAR-SEGMENT <SEGNO>
YES
NEW-SEGMENT <SEGNO>,,,,,,,,
READ-BINARY ISAM-WORK,,,,,
Y
Y      The following patch will insert internal device number (octal)
Y
CHANGE-LOCATION ,,,,,,
2/<DEVNO>
.
END-LOAD
DECLARE-PROGRAM ISAMRT1,,,,,
END-LOAD
CHANGE-RT-DESCRIPTION ISAMRT1,47,<SEGNO>,,0
END-LOAD
EXIT
@DELETE-FILE ISAM-WORK:BPUN

Reading it: two full @RT-LOADER passes. The first LOADs ISAMRT-G:BRF and ISAM-1BANK-G:BRF together onto a scratch segment and BINARY-DUMPs the result to a work file (ISAM-WORK:BPUN) — this is how the library gets linked into the runtime. The second pass re-reads that binary, uses CHANGE-LOCATION to patch a specific word (offset 2 from a located symbol — this is the ISLUN symbol the comment header names) to the chosen internal device number, then DECLARE-PROGRAM/CHANGE-RT-DESCRIPTION register it as the RT process ISAMRT1 (priority 47). Two internal device numbers are consumed (DEVNO and DEVNO+1). Running a second ISAM runtime concurrently means repeating the whole script with ISAMRT2, a new segment number, and a new device-number pair. This matches and adds real mechanism detail beyond the shorter ISAMRT-I00:MODE script already summarized on ND-10176H00's page.

Installing the ND-500 ISAM multiuser supervisor — REAL, decoded script

See ND-210177J02's own writeup for the full verbatim IS-MULTI-K00:MODE script — a Linkage-Loader script that creates a shared common data segment (IsPool/IsParam/IsHeadFil/IsHeadRec/IsRecArr) which the COBOL runtime library then attaches to for multiuser ISAM coordination.

Programming against ISAM — NOT DOCUMENTED HERE, by design

This document does not cover ISAM's actual call syntax (routine names, parameters, how to OPEN/CREATE/READ/WRITE/define keys from FORTRAN, PLANC, Pascal, or COBOL's SELECT clause) — the ISAM Reference Manual (ND-60.108.5 Rev. A EN) is not in this repo. Do not invent this content. If deeper programming detail is needed: 1. Source/OCR the ISAM Reference Manual (ND-60.108.5) and add it to Reference-Manuals/. 2. In the meantime, COBOL's own indexed-file SELECT/ORGANIZATION IS INDEXED clauses (general ANSI-74 COBOL, documented in ND-60.144 already in this repo) are the closest available in-repo reference for the COBOL side specifically — not verified to map 1:1 onto this ISAM product's own extensions (multi-user modes, the 64-key limit, etc.).

Documentation

Provenance

Install scripts: real, decoded from the ND-10176H00 and ND-210177J02 floppies (see those docs for MD5s and extraction method). Product/feature description: PI sheets only, no PD sheet located.


Parent: ../README.md (Software catalog)