ASMB,R,L,C
*     NAME:   SCAN
*     SOURCE: 92070-18115 
*     RELOC:  92070-16115 
*     PGMR:   D.J.W.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
* 
* 
      NAM SCAN,7  92070-1X115  REV.1941  790711 
* 
* 
*  SCAN SCANS THE DUMMY BASE PAGE AREA FOR AN EXISTING BASE 
*  PAGE LINK MATCHING THE DESIRED LINK VALUE.  FIRST A SCAN 
*  IS DONE OF USER AREA.  IF NOT FOUND, A SCAN IS DONE OF 
*  DUMMY SYSTEM AREA. 
* 
*  CALLING SEQUENCE:  JSB SCAN
*                     DEF RETURN
*                     DEF OPRND      VALUE TO SCAN FOR
*                     DEF BPADR      A-REG/ +/-, USE IT/ NOT FOUND
* 
      ENT SCAN,NOFBP,NOFSB
      EXT .ENTR,CBP.L,FWAVB,FWSYB,OFFBP 
* 
A     EQU 0 
B     EQU 1 
* 
OPRND BSS 1 
BPADR BSS 1 
NOFBP BSS 1 
NOFSB BSS 1 
* 
SCAN  NOP 
      JSB .ENTR     RETRIEVE PARAMETER ADDRESSES
      DEF OPRND 
* 
*  SEARCH USER BASE PAGE
* 
      LDA CBP.L     CURRENT AVAIL ACTUAL BASE PAGE
      ADA OFFBP     CHANGE TO DUMMY ADDRESS 
      STA DMPTR     SET AS UPPER BOUND ON SEARCH
      LDA FWAVB     GET DUMMY FIRST WORD
      LDB OPRND,I   AND OPERAND TO BE MATCHED 
SCR   CPA DMPTR     EQUAL TO CURRENT AVAILABLE BASE PAGE ?
      JMP NOTFD     YES, VALUE NOT FOUND IN DUMMY AREA
      CPB A,I       NO, CONTENTS EQUAL TO VALUE TO MATCH ?
      JMP FOUND     YES, FOUND IT ! 
      INA           NO, CHECK NEXT DUMMY BASE PAGE LOCATION 
      JMP SCR 
* 
NOTFD LDA FWSYB     NOT FOUND, SEARCH DUMMY SYSTEM BASE PAGE
SRCS  CPA FWAVB     EQUAL TO FIRST WORD USER BASE PAGE ?
      JMP NOTFS     YES, NOT FOUND IN SYSTEM AREA 
      CPB A,I       NO, CONTENTS EQUAL TO VALUE TO MATCH ?
      JMP FOUNS     YES, FOUND IT IN SYSTEM AREA
      INA           NO CHECK NEXT DUMMY LOCATION
      JMP SRCS
* 
*  NOT FOUND IN USER OR SYSTEM DUMMY BASE PAGE AREA 
* 
NOTFS CCA           SET BPADR TO NEGATIVE VALUE 
      STA BPADR,I 
      JMP SCAN,I
* 
*  FOUND A MATCH IN SYSTEM AREA 
* 
FOUNS ADA NOFSB     CALCULATE DUMMY ADDRESS OF MATCHING LINK
      STA BPADR,I 
      JMP SCAN,I
* 
*  FOUND MATCHING LINK IN DUMMY USER AREA 
* 
FOUND ADA NOFBP     CALCULATE BASE PAGE LINK ADDRESS
      STA BPADR,I   AND SET IN SECOND PARAMETER 
      JMP SCAN,I
* 
DMPTR BSS 1 
      END 
                                                                                                                                                                    