Skip to content

144B CHANGE CPU

MON 60 subfunction 144B (octal) = 0x64 = 100 dec.

Authoritative purpose (SUBFUNCTION-TABLE.md / 5P-P2-MON60.NPL): CHANGE CPU (ICHACPU). Server handler: ICHACPU.

All addresses are OCTAL ND-100 word addresses, BANK 1, base 0. Source: SINTRAN/ND500/nd-500-mon/nd-500-mon-j04.prog.asm

Thunk 146750 = SAA 144 ; JMP I 1 ; 146244 (gateway). Confirmed verbatim in the .asm.

Handler location(s)

Call site Enclosing ENTER-routine Framesize Error path (callsite+1) Success path (callsite+2)
010345 002662 000331 010346 -> ptr 010256 = 007500 (leaf error handler, role INFERRED) 010347 -> ptr 010513 = 010613 (command loop, PROVEN)
011231 011043 000236 011232 -> 011114 (leaf handler, role INFERRED) 011233 -> 011377 (continues in routine)

Every call site resolves as JPL I <disp> -> EA=P+disp -> bank1[EA] = pointer word = thunk 146750 (PROVEN by resolving the pointer word).

Parameter block filled before the call

Call site 010345 (in 002662):

  • param1 (,X 6) = &(B-127), where B-127 receives the value returned in D by the numeric-arg evaluator 002003 (010336 JPL I -37 -> ptr 010277=002003). Store at 010344. Value=CPU number: INFERRED.

Call site 011231 (in 011043):

  • param1 (,X 6) = &(B-152); B-152 := D copied from B-160 (011223 LDD ,B-160 / 011224 STD ,B-152). Store at 011230. Guarded by 011221 SKP IF DA EQL ST.

The block base is X := ,B -176 (stack top = base of the gateway frame); slot ,X n becomes MON 60 parameter n-5 (PROVEN convention, prog.md sec 4.4).

What the caller does

Both call sites pass a single pointer parameter in slot ,X 6 pointing at a local that holds a value. On CHANGE-CPU that value is the target CPU number (INFERRED from the ICHACPU purpose).

No file I/O or other MON call is issued around either site.

Unknown / inferred

  • INFERRED: the pointed-to value is the CPU number (the ICHACPU signature was not read from the server source).
  • INFERRED (role): 007500 and 011114 are leaf error handlers; 010613 is the command loop (PROVEN elsewhere: LOAD-CONTROL-STORE).
  • PROVEN: helper 002003 is the command-line numeric-arg evaluator (same helper used by LOAD-CONTROL-STORE).

Number bases

144B octal = 0x64 = 100 dec.