.NLIST LOC,BIN .TITLE ...SWI MCR FOR DT03 SWITCH CONTROL .IDENT /V001.0/ ; ;+ ; ; AUTHOR: M. YANKUS PLANNING RESEARCH CORP. ; 1508 KENNEDY DR. ; BELLEVUE, NEBR. 68005 ; ; DATE: JUNE-78 ; ; ; FUNCTIONAL DESCRIPTION ; ; TO TURN SWITCH ON: MCR>SW0 ON ; ; TO TURN SWITCH OFF: MCR>SW0 OFF ; ; ; RECORD OF MODIFICATIONS ; VERSION DATE BY DESCRIPTION ; ------- ---- -- ----------- ; NONE ; ; ; TASK BUILDER COMMAND STRING ; ; SW0,SW0=SWIMCR OR SW1=SWIMCR ; RSXERR,MOLUN RSXERR,MOLUN ; / / ; TASK=...SW0 TASK=...SW1 ; STACK=64 STACK=64 ; UNITS=2 UNITS=2 ; ASG=SW0:1 ASG=SW1:1 ; ASG=TI:2 ASG=TI:2 ; / / ; ; ; GLOBAL EVENT FLAG USAGE ; ; NONE ; ;- .PAGE .LIST LOC,BIN ;+ ; ; LOCAL MACRO DEFINITIONS AND SYSTEM MACRO CALLS ; ;- .MCALL GMCR$,QIOW$,DIR$,EXIT$S ; .MACRO $IOERR IOSB MOV IOSB,-(SP) JSR PC,QIOERR .ENDM ; ;+ ; ; EQUATED SYMBOLS AND LOCAL DATA ; ;- SLUN = 1 ;LUN FOR SWITCH HANDLER TLUN = 2 ;LUN FOR TI ; SEF = 1 ;EVENT FLAG FOR SW TEF = 2 ;EVENT FLAG FOR TI ; GMCR: GMCR$ ; SWQIO: QIOW$ 400,SLUN,SEF,,IOSB ;DEFAULT (400) IS CONNECT ; ERQIO: QIOW$ IO.WVB,TLUN,TEF,,IOSB,,<0,ELEN,40> ; IOSB: .WORD 0,0 ; .NLIST BEX MMSG: .ASCII /SWITCH IS IN MANUAL MODE / PMSG: .ASCII /POWER OFF ON SWITCHED BUS/ OMSG: .ASCII /OTHER CPU HAS CONTROL / ELEN= .-OMSG .EVEN .LIST BEX .PAGE GO: DIR$ #GMCR ;GET MCR COMMAND LINE BCS 10$ ;PERFORM "ON" IF NO CMD LINE CMP GMCR+G.MCRB+4,#"OF ;"OFF" COMMAND ? BNE 10$ ;NO, ASSUME "ON" MOV #1000,SWQIO+Q.IOFN ;DISCONNECT FUNCTION CODE 10$: DIR$ #SWQIO,DSWERR ;QIO TO SWITCH HANDLER BCS EXIT ;EXIT ON DIRECTIVE ERROR MOVB IOSB,R5 ;ANY PROBLEM ? BPL EXIT ;NO, SUCCESSFUL, EXIT CMP R5,#IE.DNR ;MANUAL MODE ? BNE 20$ ;NO MOV #MMSG,R4 ;YES, ERROR MESSAGE ADDR BR 40$ ;PRINT IT 20$: CMP R5,#IE.OFL ;POWER OFF ? BNE 30$ ;NO MOV #PMSG,R4 ;YES, ERROR MSG ADDR BR 40$ ;PRINT IT 30$: CMP R5,#IE.RSU ;OTHER CPU ? BNE 50$ ;NO MOV #OMSG,R4 ;YES, ERROR MSG ADDR 40$: MOV R4,ERQIO+Q.IOPL DIR$ #ERQIO,DSWERR ;PRINT TO TI BCS EXIT ;EXIT IF DIR ERROR MOVB IOSB,R5 ;I/O ERROR ? BPL EXIT ;NO 50$: $IOERR R5 ;REPORT I/O ERROR ; EXIT: EXIT$S ; .END GO