*DECK     BPV 
          IDENT  P.BPV
          B1=1
          ENTRY  P.BPV
 BPV      SPACE  4,10 
 BPV      TITLE  P.BPV - POINTER TEST ROUTINE.
          COMMENT PASCAL 6000 POINTER TEST ROUTINE. 
          COMMENT COPYRIGHT (C) UNIVERSITY OF MINNESOTA - 1978. 
 BPV      SPACE  4,10 
***       P.BPV - POINTER TEST ROUTINE. 
*         J. P. STRAIT       77/09/09.
* BRING DOCUMENTATION UP TO CODING STANDARDS. 
* FIX FAILURE TO DETECT X0(BITS 17..0) = FL+1 . 
* REMOVE DEAD INSTRUCTION.
 BPV      SPACE  4,16 
***       P.BPV - POINTER TEST ROUTINE. 
* 
*         FUNCTION (*$E'P.BPV'*) BPV(P : POINTER) : BOOLEAN;
* 
*         ENTRY  (B1) = 1.
*                (X0) = POINTER VALUE.
* 
*         EXIT   (X6) = 1 (TRUE) IF BAD POINTER, ELSE 0 (FALSE).
* 
*         USES   A - 1. 
*                B - NONE.
*                X - 1, 2, 6. 
* 
*         CALLS  NONE.
* 
*         MACROS NONE.
 BPV      SPACE  4,10 
**        ASSEMBLY CONSTANTS. 
  
  
*CALL     COMSPAS 
  
  
 P.BPV    PS                 ENTRY/EXIT 
          SA1    =XP.GLOBL+FL  CURRENT FIELD LENGTH 
          SX6    B1          ASSUME BAD POINTER 
          SX2    X0-1        FWA NODE 
          IX1    X2-X1
          BX1    -X1+X2 
          NG     X1,P.BPV    IF POINTER NOT IN FIELD LENGTH 
          SA1    X2          KEY FROM NODE
          IX1    X0-X1
          NZ     X1,P.BPV    IF KEYS DO NOT MATCH 
          SX6    B0+         SET GOOD POINTER 
          EQ     P.BPV       RETURN 
 BPV      SPACE  4
          END 
