;*************************** AMUS Program Label ******************************
; Filename: SETTRM.M68 Date: 08/30/89
; Category: Change baud rate Hash Code: 234-160-442-335 Version: 2.0(103)
; Initials: AODP/AM Name: GARY D. CHESSER
; Company: EMERGITECH Telephone #: 61488666712
; Related Files:none
; Min. Op. Sys.: 1.3 Expertise Level: BEG
; Special: Allow you to find out or change baud rate of any trmdef on the
; system. This will work with the AM1213 ports.
; Description: This program will allow you to change any TRMDEF's baud rate.
;
; INPUT: SETTRM TERM1 1200
;
; RESULT: Will change TERM1's baud rate to 1200.
;
; INPUT: SETTRM TERM1
;
; RESULT: Will tell you TERM1's baud rate.
;
SEARCH SYS
SEARCH SYSSYM
VMAJOR=2.
VMINOR=0.
VSUB=0.
VEDIT=103.
VWHO=0.
START: PHDR -1,0,PH$REE!PH$REU
SSTS D3 ; save psw for lsts
PUSH #42 ; Need more !
PUSH ;
GETMEM @SP ;
BEQ MEMORY ;
LSTS D3 ; BACK TO USER MODE
EXIT ;
MEMORY: POP A4 ; Free memory space in A4
POP ;
INDEX: JOBIDX A5 ;
MOV 70(A5),A5 ;
BYP ; Skip blanks
LIN ; just a CR?
JNE GOOD ; nope
EXIT
GOOD: TRM ; Check ours?
JEQ PRTBAU ; Yes, go do it
NUM ; Is it a baud rate?
BEQ GETRAT ; Yes, change this trmdef
; LOCATE A TERMINAL DEFINITION
; EXIT A3->TERMINAL DEFINITION BLOCK
; =0 IF NOT FOUND
GET1: FILNAM (A4),XXX ; Save the terminal name
MOV (A4),D2 ; Save terminal name
CALL TRMSRH ; Locate terminal definition, in A3
CMP A5,#0 ; If A3=0 then it wasn't found
BNE GETRAT ; A5 now indexes the TRMDEF to change
TYPECR <That terminal was not found>
LSTS D3 ; BACK TO USER MODE
EXIT
TRMSRH: MOV TRMDFC,A5 ; INDEX THE TERMINAL DEFINITION CHAIN
TMSA: CMMW 4(A5),(A4) ; TERMINAL DEFINITION NAME
BNE TMSB ; TO FILENAME IN DDBTRM(A5)
CMMW 6(A5),2(A4)
BNE TMSB
ADD #10,A5 ; ADVANCE TO TERMINAL DEFINITION BASE
RTN
TMSB: MOV @A5,A5 ; Next terminal in chain
CMP A5,#0
BNE TMSA ; Unless end of terminal chain
RTN
BAUD: CMPW D1,(A0)+
BEQ RATE
TSTW @A0
BNE BAUD
TYPESP <?Baud rate>
DCVT 0,OT$TRM
TYPECR < is not a valid baud rate>
LSTS D3 ; BACK TO USER MODE
EXIT
RATE: SUBW #2,A0 ; Backup to actual baud rate
LEA A6,TABLE ; Reindex the beginning of table
SUB A6,A0 ; Calculate the difference
MOV A0,D0 ;
ASR D0,#1 ; Make it a count offset
CLROIP: MOVW @A5,D7 ;
ANDW #200,D7 ; MAKE SURE NOT OIP FLAG
BNE CLROIP ;
MOVW D0,120(A5) ; Save new baud rate flag
MOV 2(A5),A6 ;
CALL 2(A6) ; Call init routine
CRLF ;
LSTS D3 ; BACK TO USER MODE
EXIT ;
PRTBAU: CLR D1 ;
MOVW 120(A5),D1 ; Get current baud rate
ASL D1,#1 ; Shift to word size
LEA A1,TABLE ; Index table
MOVW 0(A1)[D1],D1 ; Offset it
TYPESP <Current baud rate is>
DCVT 0,OT$TRM
CRLF
LSTS D3 ;BACK TO USER MODE
EXIT
TABLE: WORD 50.
WORD 75.
WORD 110.
WORD 134.
WORD 150.
WORD 200.
WORD 300.
WORD 600.
WORD 1200.
WORD 1800.
WORD 2000.
WORD 2400.
WORD 3600.
WORD 4800.
WORD 7200.
WORD 9600.
WORD 19200.
WORD 38400.
WORD 56000.
WORD 0
END