*DECK     DAP 
          IDENT  P.DAP
          B1=1
          ENTRY  P.DAP
 DAP      SPACE  4,10 
 DAP      TITLE  P.DAP - DYNAMIC ARRAY PARAMETER TEST ROUTINE.
          COMMENT PASCAL 6000 DYNAMIC ARRAY PARAMETER TEST ROUTINE. 
          COMMENT COPYRIGHT (C) UNIVERSITY OF MINNESOTA - 1978. 
 DAP      SPACE  4,10 
***       P.DAP - DYNAMIC ARRAY PARAMETER TEST ROUTINE. 
*         J. P. STRAIT       78/07/24.
* BRING DOCUMENTATION UP TO CODING STANDARDS. 
 DAP      SPACE  4,16 
***       P.DAP - DYNAMIC ARRAY PARAMETER TEST ROUTINE. 
* 
*         FUNCTION (*$E'P.DAP'*) DAP(N : INTEGER) : BOOLEAN;
* 
*         CALLING DAP FROM A PASCAL PROCEDURE OR FUNCTION DETERMINES
*         WHETHER THE N-TH PARAMETER (WHICH MUST BE DECLARED TO BE
*         A DYNAMIC ARRAY) WAS ACTUALLY PASSED A DYNAMIC ARRAY
*         DESCRIPTOR.  IT IS ONLY POSSIBLE TO MAKE THIS DECISION
*         IF IT IS KNOWN FOR SURE THAT THE PROCEDURE WAS PASSED 
*         EITHER A DYNAMIC ARRAY DESCRIPTOR OR THE ADDRESS OF AN
*         ARRAY.  IN OTHER WORDS, IF A NON-DYNAMIC ARRAY WHICH FITS 
*         INTO ONE WORD MAY BE PASSED, THIS TEST MAY INCORRECTLY
*         DECIDE THAT A DYNAMIC ARRAY PARAMETER WAS PASSED. 
* 
*         ENTRY  (B1) = 1.
*                (X0) = NUMBER OF PARAMETER TO TEST.
* 
*         EXIT   (X6) = 1 (TRUE) IF DYNAMIC ARRAY, ELSE 0 (FALSE).
* 
*         USES   A - 1. 
*                B - 7. 
*                X - 0, 1, 6. 
* 
*         CALLS  NONE.
* 
*         MACROS NONE.
  
  
*CALL     COMSPAS 
  
  
 P.DAP    PS                 ENTRY/EXIT 
          SX0    X0+PFLC-1   BIAS FOR ZERO-TH PARAMETER 
          SA1    B5+X0       GET N-TH PARAM WORD
          SB7    X7          RETURN ADDRESS 
          SX6    B1          ASSUME PARAMETER IS DYNAMIC ARRAY
          NZ     X1,P.DAP    IF A DYNAMIC ARRAY 
          SX6    B0          SET NOT DYNAMIC ARRAY PARAMETER
          EQ     P.DAP       RETURN 
 DAP      SPACE  4
          END 
