Skip to content

SINTRAN III monitor-call analysis - TASK-05 deliverable

Per-call reverse-engineering bundle for the undocumented / unclear SINTRAN III monitor calls (ND-100 + ND-500), version L-VSX-500. Each call has its own folder with a README.md (analysis + Mermaid dispatch flow + "how this was carved"), a .ASM, and the carved handler .bin where the handler is a carved binary. Generated from the folders that actually exist on disk.

Friend's TASK-05 list coverage: 31/31 folders.

Status meanings (honest, per what is actually in each folder): - real SINTRAN L bytes ... + bin = the actual L machine code, carved from a segment (file-system handlers from 006-S3FS.bin; ND-500 level-12 handlers from the S3MPIT overlay - see ../../EXTRACTING-RESIDENT-CODE.md 7.6/7.7). - NPL source - DIFFERENT revision = .ASM is original NPL source of a different SINTRAN revision; behaviour is right, exact L bytes are not (real L recovery pending via the overlay method). - carved-only (stub) = routing verified, handler body still inside a carved segment not yet disassembled - no fabricated .ASM/.bin.

Consolidated verified contracts: ../TASK-05-results.md.

MON 60B / N500M (ND-500 monitor) - separate large sub-effort

Beyond the TASK-05 list, the folder 60B-N500M/ holds the full MON 60B carve: 47 subfunction folders (README + .pseudo.c + verbatim .npl), the 5IFUNC dispatch table, the documented-subfunction list, and the caller-vs-worker cross-analysis. Its server-side twin (the ND-500 system monitor that 5NOPAR hands off to) is carved under ../ND500-SYSTEM-MONITOR/. The re/ tree index is ../README.md.

ND-100 calls (friend TASK-05 list)

MON Folder Status
5B 005B-ReadScratchFile real SINTRAN L bytes (carved segment) + bin
6B 006B-WriteScratchFile real SINTRAN L bytes (carved segment) + bin
13B 013B-ClearInBuffer carved-only (stub, no fabricated code)
14B 014B-ClearOutBuffer carved-only (stub, no fabricated code)
15B 015B-Undocumented real SINTRAN L bytes (S3RPIT overlay) + bin
42B 042B-Undocumented documented (GOTAB[42B]=0 fall-through; body in uncarved CALLPROC)
45B 045B-DefineBreakpoint real SINTRAN L bytes (S3RPIT overlay) + bin
51B 051B-DMACBreakpoint real SINTRAN L bytes (S3RPIT overlay) + bin
67B 067B-OutBufferSpace real SINTRAN L bytes (carved segment) + bin
74B 074B-SetStartByte real SINTRAN L bytes (carved segment) + bin
75B 075B-GetStartByte real SINTRAN L bytes (carved segment) + bin
120B 120B-WriteToFile real SINTRAN L bytes (carved segment) + bin
144B 144B-DeviceFunction real SINTRAN L bytes (carved segment) + bin
304B 304B-SendSIBASMessage NPL source - DIFFERENT revision (version-suspect)
313B 313B-InBufferState NPL source - DIFFERENT revision (version-suspect)
327B 327B-FileSystemFunction real SINTRAN L bytes (carved segment) + bin

ND-500 calls (friend TASK-05 list)

MON Folder Status
410B 410B-FixInMemory carved-only (stub, no fabricated code)
411B 411B-MemoryUnfix carved-only (stub, no fabricated code)
416B 416B-SaveND500Segment carved-only (stub, no fabricated code)
417B 417B-MaxPagesInMemory carved-only (stub, no fabricated code)
425B 425B-SetProcessName documented-absent (S3SM5 dispatch slot = 0x0000, byte-verified)
426B 426B-GetProcessNo documented-absent (S3SM5 dispatch slot = 0x0000, byte-verified)
427B 427B-GetOwnProcessInfo documented-absent (S3SM5 dispatch slot = 0x0000, byte-verified)
500B 500B-StartProcess real SINTRAN L bytes (S3MPIT overlay) + bin
501B 501B-StopProcess real SINTRAN L bytes (S3MPIT overlay) + bin
505B 505B-GetTrapReason real SINTRAN L bytes (S3MPIT overlay) + bin
510B 510B-CallSwapper real SINTRAN L bytes (S3MPIT overlay) + bin
511B 511B-DVIO real SINTRAN L bytes (S3MPIT overlay) + bin
512B 512B-XMSGCallA real SINTRAN L bytes (S3MPIT overlay) + bin
513B 513B-XMSGCallB real SINTRAN L bytes (S3MPIT overlay) + bin
515B 515B-MultipleDataTransfer real SINTRAN L bytes (S3MPIT overlay) + bin

Live status

For the authoritative, always-current per-call status (this hand-maintained table can drift), run the reporter:

python3 scripts/mon-status-report.py            # markdown; --json for machine-readable

Current: of the friend's 31 calls, 27 real SINTRAN L bytes + 4 documented negatives (42B fall-through; 425/426/427 absent from the S3SM5 dispatch), 0 not-started.

The GOTAB dispatch table is byte-verified in ../../resident/SINTRAN-DATA_commoncode.bin at 071233B (indexed 071233B+MON#); the odd-MON direct handlers (incl. 15B/45B/51B) live in the S3RPIT overlay (025-S3IRPIT.bin). See ../TASK-05-mismatches.md §G and ../../EXTRACTING-RESIDENT-CODE.md §8.