ASMB,R,L,C *** RTE-IV PARITY ERROR MODULE *** * DATE: 7/26/77 * NAME: PERR4 * SOURCE: 92067-18113 * RELOC: PART OF 92067-16103 * PGMR: E.WONG,M.MANLEY,G.MCANALLY * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM PERR4,0 92067-16103 REV.1903 790102 ENT $PERR,$PETB EXT $CNV1,$CNV3,$YMG,$ERMG,$XCQ,$UNPE,$MAXP EXT $MATA,$DMS,$ABXY,$CIC,$BFOT,$LU?? EXT $IOCL,$ABRT A EQU 0 B EQU 1 * * THIS MODULE OF RTE-IV HANDLES PARITY ERRORS. * CALL SEQUENCE FROM RTIO4: * JMP $PERR * <$PERR EXITS VIA $CIC,I> * * IF THE PARITY ERROR IS IN THE OPERATING SYSTEM OR CONFIGURATOR PROGRAM, * $PERR HALTS: HLT 5 * (A) = PHYSICAL PAGE NUMBER * (B) = LOGICAL ADDRESS * * IF THE PARITY ERROR IS DETECTED IN A DCPC TRANSFER * WHILE THE OPERATING SYSTEM IS EXECUTING IN THE SYSTEM MAP, * $PERR HALTS: HLT 5,C * (A) = PHYSICAL PAGE NUMBER * (B) = LOGICAL ADDRESS * * IF THE PARITY ERROR IS A SOFT ERROR (UNREPRODUCABLE), * $PERR PRINTS THE MESSAGES: * "PE @ #####" * "DMS STAT = ######" * * IF THE PARITY ERROR IS IN A PARTITION, * $PERR UNLINKS THE PARTITION FROM THE SYSTEM (UNTIL * NEXT BOOT UP). IT THEN RETURNS WITH : * "PART'N ## DOWN" * "PART'N ## DOWN" (IF THERE IS A MOTHER PTTN) * * IF THE PARITY ERROR WAS IN A MEMORY RESIDENT PROGRAM, * $PERR WILL ONLY PRINT THE FOLLOWING MESSAGES * (THESE WILL FOLLOW THE PARTITION DOWN MESSAGES * IN THE CASE OF A PARTITION RESIDENT PROGRAM): * "PE PG# ##### BAD" * "ABE ###### ###### #" * "XYO ###### ###### #" * "PE XXXXX #####" * "XXXXX ABORTED" * * * NOTE THAT THE PROGRAM THAT ENCOUNTERED THE PARITY ERROR * IS NOT NECESSARIALLY THE CURRENTLY EXECUTING PROGRAM. * IE, THE PE ERROR MAY HAVE OCCURED DURING A DMA TRANSFER. SKP $PERR STA SAVA INTERRUPT SYSTEM IS TURNED OFF BY RTIO4 STB SAVB SAVE ALL USER REGISTERS LDA $CIC IN CASE OF STA SAVAD POWER FAIL ERA,ALS (DMS STATUS SAVED IN $DMS BY RTIO4) SOC INA STA SAVEO CXB STB SAVX CYB STB SAVY * LIB 5 RBL,CLE,ERB STB LOGPE SAVE LOGICAL PARITY ERROR ADDR LDA 5 PE ALREADY TURNED OFF PE INTERRUPTS STA SAV5 SAVE TRAP CELL 5 LDA JMPPE STA 5 SWITCH TRAP CELL TO LOCAL CLB STB PTNPE INITIALIZE PTTN# TO ZERO STB PEID INITIALIZE ID SEG ADDR TO ZERO STB PHYPG INITIALIZE PHYSICAL PAGE # TO ZERO JSB TRYPE TRY FOR P.E. IN SYSTEM MAP (B)=0 * * NOT IN SYSTEM MAP , TRY DCPC MAPS * DCPC? LDA SAVEU SAVE CURRENT USER MAP USA LDA INTBA,I SZA,RSS IS PORT A BUSY? JMP DCPCB NO, TRY PORT B * LDA SAVEP GET A COPY OF PORT A MAP PAA LDA RSTRP TO PUT INTO USER MAP USA LDB D6 JSB TRYPE TRY FOR P.E. IN PORT A (B)=6 * DCPCB LDA INTBA TRY IT IN PORT B INA LDA A,I SZA,RSS PORT B BUSY? JMP USEPE NO, WE'LL TRY USER MAP FINALLY. * LDA SAVEP GET A COPY OF PORT B MAP PBA LDA RSTRP TO PUT INTO USER MAP USA LDB D7 JSB TRYPE TRY FOR P.E. IN PORT B (B)=7 * * TRY USER MAP * USEPE LDA RSTRU RESTORE USER MAP USA CCB JSB TRYPE TRY FOR P.E. IN USER MAP (B)=-1 * * NOT IN SYSTEM, USER, PORT A, NOR PORT B. SOFT PARITY ERROR. * SOFPE LDA SAV5 STA 5 RESTORE LOCATION 5 FOR $CIC CLE SET UP FOR OCTAL ASCII CONVERSION LDA $DMS GET THE DMS STATUS VALUE JSB $CNV3 CONVERT TO ASCII LDB A,I GET THE 1ST WORD STB SOFT2+8 CLE,INA DLD A,I AND THE SECOND DST SOFT2+9 * LDA LOGPE GET LOGICAL PARITY ERROR ADDR JSB $CNV3 CONVERT TO ASCII LDB A,I GET THE 1ST WORD STB SOFT1+4 AND PUT INTO BUFFER INA DLD A,I AND NOW THE LAST TWO DST SOFT1+5 * LDA SOFT1 GET THE 1ST MESSAGE JSB $YMG AND REPORT TO USER LDA SOFT2 GET THE SECOND MESSAGE JSB $YMG AND REPORT IT TOO * PEDON LDB SAVY RESTORE REGISTERS BEFORE RETURNING CBY LDB SAVX CBX LDA SAVEO CLO SLA,ELA STF 1 LDB SAVB CLA CPA $INT,I IS INT SYS ON? $INT=0? JMP INTON YES * STA $INT,I NO, CLEAR $INT LDA SAVA RESTORE A-REG JMP EXIT REENABLE PARITY ERROR AND RETURN * INTON LDA SAVA RESTORE A-REG STF 0 TURN ON INTERRUPT SYSTEM EXIT STF 5 REENABLE PARITY ERROR JRS $DMS * RETURN SAVAD EQU *-1 * * SOFT1 DEF *+1 DEC -10 ASC 5,PE @ XXXXX SOFT2 DEF *+1 DEC -18 ASC 9,DMS STAT = XXXXXX D6 DEC 6 D7 DEC 7 SAVA NOP SAVE A-REGISTER SAVB NOP SAVE B-REGISTER SAVEO NOP SAVE E AND O REGISTERS SAVX NOP SAVE X-REGISTER SAVY NOP SAVE Y-REGISTER $INT DEF $DMS+1 SAV5 NOP SAVE LOCATION 5 CONTENTS SAVEU DEF UMAP,I SAVE USER MAP IN MEMORY RSTRU DEF UMAP STORE MEMORY IN USER MAP SAVEP DEF PMAP,I SAVE PORT MAP IN MEMORY RSTRP DEF PMAP STORE MEMORY IN PORT MAP UMAP BSS 32 PMAP BSS 32 * * JMPPE JMP PELNK,I TRAP CELL INSTRUCTION FOR P.E. ORB PELNK DEF GOTPE BASE PAGE LINK TO PARITY ERROR CODE ORR * * * SUBROUTINE TO TRY TO GET PARITY ERROR AGAIN * CALL SEQUENCE: * (LOGPE) = LOGICAL ADDRESS * (B) = 0 TRY IT IN SYSTEM MAP * (B) # 0 TRY IT IN CURRENT USER MAP * JSB TRYPE CALL * NO PARITY ERROR OCCURRED * TRYPE NOP TRY TO VERIFY PARITY ERROR STB PORT SAVE MAP INDICATOR RETRY STF 5 ENABLE PARITY INTERRUPTS SZB DO IT IN SYSTEM MAP? JMP TRYUS NO, TRY IT IN USER MAP * LDA LOGPE,I DO READ OF SUSPECTED LOCATION JMP NOPE NO P.E. RETURN * TRYUS XLA LOGPE,I TRY READ OF SUSPECTED LOCATION NOP WAIT FOR MX HARDWARE TO COOL OFF! NOPE CLF 5 TURN OFF PE INT SO WE DON'T GET CONFUSED JMP TRYPE,I NO P.E. IN USER MAP, RETURN * * * GOT A PARITY ERROR FROM TRYPE SUBROUTINE * GOTPE LIA 5 GOT A PARITY ERROR RAL,CLE,ERA BUT IS IT A SECOND PE ERROR CPA LOGPE OR IS IT A VERIFICATION OF SAME ONE? RSS SAME, SKIP JMP RETRY SECOND ONE, TRY AGAIN TO VERIFY FIRST * LDA SAV5 WE CAN NOW SAFELY RESTORE STA 5 TRAP CELL FOR MP/DMS/PE INTERRUPTS * LDA LOGPE GET PE ADDR AND B76K GET LOGICAL PAGE # ALF RAL,RAL (A) = LOGICAL PAGE # SZB USING SYSTEM MAP? ADA B40 NO, USE USER MAP REG# CCB CBX (X) = -1 FOR READ 1 REGISTER LDB DPHYP READ IT INTO 'PHYPG' XMM READ MAP REGISTER LDA PHYPG AND B1777 KEEP LOWER 10 BITS STA PHYPG AS PHYSICAL PAGE NUMBER * LDB PORT SSB WAS THE PE IN USER MAP? JMP INPRG - YES, FIND PROGRAM * SZB WAS THE PE IN SYSTEM MAP? JMP DMAPE + NO, FIND THE CURRENT DMA REQUESTOR * * PARITY ERROR WAS VERIFIED TO BE IN THE SYSTEM MAP * OR IT WAS IN A USER PAGE CONTAINING SYSTEM TABLES. * AT HLT (A)=PHYSICAL PAGE # (B)=LOGICAL ADDR * INSYS LDA PHYPG PE IN SYS OR SYS TABLES LDB LOGPE HLT05 HLT 5 102005 HALT FOR SYS PE ERROR JMP *-1 DON'T ALLOW TO PROCEED * * * PARITY ERROR WAS VERIFIED TO BE IN A DCPC TRANSFER * WHILE THE SYSTEM MAP WAS ENABLED. SINCE RTE IS NOT * REENTRANT, WE CANNOT PROCESS ERROR MESSAGES OR ABORT * ANY PROGRAMS BECAUSE WE MAY HAVE INTERRUPTED FROM * THAT CODE. * AT HLT (A)=PHYSICAL PAGE # (B)=LOGICAL ADDR * INDMA LDA PHYPG PE IN DCPC TRANSFER DURING SYS MAP LDB LOGPE HLTC5 HLT 5,C 103005 HALT FOR DCPC DURING SYS JMP *-1 DON'T ALLOW TO PROCEED * * * $PETB EQU * ENTRY POINT FOR ANALYSER PHYPG NOP $PETB+0 PHYSICAL PAGE NUMBER LOGPE NOP $PETB+1 LOGICAL PARITY ERROR ADDRESS PORT NOP $PETB+2 MAP CONTAINING PARITY ERROR PEID NOP $PETB+3 ID SEGMENT ADDRESS IF PROGRAM PE PTNPE NOP $PETB+4 PARTITION NUMBER(S) IF PROGRAM PE B1777 OCT 1777 B76K OCT 76000 B40 OCT 40 HED PARITY ERROR IN A PORT MAP DMAPE LDA $DMS GET DMS STATUS AT PE INTERRUPT RAL SSA,RSS DID WE INTERRUPT FROM SYSTEM MAP? JMP INDMA YES, HLT 5,C * LDA RSTRU RESTORE ORIGINAL USER MAP USA LDA PORT AND D1 ADA INTBA LDA A,I GET EQT ADDR OF DMA USER RAL,CLE,ERA CLEAR SIGN BIT FIRST LDB A,I GET EQT LINK WORD SSB,RSS DOING SYSTEM CLEAR? SZB,RSS OR EQT ALREADY UNLINKED? JMP INSYS YES, JUST GIVE SYS PE, DON'T KNOW PROG * LDA B INA LDA A,I GET CONTROL WORD TO CHECK T RAL SSA T=1 OR T=3? JMP INSYS YES, SYSTEM IS DOING I/O * SLA,RSS T=0? JMP PRGPE YES, USER DOING I/O * ADB D4 T=2. LDB B,I GET TYPE OF $XSIO CALL RBL,CLE,ERB CLEAR SIGN, KEEP IT IN (E) SZB,RSS IS IT A SYSTEM REQUEST? JMP INSYS YES, =0 OR 100000 JMP PRGPE NO, USER REQ (B)=ID SEG ADDR * * B77 OCT 77 D1 DEC 1 D2 DEC 2 D4 DEC 4 D14 DEC 14 D15 DEC 15 D21 DEC 21 DPHYP DEF PHYPG HED PARITY ERROR IN A USER PROGRAM INPRG LDB XEQT IN CURRENT USER MAP SZB IS PROG = 0? JMP PRGPE NO, PROG. GET MAT INFO * LDB EQT1,I YES, MAYBE INTERRUPT DRIVER. RBL,CLE,ERB SZB,RSS I/O IN PROGRESS? JMP INSYS NO, DO SYS PE HALT * LDA B LEAVE POSSIBLE ID ADDR IN (B) INA LDA A,I CHECK T-FIELD IN CONTROL WORD RAL,RAL AND D3 SZA T=00? (UNBUFFERED USER) JMP INSYS NO, DO SYS PE HALT * PRGPE STB PEID (B)=ID SEG ADDR OF USER * JSB $LU?? FETCH THE TERMINAL LU FOR THIS PROG(LU RTNS IN (A) CLA IF NOT SESSION/MTM, PRINT ON LU 1 ONLY INA IF LU = 1 (LU=LU-1) SET ECH1=1 FOR TEST STA ECH1 LDB PEID FETCH ID ADDR * ADB D14 LDA B,I AND D15 GET PROG TYPE CPA D1 IS IT MEMORY RESIDENT PROG? JMP ABPRG YES, JUST ABORT PROG * LDA PEID ADA D21 GET MAP ID WORD LDA A,I AND B77 GET PTTN # MPY MATSZ MULT BY MAT ENTRY SIZE ADA $MATA JSB MATAD SET UP MAT PTRS * LDA MLNK,I GET THE LINK WORD INA,SZA,RSS DID WE ALREADY UNDEFINE THIS GUY ? JMP PEDON YES, SO DON'T DO IT AGAIN. * LDA MADR,I IS PE IN MOTHER PTTN? SSA JMP MOMPE YES, HAVE TO FIND SUBPTTN * * PE IS IN A SUBPARTITION, FIND THE MOTHER PARTITION * JSB INPT? IS LOCATION IN PTTN? JMP INSYS NO, PE IN SYS PORTION OF USER MAP! LDB MLNK SUBPTTN OR REGULAR PTTN STB SUB HAS THE PE JSB $UNPE UNLINK FROM ALLOC LIST AND UNDEFINE NXSPE LDA MSUBL,I STA MOM SAVE POSSIBLE MOTHER PTTN ADDR SZA,RSS IS THIS A SUBPTTN? JMP BLDPT NO, GO BUILD PTTN PE WORD * JSB MATAD YES, SEARCH FOR MOTHER PTTN LDA MADR,I SSA,RSS IS THIS THE MOTHER? JMP NXSPE NO, TRY NEXT SUBPTTN LINK * LDB MLNK YES, FOUND THE MOTHER LINK JSB $UNPE UNLINK MOTHER PTTN FROM FREE LIST JMP BLDPT FOUND IT ALL NOW * * * PE IS MOTHER PARTITION, FIND THE AFFECTED SUBPARTITION * MOMPE JSB INPT? IS PE ACTUALLY IN MOTHER PTTN? JMP INSYS NO, SAY IT IS IN SYS. LDB MLNK YES, PE OCCURRED IN MOTHER PTTN STB MOM SAVE FOR PTTN PE WORD JSB $UNPE UNLINK MOTHER PTTN FROM ALLOC LIST * NXSP2 LDA MSUBL,I CPA MOM DONE YET? JMP BLDP2 YES, PE JUST IN MOTHER PTTN * STA SUB NO, NEED TO FIND SUBPTTN WITH PE JSB MATAD JSB INPT? IS PE IN THIS SUBPTTN? JMP NXSP2 NO, TRY NEXT * SBPPE LDB MLNK UNLINK AND UNDEFINE JSB $UNPE THIS SUBPARTITION. * BLDPT LDB SUB GET PTTN/SUBPTTN OF PE JSB PTTNO CONVERT IT TO PTTN# STA PTNPE SET INTO BITS 0-7 OF PTTN PE WORD BLDP2 LDB MOM GET POSSIBLY MOTHER PTTN ADDR STB A CPB SUB BUT IF SAME AS SUBPTTN CLA THEN USE 0 IN PTTN PE WORD SZA THEN USE 0 IN PTTN PE WORD BITS 8-15 JSB PTTNO CONVERT TO PTTN# ALF,ALF IOR PTNPE STA PTNPE PUT INTO BITS 8-15 * UNCHN LDA MOM NOW UNCHAIN SUBPTTNS SZA,RSS ANY MOTHER PTTN AFFECTED? JMP UPEDN NO, USER PE. DONE. * UNCH2 JSB MATAD YES, MOTHER PTTN INVOLVED LDA MLTH,I AND C40K CLEAR "C" BITS IF SET STA MLTH,I LDA MSUBL,I GET NEXT SUBPTTN ADDR CLB STB MSUBL,I CLEAR LINK WORD CPA MOM DONE YET? JMP UPEDN YES, RETURN PE TO EXEC JMP UNCH2 NO, DO NEXT SUBPTTN * UPEDN JSB $MAXP RE-ESTABLISH MAX PTTN SIZES * * LDA PTNPE GET PTTN NUMBERS AND B377 SAVE LOWER BYTE SZA,RSS ANY SUBPTTN? JMP P1TRY NO, JUST MOTHER PTTN? * P1MOR CCE COUNT FROM 1 & DO DECIMAL CONVERSION. JSB $CNV1 CONVERT TO ASCII STA PEMSG+6 PUT INTO THE ERROR MESSAGE LDA PEMSG GET THE LOCATION OF THE ERROR MESSAGE LDB PEID GET ID ADDR OF PROG LDX ECH1 FETCH ECHO FLAG DSX IF IT WAS = 1, PRINT ON LU 1 ONLY JSB $BFOT NOPE-- ECHO ON USER TERMINAL JSB $YMG ISSUE DOWN PTN ERROR TO LU 1 * P1TRY LDA PTNPE GET THE PARTITION NUMBER(S) AGAIN ALF,ALF GET NEXT PARTITION TO LOWER BYTE AND B377 SAVE THE LOWER BYTE SZA,RSS IS THERE A MOTHER PARTITION ? JMP ABPRG NO,TELL BAD PAGE # STA PTNPE SAVE PARTITION # JMP P1MOR DO IT ONCE MORE * * ABPRG LDA PHYPG GET THE BAD PG# CCE DO DECIMAL CONVERSION FROM 0 JSB $CNV3 AND CONVERT TO DECIMAL ASCII LDB A,I GET THE 1ST WORD STB BDPG#+5 AND SAVE INA DLD A,I NOW GET THE LAST TWO DST BDPG#+6 LDA BDPG# GET THE ADDRESS OF THE MESSAGE LDB PEID FETCH ID ADDR OF PROG LDX ECH1 FETCH ECHO FLAG DSX IF USER TERMINAL NOT = LU 1 JSB $BFOT ISSUE PE ERROR TO SESSION TERM JSB $YMG AND SEND IT TO THE SYS CON ALSO * * LDB PEID GET ID SEG ADDR OF PROG SZB,RSS JMP PEDON STB XEQT FAKE OUT ABORT PROCESSORS CBX * LDA LOGPE GET LOGICAL PARITY ERROR ADDR SAX D8,I AND PUT IT INTO THE POINT OF SUSP WORD JSB $ABXY DUMP A,B,E,X,Y,O REGS LDA PE NOW GO ABORT THE PROGRAM LDB BLANK * JSB $ERMG NOTE! SPECIAL PROCESSING: ONLY PRINTS MESSAGE * STF 5 REENABLE PARITY ERROR * * SPECIAL WORK MUST BE DONE HERE IN CASE THE PROGRAM CAUGHT * BY THE PARITY ERROR WAS I/O SUSPENDED. * LDA PEID FETCH ID ADDR OF PROG TO BE ABORTED ADA D15 ADVANCE TO STATUS LDA A,I AND D15 ISOLATE STATUS LDB A SAVE IN (B) LDA PEID FETCH ID ADDRESS FOR $IOCL OR $ABRT CPB D2 IF I/O SUSPEND JMP $IOCL YES, DO I/O CLEAN UP, ABORT , XEQ. JSB $ABRT NO, JUST ABORT THE PROGRAM. JMP $XCQ * * * ECH1 NOP B377 OCT 377 D8 DEC 8 * BLANK ASC 1, PEMSG DEF *+1 DEC -16 ASC 8,PART'N XX DOWN BDPG# DEF *+1 DEC -16 PE ASC 8,PE PG# XXXXX BAD * * * INPT? - VERIFY IF PE PAGE IN IS A PARTITION * * CALL SEQUENCE: * MATA ADDR SET UP BY MATAD * JSB INPT? * * * REGISTERS ARE MEANINGLESS * INPT? NOP IS PE IN PTTN PAGES? LDA MADR,I TRY TO FIND IF PE OCCURRED IN PAGES AND B1777 WITHIN THE SUBPTTN OR STA B IT WAS IN THE SYSTEM PAGES CMA,INA OF THE USER MAP ADA PHYPG SSA PE PAGE# < FIRST PAGE PTTN? JMP INPT?,I YES, PE BELOW PTTN PAGES. RETURN P+1 * LDA MLTH,I AND B1777 ADA B ADD #PAGES IN PTTN FOR LAST PAGE CMA,INA ADA PHYPG SZA SSA PE PAGE# > LAST PAGE PTTN? ISZ INPT? NO, PE IN PTTN PAGES. RETURN P+2 JMP INPT?,I YES, PE ABOVE PTTN PAGES. RETURN P+1 * * * PTTNO - CONVERT PTTN MAT ADDR TO PTTN NUMBER * * CALL SEQUENCE: * (B) = MAT ADDR * JSB PTTNO * * (A) = PTTN # * PTTNO NOP (B) = MAT ADDR LDA $MATA CMA,INA SUBTRACT BEGINNING OF MAT ADA B TABLE FROM MAT ADDR CLB DIV MATSZ DIVIDE BY #WORDS PER ENTRY INA JMP PTTNO,I RETURN PTTN # IN (A) * * C40K OCT 137777 D3 DEC 3 SUB NOP MAT ADDR OF SUBPTTN MOM NOP MAT ADDR OF MOTHER PTTN * * * SKP * MAT ENTRY * * WORD DESCRIPTION * !--!--.--.--!--.--.--!--.--.--!--.--.--!--.--.--! * !15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00! * !--!--.--.--!--.--.--!--.--.--!--.--.--!--.--.--! * ! ! ! ! ! ! ! * MLNK 0 !00! LINK TO NEXT ENTRY IN LIST ! * ! ! ! ! ! ! ! * !--!--------!--------!--------!--------!--------! * ! ! ! ! ! ! ! * MPRIO 1 !00! PRIORITY OF PARTITION OCCUPANT ! * ! ! ! ! ! ! ! * !--!--------!--------!--------!--------!--------! * ! ! ! ! ! ! ! * MID 2 !00! ID SEGMENT ADDRESS OF OCCUPANT ! * ! ! ! ! ! ! ! * !--!--------!--------!--------!--------!--------! * ! ! ! ! ! ! ! * MADR 3 ! M!** D ******** BEGIN PHYSICAL PAGE# ! * !@@! ! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@! * !--!--------!--------!--------!--------!--------! * ! ! ! ! ! ! ! * MLTH 4 ! R! C *****!***** NUMBER OF PAGES IN PTTN ! * !@@! ! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@! * !--!--------!--------!--------!--------!--------! * ! ! ! ! ! ! ! * MRDFL 5 !RT!***********************************! STATUS ! * !@@! ! ! ! ! ! * !--!--------!--------!--------!--------!--------! * ! ! ! ! ! ! ! * MSUBL 6 !00! POINTER TO NEXT SUBPTTN OR 0 ! * !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@! * !--!--.--.--!--.--.--!--.--.--!--.--.--!--.--.--! * !15!14 13 12!11 10 09!08 07 06!05 04 03!02 01 00! * !--!--.--.--!--.--.--!--.--.--!--.--.--!--.--.--! * * "@" MARKS THE PARTS WHICH ARE SET AT GENERATION TIME: * "*" MARKS THE RESERVED PARTS * ************************************** * SET UP POINTERS TO ENTRY IN MAT * CALL: (A) = MAT ADDR * JSB MATAD * ************************************** * MATAD NOP STA MLNK SET MAT ENTRY POINTER ADA D3 STA MADR MAP START ADR INA STA MLTH PTTN LENGTH IN PAGES INA STA MRDFL READ COMPLETION FLAG INA STA MSUBL SUBPARTITION LINK WORD JMP MATAD,I * * MATSZ DEC 7 MLNK NOP LINKAGE WORD MADR NOP MAP START,BITS 0-9 MLTH NOP PTTN LENGTH, BITS 0-9 MRDFL NOP READ FLG(0-2),RT FLAG(15) MSUBL NOP * * * XMATA EQU 1646B ADDR OF CURR MAT ENTRY INTBA EQU 1654B INTERRUPT TABLE ADDR EQT1 EQU 1660B WORD 1 ADDR OF CURRENT EQT XEQT EQU 1717B ADDR OF CURRENT PROG ID SEG * BSS 0 SIZE OF MODULE END $PERR