; B3HZ10-4 Heath/Zenith -100 insert for BYE3 (2661B I/O) - 04/04/84 ; ; HEATH-ZENITH -100 CONVERSION FOR BYE3 ; ; This version is for the Heath/Zenith -100 series using the 4.9 Mega- ; hertz 2661B I/O. You willl need to set the equates at the start of ; BYE3.ASM for your equipment. ; ; NOTE: If using an intelligent modem, be sure to change ; the IMODEM equate to 'YES' near the start of the BYE3.ASM file. ; ;*********************************************************************** ; ; 04/04/84 Updated to work with the IMODEM feature of Bye3-20 ; - Paul Traina ; ; 12/15/83 Separated the H-100 section from the Smartmodem section (it ; is now included in the main BYE3 pgm.) ; - Irv Hoff and John Ferguson ; ; 11/27/83 Combined work by Paul Matlin, John Ferguson, Sigi Kluger, ; Tom Brown, myself and others to make this file. ; - Irv Hoff ; ;*********************************************************************** ; ; ; Modem port equates ; DATPORT: EQU 0ECH ;data port for Heath/Zenity -100 series STPORT: EQU DATPORT+1 ;status port ; RRDY: EQU 2 ;character ready bit TRDY: EQU 1 ;send ready bit DCD: EQU 40H ;carrier detect bit ; DEFAULT: EQU 1 ;1=300 bps, 5=1200 bps DEFAULT1: EQU 0F6H ;0F6H=300 bps, 0F8H=1200 bps ; ;----------------------------------------------------------------------- ; ; ; The following routine will make the modem answer the phone. It should ; also set baud rate to 300 baud. ; MDANSW: IF IMODEM CALL IMANSW ENDIF ;IMODEM ; RET ; ; Initialize the modem for 300 bps initially ; INITMOD: MVI A,1 ;for 300 baud STA MSPEED XRA A OUT DATPORT+3 IN DATPORT+3 IN DATPORT+3 MVI A,4EH OUT DATPORT+2 ; INITMOD1: MVI A,0F6H OUT DATPORT+2 MVI A,37H OUT DATPORT+3 IN DATPORT+3 IN DATPORT+3 XRA A RET ; ; The following is a routine that will check to make sure we still have ; carrier. If there is no carrier, it will return with the Zero flag ; set. ; MDCARCK:IN STPORT ANI DCD RET ; MDINIT: IF IMODEM CALL IMINIT ENDIF ;IMODEM ; RET ; ; The following is a routine that will input one character from the mo- ; dem port. If there is nothing there, it will return garbage... so use ; the MDINST routine first. ; MDINP: IN DATPORT RET ; ; The following is a routine to determine if there is a character wait- ; ing to be received. If there are none, the zero flag will be set. ; Otherwise, 0FFH (255) will be returned in 'A' reg. Remember that the ; system may like you a little more if you also mask out framing, pari- ; ty and overrun errors. (On some modems, you can't because of problems ; with the baud rate selection.) ; ; MDINST: IN STPORT ANI RRDY RZ ORI 0FFH ;we got something... RET ; ; The following is a routine to determine if the transmit buffer is em- ; pty. If not, it will return with the Zero flag set, otherwise it will ; return with Zero clear. ; MDOUTST:IN STPORT ANI TRDY RZ ORI 0FFH RET ; ; The following routine will check to see if the phone is ringing. If ; not, it will return with Zero set, otherwise Zero will be cleared. ; MDRING: XRA A RET ; ; The following is a routine that will output one character in the 'A' ; reg. to the modem. REMEMBER, that is the 'A' reg. not the 'C' reg. ; ; ** Use MDOUTST first to see if buffer is empty ** ; MDOUTP: OUT DATPORT RET ; MDQUIT: IF SMODEM CALL SMQUIT ENDIF ;SMODEM ; RET ; SET110 DS 0 ;too slow to support SET450 DS 0 ;the 2661B does not support 450 bps SET600 DS 0 ;not supported by Smartmodem, USR, etc. SET710 DS 0 ;not supported by Smartmodem, USR, etc. ; SETINV: MVI A,0FFH ORA A ;make sure the Zero flag is not set RET ; SET300: MVI A,1 ;300 bps "MSPEED" LHLD BD300 JMP LOADBD ; SET1200:MVI A,5 ;1200 bps "MSPEED" LHLD BD1200 JMP LOADBD ; LOADBD: STA INITMOD+1 ;store new "MSPEED" MOV A,L STA INITMOD1+1 JMP INITMOD ;Initialize for the new speed ; ; Data area for speed control of the 2661B ; BD300 DW 00F6H BD1200 DW 00F8H ; ; That is all of the modem dependent routines that BYE3 uses, so if you ; patch this file into your copy of BYE3, then it should work well. ;