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