DBDRV.MAC/AU:72.=DBDRV32.MAC/-BF -2,2,/;DM001/ .IDENT /5.04D/ -11,11,/;DM001/ ; VERSION 5.04D -16,,/;DM001/ ; D. S. MCCOY Informatics Inc., Palo Alto, Ca. -71,,/;DM001/ ; D. S. MCCOY 21-DEC-79 INFORMATICS INC, PALO ALTO, CA. ; ; DM001 -- ADDED DUAL-CONTROLLER ARBITRATION. ; BASED ON A COMBINATION OF THE M-PLUS DRIVER ; AND A VERSION BY C. L. WILDES, T. G. WILHITE ; OF DEC CSS, SANTA ANA. USED THE CSS LOGIC, ; BUT STORE STATUS WHERE BEZEREDI DID IN THE ; M-PLUS DRIVER. ; -91,,/;DM001/ IE=100 ; INTERRUPT ENABLE BIT -113,,/;DM001/ DPR=400 ; DRIVE PRESENT ON PORT BIT -171,,/;DM001/ SEL=20 ; PORT SELECT WAIT FLAG (1=WAITING) -391,393,/;DM001/ BICB #SEL,U.CW2+1(R5) ;CLEAR PORT SELECT WAIT FLAG ADD #10,R2 ;POINT TO SECOND CSR MOV #40,(R2) ;CLEAR RH11 CONTROLLER AND ALL DRIVES MOVB U.UNIT(R5),(R2) ;SELECT PROPER DRIVE CLR RPDS-RPCS2(R2) ; ATTEMPT TO SIEZE THE DRIVE BIT #DPR,RPDS-RPCS2(R2) ; DID IT SIEZE? BNE 43$ ; IF NE, WE SIEZED IT BISB #SEL,U.CW2+1(R5) ; SET PORT SELECT WAIT FLAG MOV #IE,RPCS1-RPCS2(R2) ; ENABLE CONTROLLER INTERRUPTS RETURN ; WAIT FOR ATTENTION INTERRUPT 43$: ; REF LABEL -471,471,/;DM001/ JMP 76$ ;FINISH UP AND RELEASE DRIVE -543,,/;DM001/ BITB #SEL,U.CW2+1(R5) ; WAITING FOR PORT SELECT? BEQ 52$ ; IF EQ, NO BIT #TRE!MCPE,(R2) ; ANY HARD ERRORS? BNE 53$ ; IF NE, YES MOV #IE.DNR&377,R0 ; ASSUME DRIVE NOT READY BIT #DPR,RPDS(R2) ; DRIVE PRESENT ON PORT? BNE 56$ ; IF NE, YES, RESTART I/O JMP 70$ ; FAILURE TO SIEZE DRIVE, ERROR 52$: ; REF LABEL -565,,/;DM001/ 53$: ; REF LABEL -597,597,/;DM001/ BNE 62$ ;IF NE YES ; RP004 -640,,/;DM001/ MOV U.CW2(R5),-(SP) ; SAVE FLAGS BICB #SEL,U.CW2+1(R5) ; CLEAR PORT SELECT WAIT FLAG SWAB (SP) ; GET FLAGS IN LOW BYTE BIT #SEL,(SP)+ ; CHECK PORT SELECT WAIT FLAG BEQ 61$ ; IF EQ, WE WERE NOT WAITING DECB RTTBL(R3) ; DEC RETRY COUNT CMPB RTTBL(R3),#RETRY-4 ; TRIED 4 TIMES (16 SECONDS)? BLT 70$ ; IF LT, YES - FINISH WITH IE.DNR SET JMP 40$ ; TRY AGAIN 61$: ; REF LABEL -648,650,/;DM001/ BEQ 62$ ;IF EQ NO ; RP004 JMP 185$ ;CONTINUE OFFSET RECOVERY ; RP004 62$: DECB RTTBL(R3) ;RETRY FUNCTION? ; RP004 -700,,/;DM001/ 75$: TSTB (R2) ; CONTROLLER AND DRIVE READY? BPL 75$ ; IF PL, NO 76$: MOV #13,(R2) ; RELEASE DRIVE FROM PORT /