home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / pcpursut / pisrc.ark / MDM.ASM < prev    next >
Assembly Source File  |  1988-07-14  |  2KB  |  97 lines

  1.  
  2. ;***********************************************************************
  3. ;*        MDM.ASM - interface with imp modem drivers           *
  4. ;***********************************************************************
  5. ;
  6. I$MDCTL1 EQU    11FH
  7. I$MDTXE    EQU    129H
  8. I$MDDATP EQU    133H
  9. O$MDDATP EQU    13DH
  10. A$MDRCV    EQU    147H
  11. A$MDSND    EQU    14DH
  12. C$MDRCV    EQU    14AH
  13. C$MDSND    EQU    150H
  14. ;
  15.     PUBLIC    IN_RDY_
  16.     PUBLIC    OUT_RDY_
  17.     PUBLIC    IN_MDM_
  18.     PUBLIC    OUT_MDM_
  19.     PUBLIC    J_RCVRSP
  20.     PUBLIC    ISWHITE_
  21. ;
  22. ISWHITE_:
  23.     LXI    H,2
  24.     DAD    SP
  25.     MOV    A,M
  26.     CPI    020H
  27.     JZ    TRUE
  28. ;
  29.     CPI    09
  30.     JZ    TRUE
  31. ;
  32.     CPI    10
  33.     JZ    TRUE
  34. ;
  35.     CPI    13
  36.     JZ    TRUE
  37. ;
  38. FALSE:    LXI    H,0
  39.     MOV    A,L
  40.     ORA    A
  41.     RET
  42. ;
  43. TRUE:    LXI    H,1
  44.     MOV    A,L
  45.     ORA    A
  46.     RET
  47. ;
  48. IN_RDY_:
  49.     CALL    I$MDCTL1    ; Get control word
  50.     CALL    A$MDRCV        ; See if a byte is ready
  51.     CALL    C$MDRCV
  52. ;
  53. CHECK:    JZ    LP1
  54.     MVI    A,0        ; False
  55.     JMP    RETVAL
  56. ;
  57. LP1:    MVI    A,1        ; True
  58. ;
  59. RETVAL:    MOV    L,A        ; Get value to return to 'c' program
  60.     MVI    H,0
  61.     ORA    A
  62.     RET
  63. ;
  64. OUT_RDY_:
  65.     CALL    I$MDCTL1    ; Get control word
  66.     CALL    A$MDSND        ; See if ready for more data
  67.     CALL    C$MDSND
  68.     JMP    CHECK        ; See if true or false and return
  69. ;
  70. IN_MDM_:CALL    I$MDDATP    ; Get input data
  71.     ANI    07FH        ; Mask out msbit
  72.     JMP    RETVAL
  73. ;
  74. OUT_MDM_:
  75.     LXI    H,2
  76.     DAD    SP
  77.     MOV    A,M
  78.     PUSH    PSW
  79. ;
  80. LP:    CALL    I$MDCTL1    ; See if last byte is out yet
  81.     CALL    A$MDSND
  82.     CALL    C$MDSND
  83.     JNZ    LP
  84. ;
  85.     POP    PSW
  86.     CALL    O$MDDATP
  87.     RET
  88. ;
  89.  
  90. ; Load address of recieve-ready test routine
  91. ;
  92. J_RCVRSP:
  93.     LXI    H,IN_RDY_
  94.     INX    H
  95.     RET
  96. ;
  97.