home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / RCPM / NBYE10.LBR / NBYEMDM.DQC / NBYEMDM.DOC
Text File  |  2000-06-30  |  7KB  |  214 lines

  1. ;  NBYEMDM.DOC  --  Specifications for the NBYEMDM.INC file for NBYE.MAC
  2. ;
  3. ;            Gary Case
  4. ;            585 Big Sky Court
  5. ;            Colorado Springs, CO
  6. ;                       80919
  7. ;            (303) 599-0744
  8. ;
  9. ;
  10. ;******************************************************************************
  11. ;
  12. ;   NBYE.MAC requires that all modem interface code be located in a file
  13. ;   named NBYEMDM.INC.  The required routines in this module are documented
  14. ;   below.  The following conventions are used in this documentation:
  15. ;
  16. ;    Inputs/Outputs:    Any required input is shown as an input to the
  17. ;            required register, with the expected register result
  18. ;            shown exiting the register.  For example, the modem
  19. ;            output routine requires the character to send in Acc,
  20. ;            and must not destroy the character.  The routine
  21. ;            documentation shows this as:
  22. ;
  23. ;                Char to Send ==> Acc ==> Unchanged
  24. ;
  25. ;        Status:    Any required status flags will be explicitly listed
  26. ;            after the register input/output conventions.  The
  27. ;            zero flag is represented by Z (set) or NZ (not set),
  28. ;            and carry is represented by C (set) or NC (not set).
  29. ;
  30. ;     Use of Registers: All Registers except the Acc must be preserved unless
  31. ;            the register input/output section explicitly shows
  32. ;            that a particular register is changed.  If a routine
  33. ;            may change a register, the exit condition is shown as
  34. ;            three question marks.  For example, if the character
  35. ;            output routine was allowed to destroy the character,
  36. ;            the documentation would show this as:
  37. ;
  38. ;                Char to Send ==> Acc ==> ???
  39. ;
  40. ;
  41. ;
  42. ;    NOTE:    To separate physical port I/O from the modem management
  43. ;        code, a separate NBYEIO.INC file is included when assembling
  44. ;        NBYE except in the S100 modem card cases.  Any NBYEMDM.INC
  45. ;        files you write should follow this convention.  Please
  46. ;        document the requirements for the associated NBYEIO.INC file
  47. ;        at the top of your NBYEMDM.INC file, so someone with the same
  48. ;        modem but a different I/O card (or computer) can easily adapt
  49. ;        the insert for his system.
  50. ;
  51. ;
  52. ;******************************************************************************
  53. ;
  54. ;
  55. MISTAT:        ;Routine to return the current input status of the modem.
  56.         ;
  57.         ;    ??? ==> Acc ==>    0 if no input ready
  58.         ;            0FFH if a character is ready
  59.         ;
  60.         ;Exit Status:     Z ==> No Input Ready
  61.         ;        NZ ==> An Input Character is Ready
  62.         ;
  63. ;
  64. ;
  65. ;
  66. MOSTAT:        ;Routine to return the current output status of the modem.
  67.         ;
  68.         ;Exit Status:     Z ==> Modem is Not Ready for output
  69.         ;        NZ ==> Modem is Ready for the next output char
  70.         ;
  71. ;
  72. ;
  73. ;
  74. MINP:        ;Routine to input the next character from the modem.  If no
  75.         ;data is currently available, wait until the next character
  76.         ;is received.  If possible, check the USART status for framing,
  77.         ;overrun, or parity errors, and if any are detected clear them
  78.         ;and substitute a null for the errored character.
  79.         ;
  80.         ;    ??? ==> Acc ==> The input character
  81.         ;            (Null if any errors were detected)
  82.         ;
  83.         ;Exit Status:    None
  84.         ;
  85. ;
  86. ;
  87. ;
  88. MOUT:        ;Routine to send a character to the modem.  Be sure the modem
  89.         ;port is ready for the data before sending it.
  90.         ;
  91.         ;    Character to Send ==> Acc ==> Unchanged
  92.         ;
  93.         ;Exit Status:    None
  94.         ;
  95. ;
  96. ;
  97. ;
  98. MINIT:        ;Modem initialization routine.  This routine must:
  99.         ;
  100.         ;    1)  Ensure the modem is on hook.
  101.         ;    2)  Initialize the modem port baud rate as appropriate.
  102.         ;    3)  Set up the modem to desired default parameters.
  103.         ;        (See comments for MRING below)
  104.         ;
  105.         ;This is always the first routine NBYE calls in the
  106.         ;NBYEMDM.INC insert.  It is also called after each telephone
  107.         ;call to hang up and reinitialize the modem.
  108.         ;
  109.         ;Exit Status:    None
  110.         ;
  111. ;
  112. ;
  113. ;
  114. MEXIT:        ;Modem exit routine.  This routine is called when the SYSOP
  115.         ;has elected to exit NBYE.  It should 'shut down' the modem,
  116.         ;returning it to the desired default state.  This is always
  117.         ;the last routine called by NBYE in the NBYEMDM.INC insert.
  118.         ;
  119.         ;Exit Status:    None
  120.         ;
  121. ;
  122. ;
  123. ;
  124. MRING:        ;Modem Ring Check routine.  This routine returns the current
  125.         ;ringing status of the telephone line.  If your modem can't
  126.         ;detect the ring status, then the initialization routine
  127.         ;should set the auto-answer mode for the modem and, when the
  128.         ;modem has answered the phone, MRING should return a Connect
  129.         ;status.
  130.         ;
  131.         ;Exit Status:     Z and NC ==> Telephone Not Ringing
  132.         ;        NZ and NC ==> Telephone Is Ringing
  133.         ;            C ==> Already Connected
  134.         ;
  135. ;
  136. ;
  137. ;
  138. MANSWER:    ;Modem Answer Routine.  This routine must answer the telephone
  139.         ;and wait for the carrier.  The wait time can be whatever you
  140.         ;want, but 30 seconds is suggested as reasonable.  This routine
  141.         ;is not called if MRING returns a connect status; however, it
  142.         ;will be called if NBYE is invoked with a /A or /C option.
  143.         ;
  144.         ;Exit Status:     Z ==> Didn't get a carrier
  145.         ;        NZ ==> Connected with a carrier
  146.         ;
  147. ;
  148. ;
  149. ;
  150. MBAUD:        ;Routine to return the connection baud rate.  If the modem
  151.         ;supports more than one baud rate, this routine should
  152.         ;determine the current baud rate (by waiting for a carriage
  153.         ;return, line feed, ctrl-c, etc.) and return the baud rate
  154.         ;indicator as shown.  If the modem always operates at the
  155.         ;same baud rate, the routine can immediately return with the
  156.         ;appropriate indicator.  If an input is necessary to determine
  157.         ;the baud rate, this routine should wait a limited time
  158.         ;(suggested 5 seconds) and return undetermined status if
  159.         ;no input is received.
  160.         ;
  161.         ;    ??? ==> Acc ==> Baud Rate Indicator
  162.         ;
  163.         ;                0 ==>   110
  164.         ;                1 ==>   300
  165.         ;                2 ==>   450
  166.         ;                3 ==>   600
  167.         ;                4 ==>   710
  168.         ;                5 ==>  1200
  169.         ;                6 ==>  2400
  170.         ;                7 ==>  9600
  171.         ;                8 ==> 19200
  172.         ;
  173.         ;Exit Status:     C ==> Couldn't Determine the Baud Rate
  174.         ;        NC ==> Baud Rate Indicator is Set
  175.         ;
  176. ;
  177. ;
  178. ;
  179. MCARRIER:    ;Carrier Check Routine.  Returns current carrier status.
  180.         ;
  181.         ;Exit Status:     Z ==> No Carrier
  182.         ;        NZ ==> Carrier Active
  183.         ;
  184. ;
  185. ;
  186. ;
  187. DELAY:        ;Routine to delay 1/10 second.  This routine is placed here
  188.         ;because:
  189.         ;         1) It may use some of the modem hardware (PMMI)
  190.         ;
  191.         ;         2) Some modems (e.g. Hayes Smartmodems) provide
  192.         ;        status information via response strings that
  193.         ;        might be missed if we didn't keep polling
  194.         ;        the modem port during delays.  In these
  195.         ;        cases the delay routine can include a poll
  196.         ;        to the modem port and can factor in the poll
  197.         ;        time in the delay loop.
  198.         ;
  199.         ;Exit Status:    None
  200.         ;
  201. ;
  202. ;
  203. ;
  204. KDELAY:        ;Routine to delay 1 millisecond.  This routine is placed in
  205.         ;this insert for the reasons stated at DELAY.
  206.         ;
  207.         ;Exit Status:    None
  208.         ;
  209. ;
  210. ;
  211. ;    ***  End of Required Modem Routines  ***
  212. ;
  213. ;******************************************************************************
  214.