.TITLE SETDEF .IDENT /MRH001/ .SBTTL INTRODUCTION ;PROGRAM SUPPORTING MRMC VARIABLE DEFAULT DEVICE PACKAGE ; ;PURPOSE OF PROGRAM IS TO CHANGE THE 'DEFAULT DEVICE' OF THE ;TERMINAL RUNNING THE PROGRAM ; ;CALLING SEQUENCE (FOR EXAMPLE) ; ;MCR>SDV SM: ; ;WOULD CHANGE THE 'DEFAULT DEVICE PUD POINTER', (LOCATED IN LOCATION ;U.LBH OF THE PUD FOR THE TT IN QUESTION) TO POINT TO THE PUD FOR THE ;DEVICE NAMED IN THE COMMAND LINE ; ;DUE TO THE SIMPLICITY OF THE COMMAND, NO INDIRECT LEVELS ARE SUPPORTED ;AUTHOR F.BORGER ; DEPT. OF MEDICAL PHYSICS ; MICHAEL REESE MEDICAL CENTER ; MARCH, 1976 ; .PAGE .SBTTL MAIN CODE .MCALL GMCR$,QIOW$,EXIT$,DIR$ START: DIR$ #GETMCR ;GETMCR COMMAND LINE MOV #GETMCR+G.MCRB,R0 ;START OF BUFFER -> R0 ADD #4,R0 ;BUMP PAST 'SDV ' CMPB (R0),#'A ;CHECK FOR ASCII CHARACTER BLT BADSYN ;WOOPS, SYNTAX ERROR CMPB (R0),#'Z ;I DON'T THINK I NEED TO COMMENT THIS !! BGT BADSYN CMPB 1(R0),#'A BLT BADSYN CMPB 1(R0),#'Z BGT BADSYN CMPB 2(R0),#15 ;TERMINATOR (IMPLYING DEVICE 0) ? BEQ 2$ ;BR IF YES CMPB 2(R0),#33 ;ALT MODE TERMINATOR (ALSO DEV ZERO) ? BEQ 2$ ;BR IF YES CMPB 2(R0),#': ;DEVICE NUMBER A ':' ? BNE 1$ ;BR IF NOT 2$: MOV #60,2(R0) ;IF SO CHANGE IT TO AN ASCII '0' 1$: CMPB 2(R0),#'0 ;CHECK (ASCII) DEVICE NUMBER BLT BADSYN CMPB 2(R0),#'7 BGT BADSYN BIC #60,2(R0) ;ASCII NUMBER OK, CHANGE IT TO OCTAL MOV .CRTSK,R1 ;MY ATL ADDRESS -> R1 MOV A.TI(R1),R1 ;GET MY TI PUD ADDRESS MOV .PUDBA,R2 ;SET UP TO SCAN PUD FOR NEW DEFAULT DEVICE CKPUD: CMP (R2),(R0) ;DO ASCII NAMES MATCH ? BNE NOMAT ;BR IF NOT CMPB 2(R2),2(R0) ;NAMES MATCH, HOW 'BOUT UNIT NUMBERS ? BNE NOMAT ;NO NO MATCH ;R2 NOW POINTS TO PUD OF DEVICE GUY AT TTY WANTS MOV R2,R5 ;PUD POINTER -> R5 JSR PC,..REDT ;ACCOUNT FOR POSSIBLE REDIRECTS CMP R5,.MCRPW ;DOES HE WANT SYSTEM DEVICE ? BNE 10$ ;NO HE DOESN'T MOV .MCRPW+2,R5 ;YES HE DOES, USE DEFAULT DEFAULT DEVICE 10$: MOV R5,U.LBH(R1) ;CHANGE DEFAULT DEVICE PUD POINTER BR SCRAM ;AND SCRAM BADSYN: DIR$ #SYNBAD ;REPORT SYNTAX ERROR SCRAM: DIR$ #EXITPG ;EXIT, CPU LEFT ; ; NOMAT: ADD #U.SZ,R2 ;BUMP PUD POINTER TO NEXT PUD CMP R2,.PUDEA ;ARE WE STILL IN THE PUD ? BHIS BADSYN ;NO, COULDN'T FIND DEVICE BR CKPUD ;YES, TRY FOR MATCH AGAIN ; ; .PAGE .SBTTL DIRECTIVES ; ;DIRECTIVE TO GET MCR COMMAND LINE GETMCR: GMCR$ ;GET MCR, (INCLUDES BUFFER) ; ; ;DIRECTIVE TO REPORT BAD SYNTAX ; SYNBAD: QIOW$ IO.WVB,5,1,,IOST,, ; ;ERROR MESSAGE SYNMES: .ASCII <15>/SYNTAX ERROR/ SYNLEN=.-SYNMES .EVEN ; IOST: .WORD 0,0 ; ;EXIT DIRECTIVE EXITPG: EXIT$ .END START