home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / f / k-slave.lbr / -MANUAL.PZN / -MANUAL.PRN
Encoding:
Text File  |  1993-10-26  |  15.3 KB  |  463 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                            The Kaypro Master/Slave Software System
  8.  
  9.  
  10.  
  11.             Synopsis:  Frequently  there  is  a  need  for  several  Kaypro  users
  12.             (especially  within  a  Users  Group),  to  simultaneously  witness  a
  13.             demonstration that is being run on only one  machine.   This  software
  14.             package  allows  a  collection  of  Kaypro  computers  to be connected
  15.             together in such a manner that a demonstration  can  be  done  on  one
  16.             machine   (the   Master)   while   all  other  machines  (the  Slaves)
  17.             simultaneously display what is on  the  screen  of  the  Master.   The
  18.             following features have been incorporated:
  19.  
  20.                  1.  The machines are  linked  together  by  serial  communication
  21.                      lines.  The BIOS of the Master is transiently patched so that
  22.                      every character that is sent to the screen is also  sent  out
  23.                      the  serial  (Punch) port.  The Master program will therefore
  24.                      run on any Kaypro machine that supports output to the "punch"
  25.                      device (which is usually TTY:, or the serial printer port).
  26.  
  27.                  2.  The Slave captures incoming characters  by  interrupt  driven
  28.                      software,  (using mode 2 interrupts on the Z80).  This allows
  29.                      high speed  communication  between  machines  without  losing
  30.                      characters.
  31.  
  32.                  3.  The machines can be connected in two manners:
  33.  
  34.                      1.  One Master can connect from its serial  port  to  several
  35.                          Slaves, using a "fanning out" method of interconnection.
  36.  
  37.                      2.  Any Kaypro with 2 serial ports can act as  a  Master  and
  38.                          Slave at the same time, therefore allowing daisy-chaining
  39.                          from one machine to the next.
  40.  
  41.  
  42.  
  43.             Source Languages:  The Master and Slave programs are both  written  in
  44.             Turbo  Pascal  (configured  for the Kaypro II terminal).  There is one
  45.             external  assembly  language   subroutine   (the   interrupt   service
  46.             subroutine)  written  in  Z80  assembly language, which is used by the
  47.             Slave program.  The programs are named as follows:
  48.  
  49.                  1.  K-MASTER.PAS is the source code for the Master program.
  50.  
  51.                  2.  K-SLAVE.PAS is the source code for the Slave program.
  52.  
  53.                  3.  K-SLAVE.Z80 is the source code for  the  external  subroutine
  54.                      for the Slave program.
  55.  
  56.  
  57.  
  58.                                               1
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                               The Kaypro Master/Slave Software System
  71.  
  72.  
  73.                  4.  K-SLAVE.HEX  is  the  Intel  format  Hex  object   file   for
  74.                      K-SLAVE.Z80.
  75.  
  76.                  5.  K-MASTER.COM is the Master program.
  77.  
  78.                  6.  K-SLAVE.COM is the slave program.
  79.  
  80.             NOTE!!:  The file K-SLAVE.HEX is absolutely necessary for the Slave to
  81.             run, as it is dynamically loaded into high memory by the Slave program
  82.             at run time.  It must be on the same disk as K-SLAVE.COM.
  83.  
  84.             Disclaimer:  The author assumes no responsibility for anyone who  uses
  85.             this program.
  86.  
  87.             Note:  This is public domain software.  Please give credit where it is
  88.             due.
  89.  
  90.             The following pages contain the documentation from  the  beginning  of
  91.             the  Master  and  Slave  programs,  respectively.  Following that is a
  92.             brief user's guide.
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.                                                    2
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                    The Kaypro Master/Slave Software System
  137.  
  138.  
  139.                { This program comprises the "master" module of the Master/Slave
  140.                  Kaypro demonstration network.
  141.  
  142.  
  143.                     NOTE:  This program is Public Domain software and may
  144.                     be used for any but commercial purposes.
  145.  
  146.                     DISCLAIMER: The author of this program assumes no responsibility
  147.                     for those who use it.
  148.  
  149.                     Source Language:  Turbo Pascal.
  150.  
  151.                  The following functions are performed:
  152.  
  153.                  - The serial printer port is configured to 8 bits/char, no parity,
  154.                    with baud rate menu selectable.  Unlike the Kaypro default
  155.                    configuration, Autoenable on the SIO is off, so CTS has no
  156.                    effect on transmission.
  157.                  - The BIOS is patched so that whenever a call to CONOUT (primitive
  158.                    output to console) is made, a call to PUNCH is also made.  PUNCH
  159.                    should be configured to be the serial printer port on the Kaypro.
  160.                    This is the only choice on the Kaypro 10.  The BIOS is
  161.                    patched as follows:
  162.                      1.  Locations 1-2 are used to get the transfer vector address
  163.                          to WBOOT.
  164.                      2.  At WBOOT+9 is the transfer vector to CONOUT.  This vector
  165.                          points to the entry point of CONOUT.  Call this entry
  166.                          point CONOUT_ENTRY.
  167.                      3.  At WBOOT+15 is the transfer vector to PUNCH.
  168.                      4.  A memory location (call it PATCHLOC) is chosen in
  169.                          unused low memory.  This defaults to location 8.
  170.                      5.  Starting at location PATCHLOC, the following instruction
  171.                          sequence is patched in:
  172.                                     PUSH  BC   ;Save argument register
  173.                                     CALL  CONOUT_ENTRY
  174.                                     POP   BC
  175.                                     JMP   PUNCH
  176.                      6.  The transfer vector to CONOUT is changed from:
  177.                                     JMP   CONOUT_ENTRY
  178.                                         to
  179.                                     JMP   PATCHLOC
  180.  
  181.                  - Every Kaypro should support output to the punch device, as
  182.                    the organization of any CPM BIOS includes this as a primitive
  183.                    function.  However, should you discover that the punch device
  184.                    is not supported at all on your Kaypro, you can do the following:
  185.                       1. Reconfigure your system so that the "List" device
  186.                          is TTY: (the serial port) rather than LPT: (the parallel
  187.                          port).
  188.  
  189.  
  190.                                                    3
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                    The Kaypro Master/Slave Software System
  203.  
  204.  
  205.                       2. Make the following change in the souce code:
  206.                             from...
  207.                                const  punch_offset = 15;
  208.                               to...
  209.                                const  punch_offset = 12;
  210.                       3. Borrow Turbo Pascal from someone and recompile the program.
  211.                  - This patch should work on any Kaypro computer.  It requires that
  212.                    8 bytes of memory, starting at PATCHLOC, are not modified by
  213.                    any of the application programs running on the machine during
  214.                    the demo session.
  215.                  - There are some system messages that will be displayed on the
  216.                    master screen but not on the slave screens.  For example,
  217.                    on the Kaypro 10 running CPM 2.2G, the "Warm Boot" message
  218.                    is displayed only on the Master.  This is because the warm
  219.                    boot message is printed by the BIOS, and it makes a call
  220.                    directly to CONOUT_ENTRY, rather than to the CONOUT transfer
  221.                    vector, so this patch has not effect.  HOWEVER, virtually
  222.                    every application program makes its i/o calls through the
  223.                    BIOS or the BDOS (which uses the BIOS).  This patch should
  224.                    therefore work with every application that adheres to the
  225.                    preceeding stipulation (that the 8 bytes of memory at PATCHLOC
  226.                    are not modified by the application being demonstrated).
  227.                                                                                     }
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.                                                    4
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                    The Kaypro Master/Slave Software System
  269.  
  270.  
  271.             {       This program comprises the "slave" module of the Master/Slave
  272.                     Kaypro demonstration network.
  273.  
  274.                     Synopsis:  This program is an interrupt-driven receive-only
  275.                     terminal emulator.  Whatever comes in the serial (modem) port
  276.                     is send directly to the BIOS for screen output.
  277.  
  278.  
  279.                     NOTE:  This program is Public Domain software and may
  280.                     be used for any but commercial purposes.
  281.  
  282.                     DISCLAIMER: The author of this program assumes no responsibility
  283.                     for those who use it.
  284.  
  285.                     Source Language:  Turbo Pascal with 1 external assembly language
  286.                     interrupt service routine.
  287.  
  288.                     The slave module is written to function on all Kaypro machines.
  289.                     Some of the screen highlighting that the 10's and -84's can do
  290.                     may not work on the earlier 2's and 4's.
  291.  
  292.                     The following assumptions are made:
  293.  
  294.                     1. The machine must be able to support mode 2 interrupts from
  295.                        the incoming serial port.
  296.                     2. Any RAM above 8000h must be accessible at all times, including
  297.                        during ROM calls.  (I think) this condition holds on all Kaypro
  298.                        machines.
  299.                     3. Certain hardware addresses, defined in the initial constant
  300.                        declaration section of the program, may need to be modified
  301.                        for use on non-Kaypro machines.  However, I believe they are
  302.                        all the same on the entire Kaypro line (at least the 2, 4, 10,
  303.                        and -84 models).
  304.             }
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.                                                    5
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                    The Kaypro Master/Slave Software System
  335.  
  336.  
  337.                                         Using the Master program
  338.  
  339.             Simply enter K-MASTER.  At the beginning of the program, the  user  is
  340.             asked   a  few  configuration  questions.   The  default  answers  are
  341.             displayed in square brackets.  By hitting only a  carriage  return  as
  342.             your  response,  the default values are used.  The following questions
  343.             are asked:
  344.  
  345.                  1.  Serial Port Number (status/control) [000E] :
  346.                      This question  requests  the  port  address  for  status  and
  347.                      control  of  the  Punch  device.  This defaults to the serial
  348.                      printer port on the Kaypros with 2 serial ports.  For Kaypros
  349.                      with only one serial port, this should be changed to 6.
  350.  
  351.                  2.  Port number for Baud Rate [0008] :
  352.                      This question requests the port address  for  the  baud  rate
  353.                      controller for the punch device.  This defaults to the serial
  354.                      printer port on the Kaypros with 2 serial ports.  For Kaypros
  355.                      with only one serial port, this should be changed to 0.
  356.  
  357.                  3.  Patch address [0008] :
  358.                      This question requests the address to  put  the  BIOS  patch,
  359.                      which  is  8 bytes long.  It defaults to location 8 (yes, low
  360.                      memory.  The BIOS transfer vector table  is  modified  also).
  361.                      Few  (most  likely  no)  application  programs use the memory
  362.                      locations between  0008hex  and  0010hex.   Thus  this  patch
  363.                      address is probably OK.  If your machine bombs in Master mode
  364.                      when you use a particular program, try cold booting and using
  365.                      a different patch address.
  366.  
  367.                  4.  You will then be presented with a baud rate menu.  Try 19200.
  368.                      If that doesn't work, 9600 should.
  369.  
  370.  
  371.             If the Master is already is in effect, you will be asked if  you  want
  372.             to  remove it.  If your response is positive, the machine will then be
  373.             taken out of Master mode.  If negative, you will be asked if you  want
  374.             to  change  the baud rate of the Master.  All questions that require a
  375.             yes/no answer should be answered with a  single  letter,  "Y"  or  "N"
  376.             (upper or lower case is OK).
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.                                                    6
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                    The Kaypro Master/Slave Software System
  401.  
  402.  
  403.                                         Using The Slave Program
  404.  
  405.             Enter K-SLAVE.  The slave program always uses  the  modem  port  (port
  406.             address  #4 for data) for input.  This can be changed rather simply by
  407.             changing some constants in the source program,  however,  all  Kaypros
  408.             (to the best of my knowledge) use that address for the modem port.
  409.  
  410.             The slave program also prompts with a baud rate  menu  for  the  input
  411.             speed.  Obviously, the baud rate must be set the same for the Slave as
  412.             it is for the Master.
  413.  
  414.             A Slave may be taken  out  of  Slave  mode  at  any  time  by  hitting
  415.             control-Z.   If  it  is daisy chained and also in Master mode, it will
  416.             remain in Master mode.
  417.  
  418.  
  419.                                           Wiring the machines
  420.  
  421.             The physical assignments of the pins on Kaypros are as follows:
  422.  
  423.                                 Modem Port:   Transmit:   Pin 2
  424.                                               Receive:    Pin 3
  425.  
  426.                                 Serial Printer
  427.                                 Port:         Transmit:   Pin 3
  428.                                               Receive:    Pin 2
  429.  
  430.             Thus, to run Master to Slave:  If the Master uses the  Serial  Printer
  431.             port  for  output (i.e.  a Kaypro 10, or -84), wire the cables Male to
  432.             Male, connecting pins 2-2, 3-3, 7-7, and 1-1.  If the master uses  the
  433.             modem port for output, the cables must wired connecting pins 2-3, 3-2,
  434.             7-7, and 1-1 (i.e.  a null modem connection).  Pin 20 (Clear to  send)
  435.             is  not  used  and  does  not  need to be connected (but it won't hurt
  436.             anything).
  437.  
  438.  
  439.             Questions/suggestions?
  440.  
  441.             Mark Frank
  442.             Washington Univ Med School
  443.             Dept Genetics
  444.             4566 Scott Ave
  445.             St Louis, MO 63112
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.                                                    7
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.