.TITLE RDDI - READ UDC DIGITAL INPUT. / / / FIRST PRINTING, FEBRUARY 1974 / / THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO / CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED / AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. / DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPON- / SIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS / DOCUMENT. / / THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FUR- / NISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON / A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH / INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR / USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PRO- / VIDED IN WRITING BY DIGITAL. / / DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY / FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIP- / MENT THAT IS NOT SUPPLIED BY DIGITAL. / / COPYRIGHT (C) 1974, BY DIGITAL EQUIPMENT CORPORATION / / .EJECT /COPYRIGHT 1971,DIGITAL EQUIPMENT CORP.,MAYNARD, MASS. / EDIT #6 / 10-5-71 / 1 MAR 73 T. MURRAY //CALLING SEQUENCE CALL CTDI(ILUN,IBUF,ITEV,IEV) / JMS* CTDI / JMP .+5 /SUBR. RETURN. / ADDR OF LUN /INTEGER. / ADDR OF ARRAY NAME /INTEGER / ADDR OR ARRAY SIZE /INTEGER / ADDR. OF TRIGG. EV. VAR. /INTEGER / ADDR. OF EVENT VAR. /INTEGER (OPTIONAL) / NEXT INSTRUCTION. / /CALLING SEQUENCE CALL RDDI(N,L,IOVCT) / JMS* RDDI / JMP .+4 /SUBR. RETURN. / ADDR OF PT. NUMBER /INTEGER / ADDR. OF LOGICAL SWITCH /LOGICAL / ADDR OF OVERCOUNT /INTEGER(OPTIONAL) / NEXT INSTRUCTION. / /CALLING SEQUENCE CALL DFDI (ILUN) / JMS* DFDI / JMP .+2 /SUBR. RETURN. / ADDR. OF LUN /INTEGER / NEXT INSTRUCTION. / /REGISTER AND INSTRUCTION DEFINITIONS: / X10=10 /AUTO-INCR. 10 / /CTDI(ILUN,IBUF,ITEV,IEV)-CONNECT UDC ON LUN=ILUN TO DIGITAL INPUT. /INITIALIZES UDC HANDLER TASK TO SEND DIGITAL INPUTS TO ARRAY /IBUF(MUST BE INTEGER AND MULTIPLE OF 4 WORDS LONG). MUST BE ISSUED /BEFORE ANY CALL TO RDDI. / /DFDI(ILUN)-DISCONNECT UDC ON LUN=ILUN FROM DIGITAL INPUT. / /RDDI(N,L,IOVCT)-READ DIGITAL INPUT FROM IBUF ARRAY INITIALIZED IN /PRIOR CALL TO CTDI. IBUF IS TREATED AS A CIRCULAR BUFFER AND IS SCANNED /SEQUENTIALLY FOR A TRUE CHANGE OF STATE. THE PT. NUMBER /CORRESPONDING TO THIS CHANG IS RETURNED IN N. LOGICAL TRUE IS /RETURNED IN L IF CHANGE OF STATE RESULTS IN A SWITCH (POINT) BEING /CLOSED;FALSE IF BEING OPENED. IF NO CHANGE OF STATE FOR A GIVEN /POINT HAS OCCURED DURING SCAN OF CIRCULAR BUFFER, 0 IS RETURNED IN N /AND LOGICAL FALSE IN L. THE NUMBER OF DIGITAL INPUTS LOST DUE TO /BUFFER OVERFLOW (MOD. (2**17)-1) IS RETURNED IN IOVCT. .EJECT / / .GLOBL RDDI,DFDI,CTDI,.DA / CTDI 0 JMS* .DA /GET ARGS. JMP ARGE1 LUN 0 /LOG. UNIT NUM. (ADDR.) IBUF 0 /ADDR. OF FIRST WORD OF ARRAY ARRSIZ 0 /ADDR. OF ARRAY SIZE TEV 0 /ADDR. OF TRIGG. EV. VAR. EV 0 /ADDR. OF EVENT VAR. (OPTIONAL) ARGE1 LAC IBUF /GET TOP OF ARRAY. DAC CPB4 DAC BUFT DAC BUFP TAD* ARRSIZ DAC BUFB AAC -1 DAC CPB5 /BOTTOM OF ARRAY LAC TEV /TRIGGER. DAC CPB3 LAC* LUN /LOG. UNIT NO. DAC CPB2 LAC EV /EVENT VAR. ADDR. DAC CPB1 DZM EV /REINIT. EV ARG. CAL UDCCON /UDC CONNECT. / LAC (SKP) DAC SW LAC (T1) DAC O DZM OVRC JMP* CTDI .EJECT / / DFDI 0 /SUBR. ENTRY. JMS* .DA /GET ARGS. JMP ARGE2 LUN1 0 /ADDR. OF LOG. UNIT NO. ARGE2 LAC* LUN1 DAC CPB2A CAL UDCDIS /UDC DISCONNECT. JMP* DFDI / / /CAL PARAMETER BLOCKS* / /UDC CONNECT UDCCON 7000 /FUNCT. CODE. CPB1 0 /EV VAR. ADDR. CPB2 0 /LUN. CPB3 0 /TRIG. EV VAR. ADDR. CPB4 0 /ADDR. OF TOP OF ARRAY. CPB5 0 /ADDR. OF BOTTOM OF ARRAY. / /UDC DISCONNECT* / UDCDIS 7100 /FUNCT. CODE. CPB1A 0 /EVENT VAR. ADDR. CPB2A 0 /LUN. / / .EJECT RDDI 0 JMS* .DA JMP SW N 0 L 0 O 0 / SW XX /IS A CIRUCLAR BUFFER ENTRY BEING PROCESSED? JMP PROC /YES (NOP) -- CONTINUE TO REPORT POINT NUMBERS BINT LAC* BUFP /NO (SKP) -- IS THERE AN UNPROCESSED BUFFER ENTRY SNA JMP NODATA /NO -- RETURN ZEROS LAC (NOP) /YES -- SET ENTRY SWITCH TO PROCESS IT DAC SW / SMA /DETERMINE OVERRUN COUNT CLA TCA DAC OVRC / LAC BUFP /DETERMINE HIGH ORDER BITS FOR POINT NUMBER(S) DAC* (X10) /AND SEVE COS GATE OUTPUT (LOW ORDER BITS DATA) LAC* X10 /AND DATA WARD (POINT POLARITIES). LLS 4 AND (7760) DAC HOB LAC* X10 DAC COS LAC* X10 DAC PPL / DZM LOB /CLEAR LOW-ORDER-BITS COUNTER / PROC LAC LOB /HAVE ALL POINTS ON THE CURRENT MODULE SAD (20) /BEEN REPORTED? JMP NEXT /YES -- PROCEDE TO NEXT BUFFER ENTRY ISZ LOB /NO -- UPDATE LOW ORDER BITS COUNT LAC PPL /DETERMINE PLOARITY OF NEXT POINT RCL DAC PPL SZL!CLA LAW -1 DAC LV / LAC COS /DETERMINE CHANGE-OF-STATE OF NEXT POINT RCL DAC COS SNL /CHANGED? JMP PROC LAC LOB /YES --- RETURN ARGUMENTS: XOR HOB / POINT NUMBER, POLARITY, & OVER-RUN COUNT DAC* N LAC LV DAC* L LAC OVRC DAC* O / JMP DONE / NEXT DZM* BUFP /CLEAR ENTRY EXISTENCE INDICATOR / LAC BUFP /ADVANCE BUFFER POINTER AAC +4 SAD BUFB LAC BUFT DAC BUFP / JMP BINT /CHECK FOR A ENTRY / NODATA LAC (SKP) /SET SWITCH FOR NO BUFFER ENTRY BEING PROCESSED DAC SW / DZM* N /RETURN NO DATA INDICATION DZM* L LAC OVRC DZM* O / DONE DZM* TEV /CLEAR TRIGGER EVENT VARIABLE LAC (T1) DAC O JMP* RDDI / BUFT 0 /CIRCULAR BUFFER TOP BUFB 0 /BUFFER BOTTOM BUFP 0 /BUFFER POINTER / COS 0 /COS GATES OUTPUT BUFFER PPL 0 /POINT POLARITIES (MODULE DATA WORD) HOB 0 /POINT NUMBER HIGH ORDER BITS (MODULE NUMBER) LOB 0 /POINT NUMBER LOW ORDER BITS (COUNTER) LV 0 /LOGICAL VALUE (TEMP BUF) OVRC 0 /DATA OVER-RUN COUNT / T1 0 /TEMP 1 / .END