/* PLACE.INS.PLP, SEGSRC, KJC, 12/19/79
/* Insert file for subroutines PLACE
/* Copyright (c) 1981, Prime Computer, Inc., Natick, MA 01760
/*******************************************************************/

    declare word fixed binary(15);
    declare 1 buffer based,
             2 page   bit( 5) unaligned,
             2 offset bit(11) unaligned;
    declare locpag entry(bin);
    declare errsev fixed bin static external;

    if addr(loadpt)->bits > addr(high1)->bits
      then high1 = loadpt;   /* will change high location */
      else;
    if addr(loadpt)->bits < addr(low1)->bits
      then low1 = loadpt;    /* will change low location */
      else;
    if segpnt = curseg(1) & addr(loadpt)->page = curpag(1)
      then;
      else do;
        curpag(1) = addr(loadpt)->page;
        call locpag(0);
       end;
    loasav =  curbuf(1) + addr(loadpt)->offset;/* save location loaded */
    addr(loadsg)->pointer->bin = word; /* load location */
    loadpt = loadpt + 1;               /*update load point*/
    if loadpt = 0 & relflag = 0
      then do; call tnou('SEGMENT WRAP AROUND TO 0',24); /* error checking */
               errsev =1;end;
      else;

    return;
