home *** CD-ROM | disk | FTP | other *** search
/ Telecom / 1996-04-telecom-walnutcreek.iso / minitel / mt.doc < prev    next >
Text File  |  1989-12-12  |  82KB  |  2,024 lines

  1.                Minitel/PC V2.3 Technical Documentation
  2.  
  3. The following documents version 2.3 of Minitel Services Company's
  4. Minitel/PC terminal emulator.  This software allows your IBM or IBM-
  5. compatible PC to imitate a Minitel or TTY terminal.
  6.  
  7. This document is divided into the following sections.
  8.  
  9.         Section 1.0     - Hardware and Operating System
  10.                           Requirements
  11.         Section 2.0     - Installing Minitel/PC
  12.         Section 3.0     - How to run Minitel/PC
  13.         Section 4.0     - Minitel/PC Commands
  14.  
  15.         Appendix A      - Command Line Parameters
  16.         Appendix B      - Files distributed with Minitel/PC
  17.         Appendix C      - Configuration Parameters
  18.         Appendix D      - Keyboard Mapping
  19.         Appendix E      - Script Language Description
  20.         Appendix F      - Entering Control Characters
  21.         Appendix G      - Use of the Minitel Function Keys
  22.         Appendix H      - Error Messages
  23.         Appendix I      - Printing the screen
  24.         Appendix J      - Modem switch settings
  25.         Appendix K      - Version Differences
  26.         Appendix L      - Differences from a real Minitel
  27.  
  28.  
  29. 1.0     Hardware and Operating System Requirements
  30.         ------------------------------------------
  31.  
  32. The following minimum hardware configuration is necessary to run
  33. Minitel/PC:
  34.  
  35.         - 192K RAM (emulator needs 128K bytes of free memory)
  36.         - MDA, CGA, EGA, VGA or Hercules video display adaptor
  37.         - One 5.25 or 3.5 inch floppy disk drive with a capacity
  38.           of 360K or more.
  39.  
  40. Minitel/PC requires MS or PC-DOS version 2.0 or higher.
  41.  
  42.  
  43. 2.0     Installing Minitel/PC
  44.         ---------------------
  45.  
  46. The specific steps you must take to install Minitel/PC depend on whether
  47. you received it on a Getting Started Diskette or whether you downloaded
  48. it from a bulletin board.  If you downloaded Minitel/PC from a bulletin
  49. board, proceed with section 2.1, otherwise skip to section 2.2.
  50.  
  51. 2.1     Minitel/PC Downloaded from a Bulletin Board
  52.  
  53. The file you downloaded from the bulletin board is a self-unpacking
  54. archive containing Minitel/PC and its documentation.  The best way to
  55. proceed is to create a Getting Started diskette from this archive.  To do
  56. this follow these steps:
  57.  
  58. i) Obtain a blank formatted floppy diskette.  If you have a system with
  59. two floppy disk drives, insert this diskette in drive B:, otherwise save
  60. this diskette until you are prompted with:
  61.  
  62.     "Insert diskette for drive B:"
  63.  
  64. ii) Put the diskette containing the archive in drive A:, then type the
  65. following commands:
  66.  
  67.         a: [Enter]
  68.         rename ARCHIVE_NAME runme.exe [Enter]
  69.         b: [Enter]
  70.         a:runme [Enter]
  71.  
  72. iii) If you have a single-drive system, insert the diskette containing
  73. the archive when prompted with "Insert diskette for drive A:" and insert
  74. the blank formatted diskette when prompted with "Insert diskette for
  75. drive B:".
  76.  
  77. Now that you have created a Getting Started diskette, you can proceed to
  78. section 2.2.
  79.  
  80. 2.2     Minitel/PC Received on a Getting Started Diskette
  81.  
  82. To install Minitel/PC from a Getting Started diskette, put the diskette
  83. in drive A:, set the default drive to A:, then type 'install', and just
  84. follow the instructions.  INSTALL will prompt you for information such as
  85. your modem type, display type, and the drive and directory in which you
  86. want Minitel/PC installed.
  87.  
  88. The installation program creates a configuration file (mt.cfg) and copies
  89. the emulator to the installation drive/directory.  The configuration file
  90. contains hardware-specific parameters for your machine such as display
  91. adaptor type, communication port, and modem speed.  See Appendix C for a
  92. complete description of all configuration file parameters.
  93.  
  94.  
  95. 3.0     How to Run Minitel/PC
  96.         ---------------------
  97.  
  98. Once Minitel/PC has been installed, you can run it by performing the
  99. following steps.
  100.  
  101. If you installed Minitel/PC on a floppy disk:
  102.  
  103. i)   Insert the Minitel/PC Program diskette in drive A:
  104.  
  105. ii)  Log to the A: drive by typing:
  106.  
  107.         a: [Enter]
  108.  
  109. iii) Start the program by typing:
  110.  
  111.         mt [Enter]
  112.  
  113. If you installed Minitel/PC on a hard disk, type the following commands:
  114.  
  115.         c: [Enter]         (if installed on drive C:)
  116.         cd\mt [Enter]      (if installed in \mt subdirectory)
  117.         mt [Enter]
  118.  
  119. A real Minitel terminal contains nine special keys (called function keys)
  120. that are not on the PC keyboard.  The nine keys are labelled INDEX,
  121. CANCEL, PREVIOUS, REPEAT, GUIDE, CORRECTION, NEXT, SEND, and LOCAL/LINE.
  122. Since these keys are not available on the PC keyboard, the function keys
  123. on the PC keyboard (labelled F1 to F9) are used as replacements.  Some of
  124. the Minitel special keys have more than one replacement on the PC
  125. keyboard.  For example, if an application asks you to press the SEND key,
  126. you can press either F8 or the ENTER key.  The following table shows the
  127. mapping of the Minitel function keys to their equivalents on the PC
  128. keyboard:
  129.  
  130.     English Minitel                             French Minitel
  131.     Key Label        PC Equivalent(s)           Key Label
  132.     ---------------  -------------------------  --------------
  133.     INDEX            F1 or HOME                 SOMMAIRE
  134.     CANCEL           F2 or DEL                  ANNULATION
  135.     PREVIOUS         F3 or PGUP or SHIFT TAB    RETOUR
  136.     REPEAT           F4 or INS                  REPETITION
  137.     GUIDE            F5 or END                  GUIDE
  138.     CORRECTION       F6 or BKSP                 CORRECTION
  139.     NEXT             F7 or PGDN or TAB          SUITE
  140.     SEND             F8 or ENTER                ENVOI
  141.     LOCAL LINE       F9                         CONNEXION FIN
  142.  
  143. From within Minitel/PC, you can press the PC key labelled F10 to get a
  144. help menu showing the above Minitel function key mapping.  The help menu
  145. also displays a listing of the following important commands that control
  146. your link with the network:
  147.  
  148.      Logon to Network           SHIFT-F1
  149.      Change Service             SHIFT-F2
  150.      Logoff Network then Quit   SHIFT-F3
  151.  
  152. See Appendix D for the complete mapping of the Minitel keyboard to the PC
  153. keyboard.
  154.  
  155. The most commonly used Minitel function keys are SEND, which is used like
  156. ENTER (or Carriage Return) on a normal terminal, CORRECTION, which allows
  157. you to correct your typing errors, and GUIDE, which is used to request
  158. help from the service you are using.  See Appendix G for a more complete
  159. description of the uses of the Minitel function keys.
  160.  
  161. As shown in the above table, Minitel/PC uses the ENTER (carriage return)
  162. key and the BACKSPACE key to emulate the Minitel SEND and CORRECTION keys
  163. respectively.  When using Minitel/PC it is sometimes necessary to send a
  164. real carriage return or a real backspace, for example when issuing
  165. commands to your modem or a network.  Commands to your modem must be
  166. followed by a carriage return and not a Minitel SEND.  Corrections to
  167. errors in modem commands must be made with a backspace and not a Minitel
  168. CORRECTION.  The following table shows the Minitel/PC key combinations
  169. that are used to send real carriage returns and backspaces:
  170.  
  171.     To send real carriage return: [Ctrl-Enter] (i.e. hold down the
  172.                                   [Ctrl] key and press [Enter])
  173.                                   or [Ctrl-m]
  174.     To send a real backspace    : [Ctrl-Backspace] (i.e. hold down the
  175.                                   [Ctrl] key and press [Backspace])
  176.                                   or [Ctrl-h]
  177.  
  178. Minitel/PC displays certain status information on the upper right hand
  179. corner of the screen.  In column 39 of the top row of the screen, a
  180. reverse video 'C' is displayed once a connection is made to the network
  181. (i.e. when the DCD signal is high), and a reverse video 'L' is displayed
  182. when there is no connection to the network (i.e. when the DCD signal is
  183. low).  This indicator may not be correct if you do not have a proper
  184. cable between your PC and modem or if your modem switch settings are not
  185. correct (see Appendix J for more details on modem switch settings).  A
  186. reverse video 'M' is displayed in column 40 of the top row of the screen
  187. while a script language program is running.  Script language programs can
  188. be stopped prematurely by pressing the [ESC] key (see Appendix E for more
  189. details on script language programs).
  190.  
  191.  
  192. 4.0     Minitel/PC Commands
  193.         -------------------
  194.  
  195. Minitel/PC commands of the form [ALT-letter] are issued by holding down
  196. the [ALT] key and pressing the 'letter'.  For example, the command [ALT-
  197. x] means hold down the [ALT] key and press the [x] key.  Commands of the
  198. form [SHIFT-Fx] are issued by holding down the [SHIFT] key and pressing
  199. the key labelled [Fx].
  200.  
  201. 4.1     Send Break Signal [ALT-b]
  202.  
  203. This command sends a break signal to the remote system.  A BREAK is
  204. usually not necessary when communicating with videotex systems.  On some
  205. data switches and modem pools, a BREAK is used for a local attention.
  206.  
  207. The length of the break sent is specified by the BREAK_LEN configuration
  208. parameter.  The value in the BREAK_LEN parameter is rounded up to the
  209. nearest multiple of 55 milliseconds (this is the default granularity of
  210. the PC clock interrupts).
  211.  
  212. 4.2     Exit Minitel/PC without disconnecting [ALT-e]
  213.  
  214. This command allows you to exit to DOS from Minitel/PC without
  215. disconnecting from Minitel.
  216.  
  217. 4.3     Disconnect and exit Minitel/PC [ALT-q]
  218.  
  219. This command drops the line and then terminates execution of the
  220. Minitel/PC. For HAYES modems the line is dropped by first sending three
  221. plus signs (+++) to go into local mode and then issuing the ATH
  222. command. For other types of modems the line is dropped by dropping
  223. the RS232 DTR signal. In Minitel mode a LOCAL LINE key is sent prior
  224. to dropping the line to disconnect from the current service.
  225.  
  226. During Minitel emulation the program function key SHIFT F3 is set by
  227. default to perform the same function as [ALT][q].
  228.  
  229. 4.4     Program Function Keys [SHIFT-F1] -> [SHIFT-F10]
  230.  
  231. The program function keys can be used to extend the functionality of
  232. Minitel/PC by adding your own commands.  A program function key can be
  233. used to execute a script language program (see Appendix E for
  234. instructions on writing your own script language programs) or to cause a
  235. predefined series of characters to be sent to the remote system as if
  236. they had been typed at the keyboard.  See Section C.5 (Appendix C,
  237. Section 5) for a description of how to assign values to function keys.
  238.  
  239. During Minitel emulation the program function keys [SHIFT-F1] through
  240. [SHIFT-F4] are set by default to perform the following functions
  241.  
  242.    [SHIFT-F1]   - LOGON TO NETWORK
  243.  
  244.                   Automatically dial and log on to the Minitel kiosk.
  245.                   This is normally the first command that you will
  246.                   issue after starting Minitel/PC.
  247.  
  248.    [SHIFT-F2]   - CHANGE SERVICE
  249.  
  250.                   When connected to a service this command can be
  251.                   used to return you to the Minitel kisok so that
  252.                   you can select a new service.
  253.  
  254.    [SHIFT-F3]   - LOGOFF NETWORK then QUIT
  255.  
  256.                   This command disconnects you from the current
  257.                   service, drops the line and returns you to DOS.
  258.  
  259.    [SHIFT-F4]   - NETWORK LOGON
  260.  
  261.                   If you have an auto-dial modem that does not
  262.                   work with [SHIFT-F1], you can manually instruct
  263.                   your modem to dial and then issue this command to
  264.                   logon to the Minitel kiosk.
  265.  
  266. It is possible for these commands to fail for a number of reasons,
  267. including a bad communication line, a service not available, or network
  268. failure.  See Appendix H (Error Messages) for a list of possible errors
  269. and instructions on how to recover in case of an error.
  270.  
  271. The remaining program function keys [SHIFT-F5] through [SHIFT-F10] can be
  272. used to add your own commands to Minitel/PC.  The command [ALT-f] can be
  273. used to display the current settings of the program function keys.
  274. During TTY emulation all ten program function keys are available to add
  275. new commands.
  276.  
  277. 4.5     Display Help Menu [F10] or [ALT-h]
  278.  
  279. This command displays a menu containing the Minitel function keys and the
  280. most often used Minitel/PC commands.  To leave the menu you can either
  281. press the [ESC] key or execute one of the commands on the menu.
  282.  
  283. 4.6     Program Function Key Menu [ALT-m]
  284.  
  285. This command displays a menu containing all of the program function key
  286. settings.  To leave the menu you can either press one of the program
  287. function keys (to run the key) or press [ESC] to leave the menu without
  288. running a program function key.
  289.  
  290. 4.7     Save screen to disk [ALT-s]
  291.  
  292. This command causes the contents of the screen to be saved to a disk
  293. file. After entering this command you will be prompted with:
  294.  
  295.         Enter file name:
  296.  
  297. In response to this prompt enter the name of the DOS file in which you
  298. would like the screen to be saved.  If the file that you enter already
  299. exists, you will be prompted with:
  300.  
  301.         File xxxx
  302.         already exists. Overwrite ? (y/n)
  303.  
  304. Answering 'y' to this prompt will cause the original file to be
  305. overwritten.
  306.  
  307. 4.8     Load screen from disk [ALT-l]
  308.  
  309. This command is used to display screens that were saved with the [ALT-s]
  310. command.  After entering this command you will be prompted with:
  311.  
  312.         Enter file name:
  313.  
  314. In response to this prompt, enter the name of the DOS file that contains
  315. the screen you would like displayed.
  316.  
  317. 4.9     Switch to TTY/Minitel mode [ALT-o]
  318.  
  319. This command is used to toggle Minitel/PC between Minitel emulation
  320. mode and TTY emulation mode.  The default mode of operation is
  321. 'Minitel emulation mode'.
  322.  
  323. 4.10    Print Text [Shift-PrtSc]
  324.  
  325. This command causes the current screen (text only) to be sent to the
  326. printer.  This command does not print graphics.
  327.  
  328. 4.11    Dial [ALT-d]
  329.  
  330. This command causes Minitel/PC to run the logon script (logon.mto).
  331. The command [ALT-d] is the same as the default setting of [SHIFT-F1].
  332.  
  333. 4.12    XMODEM File Transfer [ALT-f]
  334.  
  335. Use this command to send or receive a file using XMODEM protocol.
  336. This command only works during TTY emulation mode.  After entering
  337. this command you will be prompted with:
  338.  
  339.         PRESS [R] to receive File using XMODEM
  340.         PRESS [S] to send File using XMODEM
  341.         PRESS [ESC] to exit
  342.  
  343. At this point you can press the 'R' key to receive a file, the 'S'
  344. key to send a file, or press the ESC key if you decide not to
  345. transfer a file.
  346.  
  347. If you press the 'R' or 'S' keys you will be prompted with:
  348.  
  349.         ENTER FILE NAME (Leave blank to exit):
  350.  
  351. If you are receiving a file enter the name that you want the file to
  352. be called on your local PC. If you are sending a file enter the name
  353. of the file that you want to send. If you decide that you do not want
  354. to transfer a file after all, hit ENTER without typing in a file
  355. name.
  356.  
  357.  
  358. If you have read sections 1 through 4, you now know all you need to know
  359. to use Minitel/PC.  The appendices describe advanced information and
  360. features that are not required during normal use.
  361.  
  362.  
  363. APPENDIX A      Command Line Parameters
  364.                 -----------------------
  365.  
  366. During startup, Minitel/PC reads the contents of the file MT.CFG to
  367. determine hardware-specific information and obtain function key and
  368. terminal settings (See Appendix C for a complete description of the
  369. configuration file).
  370.  
  371. It is possible to have more than one configuration file.  This is useful
  372. if you routinely access more than one service and you need to have
  373. different configuration parameters for each.  To create a new
  374. configuration file, use the DOS copy command to create a copy of the
  375. default configuration file (MT.CFG), then use a text editor such as EDLIN
  376. to change the parameters to the values required by the new system.
  377.  
  378. Example:
  379.  
  380.         C>copy mt.cfg newconf.cfg       <- make a copy of mt.cfg
  381.         C>edlin newconf.cfg             <- change parameter values
  382.         C>mt newconf                    <- invoke Minitel/PC using
  383.                                            the new configuration file
  384.  
  385. In this example we created a new configuration file called 'NEWCONF.CFG'
  386. and invoked Minitel/PC with the new configuration.  Note that on the
  387. command line we typed 'mt newconf' rather than 'mt newconf.cfg'.  If you
  388. do not specify an extension on the configuration file name then
  389. Minitel/PC automatically appends a '.CFG'.
  390.  
  391. Some configuration parameters can be temporarily changed using command
  392. line options. For example suppose that our configuration file
  393. 'MT.CFG' specifies that COM1: is to be used for communications and
  394. we want to use COM2: for this session. This can be done with the
  395. following command.
  396.  
  397.         mt /c2
  398.  
  399. The above command will start Minitel/PC using COM2: for
  400. communications.  This change only affects the one session. The next
  401. time you invoke Minitel/PC it will use COM1: for communications
  402. (unless of course you use the /c2 option again).
  403.  
  404. The backslash in parameter tells Minitel/PC that you are specifying a
  405. command line option and not a configuration file name.  The 'c' specifies
  406. that we want to change the communications port, and the '2' says that we
  407. want to change the communications port to COM2:.  Command line parameters
  408. can also be used in combination with a configuration file name.  In the
  409. following example, the configuration file 'NEWCONF.CFG' is used instead
  410. of 'MT.CFG'.
  411.  
  412.         mt newconf /c2
  413.  
  414. The general form of all command line options is:
  415.  
  416.         backslash single_character_option option_parameter
  417.  
  418. No spaces are allowed between the single_character_option and the
  419. option_parameter.  Not all options have an option parameter.  Either
  420. upper or lower case can be specified for both the option name and
  421. parameter.  The following table lists all the available command line
  422. options and the valid parameter values for each.
  423.  
  424.         Equivalent
  425.         Config file
  426. Option  Parameter        Description
  427. ------  -----------      -----------
  428. c       COMMPORT         Set communications port
  429.                          Valid parameter values are 1 and 2
  430. b       SPEED            Set line speed in bits per second
  431.                          Valid parameter values are:
  432.                              300,1200,2400,4800,9600,19200
  433. p       PARITY           Set the character parity type.
  434.                          Valid param values are o,e,n,m,s,
  435.                          where o=ODD,e=EVEN,n=NONE,m=MARK,s=SPACE
  436. d       DATABITS         Set the number of data bits per character.
  437.                          Valid parameter values are 7 and 8.
  438. s       STOPBITS         Set the number of stop bits per character.
  439.                          Valid parameter values are 1 and 2.
  440. a       DISPLAY_ADAPTOR  Specify display adaptor type.
  441.                          Valid parameter values are H,C,E,M,
  442.                          where H=Hercules,C=CGA,E=EGA,M=MDA.
  443. e       EMULATION        Specifies the type of terminal to be
  444.                          emulated.  Valid parameter values are
  445.                          T and M, where T=TTY and M=Minitel.
  446. m       <none>           Specifies the name of a script (macro)
  447.                          language program to run after startup.
  448. n       PHONE            Specifies a telephone number to use
  449.                          when dialing.
  450. x       X3_MODE          Specifies whether X.3 PAD compatibility
  451.                          is to be used.  0=NO and 1=YES.
  452. ?                        Causes this table to be printed at the
  453.                          terminal.  This option has no parameters.
  454.  
  455. More than one command line parameter can be specified when starting
  456. Minitel/PC. The syntax of the Minitel/PC command line is:
  457.  
  458.     mt config_file_name /c* /b* /p* /d* /s* /a* /e* /m* /x* /n /?
  459.  
  460. Notes:
  461.  
  462. The '*' denotes the position of the option parameter.  Command line
  463. options can be specified in any order.  The configuration file name(s)
  464. can also appear after or between command line options.  If more than one
  465. configuration file is named on the command line, they are read in the
  466. order specified, and only the last one is updated to reflect any changes.
  467. Having more than one configuration file allows you to separate the
  468. different types of parameters into separate configuration files.  For
  469. example, you may wish to put the communications parameters in one file
  470. and the program function key settings in another.
  471.  
  472. Examples:
  473.  
  474. In this example, we start Minitel/PC using the configuration file
  475. 'XXX.CFG' and specify that the line speed is to be changed to 2400 bps
  476. (bits per second) and the display adaptor is to be changed to EGA.
  477.  
  478.         mt xxx /b2400 /ae
  479.  
  480. The following example is the same as the first except that we specify two
  481. configuration file names.
  482.  
  483.         mt origconf newconf /b2400 /ae
  484.  
  485.  
  486. APPENDIX B      Files distributed with Minitel/PC
  487.                 ---------------------------------
  488.  
  489. The following files are distributed with Minitel/PC:
  490.  
  491. MT.EXE       - The MINITEL/PC main program
  492. CGA.FNT      - Data file containing character font descriptions
  493.                for the CGA display adaptor (only necessary
  494.                when using a CGA display adaptor)
  495. EGA.FNT      - Data file containing character font descriptions
  496.                for the EGA display adaptor (only necessary
  497.                when using a EGA display adaptor)
  498. HERCULES.FNT - Data file containing character font descriptions
  499.                for the HERCULES display adaptor (only necessary
  500.                when using a HERCULES display adaptor)
  501. MT.DOC       - The file you are now reading.
  502. INSTALL.EXE  - Minitel/PC installation program.
  503. PHONE.DAT    - Minitel Services Company telephone access listing
  504.                (used by INSTALL)
  505. MTINST.FIL   - Emulator file list (used by INSTALL)
  506. MTC.EXE      - Script Language Compiler
  507. LOGON.MTO    - Script language program to dial and logon to the
  508.                Minitel kiosk (needed by the [SHIFT-F1] command)
  509. LOGON.MT     - Source code for the above program
  510. CHANGESE.MTO - Script language program which causes a disconnect
  511.                from the current service and returns you to the kiosk
  512.                so you can select a new service (needed by the
  513.                [SHIFT-F2] command)
  514. CHANGESE.MT  - Source code for the above program
  515. NETLOGON.MTO - Script language program to that logs on to the Minitel
  516.                service kiosk (needed by the [SHIFT-F1], [SHIFT-F2],
  517.                and [SHIFT-F4] commands)
  518. NETLOGON.MT  - Source code for the above program
  519.  
  520.  
  521. APPENDIX C      Configuration parameters
  522.                 ------------------------
  523.  
  524. This section describes the parameters in the Minitel/PC configuration
  525. file (MT.CFG).  The configuration file contains one parameter per line.
  526. Lines are separated by CR/LF pairs.  All lines have the following format:
  527.  
  528.         parameter_name=parameter_value
  529.  
  530. The equal sign (ASCII 3D) separates the parameter name from its value.
  531. Control characters can be specified in the parameter value by using a
  532. circumflex (^) followed by another character.  For example ^M (control M)
  533. can be used to specify a carriage return.  Two circumflexes in a row can
  534. be used to specify a circumflex.  See Appendix F for a detailed
  535. discussion on entering control characters in a string.
  536.  
  537. The following table describes all of the configuration parameters that
  538. are implemented in this version of Minitel/PC:
  539.  
  540. C.1)    Modem Paramters
  541.  
  542. Parameter Name      Type    Description
  543. --------------      ----    -----------
  544. MODEM               int     Describes the type of modem. Valid
  545.                             values are:
  546.                                 0 = HAYES300
  547.                                 2 = HAYES1200
  548.                                 3 = HAYES1200B
  549.                                 4 = HAYES2400
  550.                                 5 = HAYES2400B
  551.                                 6 = MANUAL
  552.                                 7 = DIRECT
  553.                                 8 = OTHER
  554.  
  555. MODEM_INIT          char    String that must be sent to initialize
  556.                             the modem (if any)
  557.  
  558. MODEM_RESPONSE      char    String that the modem sends in response
  559.                             to an initialization command.
  560.  
  561. MODEM_DIAL_PREFIX   char    String that must prefix the telephone
  562.                             number in a dial command
  563.  
  564. MODEM_DIAL_SUFFIX   char    String that must follow the telephone
  565.                             number in a dial command
  566.  
  567. MODEM_SUCCESS       char    Specifies a successful response to a
  568.                             modem dial request. There can be more
  569.                             than one of these parameters present if
  570.                             there are multiple success responses
  571.                             (maximum of ten).
  572.  
  573. MODEM_FAILURE       char    Specifies a failure response to a modem
  574.                             dial request. There can be more than one
  575.                             of these parameters present if there
  576.                             are multiple failure responses
  577.                             (maximum of ten).
  578.  
  579.  
  580. C.2)    User Information
  581.  
  582. Parameter Name      Type    Description
  583. --------------      ----    -----------
  584. PHONE               char    Telephone number of nearest Minitel
  585.                             Services Company access point
  586. USERID              char    Minitel User ID
  587. PASSWORD            char    Minitel Password
  588. SERVICE             char    A standard Minitel Service Code.
  589.                             If this parameter is present, the
  590.                             [Shift-F1] auto-logon procedure will
  591.                             automatically connect to the specified
  592.                             service, as if the Service Code had
  593.                             entered at the Minitel broadcast screen.
  594.  
  595.  
  596. C.3)    Communication Parameters
  597.  
  598. Parameter Name      Type    Description
  599. --------------      ----    -----------
  600. COMMPORT            int     Number of the port to use for
  601.                             communications (1=COM1, 2=COM2, etc)
  602.  
  603. SPEED               int     Communications speed in bits per second
  604.                             (one of 300, 1200, 2400, 4800, 9600,
  605.                             19200)
  606.  
  607. PARITY              char    Parity (one of O,E,N,M,S = ODD, EVEN,
  608.                             NONE, MARK, SPACE respectively)
  609.  
  610. DATABITS            int     Data Bits (either 7 or 8)
  611.  
  612. STOPBITS            int     Stop Bits (either 1 or 2)
  613.  
  614. BREAK_LEN           int     Duration of BREAK signal in milliseconds
  615.                             (a break signal can be sent with the
  616.                             [ALT-b] command)
  617.  
  618. CARRIER_DETECTABLE  int     This parameter informs the emulator
  619.                             if the presence of carrier is
  620.                             detectable by looking at the state of
  621.                             the RS232 CD pin. In some cases the
  622.                             carrier is not detectable because the
  623.                             modem keeps this signal high or the
  624.                             pin is missing from the cable that
  625.                             connects the modem to the PC.
  626.  
  627. FLOWCONTROL         int     This parameter can have one of the
  628.                             following values.
  629.                                 0 = NONE
  630.                                 1 = XON/XOFF (TTY emulation only)
  631.                                 2 = CTS/RTS hardware protocol
  632.                             (XON/XOFF protocol should not be used
  633.                              during Minitel emulation)
  634.  
  635. X3_MODE             int     Specifies whether the access network
  636.                             uses X.3 PADs.
  637.                                 0 = NO
  638.                                 1 = YES
  639.                             Default value is "0" as X.3 PAD
  640.                             compatibility is not required for
  641.                             access via the normal Minitel network.
  642.  
  643. If the port is other than COM1 or COM2, the following parameters must
  644. also be specified (values must be specified in a decimal radix).
  645.  
  646. ADDR8250            int     I/O address of 8250 UART
  647. INTVECTOR           int     Interupt vector number
  648. ADDR8259            int     Absolute I/O address of 8259 Interupt
  649.                             Controller
  650. IRQ                 int     IRQ number for 8259
  651.  
  652.  
  653. C.4)    Display Parameters
  654.  
  655. Parameter Name      Type    Description
  656. --------------      ----    -----------
  657. DISPLAY_ADAPTOR     int     Type of display adaptor in the PC.
  658.                             Valid values are:
  659.                                 0 = HGC    (Hercules)
  660.                                 1 = CGA
  661.                                 2 = EGA
  662.                                 3 = MDA    (Monochrome)
  663.  
  664.  
  665. C.5)    Program Function Keys
  666.  
  667. Parameter Name      Type    Description
  668. --------------      ----    -----------
  669. PF1                 char    Setting of program function key 1
  670. PF2                 char    Setting of program function key 2
  671. PF3                 char    Setting of program function key 3
  672. PF4                 char    Setting of program function key 4
  673. PF5                 char    Setting of program function key 5
  674. PF6                 char    Setting of program function key 6
  675. PF7                 char    Setting of program function key 7
  676. PF8                 char    Setting of program function key 8
  677. PF9                 char    Setting of program function key 9
  678. PF10                char    Setting of program function key 10
  679.  
  680. Each program function key value is either NULL or has the following
  681. format:
  682.  
  683. Positions    Meaning
  684. ---------    -------
  685.     1        Type of value stored in the key.  Must be one of the
  686.              following:
  687.  
  688.                  M   - A MACRO (script language program) to be run
  689.                  S   - A string to be sent
  690.  
  691.     2        A single dash character (ASCII 2DH). This is just a
  692.              separator to make the line readable.
  693.  
  694.     3-       Value to be stored in the function key:
  695.  
  696.                 Pos 1     Contents of pos 3-
  697.                 -----     ------------------
  698.                   M       Name of file containing the script language
  699.                           program to be run when this key is pressed.
  700.  
  701.                   S       String to be sent to the remote system when
  702.                           this key is pressed. Control characters can
  703.                           be specified in this string by using a
  704.                           circumflex (^) followed by another
  705.                           character (See Appendix F).
  706.  
  707. Example:
  708. --------
  709. To assign a HAYES dial command to program function key five, the
  710. following line could be added to the configuration file.
  711.  
  712.         PF5=S-ATDP438-8304^M
  713.         ^   ^ ^            ^
  714.         |   | |            |
  715.         |   | |            The ^M specifies a carriage return
  716.         |   | Program function key value
  717.         |   Program function key type
  718.         Names the program function key to be set
  719.  
  720. The following special values can also be assigned to program
  721. function keys.
  722.  
  723.     M-<DROPLINE/QUIT>       This is the default value of PF3. This
  724.                             value causes the emulator to drop the
  725.                             line then exit to DOS.
  726.  
  727.     M-<DROPLINE>            This value causes the emulator to drop
  728.                             the line. Same as the above value except
  729.                             the emulator does not exit to DOS.
  730.  
  731.     M-<QUIT>                This value causes the emulator to exit
  732.                             to DOS without dropping the line.
  733.  
  734.  
  735. C.6)    Terminal Parameters
  736.  
  737. Parameter Name      Type    Description
  738. --------------      ----    -----------
  739. EMULATION           int     Type of emulation to perform.
  740.                             Value must be one of:
  741.                                 0 = TTY
  742.                                 1 = MINITEL
  743.  
  744. LOCAL_ECHO          int     Local echo on or off (0=OFF, 1=ON).
  745.                             During MINITEL emulation this flag works
  746.                             with the CARRIER_DETECTABLE flag. If
  747.                             the carrier is detectable and local echo
  748.                             is on then keystrokes will be echoed to
  749.                             the screen when there is no carrier
  750.                             (i.e. when 'L' appears on status row).
  751.                             During TTY emulation keystrokes are
  752.                             always echoed when this parameter is on.
  753.  
  754. PAGE_MODE           int     Page or scroll mode flag (0=SCROLL MODE,
  755.                             1=PAGE MODE)
  756.  
  757. X3_MODE             int     X.3 pad compatibility mode enabled flag
  758.                             (0=OFF, 1=ON).
  759.  
  760. VT_LF_NL            int     This paramater only has effect during TTY
  761.                             emulation. If the parameter has a
  762.                             non-zero value a CR/LF will be displayed
  763.                             on the screen whenever a LF is received
  764.                             from the remote system
  765.  
  766.  
  767. APPENDIX D      Keyboard Mapping
  768.                 ----------------
  769.  
  770. The following describes the mapping of the Minitel keyboard to the PC
  771. keyboard.
  772.  
  773. Single Codes
  774.  
  775. Code Sent                             Key or Combination
  776. (in hex)       Character                   of Keys
  777.                                     Minitel         PC
  778. ---------      ---------            -------         -------
  779.   00              NUL               Ctrl'           Ctrl @
  780.   01              SOH               Ctrl A
  781.   02              STX               Ctrl B
  782.   03              ETX               Ctrl C
  783.   04              EOT               Ctrl D
  784.   05              ENQ               Ctrl E
  785.   06              ACK               Ctrl F
  786.   07              BEL               Ctrl G
  787.   08              BS                Ctrl H
  788.   09              HT                Ctrl I
  789.   0A              LF                Ctrl J or Ctrl: Ctrl J
  790.   0B              VT                Ctrl K or Ctrl; Ctrl K
  791.   0C              FF                Ctrl L
  792.   0D              CR                Ctrl M or Enter Ctrl M
  793.   0E              SO                Ctrl N
  794.   0F              SI                Ctrl O
  795.   10              DLE               Ctrl P
  796.   11              Cursor ON         Ctrl Q
  797.   12              REP               Ctrl R
  798.   13              SEP               Ctrl S
  799.   14              Cursor OFF        Ctrl T
  800.   15              NACK              Ctrl U
  801.   16              SYN               Ctrl V
  802.   17              ETB               Ctrl W
  803.   18              CAN               Ctrl X
  804.   19              SS2               Ctrl Y
  805.   1A              SUB               Ctrl Z
  806.   1B              ESC               Esc
  807.   1C              FS                Ctrl ,          Ctrl | or Ctrl \
  808.   1D              SS3               Ctrl -          Ctrl } or Ctrl ]
  809.   1E              RS                Ctrl .          Ctrl ^
  810.   1F              US                Ctrl ?          Ctrl _
  811.   20              Space             Spacebar        Spacebar
  812.   21              !                 SK 1            **
  813.   22              "                 SK 2            **
  814.   23              #                 # or SK 3       **
  815.   24              $                 SK 4            **
  816.   25              %                 SK 5            **
  817.   26              &                 SK 6            **
  818.   27              '                 'or SK 7        **
  819.   28              (                 SK 8            **
  820.   29              )                 SK 9            **
  821.   2A              *                 * or SK :       **
  822.   2B              +                 SK ;            **
  823.   2C              ,                 ,               **
  824.   2D              -                 -               **
  825.   2E              .                 .               **
  826.   2F    Box with diagonal line      SK ?            /
  827.   30              0                 0
  828.   31              1                 1
  829.   32              2                 2
  830.   33              3                 3
  831.   34              4                 4
  832.   35              5                 5
  833.   36              6                 6
  834.   37              7                 7
  835.   38              8                 8
  836.   39              9                 9
  837.   3A              :                 :
  838.   3B              ;                 ;
  839.   3C              <                 SK ,            **
  840.   3D              =                 SK -            **
  841.   3E              >                 SK .            **
  842.   3F              ?                 ?               **
  843.   40              @                 SK '            **
  844.   41              A                 A               Shift A
  845.   42              B                 B               Shift B
  846.   43              C                 C               Shift C
  847.   44              D                 D               Shift D
  848.   45              E                 E               Shift E
  849.   46              F                 F               Shift F
  850.   47              G                 G               Shift G
  851.   48              H                 H               Shift H
  852.   49              I                 I               Shift I
  853.   4A              J                 J               Shift J
  854.   4B              K                 K               Shift K
  855.   4C              L                 L               Shift L
  856.   4D              M                 M               Shift M
  857.   4E              N                 N               Shift N
  858.   4F              O                 O               Shift O
  859.   50              P                 P               Shift P
  860.   51              Q                 Q               Shift Q
  861.   52              R                 R               Shift R
  862.   53              S                 S               Shift S
  863.   54              T                 T               Shift T
  864.   55              U                 U               Shift U
  865.   56              V                 V               Shift V
  866.   57              W                 W               Shift W
  867.   58              X                 X               Shift X
  868.   59              Y                 Y               Shift Y
  869.   5A              Z                 Z               Shift Z
  870.   5B              [                 SK *            **
  871.   5C    10 o'clock diagonal line    SK Cancel       \
  872.   5D              ]                 SK #            **
  873.   5E          Up Arrow              SK 0            ^
  874.   5F    Low horizontal line         Ctrl 6          _
  875.   60    Middle horizontal line      Ctrl 5          `
  876.   61              a                 SK A            A
  877.   62              b                 SK B            B
  878.   63              c                 SK C            C
  879.   64              d                 SK D            D
  880.   65              e                 SK E            E
  881.   66              f                 SK F            F
  882.   67              g                 SK G            G
  883.   68              h                 SK H            H
  884.   69              i                 SK I            I
  885.   6A              j                 SK J            J
  886.   6B              k                 SK K            K
  887.   6C              l                 SK L            L
  888.   6D              m                 SK M            M
  889.   6E              n                 SK N            N
  890.   6F              o                 SK O            O
  891.   70              p                 SK P            P
  892.   71              q                 SK Q            Q
  893.   72              r                 SK R            R
  894.   73              s                 SK S            S
  895.   74              t                 SK T            T
  896.   75              u                 SK U            U
  897.   76              v                 SK V            V
  898.   77              w                 SK W            W
  899.   78              x                 SK X            X
  900.   79              y                 SK Y            Y
  901.   7A              z                 SK Z            Z
  902.   7B    Left vertical line          Ctrl 1 or       {
  903.                                     SK repeat
  904.   7C    Middle vertical line        Ctrl 2          |
  905.   7D    Right vertical line         Ctrl 3 or       }
  906.                                     SK send
  907.   7E    Upper horizontal line       Ctrl 4          ~
  908.   7F    Filled in Box               Ctrl <--        Ctrl BS
  909.  
  910.  
  911. Sequences of two or three codes:
  912.  
  913. Code sent                          Key or combination
  914. (in hex)   Character                    of keys
  915.                                  Minitel             PC
  916. ---------  ---------             -------             -------
  917.  19,41     ` (grave accent)      SK Next             (not impl)
  918.  19,43     ^ (circumflex)        SK Index            (not impl)
  919.  
  920.  
  921. Sequences sent by function keys:
  922.  
  923. Key or Combination
  924.    of keys               PC Key                     Codes Sent
  925. ------------------       ------                     ----------
  926. Send                     F8 or Enter                13,41
  927. Previous                 F3 or Shift-Tab or PgUp    13,42
  928. Repeat                   F4                         13,43
  929. Guide                    F5                         13,44
  930. Cancel                   F2 or End                  13,45
  931. Index                    F1 or Home                 13,46
  932. Correction               F6 or Backspace            13,47
  933. Next                     F7 or Tab or PgDn          13,48
  934. Line/Local               F9                         13,49-Modem
  935. SK Line/Local            (not supported on PC)      13,49-Socket
  936. Ctrl Line/Local          Alt b                      Break to modem
  937.  
  938.  
  939. Notes:
  940. 1) SK = Special key on Minitel
  941.       = Shift key on PC
  942. 2) Where there is no PC key specified, the PC key is the same as the
  943. Minitel key.
  944. 3) '**' Means to use the Key marked for this purpose on your particular
  945. keyboard.
  946.  
  947.  
  948. APPENDIX E      Minitel/PC Script Language
  949.                 --------------------------
  950.  
  951. E.1     Script Language Compiler (MTC.EXE)
  952.  
  953. The Minitel/PC script language is a semi-compiled language.  To create a
  954. script language program, any text editor which creates an ASCII format
  955. file can be used.  Once a script program has been created, it must be
  956. compiled by the program 'MTC.EXE' (Minitel/PC Compiler) before it can be
  957. executed.  MTC checks the source for syntax errors and produces a
  958. compiled program as its result.  Script source files are expected to have
  959. an extension of 'MT'.  MTC gives compiled scripts an extension of 'MTO'
  960. (Minitel/PC Object).
  961.  
  962. To compile a program with MTC, type the command:
  963.  
  964.         mtc source_file_name
  965.  
  966. in response to the DOS prompt.  It is not necessary to specify the '.MT'
  967. extension of the source file name.  If you do not specify the source file
  968. name on the command line, MTC will prompt you with the line:
  969.  
  970.         'Source file name ?'.
  971.  
  972. If you enter only a carriage return in response to the source file
  973. prompt, MTC will prompt you to enter the program source at the terminal.
  974.  
  975. The following diagram illustrates the script creation process:
  976.  
  977.                         Create Script Source
  978.                         file with text editor
  979.                         (create myscript.mt)
  980.                                 |
  981.                                 |
  982.                                 V
  983.                             mtc myscript
  984.                                 |
  985.                                 |
  986.                                 V
  987.                             myscript.mto
  988.  
  989.  
  990. E.2     Running a Script Language Program
  991.  
  992. Scripts can be started by assigning them to a program function key, then
  993. pressing the program function key at run time, or by using the /m command
  994. line parameter.  For example typing 'mt /mlogon' starts Minitel/PC, then
  995. invokes the script program named 'logon'.  Only one script language
  996. program can be specified on the command line.  If more than one is
  997. specified, only the one that was last named is run.  While a script
  998. language program is running, a reverse-video 'M' will appear in column 40
  999. of the status row.  A running script language program can be aborted at
  1000. any time by pressing the [ESC] key.
  1001.  
  1002.  
  1003. E.3     Script Language Description
  1004.  
  1005. A Minitel/PC script language program consists of a series of statements.
  1006. Each statement can be preceded by a label.  A label consists of up to 15
  1007. alphanumeric characters (and underscores) followed by a colon.  The first
  1008. character of a label must be alphabetic.  Comments can be placed anywhere
  1009. in a program by enclosing the comment within curly brackets ({}).  The
  1010. END directive must follow the last statement of a script language program
  1011. (the END directive is a message to the script language compiler (MTC)
  1012. telling it that it has reached the end of the program).
  1013.  
  1014. Following is a description of all script language statements:
  1015.  
  1016. E.3.1)  DIAL statement
  1017.  
  1018. The dial statement causes the modem to dial the Minitel Services Company
  1019. node using the phone number and modem information from the MINITEL/PC
  1020. configuration file.  If the dial attempt fails, the script language
  1021. program is aborted, and a failure message is displayed on the screen.
  1022. The DIAL command supports all required modems for the HOST machine.  For
  1023. example, on the PC the DIAL command supports the HAYES modem, MANUAL dial
  1024. modems, DIRECT modems, and any command-driven auto-dial modem.
  1025.  
  1026. The following algorithm details the logic used by the DIAL command:
  1027.  
  1028. a) If the modem type is direct, terminate successfully, otherwise proceed
  1029. with step b).
  1030.  
  1031. b) If the modem type is manual, proceed with step c), otherwise go to
  1032. step e)
  1033.  
  1034. c) Prompt user to dial the number
  1035.  
  1036. d) Prompt user for a key;
  1037.    If the user enters an ESC, terminate with failure
  1038.    If the user enters a key other than ESC, terminate successfully
  1039.    If the carrier signal goes from low to high while waiting for
  1040.         a key, terminate successfully.
  1041.  
  1042. e) If there is a MODEM_INIT parameter in the configuration file, send it
  1043. and proceed to step f), otherwise proceed to step h).
  1044.  
  1045. f) If there is a MODEM_RESPONSE parameter in the configuration file,
  1046. proceed to step g), otherwise wait till two seconds elapses with no data
  1047. received from the remote system, then proceed to step h).
  1048.  
  1049. g) If the modem response is not received within 10 seconds, terminate
  1050. with failure, otherwise proceed to step h).
  1051.  
  1052. h) Build a dial command from the MODEM_DIAL_PREFIX, PHONE and the
  1053. MODEM_DIAL_SUFFIX configuration parameters and send the dial command to
  1054. the modem.
  1055.  
  1056. i) If there are no MODEM_SUCCESS configuration parameters, inform the
  1057. user that a dial command has been sent and proceed to step d).
  1058.  
  1059. j) Wait for any of the MODEM_SUCCESS or MODEM_FAILURE responses to be
  1060. received.
  1061.    If 90 seconds go by with none of the success or failure responses
  1062.         received, terminate with failure.
  1063.    If a success response is received, terminate successfully.
  1064.    If a failure response is received, proceed to step k).
  1065.  
  1066. k) Prompt the user to see if he wants to try another dial attempt.  If
  1067. 'YES' proceed to step e), otherwise terminate with failure.
  1068.  
  1069.  
  1070. E.3.2)  BRANCH statement
  1071.  
  1072. SYNTAX:
  1073.         BRANCH label
  1074.  
  1075. The BRANCH statement causes program execution continue with the statement
  1076. following the given label, rather than the next statement.
  1077.  
  1078.         statement 1
  1079.         statement 2
  1080.         BRANCH skip
  1081.         statement 3
  1082.         statement 4
  1083. skip:   statement 5
  1084.  
  1085. In the above example, the statements will be executed in the this order:
  1086.  
  1087.         statement 1
  1088.         statement 2
  1089.         statement 5
  1090.  
  1091.  
  1092. E.3.3)  PAUSE statement
  1093.  
  1094. SYNTAX:
  1095.         PAUSE tenths_of_second
  1096.  
  1097. The PAUSE statement causes the program to halt for the given number of
  1098. tenths of a second before proceeding with the next statement.
  1099.  
  1100. e.g.
  1101.         PAUSE 10                <- pause for 1 second
  1102.  
  1103.  
  1104. E.3.4)  TYPE statement
  1105.  
  1106. SYNTAX:
  1107.         TYPE string
  1108.  
  1109. The TYPE statement causes the characters in the given string to be sent
  1110. to the remote system as though they had been typed at the terminal.
  1111.  
  1112. The string can consist of any combination of the following.
  1113.  
  1114.         - a quoted string. The quoted string can contain diagraphs
  1115.           of the form '^letter' to include control characters in the
  1116.           string. For example the digraph ^M is a carriage return.
  1117.           See Appendix F for a complete description of digraphs. See
  1118.           notes at the end of section E.5 for more details on quoted
  1119.           strings.
  1120.         - a Minitel function key (one of LOCAL_LINE, INDEX,
  1121.           CANCEL, PREVIOUS, REPEAT, GUIDE, CORRECTION, NEXT,
  1122.           SEND)
  1123.         - a character constant (CR, LF, BS, BELL)
  1124.         - any of the following configuration parameter names
  1125.                 PASSWORD
  1126.                 PHONE
  1127.                 USERID
  1128.  
  1129. e.g.
  1130.         TYPE 'AT?' CR     <- send string AT? followed by a CR
  1131.         TYPE 'AT^M'       <- same as above
  1132.         TYPE 'CHAT' SEND  <- send the string CHAT followed by
  1133.                              the Minitel send key
  1134.         TYPE USERID CR    <- send the value of the configuration
  1135.                              file USERID parameter followed by
  1136.                              a CR (carriage return)
  1137.  
  1138.  
  1139. E.3.5)  QUIT statement
  1140.  
  1141. Terminates execution of the current script program.
  1142.  
  1143.  
  1144. E.3.6)  DOPF statement
  1145.  
  1146. SYNTAX:
  1147.         DOPF number
  1148.  
  1149. Causes the named program function key to be executed.  This causes the
  1150. same effect as the user pressing the given function key at the keyboard.
  1151. Script language programs can invoke other script language programs using
  1152. function keys.
  1153.  
  1154. e.g.
  1155.         DOPF 2          <- execute PF2
  1156.  
  1157.  
  1158. E.3.7)  MESSAGE statement
  1159.  
  1160. SYNTAX:
  1161.         MESSAGE string
  1162.  
  1163. This command causes the given string to appear in a pop-up window on the
  1164. screen, along with the message 'PRESS ANY KEY TO CONTINUE'.  After the
  1165. user presses a key, the pop-up window disappears, and the underlying
  1166. screen is restored.  The string containing the message to be printed must
  1167. have the same format as a string in a TYPE statement.
  1168.  
  1169. e.g.
  1170.         MESSAGE 'Logon Procedure has failed'
  1171.  
  1172.  
  1173. E.3.8)  LOOP statement
  1174.  
  1175. SYNTAX:
  1176.         LOOP number
  1177.             statements
  1178.             AT_END_DO
  1179.                 statements
  1180.         ENDLOOP
  1181.  
  1182. The LOOP statement causes the statements between the LOOP keyword and the
  1183. AT_END_DO clause to be executed 'number' times.  After the last time, the
  1184. statements following the optional AT_END_DO clause are executed.  The
  1185. loop can be terminated prematurely by using the BREAK statement or the
  1186. BRANCH statement.  The BREAK statement causes program execution to
  1187. continue following the ENDLOOP clause.  If the loop is terminated
  1188. prematurely for any reason, the statements following the AT_END_DO clause
  1189. are not executed.  The BREAK statement is ignored if it is encountered
  1190. anywhere other than within a LOOP.
  1191.  
  1192. Example:
  1193.         LOOP 3
  1194.             type 'hello' CR
  1195.             AT_END_DO
  1196.                 type 'this is the last hello'
  1197.         ENDLOOP
  1198.  
  1199. The above example causes the following data to be sent to the remote
  1200. system:
  1201.  
  1202.         hello
  1203.         hello
  1204.         hello
  1205.         this is the last hello
  1206.  
  1207. Example 2:
  1208.         LOOP 2
  1209.             TYPE 'I am about to pause for 5 seconds'
  1210.             PAUSE 50
  1211.         ENDLOOP
  1212.  
  1213. The above example demonstrates a loop statement with no AT_END_DO clause.
  1214.  
  1215.  
  1216.  
  1217. E.3.9)  WAIT statement
  1218.  
  1219. SYNTAX:
  1220.         WAIT tenths
  1221.             CASE string 1
  1222.                 statements
  1223.             CASE string 2
  1224.                 statements
  1225.                 .
  1226.                 .
  1227.             CASE string N
  1228.                 statements
  1229.             FAILURE
  1230.                 statements
  1231.         ENDWAIT
  1232.  
  1233. The WAIT statement causes the script program to WAIT for data from the
  1234. remote computer system.  If any of the strings named by one of the CASE
  1235. clauses are received from the remote system, the statements following
  1236. that CASE clause are executed.  If 'tenths' tenths of a second go by with
  1237. no data received from the remote system, or if the line drops, the
  1238. statements following the optional FAILURE clause are executed.  After the
  1239. statements following a CASE or FAILURE clause are executed, execution
  1240. continues after the ENDWAIT clause.
  1241.  
  1242. The string parameter of the CASE clause must have the same format as a
  1243. string in a TYPE statement.  Multiple strings can be specified by
  1244. separating them with a comma (,).  If there are multiple strings
  1245. separated by a comma, the statements following the CASE clause are
  1246. executed if any one of the named strings are received from the remote
  1247. system.
  1248.  
  1249. Example:
  1250.         TYPE 'ATDP 438-8304' CR
  1251.         WAIT 600        { wait up to 60 seconds (600 tenths) }
  1252.             CASE 'CONNECT', 'CONNECT 1200', 'CONNECT 600', 'CONNECT 2400'
  1253.  
  1254.                 { the dial attempt has succeeded so just continue }
  1255.                 { with the statement following the ENDWAIT }
  1256.             CASE 'NO CARRIER', 'BUSY', 'NO ANSWER'
  1257.                 MESSAGE 'Dial attempt has failed, try again later'
  1258.                 QUIT
  1259.             CASE 'ERROR', 'NO DIALTONE'
  1260.                 MESSAGE 'Fatal error during dial attempt'
  1261.                 QUIT
  1262.             FAILURE
  1263.                 MESSAGE
  1264.                   'Timeout, line lost or user ESC during Dial Attempt'
  1265.                 QUIT
  1266.         ENDWAIT
  1267.         WAIT 5
  1268.             CASE CR LF          { wait for rest of modem response }
  1269.         ENDWAIT
  1270.  
  1271. In the above example, we send a dial request to a HAYES modem and use the
  1272. WAIT statement to check the result (note that you would normally not have
  1273. to do this since the above and more can be performed automatically by the
  1274. DIAL command).
  1275.  
  1276. Example 2:
  1277.         LOOP 10
  1278.             TYPE CR
  1279.             WAIT 3 CASE '#' BREAK ENDWAIT
  1280.  
  1281.             AT_END_DO
  1282.                 MESSAGE 'PAD not responding with a # prompt.'
  1283.                 QUIT
  1284.         ENDLOOP
  1285.  
  1286. In the above example, we send up to 10 carriage returns (one every three
  1287. tenths of a second) in an attempt to get a '#' prompt from a Minitel
  1288. Services Company PAD.  The WAIT statement waits up to three tenths of a
  1289. second for a '#'.  If it fails, there is no effect (since there is no
  1290. FAILURE clause).  If the WAIT statement succeeds, the BREAK statement is
  1291. executed, and the LOOP terminates prematurely.  If the loop terminates
  1292. prematurely, the statements following the AT_END_DO clause are not
  1293. executed.  Note that statements can be split over multiple lines.  The
  1294. above WAIT statement would be more clearly written as:
  1295.  
  1296.         WAIT 3
  1297.             CASE '#'
  1298.                 BREAK
  1299.         ENDWAIT
  1300.  
  1301.  
  1302. E.3.10)  IF statement
  1303.  
  1304. SYNTAX:
  1305.         IF string THEN
  1306.             statements                  IF string THEN
  1307.         ELSE                   OR           statements
  1308.             statements                  ENDIF
  1309.         ENDIF
  1310.  
  1311. The IF statment tests the value of 'string' for a non-null value.  If
  1312. 'string' has a non-null value, the statements between the THEN and ELSE
  1313. clauses are executed, otherwise the statements between the ELSE and ENDIF
  1314. clauses are executed.  The ELSE clause is optional.  If there is no ELSE
  1315. clause, and 'string' has a non-null value, the statments between the ELSE
  1316. and ENDIF clauses are executed, otherwise execution continues after the
  1317. ENDIF clauses.
  1318.  
  1319. Example:
  1320.  
  1321.         { if there is a phone # in the config file then dial }
  1322.         if phone then
  1323.             message 'Your local access # is ' phone
  1324.             dial
  1325.         else
  1326.             message 'No PHONE parameter specified in config file'
  1327.         endif
  1328.  
  1329. Example 2:
  1330.  
  1331.         { if there is a password in the config file then send it }
  1332.         if password then
  1333.             type password SEND
  1334.         endif
  1335.  
  1336.  
  1337. E.4     Script Program Example
  1338.  
  1339. The following example is a complete script language program that dials
  1340. the Minitel Services Company kiosk and requests a service.
  1341.  
  1342.     { logon.mt - script program to dial the Minitel services company
  1343.                  network and request a service }
  1344.  
  1345.     dial            { dial Minitel Services Company network
  1346.                       - uses config modem type & number }
  1347.  
  1348.     { try up to six times to get a pound sign }
  1349.     loop 6
  1350.         type CR
  1351.         wait 3 case '#' break endwait
  1352.  
  1353.         at_end_do
  1354.             message 'PAD not responding with #'
  1355.             quit
  1356.     endloop
  1357.  
  1358.     { perform network logon }
  1359.     type 'x' CR
  1360.     wait 50
  1361.         case '*'            { success }
  1362.         failure
  1363.             message 'PAD not responding with *'
  1364.             quit
  1365.     endwait
  1366.  
  1367.     type '.vmt' CR          { request network service }
  1368.     end
  1369.  
  1370.  
  1371. E.5     Detailed Script Language Syntax Definition
  1372.  
  1373. The following defines the syntax of all legal script language programs.
  1374.  
  1375. Program     -> Lines END
  1376. Lines       -> Lines Line
  1377.             -> Line
  1378.             -> <empty>
  1379. Line        -> Label Statement
  1380. Label       -> <identifier> :
  1381.             -> <empty>
  1382. Statement   -> WAIT <integer> Waitcases Failcase ENDWAIT
  1383.             -> LOOP <integer> Lines Endstmnts ENDLOOP
  1384.             -> IF Charexp THEN Lines ElseIf ENDIF
  1385.             -> MESSAGE Charexp
  1386.             -> DOPF <integer>
  1387.             -> DIAL
  1388.             -> BRANCH <identifier>
  1389.             -> PAUSE <integer>
  1390.             -> QUIT
  1391.             -> TYPE Charexp
  1392.             -> BREAK
  1393. Waitcases   -> Waitcases Waitcase
  1394.             -> Waitcase
  1395. Waitcase    -> CASE Charexplist Lines
  1396. Charexplist -> Charexplist , Charexp
  1397.             -> Charexp
  1398. Failcase    -> FAILURE Lines
  1399.             -> <empty>
  1400. Endstmnts   -> AT_END_DO Lines
  1401.             -> <empty>
  1402. ElseIf      -> ELSE Lines
  1403.             -> <empty>
  1404. Charexp     -> Charexp Charterm
  1405.             -> Charterm
  1406. Charterm    -> Envcharvar
  1407.             -> Charconst
  1408.             -> Functionkey
  1409.             -> <string>
  1410. Charconst   -> CR
  1411.             -> LF
  1412.             -> BS
  1413.             -> BELL
  1414. Envcharvar  -> PF1
  1415.             -> PF2
  1416.             -> PF3
  1417.             -> PF4
  1418.             -> PF5
  1419.             -> PF6
  1420.             -> PF7
  1421.             -> PF8
  1422.             -> PF9
  1423.             -> PF10
  1424.             -> PASSWORD
  1425.             -> PHONE
  1426.             -> USERID
  1427.             -> SERVICE
  1428. Functionkey -> LOCAL_LINE
  1429.             -> INDEX
  1430.             -> CANCEL
  1431.             -> PREVIOUS
  1432.             -> REPEAT
  1433.             -> GUIDE
  1434.             -> CORRECTION
  1435.             -> NEXT
  1436.             -> SEND
  1437.  
  1438. Notes:
  1439.  
  1440. i) <empty> means that the construct is optional.
  1441.  
  1442. ii) <identifier> is an identifier of up to 15 alphanumeric characters
  1443. (and underscore) in length.  The first character of an identifier must be
  1444. alphabetic.
  1445.  
  1446. iii) <string> is a character string enclosed in single quotes.  Single
  1447. quotes can be included within the string by putting two of them together.
  1448. For example, to specify the string;
  1449.  
  1450.         that's all folks
  1451.  
  1452. you would enter
  1453.  
  1454.         'that''s all folks'
  1455.  
  1456. iv) <integer> is an integer value in the range -32768 to 32767.  Values
  1457. outside this range will cause undefined results.
  1458.  
  1459. v) Comments can appear anywhere in the program except within a token.
  1460.  
  1461. Examples:
  1462.  
  1463.         WAIT { this is a legal comment } 10
  1464.             CASE 'hello'
  1465.         ENDWAIT
  1466.  
  1467.         WAI{ this comment causes an error }T 10
  1468.             CASE 'hello'
  1469.         ENDWAIT
  1470.  
  1471.  
  1472. APPENDIX F      Entering Control Characters
  1473.                 ---------------------------
  1474.  
  1475. Control characters can be entered into configuration file parameters,
  1476. literal strings in a script language program, and in the answers to
  1477. prompts in the installation program by using a two character digraph of
  1478. the form ^x, where '^' is the circumflex character (ascii 94) and 'x' is
  1479. any other character. The sequence ^x causes the control character whose
  1480. value is the ascii value of the upper case version of the character minus
  1481. 64 to be entered into the string.  For example ^m causes a carriage
  1482. return to be entered into the string (the ascii value of an upper case
  1483. 'm' is 77.  Seventy-seven minus 64 is equal to 13 which is the ascii
  1484. value of a carriage return).
  1485.  
  1486. The following table lists a number of useful digraphs:
  1487.  
  1488.         Digraph         Control Character       Ascii Value
  1489.         -------         -----------------       -----------
  1490.           ^M                   CR                   13
  1491.           ^J                   LF                   10
  1492.           ^H                   BS                    8
  1493.           ^G                   BELL                  7
  1494.           ^L                   FF                   12
  1495.           ^I                   TAB                   9
  1496.           ^[                   ESC                  27
  1497.  
  1498. The following digraph/character combinations can be used to encode
  1499. Minitel functions keys within a string:
  1500.  
  1501.         Code            Function Key            Ascii Values
  1502.         ----            ------------            ------------
  1503.         ^SA               SEND                    19 65
  1504.         ^SB               PREVIOUS                19 66
  1505.         ^SC               REPEAT                  19 67
  1506.         ^SD               GUIDE                   19 68
  1507.         ^SE               CANCEL                  19 69
  1508.         ^SF               INDEX                   19 70
  1509.         ^SG               CORRECTION              19 71
  1510.         ^SH               NEXT                    19 72
  1511.         ^SI               LOCAL/LINE              19 73
  1512.  
  1513. If you wish to enter a circumflex (^) in a string as itself, you must put
  1514. two of them in a row.  If you enter a sequence in a string of the form
  1515. ^x, and the ascii value of the character x is less than 64, the
  1516. circumflex (^) is ignored.
  1517.  
  1518.  
  1519. APPENDIX G      Use of the Minitel Function Keys
  1520.                 --------------------------------
  1521.  
  1522. The following tables describe the most common meaning of each of the
  1523. Minitel function keys.  Pressing the asterisk key (*) prior to a function
  1524. key modifies the meaning of a number of the keys.
  1525.  
  1526. FUNCTION KEY    MEANING
  1527. ------------    -------
  1528. LOCAL LINE      Causes a disconnection from the current service.
  1529.  
  1530. SEND            Validation of character strings or completion of a form.
  1531.  
  1532. REPEAT          Causes service to retransmit the previous screen.
  1533.                 Used to clear transmission errors.
  1534.  
  1535. *REPEAT         Refresh the current display with updates made since
  1536.                 the previous request.
  1537.  
  1538. INDEX           Return to the index of the service in use.
  1539.  
  1540. *INDEX          Access to the index at the highest level in the
  1541.                 case of a hierarchical index.
  1542.  
  1543. GUIDE           Request HELP from the service.
  1544.  
  1545. CORRECTION      Used to erase the last character typed.
  1546.  
  1547. The following function keys have slightly different meanings depending on
  1548. whether you are in a data entry screen or are giving a command to an
  1549. application.
  1550.  
  1551.                 MEANING IN DATA             MEANING AS COMMAND
  1552. FUNCTION KEY    ENTRY SCREEN                TO APPLICATION
  1553. ------------    ---------------             ------------------
  1554. CANCEL          Deletes the contents of     Abort current enquiry.
  1555.                 the current field.
  1556.  
  1557. *CANCEL         Delete all fields on the    No Meaning
  1558.                 current form and move to
  1559.                 the first field.
  1560.  
  1561. NEXT            Move to following field.    Move to following page.
  1562.  
  1563. PREVIOUS        Move to previous field.     Move to previous page.
  1564.  
  1565. *NEXT           Move to following page.     Move to following document.
  1566.  
  1567. *PREVIOUS       If there is a previous      Return to the last menu
  1568.                 page, return to the first   page or message.
  1569.                 field of the previous page,
  1570.                 otherwise move to the first
  1571.                 field of the current page.
  1572.  
  1573.  
  1574. The above tables were adapted from tables in the Intelmatique document
  1575. titled 'USE OF THE MINITEL FUNCTION KEYS'.
  1576.  
  1577.  
  1578. APPENDIX H      Error Messages
  1579.                 --------------
  1580.  
  1581. This appendix lists the most common error messages that can occur and
  1582. recommends corrective action that can be taken for each.
  1583.  
  1584. If the suggested corrective action fails for the following group of
  1585. commands, try exiting the emulator (with the [SHIFT-F3] command) and
  1586. restarting the emulator (with the MT command).
  1587.  
  1588. Command(s)      Error and Corrective Action
  1589. ----------      ---------------------------
  1590. [ALT-d],
  1591. [SHIFT-F1]      "Timeout or Line Lost while Dialing"
  1592.  
  1593.                 Retry the [SHIFT-F1] command.
  1594.  
  1595. [ALT-d],
  1596. [SHIFT-F1]      "Modem not responding to init string"
  1597.  
  1598.                 Make sure that your modem is connected and powered on,
  1599.                 then retry the [SHIFT-F1] command.
  1600.  
  1601. [ALT-d],
  1602. [SHIFT-F1]      "DIAL Attempt has Failed."
  1603.                 "Try Again ? (Y=Yes, N=No)"
  1604.  
  1605.                 Enter 'Y' if you want Minitel/PC to try again.  If
  1606.                 you want to quit, enter 'N', then issue the [SHIFT-F3]
  1607.                 command.  If you want to try dialing manually, enter
  1608.                 'N', then enter the dial command.  If you get a
  1609.                 connection by dialing manually, you can use the
  1610.                 [SHIFT-F4] command to logon to the kiosk.
  1611.  
  1612. [ALT-d],
  1613. [SHIFT-F1],     "Unable to connect to network service"
  1614. [SHIFT-F2],     "PAD not responding with #"
  1615. [SHIFT-F4]      "PAD not responding with *"
  1616.  
  1617.                 If any of the above errors occur, issue the
  1618.                 [SHIFT-F4] command (even if the error occured in a
  1619.                 [SHIFT-F1] or [SHIFT-F2] command).
  1620.  
  1621.  
  1622. If any of the following errors occur then you must exit the emulator
  1623. to take corrective action.
  1624.  
  1625. Command(s)      Error and Corrective Action
  1626. ----------      ---------------------------
  1627. [ALT-d],
  1628. [SHIFT-F1],
  1629. [SHIFT-F2],     "User ID prompt not received"
  1630. [SHIFT-F4]
  1631.                 If this error occurs, exit the emulator with the
  1632.                 [SHIFT-F3] command and start again.
  1633.  
  1634. [ALT-d],
  1635. [SHIFT-F1]      "Error: No PHONE param in config file"
  1636.  
  1637.                 To use the auto dial feature of Minitel/PC, you must
  1638.                 enter a value in response to the access number
  1639.                 prompt in INSTALL. If this error occurs, re-run
  1640.                 INSTALL and enter an access number.
  1641.  
  1642. [ALT-d],
  1643. [SHIFT-Fx]      "Script <xxx> not found."
  1644.  
  1645.                 Make sure that the file 'xxx' is in the default drive
  1646.                 and directory before starting the emulator.
  1647.  
  1648. [ALT-d],
  1649. [SHIFT-Fx]      "Error reading <xxx>"
  1650.                 "Aborting Script - Bad Instruction"
  1651.                 "Aborting Script - Bad env var"
  1652.                 "Aborting Script - Bad function key"
  1653.                 "Aborting Script - Bad char item"
  1654.  
  1655.                 If any of the above errors occur, the script
  1656.                 program that was running when the error occurred
  1657.                 has become corrupted. Try recompiling the script
  1658.                 program with MTC.
  1659.  
  1660. [SHIFT-Fx]      "Illegal value in key PFx"
  1661.  
  1662.                 This error occurs if there is a bad definition for
  1663.                 the program function key PFx in the configuration
  1664.                 file. Possible errors are:
  1665.  
  1666.                 - A character other than an upper case 'M' or 'S'
  1667.                   was specified as the first character of the key
  1668.                   definition
  1669.  
  1670.                 - A character other than '-' was specified as the
  1671.                   second character of the key definition
  1672.  
  1673.                 To correct this problem, fix the program function key
  1674.                 definition in the configuration file.
  1675.  
  1676.  
  1677. APPENDIX I      Printing the screen
  1678.                 -------------------
  1679.  
  1680. From within the emulator you can send the text on your screen to the
  1681. printer using the [Shift-PrtSc] key combination (i.e. hold down the
  1682. Shift key then press the PrtSc key). This command will work no matter
  1683. what type of display adaptor or printer you have in your system.
  1684. Currently it is not possible to print graphics.
  1685.  
  1686.  
  1687. APPENDIX J      Modem Switch Settings
  1688.                 ---------------------
  1689.  
  1690. This section specifies the switch settings that are recommended for each
  1691. of the modems that are supported by the emulator.
  1692.  
  1693. 1) Hayes 300 and Hayes 1200 external modems
  1694.  
  1695. switch:     1  2  3  4  5  6  7  8
  1696. setting:    -  -  -  -  -  U  -  D
  1697.  
  1698.             D = down, U = up, - = don't care
  1699.  
  1700. 2) Hayes 1200B internal modem
  1701.  
  1702. switch:     1  2  3
  1703. setting:    -  -  D
  1704.  
  1705.             D = down, U = up, - = don't care
  1706.  
  1707. 3) Hayes 2400 external modem, Hayes 2400B internal modem and direct
  1708.    connection:
  1709.  
  1710.           nothing needs to be set with these modems.
  1711.  
  1712. 4) Manual Dial modems and Other (non-Hayes compatible) command-driven
  1713.    modems:
  1714.  
  1715. For best results these modems should be configured so that:
  1716.  
  1717. -> DCD tracks the state of the data carrier from the remote modem.
  1718. -> An ON to OFF transition of DTR causes the modem to drop the line.
  1719.  
  1720. If the modem is command-driven, it is recommended that during
  1721. installation (while running INSTALL), you put the commands that configure
  1722. the modem as above in the modem init string.
  1723.  
  1724.  
  1725. APPENDIX K      Version Differences
  1726.                 -------------------
  1727.  
  1728. This section provides a list of the changes that were made to
  1729. Minitel/PC version 2.2 to produce version 2.3.
  1730.  
  1731. 1) The keys used for many of the commands have been changed to bring
  1732.    the emulator into conformance with TOG standards.
  1733.  
  1734. 2) An XMODEM file transfer command has been added (ALT-f). The XMODEM
  1735.    command only works during TTY terminal emulation.
  1736.  
  1737. 3) The [Shift-PrtSc] command can now be used to send the text of any
  1738.    screen to the printer no matter what type of display adaptor you
  1739.    are using.
  1740.  
  1741. 4) The [ALT-d] command now dials and performs an auto-logon.
  1742.    Previously it just dialed. The [ALT-d] command uses the provided
  1743.    script 'LOGON.MTO' for this purpose.
  1744.  
  1745. 5) The following VT100 escape sequences and control codes have been
  1746.    implemented in the TTY portion of the emulator (some of these
  1747.    sequences were partially implemented in the previous version of
  1748.    Minitel/PC).
  1749.  
  1750.         ESC [ x J               - clear screen
  1751.         ESC [ x K               - clear line
  1752.         ESC [ x1 ; x2 ; ... m   - set video attributes (bold, blink,
  1753.                                   inverse and underline have been
  1754.                                   implemented)
  1755.         HT                      - standard tabs every eight columns
  1756.         VT, FF                  - same as LF
  1757.  
  1758. 6) Use of command line configuration parameters no longer updates the 
  1759.    configuration file 'mt.cfg.'  All command line configuration 
  1760.    parameters are temporary - for that single execution of the Minitel 
  1761.    emulator.
  1762. ---------------------------------------------------------------------
  1763.  
  1764. This section provides a list of the changes that were made to
  1765. Minitel/PC version 2.1 to produce version 2.2.
  1766.  
  1767. 1) The keypad plus and minus keys can no longer be used to send a
  1768.    real CR and LF. These keys now send plus or minus.
  1769.  
  1770. 2) The following commands have been added.
  1771.  
  1772.         ALT d           - auto dial
  1773.         ALT t           - switch to TTY emulation mode
  1774.         ALT m           - switch to Minitel emulation mode
  1775.         ALT p           - send text of screen to the printer
  1776.  
  1777. 3) The [ALT][q] command now works in Minitel mode (same as SHIFT F3).
  1778.  
  1779. 4) The program function keys PF1 to PF4 can now be reassigned by
  1780.    the user.
  1781.  
  1782. 5) The special program function key values '<DROPLINE/QUIT>',
  1783.    '<DROPLINE>' and <QUIT> have been added to the emulator (see
  1784.    Appendix C, section 5).
  1785.  
  1786. 6) Some changes have been made to the Hercules screen driver to make
  1787.    dithered text easier to read.
  1788.  
  1789. 7) The TTY emulation mode now implements the ANSI escape sequences
  1790.    to clear the screen (ESC [ 2 J) and position the cursor
  1791.    ('ESC [ Pr ; Pc f' and 'ESC [ Pr ; Pc H').
  1792.  
  1793. 8) The special script language symbols for the function keys (NEXT,
  1794.    SEND, PREVIOUS, etc) were not returning X.3 versions of the
  1795.    function keys when in X.3 pad compatibility mode. This bug has
  1796.    been corrected.
  1797.  
  1798. 9) When returning the terminal id request the emulator now ORs the
  1799.    version byte with hex 40 if X.3 pad compatibility mode is active.
  1800.  
  1801. 10) The emulator now filters the function keys if they are echoed
  1802.     back. Also all other special filtering that is performed by the
  1803.     Minitel has now been implemented.
  1804.  
  1805. ---------------------------------------------------------------------
  1806.  
  1807. This section provides a list of the changes that were made to Minitel/PC
  1808. version 2.01 to produce version 2.1.
  1809.  
  1810. 1) The save screen to disk [ALT-s] and load screen from disk [ALT-l]
  1811. commands were added to the emulator.
  1812.  
  1813. 2) Some changes were made to the color shadow combinations that are used
  1814. with the CGA adaptor.
  1815.  
  1816. 3) The following videotex decoder bug was corrected:
  1817.  
  1818.    - Writing past column 40 when on row 23 in double height mode was
  1819.      not being handled correctly.
  1820.  
  1821. ---------------------------------------------------------------------
  1822.  
  1823. This section provides a list of the changes that were made to
  1824. Minitel/PC version 2.0 to produce version 2.01.
  1825.  
  1826. 1) For "hard to read" foreground/background color combinations the CGA
  1827. screen driver now puts a shadow to the right of characters to make them
  1828. easier to read.
  1829.  
  1830. 2) Some speed improvements were made to the CGA screen driver.
  1831.  
  1832. ---------------------------------------------------------------------
  1833.  
  1834. This section provides a list of the changes that were made to Minitel/PC
  1835. version 1.6 to produce version 2.0.
  1836.  
  1837. In this release the videotex decoding software and screen drivers were
  1838. completely re-written.  The new decoding software and screen drivers
  1839. provide the following improvments and new features:
  1840.  
  1841. 1)  The emulator now uses the Minitel M1B font (VPG5).
  1842.  
  1843. 2)  The blink/steady and conceal/reveal attributes are now implemented
  1844. for all supported display adaptors.  Reverse polarity blinking characters
  1845. blink out of phase with normal polarity blinking characters, as on the
  1846. Minitel.
  1847.  
  1848. 3)  "Scan forward" is now implemented.  Writing a delimeter now updates
  1849. the conceal attribute of all following characters and the background
  1850. color and underline of all following text characters.  Writing a graphic
  1851. character now updates the background color of all following text
  1852. characters.
  1853.  
  1854. 4)  Various bugs in the videotex decoding were corrected.
  1855.  
  1856.     This includes the following:
  1857.  
  1858.     - Receiving characters past the right margin caused the latent
  1859.       serial attributes to be lost.
  1860.  
  1861.     - The control characters 0B (ctrl k) and 0A (ctrl j) reset the
  1862.       background color in graphics mode.
  1863.  
  1864.     - The CAN control code (ctrl x) caused the latent background
  1865.       attribute to be validated.
  1866.  
  1867.           For example:
  1868.  
  1869.           ctrl l (FF), ESC T, ctrl x (CAN)
  1870.  
  1871.           Caused the first row to change to a blue background.
  1872.  
  1873.     - Occasionally when using an EGA adaptor random horizontal
  1874.       lines would appear through the characters.
  1875.  
  1876. 5)  The EGA driver now uses the 320x200 16 color mode instead of the
  1877. 640x200 mode. This increases the speed of the EGA driver with no loss of
  1878. display quality.
  1879.  
  1880. 6)  The CGA driver now uses the 320x200 four color mode (with the
  1881. MAGENTA/CYAN/WHITE palette) instead of the 640x200 two color mode.  The
  1882. remaining 4 colors are simulated by combining the existing colors in a
  1883. checkerboard pattern.  The following table shows the color combinations
  1884. that are used for the 8 Minitel colors:
  1885.  
  1886.         Minitel color           Color on CGA
  1887.         -------------           ------------
  1888.           BLACK                   BLACK
  1889.           BLUE                    BLACK/CYAN
  1890.           RED                     BLACK/MAGENTA
  1891.           MAGENTA                 MAGENTA
  1892.           GREEN                   MAGENTA/CYAN
  1893.           CYAN                    CYAN
  1894.           YELLOW                  CYAN/WHITE
  1895.           WHITE                   WHITE
  1896.  
  1897. 7)  The CGA driver now uses normal thin characters instead of the old
  1898. thick ones.
  1899.  
  1900. 8)  The Hercules screen driver now simulates eight grey scales for text
  1901. as well as graphics.
  1902.  
  1903. 9)  The MDA screen driver now works with the CGA and EGA adaptors as well
  1904. as with the MDA and hercules adaptors.  This is more of an advantage for
  1905. the CGA adaptor, as it provides eight colors and high resolution text for
  1906. services that are mostly text based (i.e. where graphics are not that
  1907. important).
  1908.  
  1909. 10) The MDA screen driver now simulates the graphics characters by using
  1910. the closest available characters from the ROM font.
  1911.  
  1912. 11) Cursor handling was enhanced for for the EGA, CGA and hercules
  1913. adaptors so the cell under the cursor is displayed in reverse polarity
  1914. when the cursor is on.  This makes the character under the cursor visible
  1915. at all times.
  1916.  
  1917. ---------------------------------------------------------------------
  1918.  
  1919. This section provides a list of the changes that were made to version 1.5
  1920. to produce Minitel/PC version 1.6:
  1921.  
  1922. 1) The name of the emulator was changed from MiniTerm to Minitel/PC.
  1923.  
  1924. 2) Various minor bugs in the videotex decoding were corrected in the
  1925. emulator.  These include the following:
  1926.  
  1927.     - The emulator would switch from scroll to page mode when a
  1928.       FF was received.
  1929.     - The original graphic state was not restored when moving from
  1930.       the status row with a LF.
  1931.     - Scroll down did not work on the monochrome display adaptor
  1932.     - A CAN received in row 24 while in scroll mode would cause
  1933.       the screen to scroll up
  1934.     - CAN was causing some video attributes to be reset
  1935.     - Receiving an SI when already in alpha mode was not resetting
  1936.       double width, double high and inverse attributes
  1937.     - Receiving a double width or size attribute when in row zero or
  1938.       one was not being handled correctly
  1939.       i.e. - double size was not resetting double width in fact it
  1940.              was forcing double width
  1941.            - double high was not resetting double width
  1942.     - A CR was causing the latent serial attributes to be reset
  1943.  
  1944. 3) A command line parameter (/n) to specify a new telephone number was
  1945. added to the emulator.  This allows a temporary alternate telephone
  1946. number to be easily specified in cases where the normal number is not
  1947. available due to network problems or if you are out of town.  Numbers
  1948. specified with the '/n' parameter are not stored in the configuration
  1949. file on program termination.
  1950.  
  1951. 4) The installation program now has a default value for most prompts that
  1952. you can accept by just pressing the [ENTER] key.
  1953.  
  1954. 5) The installation program now allows you to exit at any point with the
  1955. [ESC] key.
  1956.  
  1957. 6) The [SHIFT-TAB] key combination (hold down the [SHIFT] key and press
  1958. the [TAB] key) now causes the installation program to return to the
  1959. previous data entry screen.
  1960.  
  1961. 7) The list of suggested modem switch settings has been moved from the
  1962. installation program to the user manual (i.e. Appendix J of this
  1963. document).
  1964.  
  1965. 8) An option for tone dialing has been added to the installation program.
  1966.  
  1967.  
  1968. 9) A new THIN font has been created for the EGA adaptor.  This font is in
  1969. the file EGA.FNT.
  1970.  
  1971. 10) An IF/THEN/ELSE/ENDIF statememt has been added to the SCRIPT language
  1972. (see Appendix E).
  1973.  
  1974. 11) A optional SERVICE parameter has been added to the configuration file
  1975. (see Appendix C).
  1976.  
  1977.  
  1978. APPENDIX L      Differences from a real Minitel
  1979.                 -------------------------------
  1980.  
  1981. Minitel/PC emulates the Videotex mode of the Minitel M1B terminal except
  1982. for the following differences (ascii and mixed modes are not
  1983. implemented).
  1984.  
  1985. 1) The M1B is capable of displaying double-high and double-size
  1986. characters with different colors on the top and bottom rows.  The
  1987. emulator always displays double-high/size characters with the same color
  1988. on both rows, using the color of the lower row.
  1989.  
  1990. 2) None of the CSI formatting functions are implemented.  CSI sequences
  1991. are filtered but are not acted upon.
  1992.  
  1993. 3) The only software protocol commands and features of the software
  1994. protocol that have been implemented are:
  1995.  
  1996.         - scroll mode on/off (no acknoledgement returned)
  1997.         - reset to power on state (acknowledgement returned)
  1998.         - ID request (The seqence SOH (01 hex) Cu7 EOT (04 hex)
  1999.           is returned in response to the ID request. The sequence
  2000.           SOH Cuw EOT CR is returned when the emulator is in X.3 pad
  2001.           compatibility mode. These are the same as the sequences
  2002.           that are returned by the Telic Alcatel M1B terminal)
  2003.  
  2004. Protocol commands that have not been implemented are filtered out by
  2005. Minitel/PC so that they do not appear on the screen.
  2006.  
  2007. 5) When overwriting a double-width character with a single-width
  2008. character, the M1B shifts the double-width character to the right one
  2009. space.  This was not implemented in Minitel/PC.
  2010.  
  2011. 6) When overwriting the right half of a double-width character, the
  2012. Minitel displays the character one space to the right.  This is not
  2013. implemented in Minitel/PC.
  2014.  
  2015. 7) The emulator implements a TTY terminal emulation mode.
  2016.  
  2017. 8) Keyboard differences are noted in Appendix D.  The extended keyboard
  2018. mode is not implemented.
  2019.  
  2020. 9) The error correction protocol is not implemented.
  2021.  
  2022. 10) The screen transparency commands have not been implemented.
  2023.  
  2024.