.TITLE MBDDEF ;DEFINE MBD CAMAC OPCODES .IDENT 'V001H' ; ; DEFINE MBD CHANNEL PROGRAM INSTRUCTIONS: ; CM.STP == 0 ;STOP CHANNEL CM.NOP == 1 ;CONTINUE (NO-OP) CM.EXP == 2 ;EXECUTE PDP CHANNEL PROGRAM CM.EXM == 3 ;EXECUTE MBD CHANNEL PROGRAM CM.MRK == 4 ;SET RE-ENTRY ADDRESS (MARK) CM.EXI == 5 ;CHANNEL EXIT CM.INT == 6 ;INTERRUPT PDP-11 CM.WCT == 7 ;SEND WORD COUNT TO PDP BUFFER CM.ERR == 10 ;SIGNAL ERROR CM.PER == 11 ;SIGNAL ERROR FROM PDP BUFFER CM.LAM == 12 ;PAUSE (WAIT FOR LAM) CM.DCB == 13 ;DECREMENT COUNT AND BRANCH IF NON-ZERO CM.JMP == 14 ;JUMP TO ANOTHER LOCATION CM.SKP == 15 ;SKIP NEXT LOCATION CM.MOV == 16 ;MOVE PDP BUFFER POINTER FWD OR BKWD CM.INC == 17 ;MOVE PDP BUFFER POINTER 1 WORD AHEAD CM.BRC == 20 ;BRANCH ON CONDITION (Q OR X) CM.JPC == 21 ;CONDITIONAL JUMP ON MASKED VALUE TEST CM.LCO == 22 ;LOAD LOOP COUNT CM.PLC == 23 ;LOAD LOOP COUNT FROM PDP BUFFER CM.JPE == 24 ;SET ERROR EXIT ADDRESS CM.CLR == 25 ;CLEAR (FLUSH) MBD CHAN PGMS (EXCEPT 7) CM.LOD == 26 ;LOAD MBD CHANNEL PGM FROM PDP BUFFER CM.DEP == 27 ;DEPOSIT NUMBER FROM PDP BUFFER INTO MBD CM.EXA == 30 ;EXAMINE MBD MEMORY (SEND TO PDP BUFFER) CM.SND == 31 ;SEND A WORD TO PDP BUFFER CM.BRZ == 32 ;CAMAC BZ (BRANCH INITIALIZE) CM.CTL == 33 ;EXECUTE CAMAC CONTROL FCNA'S CM.PCT == 34 ;EXECUTE CAMAC CTRL FCNA'S IN PDP BUFFER CM.M2C == 35 ;DO MBD TO CAMAC WRITE CM.PMC == 36 ;MBD->CAMAC WRITE, FCNA'S IN PDP BUFFER CM.P2C == 37 ;DO PDP TO CAMAC WRITE CM.PPC == 40 ;PDP->CAMAC WRITE, FCNA'S IN PDP BUFFER CM.I2C == 41 ;DO IMMEDIATE TO CAMAC WRITE CM.C2P == 42 ;DO CAMAC TO PDP READ CM.PCP == 43 ;CAMAC->PDP READ, FCNA'S IN PDP BUFFER CM.TST == 44 ;DO TEST MODULE FUNCTION CM.PTS == 45 ;TEST MODULE FNCTN, FCNA'S IN PDP BUFFER CM.HOD == 46 ;READ OUT HODOSCOPE TDC DATA CM.DRC == 47 ;READ OUT LECROY 2770 DRIFT CHAMBER DATA CM.TOF == 50 ;DO TOF CUT ON HODOSCOPE TDC DATA CM.PHI == 51 ;DO PHI-MATCHING AND FIND NO. OF TRACKS CM.WRM == 52 ;WRITE EVENT TO CAMAC LINK MEMORY CM.NUM == 53 ;DO TEST OF NO. OF WORDS IN EVENT ; ; DEFINE THE FLAG BITS 12-15 ("OR" WITH BASIC INSTRUCTIONS) ; CMF.12 == 10000 ;[12] FLAG BIT 12 CMF.IX == 10000 ;[12] IGNORE X=0 AFTER CAMAC OPERATION ;(FOR INSTRUCTIONS CM.BRC, ;CM.CTL, CM.PCT, CM.M2C, CM.PMC, CM.P2C, ;CM.PPC, CM.I2C, CM.C2P, AND CM.PCP) CMF.13 == 20000 ;[13] FLAG BIT 13 CMF.IQ == 20000 ;[13] IGNORE Q=0 AFTER CAMAC OPERATION ;(FOR INSTRUCTIONS CM.BRC, ;CM.CTL, CM.PCT, CM.M2C, CM.P2C, CM.PPC, ;CM.I2C, AND CM.PCP) CMF.QS == 20000 ;[13] CAMAC Q-STOP MODE BLOCK TRANSFER ;(FOR INSTRUCTIONS CM.PMC, CM.P2C, AND ;CM.C2P) CMF.14 == 40000 ;[14] FLAG BIT 14 CMF.TX == 40000 ;[14] TEST X-BIT IF SET (Q-BIT IF CLEAR) ;(FOR INSTRUCTION CM.BRC) CMF.QR == 40000 ;[14] CAMAC Q-REPEAT MODE BLOCK TRANSFER ;(FOR INSTRUCTIONS CM.M2C, CM.PMC, ;CM.P2C, CM.PPC, CM.I2C, CM.C2P, AND ;CM.PCP) CMF.15 == 100000 ;[15] FLAG BIT 15 CMF.ON == 100000 ;[15] BRANCH IF TEST BIT (X OR Q) IS ON ;IF SET (OFF IF CLEAR) (FOR INSTRUCTIONS ;CM.BRC AND CM.JPC) CMF.24 == 100000 ;[15] 24-BIT CAMAC READ/WRITE IF SET ;(16-BIT IF CLEAR) (FOR INSTRUCTIONS ;CM.M2C, CM.PMC, CM.P2C, CM.PPC, CM.I2C, ;CM.C2P, AND CM.PCP) ; ; DEFINE THE CAMAC COMPLETION CODES RETURNED TO THE I/O STATUS BLOCK ; CE.NRM == +2 ;NOT ENOUGH ROOM FOR DATA IN BUFFER ;(NON-FATAL) CE.ORD == +3 ;BAD ORDERING OF DRIFT CHAMBER WIRES CE.MAN == -93. ;MANUAL MBD CHANNEL TERMINATION CE.EOB == -94. ;END OF MBD BUFFER REACHED CE.NOX == -95. ;NO "X" RESPONSE FROM MODULE CE.NOQ == -96. ;NO "Q" RESPONSE FROM MODULE CE.ADR == -97. ;BAD MBD ADDRESS - CAN'T DEPOSIT WORD CE.OUT == -98. ;MBD BUFFER POINTER OUT OF RANGE CE.INV == -99. ;INVALID INSTRUCTION IN MBD PROGRAM ;OR PROGRAM NOT LOADED ; .END