home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / bye3 / b3r3-2.ins < prev    next >
Text File  |  1994-07-13  |  3KB  |  119 lines

  1. ;
  2. ;      TR1602 I/O and BR19411 baudrate generator
  3. ;
  4. ;       Note:  This is an insert not an overlay
  5. ;
  6. ; Some TRS-80 Model III units may differ from the ones that use this
  7. ; insert in which case get the one for the Model IV and try that.  The
  8. ; status on some of the boards such as the Montezuma Micro CP/M 2.2 are
  9. ; inverted and you may or may not have that problem.
  10. ;
  11. ; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  12. ;
  13. ; Modem port equates
  14. ;
  15. DPORT    EQU    0EBH        ; Modem port
  16. SPORT    EQU    DPORT-1        ; Status port
  17. BPORT    EQU    DPORT-2        ; Baud rate port
  18. RPORT    EQU    DPORT-3        ; Reset port
  19. ;
  20. MDRCV    EQU    10000000B    ; Data available
  21. MDSND    EQU    01000000B    ; Xmit buffer empty
  22. MDDCD    EQU    00100000B    ; Data carrier detect
  23. ;
  24. B300    EQU    055H        ; 300 baud
  25. B1200    EQU    077H        ; 1200 bps
  26. B2400    EQU    0AAH        ; 2400 bps
  27. ;
  28. ;-----------------------------------------------------------------------
  29. ;
  30. ; See if we still have a carrier - if not, return with the zero flat set
  31. ;
  32. MDCARCK:IN    RPORT        ; Read port
  33.     ANI    DCD        ; Mask carrier detect
  34.     RZ
  35.     ORI    255
  36.     RET
  37. ;
  38. ; Disconnect and wait for an incoming call
  39. ;
  40. MDINIT:    MVI    A,01        ; Reset UART, enable modem control
  41.     OUT    RPORT
  42.     MVI    A,68H        ; DTR, RTS off to hang up phone
  43.     OUT    SPORT
  44. ;
  45.     PUSH    B
  46.     MVI    B,20        ; 2 seconds to let modem settle down
  47. OFFTI:    CALL    DELAY
  48.     DCR    B
  49.     JNZ    OFFTI
  50.     POP    B
  51. ;
  52.     MVI    A,6BH        ; Turn DTR back on
  53.     OUT    SPORT
  54. ;
  55.      IF    IMODEM
  56.     CALL    IMINIT
  57.      ENDIF            ; IMODEM
  58. ;
  59.     RET
  60. ;
  61. ; Input a character from the modem port
  62. ;
  63. MDINP:    IN    DPORT        ; Get character
  64.     RET
  65. ;
  66. ; Check the status to see if a character is available.    If not, return
  67. ; with the zero flag set.  If yes, use 0FFH to clear the flag.
  68. ;
  69. MDINST:    IN    SPORT        ; Read port
  70.     ANI    DAV        ; Mask crap
  71.     RZ            ; Nope, nothing there
  72.     ORI    255        ; We got something...
  73.     RET
  74. ;
  75. ; Send a character to the modem
  76. ;
  77. MDOUTP:    OUT    DPORT        ; Send it
  78.     RET
  79. ;
  80. ;
  81. ; See if the output is ready for another character
  82. ;
  83. MDOUTST:IN    SPORT        ; Read port
  84.     ANI    TBMT        ; Mask crap
  85.     RZ
  86.     ORI    255
  87.     RET
  88. ;
  89. ; Reinitialize the modem and hang up the phone by dropping DTR and
  90. ; leaving it inactive.
  91. ;
  92. MDQUIT:     IF    IMODEM
  93.     CALL    IMQUIT        ; Tell smartmodem to shut down
  94.      ENDIF            ; IMODEM
  95. ;
  96. ;
  97. ; Called by main program after caller has typed BYE
  98. ;
  99. MDSTOP:    MVI    A,68H        ; Turn off DTR so that modem will quit
  100.     OUT    SPORT
  101.     RET
  102. ;
  103. ; The following routine sets the baudrate.  BYE3 asks for the maximum
  104. ; speed you have available.
  105. ;
  106. SET300:    MVI    A,B300
  107.     JMP    SETBAUD
  108. ;
  109. SET1200:MVI    A,B1200
  110.     JMP    SETBAUD
  111. ;
  112. SET2400:MVI    A,B2400
  113. ;
  114. SETBAUD:OUT    BPORT
  115.     XRA    A
  116.     RET
  117. ;                   end
  118. ;-----------------------------------------------------------------------
  119.