home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / HEATH / HMODEM20.LBR / HMODEM.DZC / HMODEM.DOC
Text File  |  2000-06-30  |  15KB  |  456 lines

  1.  
  2.  
  3.     010    HModem II
  4.  
  5.  
  6.  
  7.         HMODEM II - Modem Program for Heath/Zenith 8-bit Computers
  8.         (C) COPYRIGHT 1988 by Harold D. Maney; ALL RIGHTS RESERVED
  9.     
  10.     
  11.     Please refer all inquiries to:
  12.     
  13.            Harold D. Maney
  14.            510 Barrack Hill Rd
  15.            Ridgefield, CT 06877
  16.     
  17.     DISCLAIMER:  No warranty of any kind is made with regard to this
  18.     program.  Neither the Author nor the Distributor shall be liable for
  19.     errors contained herein or for incidental or consequential damages in
  20.     connection with furnishing, performance, or use of this material.
  21.     
  22.     You may copy and distribute this program freely, provided that:
  23.         1)   No fee is charged for such copying and distribution, and
  24.         2)   It is distributed ONLY in its original, unmodified state.
  25.     
  26.     If you like this program and find it of use, then a contribution of
  27.     $25 would be appreciated.  You may not use this product in a commercial
  28.     or government organization without paying a license fee of $35.
  29.     
  30.     
  31.     1  INTRODUCTION
  32.     
  33.     1.1  Why HModem II?
  34.     
  35.     Yes, I know that there are more modem programs for CP/M than you
  36.     can shake a stick at, and that it is probably a waste of time
  37.     writing a new one.  However, I like to write communications
  38.     programs, and besides, I never found one for CP/M that I really
  39.     liked.
  40.     
  41.     Most CP/M communications programs (especially the shareware type)
  42.     come as a general program with overlays for the particular
  43.     computer in use.  This is fine, because it increases the
  44.     portability of the program.  The overlays never seem to take full
  45.     advantage of each machine's capabilities, unfortunately, so the
  46.     smooth user interfaces so prevalent in MS-DOS programs are not
  47.     normally found with CP/M programs unless they are written
  48.     specifically for a particular machine.
  49.     
  50.     For this reason I wrote HModem II to work only on a Heath/Zenith
  51.     Z80 machine with a H-19 type terminal.  The program uses the
  52.     H-19/89 function keys and escape sequences for a simple user
  53.     interface.  It relies upon the Heath tick counter for timing and
  54.     uses a few Z80 instructions.  If there is someone out there who
  55.     still has an original H-8 with the 8080 processor, contact the me
  56.     for an 8080 version.
  57.     
  58.     The other reason I wrote this program was for my sister Linda,
  59.     who is in law school, sees no reason to junk her Z89 at the
  60.     present time, and liked the first version of HModem which I wrote
  61.  
  62.  
  63.  
  64.                                   - 1 -
  65.  
  66.  
  67.  
  68.     HModem II
  69.  
  70.  
  71.  
  72.     several years ago as a programming project.  This new version
  73.     provides her a slicker user interface, the latest file transfer
  74.     protocols, and some new features which rival the best MSDOS
  75.     programs.
  76.     
  77.     
  78.     1.2  Features of HModem II
  79.     
  80.     HModem II is a modern communications program for the Heath/Zenith
  81.     8-bit machines.  It has features not normally found in CP/M modem
  82.     programs.  Because CP/M hardware was never standardized as was
  83.     MS-DOS hardware, user interfaces had to be general, normally
  84.     relying on terminal and command modes which were toggled by
  85.     control characters.  HModem II, because it is written only for
  86.     the H-19/89, uses the function keys for all commands.  This
  87.     allows the user to remain in terminal mode when giving most
  88.     commands.
  89.     
  90.     Key features of HModem II are as follows:
  91.     
  92.     a.  Support for XMODEM, YMODEM, and ZMODEM as well as ASCII file
  93.         transfer protocols.
  94.     
  95.     b.  Dialing directory with settable line parameters, long
  96.         distance access support, and automatic redial of number
  97.         lists.
  98.     
  99.     c.  A host mode with password protection.  This is not a full
  100.         blown BBS, but it works very well as a limited-access host.
  101.     
  102.     d.  Printer echo mode and print screen function.
  103.     
  104.     e.  H-19 keypad macros to simplify logons.
  105.     
  106.     f.  Status bar on screen with "soft" function key labels.
  107.     
  108.     g.  Interrupt-driven input.
  109.     
  110.     h.  Full file transfer progress reporting using H-19 screen
  111.         control functions.
  112.     
  113.     i.  Selectable automatic capture of screen data to a disk log
  114.         file.
  115.     
  116.     j.  Full user-configurability of the program.
  117.     
  118.     
  119.     1.3  System Requirements
  120.     
  121.     To use HModem II you must have a Heath or Zenith 8-bit system
  122.     (H8, H/Z89 or equivalent) with a H-19/89 type terminal.  The
  123.     standard version requires a Z-80 processor.  However persons who
  124.     want to use the program with an H8 and the original 8080
  125.     processor may contact the author for a special version.
  126.  
  127.  
  128.  
  129.                                   - 2 -
  130.  
  131.  
  132.  
  133.     HModem II
  134.  
  135.  
  136.  
  137.     
  138.     The I/O card used is a standard Heath or Zenith serial card.  The
  139.     serial port used must be jumpered to enable an interrupt.  HModem
  140.     II is distributed to use interrupt #5, but can be changed by the
  141.     user via the "Configure" function key.  The port address (also
  142.     user-changeable) is set at 330Q in HModem II.  Refer to the
  143.     Heath/Zenith Operation manual for your serial card for
  144.     information on how to set the address and enable the interrupt on
  145.     your serial card.
  146.     
  147.     The program runs fine on machines operating at either 2 or 4
  148.     MHz.  Users running at 2 MHz may find that XON/XOFF must be
  149.     enabled when using 2400 bps modems.  I have not tested HModem II
  150.     with modems faster than 2400 bps.
  151.     
  152.     The program is distributed configured to operate with Hayes-
  153.     compatible modems.  All the modem commands are user-changeable,
  154.     however, so it should work just as well with other "smart"
  155.     modems.  If you have a modem that is not Hayes-compatible, refer
  156.     to your modem manual for the correct command strings to enter. 
  157.     These command strings can be changed using the "Configure"
  158.     function.
  159.     
  160.     The program was developed on a H8 with a Trionyx 64k memory board
  161.     and a Trionyx Z80 cpu board (2 and 4 Mhz).  The disks were
  162.     80-track Z-37's and the terminal was a H-19.  All editing and
  163.     compiling was done on an IBM PC clone with a NEC V-20 processor
  164.     and a hard disk.  The program was also tested on a Z89/Z37 system
  165.     running at 2 Mhz.
  166.     
  167.     
  168.     2  GETTING STARTED
  169.     
  170.     2.1  HModem II Files
  171.     
  172.     As distributed, HModem II consists of 4 files:
  173.     
  174.     a.  HM.COM               the program
  175.     
  176.     b.  HCONFIG.COM          the configuration overlay
  177.     
  178.     c.  HMODEM.HLP           the help file
  179.     
  180.     d.  HMODEM.DOC           this document
  181.     
  182.     These files will be squeezed and stored in a library file called
  183.     HMODEM2.LBR.
  184.     
  185.     During the course of operation, HMODEM II may automatically
  186.     generate the following additional files:
  187.     
  188.     a.  HMODEM.CFG           the configuration data file
  189.     
  190.     b.  HMODEM.LOG           the log file where capture data is saved
  191.  
  192.  
  193.  
  194.                                   - 3 -
  195.  
  196.  
  197.  
  198.     HModem II
  199.  
  200.  
  201.  
  202.     
  203.     c.  HMODEM.MSG           the file for storing incoming messages
  204.                              in Host mode
  205.     
  206.     d.  HMODEM.FON           the telephone directory
  207.     
  208.     HM.COM, HCONFIG.COM, HM.HLP, and HMODEM.CFG (if it exists) must
  209.     always reside on the default disk when the program is invoked. 
  210.     HMODEM.CFG and HMODEM.FON will always be created on the disk from
  211.     which HM.COM was invoked.  HMODEM.LOG, and HMODEM.MSG will always
  212.     be created on the download default disk which is user-selectable
  213.     in the "Configure" function.  HModem II is distributed with drive
  214.     A: as the default download disk.
  215.     
  216.     
  217.     2.2  Configuration
  218.     
  219.     HModem II is distributed with a standard default configuration
  220.     built in.  When it starts up it looks on the default drive for
  221.     the file HMODEM.CFG.  If this file is not found, HModem II uses
  222.     the standard default configuration.  HMODEM.CFG will not exist
  223.     until you run the program HCONFIG.COM either stand-alone or from
  224.     within HMODEM.  HMODEM.CFG will contain your particular
  225.     configuration settings as well as your keypad macros.  A separate
  226.     file HMODEM.FON is created by the configuration function as the
  227.     dialing directory.
  228.     
  229.     The easiest way to configure HModem II is to press the function
  230.     key marked "CONFIGURE" from within HModem II.  If you want to
  231.     configure HModem II externally, you can run HCONFIG.COM in a
  232.     stand-alone mode by typing "HCONFIG".
  233.     
  234.     
  235.     2.3  Running the Program
  236.     
  237.     2.3.1  Invoking HModem II
  238.     
  239.     To invoke HModem II, type "HM <return>" at the CP/M prompt.  Make
  240.     sure the required files are on the default disk, as mentioned
  241.     above.  The first display will be the introductory screen which
  242.     displays the program name and version.  This screen will remain
  243.     on for 10 seconds or until a key is pressed, whichever occurs
  244.     first.  The program will then initialize itself and the modem and
  245.     display a screen which is blank except for the status bar across
  246.     the bottom and the word "READY" at the top.
  247.     
  248.     At this time you will be in terminal mode.  If you are running
  249.     the program for the first time and you are using a Hayes-
  250.     compatible modem, you may not see characters on the screen when
  251.     you press the keys because the program automatically disables the
  252.     modem echo by sending the default modem initialization string. 
  253.     If you so desire, you can restore the modem echo by typing the
  254.     modem command "ATZ <return>", or by changing the modem
  255.     initialization string under the "Configure" function.  
  256.  
  257.  
  258.  
  259.                                   - 4 -
  260.  
  261.  
  262.  
  263.     HModem II
  264.  
  265.  
  266.  
  267.     2.3.2  The Status Bar
  268.     
  269.     The status bar, located on the 25th line of the H-19, provides an
  270.     indication of the current program status.  Whenever HModem II is
  271.     in terminal mode, the status bar is divided into fourteen (14)
  272.     sections providing the following information:
  273.     
  274.     Section 1:  Indicates the command level with the symbols "1>" or
  275.                 "2>".  This is the only part  of the bar that is not
  276.                 in reverse video.
  277.     
  278.     Sections 2 through 10:  Contain labels for the 9 function keys
  279.                 across the top row.  These are different for the two
  280.                 command levels.  The BLUE key will always switch the
  281.                 command level.
  282.     
  283.     Section 11:  Indicates the current line settings.  "12N81" means 
  284.                 1200 bits per second, no parity, 8 bits, 1 stop bit.
  285.     
  286.     Section 12:  Indicates whether the log (capture) mode is enabled.
  287.                 The letters "LG" indicate log is enabled, while two
  288.                 hyphens (--) mean disabled.
  289.     
  290.     Section 13:  Indicates whether printer echo is enabled.  "PR"
  291.                 means enabled, "--" means disabled.
  292.     
  293.     Section 14:  Indicates whether full or half duplex is selected
  294.                 (FDX or HDX).
  295.     
  296.     
  297.     A typical status bar in terminal mode may look like this:
  298.     
  299.     ----------------------------------------------------------------
  300.     1> Rcv Log Dir PrScr Send Hangup Level Help Quit 12N81 LG -- FDX
  301.     ----------------------------------------------------------------
  302.     
  303.     When HModem II is not in terminal mode, such as when transferring
  304.     a file or dialing a number, the mode will be indicated on the
  305.     status bar, along with special instructions, such as "Press ESC
  306.     to abort".
  307.     
  308.     
  309.     2.3.3  Line Settings
  310.     
  311.     In order to use HModem II to communicate with a modem or any
  312.     other system, you must have the correct line settings.  The
  313.     eleventh section of the status bar in terminal mode indicates the
  314.     current line settings with a string such as "24E71".  This means,
  315.     for example, 2400 bits per second, even parity, 7 data bits, and
  316.     1 stop bit.  If you are not sure what settings you should use,
  317.     "12N81" There are three (3) ways in which the current settings
  318.     can be changed:
  319.     
  320.  
  321.  
  322.  
  323.  
  324.                                   - 5 -
  325.  
  326.  
  327.  
  328.     HModem II
  329.  
  330.  
  331.  
  332.     1.  The "Configure" function:  When the function key labeled
  333.         "Configure" is pressed, the configure utility is called.  The
  334.         default line settings are then settable by the user.
  335.     
  336.     2.  The "Dial" function:  Whenever the user dials a number from
  337.         the dialing directory, the line settings are changed to the
  338.         ones listed beside the number in the directory.
  339.     
  340.     3.  The "Host" mode:  When the user selects host mode, HModem II
  341.         sets the parity to "none", the data bits to 8, and the stop
  342.         bit to 1.  HModem II then matches whatever bit rate the
  343.         caller is using when a connect is made.  When "Host" mode is
  344.         exited, the default line settings are re-established.
  345.     
  346.     
  347.     2.3.4  Help Screens
  348.     
  349.     From terminal mode you can get help by pressing the "Help" key. 
  350.     You can page through the help screens using the up-arrow and
  351.     down-arrow keys.
  352.     
  353.     
  354.     2.3.5  Exiting HModem II
  355.     
  356.     The "Quit" key is used for exiting HModem II.  You will be given
  357.     a chance to change your mind before the program exits back to
  358.     CP/M.
  359.     
  360.     
  361.     3  A WORD ABOUT FILE TRANSFER PROTOCOLS
  362.     
  363.     First there was Ward Christenson's XMODEM protocol, which became
  364.     a standard for shareware and public domain file transfer
  365.     protocols.  It worked quite well on early bulletin board systems
  366.     although it was a little cumbersome to use and suffered from a
  367.     vunerability to synchronization errors.  YMODEM was an
  368.     improvement on XMODEM, offering slightly faster transfer and a
  369.     little more ease of use.  ZMODEM, developed by Chuck Forsberg on
  370.     contract to TELENET, was a major step forward, eliminating
  371.     XMODEM's synchronization problem and minimizing the impact of
  372.     network delays.  Chuck placed the C source code for ZMODEM in the
  373.     public domain, which greatly aided me in developing the ZMODEM
  374.     support for HModem II.
  375.     
  376.     HModem II supports all three protocols.  Virtually all bulletin
  377.     boards support XMODEM.  Many also support YMODEM.  Support for
  378.     ZMODEM is growing, and I hope it will soon be adopted by all,
  379.     especially the large networks.
  380.     
  381.     
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.                                   - 6 -
  390.  
  391.  
  392.  
  393.     HModem II
  394.  
  395.  
  396.  
  397.     4  THE REST OF THE DOCUMENTATION
  398.     
  399.     This program sports a lot of features, and it deserves a manual
  400.     of about 100 pages.  However, since like most programmers I don't
  401.     like to write documentation, this is all you will get for now. 
  402.     My firm conviction is that a good application program does not
  403.     need much documentation, so I suspect you will not really need
  404.     the manual if I have done a good job on the program.  If you are
  405.     new to telecommunications, pick up a good book on the basics or
  406.     get an experienced friend to help you and you should be able to
  407.     get along.
  408.     
  409.     If you really get stuck, drop a line on GEnie to HMANEY, or via
  410.     US Mail to the address above.
  411.     
  412.     
  413.     5  CHANGE HISTORY
  414.     
  415.     Ver 2.05.05    5 May 88       Original Shareware release
  416.         2.06.00   12 May 88       Fixed minor bug in XMODEM transfer.
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.                                   - 7 -
  455.  
  456.