1 03/31/83  remote_punch_
  2 
  3 
  4 Function: The remote_punch_ I/O module presents a stream I/O interface
  5 to the caller and performs record output to a card punch, which is
  6 assumed to be part of a remote I/O device, such as a Honeywell Level 6
  7 remote batch facility (G115 type), an IBM 2780, or an IBM 3780.
  8 Except for hardware restrictions, this module performs all the
  9 necessary code conversion and control in such a way that remote and
 10 local card punching are the same.
 11 
 12 Entry points in this module are not called directly by users; rather,
 13 the module is accessed through the I/O system.
 14 
 15 This module in turn constructs an attach description for the module
 16 specified in the -terminal control argument, passing the other attach
 17 information specified by the caller.
 18 
 19 
 20 Syntax and Attach Description:
 21      remote_punch_ -control_arg
 22 
 23 
 24 Control arguments:
 25 -card_ll N
 26    specifies the length of records (cards) supported by the terminal
 27    I/O module.  (Default is 80.)
 28 -device STR
 29    defines the type of device to be simulated by this I/O module and
 30    can be either "punch" or "reader_simulator".  This specification is
 31    passed to the terminal I/O module as "-device punch" or "-device
 32    reader", respectively.  (Default is "punch".)
 33 -horizontal_tab, -htab
 34    specifies that the device supports the horizontal tab character.
 35    (Default is the use of the appropriate number of spaces.)
 36 -non_edited
 37    specifies that nonprinting characters can be passed directly to the
 38    terminal I/O module.  (Default is that these characters are not
 39    passed.)
 40 
 41 
 42 -runout_spacing N, -rnsp N
 43 -physical_page_length N, -ppl N
 44    are accepted and ignored for compatibility with other device I/O
 45    modules.
 46 -terminal STR
 47    STR specifies the terminal I/O module to be attached to this device
 48    I/O module.  (Required)
 49 
 50 All other attach arguments are passed directly to the terminal I/O
 51    module.
 52 
 53 
 54 Open Operation:
 55 The remote punch I/O module supports the stream_output opening mode.
 56 
 57 
 58 Put Chars Operation:
 59 The put_chars entry splits the data to be written into records of the
 60 size given by -card_ll and transmits these records to the terminal I/O
 61 module.  This operation is repeated until all the characters specified
 62 by the caller have been transmitted.
 63 
 64 
 65 List of Control Operations:
 66    The remote_punch device I/O module supports the following control
 67    operations:
 68 binary_punch
 69    requests that all subsequent data be punched in binary (rather than
 70    RMCC) if supported by the terminal I/O module.  This control order
 71    is then passed on to the terminal I/O module.
 72 get_count
 73    returns the current record count, which is the number of records
 74    written to the terminal I/O module since the last reset control
 75    operation.  This operation is not passed on to the terminal I/O
 76    module.  The info_ptr must point to the following PL/1 structure.
 77    (This structure is taken from the counts structure in
 78    prt_order_info.incl.pl1 for compatibility with procedures that use
 79    several device I/O modules.)
 80 
 81 
 82       dcl 1 counts aligned based,
 83             2 prt_data_pad (4) fixed bin,
 84             2 record_count fixed bin (35),
 85             2 prt_pad fixed bin;
 86 
 87    The variable record_count will contain the returned value.  This
 88    corresponds with the variable line_count from the other structure.
 89 reset
 90    sets the current record count to zero, returns to punching in RMCC
 91    (remote Multics card code), and passes the order to the terminal I/O
 92    module.
 93 
 94 All other control operations are passed directly to the terminal I/O
 95 module for processing.
 96 
 97 
 98 Modes Operation:
 99 This I/O module supports the RMCC output card mode defined in the
100 Programmer's Reference Manual.  It also supports the two modes
101 non_edited and default, which enable and disable edited output
102 conversion, if output conversion has been enabled by the terminal I/O
103 module.
104 
105 
106 Position Operation:
107 This I/O module supports all the position operations supported by the
108 terminal I/O module specified in the attach description.