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 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd">
<HTML>
<HEAD><TITLE>
Hercules Version 3: Configuration File</TITLE>
<LINK REL=STYLESHEET TYPE="text/css" HREF="hercules.css">
</HEAD>
<BODY BGCOLOR="#ffffcc" TEXT="#000000" LINK="#0000A0"
VLINK="#008040" ALINK="#000000">
<h1>Hercules Version 3: 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>
Please note that the below example configuration file should not
be considered a good example of what an actual configuration file
looks like. It is only meant to illustrate what some
of the supported configuration file statements look like
and how they are used.
<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="#ARCHMODE">ARCHMODE</a> ESA/390
<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> 21
<a href="#MODEL">MODEL</a> EMULATOR
<a href="#PLANT">PLANT</a> ZZ
<a href="#MANUFACTURER">MANUFACTURER</a> HRC
<a href="#MAINSIZE">MAINSIZE</a> 64
<a href="#XPNDSIZE">XPNDSIZE</a> 0
<a href="#NUMCPU">NUMCPU</a> 1
<a href="#NUMVEC">NUMVEC</a> 1
<a href="#MAXCPU">MAXCPU</a> 8
<a href="#ENGINES">ENGINES</a> CP
<a href="#SYSEPOCH">SYSEPOCH</a> 1900
<a href="#YROFFSET">YROFFSET</a> -28
<a href="#TZOFFSET">TZOFFSET</a> -0500
<a href="#HTTPROOT">HTTPROOT</a> /usr/local/share/hercules/
<a href="#HTTPPORT">HTTPPORT</a> 8081 NOAUTH
<a href="#CCKD">CCKD</a> RA=2,RAQ=4,RAT=2,WR=2,GCINT=10,GCPARM=0,NOSTRESS=0,TRACE=0,FREEPEND=-1
<a href="#SHRDPORT">SHRDPORT</a> 3990
<a href="#PANTITLE">PANTITLE</a> "My own private MAINFRAME!"
<a href="#PANRATE">PANRATE</a> FAST
<a href="#LOGOPT">LOGOPT</a> TIMESTAMP
<a href="#CODEPAGE">CODEPAGE</a> default
<a href="#CNSLPORT">CNSLPORT</a> 3270
<a href="#CONKPALV">CONKPALV</a> (3,1,10)
<a href="#LEGACYSENSEID">LEGACYSENSEID</a> OFF
<a href="#HERCPRIO">HERCPRIO</a> 0
<a href="#TODPRIO">TODPRIO</a> -20
<a href="#DEVPRIO">DEVPRIO</a> 8
<a href="#CPUPRIO">CPUPRIO</a> 15
<a href="#TIMERINT">TIMERINT</a> DEFAULT
<a href="#TODDRAG">TODDRAG</a> 1.0
<a href="#DEVTMAX">DEVTMAX</a> 8
<a href="#DIAG8CMD">DIAG8CMD</a> disable
<a href="#SHCMDOPT">SHCMDOPT</a> disable
<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="#MODPATH">MODPATH</a> /usr/local/hercules
<a href="#LDMOD">LDMOD</a> dyncrypt
<a href="#PGMPRDOS">PGMPRDOS</a> restricted
<a href="#ECPSVM">ECPSVM</a> no
<a href="#ASN_AND_LX_REUSE">ASN_AND_LX_REUSE</a> disable
<a href="#AUTO_SCSI_MOUNT">AUTO_SCSI_MOUNT</a> no
<a href="#MOUNTED_TAPE_REINIT">MOUNTED_TAPE_REINIT</a> allow
<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>
#
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 noclear
001E <a href="#1403">1403</a> 192.168.200.1:1403 sockdev
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
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
0400 <a href="#CTCT">CTCT</a> 30880 192.168.100.2 30880 2048
0401 <a href="#CTCT">CTCT</a> 30881 192.168.100.2 30881 2048
0420.2 <a href="#CTCI">CTCI</a> 192.168.200.1 192.168.200.2
0440.2 <a href="#LCS">LCS</a> -n /dev/net/tun 192.168.200.2
0E40 <a href="#CTCE">CTCE</a> 31880 192.168.1.202 32880
0E41 <a href="#CTCE">CTCE</a> 31882 192.168.1.202 32882
0580 <a href="#3420">3420</a> /dev/nst0 # SCSI (Linux or Windows)
0581 <a href="#3420">3420</a> \\.\Tape0 # SCSI (Windows only)
0582 <a href="#3420">3420</a> ickdsf.aws <a href="#noautomount">noautomount</a>
0583 <a href="#3420">3420</a> /cdrom/tapes/uaa196.tdf
0584-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">3480</a> /dev/nst0 <a href="#Quantum">--no-erg</a> <a href="#Quantum">--blkid-32</a> # <a href="#Quantum">Quantum DLT SCSI</a>
0023 <a href="#comline">2703</a> lport=3780 rhost=localhost rport=3781 dial=no
00C3 <a href="#remtty">2703</a> lport=32003 dial=IN tty=1
</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>
System parameters may appear in any order but they must precede all
device statements. Each system parameter must be on a separate line.
The following system parameters may be specified:
<dl>
<a name="ARCHMODE"></a>
<dt><code>ARCHMODE S/370 | ESA/390 | z/Arch | ESAME</code>
<dd><p>
specifies the initial architecture mode:
<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.
</ul>
<p><code>ESAME</code> is a synonym for <code>z/Arch</code>.
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>
<a name="ASN_AND_LX_REUSE"></a>
<dt><code>ASN_AND_LX_REUSE DISABLE | ENABLE</code>
<dd><p>
specifies that the ASN-and-LX-Reuse Facility (ALRF) is to be disabled
or enabled. The default is disabled. This is a z/Architecture-only
feature (it is always disabled for S/390 or ESA/390). Set this
to <code>ENABLE</code> if the operating system supports
this z/Architecture feature and the use of this feature is desired.
Set it to <code>DISABLE</code> or do not specify anything
if the operating system doesn't support this 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>
<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>Caution:</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="AUTO_SCSI_MOUNT"></a>
<dt><code>AUTO_SCSI_MOUNT NO | YES | <em>nn</em></code>
<dd><p>
specifies whether automatic detection of SCSI tape mounts are to be
enabled or not.
<p>
Specifying <code>NO</code> or 0 seconds (the default) indicates
the option is disabled, forcing all SCSI tape mounts to be done
manually via an appropriate <code>devinit</code> command.
<p>
A value from 1 to 99 seconds inclusive enables the option
and causes periodic queries of the SCSI tape drive to automatically
detect when a new tape is mounted. Specifying <code>YES</code>
is the same as specifying 5 seconds, the current default interval.
<p>
The <code>scsimount</code> panel command may also be used to display
and/or modify this value on demand once Hercules has been started. Note
too that the <code>scsimount</code> panel command also lists any mounts
and/or dismounts that may still be pending on the drive, as long as
you've defined your tape drive as a model that has an LCD "display"
(such as a model 3480, 3490 or 3590).
<p>
<i>
<b>Note:</b> enabling this option may cause Hercules to take
longer to shutdown depending on the value specified for this option
as well as how the host operating system (Windows, Linux, etc) and
associated hardware (SCSI adapter) behaves to drive status queries
for drives which do not have any media currently mounted on them.
</i>
<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="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.
<p>
Other supported codepage mappings are:
<p>
<table border=1 cellpadding=3>
<tr>
<th rowspan=2>Mapping</th>
<th colspan=2>Description</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>
<tr><td align="center"><code>437/500</code></td>
<td>437 PC United States</td>
<td>500 International</td>
</tr>
<tr><td align="center"><code>437/1047</code></td>
<td>437 PC United States</td>
<td>1047 Open Systems Latin 1</td>
</tr>
<tr><td align="center"><code>819/037</code></td>
<td>819 ISO-8859-1</td>
<td>037 United States/Canada</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>
</tr>
<tr><td align="center"><code>819/273</code></td>
<td>819 ISO-8859-1</td>
<td>273 Austria/Germany</td>
</tr>
<tr><td align="center"><code>819/277</code></td>
<td>819 ISO-8859-1</td>
<td>277 Denmark/Norway</td>
</tr>
<tr><td align="center"><code>819/278</code></td>
<td>819 ISO-8859-1</td>
<td>278 Finland/Sweden</td>
</tr>
<tr><td align="center"><code>819/280</code></td>
<td>819 ISO-8859-1</td>
<td>280 Italy</td>
</tr>
<tr><td align="center"><code>819/284</code></td>
<td>819 ISO-8859-1</td>
<td>284 Spain</td>
</tr>
<tr><td align="center"><code>819/285</code></td>
<td>819 ISO-8859-1</td>
<td>285 United Kingdom</td>
</tr>
<tr><td align="center"><code>819/297</code></td>
<td>819 ISO-8859-1</td>
<td>297 France</td>
</tr>
<tr><td align="center"><code>819/500</code></td>
<td>819 ISO-8859-1</td>
<td>500 International</td>
</tr>
<tr><td align="center"><code>819/1047</code></td>
<td>819 ISO-8859-1</td>
<td>1047 Open Systems Latin 1</td>
</tr>
<tr><td align="center"><code>850/273</code></td>
<td>850 PC Latin 1</td>
<td>273 Austria/Germany</td>
</tr>
<tr><td align="center"><code>850/1047</code></td>
<td>850 PC Latin 1</td>
<td>1047 Open Systems Latin 1</td>
</tr>
<tr><td align="center"><code>1252/037</code></td>
<td>1252 Windows Latin 1</td>
<td>037 United States/Canada</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>
</tr>
<tr><td align="center"><code>1252/1047</code></td>
<td>1252 Windows Latin 1</td>
<td>1047 Open Systems Latin 1</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>
</tr>
</table>
<p>
Iconv single byte codepages may also be used (e.g. <code>UTF8/EBCDIC-CP-NL</code>)
if the host environment supports iconv.
<p>
If no codepage is specified then the environment variable HERCULES_CP
will be inspected. The default codepage mapping is <code>default</code>.
<p>
<a name="CNSLPORT"></a>
<dt><code>CNSLPORT <i>nnnn</i></code>
<dd><p>
specifies the port number (in decimal) to which tn3270 and
telnet clients will connect.
<p>
The CNSLPORT statement may also have the form of host:port, where
the telnet console server will bind to the specified address.
<p>
<a name="CONKPALV"></a>
<dt><code>CONKPALV <i>(idle,intv,count)</i></code>
<dd><p>
specifies the tn3270 console and telnet clients keep-alive 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 keep-alive 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
keep-alive 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
keep-alive packets sent before the connection is considered to have
failed.
<p>
The default values are 3, 1, and 10. That is, send the initial probe
3 seconds after the line goes idle and then wait no more than one
second for it to be responded to. Do this 10 times before considering
the client as having died.
<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 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 keep-alive probe packets, then it means that the
TCP/IP stack is down or there has been a break in the
connection. Thus, even if your 3270 client
is completely idle, your system's TCP/IP stack itself should still respond
to the keep-alive 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>
<i><b>Note:</b></i>
On Windows platforms the <code><i>count</i></code> value is ignored and
cannot be changed from its default value of 10.
Also, some older platforms may ignore all of the values specified
and use platform default values instead.
<p>
<a name="CPUMODEL"></a>
<dt><code>CPUMODEL <em>xxxx</em></code>
<dd><p>
specifies the 4 hexadecimal digit CPU machine type number
stored by the STIDP instruction
<i>Note: Prior to ESA/390 this was known as the CPU model number</i>
<p>
<a name="CPUPRIO"></a>
<dt><code>CPUPRIO <em>nn</em></code>
<dd><p>
specifies the priority of the CPU thread. Default is a nice value
of 15, which means a low priority such that I/O can be scheduled and
completed in favour of CPU cycles being burned. On Multi-CPU
systems, a real CPU can be "dedicated" to Hercules, by giving the
CPU thread a very high dispatching priority (-20).
See <a href="#thread_priorities">"Thread Priorities"</a>
below for more information.
<p>
<i><b>Caution:</b> CPUPRIO should not have a higher dispatching
priority than the TOD Clock and timer thread.</i>
</ol>
<p>
<a name="CPUSERIAL"></a>
<dt><code>CPUSERIAL <em>xxxxxx</em></code>
<dd><p>
specifies the 6 hexadecimal digit CPU serial
number stored by the STIDP instruction
<p>
<a name="CPUVERID"></a>
<dt><code>CPUVERID <em>xx</em></code>
<dd><p>
specifies the 2 hexadecimal digit CPU version code
stored by the STIDP instruction.
The default version code is FD when ARCHMODE S/370 or ARCHMODE ESA/390
is specified. For the z/Architecture mode, the version code is always
stored as 00 and the value specified here is ignored.
<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="DEVPRIO"></a>
<dt><code>DEVPRIO <em>nn</em></code>
<dd><p>
specifies the priority of the device threads. The default value is 8.
See <a href="#thread_priorities">"Thread Priorities"</a>
below for more information.
<p>
<i><b>Caution:</b> DEVPRIO should not have a higher dispatching
priority than the TOD Clock and timer thread.</i>
<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 DISABLE | ENABLE [ECHO | NOECHO]</code>
<dd><p>
When <code>ENABLE</code> is specified, commands issued through the Diagnose 8 interface
will be executed by Hercules as Hercules commands. When set to <code>DISABLE</code>,
commands issued through the Diagnose 8 interface will generate a Specification
Exception program interrupt on the issuing CPU.
<p>An optional second argument can be given to request whether the commands
issued using the Diagnose 8 interface will be traced at the console. This may be
useful for programs that routinely issue panel commands using the Diagnose 8 interface.
When <code>ECHO</code> is specified, a message is issued as the panel is about to issue
the command, the command is redisplayed as if it was entered through the panel input
line, and a final message is issued to indicate the command completed. When <code>NOECHO</code>
is specified, no such messages are displayed and the command completes silently.
<p>The value of <code>ECHO</code> or <code>NOECHO</code> has no effect on
command output being placed into a response buffer if the Diagnose 8 interface
requested one.
<p>The default is <code>DISABLE NOECHO</code>
<p>
<i><b>Caution:</b> Enabling this feature may have security consequences.</i>
<p>
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 Hercules <code>sh</code> (shell) command. This ability may be
disabled via the <a href="#SHCMDOPT">SHCMDOPT</a> statement.
<p>
<a name="ECPSVM"></a>
<dt><code>ECPSVM YES | NO | LEVEL <em>nn</em></code>
<dd><p>
specifies whether ECPS:VM (Extended Control Program Support : Virtual Machine)
support is to be enabled. 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). Although this feature does not affect
VM Operating system products operating in XA, ESA or z/Architecture mode,
it will affect VM/370 and VM/SP products running under VM/XA, VM/ESA or z/VM.
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. 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. 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. This is a partial
implementation.
<p>
<a name="ENGINES"></a>
<dt><code>ENGINES [<em>nn</em>*]CP|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="HERCPRIO"></a>
<dt><code>HERCPRIO <em>nn</em></code>
<dd><p>
specifies the process priority for Hercules. The default is 0.
See <a href="#process_priorities">"Process Priorities"</a>
below for more information.
<p>
<a name="HTTPPORT"></a>
<dt><code>HTTPPORT <em>nnnn</em> [AUTH | NOAUTH] [ <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. If no HTTPPORT statement is
present or an invalid port number is specified, then the HTTP server thread
will not be activated.<br>
<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>HTTPROOT <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="IGNORE"></a>
<dt><code>IGNORE INCLUDE_ERRORS</code>
<dd><p>
Indicates that errors caused by subsequent
<code><a href="#INCLUDE">INCLUDE</a></code> statements
for files which do not exist should instead be ignored rather
than causing startup to be aborted (as would otherwise normally
occur).
<p>
<a name="INCLUDE"></a>
<dt><code>INCLUDE <em>filepath</em></code>
<dd><p>
An <code>INCLUDE</code> statement tells Hercules configuration file
processing to treat the contents of the file specified by <em>filepath</em>
as if its contents had appeared in the configuration file at the point
where the <code>INCLUDE</code> statement appears.
<p>
Note that the included file may itself contain yet another
<code>INCLUDE</code> statement as long as the maximum nesting depth
(current 8) is not exceeded.
<p>
<a name="IODELAY"></a>
<dt><code>IODELAY <em>usec</em> [NOWARN]</code>
<dd><p>
specifies the amount of time (in microseconds) to wait after
an I/O interrupt is ready to be set pending. This value can also be
set using the Hercules console. The purpose of this parameter is to
bypass a bug in the <b>Linux/390</b> and <b>zLinux</b> <code>dasd.c</code>
device driver. The problem is more apt to happen under Hercules than
on a real machine because we may present an I/O interrupt sooner than a
real machine.
<p>
If the IODELAY value is non-zero a warning message (HHCCF037W) will be
issued unless <code>NOWARN</code> is specified.
<p>
NOTE : <a href="#OSTAILOR"><code>OSTAILOR LINUX</code></a> no longer sets
IODELAY to 800 since the problem described above is no longer present in
recent versions of the Linux kernel.
<p>
<a name="LDMOD"></a>
<dt><code>LDMOD <em>module list</em></code>
<dd><p>
specifies additional modules that are to be loaded by the Hercules dynamic loader.
The default search order is with the hercules directory in the default DLL search
path. Most systems also support absolute filenames (ie names starting with '/'
or '.') in which case the default search path is not taken.
<p>
Multiple LDMOD statements may be used.
<p>
<a name="LEGACYSENSEID"></a>
<dt><code>LEGACYSENSEID OFF | DISABLE | ON | ENABLE</code>
<dd><p>
specifies whether the SENSE ID CCW (X'E4') will be honored for
the devices that originally didn't support that feature. This
includes (but may not be limited to) 3410 and 3420 tape drives,
2311 and 2314 direct access storage devices,
and 2703 communication controllers.
<p>
Specify <code>ON</code> or <code>ENABLE</code> if your guest
operating system needs the Sense ID support to dynamically
detect those devices. Note that most current operating systems
will not detect those devices even though Sense ID is enabled
because those devices never supported the Sense ID in the first
place. So this mainly applies to custom built or modified versions
of guest operating systems that are aware of this specific Hercules
capability.
<p>
Because those legacy devices didn't originally support this command,
and for compatibility reasons, the default is <code>OFF</code>
or <code>DISABLE</code>.
<p>
<a name="LOADPARM"></a>
<dt><code>LOADPARM <em>xxxxxxxx</em></code>
<dd><p>
specifies the eight-character IPL parameter which is used
by some operating systems to select system parameters.
<p>
<a name="LOGOPT"></a>
<dt><code>LOGOPT TIMESTAMP | NOTIMESTAMP</code>
<dd><p>
sets Hercules log options. TIMESTAMP causes messages to the log
to be time stamped. NOTIMESTAMP prevents time stamping of log
messages. TIMESTAMP and NOTIMESTAMP may be abbreviated as
TIME and NOTIME respectively. The current resolution of the
stamp is one second.
<p>
The default is TIMESTAMP.
<p>
<a name="LPARNAME"></a>
<dt><code>LPARNAME <em>name</em></code>
<dd><p>
specifies the LPAR name returned by DIAG X'204'. The default is
<code>HERCULES</code>.
<p>
<a name="LPARNUM"></a>
<dt><code>LPARNUM <em>xx</em></code>
<dd><p>
specifies the one- or two-digit hexadecimal LPAR identification number
stored by the STIDP instruction.
If a one-digit number is specified then STIDP stores a format-0 CPU ID.
If a two-digit number is specified then STIDP stores a format-1 CPU ID.
If LPARNUM is not specified, then STIDP stores a basic-mode CPU ID.
<p>
<a name="MAINSIZE"></a>
<dt><code>MAINSIZE <em>nnnn</em></code>
<dd><p>
specifies the main storage size in megabytes, where
<code><em>nnnn</em></code> is a decimal number. The lower limit is 2.
The actual upper limit is determined by your host system's architecture
and operating system, and (on some systems) the amount of physical
memory and paging space you have available.
<p>
<a name="MANUFACTURER"></a>
<dt><code>MANUFACTURER <em>name</em></code>
<dd><p>
specifies the MANUFACTURER name returned the STSI instruction. The default is
<code>HRC</code>.
<p>
<a name="MAXCPU"></a>
<dt><code>MAXCPU <em>nn</em></code>
<dd><p>
specifies the number of installed processor engines.
The <a href="#NUMCPU">NUMCPU</a> statement specifies the number of
engines which will be configured online at startup time.
All processors are CP engines unless otherwise specified by the
<a href="#ENGINES">ENGINES</a> statement.
<p>
The value of MAXCPU cannot exceed the value of <code>MAX_CPU_ENGINES</code>.
If MAXCPU is not specified then the default value is the value of
<code>MAX_CPU_ENGINES</code>.
<p>
<code>MAX_CPU_ENGINES</code> is a compile-time variable which sets
an upper limit on the value of MAXCPU.
The value of <code>MAX_CPU_ENGINES</code> is displayed in the
Build information message on the Hercules control panel at startup time.
To change the value of <code>MAX_CPU_ENGINES</code> you must rebuild
Hercules.
For Unix builds, specify
<tt>./configure --enable-multi-cpu=<em>nn</em></tt>
before performing make.
For Windows builds, specify
<tt>SET MAX_CPU_ENGINES=<em>nn</em></tt>
before performing nmake.
<p>
<code>MAX_CPU_ENGINES</code> may be up to 128 on 64-bit Linux platforms.
On Windows, and on all 32-bit platforms, the maximum value is 64.
For performance reasons,
values above 32 are not recommended for 32-bit platforms.
If <code>MAX_CPU_ENGINES</code> is set to 1 then multiprocessing is disabled.
See also <a href="#NUMCPU">NUMCPU</a> for a discussion of the performance
implications of <code>MAX_CPU_ENGINES</code>.
<p>
<a name="MODEL"></a>
<dt><code>MODEL <em>hardware_model</em>
[ <em>capacity_model</em> ]
[ <em>perm_capacity_model</em> ]
[ <em>temp_capacity_model</em> ]
</code>
<dd><p>
specifies the MODEL names returned by the STSI instruction.
<p>
If two operands are supplied, the first is the hardware model name (CPC
ND model) and the second is the capacity model name (CPC SI model).
If only one operand is supplied, it is used as both the hardware model
name and the capacity model name.
The optional third and fourth operands specify the permanent capacity
model name and the temporary capacity model name respectively.
<p>
The default is <code>EMULATOR</code>.
<p>
<a name="MODPATH"></a>
<dt><code>MODPATH <em>path</em></code>
<dd><p>
specifies the path where dynamic modules are loaded from. When a modpath
statement is specified, the path on the modpath statement is searched before
the default path is searched. When a relative path is specified is interpreted
as a relative path within the default search path, if an absolute path is
specified is interpreted as such.
<p>
The default MODPATH is hercules, which means modules are loaded from the
directory hercules within the default LD_LIBRARY_PATH.
<p>
<a name="MOUNTED_TAPE_REINIT"></a>
<dt><code>MOUNTED_TAPE_REINIT DISALLOW | ALLOW</code>
<dd><p>
specifies whether reinitialization of tape drive devices (via the
<code>devinit</code> command, in order to mount a new tape) should
be allowed if there is already a tape mounted on the drive.
<p>
Specifying <code>ALLOW</code> (the default) indicates new tapes may
be mounted (via <code>'devinit <i>nnnn</i> <i>new-tape-filename</i>'</code>)
irrespective of whether or not there is already a tape mounted on the drive.
<p>
Specifying <code>DISALLOW</code> prevents new tapes from being mounted
if one is already mounted. When <code>DISALLOW</code> is specified
and a tape is already mounted on the drive, it must first be unmounted
(via the command <code>'devinit <i>nnnn</i> *'</code>) before
the new tape can be mounted. Otherwise the devinit attempt to mount
the new tape is rejected.
<p>
This option is meant as a safety mechanism to protect against
accidentally dismounting a tape from the wrong drive as a result of
a simple typo (thereby cancelling a potentially important tape job)
and was added by user request.
<p>
Also note that for SCSI tape drives the <code>'devinit <i>nnnn</i> *'</code>
command has no effect as the tape must be unmounted manually (since it is
a real physical device and not one emulated via a disk file like .AWS tapes).
<p>
<a name="NUMCPU"></a>
<dt><code>NUMCPU <em>nn</em></code>
<dd><p>
specifies the number of emulated processor engines
which will be configured online at startup time.
NUMCPU cannot exceed the value of <a href="#MAXCPU">MAXCPU</a>.
If NUMCPU is less than <a href="#MAXCPU">MAXCPU</a>
then the remaining engines can be configured online later.
<p>
Multiprocessor emulation works best
if your host system actually has more than one physical CPU, but you can
still emulate multiple CPUs nervertheless even on a uniprocessor system
(and you might even achieve a small performance benefit when you do).
There is little point, however, in specifying <tt>NUMCPU</tt> greater
than 1 unless your guest operating system (running under Hercules) is
actually able to support multiple CPUs (and if you do not actually need
multiprocessor emulation, then setting <tt>MAX_CPU_ENGINES</tt> to 1 at
compile time might even produce a slight performance advantage too).
<p>
<a name="NUMVEC"></a>
<dt><code>NUMVEC <em>nn</em></code>
<dd><p>
specifies the number of emulated vector facilities. Default is one per
CPU. Only available by default in ESA/390 mode.
<p>
<a name="OSTAILOR"></a>
<dt><code>OSTAILOR OS/390 | z/OS |
VM | VSE | LINUX | QUIET | NULL</code>
<dd><p>
specifies the intended operating system. The effect of this
parameter is to reduce control panel message traffic by
selectively suppressing trace messages for program checks
which are considered normal in the specified environment.
<code>QUIET</code> discards all exception messages.
<code>NULL</code> allows all exception messages to be logged.
<p>
Optionally prefix any value except <code>QUIET</code> or
<code>NULL</code> with '+' to cause the suppressions for that
environment to be combined (added) to those already specified,
or with '-' to remove such suppressions (i.e. to allow them).
<p>
If the <code>OSTAILOR</code>
statement is omitted, exception messages for program checks
10, 11, 16, and 1C are suppressed.
<p>
Use the <code>ostailor</code> or <code>pgmtrace</code> panel
commands to display or alter the current settings.
<p>
<a name="PANRATE"></a>
<dt><code>PANRATE SLOW | FAST | <em>nn</em></code>
<dd><p>
specifies the panel refresh rate, in milliseconds between refreshes. SLOW
is the same as 500, and FAST is the same as 50. A value less than the
Linux system clock tick interval (10 on Intel, 1 on Alpha), or more than
5000, will be rejected. SLOW is the default.
<p>
<a name="PANTITLE"></a>
<dt><code>PANTITLE <em>"title-string"</em></code>
<dd><p>
specifies an optional console window title-bar string to be used
in place of the default supplied by the windowing system. If the value
contains any blanks it must be enclosed within double-quotes.
<p>
This option allows one to distinguish between different Hercules
sessions when running more than one instance of Hercules on the same
machine.
<p>
This option takes effect only when the Hercules console is displayed
on an xterm terminal (commonly used on Unix systems), or
in a Windows command prompt window.
Note that this option has no effect when Hercules is run under control
of the Hercules GUI since Hercules's console window is hidden in favor
of using the GUI's window instead.
<p>
<a name="PGMPRDOS"></a>
<dt><code>PGMPRDOS RESTRICTED | LICENSED</code>
<dd><p>
specifies whether or not Hercules will run licensed program product ESA
or z/Architecture operating systems. If <code>RESTRICTED</code> is
specified, Hercules will stop all CPUs when a licensed program product
operating system is detected. Specify
<code>LICENSED</code> to allow these operating systems to run normally.
This parameter has no effect on Linux/390, Linux for z/Series, or any
370-mode OS.
<p>
<p class="warning">
<b>NOTE: It is <u>YOUR</u> responsibility to comply with
the terms of the license for the operating system you intend to run on
Hercules. If you specify LICENSED and run a licensed operating system in
violation of that license, then don't come after the Hercules developers
when the vendor sends his lawyers after you.</b>
<p>
<code>RESTRICTED</code> is the default. Specifying
<code>LICENSED</code> will produce a message when a licensed operating
system is detected to remind you of your responsibility to comply with
software license terms.
<p>
<a name="PLANT"></a>
<dt><code>PLANT <em>name</em></code>
<dd><p>
specifies the PLANT name returned by the STSI instruction. The default is
<code>ZZ</code>.
<p>
<a name="SHCMDOPT"></a>
<dt><code>SHCMDOPT DISABLE | NODIAG8</code>
<dd><p>
When set to <code>DISABLE</code>, <code>sh</code> (shell) commands are globally disabled, and will result
in an error if entered either directly via the Hercules hardware console or
programmatically via the <a href="#DIAG8CMD">DIAG8CMD</a> interface.
<p>
When set to <code>NODIAG8</code> only the programmatic execution of shell commands via the
the Diagnose 8 interface is disabled, but <code>sh</code> (shell) commands entered directly
via the Hercules hardware console will still work.
<p>
<b>NOTE:</b> <i>"entered directly via the Hercules hardware console"</i>
also pertains to both commands entered via the
<a href="#HTTPROOT">HTTP server facility</a>
as well as commands entered via
<a href="hercinst.html#RCFILE">.rc "run command"</a> scripts.
<p>
<a name="SHRDPORT"></a>
<dt><code>SHRDPORT <em>nnnn</em></code>
<dd><p>
specifies the port number (in decimal) on which the <a href="shared.html">Shared Device server</a>
will listen. Specifying SHRDPORT will allow other Hercules instances
to access devices on this instance. (Currently only DASD devices may
be shared). By default, the other Hercules instances (clients) will
use port 3990. If you specify a different port number, then you will
have to specify this port number on the device statement for the other
Hercules clients.
If no SHRDPORT statement is present then the Shared Device server thread
will not be activated.<br>
<p>
<a name="SYSEPOCH"></a>
<dt><code>SYSEPOCH <em>yyyy</em> [±<em>years</em>]</code>
<dd><p>
specifies the base date for the TOD clock. Use the default value
(<code>1900</code>) for all systems except OS/360. Use <code>1960</code>
for OS/360. Values other than these were formerly used to offset the
TOD clock by a number of years to move the date before the year 2000 for
non-Y2K-compliant operating systems. This use is deprecated, and support
will be removed in a future release; at that time, only values of
<code>1900</code> or <code>1960</code> will be accepted. Other values
will produce a warning message with the equivalent values to specify in
the SYSEPOCH statement.<br>
An optional year offset may be specified, and will be treated as though
it had been specified on a <a href="#YROFFSET"><code>YROFFSET</code></a>
statement.
<p>
<a name="TIMERINT"></a>
<dt><code>TIMERINT DEFAULT | <em>nnnn</em></code>
<dd><p>
specifies the internal timers update interval, in microseconds. This
parameter specifies how frequently Hercules's internal timers-update thread
updates the TOD Clock, CPU Timer, and other architectural related
clock/timer values. The default interval is 50 microseconds, which
strikes a reasonable balance between clock accuracy and overall host
performance. The minimum allowed value is 1 microsecond and the maximum
is 1000000 microseconds (i.e. one second).
<p>
<i><b>Caution:</b> While a lower TIMERINT value may help
increase the accuracy of your guest's TOD Clock and CPU Timer values,
it could also have a severe negative impact on the overall performance
of your host operating system. This is especially true when a low TIMERINT
value is coupled with a high <a href="#HERCPRIO">HERCPRIO</a> and
<a href="#TODPRIO">TODPRIO</a> priority setting. Exercise extreme caution
when choosing your desired TIMERINT in relationship to your chosen
<a href="#HERCPRIO">HERCPRIO</a> and <a href="#TODPRIO">TODPRIO</a>
priority settings.
</i>
<p>
<a name="TODDRAG"></a>
<dt><code>TODDRAG <em>nn</em></code>
<dd><p>
specifies the TOD clock drag factor. This parameter can be used
to slow down or speed up the TOD clock by a factor of <em>nn</em>.
A significant slowdown can improve the performance of some operating
systems which consume significant amounts of CPU time processing
timer interrupts.
A drag factor of 2.0 slows down the clock by 50%. A drag factor of
0.5 doubles the speed of the clock. A drag factor of 1.01 slows
down the clock by 1%, and 0.99 speeds up the clock by 1%.
<p>
<a name="TODPRIO"></a>
<dt><code>TODPRIO <em>nn</em></code>
<dd><p>
specifies the priority of the TOD Clock and timer thread. The
default value is -20. See
<a href="#thread_priorities">"Thread Priorities"</a>
below for more information.
<p>
<i><b>Caution:</b> TODPRIO should be given a dispatching
priority equal to or higher than any other thread within Hercules.</i>
<p>
<a name="TRACEOPT"></a>
<dt><code>TRACEOPT TRADITIONAL | REGSFIRST | NOREGS</code>
<dd><p>
sets the Hercules instruction tracing display option.
<code>TRADITIONAL</code> (the default), displays the registers following
the instruction about to be executed such that pressing enter (to execute
the displayed instruction) then shows the next instruction to be executed
followed by the updated registers display.
<p>
<code>REGSFIRST</code> displays the current register contents followed by
the instruction about to be executed such that pressing enter (to execute
the displayed instruction) then shows the updated registers followed by
the next instruction to be executed.
<p>
<code>NOREGS</code> suppresses the registers display altogether
and shows just the instruction to be executed.
<p>
In addition to the <code>TRACEOPT</code> configuration file statement
there is also a corresponding <code>traceopt</code> panel command to
dynamically display and/or update the current setting at any time.
<p>
<a name="TZOFFSET"></a>
<dt><code>TZOFFSET ±<em>hhmm</em></code>
<dd><p>
specifies the hours and minutes by which the TOD clock will
be offset from the current system time. For GMT, use the
default value (+0000). For timezones west of Greenwich, specify
a negative value (example: <code>-0500</code> for US Eastern Standard
Time, <code>-0800</code> for US Pacific Standard Time).
For timezones east of Greenwich, specify a positive value
(example: <code>+0100</code> for Central European Time,
<code>+0930</code> for South Australian Time).
<p>
<a name="XPNDSIZE"></a>
<dt><code>XPNDSIZE <em>nnnn</em></code>
<dd><p>
specifies the expanded storage size in megabytes, where
<code><em>nnnn</em></code> is a decimal number. The lower limit is 0.
The actual upper limit is determined by your host system's architecture
and operating system, and (on some systems) the amount of physical
memory and paging space you have available.
<p>
<a name="YROFFSET"></a>
<dt><code>YROFFSET ±<em>years</em></code>
<dd><p>
specifies a number of years to offset the TOD clock from the actual
date. Positive numbers will move the clock forward in time, while
negative numbers will move it backward. A common value for
non-Y2K-compliant operating systems is <code>YROFFSET -28</code>, which
has the advantage that the day of the week and the presence or absence
of February 29 is the same as the current year. This value may not be
specified as greater than ±142 years, the total range of the TOD
clock. Specifying a value that causes the computed TOD clock year to be
earlier than the value of <a href="#SYSEPOCH"><code>SYSEPOCH</code></a>
or more than 142 years later than that value will produce unexpected
results.
<p>
</dl>
<p>
A comment preceded by a # sign may be appended to any system
parameter statement.
<p>
<hr><!-- ---------------------------------------------------------------------------- -->
<a name="subs"></a>
<h3>Symbol substitutions</h3></a>
<p>
In configuration and device statements, as well as in panel commands and OAT files,
symbols may be substituted for text.
<h4>Syntax</h4>
<p>
To substitute symbol <em>symbol</em> with its contents, the symbol should be enclosed
within parenthesis and preceded by a $ sign. For example, if symbol <em>FOO</em> contains
the text string <em>"BAR"</em> then <em>$(FOO)</em> will be substituted with the
string <em>"BAR"</em>;. Symbol names are case sensitive.
<h5>Example</h5><code><pre>
DEFSYM TAPEDIR "/home/hercules/tapes"
...
0380 3420 $(TAPEDIR)/scratch.aws
...</pre></code>
<p>
In this example, device 0380 will be a 3420 loaded with the AWS tape file in /home/hercules/tapes/scratch.aws
<h4>Special symbols</h4>
<h5>Device group symbols</h5>
<p>
When multiple devices are defined with a single device definition statement, then the symbols<P>
<TABLE BORDER=0>
<ul compact>
<TR><TD><LI> CUU </TD><TD> (3 digits device number, upper case hexadecimal digits)</TD></TR>
<TR><TD><LI> CCUU </TD><TD> (4 digits device number, upper case hexadecimal digits)</TD></TR>
<TR><TD><LI> cuu </TD><TD> (3 digits device number, lower case hexadecimal digits)</TD></TR>
<TR><TD><LI> ccuu </TD><TD> (4 digits device number, lower case hexadecimal digits)</TD></TR>
</ul>
</TABLE>
<p>
are defined to contain for each device the relevant device address. For example:
<p>
<code><pre>
0200,0201 3340 /home/hercules/dasds/myvols.$(CUU)
</pre></code>
<p>
will define two 3340 packs, with device 0200 being loaded with the file myvols.200 and
device 0201 defined with myvols.201.
<h5>Environment variables</h5>
<p>
If a symbol is not explicitly defined by a DEFSYM statement and an environment
variable by the same name exists, the string contents of that environment variable
will be used for substitution.
<h5>Undefined symbols</h5>
<p>
If a symbol is not defined by an explicit DEFSYM, is not an automatically generated symbol
and is not an environment variable, an empty string will be substituted.
<h4>Escaping substitution, recursion</h4>
<p>
To be able to specify the '$(' string without incurring substitution, an additional '$' sign
should be used. For example, $$(FOO) will not be substituted. If substitution is required but
the preceding text is to contain a '$' sign as the very last character, then $$$(FOO) should be
specified. Thus, if symbol FOO contains "BAR", then $$(FOO) will remain "$$(FOO)" while $$$(FOO)
will become "$BAR".
<p>
Substitution is <i>not</i> recursive (only one substitution pass is made).
<p>
<hr><!-- ---------------------------------------------------------------------------- -->
<a name="ENHSYMINC"></a>
<h3>Enhanced symbol substitutions</h3></a>
<p>
Enhanced symbol substitution differs from the above normal symbol substitution
in several very important ways:
<p>
First, the syntax is different. Enhanced substitution symbol names are specified
using <code>${var}</code> (dollar + brace) rather than <code>$(var)</code>
(dollar + parenthesis).
<p>
Second, the enhanced syntax supports specifying a default value that is to be used
instead whenever the name symbol is otherwise not defined. The default value is
placed within the opening and closing braces just as the symbol name is, but
separated from it by either a single equal sign '<code>=</code>' or a
colon-equal-sign '<code>:=</code>'.
<p>
For example, specifying "<code>${DASD_PATH=dasd/}</code>" in your configuration
file requests that the value of the "DASD_PATH" symbol or environment variable be
substituted, or, if the variable is undefined, to use the value "<code>dasd/</code>"
instead. If no default value is specified then an empty string is used instead.
<p>
Finally, enhanced symbol substitution occurs only from host defined environment
variables and <i>not</i> from any identically named <code>DEFSYM</code> symbol
should one exist. For example, if environment variable 'FOO' is defined with the
value "bar", then the configuration file statement "<code>DEFSYM FOO myfoo</code>"
followed immediately by the statement "<code>${FOO}</code>" causes the value
"<code>bar</code>" to be substituted and <i>not</i> '<code>myfoo</code>' as might
otherwise be believed, whereas the statement "<code>$(FOO)</code>", since it is
a normal symbol substitution sequence <i>does</i> get replaced with "<code>myfoo</code>"
(since that was the value defined to it via the preceding <code>DEFSYM</code>
statement).
<p>
In other words each symbol substitution technique is supported completely separately
from one another. <code>DEFSYM</code> allows one to define/undefine/use private (internally
defined) symbols separate from the host operating system's environment variable pool,
whereas the enhanced symbol substitution does not and instead only allows read-only
access to the host's environment variable pool with no support for modifying an already
defined symbol (environment variable) but a nonethless convenient means of defining
a default value to be used should the specified host environment variable be currently
undefined.
<p>
Further note that symbol names, being the names of environment variables, are subject
to whatever case sensitivity or case insensitivity that the host operating system
happens to enforce/allow. On Windows, environment variables are not case sensitive, whereas on other
operating systems they may be. Thus "<code>${FOO}</code>", "<code>${foo}</code>",
"<code>${Foo}</code>", etc, all cause the same value to be substituted on Windows,
whereas the <code>DEFSYM</code> symbols <code>$(FOO)</code> and <code>$(foo)</code>,
being two completely different and unique symbols, could be substituted with two
completely different values (since <code>DEFSYM</code> <b><i>is</i></b>
case sensitive across <i>all</i> supported platforms, <i>including</i> Windows).
<p>
<h4>Syntax</h4>
<p>
To substitute symbol <em>symbol</em> with the current environment variable value,
the symbol should be enclosed within braces and preceded by a $ sign. For example,
if an environment variable named <code>FOO</code> holds the value "BAR", then
<code>${FOO}</code> will be substituted with the string "BAR". If the environment variable
"FOO" is not defined then a null (empty) string is substituted instead.
<p>
If the string "<code>${FOO:=myfoo}</code>" is used instead, then the value "BAR" will still be
substituted if the value "BAR" was indeed previously assigned to FOO, but will be
substituted with the value "<code>myfoo</code>" instead if the environment variable
FOO is currently undefined.
<p>
Note too that the default value is a literal
string and no substitution is applied to it. Thus attempting to use the syntax
"<code>${foo=${bar}}</code>" will <i>not</i> yield the expected results. It will
<i>not</i> be substituted with the currently defined value of the "bar" environment
variable, but rather will <i>always</i> be substituted with the literal string
"<code>${bar</code>" followed immediately by the literal character '<code>}</code>'.
<p>
Symbol names (environment variable names) are not case sensitive on Windows whereas
they might be on other host operating systems.
<p>
<hr><!-- ---------------------------------------------------------------------------- -->
<a name="process_and_thread_priorities"></a>
<h3>Process and Thread Priorities</h3>
<p><br>
<a name="process_priorities"></a>
<h4>Process Priorities</h4>
<P>
<B>Note:</B> Under Linux, a process is a thread and
<a href="#thread_priorities">thread priority</a> information
applies instead.
<P>
For Windows, the following conversions are used for translating Unix
process priorities to Windows process priority classes:
<P>
<BR>
<table frame="VOID" rules="NONE" cellpadding="0" cellspacing="0">
<TR>
<TH ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">Unix<br>Priority</TH>
<TH ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"><BR></TH>
<TH ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Windows Process<br>Priority Class</TH>
<TH ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"><br>Meaning</TH>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">-20 to -16</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Real-time</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Process that has the highest possible priority. The threads of the process
preempt the threads of all other processes, including operating system processes
performing important tasks. For example, a real-time process that executes for
more than a very brief interval can cause disk caches not to flush or cause
the mouse to be unresponsive.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">-15 to -9</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">High</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Process that performs time-critical tasks that must be executed immediately.
The threads of the process preempt the threads of normal or idle priority class
processes. An example is the Task List, which must respond quickly when called
by the user, regardless of the load on the operating system. Use extreme care
when using the high-priority class, because a high-priority class application
can use nearly all available CPU time.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">-8 to -1</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Above Normal</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Process that has priority above the Normal class but below the High class.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">0 to 7</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Normal</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Process with no special scheduling needs.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">8 to 14</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Below Normal</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Process that has priority above the Idle class but below the Normal class.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">15 to 20</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Idle</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Process whose threads run only when the system is idle. The threads of the
process are preempted by the threads of any process running in a higher priority
class. An example is a screen saver. The idle-priority class is inherited by
child processes.
</TD>
</TR>
</TABLE>
<p><br>
<p>
<i>
<b>Caution:</b> On Windows, the value you choose for your
<a href="#HERCPRIO">Process Priority</a>
has a direct impact on how your
<a href="#thread_priorities">Thread Priorities</a> are interpreted!
You should never modify one without understanding what impact your doing so
might have on the other!
</i>
<p><br>
<a name="thread_priorities"></a>
<h4>Thread Priorities</h4>
<P>
On a Linux/Unix host, Hercules needs to be a setuid root
program to allow it to reset its dispatching priority to a high
(negative) value
(i.e., <code>chown root.root hercules; chmod +s hercules</code>).
<P>
For Windows, the following conversions are used for translating
Linux/Unix thread priorities to Windows thread priorities:
<P><BR>
<table frame="VOID" rules="NONE" cellpadding="0" cellspacing="0">
<TR>
<TH ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">Unix<br>Priority</TH>
<TH ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"><BR></TH>
<TH ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Windows<br>Thread Priority</TH>
<TH ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"><br>Meaning</TH>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">-20 to -16</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Time Critical</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Base priority of 15 for Idle, Below Normal, Normal, Above Normal, or High
class processes, and a base priority of 31 for Realtime class processes.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">-15 to -9</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Highest</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Priority 2 points above the priority class.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">-8 to -1</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Above Normal</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Priority 1 point above the priority class.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">0 to 7</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Normal</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Normal priority for the priority class.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">8 to 14</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Below Normal</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Priority 1 point below the priority class.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">15 to 19</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Lowest</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Priority 2 points below the priority class.
</TD>
</TR>
<TR> <!-- ============================================================================ -->
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%"> </TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="BASELINE" WIDTH="11%">20</TD>
<TD ALIGN="CENTER" VALIGN="BASELINE" WIDTH="6%"> </TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="20%">Idle</TD>
<TD ALIGN="LEFT" VALIGN="BASELINE" WIDTH="63%">
Base priority of 1 for Idle, Below Normal, Normal, Above Normal, or High
class processes, and a base priority of 16 for Realtime class processes.
</TD>
</TR>
</TABLE>
<p><br>
<p>
<i>
<b>Caution:</b> On Windows, your Thread Priority is interpreted
differently based on your chosen <a href="#HERCPRIO">Process Priority</a> setting!
You should never modify your Thread Priority settings without first reviewing your
chosen <a href="#HERCPRIO">Process Priority</a> setting!
</i>
<p>
<hr><!-- ---------------------------------------------------------------------------- -->
<a name="device_stmts"></a>
<h3>Device statements</h3>
<p>
The remaining statements in the configuration file are device statements.
There must be one device statement for each I/O device or group of
identical I/O devices. The format of the device statement is:
<p>
<code><em>devnum(s) devtype</em> [ <em>arguments</em> ] [ <em># comments...</em> ] </code>
<p>
where the generic syntax for device numbers is
<code>[n:]CCUU[,CCUU][-CCUU][.nn][...]</code>
as explained below:
<dl> <!-- begin Device statements -->
<a name="devnums"></a>
<dt><code><em>devnum(s)</em></code>
<dd><p>
is either a single <em>devnum</em>, a range of <em>devnums</em> (separated by a '-' (dash)),
a count of <em>devnums</em> (separated by a '.' (dot/period/stop)), or a comma separated
list of <em>devnums</em>. Examples would be 200-210 or 0300.10 or 0400,0403 or 0100,0110-011F.
<p>
All devices defined when <em>devnums</em> specifies more than one device
have identical characteristics (except for the device number itself).
All devices defined as a group must be defined on a single channel.
A channel is defined as a contiguous group of 256 (or hexadecimal 100) devices.
0010 and 0020 are on the same channels. 0100 and 0210 are not.
<p>
See <em>devnum</em> immediately below for an explanation of how each device number is specified.
<p />
The 4 special subtitution symbols CUU, CCUU, cuu and ccuu are also defined for each
device in a device group. See <a href="#subs">substitutions</a> for details.
<p>
<dt><code><em>devnum</em></code>
<dd><p>
is either a 1 to 4 digit hexadecimal number in the range 0000 to FFFF
for ESA/390, or 0000 to 0FFF for S/370. The device number uniquely
identifies each device to the operating system.
<p>
<dt><code><em>Channel Set / Logical Channel Subsystem</em></code>
<dd><p>
An optional Channel Set or Logical Channel Subsystem Identification can be
specified for a device number or group of devices. The Identification
number is specified at the beginning of the definition, followed by a ':'
character. For example :<p>
1:0400-040F 3270<p>
defines 3270 devices 400 to 40F to be on S/370 Channel Set 1 or on S/390
or z/Architecture Logical Channel Subsystem # 1.<p>
Since each Logical Channel Subsystem defines its own device numbering space,
care should be taken in S/370 mode as to define a coherent set of device
numbers.<p>
Not all S/390 or z/Architecture operating systems support Multiple Logical
Channel Subsystems (this feature was introduced with the z9-109).<p>
If no Channel Set or Logical Channel Subsystem Identification is specified,
then it is assumed to be 0.
<p>
<dt><code><em>devtype</em></code>
<dd><p>
is the device type. Valid device types are shown in the
<a href="#device_types_table">table</a> just below.
<p>
<dt><code><em>arguments</em></code>
<dd><p>
is a list of parameters whose meaning depends on the device type.
The arguments required for each class of device are shown further
below.
<p>
<dt><code><em># comments...</em></code>
<dd><p>
A comment preceded by a # sign may be appended to any device
definition statement.
<p>
</dl> <!-- end Device statements -->
<p><br>
<a name="device_types_table"></a>
<table width=85%>
<tr>
<td width=15%>
</td>
<td>
<table border=1 cellpadding=8>
<tr>
<th colspan=3><br><big>Supported Device Types</big><p></th>
</tr>
<tr><th>Device type</th>
<th>Description</th>
<th>Emulated by</th>
</tr>
<tr><td>3270, 3287</td>
<td><a href="#loc3270">Local non-SNA 3270 display or printer</a></td>
<td>TN3270 client connection</td>
</tr>
<tr><td>SYSG</td>
<td><a href="#SYSG">Integrated 3270 console</a></td>
<td>TN3270 client connection</td>
</tr>
<tr><td>1052, 3215</td>
<td><a href="#conprkb">Console printer-keyboards</a></td>
<td>Telnet client connection</td>
</tr>
<tr><td>1052-C, 3215-C</td>
<td><a href="#consysc">Integrated console printer-keyboards</a></td>
<td>Integrated on Hercules console</td>
</tr>
<tr><td>1442, 2501, 3505</td>
<td><a href="#cardrdr">Card readers</a></td>
<td>Disk file(s) (ASCII or EBCDIC)</td>
</tr>
<tr><td>3525</td>
<td><a href="#cardpch">Card punch</a></td>
<td>Disk file (ASCII or EBCDIC)</td>
</tr>
<tr><td>1403, 3211</td>
<td><a href="#printer">Line printers</a></td>
<td>Disk file (ASCII)</td>
</tr>
<tr><td>3410, 3420, 3422, 3430, 3480, 3490, 3590, 9347, 8809</td>
<td><a href="#tapedev">Tape drives</a></td>
<td>Disk file, CDROM, or SCSI tape</td>
</tr>
<tr>
<td>
<a href="#3088">
3088
</a>
</td>
<td>
Channel-to-Channel Adapter device
</td>
<td>
<a href="#CTCT">"CTCT" driver</a>
or
<a href="#CTCE">"CTCE" driver</a>
</td>
</tr>
<tr>
<td>
(( <a href="#CTCI">CTCI</a> ))
</td>
<td>
Channel-to-Channel link to host TCP/IP stack
</td>
<td>
<a href="#CTCI">"CTCI" TUN/TAP Driver</a>
</td>
</tr>
<tr>
<td>
(( <a href="#LCS">LCS</a> ))
</td>
<td>
IBM 2216 router, IBM 3172 running ICP,
IBM 8232 LCS device, LCS3172 driver of a P/390,
IBM Open Systems Adapter (OSA)
</td>
<td>
<a href="#LCS">"LCS" (LAN Channel Station)
<br>TUN/TAP Driver</a>
</td>
</tr>
<tr><td>3310, 3370, 9332, 9335, 9336, 0671</td>
<td><a href="#fbadasd">FBA direct access storage devices</a></td>
<td>Disk file</td>
</tr>
<tr><td>2305, 2311, 2314, 3330, 3340, 3350, 3375, 3380, 3390, 9345</td>
<td><a href="#ckddasd">CKD direct access storage devices</a></td>
<td>Disk file</td>
</tr>
<tr><td>2703</td>
<td><a href="#comline">Communication Line</a></td>
<td>TCP Socket</td>
</tr>
<tr><td>2703</td>
<td><a href="#remtty">Remote Teletype</a></td>
<td>TCP Socket</td>
</tr>
</table>
</td>
</tr>
</table>
<p><br>
<h4>Arguments required for each device type</h4>
<dl> <!-- begin Arguments for each device type -->
<p>
<a name="3270"></a>
<a name="loc3270"></a>
<dt><em>Local non-SNA 3270 devices</em>
<dd><p>
There are no required arguments for this particular device type, but
there are however several optional arguments which are discussed below.
<p>
To use this device, a tn3270 client must connect to the host machine
via the port number specified on the <a href="#CNSLPORT">CNSLPORT</a>
statement. A valid tn3270 device type, such as IBM-3278, must be used.
<p>
If your tn3270 client software allows you to specify a device type suffix
(e.g. <code>IBM-3278@001F</code> ), then you can use the suffix to connect
to that specific device number, if eligible. If no suffix is specified,
then your client will be connected to the first available 3270 device for
which it is eligible, if any.
<p>
If you specify a specific terminal device address (via the device type
suffix of your tn3270 client software), then you must be eligible to connect
at that device address or your connection is immediately rejected; an
alternative terminal device for which you <i>might</i> be eligible is
<i>not</i> automatically selected instead.
<p>
Optional arguments:
<p>
<dl>
<a name="loc3270group"></a>
<dt><code><em>groupname</em></code>
<dd><p>
If a terminal group name is given on the device statement, a device type
suffix with this group name can be used to indicate that a device in this
group is to be used. If a group name is specified as a terminal type suffix
(e.g. <code>IBM-3278@GROUPNAME</code> ) and there are no devices defined
for that group (or there are no more available devices remaining in that
group), then the connection is rejected. If no group name is specified
as a terminal type suffix, then the connection will only be eligible for
any terminal devices which do <i>not</i> have a group name specified on
their device statements. The terminal group name, if specified, should
be 1 to 8 alphanumeric characters, the first character being alphabetic,
and it should <i>not</i> be a hexadecimal number. Upper and lower case
letters in the group name are considered to be equivalent.
<p>
<a name="loc3270ipaddr"></a>
<dt><code><em>ipaddr</em> [ <em>mask</em> ]</code>
<dd><p>
The optional IP address and optional subnet mask specify the ip address(es)
of which client(s) are allowed to connect at the device address identified
by the device statement on which they appear. This provides an alternative
and/or additional means of specifying to which device(s) a client tn3270
session may, or should, connect.
<p>
If the IP address of the tn3270 client trying to connect, when 'and'ed with
the optional subnet mask (which defaults to 255.255.255.255 if not specified),
matches the IP address entered on the device statement, then the client
is eligible to connect at that device address. Otherwise the client is
ineligible to connect at that address and then next available device, if
any, for which the client is eligible to connect (if any) is selected instead.
<p>
If no permissible terminal devices remain (i.e. terminal devices for which
the client is eligible to connect), or there are no more available terminal
devices remaining, then the client connection is rejected.
<p>
The optional IP address and subnet mask may also be specified in conjunction
with the previously mentioned terminal group argument, but the terminal group
argument, if specified, must be specified <i>ahead of</i> (i.e. before) the
optional ip address and subnet mask arguments. To specify an IP address and
subnet mask without also specifying a terminal group, simply use '*' as the
group name instead.
<p>
If an IP address / subnet mask are <i>not</i> specified, then <i>any</i>
client tn3270 session is allowed to connect to the device (provided they are also
a member of the specified terminal group, if any).
<p>
The terminal group name argument, if specified, always takes precedence over
any optional ip address and subnet mask which may also be specified.
<p>
</dl>
To summarize, the device number suffix always takes precedence over any group name
which may also be specified, and any group name, if specified, always takes precedence
over any ip address / subnet mask value which may also be specified.
<p>
<hr width="50%"><p>
<a name="SYSG"></a>
<dt><em>Integrated 3270 console device</em>
<dd><p>
The integrated 3270 (SYSG) console is similar to a <a href="#loc3270">local non-SNA
3270</a> device, except that it is not addressed by subchannel number and it is
supported only by certain system control programs. The SYSG console is defined
like a 3270 device except that the device type is SYSG and the device number is
ignored. Only one SYSG console can be defined in a configuration.
<p>
Use tn3270 client software to connect to the SYSG console device via the port number
specified on the <a href="#CNSLPORT">CNSLPORT</a> statement, just as you would connect
to a regular local non-SNA 3270 device.
<p>
The SYSG console configuration statement recognizes optional arguments which specify
<a href="#loc3270group">group name</a> and <a href="#loc3270ipaddr">IP address</a>
in the same way as previously described for a <a href="#loc3270">local non-SNA
3270</a> device. These optional arguments provide a means to ensure that a given
tn3270 client can connect directly to the SYSG console. If the group name and IP
address arguments are not specified, then the SYSG console is considered to be a
member of the general pool of devices eligible for connection to any incoming
tn3270 client.
<p>
<hr width="50%"><p>
<a name="consysc"></a>
<dt><em>Integrated Console printer-keyboard devices</em>
<dd><p>
There is one optional argument which is the command prefix
for sending input to the device. The default command prefix is '/'.
<p><em>
<b>Note:</b> There is no restriction on the character you can select.
If you select a command character that is the first character of a panel
command, you will not be able to use that command.
</em>
<p>
To send a logon command to a 1052-C or 3215-C enter /logon on the Hercules console.
<p>
All integrated devices must use a different command prefix.
<p>
<hr width="50%"><p>
<a name="conprkb"></a>
<dt><em>Console printer-keyboard devices</em>
<dd><p>
There are no required arguments for this particular device type, but
there are however several optional arguments discussed below.
<p>
To use this device, a telnet client must connect to the host machine
via the port number specified on the <a href="#CNSLPORT">CNSLPORT</a> statement.
<p>
If your telnet client software allows you to specify a device type suffix
(for example: <code>ansi@0009</code> ), then you can use that suffix to specify
the specific 1052 or 3215 device to which you wish to connect. If you do not
specify a suffix in your telnet client software (or your software does not
allow it), then your client will be connected to the first available 1052 or
3215 device for which it is eligible.
<p>
An optional <code>noprompt</code> argument may be specified on the device
statement to cause suppression of the "Enter input for console device nnnn"
prompt message which is otherwise normally issued to the device whenever
the system is awaiting input on that device.
<p>
Additionally, a terminal group name, ip address and subnet mask may all also
be optionally specified in the exact same manner as discussed in the previous
<a href="#loc3270">Local non-SNA 3270 devices</a> section with the exception
that the "noprompt" option, if specified, must precede the other arguments.
<p>
<hr width="50%"><p>
<a name="1442"></a>
<a name="3505"></a>
<a name="cardrdr"></a>
<dt><em>Card reader devices</em>
<dd><p>
The argument specifies a list of file names containing card images.
Additional arguments may be specified after the file names:
<p>
<dl>
<dt><code>sockdev</code>
<dd><p>
indicates the card reader is a socket device wherein the
filename is actually a socket specification instead of a
device filename. When used, there must only be one filename
specified in the form: <code>port</code> or <code>host:port</code>
or <code>sockpath/sockname</code>. The device then accepts
remote connections on the given TCP/IP port or Unix Domain
Socket, and reads data from the socket instead of from a device
file. This allows automatic remote submission of card reader
data. See the <a href="hercrdr.html">Hercules Socket Reader</a>
page for more details.
<p>
<dt><code>eof</code>
<dd><p>
specifies that unit exception status is presented after
reading the last card in the file. This option is persistent, and
will remain in effect until the reader is reinitialized with the
<code>intrq</code> option.
<p>
<dt><code>intrq</code>
<dd><p>
specifies that unit check status with intervention required
sense bytes is presented after reading the last card
in the file. This option is persistent, and will remain in
effect until the reader is reinitialized with the <code>eof</code>
option.
<p>
<dt><code>multifile</code>
<dd><p>
specifies, when multiple input files are entered, to
automatically open the next input file and continue reading
whenever EOF is encountered on a given file. If not specified,
then reading stops once EOF is reached on a given file and
an attention interrupt is then required to open and begin
reading the next file.
<p>
<dt><code>ebcdic</code>
<dd><p>
specifies that the file contains fixed length 80-byte EBCDIC
records with no line-end delimiters.
<p>
<dt><code>ascii</code>
<dd><p>
specifies that the file contains variable length lines of
ASCII characters delimited by LF (line feed) sequences or CRLF
(carraige return line feed) sequences at the end of each line.
<p>
If neither EBCDIC nor ASCII is specified, then the device handler
attempts to detect the format of the card image file when the device
is first accessed.
Auto-detection is not supported for socket devices, and the default
is ASCII if sockdev is specified.
<p>
<dt><code>trunc</code>
<dd><p>
specifies, for ASCII files, that lines longer than 80
characters are truncated instead of producing a unit check
error.
<p>
<dt><code>autopad</code>
<dd><p>
specifies, for EBCDIC files, that the file is automatically
padded to a multiple of 80 bytes if necessary.
<p>
</dl>
<p>
<hr width="50%"><p>
<a name="3525"></a>
<a name="cardpch"></a>
<dt><em>Card punch devices</em>
<dd><p>
The argument specifies the name of a file to which the punched
output will be written.
Additional arguments may be specified after the file name:
<p>
<dl>
<dt><code>ascii</code>
<dd><p>
specifies that the file will be written as variable length
lines of ASCII characters delimited by line feeds or
carriage return line feed sequences at the end of each line.
Trailing blanks are removed from each line.
If the <code>ascii</code> argument is not specified, the
file is written as fixed length 80-byte EBCDIC records with
no line-end delimiters.
<p>
<dt><code>crlf</code>
<dd><p>
specifies, for ASCII files, that carriage return line feed
sequences are written at the end of each line.
If the <code>crlf</code> argument is not specified, then
line-feeds only are written at the end of each line.
<p>
<dt><code>noclear</code>
<dd><p>
specifies that the output file will not be cleared to zero
bytes when it is opened.
If the <code>noclear</code> argument is not specified, then
any previous content of the file is destroyed when the file
is opened for output.
<p>
</dl>
<p>
<hr width="50%"><p>
<a name="1403"></a>
<a name="printer"></a>
<dt><em>Line printer devices</em>
<dd><p>
The argument specifies the name of a file to which the printer
output will be written. The output is written in the form of
variable length lines of ASCII characters delimited by line
feeds or by carriage return line feed sequences. Trailing
blanks are removed from each line. Carriage control characters
are translated to blank lines or ASCII form feed characters.
If the file exists it will be overwritten.
<p>
Additional arguments may be specified after the file name:
<p>
<dl>
<dt><code>sockdev</code>
<dd><p>
indicates the line printer is a socket device wherein the
filename is actually a socket specification instead of a
device filename. When used, there must only be one filename
specified in the form: <code>port</code> or <code>host:port</code>.
The device then accepts
remote connections on the given TCP/IP port,
and writes data to the socket instead of to a device
file. This allows automatic remote spooling of line printer
data. The sockdev option is mutually exclusive with all other
printer options (e.g. crlf, etc) and must be specified alone.
<p>
<dt><code>crlf</code>
<dd><p>
specifies, for ASCII files, that carriage return line feed
sequences are written at the end of each line.
If the <code>crlf</code> argument is not specified, then
line-feeds only are written at the end of each line.
<p>
<dt><code>noclear</code>
<dd><p>
specifies that the output file will not be cleared to zero
bytes when it is opened.
If the <code>noclear</code> argument is not specified, then
any previous content of the file is destroyed when the file
is opened for output.
<p>
<dt><code>fcbcheck</code>
<dd><p>
specifies that an attempt to skip to a FCB channel for which no
line number has been set will cause the command to be rejected
with a unit check. This is the default.
<p>
<dt><code>nofcbcheck</code>
<dd><p>
specifies that an attempt to skip to a FCB channel for which no
line number has been set will cause the next line of output to be
printed on the next line on the printer output. The opposite,
<code>fcbcheck</code>, is the default.
<p>
<dt><code>rawcc</code>
<dd><p>
specifies that printer output CCWs are not to be interpreted, but
simply dumped in hex to the printer output file. This is useful for
debugging. Default is to interpret printer CCWs normally.
<p>
<dt><code>fcb=<em>argument</em></code>
<dd><p>
specifies an initial FCB image to use for this printer. The argument
may either consist of 12 numbers separated by commas (these are the
line numbers for channels 1 to 12), or of pairs of numbers in the
format <em>nn</em><b>:</b><em>chan</em> where <em>chan</em> is the
channel number and <em>nn</em> is the line number that the channel
corresponds to. Use <code>00</code> to leave the line number unset
for a channel (see <code>fcbcheck</code> above). The default is
<code>fcb=1,7,13,19,25,31,37,43,63,49,55,61</code>
which is equivalent to
<code>fcb=1:1,7:2,13:3,19:4,25:5,31:6,37:7,43:8,63:9,49:10,55:11,61:12</code>
<p>
<dt><code>browse | print</code>
<dd><p>
specifies whether the output should be optimized and cleaned up for
browsing, or optimized for printing. The default is <code>browse</code>.
<p>
<dt><code>index=<em>nn</em></code>
<dd><p>
specifies 3211 indexing. Valid values are 0 to 31. The default is 0.
<p>
<dt><code>lpi=6|8</code>
<dd><p>
specifies vertical spacing of 6 or 8 lines per inch.
<p>
<dt><code>lpp=<em>nn</em></code>
<dd><p>
specifies the number of lines per page. The default is 66.
<p>
</dl>
<p>
If the filename begins with the vertical bar '|' pipe character,
then it is removed and the remainder of the filename is interpreted as
a command line (the name of a program or batch file followed by any
necessary arguments) to which to "pipe" the printer output to.
This is known as the "print-to-pipe" feature. All printer output
is then sent to the piped program's stdin input, and all of the
piped program's stdout and stderr output is piped back to Hercules
for displaying on the hardware console.
<p>
If the "print-to-pipe" command line contains arguments, then quotes
must be placed around the entire filename string including the
vertical bar, for example:
<pre>
000E 1403 "|/usr/bin/lpr -Phplj" crlf <em>(for Unix)</em>
000E 1403 "|c:\utils\pr -s -PLPT1:" crlf <em>(for Windows)</em>
</pre>
The above example uses the pr program downloaded
from <a href="http://www.atnetsend.net/computing/">
http://www.atnetsend.net/computing/</a>
<p>
If the "print-to-pipe" command line itself contains quotes, then
the command line must be enclosed in apostrophes instead of quotes,
for example:
<pre>
000E 1403 '|"c:\Program Files\My Utils\pr" -s -PLPT1:' crlf
</pre>
<p>
Tim Pinkawa has an example which shows how the print-to-pipe feature
can be used to create output in PDF format:
<a href="http://www.timpinkawa.net/hercules/prtspool.html">
http://www.timpinkawa.net/hercules/prtspool.html</a>
<p>
<hr width="50%"><p>
<a name="3420"></a>
<a name="tapedev"></a>
<dt><em>Emulated tape devices</em>
<dd><p>
Five types of tape emulation are supported (see further below).
<p>
The only required parameter is the device filename. All other parameters
are optional and must follow the filename. Use '<b>*</b>' (asterisk) for
the filename to specify an empty (unmounted) tape drive. The specified file,
if other than '<b>*</b>', <i>must</i> exist.
<p>
Additionally, if the file name starts with the '@' character (at sign), the file
really describes a list of tape emulation files to be loaded in succession.
<p>
The syntax of each line is identical to the information that can be
specified after the device type when the options are specified directly
after the device type in the configuration file.
<p>
If the emulation file filename in the file list is the '<b>*</b>' (asterisk)
character, then this specifies a set of options to be applied to <i>all</i>
additional emulation files specified in the file list.
<p>
Parameters are appended in succession. In all cases, if the same parameter is
specified more than once, the last instance takes precedence.
<p>
Therefore, it is possible to specify a set of parameters in the base configuration
file, another set on a '*' line, and another set for each individual line.
Parameters are then appended in that order: options specified on the base device
statement itself first, followed by those options specified on the '*' statement,
and finally those specified on each individual file list statement last. <i>A
<b>SCSI tape</b> device should <b>not</b> be given in a file list.</i>
<p>
Refer to the distributed source-code's "<b>README.TAPE</b>" document for
additional information regarding system and application programming for tape
devices and instructions regarding use of the emulated <b>ACF</b> (Automatic
Cartridge Feeder) and <b><a href="#AUTOMOUNT">AUTOMOUNT</a></b> features
for virtual (non-SCSI) tape devices.
<p>
<dl> <!-- begin Emulated tape types of emulation -->
<dt><b>SCSI tape drives</b>
<dd><p>
These are real tape drives attached to the host machine via a SCSI
interface. Hercules emulation always makes the drive appear as a
channel attached device such as 3420 or 3480, although the underlying
physical drive may be any type of SCSI attached tape drive, including
4mm or 8mm DAT, DLT, SCSI attached 3480/3490 cartridge drives, and
SCSI attached 3420 open reel tape drives.
<p>
Host-attached SCSI tapes are read and written using variable length
EBCDIC blocks and filemarks exactly like a mainframe tape volume, and
as a result can be freely used/exchanged on either (i.e. SCSI tapes
created on a real mainframe can subsequently be read by Hercules just
fine, and a SCSI tape created by Hercules can be subsequently read on
a mainframe just fine, thus providing a convenient means of exchanging
data between the two).
<p>
If you plan on using SCSI tapes with Hercules you might also be interested
in the <a href="#AUTO_SCSI_MOUNT">AUTO_SCSI_MOUNT</a> configuration option.
<p>
The only <i>required</i> device statement parameter for SCSI attached tape
drives is the name of the device as it is known
by the host operating system,
usually "<code><b>/dev/nst0</b></code>" <i>(for Linux or
Windows)</i> or "<code><b>\\.\Tape0</b></code>" <i>(for
Windows only)</i>, where '0' means tape drive number
0 (your first or only host-attached SCSI tape drive), '1' means your
second host-attached SCSI tape drive, etc.
<p>
Depending on what actual model of SCSI tape drive you
actually have and how it behaves, you may need to specify one or more
additional optional parameters for Hercules to provide proper emulation
of the desired device type.
For example: a <b>Quantum 'DLT' (Digital Linear Tape) SCSI</b> tape drive does
not return nor use a block-id format compatible with 3480/3490 drives
(it instead uses a full 32-bit block-id just like the model 3590 does).
It also does not support the Erase Gap CCW at all.
<p>
Thus, in order to use, for example, a Quantum DLT drive with Hercules,
you <i>MUST</i> specify some special additional options to prevent the
Erase Gap command from being issued to the drive as well as to inform
Hercules that the drive uses 32-bit block-ids.
<p>
<b>Please note</b> that the below options define how the actual SCSI hardware
device behaves, which is completely different from the way the <i>emulated</i>
device will appear to behave to your guest. That is to say, if you define
your tape drive to Hercules as a 3480 device, then Hercules will perform
3480 device type emulation such that the device appears to your guest o/s
as if it were a 3480 device. If the <i>actual</i> SCSI device behaves as
a 3590 device however (perhaps using/returning 32-bit block-ids instead
of the expected 22-bit format block-ids that 3480's use), then you <i>MUST</i>
specify the <code>--blkid-32</code> special option on your Hercules device
statement so that Hercules's emulation logic can know that it needs to
translate 22-bit block-ids to 32-bit ones before sending them to the
actual SCSI hardware (and vice versa: to translate 32-bit block-ids from
the actual SCSI drive into 22-bit format block-ids that your guest expects
from a 3480 device).
<br>
<a name="Quantum"></a>
<br>
<center><h4>Special options for SCSI tapes</h4></center>
<p>
As explained just above, certain model SCSI tape drives such as the Quantum
DLT series may require special handling in order to provide the desired proper
device type emulation. These special options are:
<p>
<dl>
<dt><code>--no-erg</code>
<dd><p>
This option is intended to prevent issuance of the Erase Gap
command to those SCSI tape drives which do not support it (such
as the Quantum DLT series). It causes Hercules's device emulation
logic to ignore any Erase Gap commands issued to the drive and
to return immediate 'success' instead.
<p>
This option should
only be used (specified) for drives such as the Quantum, which
support switching from read mode to write mode in the middle of
a data stream without the need of an intervening Erase Gap command.
Specifying it for any other model SCSI drive may cause incorrect
functioning as a result of the Erase Gap command not being issued
to the actual SCSI hardware.
<p>
Check the manufacturer information for your particular model of
SCSI-attached tape drive (and/or use Fish's
"<a href="http://www.softdevlabs.com/Hercules">ftape</a>"
Windows utility)
to determine whether or not this option is needed for your
particular drive.
<p>
<dt><code>--blkid-32</code>
<dd><p>
This option indicates that your SCSI-attached tape drive only
supports 32-bit block-ids (as used by 3590 drives) and not the 22-bit
format used by 3480/3490 drives. You should only specify this option
if you intend to define the drive as a model 3480 or 3490 device, and
then only if your actual SCSI drive uses 32-bit block-ids of course.
If you define your Hercules tape drive as a model 3590 device however,
then this option is of course not needed since model 3590 drives
are already presumed to use 32-bit block-ids.
<p>
Specifying this option on a 3480/3490 device statement will cause
Hercules device emulation logic to automatically translate the actual
SCSI tape drive's 32-bit block-id into 22-bit format before returning
it back to the guest operating system (since that is the format it
expects it to be in for a model 3480/3490 drive), and to translate the
guest's 22-bit format block-id into 32-bit format before sending it
to the actual SCSI hardware (since that is the format that the actual
hardware requires it to be in).
<p>
<dt><code>--blkid-22</code>
<dd><p>
The complete opposite of the above <code>--blkid-32</code> option.
</dl>
<p><br>
<dt><b>Optical Media Attach (OMA) virtual files</b>
<dd><p>
These are read-only files which usually reside on CDROM.
OMA virtual tapes consist of one CDROM file corresponding
to each physical file of the emulated tape. An ASCII text
file called the tape descriptor file (TDF) specifies the
names of the files which make up the virtual tape.
The argument specifies the name of the tape descriptor
file (for example <code>/cdrom/tapes/uaa196.tdf</code>)
<p>
Each file on the virtual tape can be in one of three formats:
<p>
<dl>
<dt><code>TEXT</code>
<dd><p>
<b><i>TEXT</i></b> files consist of variable length
ASCII records delimited by carriage return line feed
sequences at the end of each record. Each record is
translated to EBCDIC and presented to the program as
one physical tape block.
<p>
<dt><code>FIXED <em>nnnnn</em></code>
<dd><p>
<b><i>FIXED</i></b> files consist of fixed length
EBCDIC blocks of the specified length
(<code><em>nnnnn</em></code>)
<p>
<dt><code>HEADERS</code>
<dd><p>
<b><i>HEADERS</i></b> files consist of variable
length EBCDIC blocks. Each block is preceded by a
12-byte header.
<p>
</dl>
<p>
If you have any IBM manuals in Bookmanager format on CDROM,
you can see some examples of TDF files in the
<code>\TAPES</code> directory on the CDROM.
<p><br>
<dt><b>AWSTAPE virtual files</b>
<dd><p>
These contain a complete tape in one file. AWSTAPE files
consist of variable length EBCDIC blocks. Each block is
preceded by a 6-byte header. Filemarks are represented by
a 6-byte header with no data. This is the same format as is
used by the P/390.
The argument specifies the location of the AWSTAPE file
(for example <code>ickdsf.aws</code>)
<p><br>
<dt><b>FakeTape virtual files</b>
<dd><p>
These contain a complete tape in one file. FakeTape files
consist of variable length EBCDIC blocks. Each block is
preceded by a 12-ASCII-hex-character header. Filemarks are represented by
a 12-character header with no data. The FakeTape format is
used by the Flex-ES system from Fundamental Software Inc (FSI).
The argument specifies the location of the FakeTape file
(for example <code>ickdsf.fkt</code>). Note: "FLEX-ES" and
"FakeTape" are trademarks of Fundamental Software, Inc.
<p><br>
<dt><b>HET virtual files</b> (<b>H</b>ercules <b>E</b>mulated <b>T</b>ape)
<dd><p>
These contain a complete tape in one file and have the same
structure as the AWSTAPE format with the added ability to have
compressed data.
The first argument specifies the location of the HET file. The
filename must end with ".het" to be recognized by Hercules as an
HET file.
(for example <code>023178.het</code>)
<p>
Additional arguments that allow you to control various HET settings
are:
<p>
<dl> <!-- begin Additional HET arguments -->
<dt><code>AWSTAPE</code>
<dd><p>
The <code>AWSTAPE</code> argument causes HET files to
be written in AWSTAPE format. This basically, disables
the additional features provided by the HET format.
<p>
<dt><code>COMPRESS=<em>n</em></code>
<dt><code>IDRC=<em>n</em></code>
<dd><p>
<code>COMPRESS</code> and <code>IDRC</code> control
whether compression should be used when writing to HET
files. The value <code><em>n</em></code> can be <code>1</code>
to turn on compression (the default) or <code>0</code> to turn
it off. <code>IDRC</code> is currently a synonym for
<code>COMPRESS</code>, but may be used in the future to
control other emulated tape drive features.
<p>
<dt><code>METHOD=<em>n</em></code>
<dd><p>
The <code>METHOD</code> option allows you to specify
which compression method to use. You may specify
<code>1</code> for ZLIB compression or <code>2</code>
for BZIP2 compression. The default is <code>1</code>.
<p>
<dt><code>LEVEL=<em>n</em></code>
<dd><p>
The <code>LEVEL</code> option controls the level of
compression. It ranges from <code>1</code> for fastest
compression to <code>9</code> for best compression.
The default is <code>4</code>.
<p>
<dt><code>CHUNKSIZE=<em>nnnnn</em></code>
<dd><p>
The <code>CHUNKSIZE</code> option allows you to create
HET files that contain different chunk sizes. The AWSTAPE
(and therefore the HET) format allows each tape block to be
logically broken up into smaller chunks. For instance, if
your S/3x0 application creates tapes with a block size of
27998, those blocks would be broken down into
<code><em>nnnnn</em></code> sized chunks.
The range is from <code>4096</code>
to <code>65535</code>, the latter being the default.
Decreasing the value from its default may reduce compression
performance.
For compatability with AWSTAPE files created by the P/390,
specify <code>AWSTAPE</code> with <code>CHUNKSIZE=4096</code>.
<p>
</dl> <!-- end Additional HET arguments -->
</dl> <!-- begin Emulated tape types of emulation -->
<p><br>
The following parameters apply to <b>AWS</b>, <b>HET</b> and <b>FakeTape</b> emulation files:
<p>
<dl>
<dt><code>MAXSIZE</code>=<i>n</i> | <code>MAXSIZEK</code>=<i>n</i>
| <code>MAXSIZEM</code>=<i>n</i>
<dd><p>
Specifies the maximum size (in bytes, Kilobytes or Megabytes)
that the emulated file is allowed to grow to. Specifying zero
for this parameter means "unlimited" (i.e. there is no limit).
<p>
<dt><code>EOTMARGIN</code>=<em>n</em>
<dd><p>
Specifies the number of bytes remaining before reaching <em>maxsize</em>
at which point the tape device will signal the presence of the "End of Tape"
marker (reflector), thus allowing the program to switch to the next tape.
<p>
<dt><code>READONLY</code>=<em>n</em>
<dd><p>
Specifies whether the tape is mounted read-only (without a write
ring or with the cartridge protect switch set to "write
protect"). A parameter of 1 means read-only; a parameter of 0
means read-write. If READONLY=1, RO or NORING is not specified,
the default is READONLY=0. Note that READONLY=0 does not override
the host system file permission settings for the underlying AWS or
HET file. If the AWS or HET file is marked read-only, the tape
will be mounted read-only despite specification of READONLY=0.
<p>
<dt><code>RO</code>
<dt><code>NORING</code>
<dd><p>
Specifies that the tape is mounted read-only (without a write
ring or with the cartridge protect switch set to "write
protect"). RO and NORING are equivalent to READONLY=1.
<p>
<dt><code>RW</code>
<dt><code>RING</code>
<dd><p>
Specifies that the tape should be mounted read-write, if possible.
RW and RING are equivalent to READONLY=0. This is the default if
RO, NORING or READONLY=1 is not specified. Note that RW and RING
do not override the host system file permission settings for the
underlying AWS or HET file. If the AWS or HET file is marked
read-only, the tape will be mounted read-only despite specification
of RW or RING.
<p>
<dt><code>DEONIRQ</code>=<em>n</em>
<dd><p>
Specifies whether a device end is presented if intervention is
required during tape motion. A parameter of 1 selects this
option; a parameter of 0 turns it off.
<p>
<a name="noautomount"></a>
<dt><code>NOAUTOMOUNT</code>
<dd><p>
Indicates support for guest-initiated automatic tape volume
mounting is to always be disabled for this tape device.
<p>
Automatic guest tape-mount support is automatically globally
enabled for all virtual (non-SCSI) tape devices by default
whenever an allowable automount directory is defined via the
<a href="#AUTOMOUNT">AUTOMOUNT</a> configuration file statement
or the <code>automount</code> panel command.
The <code>NOAUTOMOUNT</code> option allows you to specifically
disable such support for a given device.
<p>
The automount feature enables software running in guest operating
systems to automatically mount, unmount and/or query for themselves
the host "virtual tape volume" filename mounted on a tape drive,
via the use of special CCW opcodes (0x4B Set Diagnose and 0xE4
Sense Id) without any intervention on the part of the Hercules
operator. An example of such a program for DOS/VSE called
<code>TMOUNT</code> is provided in the <code>util</code>
subdirectory of the distributed source code.
<p>
This is a sticky option. When specified, automount support for
the device remains disabled until the option is specifically
removed via a <code>devinit</code> command <em>without</em> the option
specified. This means if <code>NOAUTOMOUNT</code> is enabled
for a device while global automount functionality is currently
disabled (because no <a href="#AUTOMOUNT">AUTOMOUNT</a> statement
was specified at Hercules startup), then automount functionality
remains disabled for the device even should global automount
functionality be later manually enabled via an
<code>automount</code> panel command.
<p>
When the 0x4B Set Diagnose CCW is used to auto-mount a virtual
tape volume onto a given tape drive, an absolute (fully-qualified)
pathname should normally always be specified, but need not be
if a path relative to the currently defined "default allowable"
automount directory is used instead.
<p>
The default allowable
automount directory is always the first "allowable" directory
that was defined, or else the current directory if no allowable
directories were specifically defined. (There is always a default
allowable directory whenever any allowable or unallowable automount
directories are defined.)
<p>
Fully-resolved, absolute-full-path filenames are defined as being
those which, for Windows, have a ':' (colon) in the second
position or, for other host operating systems (e.g. Linux), have
a '/' (slash) in the first position. Paths which start with a '.'
(period) are considered relative paths and will always be appended
to the currently defined default allowable automount directory,
before being resolved into fully-qualified paths by the host system.
(I.e. only fully-resolved absolute pathnames are used in the
performance of the actual automatic tape volume mount.)
<p>
For example, if more than one allowable automount directory is
defined and the volume wishing to be mounted happens to reside in
the second one, then a fully-qualified absolute pathname should
of course be specified (or else one that is relative to the
default directory which happens to resolve to the desired file).
<p>
All attempts to automount host files in a "disallowed"
directory or any of its subdirectories will be rejected.
Similarly any attempt to automount a file which is not
within any "allowable" directory or subdirectory will
be rejected. An error message is always issued in such cases.
A message is also issued whenever a successful mount or unmount
is performed.
<p>
A sample guest automount program called <code>TMOUNT</code> for
the DOS/VSE operating system is provided in the
<code>util</code> subdirectory of the distributed source code.
</dl>
<hr width="50%"><p>
<a name="ctca"></a>
<a name="3088"></a>
<dt><em>Channel-to-channel adapters</em>
<dd><p>
The first argument defines the emulation type, and the remaining
arguments depend on the chosen emulation type. If the first argument
is not a recognized emulation type, then the driver will operate as
in Hercules Version 1, using Willem Konynenberg's vmnet package, as
described in Axel Schwarzer's
<a href="http://www.kiyoinc.com/herc3088.html">CTCA 3088</a> document.
<p>
The following are the emulation types currently supported:
<p>
<dl> <!-- begin emulation types -->
<a name="CTCI"></a>
<dt><b>CTCI</b> (Channel to Channel link to TCP/IP stack)
<dd><p>
A point-to-point IP connection with the TCP/IP stack of the
driving system on which Hercules is running. See the
<a href="herctcp.html">Hercules TCP/IP</a> page for details.
<p>
(Note: The CTCI protocol is only for the Linux version of
Hercules. For Windows, use the below CTCI protocol instead).
<p>
<p><br>
<dt><b>CTCI</b> (Channel to Channel link to Win32 TCP/IP stack)
<dd><p>
A modified Win32 version of the CTCI protocol for the Windows
crowd. Note that the protocol name (CTCI) is the same,
even though the actual implementation is very different. See Fish's
<a href="http://www.softdevlabs.com/Hercules/ctci-w32-index.html">CTCI-W32</a>
page for further details and information.
<p>
<dl> <!-- begin CTCI parms -->
<dt>Required for both Linux and Windows:
<dd><p>
<dl> <!-- begin Required for both Linux and Windows -->
<dt><code><em>guestip</em></code>
<dd><p>
specifies the IP address of the guest operating system
running under Hercules.
<p>
<dt><code><em>hostip</em></code>
<dd><p>
specifies the IP address of the host (Linux or Windows) side
of the point-to-point link. This may or may not be the same
as your system's regular IP address. For Windows, if the
host system is configured with DHCP, this should instead be
the MAC address of the Ethernet adapter you wish to use to
have Hercules communicate with the outside world.
<p>
</dl> <!-- end Required for both Linux and Windows -->
<p>
<dt>Optional for Windows:
<dd><p>
If these arguments are specified, they must precede the required
arguments.
<p>
<dl> <!-- begin Optional for Windows -->
<dl> <!-- (begin INDENT) -->
<dt><code>-k <em>kernel-capture-buffer-size</em></code>
<dd>
<dt><code>-i <em>tuntap32-i/o-buffer-size</em></code>
<dd>
<p>
</dl> <!-- (end INDENT) -->
</dl> <!-- end Optional for Windows -->
<p>
See Fish's
<a href="http://www.softdevlabs.com/Hercules/ctci-w32-index.html">CTCI-W32</a>
page for further details and information.
<p>
<dt>Optional for both Linux and Windows:
<dd><p>
If these arguments are specified, they must precede the required
arguments:
<p>
<dl> <!-- begin Optional for both Linux and Windows -->
<dt><code>-n <em>name</em></code> or <code>--dev <em>name</em></code>
<dd><p>
specifies the name of the tunnel device to use.
<p>
The default
for Linux is /dev/net/tun (which is correct for version 2.4
and above of the Linux kernel).
<p>
For Windows, specify the IP address or MAC address of the
real Windows adapter to emulate the virtual guest's adapter on.
The default is the first adapter found according to Windows'
adapter binding order, which may not be the one you want if
you have multiple adapters.
<p>
See
<a href="http://www.softdevlabs.com/Hercules/ctci-w32-faq.html#wireless">question #22
of the CTCI-W32 F.A.Q. (Frequently Asked Questions)</a>
document for more information about adapter binding order, and the
<a href="http://www.softdevlabs.com/Hercules/ctci-w32-readme.html#herccfg">CTCI-W32 Configuration</a>
web page for general information regarding CTCI-W32 configuration.
<p>
<dt><code>-m <em>MAC address</em></code> or <code>--mac <em>MAC address</em></code>
<dd><p>
where <em>'MAC address'</em> is the optional hardware address for
the virtual interface in the format: hh:hh:hh:hh:hh:hh. The default value
is '00:00:5E:nn:nn:nn' where the <i>:nn:nn:nn</i> portion is constructed
from the last 3 octets of the specified <code><i>guestip</i></code>.
<p>
<dt><code>-s <em>netmask</em></code>
<dd><p>
where <em>netmask</em> is the netmask to use for the
automatically added point-to-point route in standard
dotted internet noitation (e.g. 255.255.255.0)
<p>
<dt><code>-d</code> or <code>--debug</code>
<dd><p>
specifies that debugging output is to be produced on the
Hercules control panel. This should normally be left
unspecified.
<p>
</dl> <!-- end Optional for both Linux and Windows -->
</dl> <!-- end CTCI parms -->
<p><br>
<a name="CTCT"></a>
<dt><b>CTCT</b> (Channel to Channel Emulation via TCP connection)
<dd><p>
An emulated CTCA to another Hercules system.
This emulation mode appears to the operating system running in
the Hercules machine as an IBM 3088 Channel to Channel Adapter.
It provides communication via a TCP connection with another
instance of the CTCT driver, and is designed to carry TCP/IP
communications between two guest TCP/IP stacks.
CTCT may also be used for communication between the client and
server components of the
<a href="http://home.comcast.net/~mvsddt/">
MVS Dynamic Debug Tool</a>.
<p>
Four arguments are required:
<p>
<dl> <!-- begin CTCT parms -->
<dt><code><em>lport</em></code>
<dd><p>
specifies the local TCP port. This is the TCP port that
Hercules will listen on for this CTCA.
<p>
<dt><code><em>rhost</em></code>
<dd><p>
specifies the remote host. This is the name or IP address
of the remote system that Hercules is running on, not the
name or IP address of the OS running on that copy of
Hercules.
<p>
<dt><code><em>rport</em></code>
<dd><p>
specifies the remote TCP port. The rport parameter on this
system must match the lport parameter on the remote system,
and vice versa.
<p>
<dt><code><em>bufsize</em></code>
<dd><p>
specifies the buffer size for the link. If this link is used
for IP traffic, this parameter should be more than the MTU
of the interface definition in the OS.
<p>
</dl> <!-- end CTCT parms -->
<p>
Note: CTCT only supports IP traffic. Use <a href="#CTCE">CTCE</a>
to transport general purpose payloads such as NJE, SNA, PVM, etc.
<p>
<p><br>
<a name="CTCE"></a>
<dt><b>CTCE</b> (Enhanced Channel to Channel Emulation via TCP connection)
<dd><p>
The CTCE device type will emulate a real 3088 Channel to
Channnel Adapter also for non-IP traffic, enhancing the CTCT
capabilities. CTCE connections are also based on TCP/IP between
two (or more) Hercules instances, and requires an even-odd pair
of port numbers per device side. Only the even port numbers are
to be configured; the odd numbers are just derived by adding 1
to the (configured) even port numbers. The socket connection
pairs cross-connect, the arrows showing the send->receive
direction :
<pre>
x-lport-even -> y-rport-odd
x-lport-odd <- y-rport-even
</pre>
<p>
Three arguments are required:
<p>
<dl> <!-- begin CTCE parms -->
<dt><code><em>lport</em></code>
<dd>is the even TCP/IP port on the local system.
<dt><code><em>raddress</em></code>
<dd>is the IP address of the remote system.
<dt><code><em>rport</em></code>
<dd>is the even TCP/IP port on the remote system.
</dl>
<p>
The remaining arguments are optional:
<p>
<dl>
<dt><code><em>mtu</em></code>
<dd>optional mtu buffer size, defaults to 32778
<dt><code><em>sml</em></code>
<dd>optional small minimum for mtu, defaults to 8
</dl> <!-- end CTCE parms -->
<p>
A sample CTCE device configuration is shown below:
<p>
Hercules PC Host A with IP address 192.168.1.100 :
<pre>
0E40 CTCE 30880 192.168.1.200 30880
0E41 CTCE 30882 192.168.1.200 30882 </pre>
<p>
Hercules PC Host B with IP address 192.168.1.200 :
<pre>
0E40 CTCE 30880 192.168.1.100 30880
0E41 CTCE 30882 192.168.1.100 30882 </pre>
<p>
CTCE connected Hercules instances can be hosted on either Unix
or Windows platforms, both sides do not need to be the same.
<p>
<p><br>
<a name="LCS"></a>
<dt><b>LCS</b> (LAN Channel Station Emulation)
<dd><p>
An emulated Lan Channel Station Adapter.
This emulation mode appears to the operating system running in
the Hercules machine as an IBM 8232 LCS device, an IBM 2216
router, a 3172 running ICP (Interconnect Communications Program),
the LCS3172 driver of a P/390, or an IBM Open Systems Adapter.
<p>
Rather than a point-to-point link, this emulation creates a
virtual ethernet adapter through which the guest operating system
running in the Hercules machine can communicate. As such, this
mode is not limited to TCP/IP traffic, but in fact will handle
any ethernet frame.
<p>
The configuration statement for LCS is as follows:
<p>
NOTE: There are no required parameters for the LCS emulation,
however there are several options that can be specified on the
config statement:
<p>
NOTE: On the MAC OS X Platform, the long option format (--xxx) is not
supported. Only the short option format (-x : one dash, one letter) should
be used.
<p>
<dl> <!-- begin LCS parms -->
<dt><code>-n <em>devname</em></code> or <code>--dev <em>devname</em></code>
<dd><p>
where <em>devname</em> is:
<p>
<dl> <!-- begin 'devname' -->
<dt>(Linux/Unix)
<dd><p>
the name of the TUN/TAP special character device,
normally /dev/net/tun.
<p>
<dt>(Windows)
<dd><p>
is either the IP or MAC address of the driving
systems network card. TunTap32 will automatically select
the first network card it finds if this option is
omitted, this may not be desirable for some users.
<p>
</dl> <!-- end 'devname' -->
<p>
<dt><code>-o <em>filename</em></code> or <code>--oat <em>filename</em></code>
<dd><p>
where <em>filename</em> specifies the filename of the Address
Translation file. If this option is specified, the optional
<code>--mac</code> and <em>guestip</em> entries are ignored in preference to
statements in the OAT. (See further below for the <a href=#OAT>syntax
of the OAT file</a>)
<p>
<dt><code>-m <em>MAC Address</em></code> or <code>--mac <em>MAC address</em></code>
<dd><p>
where <em>MAC Address</em> is the optional hardware address of
the interface in the format: hh:hh:hh:hh:hh:hh. If you use the
<code>--oat</code> option, do not specify an address here.
<p>
<dt><code><em>guestip</em></code>
<dd><p>
is an optional IP address of the Hercules
(guest OS) side. Note: This is only used to
establish a point-to-point routing table entry
on driving system. If you use the <code>--oat</code> option,
do not specify an address here.
<p>
<a name="OAT"></a>
<dt><b>OAT file syntax</b>
<dd><p>
The syntax for the Address Translation file is as follows:
<p>
<table border=1 cellpadding=10><tr><td>
<pre><code>
*********************************************************
* Dev Mode Port Entry specific information... *
*********************************************************
0400 IP 00 PRI 172.021.003.032
0402 IP 00 SEC 172.021.003.033
0404 IP 00 NO 172.021.003.038
0406 IP 01 NO 172.021.002.016
040E SNA 00
HWADD 00 02:00:FE:DF:00:42
HWADD 01 02:00:FE:DF:00:43
ROUTE 00 172.021.003.032 255.255.255.224
</code></pre>
</td></tr></table>
<p>
<dl> <!-- begin LCS OATFILE parms -->
<dt>where:
<dd><p>
<dl> <!-- (begin INDENT) -->
<dt><code><em>Dev</em></code>
<dd>is the base device address
<p>
<dt><code><em>Mode</em></code>
<dd>is the operation mode: IP or SNA.
<p>
<i><b>Note:</b> the SNA operation mode is NOT currently implemented.</i>
<p>
<dt><code><em>Port</em></code>
<dd>is the virtual (relative) adapter number.
<p>
</dl> <!-- (end INDENT) -->
</dl> <!-- end LCS OATFILE parms -->
<p>
For IP modes, the entry specific information is as follows:
<p>
<dl> <!-- begin IP Mode parms -->
<dl> <!-- (begin INDENT) -->
<dt><code>PRI | SEC | NO</code>
<dd><p>
specifies where a packet with an unknown IP
address is forwarded to. PRI is the primary
default entry, SEC specifies the entry to use
when the primary is not available, and NO
specifies that this is not a default entry.
<p>
<dt><code><em>nnn.nnn.nnn.nnn</code></em>
<dd><p>
specifies the home IP address
</dl> <!-- (end INDENT) -->
</dl> <!-- end IP Mode parms -->
<p>
When the operation mode is IP, specify only the even (read)
device number <em>dev</em>. The odd (write) address will be
create automatically.
<p>
<i><b>Note:</b> the SNA operation mode is NOT currently implemented.</i>
<p>
Additionally, two other statements may be included in the
address translation file. The HWADD and ROUTE statements:
<p>
<dl> <!-- begin HWADD and ROUTE -->
<dl> <!-- (begin INDENT) -->
<dt><code>HWADD pp <i> hh:hh:hh:hh:hh:hh</i></code>
<dd><p>
Use the HWADD to specify a hardware (MAC) address for a
virtual adapter. The first parameter after HWADD specifies
with relative adapter for which the address is applied.
<p>
<dt><code>ROUTE pp <i> nnn.nnn.nnn.nnn ...</i></code>
<dd><p>
The ROUTE statement is included for convenience. This allows the
hercifc program to create a network route for this specified
virtual adapter. Please note that it is not necessary to include
point-to-point routes for each IP address in the table. This is
done automatically by the emulation module.
<p>
</dl> <!-- (end INDENT) -->
</dl> <!-- end HWADD and ROUTE -->
The read/write devices can be swapped by coding the odd address
of the even-odd pair in the OAT
<p>
Up to 4 virtual (relative) adapters 00-03 are currently supported.
</dl> <!-- end LCS parms -->
<p>
If no Address Translation file is specified, the emulation module
will create the following:
<p>
<ul>
<li>An ethernet adapter (port 0) for TCP/IP traffic only.
<li>Two device addresses will be defined (devnum and devnum + 1).
</ul>
<p>
</dl> <!-- end emulation types -->
<p>
<hr width="50%"><p>
<a name="3380"></a>
<a name="ckddasd"></a>
<dt><em>CKD DASD devices</em>
<dd><p>
The argument specifies the name of a file containing the disk CKD
DASD image or the INET address of a <a href="shared.html">Hercules shared device server</a>.
<p>
The file consists of a 512-byte device header record
followed by fixed length track images. The length of each track
image depends on the emulated device type, and is always rounded
up to the next multiple of 512 bytes.
<p>
Volumes larger than 2GB (for example, the 3390 model 3)
can be supported by spreading the data across more than one file.
Each file contains a whole number of cylinders. The first file
(which contains cylinders 0-2518 in the case of a 3390) usually
has _1 as the last two characters of its name. The ckddasd driver
allocates the remaining files by replacing the last character of
the file name by the characters 2, 3, etc.
<p>
<em><b>Note:</b> When CKD DASD images are spread across multiple files, you must
specify only the first file name (the file with suffix _1) in the
configuration statement.</em>
<p>
If your operating system supports <i>large file sizes</i> (or
<i>64-bit offsets</i>) then volumes larger than 2G can be kept
in a single file.
<p>
Alternatively, the argument may specify the name of a file containing
a compressed CKD DASD image. The CKD driver will automatically detect
whether the file contains a regular CKD image or a compressed CKD
image.
<p>
Refer to "Creating an empty DASD volume" in the "Creating, formatting,
and loading DASD volumes" section of the
<a href="hercload.html">Creating DASD</a>
web page for information on using the 'dasdinit' command/utility to
create compressed dasd files. Refer to the
<a href="cckddasd.html">Compressed Dasd Emulation</a>
page for details on the actual CCKD emulation itself and additional
information on the <a href="cckddasd.html#cckdcommand">CCKD</a>
initialization/tuning control file statement.
<p>
If you specify an INET address, the format is:
<p>
<dl> <!-- begin INET parms -->
<dt><code><em>ip-name-or-addr</em>:<em>port</em>:<em>devnum</em></code>
<dd><p>
<em>ip-name-or-addr</em> specifies the internet name or address
where the <a href="shared.html">Hercules shared device server</a> is running.
<p>
<em>port</em> specifies the port number the shared device server
is listening on. If omitted, the default is 3990.
<p>
<em>devnum</em> specifies the device number on the shared
device server. If omitted, the default is the current device number.
<p>
</dl> <!-- end INET parms -->
<p>
In addition to the above, some additional optional arguments are also
supported.
<p>
<dl> <!-- begin (CKD) additional DASD arguments -->
<dt><code>sf=<em>shadow-file-name</em></code>
<dd><p>
A shadow file contains all the changes made to the emulated dasd since
it was created, until the next shadow file is created. The moment of the
shadow file's creation can be thought of as a snapshot of the current
emulated dasd at that time, because if the shadow file is later removed,
then the emulated dasd reverts back to the state it was at when the snapshot
was taken.
<p>
Using shadow files, you can keep the base file on a read-only device such
as cdrom, or change the base file attributes to read-only, ensuring that
this file can never be corrupted.
<p>
Hercules console commands are provided to add a new shadow file, remove
the current shadow file (with or without backward merge), compress the
current shadow file, and display the shadow file status and statistics
<p>
For detailed information regarding shadow files and their use, please
see the "<a href="cckddasd.html#shadowfiles">Shadow Files</a>" section
of the <a href="cckddasd.html">Compressed Dasd Emulation</a> web page.
<p>
<dt><code>[no]syncio</code>
<dd><p>
syncio enables possible 'synchronous' i/o. This is a dasd i/o feature
wherein guest i/o requests are completed "synchronously" during the
actual emulated execution of the SIO/SSCH (start-i/o / start subchannel)
instruction rather than being deferred and executed asynchronously in
a separate device i/o thread.
<p>
Only i/o which are known to be able to be completed without actually
needing to perform any actual host i/o are completed synchronously (e.g.
whenever the data being requested is found to already be in cache). If
the requested data is not found in the cache, then an actual host i/o
will need to be done and the request is passed to a device i/o thread
to be completed asyncronously instead.
<p>
syncio is the default for ckd. syncio statistics may be displayed via
the Hercules <code>syncio</code> panel command.
<p>
<!-- No longer applicable with current versions of Linux
<b>Note:</b> If you plan on using syncio with <b>Linux/390</b> and/or <b>zLinux</b>
you might also want to take a look at the <a href="#IODELAY">IODELAY</a>
configuration file statement as well.
<p>
-->
<p>
<code>syncio</code> may be abbreviated as
<code>syio</code>
<p>
<dt><code>readonly</code>
<dd><p>
readonly returns "write inhibited" sense when a write is attempted.
Note that not all of the sense bits may be getting set absolutely
correctly however. (Some people have reported getting different
error messages under Hercules than a real machine, but it really
hasn't been an issue for a while now.)
<p>
<code>readonly</code> may be abbreviated as
<code>rdonly</code> or <code>ro</code>
<p>
<dt><code>fakewrite</code>
<dd><p>
fakewrite is a kludge for the readonly sense problem mentioned above.
Here the disk is not intended to be updated (MVS updates the DSCB
last referenced field for a readonly file) and any writes appear to
be successful even though nothing actually gets written.
<p>
<code>fakewrite</code> may be abbreviated as
<code>fakewrt</code> or <code>fw</code>
<p>
<dt><code>[no]lazywrite</code>
<dt><code>[no]fulltrackio</code>
<dd><p>
These options have been deprecated. They are still accepted, but they
do absolutely nothing.
<p>
<code>fulltrackio</code> may be abbreviated as
<code>fulltrkio</code> or <code>ftio</code>
<p>
<dt><code>cu=<em>type</em></code>
<dd><p>
Specifies the type of control unit to which this device is attached.
The use of this parameter does not necessarily imply that
all functions of the specified control unit are emulated,
its only purpose is to force a particular control unit type
to be indicated in the data returned by SENSE ID and similar CCW's.
<p>
The default value depends on the device type:
<p>
<table border=1 cellpadding=3>
<tr align="center"><th>Device type</th><th>Default CU type</dev></th></tr>
<tr align="center"><td>2311</td><td>2841</td></tr>
<tr align="center"><td>2314</td><td>2314</td></tr>
<tr align="center"><td>3330 3340<br>3350 3375<br>3380</td><td>3880</td></tr>
<tr align="center"><td>3390</td><td>3990</td></tr>
<tr align="center"><td>9345</td><td>9343</td></tr>
</table>
<p>
Other values which may be specified are:
3990-3 and 3990-6.
<p>
Normally the default value is appropriate and this parameter need
not be specified.
<p>
</dl> <!-- end (CKD) additional DASD arguments -->
<p>
<hr width="50%"><p>
<a name="3370"></a>
<a name="fbadasd"></a>
<dt><em>FBA DASD devices</em>
<dd><p>
The argument specifies the name of a file which contains the FBA
DASD image or the INET address of a <a href="shared.html">Hercules shared device server</a>.
<p>
The file consists of fixed length 512-byte records,
each of which represents one physical block of the emulated disk.
<p>
To allow access to a minidisk within a full-pack FBA DASD image
file, two additional arguments may be specified after the file
name:
<p>
<dl> <!-- begin FBA DASD arguments -->
<dt><code><em>origin</em></code>
<dd><p>
specifies the relative block number within the DASD image
file at which the minidisk begins. The number must be less
than the number of blocks in the file. The default origin
is zero.
<p>
<dt><code><em>numblks</em></code>
<dd><p>
specifies the number of 512-byte blocks in the minidisk.
This number must not exceed the number of blocks in the file
minus the origin.
If omitted, or if specified as an asterisk, then the minidisk
continues to the end of the DASD image file.
<p>
</dl> <!-- end FBA DASD arguments -->
<p>
If you specify an INET address the format is:
<p>
<dl> <!-- begin INET parms -->
<dt><code><em>ip-name-or-addr</em>:<em>port</em>:<em>devnum</em></code>
<dd><p>
<em>ip-name-or-addr</em> specifies the internet name or address
where the <a href="shared.html">Hercules shared device server</a> is running.
<p>
<em>port</em> specifies the port number the shared device server
is listening on. If omitted, the default is 3990.
<p>
<em>devnum</em> specifies the device number on the shared
device server. If omitted, the default is the current device number.
</dl> <!-- end INET parms -->
<p>
In addition to the above, some additional optional arguments are also
supported.
<p>
<dl> <!-- begin (FBA) additional DASD arguments -->
<dt><code>sf=<em>shadow-file-name</em></code>
<dd><p>
The handling of shadow files for FBA devices is identical as that for
CKD devices. Please refer to the preceding CKD section for information
regarding use of the <code>sf=</code> shadow file option.
<p>
<dt><code>[no]syncio</code>
<dd><p>
syncio enables possible 'synchronous' i/o and is explained in detail in
the preceding CKD dasd section. Note however that syncio is currently
disabled by default for FBA dasd due to an as yet unresolved problem
and must therefore be specifically enabled if you wish to use it for FBA
dasd.
<p>
<p>
<code>syncio</code> may be abbreviated as
<code>syio</code>
</dl> <!-- end (FBA) additional DASD arguments -->
<p>
<hr width="50%"><p>
<a name="comline"></a>
<dt><em>Communication Line - BSC</em>
<dd><p>
( Preliminary 2703 BSC Support )
<p>
Describes a BSC emulation line entry to either link 2 Hercules engines
or a custom made program emulating a 2780, 3780 or 3x74, or a custom made
program interfacing to a real BSC line.
<p>
The communication is emulated over a TCP connection. All bytes are
transfered as-is (except for doubling DLE in transparent mode) just
like it would over a real BSC link. Emulated EIA (DCD, DTR, CTS,
etc..) or X.21/V.11 leads (C, T, etc..) are treated differently depending
on the DIAL option selected.
<p>
The line emulates a point-to-point BSC link. There is no point-to-multipoint handling.
<p>
The following options define the line emulation behaviour:
<p>
<dl> <!-- begin Communication Adapter parms -->
<dt><code>DIAL=IN | OUT | INOUT | NO</code>
<dd><p>
Specifies call direction (if any). If <code>DIAL=NO</code> is specified, the
TCP outgoing connection is attempted as soon as an 'ENABLE' CCW is executed.
Also, in this mode, an incoming connection will always be accepted. If <code>DIAL=IN|INOUT</code>
is specified, a TCP incoming call is accepted ONLY if an 'ENABLE' CCW is currently
executing on the device. If <code>DIAL=OUT</code>, the 'ENABLE' CCW is rejected.
When <code>DIAL=IN|INOUT</code> is specified, a DIAL CCW allows the application
to establish a TCP connection to a specific host. For other DIAL values,
the DIAL CCW is rejected.
<p>
<dt><code>lhost=<em>hostname</em> | <em>ip address</em> | *</code>
<dd><p>
Specifies which IP address to listen on. This also conditions the network
interface from which incoming calls will be accepted. Specifying '*' means
all incoming TCP calls are accepted, regardless of the destination IP
address or call origin. This is the default value. Specifying a specific
IP address when <code>DIAL=OUT</code> is specified has no effect.
<p>
<dt><code>lport=<em>service name</em> | <em>port number</em></code>
<dd><p>
Specifies the TCP port for which to listen to incoming TCP calls. This
value is mandatory for <code>DIAL=IN|INOUT|NO</code>. It is ignored for <code>DIAL=OUT</code>.
<p>
<dt><code>rhost=<em>hostname</em> | <em>ip address</em></code>
<dt><code>rport=<em>service name</em> | <em>port number</em></code>
<dd><p>
Specifies the remote host and port to which to direct a TCP connection on a
DIAL=NO line when an 'ENABLE' CCW is executed. This option is mandatory when <code>DIAL=NO</code>
is specified. It is ignored for other <code>DIAL</code> values.
<p>
</dl> <!-- end Communication Adapter parms -->
The following options are tuning options. In most cases, using the default values
give the best results
<p>
<dl> <!-- begin Communication Adapter tuning options -->
<dt><code>rto=0 | -1 | <em>nnn</em> | 3000</code>
<dd><p>
Specifies the number of milliseconds before terminating a read on a timeout, when
no read termination control character is received. Specifying 0 means the READ ends
immediately. -1 specifies there is no timeout.
<p>
<dt><code>pto=0 | -1 | <em>nnn</em> | 3000</code>
<dd><p>
Specifies the number of milliseconds before terminating a POLL on a timeout, when
no ACK or NACK sequence is received. Specifying 0 means the POLL ends
immediately. -1 specifies there is no timeout.
<p>
<dt><code>eto=0 | -1 | <em>nnn</em> | 10000</code>
<dd><p>
Specifies the number of milliseconds before terminating an ENABLE operation on a timeout.
the timeout applies when <code>DIAL=NO|IN|INOUT</code> is specified, the outgoing TCP call
fails (<code>DIAL=NO</code>) and there is no previously or currently established TCP connection
for this line. When <code>DIAL=NO</code> is specified, the timeout defaults to 10 seconds.
For <code>DIAL=IN|INOUT</code>, the timeout defaults to -1.
<p>
</dl> <!-- end Communication Adapter tuning options -->
<a name="remtty"></a>
<dt><em>Communication Line - TTY</em>
<dd><p>
( Preliminary 2703 TELE2 TTY Support )
<p>
Describes a 2703 Telegraph Terminal Control Type II (TTY 33/35) stop/start line, providing access to the Host OS via a standard TELNET client.
<p>
To the host OS the line emulates an asynchronous TELE2 connection. The communication is emulated over a TELNET connection.
<p>
The following options define the line emulation behaviour:
<p>
<dl> <!-- begin Communication Adapter parms -->
<dt><code>lport=<em>port number</em></code>
<dd><p>
Specifies the TCPIP port to listen on for incoming TCP calls.
<p>
<dt><code>dial=IN</code>
<dd><p>
Specifies that this line is for in-bound calls. Required.
<p>
<dt><code>tty=1</code>
<dd><p>
Specifies that this definition is for a TTY port. Required
<p>
</dl> <!-- end Communication Adapter parms -->
</dl> <!-- end Arguments for each device type -->
<center><hr width=15% noshade></center>
<p>
If you have a question about Hercules, see the
<a href="hercfaq.html">Hercules Frequently-Asked Questions</a> page.
<p><center><hr width=15% noshade>
<a href="hercinst.html"><img src="images/back.gif" border=0 alt="back"></a>
</center>
<p class="lastupd">Last updated $Date$ $Revision$</p>
</BODY>
</HTML>
|