; B3AC-2 - Apple-Cat insert for BYE5 - 07/30/85
;
; Novation Apple-Cat routines for BYE3
;
; This version is for the Apple ][ running with an Apple-Cat modem card.
; Note: This is an insert, not an overlay.
;
; This routine will not function due to changes made in Bye335.
; However, it is being kept with the library, because a version
; of BYE will soon appear that will allow this overlay to work.
;
; = = = = = = = = = = = = = = = = = =
;
; 07/30/85 - Restored to original format - pst
; 06/22/82 - Created - Dave Roznar
;
; = = = = = = = = = = = = = = = = = =
;
; Apple-Cat modem address equates
;
SLOT EQU 2 ; Apple-Cat residing in Slot #2
SLOTVAL EQU SLOT*16 ; Number to add for proper slot
;
MCSTATP EQU 0E080H+SLOTVAL ; Carrier status
LNCTL EQU 0E081H+SLOTVAL ; Line control
PHCTL EQU 0E082H+SLOTVAL ; Phone control
BSRINT EQU 0E083H+SLOTVAL ; BSR and interrupts
RCVCTL EQU 0E089H+SLOTVAL ; Receiver control
MDPORT EQU 0E08AH+SLOTVAL ; Mode (parity/stop bits) port
BAUDPT EQU 0E08BH+SLOTVAL ; Baud rate port
XRINT EQU 0E08CH+SLOTVAL ; Transmit/receive interrupts
TRXCTL EQU 0E08DH+SLOTVAL ; Transmitter control
MODSEL EQU 0E08FH+SLOTVAL ; Modem select port
;
RSPORT EQU 0E08FH+SLOTVAL ; Receive status port
RDPORT EQU 0E08BH+SLOTVAL ; Receive data port
TSPORT EQU 0E08FH+SLOTVAL ; Transmit status port
TDPORT EQU 0E08EH+SLOTVAL ; Transmit data port
;
DAV EQU 00001000B ; Data available
TBMT EQU 00010000B ; Transmit buffer empty
DCD EQU 00100000B ; Data carrier detect
;
;-----------------------------------------------------------------------
;
; See if we still have a carrier - if not, return with the zero flag set
;
MDCARCK:LDA MCSTATP ; Get carrier status
ANI DCD ; Got carrier?
RZ
ORI 255
RET
;
; Disconnect and wait for an incoming call
;
MDINIT: MVI A,1FH ; Turn off transmitter
STA TRXCTL
MVI A,0 ; Hang up phone
STA PHCTL
RET
;
; Input a character from the modem port
;
MDINP: MVI A,10H ; Clear receiver
STA TRXCTL
LDA RDPORT ; Read character
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: LDA RSPORT ; Get modem status
ANI DAV ; Data available?
RZ ; Nope
ORI 255 ; Return true
RET
;
; Send a character to the modem
;
MDOUTP: STA TDPORT ; Send character
RET
;
; See if the output is ready for another character
;
MDOUTST:LDA TSPORT ; Get modem status
ANI TBMT ; Check transmit buffer empty bit
RZ
ORI 255
RET
;
; Reinitialize the modem and hang up the phone by dropping DTR and
; leaving it inactive.
;
MDQUIT: IF IMODEM ; If using a smartmodem
CALL IMQUIT
ENDIF ; IMODEM
;
MDSTOP: MVI A,1FH ; Turn off transmitter
STA TRXCTL
MVI A,0 ; Hang up phone
STA PHCTL
RET
;
; The following routine sets the baudrate. BYE5 asks for the maximim
; speed you have available.
;
SET1200 EQU $ ; 1200 bps not supported
SET2400 EQU $ ; 2400 bps not supported
ORI 255 ; Make sure the Zero flag isn't set
RET
;
SET300: CALL MDINP ; Set for 300 baud
CALL MDINP
MVI A,22H ; Set 300 baud
STA BAUDPT
MVI A,03H ; Set 8 data bits, no parity, 1 stop bit
STA MDPORT ; 03H = 1 stop, 0DH = 2 stop bits
XRA A
RET
; end
;-----------------------------------------------------------------------