ASMB,L,R,C HED UPLIN: 91740-16002 REV 1840 (C) HEWLETT-PACKARD CO. 1978 NAM UPLIN,17,3 91740-16002 REV 1840 780726 SPC 2 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 4 **************************************************************** * * UPLIN * * SOURCE PART # 91740-18002 * * REL PART # 91740-16002 * * WRITTEN BY: CHUCK WHELAN * * DATE WRITTEN DEC 1976 * * MODIFIED FOR HP3000 BY DAVE TRIBBY, MARCH 1977 * *************************************************************** SPC 3 * * * EXTERNAL REFERENCES EXT EXEC,$LIBR,$LIBX EXT MESSS,$OPSY EXT #RSAX,#RPCV EXT RNRQ,#BUSY,#QRN,#LDEF EXT #GRPM,#LU3K,#QXCL,#TST SPC 3 * UPLIN FOR DS/1000 UPLIN IS SCHEDULED EVERY 5 SECONDS TO PERFORM * THE FOLLOWING FUNCTIONS: * 1. CHECKS/WAITS FOR SYSTEM QUIESCENCE. PRINTS OPERATOR MESSAGE * WHEN QUIESCENCE IS ACHIEVED. * 2. UPDATES SLAVE "TCB" TIMEOUT VALUES, AND IF A TRANSACTION HAS * TIMED OUT, THE TCB IS PURGED, AND IF THE MONITOR ABORT * FLAG IS SET, THE MONITOR IS ABORTED. * 3. AFTER PROCESSING EACH SLAVE TCB LIST, UPLIN CHECKS TO SEE IF * THE CORRESPONDING MONITOR IS DORMANT, AND IF SO, RESCHEDULES IT. * 4. UPDATES MASTER TCB TIMEOUT VALUES, AND IF A MASTER TCB TIMES-OUT, * IT CHECKS THE PROGRAM STATUS. IF DORMANT OR THE "BAD * CONTENTS" FLAG IN THE TCB IS SET, THE MASTER CLASS NUMBER * AND THE TCB ARE CLEARED. IF IN A "WAIT" STATE, IT WRITES * A NULL REQUEST TO THE MASTER REQUESTERS CLASS. * 5. SCANS THE HP3000 PROCESS NUMBER LIST AND SENDS A "KILL" * REQUEST FOR ABANDONED PROCESS NUMBERS. * 6. RESCHEDULES "GRPM","RTRY", OR "QCLM" IF THEY ARE DORMANT. * 7. CHECKS FOR ANY DOWNED COMMUNICATIONS EQTS, AND DOES "ENABLE * LISTEN" REQUESTS TO ANY FOUND. * * * EQTA EQU 1650B FWA OF EQUIPMENT TABLE DRT EQU 1652B FWA OF DEVICE REFERENCE TABLE LUMAX EQU 1653B NO OF LOGICAL UNITS (IN DRT) SKP UPLIN EQU * * * CHECK FOR SYSTEM QUIESCENCE * LDA GLCW GET GLOBAL RN LOCK/CLEAR COMMAND RAL,ARS SET THE NO-WAIT BIT QRNWT STA RNCW SAVE CONFIGURED CONTROL WORD * JSB RNRQ GO TO RTE TO REQUEST DEF *+4 RESOURCE NUMBER STATUS, DEF RNCW OR TO AWAIT CLEARING OF THE RN. DEF #QRN ADDR OF QUIESCENT RN DEF TEMP RETURN STATUS JMP SLVTS IGNORE ERRORS * LDA RNCW IF PROGRAM HAS BEEN AWAITING CPA GLCW THE CLEARING OF #QRN, THEN JMP SLVTS BYPASS THE MESSAGE CODE. * LDA TEMP QRN STATUS LDB #BUSY ACTIVE TCB COUNT CPA K7 IF QRN WAS LOCKED GLOBALLY, SZB AND NO ACTIVE TCB'S EXIST, SKIP JMP SLVTS ELSE BYPASS QUIESCENT CODE. * JSB EXEC INFORM DEF *+5 THE DEF K2 OPERATOR DEF K1 THAT THE DEF QMES SYSTEM DEF K10 IS QUIESCENT. * LDA GLCW RETURN TO IMMOBILIZE UPLIN JMP QRNWT SKP * * THIS SECTION PROCESSES SLAVE TRANSACTIONS & MONITORS * SLVTS LDA $OPSY RAR,SLA IS THIS AN RTE-III OR RTE-IV? RSSI RSS YES JMP SLVT2 NO LDB RSSI GET "RSS" STB MODI1 MODIFY TO DO CROSS-MAP STORE STB MODI2 MODIFY TO DO CROSS-MAP LOAD * SLVT2 LDA K2 ADA #LDEF STA LPNT PNTR TO SLAVE LIST HEADER ADDRS IN RES CLA STA STREM SET STREAM # CKLST LDB LPNT,I GET ADDRESS OF HEADER INB STB MCLSA SAVE ADDR OF MONITOR CLASS # INB STB MSEGA ADDR OF MONITOR'S ID SEGMENT ADDR LDB 1,I GET ID SEG ADDR SZB,RSS DOES MONITOR EXIST? JMP NXLST NO LDB LPNT,I NXTCB STB LSTAD SAVE ADDR OF ADDR OF NEXT TCB * * ENTER HERE TO CHECK EACH SLAVE TCB * CKTCB LDB LSTAD PICK UP ADDR OF ADDR OF TCB JSB LODWD (CROSS)LOAD ADDR OF TCB SZA,RSS IS IT THERE? JMP CKMON NO, END OF THIS LIST JSB TSTCB BUMP TIMER IN TCB JMP NXTCB DIDN'T TIMEOUT, CHECK NEXT TCB SKP * * SLAVE TRANSACTION HAS TIMED OUT * ADB K2 COMPUTE ADDR OF SEQ # JSB LODWD (CROSS)LOAD 1ST TIME TAG WORD STA SEQ# * JSB #RSAX DELETE SLAVE TCB DEF *+4 DEF K7 DEF SEQ# SLAVE SEQ # DEF STREM STREAM * SSB SKIP IF ENTRY DELETED JMP NXLST WHOOPS! IGNORE THIS LIST * * CHECK FOR HP3000 TST CLEANUP LDA #LU3K IF NO REMOTE SZA,RSS HP3000, JMP CONT SKIP THIS SECTION LDX #TST+1 X-REG = NUMBER OF TST ENTRIES LDB #TST B-REG = POINTER INTO TST LOOP JSB LODWD (CROSS)LOAD 1ST TST WORD STB WRD1 INB SZA,RSS IF ZERO, JMP BUMP LOOK AT NEXT ENTRY. JSB LODWD (CROSS)LOAD 2ND TST WORD CPA SEQ# SEQUENCE NUMBER? JMP FOUND YES--DONE LOOKING. BUMP ADB K13 POINT TO NEXT TST ENTRY DSX DECREMENT COUNTER JMP LOOP IF NOT DONE, CHECK NEXT ENTRY JMP CONT LOOP FELL THROUGH--DONE * * ACTIVITY WAS INITIATED FROM HP3000 FOUND INB GET TST WORD 3 JSB LODWD (HOLDING CLASS) CCE,SZA,RSS ZERO? JMP RPC YES--PROCESS "RPCNV" RAL,ERA NO--SET BIT 15 TO STA PRAM1 DEALLOCATE CLASS JSB DEFLU AND FLUSH BUFFER. CLA (CROSS) STORE ZERO LDB WRD1 IN TST WORD 1 JSB STRWD FOR RELEASE JMP CONT CONTINUE * RPC JSB EXEC TRY TO SCHEDULE RPCNV DEF *+4 WITH "REJECT" PASSWORD DEF K10N IN CASE IT IS WAITING DEF RPCNM TO BE RESCHEDULED FOR DEF SEQ# NEXT CONTINUATION REPLY. NOP * SZA,RSS WAS RPCNV DORMANT? JMP CONT YES, CONTINUE (RPCNV WILL RELEASE TST) * CLA NO, RPCNV NEEDS TO SEND A STA TEMP REJECT REPLY TO THE WAITING 3000. * JSB EXEC CLASS WRITE A 2-WORD DUMMY DEF *+8 REPLY TO RPCNV DEF K20N DEF ZBIT WORD 1 = 0 DEF DUMMY WORD2 = SEQ# DEF K0 (RPCNV WILL RELEASE TST ENTRY) DEF TEMP DEF K2 DEF #RPCV NOP * CONT EQU * CONTINUE * * CHECK MONITOR ABORT FLAG LDA MSEGA,I SSA,RSS SKIP IF SET JMP CKTCB NOT SET, DON'T ABORT IT, CHECK NEXT TCB * * ABORT THE MONITOR BY GENERATING AN "OF,(NAME),1" MESSAGE * RAL,CLE,ERA ISOLATE ID SEG ADDRESS ADA K12 ADDR OF NAME LDB FLDAD ADDRESS OF NAME FIELD MVW K2 MOVE 1ST 4 CHARS LDA 0,I GET 5TH AND B1774 CLEAR RHW IOR COMMA INCLUDE A COMMA STA MSNAM+2 * JSB MESSS CALL RTE MESSAGE PROCESSOR DEF *+3 DEF OFMES "OFF,XXXXX,1" DEF K12 SZA,RSS IF MSG. RETURNED, SKIP TO RESTORE CMD. JMP UPMON NOW GO & RESCHEDULE IT * DLD "OFF" DST OFMES RESTORE "OFF," LDA "1@" STA MSNAM+3 RESTORE ABORT OPTION PARAMETER (1). JMP UPMON GO TO RE-SCHEDULE THE MONITOR. * "OFF" ASC 2,OFF, "1@" ASC 1,1 * * THIS CODE CHECKS MONITOR STATUS TO SEE IF IT HAS ABORTED CKMON LDA MSEGA,I MONITORS ID SEGMENT ADDRESS RAL,CLE,ERA CLEAR OFF SIGN BIT SZA,RSS ADDR SPECIFIED? JMP NXLST NO ADA K12 POINT TO NAME LDB FLDAD MVW K3 MOVE NAME LDA 0,I GET STATUS BITS AND K15 ISOLATE STATUS BITS SZA SKIP IF DORMANT JMP NXLST ELSE MONITOR IS STILL GOING * * RESCHEDULE MONITOR UPMON LDA MCLSA,I GET CLASS NUMBER OF MONITOR RAL,CLE,ERA CLEAR SIGN BIT STA PRAM1 * JSB EXEC SCHEDULE MONITOR, PASS CLASS NUMBER DEF *+4 DEF K10N FLDAD DEF MSNAM ADDR OF MONITOR NAME DEF PRAM1 NOP * * DONE WITH THIS SLAVE LIST, START ON NEXT NXLST ISZ LPNT POINT TO NEXT LIST HEADER ADDRESS ISZ STREM BUMP STREAM NUMBER LDA STREM CPA K11 DONE? RSS YES JMP CKLST PROCESS NEXT LIST * * DONE WITH SLAVE MONITOR/TRANSACTION PROCESSING SKP * * PROCESS MASTER TCBS * LDB #LDEF ADDR OF LIST HEADER ADDRS INB LDB 1,I GET ADDR OF MASTER HEADER CKMST STB LSTAD SAVE ADDR OF NEXT TCB'S ADDR CKMS2 LDB LSTAD PICK-UP ADDR OF ADDR OF NEXT TCB JSB LODWD (CROSS)LOAD ADDR OF NEXT TCB SZA,RSS JMP PNLST NO MORE MASTER TCBS TO PROCESS * JSB TSTCB UPDATE THIS TCB'S TIME JMP CKMST DIDN'T TIME-OUT, DO NEXT TCB * * MASTER TCB HAS TIMED OUT * ADB K3 POINT TO 4TH WORD OF MASTER TCB JSB LODWD (CROSS)LOAD CLASS NUMBER IOR BIT15 CLASS # WITH "NO WAIT" BIT SET STA PRAM1 * INB POINT TO 5TH WORD OF MASTER TCB JSB LODWD (CROSS)LOAD ID SEGMENT ADDRESS RAL,CLE,SLA,ERA CLEAR OFF SIGN BIT JMP CREPT "BAD CONTENTS", CLR CLASS & TCB ADA K15 POINT TO STATUS LDA 0,I AND K15 ISOLATE STATUS SZA,RSS DORMANT? JMP CREPT YES, CLEAR IT ALL CPA K3 IS IT "WAIT" STATE? RSS YES JMP NXMST NO * * WRITE A NULL REQUEST INTO THE MASTER REQUESTERS CLASS JSB EXEC DEF *+8 DEF K20N CLASS WRITE/READ, NO ABORT DEF ZBIT DEF DUMMY DEF K0 ZERO DATA LENGTH DEF DUMMY DEF K0 ZERO REQUEST LENGTH DEF PRAM1 CLASS NUMBER * K0 NOP * NXMST LDB XACTA GET ADDR OF NEXT TCB ADDR JMP CKMST GO CHECK FOR NEXT TCB * * MASTER REQUESTER IS DORMANT, CLEAR CLASS AND TCB * CREPT JSB DEFLU CLEAR CLASS LDB XACTA CLEAR MASTER REQUESTER'S TCB ADB K2 POINT TO SEQ # IN TCB JSB LODWD GET IT STA SEQ# JSB #RSAX CALL #RSAX TO PURGE MASTER TCB DEF *+3 DEF K6 DEF SEQ# SEQUENCE NUMBER OF MASTER TCB * SSB,RSS SKIP IF TCB NOT DELETED, IGNORE REST JMP CKMS2 CONTINUE WITH NEXT TCB ON CHAIN * SKP * * PROCESS THE HP3000 PROCESS NUMBER LIST. * PNLST CCB GET ADDR OF PNL HEADER. ADB #LDEF LDB 1,I * CKPNL JSB LODWD (CROSS)LOAD ADDR OF NEXT PNL ENTRY. SZA,RSS JMP RSCHD DONE WITH PNL ENTRIES. * LDB 0 STB XACTA SAVE ADDRESS OF NEXT TABLE ENTRY. ADB K2 POINT TO 3RD WORD OF PNL ENTRY. JSB LODWD (CROSS)LOAD PROCESS # STA KLBUF+4 SAVE FOR POSSIBLE "KILL". * ADB K2 POINT TO 5TH WORD OF PNL ENTRY. JSB LODWD (CROSS)LOAD ID SEG ADDR. SSA JMP KILL SEND "KILL" IF IDSEG IS BAD. ADA K15 POINT TO STATUS. LDA 0,I AND K15 ISOLATE STATUS. SZA,RSS DORMANT? JMP KILL YES. SEND "KILL". LDB XACTA NO. GO ON TO NEXT ENTRY. JMP CKPNL * * SEND A "KILL" REQUEST TO THE 3000 DIRECTLY THROUGH QUEX. * SINCE THE "FROM PROCESS #" IN THE REQUEST IS ZERO (NORMALLY THE * MASTER CLASS NUMBER), QUEX WILL SEND $STDLIST TO "CNSLM" AND * IGNORE THE FINAL REPLY. * KILL LDA #QXCL I/O CLASS # FOR QUEX SZA,RSS IS HP3000 UP? JMP RSCHD NO. LEAVE PNL AS IS. SSA IS HP3000 DISCONNECTED? JMP RSCHD YES. LEAVE PNL AS IS. * JSB EXEC CLASS WRITE "KILL" REQUEST TO QUEX. DEF *+8 DEF K20N DEF K0 DEF KLBUF DEF K8 DEF K8 DEF K0 DEF #QXCL NOP IGNORE ERRORS. * JSB #RSAX DELETE PNL ENTRY. DEF *+3 DEF K10 CODE FOR "REMOVE". DEF KLBUF+4 SEQUENCE NUMBER. * * LDB XACTA RESTORE ADDR OF NEXT ENTRY. JMP CKPNL GO CHECK NEXT ENTRY. * KLBUF BYT 10,6 LENGTH,CLASS OCT 0 OCT 27 STREAM OCT 0,0,0,0,0 * SKP * * RESCHEDULE HP1000 AND/OR HP3000 MONITORS IF THEY ARE DORMANT * RSCHD LDA #LU3K IF NO HP3000 SZA,RSS CONNECTED, JMP RE1K GO RESCHEDULE HP1000 MONITORS. * * RESCHEDULE "QUEX", "RQCNV", OR "RPCNV" IF THEY ARE DORMANT * JSB SCHDL TRY TO SCHEDULE QUEX (IF DORMANT) ASC 3,QUEX JSB SCHDL TRY TO SCHEDULE RQCNV (IF DORMANT) ASC 3,RQCNV JSB SCHDL TRY TO SCHEDULE RPCNV (IF DORMANT) RPCNM ASC 3,RPCNV * LDA #GRPM IF NO HP1000 SZA,RSS CONNECTED, JMP EXIT ALL DONE! SPC 1 * * RESCHEDULE "GRPM", "RTRY", OR "QCLM" IF THEY ARE DORMANT * RE1K JSB SCHDL TRY TO SCHEDULE GRPM (IF DORMANT) ASC 3,GRPM JSB SCHDL TRY TO SCHEDULE RTRY (IF DORMANT) ASC 3,RTRY JSB SCHDL TRY TO SCHEDULE QCLM (IF DORMANT) ASC 3,QCLM * SKP * * CHECK FOR DOWNED COMMUNICATION LINES * LDA LUMAX NUMBER OF LOGICAL UNITS CMA,INA STA LCNT SET COUNTER LDA B101 STA LU MODE= 1 FOR "ENABLE LISTEN" LDA DRT ADDR OF DEVICE REFERENCE TABLE UPEQ2 STA LPNT LDA 0,I PICK-UP DRT ENTRY AND B77 ISOLATE EQT NUMBER ADA N1 MPY K15 REL.POS. IN EQT ADA EQTA POINT TO 1ST WORD OF EQT ADA K4 ADDR OF EQT5 LDB 0 LDA 0,I CONTENTS OF EQT 5 ALF,ALF AND B77 ISOLATE EQUIPMENT TYPE CODE CPA B65 DVR65? JMP UPEQ4 YES, SEE IF IT'S UP * UPEQ3 ISZ LU BUMP LU IN CONTROL WORD LDA LPNT INA INCREMENT DRT POINTER ISZ LCNT JMP UPEQ2 PROCESS NEXT DRT ENTRY * * ALL LU'S HAVE BEEN CHECKED, EXIT UPLIN * EXIT JSB EXEC DEF *+2 DEF K6 * * PROCESS COMMUNICATIONS EQT * UPEQ4 ADB K7 POINT TO EQT12 LDA 1,I GET EQT12 AND BMSKS ISOLATE "BROKEN LINE" & "LISTEN" FLAGS ALF,ALF RAL,CLE,ELA E= BROKEN LINE FLAG SEZ BROKEN LINE? JMP UPEQ5 YES SZA LISTEN ENABLED? JMP UPEQ3 YES, OK ADB N1 POINT TO EQT11 LDA 1,I GET EQT11 SZA,RSS HAS THIS EQT BEEN INITIALIZED? JMP UPEQ3 NO * * ISSUE AN "ENABLE LISTEN" REQUEST UPEQ6 JSB EXEC DEF *+3 DEF K3N DEF LU CONTROL MODE = 1 NOP JMP UPEQ3 * * CHECK TO SEE IF BROKEN LINE JUST OCCURRED * UPEQ5 STB TEMP SAVE EQT12'S ADDRESS * JSB $LIBR GO PRIVILEGED NOP LDA TEMP,I GET EQT12 AND B6MSK CLEAR "BROKEN LINE" FLAG STA TEMP,I JSB $LIBX GO UNPRIVILEGED DEF *+1 DEF *+1 JMP UPEQ6 SKP * SUBROUTINES SPC 2 * THIS ROUTINE BUMPS THE TIMEOUT IN A TCB * TSTCB NOP LDB 0 STB XACTA SAVE ADDRESS OF THIS TRANSACTION INB POINT TO 2ND WORD OF TCB JSB LODWD (CROSS)LOAD TIMER SSA JMP TSTC1+1 TIMEOUT ALREADY RESET AND FLMSK SAVE FLAG BITS (14-8) STA FLBYT LDA STREM GET STREAM CPA K3 SLAVE EXECW REQUEST? JMP LONGT YES, SET LONG TIMEOUT CPA K8 SLAVE LOADM REQUEST? JMP LONGT YES, SET LONG TIMEOUT CPA K11 MASTER TCB? RSS YES JMP TSTC1 NO, JUST DO A TICK ADB K2 JSB LODWD GET CLASS WD/ TIMEOUT FLAG ADB N2 SSA,RSS LONG TIMEOUT FOR THIS TCB? JMP TSTC1 NO, JUST DO A TICK * LONGT LDA LTIME 20 MINUTE TIMEOUT IOR FLBYT RESTORE FLAG BITS (14-8) JMP TSTC2 * TSTC1 JSB LODWD RELOAD TIMER AND B377 ISOLATE IT CPA B377 IS IT ABOUT TO ROLL OVER? JMP TSTC5 YES, DON'T BUMP IT, RETURN + 2 * JSB LODWD (CROSS)LOAD TIMER AGAIN INA BUMP TIMER TSTC2 JSB STRWD (CROSS)STORE RSS RETURN +1 FOR NOT TIMED-OUT TSTC5 ISZ TSTCB RETURN +2 FOR TCB TIMED-OUT LDB XACTA TCB ADDR INTO B REG JMP TSTCB,I RETURN SPC 3 * SUBROUTINE TO LOAD WORD FROM ALTERNATE MAP (IF RTE-III OR IV) * LODWD NOP MODI2 LDA 1,I GET WORD FROM TCB (RSS IF DMS SYSTEM) JMP LODWD,I RETURN IF RTE-II XLA 1,I LOAD WORD FROM ALTERNATE MAP JMP LODWD,I SPC 3 * SUBROUTINE TO STORE A WORD IN ALTERNATE MAP (IF RTE-III OR IV) * STRWD NOP JSB $LIBR LOWER FENCE NOP MODI1 NOP RSS HERE IF DMS SYSTEM JMP TSTC3 XSA 1,I STORE INTO SYSTEM MAPPED LOCATION RSS * BELOW INSTRUCTION IS EXECUTED FOR NON-DMS SYSTEMS ONLY TSTC3 STA 1,I STORE UPDATED TIMER IN TCB JSB $LIBX RAISE FENCE DEF STRWD RETURN SPC 3 * SUBROUTINE TO DEALLOCATE AND FLUSH AN I/O CLASS * DEFLU NOP CCA SET THE RELEASE RE-TRY SWITCH STA TEMP TO -1 * CLRTN JSB EXEC GO TO RTE TO RELEASE CLASS NUMBER DEF *+5 DEF K21N CLASS GET/NO ABORT DEF PRAM1 MASTER CLASS/RELEASE/NO WAIT DEF K0 DEF K0 RSS IGNORE ERRORS ISZ TEMP RELEASE PROCESSING COMPLETED? JMP DEFLU,I YES. RETURN. INA,SZA NO. ARE ALL PENDING REQUESTS CLEARED? JMP DEFLU+1 NO. CONTINUE TO CLEAR REQUESTS * LDA PRAM1 GET THE CLASS NUMBER AGAIN AND CLMSK EXCLUDE THE NO-DE-ALLOCATION BIT(#13) STA PRAM1 RESTORE THE MODIFIED CLASS WORD JMP CLRTN RETURN FOR FINAL DE-ALLOCATION SPC 3 * SUBROUTINE TO SCHEDULE A PROGRAM (IF DORMANT) * SCHDL NOP JSB EXEC SCHEDULE DEF *+4 DEF K10N DEF SCHDL,I DEF K0 PRAM TO KEEP RPCNV HAPPY NOP LDA SCHDL SET RETURN ADA K3 ADDRESS JMP 0,I RETURN SKP * DATA AREA * PRAM1 NOP LU NOP RNCW NOP LPNT NOP LCNT NOP STREM NOP XACTA NOP LSTAD NOP MCLSA NOP MSEGA NOP TEMP DEC 0,0 WRD1 NOP SEQ# EQU TEMP+1 DUMMY NOP * K1 DEC 1 K2 DEC 2 K3 DEC 3 K4 DEC 4 K6 DEC 6 K7 DEC 7 K8 DEC 8 K10 DEC 10 K11 DEC 11 K12 DEC 12 K13 DEC 13 K15 DEC 15 B65 OCT 65 B77 OCT 77 COMMA OCT 54 B101 OCT 101 B377 OCT 377 BMSKS OCT 2100 FLMSK OCT 077400 ZBIT OCT 10000 BIT15 OCT 100000 LTIME OCT 100020 K3N OCT 100003 K10N OCT 100012 K20N OCT 100024 K21N OCT 100025 GLCW OCT 40006 GLOBAL RN LOCK/CLEAR - NO ABORT B1774 OCT 177400 CLMSK OCT 157777 B6MSK OCT 177677 N1 DEC -1 N2 DEC -2 * FLBYT NOP * OFMES ASC 2,OFF, MSNAM BSS 3 ASC 1,1 * QMES ASC 10, SYSTEM IS QUIESCENT * END UPLIN