Skip to content

Commit

Permalink
version 3.00
Browse files Browse the repository at this point in the history
What's new in release 3.00
Release date: 2 October 2003

  * Dynamically loaded module support for devices, instructions, and
operator console panels (Jan Jaeger, David "Fish" Trout, Ivan Warren)
  * Shared and remote DASD support (Greg Smith)
  * z990 (ALS4) instruction support (Roger Bowler, Jan Jaeger, Bernard van
der Helm)
  * HFP Multiply-Add/Subtract Facility (Roger Bowler)
  * Long Displacement Facility (Roger Bowler)
  * Simplified network adapter specifications (David "Fish" Trout, Jim
Pierson)
  * New device emulations: 2703, 3410, 3490, 9347 (Ivan Warren)
  * ECPS:VM support (Ivan Warren)
  * Reworked process priority handling (Mark Gaubatz)
  * Greatly improved interval timer resolution (Mark Gaubatz)
  * Internal consistency checking improvvements (Greg Smith)
  * Corrected 3270 session disconnect processing (Ivan Warren)
  * Instruction disassembler in control panel (Jan Jaeger)
  * Tape read backward fixes (Jay Jaeger)
  * Fix for double memory consumption bug on Windows (Mark D., David
"Fish" Trout)
  * OMA tape processing fixes (Ivan Warren)
  * Message logging restructuring (Jan Jaeger, David "Fish" Trout)
  * S/370 I/O race condition fixes (Victor Shkamerda, Greg Smith)
  * Manual pages for some commands (Jim Morrison)
  • Loading branch information
rbowler committed Jun 19, 2012
1 parent 80613a8 commit 15910bf
Show file tree
Hide file tree
Showing 220 changed files with 100,466 additions and 23,896 deletions.
258 changes: 257 additions & 1 deletion CHANGES

Large diffs are not rendered by default.

677 changes: 584 additions & 93 deletions Makefile.am

Large diffs are not rendered by default.

1,478 changes: 1,037 additions & 441 deletions Makefile.in

Large diffs are not rendered by default.

149 changes: 149 additions & 0 deletions README.COMMADPT
@@ -0,0 +1,149 @@
Preliminary 2703 BSC Support

Only allows Point to Point connection.


Hercules device statement :

CCUU 2703 lport=port lhost=host rhost=host rport=port dial=IN|OUT|INOUT|NO
[pto=nnn|0|-1] [rto=nnn|0|-1] [eto=nnn|0|-1]

lport : the local TCP port number or service name on which the line will listen
for incoming TCP calls
This parameter is irrelevant and is ignored for DIAL=OUT
for DIAL=IN|INOUT|NO, this parameter is mandatory

cwlhost : The local interface IP address on which to listen.
if not specified, all interfaces will be used.
ex:
lhost=127.0.0.1 : Only accept calls from local host
lhost=192.168.0.1 : Only accept calls from hosts
that can be routed through the interface
that has an IP address of 192.168.0.1
If there is no 192.168.0.1 local IP address,
this will fail.
This parameter is irrelevant and is ignored for DIAL=OUT
for DIAL=IN|INOUT|NO, this parameter is mandatory


rhost : the remote host ip address or name
This parameter is irrelevant and is ignored for DIAL=IN
for DIAL=OUT|INOUT|NO, this parameter is mandatory

rport : the remote port number or service name
This parameter is irrelevant and is ignored for DIAL=IN
for DIAL=OUT|INOUT|NO, this parameter is mandatory

rto, pto, eto : Read, Poll and Enable Timeout values in miliseconds.
specifying 0 means No Timeout (infinite wait). -1 Means immediate
timeout.

The read timeout is how long the handler will wait for an ending
character after the last character was received or the I/O initiated.
The read timeout default is 3000 Miliseconds (3 Seconds)

The poll timeout is how long the handler will wait for a polled
station to respond to a poll request.
The poll timeout default is 3000 Miliseconds (3 Seconds)

The enable timeout is how long the handler will wait for the TCP
connection to be established.
The enable timeout default is 10000 Miliseconds (10 Seconds), except
if DIAL=NO is also specified, in which case the enable timeout defaults
to 0.

Note : the ETO parameter is ignored if DIAL=NO is not specified.
for a dialed line, there is no enable timeout. If the eto
parameter is specified and DIAL is not "NO", then a warning message
is issued and the parameter is ignored.


dial=IN|OUT|INOUT|NO
Indicate call direction (if any).
This parameter also modifies the behaviour of certain CCWS
as well as TCP incoming call handling :

ENABLE :
DIAL=IN|DIAL=INOUT
Wait forever for an incoming call

DIAL=NO
Completes immediatelly if a call
is already present
Otherwise, attemps connecting to the
remote end
if the call fails, ENABLE exits with
Int Req status
DIAL=OUT
Enable is not a valid CCW for a DIALOUT
only line
DIAL :
DIAL=IN|DIAL=NO
DIAL is not a valid CCW for a DIAL IN
or non-switched line
DIAL=OUT|DIAL=INOUT
The outgoing call is attempted

Incomming TCP call :
In any case, if a call is already present, the
call is rejected.

DIAL=NO :
The call is accepted, even if no CCW is
currently executing

DIAL=OUT :
The call is rejected

DIAL=IN|DIAL=INOUT
The call is accepted if the line is currently
executing an ENABLE ccw.


The communication protocol :

The communication protocol is basic. Every character written
by the guest program with a WRITE CCW is transfered to the
remote end, untranslated and untouched (except for Transparent
BSC rules which deem that DLE characters are doubled when the
program has previously written a DLE/STX sequence).


Dial data format

Dial data is originally as follows :
x x x x 0 0 0 0 : Dial # 0
.........
x x x x 1 0 0 1 : Dial # 9
x x x x 1 1 0 0 : EON
x x x x 1 1 0 1 : SEP

In order to perform an outgoing call,
the data must follow these specifications :

N[N[N]]SEPN[N[N]]SEPN[N[N]]SEPN[N[N]]]SEPN[..[N]][EON]

Where N is any dialing number from 0 to 9 and SEP
is the separator.

The 4 first group of digits represet the IP address.
The last group represent a TCP port number.

For example (* is the SEP character representation) :

192*168*0*1*8888 : will issue a TCP connection to
192.168.0.1 port 8888

The EON is optional. If it is present, it must be the
last character of the dial data.

Bugs, Caveats

The Address Prepare is not implemented
The POLL CCW Has not been tested
Group DIAL IN is not implemented
DIAL CCW Not tested
There is 1 thread per line, when there should be 1 thread for ALL lines.
MAXDEVT may have to be adjusted under WINDOWS to accomodate for a large number of lines
(because some I/O may take an undefinite amount of time).
There is no 'REAL' Bsc line support yet.
130 changes: 130 additions & 0 deletions README.CVS
@@ -0,0 +1,130 @@

B u i l d i n g H e r c u l e s

If you're simply trying to figure out how to build Hercules from the
distributed source files (i.e. NOT from the CVS sources), then skip
to the "Building Hercules" section further below.


BUILD PREPARATION
-----------------

In order to build Hercules from the CVS sources, you must have installed:


Package Version (or greater!)
----------------------------------
autoconf 2.50 (or greater!)
automake 1.5 (or greater!)
flex 2.5 (or greater!)
gawk 3.0 (or greater!)
gcc 2.95 (or greater!)
gettext 0.11 (or greater!)
grep 2.5 (or greater!)
libiconv 1.8 (or greater!)
libintl 0.10 (or greater!)
m4 0.0 (or greater!)
make 3.79 (or greater!)
perl 5.6 (or greater!)
sed 3.02 (or greater!)


All of these tools can be found at www.gnu.org in source code form, and
are also widely available in packaged form (RPM, DEB, Solaris packages,
etc.).

Once you have these tools installed, simply enter the command:

sh ./autogen.sh

This will, among other things, create you a shell script called "configure".
The resulting configure script (created by the above 'autogen' command) is
then what you use to build Hercules with. (It will probably create a bunch
of other directories and files too, but we're mostly concerned about the
configure script).

Note: even though the CVS sources already come with a configure script, it
may or may not be current/correct, so you should always run autogen at least
one time after checking out the current source from CVS. Once you've run
autogen once though, then you shouldn't need to ever run it again (unless
another developer changes something, but they should let you know if they
do).



BUILDING HERCULES
-----------------

Now that a 'configure' script has been built for us, let's use it! :)

(Note: if you're simply trying to build Hercules from the distributed
source files (i.e. NOT from the CVS sources), then just use the 'configure'
script that should have been included with the source distribution tarball.)

Before you trying using the configure script, you may wish to review
the information in the INSTALL file. It contains generic installation
instructions for how to build/install most any package. The instructions
there pertain just as much to Hercules as they do to any other package.

Since the information there is pretty detailed however, rather than try
to slog your way through it all, you may wish to first review the below
summarized version first.

Briefly, the way you build Herc is to first "configure" the building
process and then invoke your pre-configured building process. The build
process basically consists of a 'make' command which processes a 'makefile'.
The makfile however needs to be customized for your system. That's what
the "configure" script does. It contructs a customized makefile and that
is what is meant by "configuring your building process".


Here's the entire build process step-by-step:


To build Herc, first switch to the directory where the source files
are and then configure the build process by entering the following
command:

./configure

(Note: you may or may not wish to enter additional parameters
to the configure command. See further below)

Then simply invoke your pre-configured build process by entering
the following command:

make

That's it! The 'make' command should build Hercules for you. After
it's been built, you may or may not wish to "install" it.

To "install" Hercules into the default package installation
directory after building it, enter the following command:

make install

That will copy the just built binaries to their proper place.

To uninstall Hercules once it's been installed, simply enter the
command:

make uninstall

and the previously copied files will be removed (deleted).


Note: you may or may not wish to add some additional parameters to
the above mentioned "configure" command. One of the more common ones
for those who are building Herc under Cygwin is "--enable-fthreads".
Enter "./configure --help" for more information regarding the various
parameters that Hercules's customized "configure" script supports
for building Hercules.


--
Matt Zimmerman <mdz@debian.org>
08 Oct, 2001

updated in detail by:
"Fish" (David B. Trout)
30 Jul, 2002

0 comments on commit 15910bf

Please sign in to comment.