

The routine below is a modification for MBYE33 to allow using the
AVATEX 300/1200 modem without needing remote input to set baud
rate and begin the program. This is presented as a guideline only,
as my MBYE33 has been heavily modified (including multiple users
and wordwrap chat), but should work with any BYE. The AVATEX should
be set to the "1200" mode of response codes. The rest is automatic.
MBYE should be set to "NO" for all modem options, and S300 and
S1200 should be "YES"

RINGWT:
;
	CALL	VCONSTAT	;check if console key ready
	ORA	A
	JZ	RNGWT1		;nope, check for ring/carrier
	CALL	VCONIN		;yep, get console key
	ANI	7FH		;strip parity bit
;
	 IF	FKEYS
	CPI	BELKEY		;bell key?
	CZ	TOGBEL		;if so, toggle console bell on/off
	CPI	CLRKEY		;clear screen char?
	CZ	CLRSCRN		;if so clear the screen
        CPI     27		;IF ESC, CHECK FOR EXIT
	JZ	USRCHK
	 ENDIF
;
C40:	CPI	'C'-40H		;CTL-C?
	JZ	USRCHK		;check for exit
;
RNGWT1:
;
	CALL	MDINST		;See if a character is waiting
	JZ	RINGWT		;Nope, go check other things
	JMP	GCHA		;ok! get it!
ANOT:	CALL	MDINST		;check for another 
	JNZ	GCHA		;go get it
	CALL	MDCARCK		;check for a carrier-if present,check buffer
	JZ	ANOT		;no carrier, loop
	LDA	TCHAR		;load the buffer
	CPI	'T'		;is it a "T"? last thing from a 300 connect
	JZ	ANT3		;then go answer as 300
	CPI	'0'		;is it a "0"? Connect 1200
	JZ	ANT12		;jump to 1200 connect
	CALL	MDCARCK		;if a carrier,
	JNZ	ANSWERA		;we missed - go do dumbmodem logon
UNK:	XRA	A		;else clear the buffer
	STA	TCHAR		;
	JMP	RINGWT		;go wait again
GCHA:	CALL	MDINP		;get the chaacter
	CPI	'0'		;store it if a '0'
	JZ	NGC		;
	CPI	'T'		;store it if a "T"
	JZ	NGC		;
	CPI	'R'		;R means NO CARRIER or ERROR
	JZ	UNK		;so go wait again
	JMP	NGR		;none of above, so clear
NGC:	STA	TCHAR		;store it in TCHAR buffer
NGR:	XRA	A		;clear A
	JMP	ANOT		;try for another
ANT3:	CALL	SET300		;set port to 300
	MVI	A,BP300		;store the baud pointer
	STA	MSPEED
	XRA	A		;clear A
	JMP	ANSWER		;go load welcome, etc.
ANT12:	CALL	SET1200		;set port to 1200
	MVI	A,BP1200
	STA	MSPEED
	XRA	A
	JMP	ANSWER		;go load welcome
;
;
;
;

The following mods go in "ANSWER" right before ANSWERA - which is now
set to perform only the answering after an error has occurred. This
routine bypasses ANSWERA, which is not necessary if the above worked!

;
;
	 IF	NOT (SMODEM OR SM1200)

;
	MVI	B,10
	CALL	DELAY
	CALL	FRSTCR		;check for initial carrier
	JC	HANGUP2		;no carrier, forget it...
	JMP	WELCOME
;
;
ANSWERA:
;
	CALL	SET300		;set speed initially at 300
	CALL	MDINP		;clear garbage characters
	CALL	MDINP
	CALL	FRSTCR		;check for carrier the first time
	JC	HANGUP2		;wasn't a voice call
	 ENDIF
;
;


OTHER CHANGES:


Add (in flag/msg areas near end of pgm)

TCHAR:	DS	1	;Space for the character buffer 


Add in HANGUP2 (above RINGWT)

	XRA	A	
	STA	TCHAR
	CALL	SET1200	



That's it! Should work in any BYE if placed in the proper loop of FKEYS
and Modem response checking.

Should also work with any 3/1200 modem that issues different responses
for 300 and 1200 connect. Unfortunately, the VOLKS doesn't issue 
dependable responses for 300 connect, but since it locks up every 10th
call anyway, doubt if that's much of a problem!

The above is being used on two of the AMY<>BBS systems, THE APARTMENT
(904-737-6654) and HOTEL SORDID (904-777-3311), both running on TRS
Model 4's with CP/M. 

    Charles McHan
    AMY  <>  BBS 
    MULTI-SYSTEM
   (904) 725-7461 
   (904) 725-1226


