.MCALL .MODULE .MODULE CONSOL,VERSION=03,COMMENT= ; Copyright (c) 1998 by Mentec, Inc., Nashua, NH. ; All rights reserved ; ; This software is furnished under a license for use only on a ; single computer system and may be copied only with the ; inclusion of the above copyright notice. This software, or ; any other copies thereof, may not be provided or otherwise ; made available to any other person except for use on such ; system and to one who agrees to these license terms. Title ; to and ownership of the software shall at all times remain ; in Mentec, Inc. ; ; The information in this document is subject to change without ; notice and should not be construed as a commitment by Digital ; Equipment Corporation, or Mentec, Inc. ; ; Digital and Mentec assume no responsibility for the use or ; reliability of its software on equipment which is not supplied ; by Digital or Mentec, and listed in the Software Product ; Description. .ENABL LC .NLIST BEX .ENABL GBL ;+ ; PROGRAM TO CHANGE CONSOLE TO ONE OTHER THAN BOOT CONSOLE ;- .MCALL .MTPS,.PRINT,.EXIT CSRAD =: 176500 ;*** NEW CONSOLE INPUT CSR *** VEC =: 300 ;*** NEW CONSOLE VECTOR *** SYSPTR =: 54 ;SYSCOM POINTER TO RMON TTKS =: 304 ;CONSOLE KEYBOARD CSR TTKB =: 306 ;CONSOLE KEYBOARD BUFFER TTPS =: 310 ;CONSOLE PRINTER CSR TTPB =: 312 ;CONSOLE PRINTER BUFFER SYSGEN =: 372 ;OFFSET TO SYSGEN WORD MTTY$ =: 20000 ;MULTI-TERMINAL BIT IN SYSGEN WORD OLDVEC =: 60 ;STANDARD CONSOLE VECTOR IENABL =: 100 ;INTERRUPT ENABLE PR7 =: 340 ;PRIORITY SEVEN PR0 =: 0 ;PRIORITY ZERO BMASK =: 360/<<15.*>>/8.>+1> BITMAP =: 326+ CONSOL: MOV @#SYSPTR,R0 ;R0 => RMON BIT #MTTY$,SYSGEN(R0) ;MULTI-TERMINAL SYSTEM? BNE 2$ ;YES - CAN'T USE THIS TECHNIQUE! .MTPS #PR7 ;GO TO PRIORITY 7 !!! BISB #BMASK,BITMAP(R0) ;PROTECT NEW CONSOLE VECTORS ADD #TTKS,R0 ;R0 => CONSOLE REGISTER LIST IN RMON MOV #CSR,R1 ;R1 => NEW CSR/DATA REG LIST BIC #IENABL,@(R0) ;DISABLE OLD INPUT CSR INTERRUPTS MOV (R1)+,(R0)+ ;MOVE IN NEW CSR ADDR MOV (R1)+,(R0)+ ;MOVE IN NEW BUFFER ADDRESS BIC #IENABL,@(R0) ;DISABLE OLD OUTPUT CSR INTERRUPTS MOV (R1)+,(R0)+ ;MOVE IN NEW CSR ADDR MOV (R1)+,(R0)+ ;MOVE IN NEW BUFFER ADDR MOV #OLDVEC,R0 ;R0 = PRESENT CONSOLE VECTOR MOV @R1,R1 ;R1 = NEW VECTOR .REPT 4 MOV (R0)+,(R1)+ ;LOAD NEW CONSOLE VECTORS .ENDR .MTPS #PR0 ;BACK TO PRIORITY 0 .EXIT ;TERMINATE PROGRAM 2$: .PRINT #NOMT ;PRINT ERROR MESSAGE .EXIT ; AND LEAVE .NLIST BEX NOMT: .ASCIZ /?CONSOL-F-Multi-terminal system ... use SET TT CONSOL command/ .EVEN CSR: .WORD CSRAD ;CSR/DATA BUFFER/VECTOR LIST .WORD CSRAD+2 .WORD CSRAD+4 .WORD CSRAD+6 .WORD VEC .END CONSOL