ASMB,R,Q,C HED #BSC: BISYNC TELECOM DRIVER * (C) HEWLETT-PACKARD CO.1979 * NAM #BSC,14 91780-16013 REV.2001 791009 ENT #BSC EXT $TIME * * NAME: #BSC * SOURCE: 91780-18013 * RELOC: 91780-16013 * PGMR: P. KAPOOR ( 11/20/73 ) * * MODIFIED BY: P. KAPOOR, R.SHATZER ( 01/11/75 ) * C. WHELAN ( 10/31/75 ) * C. HAMILTON ( 04/12/77 ) * C. HAMILTON ( 04/01/78 ) * D. BOLIERE, R. GUDZ ( 08/11/78 ) * R. GUDZ ( 04/26/79 ) * R. GUDZ ( 10/09/79 ) * * ***************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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. * * ***************************************************************** * * CAUTION: * THIS IS THE SSGA (OR LIBRARY) RESIDENT PORTION OF A SYSTEM * RESIDENT TELECOMMUNICATION DRIVER DVR50 . THIS * MODULE MAY BE APPENDED AS A SUBROUTINE TO THE * MAIN DEVICE EMULATOR PROGRAM. IT CAN RESIDE EITHER * IN THE USER AREA OR IN THE SYSTEM AREA. IN FORMER * CASE IT MUST NOT BE SWAPPED OUT ONCE INITIATED. * * REFER TO THE SYSTEM RESIDENT DVR50 BEFORE USING * THIS MODULE. * * * ON ENTRY INTO #I.50 DURING INITIALIZATION , EQT7 * CONTAINS SYNC CHARACTER FOR THE LINE CODE WITH BIT * 15 EQUAL TO 1 FOR CRC AND 0 FOR LRC. UPON EXIT * BACK INTO THE SYSTEM RESIDENT DRIVER, REG-B HAS * THE PASSWORD. REG-A ALWAYS HAS COMPLETION CODE. * RETURN IS (P+1) AFTER INITIALIZATION AND (P+2) * OTHERWISE. * * ON EXIT FROM #C.50 INTO DVR50 , TAKE (P+1) RETURN IF IN BETWEEN REQUESTS, * TAKE A (P+2) RETURN ON COMPLETION AND (P+3) RETURN FOR CONTINUATION. * * FOR (P+2) RETURN , REG-A & B HAVE COMPLETION PARAMETERS. * * RETURN FROM #P.50 IS ALWAYS (P+1) . * =RECV. SYNC-REFERENCE COMMAND, IF SYNC HUNT MODE; OR =0, IF NOT. * ************************************************************************** SKP ************************************************************************** * PCO 1840 AUGUST 11,1978 * * * 1. TRACE HAS BEEN ADDED! * * 2. EACH LINE BID WILL LAST AS LONG AS 127 ENQ'S. * ************************************************************************** ************************************************************************** * PCO 1926 APRIL 26,1979 * * RTE-IVB SESSION MONITOR COMPATIBILITY! * * * RJE NOW RETRANSMITS DATA IF IT WAS LOST AND * THE RECEIVER ANSWERED WITH THE LAST ACK. * * (RJE PREVIOUSLY FAILED TO USE THIS ACK0/ACK1 FEATURE.) * ************************************************************************** ************************************************************************** * PCO 2001 OCTOBER 9, 1979 * * NOTE: RJE HAS BEEN CHANGED ALSO FOR PCO 2001!!! * * DURING READ AND WRITE CALLS, RJE NOW PASSES A BUFFER * POINTER. THIS IS FOR COMPATIBILITY WITH PCO 1926 OF RTE. * IN THIS WAY, USER MAP IS ENABLED UPON DRIVER ENTRY. * ************************************************************************** SKP * * 160010 [XMIT BOARD] * * * 1 * 1 1 0 * 0 0 0 * 0 0 0 * 0 0 1 * 0 0 0 * * ****************************************************************** * * C * C C R * P P S * S T ! NOT USED ! CHAR SIZE * * * M * M D C * A A Y * T E ! * ! * * * * D * D V * R R N * A S ! * ! * * * * * O * C * T T ! * ! * * * * * N (C)* S S * ! * ! * * * * * (A)* T E E * I ! * ! * * * * * * A N N * N ! * ! * * * * * O * T S A * T ! * ! * * * * * F * E B * ! * ! * * * * * F * O L * O ! * ! * * * * * * F E * F ! * ! * * * * * * F V O * F ! * ! * * * * * * E N * ! * ! * * * * * * N * ! * ! * * * ****************************************************************** * * * 151030 [RCV BOARD] * * * 1 * 1 1 0 * 0 0 0 * 0 0 0 * 0 0 1 * 0 0 0 * * ****************************************************************** * * C * C X C * P P S * S S S * T S ! CHAR SIZE * * * M * M D * A A Y * T P B * E Y ! * * * * D * D * R R N * A E A * S N ! * * * * * O * C * T C * T C ! * * * * * N * S E * O * ! * * * * * * T V H * C F * C F ! * * * * * * A E U * I H F * L L ! * * * * * * T N N * N * K G ! * * * * * * T * T I * ! * * * * * * O * N * O ! * * * * * * F O * O T * N ! * * * * * * F N * F * ! * * * * * * * F O * ! * * * * * * * F * ! * * * * * * * F * ! * * * ****************************************************************** * SKP * * 171010 [XMT BOARD] * * * 1 * 1 1 0 * 0 0 0 * 0 0 0 * 0 0 1 * 0 0 0 * * ****************************************************************** * * C * C C S * P P S * S T ! NOT USED ! CHAR SIZE * * * M * M D N * A A Y * T E ! * ! * * * * D * D D * R R N * A S ! * ! * * * * * O * C * T T ! * ! * * * * * N (C)* S E * ! * ! * * * * * (A)* T V E * I ! * ! * * * * * * A E N * N ! * ! * * * * * O * T N A * T ! * ! * * * * * F * B * ! * ! * * * * * F * O L * O ! * ! * * * * * * F * F ! * ! * * * * * * F O * F ! * ! * * * * * * F * ! * ! * * * * * * F * ! * ! * * ******************************************************************* SKP * #BSC OCT 150003 SECURITY CODE DEF #I.50 DEFINE DEF #C.50 LIBRARY DEF #P.50 ENTRY POINTS. * #I.50 NOP STA TIMAD SAVE ADDRESS OF TIMEOUT VALUES. LDA EQ6,I AND M3777 GET FUNCTION AND REQUEST CODES STA FUNC * LDA BIT12 LDB TFLAG,I FETCH TRACE FLAG SZB SET SWITCHES TO EITHER NOP LDB RSSI OR RSS CPB TSW1 CHANGING MODE? JMP TSW1 NO, SKIP SETTING SWITCHES INA YES, SO INDICATE IN TRACE ENTRY STB TSW1 SET TRACE SWITCHES STB TSW2 STB TSW3 STB TSW4 * TSW1 NOP TRACE SWITCH JMP *+3 LDB FUNC SET BREG TO FUNCTION JSB TRACE LDA FUNC RESUME PROCESSING LDB CWTBL REG-B HAS PROCESS POINTER SCH CPA 1,I FOUND THE PROCESS ? JMP GOTIT YES INB BUMP PROCESS POINTER CPB CWLST JMP REJ2 ILLEGAL FUNCTION, REJECT JMP SCH LOOP BACK. GOTIT ADB TLEN JMP 1,I GET ADDR OF PROCESSOR & GO * CWTBL DEF *+1 CONTROL WORK TABLE OCT 3703 INITIALIZE OCT 3603 DISCONNECT REO7 OCT 3503 RECEIVE-TO-SEND REO6 OCT 3403 HANDSHAKE REO9 OCT 3303 AUTO-ANSWER REO8 OCT 3203 SEND EOT REO10 OCT 3103 SEND-TO-RECEIVE (1 LONG T.O.) OCT 2703 SEND-TO-RECEIVE (20 SECS) OCT 3702 WRITE REO5 OCT 3701 WRITE-CONVERSATIONAL REO4 OCT 3601 READ (SEND RVI) REO3 OCT 3501 READ CONVERSATIONAL. REO2 OCT 3401 READ (SEND NAK) REO1 OCT 3301 READ (SEND ACK0 OR ACK1) * TLEN ABS *-CWTBL-32768 DEF INITL INITIALIZE DEF OFF DISCONNECT DEF RC2SD RECEIVE-TO-SEND DEF HNDSK HANDSHAKE DEF ANSWR AUTO-ANSWER DEF SEOF SEND 'EOT' DEF SD2RC SEND-TO-RECEIVE (1 LONG T.O.) DEF LSN20 SEND-TO-RECEIVE (20 SECONDS) DEF SEND WRITE DEF SENDC WRITE-CONVERSATIONAL DEF READ READ (SEND 'RVI') DEF READ READ (CONVERSATIONAL) DEF READ READ(SEND 'NAK') DEF READ READ (SEND 'ACK0' OF 'ACK1') * CWLST DEF TLEN * * ** INITIALIZATION ** * * THIS SECTION INITIALIZES THE DRIVER. * ON EXIT, REG-B HAS A PASSWORD WHICH IS THE * ADDRESS OF XLINK WORD IN USER'S ID SEGMENT. * THIS ROUTINE SETS UP SYSTEM TIME PARAMETERS * OBTAINED FROM #COMN ROUTINE. * * INITL LDA EQ1 SET ADA P3 LDB EQ4A STA 1,I SET EQT POINTER INB INA CPB EQ12A RSSI RSS DONE JMP *-5 DO NEXT LDA EQ12 STA EQT12 INA STA EQT13 ADA P2 STA EQT15 CLB STB EQ14,I MAKE SURE THAT TIMER STB 0,I IS ZERO * LDA EQTA EQT CMA,INA ADA EQ1 THIS EQT ADDR - 1ST EQT ADDR DIV P15 COMPUTE RELATIVE EQT # INA STA EQT# * LDA EQT7,I SET UP BCC AND CODE FLAG STA BCCFL JSB CCADR SET UP LINE CODE TABLE LDA EQT4,I SET BIT12 OF EQT4 TO TELL RTE IOR MTOWN TO ENTER C.50 ON TIME-OUT . STA EQT4,I * LDA TIMAD GET ADDRESS OF TIMEOUT VALUES. LDB A,I SET UP STB RCTM RECEIVE TIMEOUT INA LDB A,I STB XMTM TRANSMIT TIMEOUT INA LDB A,I STB LGTM LONG TIMEOUT INA LDB A,I STB #NUMB # OF TTD'S / WACK'S INA LDB A,I FETCH CONTROL MODE TIMEOUT STB CMDTM INA BUMP POINTER TO MODE CONTROL WORD LDB A,I GET CONTROL WORD STB DUPLX SET VALUE FOR HALF/FULL DUPLEX FLAG * INA BUMP ADDRESS STA TFLAG INA STA TBUF START OF TRACE BUFFER INA STA OVRN OVERRUN FLAG INA STA RDPT READ POINTER INA STA WRPT WRITE POINTER INA STA BFEN END OF BUFFER * CCA INITIALIZE UPPER TIME STAMP STA LTIME * JSB EXST CLEAN EXTENDED STATUS STA SETCN CLR STC ,C FLAG FROM LAST TIME * * CONFIGURE I/O INSTRUCTIONS * LDA EQT4,I GET DEVICE'S AND M77 CHANNEL NUMBER (RECEIVE BOARD) STA B IN B-REG IOR OTA FORM CONFIGURED OTA STA OTA1R CONFIGURE RECEIVE BOARD STA OTA4R STA OTA5R STA OTA6R STA OTA7R INA STA OTA1S CONFIGURE SEND BOARD STA OTA2S STA OTA3S STA OTA4S STA OTA6S STA OTA7S * LDA CLC IOR B FORM CONFIGURED CLC XX,C STA CLC2 STA PCLCR STA CCLCR INA INCREMENT FOR SEND BOARD STA CLC1 STA PCLCT STA CCLCT * LDA STC FORM COFIGURED STC XX,C IOR B STA STC1R INA STA STC1S * LDA LIA FORM CONFIGURED LIA XX IOR B STA LIA3R INA STA SSTA LDA SYNC OUTPUT THE SYNC CHARACTER OTA6S OTA 0 TO THE TRANSMIT BOARD, OTA6R OTA 0 AND TO THE RECEIVE BOARD. * LDA EQT5,I CLEAN STATUS IN EQT4 AND MFST STA EQT5,I JSB WACTZ CLEAN WACK/TTD & SPEC CASE FLAG LDB EQ1,I GET ADDRESS OF USER'S I.D. SEGMENT. STB PSWD USE IT FOR THE PASSWORD. JSB SCLR CLEAN INTERNAL FLAGS. STA LINE SET TERMINAL OFF-LINE. STA FUNC ERASE FUNCTION FOR LDA P4 IMMEDIATE COMPLETION JMP CLC1 DO CLC'S & EXIT * EQ4A DEF EQT4 EQ12A DEF EQT12 * *** CLEAN INTERNAL FLAGS FOR NEXT OPERATION *** SCLR NOP TIMAD EQU SCLR SHARE STORAGE (INITIALIZATION ONLY). CLA STA EOF CLEAR "EOT" FLAG STA RQ2SD CLEAR "RVI" FLAG STA INERR CLEAR OPERATION IN ERROR FLAG STA TLOG CLEAR TRANSMISSION LOG STA OVRFL CLEAR BUFFER-OVERFLOW FLAG STA SYNFL CLEAR SYNC-REFERENCE FLAG JMP SCLR,I RETURN * *SCFWA OCT 25045 TEMP DEBUG TFLAG DEF OVRN TRACE FLAG ADDRESS OVRN NOP OVERRUN FLAG ADDRESS TBUF NOP FWA OF TRACE BUF WRPT NOP ADDRESS OF WRITE POINTER RDPT NOP ADDRESS OF READ POINTER BFEN NOP END OF BUFFER ADDRESS SKP * ** ACTIVATE TIMER ** * * THIS ROUTINE SETS UP TIME-OUT VALUE IN EQT15. * EQT14 IS NOT USED BY THIS DRIVER (EQT14 IS SET TO * ZERO AFTER THE INITIALIZATION CALL AND THE USER * MUST NOT ATTEMT TO DO ANY KIND OF DEVICE TIME-OUT * MANIPULATION WHILE THE DRIVER IS IN USE). * * ON ENTRY INTO 'TACTV' : * REG-A = NEG NUMBER OF 10 MSEC INTERVALS * REG-B = ADDRESS OF ROUTINE TO BE EXECUTED * UPON TIMEOUT * TACTV NOP LDB TACTV,I STA EQT15,I SET TIME-OUT VALUE OR ZERO IT SZA IS IT DEACTIVATE TIMER ? STB TADRS NO. THEN SET TRANSFER ADDRESS. ISZ TACTV JMP TACTV,I RETURN. * TADRS NOP TRANSFER ADDRESS AFTER REENTRY ON TIMEOUT STA EQT15,I SET TIMEOUT JMP EXITR * TACTZ NOP CCA STA EQT15,I SET FAST TIMEOUT LDA TACTZ STA TADRS SET ADDR UPON RETURN * RTN0 CLA CLC1 CLC 0,C XMIT BOARD CLC2 CLC 0,C RCV BOARD JMP #I.50,I **************************************************** SKP * ** C.50 ** * #C.50 NOP LDA SETCN FETCH STC FLAG SSA,RSS ARE WE TO STC THE CARDS UPON EXIT? CLA NO, SO RESET FLAG STA SETCN * LDA RSSI STA EXITR MODIFY INSTRUCTION ISZ #C.50 ISZ #C.50 ASSUME (P+2) RETURN JMP TADRS,I GO TO TIME-OUT PROCESSOR. * * ** P.50 ** #P.50 NOP CLA STA SETCN CLEAR 'STC XX,C' FLAG STA EXITR MODIFY INSTRUCTION JSB LCHCK DROP LINE IF DATA-SET IS OFF. JMP EXIT,I TRANSFER ADDRESS ON I/O INTERRUPT * EXIT NOP EXITR NOP #C.50 EXIT ? JMP PEXIT NO, THEN #P.50 EXIT. ISZ SETCN YES. SET CONTROL,CLEAR FLAG ? JMP CCLCT NO, DO CLC,CLF ON BOTH BOARDS CCLC CLC 0,C STC1 STC 0,C CONFIGURED SET CONTROL, CLR FLAG JMP #C.50,I RETURN * #P.50 EXIT PEXIT LDA SYNFL GET SYNC-REFERENCE COMMAND, OR ZERO. ISZ SETCN SET CONTROL, CLEAR FLAG? JMP PCLCT NO, DO CLC, CLF ON BOTH BOARDS PCLC CLC 0,C STC2 STC 0,C CONFIGURED SET CONTROL, CLR FLAG JMP #P.50,I RETURN: =SYNC REF, OR ZERO. * PCLCT CLC 0,C PCLCR CLC 0,C JMP #P.50,I * CCLCT CLC 0,C CCLCR CLC 0,C JMP #C.50,I * STC STC 0,C CLC CLC 0,C OTA OTA 0 LIA LIA 0 * DEVDN OCT 40000 DEVICE DOWN MASK MTOWN OCT 10000 MFHNT OCT 176777 MFST OCT 177400 M3777 OCT 3777 STC1S NOP CONFIGURED STC XX,C (SEND BOARD) STC1R NOP CONFIGURED STC XX,C (RECEIVE BOARD) SETCN NOP IF -1 THEN SET CONTROL ON BOARD SYNFL NOP SYNC-REF.CMD, IF SYNC HUNT; OR ZERO MSK14 OCT 140000 * * SET CONTROL, CLEAR FLAG ON SEND BOARD SYN2S NOP JSB SYN7 OUTPUT CHAR LDA STC1S CONFIGURE INSTRUCTIONS FOR STA STC1 SEND BOARD STA STC2 JSB SYN3S READ STATUS SSA,RSS DATA SET OFF ? JMP DSOF YES SLA,RSS CLEAR-TO-SEND OFF ? JMP MODFL YES CCA STA SETCN STC,C FLAG LDA CCLCR STA CCLC STA PCLC JSB EXIT EXIT DRIVER FOR NOW JMP SYN2S,I RETURN * * SET CONTROL, CLEAR FLAG ON RECEIVE BOARD SYN2R NOP LDA STC1R CONFIGURE INSTRUCTIONS FOR STA STC1 RECEIVE BOARD STA STC2 CCA STA SETCN SET CONTROL AND CLEAR FLAG UPON LDA CCLCT STA CCLC STA PCLC JMP SYN2R,I RETURN * * GET SEND BOARD STATUS SYN3S NOP SSTA LIA 0 LOAD A-REG WITH STATUS BITS RAL,RAL JMP SYN3S,I RETURN * * GET RECEIVE BOARD STATUS SYN3R NOP LIA3R LIA 0 LOAD A-REG WITH STATUS BITS JMP SYN3R,I RETURN * * CCADR NOP LDB N13 STB SYN3S SET 13 WORD TRANSFER LDB CCADD STB SYN3R SET DESTINATION ADRS LDA BCCFL AND MASK GET LINE CODE SYN CHAR LDB ASCCC CPA ECCC+11 LINE CODE = EBCDIC ? LDB EBCCC YES MUST BE ASCII. LOOP2 LDA B,I TRANSFER STA SYN3R,I A WORD. INB BUMP SOURCE ADDRESS ISZ SYN3R BUMP DESTINATION ADDRESS ISZ SYN3S ALL DONE ? JMP LOOP2 NO JMP CCADR,I YES, LEAVE. * * SET UP BOARD TO SEND * SYN5 NOP STA SEC3C SET TIMEOUT LDA SSEND GET SYNC CONFIGURED CONTROL WORD OTA3S OTA 0 OUTPUT TO I/O BOARD CLB JSB SYN7 SEND BLANKS JMP SYN5,I RETURN * * * SET UP BOARD TO RECEIVE * SYN6 NOP LDA STOR GET TURN-AROUND CONTROL WORD LDB DUPLX GET DUPLEX FLAG SLB,RSS SKIP IF FULL DUPLEX OTA4S OTA 0 CHANGE SEND BOARD TO RECEIVE CONDITION LDA SREVC GET SYNC CONFIGURED CONTROL WORD OTA4R OTA 0 OUTPUT TO I/O BOARD JMP SYN6,I RETURN * * * SEND CHARACTER TO THE I/O BOARD (CHARACTER IN B) * * SYN7 NOP LDA B AND MASK MASK EXTRANEOUS BITS OTA2S OTA 0 OUTPUT TO SEND BOARD TSW2 NOP TRACE SWITCH JMP SYN7,I RETURN IOR BIT15 JMP TTRAC CREATE A TRACE ENTRY * * * GET RECEIVED CHARACTER AND PLACE IN A-REG * DOLIA NOP JSB SYN2R ENABLE RCV INTERRUPTS JSB EXIT AWAIT NEXT WORD JSB SYN3R GET CHARACTER FROM RECEIVE BOARD ALF,RAR SLA,RSS DATA SET OFF ? JMP DSOF YES SSA RECEIVED CARRIER FAILED ? JMP DOLIX NO CCA YES STA CARCT SET "CARRIER FAILED" FLAG LDA SREVC AND MFHNT OTA5R OTA 0 DISABLE LINE STATUS INTERRUPT DOLIX JSB SYN3R AND MASK TSW3 NOP TRACE SWITCH JMP DOLIA,I RETURN * * TTRAC: TIME TRACE ROUTINE TO CREATE A 2 WORD ENTRY COMPLETE * WITH LOWER TIME STAMP. ALSO REPORTS NEW UPPER TIME * STAMP IF NEEDED. * TTRAC LDB $TIME+1 FETCH UPPER TIME STAMP CPB LTIME SAVE AS LAST REPORTED? JMP TRAC2 YES, THEN JUST REPORT DATA & LOWER TIME STB LTIME NO, RESET AND REPORT NEW UPPER TIME STA TTEMP+1 LDA BIT14 JSB TRACE LDA TTEMP+1 FETCH BACK DATA BYTE TRAC2 LDB $TIME JSB TRACE CREATE DATA ENTRY LDA TTEMP RESTORE AREG SSA WHICH WAY OUT? JMP SYN7,I JMP DOLIA,I * * TRACE: SUBROUTINE TO CREATE A TWO WORD ENTRY INTO THE TRACE * BUFFER. CHECKS FOR AND INDICATES OVERRUN CONDITIONS. * TRACE NOP STA TTEMP SAVE A-REG LDA WRPT,I STB 0,I SAVE B-REG FIRST INA LDB TTEMP STB 0,I THEN A-REG INA CPA BFEN,I END OF TRACE BUFFER? LDA TBUF,I YES, RESET POINTER STA WRPT,I CPA RDPT,I OVERRAN READ POINTER? ISZ OVRN,I YEP, TELL SOMEONE NOP JMP TRACE,I * TTEMP BSS 2 LTIME NOP * CARCT NOP CARRIER FAIL COUNTER * DUPLX NOP 0 FOR HLF-DUPLEX, 1 FOR FULL DUPLEX * * PASSWORD VALIDATION ROUTINE PSW NOP CPA PSWD PASSWORD CORRECT ? JMP PSW,I YES, THEN RETURN. LDB BIT1 SET PASSWORD VIOLATION JMP MVIOL+1 * VALIDATE ON-LINE CONDITION ONLN NOP LDA LINE SZA TERMINAL ON-LINE JMP ONLN,I YES, THEN RETURN. JMP MVIOL RECORD MODE VIOLATION * ERCNT NOP JSB UPCAR BRING UP CARRIER LDA M8 STA ERROR SETUP ERROR RETRY COUNTER JMP ERCNT,I M8 DEC -8 * * VALIDATE OFF-LINE CONDITION OFLN NOP LDA LINE SZA,RSS TERMINAL OFF-LINE ? JMP OFLN,I YES, THEN RETURN. JMP MVIOL RECORD VIOLATION IN STATISTICS * * VALIDATE RECEIVE MODE CONDITION RMD NOP LDA EQT9,I JSB PSW CHECK PASSWORD LDA RCSND SZA,RSS IN RECEIVE MODE ? JMP RMD,I YES, THEN RETURN. JMP MVIOL RECORD MODE VIOLATION * * VALIDATE CONTROL MODE CONDITION CNTMD NOP JSB ONLN VALIDATE THAT ON-LINE LDA EQT5,I GET PREVIOUS STATUS AND P12 GET XMIT AND REC BITS SZA,RSS TRML IN XMIT OR REC MODE ? JMP CNTMD,I NO, THEN IT IS OK. * MVIOL LDB BIT2 GET (B) FOR MODE VIOLATION JSB SET SET VIOLATION IN STATISTICS * REJ2 LDA EQ5,I SET 'OPERATION IN ERROR' IOR P1 IN STANDARD STATUS WORD. STA EQ5,I LDA P2 REG-A = 2 FOR ERROR RETURN CLB STB FUNC ERASE FUNCTION HOLDER. JMP #I.50,I RETURN EQ5 EQU 1664B * * *** HANDSHAKE PROCESSOR *** * * EXECUTION STEPS: * 1. REJECT IF PASSWORD IS INCORRECT. * 2. REJECT IF TERMINAL ON-LINE. * 3. WAIT FOR OPERATOR TO DIAL REMOTE. * 4. SEND "ENQ" CHARACTER TO REMOTE. * 5. WAIT FOR "ACK0" OR "RVI" FROM REMOTE. * 6. ACTIVATE THE "TTD" MODULE TO FUNCTION FOR THE * TIME SPECIFIED BY THE "#COMN" ROUTINE. * * HNDSK LDA EQT7,I JSB PSW CHECK PASSWORD JSB OFLN CHECK MODE JSB EXST CLEAN EXTENDED STATUS JSB TACTZ * * REQUEST ACCEPTED. SET UP I/O BOARD. * LDA SEC10 JSB SYN5 PRIME I/O BOARDS HDSK1 JSB SYN3S GET STATUS OF SEND BOARD SSA DATA SET READY ? JMP BHND1 YES BHND LDA EQTM SET 1 SEC TIMER LOOP JSB TADRS AT "HDSK1" JMP HDSK1 * BHND1 SLA CLEAR-TO-SEND UP ? JMP CTSOK YES. ISZ SEC3C 10 SEC OVER ? JMP BHND NO JMP MODFL YES, REPORT FAILURE. * CTSOK ISZ EOF INDICATE CONTROL MODE CLA,INA SET UP THE A REGISTER JMP CTSXT FOR A BUMMED EXIT! * *