home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / bye3 / b3kp-2.ins < prev    next >
Encoding:
Text File  |  1994-07-13  |  3.3 KB  |  138 lines

  1. ; B3KP-2.INS    - Kaypro 2/4/10 serial port driver -    7/30/85
  2. ;
  3. ;           Z80-SIO and 8116 baudrate generator
  4. ;
  5. ;        Note:  This is an insert, not an overlay.
  6. ;
  7. ; Will the original author of this overlay please step forward?
  8. ;
  9. ; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  10. ; 07/30/85    Restored to original format    - pst
  11. ; ??/??/??    Created                - original author unknown
  12. ; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  13. ;
  14. DPORT    EQU    04H        ; Data port
  15. SPORT    EQU    DPORT+2        ; Modem control port
  16. BRPORT    EQU    00H        ; Baud rate generator port
  17. ;
  18. DAV    EQU    00000001B    ; Data available
  19. TBMT    EQU    00000100B    ; Transmit buffer empty
  20. DCD    EQU    00001000B    ; Data carrier detect
  21. ;
  22. ; Divisors for the 8116 baudrate generator
  23. ;
  24. BD300    EQU    5        ; 300 baud
  25. BD1200    EQU    7        ; 1200 bps
  26. BD2400    EQU    10        ; 2400 bps
  27. ;
  28. ;-----------------------------------------------------------------------
  29. ;
  30. ; See if we still have a carrier - if not, return with the zero flat set
  31. ;
  32. MDCARCK:MVI    A,10H        ; Reset status
  33.     OUT    SPORT
  34.     IN    SPORT        ; Get status
  35.     ANI    MDDCD        ; Check for carrier
  36.     RET
  37. ;
  38. ; Disconnect and wait for an incoming call
  39. ;
  40. MDINIT:    MVI    A,0        ; Setup to write register 0
  41.     OUT    SPORT
  42.     MVI    A,18H        ; Reset channel
  43.     OUT    SPORT
  44. ;
  45.     MVI    A,4        ; Setup to write register 4
  46.     OUT    SPORT
  47.     MVI    A,44H        ; Set 16x, 1 stop bit, no parity
  48.     OUT    SPORT
  49. ;
  50.     MVI    A,3        ; Setup to write register 3
  51.     OUT    SPORT
  52.     MVI    A,0C1H        ; 8 bits, Rx enable
  53.     OUT    SPORT
  54. ;
  55.     MVI    A,5        ; Setup to write register 5
  56.     OUT    SPORT
  57.     MVI    A,68H        ; DTR off
  58.     OUT    SPORT
  59. ;
  60.     PUSH    B        ; Save in case it's being used elsewhere
  61.     MVI    B,20        ; 2 second delay to drop any carrier
  62. OFFTI:    CALL    DELAY        ; 1 second delay
  63.     DCR    B
  64.     JNZ    OFFTI        ; Keep looping until finished
  65.     POP    B        ; Restore 'BC'
  66. ;
  67.     MVI    A,5        ; Setup to write register 5
  68.     OUT    SPORT
  69.     MVI    A,0E8H        ; Turn DTR back on
  70.     OUT    SPORT
  71. ;
  72.      IF    IMODEM        ; If using an intellegent modem
  73.     CALL    IMINIT        ; Go initialize it now
  74.      ENDIF            ; IMODEM
  75. ;
  76.     RET
  77. ;
  78. ; Input a character from the modem port
  79. ;
  80. MDINP:    IN    DPORT        ; Get character
  81.     RET
  82. ;
  83. ; Check the status to see if a character is available.  If not, return
  84. ; with the zero flag set.  If yes, use 0FFH to clear the flag.
  85. ;
  86. MDINST:    IN    SPORT        ; Get status
  87.     ANI    DAV        ; Got a character
  88.     RZ            ; Return if none
  89.     ORI    255        ; Otherwise set the proper flag
  90.     RET
  91. ;
  92. ; Send a character to the modem
  93. ;
  94. MDOUTP:    OUT    DPORT        ; Send it
  95.     RET
  96. ;
  97. ; See if the output is ready for another character
  98. ;
  99. MDOUTST:IN    SPORT        ; Get status
  100.     ANI    TBMT        ; Ready for a character?
  101.     RZ
  102.     ORI    255
  103.     RET
  104. ;
  105. ; Reinitialize the modem and hang up the phone by dropping DTR and
  106. ; leaving it inactive.
  107. ;
  108. MDQUIT:     IF    IMODEM
  109.     CALL    IMQUIT
  110.      ENDIF            ; IMODEM
  111. ;
  112. ; Called by the main program after caller types BYE
  113. ;
  114. MDSTOP:    MVI    A,5        ; Setup to write register 5
  115.     OUT    SPORT
  116.     MVI    A,68H        ; Turn off DTR until next time
  117.     OUT    SPORT
  118.     RET
  119. ;
  120. ; The following routine sets the baud rate.  BYE3 asks for the maximum
  121. ; speed you have available.
  122. ;
  123. SET300:    MVI    A,BD300
  124.     JMP    SETBAUD
  125. ;
  126. SET1200:MVI    A,BD1200
  127.     JMP    SETBAUD
  128. ;
  129. SET2400:MVI    A,BD2400
  130. ;
  131. ; Sets the baudrate
  132. ;
  133. SETBAUD:OUT    BRPORT
  134.     XRA    A        ; Say baudrate is ok
  135.     RET
  136. ;                   end
  137. ;------------------------------------------------------------------------
  138.