home *** CD-ROM | disk | FTP | other *** search
/ Big Blue Disk 37 / bbd37.zip / MT.DOC < prev    next >
Text File  |  1989-06-05  |  92KB  |  1,982 lines

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