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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

BINDING AND LOADINGPL/M-<strong>286</strong> COMPILER 960-515 date PAGE 576 277 278 279 281 282 383 384 385 <strong>286</strong> 387 389 390 391 39.2 393 395 396 3DECLARE DESNAM USED DWORD,DESNAM-HEADER STRUCTURE(DESCR IN WORD,NAME LENGTH BYTE);DESNAM USED=0;/* Allocate a segment for the table */CALL ALLOCATE (DESNAM SEL, DATA W,DESNAM WIDTH * (MODULE HEADER.DESCR COUNT + 1), @EXCE-P);- - -IF EXCEPTION THEN CALL REPORT (@EXCEP);/* Initialize the table */DO DIX=0 TO MODULE HEADER.DESCR COUNT;CALL MOVB(@(' ') ,@DESNAM(DIX) .NAME (0) ,1);CALL MOVB(@DESNAM(DIX) .NAME(0),@DESNAM(DIX) .NAME(l) ,DESNAM_WIDTH-l);END;/* Read each descriptor name */DO WHILE DESNAM USED < DESNAM SIZE;/* Read fixed-portion of DESNAM record */ACTUAL=DQ$READ (LOAD FILE, @DESNAM HEADER, 3, @EXCEP);'IF EXCEPTION THEN CALL REPORT (@EXCEP);DESNAM USED=DESNAM USED+ACTUAL;DIX=DESNAM HEADER.DESCR IN-I;DESNAM(DIX).NAME(0)=DESNAM HEADER. NAME LENGTH;/* Read rest of name into-table entry-*/ACTUAL=DQ$READ(LOAD FILE,@DESNAM(DIX) .NAME(l),- DESNAM(DIX) .NAME(0), @EXCEP);IF EXCEPTION THEN CALL REPORT (@EXCEP);DESNAM USED=DESNAM USED+ACTUAL;END /* DO LOOP */; -97 298 1/*******************************************************/LOAD_SEGMENTS: PROCEDURE(LODTXT_SIZE);99 2DECLARE LODTXT SIZEDWORD;100 2DECLARE LODTXT HEADERLOAD OFFSETDESCR INLENGTHCOUNTLODTXT USEDSTRUCTUREWORD,WORD,WORDWORD,DWORD;) ,101 2102 2103 2104 2DECLARE NEW LDT SEL SELECTOR,NEW-LDT-SEL W WORD AT (@NEW LDT SEL),SEG::::RIGHTS - BYTE; -DECLARE TSS IN LITERALLY '0FFFDH';LODTXT USED=0;/* Step thru all LODTXT records */DO WHILE LODTXT_USED

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

Saved successfully!

Ooh no, something went wrong!