RPROC¶
MON 60 subfunction RPROC = 077B (octal) = 0x3F = 63 decimal.
NPL purpose (authoritative, 5P-P2-MON60.NPL): READ MESSAGE, server handler
IRMESS.
Note: RPROC is the yaml client name for this subfunction; the authoritative
server-side purpose is READ MESSAGE (IRMESS). Named here by the yaml client name
RPROC; no operator command name is invented.
All addresses are OCTAL ND-100 word addresses, BANK 1, base 0.
Source: SINTRAN/ND500/nd-500-mon/nd-500-mon-j04.prog.asm
Handler location - six call sites¶
Every site marshals two parameters: one word is a small constant loaded P-relative (a selector/code, role INFERRED) and one is a pointer to a buffer in the caller's frame; their slot order varies.
| Call site | JPL | ptr -> thunk | Enclosing routine | ,X 6 |
,X 7 |
Error (callsite+1) | Success (callsite+2) | Status |
|---|---|---|---|---|---|---|---|---|
| 001332 | JPL I 135 |
001467 -> 146613 | 001264 (fs 000153) | const (LDA 142) |
&(B-170) | 001333 JPL -42 |
001334 LDA ,B -152 |
PROVEN |
| 001510 | JPL I -21 |
001467 -> 146613 | 001264 | const (LDA 37) |
&(B-170) | 001511 JPL I 136 -> 001271 |
001512 SAA 14 |
PROVEN |
| 001545 | JPL I -56 |
001467 -> 146613 | 001264 | const (LDA -30) |
&(B-170) | 001546 JPL I 101 -> 001271 |
001547 LDA ,B -152 |
PROVEN |
| 001625 | JPL I -136 |
001467 -> 146613 | 001264 | const (LDA -131) |
&(B-170) | 001626 JPL I 21 -> 001271 |
001627 LDA ,B -152 |
PROVEN |
| 007531 | JPL I 102 |
007633 -> 146613 | 002662 (fs 000331) | const (LDA 107) |
&(B-52) | 007532 JPL -32 |
007533 RADD ... |
PROVEN |
| 104456 | JPL I 105 |
104563 -> 146613 | 103722 (fs 000605) | &(B-125) | const (LDA 106) |
104457 JPL I -77 -> 103735 |
104460 JMP I 104 -> 105011 |
PROVEN |
All six resolve to the single RPROC thunk 146613. The four sites in routine
001264 share pointer word 001467; their error paths converge on routine 001271.
Note on 001510: its parameters are stored at 001450-001455, then 001456 JMP 32
jumps over an intervening pointer/constant pool (001457-001507, mis-decoded as
instructions per prog.md sec 9.1) to land exactly on the 001510 call. The call site
is genuine; the store->call adjacency is broken only by that pool.
Thunk bytes (verified): 146613=170477 (SAA 77), 146614=125001, 146615=146244.
MON 60 subfunction used¶
| Subfn | Octal / Hex / Dec | Thunk | Parameter-block layout | Skip/Error |
|---|---|---|---|---|
| RPROC | 077B / 0x3F / 63 | 146613 | 2 words: a P-relative constant (selector) + a frame buffer pointer (order per site) | see per-site table |
What it does¶
At each site the caller loads a small constant into one param slot and a pointer to a
frame buffer into the other, then issues MON 60 RPROC to read a message. The four
001264 sites are variants (different constants) reading messages within one routine;
007531 is an interpreter case; 104456 reverses the slot order (buffer in slot 1).
Unknown / inferred¶
- PROVEN: two parameter words at every site.
- INFERRED: the P-relative constant is a message selector / mailbox id / length, and the frame pointer is the receive buffer. The exact constant values were not read back and the input/output split is not traced; the store operations are PROVEN.
- INFERRED (roles): routine
001264is a message-reading routine (issues RPROC four times);001271is its local error target;103722a larger routine. ENTER addresses and framesizes are PROVEN; internal behaviour not carved.