home *** CD-ROM | disk | FTP | other *** search
-
- ; B5SP-1.INS - Coleco Adam with EVE SP1 interface for BYE5 - 07/15/86
- ;
- ; 2651 I/O with built-in baudrate generator
- ;
- ; Note: This is an insert, not an overlay.
- ;
- ;
- ; The 2651 has a quirk that requires the DCD signal (car-
- ; rier detect) from the modem be brought to the DSR input
- ; on the computer, rather than to its DCD input, else the
- ; computer cannot be programmed properly for auto-recieve..
- ;
- ; If using a Hayes Smartmodem 1200,
- ; insure all switches are up except
- ; 3, 5 and 8 which should be down.
- ;
- ; modem computer
- ; 1-----------1
- ; 2-----------2
- ; 3-----------3
- ; 6 n/c 8 n/c
- ; 7-----------7
- ; 8-----------6
- ; 20-----------20
- ;
- ; The Hayes Smartmodem actually has a short between
- ; its pin 6 and pin 8, internally. It does not have
- ; any actual DSR information available, giving DCD
- ; information at both its pins 6 and 8. Other modems
- ; do not use this unorthodox method.
- ;
- ; - Notes by Irv Hoff
- ;
- ; = = = = = = = = = = = = = = = = = =
- ;
- ; 07/15/86 Written for use with BYE5 and later - Irv Hoff
- ;
- ; = = = = = = = = = = = = = = = = = =
- ;
- ; Modem port equates
- ;
- PORT EQU 44H ; Data port for the 2651 I/O
- MDCTL1 EQU PORT+1 ; Status port
- MDCTL2 EQU PORT+2 ; Modem port
- MDCTL3 EQU PORT+3 ; Control port
- ;
- BD300 EQU 35H ; 300 baud
- BD1200 EQU 37H ; 1200 bps
- BD2400 EQU 3AH ; 2400 bps
- ;.....
- ;
- ;
- ;-----------------------------------------------------------------------
- ;
- ; See if we still have a carrier - if not, return with the zero flag set
- ;
- MDCARCK:IN MDCTL1 ; Status port
- ANI 80H ; See if there is a carrier (DSR pin)
- RET ; If yes, return with Zero flag set
- ;.....
- ;
- ;
- ; Disconnect and wait for an incoming call
- ;
- MDINIT: MVI A,15H ; Turn off DTR, RTS to hang up phone
- OUT MDCTL3 ; Control port
- IN MDCTL3 ; Make sure it is now clear
- IN MDCTL3 ; Try once more
- PUSH B ; In case it was being used
- MVI B,20 ; Delay for 2 seconds
- ;
- OFFTI: CALL DELAY ; .1 second increments
- DCR B ; One less to go
- JNZ OFFTI ; If not zero, loop until zero
- POP B ; Restore to original
- MVI A,37H ; Reset RTS, flags, DTR, enable R/T
- OUT MDCTL3 ; Control port
- IN MDCTL3 ; Clear any incoming characters
- IN MDCTL3 ; Try once more
- ;
- IF IMODEM
- CALL IMINIT ; Initialize modem
- 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 PORT
- 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 will be returned in 'A' reg.
- ;
- MDINST: IN MDCTL1
- ANI 02H ; Check for receive ready bit
- RZ
- ORI 0FFH ; We got something...
- RET
- ;.....
- ;
- ;
- ; The following is a routine to determine if the transmit buffer is em-
- ; pty. If not, it returns with the Zero flag set, otherwise it will
- ; return with Zero clear.
- ;
- MDOUTST:IN MDCTL1
- ANI 01H ; Check the transmit ready bit
- RZ
- ORI 0FFH
- RET
- ;.....
- ;
- ;
- MDQUIT: IF IMODEM
- CALL IMQUIT
- ENDIF ; IMODEM
- ;
- MDSTOP: MVI A,15H ; DTR off, modem will quit working
- OUT MDCTL3
- RET
- ;.....
- ;
- ;
- ; The following is a routine that will output one character in the 'A'
- ; reg. to the modem.
- ;
- ;
- MDOUTP: OUT PORT
- RET
- ;.....
- ;
- ;
- ; Set the baudrate, returns with Zero flag set with successful change
- ;
- SETINV: MVI A,0FFH
- ORA A ; Make sure the Zero flag is not set
- RET
- ;
- SET300: MVI B,BD300
- JMP LOADBD
- ;
- SET1200:MVI B,BD1200
- JMP LOADBD
- ;
- SET2400:MVI B,BD2400
- ;
- LOADBD: MVI A,4EH ; 1 Stop, no parity, 8 bits, 16x asynch
- OUT MDCTL2 ; Send to mode register
- MOV A,B ; Get the baudrate
- OUT MDCTL2 ; Set the desired speed
- MVI A,37H ; Reset flags, RTS, DTR, enable R/T
- OUT MDCTL3 ; Send to command register
- IN MDCTL3 ; Clear any incoming characters
- IN MDCTL3 ; Try once again
- XRA A ; Shows the baudrate change was ok
- RET
- ;.....
- ;
- ; end
- ;-----------------------------------------------------------------------