home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
pcpursut
/
pisrc.ark
/
MDM.ASM
< prev
next >
Wrap
Assembly Source File
|
1988-07-14
|
2KB
|
97 lines
;***********************************************************************
;* MDM.ASM - interface with imp modem drivers *
;***********************************************************************
;
I$MDCTL1 EQU 11FH
I$MDTXE EQU 129H
I$MDDATP EQU 133H
O$MDDATP EQU 13DH
A$MDRCV EQU 147H
A$MDSND EQU 14DH
C$MDRCV EQU 14AH
C$MDSND EQU 150H
;
PUBLIC IN_RDY_
PUBLIC OUT_RDY_
PUBLIC IN_MDM_
PUBLIC OUT_MDM_
PUBLIC J_RCVRSP
PUBLIC ISWHITE_
;
ISWHITE_:
LXI H,2
DAD SP
MOV A,M
CPI 020H
JZ TRUE
;
CPI 09
JZ TRUE
;
CPI 10
JZ TRUE
;
CPI 13
JZ TRUE
;
FALSE: LXI H,0
MOV A,L
ORA A
RET
;
TRUE: LXI H,1
MOV A,L
ORA A
RET
;
IN_RDY_:
CALL I$MDCTL1 ; Get control word
CALL A$MDRCV ; See if a byte is ready
CALL C$MDRCV
;
CHECK: JZ LP1
MVI A,0 ; False
JMP RETVAL
;
LP1: MVI A,1 ; True
;
RETVAL: MOV L,A ; Get value to return to 'c' program
MVI H,0
ORA A
RET
;
OUT_RDY_:
CALL I$MDCTL1 ; Get control word
CALL A$MDSND ; See if ready for more data
CALL C$MDSND
JMP CHECK ; See if true or false and return
;
IN_MDM_:CALL I$MDDATP ; Get input data
ANI 07FH ; Mask out msbit
JMP RETVAL
;
OUT_MDM_:
LXI H,2
DAD SP
MOV A,M
PUSH PSW
;
LP: CALL I$MDCTL1 ; See if last byte is out yet
CALL A$MDSND
CALL C$MDSND
JNZ LP
;
POP PSW
CALL O$MDDATP
RET
;
; Load address of recieve-ready test routine
;
J_RCVRSP:
LXI H,IN_RDY_
INX H
RET
;