ASMB,R,L,C,Q HED PRMPT - PART OF THE SESSION TERMINAL HANDLERS * NAME: PRMPT * SOURCE: 92067-18262 * RELOC: PART OF 92067-16260 * PGMR: G.A.A.,C.M.M.,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 PRMPT,129,5 92067-16260 REV.2026 800416 SUP PRESS ALL EXTRANEOUS LISTING EXT EXEC,FNDLU,$LIBR,$LIBX,IDGET EXT XLUEX,LUSES,$LGON,$DSCS,$LGOF EXT $LME$,$STH,.SETB,.CLRB * * THIS INTERRUPT ROUTINE PROVIDES FOR THE INITIATION OF SESSIONS * AND THE INITIATION OF "BREAK" PROCESSING. * IT IS SCHEDULED ON INTERRUPT BY DVR00(05,07) IF THAT TERMINAL HAS BEEN * PROPERLY ENABLED (ON,CNTRL,LU,20) * * 2026 PCO: CHANGED TO PERFORM ALL I/O VIA CLASS. THIS IS TO PREVENT * PRMPT FROM HANGING IF A DEVICE GOES DOWN AS A RESULT * OF A PRMPT I/O REQUEST (DVA05 AND MODEM PROBLEMS). * SPC 5 * * PRMPT EQU * STB EQT4 * * * JSB FNDLU FIND THE LU FOR THIS EQU DEF *+1 SZA,RSS FIND ONE? JMP EXIT NOPE * SEZ IS THE DEVICE UP? JMP EXIT NO- SO GET OUT * STA LU SAVE THE DEVICE LU * ADA MD100 SESSION LU MAX IS 99 SSA,RSS IS THIS ONE > 99 JMP ERLU YES, ISSUE ERROR MESSAGE AND EXIT * * STB ASCLU SAVE ASCII LU STX RN# SAVE POSSIBLE RN BYPASS WORD CYB GET DEVICE TYPE WHERE IT CAN BE CHECKED STB DVTYP AND SAVE FOR ERROR RECOVERY * * * * VERIFY THAT THE SESSION ENVIRONMENT HAS BEEN DEFINED. * * XLA $DSCS FETCH SESSION FLAG CPA N1 IF =-1 THEN WE ARE NOT READY TO CONTINUE JMP NOTIN * LDA $LGON FETCH LOGON CLASS # SZA,RSS IF NOT DEFINED, JMP NOTIN ERROR STA CLASS * LDA $LGOF FETCH LGOFF CLASS # SZA,RSS IF NOT DEFINED, JMP NOTIN ERROR * LDA $STH FETCH R$PN$ CLASS # SZA,RSS IF NOT DEFINED, JMP NOTIN ERROR STA CLAS2 * * NOTE: (B) STILL CONTAINS THE DEVICE TYPE * CPB DVR07 IF MULTIPOINT RSS GO SET EDIT-MODE FLAGS JMP LUDIS GO DO LU DISABLE * LDA B2300 FETCH CONTROL PORTION STA CONWD AND SAVE FOR CONTROL REQUEST JSB XLUEX DEF ED.TF DEF DS19 CONTROL REQUEST WITH NO-ABORT DEF LU DEF IM EDIT MODE FLAGS DEF CLAS2 DEF NOP DEF NOP DEF NOP DEF NOP DEF RN# WATCH OUT FOR LU LOCKS ED.TF EQU * NOP POSSIBLE ERROR RETURN * SPC 5 * * * DISABLE TERMINAL BY SETTING BIT IN BIT MAP * LUDIS LDA LU FETCH LU JSB .SETB GO SET BIT SEZ WAS IT ALREADY SET ? JMP BSY YES,GO MAKE SURE EVERYONE IS STILL SCHEDULED * * * CLA CLEAR CON WD SO STA CONWD WE GET CRLF * JSB XLUEX RESPOND WITH DEF ZROTN ZERO LENGTH RECORD DEF DS18 DEF LU DEF BUFF DEF D0 DEF NOP DEF NOP DEF CLAS2 DEF NOP DEF RN# ZROTN NOP * SKP * * * THIS IS WHAT WE WANT TO DO: * * 1) SEE IF A SESSION IS DEFINED FOR THIS TERMINAL (NODE ?) * 2) IF YES- THIS IS A "BREAK" MODE REQUEST * 3) OTHERWISE- * A) FIND "LOGON" OR GIVE ERROR AND QUIT * B) ISSUE LOGON MESSAGE TO TERMINAL ( GET THIS FROM * SYS MAP BUFFER) * C) START CLASS READ FOR RESPONSE AND GET "LOGON" STARTED. * D) TERMINATE, SAVING RESOURCES SPC 5 * JSB LUSES GO SEE DEF *+2 IF A DEF LU SESSION IS DEFINED STA SESID SAVE THE SCB INFO SZA FOR THIS REQUEST JMP PROMT YES--BREAK MODE SKP * * LOG-ON REQUEST * * CHECK FOR SHUTDOWN STATUS * LDA $DSCS CPA N2 IF SHUTDOWN JMP SHDN ISSUE MESSAGE AND TERMINATE * * * LDA RN# IF THIS LU IS LOCKED SZA PUNT ! JMP LULCK * * JSB IDGET LOOK UP THE ID ADDRESS DEF *+2 OF LOGON EVERY TIME DEF LOGON TO PREVENT PROMPTING USER WHEN YOU CAN'T CONTINUE SEZ JMP LGERR NOT FOUND-- ISSUE LOGON NOT FOUND ERROR! * * MOVE IN LOG-ON PROMPT * LDA $LME$ FETCH ADDR OF LOG-ON PROMPT LDB DLGON FETCH ADDR OF LOCAL BUFFER LDX D11 MWF MOVE WORDS FROM SYSTEM MAP INTO USER MAP * JSB XLUEX PROMPT FOR LOGON STRING (USER.GROUP) DEF LG.1 DEF DS18 DEF LU DEF LOGMS+1 DEF LOGMS DEF NOP DEF NOP DEF CLASS USE LOGON'S CLASS # LG.1 NOP * * IF SHUT-DOWN IN PROGRESS, GET OUT * LDA $DSCS+1 SSA JMP ENBL * LDA B400 SET FOR ECHO STA CONWD ON READ OF USER.GROUP NAME * JSB XLUEX START CLASS READ OF USER INPUT DEF LG.2 DEF DS17 DEF LU DEF * DEF DM80 DEF NOP DEF LU DEF CLASS LG.2 NOP * * * ATTEMPT TO SCHEDULE LOGON PASSING THE COMMUNICATION CLASS# IN TEMP 1 * JSB EXEC DEF RTSCH DEF DS10 SCHEDULE NO WAIT DEF LOGON DEF LU DEF CLASS RTSCH NOP ERROR RETURN * * * * JMP EXIT * SKP * * * BREAK MODE PROCESSING * * PROMT JSB XLUEX DEF *+10 "S=LU COMMAND?_" DEF DS18 DEF LU DEF BUFF DEF D8 DEF NOP DEF NOP DEF CLAS2 USE R$PN$'S CLASS NUMBER DEF NOP DEF RN# NOP ERROR RETURN SPC 1 LDA B400 ALLOW ECHO ON INPUT STA CONWD * JSB XLUEX PERFORM CLASS I/O READ DEF *+10 DEF DS17 DEF LU DEF * DEF DM80 DEF SESID DEF EQT4 DEF CLAS2 DEF NOP DEF RN# NOP ERROR RETURN SSA ERROR RETURN? JMP EXIT YES-BEAT IT ! * SPC 1 JSB EXEC SCHEDULE R$PN$ W/O WAIT DEF SCRPN IGNORE SCHEDULE ERRORS SINCE DEF DS10 R$PN$ IN CLASS 'GET' SUSPEND DEF R$PN$ DEF CLAS2 SCRPN NOP ERROR RETURN * * SKP * * * TERMINATION PROCESSING * * CHECK FOR POSSIBLE STRING FROM SYS/SES CONSOLE * * * EXIT JSB EXEC TERMINATE DEF *+1+3 & SAVE DEF D6 RESOURCES DEF D0 DEF D1 JMP PRMPT RESTART HERE ON INTERRUPT * * ERLU LDA CONF TERM LU TOO BIG JMP EMES ISSUE MESSAGE * NOTIN LDA NIERR NOT-INITIALIZED ERROR JMP EMES * LULCK LDA LKERR LU LOCKED ERROR JMP EMES * LGERR LDA NFND CAN'T FIND LOGON JMP EMES * SHDN LDA SDERR SHUT-DOWN MESSAGE * * EMES STA ELEN INA ADVANCE TO BUF ADDR STA EBUF * CLA CLEAR CON WORD STA CONWD * * WRITE ERROR VIA CLASS I/O. WE MUST FIRST ALLOCATE A CLASS * AND THEN GET IT RELEASED. * JSB XLUEX DEF ERRTN DEF DS18 DEF LU EBUF DEF * ELEN DEF * DEF NOP DEF NOP DEF TCLAS DEF NOP DEF RN# ERRTN NOP ERROR RETURN * NGET JSB XLUEX DEF GRTN DEF DS21 DEF TCLAS DEF * DUMMY BUFFER DEF NOP ZERO LENGTH TRANSFER GRTN NOP THIS GET WILL RELEASE THE CLASS # * CLA STA TCLAS * * ERROR CONDITIONS CAUSE THE DISABLE BIT TO BE CLEARED * ENBL LDA LU JSB .CLRB THIS ROUTINE CHECKS THE VALUE OF A JMP EXIT * JMP EXIT SKP * THE BUSY BIT WAS SET AND THE TERMINAL INTERRUPTED AGAIN. * MAKE SURE ALL THE MONITORS ARE SCHEDULED AND EXIT. * BSY JSB EXEC DEF SC1 DEF DS10 DEF R$PN$ SC1 NOP * JSB EXEC DEF SC2 DEF DS10 DEF LOGON SC2 NOP * JSB EXEC DEF SC3 DEF DS10 DEF LGOFF SC3 NOP JMP EXIT SKP DS3 OCT 100003 DS10 OCT 100012 DVR07 OCT 3400 IM OCT 71401 B2300 OCT 2300 EQT4 BSS 1 MD100 DEC -100 DVTYP NOP ************* LU BSS 1 * NOTE: 2 WORD PARM CONWD BSS 1 * ************* SESID NOP B400 OCT 400 DS18 OCT 100022 DS19 OCT 100023 DS21 OCT 100025 TCLAS NOP ********************************* BUFF ASC 7,S=LU COMMAND ? OCT 3537 BELL AND BACK ARROW ASCLU EQU BUFF+1 PROMPT MESSAGE ********************************** * LOGMS BSS 11 NOTE: THIS BUFFER IS LOADED FROM THE SYS MAP ********************************************* D22 DEC 22 * MCONF ASC 22,PRMPT\ TERMINAL LU > SESSION MAXIMUM OF 99 CONF DEF MCONF-1 * ********************************************* D12 DEC 12 * MFND ASC 12,PRMPT\ LOGON NOT FOUND * NFND DEF MFND-1 * ********************************************* DEC 8 * LKER ASC 8,PRMPT\ LU LOCKED * LKERR DEF LKER-1 * ********************************************* D15 DEC 15 * NIER ASC 15,PRMPT\ SESSION NOT INITIALIZED * NIERR DEF NIER-1 * ***************************************************** DEC 8 * SDER ASC 8 PRMPT\ SHUTDOWN * SDERR DEF SDER-1 * ***************************************************** * DLGON DEF LOGMS D11 DEC 11 D8 DEC 8 D6 DEC 6 D0 DEC 0 D1 DEC 1 N1 DEC -1 N2 DEC -2 CLASS NOP CLAS2 NOP NOP NOP DM80 DEC -80 R$PN$ ASC 3,R$PN$ DS17 OCT 100021 RN# NOP LOGON ASC 3,LOGON LGOFF ASC 3,LGOFF A EQU 0 B EQU 1 END PRMPT