Public Message # 6440  CPMTECH Area  Entered 08:45 Saturday  26-Dec-92
From:  BRUCE DUDLEY
 To:  SIMEON CRAN
 Re:  BYE Modem insert

Don't know if this will work but here is the MYZ80 modem insert for BYE and
Foodo.

--------------------------------------------------------------------------

; MYZ80.INS - BYE5 insert for MSDOS using MYZ80 CP/M emulator
;
; This insert adapts the MYZ80 CP/M emulator to BYE5.
;
; Adaptded to suit by:

; Bruce Dudley     24/12/92  SYSOP Z-Node 62 RCPM

;=   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
 =
; Set to the com: port used on your PC for modem communications
; Note: Only set one of these to 'yes'

com1    equ     no
com2    equ     yes
com3    equ     no
com4    equ     no

        if      com1
portbase        equ     0
        endif

        if      com2
portbase        equ     8
        endif

        if      com3
portbase        equ     16
        endif

        if      com4
portbase        equ     24
        endif
;-----------------------------------------------------------------------
;
;
; See if we still have a carrier - if not, return with the zero flag
set
;
mdcarck:in      a,(portbase+6)
        bit     7,a
        ret
;.....
;
; Disconnect and wait for an incoming call
;
mdinit: push    bc
        xor     a
        out     (portbase+1),a  ; Prevent interrupts
        ld      a,00010011b     ; Line control register value set for:
                                ; DLAB off
                                ; Break off
                                ; Parity unstuck
                                ; None...
                                ; 1 stop bit
                                ; 8 data bits
        out     (portbase+3),a
        in      a,(portbase+4)
        set     1,a             ; Make sure RTS is on
        out     (portbase+4),a
        call    mdstop
        ld      b,20            ; 2 second delay
offti:  call    delay           ; 0.1 second delay
        djnz    offti           ; Keep looping until finished
        call    dtron

         if     imodem          ; If using intelligent modem
        call    iminit          ; Go initialize modem now
         endif                  ; IMODEM

        pop     bc
        ret
;.....
;
; Input a character from the modem port
;
mdinp:  in      a,(portbase+0)
        ret
;.....
;
;
; Check the status to see if a character is available.  If not, return
; with the zero flag set.  If yes, use 0FFH to clear the flag.
;
mdinst: in      a,(portbase+5)
        bit     0,a
        ret     z       ; Return if not ready
        or      -1      ; Set the proper flag
        ret             ; And return
;.....
;
;
; Send a character to the modem
;
mdoutp: out     (portbase+0),a
        ret
;.....
;
;
; See if the output is ready for another character
;
mdoutst:in      a,(portbase+5)
        bit     5,a
        ret
;.....
;
;
; Reinitialize the modem and hang up the phone by dropping DTR and
; leaving it inactive.
;
mdquit:  if     imodem          ; If using an intelligent modem
        call    imquit          ; Tell it to shut down
         endif                  ; IMODEM
;
;
; Called by the main program after caller types BYE.
;
mdstop: in      a,(portbase+4)
        bit     0,a
        ret     z
        res     0,a             ; Drop DTR
        out     (portbase+4),a
        ret
;.....

dtron:  in      a,(portbase+4)
        bit     0,a
        ret     nz
        set     0,a             ; Assert DTR
        out     (portbase+4),a
        ret

;
; The following routine sets the baudrate.  BYE5 asks for the maximum
; speed you have available.
;
setinv: or      -1              ; Make sure zero flag is not set
        ret
;.....
;
;
set300: ld      hl,bd300
        jr      setbaud
;
set1200:ld      hl,bd1200
        jr      setbaud
;
set2400:ld      hl,bd2400
        jr      setbaud
;
set9600:ld      hl,bd9600
        jr      setbaud
;
set1920:ld      hl,bd1920
;
setbaud:in      a,(portbase+3)
        set     7,a             ; Set DLAB
        out     (portbase+3),a
        ld      a,l
        out     (portbase+0),a  ; Do low byte
        ld      a,h
        out     (portbase+1),a  ; Do high byte
        in      a,(portbase+3)
        res     7,a             ; Restore DLAB
        out     (portbase+3),a
        xor     a
        ret                     ; Return
;.....
;
;
; The following are baud rates for BPORT -- they will have to be changed
; for your particular CTC.

bd300   equ     180h            ; 300
bd1200  equ     060h            ; 1200
bd2400  equ     030h            ; 2400
bd9600  equ     0ch             ; 9600
bd1920  equ     6               ; 19200
;.....

 -------------------------------------------------------------------------

I don't know if a DOS BBS will reformat all that and if so it will look a
mess. Looks OK here on Z-Node..

 Bruce..

--- Foodo v1.1
* Origin: Z-Node 62 RCPM, Perth Western Australia. CP/M on FidoNet (3:690/718)