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 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307
|
2004/03/07 ver 1.3.0 released
From Clarence
- etc/dosemu.conf, etc/global.conf, src/base/init/config.c,
src/base/init/lexer.l.in, src/base/init/parser.y.in,
src/env/video/X.c, src/include/emu.h: Add $_X_title_show_appname.
From Stas
- emu.c: Shut up annoying error.
- src/base/dev/pic/pic.c:
Limit the amount of error messages.
- src/dosext/dpmi/: dpmi.c, dpmi.h, memory.h, msdos.c:
* Added retf, iret and jmpf instructions handling in msdos.c.
* Use a more consistent register translation technique.
* First (yet mostly unsuccessfull) attempt on uncommitted memory
support:
- Virtual Support extension added
- DPMI functions 0x506 and 0x507 added
- All the necessary functions for memory requesting/mapping added
- Functions for changing memory attributes added.
Uncommited memory is being allocated with an anonymous mmap(),
and therefore can not be aliased (not from SHM pool).
"Uncommittness" is done via the PROT_NONE protection, which
guarantees a page fault on access.
But only a few programs are working properly with this
implementation right now. It definitely requires more work.
- emm.h, emu.h, dosemu.conf, global.conf, config.c, lexer.l.in,
parser.y.in, emm.h, emm.c, xms.c, dpmi.c, dpmi.h, memory.h,
msdos.c, msdos.h:
* First step to Blinker extender support
* The PM API translator now uses the EMS page frame to save 64K
of conventional memory.
* $_pm_dos_api option introduced which allows to disable the API
translator to preserve the possibility of disabling EMS and
getting extra UMB space without disabling also DPMI).
* First step at solving bug #902742 (most is_dos_selector()
checks removed, but not all).
An exec'd DPMI program is now "forked" as a separate DPMI
client. Memory structures were changed to allow sharing
allocations between parent and child clients.
- src/dosext/mfs/mfs.c: Dont use RPT_SYSCALL on readdir(3)
- src/: include/serial.h, arch/linux/async/signal.c,
base/dev/pic/pic.c, base/serial/ser_irq.c,
base/serial/ser_ports.c, dosext/dpmi/dpmi.c, emu-i386/do_vm86.c,
emu-i386/simx86/trees.c:
Next round of serial low-latency work.
* Remove serial_run() from everywhere, add it to the SIGALRM
handler. With the async notifications, that should be enough.
* Remove serial throttling hack: it doesn't play well with the
async IO.
* Make sure the ASYNC_LOW_LATENCY flag is set.
- src/: arch/linux/mapping/mapping.c, include/mapping.h:
Protect memory pages RW before releaseing to pool. This is to
avoid page-faults on a newly allocated memory.
- src/plugin/kbd_unicode/: keystate.h, serv_xlat.c:
Arrange scancode translation rules as an array rather than as a
linked list.
From Bart
- Remove mapself support
- Remove old keyboard code
- Remove coopthreads and comcom
- src/env/video/X.c: Added dirty_all_vga_colors(); + related calls to
resize_text_mapper(). This fixes the black screen problems with
bitmap fonts.
- Makefile.conf.in, mouse.c, mouseint.c, X.c, X.h, mouse.h,
env_term.h, keyb_slang.c, mouse_gpm.c, mouse_xterm.c:
Mouse cleanup: use a mouse client structure similar to the one
used for the keyboard.
2004/03/06 merged with ver 1.2.1 release
From Pete Cervasio
- allow int 1A function 3 to set the emulated CMOS time of the day
clock.
From Clarence
- Now, you can run your favourite DOS apps like this:
xdosemu "/home/clarence/games/commander keen/keen1.exe"
And it will automatically:
1. mount / if the specified program is not available from an
already-redirected drive
2. "cd" to the correct directory
3. and execute the program automagically, all without _any_
typing in DOS
(if "unix -e" or "unix -c" is put at the end of your autoexec.bat)
"ported" over some more builtins i.e. I just cut and paste them
(except for com_dossetcurrentdir()).
cosmetic change to GetRedirectionRoot() in mfs.c
- DAC fixes for vgaemu:
* accesses to port 0x3C9 should not change the DAC state
(as reported by a read to 0x3C7)
* DOSEMU's 0x3C7 reads returned inverted bits!
* If you write to 0x3C9 after writing to 0x3C7, the colour that
actually gets set == <what you wrote to 0x3C7> + 1 (fixes
Starcon2)
From Stas
- NULL pointer fixes:
* Don't call keyb_server_reset() before keyboard client is
initialized, as this causes a NULL ptr deref in
keyb_client_set_leds() with the potential of calling realmode
code
* Avoid NULL ptr deref when SDA is not yet initialized (at DOS
boot-up).
- Certain mouse types (namely, MOUSE_GPM) must never be
closed/re-opened. This makes the gpm mouse to survive the
console switch, and quite accidentally also solves the obscure
lock-ups of Volkov Commander after a console switch.
- Fix sound for the game Screamer
- Improved bpint dosdebug command. Works under DPMI now.
- Clear AC in quite a few places to avoid recursion into an
exception 0x11 handler.
- Disallow exception 0x11. The reason is that AM bit of CR0 is
supposed to be clear under DOS, but it is not under Linux.
- Reduce memory consumption for builtins from 75K to 3K.
From Bart
- Allow fullscreen toggling using xmode.
- Make "unix -e" a hybrid of the old
"unix -e" and "unix -c": if the Linux path cannot be
canonicalized it will be interpreted as a DOS command. This way
"dosemu -E dir" continues to work. Introduced "unix -r" to get
the old behaviour of -e for the purists.
- Count number of times middle button is pressed even for 2 button
mice (will be zero). Fixes bug #891650
- dpmi.c: dpmi.c, do_int31, case 0x0401: added a missing "break"
causing this function to return rubbish as vendor name
(suggested by japheth at users.sourceforge.net)
- Block SIGALRM instead of turning of the itimer for the MFS. Also
check if one is pending before calling handle_signals(). Without
this change situations that spend lots of time in the MFS
effectively could have SIGALRM disabled (showed up on SMP
machines in a dir loop).
- int.c: Execute dos_post_boot() (mouse_post_boot()) not only from
int28 but also from int21/ah=4b. Fixes problem with wd from
unix -e & mouse.
- Repair the automatic exit for "unix -e" without -E argument.
- Makefiles: Remove all SUBDIR=... defs. They are not necessary
anymore and may produce the wrong .a file if you invoke make in
the subdir.
2004/02/10 merged with ver 1.2.0.1 unofficial pre-release
From Stas
- Add support for MIDI input.
- Fixed a couple of bugs in MPU401 code.
- Alert if handle_signals() is re-entered (happens if, for example,
RPT_SYSCALL is enabled in emu.h).
- Remove glibc calls from SIGALRM and SIGIO handlers.
- Remove (now unnecessary, since we know the reasons) deadlock
"protection".
- dosdebug:
* Parse multiple commands properly
* Stop trace loop in mhp_intercept()
- Detection for the %esp CPU bug (see EMUFailure.txt). Recovery
part is disabled for now.
- Final (hopefully) pass on DPMI 1.0 compliant multiple client
support. Now it works for something more than just building
FreeDOS with bcc and nasm32.
* System descriptor aliases are now per client and are either
inherited or or recreated, depending on whether the IDT is
inherited or not.
* extender-specific structures are now per-client too.
- DPMI: Avoid execution on .data
From Bart
- Add support for the GPM mouse on the console (with a little
help from mc) and avoid conflicts with a serial mouse by moving
internal mouse init before serial init.
- mkbindist now creates the pcf fonts on the fly -- that will
avoid problems with fonts in the binary tarball.
- Add support for $_X_fullscreen and corresponding switch -w.
- Add support for $_mouse_internal and corresponding switch -m to
be able to switch off the DOSEMU internal mouse driver.
- Move the "BUG: dosemu touched protected video mem" recover
logic earlier in sigsegv.c and vgaemu.c (with Stas)
- Mark critical global variables used in signal handlers as
volatile to avoid gcc over-optimizations (hint from Stas)
- Fix bug #866618 rows ower 80 char: a DOS text-mode program
programmed the VGA controller to (logically) have more than
80 columns per line but vgaemu didn't pick it up.
- Fixed page_size calculation: solved display problems with Duke
Nukem 1
2004/01/18 merged with ver 1.2.0 release
From Stas
- updates to TUN/TAP README about bridging
From Bart
- mknewyear and adapt various other dates
- miscellenous doc adjustments
(README.txt, Novell-HOWTO with help from Stas and Peter Eckhard),
announce with some help from Claudia Neumann, INSTALL, HOWTO)
- Added $_xterm_title to dosemu.conf to configure or disable
the xterm (or putty or ...) window title with running DOS
program.
- Friendlier message if no DOS is found.
- Fix shift-3 (paragraph sign) on the German keyboard and add
"last resort" keyboard translation from Unicode to < 0x20 values.
2004/01/14 merged with ver 1.2.0rc2 stable pre-release (aka 1.1.99.2)
From Stas:
- src/base/serial/: ser_defs.h, ser_init.c, ser_irq.c, ser_ports.c:
* Switched serial to async IO
* Use tcdrain() for non-FIFO data sends to minimize latencies
* Some other small changes to reduce latencies. This allows to use
dosemu's serial port emulation for time-sensitive tasks.
- src/: dosext/sound/sound.c, include/sound.h:
* Make SB to really produce the interrupts for MPU-401, not only
to pretend to
* Added some support for undocumented MPU-401 commands 0xAC and
0xAD (stolen from VDMSound)
- src/arch/linux/dosext/sound/midid/timid.c:
Really pass the sysexes to timidity, not only pretend to.
- src/arch/linux/dosext/sound/linux_sound.c:
Fix the OSS initialisation for SB direct DAC writes.
Dont overflow the log with the "buffer overflow" messages.
- src/: base/mouse/mouse.c, include/mouse.h, emu.c,
Switch the mouse driver over to async IO, fixes bug #852077
- doc/EMUfailure.txt, src/doc/HOWTO/EMUfailure.sgml:
updated to tell more about fundamental CPU problems
- src/: arch/linux/async/signal.c, base/dev/pic/pic.c,
env/video/miscemu.c: solve problem with miscemu.c wrongly
setting pic_sys_time + some debug print improvements.
- src/base/speaker/speaker.c: Allow disabling speaker
- configure, configure.ac: Use have_x instead of no_x
From Bart:
- etc/dosemu.users.example: Comment everything out.
- Makefile, README.bindist, dosemu.spec.in, dist/mkbindist,
etc/global.conf, src/arch/linux/Makefile.main:
* use a safer rm -rf ../tmp (fixes #851514 ; make install
executes in src)
* copy global.conf and dosemu.users to sysconfdir without example
extensions
* remove config.status call from the Makefile. It messes
"prefix" up.
* obsolete /etc/dosemu.conf (etc) unless sysconfdir=/etc;
make install and the rpm install moves them now
* use %config(noreplace) and add missing commands symlink to the rpm.
- etc/: dosemu.conf, global.conf: Allow a completely free-from
printer command (but for LPT1 only for now)
- etc/global.conf: Fix problems with -F for global.conf
- src/arch/linux/mapping/mapshm.c: Added mremap(.,0,..) check for
the 2.6.1 kernel: we can only use mapfile and not mapshm
- src/: arch/linux/async/signal.c, arch/linux/async/sigsegv.c,
include/cpu.h: Restore fs and gs in all signal handlers. Fixes
NPTL problems.
- src/arch/linux/async/sigsegv.c: Don't always quit if DOSEMU
itself touches protected video memory. Adjusting protection (as
opposed to emulating) should be harmless -- perhaps a better way
to solve this is to adjust all the memmoves, but on the other
hand letting the CPU do the dirty work isn't all that bad of a
concept. Fixes bug #817088
- src/env/video/vgaemu.c: Allow vgaemu_set_text_mode for graphics
modes too. "orbits" needs this.
- src/doc/tools/doSgmlTools.pl: Improve openjade detection
- default-configure: Also use disable-aspi from default-configure.
- configure, configure.ac, dosemu.spec.in, dist/dosemu,
doc/dosemu-HOWTO.txt, src/arch/linux/Makefile.main,
src/base/init/config.c, src/doc/HOWTO/dosemu-HOWTO.sgml:
* Rename enable-aspi to disable-aspi (Clarence suggestion)
* Added --with-slangdir=src/plugin/slang possibility to force
use of the slang plugin without funny workarounds.
* Clean up the rpm spec file in line with the above.
* Set SUDO_UID/GID in the dosemu script to 0 to
allow "sudo dosemu" with full root (unlike dosemu -s)
* Fix secure_option_preparse for sudo runs (it was not secure).
- README.bindist, dist/dosemu, etc/global.conf,
man/dosemu.bin.1.in, src/base/init/config.c,
src/base/init/parser.y.in: Add -n option to be able to completely
bypass dosemu.conf and dosemu.users (unless suid). The $HOME
tarball installation now uses this option by default.
- dist/dosemu: Added some desperate attempts to really convince X
to find the font.
- src/: base/mouse/mouse.c, env/video/X.c, include/mouse.h:
Fix mouse init problem.
- README.bindist, etc/dosemu.conf, etc/global.conf: Add
$_printer_command to be able to solve the CUPS problem without
global.conf.
- src/plugin/commands/builtins.c: Use a more helpful message (of
course this is not always applicable but right now the most
likely cause).
- doc/NOVELL-HOWTO.txt: Correction about PDIPX/IPXPD.
- doc/announce: Add a "what's new" section to the announce file.
- src/plugin/term/keyb_slang.c: Update the special keys display at
strategic places (where it was forgotten before); disable ESC-ESC
(conflicts with alt-f1).
- dist/dosemu, src/arch/linux/Makefile.main: Use sed+ls instead of
readlink for non-system-wide; use dosemu.bin in the bindir
instead of the first one in $PATH for system wide.
- src/doc/README/config: Added note that mapself doesn't work on
Linux kernel 2.2.24 and higher.
- src/: dosext/dpmi/dpmi.h, emu-i386/cpu.c, include/cpu.h: Fix DPMI
problems with 2.6.0test6 by no longer hard coding UCODESEL and
UDATASEL -- they changed from 0x23/0x2b to 0x73/0x7b.
- etc/global.conf: Change to stop DOSEMU complaining if the libdir
doesn't exist.
2003/09/28 merged with ver 1.2.0rc1 stable pre-release (aka 1.1.99.1)
From Stas:
- src/: base/async/int.c, base/misc/disks.c, dosext/dpmi/dpmi.c,
dosext/mfs/lfn.c, dosext/mfs/mangle.c, dosext/mfs/mfs.c,
dosext/mfs/mfs.h, emu-i386/do_vm86.c, env/video/X.h,
include/dos2linux.h, include/int.h: xtitle support
(Bart: extended support to xterms)
- dist/dosemu, src/arch/linux/async/sigsegv.c, signal.c,
src/dosext/dpmi/dpmi.c, dpmi.h: Upon signal handler entry:
Restore the eflags instead of explicitly clearing AC and ID.
Also restore the %fs and %gs registers for compatibility with
NPTL. Remove old LD_ASSUME_KERNEL workaround (Bart)
- src/: dosext/dpmi/dpmi.c, include/pic.h:
* Fixed some log output, adjusted some types.
- src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c, memory.c:
* Per-client IDT, as required by DPMI 1.0 spec. IDT is inherited
from previous client if possible, to retain the compatibility
with DPMI 0.9. Also added pm_block_root and realModeCallBack
to the per-client structure.
* Started consolidation of the per-client data into a single
structure for the true multi-client support and better
compatibility with DPMI 1.0. This patch consolidates
DPMIclient_is_32 and dpmi_stack_frame, adding other units is in
to-do. This patch allows building a FreeDOS kernel under a
16-bit BC-3.1 environment, while using a 32-bit nasm.
* Check ss:sp=0 as per specs, sp=0 is not enough.
* Recovery code for Windows which puts 0 into %ss on the exception
stack frame. Escaping via a locked stack seems to help.
* Improve DPMI debugging:
- Properly debug the emulated instructions
- force_early hack is no longer necessary
- More debugging messages
* Limits >1MB are page-granular.
* ConvertSegmentToDescriptor() must look up segments also with the
limit==0xff as this is the limit of PSP segments created at DPMI
initialization.
* Optimisation: READ_DS_COPIED can be #define instead of variable
- src/base/serial/ser_init.c: Make sure the serial device is a tty.
- src/base/: init/init.c, mouse/mouse.c:
Init the mouse IRQ after the mouse client initialisation.
Remove duplicate/unused includes.
- src/: emu.c, base/init/init.c: Call hardware_setup() before
device_init(). This fixes a numlock problem reported by Reinhard.
- src/: arch/linux/async/sigsegv.c, include/emu.h, emu.c:
Dont intercept leavedos() if it was called from within a signal
context. TODO: Calling leavedos() from within a signal context
should be deprecated and replaced with some more elegant solution
that can work with dosdebug.
- src/arch/linux/debugger/Makefile, dosdebug.c:
Dont use -O2 for dosdebug, CFLAGS should be enough.
Exit dosdebug if dosemu unexpectedly terminated.
From Bart:
- src/: emu-i386/cputime.c, base/async/int.c, base/bios/int10.c,
base/misc/userhook.c, base/misc/utilities.c, base/mouse/mouse.c,
env/video/X.c, env/video/X.h, include/video.h,
plugin/commands/comcom.c, plugin/term/env_term.h,
plugin/term/keyb_slang.c, plugin/term/terminal.c:
Localized title support using a new Video function pointer.
- configure, configure.ac: Fix PATCHLEVEL typo in configure.ac;
remove help for enable-mitshm (disable-mitshm is enough)
- src/arch/linux/debugger/mhpdbg.c: (with Stas)
Fix -H1 (stop until dosdebug has connected)
- src/base/async/int.c: Let int 11 and int 12 read their values
from 40:xxx like real BIOSes do.
- README.*, INSTALL, doc/, src/doc/: Documentation updates,
regenerated DANG, add note about bison and yacc; remove note
about static linking (no proofs seen).
- src/doc/HOWTO/dosemu-HOWTO.sgml:
Update the HOWTO -- in line with present DOSEMU, and delete
obsolete sections, and merge formatting changes from Peter
Jay Salzman
- src/: arch/linux/async/signal.c, plugin/term/keyb_slang.c:
Based on a patch from Mrt Laak (martlaak@users.sourceforge.net)
Turn off shiftstates for terminals later.
Bart: do this from the sigalrm handler instead of for the next
key. Also add some more escape sequences for xterm and putty.
Add shift-tab to the xterm keys.
- src/: include/mouse.h, base/mouse/mouse.c, base/mouse/mouseint.c,
plugin/kbd_unicode/include/keyboard.h, plugin/term/keyb_slang.c:
Originally by Mart Laak: xterm mouse support. Works in putty too.
Changed by Bart to run automatically if TERM=xterm* and use the
1002/1003 modes so that not just button clicks but also drags can be
detected.
- src/: base/mouse/mouse.c, plugin/term/mouse_xterm.c: Delay xterm
mouse init until the first int33 call, so that normal copy/paste
works without shift until the first DOS app wants to use a mouse.
Could be much cleaner -- leaving that for 1.3
- src/plugin/kbd_unicode/serv_xlat.c: Be more conservative in using
approximations for the unicode keyboard.
- src/plugin/kbd_unicode/keymaps.c: Use Unicode for the Turkish
keyboard!
- src/plugin/term/keyb_slang.c: Remove unnecessary (and wrong on
some keyboards) translations of * and +
- src/arch/linux/Makefile.main: We no longer need to create
/var/lib/dosemu; also adjust a few symbolic links.
- etc/global.conf: Wrap each "foreach" in if/endif blocks;
otherwise the lexer may have problems and may not recognize
$_vbootfloppy. I wasn't able to fix the lexer.
- dist/dosemu: Remove automatic "enter" since FreeDOS supports
switches=/f now
- Makefile, configure, configure.ac, dosemu.spec.in, man/Makefile,
man/dosemu.1, man/dosemu.1.in, man/dosemu.bin.1,
man/dosemu.bin.1.in, man/ru/dosemu.1, man/ru/dosemu.1.in,
man/ru/dosemu.bin.1, man/ru/dosemu.bin.1.in:
Automatically put the right paths into the man pages.
Add dosemu.spec.in for creating an rpm.
- etc/dosemu.conf, etc/global.conf, src/base/init/Makefile: New
clear layout of dosemu.conf. Document the fact that /etc/dosemu
may be used as hdimage base.
- src/base/misc/priv.c: Correct suid-root privilege problem wrt
"mapself".
- src/: env/video/X.c, plugin/kbd_unicode/keyb_clients.c: Fix
copy/paste problems (delay from DOSEMU->xterm and LF->CR
translation for smth->DOSEMU)
2003/08/22 ver 1.1.5.7 unofficial pre-release
From Nerijus Baliunas (nerijus@users.sf.net):
* doc/README-tech.txt, doc/README.txt, etc/dosemu.conf,
src/doc/README/config, src/doc/README/config-tech,
src/plugin/extra_charsets/cp773.c:
This patch adds cp773 (called KBL in Lithuania)
support. Although it is not an official standard, but is
used more than any other DOS cp in Lithuania.
From Clarence:
* emu.c: don't print "funny" characters on the screen when speaker
== NATIVE and video_config_init() aborts (due to e.g. an attempt
to run with -X without $DISPLAY).
leavedos() tries to turn off the speaker before the port server
has been initialised (as extra_port_init() is not called before
device_init()).
* ports.c: check that the portserver is actually up before writing
anything to the fd's. This should fix the "printing random
garbage" bugs once and for all :)
portserver_pid should be set to 0 in port_exit() so that if
there are any accidental port accesses after port_exit(), error()
will remind us to fix them. Also, the "if (port_fd_out[1])"
check is not necessary anymore since portserver_pid is already
tested for.
* src/base/bios/int10.c: (and Bart) (1) int10 should
not affect the carry flag at all (2) if int10/ah=3 is given a page
past the last page, CX should still be set to the cursor and DX
should be set to 0.
From Stas:
* src/dosext/dpmi/: dpmi.c, dpmi.h:
Dont skip the extended access type byte for 16bit clients.
This patch allows Windows (WinOS2) to work...
problem: timer driver (advapi.386) fails to initialize.
Therefore no movie playing :( Might be a problem with a hardware
emulation
Some cleanups and optimisations.
Export selector checking functions.
Allow 4G limits when converting segment to descriptor. (another
part of bug #756570)
Use mhp_intercept() to debug CPU exceptions in DPMI.
* src/dosext/dpmi/msdos.c:
- msdos_fault: Dont try to fix the selector if the program abuses a
perfectly valid descriptor - this is not fixable on dosemu side and
the attempt to only screws up the things even more making it
unfixable also for the program itself.
- msdos_fault: Do all the fixing on a temporary context struct
and apply the fix to the real context only when we are sure
the fix is valid.
- msdos_fault: Allow using any realmode segments as a selectors,
not only the special ones (part of bug #756570)
- Some cleanup
* src/: arch/linux/debugger/mhpdbg.c, dosext/dpmi/dpmi.c,
include/mhpdbg.h:
Introduce mhp_intercept_log() function that allows to redirect the
log messages to a dosdebug terminal.
* src/base/serial/ser_init.c:
If opening serial port fails, remove the lock and dont try to open
it again.
* src/arch/linux/debugger/: dosdebug.c, mhpdbg.c:
- Resume execution if dosdebug detached while in a stopped state.
- Fix dosdebug detaching to make it possible to attach dosdebug
again.
* src/arch/linux/debugger/mhpdbg.c:
Return to dosemu context before starting a dosdebug polling cycle.
* src/: env/video/X.c, plugin/kbd_unicode/keymaps.c:
Fix some annoying error messages.
* src/: arch/linux/debugger/mhpdbg.c, include/mhpdbg.h:
Introduce mhp_intercept(). When called, the control is transferred
to dosdebug if it was attached.
Kill 2 instances of allocating 64K on stack - this is too much and
causes a memory corruptions for me (probably a gcc problem)
From Bart:
* src/env/video/attremu.c: Solve problem with attribute emulator
introduced in 1.1.5.4
* src/dosext/mfs/: lfn.c, mangle.c, mangle.h, mfs.c, mfs.h:
- implement LFN wildcard delete (int21/ax=7141/si=1)
- check for invalid characters in LFN truename (int21/ax=7160)
- no longer trust stat for vfat; there are some problems with
question marks and characters such as (\'e)
- use underscores instead of ? for unconvertible unicode.
Translate all ?'s to _'s for unix->DOS filename translation.
* src/dosext/mfs/: lfn.c, mfs.c, mfs.h;
src/plugin/translate/include/translate.h:
MFS cleanups, including:
- fix exists() and wildcard delete.
- avoid use of some global variables and pass the drive number
around as a parameter instead.
Make findfirst on a single file more efficient again and
get it to honour devices again.
* src/: dosext/mfs/lfn.c, dosext/mfs/mangle.c, dosext/mfs/mangle.h,
dosext/mfs/mfs.c, dosext/mfs/mfs.h, dosext/mfs/util.c,
plugin/translate/translate_config.c,
plugin/translate/config/plugin_parser,
plugin/translate/include/translate.h:
Add support (using the translate plugin) to the MFS to translate
between the external and internal charset for filenames.
Set $_external_charset (for all purposes except the display)
to the current locale charset by default.
* src/plugin/translate/keysym_approximations.c: Complete commented
out approximations; this is necessary for upcasing filenames
where an equivalent capital letter does not exist in the codepage.
* src/arch/linux/Makefile.main: Fix problem with keymap/[a-z]* +
CVS directories
* configure, configure.ac, src/arch/linux/Makefile.main: Create
src/lib upon make and remove it with "make distclean".
Uncomment detection of INSTALL and AWK.
* Makefile, Makefile.conf.in: Remove any autom4te*.cache varieties
upon distclean. Set BINPATH at the right time (after THISVERSION).
* Makefile, Makefile.conf.in, configure, configure.ac,
src/{Makefile.common,arch/linux/Makefile.main,commands/Makefile}:
Use simply expanded variables in several makefiles and avoid
$(shell) (speeds up make, esp. when most is already built)
* compiletime-settings, compiletime-settings.devel,
compiletime-settings.help, configure, configure.ac,
default-configure, setup/compiletime_setup.menu,
setup/compiletime_setup.sh, setup/compiletime_setup.tk: Configure
cleanups (with Stas and Clarence)
- use $enable_xxx environment variables
- use --disable-x instead of --enable-nox
- use --with-x for libraries
- remove "dodebug"
2003/07/20 ver 1.1.5.6 unofficial pre-release
From Bart
* src/plugin/: kbd_unicode/keymaps.c, keyboard/keymaps.c: Hungarian
keyboard adjustments (anonymous contribution, see bug 687850)
* src/dosext/mfs/: lfn.c, mfs.c, mfs.h: Fix LFN's for VFAT. Make
use of the VFAT_IOCTL_READDIR_BOTH ioctl to obtain the short
aliases for long filenames (Wine provided a good example).
Remove unnecessary scan_dir usage on VFAT (because stat is
already case-insensitive)
* src/dosext/mfs/mfs.c: Fix problem with dir searches that should
*not* find a volume label (such as the attribute 0x3f)
* src/dosext/mfs/lfn.c: Fix problem with LFN "truename"
(int21/ax=0x7160/cl=1), case insensitive open's and mkdir.
* src/base/bios/int10.c: Fix compilation without X development
libraries.
From Stas:
* configure, configure.ac: small configure adjustments.
* src/dosext/sound/sound.c: Use only the current DMA channel on
SB16. This allows the QV to work. QV is an MPEG4/DivX player for
DOS!
* src/base/mouse/mouse.c: Enable mouse at startup in case the
program doesn't do that manually.
* src/base/async/int.c: hogthreshold adjustment for the mouse code.
* src/plugin/kbd_unicode/: Makefile, getfd.c, getfd.h, keymaps.c:
Update the getfd() console detection code with the one from kbd 1.08
2003/07/15 ver 1.1.5.5 unofficial pre-release
From Bart
- Add support for the Long File Name (int21/ah=71) interface
on redirected drives. For now it's off by default because
it hasn't received much testing yet -- see $_lfn_support.
From Stas
- Fix DPMI to be able to revector interrupts that are called by
DPMI clients (such as the above int21/ah=71).
2003/07/15 ver 1.1.5.4 unofficial pre-release
From Eric Auer, Witold Filpczyk and Bart
- use bitmap fonts by default, rather than X fonts.
- Support 80x100 CGA "text graphics" with 8x2 font.
- allow resizing of the text window.
- VGA attribute emulator cleanups.
- Make the 8x16 font in vgafonts.c equal to the one in vga.pcf.
From Bart
- miscemu.c:
The retrace time is measured in microsecs, not ticks.
2003/07/15 ver 1.1.5.3 unofficial pre-release
From Clarence
- minor config tweaks $_X_backgroundfreeze -> $_X_background_pause,
- set $_joy_latency to (1) by default.
From Stas
- add config options for OSS sound
- disable auto-init DMA when speaker disabled
From Stas and Bart
- implement a lightweight coopthreads replacement and port all the
builtins to it.
From Bart
- Small MFS optimization.
- Some small documentation updates.
- Kill the (bit-rotten) scroll queue.
- Fix non-active setbuf(stdout, NULL) and $_console=(1) without
graphics.
- Use putchar instead of write since the buffered stdio problems
were solved.
- Avoid some dependencies on bash (export foo=bar, echo -e in
configure)
- Kill $_timint, and config.graphics. They were no longer really
used anywhere.
- Fix a problem with "-V" not implying "-c".
- Fix "make install" if pesky CVS directories are present.
- cheap workaround for NPTL: use export LD_ASSUME_KERNEL=2.2.5 in
the dosemu script.
- Support the VGA line compare register: this fixes one of the two
reported problems for Jazz Jackrabbit
- Fix colour problem in chain4 modes (second jazz jackrabbit issue)
- Fix bug 753968: xdos handles mouse events without having a focus
-- don't warp the mouse if the mouse left the window.
- Small makefile fix to help partial builds.
- Misc small configure and Makefile fixes.
- Solve potential gcc problem with a wrong asm constraint: it
needs to be "q" for registers with byte parts, not "r".
This prevents gcc from using "%sil" as low part of %esi%.
2003/06/14 ver 1.1.5.2 unofficial pre-release
From Bart
- enable building in a separate object directory
- enable small test sub-builds (e.g. "make" in src/env/video)
- use relative paths if possible (so you can rename your
build directory on the fly)
- fix lexer.l.in to work with newer versions of flex. We can
no longer fake flex by setting YY_NEVER_INTERACTIVE,
but a workaround using "/dev/null" files was possible.
- fix buglet in doscoopthreads com_dosrenamefile
- remove obsolete file kversion.sh
2003/06/12 ver 1.1.5.1 unofficial pre-release
From Ben Davis
- Implemented SB16 support.
- Fixed sevaral typos in the dcos :)
From Stas
- Leak-free DOS memory management for DPMI.
Additionally the "Allocate DOS memory" routine
was fixed to match the DPMI specs.
- fix SB mixer rates
- pic fix to get SC2000 running with SB16
- use exit()/config.exitearly=1 instead of leavedos() during init
- don't leavedos (but let the BIOS set CF) if there is no disk
- FCB fix for coopthreads
From Manfred Scherer
- use a per-PSP heap to watch for hlist overflow (and then
delete the oldest list) in the MFS.
From Bart
- clean up MFS a little more; use arrays instead of linked lists
for the hlists; this allows us to avoid duplicate hlists much
more often than before, since the hlists can be walked though
independently with random access.
- fix a problem where the MFS chdir did not remove the trailing
backslash
- use sigaltstack(2) instead of sa_restorer if it is available
- fix memory leaks in the parser and lexer (found by valgrind)
- fix more typos
2003/06/07 ver 1.1.5 released
From Bart:
- documented TUN/TAP support and the port server.
- adjusted man pages
- set int 23 to iret at the right place in dpmi.c
- unmap the first 1 MB of (DOS) memory in the port server.
2003/06/04 ver 1.1.4.16 unofficial pre-release
From Stas:
- midid update
* Compatibility with the latest TiMidity++ (daily
snapshot)
* Moved forgotten bits from midid.h to device.h
* Improved start/stop sequence
* Re-including protection to all headers
- fix the DPMI descriptor leaks in:
1. dpmi_init()
- fix the environment translation for DPMI (bug #731906)
- sleep in the dosdebug poll cycle
- allow to configure the TAP device before starting DOSEMU
- fix MFS bug for wildcard delete() (bug #732975)
- MFS sigalrm cleanup
- add hint to emumouse about the internal mouse driver config
- adjust some defaults in dosemu.conf
- vga.c: remove redundant ioperm
- linux_sound.c: dont ioctl POST by default
- ioctl.c: init the callback array
- serial: Use TCADRAIN instead of TCSANOW where appropriate
From Oleg Kuimov <ok020969@users.sourceforge.net>
- wrong year in rtc emulation
fix last two digits of the CMOS year that is emulated in rtc.c
from tm->tm_year (which is possibly >= 100)
to tm->tm_year%100
From Grigory Batalov
- ignore a busy disk (don't abort DOSEMU) if it is a floppy.
- corrected and added font descriptions in dosemu.alias
From Ben Davis <entheh@users.sourceforge.net>
- Sound fixes in preparation for SB16 support.
From Clarence
- allow freezing of xdosemu in the background through dosemu.conf.
From Andy Shevchenko <andriy@pylesos.interdon.net>
- fix some problems with symbolic links and DESTDIR in
Makefile.main
From Bart
- fix fullscreen X toggling when already in graphics mode
- misc doc fixes (added INSTALL, README, stripped down QuickStart)
(inspired by Ged Haywood's comments on linux-msdos)
- removed some old cruft (keyboard.c.diff, DPR, gnats)
- streamline "make" a little (removed the wait)
- dosemu -install now asks for a boot directory location so
it is easier to set up a different boot directory.
- fix the dosnet init to be before the privilege drop
- fix ugetcwd (it is a heap-eating builtin)
- fix null pointer dereference in remap.c
- replace the DJGPP hack by something a little less intrusive
(an iret handler for int23 when dpmi is active)
- int code cleanup: int routines now return 1 if they want
to return, and 0 if they want to chain through to a real mode
interrupt. The somewhat confusing default_interrupt() function
is eliminated.
- add --enable-debug as alias for --enable-dodebug as configure
switch
- fix gcc 3.3 builds (ELF detection was broken) and the new
warnings it gives.
2003/03/15 ver 1.1.4.15 unofficial pre-release
From Stas
- fix race in do_irq(): see if the pic_ilevel is in sync
with pic_isr and it appears that it is not.
- cputime.c: correctly take idle periods into account for TSC.
- Fix serial delayed-open.
- Fix keyboard delay problem.
- Don't read the mouse device in X.
- (with Herbert Xu) enable use of a pseudo-tty as a serial device.
- Rewrite bios part of the packet driver in C
- Fix do_call_back() and get it to work for DPMI
- VIP related: sigsegv.c: solve kryptegg lockups under X
- Remove the ST3 hack since it doesn't help anymore.
- Use async I/O: async I/O speeds up the I/O dramatically.
Performance of the packet driver is doubled.
This also removes the need for the plugin_ioselect hook since
callbacks can be used instead now.
- Fix SLang keyboard 8-bit handling (Russian capitals in xterm)
From Grigory Batalov (with some help from Andy Shevchenko)
- add Ukranian codepage support (cp1125.c, koi8-u.c, koi8-ru.c)
- add codepage 1251 (cp1251.c)
- adjustments to cp866.c and the Cyrillic BDF files.
From Bart
- (initially suggested by Stas) replace %Ld by the more standard
%lld.
- enable disabling of the X vidmode extension at compiletime
- warn more prominently about a buggy system SLang library.
2003/03/15 ver 1.1.4.14 unofficial pre-release
From Witold
- fix configure.ac for people without X support (changed a
little by Bart)
From Stas
- VIP fixes
- sound code: make sure dsp is closed before detecting SB
From Clarence
- fix compilation problem if one disables CONFIG_X_SPEAKER
- allow ctrl-alt-p to be used to freeze DOSEMU
- always update real window's title instead of fullscreen one
- reverse X title order
- append "[Paused - <keycombo>]" to the X title if DOSEMU is
paused using a ctrl-alt-key combination
From Bart
- guard includes of env/video/X.h if X_SUPPORT isn't there
- fix "make -jn" compilations
- remove -Wpointer-arith from warnings -- some system headers
don't like it.
- configure.ac cleanups
- fix compilation of the dosnet kernel module
- dosemu script fixes: do not rely on the existence of
~/.dosemurc anymore.
- (adjusted from Andy Shevchenko's patch) make install cleanups
- (with Stas) more cpuemu stack protection and time system
counter fixes to get cpuemu for vm86 working again.
- fix long long cpu speed multiplication in config.c to fix
a problem with > 2GHz CPUs.
- fix /proc/meminfo parsing for 2.5 kernels: the "MemShared"
part went away.
- XMS "query free memory" needs to set _BL to 0 (success).
2003/02/10 ver 1.1.4.13 unofficial pre-release
From Stas
- fatfs: ignore 0 sized io.sys and ibmbio.com files.
- add some ethernet frame debugging
From Bart
- fix mkpluginhooks to create config directories for plugins
if they don't exist.
- fix the ASCII-7 speaker bell beep
2003/02/09 ver 1.1.4.12 unofficial pre-release
From Stas
- $_pic_watchdog related PIC code adjustments.
From Fran Sabolich <fsabolich@yahoo.com>
- implement break handling in ser_ports.c (cleaned up by Stas)
From Bart
- Enable/disable all plugins via compiletime-settings.
- By default, only use the supplied S-Lang library if the system
supplied S-Lang library does not have the UTF-8 hack.
- Simplify S-Lang configuration by using DOSEMU's config.h
- Add 64-bit file locking support.
- Add $_full_file_locks option to lock whole files instead of just
one (for DOS invisible) byte.
- Set $_pic_watchdog default to 50 (suggested by Stas).
- Set $_hdimage default to "drives/*".
- Use ~/.dosemu for the $_hdimage basedir, falling back to
/var/lib/dosemu if necessary.
- Use proper long X names for the VGA fonts.
- Add ability to use a DOS command as a DOSEMU option (without
-E). In that case "exitemu" happens automatically when the DOS
command terminates.
- (With help from Reinhard) only apply cleanup_child to the port
server and not to any other children.
- clean up dosdebug; use dynamic memory allocation, and remove the
need for the ~/.dosemu/run/dosemu.<pid> files.
- temp file cleanup: the "mapfile" mapping driver and printer now
use tmpfile(3) to create the temporary file. That way the file
is automatically deleted even if DOSEMU crashes, and noone else
can open the file. Because of this, the printer code now uses a
pipe to communicate with lpr.
- DOSEMU is now quiet by default. It now doesn't say it's running
in low feature mode, but instead tells you if it's running with
root privileges.
- (suggested by Stas) Use normal local variables instead of
statics where possible for the serial code.
- Fix bug "xms_EMB_info" in XMS code.
- Set video_ints for vgaemu code, otherwise it will forget about
the fonts later.
- Applied some Debian tweaks from Herbert Xu
* to have DOSEMU working out of the box even if the user doesn't
have a private installation.
* $_hdimage drives adjust according to the setting of DOSDRIVE_D.
* change /etc/dosemu.conf to /etc/dosemu/dosemu.conf to match the
default (we still support /etc/dosemu.conf however).
- Script changes:
* adjust to use ~/.dosemu/drives/* by default; ~/.dosemurc is no
longer compulsary even for private installations.
* do -home by default
* only display "what DOSEMU does" once, be quiet afterwards.
* apply the '\r' keystroke by default to boot DOS quicker. Just
use -input without arguments if you want to use F5 or F8.
* use -install without arguments to force a FreeDOS
re-installation.
2003/02/04 ver 1.1.4.11 unofficial pre-release
From Stas
- prevent IRQ conflicts and fix double registrations of the
keyboard IRQ in init.c and serv_8042.c.
From Bart
- (and Stas) fix comcom problem when environment segment == 0
- small Makefile cleanups; include only necessary dependency files
- remove all traces of $_secure, $_odd_hosts and $_diskless_hosts
since by default any remote hosts will get root privileges
dropped and diskless host security can be managed via sudo.
- re-add SLang library, but now updated to version 1.4.8, as a
plugin, in stripped down source code form, to avoid problems
with the utf-8 enabled default SLang library that various
distributions ship.
- adjustments to dosemu script: do not silently write to
~/.dosemurc, run with /bin/sh instead of /bin/bash and only
write $_hdimage to ~/.dosemurc for system-wide installations.
Also adjust "-install" to be able to take no parameters (which
reinstalls FreeDOS).
- quit DOSEMU (via the sigchld handler) if the port server is
killed.
- remove config.usesX setting and any usage of it. It was only set
by the -Y and -Z options which seem to have been unused since
1995.
- fix for current_iopl in priv.c (misbehaviour spotted by Reinhard
Karcher)
- don't open /dev/gpmdata-style mice in terminal mode. They don't
work then.
- Made the portserver synchronous for port writes -- DOSEMU waits
for an acknowledgement. This already naturally happened for reads.
- use the XFree86 video mode extension if available to switch
resolutions for fullscreen X.
- the X mouse cursor is now always invisible if mouse grab is active.
- center text modes for fullscreen X.
- (with help from Stas) don't pass the ctrl-alt-f keycode to DOS
apps when fullscreen is toggled. Enable mouse grab automatically
for fullscreen X in graphics mode if the X mouse cursor is
invisible. Move fullscreen and mouse grab toggle code to
seperate functions.
2003/02/01 ver 1.1.4.10 unofficial pre-release
From Stas
- pic_force_count->pic_watchdog correction
- fix VIP/IF releated race in DPMI code.
- allow DSP commands in high speed mode (fixed problem with
Pinball Dreams 2)
- fix for AltGr&new keyboard code if X_keycode = (1)
From Stanislav Safronov <Stanislav_Safronov@f630.n5020.z2.fidonet.org>
- serial transmit fixes
From Clarence
- stop port server a little later.
From Bart
- moved all "extern" declarations to header files and added
warnings for GCC to keep it that way.
- (inspired by an old fix from jt@npdaxp.fuw.edu.pl):
improve error codes for file region locking
- more portable and reliable way for passing parameters in
default-configure and dist/dosemu (thanks to Mozilla)
- (reported by Esa Tikka) Glibc detection has to use -lt not -le.
- reorganized plugins a little bit so that all header files are
symlinked into src/plugin/include and the extern declarations
go into plugin_config.h
- (reported by Grigory Batalov) fix mkbindist and dosemu script
for non-systemwide usage.
- dosdebug now gets a map of DOSEMU symbols on the fly instead
of relying on some dosemu.map file. Hence installing dosemu.map
is no longer necessary.
- added SIGCHLD signal handler to clean up the port server.
- install most signal handlers after forking the port server and
let it ignore VT acquire and release signals.
- the mapself driver needs to open /proc/self/mem before dropping
privileges.
- (reported by Reinhard Karcher) only copy relevant things from
40:xxxx real memory area when $_vbios_post = (0).
- reorganized port server so that it calls the normal port
handlers, which in turn detect if iopl==3 so they can do in/out's
directly.
- (reported by Claudia Neumann, but not quite fixed for everyone
though) fix Linux console terminal init if the external charset
is "cp437".
- added initial support for full-screen X. Use ctrl+alt+f to
toggle (using the XF86 video mode extension will come later, so
text may still be small and graphics somewhat slow).
2003/01/26 ver 1.1.4.9 unofficial pre-release
From Bart
- More makefile and autoconf fixes, cleanups and improvements:
* use CPP and CPPFLAGS
* check if dependency files are out of date
* collect needed libraries in LIBS
* use autoconf's X include/library findings instead of our own
* fix problem with not defining ASPI_SUPPORT and WANT_WINDOWS
(that broke some aspects of DPMI)
* src/Makefile no longer includes Makefile.main, and
Makefile.main no longer includes Makefile.common. That solved
some problems with overlapping rules.
* put "-D" variables in config.h to reduce the length of the gcc
commands. Adjust some files so that they include "config.h".
Compiletime paths are now stored in confpath.h.
- add -Wstrict-prototypes to the CFLAGS and fixed all new
warnings. Also removed some related "extern" prototypes in C
source files.
- clean up run_caller_func code so that it is as Eric intended
it to be ;) Solve the problem with default_interrupt.
- increase default DPMI memory limit to 20MB.
- start the port server if the speaker is in native mode.
From Clarence
- some more preliminary comcom space corrections
2003/01/24 ver 1.1.4.8 unofficial pre-release
From Bart
- upgrade autoconf & friends + some top level makefile
simplifications
- remove leftover base-configure
- fixed "tap" typo in global.conf
- simplify dosemu.users parsing in parser.y.in and reintroduced
"nosuidroot" (which now simply drops privileges)
- mouse: open r/o if it's a FIFO (like /dev/gpmdata), a PS/2 mouse
or a bus mouse. This solves a few permission problems.
- replace bzero with memset
- port server should always be started if config.pci = 1.
- fix S3 graphics card driver high port problem reported by
Reinhard Karcher
- Fix coopthreads problem (inserted spaces too often)
2003/01/21 ver 1.1.4.7 unofficial pre-release
From Andy Shevchenko <andriy@asplinux.ru> and Grigory Batalov
- Add Russian manual page translations.
From Stas and Bart
- rename "$_pic_force_count" to "$_pic_watchdog".
From Bart
- autoconf structure changes:
* configure now calls default-configure, which calls configure
(recursion is avoided using an environment variable).
* use configure.ac instead of base-configure.in and acconfig.h
* ./mkconfscript is obsolete: use "autoreconf"
- security related changes:
* dosemu.users is no longer mandatory for suid operation -
by default a suid binary gives access to console graphics
only and drops privileges immediately if it is not on the
console. Restricting who is able to run DOSEMU with privileges
is better done using sudo.
* Mouse, serial, IPX and direct partition access are no longer
enabled through suid-root privileges -- you have to change the
permissions on the individual devices in /dev.
* Remove all configuration classes which do not affect ports,
hardware ram, direct IRQ's or raw network access.
* added $_console_pci and $_console_ports settings to enable PCI
and I/O port access only if DOSEMU is run on a Linux console.
* move the initialization of the mapping drivers beyond the
point where DOSEMU drops root privileges.
* $_hdimage_r and $_secure are no longer relevant.
* adjusted some of the documentation.
- small coopthreads/comcom adjustment (cd. should work too).
From Witold Filipczyk
- Add $(DESTDIR) prefix to "make install"
- Change "slang.h" to <slang.h>
- add info about the Polish keyboard in dosemu.conf.
2003/01/19 ver 1.1.4.6 unofficial pre-release
From Stas
- enforces the PIC reentrancy protection and fix several related
bugs.
- add a mechanism to force a PIC reschedule, if the watchdog timer
for pending interrupts is invoked n times.
- fault handling fixes: check selectors before loading them into
context. This hopefully removes the possibility of an unhandled
segfault.
- make POST for OSS drivers optional via a compile-time option
From Clarence
- Fix comcom problems:
* a space is now inserted for cd\, dir/p etc so that they work.
* check for things such as "..\ws". Comcom thought that this
meant a file with extension \ws, rather then a file ws in the
parent directory.
From Bart
- remove runasroot compile-time option. It is not relevant anymore
now that DOSEMU drops root privileges.
- add possibility to run DOSEMU through sudo while still dropping
root privileges via the SUDO_UID and SUDO_GID environment
variables.
- remove restrictions on $_dpmi since DPMI is no longer inherently
insecure.
- adjust QuickStart and README.txt to the changed security
situation.
- added a "-s" option to the dosemu script to invoke dosemu.bin
via sudo.
- solve X mouse problem for certain window managers that invoke
LeaveNotify and EnterNotify events whenever you click a mouse
button and not only when the mouse leaves and enters the window.
- introduce $_pic_force_count to allow runtime configuration
of Stas' PIC hack.
- reintroduce the ESP hack which was removed in 1.1.4.5. A "dir"
in FreeDOS/comcom with a hogthreshold of 1 became much slower
without this hack.
2003/01/17 ver 1.1.4.5 unofficial pre-release
From Stas
- remove $_toggle -- it is no longer needed.
- fix for TUN/TAP vnet configuration.
- implement POST less video init.
- Don't sleep inside IRQ handlers or when there is some async
stuff to handle.
- Remove ESP and hogthreshold hack.
From Bart
- Drop root privileges just before booting and fork off a port
server if necessary, that can handle the high port I/O using
pipes. With this in effect, DPMI in suid-root DOSEMU should
no longer be inherently insecure.
- Fix for filename problems in the MFS if parts of the path were
mangled (reported by Clarence).
- Remove unused "$_videoportaccess", introduce "$_vbios_post".
- Fix a few warnings.
2003/01/15 ver 1.1.4.4 unofficial pre-release
From Stas
- implement $_cli_timeout (an official hack that is necessary
to get sound working in DOOM.
- PrintScreen should print to LPT1 instead of LPT2.
- (heavily modified by Bart) add missing instructions (REP MOVSD
et al) to instremu.c and cleanup prefixes a little bit.
From Bart
- Remove precompiled S-Lang library -- please install slang-devel
if you want to compile DOSEMU; new setting "slangdir" to specify
the S-Lang directory.
- Remove libc5 and gcc 2.7 support and associated headers that are
no longer necessary.
- ./mkpluginhooks can now be used to just update parser.y and
lexer.l; this happens automatically for "make".
- Some header/standards related cleanup: don't use <features.h>,
use <stdlib.h> instead of <malloc.h>, use strerror() instead of
str_errlist[], use (u)int*_t instead of __u*/__s*, avoid valloc().
- Move code from dosext/dpmi/msdos.h to dosext/dpmi/msdos.c.
- Fix bug with nested findfirst()s in mfs.c
- Fix paste bug for xdosemu (newlines were translated to '0's).
- undo old temporary Insert key fix.
- Fix lexer problem if dosemu.conf misses an EOL at EOF
- parser: distinguish (on) from (1) by making (on) equivalent to (-2)
- use -MMD instead of -MD: we should not explicitly depend on
system header files.
2003/01/09 ver 1.1.4.3 unofficial pre-release
From Bart
- ./mknewyear
2003/01/09 ver 1.1.4.2 unofficial pre-release
From Stas
- A proper fix for the insert key.
- Get the xkb switch working with X_keycode on.
- Start deprecating dosnet.
- Remove root check for IPX route setting.
From Bart
- Re-add $DOSEMU_VERSION setting to global.conf; autoexec.bat
in dosemu-freedos-bin uses it.
- Put coopthreads commands into commands/ together with the
other ones at 'make' time.
- Mouse: init mice->fd to -1 for X. Move mice into config.mouse.
Use char *dev instead of dev[255] to avoid a potential buffer
overflow. Try to move as much mouse handling as possible into
mouse.c, instead of in files outside src/base/mouse.
- Add if_tun.h because we don't want to depend on external
kernel headers.
2003/01/08 ver 1.1.4.1 unofficial pre-release
From Witold Filipczyk
- Fix to get MFS to work more reliably with PTS-DOS (slightly
adapted by Bart)
- Hack to "add support" for Oacute in cp852 and Polish keyboard
layout
- small doc build fixes
From Stas
- fix for DOSEMU hanging the machine if used with -H0 on the
graphics console; option to unfreeze DOSEMU from dosdebug.
- IPX fixes:
* RIP packets have type 1, not 4 (4 is SAP);
* Setsockopt doesn't require root for setting the packet type
when the proper Socket Level is used;
* select() can alter its arguments, so they must be always re-inited;
* Check if we really received a RIP packet and retry if we didn't,
rather than fail.
* remove enter_priv_on() where it is not necessary.
- midid fixes:
* Get rid of in_addr_t as it turned to be not present in some glibc
* Shut up the misleading warnings
* Stubs for all the System midi messages and the Real-Time midi
messages;
* "running status" must be reset by the System/Realtime messages;
* Remove the hack that was used to make the game "stunts" happy in an
absense of the above functionality.
- TUN/TAP support. This is intended to substitute the dosnet
module. dosnet requires root, while TAP doesn't.
Note: set $_vnet=(2) to enable the TAP support. $_vnet=(1)
(still) uses dosnet.
From Jason Eckhardt <jle@rice.edu>
- base/bios/int10.c (x_set_video_mode): Do not set INT 1F on a mode change.
(adapted by Bart: initialize INT1F at DOSEMU startup)
From Bart
- disable unprivileged ttylocks changes in ~/.dosemurc.
- ~/.dosemurc can now completely overwrite dosemu.conf
for non-suid-root DOSEMU.
- configuration simplification: DOSEMU now parses the default (as
if it was uncommented) dosemu.conf internally before
global.conf. This made it possible to greatly simplify
global.conf again. Also the initialization in init.c is no
longer necessary for the most part.
- check for lex or flex
- several small 'make install' tweaks
- the dosemu script now does not complain if /proc/ksyms does not
exist and can work without ~/.dosemurc. Also dosemu.bin is now
exec'ed. Systemwide paths are substituted during "make" rather
than "make install" so that a different prefix can be used
for "make install".
- make install_systemwide bare-bones (kept for backwards
compatibility for now)
- XMS cleanup and better error codes
- MFS: solve problem with repeated FindFirsts without FindNexts;
also use a circular buffer instead of a stack.
- some cpuemu code needs to be guarded by #if X_GRAPHICS
- adapted the manpages and "COPYING" a little bit to reflect that
the fact that Hans no longer maintains 1.0.x
2002/12/17 ver 1.1.4 released
From Bart
- Fix X font handling and misc other things in the dosemu script
and make install.
- add vga11x19 font
- some minor manpage and documentation fixes
- fix Makefiles: data.c dependencies and src/tools/periph
- verbose make install
- debug output goes to ~/.dosemu/boot.log by default for dosemu.bin
too
- allow $_dosmem in ~/.dosemurc and warn if more than 640K is used
for X or console graphics.
- install midid by default
- fix compiler warnings in msdos.h and comcom.c.
From Stas
- fix DOSEMU freeze (from ctrl+alt+pause) when $_rdtsc=(off)
2002/12/15 ver 1.1.3.9 unofficial pre-release
From Stas
- protect against stack overflows in dpmi.c.
- improve the boot sector for mkfatimage[16].
- use ntohs() to correct packet driver debug messages.
- keep track of subsystems and devices they used to avoid clashes.
- implement the PSP and fix the DTA translation for
src/dosext/dpmi/msdos.h
- fix MPU-401 initialisation.
- avoid pthreads DoS
- adjust fatfs.c to support PC-DOS
- dosdebug fix to make the "normal" trace mode to step the real mode
in DPMI
- limit transfer buffer for ASCIIZ strings in msdos.h. (Bart: use
snprintf instead of strncpy).
- do segment register translation only when necessary in msdos.h and
dpmi.c -- the DOS DPMI client translator and not the server is
supposed to be in charge of them.
- don't allow HW interrupts in the dosdebug force trace mode.
- config update for sound (Bart: organized a little differently).
- Temporary fix for the Insert key (the real fix will be post 1.1.4)
From Bart
- Some more global.conf adjustments to get the terminal and keyboard
working correctly by default.
- Based on an idea of Clarence: use Ctrl+Alt+Pause to freeze and
unfreeze xdosemu (he wanted it as a dosemu.conf option to always
do it when switching to the background but I think a keystroke
is more flexible)
- remove llseek check: just use the libless one.
From Reinhard Karcher
- correct the German keyboard.
From Clarence Dang
- comcom fixes:
* fix the < in "more < file"
* fix buffer overrun if the history file is corrupted
* fix buggy execution order (now: .com, .exe, .bat)
* fix bug where it was impossible to overwrite a file with >
because > actually appends (>>) instead of overwrites
* fix bug where pressing DEL key at the end of the line deleted
the character but did not update the display
* fixed a little overrun in delete()
* fix bug where scrolling to the right will scroll one too many
characters
* fix bug where inserting a character actually adds a character
to the end of the string.
* allow "DEL /P FILE", not just "DEL FILE /P"
* also, print an error if the file to be deleted doesn't
actually exist
* fix bug where the prompt was shown even when ECHO_OFF
* EXIT in the toplevel comcom.com calls leavedos()
* implemented TRUENAME
* partially implemented "template"-based command line completion
keys such as F1 and F3
* print "Invalid drive specification" when changing to an
invalid drive
* allow redirection of PAUSE's output
* DIR now looks like a Win98 DOS DIR
(changed spacing, dirs do not have sizes in DOS,
12-hour times instead of 24-hour, comma-separated file sizes)
* make TIME, DATE, kbdask() look more like they do in DOS
* newline displayed after every command if ECHO_ON
* make "echo. something" work
* CHOICE is an external command in DOS so the reference to it has been
removed
- joystick fixes and cleanups
* fix bug where joystick axis values from different points in time
are returned, in a single joystick position query from a DOS app
* introduces a "joy_latency" variable which substantially improves
joystick performance by reading less often from linux;
* fix some missing config stuff e.g. in config_defaults()
* fix port word read/write behaviour, code cleanup and doc fixes
- fix EMUVER="VERSION.1" problem
- fix "ERROR: ERROR:" messages in src/base/misc/disks.c
- allow emulated pc speaker sounds to go for longer than 990ms,
but for 30s.
- get freeze_dosemu to "pause" any pc speaker sounds
- don't turn off the speaker in X before generating a new sound
(unnecessary and causes "clickyness")
- ViewDocs: get manpage help working (./man/dos.1 no longer exists)
- Fixed some shell problems for make install.
From Robert Komar and Stas
- major midid update
From Matthew Sullivan
- Check for a tty before using virtual comports.
2002/12/14 ver 1.1.3.8 unofficial pre-release
From Bart
- revive "make install" - this uses a private boot directory setup
using symlinks by default, but users can opt out using "none".
- ~/.dosemurc now replaces the role of ~/dosemu/conf/dosemu.conf
and ~/dosemu/conf/dosemurc
- use ~/.dosemu/boot.log instead of ~/dosemu/boot.log to allow
execution of the dosemu script without a boot directory under
$HOME.
- allow execution of the dosemu script for suid-root dosemu.bin (with
the usual restrictions for ~/.dosemurc).
- add compile-time paths to compiletime-settings; disable setup-dosemu
for now since it cannot handle these.
- allow all dosemu.conf settings to be optional where DOSEMU has
built-in defaults; reflect this situation by commenting out
everything by default
- allow absolute paths in $_hdimage in dosemu.conf and ~/.dosemurc
- remove "restricted" and "guest" restrictions when running DOSEMU
non-suid-root.
- allow change of $_rdtsc, $_hogthreshold, $_rawkeyboard and
$_ttylocks in ~/.dosemurc by non-privileged suid-root users.
- disallow change of $_ports in ~/.dosemurc.
- removed $_keybint: it is no longer used anywhere.
- hide pthreads support since it can be extremely unstable
- fix typo in kbd_unicode keymaps.c so that the "auto" keyboard layout
works again
- first stage of removing externs
- fix newline replacement in bisonpp.pl for compatibility with newer
Bisons
- remove "extern int errno" and use #include <errno.h> instead
- move new keyboard documentation into the mainline.
- removed old old keyboard documentation and some misc doc adjustments
- add option to generate multiple HTML documents for use on dosemu.org
- Use indirect file descriptors in the MFS to avoid the possibility
that DOS programs can close or manipulate random file descriptors
that are in use by DOSEMU.
- MFS: FIND_FIRST should return NO_MORE_FILES and not FILE_NOT_FOUND
if no file is found.
From Emmanuel Jeandel
- add %pure-parser to parser.y.in; else we get a crash with newer
Bisons or gcc's
- remove a strlower to fix an MFS bug for "lredir e: $HOME/Games"
From Stas
- update sound-usage documentation
2002/11/03 ver 1.1.3.7 unofficial pre-release
From Stas
- Change $_sound to on and $_mixer to "" by default (Bart:
same thing in config.c).
- vm86_GP_fault() is no longer a signal handler so the relevant
code could be removed.
- remove the LDT-mangling to allow expand-downs. This allows a lot of
DPMI programs to run in DOSEMU that didn't before (such as
X32 (Zortech/Symantec/Digital Mars) and some others). Note that
"secure on" already disabled DPMI completely for suid-root DOSEMU.
- Fix three bugs in dpmi.c:
* access to dpmi_stack_frame[-1];
* save_rm_regs() without restore_rm_regs();
* use of the real mode interrupt stack as a general stack
- ignore RIP advertisements from the local net for non-root IPX
- move some DPMI structs back to private
- Fix dosdebug to properly work with DPMI, even surviving RM->PM
switches.
- dosdebug fix for force trace mode
- Remove old timer #if 0'ed code
From Reinhard
- Fix numlock switching on/off when switching vc's.
From Bart (reported by Reinhard)
- Don't initialize sound if $_sound=(off) (config.sb_irq == 0 is a
signal for that)
- Fix the Turkish keyboard lexer code in the right place now.
- (edited from suggestion by Matthew Sullivan
<sorbs@users.sourceforge.net>): try rmdir before rm -rf when
deleting the per process temp directory.
2002/11/02 ver 1.1.3.6 unofficial pre-release
From Stas
- Remove bogus check for ints >= 0xe0 in dpmi.c.
- Extensively reworked the Sound Blaster Pro emulation code.
From Michael and Reinhard Karcher
- Add missing semicolon for newer yacc's in parser.y.in
From Bart
- Fix old keyboard code compilation and mkbindist (noted
by Grigory Batalov)
- Update sound documentation
2002/10/22 ver 1.1.3.5 unofficial pre-release
From Baurjan Ismagulov and Sergey Suleymanov
- Turkish keyboard layout
From Sergey Suleymanov
- fix KEY_LESSGREAT for non-US layouts
From pesarif <pesarif@bigpond.com>
- corrected spelling mistakes in the documentation and various
other tidbits.
From Witold Filipczyk and Stas
- Improved X detection
From Bart and Stas
- make global.conf part of the dosemu binary. Users can still
use an external global.conf using a command line switch or
by editing dosemu.users, but by default the builtin one
is used.
- improved emusys handling
From Bart
- removed emubat and explain the /K autoemu.bat command.com option.
- added the /k switch to comcom.
- various MFS fixes.
- turn linkstatic off for development builds.
- various docs fixes (for global.conf and netdev).
- regenerated the docs and the DANG
- turn dpmi on and set -D+cw by default
From Stas
- correct in_dpmi usages
- add debug info on int return
- use more verbose startup info
- improve the hlt hack: the kernel always keeps the IF flag set so
we have to set it in a hlt hack as well.
- use proper (dpmi/non-dpmi) registers in dosdebug
- corrected incorrect usage of in_dpmi at various places.
- introduce a config_post_process() function that is called after
parsing. Otherwise there is no good place for disabling DPMI if
"secure on". Moved some related stuff from parser to post_process().
- remove asm run_irqs and other PIC cleanups.
- add "if(REG(eflags) & AC) error()" to avoid a gcc problem.
- Fix the DPMI mouse callback. This was necessary for the DPMI16
Borland C IDE.
- Fix problem with ints 0x1c, 0x23, 0x24 for DPMI
- introduce a $_netdev option, because the packet driver can
operate outside vnet mode too. It is not necessary to set up
dosnet anymore if you just need the packet driver to talk to,
say, eth0.
- Fault handling fixes for DPMI and instremu.
- release key on losing focus
- changed restore_pm_regs() to not require an extra copy_context()
after it (it does it itself now).
- leavedos() if DPMI stack structures are overflowed.
- a port logging printf fix
2002/09/15 ver 1.1.3.4 unofficial pre-release
From Eric
- better fix for Ins key
From Stas and Bart
- fix bug in mouse fn 0x0020 (enable mouse driver)
- clear AC upon an INT instruction (software and hardware ints).
From Stas and Grigory
- parse /proc/net/ipx_route for existing IPX routes (without
requiring root)
From Stas
- disable AC|ID clearance (leaving it only for the dosemu flags)
at other places.
- ignore bootoff when the real floppy is not accessible
- convert the packet driver callbacks to be DPMI-safe
- add option $_pktdriver to disable/enable the packet driver
(int 0x60) for vnet
- dosnet fix for broadcast (so ping works between two DOSEMU
sessions)
- get the Pause key working under DPMI
- disable PCI if there are no root privileges
- Unconfuse more serial error message like ERROR: \n DOSEMU:
cannot...
- use a wider range of ports for IO-tracing (the "T" debug flag)
- fix buffer overflow in mfs.c
- fix a client's protected mode stack corruption under high IRQ
pressure and in some other cases (notably since 1.1.3)
- use sb_dsp for sound in global.conf
From Bart
- remove the old int code.
- add some version guards to global.conf.
- remove plugin_configure warning.
2002/09/12 ver 1.1.3.3 unofficial pre-release
From Stas and Bart
- fix several potential t_dif (vs. hitimer_t) overflows in
the keyboard code and vgaemu code. The vgaemu overflow
caused problems after ~half an hour of inactivity in some
DOS programs.
- fix problem where Esc needed to be pressed twice.
From Stas
- remove special modifier handling for Ins: Ins is not special
like CapsLock is from the BIOS point of view; now Ins does not
trigger twice (annihilating itself) anymore when you press the
key.
- ignore keys that are already handled by DOSEMU.
- treat the case base==0 correctly for unicode_to_long() in
src/plugin/translate/unicode_utils.c.
- resurrection of DPMI->PIC interaction:
add overall stability for DPMI apps. Also fixes
a number of related bugs for v86 mode.
- Make IPX callbacks DPMI-safe, taking an advantage of
the PIC enchancements (that were integrated into
dosemu-1.1.3.2).
- Memory allocation (pagemalloc.c, used by DPMI) fix:
some DOS extenders expect that newly allocated memory is zeroed!
- Only open the serial port on demand, not as soon as DOSEMU is
started.
- Allow IPX without root privs unless you are going to use RIP which
is trying to add a route and fails.
- preserve flags (pushf/popf) on "Pause".
- select the 386 by default for future unknown CPUs (to avoid part
of the P4 problem - we now have a basic backup).
- dosdebug fixes: one makes dosdebug to correctly destinguish between
real and protected mode, second makes it to correctly disassemble
pushfd, popfd and iretd.
From Bart
- MFS fixes:
Try to improve the file locking behaviour - see the table in
mfs.c for differences between real DOS handling according to
RBIL and our handling.
Determine whether a file a special (a device) or not by
walking the DOS device driver chain instead of comparing a
fixed list of names. Also open/"create" the device driver
when appropriate in the same way as DOS does it.
Misc cleanups: add "const" at various places; use memcpy() and
memset() instead of strncpy().
Fixed a bug where the hlists were not freed when findfirst was
called for volume labels.
For efficiency: find first without wildcards uses findfile()
instead of needing to build an hlist.
- sleep when dosdebug is in a "stop" state.
- fixed a few trivial compiler warnings.
From Clarence
- conveniently allow DOSEMU to display the name of the currently
running program in the X Window Title (like Win98 does), if the
user is running COMCOM.COM
From Sergey
- set "access denied" if locking a region of a file is impossible.
From Per Jessen <per@computer.org>
- add a new dos helper: 0x82: returns PID and PPID in ax and bx.
2002/06/16 ver 1.1.3.2 unofficial pre-release
From Stas
- enhancements to PIC and mouse driver. This is intended to fix
crashes (esp. under X) related to mouse moving.
- make hogthreshold *value* to matter, not only the fact
that it is >0.
- Unconfuse serial error message like ERROR: \n DOSEMU: cannot...
It's more clear to merge the two lines.
- enable IPX code to work with doom's ipxsetup:
return status of send_packet in AL (else doom fails)
abort loops on error to not deadlock
correct and more verbose debug messages
- two small fixes to the new keyboard code
From Clarence Dang <dang@kde.org>
- new and working joystick support. Everything is detected at
runtime, except for pthreads: the joystick works a little faster
with pthreads support, but DPMI can become unstable if you
enable pthreads, and hence it is disabled by default for now.
From Bart
- did the autoconf and dosemu.conf bit for the joystick support.
- enabled stripping of a trailing dot for mfs (bug report from
Johan Gill)
- corrected off-by-one error for mfs environment variables.
- made new keyboard code the default in compiletime-settings
From Grigory Batalov
- remove perl dependence from DOSEMU
- unset DOSEMU_STDIN_IS_CONSOLE if "-X" is used
From Sergey Suleymanov
- added fonts.alias
- Cyrillic support: this introduces a Russian keyboard layout as
well as a keyboard layouts switch. It works with both the unicode
and the non-unicode keyboard code.
2002/05/26 ver 1.1.3.1 unofficial pre-release
From Eric and Stas
- pic.c: C run IRQs; bitops.h: find_bit clean-up.
From Stas
- ignore SIGPIPE
- make sure to always clear the AC and ID flags, when returning from
V86 mode and do not log that action by default
- for dosdebug: we want to trace the program, not the HW int handlers
- pagemalloc.c: collect garbage when freeing memory (makes sure
that DPMI memory is in a clean state when DPMI is entered, among
other things); extra NULL check; refuse realloc with newsize==0.
- pci.c: check each priv_iopl() for failure
- leaving DOS before booting calls exit(), not leavedos(), to
prevent a SIGSEGV
- circular log buffer of 50 MB - instead of leavedos() it
truncates and rewrites from the start when the log is full
- initialize mouse speed correctly (modified from Manfred Scherer)
- ports.c - make sure to handle dword ports similarly to word and
byte ports - without this suid-root DOSEMU has full access to
all hardware ports using ind/outd! Another reminder that you
should not let use suid-root DOSEMU if local security is
important.
From Manfred Scherer
- do not center mouse cursor when changing graphic modes
From Sergey Suleymanov
- int10-bell: return from function when beeping. Otherwise
the screen scrolls up.
- MFS fixes: Do not permit file deletion for read-only files.
prevent an hlist stack overload with big directories.
return NO_MORE_FILES if FIND_FIRST does not find a
file.
extend file if zero bytes are written past EOF
(all slightly edited -- Bart)
From Witold Filipczyk
- new Polish keyboard layout (now also applied to the new
keyboard code)
From Bart
- MFS: remove trailing spaces in filenames and extensions in the
Unix paths. ANSIfied mfs.c function definitions.
- enable raw keyboard for non-privileged DOSEMU
- int16: handle ascii 0xe0 and small Cyrillic er correctly.
- comcom.c: "errorlevel" applies to external commands only.
- use Autoconf 2.52 and check to see whether we should link in
libdl for libX11
2002/03/19 ver 1.1.3 released
From Stas
- We must not sleep() immediately after mouse event happened, we
have to let the program to handle the event (src/base/async/int.c).
- src/command detect.h adjustment and assemble tools which are not
produced for coopthreads by default (isemu.com, mgarrot.com and
fossil.com) (adjusted by Bart)
- remove wrong check for sb for dma_run in dpmi.c, use pic_run macro
in pic.c
From Eric
- keyboard fix for int16.c
From Bart
- re-enable KEYBUF_HACK while taking care of pause key.
- regenerated documentation/DANG
- moved some of the more extensive unicode keyboard debug output
to a higher level
- made compilation with gcc 2.7.2 possible for simx86
2002/03/10 ver 1.1.2.9 unofficial pre-release
From Stas
- fix for incorrect Wolfenstein 3D Adlib detection
- DMA indent patch to prepare for sound
- support for pause key
- add a little sleep to int16/ah=1,11 - this makes your current
setting of hogthreshold feel differently, however programs
polling the keyboard behave much nicer now
- new serial fixes
From Stas and Bart
- MFS DOS path buffer overflow checks and fixes
- Fix buffer overflow in int10.c for the screen. This caused
a page fault for terminals > 132x60. Enlarged this limit
to 255x128 and enforced it.
From Etienne Lorrain (etienne@masroudeau.com)
- Subject: RBIL problem INT10/AH=0x1B table 00040 offset 22h
off-by-one error: this should report the number of rows (not rows-1).
From Emmanuel Jeandel <ejeandel@ens-lyon.fr>
- Patch for Lemmings : Lemmings is 16 color, but uses 4 planes mode
(very unusual). It suffices to add few lines in X.c to treat it.
From Daniel Morris <email@tapestrycraft.com.au>
- changed MFS to return FILE_NOT_FOUND instead of PATH_NOT_FOUND for
FIND_FIRST (this isn't always the proper solution but that would
involve more reorganization of mfs.c - Bart)
From Miloslav Trmac <mitr@volny.cz>
- Disabled signals in the redirector to avoid problems with smbfs.
From Manfred Scherer <Manfred.Scherer.Mhm@t-online.de>
- fixed memory leak in mfs.c, enlarged DOS path to 66 characters max.
From Hartmut Richter <hartmutri@gmx.net>
- fix to avoid that serial input is lost in special situation
(improved by Stas)
From Herbert Xu <herbert@gondor.apana.org.au>
- fix to avoid division by zero for "0 MHz" cpu's - apparently there
are some broken /proc/cpuinfo's out there.
From Witold Filipczyk <juandon@poczta.onet.pl>
- Keyboard ALT 224; Polish_keyboard.patch (only applied to old
keyboard code)
From Bart
- moved int16 code to monitor space, except for a wait-for-key loop
for ah=0,10.
- fixed xms.c to only return BL=0 for successful A20 query: all others
should not touch BL if "success" (referring to XMS spec)
- (with help from Alistair) doSgmlTools.pl adjustment but it still
does not generate the right thing
- fixed all compiler warnings from gcc 2.95.x and gcc 3.0.x
2002/01/23 ver 1.1.2.8 unofficial pre-release
From Bart
- The addresses in crtcemu need to be shifted by the current value
of vga.crtc.addr_mode. Also enabled hardware scrolling for
textmodes. This enables some games and 8086-Minix to display
properly.
- make .sys files (not created from coopthreads) also by default, not just
with make dosbin.
From Stas
- as pit[0].time.td is initialized with GETtickTIME, we have to initialize
tp.td with GETtickTIME also, else time_curr contains garbage and sometimes
goes beyond zero.
- update dosemu flags on popf under CPUemu
This allows doom to work with sound.
- Don't allow direct access to speaker's ports when $_speaker is not "native"
This breaks some kernel stuff (pc-speaker driver in particular) and we
have an emulated PIT anyway.
Eric confirmed that this doesn't break his Matrox.
- pic_untrigger() implemented.
This is for SB detection.
- PrintScreen implemented.
I hope this is now what Eric wanted it to be.
- Fixes for ecpuon, ecpuoff and system commands
From Eric
- Add cp858 support cp850 + EURO
- Add koi8-r support for the russion hackers
- Fix comment in keyb_raw.c
- keymaps.c Corrected $_layout="auto" rename this to $_layout="kernel"
- terminal.c Improve handling of charcter sets that use 0x80 - 0x9f
- Fix incorrect initial numlock state with new keyboard code
2002/01/12 ver 1.1.2.7 unofficial pre-release
From Stas
- set VIP on pic_request() to activate the int ASAP.
Without this, some games fail to detect SoundBlaster IRQ under DPMI.
- DPMI: always return to dosemu code for handling signals.
IF is not set by popf and dosemu has to do some background
job (like DMA transfer) regardless whether IF is set or not.
- Fix cmdline.c.
- remove clear_console_video() from old keyboard code.
also remove scr_state.current init (Bart)
From Bart
- leave interrupts >= 0xc0 untouched. int 0x7a special cased by other
means. Do not special case 0x45-0x5f any more in bios.S (from Stas)
Make slave irq behaviour equal to master irq (iret, not lret 2).
- documentation generation: sgmltools needs --jade-opt not -jade-opt
- remove HACK in vgaemu.c.
- add missing files from keyboard plugin.
- Eric's new keyboard plugin is still disabled by default for non-devel
builds, so relevant plugin_enables should be set to no.
- ./mknewyear
- remove Athlon detection from /proc/cpuinfo in base-configure.in: use
./default-configure --target=athlon-pc-linux-gnu
if you want Athlon optimizations for now.
2002/01/06 ver 1.1.2.6 unofficial pre-release
From Eric
- Enable new keyboard code in compiletime-settings.devel
- Clean up the kernel revector bug work around.
- removed dead code in int05 left over from when it was called
with REVECT
From Bart (reported by Reinhard Karcher, help from Stas)
- don't zero out int 7a entry (int.c) , unhack and comment out
official JES hack (bios.S)
- remove kernel < 2.0.30 code and adjust requirements
From Stas
- serial code irq fixes
From Thomas Langhammer <Thomas.Langhammer@gmx.de>
- dosemu fossil driver enhancement: support the GetDriverInfo
function (1Bh) without specifying an existing port number
From Emmanuel Jeandel <ejeandel@ens-lyon.fr> (adjusted: Bart)
- CRT scan_len adjustments and related fixes to get some
Mode-X modes (eg. 360x480) working correctly.
You can see the difference with games like Battle Isle 2
or Scorched Earth (the latter is a shareware).
2002/01/06 ver 1.1.2.5 unofficial pre-release
From Eric
- compiletime-settings, compiletime-settings.devel
- explictly enables/disables the plugins
- dosemu.conf Added $_external_char_set & $_internal_char_set
- global.conf Added code for $_external_char_set & $_internal_char_set
- wyse60-pckb Added terminfo entry example that uses scancodes
- mouse.c Made mouse_keyboard() update conditional on HAVE_UNICODE_KEYB
- X.c
- Added tests for the XKB extension.
- Made new translation code conditional on HAVE_UNICODE_TRANSLATION
- emu.h Changed HAVE_KBD_UNICODE -> HAVE_UNICODE_KEYB
- video.c Move the remaining video init & cleanup calls from
keyb_raw.c here.
2002/01/06 ver 1.1.2.4 unofficial pre-release
From Eric
- Makefile.main Always link in all of the dosemu .o files
- default-configure
- parses options of the form plugin_<plugin_name> [on|off]
and explictly enables or disables them.
- mkpluginhooks Removed plugin_override code, added plugin configure
plugin configure scripts plugin enable/disable from default-configure
- mkpluginhooks Removed plugin_override code, added plugin configure
plugin configure scripts plugin enable/disable from default-configure
- dosemu_config.h
- config.c
- Added for the config_scrub callbacks
- Added config scrub callbacks so we can make certain the
config options are sane, even from plugins.
- Further killed keybint
- dev_list.c, iodev.h
- Updated to allow registering io_devices
2002/01/06 ver 1.1.2.3 unofficial pre-release
From Eric
- dosemu_debug.h Rework to for the debug print statement rewrite
- Rewrote the debug print statements to allow plugin to
define their own types.
- serv_xlat.c
- Modify Albertos Ctrl-Alt-PgDn hook to work with the new
debug message style.
- init.h
- Added so we can have initialization function in plugins that
don't need a call chain.
2002/01/06 ver 1.1.2.2 unofficial pre-release
From Eric
- mkconfscript:
- Remove base-configure before overwriting it, this solves
with developing with hard links...
- base-configure.in:
- Clean up cpu optimization rules
- Run configure scripts in plugins
2001/11/07 ver. 1.1.2.1 unofficial pre-release
From Alberto
- made it compile with gcc-3.0 under Mandrake 8.0.
You should _not_ use -fschedule-insns2, it makes dosemu crash.
- Reorganized the simx86 directory. Implemented a 'full-emulation'
mode, totally in C like Twin (R.I.P.).
This C-emulator is now working fine, FP is not yet finished
but (apart the abominable speed) it does all what the JIT
version does.
- Prepared simx86 for optimizer by clearly separating the Gen()
function, which generates an intermediate representation into
the IMeta structures, from the actual code generator backend.
- This release is tested on an Athlon 800; there are timing problems
with "slow" (<400MHz) machines.
- There are still some problems with Windows 3.1 and the segment
linker.
- Corrected xms.c: do not touch BH, else Win98 boot failure
- Corrected dpmi.c: WARNING - realmode flags can contain the
dreadful NT flag which will produce an exception 10 as soon
as we return from the callback! - so it's explicitly switched off
now.
From Bart
- added warning about prefetch instruction which does not exist on
i586 or lower (including AMD K6). This should probably be converted
into a compile-time option - otherwise cpuemu crashes on these CPUs.
2001/11/04 ver. 1.1.2 released
From Hans
- get 'make dosbin' working
- "su -" for nobody and space fixes in dist/dosemu
- adjusted COPYING to the current maintainer situation
From Bart
- fix compiler warnings in src/emu.c, src/emu-i386/simx86/protmode.h,
src/base/init/lexer.in
- fix for gcc-3.0 in base-configure.in; let the target_cpu decide which
gcc options to use instead of the host_cpu
- removed restriction to have to run (suid)-root in serial.c for creating
the lock file
From Stas
- remove emusys disabling for lredir'ed drives: at least DRDOS and FreeDOS
already switch from fatfs to lredir before opening config.sys
- graciously terminate on unhandled bound exceptions (int5)
- prevent segfault when DOSEMU_OPTIONS is an empty
string, but not NULL
- SIG_init() must be called *after* sighandler for SIGIO is set,
or dosemu is killed by unhandled SIGIO on startup and you have to
reboot your computer (emu.c, signal.c).
2001/10/28 ver. 1.1.1.11 unofficial pre-release
From Jeff Beardsley <jeff.beardsley@fuellinks.com>
- changes to global.conf to allow com3/4 work on other the irq12
(this turns out to be the fix for more than 2 serial ports)
Just have a $_com3 = "/dev/ttyS2 irq 5" in dosemu.conf
From Stas
- fixed bug in DPMI prevent calling int > 0xe0 in case
of function 0x0300 (not for 0x0301/0x0302)
- setting unused intvectors to NULL instead iret
From Bart
- fix bug in INT 13 AH=8 altering BL wrongly for harddisks
(base/misc/disks.c)
- updated doc/dosemu.lsm to reflect new maintainer status ;-)
From Steffen
- fix to global.conf: one /var/lib/dosemu forgotten to be
replaced by $DOSEMU_HDIMAGE_DIR
From Steffen + Hans
- fixed bug not booting on Pentium IV (base/init/config.c)
From Hans
- some fixes/enhancements to the dosemu wrapper script
- added '-input' and '-quiet' option
- tweaked args passing to dosemu.bin
- allowed running _as_ root (not suid), if configfiles are protected
- adapted the man page
- disabled obsolete 'root not secure' check in coothreads.h
- fix (again) to VERSION setup in ./baseconfigure
(hopefully this was the last one ;-)
From Eric + Bart
- fix gas -oformat switch: must be --oformat
2001/10/28 ver. 1.1.1.10 unofficial pre-release
From Stas Sergeev
- fixes to xms.c (umb_alloc) to match the LIM's specs.
- make cdrom.S' config.sys line parsable by PC-DOS 7.0
(patch modied by Hans)
From Bart & Alistair
- fixes in the docs of my bad english;-)
(I'm sure there still are some 'bugs' left)
From Hans
- comcom.c: using INT21,AH=7 instead of INT16,AH=0 for kbd reads
- comcom.c: fixed version number printing
- comcom: command 'cls' was missing
- comcom: command 'break' switched inverse
- further docs updates
- recompiled docs
2001/10/28 ver. 1.1.1.9 unofficial pre-release
From Bart
- fixed a bug in X-speaker code (pitch is short int instead of int)
(src/base/speaker/X_speaker.c)
- fixed crashing DOSEMU if compiled with glibc (close() on already
closed file simply gives error normally, but on glibc it will crash
due to implicit free()). Involved file: plugin/commands/comcom.c
From Hans
- fixed bug in comcom's commandline editor
- fixed bug in comcom's 'DIR' command (reported by Bart)
- disabled use of (real) yacc in base-configure, yacc won't work
any more, we need bison.
- new long options to bypass dosemu.user checks for non-suid runs:
--Flibdir to define DOSEMU_LIB_DIR directly (this also sets
DOSEMU_USERS_FILE=none in which case the config dir moves from
/etc to DOSEMU_LIB_DIR).
--Fimagedir to define a boot path that may differ from libdir
- exporting DOSEMU_HDIMAGE_DIR directly to global.conf
- 'dos' became 'dosemu.bin' to avoid nameclash with win4lin.
there is a symlink ->dos in ./bin, however, distributors should
install the 'dosemu' script as a wrapper which then calls dosemu.bin
- moved generation of the dosemu part of the bindist into the source
distribution:
- ./dist is the directory to contains this stuff
- global.conf and dosemu.conf are common for both, global (/etc) and
private ($HOME) configurations.
- wrote ./dist/mkbindist, which generates dosemu-<version>-bin.tgz
- wrote ./install_systemwide script, which creates the systemwide
installation into a configurable directory (root prefix possible
to ease packaging). It accept the following options, which all
may be omitted:
-fd FD_tarball Tarball containing FreeDos part, if omitted we
assume it already to be inplace.
-r root optional prefix for 'instpath' and 'binpath'
-i instpath directory where the systemwide installation
templates reside (default is /opt/dosemu)
-b binpath path where symlinks of the binaries under 'instpath'
have to be placed (default /usr/bin)
If the user accepts the defaults, ./install_systemwide will
just 'update' an existing systemwide installation and all users
on that system will untill than work with the new binaries
while keeping their existing configuration/installation.
- rewrote [x]dosemu script (of bindist) to become the _only_
executable to start dosemu. On a systemwide install it resides
in 'instpath' (see ./install_systemwide) and is accessed via
a symlink in the private installation (though, because of
'binpath' also available via $PATH). [x]dosemu will detect when
the user has no private installation yet and will unpack from
the templates in 'instpath', the latter is substituted into
the script itself at time of ./install_systemwide. If the script
stemms from unpacking the original DOSEMU binary distribution
of dosemu.org, the script will know and not try to fiddle with
an eventually existing systemwide install.
The file ~/.dosemu/bindist_path is maintained to find the last
private dosemu directory, even if [x]dosemu is called from
elsewhere. If, however, the user does cd into the private
installed directory and calls the script from there, bindist_path
is changed to this one. This allows switching between different
private installations.
In addition, on a systemwide install, the script accepts the
option '-install <mydos>', where 'mydos' is the basename of a
bootdir, that the user has to supply. In this case freedos will
not installed and can be replaced by any proprietary DOS, which
is bootable via fatfs (bootdir).
- updated README.distributors
- renamed ./man/dos.1 to ./man/dosemu.bin.1 and updated it
- wrote new ./man/dosemu.1
- updated set-permissions
- updated README*.txt, recompiled docs
2001/10/28 ver. 1.1.1.8 unofficial pre-release
From Bart & Eric
- final mouse fix for applications, which do 'mousing' only
by reading mickeys and drawing their own cursors (WP Office).
(replacing 'temp fix' of 1.0.1.5)
From Bart
- fixes to vgaemu: putpixel and hardware cursor
- fixes for dosnet not working under linux-2.4.x
From Hans
- fixed some strange behave when video{none} together with -o/-O
is set ((FILE *)stdout clobbered). In fact this is a workaround,
the real reason is unknown until now. Involved file: bios/int10.c
- a lot of fixes and further enhancements to comcom, such as
implementing missing copy/which command, commandline editor with
history (will be saved/loaded to/from ~/.dosemu/comcom.history),
compatibility should be much better. e.t.c. ...
- updates to README.bindist
- prepared doc/announce for 1.0.2
- wrote README.distributors
- disabled systemwide installation in Makefiles,
no longer supported.
- removed non-monoton timing stuff, obsolete now, tmonoton has
stabilized
2001/10/28 ver. 1.1.1.7 unofficial pre-release
From Hans
- introduced coopthreads plugin, which supplies non-scheduled (active)
'task' switching between plain green threads (no new process created).
This has the advantage that _none_ resource locking is needed,
minimal systemoverhead happens and neither DOSEMU nor libc have to
be thread aware.
On init the DOSEMU mainloop becomes 'thread0' with enough stack (1M)
to run as usual. Child-threads are created (256K stack) by stub .com
files from within DOS, have their code in 32-bit DOSEMU and can
(recursively) call DOS and BIOS functions themselves.
Even hooking of interrupt handler (such as INT23/24) is possible
and on start of a stub .com in fact INT23/24 are directed to own
default handlers.
NOTE that except the new doshelper function DOS_HELPER_COOP (0xc0)
there is _no_ hook within the main code, all is handled within
the plugins themselves and you may just copy the plugin directories
to any DOSEMU > 1.0.1 to take over this new code.
Involved files: src/plugin/coopthreads/*
- Ported most of the src/commands/* DOS support programs to
coopthreads, which are: bootoff/on, cmdline, dosdbg, ecpuoff/on,
eject, emumouse, exitemu, lredir, speed, system, uchdir, ugetcwd,
unix, vgaoff/on, xmode. Involved files: src/plugin/commands/*
- Wrote (from scratch) a DOSEMU built-in COMMAND.COM using coopthreads.
Involved file: src/plugin/comcom.com ;-)
This COMCOM only needs 2K lowmem per instance (plus env, of course)
and claims to be as compatible as reasonable, but some
incompatibilities still exist (though I don't think they hurt).
The following DOS internal commands are implemented:
cd, chdir, goto, echo, @echo, pause, rem, if, for, shift, call,
type, del, erase, set, path, prompt, break, mkdir, md, rmdir, rd,
verify, ver, ren, date, time, dir.
"copy" and "choice" are not implemented, because those exist as
external freedos commands.
The following DOSEMU support programs are being invoked internally
(if not present in the PATH), so they are always available:
exitemu, speed, bootoff, booton, ecpuoff, ecpuon, eject, emumouse,
ugetcwd, vgaoff, vgaon.
The following ones eat additional lowmem heap, so its better to
leave them external: lredir, unix, dosdbg, xmode, system, uchdir.
Of course COMCOM has a builtin commandline editor with history
buffer, else who of us would like to work the stupid old DOS way;-)
- updated README.bindist and src/docs/README/config to reflect the
latest changes
- recompiled docs
2001/10/28 ver. 1.1.1.6 unofficial pre-release
From Stas Sergeev <stas_orel@yahoo.com>
- fix for emusys/emubat/emuini file extension substitution not
working correctly for redirector/PC-DOS (modified by Hans).
Note: the DCONFIG.SYS part is disabled because it can't be handled
consistently in fatfs.c. Involved files: utilities.[ch], async/int.c
- fix for DPMI: run_dpmi() must not be called from timer_int_engine()
(just delay ints until the timer routine is finished)
From Bart
- small fix for mfs to get DRDOS use 'con' without error
- vgaemu_put_pixel patch (int 10h, function 0ch and 0dh)
- temp fix for mouse in applications, which do 'mousing' only
by reading mickeys and drawing their own cursors (WP Office):
In mouse.c, 'mouse_setpos()' disabled for X without mouse grab.
From Hans
- ./mknewyear ;-)
- fixed typo in global.conf, $__debug --> $_debug
- fixed bug in mfs for special devices given as full path by
by FDkernel. Involved files: src/dosext/mfs/{mfs,mangle}.c
- fixed small bug in mappingdriver detection (mapping.c)
- fixed src/base/misc/fatfs.c so 'emusys' and 'emubat' are handled
(emuini isn't needed here, because at that time we are lredir'ed)
- reduced signon banner to be less verbose
(+292 ./src/base/async/int.c)
- implemented A20 handling in 8042 emulation, needed for WinME
involved file: src/base/keyboard/serv_8042.c
- removed binary stuff, we have it now in dosemu-<version>-bin.tgz
or drop it. Involved files/directories:
dexe, etc/{config.test,hddummy}, setup-bootdir, setup-hdimage,
first-test, dosemu.spec, src/doc/README/{dexe,oldboot},
src/tools/{mkbindist,Mkbindist,QuickStart.bindist},
contrib/dosC, src/commands/precompiled/*.{com,exe,sys,doc}
- adapted the Makefile to reflect the binary remove
- the commands dir now is only compiled on demand, target: dosbin
- adapted the docs to reflect the binary remove
- added a short description about the binary distribution to
doc/README.txt, Quickstart and a larger one in README.bindist
- adapted Quickstart
2001/10/28 ver. 1.1.1.5 unofficial pre-release
From Hans
- fixed typo in emm.c, error code wrongly went into BH instead AH
- changed forgotten vger.rutgers.edu to vger.kernel.org in
async/int.c
- introduced --Fusers option to bypass /etc/dosemu.users in case
the binary is _not_ suid-root. This allows to distribute isolated
packages (other then DEXE), which have their completely own
configuration.
- introduced arg-list preparsing. As some options are dangerous
when parsed too late, those are done in the special function
secure_option_preparse(), which discards all options known
to be dangerous from the arg list (currently only --Fusers).
2001/10/28 ver. 1.1.1.4 unofficial pre-release
From Herbert Xu <herbert@gondor.apana.org.au>
- fixed typo in mfs mangling, src/dosext/mfs/util.c
- changed /dev/cuaX to /dev/ttySX in etc/dosemu.conf
- Fixed incorrect partition type sensing (setup-{hdimage,bootdir})
- glibc-2.2.2 needs (additionally) included <time.h> in dosdebug.c
From DJ Delorie <dj@delorie.com>
- fixed DPMI memory available (dpmi.c)
From Bernd Schueler <B.Schueler@gmx.de>
- allow file names, which have a DOS reserved basename together
with an extension (e.g. LPTx.PRN as used by CLIPPER programs
for internal spooling purposes). Involved file: mangle.c
From Rob Clark <rclark@list-clark.com>
- fix for mfs.c and mangle.c to proper detect reserved DOS file names,
even if prefixed by full pathes. (patch rework by Hans)
From Bart
- lpt.c printer security patch
- lredir enhancement to "reredirect a drive', such that an
existing redirection is replaced with the new one instead of
returning an error.
- adapt dosnet.c to linux 2.4.x
- fix for internal mouse driver on the console in graphics mode:
sometimes the mouse cursor left a trace behind. Involved file:
src/base/mouse/gcursor.c
From Hans
- removed obsolete (old parser style) etc/config.dist
- fixed dexe/check-mtools to detect version correctly
- adapted dexe/myxcopy to newer mtools (modified fix from Herbert Xu)
- fixed compiler warning in keyb_X_keycode.c (unused variable),
which stemms from the Xu caps/num lock fix
- 'tuned' ./rebuild for my convenience;-)
- removed suid-bit from default install, involved file:
src/arch/linux/Makefile.main
- recompiled lredir.exe due to Bart's "reredirect" patch.
2001/02/25 ver. 1.1.1.3 unofficial pre-release
From Adam J. Richter <adam@yggdrasil.com>
- some glibc-2.2.2 fix (to include time.h instead of sys/time.h)
involved file: mfs.c
From Alberto
- fixes for gcc >= 2.96 (the '##' macro thing)
involved files: data.c, msdos.h, cpu.h, mhpdbg.h
- other warning fixes related to gcc >= 2.96
involved files: pci_bios.c, pic.c, lexer.l, memcheck.c, parser.y,
keymaps.c, prestroke.c, fossil.c, dpmi.c, xms.c, detach.c, remap.c,
screen.c, port.h, dexeconfig.c
From Hans
- fix to gas detection, file '--' was generated instead of
just outputting to stdout. Using 'dummy' and deleting later.
(gas doesn't accept stdout; /dev/null won't work as gas will make
a regular file of it when running as root)
- general 'linux' header rework (this could no longer be avoided)
because we can't rely any longer on proper headers in the system.
- changed all <linux/*> and <asm/*> to "Linux/*" and "Asm/*"
in order to make obvious, that we are including private headers
- included standard headers from <sys/*> instead of <linux/*>
where ever possible possible
- the rest of headers is made 'privat', copied from a linux-2.0.38
tree and cut down to our needs
- v-net/dosnet.c still contains references to kernel header files,
because this is a kernel module. Compile this one with care
and verify that /usr/include/linux is in fact a symlink to
the kernel source.
- made generation of GLIBC_VERSION_CODE (hopefully) foolproof ;-)
2001/02/09 ver. 1.1.1.2 unofficial pre-release
From Bart
- Converted all as86 code to gas using .code16
Now we just need binutils > 2.9.1.0.25 and now as86 anymore
From Hans
- made mkpluginhooks restoring the previous status of plugin_enable
if plugin_override took effect and the overriding plugin is
disabled afterwards
- plugin_override now can take a list of overridable plugins.
- updated README.plugin
- better read_file in bisonpp.pl (never stop learning perl;-)
- some further work on Bart's gas stuff to make it better
portable between different binutils and removed warnings
for older binutils.
2000/12/02 ver. 1.1.1.1 unofficial pre-release
From Bart
- fix for base-configure.in w.r.t. glibc 2.2: the awk script got
confused between the definitions
From Eric
- remove/disable keyb-nonint mode (eb1.4)
- Modified the parser&lexer to handle shift-alt, ctrl, and ctrl-alt
shiftstates. (eb1.11)
- Now pass the raw scancode to get_bios_key, this is needed for
correct handling of a few rare cases in keyboard_u stuff.
- fix for linux-2.4.0-test11 "features" of /proc/cpuinfo
From Hans
(in preparation for Eric's keyboard stuff)
- removed USE_OLD_SLANG_KBD
- added new features to plugin handling (mkpluginhooks)
- config/plugin_override can contain name of plugin which _this_
plugin replaces (plugin_enable of the other will be set to 'no')
- config/plugin_incdirs (same structure as plugin_dirs) will
add directories to the include path.
- config/plugin_config.h is included by src/include/config.h
to give plugins a chance for compile time configuration
- added bison/lexer preprocessor bisonpp.pl (yes, it needs perl)
to add generic hooks into the parser. Moved parser.y
parser.y.in and lexer.l to lexer.l.in.
mkpluginhooks will generate the proper parser.y and lexer.l
using bisonpp.pl and merge files found in
config/plugin_{parser,lexer}.
- updated src/plugin/README.plugin to reflect the changes
- added parser stuff to plugin/demo
- added VERSION_OF and IS_DEVEL_RELEASE macro to configure to ease
checking of DOSEMU_VERSION_CODE such as
#if DOSEMU_VERSION_CODE < VERSION_OF(1,1,0,5)
#if IS_DEVEL_RELEASE
- fixed bug in base-configure not parsing the version numbers
correctly (kludge failed when VERSION was equal PATCHLEVEL_,
e.g. 1.x.x.1, 2.x.x.2 e.t.c)
- moved/changed src/base/keyboard to become src/plugin/keyboard
involved file: src/base/keyboard/*, src/include/key*,
src/arch/linux/Makfile.main, src/plugin/keyboard/config/*
src/env/video/terminal.[ch]
- parser.y, shifted outcommented rules down to avoid comments
within rule label such as 'term_flag /*...*/ :'
(problems with bison preprocessor)
- prepared parser keyboard stuff for Eric's stuff (eb1.11)
Some parser stuff went into src/plugin/keyboard/config/plugin_parser
and plugin_lexer respectively
2000/11/10 ver. 1.1.1 released
From Urban Widmark <urban@svenskatest.se>
- support for mice using the IMPS/2 protocol
(dosemu.conf key word 'imps2')
From Alberto
- cpuemu stuff: keyboard was broken with some programs; fixed
flags handling when entering e_vm86.
- ecpuoff: LDT was deallocated but not zeroed: fixed.
- memory write protection routines moved to new file memory.c;
a bitmap keeps track of the protected pages. Removed previous
hack which used /proc/self/maps.
- runtime checksum (again) on compiled blocks.
Every time a write fault hits a page, the code in that page is
now no more unconditionally deleted; instead, it is marked as
"suspect". When looking for a node, if a "suspect" one is found
a checksum is performed on it and, if nothing has changed, the
"suspect" flag is removed. Doing a checksum on a few bytes is
faster than removing a node and MUCH faster than reparsing it.
- still more macros to speed up compilation
- and that's all for 1.1.1, I would say.
- bug fixes: memory write protection and "suspect" node handling
From Hans
- removed never used USE_INT_QUEUE stuff in order to avoid
future problems with do_call_back().
- fixed Changelog entry of 1.1.0.2 (Eric's patches were hidden
in Alberto ones)
2000/10/15 ver. 1.1.0.5 unofficial pre-release
From Alberto
- cpuemu stuff: continued moving code generator sequences into macros,
and making speed improvements to the code generator
- made jump optimizations dynamic in an attempt to solve some
self-modifying code sequences (ndiags)
- currently compiled sequence, not yet in the tree, was not
invalidated by write faults; fixed.
- compiled jumps out of sequences can now go also backwards
- added missing decode in vgaemu stuff (bgidemo)
From Hans
- fixed my own stupidness from 1.1.0.4 in base-configure :-(
2000/10/14 ver. 1.1.0.4 unofficial pre-release
From Bart
- svgalib support, needs svgalib >= 1.4.2, for switching
between VCs (saving/restoring of card status) when running
console graphics.
From Hans
- made Bart's svgalib stuff configurable via compiletime-settings
- renamed vga_screenon(), vga_screenoff(), mouse_close(),
mouse_init(), vga_setpalvec(), vga_getpalvec() to dosemu_xxxx().
This was needed due to name clashes with svgalib. Though you
get some (maybe) correct linkage with shared libs, linkage
abandoned if linking static.
- fixed compiler warning from 1.1.0.1 in keyb_X_keycode.c
(unused variable i)
2000/10/13 ver. 1.1.0.3 unofficial pre-release
From Alberto
- cpuemu stuff: started moving some often used code generator
sequences into macros
- ecpuoff did not restore memory protections and did not
reinitialise the cpuemu; corrected.
- new cached search in the node tree; every node
now stores information about the next one in execution order.
This drastically cuts down search time.
- several speed improvements to the code generator
- src/base/keyboard/serv_xlat.c: missing spaces in a case range,
gcc 2.96 will not like it.
2000/10/06 ver. 1.1.0.2 unofficial pre-release
From Alberto
- cpuemu stuff: reworked the tree structures to use an AVL
tree (with code from libavl-1.4.0 (C) 1998,1999 FSF)
- self-modifying code is now handled via segfaults on
write-protected memory pages. Not perfect but faster than
checksumming or rebuilding a whole tree. Every time code
is generated, it protects its own page; every time we get
a fault, all code on that page is marked as dirty and
the page is unprotected.
- memory overwrites coming from disk also remove any nodes from
the tree over the affected pages. There is currently only
one hook in mfs.c to do that, hoping that there aren't other
ways to overwrite memory...
- added fault handling in cpuemu for div by zero, page and I/O
faults.
- hooks for VGAemu to make the whole thing working under X,
replacing Bart's instremu.
- rewritten comments in code generator in a more consistent
way (gcc-like)
- fixed bugs in POP SP and STOSb instructions
- moved some defines from dpmi.c to dpmi.h for use by cpuemu
From Eric
- Simplified dosemu_debug.h so changes don't need to change as many
lines.
- show_regs in dump.c could segfault (it now avoids bad addresses)
From Hans
- small fixes to compile simx86 on other than Alberto's systems;)
- changed 'sigcontext' to 'sigcontext_struct' in simx86/cpu-emu.c
2000/10/05 ver. 1.1.0.1 unofficial pre-release
From Herbert Xu <herbert@gondor.apana.org.au>
- fix for not working caps/num lock with X_keycode
(src/base/keyboard/keyb_X_keycode.c)
From Bart
- added vbioscheck program to get proper $_vbios_seg,$_vbios_size
(src/tools/periph/vbioscheck.c)
- added builtin vbios autodetection to init/parser.y
Any non legal value (e.g. 0) to $_vbios_s* forces autotetection
(patch slightly changed by Hans)
From Hans
- forbidd redistribution of re-packaged DOSEMU distribution
(involved file: COPYING)
Reason: checking the integrity of a DOSEMU distribution must
be possible without (re-)download simply by comparing the
md5sum published at dosemu.org.
- fixed bug for compiling static under glibc: PORTABLE_BINARY
had no effect (Makefile.conf.in, base-configure*)
- added printing kernel version on runtime option -h
- fixed printing of mapping driver type on runtime option -h
- fixed wrong behave, when a not working mapping driver was
configured (defaulted to mapfile always).
2000/07/09 ver. 1.1.0 released, starting new development tree
From Alberto
- new cpuemu stuff: new name: simx86
(for more details see preliminary src/docs/README/simx86)
- ZeroBaseTime is now in cycles instead of us
- SIGTIME has been un-macroed to its standard value of SIGALRM
- SIGPROF to be reserved/used in the future for cpuemu
From Hans
- small fixes to compile simx86 on other than Alberto's systems;)
- moved changes from config.in to acconfig.h, where they belong.
and rerun ./mkconfscript.
- put missing '#ifdef X86_EMULATOR' around '#include "cpu-emu.h"'
- added macro offsetof() in emu-i386/simx86/syncpu.h
- changed 'sigcontext' to 'sigcontext_struct' in simx86/cpu-emu.c
- adapted dosemu.spec
2000/07/08 ver. 1.0.1.1 unofficial pre-release, development fork
From Hans
- added missing parts of 1.0.0.2 vmodem (doors) patch.
(somehow did patch in a broken way at that time)
2000/07/03 ver. 1.0.1 released
From Hans
- fixed a diabolic bug in mapping/mapfile.c (s/\|/,/) :-(
- made sure we realy have root-only access on the mapfile when
running suid root. On NFS mounted $HOME we will come into trouble,
when we have no root_squash. For security reasons we cannot
allow suid-root DOSEMUs publish its mapped executable space
on a NFS mounted volume, that isn't trusted enough to have
root_squash.
- removed contrib/twin (forgotten in 1.0.0)
- updated dosemu.spec for 1.0.1
2000/07/02 ver. 1.0.0.11 unofficial pre-release
From Alistair
- new doc stuff, now using DocBook. For good results you need
atleast OpenJade-1.3, SGMLtools-2.0.2, HTML Stylesheets 1.27
Lynx >= 2.8
- feed in delayed docs from Eric and Bart
From Hans
- docs recompile
- adapted setup-dosemu's help to reflect the new docs format
2000/06/17 ver. 1.0.0.10 unofficial pre-release
From Eric
- changed Mailaddress (but not in src/doc/*, Alistair will do)
- changes to src/commands/emumouse.c (new options -Mx -My)
From Eric, Alistair & Hans
- fixed global.conf to take care of GNU sh-utils > 1.16
( default behaviour of 'who' isn't backward compatible anymore)
From TWISTI <twisti@gmx.net> (what ever real name he/she has ;-)
- changes to base-configure.in to reflect glibc-2.2 changes
From Alistair
- fixed DEXE for newer FD kernels, that have no IPL.SYS
From Alistair & Hans
- prepare src/base/misc/disks.c for linux-2.4.x
(BLKGETSIZE no long defineable via <linux/fs.h>)
From Hans
- cleaned up run_vm86() loop for do_call_back, now the same
as the main loop.
2000/06/05 ver. 1.0.0.9 unofficial pre-release
From Bart
- patch to make SiS chipset card run on console
- cleaned up bankswitching in env/video/vga.c
- fix for mouse.c, save/restore bug
- fix for mouse.c (SimCity virtual resolution of 2560x1920)
no restricting the virtual mins and maxes.
From Hans
- made FD kernel 1.1.20 (Build 2020) bootable via the bootdir stuff
(just needs kernel.sys within the boot directory, bootsector
is generated on-the-fly)
BTW: still needing Pat's command.com, the FD one still is buggy and
doesn't allow you write/create files within the redirected drive(s).
- removed forgotten '#if 1' for Bart's XWarpPointer improvement;-)
2000/06/01 ver. 1.0.0.8 unofficial pre-release
From Eric (with hints from Bart)
- mouse fixes along latest xmouse dicussions
- hide the mouse in X when the mouse grab is active.
- made set_curpos work for X
From Bart
- (hopefully) last fixes/enhancements to PL4 stuff
- updated DANG and comments in the source (no src/docs/* yet)
- mouse: trying to minimize the amount of XWarpPointer calls.
From Hans
- fixed above mouse changes, which broke 'autohiding' the X cursor
while DOSapps drawing the cursor itself in graphics (win31,fs5...)
(broke old and new stuff introduced in 1.0.0.4).
- removed 'X_mouse_cursor' (hand), this irritates more than
it serves. We aren't 'DOS compatible' here anyway, so stick
on 'X_standard_cursor' (arrow).
- set COUNT to 150 in instremu.c, 1000 was way to high for
'animated' graphics ;-)
2000/05/27 ver. 1.0.0.7 unofficial pre-release
From Eric
- patch to limit PL4 emuluation via signals happening instead
of MASTERCOUNT
- support for setting the vertical & horizontal display resolution
for PL4 modes
From Bart
- further speed improvement for instremu.c
- fixed a few bugs: zero/parity/sign flag updates with shift,
some string insruction bugs.
From Hans
- fixed Bart's 'less portable' asm inlines ;-)
(wasn't compilable with < gcc-2.9x)
2000/05/26 ver. 1.0.0.6 unofficial pre-release
From Eric
- patch to src/env/video/remap.c to make bpp24 work
From Hans
- freezing dosemu completely when on console and switched
away while still handling async stuff (e.g. handle signals).
involved files: dpmi.c, do_vm86.c, cputime.c, vc.c, timers.h
2000/05/25 ver. 1.0.0.5 unofficial pre-release
From Bart
- fix to do_vm86.c (vm86_GP_fault()) to simulate INT codes correctly
- make 32-bit code run in instremu.c
From Hans
- re-activated mouse snapping in X.c (no dependency on PL4 modes)
2000/05/23 ver. 1.0.0.4 unofficial pre-release
From Bart
- further work on PL4 stuff
- speeded up Logical_VGA_Write/Read
- font correction
- fixes for 5 bugs in instremu.c
From Steffen
- Mode X fixes (with hints from Eric)
- remap.c fixes
From Hans
- 'autohiding' of mouse cursor und X graphics mode
(relying on the application calling INT33 function 1,
when it doesn't display the cursor itself)
2000/05/19 ver. 1.0.0.3 unofficial pre-release
From David Pinson <dpinson@materials.unsw.EDU.AU>
From David Hindman <dhindman@io.com>
From Bart Oldeman's <Bart.Oldeman@bristol.ac.uk>
From Steffen
- joint effort to make vga PL4/Pl2/Pl1 mode work under X
(This stuff really works, good job guys ;-)
Though this changlog entry is small, the patch is big
and there need not any special usage description, just
run Borlands bgidemo under X.
2000/05/19 ver. 1.0.0.2 unofficial pre-release
From Julia A. Case <julie@MageNet.com>
- virtual modem support (socalled vmodem or "doors" patch)
See src/doc/README/vmodem for Details (no Alistair, didn't
fiddle with sgml yet;-)
From Steffen
- fix to dosdebug wrongly taking the mafile as pidfile in
~/.dosemu/run
From Stas Sergeev <stas.orel@mailcity.com>
- further fix to dosdebug printing a 'smiley' (0x1) and waiting for
the next command instead of terminating on 'kill'.
From Hans
- further kludge for mapself mappingdrive (/proc/self/mem)
2000/03/19 ver. 1.0.0.1 unofficial pre-release
From Alberto (...and Hans)
- fixed gcc-2.95 miscompile (optimized away our code templates
in env/video/remap.c)
- fixed bug in env/video/matrox.c (introduced by mapping rework)
From Hans
- made sure we pass a NULL pointer to mmap() when not mapping fixed.
Though it doesn't hurt to pass -1, the kernel may need some
additional work while searching for a free address.
- Put '#ifndef' around definitions of PAGE_SIZE, reason:
glibc-2.1 is defining PAGE_SIZE in <sys/user.h>.
- fixed base/init/memcheck.c, which uses the term 'PAGE_SIZE'
with a value of 1024 while actually meaning granularity.
Now we use GRAN_SIZE for this.
- fixed problem with libslang and glibc-2.1 not exporting _IO_std*,
when compiling static and 'slangforce on'.
Now linkable in libc5 as well as glibc (recompiled slang-1.2.2 on
libc5 with patch in contrib/slang/slang-1.2.2-dosemu.patch)
- better comment on 'REQUIREMENTS for DOSEMU' in Makefile.main
2000/03/05 ver. 1.0.0 released ... tadaaa
After a long time (8 years), and many many headache DOSEMU finaly
leaves ALPHA/BETA stage and is ready for production. We could not
realize all wishes, but the stuff which is in should be as stable
as it can be with DOS in the background :-)
Thanks to all people who helped to get this baby on its way,
especially to all the former co-ordinators befor me:
- Matthias Lautner, started the DOSEMU project 1992
- Robert Sanders, took over government 1993
- James B. MacLean, who was the longest staying on
this project: 1994 .. 1996
Since 1997 being the co-ordinator of this exiting project,
I'm happy that it finally reaches its aim.
-- Hans Lermen, 2000/03/05
From Hans
- removed experimental cpu-emu stuff
- adapted configure stuff
2000/03/01 ver. 0.99.14 FORK-POINT released
NOTE: This is the 1.0/1.1 forkpoint
1.1 will continue unchanged to form the new Hacker version.
1.0, the stable version, will be 1.1 with the experimental
stuff removed.
From Alistair
- some fixing soundpatches (mainly DMA stuff, as of 0.98)
From Hans
- wrote new setup-bootdir (should replace setup-hdimage)
(taken from 0.98)
- udated src/tools/mkbindist (taken from 0.98)
- removed obsolete old vm86 interface stuff and the configuration
option 'novm86plus'. Also deleted src/doc/README/vm86plus.
- checked and fixed some compiler warnings
- docs: removed (broken and/or obsolete) video ibmset loglevel
- docs: SECURITY, unix.com and system.com are no longer dangerous
- docs: X, removed obsolete 'todo' list.
- docs: commands, updated to reflect current state
- docs: config, added description of the new mapping stuff
- docs: dexe, binfmt_misc now is in every kernel.
- docs: priv, fixed formatting error at section start
- docs: configuration.sgml, TclTk is the only 'dialog' tool
currently.
- docs: DANG, removed threads and DANG recompile
- docs: removed doc/Known-Bugs (was state 0.53pl58).
We _have_ still bugs, but not those mentioned ;-)
- docs: removed man/xtermdos.1 and updated dos.1 (xtermdos is broken,
docs removed but script kept for compatibility)
- docs: added help entry for $_mapping in runtime_setup.help.patterns
- did docs recompile
- did run mknewyear to update copyright header
2000/02/28 ver. 0.99.13.3 unofficial pre-release
From Hans
- removed threads code (definitively), because no one made real
use of it and we would have to adapt to kernel changes anyway.
(its not worth this work)
- removed NetBSD code (definitively), because it was _totally_
broken since long time and no one of the NetBSD people bothered
to fix it (now we have a cleaner source and more space).
- prepared some docs for upcoming 1.0 release:
doc/announce, dosemu.spec, dosemu-HOWTO.sgml, README/header*,
dos.1, precompiled/autoexec.bat,
2000/02/26 ver. 0.99.13.2 unofficial pre-release
From Hans
- fixed bug in close_mapping() giving SIGNAL11 on -h option
(thanks to Eric, who pointed it out)
- fixed DPMImallocFixed for the mapself mapping driver driver.
- disabled DPMImallocFixed (dpmi/memory.c) for the mapfile and
mapshm mapping drivers because it makes trouble.
As a DPMI host is not forced to fullfill a function 0x504 request
for a fixed mapping, this seems not to hurt, atleast with the apps
I tested.
- variable order in which the mapping drivers will probe.
It turns out, that binaries produced by gcc > 2.7.x and/or those
linked against glibc are prone to break our /proc/self/mem kludge
while gcc-2.7.2/libc5 binaries work fine in all cases.
For this reason, depending on GCC_VERSION_CODE/GLIBC_VERSION_CODE,
the mapfile or the mapself driver is prefered.
- new dosemu.conf variable: $_mapping, which hold the prefered
mapping driver (dosemu.conf, global.conf)
- updated setup/* to reflect $_mapping
(setup/parser/parser.y, setup/runtime_setup-new.menu)
- added -fno-strict-aliasing in case of gcc-2.95
(base-configure.in)
- (finally) changed /dev/cua to /dev/ttyS (base/serial/ser_init.c)
- change Larry's address to jlarry@delanet.com
- dosemu-HOWTO.sgml: changed all 'blabla' to `blabla' to avoid
broken formatting (however, no docs recompile yet).
- added 'liability disclaimer' prompt to avoid problems with
laws in some countries. This was pointed out by a british
journalist: "The problem arises from tort, or the ability the sue
someone for negligence. Such liability can be overcome by making
it clear that the software is used at the users own risk...
...The problem with this for Linux packaging systems is that the
user must be warned of this disclaimer before they install the
software."
As I could verify, the journalist is right, so we print the
disclaimer, ask for confirmation and save the disclaimer
(including the confirmation) to ~/.dosemu/disclaimer. If that
file exists, we won't prompt any more.
From Eric and Michael (both found the same bug synchronously;-)
- fix for mmap_mapping(MAPPING_SHM) in mapself.c not turning
on privs before shmat().
From Arne
- fix bug in DPMI when using a mov sreg,reg in 32-bit operand mode
(0x40 as sreg doesn't matter in 16 bit, but does in 32 bit, now
the test is correct)
- fix typo in DPMI (FS was popped instad of GS)
From Andris Pavenis <andris@stargate.astr.lu.lv>
- GNU Pascal (DJGPP port) needs a higher number of DPMI clients,
DPMI_MAX_CLIENTS set to 32
From Antonio
- addition to user_hook 'lredir' request to get the linux 'mountpoint'
of a DOS drive redirection.
From Frank <molzahn@cc.umanitoba.ca>
- fixes to internal packet driver, involved files:
bios.S, pktnew.c (good spotting, --Hans)
2000/02/11 ver. 0.99.13.1 unofficial pre-release
From Hans
- added INT15,AX=e801 support (get extended mem >64Mb)
- Reworked the mapping stuff completely in order to make DOSEMU
run on kernels >=2.3.27 (mmap(/proc/self/mem) has gone).
- Implemented a generic mapping driver interface, which autodetects
the needed mapping strategie. arch/linux/mapping/* and
include/mapping.h
- wrote three drivers to support the following startegie:
- /proc/self/mem and IPC shm, exactly same behave as before.
- using _one_ big IPC shm segment and mremap(addr, 0 ...)
(Linus agreed on keeping shmat()+mremap(,0,..) functionality)
- using file mapping (no IPC at all), if else fails.
- These drivers also fix an existing (not yet known) security
problem when running suid as user (_any_ user could read DOSEMU's
IPC shm areas, IPC perms where set to 0755).
- changed all instances of any kind of mapping (mmap,shmat) to
use the above driver interface. Involved files are:
base/misc/{dosio,shared,init}.c, dosext/misc/emm.c,
dosext/dpmi/memory.c,
env/video/{video,vc,hgc,dualmon,vgaemu,matrox}.c
- Disabled or deleted mapping stuff, that we in principal
do not need any further. Involved files: signal.c,dosio.c,
shared.c,ioctl.c,dos.c,dpmi/memory.c,emm.c,vc.c
- Introduced a new debug flag (Q) for the mapping interface.
put a comment in on how to add further flags;-)
- New parser command to specify a discrete mapping driver.
Usage: dos ... -I 'mappingdriver mapfile'. Known keywords for
drivers are: mapself, mapshm, mapfile.
- updated man/dos.1 to reflect -D+Q (debugging the mapping stuff)
99/07/09 ver. 0.99.13 released
From Egbert Eich <eich@hilbert.ikp.physik.tu-darmstadt.de>
- implemented PCI-BIOS support (PCI Cfg Type 1 + 2)
All functions are implemented except 'special cycle support',
'get irq routing options' and 'set pci irq' (don't believe the
missing ones are important for DOSEMU;-).
( good work, Egbert! --Hans)
From Hans
- changed man/dos.1 to reflect the new -D+Z (PCI) flag.
- DANG recompile
- docs recompile
99/07/07 ver. 0.99.12.3 unofficial pre-release
From Alberto
- dosdebug.c: Add segment to XLAT. Correct order of src/dest for
SHLD/SHRD.
- several assembler fixes (warnings from newest as in binutils 2.9.4).
The first one in vesabios_pm.S was probably a bug too.
- cpuemu bugfixes: SLHD,SHRD were wrong in 16-bit modes. Also jumps
in REP from/to 16_16/32_32 could cause an infinite loop. Adjust
reserved bits in flag word in the case of PUSH.
99/07/03 ver. 0.99.12.2 unofficial pre-release
From Steffen
- workaround for egcs bug (at least up to egcs-2.91.66).
- bootdir stuff abandoning 'lredir', when running under DosC
(can't redirect anyway)
- adapted bootdir for PC/DR/NOVELL-DOS
- allow wildcards (e.g. $_hdimage = "drives/*") in global.conf
Look at src/doc/README/config for details.
- implemented autotetection of used keyboard layout
This involves 2 parts:
1. $_X_keycode = (auto)
2. $_layout = "auto" (independent from (1.)
For details see src/doc/README/config.
- adapted setup-dosemu to support keyboard 'auto'
- fixed an 'access bug' in X.c. XOpenDisplay uses access(2) to
check the rights of ~/.Xauthority and access(2) uses the
_real_ uid, hence we need to do enter_priv_on(). Doing this
is no security whole, because access(2) is suid-root aware
and XOpenDisplay doesn't open any other files then ~/.Xauthority.
... and, if you want a secure DOSEMU you must not run it
suid-root anyway.
From Steffen and Benjamin C. W. Sittler <bsittler@iname.com>
- work around Linux-2.2.x's NFS locking problems
(in fact ignoring locks on NFS)
From Alberto
- cmos 'BCD' fix (involved files src/base/dev/misc/{cmos,rtc}.c)
From Hans
- fix for multiple IRQs not going through in global.conf
- docs for 'auto' and 'drives/*' as Steffen was too lazy ;-)
- ./first-test now is executing a bootdir, changes in
arch/linux/Makefile.main, tools/periph/Makefile, etc/config.test
No etc/hdimage.test generated anymore.
- fixed '$_vbootfloppy / bootoff' not working (errm, global.conf
used the wrong parser command to set this).
- the 'bootoff' fix leaded to fix an other longstanding bug:
there now is no collision with defining vboot together with
more then one floppy (of course), hence the check is moved
out of the vboot part.
- removed the restriction to define $_hdimage when $_vbootfloppy
was given (was an older security restriction, which now is
obsolete. Atleast this is what I think it was for;-).
- additional note: when $_vbootfloppy is defined, bootA is
default (can be overridden by -C commandline option) else
bootC is default (can be overridden by -A and a real floppy).
99/07/01 ver. 0.99.12.1 unofficial pre-release
From Hans
- first steps to DOSEMU<->DosC cooperation code
- INTe6 helper 0xdc used for DosC (DOS_HELPER_DOSC)
- DOSEMU is now aware if running DosC and gets its version
to check for compatibility.
- DosC now is reporting, when it runs under DOSEMU
- fixed bug in DosC (wrong pointer declaration (SDA))
- fixed bug in DosC (wrong handling of INT21, AH=30)
- hook in DosC (kernel/inthndlr.c) to support INT21,AH=0x5f,
but just to catch it in DOSEMU and print a debug log message.
(will only work after the redirector is implemented in DosC)
- workaround in MFS to fake DOS-4.1 SDA data layout, when Dosc
is running (DosC has 4.1 SDA data layout, but reports DOS-3.1)
- changed lredir.exe such that it prints a message and exits
when DosC isn't capable of redirection
- changed lredir.exe to print DOS errors in clear text.
- new contrib/dosC/dist/kernel.exe, patch relativ to dosc10b2
put into contrib/dosC/dosc10b2-1.patch and
contrib/dosC/readme.dosemu updated.
99/05/22 ver. 0.99.12 released
From David Hodges <dave@router.econz.co.nz>
- reworked dosemu HOWTO
From Hans
- changed Steffen's E-mail address in all sources
- DANG recompile
- docs recompile
99/05/21 ver. 0.99.11.2 unofficial pre-release
From Alberto
- Make several int15 functions that deal with protected mode
dependent on config.dpmi. int.c (INT15)
- avoid reentrancy in log_printf (coming from async signals)
- removed 'void*' from address comparison in mouse.c
- print 'secure off' warning to DOS console instead to Dprintf()
(writing DOS console additionally to the logs), dpmi.c
- return to dosemu_code dependent on IF in dpmi_eflags;
this was the original way. Assuming that 'it helps returning
anyway' implies 'in winos2', added test to do it. I have seen no
side effects, and this helps the mouse under cpuemu.
- make leavedos really leave also when called recursively.
- lot of cpuemu changes, involved files: base/async/int.c,
emu-i386/intp32/{cpu-emu.c,emu-ldt.c,Makefile}
emu-i386/intp32/twin/intp32/{emu-utils.c,fp87.c,hsw_interp.h,
internal.h,interp_16_32.c,interp_32_16.c,interp_32_32.c,
interp_main.c,interp_modrm.c}, emu.c, include/cpu-emu.h
- some typo/syntax fixes (pic/pic.c, dpmi/dpmi.h, do_vm86.c
tools/tools86.c)
99/05/21 ver. 0.99.11.1 unofficial pre-release
From Alberto
- fixed bug in mouse.c checking linaddr instaed of DOSish address
(run_pm_int never was called). src/base/mouse/mouse.c
- Some missing 0x before hex constants in print_ldt()
- EMU_GLOBAL_VAR had no benefit, removed
- (again) some header fiddling for glibc (src/tools/periph/dosctrl.c)
- fixed bug in src/dosext/dpmi/msdos.h, which became obvious
after correction of INT15,AH=C0 (see patch from Jiuming Luo)
From Grant R. Guenther
- added -T debuglog trace for 'rep' IO (src/emu-i386/ports.c)
From Nick Duffek <nsd@bosbc.com>
- fix for mfs.c and INT21 function 3CH together with SHARE.EXE
succeeding though it should not (MS-DOS INT21/3CH would fail if
the file exists and is currently opened by another program).
The fix is: replace "open(O_TRUNC)" with
"open(); check sharing; ftruncate()"
From Dave Coffin <Dave_Coffin@unicore.com>
- y2k fix for CMOS byte 0x32 to report the correct century
( src/base/dev/misc/{cmos,rtc}.c )
From Michael Klein <michael.klein@puffin.lb.shuttle.de>
- An other y2k bug fix (in mfs.c), though it will hurt us
only after 2012, we have to be correct.
( I bet there will by some oldfashioned poeple like me
in 2012, who would complain otherwise --Hans ;-)
From Hans
- fixed bug in src/base/misc/utilities.c malloc'ing wrong size
and not checking for valid function pointer.
- fixed (again) a bug in the famous sigalarm_onoff() of
utilities.c (dos -A wasn't working). Hopefully this was the last
one :-(
99/04/22 ver. 0.99.11 released
From Alberto
- major cpuemu cleanup, bugfixes
From Hans
- docs recompile
99/04/21 ver. 0.99.10.3 unofficial pre-release
From Marcus (bug report from gvz@pop.de)
- fix (errm, workaround) for the 57 characters path limit in MFS
(buffer overflow in cds_record).
We block access to directories, that would exceed that limit.
Blocked directories are returned as zero-sized files; we do this
do prevent the user to create a directory with the same name.
(hack, hack ... but it should avoid crashes atleast;-)
From Wojtek Pilorz
- changed dosdebug such that it can (re)read a valid dosemu.map
(type 'rmapfile /anywhere/dosemu.map' at dosdebug prompt)
From Josef Pavlik <jet@spintec.com>
- added czech keyboard support: cz-qwerty, cz-qwertz,
both are CP852.
99/04/20 ver. 0.99.10.2 unofficial pre-release
From Josef Pavlik <jet@spintec.com>
- fix for MFS creating new files with wrong ownership (mfs.c)
From Wojtek Pilorz <wpilorz@bdk.pl>
- fix for dosnet having problems to insmod properly
(removed -DMODVERSIONS from src/dosext/net/v-net/Makefile)
From Cyril Slobin <slobin@iname.com>
- fix for MFS: under DOS (other then under Unix) renaming to an
existing file must result in ACCESS_DENIED (INT21,AH=56).
From Jiuming Luo <jiuming_luo@yahoo.com>
- fix for INT15,AH=C0 returning the status in the wrong register
(must be AH, not AL), src/base/async/int.c.
From Levente Csiszar <eriador@elender.hu>
- creating directories in MFS did set the group readonly.
e.g. DOSEMU running as user on the group 'dosemu' would not be able
to work on these directories. Changed perms from 755 to 775
From Kyle Fortin <forky@jungle.net>
- fix for mouse_event() not detecting a mouse handler when
CS:IP has CS or IP = 0. (src/base/mouse/mouse.c)
From Alistair
- remove USE_SLCURSES from setup/demudialog/Makefile
(this fixes the socalled 'submit-bug-report bug' ;-)
From Hans
- changed demudialog back to color mode
99/03/26 ver. 0.99.10.1 unofficial pre-release
From Hans
- further kludges to /proc/self/mem mmap kernel bug, making the
address space EMM_PAGE_SIZE big solve the problem in some
other special cases (/src/dosext/misc/emm.c).
- fix for hang on floppy access (was a bug in utilities.c,
sigalarm_onoff() )
- another security fix: userhook opened with root privs :-(
(src/base/misc/userhook.c)
- introduced do_call_back(), which makes it possible to call
vm86 code from within the dosemu 32bit code and return to
that place afterwards. In volved files: bios.S, misc/ioctl.c
do_vm86.c, emu.h, memory.h.
- new plugin hook 'plugin_ioselect', which hooks into io_select
Updated src/plugin/demo to give an example on how to use it
an the do_call_back() function.
- new doshelper: DOS_HELPER_GET_TERM_TYPE. This allows dosemu aware
DOS applications to adapt to the terminal type (async/int.c,
doshelpers.h). Look at doshelpers.h for details.
- added plugin_poll, this hooks into run_vm86() and run_dpmi()
Involved files: src/plugin/{README.plugin,demo/*),do_vm86.c,
dpmi.c,mkpluginhooks
- close possible security implication: forbidding partition access
when $_hdimage set by .dosemurc _and_ running suid-root.
Those who need it (and have _realy_ thought about alternatives)
have to specify it in /etc/dosemu.conf.
- fixed bug in ./setup-hdimage not doing chmod/chown correctly
- took over doc changes from 0.98.6 (no doc compile yet)
- docs: hint for 2.2.x kernels & nfs mounts (option nolock needed)
(src/doc/README/lredir)
99/02/26 ver. 0.99.10 released
From Hans
- introducing 'plug-ins', though the name may not be exactly
appropriate;-) It means to insert whole trees of code under
the directory src/plugin and configuring them automatically
into DOSEMU at compiletime. Those trees could be distributed
separately, not necessary by DOSEMU itself.
For more details look at src/plugin/README.plugin
99/03/11 ver. 0.99.9.1 unofficial pre-release
From Dima <dima@service.baltnet.ru>
- fix for MFS (SEEK_FROM_EOF) assembling a wrong offset
From Alberto Olindo <bindo@assibit.it>
- makeing numpad keys work for 'keystroke'
From Steffen
- fix for emulated FAT hidding some entries
- fix for emulated FAT not updateing the CDS correctly
From Marcus
- typo fixed in peripher/dosctrl.c
From Andris Pavenis <pavenis@lanet.lv>
- fix for peripher/dosctrl.c (including bits/time.h for glibc2.1)
From Vladimir Kondratiev <vkondra@iil.intel.com>
- fix for peripher/dosctrl.c, including features.h to define __GLIBC__.
Now, we won the first price: 3 contributors for 4 lines of code;-)
From Vincent Labie <vlabie@club-internet.fr>
- fixed a whole bunch of typos/bugs in sigsegv.c,cpu-emu.c,emu-ldt.c
(_very_ small part of a 24806 lines patch, which (sorry) can't go
in as _one_ piece. Waiting for Vincent cutting it into handy
chunks. --Hans)
From Alberto
- typo fixed in userhooks.c
From Hans
- better check for 'being on console', involved files: global.conf
config.c, utilities.c, utilities.h. Function is_console() uses
ioctl() on a FD to detect wether it's a console.
This solves some problems when starting DOSEMU from an _other_
terminal, but redirecting stdin/out to /dev/ttyX.
- now returning exitcode 123 on Ctrl+ALT+PgDn, this enables wrapper
scripts to detect this case and restart dosemu (speudo-reboot)
- new DOS_HELPER_GET_CPU_SPEED.
- fixed a typo in sigalarm_onoff() (utilities.c)
99/02/26 ver. 0.99.9 released
From Antonio & Steffen
- preparation for 'kdos' DOSEMU frontend (src/env/video/X.c)
Stay tuned for what will come soon ;-)
From bwallac1@san.rr.com (sorry, he didn't mail his name)
- fix bug when running dosemu in background and having to tty
(getting ENOTTY as opposed to expected EINVAL)
Involved file: src/base/keyboard/keyb_slang.c
From Hans
- korrected the -D+T such that it does (mostly) the same now as
under the (former) old ports stuff. As we handle port dispatching
differently, we needed to have a 'trace ports {...}' statement
to restrict logging to a given class of ports. This has the
advantage, that we now also can uses -D+T for software debugging.
(involved files ports.c, config.c, parser.y, lexer.l)
- changed all T_printf, that do not print 'IO-trace' information
to i_printf, which is the proper flag for IO debugging.
- disabled SHOW_TIME for production releases (utilities.c), this
is only usefull for development and otherwise breaks -D+T.
- fix bug in src/tools/mkbindist substituting $variables instead
of taking them verbatim. (tricky bash-ism;-)
- for now disabling sigalarm_onoff() in uhook_config(), is freezing
dos for some seconds. We have to find an other workaraound:-(
99/02/25 ver. 0.99.8.2 unofficial pre-release
From Steffen
- for userhook: CancelDiskRedirection (disk.c)
From Antonio Larrosa <antlarr@arrakis.es>
- included '<timebits.h>' in dosctrl when glibc used.
From Hans
- built CancelDiskRedirection into userhook.c, such that now
also 'lredir del d:' works from 'outside'.
- fixed double // in uhook_lredir.
- added 'config' uhook command (changes in init/config.c, userhook.c)
This prints the contents of the config.* structure.
- added 'SYN: command' to be outputed before any uhook command
in case 'ack on' is set. This makes handshaking easier.
( Needed by Antonio to better parse the results )
- fixed reading from the uhook inpipe, more than one command
in the buffer was ignored.
- fixed strange sig11 while in leavedos(), the bad guy was
run_unix_command() which was used to do 'rm -rf' on exit
while the assumed context was already destroyed :-(
Using privdrop() and system() now because we don't need to regain
root privs here anymore.
- moved sigalarm_onoff() from disks.c to utilities.c
(needing it elsewere too).
99/02/21 ver. 0.99.8.1 unofficial pre-release
From Steffen
- some fixes to the emulated FAT stuff (fatfs.c, disks.c)
From Hans
- fix for bug introduced in 0.99.6.1 which breaks INT10,AX=1130
(trashing BP in bios.S). Using ESP instead to access the stack.
- introducing 'user hooks', which supply a facility to control
DOSEMU (via -U command line option) from a foreign process,
e.g. a graphical frontend. Look at ./man/dos.1 for more.
Involved files: man/dos.1, mhpdbgc.c, config.c, ioctl.c,
base/misc/userhook.c, utilities.c, dpmi.c, do_vm86.c, emu.c,
emu.h, mhpdbg.h, utilities.h, tools/periph/dosctrl.c
- moved some code mhpdbgc.c to utilities.c in order to use them
also for userhook.c
- fixed append_pre_strokes() such that it can work also _after_
the first initial use (needed by userhook.c)
99/02/12 ver. 0.99.8 released
From Markus Kossmann <markus.kossmann@inka.de>
- missing <errno.h> in utilities.c made compile fail for glibc
From Hans
- fix to type_in_pre_strokes() (keyboard/prestroke.c) not doing
'keystroke "\Fx;"'
- removed HOGTHRESHOLD from README.txt (hopelessly outdated)
- wrote some minimum docs for Steffens 'bootdir' stuff.
- Stated in the docs, that DosC can't cope with lredir
(hope this stops the questions on linux-msdos).
- docs recompile (including DANG)
99/02/11 ver. 0.99.7.1 unofficial pre-release
From Steffen
- introduced booting _directly_ from a (lredir'ed) Linux directory.
No hdimage needed (this one was missing --Hans ;-). Involved files:
src/base/misc/{disks.c,fatfs.c,fatfs.h,fatfs_boot.S}
etc/global.conf, async/int.c, init/config.c, init/parser.y
mfs/mfs.c, include/{disks.h,int.h}
How it works:
- in $_hdimage a directory can be given containing atleast
IO.SYS, MSDOS.SYS (or what the appropriate DOS has as system
files). It also may (but need not) conatin a non-standard
bootsector file (name: boot.blk).
- This directory is partially converted (on-the-fly) to a FAT type
emulated disk (no data, only the directory enrties). A default
bootsector also is faked, and if boot.blk exists
this one is taken. From this emulated disk a boot attempt is done.
When the first _file_ access happens, the redirector is called
and from this point on (if the DOS supports a redirector) it
becomes an lredir'ed drive.
- In principal the emulated drive also works with the DosC kernel
(which not yet has a redirector), but the emulated FAT-FS remains
active and is readonly (writes are ignored).
From Hans
- fix for dosemu crashing on floppy access with no disk inserted
and not able to read writeprotected floppies.
99/01/28 ver. 0.99.7 released
From Steffen
- hercules emulation in vgaemu only when dualmon not set
- further reworks on vgaemu
- changes in mapping strategie.
- vesa_emu_fault in vesa.c removed, now vesa.c is completely replaced
and doesn't contain any old code piece.
From Florian La Roche <florian@suse.de>
- further adaption to newer egcs versions :-(
(src/include/dosemu_select.h)
From Hans
- trying to solve the midnight flag thing correctly
(base/async/int.c, INT1A,AH0), ... though, I may be wrong.
Lets see if it solves the problem.
- removed SMP check from base-configure, obsolete nowerdays
and gets wrong under linux-2.2
99/01/09 ver. 0.99.6.1 unofficial pre-release
From Alberto
- further cpuemu patches (sync with dose9961.dff)
- further cpuemu patches (sync with h1toh2.dff)
- new README.cpuemu
From Hans
- preset the config structure with zero at the very startup.
(suspecting accesses to uninitialized data, but I'm not sure)
- Oops the 99/01/08 version was wrong :-( corrected 0.99.5 -> 0.99.6
- fixed global.conf not passing $_cpu = "emulated" correctly.
- fixed rdtsc setting in global.conf (no hidden default any more)
- made $_rdtsc = (on) the default again (wish from Alberto)
- kludge: restricted asm contraints in PACK32_16 (intp32/hsw_interp.h)
to avoid gcc bug in 2.7.2.x and egcs <= 2.91 (signal 11 on cc1)
- put USE_GLOBAL_EBP into cpu-emu.h as a configure option for cpuemu
and made it default (realy increases emulation speed a lot).
99/01/08 ver. 0.99.6 released
From Hans
- new script 'mknewyear'
- executed 'mknewyear' ;-)
99/01/07 ver. 0.99.5.6 unofficial pre-release
From Alberto
- second round cpuemu patches
(changes in the TWIN part)
(Note from Hans: this is not yet working yet, some changes did not
went in or were changed and have to be reworked by Alberto.
This was just a too big patch;-)
99/01/07 ver. 0.99.5.5 unofficial pre-release
From Alberto
- first round cpuemu patches
(changes in common parts)
99/01/07 ver. 0.99.5.4 unofficial pre-release
From Alberto
- decide for INT06-handling by redirection of INT06 and not by
opcode 0f (sigsegv.c)
- removed wrong "we shouldn't be here" in case of newint code
(async/int.c)
- fixed a bug in PIT2 (timers.c) always returning the state of the
output pin instead of the count.
- moved DPMI_show_state to dump.c
- uninlined set_ldt_entry, checking only bit 2 of ss in ldt (dpmi.c)
- introduced 'quiet' mode in cputime.c
- when config.vga is defined, don't try to set a wrong entry in the
port table (port.c)
- further fixes on sig11 recovery (emu.c, emu.h)
- introduced GETTSC() to read the TSC counter (timers.h)
(modified it to be optimized by using "=A" constraint --Hans)
99/01/06 ver. 0.99.5.3 unofficial pre-release
From Marcus
- fix for misc/136 dosnet bug report (e.g. put back old loopback.c
code for kernel 2.0.36)
From A.R.Adams <a.r.adams@twi.tudelft.nl>
- fixes for src/arch/linux/debugger/dis8086.c
From Wojtek Pilorz <wpilorz@bdk.pl>
- fix for dosdebug not finding the pipes, when pid was given
explicitely, but $HOME/.dosemu/run contains other running pids.
- fix for do_mtools not taking filesnames containing whitespaces
into account
From Mislav Korona <mkorona@public.srce.hr>
- added support for croatian keyboard ('hr' comes from 'Hrvatska'),
iso8859-2 (hr-latin2) and cp852 (hr-cp852)
From Hans
- upgraded to slang-1.2.2 because of buffer overrun exploits
in 1.0.3. Verified, that _both_ exploits are fixed.
- fixed (now) possible buffer overrun in verror (utilities.c), because
slang-1.2.2 fixed its exploit by passing the involved printout
via (*SLang_Exit_Error_Hook)() to _our_ hooking routine.
(well, so we now have it ;-)
99/01/06 ver. 0.99.5.2 unofficial pre-release
From Steffen
- Further work on VGAEMU, involved files: int10.c, timers.c
mousevid.c, xmode.c, dpmi.c, ports.c, video/*, vgaemu.h
New files: video/{gfxemu.c,hercemu.c,miscemu.c}
- all standard VGA registers now are correctly initialized
- monochrom textmode (0x07) functional, correct grayscales
- support for HCG graphics mode (though, this was a jumper
setable feature on old VGA cards, needs to be dosemu.conf
option --Hans)
- magicaly some display errors of doom have vanished
- xmode.exe has a new option '-mode n' to set the desired
graphic mode
- some general cleanups
- integrated Josef Pavlik's <jet@spintec.com> patches
99/01/05 ver. 0.99.5.1 unofficial pre-release
From Pat
- new DosC kernel, version 1.0 Beta2, built 1937
(however, still not supporting redirector)
From Alberto
- FreeDescriptor (dpmi.c) should sync with the real LDT not only
with the LDT cache.
From Hans
- introduced a facility for temporary config options called
'features'. The purpose of these parameters is to switch between
code or code pieces that in principal do the same, but for some
unknown reasons behave different between machines.
If a 'features' becomes obsolete (problem solved) it will
remain dummy for a while before re-used.
NOTE: 'features' are not subject to permanent documentation!
They should be considered 'temporary hacks'
A feature can be set (or given a value) such as 'feature {0 = 1}'
(in global.conf) or via /etc/dosemu.conf such as $_features="0:1"
$_features can hold a list of multiple 'n:value' pairs.
NOTE: $_features currently isn't used by 0.99, but we need to
to have it here for compatibility with dosemu.conf used by
0.98.
- fixed a bug in global.conf ($_X_winsize parsed wrongly)
- fixed typo in config.c: LX_KERNEL_VERSION 201126 -> 2001126
- disabled '#define asmlinkage' in memory.h, because its not
used when not <linus/linkage.h> also is included, where it finaly
is defined.
98/12/04 ver. 0.99.5 released
From Manuel Villegas Marin <manolo@espanet.com>
- Support for up to 4 cdrom drives. You need to load the cdrom.sys
with different args for each drive you want, such as
device=cdrom.sys
device=cdrom.sys 2
The DOS device names then are MSCD0001, MSCD0002, ...
The preconfigured devices are /dev/cdrom, /dev/cdrom2 ...
From Hans
- updated the parser to reflext Manuel's changes:
Just do cdrom { /dev/xxx } multiple times for each device,
First one means MSCD0001, the second MSCD0002 e.t.c.
- wrote some tiny documentation to reflect the cdrom.sys changes.
- changed the semantic of the 'fast' attribute for ports{} slighly,
The problem was that it was cleared strangely within ports{..}, such
that ports{ fast 0x11 0x22 0x33 range 0x44 0c66 0x66} put the fast
attrib on all above ports except 0x66, because only after 'range'
portspeed was cleared. Now it needs a 'fast' again in front of
'range' to make the 'range' fast.
98/12/02 ver. 0.99.4.2 unofficial pre-release
From Hans
- re-applied the old slangcode :-(
As it turned out people have difficulties with the new slangcode
and some _real_ terminals seem not to be handled as in 0.66.7.
As long as those problems aren't solved (or we have a good
doc helping those people to use the new code) it will remain
in as a compilation option. If I get more complains, the old
code will be turned on as default.
- fix for console not proper switching when doing graphics but not
using raw keyboard. Many kudos to Andrea Omodeo <omodeo@pea.enel.it>
who tracked this down.
98/12/01 ver. 0.99.4.1 unofficial pre-release
From Alberto
- fix for TASMX not running (wrong handling of selectors in
INT21,fn38). Good work Alberto!
From Hans
- first temp fix to 8-char-limit-pasting in Slang terminal
(found during IRC by Eric, Alistair and me)
- introduced PORTABLE_BINARY compile condition together with -static
- workaraund for glibc static binaries running on libc5 systems
(parsing /etc/passwd ourselves when /etc/nsswitch.conf not
existing), enabled via PORTABLE_BINARY in base/misc/utilities.c
- some dualmon fixes (global.conf, video/dualmon.c)
- made 2.1.126 timerstuff _run_time instead of compiletime dependend
(init/config.c, emu-i386/cputime.c)
- use --host=i386-any-linux for the binary distribution
98/11/21 ver. 0.99.4 released
From Alberto
- changed all his mail addresses
From Hans
- DANG remake
- Docs recompile (including version update in heeder and header-tech)
98/11/21 ver. 0.99.3.5 unofficial pre-release
From Florian La Roche <florian@suse.de>
- changes/fixes to make DOSEMU compile under all currently
available gcc/egcs/glibc combinations (hopefully).
(This was working 981112, hence what status we have 981113
isn't predictable --Hans :-))
From Zoltan Boszormenyi <zboszor@mol.hu>
- patches, which touched the same issue as that of Florian,
Zoltan's additional fixes were worked in by Florian.
From Karl Kiniger <ki@kretz.co.at>
- using pusha/popa instead of pushal/popal (dpmi.c), else
recent binutils would complain.
- fix for llseek, when glibc headers don't define them
From Hans
- changes in base-configure
- generate unique version codes for
gcc and glibc: GCC_VERSION_CODE and GLIBC_VERSION_CODE.
Major/minor is represented as (major * 1000) + minor.
- Also introduced 'ASM_PEDANTIC', which is set when a compiler
would silently produce wrong code on overlapping clobbered
registers in the asm constraints (which worked fine for gcc-2.7.1).
- using -fno-gcse for egcs, because otherwise some realy strange
things happen (last seen in config.c)
All the above are propagated through CFLAGS and are available in the
Makefiles.
- checking for llseek prototype on glibc, defining
NEED_LLSEEK_PROTOTYPE in config.h when needed.
- Adapted Florians Patches to reflect the base-configure changes.
- Adapted remaining GLIBC/GNUC #if's to *_VERSION_CODE.
- removed some gcc/egcs warnings
- removed EXPERIMENTAL from ASPI
- made ASPI default in compiletime-settings
- final finetuning on glibc-2.0.7pre6 stuff
98/11/21 ver. 0.99.3.4 unofficial pre-release
From Shawn Pringle <pringle@uvic.ca>
- small fix to global.conf ($_X_winsize typo)
From Fabrice Bellet <Fabrice.Bellet@imag.fr>
- small fix to global.conf (/dev/sda1 matching /dev/sda11)
From Alistair
- fix for gnats (gnats/get-email.sh, setup/parse-menu-sh)
- better doc for _usage_ of sound within DOSEMU
(doc/sound-usage.txt)
From Hans
- tried to fix a problem with base-configure not setting
proper X11 libpath under certain conditions.
- added some missing chipsets to the docs and setup-dosemu
- some fixes to dosemu.spec (copied keymap twice to rpm)
98/11/20 ver. 0.99.3.3 unofficial pre-release
From Alberto
- added floppy parameter table to the BIOS, just for compatibility
- added the 'atapi' keyword to floppy config. This is because
current code assumes anything different from /dev/fd{01} is not
removable, and dosemu crashes. Modified disks.c accordingly.
- add a disk sector dump for debug purposes.
- small fix for patch from Michael (forgotten to update
struct printer lpt in base/dev/misc/lpt.c)
- Enable 'cpu MHz' check in /proc/cpuinfo for kernels >=2.1.127
- mfs.c: wrong offset calculation prevented IDA from working
- do_vm86.c: better debug messages around DO_VM86()
- emu.c: found a way to exit dosemu when it gets a signal 11.
As {_}exit() doesn't work in this case, we need to tell the
kernel to kill ourselves. Added a setjmp/longjmp for this
emergency case. Modified the driver closing order in leavedos,
to have keyboard and video removed first.
- added brackets around SETIVEC for safety
- removed unused 2-letter variables in emu.h
- retrace trick in timers.c. Please check if your system has
better timing with games under X, this can avoid part of the
'too slow' or 'too fast' cases.
- changes to attremu.c: removed (stupid) HAVE_GETTIMEOFDAY check,
make it compile without X, export t_vretrace, moved old CGA
snow code from ports.c and make it slightly better (1 VR every
256 HR, instead of 1:1)
- the 'emuretrace' patch properly (== emulate video retrace
also in console mode). To be checked, some games can run better.
From Rob Clark <clarkc2@rpi.edu>
- removed X_GRAPHICS definition from ports.c (CGA snow bugfix)
From Hans
- changed global.conf such that (optionally) a device can be given:
$_floppy_a = "threeinch:/dev/fd0"
- splitted ChangeLog into 'ChangeLog' and 'ChangeLog.ancient'
(wish from Alistair for better parsing it)
- changed src/tools/mkbindist to reflect ChangeLog splitting
- disabled CPUSPEED in parser.y, we don't need it anymore, but we
leave it in for a while for dosemu.conf compatibility.
98/11/06 ver. 0.99.3.2 unofficial pre-release
From Steffen
- implemented the some missing video modes: 1 & 2 bit CGA/VGA
98/11/06 ver. 0.99.3.1 unofficial pre-release
From Michael
- small 'more then one' printer fix (lpt.c)
- fix for memory leak in lpt.c
From Hans
- fixed bug in aspi.c: did malloc() one entry too few
- removed not needed '#include <scsi/scsi.h> in both scsicheck.c
and aspi.c
- copied a cutdown version of linux/include/scsi/sg.h into
our src/include/scsi/*. Now ASPI should compile regardless wether
/usr/include/scsi is missing (glibc?).
- added "host/channel/ID/LUN" construct to search for the right
sgX device (aspi.c, scsicheck)
- fix (in fact a kludge) for dosemu not running in a cronjob
(base/keyboard/keyb_slang.c). In case of not being able to tcgetattr()
we examine TERM for 'dumb', 'none' or 'config.cardtype==CARD_NONE'.
In this case we set TERM and TERMCAP and ignore the rest.
- updated doc/README/batch to reflect the 'cron kludge'.
98/10/31 ver. 0.99.3 released
From Alberto
- pentium timing: rdtsc is now off by default
- timers and PIC: introduced 64-bit variables, Add return values to
pic_request. Added DEBUG_PIT macro. Removed obsolete definition of
pic_creq.
- int1a: corrected backward time jumps (30 minutes bug) and
midnight transition.
- fixes to (wrongly) zeroed BIOS font tables. Mainly the wrong
placed bios_f000_end label (bios.S). Moved bios_f000_* definitions
into bios.h and deleted them at all other places.
- fixed pic_sys_time calibration
- some optimizations in msdos.h
From Arne
- implemeted int 10h, ah=1bh (src/base/bios/int10.c)
- fix for wrong PIT latch command in src/base/dev/misc/timers.c
98/10/30 ver. 0.99.2.3 unofficial pre-release
From Steffen
- faster palette updates
- VGA compliant treatment of palette registers
- correct implementation of the Attribute Controller interface
- PEL-mask support
- simplification of DAC emulator interface
98/10/30 ver. 0.99.2.2 unofficial pre-release
( syncing changes from 0.98 to 0.99 )
From Hans
- (problem reported by Wojtek Pilorz)
Though protected by '$_secure="ngd"', the system.com command
was a permanent security risc when people switched 'secure off'
for some other reasons. Now I made system.com secure, even when
'secure' is switched off. This may change the expected behave for
some braindammaged usage, but I won't reverse it any more ;-)
- fix for $_X_font in global.conf (was not proper working)
- replaced annoying error() with W_printf() in src/base/misc/disks.c
on writeprotect.
- small doc fixes Quickstart
- added RPM spec file
- changed setup-hdimage to set group 'dosemu' if possible
- disabled parsing of old .dosrc
98/10/25 ver. 0.99.2.1 unofficial pre-release
( ... well, this is the ASPI release ;-)
From Karl Kiniger <ki@kretz.co.at>
- ASPI driver for DOSEMU, consists of a DOS stubb aspi.sys and
dosemu builtin ASPI helper. Works on any /dev/sgX.
The code was originally taken out of the Wine project but
is wildly hacked to fit our purposes.
( Many kodos to Karl, who did a good job ;-)
From Hans
- introduced A debugflag for ASPI
- changed Karl's solution such that ASPI doesn't need any special
kernel patch. The only remaining 'patch' for the kernel should
be a bigger SG_BIG_BUF in include/scsi/sg.h if needed (Karl's
CD-burner needed atleast 64k and I for my scanner have
#define SG_BIG_BUFF (128*1024-512) in my kernel).
- changed aspy.sys such that it doesn't load, when no SCSI
is available or not configured.
- made ASPI configurable, we only allow those /dev/sgX, which
are explicitely configured (anything else is inherently dangerous
for naiv users;-). Look at src/doc/README/config for details.
In compile-time-settings its 'aspi on/off' _and_ currently its
protected via 'experimental'.
- tested the ASPI with my JAZ drive, works flawless;-)
- updated src/doc/README/config to reflect the ASPI driver
- updated setup-dosemu stuff to reflect the ASPI driver
- uodated DANG, but did not (yet) recompile the docs
(avoiding the patch becoming too big)
- added src/tools/peripher/scsicheck, which prints /proc/scsi/scsi
showing the needed $_aspi entries for /etc/dosemu.conf
- replaced error() print with d_printf() in src/base/misc/disks.c
as it turns out some DOS-apps are doing installation checks
by just calling their (normally hooked) int13 functions and
just expect CARRY if not installed.
- made show_regs dummy, when d.general (g debugflag) isn't set.
(in src/base/misc/dump.c). It turns out, we don't print anything
anyway in this case.
- fixed a bug in the parser's 'foreach': on stacked foreach loops,
the first run of the loop body was skipped (src/base/init/parser.y).
98/10/04 ver. 0.99.2 released
From Rob Clark <clarkc2@rpi.edu>
- fixed src/base/speaker/Makefile such that is compiles
with X off even when no X-headers available.
From Hans
- docs recompile using sgmltool-1.0.7
(oh dear, the patch will be big)
98/10/03 ver. 0.99.1.3 unofficial pre-release
From Oleg V. Zhirov <O.V.Zhirov@inp.nsk.su>
- (partial) NLS support for MFS
see src/doc/README/mfsnsl for details
From Hans
- converted Oleg's docs to sgml (no docs recompile yet)
98/10/03 ver. 0.99.1.2 unofficial pre-release
From Alexander R.Adams <a.r.adams@twi.tudelft.nl>
- Changes to 80x86 disassembler (src/arch/linux/debugger/dis8086.c)
- more (full?) 32 bit support
- lots more fpu ops and a couple of cpu ops
- better readable output
98/09/25 ver. 0.99.1.1 unofficial pre-release
From Alberto
- fix for >=linux-2.1.121 not having inux/head.h
From Han Holl <jeholl@euronet.nl>
- 'nolinks' isn't supported by bash-2 anymore, replaced all
instances in the Makefiles with 'pwd -P'
From Steffen
- Continued work on color allocation.
- source cleanup of X.c & friends
- support for 16 color X servers (e.g. XF86_VGA16)
- textmode on all X servers, including 16 color & mono servers.
- implemented int10 - palette functions.
- (mostly) correct processing of palette registers
- Removed quite a lot of DAC/color init code.
From Hans
- forced make to use SHELL=/bin/bash, else 'pwd -P' won't work.
98/09/12 ver. 0.99.1 released
From Hans
- fixed the severe security hole introduced in 0.97.9.2
(And yes, it was me who produced this glitch)
98/09/07 ver. 0.99.0 FORK-POINT released
NOTE: This is the 0.98/0.99 forkpoint
0.99 will continue unchanged to form the new Hacker version.
0.98, the stable version, will be 0.99 with the experimental
stuff removed.
From Hans
- removed old X-mouse stuff
- removed old CMOS stuff
- removed old Slang code
- fixed mkbindist
- removed creation of /var/run for 'make install'
- fixed some tool scripts ("~/" wasn't expanded because quoted)
- fixed src/tools/mkbindist
- more precisely copyright definition (prefix to COPYING)
Prefixed all source files with the proper copyright notice.
(copyright laws are requiring this)
- finally made referred to dosemu.org (docs udapted)
98/09/06 ver. 0.97.10.6 unofficial pre-release
From Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>
- use of XSetWMProperties() instead of XSetClassHint() in X.c
to properly set WMHints for window managers.
From Hans
- removed old port code
- reworked docs to prepare vor 0.98
98/09/05 ver. 0.97.10.5 unofficial pre-release
From Maxim Ruchko *McSim* <mcsim@lvivholod.lviv.ua>
- fix for cursor hidding on console (FoxPro), cursor is positioned
_past_ right bottom corner. Dosemu did not handle this.
- small fix to previous mfs patch.
From Pablo Saratxaga <pablo.sarachaga@ping.be>
- support for code pages 850, 852, 437 conversion to
iso-8859-1, iso-8859-2 and viceversa.
Code page selection via 'charset XXX', where XXX is
one of ibm, latin, latin1, latin2.
- fixed belgian and hungarian keyboard
- added polish keyboard
From Hans
- modified 'code page selection' from Maxim such that it
became a separate overall selection for all types of logins:
moved it out of the 'terminal' statement (though its still tholerated
within for back compatibility)
- Updated the docs and setup-dosemu to reflect the change.
( within setup-dosemu its now part of the keyboard menu ).
- fixed dead circumflex in de-latin1 map.
- new script to automatically generate ./etc/keymap/*
... and used it to bring the table uptodate;-)
- docs recompile
98/08/24 ver. 0.97.10.4 unofficial pre-release
From Robert Rendell <rendell@csse.monash.edu.au>
- fix for rep_outb in n_ports.c (wrong while loop)
From Hans
- fixed all similar instances of Robert's fix (above) in
n_ports.c. What do we learn from this? Never put more then one
statement (following a conditional) into one line ;-)
- fixed -I 'keyload "keymap/xxx"', which was broken since 0.97.8.2
- added com3/com3 and ttylocks to {global,dosemu}.conf;
updated setup-dosemu to reflect this addition.
- default lock dir now is /var/lock.
- moved all remaining 'hardcoded' paths (hope I found them all)
into acconfig.h (config,h.in) making them runtime configurable.
- made /var/lib/dosemu movable to ~/.dosemu/lib on a per user basis.
made /var/lib/dosemu (systemwide) changable via dosemu.users
('default_lib_dir='). With this change only dosemu.users remains
hardcoded (though, look next item).
- Now checking for /etc/dosemu.users, if this doesn't exist,
check if /etc/dosemu/dosemu.users does exist (this makes people
happy, who like to have a dosemu directory in /etc).
- moved /var/run/dosemu-midi to ~/.dosemu/run/dosemu-midi.
- removed /etc/dosemu.loglevel, setting of log level now is done
in dosemu.users ('log_level=2').
- removed src/dosconfig.c (way too old and obsolete)
- fixed some more compiler warnings.
- removed old 'rcs-IDs'
- updated docs (but did not recompile, have to check my SGML tools).
98/08/23 ver. 0.97.10.3 unofficial pre-release
From Alexander V. Lukyanov <lav@long.yar.ru>
- fix for S3-Trio not saving/restoring all extra regs.
From Klaus Reimann <klausr@itap.physik.uni-stuttgart.de>
- better 'odd textutils' detection (gnats misc-120)
From Maxim Ruchko *McSim* <mcsim@lvivholod.lviv.ua>
- Patches to the mfs code:
- FoxPro now should work better
- increase dosemu SHARE compatibility.
98/08/22 ver. 0.97.10.2 unofficial pre-release
From Josef Pavlik <jetset@ibm.net> (gnats misc-122,123)
- fix for possible too small malloc (src/env/video/video.c)
- fix for Text-refresh on non standard TEXT modes (src/env/video/X.c)
From Hans
- removed x2dos, nobody is using it anymore (functionality was longtime
ago replaced by dualmon)
- fixed (possible) /tmp-exploits (in scripts as well as in C-code),
now DOSEMU uses _always_ $HOME/.dosemu/tmp, when needing tempfiles.
All those local ~/.dosemu directories will be created silently,
when not existing.
- Moved /var/run/* usage to $HOME/.dosemu/run/*, regardless wether
running suid-root or not.
- Removed old tempdir stuff and the -T commandline option,
which related to that, because we force our own temps below
$HOME/.dosemu/* (see above).
- Made base/misc/shared.c to create its tempfile 0600 and switched
to priv_off, as we now don't use /var/run/* anymore.
- removed some obsolete '#if 0' stuff
- made 'distclean' and 'mrproper' an alias for 'make pristine'
(some people not reading docs seem to expect it ;-)
- use of autoconf version 2.12 instead of 2.10 leaded to a slightly
different base-configure and include/config.h.in
98/08/05 ver. 0.97.10.1 unofficial pre-release
From Eric
- some X-mouse changes from 0.97.8.x4, which seem to solve
the >25 row problem (BC in 43 line mode) and some games were
the mouse couldn't pass below the middle of the screen.
- fixes to x4 concerning w31 mousesnapping
- mouse fixes along ideas/reports of Josef Pavlik <jetset@ibm.net>
(gnats misc 121)
From Markus & Michael
- fix for pdether
From Tamminen Eero <t150315@students.cc.tut.fi>
- small fix for ./ViewDocs
From Hans
- made newint the default
98/06/27 ver. 0.97.10 released
From George K.Bronnikov <goga@goga.mainet.msk.su>
- First step for 'DOSEMU in batch mode', atleast the output side.
When setting 'video {none}' DOSEMU can run without any terminal
and writes the DOS-stdout to Linux-stdout. You may play with it
such as: dos -I 'video {none} keystroke "dir\rexitdos\r"'
(for stdin we haven't yet a reasonable solution}
Note: When 'video {none}' isn't given, the code is absolutely
disabled.
From Hans
- fixed src/tools/mkbindist ( was out of sync )
98/06/26 ver. 0.97.9.3 unofficial pre-release
From Andreas Kirschbaum <ank@rbg.informatik.tu-darmstadt.de>
- fix for Borland-C (4.0) tlib not running
- some wrong debug prints.
From rwfries+bobf@dreamscape.com (gnats misc/104)
- fix segfaults when dosdebug+xdos used together with
/usr/include/gnu/types.h of glibc-devel-2.0.6-9
( bug doesn't appear on libc-5, but the fix is correct, --Hans )
From Karl-Max Wagner <karlmax@oberland.net>
- support for japanese jp106 keyboard (and before you ask why
someone with a typical german name can do that: yes he can because
he speaks Japanese and runs DOSEMU on a japanese machine;-)
From Marcus
- fixes to the dosnet stuff, now support new-int (lucky Eric;-)
- Randomized dosnet ID, no clashes when running from the same tty.
- moved srand() out of midid/oss.c to a more global place: emu.c
(Alistair has to verify, --Hans)
From Alistair
- update to debug menu for setu-dosemu
From Hans
- adapted setup-dosemu to know about jp106
- docs update and recompile
98/06/26 ver. 0.97.9.2 unofficial pre-release
From Hans
- Second round of security fixes: got non-suid-root DOSEMU running.
However, this has reduced features: no port access, no hardware
access e.t.c, on console only pure terminal (Slang, no raw kbd).
On X it does a lot more: I was even able to run win31
(hence, DPMI is secure now with the s-bit off).
- Moved parse_dosemu_users again, this time _directly_ behind
priv_init at top of main(). This allows checking, wether this
user is allowed to run a suid binary. In /etc/dosemu.users there
is a new keyword ('nosuidroot') which only allows to run
non-suid root (copies of) DOSEMU.
- In case of non-suid root we now use a ~/.dosemu/* directory
(will create it if missing) for the stuff, we usually have
in /var/run/*. Dosdebug was adapted to support that.
- updated the docs to reflect the above changes.
98/06/24 ver. 0.97.9.1 unofficial pre-release
From Alberto
- fix a 'diabolic' missing '*/' in src/base/async/int.c
- some changes to make egcs happy
From Eric
- removed unneeded int10 label/jump in bios.S
From Hans
- removed mailing to root (as it turned out to be a bad idea)
Sysadm can check the logfiles instead.
- moved parse_dosemu_users into init/config.c _before_ any parsing
of commandline arguments. Should be quite securer.
- fixed possible bufferflow in resolve_exec_path (parser.y)
98/06/15 ver. 0.97.9 released
From Markus
- cleanup to dosnet code, involved files: bios.S, pktnew.c
and doc/README/dosnet. Note: this code needs the the old int code.
- removed dosext/net/net/select_packet and its entry in
set-permission, dosext/net/v-net/{dosnet.h,dosnet.c.kernel-2.1.x}
(remark) From Hans
- I too had a second patch from Markus, but this one changed
too much and in addition broke our (just gotten working) setup
stuff. So this has to be delay until after 1.0
However, I expect to get atleast a patch from Markus such that the
cleaned up dosnet can run together with the new int code.
(... if not, well then the old int code will be the default for 1.0)
98/06/14 ver. 0.97.8.2 unofficial pre-release
From Eric
- x1: quicken mouse fix
- fix a little piece of code without a sanity check
(src/base/mouse/gcursor.c )
- Added code to correct textmodes,
mousevid.c (get_current_video_mode)
- async/int.c: Readded old call to SETIVEC, mouse_post_boot,
dos_post_boot, moved code to dos_post_boot, and mouse_post_boot
- x2: fixes to keyb_slang.c
- x3: further fixes to EMS&X bug
- x5: emulated speaker fix, base/dev/misc/timers.c
- x6: enhancing X color palette handling, video/X.c, dacemu.c
(but sorry, the palette in 4-bit ega mode is still wrong,
--Hans)
- x9: fixed bugs in global.conf
- fixed line counting and error reporting in lexer.l, parser.y
- x10: readed old new_set_video_mode for 0.97.4, broke non-X compiles
From Hans
- renamed new_set_video_mode to X_set_video_mode to avoid further
confusion.
- some small 'adjustments' to x1,x6,x9 from Eric.
98/06/13 ver. 0.97.8.1 unofficial pre-release
From Alistair
- Tcl/Tk adaption for compiletime stuff in setup-dosemu
From Hans
- fixed .dosemurc stuff/changes in runtime_setup.tk not being relative
to global settings (yes Alistair, it was me who messed it up ;-)
Also, when resulting in an empty .dosemurc, we delete it
(else src/base/init/parser.y can't cope with it)
- changed setup/parser/parser.y such that it can cope with
non-existing/empty files.
- temp. disabled 'Debugging' submenu until it realy works
- added browser.tk, which is sourced by both, compiletime & runtime
This contains functions to popup a brows window and to
show Help.
- wrote the Tk wrapper menu (setup-dosemu can only handle dialog)
- added Help to runtime-setu via viewing the appropriate part
of chapter 2 of README.txt
- fix a bug in compiletime_setup.tk not using the proper file for
default-configure (configure went berserk)
- added to compiletime_setup.tk:
- forced 'make pristine' before doing configure, if Makefile.conf
exists (too dangerous to change settings without it)
- display of ./configure results in a window
- asking for 'compile' and running make, result in a window too
- help is now working
- Changed 'DOSEmu' to 'DOSEMU', as this (all capitals) is the official
form of writing it ;-)
98/05/31 ver. 0.97.8 released
From Alistair (+ Hans)
- new Tcl/Tk based runtime setup. We cuurently only support that
and have disabled the dialog based stuff until we get that
fixed/ported. Maybe we leave it in this state for 1.0.
The main ./setup-dosemu wrapper will only start the Tcl/Tk stuff
when available, else an informative message will be printed.
From Hans
- added dos.1 to ViewDocs
98/05/28 ver. 0.97.7.1 unofficial pre-release
From Eric
- Fixed Ctrl-Alt-Fn for 'video {vga}' and raw keyboard.
(wrong initialization order )
- Fix for strange EMS bug under X, changed 'xresize' made the
bug disappear, but even the gurus don't know why :-(
From Hans
- fixed bug in mhpdbg.c not setting ownership of debugger pipes
( running as user wasn't able to use dosdebug )
- added a script 'ViewDocs' for users, that don't know 'less' ;-)
98/05/03 ver. 0.97.7 released
From Micheal (via Alistair;-)
- newest sound patches
98/05/03 ver. 0.97.6.1 unofficial pre-release
From Eric
- fix for the 'beep' in INT10 AH=13: speaker_on(125, 0x637);
From Arne
- fix for video.c not setting screen_adr
From Hans
- fix for global.conf not correctly detecting an old style dosemu.conf
( to make Alistair happy ;-)
- first step to remove 'fix pathes' (for config stuff)
98/04/25 ver. 0.97.6 released
From Steffen
- rework of set_video_mode (int10.c)
- using backing store now in text modes (n_X.c, X_USE_BACKING_STORE)
From Hans
- removed old X stuff (no NEW_X_CODE defines any more)
- docs recompile (including DANG)
98/04/24 ver. 0.97.5.1 unofficial pre-release
From Toshio Sengoku <sengoku@intsys.co.jp>
- fixes to INT10 AH=13 (write string).
Now properly handles ^M, ^J and backspace.
From Eric
- fix for typo (/x instead of /dev/null) in base-configure.in
From Hans
- temporary disabled use of setup-dosemu, because our users
get confused and _are_ using it though it doesn't work correctly.
( we _really_ need to fix that )
- disabled bug-reporting, when the user missed to give a description
( realy ugly hack ;-)
- removed trailing ^M^J in src/commands/precompiled/autoexec.bat
( bogus 'command not found' on startup ). Well, now we have
the problem with diff/patch due to the missing \n :-(
- made 'newport on' the default again (seems to be stable enough)
98/02/29 ver. 0.97.5 released
From Hans
- upgraded to Slang-1.0.3, as we need _this_ version for demudialog
I made 'slangforce on' the default.
From Alistair
- changes to make demudialog compile with Slang (slcurses)
(colors are odd due to bugs in SLang, so BW is the default)
98/03/20 ver. 0.97.4.5 unofficial pre-release
From Steffen
- fix to global.conf not setting mitshm
- fixed/removed RESIZE_KLUDGE
- fix for mousecursor in graphics (was defined on _each_ X-event)
- reworked X-colormanagement:
- not crash any more when out of colors
- switch to private colormap, if the global one gets exausted
sideffect: some colors may be missing in textmode (become black)
... fix for this is 'in progress' ;-)
98/03/20 ver. 0.97.4.4 unofficial pre-release
From Alistair
- This patch contains (unfortunately) too many changes for me to
remember them all. The main parts are Michaels patches to limit
the size of transfers (and other fixes) and Kenneths patches to
clean up the code, fix some small bugs and make the debug code more
flexible. I have (as usual) hacked about and probably broken large
chunks of it.
From Hans
- some small fixes to global.conf (checked for version)
- Again a _desperate_ try to avoid people using configure directly.
( a user 'just saw configure.in and executed autoconf' )
Why the hell do we have a Quickstart ???!!!
Moved configure.in to base-configure.in and changed mkconfscript
accordingly. ... hope this helps :-(
98/03/20 ver. 0.97.4.3 unofficial pre-release
From Hans
- introduced .dosemurc (this replaces .dosrc). If this is found,
the new style is used and this file is included by global.conf
under 'user scope' (hint from Eric).
This means it has all c_* classes undefined and can only change
enviromnent variables in its own isolated name space
(prefixed with 'dosemu_'). Look at global.conf for details.
- changed -f option to replace .dosemurc (instead of .dosrc).
As the -f option is quite new anyway, it should not be a
compatibility problem.
- realized partition access via dosemu.conf
- suffix " +hd" to $_vbootfloppy allows virtual floppy + $_hdimage
- $_printer is now a _list_ of printer names (LPT1 .. LPT3)
- fixed ./first-test (etc/config.test)
- renamed KERNEL_VERSION to LX_KERNEL_VERSION to avoid name clash
with (new) 2.1.x kernels headers.
- udated and recompiled the docs
98/03/12 ver. 0.97.4.2 unofficial pre-release
From Steffen
- fix for NEW_X_MOUSE not snapping win31 mouse
- fix for not handling repnz (f2 prefix) in do_vm86.c, dpmi.c
- new DOSHELPER: DOS_HELPER_XCONFIG. This takes input from
the new xmode.exe to set X configuration from within the DOS session.
(hope Steffen also writes the docs for it ;-)
- hiding the main Xwindow (text) via env.variable DOSEMU_HIDE_WINDOW
( may need to be moved to some config.* variable)
Purpose: when starting an graphics application as the only app
for this session (maybe via DEXE), only the graphics window
shows up, hiding the fact that it is run under dosemu ;-)
From Hans
- make xmode.c 'norm-conform' ;-) and re-compiled it
- adapted and cleaned up src/commands/Makefile
- made 'newxmouse on' default in both compiletime-settings
98/03/01 ver. 0.97.4.1 unofficial pre-release
From Alistair
- fix for send-pr reporting wrong version when running under buggy
bash2
From Albert K T Hui <avatar@deva.net>
- more glibc fixes
- make use of __USE_* defines (moved by Hans into configure)
(__USE_GNU for MREMAP_MAYMOVE and CRTSCTS, __USE_UNIX98 for XCASE)
- moved stdout inside main() in mkfatimage16.c to make glibc2 happy
From Hans
- fixed bug in configure.in not detecting missing as86/ld86 correctly
- fixed bug in global.conf not setting X when TERM != xterm
- installed glibc check in configure.in and then globally define
__USE_* (from Albert's patch)
- changed yyerror to yywarn for when a macro isn't found on
macro expansion. This may be empty anyway. (in lexer.l)
98/02/28 ver. 0.97.4 released
From Kenneth
- fixed diabolic 'usedoptions[]' in src/base/init/config.c
From Steffen
- patches to mouse support under X-grafic
- new feature: mgrap_key, defines a Keysymbol (after Ctrl+Alt) to use
when giving xdos _exclusively_ the mouse (make playing games easier).
Can be set via $_X_mgrep_key. Default (empty) is off, A good value
is "Home".
From Hans
- did what Steffen missed: building X_mgrep_key into the parser
adapted global.conf and changed the docs ;-)
- made Steffen's mouse patches a compiletime config option
because it breaks win31 mouse completely (newxmouse on|off)
- reworked ./default-configure a bit:
- compiletime-settings now can be multi line.
- './default-configure -d' uses 'development settings'
from file 'compiletime-settings.devel'
- compiletime-settings.stable became compiletime-settings
- fixed the 'old port code'. Why? Well this _was_ intended to be
removed completely, however, seeing the latest strangeness in
dosemu behave, we have to test, wether this may come out of some
things we did not do correctly in new code (this applies
to _all_ new code, not the port one alone). So, when having
problems, first try to isolate by configuring some old code.
98/02/27 ver. 0.97.3.3 unofficial pre-release
From Steffen
- fix for doom not restoring video mode (BIOS_VIDEO_MODE not set
correctly, src/base/bios/int10.c)
From Marcus
- fixes for libpacket.c, pktnew.c, dosnet.c
(... removal of some 'facelifting' hunks by Hans;-)
From Eric
- trying to work around glibc2 header 'philosopy' (again):
libpacket.c, ipxglt.c, ipx.c
From Kenneth
- enhancements to dump_config_status (printers, debug_flags)
From Hans
- made GetDebugFlagsHelper usable for general purpose and
used it for Kenneth's 'debug_flags' ouput.
- fixed '-D+a' also setting CpuEmu's 'e' flag, even when not
configured in.
98/02/27 ver. 0.97.3.2 unofficial pre-release
From Eric
- udaptation to Slang-1.0
- 'error' from utilities.c now goes over 'verror' to simplify
passing of arglists. (used by sl_exit_error);
- made more room for INT16 code in bios.S (now starts at 0x3500
behind the IPX code).
- fix for new do_int together with dpmi (src/base/async/int.c)
- fixed a stupid bug in signal handling, (sigaddset expects _one_ SIG
to be added, not a bitmask of signals).
- fixed compiling without X support.
From Eric & Reinhard
- divers fixes to (hopefully) get extended keybord keys right
98/02/15 ver. 0.97.3.1 unofficial pre-release
From Eric
- fix for kernels < 2.0.32 not having ENOMEDIUM in errno.h (cdrom.c)
From Kenneth
- enhancement to INT8-serializer-hack of DPMI (in_dpmi_pm_int==8)
involved files: dpmi.[ch], dev/misc/timers.c
- fixed bug in init/config.c: missplaced brackets for if-clause
From Klaus Reimann <klausr@itap.physik.uni-stuttgart.de>
- fix for global.conf (missing bracket)
From Hans
- made dosdebug to capture _any_ leavedos(!=0), normally exceptions
were captured before anyway.
- fixed a small buglet in the recent debugger enhancements
- fixed -D+D debugflag, such that it now _realy_ prints int21 events
(needs setting int21 redirection for that)
- fixed mixed misuse of d.dos (ds_printf) in other places:
'd.dos' for DOS-ints and 'd.defint' (di_printf) for 'all other' ints.
... obviously
- put in Pat's recent kernel 1933+, now can handle more then one
drives (which means the '+' above ;-)
98/02/08 ver. 0.97.3 released
From Alberto
- fix for cdrom errors on startup (only kernels 2.1.x)
- added $_hardware_ram to dosemu.conf
From "Alexander V. Lukyanov" <lav@long.yar.ru>
- some mods to make 0.97.2 compile on RedHat-5.0
From Steffen
- closing a security hole together with 'shell' command
in /var/lib/dosemu/global.conf
From Hans
- cleaned those files in src/doc/README that confused 'patch'
because of missing new line at EOF
98/02/07 ver. 0.97.2.1 unofficial pre-release
From Hans
- some bug fixes to setup-hdimage (those bugs are in 0.66.7 too)
- mkdexe know will accept '/' as target name. I found '/', then
'dirname path' replaces '/var/lib/dosemu'
- put in Pats new Dosc (Beta1 build 1931) for testing
- made some enhancements to dosdebug to easy further debugging of
DosC:
- with option -H1 dosemu now will wait for the dosdebug terminal
to come up and then goes into 'stop' mode. This allows debugging
from the point were we jump into the bootsector (7c00).
- dosdebug command 'e' enhanced, now accepts a list of values
of different type and lengh. 'ed' defaults to decimal input
and registernames can be used as values. When the ADDR is a
'-', the last used address is take (writing in consecutive
locations
- mhp_pars now handles quoting correctly ("aa bb" will go into
_one_ arg)
- logging can now redirected to the dosdebug terminal
(command: 'log on' and 'log off' respectively.
- introduced 'log break points', which listen on the debuglog
output stream and put the emulation into 'stop state' when
when a reg.expression matches (commands: 'bplog <regex>' and
'bclog <number>')
- break point settings are now refused when not in 'stopped' state
because this leads to problems (was always so).
- fixed some logprints, which did print notprintable characters
( mainly in src/base/keyboard/keyb_slang.c )
We have now the helpers 'strprintable()' and 'chrprintable()'
in utilities.c.
- docs update are recompile (fixed some sgml typo's too)
98/02/02 ver. 0.97.2 released
From Hans
- Due to arguments from Steffen, decided to rearange dosemu.conf
again. Now dosemu.conf just contains the GLOBAL_SETTINGS part.
The 'script' part is moved to /var/lib/dosemu/global.conf. Hope this
makes it more easy for our (normal) users to fiddle with the
configuration.
- fixed $$_speaker bug in global.conf (dosemu.conf of 0.97.1)
- (fixed) $_secure such that 'secure off' can be set.
- added $_rdtsc, $_cpuspeed, $_pci to dosemu.conf
- fixed cpuspeed setting in parser.y (now 'cpuspeed 166.666' works)
- added some missing printouts for -h opion (config.c)
- updated the docs
- chapter 2 of README.txt -> chapter 2 README-tech.txt
- new chapter 2 of README.txt describes new dosemu.conf
- updated Quickstart and man/dos.1
98/01/30 ver. 0.97.1.2 unofficial pre-release
From Alberto
- the RTC/CMOS/int1a patches (tested with ndiags).
- removed egcs warnings ('ambiguous else' and 'default to int')
- enhancements to the disassembler
- new way of turning off debug log after console switch
- fixed bug in the definition of CONF_NLPT
98/01/30 ver. 0.97.1.1 unofficial pre-release
From Marcus
- rest of dosnet rework
From Sergey Suleimanov <solt@atibank.astrakhan.su>
- fix for FoxPro "Record not available" bug in conjuctions with
lredir'ed drives (mfs.c)
From Kenneth
- fix: Print Shop Delux not recognizing 'printer online'.
From Reinhard
- (first) patch to get the keypad-Ctrl (E0) stuff better.
( well, atleast this one should be in so we don't forget it,
looking forward to get the rest from Eric )
From Hans
- docs recompile
98/01/15 ver. 0.97.1 unofficial pre-release
From Marcus Better <marcusb@matematik.su.se>
- First round of a libpacket / dosnet rework (needed for 2.1.x)
( note: the chances to dosnet aren't yet in, have to consult Marcus
again )
98/01/15 ver. 0.97.0.3 unofficial pre-release
From Pasi
- fixed 'missing KeyRelease' when out of window focus in keyb_X.c
( thanks Pasi, that also fixes 'arrgh, hit wrong Alt-Fx' probl. :-)
From Eric
- no-cursor-bug-fix (console), int10.c, console.c (x26)
From Alberto
- adapt /proc/cpuinfo scanning to kernels 2.1.x
From Hans
- introduced 'runtime' kernel version checking: kernel_version_code.
98/01/15 ver. 0.97.0.2 unofficial pre-release
From Eric
- Changed ubyte_t to Bit8u (in video.h, bios.h ) (x10)
- Changed include of <asm/bitops.h> to "bitops.h" ( in mhpdbg.c
mhpdbgc.c, interp_32_16.c, interp_main.c, ports.c ) (x11)
- Updates the cursor in grahics mode now too, mouse/mouse.c (x14)
- Allow threads to compile with glibc (include/lt-threads.h) (x20)
- removed __u*: include/cpu.h (glibc2 problem) (x21)
- further glibc fixes, include/types.h (x22,23)
- docs for Priv-usage (x24)
From Arne de Bruijn <arne@knoware.nl>
don't set video bios variables for native VBIOS, video.c
From Hans
- 'desperate' try to disable direct execution of ./base-configure
( '#! /bin/bash' and x-bit removed )
- fixed console detection in etc/dosemu.conf
98/01/14 ver. 0.97.0.1 unofficial pre-release
From Kenneth Corbin <kenc@pioneer.net>
- fix for >16bit portnumbers in src/emu-i386/n_ports.c
From Pasi Eronen
- fix typo in vga_emu_init(), in src/env/video/vgaemu.c
From Arne de Bruijn <arne@knoware.nl>
- fix for seek_from_eof fails on lredir'd drives (mfs.c)
From Hans
- small optimization to power_of_2_sqrt. (removed silly compares)
- fixed (longstanding) typo in parser.y: CARD_EGA was treated as CGA
- fixed too late initialization of 'mem_names' in
src/base/init/memcheck.c
- enhancements to parser.y /lexer.l.
After long thinking and hesitating I decided to use real number
during startup /configuration. We won't use math support later
but I verified, it doesn't do any harm during start up.
Hence for future configuration stuff, we can avoid such tricks
as 'cpuspeed 500 3' and can have 'cpuspeed 166.666'.
- full expressions evaluation, automatic real/integer evaluation.
- string expressions
- using environment variables ($XXX) in (string) expressions
- setting environment variables possible
- preset some environment variables before running the parser
(KERNEL_VERSION_CODE, DOSEMU_VERSION_CODE, DOSEMU_EUID,
DOSEMU_UID, DOSEMU_USER, DOSEMU_REAL_USER, DOSEMU_HOST)
- new: 'if ()' statement
- new: 'while () ... done' statement
- new: 'foreach $xxx () ... done' statement
- new: shell() statement
- new: macro expansion ($$xxx)
- ... and lot more, have a look at README.txt
- ./etc/config.dist became ./etc/dosemu.conf
( rewrote the whole stuff, now checks for a lot more and sets
configuration more correctly in the first place )
- updated the docs accordingly
- new commandline option to aid debugging of configuration:
dos -h[0-2] -O 2>&1 prints all usefull configuration data and exits.
- new commandline option: '-f dosrcfile', which overwrites reading
of ~/.dosrc
- fixed _some_ (not all) sgml2tex errors in src/doc/README
( man, are those '...' a mess, difficult to find anyway )
because they were 'hiding' a lot of valuable info.
97/12/13 ver. 0.97.0 unofficial pre-release, VERSION BUMP
From Pasi
- patch for color allocation problems with -bpp 8 in src/env/video/X.c
( tries to use existing colors if they're close enough, and even
if allocation fails, some reasonable colors are chosen).
From Hans
- made simple integer_sqrt() to avoid FPU usage in Pasi's patch
( simple power of 2 iteration algorithme, if some skilled
mathematician can make it better, I wouldn't be angry ;-)
Anyway, for the above purpose it takes max 9 iterations.
NOTE:
This is the release that prepares for the 'fork point'
to 0.98/0.99. If 0.97 has stabilized it'll become (unchanged)
0.99, and minus some to-back-out-stuff it'll become 0.98.
97/12/12 ver. 0.67.16.8 unofficial pre-release
From Robert de Bath <rd103891@mayday.cix.co.uk>
- new enhanced Slangterminal code
(src/base/keyboard/keyb_slang.c, src/env/video/terminal.c)
From Eric
- some fixes to Robert's code
From Hans
- cleaned up Roberts code such that a diff between
the old and the new code is better readable.
- made compilation of the old Slang code a configure option
(--enable-old-slangcode) and moved the old code to o_keyb_slang.c
- docs recompile
97/12/10 ver. 0.67.16.7 unofficial pre-release
From Karl Kiniger <ki@kretz.co.at> ( ... ASPI-Karl ;-)
- fix for src/dosext/misc/emm.c returning wrong error code
on 'get handle by name'.
From Eric
- patch to make the enter/leav_priv* stuff working with threads
(see README.txt, chapter 'Priveleges and Running as User')
From Hans
- small changes to Eric's patch such that it checks the depth.
- adapted the the newer 0.67.16.x stuff to the new priv stuff
- docs recompile
97/12/07 ver. 0.67.16.6 unofficial pre-release
From Xavier Perramon <xavi@altair.ac.upc.es>
- fix to make creation of SOCK_PACKET possible for a user in
src/dosext/net/net/libpacket.c*.
From Hans
- restrictet the above patch for Xavier Perramon to be legal
only, when 'secure' is off.
- new tools in src/base/misc/utilities.c to handle /proc scanning
- changed cpu/rdtsc detection to above scan tools and
realized check for cpuflag 'tsc' to allow use of the cycle
counter. (in src/base/init/config.c)
- '#if 0'ed prep for the a possible Ctrl-PgUp fix ???
(src/base/keyboard/serv_backend.c). Reinhard promised to
to fix this better ;-)
97/12/06 ver. 0.67.16.5 unofficial pre-release
From Eric
- new interrupt handling stuff (do_int patch).
- do_int changed such that caller_function is called only if an
interrupt vector is not revectored.
- run_int now handles calls pic_cli()
- In do_irq 'do_int' is called instead of run_int.
- Added a function 'run_caller_func'.
- int08, int09, int_a_b_c_d_e_f, int_16 removed.
- Disabled redirection of the default case for int1c.
- Updated mouse code to use the proper address for redirection the
first time.
- int33: Replied to question about post_interrupt handlers.
- src/emu-i386/do_vm86.c (run_vm86): Sync IF, VIF and the
pic_state immediately after returning from the kernel.
Removed bogus IF/VIF handling in vm86_GP_fault..
- src/dosext/dpmi/dpmi.c (run_pm_int): Never call run_int now,
always use do_int instead. Moved dpmi_cli out of vm86 path.
do_int handles that chore on the vm86 path and doesn't always
clear the interrupt flag.
- src/base/mouse/mouse.c: Disabled unused support for int 0x74
- src/base/dev/pic/pic.c (do_irq): do_irq noe calls do_int.
Removed the unnecessary run_int sanity check.
Removed pic_cli, on the way to call do_int as do_int will not
call that itself it needed.
- src/base/bios/bios.S: Slightly modified the default interrupt 0x42
entry point so that it works in the new scheme.
Modified the entry point of int1c to call into dosemu.
From Hans
- due to some problems with X refresh (why?) made the do_int patch
a compile time option (--enable-new-intcode). I don't expect this
problem to stay for ever, so its only put in base-configure.
( './default-configure --enable-new-intcode; make' )
- run_int became 'real_run_int' and, depending on new or old int
code, a macro 'run_int' is pointing to 'real_run_int' or 'do_int'.
97/12/05 ver. 0.67.16.4 unofficial pre-release
From Eric
- bug fixer for the disk code, sometimes disk_close_all called
before disk_init and closing stdin. (src/base/misc/disks.c)
- If the hogthreshold code is disabled _don't_ sleep.
(src/base/async/int.c)
- Fix to make pic_sti and pic_cli more robust.
(src/include/pic.h)
- Modifications to cpu.h in preperation for the do_int patch
From "Robert de Bath" <rd103891@mayday.cix.co.uk>
- fix to allow Ctrl-Alt-Fx keys to be pressed on the Slang & the X
keyboards, don't eat them. (base/keyboard/serv_xlat.c)
From Pasi Eronen <pe@iki.fi> (note his new E-mail address!)
- fix for serial stuff in ser_irq.c
- changed E-mail address
97/12/04 ver. 0.67.16.3 unofficial pre-release
From Hans
- further working on keyboard cleanup. In principal no functionality
change was done (except keytable loading), the keyboard code behaves
exactly as before.
- moved all key map related config.xxx stuff into one pointer
config.keytable, which is a struct, that holds all needed
information. The keymaps.c has a list those struct for
keytable aivalable (keytable_list[]), such that this list is
searched in parser.c to set the appropriate config.keytable.
- this new struct also contains 'flags' for special handling
currently it only hold KT_USES_ALTMAP, which know is used to
determin wether the R_ALT handling should be done
(former check against KEYB_US)
- cleaned up the various DEAD_* references, know all is defined
in keymaps.h
- removed double definitions of KEYB_* in emu.h, keymaps.h
- introduced a new kbd layout: 'keyb-user', this one is identical
to 'us', but is intended to hold complete user defined keymaps.
Its know the default, when nothing is specified, so the US table
won't be overwritten, when doing a keytable load.
- new dosemu.conf statement: 'keytable', for more see README.txt
It makes it possible to either change an existing key map
or to replace (load) it completely. It is also possible to
dump all keytables to a (asscii) file, the format is suitable
fo direct include into dosemu.conf.
- deleted
- discrete "dumped" keytables now in ./etc/keymap, which will
be copied on install to /var/lib/dosemu/keymap. Here the user
may change them to fit his/her needs and load them such as
-I 'include "keymap/de-latin1"'
- some cleanup in the lexer.l rules. To avoid clashes between
the special characters "|{}=," and the _not_ quoted strings.
Now you need to quote a string, when it contains those
characters, e.g. file,xxx or file+xxx.c has to become
"file,xxx" and "file+xxx.c" respectively.
- the keymap 'no' now is named 'keyb-no' to avoid name clash with
the boolean 'no'. (in lexer.l)
97/11/30 ver. 0.67.16.2 unofficial pre-release
From Eric
- back ported keycodes stuff to new kbd
( ...thanks, that makes it possible to delete the old kbd code )
From Hans
- removed old kbd code and renamed src/base/keyboard/n_* to *
- include/speaker.h missed a '#include "types.h"', it compiled ok
in the past, because NEW_KBD wasn't defined (even when) because
also config.h wasn't included ;-(
97/11/29 ver. 0.67.16.1 unofficial pre-release
From From Ulrich Weigand <uweigand@easynet.de>
- (gnats report files/70)
fix for wrong open mode handling in MULTIPURPOSE_OPEN of mfs.c
From Hans
- fixed misplaced 'free()' in src/base/init/parser.y
- fixed not correctly working '-I keystroke' stuff for new keyb.
(recode(), type_in_pre_strokes() in src/base/keyboard/prestroke.c)
- forceing KEYB_US when in X _and_ not X_keycodes also for new kbd.
( prep for Eric's keycodes backport and fix for '-I keystroke')
- further rework of commands stuff, reworked commands/detect.h.
NOTE: No longer using '-a' flag of as86 because it results
in strange compilation (call far ptr * does generate a near call).
Changed all *.S which relied on the 'asld' syntax.
- changed macros86.h to use 'br' for JMPL, well it turns out that
this (non-Intel) as86-memnonic _does_ in fact generate a near jump.
( no docs are telling this:-( ).
- rewrote the simple C files to as86 such that we clean up the
'precompiled' directory.
- converted dumpconf.asm (MASM) to dumpconf.S, know having dumpconf.sys
instead of precompiled/dumpconf.exe
- converted mgarrot.a86 to mgarrot.S.
- renamed 'chdir.com,getcwd.com' to 'uchdir,ugetcwd' respectivly
(the 'u' stands for Unix) the old names were misleading as the
directories involved _are_ Unix ones (not DOS).
- fixed a bug concerning (u)getcwd, the old code used AX to pass
the size of the buffer to the doshelper, but AX is used to pass
the function code for the helper. Now using CX for size.
- removed all _AX _BX .. usage in command/*.c (too dangerous)
and replaced geninterrupt() with intr();
- made the (hidden) 'unix -s XXX' working (using msetenv), so you know
may 'transport' Unix-env.variables to DOS.
- 'unix -e' (without further param now will be quiet, so you may
have it in your autoexec.bat to be prepared for something like
'dos -D-a -E dosapp'. This as an alternative to '-I keystroke'
to launch DOS-applications from the linux commandline.
- changed src/commands/Makefile such that it can compile
precompile/*.exe on demand. Need an already installed DOSEMU
and Turbo-C though;-)
97/11/22 ver. 0.67.16 released
From Eric
- found and fixed a diabolic memory overwriting bug
( src/base/dev/dma/dma.c, loop limit was 5 instead of 4)
From Hans
- new DOSEMU detection stuff (without even trying to INTE6)
(all *.S -> *.com converted to that)
... to be continued
- to reduce confusion: ./configure becomes ./base-configure
- new script 'mkconfscript', which is used to build proper
configure scripts (runs autoconf, autoheader and replaces
/bin/sh with /bin/bash)
97/11/20 ver. 0.67.15.1 unofficial pre-release
From Marcus Better <Marcus.Better@abc.se>
- INT13-Support for more than 1024 cylinders
(bit6..7 of DH building 12 bit cylinder number)
- INT13 IBM/MS Extensions, AH=41h-44h and 47h-48h.
This uses 64-bit logical block numbers. It's documented in
the R.Browns Interrupt List.
From Hans
- Making Marcus' INT13-4096 cylinder mode a dosemu.conf option,
such that nothing old could break.
Flag for the disk statement: diskcyl4096
- docs rebuild
97/11/07 ver. 0.67.15 released
From Alberto
- replace all error("ERROR...) with error("...), because ERROR is
already prefixed in function error().
From Hans
- fixed 'error()' such that 'error("@xyz...")' will print _without_
prefixing 'ERROR:'. (print_exception_info() was printing wrong).
97/11/07 ver. 0.67.14.2 unofficial pre-release
From Alberto
- make USING_NET a configuration option
- fixes to lt-threads (atomic_* name clashes, locking stuff)
- make some compiler warnings go away
From Hans
- small fix for configure.in not detecting correctly broken textutils.
- introduced --enable-experimental to avoid playing JoeUser with
not yet working stuff.
- syncing lt-threads with my and Albertos changes (and vice versa)
Version now 0.4.2
- DANG and docs recompile
97/11/01 ver. 0.67.14.1 unofficial pre-release
From Alberto
- BIG patch to introduce the willows twin based cpu emulator
( too much to describe the details here, have a look at
src/doc/README/cpuemu). Alberto did a great job in porting the twin
cpu emulator to DOSEMU! We hope that one day (a) DOSEMU can run
on machines other then the Intel and (b) we can use the emulator
to simulate ring0 protected mode (win95;-).
However, currently its _very_ experimental and only few programms
run, hence it is disabled by default. As it now is in the
distribution we can make efforts to get this baby on its way;-)
- cleanup for the old X86_EMULATOR define (now using it for cpuemu)
- small initial documentation
From Hans
- doing the 'slave work' of integrating Alberto's patch ;-)
( including copyright verification with Willows )
- new dosemu.conf options: 'cpu emulated' and 'logfilesize xxx'
- reworked log_printf and 'error', now both are functions and call
'vlog_printf'. This avoids recursive macro expansion, when
redirecting 'fprintf' to 'error' in the twin code.
- making dosdebug to tell us wether we are on a simulated cpu.
97/10/24 ver. 0.67.14 released
From Alberto
- prep for cpuemu in src/arch/linux/debugger/{dis8086.c,mhpdbgc.c}
- isolated log-printf stuff in headers to avoid name clashes for
cpuemu: new file src/include/dosemu_debug.h
- fixed bug/typo in src/include/vgaemu.h: vga_emu_fault was passing
wrong arg.
From Hans
- adapted DANG_CONF, DANG and docs recompile
97/10/23 ver. 0.67.13.2 unofficial pre-release
From Alberto
- fix for Matrox _and_ 'speaker non-native', lots of port61 fixes.
- fixed bugs in dpmi.c (LWORD was used instead of _LWORD)
- replaced [rep]{in,out}s{bwd} in vm86.c and dpmi.c with calls
to a common set of functions in n_ports.c.
- completed prefix handling for ports stuff, all combinations now
are considered.
- aligned some (lot of) code to the Bitxxx type convention.
97/10/22 ver. 0.67.13.1 unofficial pre-release
From Alberto
- rest of ioport_t fixes.
- typedefs in src/include/types.h now based on <sys/bitypes.h>
- more opcodes 0F fixes in src/emu-i386/cpu.c.
- cleaned a lot of print format errors. (%lx versus %x)
From Hans
- fixed '<>|' keyboard bug. It turned out MSDOS-6.2 was destroying
the CARRY in its INT15 AH=4F hook. The fix was not to rely on
CARRY=1 when called (forcing it to 1) in src/base/async/int.c
- removed confusion '0.49' out of src/tools/peripher/hdinfo.c
97/10/11 ver. 0.67.13 released
From Eric
- some keyboard fixes to solve problems with the sticky shifts.
- corrected some funny typo's ;-)
97/10/10 ver. 0.67.12.2 unofficial pre-release
From Alberto
- enabled 'new' port code, moved new code (from portss.c) to
n_ports.c and integrated code that ist used by the old code
into ports.c. portss.c is no longer used.
The new code can be enabled via ./configure (--enable-new-port).
- Now ioport_t (from types.h) is used all over the code.
However, for compatibility changed to unsigned int.
- PCI code is now fully enabled.
From Hans
- DANG/README update/recompile
97/10/10 ver. 0.67.12.1 unofficial pre-release
From Alberto
- fixes to CDrom driver (undocumented bit 10 in CD status)
look at the comments in src/dosext/drivers/cdrom.c.
- new config variable 'cdrom' added for more than 1 CDrom
From Hans
- (instead of Alberto;-) did update the README/config
to reflect the above config variable 'cdrom'.
97/09/26 ver. 0.67.12 released
From Eric
- new speaker code. Changes against old code:
Xsupport, variable sound duration (limited to 990ms),
turn-off on leavedos.
From Hans
- DANG update/recompile
97/09/23 ver. 0.67.11.2 unofficial pre-release
From Alberto,
- final fixes for CPU detection, SMP now switches off RDTSC timing.
- final AC-flags fixes (make the FoxPro fix obsolete)
From Hans
- disabled FoxPro fix from 0.67.11.1.
- cleared up usage() in config.c.
- max cardtype now in src/include/video.h (MAX_CARDTYPE),
so no need to take care of the constant in config.c ;-)
- DANG recompile
97/09/21 ver. 0.67.11.1 unofficial pre-release
From Alberto
- fix (workaround) for FoxPro
clearing AC flag in dpmi.c (when trapno = 17)
From Hans
- 'cleaned' misleading usage of config.cpu_type and config.realcpu
cpu_type is what we show to DOS, realcpu is the CPU dosemu works on
Hence -3..-6 do _not_ change realcpu and can't be used to disable
the pentium timer. For this config.rdtsc should be used.
- updated src/doc/README/config to reflect the latest changes.
97/09/20 ver. 0.67.11 released
From Michael Karcher
- fixed bug in src/dosext/misc/xms.c allocating unlimited memory.
From Reinhard Karcher
- fixed bug in n_serv_xlat.c concerning numerical ASCII input
over ALT-keypad. A variable sometimes wasn't initialized.
From Eric
- fixed possibe make recursion in Makefile.main, which happens
to occure with some newer make versions. (looks like the order
of making differs between versions).
From Hans
- made Eric happy ;-) 'cd src; make' now works again as expected.
- temporary disabled Alberto's (0.67.10.3) pentium timer until he/we
find the bug which breaks FoxPro (when it uses XMS/EMS memory,
which it does by default) :-(
To re-enable it uncomment TEMP_DISABLED in the top Makefile.
- Updated DANG_CONF such that it now collects all files, which
contain usefull DANG/SIDOC statements. Look at doc/DANG.txt ;-)
97/09/19 ver. 0.67.10.3 unofficial pre-release
From Alberto
final (except for bug fixing) part of timer patches:
- revision of some comments
- speed detection and override: new param config.realcpu taken out of
/proc/cpuinfo, -3, -4 e.t.c. can only downgrade this value.
- CPU speed rounding to multiples of 30 and 33.3 in the range 60 to
300MHz (is it enough? maybe 500...)
- replaced all gettimeofdays in timers.c and pic.c with the new
interface. Some needed gettimeofdays() are left though.
- Deleted CLOCK_TICK_RATE because it were same value as PIT_TICK_RATE.
- new code in cpu.c to reasonably emulate 'MOV to/from CRx' (0f xx xx)
The previous code (do_vm86.c, msdos.h) was incomplete.
- using call to int0x06 instead of 'leavedos' in sigsegv.c making
happy CPU detection programs.
97/09/16 ver. 0.67.10.2 unofficial pre-release
From Alberto
first part of timer patches:
- the timer driver itself and the new cpu/speed configuration:
emu-i386/cputime.c, include/timers.h, base/init/config.c etc.
- replacement of the delay loops with the new interface:
keyboard, serial, sound (all the loops using RELATIVE timing).
- documentation (refers to the final timer package)
- timers and PIC have NOT been changed, they still use gettimeofday.
If this patch doesn't break anything, the round uses the real stuff.
97/09/16 ver. 0.67.10.1 unofficial pre-release
From Uwe
- fixing ./configure VERSION problem with textutils < 1.19
- 'nicer' warning in Top-Makefile ;-)
From Eric, Larry, Alberto (all agree with this ;-)
- disable 'could be dangerous' run_irqs() in base/dev/misc/timers.c
From Alberto
- Makefile.main: 'base/' missing before a 'data.o
- speed up compilation of debugger/dis8086.c by uninlining a function
- fix internaldriver for MouseSystems mouse.
- parser.y: if user says '/dev/mouse', trust him and set the mouse flag
- added pci driver, keyword PCI in /etc/dosemu.conf
- changes to 32-bit port access.
- Matrox driver updates
- WDvga(Paradise) support
- updates to vc.c for Matrox and WDvga
97/09/12 ver. 0.67.10 released
From ramon@juguete.quim.ucm.es
- gnats report misc/58, fixing:
'Dosemu cannot boot DOS from a partition at an origin > 2Gb'
From David Bourgin <dbourgin@wsc.com>
- changes to ./setup-hdimage:
- Use /sbin/fdisk, when /sbin not in the path.
- Offer non-bootable partitions too.
- Move -C option of mdexe to the end of the command to avoid
a shell misunderstanding.
From Hans
- get rid of some '#ifdef __linux__' concerning 'loff_t' in disk.*
- small fix for DANG_c.pl not having the right version after the
configure changes.
97/09/09 ver. 0.67.9.1 unofficial pre-release
From Hans
- reworked the ./configure and Makefiles such that now there are
no Makefile*.in anymore except Makefile.conf.in, which gets
substituted by ./configure and holds all needed configuration
variables for the Makefiles. Makefile.conf gets included only in
the top Makefile and exports all variables to the slave-Makefiles.
- a simple 'make' runs ./default-configure if needed.
( the user can't forget to run ./configure )
- no path substitution any more in the Makefiles, hence you
now can rename the directory (or copy it) and 'make'
can run.
- The version has been moved into the file VERSION, which
is parsed by ./configure and the top-Makefile, hence I need
only to change this one file ... and ./configure* is untouched.
- Some not used checks in ./configure have been disabled,
hence ./configure runs faster.
97/07/25 ver. 0.67.9 released
From Alistair
- fixed Makefile.main not to compile threads when not configured.
- tests for the presence of 'libgus' in ./configure (SBEMU on).
If it's found then 'midid' will be compiled with that support,
otherwise it doesn't.
- update to sound docs.
From Hans
- full docs recompile (DANG also)
- mtools version check in setup-hdimage
- some minor changes to mkbindist
- introduced compiletime-settings.stable for making stable releases
out of 0.67 for 'joe user'. (0.66 is freezed now)
97/07/25 ver. 0.67.8.2 unofficial pre-release
From Michael Karcher & Alistair
- second round sound&dma patches
SB:
reworked asynchronous handler ('run_sb')
added 'run_sb' into DPMI loop
added support for MIDI & 16-bit IRQs
added missing function _call_ to sb_mixer_data_read
added extra SB16 Mixer commands
added SB16 DAC & ADC (stub)
added driver call 'play_buffer' [linux]
updated 'write_silence' to use 'play_buffer'
updated 0x1C DSP handling (for broken software)
added 'sb_set_rate' (some lengths are HI/LO, others LO/HI)
added automatic downgrade to SB-PRO
DMA:
fixed FF clear (now does!)
fixed Hi/Lo Byte swap (result of previous FF bug)
uses '|' instead of '+' where possible (quicker ?)
added 'dma_transfer_size' to alter handler's blocksize
added underflow checking to transfers
97/07/24 ver. 0.67.8.1 unofficial pre-release
From Alistair
- first round sound&dma&timer patches
From Jan van.de.Werken <WERKEN@greefa.nl>
- little bug fix for fossil.c
From Alberto
- small fix for n_X.c to compile without mitshm.
From Hans
- fixed the 'Linux-4.0.0' bug in lt-threads ;-)
- corrected src/doc/README/batch, chapter 13 of README.txt was
garbage.
- made config.X_mitshm = 0 default again. When Steffen fixed
the problems with X-color allocation, we'll re-change it.
97/07/19 ver. 0.67.8 released
From Hans
- lot of work on DANG (hey Alistair, hope you don't mind)
- made the keywords also accept 'SIDOC' instead of 'DANG, because
else I would have to maintain two versions of the threads
package (which I mainly use at office). Yeah, using the DANG
compiler now for my work at office ;-)
- Added some new features to DANG (have a look at chapter 12 and
13 of DANG.txt)
- edited _all_ DANG_*_MODULE entries such that now the contents
_really_ will appear in the 'Infomation' sections of DANG.txt.
(before all those valuable comments were ignored :-()
- new threads version: 0.4
97/07/18 ver. 0.67.7.1 unofficial pre-release
From Steffen
- new (nearly) full implementation of vesa-2.0
- real true color support for DOS-applications (note: not to confuse
with emulation of 8bpp on a truecolor X-server)
- LFB support.
implemented special DPMI 0x0800 function (map physical)
to fake our virtual LFB.
(this need more work, too dangerous, --Hans)
- new dosemu.conf option for X {}:
lfb on/off, pm_interface on/off, defining new VESA modes.
look at doc/README.txt chapter 2.2.8.
- made 'X {mitshm}' default on, but can be switched off via
'X {mitshm off}'.
- gammcorrection now uses _only_ integer, no FPU usage any more.
- integrated old vgaemu_inside.h and vesa.h into vgaemu.h
- fixed a bug in arch/linux/async/signal.c, wrong activation
of resize in text mode.
- updated README/X.sgml and README/config to reflect all recent
X changes.
From Hans
- fixed Makefiles for odd behave on as86 generated objects:
bios.s, vesabios.o (tmp files dependencies went berserk)
- fixed README/Makefile so sgml2tex won't screw up your screen;-)
- changed docs to reflect the fact, that we now need libc-5.4.7
at minimum (due to mremap)
97/07/05 ver. 0.67.7 released
From Alberto
- fix for n_serv_xlat.c, grey +/- on num keypad.
- fix for mhpdbgc.c, adjust segment limit value following the
granularity when disassembling.
From Marty
- some fixes to ./configure so it doesn't generate '-I' and
and barf the compiles.
From Hans
- kludge in src/dosext/misc/emm.c to work around kernel bug
(/proc/self/mem mapping again)
97/07/03 ver. 0.67.6.1 unofficial pre-release
From Alistair
- big docs rebuild. Nearly all README.s are now 'sgml' and the
source is in ./src/dos/README. In the ./doc directory there
these appear (compiled) as README.txt and README-tech.txt.
From Hans
- udapted the remaining docs, Makfiles and ./configure
to reflecting Alistairs changes.
97/06/29 ver. 0.67.6 released
From Hans
- fixes to EMM code (these bugs were long time in :-( )
The bug was introduced as HJ Lu recommended to use valloc() instead
of malloc() because of the page alignment of the malloc request.
So far so good, but we forgot that we do a realloc() and even
a free() on these allocations, ... and this _not_ complient with
the GNU specs of valloc(). In the old libc though it nevertheless
seemed to work, but not together with newer libc: The 0.66.6
binary distribution _is_ compiled against libc-5.4.23 and with
this the old EMM-test program that I once got from Jim is
crashing.
In addition I also saw, that we did no proper handling for cases
when the new size for realloc() was ZERO. The realloc() returned
pointer isn't pagealigned (I even guess that realloc() should
not given a new zero size).
As a fix we now are using mmapp() (/dev/null) and mremap() also
for EMM. Though I could not test it under all conditions it
atleast fixed the bug for me. ... and it should be faster anyway.
97/06/28 ver. 0.67.5.1 unofficial pre-release
From Michael an Reinhard Karcher <kar@dpk.berlin.fido.de>
- fix for extended key-code (E0) in new and old kbd code.
- fix for mfs.c: a DOS app that wants to read a newly created file
without reopen failed. Fix was to set the openflags in the SFT
to read/write instead of writeonly. ( same open mode mode as for
the linux file).
From Alberto
- fixed typo in bios.S (wrong SIM_INT(15) instead of SIM_INT(0x15))
From Hans
- some fixes to lt-threads
- kernel version dependent include of <linux/sched.h>
- fixed misaligned force_stack_expand, when using -malign-double
( ... guess who jumped into this trap and found out what was
wrong? Alberto! ;-)
- changed SIG_ACQUIRE to SIGUSR2 (src/include/emu.h) because
the SIGUSR1 collides with SIG_SUSPEND_WAKEUP in lt-threads.
- made new kbd the default again (in-out-in ... what comes next?;-)
- in src/dosext/dpmi/memory.c DPMIrealloc() use mremap() instead of
mmap()/memmove()/munmap(). Should be faster.
97/06/21 ver. 0.67.5 released
From Hans
- introducing threading into DOSEMU using Linux-clone :-)
Currently its only used for fixing the floppy ioctl that
will return with -EINTR (we normally switch off SIGALRM).
The main reason I put that stuff in is to show the team _how_ it
can be used within dosemu. So, Alistair its your turn now to
make the DMA stuff using it. And Steffen also may look how
we can make the X-update a thread. And of course Alberto now
has a base for his new PIC stuff.
Conclusion: Currently it should be considered as an example and
if we later come to the decision, thats not enhancing DOSEMU
enough, we may back out it.
BTW: its only activated by --enable-threads.
- Made the old kbd again the default, because it breaks some of
the older DOS apps (extended code E0 again, forgot that we didn't
fix that yet, will come next).
97/06/19 ver. 0.67.4.3 unofficial pre-release
From Alberto
- Support for Matrox-Millenium ( video { ... chipset matrox } )
From Hans
- setting new kbd to default for default-configure
97/06/19 ver. 0.67.4.2 unofficial pre-release
From Steffen
- new X-update code
- gamma correction ( X {gamma 100 } )
- virtual memsize for vgaemu configurable ( X {vgaemu_memsize 1024} )
- updating DANG for X and vgaemu
From (multiple sources on linux-msdos ;-)
- fix typo in src/include/linux/vm86.h (missing #endif)
97/06/15 ver. 0.67.4.1 unofficial pre-release
From Steffen
- fix for mitshm autodetect (src/env/video/X.c, .../n_X.c)
From Michael Guennewig <guenne00@marvin.informatik.uni-dortmund.de>
- fixing invalid disk-geometry-information for drives tracks > 256
- fixing invalid hdimage's for images with more than 65535 sectors or
(>=32MB) in mkfatimage16.c
From Michael Harnois <mharnois@sbt.net>
- some more work to make DOSEMU compile under glibc
From Eric
- fix for the (infamous) have-to-type-ESC-twice bug in the new kbd,
as it turned out, we forgot switch stdin into O_NONBLOCK mode.
(many kudos to Eric;-)
From Hans
- make target 'bindist', so I'll never forget the right params for
mkbindist (especially /usr/doc/dosemu ;-)
- further enhancements to mkfatimage16.c (in addition to Michael's)
It turned out, that the hdimage was too inflexible for bigger
sizes and made a lot of trouble.
- new option -k: give size of hdimage in Kbytes. This adapts
the geometrie automatically to what is needed for the size.
( heads, sectors_per_track are adjusted )
- new option -f: give the filename of the hdimage instead of
writing all to stdout.
- new option -p: when option -f also is given, pad the hdimage
with zero up to the exact filesize. This is required for
mtools-3.6 and when mounting the hdimage via /dev/lo.
The actual disk usage will be lower, because padding is realized
by makeing a big hole at the end.
- updated the man page
- fix for IPX (gnats bug report files/46 from kees@schoen.nl)
setsockopt(sock, SOL_SOCKET, IPX_TYPE, ...) wrongly using
SOL_SOCKET instead of SOL_IPX in src/dosext/net/net/ipx.c
- fixed mkdexe so it can cope with DOSAPP not beeing an absolute path
- fixed INT15-AH=4F not spawning a hooked TSR (src/base/bios/bios.S,
src/include/macros86.h), and backing out the incomplete fix of 0.67.4.
97/05/31 ver. 0.67.4 released
From Alberto
- disable ctrl-alt-del. (as its broken, better disable it)
- deleted (unused) dos_ctrlc()
From Ulrich Weigand <uweigand@easynet.de>
- Several bugfixes to new keyboard code
- Raw client: ALT+Letter - Translation on non-US keyboards
- X client: didn't set AltGr flag in BIOS shiftstate (non-US)
- All clients: cursor block keys should yield ascii code 0xE0
- Hooking INT 15 AH=4F did not work
97/05/31 ver. 0.67.3.4 unofficial pre-release
( taking over stuff from final 0.66.5 )
From Hans
- untill we can detect the availability of static libs, we
re-disable static linkage. ('linkstatic off')
From Michael an Reinhard Karcher <kar@dpk.berlin.fido.de>
- fix for wrongly placed leave_priv_setting() in ipxglt.c
From Christian Kumpf <kumpf@igd.fhg.de>
- fixed bug in dexe/mkdexe not proper handling option -d
From Hans
- changed mkdexe to accept *.tgz
- LDFLAGS now '-Wl,-warn-common' to see were we have name clashes
- repaired the linker warnings resulting from -warn-common by
- properly useing EXTERN in vga.h, serial.h
- removed multiple definitions of 'serial_t com[MAX_SER];'
- removed overriding 'struct debug_flags d' definition in config.c
- fixed IPX not closing sockets on leavedos()
( gnats report misc/39 from Kees <kees@schoen.nl> )
- adapted /proc/meminfo (dpmi/meminfo.c) scanning to Linux-2.1.41
97/05/24 ver. 0.67.3.3 unofficial pre-release
From Alberto
- timers.c: reorganized pit_latch
- simplified access to pit[latch] with a pointer
- changed mode test from a switch{} to an if..else
- merged code for modes 2 and 3
- implemented output pin (status bit 7). A request for status
calls pit_latch with mode flag 0x40; the output pin status is
recalculated and the mode flag changed to 0x80. The following
read will get the complete status byte, then the mode flag will
be reset from inside pit_inp.
- this patch also corrects a bug, ndiags now runs fine.
From Hans
- made 'linkstatic' and 'tmonoton' default
(static binaries have better performance and less timer problems)
97/05/23 ver. 0.67.3.2 unofficial pre-release
From Alberto
- timers.c, pit.c: use NEVER instead of -1 in monoton timing
- timers.c: removed duplicate calc of 'ticks'
- timers.c (pit_inp): avoid changing read_state for the special latch
status command; otherwise next read will get MSB instead of LSB.
- cdrom.c: avoid binary sector dumps into log file, use ASCII
reworked debug messages a bit
- patch to serial code to activate transmit FIFO
From Hans
- fixed bug in src/dosext/drivers/cdrom.c (ebx twice set),
that Alberto pointed out (aaah, these eagle eyes ;-)
97/05/23 ver. 0.67.3.1 unofficial pre-release
From Gloriano Frisoni <gfrisoni@hi-net.it>
- patch to make winsocket stuff work under win31
Using trumpet winsock, netscape, eudora, mirc, free agent e.t.c
now run under dosemu. For more read doc/README.Winnet
97/05/19 ver. 0.67.3 released
From Alberto
- some more comments on DIRECT_DPMI_CONTEXT_SWITCH
- removed bogus RCS printout in src/dosext/misc/xms.c
- some remaining fixes on USE_INT_QUEUE
- some fixes in DPMI
- low 12 bits in limit > 1M was not checked
- forgotten 'volatile' in do_LAR
- logging of ingnored 0x0506-0x0508,0x0700,0x0702,0x0703
DPMI-functions
- asm code for copy_context under DIRECT_DPMI_CONTEXT_SWITCH
- DPMI page fault should do leavedos()
- dead loop detection for 'cli' in dpmi_fault()
From Steffen
- (some) fix to cut&paste in src/env/video/n_X.c
From Eric
- src/base/keyboard/n_keyb_X.c: Added some missing key
definitions. Needed to get the keypad keys working in X when
numlock is off.
97/05/19 ver. 0.67.2.1 unofficial pre-release
( taking over stuff from pre-0.66.5 )
From Alberto
- fixed bug for DIRECT_DPMI_CONTEXT_SWITCH, copy_context was
forgotten at some places. (src/dosext/dpmi/dpmi.c)
From Ingo Brueckl <ib@wupperonline.de>
- bugfix for 'make install' not installing man/*dos*.1
From Michael an Reinhard Karcher <kar@dpk.berlin.fido.de>
- fixed bug for DPMI src/base/async/int.c, INT2f AX=1686 not
correctly reporting CPU status.
From Hans
- fixes and enhancement for bootable hdimage generation
- dexe/extract-dos can detect DOS types.
- setup-hdimage makes use of DOS type detection. The following
DOSes now can be made bootable for DOSEMU via setup-hdimage:
PCDOS, NWDOS, MSDOS, WIN95, FreeDos
- fixed extract-dos to take windows/command.com when WIN95
- new option for mkdexe: '-C comcom', here you can define
an other command.com (e.g.4dos).
- introduced 'write permissions' in DEXE files so that the
DOS-app can (isolated) write to files within the DEXE,
even if the file permissions don't allow that. This is
a workaround for a general problem with DEXEs, look at
./doc/README.dexe for more details.
For this, dexeconfig has a new option -p {w|W}
- new config option for DEXE: xdosonly. When set it terminates
dosemu, when no X available, else it forces xdos.
- bug fix for 'forcexdos'
- force a BootC unconditionally for DEXE
- increased number of allowed disks to 16 (there was report of
a user who had 11 disks ;-)
- fixed a bug in the 'class' stuff (could not access within scope
of /etc/dosemu.conf)
- fixed parser not aborting, when parserror in -I or DEXE.
- added (implicit) setting of configuration variable h_<ownhost>
This can be checked in /etc/dosemu.conf to restrict access for
given diskless machines, that mount a dosemu containing FS.
- added two new dosemu.conf statements:
- abort <message> which prints message to stderr and leaves dos.
- warn <message> which just prints a message into the logfiles
using c_printf.
- added the tiny 'ezedit' editor to src/commands/precompiled
- Updating the docs _a lot_ ;-)
- added doc/README.lredir
- added man/mkfatimage16
- reworked Quickstart to reflect setup-hdimage, moved description
of the old method to doc/README.oldboot
- removed etc/BOGUS-Notes (was quite bogus;-)
- added a src/tools/QuickStart.bindist, which will be used for
making the binary distribution (see below)
- e.t.c
- reworked ./etc/config.dist again and added a bit more comments ;-)
- we now have the following examples:
./etc/config.dist
./etc/dosemu.users.easy
./etc/dosemu.users.secure
- config.dist is generic, i.e. it checks for config variables
set in dosemu.user such as
guest
secure
vbootfloppy
- fixed a bug (report: Hans-Joachim Baader <hans@grumbeer.inka.de>)
in src/base/init/parser.y, parsing dosemu.users crashed on empty
lines.
- Finally assembled a binary distribution. Put all stuff needed for
that in to src/tools. In principal you just have to execute
./src/tools/mkbindist -m -s -d usr/doc
and after this will have a complete tree in /tmp/dosemu-<version>
that only needs to be tar'ed.
- changed Makefile.main.in such that you now can specify a directory
into which the installation will be done (needed that for
mkbindist). Example: 'make "INSTROOT=/tmp/dosemu-bin" install'
- changed default-configure so that it accepts further ./configure
options such as './default-configure --host=i386-unknown-linux'
97/05/10 ver. 0.67.2 released
From Eric
- Fixed a bug where shift number pad key only worked if _both_ left
and right shifts were pressed (src/base/keyboard/n_serv_xlat.c)
97/05/10 ver. 0.67.1.3 unofficial pre-release
From Alberto
- isolate and undefine unused code: hlt and int_queue
- missing flush_log() in src/emu.c
97/05/05 ver. 0.67.1.2 unofficial pre-release
From Alberto
- fix for inconsistent (EMU_)MAX_IO_DEVICES
- Microsoft mouse protocol fixes. It was erroneously merged with
the MouseMan 3-4 byte variable length protocol, while Microsoft
has a 3-byte fixed protocol (A.Rubini confirmed).
- some comments & small fixes (continued)
97/05/05 ver. 0.67.1.1 unofficial pre-release
From Alberto
- fixes for typos
- some comments added
- cleaned extra dependencies in makefile, removed pic include dir
- very small bug fixes:
- exception 16 feed to IRQ13, src/arch/linux/async/sigsegv.c
- usleep for hogthreshold changed to INT28_IDLE_USECS
- added INT10 AH=CC (for NC 5.0) in src/base/bios/int10.c
-From Eric
fixed trashing AL in src/base/bios/bios.S (INT09_dummy_start)
97/05/03 ver. 0.67.1 released
From Steffen
- cool new X-stuff:
- X mode support (doom now displays right)
- first simple 4plane mode (very slow)
- 24/32 bpp possible
- linear/bilinear interpolation for bpp >15
- resizing of graphics windows now possible
- DAC-updates also in textmode possible
- a lot of new config options (see ./doc/README.config)
From Hans
- made the new X-code a configure option (--enable-new-X),
because Steffen apparently optimized it for 'games' ;-)
(which indeed run faster), but the new stuff (atleast for win31)
has performance problems with 'normal' graphics applications.
... still searching what's causing this trouble :-(
- some small fixes and 'compatibility adjusts' to Steffens patch ;-)
(the new X-code should now work atleast as stable as the old one)
- INT10 now handles AX=1015 and AX=1017 (these missing ones broke
Steffens new DAC-update in X-textmode)
97/05/03 ver. 0.67.0.3 unofficial pre-release
From Doug Dougherty, Chicago, IL
- cmdline DOS tool to feed in info from the commandline
into the DOS-environement.
(see src/command/README)
From Eric
- Enabled the speaker/timer code of the NEW_KBD_CODE in
src/emu-i386/ports.c (inb) (outb)
- Unconditionally remove the original copy of dos before relinking.
in src/arch/linux/Makefile.main.in (dossubdirs)
From Hans ( ... and some ideas from Alistair ;-)
- new cool configuration stuff. Dosemu.conf can now parse
conditionally and include files.
- In dosemu.users variables can be set, which you later can test in
dosemu.conf. For more see ./doc/README.config.
- can define a variable also on the commandline (option -u). You
then may check it in dosemu.conf and behave differently.
- removed all comments in etc/config.dist and moved the information
into ./doc/README.config.
97/05/02 ver. 0.67.0.2 unofficial pre-release
From Alistair
- fixes and enhancements to gnats/send-pr
From Bart
- fix for a multicasting bug in dosnet.c
- warning in libpacket.c.multi, when insufficient privilege
From Karl Kiniger <ki@boss.kretz.co.at>
- some more enter_priv* brackets within src/dosext/net/net/ipx.c
and src/dosext/net/net/ipxglt.c
From Uwe
- some 'secure on' warning, and a errorcode return fix (DPMI)
- (needed tools for developing win31 mouse.drv) some doshelper changes:
- overall symbolic names now
- new DOS_HELPER_DOSEMU_CHECK checks wether running under X
- new DOS_HELPER_PRINT_STRING lets DOSapp print a string into
our logfile.
From Hans
- first round to make a binary distribution (static).
A complete tree gets generated via ./src/tools/mkbindist.
We choose statically linked binaries, because of the many
different libc versions floating around. Not all of them are
down/upward compatible and some even aren't useable for dosemu.
( ... and surpise, the static binary runs a bit faster )
- new ./configure option: --enable-linkstatic
97/04/30 ver. 0.67.0.1 unofficial pre-release
From Hans
- further enhancements to DEXE stuff
- hdimages containing DEXE get a magic "\x0eDEXE"
- configuration is now (hidden from file access) put into
cylinder 0 (behind the MBR)
- dosemu now handles DEXE loading itself ( option -L)
a 'dosexec' sym-linked dos sets -L option (like xdos does -X)
- a DEXEs hdimage is always drive C, if not explicitle allowed
via 'dexe { allowdisk }', no other disk will be available
even if defined in /etc/dosemu.conf
- Option -F is forbidden for DEXE, so the security settings
in /etc/dosemu.conf can't be disabled.
- 'secure on' can be forced in /etc/dosemu.conf for DEXE,
even if 'off' otherwise.
- 'dexe { forcexdos }' forces xdos, when DEXE is run on X.
This can be included in DEXE-configurations, when the
application requires graphics and would bomb on Slang otherwise.
- New tool: src/tools/periph/dexeconfig, which inserts/extracts
the configuration file from a DEXE
- updated dexe/mkdexe to reflect the changes
97/04/20 ver. 0.67.0 released
From Hans
- Opening the new development phase
- no further changes except the version number increase
97/04/20 ver. 0.66.3 released
From Hans
- new hdimage generation stuff, need mtools-3.6:
./setup-hdimage makes a bootable hdimage from the DOS the user
has already installed under native DOS
I tried this with the following OSes:
FreeDos, MSDOS-6.2, WINDOWS'95.
Other DOSes should also work, when the names of the
system files are given on prompt.
(Next step will be to automatically transform the
config.sys and autoexec.bat ;-)
./dexe/mkdexe generates a direct executable DOS-app (hdimage
containing just one app). The extension is *.dexe
./dexe/dosexec executes a *.dexe
./dexe/do_mtools symplifies the access to a hdimage
./dexe/extract-dos takes the bootsector and the system files
out of a dos partition or a hdimage
All this stuff is described in ./doc/README.dexe and the
Quickstart.
97/04/17 ver. 0.66.2.2 unofficial pre-release
From Alberto
- fix for INT8 rescheduled to fast in DPMI
From Hans
- new dosdebug commands: 'log' and 'dump'
With 'log' you can change/display the debug-logging flags such as
'log +M-k' on the fly within dosdebug.
With 'dump' you may write any piece of allowed dosemu mem to
a file, such as 'dump cs:100 1234 /dosc/xxx.com'
(wishes from Grant R. Guenther, the great parallel ZIP hacker ;-)
97/04/16 ver. 0.66.2.1 unofficial pre-release
From Hans
- 'keystroke' feature now also available for new-kbd
From Alberto
- fix for src/base/misc/priv.c (forgotten return)
97/04/12 ver. 0.66.2 released
From Alberto
- minimal patch needed to fix the mode-0 timer bug for
MONOTON_MICRO_TIMING
From Hans
- added direct bootable 'tiny' FreeDos etc/hdimage.test.
This can be started via ./first-test. For more have a look
at ./Quickstart and ./contrib/dosC/readme.dosemu.
- Added option -b to src/tools/periph/mkfatimage16.c in order
to allow inserting the FreeDos bootsector.
- fixed a remaining security hole:
'secure' was off by default and when a user uses -F it
was left 'off' :-(
- udapted docs.
97/04/09 ver. 0.66.1.5 unofficial pre-release
From Hans
- added 'keystroke' feature, you may now feed DOSEMU with key
strokes, that are automagically typed in as if from the keyboard.
dos -D-a -I 'keystroke "\F8;\p200;6"
Will press F8, then wait 2 seconds, then type 6.
For more details see etc/config.dist and doc//README.batch
From Marty
- use gawk instead of awk in setup stuff, else 'next' isn't supported.
( gnats report misc/13 )
97/04/04 ver. 0.66.1.4 unofficial pre-release
From Hans
- complete rework of the privs stuff, now we _really_ can
run as user, and this is now the default!
(note: run as user means that dosemu mostly has user privs)
For more details see ./doc/README.runasuser and
src/base/misc/README.privs
- updated the docs concernig 'run as user' and new privs stuff
- Fixed some warnings in lexer.l and parser.y
97/04/04 ver. 0.66.1.3 unofficial pre-release
From Alberto
- (hopefully) final fix for >2G over mfs.
From Marty
- search for slang.h in /usr/local/include
From Hans
- fixed gnats report memory/10
(rep. by David E. Kingsley <camel@hysteria.crisis.net>)
set XMS_DRIVER_VERSION to 0x0301
97/04/04 ver. 0.66.1.2 unofficial pre-release
From Uwe
- cleaned up keyb_layout presetting in src/base/init/parser.y
- defaulting to KEYB_US now, when under X and _no_ X_keycode
From Marky (hi;-)
- changed his non-working mail addresses
97/04/04 ver. 0.66.1.1 unofficial pre-release
From Hans
- added a DOSEMU-special MBR to hdimage.
This is the world premiere of MBR running in 32-bit protected mode;-)
( no need to use 'fdisk /MBR' any more )
97/03/28 ver. 0.66.1 released
From Hans
- added a new commandline option: -I
Wow, is that powerfull!! ;-) It makes a lot of people happy
that complained about inflexible configuration (for a more
detailed description read man/dos.1). It makes the following
(and much more) possible:
dos ... -I 'video { mda }'
dos ... -I "`cat my_other_dosemu.conf`"
dos ... -I "`my_special_config_script.sh`"
hmm... waiting for people reporting it has security issues ;-)
(but you before report them: -I runs under the same secure level
as .dosrc)
- fixed a security hole: user could disable 'secure on' :-(
- updated the docs
From Alistair
- fixed gnats report misc/9 (rep. by mharris@blackwidow.saultc.on.ca)
(error while running setup-dosemu)
97/03/27 ver. 0.66.0.4 unofficial pre-release
From Alistair
- made sound a disable option in /etc/dosemu.conf ('sound_emu off')
(else it may clobber an IRQ, if configured but not used)
From Philip.Blundell@pobox.com
- some compile fixes for glibc
97/03/27 ver. 0.66.0.3 unofficial pre-release
From Bart Hartgers <barth@stack.nl>
- Made dosnet.c running under 2.0.x kernel (was broken)
From Hans
- again fixes to ./configure & slang.h :(
97/03/26 ver. 0.66.0.2 unofficial pre-release
From Soos Peter <sp@osb.hu>
- added support for hungarian keyboard
From Hans
- fixed gnats report misc/8 (rep. by Ambrose Li)
In configure, if 'no X' the XINCLUDES was preset with a comment
(what joker invented that?) such as "# no special path needed".
This made the following -I...slang.h invisible in INCDIR.
97/03/26 ver. 0.66.0.1 unofficial pre-release
From Hans Zoebelein <zocki@goldfish.cube.net>
- fix for error printout, when reading a write protected floppy.
From Steffen
- fix typo in priv_drop()
From Andries.Brouwer@cwi.nl
- fix for ./configure to detect slang.h correctly
- making rm -f `find ...` not complaining, when nothing found
- small 'warning avoid' in src/emu-i386/portss.c
From Hans
- fix for gnats report misc/4
When no XINCLUDES is set, it left a stale '-I'
- fix wrong gcc check in ./configure (reported by Jeff Epler)
checking now for $GCC=yes
97/03/21 ver. 0.66.0 released
From Hans
- fix to ./configure, -without-x gots messed up in 0.65.99.23
- Docs update
--------
97/03/20 ver. 0.65.99.26 unofficial pre-release
From Alistair
- DANG cleanup, added DANG-compiler
- recompiled DANG.sgml --> DANG.txt (-- Hans)
97/03/20 ver. 0.65.99.25 unofficial pre-release
From Alistair & Rutger
- For 0.66 we have updated many areas and re-organised others to
make it easier to maintain.
Many thanks to David Brauman <crisk@netvision.net.il> for finding so
many bugs
- new sound stuff. 'midid' reworked,
goes into directory src/arch/linux/dosext/sound/midid
Compile it with 'make midid'
- Added in support for the handler to reject the completion.
97/03/19 ver. 0.65.99.24 unofficial pre-release
From Alberto
- fix for 'partitions >500M' part 2 (wrong sector rounding)
- Fixes and correcter calculations for config.freq, which can
be set in dosemu.conf to adjust what dosemu takes for a second.
(units in DOS timer clocks, 18 make one second). TIMER_DIVISOR
is the constant (6) to make one Unix-tick (at 100Hz) out of the
DOS-ticker.
97/03/17 ver. 0.65.99.23 unofficial pre-release
From Hans
- new targets in main Makfile: docs, docsinstall, docsclean
From Pavel Kankovsky <kan@dcit.cz>
- fixes for X-detection
From Steffen (realized by Hans;)
- emulate a down counting 'diskette motor timeout'
old games seem to rely on that.
From Alberto:
- small mouse fix (320x200)
- discovered that int2f,ax=110c fails for partitions >500M, because
it can't set cluster size>8. Here is my fix, which should also avoid
overflows on >2G disks.
97/03/16 ver. 0.65.99.22 unofficial pre-release
From Hans
- docs move around:
all doc source go into src/doc/DANG, src/doc/HOWTO
made Makfiles to generate 'nice' docs.
You have to 'cd src/doc' then do 'make'
To install the *.txt into ./doc type 'make install'
NOTE: the patch to this release is a patch-*.tgz, what means,
you have have to un-tar it into the ./dosmemu directory and then
type 'sh tmp/do_patch'.
This will _first_ move the files, and then apply the patch.
97/03/15 ver. 0.65.99.21 unofficial pre-release
From Uwe
- take version date out of ./Changelog
From Alberto
- 'make pristine' removes 'gen.log'
From Alstair and Rutger
- new sound stuff
97/03/14 ver. 0.65.99.20 unofficial pre-release
=== CLEANUP-Release ===
From Hans
- first round 'JES --> Hans' doc changes
- new README.batch
- preparation for 0.66 (version changes in docs)
- check DPR a bit, but the rest is to Alistair ;-)
- removed all RCS headers (not using any more)
- well, and found that compiling without VM86PLUS was broken,
fixed it in parser.y
From Alberto
- lots of typos fixed (collected cleanups)
- some more debug prints in pic.c
97/03/14 ver. 0.65.99.19 unofficial pre-release
From Alberto
- 1st arg of log_printf becomes 'int'
- (some) fix for the inte6 problem (80x50)
- missing HLT_OFF in DPMI 'free realmode call back address' (0x0304)
- Without this CDs can't be changed:
force media_changed, when ejecting (src/dosext/drivers/cdrom.c),
_realy_ do CDROMRESET in cdrom_reset()
97/03/12 ver. 0.65.99.18 unofficial pre-release
From Alistair
- Further gnats enhancements
From Hans
- Because 'midi' always was created in the default directory (which
also is the name of the 'midi' executable ;-) ), I
renamed the 'midi' file to /var/run/dosemu-midi, removed the
'create' on open and checked for 'is open' when writeing to it.
Updated README.sound accordingly.
From Uwe
- second try (;-) to make compiling on NFS mounted directory
possible
97/03/11 ver. 0.65.99.17 unofficial pre-release
From Alberto
- deleted 'rm modules' in src/arch/linux/Makefile.main.in
(obsolete)
- fixed 'regs' parsing in dosdebugger.
- banner now prints correct time
- fixed relocation of INT42 (must be a copy of INT10)
- call setmode() of video driver only if pointer valid (int10.c)
- disable -Y -Z, when X not configured.
- some 'close mouse' fixes
- temp fix to dpmi.c int31 just to avoid hard reboots
- fix for auto-mitshm-disable stuff in X.c
- corrected wrong (port,value) parameters in s3.c
- do not debug while VC is not active (in src/env/video/vc.c)
- removed some stale files
- avoid pktdrvr.h to be multiple included
From Hans
- removed stale references to emusys.h
- elaborated the description of the 'ttylocks {}' option in
etc/config.dist.
97/03/08 ver. 0.65.99.16 unofficial pre-release
From Steffen
- Added code to turn off MIT-SHM for network connections.
From Uwe
- small additional debug out for DPMI
97/03/07 ver. 0.65.99.15 unofficial pre-release
From Alberto
- cleanup for CFLAGS in configure(.in)
- corrections in etc/config.dist
- missing exception 16 handling in src/arch/linux/async/sigsegv.c
- various fixes in src/base/async/int.c, temp fix for Ctrl-C bug
in Djgpp (int 23 revectored and caputered).
- changed 0/1 to REVECT/NO_REVECT
- cleanup of usage message in src/base/init/config.c
and fix wrong cardtype number
- fixes to buffered debug out (log_printf).
- mouse fix (serial/int14.c)
- fixed 'hlt' optimization in run_dpmi()
- cleaned up 'case 1..2:' to 'case 1: case 2:' in various places
- in_dos_21 warnings fixed
- some mfs fixes.
From Thomas Winder <thomas.winder@sea.ericsson.se>
- struct sigaction fixes for glibc-2 in src/arch/linux/async/signal.c
From Hans
- fix for default-configure
- made 'irqpassing' a synonym for 'sillyint', because users
apparently get confused. Also adapted config.dist
97/03/07 ver. 0.65.99.14 unofficial pre-release
From Alberto
- Fix for the mouse garrot helper: using INT28_IDLE_USECS
- fix for non compileing new kbd (unintentionally reverse patch
at state of 0.65.99.4 in conjunction with priv_* cleanup)
- remove src/dosext/dpmi/kernel.diffs (obsolete)
- remove src/Configure (broken, obsoleted by Alistairs stuff)
- added rebuild script
From Hans
- added ./set-permissions, which sets all exec-bits for all scripts
(so when upgrading per patch, this scripts gets it right)
- added ./default-configure, this script should be used instead
of ./configure, because it interpretes the compiletime-settings
which can be changed by Alistairs setup-dosemu stuff.
- changed setup/compiletime_setup.sh so it uses ./default-configure
to interprete the various menu variables (have now only one place
to take care of it;-)
97/03/07 ver. 0.65.99.13 unofficial pre-release
From Alistair
- fixes for setup & gnats
(Yeah, now it works fine; and Alistair has time for his sound ;-)
From Hans
- send-pr gets dosemu-version out of ./configure.in
- stole lxdialog, named it 'demudialog' and adapted setup gnats
to use that. (normal dialog shows a strange handling, when used
for Alistairs stuff)
I hope Alistair will enhance 'demudialog' to fit our needs
again better ;-)
97/02/29 ver. 0.65.99.12 unofficial pre-release
From Alistair
- setup stuff from 0.65
- gnats stuff from 0.65
From Uwe
- New dosemu-HOWTO.*, EMUfailure.txt
(deleted EMUsuccess.txt)
97/02/29 ver. 0.65.99.11 unofficial pre-release
From Alberto
- Fixes for 'unix.com'
- little PIC fix: maybe it is better not to blindly decrement timer
values if they are set to NEVER.
97/02/28 ver. 0.65.99.10 unofficial pre-release
From Alberto
- Use a big buffer for debug messages, this doesn't slow down
dosemu, when debugging.
From Hans
- Made the above 'big buffer' an item in /etc/dosemu.conf:
'logbufsize <SIZE>', default is _no_ buffering.
- Fixed ./configure.in, so it now doesn't use -fomit-frame-pointer
when configured for debugging.
97/02/27 ver. 0.65.99.9 unofficial pre-release
From Adrian Sun <asun@zoology.washington.edu>
- Make dosemu compile under glibc 2.0.1
- Small IPX bug fix: have the initfile.c functions return on a failed
open. Workaround for missing IPX_TYPE = 1 in glibc headers.
- convert a missed SignalHander -> __sighandler_t
97/02/27 ver. 0.65.99.8 unofficial pre-release
From Uwe:
- base/misc/disks.c, include/disks.h, tools/periph/hdinfo.c
Use llseek on Linux to allow access on Files greater 2.1 GBytes
- made 'make install' on NFS mounted FS possible
(compiling as user, installing as root)
97/02/27 ver. 0.65.99.7 unofficial pre-release
From Alberto
- Fix for debugger, recent 'nm' has 16 hexdigits for addesses
From Hans
- made the path of dosemu.map defineable in /etc/dosemu.conf:
'dosemumap <STRING>'
97/02/25 ver. 0.65.99.6 unofficial pre-release
From Alberto & Hans
- workaround for bug in kernel vm86plus that Alberto found
(fixing kernel patch did reach Linus already;-)
We will remove the workaround when time goes by
- added runtime kernel version check ( currently only used
by the above workaround)
97/02/23 ver. 0.65.99.5 unofficial pre-release
From Alistair & Rutger
- Updated SB DSP code and fixed some bugs in detection - Alistair
- Re-hacked ports.c so the DMA code works again. GRRRRR - Alistair
- Added first pass at MPU-401 code - Rutger
97/02/22 ver. 0.65.99.4 unofficial pre-release
From Eric Biederman <ebiederm@cse.unl.edu>
- priv_on/off/default cleanup
97/02/21 ver. 0.65.99.3 unofficial pre-release
From Alberto
- Support for CIRRUS chipsets (some code comon with S3: v_8514)
From Hans
- fixed typos (mine) for ATI: in Makefile.in and lexer.l
97/02/20 ver. 0.65.99.2 unofficial pre-release
From Josef Pavlik <jetset@ibm.net>
- Added ATI support (untested --Hans)
This patch is for VGA ATI Mach 64 (probably will work with Mach8
and Mach32 too). Set "video { vga console graphics chipset ati }"
in dosemu.conf. Resolves problem with ioports >0x3ff and saves
registers which contains clock speed. Without this patch dosemu
changes clock speed of VGA.
97/02/20 ver. 0.65.99.1 unofficial pre-release
From Alberto
- Fix PIC bug (replacment for old ALBERTO_KLUDGE)
From Hans
- fixed a small typo (yes, it was mine),
( did use close(f) instead of fclose(f) :(( )
97/02/17 ver. 0.65.99 unofficial pre-release,
first round targeting 0.66, 0.67
From Hans
- Collected the keyboard patches from 0.63.1.56 .. 0.63.1.98
( from Rainer Zimmermann <zimmerm@mathematik.uni-marburg.de> )
and adapted them on top of 0.64.4.
Fixed some bugs (which very likely also bothered 0.65.0),
added the recent Slang and codetable changes, restored the
original filenames for the old files (patch now readable),
and got it finaly working.
The old keyboard stuff remains active per default.
The new stuff (--enable-new-kbd) also runs fine (atleast on the 3
machines I have tested), except that ESC on Slangkeyboard has
to be typed twiced (result of 'dead keys for accents' ?).
--------------
97/02/04 ver. 0.64.4 released
From Hans
- Adapted Steffen Winterfeld's (graphics) true color patch from
0.63.1.98 (not his newest from .65) to 0.64.x.
The code now looks a bit kludgy, because it was written for .98,
but works great. Scaling (x2) is set for 320x200, so you may miss
the 'mini window' ;-) also win31 is happy.
- Added optimized XModeRemap functions for 15/16 bit true color.
- Upgraded to Slang0.99-38 and fix the odd situation when the
system supplied libslang was included, but the headerfiles were
taken from dosemu (showing the wrong slang version).
Now it uses _completely_ the dosemu or the system supplied files.
There is a new ./configure option to force use of the dosemu
supplied slanglib: --enable-force-slang
BTW: slang.h is now in src/include/slang/*
- Removed and disabled use of a.out (deleted slang-a.out-lib)
for arch-linux.
- fixed compile warning keyboard-client.c. and changed some
'error()' to 'v_printf()' in int10.c
- made the 'unexpected CPU exception 0x06' error show the correct
registers.
- Fixed the wrong prefix handling in dpmi.c (dpmi_fault),
Thanks to Alberto who pointed this out.
- Added 'secure' option in /etc/dosemu.conf, which disables
generation of 'whole userspace' descriptors. A DPMI client
otherwise can modify (a suid root running) dosemu, such that it
may execute arbitrary commands.
This option also disables the use of the 'unix' and 'system'
commands (dos-helper functions 0x50...0x53).
From John Davis
- Slang needs -lm with newer libc.
- If the function and arrow key definitions are in the
terminfo library, it will use those
- Lower the TIMEOUT value for the ESC character from 3/4
of a second to 1/4 of a seconds.
From Andreas Arens <andras@cww.de>
- New support for Avance Logic VGA cards, needs this in dosemu.conf:
video { vga console graphics chipset avance }
From Alberto
- Patch for makeing debug print checks faster
(ifprintf -> log_printf)
- Makefile.main patch to fix odds in newer binutils.
97/01/22 ver. 0.64.3.1 released
From Hans (final fixes)
- Removed rest of 'history' in include/vm86plus
- reinstalled include/linux/vm86.h (to avoid compile errors
when using libc < 5.4.7)
- corrected VM86P* typo
- fixed wrong message on 'make install'
- made Bernd's timer patch a configure option, because apparently
some games don't like it. (--enable-monoton-timing)
97/01/19 ver. 0.64.3 released
From Hans
- removed emumodule (don't need it any more;-)
- cleaned up kernel dependencies
- adapted ./configure and Makefiles
- Made mouse functionable for win31-in-xdos (hiding X-cursor,
calibrating win31 cursor)
- little fix for xtermdos
- Updated the docs
From JES
- basic mouse functionality for win31-in-xdos
From Herbert Xu <herbert@greathan.apana.org.au>
- additions to man/dos.1, man/xtermdos.1
96/12/30 ver. 0.64.2.2 released
From Erik Mouw
- sequencer emulator for VGAemu (compatible with Trident 8900)
This lets WIN31 run in xdos :-), ... but without mouse :-(
96/12/30 ver. 0.64.2.1 released
From Hans
- Finaly got expand-down-fake in DPMI work, so older DJGPP work again.
( and maybe some games too )
- Additional checks in ./configure for debian inconsistencies,
Forcing to ELF, if no GCC specs file available.
- ... and this time did not forget to increase the version ;-)
From Erik Mow
- Additional checks in ./configure for bison installed
From Grant R. Guenther <grant@knot.torque.net>
( hey, Grant is the man who hacked the ZIP and other drives using
dosemu, so he then could write the Linux drivers ;-)
- "T" debug flag and LOG_IO macro
From Bernd Paysan <paysan@informatik.tu-muenchen.de>
- fixed the keycodes for AccelX
- fix for micro timing problems, timer now strictly monotonous
( Bernd's fix _really_ works great, Hans:-)
96/12/07 ver. 0.64.2 released
From Hans:
- vm86plus (2nd version) now is in the kernels >= 2.1.15
( it took long, but we finaly succeeded, thanks Linus :-)
- small adaptation and cleanup (docs, configure)
- minor fixes for clean compile under various compile options
- key-board fix for french keyboards (from Alain Knaff)
96/12/07 ver. 0.64.2-pre5 (privat release for JES only)
From Hans:
- vm86plus (emumodule), third round
( Linus requested to put our stuff into a separate syscall )
kernel patches now for 2.0.27, 2.1.14
- small fix for -F bug.
- DPMI: tried to work around illegitime expand-down segments
96/11/15 ver. 0.64.1
From Hans:
- vm86plus (emumodule), second round
kernel patches 2.0.25, 2.1.8 (fits also in 2.1.10)
see doc/README.kernel
- REQUIRES_EMUMODULE has become REQUIRES_VM86PLUS and now is
independed from emumodule (can also be supported by kernel patch)
- new ./configure options:
--enable-kernelvm86plus, --enable-novm86plus
deleted ./configure options:
--enable-noemumod
- insmod-2.1.8-HACKER_TOOL
- 'dos -F myconfig' checked under priv_off() (closing security hole)
From JES:
- kill_time (select replacement) for int15
|