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.

interBINDING AND LOADINGPL/M-<strong>286</strong> COMPILER 960-515 date PAGE 8177178179181182183184185186188189191192194195444432111111111/* DPL = 3; TI = 1 */NEW LDT SELW = (SHL(LIX,3) OR 07H);/*-Transfer descriptor to new LDT */CALL LOAD LDT(TASK SLOT,NEW LDT SEL,DCS_SEL,@EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);END /* unallocated data or code segment */;END /* stepping thru DESCRP entries */;END TRANSFER_REMAINDERS;/***************************************************** ~*//* Main Line * /CALL INITIALIZE_SYSTEM;CALL BUILD BOND TABLE (@BOND FILESPEC,@EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);CALL RESERVE SLOTS (IN LDT, 1, @DCS SEL, @EXCEP);IF EXCEPTION-THEN CALL-REPORT (@EXCEP);CALL RESERVE SLOTS (IN LDT, 1, @DESCRP SEL, @EXCEP);IF EXCEPTION-THEN CALL-REPORT (@EXCEP);CALL RESERVE SLOTS (IN LDT, 1, @DESNAM SEL, @EXCEP);IF EXCEPTION-THEN CALL-REPORT (@EXCEP);1971DOFOREVER;198.19920020220320520620820921121221421521621821922122222222222222222GET NAME:CALL GET LOAD FILE (@PATH NAME); /* May wait */LOAD FILE=DQ$ATTACH (@PATH NAME, @EXCEP);IF EXCEPTION THEN GOTO GET-NAME;CALL DQ$OPEN (LOAD FILE, READ, t,@EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Read file header. */.ACTUAL=DQ$READ (LOAD FILE, @FILE HEADER, 1, @EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Read loadable-module header */ACTUAL=DQ$READ (LOAD FILE, @MODULE HEADER,SIZE(MODULE HEADER)~ @EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Process DESNAM section of OMF */CALL DQ$SEEK (LOAD FILE,2,MODULE HEADER.DESNAM LOC,@EXCEP); - -IF EXCEPTION THEN CALL REPORT (@EXCEP);CALL BUILD_DESNAM_TABLE (SECTION_SIZE(3));/* Tell OS to allocate an LDT */CALL RESERVE SLOTS (IN GDT, 4, @TASK SLOT, @EXCEP);IF EXCEPTION-THEN CALL-REPORT (@EXCEP);CALL CREATE LDT. (TASK SLOT, MODULE HEADER. DESCR COUNT,- @EXCEP) ; - -jF EXCEPTION THEN CALL REPORT (@EXCEP);/* Process DESCRP section */CALL DQ$SEEK (LOAD FILE,2,MODULE HEADER.DESCRP LOC,@EXCEP); - -Figure 11-6. Binding Loader (Cont'd.)11-22 121960-001

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

Saved successfully!

Ooh no, something went wrong!