.TITLE CAMAC .LIST MEB .MCALL QIOW$S ; ; CALL CAMAC(LUN,CLIST,BUFFER,ISIZE,ITIME,STATUS) ; CAMAC:: MOV #^RAC ,-(SP) ; SET UP FOR TRACEBACK MOV #^RCAM,R4 JSR R4,NAM$ MOV #6,R0 ; NUMBER OF PARAMS EXPECTED JSR PC,R5CHEK ; CHECK THEM MOV @(R5)+,R0 ; LUN MOV (R5)+,R1 ; CLIST MOV 6(R5),R4 ; Error address CMP (R1)+,#104777 ; CHECK IF FIRST WORD OF CLIST CORRECT BNE 10$ ; NO TST (R1)+ ; IS SECOND WORD ZERO BNE 10$ ; NO ADD #4,R1 ; SKIP WORD 3,4 MOV (R1)+,R3 ; WORD 5 CRATE(S) REQUIRED MASK MOV (R1)+,R2 ; WORD 6 CLIST SIZE, WORD 7=R1=CLIST QIOW$S #IO.RBC,R0,#1,,R4,,<(R5),@2(R5),R1,R2,@4(R5),R3> BCC 7$ MOV $DSW,R0 BIS #177400,R0 ; ERROR CODE IF REJECTED QIO 6$: MOV R0,(R4)+ ; Error code to caller CLR (R4) ; No count 7$: RETURN 10$: MOV #177600,R0 ; ERROR IF BAD CLIST BR 6$ .END