1 02/37/84  hasp_host_
  2 
  3 Syntax for attach description:  hasp_host_ -control_args
  4 
  5 
  6 Function: The hasp_host_ I/O module simulates record-oriented I/O to a
  7 single device of a workstation while communicating with a host system
  8 using the HASP communications protocol.  See "Notes" below.
  9 
 10 Entry points in this module are not called directly by users; rather,
 11 the module is accessed through the I/O system.
 12 
 13 This I/O module must be attached to a subchannel of a communications
 14 channel configured to use the HASP ring-0 multiplexer.  See the
 15 description of the HASP multiplexer in MAM Communications.
 16 
 17 This I/O module is designed primarily for use by the Multics I/O
 18 daemon.
 19 
 20 
 21 Control arguments:
 22    The following control arguments are optional, with the exception of
 23    -comm, -device, and -tty:
 24 -comm hasp
 25    is required for compatibility with other I/O modules used by the I/O
 26    daemon.
 27 -ebcdic
 28    is accepted for compatibility with other I/O modules used by the I/O
 29    daemon, but is ignored by this I/O module.
 30 -device STR
 31    specifies the type of device for this attachment.  STR must be one
 32    of teleprinter, reader, printer, or punch.  The type specified by
 33    this control argument must match the type of device attached to the
 34    channel name defined below.
 35 
 36 
 37 -physical_line_length N, -pll N
 38    is accepted for compatibility with other I/O modules used by the I/O
 39    daemon, but is ignored by this I/O module.
 40 -terminal_type STR, -ttp STR
 41    is optional and is used to define the character set used by the
 42    remote system.  STR must be the name of a terminal type defined in
 43    the site's terminal type table (TTT).  See "Character set
 44    specification" below.
 45 -tty channel_name
 46    specifies the communications channel to be attached.  The channel
 47    must be a subchannel of a HASP multiplexed channel
 48    (e.g., a.h014.prt3).
 49 
 50 
 51 Open operation:
 52 The hasp_host_ I/O module supports the sequential_input,
 53 sequential_output, and sequential_input_output opening modes.
 54 
 55 
 56 Write record operation:
 57 The write_record entry converts the supplied data record from ASCII to
 58 the remote system's character set, performs data compression, and
 59 transmits the record to the HASP multiplexer.
 60 
 61 The structure and the referenced constants supplied to this I/O module
 62 are contained in the terminal_io_record.incl.pl1 include file.
 63 
 64 
 65 Read record operation:
 66 The read_record entry returns a single record from the device,
 67 basically performing the inverse of the functions described for the
 68 write_record operation.  Additionally, for line printer attachments,
 69 the carriage control information in the record is converted into the
 70 appropriate slew information in the terminal_io_record.
 71 
 72 The structure and the referenced constants that this I/O module
 73 returns in the supplied buffer are contained in the terminal_io_record
 74 include file.
 75 
 76 
 77 Modes operation:
 78 This module accepts the non_edited and default modes for compatibility
 79 with other I/O modules used by the I/O daemon, but ignores them.
 80 
 81 
 82 List of control operations:
 83    This I/O module supports the following control operations:
 84 end_write_mode
 85    ensures that all previously written data has been transmitted to the
 86    HASP multiplexer and then writes an end-of-file record for the
 87    device.
 88 hangup_proc
 89    is used to specify a procedure to be invoked when this attachment's
 90    channel is hung up.
 91 
 92 
 93 read_status
 94    determines whether or not there are any records waiting for a
 95    process to read.
 96 resetread
 97    discards any pending input.
 98 resetwrite
 99    discards any as-yet unprocessed output.
100 runout
101    ensures that all data has been transmitted to the HASP multiplexer
102    from where it is guaranteed to be transmitted to the terminal.
103 select_device and reset
104    are ignored rather than rejected for compatibility with other I/O
105    modules used by the I/O daemon.
106 
107 
108 signon_record
109    supplies a SIGNON record for transmission to the remote system.
110    The info_ptr must locate the signon_record_info structure, which
111    is declared in the include file hasp_signon_record_info.incl.pl1.
112    See "Notes on SIGNON processing" below.
113 no_signon_record
114    validates that the multiplexer is not configured to send a SIGNON
115    record to the remote system.  See "Notes on SIGNON processing"
116    below.
117 
118 
119 Notes on SIGNON processing:
120 Before communicating with certain remote systems, Multics must send the
121 SIGNON record.  This specially formatted record identifies Multics to
122 the remote system.
123 
124 For these systems, the Multics multiplexer must be configured to use
125 signon_mode (see MAM Communications).  Before data transmission is
126 permitted, the signon_record control order must be issued on an I/O
127 switch attached to the operator's console subchannel of the
128 multiplexer.
129 
130 If the remote system does not expect a SIGNON record, the
131 no_signon_record control order can be used to validate that the
132 multiplexer channel is properly configured.
133 
134 
135 Character set specification:
136 This I/O module allows the specification of the character set used by
137 the remote system through the -terminal_type attach option.
138 
139 If -terminal_type is given, the referenced terminal type must be
140 defined in the site's TTT with an input and an output translation
141 table.  This module uses these translation tables to convert data from
142 the remote system's character set to ASCII and vice versa.
143 
144 If -terminal_type is not given, the remote system is assumed to use
145 EBCDIC.  In this case, the subroutine ascii_to_ebcdic_ is used to
146 convert data sent to the system; the subroutine ebcdic_to_ascii_ is
147 used to convert data received from the remote system.
148 
149 
150 Notes:
151 As stated above, this I/O module is used to simulate the operation of a
152 single device of a HASP workstation.
153 
154 If the simulated device is a card reader, the caller supplies records
155 to this module that are then formatted and transmitted to the remote
156 host; in other words, a card reader attachment through this switch is
157 an output-only attachment.
158 
159 Similarly, this I/O module receives records from the remote host when
160 the simulated device is either a line printer or a card punch.  Thus,
161 line printers and card punches attached through this I/O module are
162 input-only devices.
163 
164 
165 Special I/O daemon software is provided to allow Multics to simulate
166 the operations of a workstation in order to submit jobs to remote
167 systems and receive those jobs' output print and punch files.  This
168 workstation simulator uses this I/O module for communications with the
169 remote host.