;****************************** ; NEWTDV.M68 ; ;****************************** ; Change terminal drivers -- AMOSL version 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 .