This is the declaration and comments associated with InStackArrayDec in the MCP 4.8.1 at 5032500.
PROCEDURE INSTACKARRAYDEC (MOTHER,FIRST_DATA_WORD,LET_IT_BE);
VALUE LET_IT_BE;
DESCRIPTOR MOTHER;
REAL FIRST_DATA_WORD;
BOOLEAN LET_IT_BE;
DESCRIPTION:
THE PROCEDURE INSTACKARRAYDEC CREATES AN INSTACK ARRAY. THIS
IS ACCOMPLISHED BY TOUCHING THE WOULD BE MOM AND FORCING THE
ADDRESS OF THE AREA DOWN THE THROAT OF ITS ASD. THE OTHER
FIELDS IN THE ASD ARE ALSO TOUCHED UP. THE INSTACK ARRAY
(DESCRIPTOR AND DATA) MUST BE IN THE RUNNING STACK OR THE MCP
STACK (SNR OR MCPSTACK).
PARAMETERS:
1. MOTHER - AN SIRW TO THE MOM.
2. FIRST_DATA_WORD - AN SIRW TO THE FIRST DATA WORD.
3. LET_IT_BE - TRUE IF THE ARRAY IS TO BE INSTACK AT ALL TIMES.
RESULTS:
THE MOTHER WILL BE A VALID DESCRIPTOR OF A PRESENT AREA THAT
IS POINTED TO BY THE FIRST_DATA_WORD.
ASSUMPTIONS:
1. THE FUNNY LINKS AROUND THE INSTACK ARRAY USED TO BE A DATA
DESCRIPTOR WITH PCBITSF OF '01' AND ADDRESSF OF MOM_ADDRESS.
IT IS NOW A TOUCHED COPY POINTING TO THE ASD SLOT. ONE MORE
CLEANUP AREA OR IS IT ALREADY DONE ?
2. THE WORD AT MOTHER CONTAINS A VALID UNTOUCHED DESCRIPTOR.
3. THE STACK CELLS IMMEDIATELY BEFORE AND IMMEDIATELY AFTER
ARE GARBAGE CELLS THAT CAN BE USED BY INSTACKARRAYDEC FOR
THE FUNNY LINKS.
4. ANY BLOCK THAT CALLS THIS PROCEDURE SHOULD HAVE A TAG 6
WORD WITH THE ONE-DIMENSIONAL ARRAY BIT SET AND SHOULD CALL
BLOCKEXIT (IF IT IS NOT IN THE MCPSTACK).
SIDE EFFECTS:
MOTHER WILL BE TOUCHED AND PRESENT ON DEPARTURE.
LOCKS:
NONE.