%constinteger LSTLEN=256; ! LOCAL SEGMENT TABLE LENGTH %constinteger CBTLEN=299; ! LENGTH OF CBT TABLE %constinteger CONTEXTL=176; ! LENGTH OF AN IBM CONTEXT %constinteger LCONTN=5; ! NO OF LOCAL CONTEXTS ! ! CONTEXTF A SORT OF SSN+1 %recordformat CONTEXTF(%longinteger PSW,{8}%integerarray GR(0:15), {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER) ! PARMF FOR PARAMETER PASSING(32 BYTES %recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT), (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C %string(6)USER,%byte INCAR,%string(15)INTMESS)) ! ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES) %recordformat SIGOUTPF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,TYPE,SSN,SSNAD,SUSP) ! ! CBT THE CLAIMED BLOCK FORMAT %recordformat CBTF(%integer DA,%short AMTX,%byte LNGTH,TAGS) ! CBT FLAGS DEFINED AS FOLLOWS %constinteger NEW BLK=X'80'; ! BLOCK HAS BEEN JUST CREATED %constinteger READONLY=X'40'; ! USERS REQUEST PROTECTION AGAINST WRITES %constinteger ACTIVE=X'20'; ! BLOCK HAS AMT ENTRY ALLOCATED %constinteger CONTINUATN BLK=X'8'; ! CBT BLOCK IS NOT THE FIRST %constinteger ADVISORY SEQ=X'4'; ! ADVISORY SEQUENTIAL ACCESS BIT %constinteger SMULTIPLE CON=X'2'; ! SYSTEM SHRD COMPONENT ! ! ACCOUNTING FORMAT(16 BYTES) %recordformat ACNTF(%integer LTIME{MILLESECS},PTURNS,LLIMIT{MILLESECS},SPARE) ! ! IO SYNC RECORD FORMAT(40 BYTES) %recordformat IOSTATF(%integer IAD,%string(15) INTMESS, %C %integer INBUFLEN,OUTBUFLEN,INSTREAM,OUTSTREAM,SPARE) ! ! LCFORM THE DEFINITIVE LAYOUT %recordformat LCFORM(%integerarray SEGTABLE(0:LSTLEN-1), (%integerarray LCPTABLE(0:15) %OR %shortarray LCHPTABLE(0:31)), %integer CURCONTEXT,PROCNO,SEMAHELD,SPARE1, %record(CONTEXTF)%array CONTEXTS(0:LCONTN-1), %record(PARMF) DIROUTP,%record(SIGOUTPF)SIGOUTP, %record(ACNTF) ACNT,%record(IOSTATF) IOSTAT, %record(CBTF)%array CBT(0:CBTLEN-1), %shortarray SSN(0:LSTLEN-1),%integer END) ! %constinteger DIRCSEGOFFSET=4*LSTLEN+80+CONTEXTL*LCONTN;! FOR ALIGNMENT IF NEEDED %constinteger LCSTKSEGAD=LCSTKSEG<