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.