.TITLE MG08.. LUN ASSIGNMENT PROGRAM FOR TERMINALS .IDENT /MG08.A/ ; ; MODS LIST ; ; (A) ENABLE THE TERMINAL CHANNEL TO BE SWITCHED TO ANY DEVICE ; ; .PAGE .SBTTL SWITCH LUN ON SECTION ; .IF EQ OPSYS-IAS ;IS THIS AN IAS SYSTEM .MCALL ALUN$S ; LUNASS = 000001 ;VDU ASSIGNED MARKER FLAG ; .ENDC ; ; V$ON:: ;ALLOW TERMINAL TO WORK ; .IF EQ OPSYS-IAS ;IS THIS AN IAS SYSTEM BIT #LUNASS,V$STA ;IS THE TERMINAL ASSIGNED BNE 20$ ;EXIT IF ASSIGNED ALUN$S V$LUN,V$DEV,V$UNIT ;ASSIGN LUN TO TERMINAL IFSUCCESS 10$ ;EXIT IF ASSIGN COMPLETED CMP V$DEV,#"TI ;IS THIS A TERMINAL TT DEVICE BNE 5$ ;J IF NOT A TI: CHANNEL TST V$UNIT ;IS THIS THE TERMINAL ?? BNE 5$ ;J IF NOT UNIT 0 HALT ;IMPOSIBLE RECOVERY SITUATION ;SO WE MIGHT AS WELL STOP ; 5$: MOV #"TI,V$DEV ;SWITCH BACK TO TERMINAL CLR V$DEV ;SET TO TT0: BR V$ON ;SWITCH BACK TO TERMINAL ; 10$: BIS #LUNASS,V$STA ;SET LUN ASSIGNED MARKER IN STATUS WORD EXITSUCCESS ; 20$: EXITERROR ; .ENDC ; .IF EQ OPSYS-RT11 RETURN .ENDC ; .PAGE .SBTTL SWITCH LUN OF SECTION ; ; V$OFF:: ;DEALLOCATE TERMINAL LUN ; .IF EQ OPSYS-IAS ;IS THIS AN IAS SYSTEM BIT #LUNASS,V$STA ;IS THE TERMINAL ASSIGNED BEQ 10$ ;J IF ALREADY FREE ALUN$S V$LUN ;DEALOCATE LUN IFERROR 10$ ;J IF FAIL BIC #LUNASS,V$STA ;INDICATE LUN DEALOCATED ; .ENDC ; 10$: RETURN ;RETURN TO CALLING PROGRAM ; ; ; .PAGE .SBTTL SWITCH TERMINAL CHANNEL TO SOME OTHER DEVICE ; ; ; ENTRY CONDITIONS ; LOCATIONS V$DEV AND V$UNIT ARE SET UP ; ; EXIT CONDITIONS ; STATUS = SUCCESS OR ERROR ; V$SWITCH:: ;THIS ROUTINE SWITCHES THE VDU TO ANOTHER DEVICE ; CALL V$OFF ;DISENGAGE THE CHANNEL BR V$ON ;SWITCH TO NEW CHANNEL ; ; ENTRY CONDITIONS ; NONE ; ; EXIT CONDITIONS ; CHANNEL SWITCHED BACK TO THE USERS TERMINAL ; V$TERMINAL:: MOV #"TI,V$DEV ;HOLD DEVICE NAME CLR V$UNIT ;UNIT ZERO BR V$SWITCH ;CHANGE THE CHANNEL ; ; ; ENTRY CONDITIONS ; NONE ; ; EXIT CONDITIONS ; CHANNEL SWITCHED TO NEW DEVICE ; V$DEVICE:: MOV V$DDEV,V$DEV ;HOLD THE DEFAULT DEVICE NAME MOV V$DUNT,V$UNIT ;HOLD THE DEVICE UNIT NUMBER BR V$SWITCH ;CHANGE THE CHANNEL ; ; ; ENTRY CONDITIONS ; R0 = DEVICE UNIT NUMBER ; ; EXIT CONDITIONS ; NONE ; V$CHANNEL:: MOV R0,V$DUNT ;HOLD THE DEVICE UNIT NUMBER RETURN ;GO BACK HOME ; ; ; .END ;