home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / bye3 / b3ep-1.ins < prev    next >
Text File  |  1994-07-13  |  4KB  |  152 lines

  1.  
  2. ; B3EP-1.INS - BYE3 insert for Epson QX-10 computers - 07/30/85
  3. ;
  4. ;            Z80 SIO and 8253 CTC timer
  5. ;
  6. ;        Note:  This is an insert, not an overlay.
  7. ;
  8. ;
  9. ; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  10. ;
  11. ; 07/30/85    - Restored original format of overlay    - pst
  12. ; 12/15/83    - Created                - Albert Doolittle
  13. ;
  14. ; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  15. ;
  16. ;
  17. DPORT    EQU    11H        ; Data port
  18. SPORT    EQU    PORT+2        ; Status/Control port
  19. CTC0    EQU    06H        ; CTC baudrate port
  20. CTC1    EQU    CTC0+1        ; Vector port
  21. ;
  22. DAV    EQU    00000001B    ; Data available
  23. TBMT    EQU    00000100B    ; Transmitt buffer empty
  24. DCD    EQU    00001000B    ; Data carrier detect
  25. ;
  26. ; Now comes the time to decide how we set the baud rate.  Set it prop-
  27. ; erly for your particular CTC configuration
  28. ;
  29. BDVECT    EQU    0B6H        ; QX-10 Vector word
  30. ;
  31. BD300    EQU    01A0H        ; 300 baud
  32. BD1200    EQU    0068H        ; 1200 bps
  33. BD2400    EQU    0034H        ; 2400 bps
  34. ;
  35. ;-----------------------------------------------------------------------
  36. ;
  37. ; See if we still have a carrier - if not, return with the zero flag set
  38. ;
  39. MDCARCK:MVI    A,10H        ; Reset status
  40.     OUT    SPORT
  41.     IN    SPORT        ; Get status
  42.     ANI    DCD        ; Check for data carrier
  43.     RZ
  44.     ORI    255
  45.     RET
  46. ;
  47. ; Disconnect and wait for an incoming call
  48. ;
  49. MDINIT:    MVI    A,0        ; Select Register
  50.     OUT    SPORT
  51.     MVI    A,18H        ; Reset channel
  52.     OUT    SPORT
  53.     MVI    A,4        ; Setup to write register 4
  54.     OUT    SPORT
  55.     MVI    A,44H        ; 1 stop, no parity, 8 bits
  56.     OUT    SPORT
  57.     MVI    A,1        ; Setup to write register 1
  58.     OUT    SPORT
  59.     MVI    A,68H        ; DTR off
  60.     OUT    SPORT
  61.     MVI    A,5        ; Setup to write register 5
  62.     OUT    SPORT
  63.     MVI    A,0        ; Clear DTR
  64.     OUT    SPORT        ; Causing Hang-Up
  65.     IN    DPORT        ; Clear out garbage
  66.     IN    DPORT        ; Make sure we're clear
  67.     PUSH    B        ; In case it's being used elsewhere
  68.     MVI    B,20        ; 2 seconds delay to drop any carrier
  69. ;
  70. OFFTI:    CALL    DELAY        ; 0.1 second delay
  71.     DCR    B
  72.     JNZ    OFFTI        ; Keep looping until finished
  73.     POP    B        ; Restore BC
  74.     MVI    A,3        ; Setup to write register 3
  75.     OUT    SPORT
  76.     MVI    A,0C1H        ; Initialize receive register
  77.     OUT    SPORT
  78.     MVI    A,5        ; Setup to write register 5
  79.     OUT    SPORT
  80.     MVI    A,0EAH        ; DTR high lets the modem answer phone
  81.     OUT    SPORT
  82. ;
  83.      IF    IMODEM        ; If using an intelligent modem
  84.     CALL    IMINIT        ; Go initialize it now
  85.      ENDIF            ; IMODEM
  86. ;
  87.     RET
  88. ;
  89. ; Input a character from the modem port
  90. ;
  91. MDINP:    IN    DPORT        ; Get character
  92.     RET
  93. ;
  94. ; Check the status to see if a character is available.    if not, return
  95. ; with the zero flag set.  If yes, use 0FFH to clear the flag.
  96. ;
  97. MDINST:    IN    SPORT        ; Get status
  98.     ANI    DAV        ; Check the receive ready bit
  99.     RZ            ; Return if none
  100.     ORI    255        ; Otherwise, set the proper flag
  101.     RET
  102. ;
  103. ; Send a character to the modem
  104. ;
  105. MDOUTP:    OUT    DPORT        ; Send it
  106.     RET
  107. ;
  108. ; See if the output is ready for another character.
  109. ;
  110. MDOUTST:IN    SPORT
  111.     ANI    TBMT        ; Check the transmit ready bit
  112.     RET
  113. ;
  114. ; Reinitialize the modem and hang up the phone by dropping DTR and
  115. ; leaving it inactive.
  116. ;
  117. MDQUIT:     IF    IMODEM
  118.     CALL    IMQUIT
  119.      ENDIF            ; IMODEM
  120. ;
  121. ; Called by the main program after caller types BYE
  122. ;
  123. MDSTOP:    MVI    A,5        ; Setup to write register 5
  124.     OUT    SPORT
  125.     MVI    A,68H        ; Clear DTR
  126.     OUT    SPORT        ; Causing Hang-Up
  127.     IN    DPORT        ; Clear out garbage
  128.     IN    DPORT        ; Make sure we're clear
  129.     RET            ; Not used
  130. ;
  131. ; The following reoutine sets the baudrate.  BYE3 asks for the maximum
  132. ; speed you have available.
  133. ;
  134. SET300:    LXI    H,BD300
  135.     JMP    LOADBD
  136. ;
  137. SET1200:LXI    H,BD1200
  138.     JMP    LOADBD
  139. ;
  140. SET2400:LXI    H,BD2400
  141. ;
  142. LOADBD:    MVI    A,BDVECT    ; Get vector address
  143.     OUT    CTC1        ; Send to CTC
  144.     MOV    A,L        ; MSP of baudrate
  145.     OUT    CTC0
  146.     MOV    A,H
  147.     OUT    CTC0
  148.     RET
  149. ;
  150. ;                   end
  151. ;-----------------------------------------------------------------------
  152.