ASMB,L,C,N * NAME : DVR07--2645 MULTIPOINT DVRIVER * SOURCE: 91730-18001 2001 * RELOC: 91730-16001 2001 * PROGMR: G.W.J. * * **************************************************************** * * (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. * * **************************************************************** * * HED 2645 MULTIPOINT DRIVER (DVR07) 10-02-79 1007 &DV07A NAM DVR07 91730-16001 REV 2001 791022 &DV07A ENT I.07,C.07 EXT $LIST,$TIME * * * * 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 * * [ ] EQT1 * [ ] EQT2 * [ ] EQT3 * [D ][B ][P ][S ][T ][<------UNIT------>][<---SELECT CODE------>] EQT4 * [ AV ][<---EQUIPMENT TYPE--->][DO][OR][ET][BR][<-ERROR CODE->] EQT5 * [ [<-----FUNCTION--->][<---REQUEST CODE----->] EQT6 * [<-----------------INPUT OUTPUT BUFFER POINTER---------------->] EQT7 * [<-------------------INPUT OUTPUT BUFFER LENGTH--------------->] EQT8 * [<------------------------IP1--------------------------------->] EQT9 * [<------------------------IP2--------------------------------->] EQT10 * [<-------------------LINK LIST POINTER------------------------>] EQT11 * [RP][RS][LF][CR][HO][CL][NL][SC]<--------EQT EXT. LTH.-------->] EQT12 * [<-------------------EQT EXT. POINTER------------------------->] EQT13--] * [ ] EQT14 ] * [ ] EQT15 ] * [L ][<-------GROUP ID.------->][<------DEVICE ID.------------->] EQT16<-] * [DF][BF][SK][OB][AA][LINE NUMBER][<---------STATE------------->] EQT17 * [<---------------WORD COUNT FOR THIS OPERATION---------------->] EQT18 * [<-------------MEMORY ADDRESS POINTER------------------------->] EQT19 * [<-------------LAST WORD AV. MEMORY USER BUFFER--------------->] EQT20 * * NOTE: IF EQT IS A LINE EQT (EQT16 B15=1) EQT16 B0-14 CONTAINS ID SEG ADD * OF A PROGRAM TO BE SCEDULED IF A POS. RESP. RECEVED TO A POLL * AND THERE IS NO PENDING READ RQ. * * INITIATION CALLS: * * LINE: * * CALL EXEC(3,ILU+2000B,ICW) * * WHERE: ILU IS AN LU POINTING TO AN EQT WHICH IS LINKED TO * A 12790A INTERFACE CARD AND DVR07. BIT 15 OF ICW IS * SET TO 1 TO INDICATE THIS IS A LINE SET UP REQUEST. * * 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 * ICW = 1 [ TO VAL ] [ LN ] * TO VAL = THE NUMBER OF 100MS (0-30) ALLOWED FOR LINE TURNAROUND. * A ZERO IN THIS POSITION IMPLIES THE DEFAULT. (3 SEC.) * LN = LOGICAL LINE NUMBER (0-7) * THIS ARGUMENT MUST ALWAYS BE SUPPLIED. * * TOV*256+LN NOTE: IN THE EVENT OF A POWER FAIL AND * THE RESTARTING OF THE MP SYSTEM BY (FIXMP) * THE TIME-OUT VALUE WILL REVERT TO THE * DEFAULT OF 3 SEC. * TERMINAL: * * CALL EXEC(3,2000B+LUN,ICW) * * WHERE: LUN IS A LU POINTING TO AN EQT WHICH IS LINKED TO DVR07. * BIT 15 OF ICW MUST BE ZERO. * 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 * ICW = 0 [ LN ][ 6 BITS GID ][ 6 BITS DID ] * LN = LINE NUMBER (0-7) * * NOTE: WHEN A TERMINAL IS INITIATED THE "CH" (SELECT CODE) CONTAINED * IN ITS LINE EQT IS MOVED TO THE "CH" IN THE TERMINAL EQT. * USING THE LU AND EQ COMMANDS IN RTE ONE CAN EASILY TELL * WHICH LINE A TERMINAL LU IS LINKED TO. * * GID (GROUP ID) AND DID (DEVICE ID) ARE PRODUCED BY ANDING * ALPHABETIC CHARACTER WITH 77B. * * LINE OPERATIONS: * * LINE OPERATIONS ARE THOSE SPECIAL FUNCTIONS WHICH CAN ONLY BE DONE ON A * LINE CONTROL LOGICAL UNIT. SEE 02645-90005 PP.5.38-5.41. * * "WHO ARE YOU" CALL EXEC (1,LUN,IBUF,IBUFL,ID) * * LUN = A LINE CONTROL LOGICAL UNIT NUMBER. * IBUFL MUST BE LONG ENOUGH TO CONTAIN 3 WORDS PER TERMINAL * * 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 * ID = [ GROUP ID CHARACTOR ][ PARENTHESIS CHARACTOR ] * * RESULTING BUFFER FORMAT: * NOTE: THE RIGHT BYTE OF ID IS FORCED * ----------- TO A PARENTHESIS BY THE DRIVER. IT IS * \ GID \ DID \ IMPORTANT HOWEVER THAT THE GROUP ID * ----------- CHARACTOR BE SUPPLYED AS THE LEFT BYTE * \ ST0 \ ST1 \ OF THE ARGUMENT "ID" IN THE CALL. * ----------- * \ ST2 \ 40B \ * ----------- * * "GROUP/LINE SELECT AND WRITE" * * CALL EXEC (2,LUN,IBUF,IBUFL,ID) * * LUN = A LINE CONTROL LOGICAL UNIT NUMBER * * 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 * GROUP ID = [ GROUP ID CHARACTOR ][ (176B) ] * * LINE ID = [ (176B) ][ (176B) ] * * NOTE: THE RIGHT BYTE OF THE ID IS FORCED TO A 176B * BY THE DRIVER. IT IS IMPORTANT THAT THE GROUP ID * CHARACTOR BE SUPPLYED AS THE LEFT BYTE OF THE ARGUMENT * "ID". SUPPLYING A 176B AS THE LEFT BYTE RESULTS IN * DOING A LINE SELECT WRITE OR A WRITE TOO ALL THE * TERMINALS ON THE LINE. IF A NULL IS IN THE LEFT BYTE * A "^" WILL BE USED RESULTING IN A "LINE" SELECT. * SKP * * SPECIAL CONTROL FUNCTIONS: * * FUNCTION 21B - REMOVE * * TO REMOVE A LINE FROM A SYSTEM. * CALL EXEC(3,ILU+2100B,LN) * * ILU = LINE CONTROL LOGICAL UNIT NUMBER * LN = LOGICAL LINE NUMBER WITH BIT 15 SET TO A 1 * * TO REMOVE A TERMINAL FROM A LINE. * CALL EXEC(3,ILU+2100B) * * ILU = TERMINAL CONTROL LOGICAL UNIT NUMBER * * FUNCTION 22B - SET "NAK" AND "WACK" COUNT. * CALL EXEC(3,ILU+2200B,IM) * * ILU = LINE CONTROL LOGICAL UNIT NUMBER * 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 * IM = [ TBF ][ WACK CNT. ][ RECV NAK ][ XMIT NAK ] * 1,2,4 0-32 0-16 0-16 * FUNCTION 23B - DISABLE ROUTINE POLLING AND/OR SET EDIT MODE FLAGS. * CALL EXEC(3,ILU+2300B,IM) * * ILU = TERMINAL CONTROL LOGICAL UNIT NUMBER * 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 * IM = D R L C H X N S A * WHERE: * S=1-->SCHEDUAL THE ASYNCHRONUS INTERRUPT PROGRAM ON BREAK. * A=1-->ENABLE "AUTO-ACKNOWLEDGEMENT" * D=1-->DISABLE ROUTINE POLLING. * R=1-->STRIP "RECORD SEPERATOR" FROM INCOMING TEXT. * L=1-->STRIP "LINE FEED" FROM INCOMING TEXT. * C=1-->STRIP "CARRAIGE RETURN" FROM INCOMING TEXT. * H=1-->SEND "HOME" BEFOR SENDING TEXT. * X=1-->SEND "CLEAR DISPLAY" BEFOR SENDING TEXT. * N=1-->APPEND A " CR-LF-ESC-137B " TO TEXT. * NOTE: IF THE TEXT IS TERMINATED WITH A "_" (137B) * THE "CR-LF" WILL NOT BE APPENDED. * * TBF- TERMINAL BLOCKING FACTOR * * 0--> USE THE DEFAULT 256 BYTE RECEIVE BLOCK. DATA COMM. BUFFER=512 * 1--> SPECIFY THE 256 BYTE RECEIVE BLOCK SIZE. DATA COMM. BUFFER=512 * 2--> SPECIFY THE 512 BYTE RECEIVE BLOCK SIZE. DATA COMM. BUFFER=1024 * 3--> MUST NOT BE USED. * 4--> SPECIFY THE 1024 BYTE RECEIVE BLOCK SIZE. DATA COM. BUFFER=2048 * 5-7--> MUST NOT BE USED. * * NOTE: "AUTO-ACKNOWLEDGEMENT" CAUSES (BELL-BELL-CR-LF-ESC-137B) * TO BE SENT TO THE TERMINAL AFTER A FULL MESSAGE IS RECEVED. THIS * IS USEFULL WHEN OPERATIND INTERACTIVLY. SKP * * EQT FLAG DEFINITION: * * EQT12 - ROUTINE POLL FLAG, EDIT MODE FLAGS AND EQT EXT LTH. * * BITS 0-2 CONTAIN THE EQT EXT LENGTH (CURRENTLY = 5) * * * (S) BIT 8....1-->SCHEDUAL THE ASYNCHRONUS INTERRUPT PROGRAM ON BREAK. * (N) BIT 9....1-->APPEND A "CR-LF-ESC-137B" TO OUT GOING TEXT. * (X) BIT 10....1-->SEND A "CLEAR DISPLAY" BEFOR SENDING TEXT. * (H) BIT 11....1-->SEND A "HOME UP" BEFOR SENDING TEST. * (C) BIT 12....1-->STRIP "CR" FROM INCOMING TEXT. * (L) BIT 13....1-->STRIP "LF" FROM INCOMING TEXT. * (R) BIT 14....1-->STRIP "RS" FROM INCOMING TEXT. * BIT 15....1-->ROUTINE POLLING DISABLED. * * EQT16 - ID/ID SEG. ADD. * * IF BIT 15 OF EQT16 = 0 THAN THIS EQT IS A TERMNIAL EQT AND THE * REMANING (0-14) BITS CONTAIN THE ID OF THE TERMINAL ASSOCIATED * WITH THIS EQT. * * IF BIT 15 OF EQT16 = 1 THAN THIS EQT IS A LINE CONTROL EQT AND * THE REMAING (0-14) BITS CONTAIN THE ID SEGMENT ADDRESS OF A * PROGRAM TO BE SCEDULED ON ASYNCHRONUS INTERRUPTS. * * EQT17 - CONTROL FLAGS, LINE NUMBER AND DRIVER STATE * * BITS 0-7..STATE OF THE DRIVER RELATIVE TO THIS EQT. (0-256) * STATE 0-->INACTIVE. * * BITS 8-10.LOGICAL LINE NUMBER TO WHICH THIS EQT IS LINKED. * * BIT 11....1-->AUTO-ACKNOWLEDGE EACH FULL MESSAGE AS IT IS RECEVED. * BIT 12....1-->ODD NUMBER OF BYTES IN WRITE BUFFER. * BIT 13....1-->THIS EQT WAS SKIPED ON THE LAST TIME AROUND. * BIT 14....1-->LAST TRANSACTION WAS TERMINATED WITH AN ETB * BIT 15....1-->WAITING FOR A DMA CHANEL. * * EQT5 - STATUS BITS 0-7 * * BITS 0-3..ERROR CODE SEE CONTINUATION ERRORS * BIT 4....1-->BREAK DETECTED. * BIT 5....1-->CONTROL-Y DETECTED (EM) OR ZERO LTH. READ * BIT 6....1-->ODD NUMBER OF BYTES IN THE LAST READ. * BIT 7....1-->(D-O-R-E) DATA OVERRUN ERROR. INPUT MESSAGE * EXCEEDED THE BUFFER. * SKP * * DETECT AND SET MODEM CONTROL LINES. F=06B * * TO DETECT AND SET SELECTED MODEM CONTROL LINES. * R=CALL EXEC(3,ILU+600B,IP) THE "B" REGESTER CONTAINES MODEM STATUS. * * ILU = LINE CONTROL LOGICAL UNIT NUMBER ONLY. * IP = 0-->RETURN MODEM STATUS ONLY. * IP # 0-->SET OR CLEAR THE SELECTED LINES AND RETURN STATUS. * * "B" REGESTER FORMAT * * BIT 15...INTERNAL USE ONLY. * 14...INTERNAL USE ONLY. * 13...(IC) RING DETECTED. * 12...(RR) CARRIER DETECTED. * 11...(CS) CLEAR TO SEND DETECTED. * 10...(DM) DATA SET READY DETECTED. * 09...(SRR) SECONDARY CARRIER DETECTED. * 08...(RT) RECEIVE CLOCK * 07... * 06... BITS 4-7 CONTROL THE BAUD RATE GENERATOR * 05... ON THE 12790A CARD. SEE THE 12790A MANUAL. * 04... * 03...(RS) REQUEST TO SEND ASSERTED. * 02...(SRS) SEC. R-T-S * 01...(TR) DATA TERMINAL READY * 00...(J2 PIN 19) RATE SEL. * NOTE: ONLY (TR) AND (J2 PIN 19-RATE SEL.) CAN BE MODIFIED. * * IP FORMAT FOR DOING MODEM CONTROL: * * BIT 00 =1--> ASSERT J2 PIN 19 (RATE SEL.) * BIT 01 =1--> DEASSERT J2 PIN 19 (RATE SEL.) * BIT 02 =1--> ASSERT DATA TERMINAL READY (TR) * BIT 03 =1--> DEASSERT DATA TERMINAL READY (TR) * BIT 04-15 UNUSED * * NOTE: SETING BOTH ASSERT AND DEASSERT RESULTS IN DEASSERT. * * BIT ASSIGNMENTS IN IP MAY CHANGE DEPENDING ON THE MODEM USED. * CHECK THE 12790A MANUAL FOR SPECIFIC ASSIGNMENTS. * FUNCTION 6 IS NOT EXECUTED UNTIL THE NEXT TIME THE DRIVER IS * POINTING TO THE LINE CONTROL EQT, SO THERE CAN BE SOME TIME DELAY * BEFORE THE RESULT OF THE CALL IS REALIZED. MAKE THIS CALL TO LINE * CONTROL LU'S ONLY. * SKP * LINKED LIST STRUCTURE * * * THE LINE CONTROL EQT AND ALL OF THE TREMINAL CONTROL EQT'S * ASSOCIATED WITH IT ARE LINKED BY WAY OF A LINK WORD IN EQT11 OF EACH * EQT. EQT11 CONTAINS THE EQT1 ADDRESS OF THE NEXT EQT IN THE LIST, WITH * THE LAST MEMBER OF THE LIST POINTING BACK TO THE LINE CONTROL EQT. * AS TERMNIAL EQT'S ARE ADDED TO THE LINE THEY ARE INSERTED BETWEEN * THE LINE EQT AND THE FIRST TERMINAL EQT. THIS RESULTS IN THE LAST * EQT INITATED BEEING THE FIRST EQT IN THE LIST FOLOWING THE LINE EQT. * IF AN ACTION RELATIVE TO AN EQT WILL RESULT IN AN SUBSEQUENT * INTERRUPT FORM THE INTERFACE CONTROLING THE LINE, THE INTERRUPT TABLE * ENTERY ASSOCIATED WITH THAT INTERFACE WILL BE MODIFIED TO POINT TO * EQT1 OF THE ACTIVE EQT. * * LINE * ______ * EQT1 \ \<----- * / / \ * EQT11\ \--- \ * / / \ \ * EQT16\1---\ \ \ NOTE: EQT16 BIT 15=1-->LINE CONTROL EQT * / / \ \ * EQT20\____\ \ \ * \ \ * TERM \ \ NOTE: THIS WAS THE LAST EQT INITATED. * ______ \ \ * EQT1 \ \<--- \ * / / \ * EQT11\ \--- \ * / / \ \ * EQT16\0---\ \ \ NOTE: TERMINAL EQT'S HAVE A 0 IN BIT 15 OF EQT16. * / / \ \ * EQT20\____\ \ \ * \ \ NOTE: INTERNAL TO THE DRIVER THERE IS A 8 WORD * TERM \ \ TABLE CALLED THE "LINE TABLE". THIS TABLE IS * ______ \ \ ORDERD ON LOGICLA LINE NUMBER (0-7) AND EACH * EQT1 \ \<--- \ ENTERY POINTS TO THE EQT1 WOED ADDRESS OF THE * / / \ LINE CONTROL EQT FOR THAT LINE. * EQT11\ \------ * / / * EQT16\0---\ * / / * EQT20\____\ * SKP * * ERROR-CODES * * INITATOR ERRORS: * * SEE PP.15 FOR INITATOR ERROR CODES * * * CONTINUATION ERRORS * A REGESTER=1 ERROR CODE IN EQT5 BITS 0-3=: * * 0-REQUEST REJECTED 10-RECEVE BYTE OVERRUN * 1-MODEM OFF 11-TEXT BLOCK OVERRUN * 2-NO TRANSMIT CLOCK 12-NAK OVERRUN * 3-NO CLEAR TO SEND 13-WACK OVERRUN * 4-NO RECEVE CLOCK 14-ACK SEQUENCE ERROR * 5-NO CARRIER DETECT 15-UNRECOGNIZED RESPONSE * 6-NO RESPONSE 16-TERMINAL BUFFER OVERFLOW * 7-BREAK, NO STOP BIT 17-INTERNAL LOGIC ERROR * SKP * * SAMPLE SYSTEM GENERATION: * *EQT ENT. * . * . * M1...SC,DVR07,X=5 <--\-THESE EQT'S ARE GOING TO BE USE FOR LINE * M2...SC,DVR07,X=5 \ CONTROL AND MUST HAVE A 12790A CARD ASSOCIATED * M3...SC,DVR07,X=5 \ WITH THERE SC. * M4...SC,DVR07,X=5 \ * M5...SC,DVR07,X=5 <--\ * M6...SC,DVR07,X=5 * M7...SC,DVR07,X=5 * M8...SC,DVR07,X=5 * . * . *LU ENT. * . * . * N1,M1 LINE CONTROL * N2,M2 * N3,M3 * N4,M4 * N5,M5 LINE CONTROL * N6,M6 * N7,M7 * N8,M8 * . * . *INT ENT. * . * . * SC FOR THE FIRST CARD,PRG,ASIP<--PROGRAM NAME * SC FOR THE SECOND CARD,PRG,ASIP<--PROGRAM NAME * . * * SKP I.07 NOP JSB SETIO GO SETUP IO INST (SC IN A) CLA "A"=0 FOR EQT EXT ONLY STA EQT15,I CLEAR ANY TO VALUE IN EQT15 JSB SETEQ SETUP EQT EXT LDA EQT6,I GET "RC" AND D3 LOW 2 BITS OF EQT6 STA TEMP SAVE RC FOR SETING STATE CPA D3 "RC"=3(CONTROL)? JMP CONT YES, GOTO CONTROL LDB EQT17,I TEST FOR DMA FLAG SSB EQ17 BIT 15=1? JMP STDMA FLAG SET,GO TO DMA SETUP LDB EQT11,I "LLP"=0? SZB,RSS JMP ERR31 ERROR CPA D1 READ? JMP I.01 YES, GO ON LDA EQT16,I NO, OK AND RBYTE CHECK DEV. ID. CPA QM DEV. ID.= A QUOTE MARK? JMP ERR32 YES, ERROR-WRITE TO A GROUP ID. I.01 LDB EQT8,I TEST BUFFER LENGTH CPA D1 READ REQUEST? SZB YES, BUFF LTH=0? JMP I.01A NO, OK JMP ERR01 YES, ERROR * * NORMAL READ/WRITE OPERATIONS GET STARTED HERE. * I.01A CLE,SZB,RSS IF BF LT=0 DO NOT DO CH WD CHK JMP I.02 NO, GO ON SSB,RSS -(CH)? JMP I.02 NO, GO ON CMB,INB MAKE POSITIVE CLE,SLB ODD? CCE,INB YES, ADD 1 AND SET "E" RBR B=B/2 I.02 LDA EQT17,I SETUP TO CLEAR FLAGS AND B7.4K AND STATE SEZ ODD BYTE? IOR OBWF YES, SET FLAG STA EQT17,I CLA STA EQT18,I CLEAR EQT18 (WC) SZB,RSS BF LTH=0? JMP I.04 YES, GO ON ADB EQT7,I CALC LAST WD AV MEM ADB MIN1 SUBTRACT 1 I.03 STB EQT20,I PUT IT INTO EQT20 (LWAM) LDA EQT7,I GET FIRST WD AV MEM STA EQT19,I PUT IT INTO EQ19(FWAM) LDA EQT5,I CLEAR STATUS IN EQT5 AND LBYTE STA EQT5,I LDB TEMP SET STATE LDA EQT16,I LINE EQT ? SSA EQ16-B15=1-->LINE LDB PLNRS SET STATE TO PROC. LINE RC CCE JSB STE17 SET STATE CPB PLNRS IF DOING A LINE RQ JMP RTNI0 DO NOT DO TIME OUT. JSB GT$TM GET THE CURRENT TIME FROM $TIME DST EQT9,I KEEP IT IN EQ09 AND EQ10. JMP RTNI0 RETURN, GOOD * * IF A ZERO LENGTH WRITE IS DETECTED WE CHECK FOR AN APPEND. * I.E. HOME-UP,CLEAR,CR/LF-ESC 137B * I.04 LDA EQT6,I CHECK FOR EDIT FLAGS IN RQ AND B3.4K SZA JMP I.03 YES, GO ON LDA EQT12,I CHECK FOR EDIT FLAGS IN EQ12 AND B7.0K SZA JMP I.03 YES, GO ON JMP ERR01 NO, ERROR SKP * *2 * CONT LDA EQT6,I GET FUNCTION CODE AND B3.7K EQT6,B6-10 SZA,RSS F=0 (CLEAR)? JMP CLEAR YES, GO TO CLEAR RTN CPA FINIT F=20(INIT)? JMP INIT YES, GO TO INIT RTN. CPA FDINT F=21(DINIT)? JMP DINIT YES, GO TO DINIT RTN. CPA FSNWK F=22(SET NAK WACK CNT.)? JMP STNKW YES,GO DO IT CPA FSEMS F=23(SET EDIT MODE FLAGS)? JMP STEMF YES, GO DO IT CPA FMDCT F=6(MODEM CONTROL)? JMP STNKW YES, GO DO IT JMP RTNI4 DO AN AMED. COMP. RTN. INIT LDA EQT7,I GET IPRAM SSA,RSS LINE SETUP REQUEST? JMP TINIT NO, GO TO TERM. INIT RT * * LINE INITIATION STARTS HERE * AND D7 EQT7,B0-2 STA LN SAVE IT ADA LTP ADD TO LINE TAB POINTER STA TEMP SAVE LDA A,I GET TABLE ENTERY SZA =0? JMP ERR33 NO, ERROR-LINE ASSIGNED LDA EQT11,I ALLREADY LINKED? SZA =0? JMP ERR34 YES, ERROR-ALLREADY LINKED * * CHECK FOR THE RESULTS OF THE DIAGNOSTIC IF ANY. * IF ERROR POST ERROR CODE IN EQT5. * JSB GETA GET CONT. OF OUT REG SSA,RSS DIAG.? JMP LIN1 NO, GO ON ELA,CLE,ERA YES, CLEAR BIT 15 SZA,RSS "A"#0-->ERROR JMP LIN1 NO, GO ON AND B17 YES, POST ERROR CODE STA B IN EQT5 LDA EQT5,I AND ECM IOR B STA EQT5,I JMP ERR30 RETURN ERROR * * MAKE ENTERY * LIN1 LDA EQT1 PUT POINTER IN LINE TABLE STA TEMP,I STA EQT11,I DUMMY UP EQT11 LDA EQT12,I SET "RP" FLAG IOR SIGNB STA EQT12,I LDA LN SAVE LN IN EQT17 ALF,ALF LEFT BYTE STA EQT17,I CLA STA EQT18,I CLEAR (WC) STA EQT19,I CLEAR (FWAM) STA EQT20,I CLEAR (LWAM) LDA EQT4,I SET "S" BIT IN EQT4 IOR B10K STA EQT4,I * * MAKE PROG ENTERY IF POSILBLE * LDA EQT16,I CHECK TO SEE IF SET SSA EQ16-B15=0? JMP LIN1A NO,GO DO TO RQ. JSB INTEN GET INT. TABEL ENT. STB TEMP SAVE ENT. ADD. LDB EQT1 SETUP TO REPLACE INT ENT CMA,CLE,SSA,INA ID. SEG. ENT.? CLA EQT ENT. IOR SIGNB SET L STA EQT16,I ID, PUT IT IN PROG ENT STB TEMP,I LIN1A LDA EQT7,I CHECK FOR A NEW TIME-OUT VALUE AND B17.4 LEFT BYTE OF IPRAM SZA,RSS NEW VALUE? JMP LIN2 NO, SKIP IT RAL,RAL MOVE IT RAL IOR STTOV MERG THE COMMND. JSB OUTAF SEND IT JSB WATE WAIT FOR THE FLAG LIN2 LDA TORQC REQUEST A TIMEOUT JSB OUTAF JMP RTNI4 * * ROUTINE TO GET DMA FROM THE C.07+3 EXIT. * GTDMA LDB SIGNB SET THE WATEING FOR DMA FLAG CLE IN EQT17. JSB STE17 LDB C.07 BUMP THE RETURN POINT ADB D2 LDA D5 A=5-->WANT DMA JMP B,I GO BACK TO THE SYSTEM * * FINIT OCT 2000 FDINT OCT 2100 FSNWK OCT 2200 FSEMS OCT 2300 FMDCT OCT 600 SKP * * ERR01 LDA D1 REQUEST REJECTED JMP ERX+1 ERR30 CLA DIAGNOSTIC FAILED JMP ERX ERR31 LDA D1 INACTIVE LU-EQT (NOT IN LINKED LIST) JMP ERX ERR32 LDA D2 WRITE TO A GROUP POLL ID JMP ERX ERR33 LDA D3 LOGICAL LINE NUMBER ALLREADY ACTIVE JMP ERX ERR34 LDA D4 LU-EQT ALLREADY ACTIVE (IN LINKED LIST) JMP ERX ERR35 LDA D5 LU-EQT CAN NOT BE USED AS A TERMINAL LU-EQT JMP ERX ERR36 LDA D6 WRONG LINE NUMBER JMP ERX ERR37 LDA D7 NOT A LINE LU JMP ERX ERR38 LDA D8 TERMINALS STILL ON LINE JMP ERX ERR39 LDA D9 NOT A TERMINAL LU ERX ADA D30 ADD OFFSET RTNI CLB CLEAR XLOG FOR RETURN JMP I.07,I RETURN * * RTNI0 CLA NORMAL RETURN JMP RTNI * * RTNI4 LDA D4 IMMEDIATE COMPLETION JMP RTNI * * D8 DEC 8 D9 DEC 9 D30 DEC 30