Google
 

Trailing-Edge - PDP-10 Archives - AP-4172F-BM - 3a-sources/rq1n.bli
There are 18 other files named rq1n.bli in the archive. Click here to see a list.
!THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
!  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
!
!COPYRIGHT (C) 1972,1973,1974,1977,1978 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 01754
!FILENAME:	RQ1N.BLI
!DATE:		2 JANUARY 1974
!AUTHOR:	CMU/FLD/KR

GLOBAL BIND H1REV=5;		!MODULE VERSION NUMBER

!THIS MODULE HANDLES THE "REQUIRE" DECLARATION

! REVISION HISTORY
!
!    6-20-77   ROUTINE SREQUIRE AND RELREQ ARE MODIFIED SO THAT
!               REQUIRE FILE NAME CAN BE IN SINGLE QUOTES.
!               REQUIRE FILE CAN BE IN SINGLE QUOTES OR NO QUOTES
!               AT ALL . NOW, THERE ARE TWO OPTIONS.
!
!    1/26/77	ADDED GARBAGE TO HANDLE LOAD& AND LIBRARY& COMMANDS
!		THIS INCLUDES THE FOLLOWING ROUTINES: GET6,GET8,GETLS,
!		LOOKFOR,RELREQ,SLOAD AND SLIBRARY.
!



FORWARD RELREQ;   !6-16-77

EXTERNAL ?.JBFF,BXA;

MACRO
    ELIF=ELSE IF$;

BIND
    TRUE=1,
    FALSE=0;

STRUCTURE STVEC1[I]=(TABLE+TIMXMF*(@.STVEC1 AND #77777)+.I)<0,36>;

MAP STVEC1 SYM:FUTSYM;

MACHOP CALLI=#47,XCT=#256;

GLOBAL REQDATA[#20],REQCHN;

MACRO
   ABORT(NUM)=RETURN (REQRELEASE();  RECOVER(.NDEL,NUM))$,
   SKIP(OP)=(VREG_1; (OP); VREG_0; .VREG)$,
   EXECUTE(OP,AC,Y)=(N_(OP)^27 OR (AC)^23 OR (Y); XCT(0,N))$,
   CMUDEC=-2$,
   FILE=LOOKUPBLOCK[0]$,
   EXT=LOOKUPBLOCK[1]$,
   PPN=LOOKUPBLOCK[3]$,
   JUNK=LOOKUPBLOCK[2]$,
   DEVCHR=4$,
   OUTPUTF=18,1$,
   ASCIIMF=0,1$,
   STATUS=OPENBLOCK[0]$,
   ODEV=OPENBLOCK[1]$,
   BUFW=OPENBLOCK[2]$;

BIND
   OPEN=#50,
   INBUF=#64,
   LOOKUP=#76,
   RELEASE=#71,
   BUFFSIZE=#203,
   HDRSIZE=2,
   VREG=3<0,36>;
GLOBAL ROUTINE REQRELEASE=
  (RELEASESPACE(.REQDATA[.REQCHN+1]<RIGHTHALF>,BUFFSIZE+HDRSIZE));




ROUTINE REQINIT(DEVICE)=

BEGIN

  LOCAL OPENBLOCK[3],SAVFF;
  REGISTER N;


  ODEV_N_.DEVICE;
  CALLI(N,DEVCHR);
  IF .N EQL 0 THEN RETURN 0;
  IF NOT .N<OUTPUTF> THEN RETURN 0;
  IF NOT .N<ASCIIMF> THEN RETURN 0;

  IF (.REQCHN+1) GTR #17 THEN (RECOVER(.NDEL,#505); RETURN 0);

  REQDATA[.REQCHN+1]_GETSPACE(BUFFSIZE+HDRSIZE);
  REQDATA[.REQCHN+1]<LEFTHALF>_BUFW_ST[.REQDATA[.REQCHN+1]<RIGHTHALF>,0]<0,0>;
  STATUS_0;

  IF NOT SKIP(EXECUTE(OPEN,.REQCHN+1,OPENBLOCK<0,0>))
         THEN ( REQRELEASE();
                RETURN 0  );

!GET BUFFERS

  SAVFF_.?.JBFF;
  ?.JBFF_.REQDATA[.REQCHN+1]<LEFTHALF>+3;
  EXECUTE(INBUF,.REQCHN+1,2);
  ?.JBFF_.SAVFF;

  (@(BXA+#16))<0,36>_'     ';  !BLANKS TO SEQNUM
  1
END;    !OF REQINIT
ROUTINE CVSIX(POINTR)=
BEGIN LOCAL SYMPTR,SIXPTR,SIXSYM; REGISTER R; MACHOP ILDB=#134,IDPB=#136;

SIXSYM_0;
SYMPTR_(@POINTR)<36,7>;
SIXPTR_SIXSYM<36,6>;
DECR I FROM 5 TO 0 DO
  (ILDB(R,SYMPTR)