ASMB,R,L,C,Q * NAME: LSUBC * SOURCE: 92076-18264 * RELPC: 92067-16260 * PGMR: G.L.M. * * *************************************************************** * * (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 LSUBC,8 92067-16260 REV.1903 781114 * * * ENT MESSP,MBT,FCNCT,LCLAS,VERSN,CNV2,PERR ENT SETAA,CCLAS,SESID,INTER,SCBAD * EXT EXEC,XLUEX,.ENTR,$CVT3,.CLRB * * * SUP * * * SKP * * DEFINE LOCATIONS OF INFORMATION IN LOGON/LGOFF * CCLAS NOP SESID NOP INTER NOP SCBAD NOP * SETAA NOP JSB .ENTR DEF CCLAS JMP SETAA,I * * SPC 5 * SEND A LOGON MESSAGE TO THE SYS CON AND/OR USER TERM OR CALLING PROG * LCLAS NOP THE LOG-ON OR LOG-OFF CLASS NUMBER IS PLACED HERE * BY THE INITIALIZATION PROCESS * * THE "WHR" PARAMETER IS DEFINED AS FOLLOWS: * * BIT 15=TERMINATION CALL * BIT 12=DON'T APPEND SESSION # * BIT 1=PRINT ON SYSTEM CONSOLE * BIT 0=PRINT ON USER TERMINAL * * WHR NOP WHT NOP BUFFER LOCATION CNT NOP BYTE COUNT * MESSP NOP JSB .ENTR DEF WHR * LDB CNT,I MOVE THE STB CNT BYTE COUNT INTO A LOCAL BUFFER * LDA WHR,I FETCH "WHERE" FLAG. SZA,RSS IS THIS A TIE-OFF REQUEST ? JMP TIOFF YES - * ALF,SLA IF BIT 12 IS CLEAR JMP INHB INHIBIT THE SESSION NUMBER * CMB,INB CONVERT REQUEST LENGTH TO INB POSITIVE CLE,ERB WORD COUNT STB TO SAVE IN TEMP * LDA WHT MOVE REQUEST BUFFER LDB DBUF INTO LOCAL BUFFER STB WHT BEHIND ADB D7 SESSION # MVW TO * LDA CNT ADJUST THE CHARACTER COUNT ADA DM14 STA CNT * CCE CONVERT LDA SESID,I SESSION JSB $CVT3 NUMBER TO ASCII INA DLD A,I DST S#BF+4 * INHB LDA WHR,I RAR,SLA BIT 1 INDICATES PRINT ON SYS CONSOLE CLA,INA,RSS SET LU =1 JMP USER BIT 1 NOT SET - DO USER ONLY * STA LU SET LU FOR CALLS * * SET THE NO-SUSPEND FLAG ON THE CLASS * LDA LCLAS IOR SIGN STA LCLAS * LDA SESID,I SPECIAL CHECK FOR CPA B377 BATCH PROCESSING AS THE JMP NOTIN BATCH/SPOOL MONITOR HANDLES THE ERRORS CPA D1 IF SESSION ON LU 1 JMP USER DON'T DOUBLE UP MESSAGES * * JSB FST ISSUE THE FIRST MESSAGE SPC 5 * USER LDA WHR,I FETCH "WHERE" FLAG SLA,INA,RSS IF NOT FOR USER (BIT 1 SET) JMP OUT GET OUT * * SEE IF INTERACTIVE * LDA INTER,I FETCH INTERACTIVE FLAG SZA,RSS IF NOT INTERACTIVE JMP NOTIN GO DO CLASS COMMUNICATION * * CLEAR NO-SUSPEND FLAG ON THE CLASS * LDA LCLAS ELA,CLE,ERA STA LCLAS * LDA SESID,I FETCH TERMINAL LU STA LU SET IT PRINTING JSB FST GO PRINT THE FIRST LINE * * PRINT TERMINATION LINE * LDA WHR,I FETCH WHERE FLAG SSA,RSS IF NOT TERMINATION JMP OUT GO RETURN JSB SND GO PRINT ABORT MESSAGE * * JMP ENABL * * SIGN OCT 100000 B377 OCT 377 SPC 10 * * * * FST NOP * LDA LCLAS IF NO CLASS # SZA,RSS GO USE STD I\O JMP NCL1 * * JSB XLUEX DEF RTN1 DEF DS18 DEF LU DEF WHT,I DEF CNT DEF NOP DEF NOP DEF LCLAS RTN1 EQU * NOP POSSIBLE ERROR RETURN * JMP FST,I * * NCL1 JSB XLUEX DEF RTN.1 DEF DS2 DEF LU DEF WHT,I DEF CNT RTN.1 EQU * NOP JMP FST,I * * SPC 5 * * SND NOP * * VERSN JMP SND,I NOTE: THIS INSTRUCTION IS CLEARED BY THE LOG-ON * INITIALIZATION SECTION. THE SECOND LINE IS NOT USED BY LGOFF. * LDA LCLAS IF NO CLASS # SZA,RSS GO USE JMP NCL2 EXEC * * * * JSB XLUEX DEF RTN2 DEF DS18 DEF LU DEF SNDLN DEF D20 DEF NOP DEF NOP DEF LCLAS RTN2 EQU * NOP POSSIBLE ERROR RETURN JMP SND,I * * NCL2 JSB XLUEX DEF RTN.2 DEF DS2 DEF LU DEF SNDLN DEF D20 RTN.2 EQU * NOP POSSIBLE ERROR RETURN POINT JMP SND,I SPC 5 DBUF DEF S#BF *****************DON'T CHANGE THE FOLLOWING*************** S#BF ASC 7,SESSION XXXX BSS 31 ********************************************************** SNDLN ASC 20, UNABLE TO COMPLETE LOG-ON SESN# ASC 3, LU NOP NOP NOP NOTE:2ND WORD OF TWO WORD LU PARM DS2 OCT 100002 DS18 OCT 100022 D1 DEC 1 DS20 OCT 100024 D20 DEC 20 D26 DEC 26 D7 DEC 7 D10 DEC 10 DM14 DEC -14 * * * * NON-INTERACTIVE COMMUNICATION * * NOTIN LDA CCLAS,I FETCH POSSIBLE COMMUNICATION CLASS SZA,RSS IF NOT PROVIDED JMP OUT RETURN * * LDA WHR,I FETCH STATUS FLAG (SIGN SET IF TERMINATION CALL) STA TO SAVE FOR CLASS REQUEST * JSB EXEC DEF RTN3 DEF DS20 DEF NOP DEF WHT,I DEF CNT DNOP DEF NOP DEF TO STATUS FLAG SENT IN IOP2 DEF CCLAS,I CLASS # RTN3 EQU * RSS ERROR RETURN JMP OUT GOOD RETURN * CCA RETURN A<0 IF BAD JMP MESSP,I CLASS PASSED * SPC 5 * * * TIOFF LDA INTER,I FETCH INTERACTIVE FLAG SZA,RSS IF NOT INTERACTIVE JMP NOTIN SEND 0 STATUS TO CALLER * * ENABLE TERMINAL BY CLEARING DISABLE BIT IN BIT MAP * ENABL LDA SESID,I JSB .CLRB GO CLEAR BIT MAP ENTRY FOR THIS TERMINAL OUT CLA,INA RETURN A>0 FOR GOOD RETURN JMP MESSP,I * SKP * * * DCNT NOP RBUF2 NOP FCNCT NOP JSB .ENTR DEF DCNT * DLD DCNT,I FETCH CPU USAGE SWP DIV D3600 A=HRS, B=MIN & SEC STA RBUF2,I SET HOURS ISZ RBUF2 BUMP RESULT ADDRESS STB A CLB DIV D60 NOW GET MINUTES AND SECONDS STA RBUF2,I AND RETURN THEM * ISZ RBUF2 ADVANCE TO SECONDS STB RBUF2,I SET SECONDS JMP FCNCT,I * * * D3600 DEC 3600 D60 DEC 60 SKP * * * * MOVE THE USER.GROUP NAME TO THE OUTPUT BUFFER * * * * FROM NOP TO NOP * MBT NOP JSB .ENTR DEF FROM * LDA FROM,I FETCH USER AND GROUP BYTE COUNTS CLB ASL 8 MOVE THE USER BYTE COUNT TO (B) ALF,ALF REPOSITION THE GROUP BYTE COUNT STA DCNT SAVE GROUP LENGTH IN TEMP STB RBUF2 SAVE USER LENGTH IN TEMP ADA B CALCULATE TOTAL BYTE COUNT INA ADD 1 FOR "." STA FCNCT SAVE IN TEMP * LDA FROM GET BYTE INA ADDRESS OF RAL SOURCE AND STA FROM SAVE FOR MOVE * LDB TO GET BYTE ADDRESS RBL OF DESTINATION * MBT RBUF2 MOVE USER NAME INTO BUFFER * LDA ASC. FETCH USER-GROUP SEPERATOR SBT AND SET IT INTO THE BUFFER LDA FROM FETCH BYTE ADA D10 ADDRESS OF GROUP NAME * MBT DCNT MOVE GROUP NAME IN * LDA TO,I FETCH FIRST WORD OF DESTINATION ELA,CLE,ERA CLEAR POSSIBLE PURGED BIT STA TO,I AND THEN RESET FIRST TWO CHARS OF NAME * LDA FCNCT FETCH TRANSFER LENGTH CMA,INA SET IT NEGATIVE JMP MBT,I * * ASC. ASC 1, . SKP * RSLT NOP VLUE NOP * CNV2 NOP JSB .ENTR DEF RSLT * LDA VLUE,I FETCH VALUE TO BE CONVERTED CCE SET FOR CONVERSION TO DECIMAL JSB $CVT3 INA ADVANCE TO LAST TWO WORDS DLD A,I FETCH THEM SWP "OR" IN ASCII IOR BZROS ZERO FOR LOW ORDER DIGITS SWP DST RSLT,I SET RESULT JMP CNV2,I GET OUT * SKP * * FRM NOP TOM NOP PERR NOP MOVE 4 WORD ERROR CODE INTO LOCATION SPECIFIED IN CALL JSB .ENTR DEF FRM * DLD FRM,I DST TOM,I ISZ FRM ISZ FRM ISZ TOM ISZ TOM DLD FRM,I DST TOM,I JMP PERR,I * BZROS OCT 30060 SKP A EQU 0 B EQU 1 END