forked from SDL-Hercules-390/hyperion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hercconf.html
5118 lines (4487 loc) · 227 KB
/
hercconf.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
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
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
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
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><TITLE>
Hercules: Configuration File
</TITLE>
<LINK REL=STYLESHEET TYPE="text/css" HREF="hercules.css">
<link rel="shortcut icon" href="images/favicon.ico" />
<link rel="icon" href="images/favicon.ico" />
</HEAD><BODY BGCOLOR="#ffffcc" TEXT="#000000" LINK="#0000A0" VLINK="#008040" ALINK="#000000">
<h1>Hercules Version 4: Configuration File</h1>
<p>
This page describes the configuration file for the Hercules S/370,
ESA/390, and z/Architecture emulator.
<p>
The configuration file <b><i>hercules.cnf</b></i> contains the
processor and device layout. It is roughly equivalent to the IOCDS on
a real System/390. The configuration file is an ASCII text file.
<h3>Example configuration file</h3>
<p>
<i>
<blockquote>
<b>Please note</b> that the below example configuration file should
<u>not</u> be considered a good example of how an actual configuration
file should look! It is only meant to illustrate what some of the supported
configuration file statements look like and how they are used.
</blockquote>
</i>
<p><br>
<center>
<table border=1><tr><td>
<pre><code>
####################################################################
# HERCULES EMULATOR CONTROL FILE #
# (Note: not all parameters are shown) #
####################################################################
#------------------------------------------------------------------
# <a href="#system_parameters">SYSTEM PARAMETERS</a>
#------------------------------------------------------------------
<a href="#HERCPRIO">##HERCPRIO</a> 0 (deprecated; unsupported)
<a href="#HERCPRIO">##TODPRIO</a> -20 (deprecated; unsupported)
<a href="#HERCPRIO">##DEVPRIO</a> 8 (deprecated; unsupported)
<a href="#HERCPRIO">##CPUPRIO</a> 0 (deprecated; unsupported)
<a href="#ARCHLVL">##ARCHMODE</a> ESA/390 (deprecated; use ARCHLVL)
<a href="#ASN_AND_LX_REUSE">##ASN_AND_LX_REUSE</a> disable (deprecated; use FACILITY)
<a href="#PANRATE">##PANRATE</a> FAST (deprecated; use PANOPT)
<a href="#PANTITLE">##PANTITLE</a> "My own private MAINFRAME!" (deprecated; use PANOPT)
<a href="#ARCHLVL">ARCHLVL</a> ESA/390
<a href="#FACILITY">FACILITY</a> ENABLE 044_PFPO
<a href="#PGMPRDOS">PGMPRDOS</a> restricted
<a href="#ECPSVM">ECPSVM</a> no notrap
<a href="#OSTAILOR">OSTAILOR</a> OS/390
<a href="#LOADPARM">LOADPARM</a> 0120....
<a href="#CPUSERIAL">CPUSERIAL</a> 000611
<a href="#CPUMODEL">CPUMODEL</a> 3090
<a href="#CPUVERID">CPUVERID</a> FD
<a href="#LPARNAME">LPARNAME</a> HERCULES
<a href="#LPARNUM">LPARNUM</a> 01
<a href="#CPUIDFMT">CPUIDFMT</a> 1
<a href="#MODEL">MODEL</a> EMULATOR
<a href="#PLANT">PLANT</a> ZZ
<a href="#MANUFACTURER">MANUFACTURER</a> HRC
<a href="#MAINSIZE">MAINSIZE</a> 1G
<a href="#XPNDSIZE">XPNDSIZE</a> 0
<a href="#NUMCPU">NUMCPU</a> 4
<a href="#MAXCPU">MAXCPU</a> 8
<a href="#ENGINES">ENGINES</a> CP,CP,AP,IP
<a href="#SYSEPOCH">SYSEPOCH</a> 1900
<a href="#YROFFSET">YROFFSET</a> -28
<a href="#TZOFFSET">TZOFFSET</a> -0500
<a href="#HTTPPORT">HTTP</a> PORT 8081 NOAUTH
<a href="#HTTPROOT">HTTP</a> ROOT /usr/local/share/hercules/
<a href="#HTTPSTRT">HTTP</a> START
<a href="#MODPATH">MODPATH</a> /usr/local/hercules
<a href="#LDMOD">LDMOD</a> dyncrypt
<a href="#NETDEV">NETDEV</a> /dev/net/tun
<a href="#CCKD">CCKD</a> NOSFD=1
<a href="#SHRDPORT">SHRDPORT</a> 3990
<a href="#PANOPT">PANOPT</a> NAMEONLY RATE=FAST MSGCOLOR=DARK "TITLE=My own private MAINFRAME!"
<a href="#LOGOPT">LOGOPT</a> TIMESTAMP NODATESTAMP
<a href="#CODEPAGE">CODEPAGE</a> 819/1047
<a href="#CNSLPORT">CNSLPORT</a> 3270
<a href="#SYSGPORT">SYSGPORT</a> 3278
<a href="#CONKPALV">CONKPALV</a> (3,1,10)
<a href="#LEGACYSENSEID">LEGACYSENSEID</a> OFF
<a href="#TIMERINT">TIMERINT</a> DEFAULT
<a href="#TODDRAG">TODDRAG</a> 1.0
<a href="#DEVTMAX">DEVTMAX</a> 8
<a href="#SHCMDOPT">SHCMDOPT</a> disable nodiag8
<a href="#DIAG8CMD">DIAG8CMD</a> disable noecho
<a href="#CMDSEP">CMDSEP</a> OFF
<a href="#DEFSYM">DEFSYM</a> TAPEDIR "<a href="#subs">$(HOME)</a>/tapes"
<a href="#AUTOMOUNT">AUTOMOUNT</a> $(TAPEDIR)
<a href="#AUTOMOUNT">AUTOMOUNT</a> +/tapes
<a href="#AUTOMOUNT">AUTOMOUNT</a> -/tapes/vault
<a href="#MOUNTED_TAPE_REINIT">MOUNTED_TAPE_REINIT</a> allow
<a href="#AUTOINIT">AUTOINIT</a> on
<a href="#SCSIMOUNT">SCSIMOUNT</a> no
<a href="#INCLUDE">INCLUDE</a> mydevs.cfg
<a href="#IGNORE">IGNORE</a> INCLUDE_ERRORS
<a href="#INCLUDE">INCLUDE</a> optdevs.cfg
#------------------------------------------------------------------
# <a href="#device_stmts">DEVICE STATEMENTS</a>
# (see supported <a href="#device_types_table">device types</a> table)
#------------------------------------------------------------------
0009 <a href="#consysc">3215-C</a> /
000A <a href="#1442">1442</a> adrdmprs.rdr
000C <a href="#3505">3505</a> jcl.txt ascii trunc
000D <a href="#3525">3525</a> pch00d.txt ascii
000E <a href="#1403">1403</a> prt00e.txt append cctape=legacy
001E <a href="#1403">3211</a> 192.168.200.1:1403 sockdev fcb=legacy
001F <a href="#3270">3270</a> * 192.168.0.1
0200.4 <a href="#3270">3270</a> * 192.168.0.0 255.255.255.0
0220.8 <a href="#3270">3270</a> GROUP1 192.168.100.0 255.255.255.0
0228.8 <a href="#3270">3270</a> GROUP2
0230.16 <a href="#3270">3270</a>
0000 <a href="#SYSG">SYSG</a> SYSGCONS
0100 <a href="#ckddasd">3390</a> disks/linux.dsk <a href="#shadow">sf=shadows/linux_*.dsk</a> <a href="#ckdser">ser=000000000001</a>
0120 <a href="#3380">3380</a> <a href="#ENHSYMINC">${DASD_PATH=dasd/}</a>mvsv5r.120
0121 <a href="#3380">3380</a> <a href="#ENHSYMINC">${DASD_PATH=dasd/}</a>mvsv5d.121
0122 <a href="#3380">3380</a> <a href="#ENHSYMINC">${DASD_PATH=dasd/}</a>mvswk1.122
0123 <a href="#3380">3380</a> 192.168.1.100
0140 <a href="#3370">3370</a> dosres.140
0141 <a href="#3370">3370</a> syswk1.141
0300 <a href="#3370">3370</a> sysres.300
0A00.3 <a href="#QETH">QETH</a> chpid F0 iface /dev/net/tun ipaddr 192.168.0.4 netmask 255.255.0.0
0440.2 <a href="#LCS">LCS</a> -n /dev/net/tun 192.168.200.2
0420.2 <a href="#CTCI">CTCI</a> 192.168.200.1 192.168.200.2
0430.2 <a href="#CTCI">CTCI</a> tun0
#0E40 <a href="#LCS">LCS</a> -e <a href="#SNA">SNA</a> tap0
0E40 <a href="#CTCE">CTCE</a> 31880 192.168.1.202 32880
0E41 <a href="#CTCE">CTCE</a> 31882 192.168.1.202 32882
0E42.2 <a href="#CTCE">CTCE</a> 1=192.168.1.202
0460.2 <a href="#PTP">PTP</a> 192.168.200.1 192.168.200.2/24
0470.2 <a href="#PTP">PTP</a> tun0
0580 <a href="#3420">3420</a> ickdsf.aws <a href="#noautomount">noautomount</a>
0581 <a href="#3420">3420</a> /cdrom/tapes/uaa196.tdf
0582-0587 <a href="#3420">3420</a> <a href="#subs">$(TAPEDIR)</a>/volumes.<a href="#subs">$(CUU)</a> maxsizeM=170 eotmargin=131072
0590 <a href="#3420">3590</a> \\.\Tape0 # <a href="#SCSI">SCSI</a> (Windows only)
0591 <a href="#3420">3590</a> /dev/nst0 # <a href="#SCSI">SCSI</a> (Linux or Windows)
0592 <a href="#3420">3490</a> /dev/nst1 <a href="#Quantum">--no-erg</a> <a href="#Quantum">--blkid-32</a> # <a href="#Quantum">Quantum DLT SCSI</a>
0020 <a href="#2703">2703</a> lport=32003 dial=IN lnctl=tele2 uctrans=yes term=tty skip=88C9DF iskip=0A
0023 <a href="#2703">2703</a> lport=3780 rhost=localhost rport=3781 dial=no
0045 <a href="#2703">2703</a> lport=32003 dial=IN lnctl=ibm1 term=2741 skip=5EDE code=ebcd
</pre></code>
</td></tr></table>
</center>
<h3>Comment lines</h3>
<p>
Blank lines, and lines beginning with a # sign
or an asterisk, are treated as comments.
<p>
<hr><!-- ---------------------------------------------------------------------------- -->
<a name="system_parameters"></a>
<h3>System parameters</h3>
<p>
Except for the ARCHLVL and LPARNUM statements, system parameter statements
may appear in any order but must precede any device statements. Each system
parameter must be on a separate line. The following system parameters may be
specified:
<dl>
<a name="ARCHLVL"></a>
<dt><code>ARCHLVL S/370 | ESA/390 | ESAME | <u>z/Arch</u></code>
<dd><p>
Specifies the initial architecture mode:<p>
<ul compact>
<li>use <code>S/370</code> for OS/360, VM/370, and MVS 3.8.
<li>use <code>ESA/390</code> for MVS/XA, MVS/ESA, OS/390, VM/ESA, VSE/ESA,
Linux/390, and ZZSA.
<li>use <code>z/Arch</code> or <code>ESAME</code> for z/OS and zLinux. This is the default.
</ul>
When <code>z/Arch</code> or <code>ESAME</code> is specified,
the machine will always IPL in ESA/390 mode,
but is capable of being switched into z/Architecture mode after IPL.
This is handled automatically by all z/Architecture operating systems.
<p>
When <code>ARCHLVL S/370</code> is set, the current
<code><a href="#LPARNUM">LPARNUM</a></code> and
<code><a href="#CPUIDFMT">CPUIDFMT</a></code> settings will be
<i>automatically changed</i> to <code>BASIC</code>. When <code>ARCHLVL z/Arch</code>
is set, <code>LPARNUM</code> and <code>CPUIDFMT</code> will be reset
back to <code>1</code> and <code>0</code> respectively (if needed). Refer to
the <i>"Limited automatic LPARNUM updating when setting certain architecture modes"</i>
section of the <a href="hercrnot.html#4.1">Release Notes</a> document for more information.
<p>
The <code>ARCHLVL</code> statement used to be called <code>ARCHMODE</code>
in previous versions of Hercules but the use of <code>ARCHMODE</code> has been
deprecated in favor of the new <code>ARCHLVL</code> statement.
Existing <code>ARCHMODE</code> statements should be changed to <code>ARCHLVL</code>
instead. For the time being however, <code>ARCHMODE</code> is still accepted
and is treated as simply a synonym for the <code>ARCHLVL</code> statement.
<p>
<a name="ASN_AND_LX_REUSE"></a>
<dt><code>ASN_AND_LX_REUSE <u>ENABLE</u> | DISABLE</code> <i>(deprecated; use FACILITY)</i>
<dd><p>
Specifies whether the ASN-and-LX-Reuse Facility (ALRF) should be enabled
or disabled. The default is enabled. This is a z/Architecture-only feature
which is always disabled by default for S/390 or ESA/390.
<p>
Set this value to <code>ENABLE</code> (or do not specify anything
at all) if your guest operating system supports or expects this feature.
Set it to <code>DISABLE</code> if your guest operating system does
<i>not</i> support this z/Architecture feature, and it inadvertently
sets CR0 bit 44 to 1, usually leading to unexpected program interrupt
when instructions such as LASP are issued.
<p>
<code>ASN_AND_LX_REUSE</code> may be abbreviated as <code>ALRF</code>.
<p>
<b>Note:</b> The <code>ASN_AND_LX_REUSE</code> statement has been superseded
by "<code>FACILITY ENABLE/DISABLE 006_ASN_LX_REUSE</code>" and is thus deprecated.
Existing <code>ASN_AND_LX_REUSE</code> or <code>ALRF</code> statements
should be changed to use the new <a href="#FACILITY">FACILITY</a>
statement format instead.
<p>
<a name="AUTOINIT"></a>
<dt><code>AUTOINIT <u>ON</u> | OFF</code>
<dd><p>
The <code>AUTOINIT</code> option controls whether device files
for emulated tape volumes should be automatically created or not.
<p>
When <code>AUTOINIT</code> is <code>ON</code>, a devinit command
specifying a file that does not yet exist causes the tape driver
to automatically create an empty unlabeled tape volume consisting
of just two tapemarks when it discovers the specified file
does not exist yet.
When <code>AUTOINIT</code> is <code>OFF</code> a devinit command
instead fails with an expected "file not found" error.
For convenience the default setting is <code>ON</code>.
<a name="AUTOMOUNT"></a>
<dt><code>AUTOMOUNT <em>[±]directory</em></code>
<dd><p>
Specifies the host system directory where the guest is allowed
or not allowed to automatically load virtual tape volumes from.
Prefix allowable directories with a '+' plus sign and unallowable
directories with a '-' minus sign. The default prefix if neither is
specified is the '+' plus sign (i.e. an allowable directory).
<p>
<i><b><u>Caution</u>:</b> Enabling this feature may have security
consequences depending on which allowable host system directories you
specify as well as how your guest operating system enforces
authorized use of the Set Diagnose (X'4B') channel command code.
</i>
<p>
All host system virtual tape volumes to be "automounted" by the guest
must reside within one of the specified allowable host system directories
or any of its subdirectories while not also being within any of the
specified unallowable directories or any of their subdirectories,
in order for the guest-invoked automount to be accepted.
<p>
Note: specifying a disallowed automount directory does not preclude the
Hercules operator from manually mounting any desired file via the
<code>devinit</code> panel command -- even one in a currently defined
"disallowed" automount directory. The AUTOMOUNT statement only controls
guest-invoked automatic tape mounts and not manual tape mounts performed
by the Hercules operator.
<p>
All directories must be specified on separate statements, but as many
statements as needed may be specified in order to describe the desired
allowable/unallowable directories layout. For convenience, an
<code>automount</code> panel command is also provided to dynamically
add/remove new/existing allowable/unallowable automount
directories at any time.
<p>
The automount feature is activated whenever you specify at least
one allowable or unallowable directory. If only
unallowable directories are specified, then the current directory
becomes the only defined allowable automount directory by default.
<p>
All specified directories are always resolved to fully-qualified
absolute directory paths before being saved.
<p>
Refer to the description of the virtual tape device
'<a href="#noautomount">noautomount</a>' option for more information.
<p>
<a name="CCKD"></a>
<dt><code>CCKD <em>cckd-parameters</em></code>
<dd><p>
The CCKD command and initialization statement can be used to affect
cckd processing. The CCKD initialization statement is specified as
a Hercules configuration file statement and supports the same options
as the cckd panel command. Refer to the
<a href="cckddasd.html#cckdcommand">Compressed Dasd Emulation</a>
web page for more information.
<p>
<a name="CMDSEP"></a>
<dt><code>CMDSEP <u>OFF</u> | <em>c</em></code>
<dd><p>
A command line separator character allows multiple commands to be
entered on a single line. The character '<i><code>c</code></i>'
defines the command separator character. The values
'<i><code>.</code></i>' (period or dot),
'<i><code>!</code></i>' (exclamation mark or bang) and
'<i><code>-</code></i>' (dash or hypen)
are reserved and cannot be used.
The default value is 'OFF' indicating command separation is disabled.
<p>
<i>
<b>Warning:</b> choose your separator character carefully. Setting it
to an alphabetic value for example disables all commands containing
that character. Setting it to '<code>e</code>' for example will disable
the 'exit' command making it impossible to exit the emulator. Similarly,
setting it to '<code>o</code>' or '<code>f</code>' will make it impossible
to disable command separation once enabled, and setting it to
'<code>#</code>' (hash) will prevent lines with comments from being
processed correctly.
</i>
<p>
<a name="CMPSCPAD"></a>
<dt><code>CMPSCPAD <em>alignment</em></code>
<dd><p>
The CMPSCPAD command and initialization statement is used to define
the zero padding storage alignment boundary for the CMPSC-Enhancement
Facility. It must be a power of 2 value ranging anywhere from 1 to 12.
<p>
<a name="CNSLPORT"></a>
<dt><code>CNSLPORT <i><u>3270</u></i> <i>-or-</i> <i>nnnn</i> <i>-or-</i> <i>host:port</i></code>
<dd><p>
Specifies (typically) the port number (in decimal) to which tn3270
and telnet clients should connect. If an invalid value is specified
Hercules defaults to port number <u>3270</u>.
See also the <a href="#SYSGPORT"><code>SYSGPORT</code></a> statement.
<p>
The <code>CNSLPORT</code> statement may also be specified as
<code>host:port</code>, where <code>host</code> identifies the
IP address of the host interface the telnet console server should
bind to (listen for connections on). If not specified the server
will accept connections on the port from any host interface.
<p>
See the <a href="telnet.html">Telnet/tn3270 Console How-To</a>
for additional information about setting up a telnet or tn3270 client.
<p>
<a name="CODEPAGE"></a>
<dt><code>CODEPAGE <em>mapping</em></code>
<dd><p>
Specifies the codepage conversion mapping table used for ASCII/EBCDIC translation.
<p>
<code>default</code> specifies traditional Hercules codepage mapping,
which is non-transparent.
<p>
Other supported predefined codepage mappings are:
<p>
<blockquote>
<table border=1 cellpadding=3>
<tr>
<th rowspan=2>Mapping</th>
<th colspan=2>Description</th>
<th rowspan=2>Transparent?</th>
</tr>
<tr>
<th>ASCII</th>
<th>EBCDIC</th>
</tr>
<tr><td align="center"><code>437/037</code></td>
<td>437 PC United States</td>
<td>037 United States/Canada</td>
<td><center>no</center></td>
</tr>
<tr><td align="center"><code>437/500</code></td>
<td>437 PC United States</td>
<td>500 International</td>
<td><center>no</center></td>
</tr>
<tr><td align="center"><code>437/1047</code></td>
<td>437 PC United States</td>
<td>1047 Open Systems Latin 1</td>
<td><center>no</center></td>
</tr>
<tr><td align="center"><code>819/037</code></td>
<td>819 ISO-8859-1</td>
<td>037 United States/Canada</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/037v2</code></td>
<td>819 ISO-8859-1</td>
<td>037 United States/Canada version 2</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/273</code></td>
<td>819 ISO-8859-1</td>
<td>273 Austria/Germany</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/277</code></td>
<td>819 ISO-8859-1</td>
<td>277 Denmark/Norway</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/278</code></td>
<td>819 ISO-8859-1</td>
<td>278 Finland/Sweden</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/280</code></td>
<td>819 ISO-8859-1</td>
<td>280 Italy</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/284</code></td>
<td>819 ISO-8859-1</td>
<td>284 Spain</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/285</code></td>
<td>819 ISO-8859-1</td>
<td>285 United Kingdom</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>819/297</code></td>
<td>819 ISO-8859-1</td>
<td>297 France</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><b><code>819/500</code></b></td>
<td><b>819 ISO-8859-1</b></td>
<td><b>500 International</b></td>
<td><b><center>YES</center></b></td>
</tr>
<tr><td align="center"><b><code>819/1047</code></b></td>
<td><b>819 ISO-8859-1</b></td>
<td><b>1047 Open Systems Latin 1</b></td>
<td><b><center>YES</center></b></td>
</tr>
<tr><td align="center"><code>850/273</code></td>
<td>850 PC Latin 1</td>
<td>273 Austria/Germany</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>850/1047</code></td>
<td>850 PC Latin 1</td>
<td>1047 Open Systems Latin 1</td>
<td><center>no</center></td>
</tr>
<tr><td align="center"><code>1252/037</code></td>
<td>1252 Windows Latin 1</td>
<td>037 United States/Canada</td>
<td><center>no</center></td>
</tr>
<tr><td align="center"><code>1252/037v2</code></td>
<td>1252 Windows Latin 1</td>
<td>037 United States/Canada version 2</td>
<td><center>no</center></td>
</tr>
<tr><td align="center"><code>1252/1047</code></td>
<td>1252 Windows Latin 1</td>
<td>1047 Open Systems Latin 1</td>
<td><center>no</center></td>
</tr>
<tr><td align="center"><code>1252/1140</code></td>
<td>1252 Windows Latin 1</td>
<td>1140 United States/Canada with Euro</td>
<td><center>YES</center></td>
</tr>
<tr><td align="center"><code>ISOANSI/037</code></td>
<td>ISO ANSI</td>
<td>037 United States/Canada</td>
<td><center>YES</center></td>
</tr>
</table>
</blockquote>
<p>
The transparency column indicates whether translating from
ASCII to EBCDIC (or vice versa) and back again yields results
identical to the original text.
<p>
If no codepage is specified then the environment variable HERCULES_CP
will be inspected. If the environment variable is not found then
the traditional non-transparent <code>default</code> codepage mapping
is used.
<p>
Other codepages can be defined by means of the <code>cp_updt</code>
panel command (which is supported as a configuration file statement
as well). Enter the panel command <code>help cp_updt</code> for more
information.
<p>
The recommended code page for Linux guests is
"<b>819/500</b>",
as it is both transparent and appears to be the code
page that s390x Linux actually uses, thus allowing
boot/startup messages to be parsed and displayed properly.
<p>
The recommended code page for non-Linux guests (e.g. z/OS, etc) is
"<b>819/1047</b>", as it is both transparent and properly translates
all ASCII characters to their EBCDIC equivalents,
including all extended ASCII characters too, such as:
<p>
<blockquote>
<table style="width:25%">
<tr><td style="text-align:center">[</td><td style="text-align:left"> left square bracket</td></tr>
<tr><td style="text-align:center">\</td><td style="text-align:left"> backslash</td></tr>
<tr><td style="text-align:center">]</td><td style="text-align:left"> right square bracket</td></tr>
<tr><td style="text-align:center">^</td><td style="text-align:left"> caret / circumflex</td></tr>
<tr><td style="text-align:center">_</td><td style="text-align:left"> underscore</td></tr>
<tr><td style="text-align:center">`</td><td style="text-align:left"> grave accent</td></tr>
<tr><td style="text-align:center">{</td><td style="text-align:left"> left curly bracket</td></tr>
<tr><td style="text-align:center">|</td><td style="text-align:left"> solid vertical bar</td></tr>
<tr><td style="text-align:center">}</td><td style="text-align:left"> right curly bracket</td></tr>
<tr><td style="text-align:center">~</td><td style="text-align:left"> tilde</td></tr>
<tr><td style="text-align:center">¢</td><td style="text-align:left"> cent</td></tr>
<tr><td style="text-align:center">£</td><td style="text-align:left"> pound</td></tr>
<tr><td style="text-align:center">¤</td><td style="text-align:left"> currency sign</td></tr>
<tr><td style="text-align:center">¥</td><td style="text-align:left"> yen</td></tr>
<tr><td style="text-align:center">¦</td><td style="text-align:left"> broken vertical bar</td></tr>
<tr><td style="text-align:center">§</td><td style="text-align:left"> section sign</td></tr>
<tr><td style="text-align:center">©</td><td style="text-align:left"> copyright symbol</td></tr>
<tr><td style="text-align:center">ª</td><td style="text-align:left"> feminine ordinal indicator</td></tr>
<tr><td style="text-align:center">®</td><td style="text-align:left"> registered trademark</td></tr>
<tr><td style="text-align:center">°</td><td style="text-align:left"> degree</td></tr>
<tr><td style="text-align:center">±</td><td style="text-align:left"> plus-minus</td></tr>
<tr><td style="text-align:center">µ</td><td style="text-align:left"> mu/micro</td></tr>
<tr><td style="text-align:center">¶</td><td style="text-align:left"> pilcrow/paragraph</td></tr>
<tr><td style="text-align:center">º</td><td style="text-align:left"> masculine ordinal indicator</td></tr>
<tr><td style="text-align:center">¿</td><td style="text-align:left"> inverted question mark</td></tr>
<tr><td style="text-align:center">×</td><td style="text-align:left"> multiplication sign</td></tr>
<tr><td style="text-align:center">÷</td><td style="text-align:left"> obelus/divide sign</td></tr>
</table>
</blockquote>
<p>
<a name="CONKPALV"></a>
<dt><code>CONKPALV <i>(idle,intv,count)</i></code>
<dd><p>
Specifies the tn3270 console and telnet clients keepalive option
values that control automatic detection of disconnected tn3270/telnet
client sessions.
<p>
<code><i>idle</i></code> specifies the number of seconds
of inactivity until the first keepalive probe is
sent (idle time until first probe, or probe frequency).
<br><code><i>intv</i></code>
specifies the interval in seconds between when successive
keepalive packets are sent if no acknowledgement is received from
the previous one (i.e. the timeout value of the probes themselves).
<br><code><i>count</i></code> specifies the number of unacknowledged
keepalive packets sent before the connection is considered to have
failed.
<p>
The default values for Windows are 3, 1, and 10. For non-Windows systems
it is 3, 1, and 9. That is, send the initial probe 3 seconds after the
connection goes idle and then wait no more than one second for it to be
responded to. If it is not responded to within one second, then send up
to 9 more probes (for a total of 10), each of which must also timeout
without being responded to before the client is considered as having
died and the connection thus automatically closed.
<p>
<i><b>Note:</b></i>
This is a built-in feature of TCP/IP and allows detection of
unresponsive TCP/IP <i>connections</i> and not idle clients.
That is to say, your connection will <i>not</i> be terminated
after 3 seconds of idle time. Your 3270 session can remain idle for
many minutes or hours or days without any data being transmitted.
If the TCP/IP <i>stack</i> at the other end of the connection --
not your 3270 client itself -- fails to respond to the
internal keepalive probe packets however, then it means that the
TCP/IP stack itself is down or there has been a physical break
in the connection.
<p>
Thus, even if your 3270 client is completely idle, your system's TCP/IP stack
itself should still respond to the keepalive probes sent by the TCP/IP stack
at the Hercules end of the link. If it doesn't, then TCP/IP will terminate
the tn3270/telnet session which will cause Hercules to disconnect the terminal.
<p>
The three values can also be modified on-demand via the <code>conkpalv</code>
panel command, which has the exact same syntax. Note that the syntax is
very unforgiving: no spaces are allowed anywhere within the parentheses
and each value must be separated from the other with a single comma.
<p>
<b>Please also note</b> that not all systems support being able to modify
all three values. That is, not all values may be modifiable. It is operating
system dependent which values you can change and which values you cannot.
On Windows for example, the <code><i>count</i></code> value is ignored
and cannot be changed from its default value of 10. Other systems may
ignore one or more or all three values and use platform defaults instead.
This is entirely system dependent. Check your system's documentation for details
regarding which values can be changed and which cannot as well as how to
adjust your system's default values.
<p>
<a name="CPUIDFMT"></a>
<dt><code>CPUIDFMT <u>0</u> | 1 | BASIC</code>
<dd><p>
Specifies the format of the CPU ID the STIDP instruction should store.
Refer to the <a href="#LPARNUM">LPARNUM</a> statement for more information.
<p>
<a name="CPUMODEL"></a>
<dt><code>CPUMODEL <u>0586</u> | <em>xxxx</em> | <em>$(symbol)</em></code>
<dd><p>
Specifies the 4 hexadecimal digit CPU machine type number (known prior
to ESA/390 as the model number) stored by the STIDP instruction.
<p>
To make it easier to specify the model number for certain known models,
the following <a href="#DEFSYM">symbols</a> are now automatically
predefined starting with Hercules version 4.4:
<p>
<table style="width:25%">
<tr>
<th>Symbol</th>
<th>Model</th>
</tr>
<tr>
<td style="text-align:center"><code>zPDT</code></td>
<td style="text-align:center"><code>1090</code></td>
</tr>
<tr>
<td style="text-align:center"><code>EC12</code></td>
<td style="text-align:center"><code>2827</code></td>
</tr>
<tr>
<td style="text-align:center"><code>BC12</code></td>
<td style="text-align:center"><code>2828</code></td>
</tr>
<tr>
<td style="text-align:center"><code>z13</code></td>
<td style="text-align:center"><code>2964</code></td>
</tr>
<tr>
<td style="text-align:center"><code>z13s</code></td>
<td style="text-align:center"><code>2965</code></td>
</tr>
<tr>
<td style="text-align:center"><code>z14</code></td>
<td style="text-align:center"><code>3906</code></td>
</tr>
<tr>
<td style="text-align:center"><code>z14ZR1</code></td>
<td style="text-align:center"><code>3907</code></td>
</tr>
<tr>
<td style="text-align:center"><code>z15</code></td>
<td style="text-align:center"><code>8561</code></td>
</tr>
<tr>
<td style="text-align:center"><code>z15T02</code></td>
<td style="text-align:center"><code>8562</code></td>
</tr>
<tr>
<td style="text-align:center"><code>z16</code></td>
<td style="text-align:center"><code>3931</code></td>
</tr>
</table>
<p>
<i><b>Note:</b> Hercules makes no attempt to emulate all aspects of,
or features of, a given CPU model. The CPUMODEL statement defines a purely
cosmetic value only. It defines only the value that the STIDP (Store CPU
ID) instruction stores, and nothing more.</i>
<p>
<a name="CPUSERIAL"></a>
<dt><code>CPUSERIAL <u>000001</u> | <em>xxxxxx</em></code>
<dd><p>
Specifies the 6 hexadecimal digit CPU serial number stored by the
STIDP instruction. In BASIC mode, the high-order digit may be
replaced with the processor number when MAXCPU > 1; in LPAR mode,
the two high-order digits are replaced with either the LPAR number
or the CPU number and LPAR number with the full serial number
available via the STSI instruction. The default serial number is
<code>000001</code>.
<p>
<a name="CPUVERID"></a>
<dt><code>CPUVERID <u>FD</u> | <em>xx</em> [FORCE]</code>
<dd><p>
Specifies the 2 hexadecimal digit CPU version code stored by the STIDP
instruction.
<p>
The default cpuverid version code at startup is <b>FD</b>, and that value will
be stored by the STIDP instruction -- <i>even for z/Arch</i> -- unless and <i>UNTIL</i>
you set it to a different value via the <code>cpuverid</code> command/statement.
<p>
If you try using the <code>cpuverid</code> command/statement to set a non-zero cpuverid
value when the architecture mode is currently set to z/Arch, the version
code stored by the STIDP instruction will <i><u>still</u></i> be stored as 00 anyway,
<i><u>unless</u></i> ... the <code>FORCE</code> option is used. For z/Arch, the <code>FORCE</code> option is
the <i><u>only</u></i> way to cause the cpuverid command to force the STIDP instruction
to store a non-zero version code. (But as explained, at startup, the value
stored will still be FD even for z/Arch, since that is Hercules's default version
code value. This means if you want your STIDP version code to be 00 for <b>z/Arch</b>, then you
<i><u>must</u></i> use a <code>cpuverid</code> command/statement in your configuration file
to set it to that value.)
<p>
<a name="DEFSYM"></a>
<dt><code>DEFSYM <em>symbol</em> <em>value</em></code>
<dd><p>
Defines symbol <em>symbol</em> as to contain value <em>value</em>. The
symbol can then be the object of a substitution later in the configuration
file or for panel commands. If <em>value</em> contains blanks or spaces, then
it should be enclosed in double quotation marks ("). See
<a href="#subs">substitutions</a> for a more in-depth discussion
on this feature.
<p>
Substitution is available even in configuration statements,
meaning it is possible to perform substitution in the <em>DEFSYM</em> statement itself.
However, symbols are always defined as the last step in the process, so attempting
to self define a symbol will result in an empty string:
<code><pre>
DEFSYM FOO $(FOO)</pre></code>
Will set symbol FOO to ""
<p>
<a name="DEVTMAX"></a>
<dt><code>DEVTMAX -1 | 0 | <em>nnn</em></code>
<dd><p>
Specifies the maximum number of device threads allowed.
<p>Specify <code>-1</code> to cause 'one time only' temporary threads to be
created to service each I/O request to a device. Once the I/O request is
complete, the thread exits. Subsequent I/O to the same device will cause
another worker thread to be created again.
<p>Specify <code>0</code> to cause an unlimited number of 'semi-permanent'
threads to be created on an 'as-needed' basis. With this option, a thread
is created to service an I/O request for a device if one doesn't already
exist, but once the I/O is complete, the thread enters an idle state waiting
for new work. If a new I/O request for the device arrives before the timeout
period expires, the existing thread will be reused. The timeout value is
currently hard coded at 5 minutes. Note that this option can cause one thread
(or possibly more) to be created for each device defined in your
configuration. Specifying <code>0</code> means there is no limit to the
number of threads that can be created.
<p>Specify a value from <code>1</code> to <code><em>nnn</em></code> to set an upper limit
to the number of threads that can be created to service any I/O request to
any device. Like the <code>0</code> option, each thread, once done servicing
an I/O request, enters an idle state. If a new request arrives before the
timeout period expires, the thread is reused. If all threads are busy when
a new I/O request arrives however, a new thread is created <i>only</i> if the
specified maximum has not yet been reached. If the specified maximum number
of threads has already been reached, then the I/O request is placed in a queue
and will be serviced by the first available thread (i.e. by whichever thread
becomes idle first). This option was created to address a threading issue
(possibly related to the cygwin Pthreads implementation) on Windows systems.
<p>The default for Windows is <code>8</code>. The default for all other systems
is <code>0</code>.
<p>
<a name="DIAG8CMD"></a>
<dt><code>DIAG8CMD <u>DISABLE</u> | ENABLE [ECHO | <u>NOECHO</u>]</code>
<dd><p>
When <code>ENABLE</code> is specified the Hercules Diagnose 8 instruction command
interface is enabled, allowing the guest to directly issue Hercules commands via
the Diagnose 8 instruction. When set to <code>DISABLE</code> all Diagnose 8 instructions
cause a Specification Exception program interrupt to occur instead.
<p>
An optional second argument can be given to request whether an audit trail of such
commands should be created or not. When <code>ECHO</code> is specified, a message
is issued when the command is about to be issued, when the command is redisplayed (as
is normally done when entered from the command line), as well as a final message
indicating the command has finished executing. When <code>NOECHO</code> is specified
no such audit trail messages are displayed and the command instead completes silently
(except for whatever messages the command itself may issue).
<p>
<i><b><u>Security Alert</u>:</b> Enabling this feature has security consequences.
When this feature is enabled it is possible for guest operating systems running under
Hercules to issue commands directly to the host operating system by means of the
<code>sh</code> (host shell command) and <code>exec</code> (execute Rexx script) commands.
This ability may be disabled via the <a href="#SHCMDOPT">SHCMDOPT</a> statement's
<code>NODIAG8</code> option.</i>
<p>
The value of <code>ECHO</code> or <code>NOECHO</code> has no effect on whether or not
command output will be placed into the Diagnose 8 instruction's response buffer if the
instruction requested one, nor does it cause the resulting audit trail messages from
being placed into the response buffer either. The <code>ECHO</code> option only impacts
what is displayed on the hardware console (and what appears in the hardcopy logfile)
but does not otherwise impact what is placed into the instruction's response buffer.
<p>
The default is <code>DISABLE NOECHO</code>
<p>
<a name="ECPSVM"></a>
<dt><code>ECPSVM YES | <u>NO</u> | LEVEL <em>nn</em> [ TRAP | NOTRAP ]</code>
<dd><p>
Specifies whether ECPS:VM (Extended Control Program Support : Virtual Machine)
support is to be enabled.
<p>
If <code>YES</code> is specified, then the support level reported to the
operating system is <code>20</code>. The purpose of ECPS:VM is to provide
to the VM/370 Operating system a set of shortcut facilities to perform
hypervisor functions (CP Assists) and virtual machine simulation (VM Assists).
<p>
Although this feature does not affect VM Operating system products operating in
XA, ESA or z/Architecture mode, it <i>will</i> affect VM/370 and VM/SP products
running under VM/XA, VM/ESA or z/VM.
<p>
Running VM/370 and VM/SP products under VM/XA, VM/ESA or z/VM should be
done with ECPS:VM disabled. ECPS:VM should not be enabled in an AP or MP
environment either. ECPS:VM has no effect on non-VM operating systems. It is
however recommended to disable ECPS:VM when running native non-VM operating
systems.
<p>
If a specific LEVEL is specified, this value will be reported to the operating
system when it issues a Store ECPS:VM level, but it doesn't otherwise alter
the ECPS:VM facility operations.
<p>
This is a <i>partial</i> (but mostly complete) implementation.
<p>
It is however <i>not</i> a 100% complete implementation.
<p>
Please refer to the
<a href="https://github.com/sdl-hercules-390/hyperion/blob/master/readme/README.ECPSVM.md">README.ECPSVM</a>
document for more detailed information,
including an explanation of the <code>TRAP</code> and <code>NOTRAP</code> options.
<p>
<a name="ENGINES"></a>
<dt><code>ENGINES [<em>nn</em>*]<u>CP</u>|IL|AP|IP[,...]</code>
<dd><p>
Specifies the type of engine for each installed processor.
The default engine type is CP.
<p>
<em>nn</em>* is an optional repeat count.
Spaces are not permitted.
<p>
Examples:
<p>
<code>ENGINES CP,CP,AP,IP</code>
<br>specifies that processor engines 0 and 1 are of type CP, engine 2 is
type AP, and engine 3 is type IP.
<p>
<code>ENGINES 4*CP,2*AP,2*IP</code>
<br>specifies that the first four processor engines (engines 0-3) are of
type CP, the next two (engines 4-5) are of type AP, and the next two
(engines 6-7) are of type IP.
<p>
The number of installed processor engines is determined by the
<a href="#MAXCPU">MAXCPU</a> statement.
If the ENGINES statement specifies more than MAXCPU engines, the excess
engines are ignored. If fewer than MAXCPU engines are specified, the
remaining engines are set to type CP.
<p>
<a name="FACILITY"></a>
<dt><code>FACILITY ENABLE | DISABLE | QUERY <em>facility</em> <em>[archlvl]</em></code>
<dd><p>
Specifies a particular STFL/STFLE facility to be enabled or disabled,
or a request to query of the current settings. Use <code>QUERY ALL</code>
to obtain a list of valid <code><em>facility</em></code> names
that may be used for the given archlvl. Enter <code>help facility</code>
for detailed <code>FACILITY</code> command/statement use.
<p>
Alternatively, you can also specify the actual STFL/STFLE bit number
to be turned off or on (disabled or enabled) using the format
<code><em>BITnn</em></code> where 'nn' corresponds to the exact
STFL/STFLE facility bit you wish to be forced on or off. A popular
one among the VM crowd is <code>ENABLE BIT44</code> to force the PFPO
(Perform Floating-Point Operation Facility) bit on, since the facility
is not enabled by default in SDL Hyperion version 4.1 or earlier. The
facility is only enabled by default starting with
<a href="https://github.com/SDL-Hercules-390/hyperion/releases/tag/Release_4.2">SDL Hyperion version 4.2</a>
or later. Specifying <code>ENABLE BIT44</code> allows z/VM guests running
on SDL Hyperion 4.1 or earlier to IPL.
<p>
The optional <code><em>archlvl</em></code> argument limits the enable,
disable or query function to a specific <a href="#ARCHLVL">architecture</a>.
It should be noted that attempts to enable or disable a facility that a given
architecture does not support are accepted without error. The default value is
the value that was set by a preceding <a href="#ARCHLVL">ARCHLVL</a> statement
or the default mode if there was no preceding ARCHLVL statement.
<p>
<a name="HERCPRIO"></a>
<dt><code>HERCPRIO <em>nn</em></code> <i>(deprecated; unsupported)</i>
<dt><code>TODPRIO <em>nn</em></code> <i>(deprecated; unsupported)</i>
<dt><code>DEVPRIO <em>nn</em></code> <i>(deprecated; unsupported)</i>
<dt><code>CPUPRIO <em>nn</em></code> <i>(deprecated; unsupported)</i>
<dd><p>
The ability to define process and thread priorities has been
<a href="hercrnot.html#4.1">removed</a> from SDL Hyperion as of version
<a href="hercrnot.html#4.1">4.1</a>. You should remove all such statements
from your configuration file.
<p>
<a name="HTTPPORT"></a>
<dt><code>HTTP PORT <em>nnnn</em> [[NOAUTH] | [AUTH <em>userid password</em>]]</code>
<dd><p>
Specifies the port number (in decimal) on which the HTTP server
will listen. The port number must either be 80
or within the range 1024 - 65535 inclusive. The server is not started until a subsequent
<code><a href="#HTTPSTRT">HTTP START</a></code> statement is found.
<p>
<tt>AUTH</tt> indictates that a userid and password are required to access
the HTTP server, whereas <tt>NOAUTH</tt> indicates that a userid and password
are not required. The userid and password may be any valid string.
<p>
<a name="HTTPROOT"></a>
<dt><code>HTTP ROOT <em>directory</em></code>
<dd><p>
Specifies the root directory where the HTTP server's files reside.
If not specified, the default value for Win32 builds of Hercules is the
directory where the Hercules executable itself is executing out of, and for
non-Win32 builds it is the directory specified as the default package
installation directory when the Hercules executable was built (which can
vary depending on how the Hercules package was built, but is usually
<tt>/usr/local/share/hercules/</tt>).
<p>
<a name="HTTPSTRT"></a>
<dt><code>HTTP START</code>
<dd><p>
Starts the HTTP server. (Note: The server is no longer started by default.)
<p>
<a name="IGNORE"></a>