13.07.2015 Views

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

BINDING AND LOADINGPL/M-<strong>286</strong> COMPILER 961:l-521 date PAGE 3IGNORE2 (8 ) DWORD) ;37383941:l4142434546484951525455575861:l616364111222222222222222223/* Table of actual locations of O.S. primitives */DECLARE BOND SEL SELECTOR,BOND-BASED BOND SEL (2) S~RUCTUREGATE NAME(41) BYTE,ENTRY POINTOFFSET,GDT SEL SELECTOR ) ,BIX - WORD; /* Index * /DECLARE PUBDEF STRUCTURE(ENTRY POINTGDT INIGNOREWORD COUNTLENGTHWORD,WORD,WORD,BYTE,BYTE);/*************~*****~*~****~************************** **//* . Subroutines *//* create table of actual GDT selectors andentry points for O.S. primitives. */BUILD BOND TABLE: PROCEDURE (BOND NAME PTR, EXCEP_PTR)PUBLIC;DECLARE (BOND NAME PTR, EXCEP PTR) POINTER;DECLARE EXCEP-BASED EXCEP_PTR-WORD;/* Initialize file */BOND FILE=DQ$ATTACH (BOND NAME PTR,@EXCEP);IF EXCEPTION THEN RETURN;- -CALL DQ$OPEN (BOND FILE, READ, 1, @EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Read file header */ACTUAL=DQ$READ (BOND FILE,@FILE HEADER,l,@EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Read module header */ACTUAL=DQ$READ (BOND FILE,@MODULE HEADER,SIZE(MODULE HEADER), @EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Get space for table */CALL RESERVE SLOTS (IN LDT,l,@BOND SEL,@EXCEP);IF EXCEPTION-THEN CALL-REPORT (@EXCEP);CALL ALLOCATE (BOND SEL, DATA W,(MODULE HEADER. PUB COUNT+l)*SIZE(BOND(I:l» ,@EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Read the PUBDEF section *//* (Locations are relative to beginning of module,not beg inning of file. Assume module at 1.) * /CALL DQ$SEEK (BOND FILE,2,MODULE HEADER.PUBDEF LOC+l,@EXCEP); - -IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Loop thru the PUBDEF entries */DO BIX = I:l TO MODULE HEADER. PUB COUNT-I;/* Read fixed part-of PUBDEF record */ACTUAL=DQ$READ(BOND_FILE,@PUBDEF, 8, @EXCEP);Figure 11-7. BOND Module of Binding Loader (Cont'd.)11-26 121960-001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!