There are several memory locations in low core that are mapped to specific CPU functions.  These memory locations provide a direct way for the program to communicate with the CPU.  We will reserve the first 1k of memory for CPU usage.  Here are some of the memory mapped locations we will need to use:

RSTNPSW  DS    D  RESTART NEW PSW
RSTOPSW  DS    D  RESTART OLD PSW
         DS    F
         DS    F
EXTOPSW  DS    D  EXTERNAL OLD PSW
SVCOPSW  DS    D  SVC      OLD PSW
PGMOPSW  DS    D  PROGRAM  OLD PSW
MCKOPSW  DS    D  MACHINE CHECK OLD PSW
IO$OPSW  DS    D  I/O      OLD PSW
CSW      DS    D  CHANNEL STATUS WORD
CAW      DS    F  CHANNEL ADDRESS WORD
         DS    F
ITIMER   DS    F  INTERVAL TIMER
         DS    F
EXTNPSW  DS    D  EXTERNAL NEW PSW
SVCNPSW  DS    D  SVC      NEW PSW
PGMNPSW  DS    D  PROGRAM  NEW PSW
MCKNPSW  DS    D  MACHINE CHECK NEW PSW
IO$NPSW  DS    D  I/O           NEW PSW

I have created a macro (@LOWCORE) to map these memory locations.  We will use the two words following the Restart Old PSW as pointers to control blocks.  This will allow the control blocks to be easily located since they are anchored at a fixed location.

[Next – TXXNUC00]