home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
modems
/
modem
/
baud.mac
< prev
next >
Wrap
Text File
|
1984-11-10
|
2KB
|
86 lines
; BAUD.MAC
; This program is intended for use on remote systems
; to enable the caller to change baud rates.
; This program is written for a PMMI and makes use
; of Richard L. Conn's SYSLIB calls.
;
; Note that this program puts the RATE FACTOR into the
; MSPEED location. This assumes that BYE also enters the
; rate factor there and XMODEM is capable of interpreting
; it for transmit time estimate. Changing BYE to do that
; is trivial; XMODEM is a different story. I am using
; Bill Earnest's BDS C version of XMODEM, which was written
; to recognize the rate factor at MSPEED.
;
pmmi equ 0e0h ;pmmi base port
port2 equ pmmi+2
port3 equ pmmi+3
lt300 equ 7fh ;filter switch value < 300 baud
gt300 equ 5fh ;filter switch value >=300 baud
wboot equ 0
fcb equ 5ch
mspeed equ 3dh ;where to put the rate factor
cr equ 0dh
lf equ 0ah
;
; SYSLIB external declarations
;
ext eval10 ;evaluate decimal ascii
ext divhd ; hl = hl / de
ext print ;print string
ext pause ;delay routine
ext comphd ;compare hl and de
;
start: lxi h,fcb+1
mov a,m
cpi ' '
jz error
push h
loop: mov a,m
inx h
cpi '0'
jc lexit
cpi '9'+1
jc loop
lexit: dcx h
mvi m,0
pop h
call eval10
lxi h,60
call comphd
jnc error
lxi h,710
call comphd
jc error
lxi h,15625
call divhd
mov a,l
sta mspeed
cpi 53
jc high
mvi a,lt300
out port3
jmp setrate
;
high: mvi a,gt300
out port3
setrate:lxi h,20 ;2 seconds...
mvi b,4 ;.. at 4mhz
call pause
lda mspeed
out port2
jmp wboot
;
; come here if
; - invalid baud rate (too high or too low)
; - no baud rate specified
;
error: call print
db 'Use the BAUD command to change the '
db 'baud rate to any speed',cr,lf
db 'between 61 and 710 baud. Enter BAUD xxx, '
db 'where xxx is the new rate.',cr,lf,lf,0
jmp wboot
;
end