MON 60 (N500M) Subfunction Table - Authoritative¶
Every MON 60 subfunction code 000B-177B, with its purpose and server-side handler,
taken from the SINTRAN worker source:
SINTRAN/NPL-SOURCE/NPL/5P-P2-MON60.NPL
- Purpose column = the verbatim
% FUNCTION=nnn:comment in that source (authoritative). - Handler column = the routine named in the
INTEGER ARRAY 5IFUNCdispatch (line 1319).5NOPAR= generic path (no special input-parameter marshalling; the message is forwarded to the ND-500 through the common5NOPARroutine).ILLFUNC= illegal/unimplemented (EILFUNC).0= table slot unused. - Client column = the name used by the ND-100 monitor program's thunk (from
Developer/MON/calls/60B_N500M.yaml), and the thunk address innd-500-mon-j04.prog(seeSINTRAN/ND500/nd-500-mon/mon60-callers/INDEX.md).
IMPORTANT: NPL is a different build revision than the L07 binary. Treat purposes/handler
names as authoritative LOGIC, confirmed where the L07 thunk exists. FUNCMAX=177
(5P-P2-MON60.NPL:287); codes 155-167 are annotated "free for patching". All codes octal.
This table is the reference for the per-command folders under
SINTRAN/ND500/nd-500-mon/mon60-callers/.
Full table (000B - 177B)¶
| Code | Handler (5IFUNC) | Purpose (NPL FUNCTION= comment) | Client name (yaml) |
|---|---|---|---|
000 |
5NOPAR | READ A REGISTER | RRREG |
001 |
5NOPAR | (write a register) | WRREG |
002 |
5NOPAR | LOGICAL PROGRAM MEMORY READ | RPROG |
003 |
5NOPAR | LOGICAL DATA MEMORY READ | RDATA |
004 |
IPMWRITE | LOGICAL PROGRAM MEMORY WRITE | WPROG |
005 |
IDMWRITE | LOGICAL DATA MEMORY WRITE | WDATA |
006 |
ISEGLOAD | LOAD (PLACE), ONE SEGMENT | PLACE |
007 |
IPLSWAPPER | PLACE SWAPPER | SWLOD |
010 |
5NOPAR | READ ALL REGISTERS | RRREG_BLOCK |
011 |
IWRGS | WRITE REGISTERS | WRREG_BLOCK |
012 |
5NOPAR | START ND-500 PROGRAM | RUNN |
013 |
ICONNFI | CONNECT FILE | CNCFI |
014 |
5NOPAR | (close file) | CLSFI |
015 |
5NOPAR | RESERVE ND-500 PROCESS | RESRV |
016 |
5NOPAR | RELEASE ND-500 PROCESS | RELIS |
017 |
5NOPAR | (list open files) | LISOP |
020 |
5NOPAR | (time used) | TIMUS |
021 |
5NOPAR | (who is on) | WHO |
022 |
5NOPAR | (set error flag) | ERRFL |
023 |
5NOPAR | READ CONTROL STORE (equal for func=157) | REACS |
024 |
IWCNT | WRITE CONTROL STORE | WRICS |
025 |
5NOPAR | (micro start) | MICST |
026 |
5NOPAR | DATA MEMORY EXAMINE (4 BYTES) | DMEXAM |
027 |
5NOPAR | (data memory deposit) | DMDEP |
030 |
5NOPAR | PROGRAM MEMORY EXAMINE (4 BYTES) | PMEXAM |
031 |
5NOPAR | (program memory deposit) | PMDEP |
032 |
5NOPAR | PHYSICAL DATA MEMORY READ | ABSMR |
033 |
IDAMW | PHYSICAL DATA MEMORY WRITE | ABSMW |
034 |
5NOPAR | (micro stop) | MSTOP |
035 |
5NOPAR | (master clear) | MSTCL |
036 |
5NOPAR | (undocumented; live thunk exists) | -- |
037 |
ICSLOAD | LOAD CONTROL STORE (LOAD A FILE INTO CS) | LDCS |
040 |
5NOPAR | (define memory configuration) | DEFM |
041 |
5NOPAR | READ ND-500 INTERFACE STATUS | RSTAT |
042 |
5NOPAR | LOG OFF PROC. AND TERMINATE ND-100 PROGR. | -- |
043 |
ISRES | RESERVE ND-500 CPU/SYSTEM FOR SPECIAL USE | SPRES |
044 |
ISREL | RELEASE ND-500 CPU/SYSTEM FROM SPECIAL USE | SPREL |
045 |
5NOPAR | (see 046/047 swap-file pair) | DEFSW |
046 |
IDEFSWAP | DEFINE SWAP FILE | -- |
047 |
IDELSWAP | DELETE SWAP FILE | DELSW |
050 |
5NOPAR | (test function) | TESTF |
051 |
5NOPAR | READ INTERFACE (COMMUNICATION), IODATUT REGISTER | RIFRG |
052 |
5NOPAR | (give ND-500 pages) | G500P |
053 |
5NOPAR | (take ND-500 pages) | T500P |
054 |
5NOPAR | (start swapper) | STSWP |
055 |
ISPLACE | START-PLACE | SPLAC |
056 |
IEPLACE | END-PLACE | EPLAC |
057 |
5NOPAR | READ MICRO PROGRAM VERSION | MPVER |
060 |
5NOPAR | LIST MEMORY CONFIGURATION | LIMEM |
061 |
IMRESSPES | RESERVE MEMORY FOR THE ND-500 TEST-MONITOR | -- |
062 |
IDEFHIST | DEFINE HISTOGRAM | HIDEF |
063 |
ISTAHIST | START HISTOGRAM | HISTA |
064 |
ISTOHIAT | STOP HISTOGRAM | HISTP |
065 |
IREAHIST | READ HISTOGRAM | HISTN |
066 |
IRELHIST | STOP AND RELEASE HISTOGRAM | HIREL |
067 |
ISPRTE | READ PROCESS ENTRY FROM NAME SEGMENT | SPRTE |
070 |
5NOPAR | READ A PROCESS TABLE ENTRY FROM THE SYS.MON | GPRTE |
071 |
ISSGTE | READ PHYS.SEGMENT ENTRY FROM NAME SEGMENT | SSGTE |
072 |
5NOPAR | READ A PHYS.SEGMENT TABLE ENTRY FROM SYS.MON | GSGTE |
073 |
5NOPAR | READ FROM A PHYSICAL SEGMENT | RPHSG |
074 |
ISPRNM | SET NAME ON CURRENT PROCESS | SPRNM |
075 |
ITSTUSER | CHECK IF CURRENT USER IS USER SYSTEM | USYST |
076 |
ITOSWP | MESSAGE TO SWAPPER | TOSWP |
077 |
IRMESS | READ MESSAGE | RPROC |
100 |
RRFLAG | READ FLAGS FROM ND-500 DATA SEGMENT | RFLAG |
101 |
WWFLAG | WRITE FLAGS INTO ND-500 DATA SEGMENT | SPFLAG |
102 |
IFORGET | STOP ND-500 SYSTEM (ABORT ALL ACTIVE PROCS, RELEASE MON60 BUFFERS) | GPSGE |
103 |
IRSYSP | READ SYSTEM VARIABLES | RSYSP |
104 |
IWSYSP | WRITE SYSTEM PARAMETERS | WSYSP |
105 |
5NOPAR | SET PRIORITY | SPRIO |
106 |
5NOPAR | (link to process) | LNKPR |
107 |
5NOPAR | (undocumented) | -- |
110 |
IWPHSG | WRITE INTO A PHYSICAL SEGMENT | WPHSG |
111 |
ISTAPRLOG | START PROCESS LOG ONE | SLOG1 |
112 |
ISTOLOG | STOP LOGGING | STOPLOG |
113 |
IPRILOG | READ LOG DATA (PRINT LOG INFO) | RLOG |
114 |
IRELLOG | STOP LOGGING AND RELEASE LOGGING FACILITY | RELLOG |
115 |
ISTLAPR | START PROCESS-LOG-ALL | SLOGA |
116 |
5NOPAR | LOG OFF OWN PROCESS | -- |
117 |
IPRABORT | ABORT PROCESS | ABORT |
120 |
5NOPAR | (set output device) | SETOUT |
121 |
5NOPAR | READ FROM SWAPPERS DATA MEMORY (LOGICAL ADDRS) | RDSWP |
122 |
ILOGOFF | LOGOFF PROCESS | LOGOUT |
123 |
IMRELSPES | RELEASE ND-500 AND MEMORY USED BY THE ND-500 TEST SYSTEM (HAREM) | RELMEM |
124 |
ISTAMLOG | START MONITOR CALL LOG | SMONLOG |
125 |
IPRIMLOG | READ MONCALL LOG DATA (PRINT MONCALL LOG) | PMONLOG |
126 |
ISTOMLOG | STOP AND RELEASE MONCALL LOG | XMONLOG |
127 |
IDFSYDOM | DEFINE STANDARD DOMAIN | DEFDOM |
130 |
ISFSYDOM | START STANDARD DOMAIN | PLADOM (see note) |
131 |
IDLSYDOM | DELETE STANDARD DOMAIN | DELDOM |
132 |
5NOPAR | (list standard domains) | LSTDOM |
133 |
ILI5EXQ | LIST ND-500 EX-QUEUE | LSTEXQ |
134 |
IPLDEB | PLACE DEBUGGER | PLADBG |
135 |
IABLOG | LOG OFF PROCESS AND ABORT ND-100 PROGRAM (RT-PROGRAM) | -- |
136 |
IPRACTIVE | ACTIVATE STOPPED PROCESS | ACTIV |
137 |
0 | (table slot unused) | UNUSED |
140 |
5NOPAR | (undocumented) | -- |
141 |
5NOPAR | (set block size of a file) | SETBLK |
142 |
5NOPAR | (redefine default infant file) | DEFINF |
143 |
IMO5RT | ACTIVATE PROGRAM EITHER IN ND-500 OR IN ND-100 | -- |
144 |
ICHACPU | CHANGE CPU | -- |
145 |
ISSTDOM | START STANDARD DOMAIN FROM S3 OP.COM. | -- |
146 |
ILLFUNC | (illegal) | -- |
147 |
ILLFUNC | (dispatch=ILLFUNC; a FUNCTION=147 comment "ESCAPE TYPED WHILE RUNNING STD DOMAIN" exists - reached by another path) | -- |
150 |
ILI5TQU | LIST ND-500 TIME-QUEUE | -- |
151 |
ILLFUNC | (illegal) | -- |
152 |
ILLFUNC | (illegal) | -- |
153 |
ILLFUNC | (illegal) | -- |
154 |
5NOPAR | DEBUG SWAPPER |
-- |
155 |
5NOPAR | (free for patching) | -- |
156 |
5NOPAR | READ SYSTEM INFO | -- |
157 |
IWCNT | WRITE CONTROL STORE (equal for func=024) | -- |
160 |
IN5SEGLOAD | LOAD (PLACE), ONE SEGMENT (NEW DOMAIN FORMAT) | -- |
161 |
INDFSYDOM | DEFINE STANDARD DOMAIN (NEW DOMAIN FORMAT) | -- |
162 |
5NOPAR | (undocumented) | -- |
163 |
5NOPAR | (undocumented) | -- |
164 |
5NOPAR | (undocumented) | -- |
165 |
5NOPAR | (undocumented) | -- |
166 |
5NOPAR | DUMP-TRACE-MEMORY | -- |
167 |
5NOPAR | (undocumented) | -- |
170 |
5NOPAR | READ ND-500 CPU-TYPE AND MIC.VERSION | -- |
171 |
5NOPAR | (undocumented) | -- |
172 |
5NOPAR | READ HW SCRATCH REGISTER FILE | -- |
173 |
ICPUSTAT | SET CPU STATUS | -- |
174 |
ILLFUNC | (illegal) | -- |
175 |
ILLFUNC | (illegal) | -- |
176 |
ILLFUNC | (illegal) | -- |
177 |
5NOPAR | (undocumented; FUNCMAX boundary) | -- |
Notes and reconciliations¶
-
5NOPARis not "no-op". It is the common input path: the handler computes the process number and forwards the message to the ND-500 without special parameter marshalling (5P-P2-MON60.NPL:1889). A subfunction can be fully functional and still dispatch to5NOPAR(e.g.041READ INTERFACE STATUS,060LIST MEMORY CONFIG). -
Subfunction
130= START STANDARD DOMAIN, per the NPL, not "place domain". The yaml client namePLADOMand the NDInsight table sit on this code, but the authoritative purpose is START STANDARD DOMAIN (ISFSYDOM), one of the standard-domain family127/130/131(define/start/delete). The operator command PLACE-DOMAIN most likely brackets a place with055START-PLACE +006LOAD-ONE-SEGMENT +056END-PLACE rather than issuing130. Which operator command reaches130needs the command dispatch table to confirm; do not assume it is PLACE-DOMAIN. -
This binary extends past the documented table. The NDInsight yaml documents
0-142B. Codes143B-173Bare real here:143activate-program,144change-CPU,145start-standard-domain-from-op.com,150list-time-queue,154debug-swapper,156read-system-info,157write-control-store (alias of024),160/161new-domain-format place/define,166dump-trace-memory,170read-CPU-type+mic-version,172read-HW-scratch-register-file,173set-CPU-status. The remaining5NOPARslots above142Bhave noFUNCTION=comment and are marked undocumented. -
Duplicate
WRITE CONTROL STORE:024and157share the handlerIWCNT(the NPL notes "equal for func=157"). Likewise023READ CONTROL STORE notes "equal for func=157" in the read direction. -
147dispatches toILLFUNCin the array, yet aFUNCTION=147comment ("ESCAPE TYPED WHILE RUNNING STANDARD DOMAIN STARTED FROM S3 OP.COM.") exists - the escape path is reached by a mechanism other than the5IFUNCindex. Noted, not resolved.
Source of every purpose string: the % FUNCTION=nnn: comments and the 5IFUNC array in
SINTRAN/NPL-SOURCE/NPL/5P-P2-MON60.NPL.