;**********************************
;* Show current terminal driver *
;**********************************
CURR: TYPESP Current terminal driver is
MOV T.TDV(A3),A1
SUB #4,A1
LEA A2,BUFFER(MEM)
UNPACK
UNPACK
10$: CMMB -(A2),#40
BEQ 10$
CLRB 1(A2)
TTYL BUFFER(MEM)
TYPE <. >
CHANGE: TYPESP Do you wish to change it?
KBD EXIT
UCS
CMPB D1,#33
JEQ ABORT
CMPB D1,#'N
BEQ 10$
CMPB D1,#'Y
BEQ 20$
TTYI
BYTE 7,0
CRLF
JMP CURR
10$: TYPECR No
JMP EXIT
20$: TYPECR Yes
QUERY: TYPESP Do you want to see a list of available drivers?
KBD EXIT
UCS
CMPB D1,#33
JEQ ABORT
CMPB D1,#'N
BEQ 10$
CMPB D1,#'Y
BEQ 20$
TTYI
BYTE 7,0
CRLF
BR QUERY
10$: TYPECR No
CRLF
JMP SELECT
20$: TYPECR Yes
CRLF
;****************************
;* List available drivers *
;****************************
LIST: TYPECR The following terminal drivers are available:
MOV TRMTDC,A0
L1: CRLF
TAB
MOV #6,D0
L2: DEPACK 4(A0)
TST @A0
BEQ L3
MOV @A0,A0
TAB
SOB D0,L2
BR L1
L3: CMP D0,#6
BEQ L4
CRLF
L4: CRLF
;*********************************************
;* Prompt user to select a terminal driver *
;*********************************************
;********************************************************
;* Clear screen, top status line, and unlock keyboard *
;********************************************************
CLEAR: CRT 0 ; clear screen
CRT 8 ; unlock keyboard
BIT #TD$STS,TRMFLG(MEM) ; status lines?
BEQ 30$ ; no [101]
MOVWL TRMFLG+TC.TSL(MEM),D0 ; get size of top status line
BEQ 30$ ; zero
CRT 63 ; select top status line
TYPESP ; start at far left position
MOVB #40,D1 ; load space
DECB D0 ; decrement count by one
BEQ 20$ ; went to zero
10$: TTY ; output space
SOB D0,10$ ; loop
MOVB #25.,D1
TTY
20$: CRT 129 ; end status line
30$:
;****************************************************
;* Confirm terminal driver change by echoing name *
;****************************************************