SEARCH SYS
SEARCH TRM
NEWTDV: BYP ; Move command line pointer
LIN ; to new driver name
BNE NTD1 ; Error if missing
TYPECR Usage: NEWTDV trmdef - name
EXIT
NTD1: LEA A1,TDVNAM ; Index packed name area
PACK ; Convert driver name to RAD50 format
PACK
LEA A1,TDVNAM ; Reset A1 to name start
MOV @A1,D1
; First see if driver is in system terminal driver chain
MOV #TRMTDC,A2 ; A2 = driver chain base address
NTD2: MOV @A2,#0 ; A2 = address of next driver
CMP A2,#0 ; end of chain means not found
BEQ NTD3
CMP D1,4(A2) ; do names match?
BNE NTD2 ; no - go to next driver in chain
ADD #8.,A2 ; yes - bypass link word and
BR NTD6 ; two name words
; Look for driver isn system memory
NTD3: SRCH @A1,A2 ; A2 gets module address if found
BEQ NTD5
NTD4: TYPESP ?Can't find ; else report failure to user
NTD7: PRNAM @A1
CRLF
EXIT
NTD5: MOV #MEMBAS,A6 ; driver must be in system memory
CMM A2,@A5 ; (SRCH checks system and user mem)
BHIS NTD4
NTD6: JOBIDX A6 ; locate my job control block
MOV JOBTRM(A6),A5 ; - then my TRMDEF table
MOV A2, T. TDV(A5) ; point to new terminal driver
TYPESP Switched to ; report success to user
JMP NTD7
EXIT
TDVNAM: WORD 0,0,[TDV] ; RAD50 name of driver
END