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

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