ASMB,L,C,R
      HED DBBUF IMAGE/1000 POINTER STORAGE AREAS
      NAM DBBUF,7 92069-16164 REV.1912 790130 
* 
* 
******************************************************************* 
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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. 
******************************************************************* 
* 
* 
*     SOURCE:    92069-18164
*     RELOC:     92069-16164
* 
*     PRGMR:     CEJ
* 
* 
******************************************************************* 
* 
* 
* 
*  DBBUF is a subroutine containing only the space for and entry points 
*  into the data base pointer table, the current Run Table address, the 
*  DCB pointer table, the record buffer and the record buffer's length. 
* 
*  The Run Table pointer table (DBRTP) contains the primary pointers to the 
*  Run Table(s) of the data base(s) open to the program.  There is room 
*  in this table for up to 20 Run Tables.  The current Run Table address
*  is kept in AIRUN.
* 
*  The DCB pointer table (DBDCP) contains the primary pointers to the DCBs
*  allocated for the program and the data base and data set mumber to 
*  which the DCB currently belongs.  There is room in this table for up 
*  to 17 DCBs.
* 
*  The record buffer pointer (DBRBP) is the primary pointer to the record 
*  buffer allocated for the program.  There is only one record buffer 
*  whose length is kept in DBRBL. 
* 
*  In addition to the buffer pointers, DBBUF contains an external reference 
*  needed to attach the memory manager pointer storage areas for managing 
*  the available memory.  Only one copy of DBBUF (and the memory manager
*  pointers) may be attached to a program to insure proper access to data 
*  bases through the IMAGE software.  This could cause a problem in seg-
*  mented programs.  Therefore the main module of a segemented program must 
*  reference DBBUF in some fashion.  In order to facilitate this, the entry 
*  point DBBUF is provided for a subroutine call in the main module.  When
*  called, DBBUF merely picks up the return point and jumps back.  In turn, 
*  DBBUF contains the external reference to the memory manager necessary to 
*  load its pointers with the main. 
* 
      ENT AIRUN,DBBUF,DBDCP,DBDCT,DBDMX,DBDSZ,DBRBL 
      ENT DBRBP,DBRTM,DBRTP 
      EXT .ENTR,AVLM
      SUP 
* 
PARS  BSS 0 
DBBUF NOP 
      JSB .ENTR 
       DEF PARS 
      JMP DBBUF,I 
* 
*  Run Table pointer table
* 
DBRTP DEF *+1 
      REP 20
      NOP 
DBRTM DEC 20
* 
*  Storage for current Run Table address
* 
AIRUN NOP 
* 
*  DCB pointer table
* 
DBDCP DEF *+1 
      REP 34
      NOP 
DBDCT NOP 
DBDMX DEC 17
DBDSZ DEC 272 
* 
*  Record buffer pointer
* 
DBRBP DEC -1
* 
*  Record buffer length 
* 
DBRBL NOP 
      END 
                                                                                                  