home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol256 / dialog11.doc < prev    next >
Encoding:
Text File  |  1986-03-22  |  7.4 KB  |  225 lines

  1. PROGRAM:    DIALOG
  2.  
  3. WRITTEN BY:    E. VERNON BUCK
  4.         SAN LORENZO, CA.
  5.         (415) 276-4607
  6.  
  7. VERSION:    1.1
  8. DATE:        DEC. 31, 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 PORT TO READ TO TEST FOR TRANSMIT/RECEIVE
  174.          READY
  175. TRDY.MASK% = THE BIT TO TEST FOR TRANSMIT READY (IS SET TO 1)
  176. TRDY.POL% = SET THE SAME BIT AS TRDY.MASK% TO 1 TO REVERSE THE
  177.     POLARITY OF THE TEST (I.E. READY WHEN BIT = 0)
  178. RRDY.MASK%, RRDY.POL% = SAME FOR RECEIVE READY
  179. RERR.PORT% = I/O PORT TO READ TO TEST FOR READ ERRORS
  180. RERR.MASK%, RERR.POL% = BITS TO TEST FOR READ ERRORS (I.E.
  181.     PARITY, FRAME AND/OR OVERRUN), AND POLARITY OF SAME
  182. RES.PORT% = I/O PORT TO RECEIVE THE FOLLOWING RESET BYTE. (SET TO
  183.         -1 IF NO RESET BYTE IS REQUIRED)
  184. RERR.RES% = BYTE TO SEND TO RESET PORT TO RESET UART AFTER
  185.         RECEIPT OF PARITY, FRAME OR OVERRUN ERROR
  186. CARRIER.PORT% = I/O PORT TO READ TO TEST FOR CARRIER PRESENT 
  187. CARRIER.MASK% = THE BIT(S) TO TEST FOR CARRIER PRESENT (E.G. DSR)
  188. CARRIER.POL% = POLARITY OF CARRIER BIT(S)
  189. CC.PREF$ = THE CHARACTER THAT PRECEEDS A CHARACTER TO INDICATE
  190.        THAT THE 2ND CHARACTER IS A CONTROL CHARACTER.
  191.        (I.E. ^M = CTRL-M, WHEN CC.PREF$ = "^")
  192. MAX.TIME = APPROX. TIME OUT TIME. FOR 4MHZ CPU, 1100 ~= 1 SECOND
  193.  
  194. HOW TO PATCH THE .COM FILE:
  195. USING DDT.COM, OR SOME OTHER PATCHING PROGRAM, FIND THE FOLLOWING
  196. DATA STATEMENTS. THEY ARE PREFACED BY THE WORD "PATCH:". THE
  197. STATEMENTS SHOULD BEGIN AROUND 1950HEX IN THE .COM FILE. CHANGE
  198. THE NUMBERS FOLLOWING "PATCH:" TO SUIT YOUR SYSTEM. THEY ARE IN
  199. DECIMAL AND ASCII, AS FOLLOWS:
  200.     (1) THE UART DATA I/O PORT NUMBER
  201.     (2) THE UART TRANSMIT/RECEIVE READY I/O PORT NUMBER
  202.     (3) THE BIT TO TEST FOR TRANSMIT READY
  203.     (4) THE BIT TO BE EXCLUSIVE OR'ED BEFORE TESTING FOR TRANSMIT
  204.     (5) THE BIT TO TEST FOR RECEIVE READY
  205.     (6) THE BIT TO BE EXCLUSIVE OR'ED BEFORE TESTING FOR RECIEVE
  206.     (7) THE I/O PORT TO READ FOR RECEIVE ERRORS
  207.     (8) THE BIT(S) TO TEST FOR RECEIVE ERRORS (PARITY, FRAME
  208.         AND/OR OVERRUN, ETC.)
  209.     (9) THE BIT(S) TO BE EXCLUSIVE OR'ED WITH THE ERROR BITS
  210.         BEFORE TESTING
  211.    (10) THE I/O PORT TO SEND A RESET BYTE TO (-01 IF NONE)
  212.    (11) BYTE TO SEND TO THE RESET PORT TO RESET UART FOLLOWING
  213.         RECEPTION OF A TRANSMISSION ERROR
  214.    (12) THE I/O PORT TO READ FOR CARRIER PRESENT TEST
  215.    (13) THE BIT(S) TO TEST FOR CARRIER ON (I.E., THE DSR LINE)
  216.    (14) THE BIT(S) TO BE EXCLUSIVE OR'ED WITH THE CARRIER ON BIT
  217.         BEFORE TESTING
  218.    (15) THE DEFAULT CHARACTER TO BE A PREFACE FOR CONTROL
  219.         CHARACTERS
  220.    (16) THE TIME OUT COUNTER MAXIMUM
  221.  
  222.     DATA "PATCH:",000,001,001,000,002,000,001,008,000
  223.     DATA 001,055,001,128,000
  224.     DATA "^",066000
  225.