home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / modems / modem / dialog.lbr / DIALOG.DQC / DIALOG.DOC
Encoding:
Text File  |  1987-01-31  |  7.1 KB  |  212 lines

  1. PROGRAM:    DIALOG
  2.  
  3. WRITTEN BY:    E. VERNON BUCK
  4.         SAN LORENZO, CA.
  5.         (415) 276-4607
  6.  
  7. VERSION:    1.0
  8. DATE:        NOV. 13, 1985.
  9.  
  10.     DIALOG IS A PROGRAM WHICH CAN AUTOMATICALLY CONDUCT
  11. A DIALOG WITH A REMOTE COMPUTER, DATABASE SYSTEM, OR BULLETIN
  12. BOARD. DIALOG READS "INSTRUCTIONS" FROM AN "INSTRUCTION FILE".
  13. THIS FILE IS PRODUCED BY ANY EDITOR OR WORD PROCESSOR. THE
  14. INSTRUCTION FILE TELLS THE PROGRAM HOW TO CONDUCT THE "DIALOG"
  15. WITH THE REMOTE (OR "HOST") COMPUTER. THE INSTRUCTIONS TELL
  16. THE PROGRAM WHAT MESSAGES TO SEND, AND WHAT MESSAGES TO RECEIVE
  17. FROM THE HOST. THE PROGRAM HAS ERROR DETECTION, AND CAN ALSO
  18. MAKE SOME SIMPLE DECISIONS (BRANCHING) BASED ON THE CONTENT OF
  19. MESSAGES RECEIVED FROM THE HOST. THE DIALOG IS DISPLAYED ON THE 
  20. TERMINAL AS IT HAPPENS, AND (OPTIONALLY) RECORDED
  21. IN A "LOG" FILE.
  22.  
  23. THE INSTRUCTIONS AVAILABLE ARE AS FOLLOWS:
  24.     S,ccc...c        SEND THE STRING ccc...c TO THE HOST.
  25.                 THE SEND COMMAND EXPECTS THE
  26.                 CHARACTERS TO BE ECHOED BY THE HOST.
  27.  
  28.     T,ccc...c        TRANSMIT THE STRING ccc...c TO THE
  29.                 HOST. IDENTICAL TO THE S COMMAND,
  30.                 EXCEPT DOES NOT EXPECT AN ECHO.
  31.  
  32.     R,ttt...t         RECEIVE A STRING OF CHARACTERS FROM
  33.                 THE HOST UNTIL THE "TERMINATION" STRING
  34.                 ttt...t IS RECEIVED. ANY NUMBER OF
  35.                 CHARACTERS CAN BE RECEIVED BEFORE THE
  36.                 TERMINATION STRING IS ENCOUNTERED, BUT
  37.                 ONLY THE LAST 2000 (ABOUT 1 SCREENFULL)
  38.                 WILL BE RETAINED.
  39.  
  40.     I,ddd...d,n        IF THE LAST RECEIVED CHARACTERS
  41.                 (INCLUDING THE TERMINATION CHARACTERS
  42.                 FROM THE R INSTRUCTION) WERE ddd...d,
  43.                 THEN JUMP TO THE INSTRUCTION LINE
  44.                 LABELED n. n IS A NUMBER FROM
  45.                 1 TO 9999.
  46.  
  47.     G,n            GO TO (JUMP UNCONDITIONALLY) TO THE
  48.                 INSTRUCTION LINE LABELED n.
  49.  
  50.     E,i,n            IF AN ERROR CONDITION OF TYPE i IS
  51.                 DETECTED, THEN GO TO THE
  52.                 INSTRUCTION LINE LABELED n.
  53.                 i CAN BE:
  54.                  "SE" - SEND INSTRUCTION ECHO ERROR
  55.                  "RE" - RECEIVE INSTRUCTION
  56.                         PARITY, FRAME OR OVERRUN ERROR
  57.                  "TO" - TIME OUT
  58.                  "CL" - CARRIER LOST.
  59.                 n = 0 MEANS IGNORE THE ERROR, AND
  60.                 CONTINUE. THIS IS THE DEFAULT.
  61.                 n = -1 ("SE" ONLY) MEANS SEND A
  62.                 BACKSPACE AND REPEAT THE ERRONEOUS
  63.                 CHARACTER
  64.  
  65.     L,lll            CONTROL THE AMOUNT OF INFORMATION TO
  66.                 BE SAVED IN THE LOG FILE:
  67.                 lll=ON -- SAVE RECEIVED DATA ONLY
  68.                 lll=OFF-- SAVE NOTHING
  69.                 lll=ALL-- SAVE BOTH TRANSMITTED AND
  70.                       RECEIVED DATA (DEFAULT)
  71.  
  72.     D,ddd            CONTROLS WHETHER THE DIALOG WILL BE
  73.                 DISPLAYED ON THE TERMINAL AS IT
  74.                 HAPPENS:
  75.                 ddd=OFF -- NOT DISPLAYED ON TERMINAL
  76.                 ddd=ON  -- DISPLAYED ON TERMINAL
  77.                        (DEFAULT)
  78.  
  79.     C,p            MAKE p THE CONTROL CHARACTER PREFACE
  80.                 FOR THE INSTRUCTION LINES THAT FOLLOW.
  81.                 I.E., ^M WOULD BE TRANSMITTED AS A
  82.                 CTRL-M    WHEN p="^". DEFAULT IS "^".
  83.                 THE C INSTRUCTION IS NON-EXECUTABLE.
  84.                 THAT IS, IT OPERATES ON THE INSTRUC-
  85.                 TIONS AS THEY ARE COMPILED, BUT NOT
  86.                 AS EXECUTED (SINCE INSTRUCTIONS
  87.                 MIGHT BE EXECUTED IN A DIFFERENT
  88.                 ORDER).
  89.  
  90.     X            EXIT. CLOSE FILES AND RETURN TO CP/M.
  91.  
  92. INSTRUCTIONS CAN BE PRECEEDED BY A "LABEL NUMBER". THIS IS LIKE A
  93. LINE NUMBER IN BASIC OR FORTRAN. IT IS OPTIONAL. BUT OF COURSE, IF
  94. THERE IS AN I, G OR E INSTRUCTION ANYWHERE IN THE INSTRUCTIONS,
  95. THEN THERE MUST BE A LABELED INSTRUCTION WHICH MATCHES THE
  96. LABELS GIVEN IN THE I, G OR E INSTRUCTION. EXAMPLE:
  97. 100,S,hello^M
  98.     ...
  99.     G,100
  100.  
  101. NOTES:    (1) ALL INSTRUCTION PARAMETERS MUST BE SEPARATED BY COMMAS.
  102.     (2) IF A COMMA IS NEEDED IN A CHARACTER STRING, THEN
  103.         SURROUND THE STRING WITH QUOTES ("...").
  104.     (3) LEADING BLANKS ARE IGNORED, UNLESS THE STRING IS QUOTED.
  105.     (4) DO NOT USE TAB CHARACTERS (CTRL-I) TO INDENT.
  106.         USE SPACES.
  107.  
  108. FOLLOWING IS A SAMPLE INSTRUCTION FILE.  THIS SET OF INSTRUCTIONS
  109. WAS DESIGNED TO LOG ON TO A COMMERCIAL DATA BASE SYSTEM (I.E.
  110. COMPUSERVE), JUMP TO THE FINANCIAL SECTION OF THE SERVICE, GET
  111. QUOTATIONS ON SEVERAL SECURITIES, AND THEN LOG OFF. THERE IS
  112. ALSO PROVISION FOR ERROR RECOVERY.
  113.  
  114.      E,SE,-1
  115.      E,TO,100
  116.      E,CL,200
  117.      T,^M
  118.      E,RE,500
  119.    5,R,": "
  120.      I,"Name: ",10
  121.      I,"ID: ",20
  122.      I,"Password: ",30
  123.   10,S,CIS^M
  124.      G,5
  125.   20,S,"00000,9999^M"
  126.      G,5
  127.   30,T,MY+PASSWORD^M
  128.      E,RE,510
  129.   35,T,^C
  130.   40,R,!
  131.   60,S,GO MQINT^M
  132.      E,RE,560
  133.   70,R,"Interface: "
  134.   80,S,"DATE^M"
  135.      R,"Interface: "
  136.      S,100^M
  137.      R,:
  138.      S,"FNI,VWESGX,LMVTX^M"
  139.   90,R,:
  140.      S,^M
  141.      R,"Interface: "
  142.  100,S,OFF^M
  143.      T,^C
  144.  200,X
  145.  500,T,^M
  146.      G,5
  147.  510,T,T^M
  148.      G,40
  149.  560,T,^M
  150.      G,70
  151.  
  152.  
  153.  
  154. TO INVOKE THE PROGRAM, TYPE
  155.     DIALOG insfile.dlg logfile.log
  156. WHERE insfile.dlg IS THE FILE CONTAINING THE INSTRUCTIONS, AND
  157. logfile.log IS THE LOG FILE (TO BE WRITTEN BY DIALOG). THE LOG
  158. FILE IS OPTIONAL AND CAN SIMPLY BE OMITTED. THERE ARE NO DEFAULT
  159. FILE NAMES OR EXTENSIONS. REPLACING logfile.log WITH A QUESTION
  160. MARK WILL CAUSE THE INSTRUCTION FILE TO BE COMPILED, BUT NOT
  161. EXECUTED, FOR TESTING PURPOSES.
  162.  
  163. DIALOG IS WRITTEN FOR COMPILATION WITH BASCOM BY MICROSOFT. THE
  164. DISTRIBUTED VERSION IS SET UP FOR I/O USING A TYPE 8251 USART,
  165. AT PORTS 00 AND 01. THE PROGRAM WILL MOST LIKELY HAVE TO BE
  166. MODIFIED FOR PARTICULAR SYSTEMS.  IF YOU HAVE BASCOM AVAILABLE,
  167. THIS SHOULD BE EASY.  IF NOT, IT MAY BE POSSIBLE TO PATCH THE
  168. DIALOG.COM FILE AS DESCRIBED BELOW.
  169.  
  170.  
  171. PATCH AREA CONSTANTS:
  172. DATA.PORT% = I/O DATA PORT FOR MODEM
  173. CTRL.PORT% = I/O STATUS & CONTROL PORT FOR MODEM
  174. TRDY.MASK% = THE BIT TO TEST FOR TRANSMIT READY IS SET TO 1
  175. TRDY.POL% = SET THE SAME BIT AS TRDY.MASK% TO 1 TO REVERSE THE
  176.     POLARITY OF THE TEST (I.E. READY WHEN BIT = 0)
  177. RRDY.MASK%, RRDY.POL% = SAME FOR RECEIVE READY
  178. RERR.MASK%, RERR.POL% = BITS TO TEST FOR READ ERRORS (I.E.
  179.     PARITY, FRAME AND/OR OVERRUN), AND POLARITY OF SAME
  180. RERR.RES% = BYTE TO SEND TO CONTROL PORT TO RESET IT AFTER
  181.         RECEIPT OF PARITY, FRAME OR OVERRUN ERROR 
  182. CARRIER.MASK% = THE BIT(S) TO TEST FOR CARRIER PRESENT (E.G. DSR)
  183. CARRIER.POL% = POLARITY OF CARRIER BIT(S)
  184. CC.PREF$ = THE CHARACTER THAT PRECEEDS A CHARACTER TO INDICATE
  185.        THAT THE 2ND CHARACTER IS A CONTROL CHARACTER.
  186.        (I.E. ^M = CTRL-M, WHEN CC.PREF$ = "^")
  187. MAX.TIME = APPROX. TIME OUT TIME. FOR 4MHZ CPU, 1100 ~= 1 SECOND
  188.  
  189. HOW TO PATCH THE .COM FILE:
  190. USING DDT.COM, OR SOME OTHER PATCHING PROGRAM, FIND THE FOLLOWING
  191. DATA STATEMENTS. THEY ARE PREFACED BY THE WORD "PATCH:". CHANGE
  192. THE NUMBERS FOLLOWING "PATCH:" TO SUIT YOUR SYSTEM. THEY ARE IN
  193. DECIMAL AND ASCII, AS FOLLOWS:
  194.     (1) THE MODEM DATA I/O PORT NUMBER
  195.     (2) THE MODEM CONTROL I/O PORT NUMBER
  196.     (3) THE BIT TO TEST FOR TRANSMIT READY
  197.     (4) THE BIT TO BE EXCLUSIVE OR'ED BEFORE TESTING FOR TRANSMIT
  198.     (5) THE BIT TO TEST FOR RECEIVE READY
  199.     (6) THE BIT TO BE EXCLUSIVE OR'ED BEFORE TESTING FOR RECIEVE
  200.     (7) THE BIT(S) TO TEST FOR RECEIVE ERRORS (PARITY, FRAME
  201.         AND/OR OVERRUN, ETC.)
  202.     (8) THE BIT(S) TO BE EXCLUSIVE OR'ED WITH THE ERROR BITS
  203.         BEFORE TESTING
  204.     (9) BYTE TO SEND TO THE CONTROL PORT TO RESET IT FOLLOWING
  205.         RECEPTION OF A TRANSMISSION ERROR
  206.    (10) THE BIT(S) TO TEST FOR CARRIER ON (I.E., THE DSR LINE)
  207.    (11) THE BIT(S) TO BE EXCLUSIVE OR'ED WITH THE CARRIER ON BIT
  208.         BEFORE TESTING
  209.    (12) THE DEFAULT CHARACTER TO BE A PREFACE FOR CONTROL
  210.         CHARACTERS
  211.    (13) THE TIME OUT COUNTER MAXIMUM
  212.