File: ChangeLog

package info (click to toggle)
dosemu 1.4.0+svn.1999-2
  • links: PTS
  • area: contrib
  • in suites: squeeze
  • size: 15,552 kB
  • ctags: 22,600
  • sloc: ansic: 136,915; asm: 4,107; sh: 1,606; perl: 1,411; makefile: 974; tcl: 599; awk: 404; yacc: 300; lex: 157
file content (8212 lines) | stat: -rw-r--r-- 292,138 bytes parent folder | download | duplicates (4)
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
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
2008-03-27  Bart

	* [r1853] ChangeLog, NEWS:
	  DOSEMU 1.4.0.1

	* [r1852] configure, configure.ac, src/commands/Makefile,
	  src/plugin/commands/Makefile:
	  Fix 64-bit compilation on 32-bit systems and vice versa.

	* [r1851] src/base/bios/hlt.c, src/dosext/mfs/mfs.c,
	  src/plugin/kbd_unicode/keyb_raw.c:
	  Fix more gcc warnings for 64-bit compilation.

	* [r1850] src/base/bios/int10.c, src/plugin/term/terminal.c:
	  Cleaner fix for terminal memory map race.

2008-03-26  Bart

	* [r1849] VERSION:
	  DOSEMU 1.4.0.1

	* [r1848] Makefile:
	  Remove configure.lineno on distclean.

	* [r1847] src/base/init/lexer.l.in:
	  Avoid gcc-4.3 warning about unused input function in lexer.

	* [r1846] src/base/bios/int10.c, src/plugin/term/terminal.c:
	  Add a call to video->update_screen to int10/ah=0 modesets to make
	  sure the terminal is initialized. Fixes a race (though it should be
	  done more cleanly).

2008-03-25  Bart

	* [r1845] src/arch/linux/dosext/sound/midid/timid.c,
	  src/plugin/midimisc/mid_o_tmdty.c:
	  In timidity plugin and midid code: use socketpair as a bidirectional
	  pipe: older versions (current as of 2008 :( ) of timidity write to
	  stdin and we can catch that to avoid waiting 3 seconds at select at
	  DOSEMU startup.

2008-03-21  Bart

	* [r1844] src/dosext/mfs/lfn.c:
	  Add missing "return" for LFN findnext error. Fixes #1801411: Running
	  File Wizard crashes DOSEMU 1.4.0.0.

	* [r1843] src/plugin/term/keyb_slang.c, src/plugin/term/terminal.c:
	  Added some diagnostics to check for UTF-8 terminal mismatches;
	  "fixes" bug #1729556.

2008-03-18  Bart

	* [r1842] src/emu-i386/simx86/trees.c:
	  Try to fix #1910153 again: we need to round to PAGE_SIZE for the loop
	  termination test because of backwards jumps and NOJUMPS.

	* [r1841] src/emu-i386/simx86/codegen-sim.c:
	  SF-Patch #1683073: handle 16bit address overflow in string
	  instructions. Fixes overflow in the simulator of cpu-emu. Adjusted
	  from Michael Karcher's patch.

2008-03-17  Bart

	* [r1840] src/emu-i386/simx86/trees.c:
	  Bail out of node-to-invalidate check loop for the sorted list once
	  the base (instead of the PC-beginning of the block) is past the
	  affected address. Really fixes #1910153: SkyRoads failure: JIT fails
	  some self-modifying code (Michael Karcher).

2008-03-16  Bart

	* [r1839] src/emu-i386/simx86/trees.h:
	  Fix #1910153 SkyRoads failure: JIT fails some self-modifying code.
	  The dnpc field needs to be signed because it can be negative and is
	  compared to negative "int"s in BreakNode.

2008-03-11  Bart

	* [r1838] src/emu-i386/simx86/sigsegv.c:
	  Patch #1910535, Michael Karcher: fix for "e_vgaemu_fault corrupts
	  eip/rip"

	* [r1837] src/env/video/vgaemu.c:
	  In Super-VGA modes, do *not* wrap memory at 256k. SF patch #1910415,
	  Michael Karcher; fixes bug #1806787.

2008-02-18  Stas

	* [r1836] src/base/dev/dma/dmanew.c, src/base/dev/sb16/sb16.c:
	  OK, the good-bye cannot be that rude any more. My apologies to the
	  sound.c authors for that silly remark of mine and I hope you can do a
	  good work on my code.

2007-12-06  Bart

	* [r1835] src/arch/linux/async/sigsegv.c:
	  Use fpregset_t instead of _fpstate to avoid problems with Debian's
	  glibc for x86_64.

2007-09-24  Bart

	* [r1834] src/emu-i386/simx86/codegen-sim.h,
	  src/emu-i386/simx86/codegen-x86.h:
	  Replace BT24 and BTA inline asm by C.

2007-09-23  Bart

	* [r1833] src/emu-i386/simx86/interp.c:
	  Michael Karcher: #1800717 cpuemu: BOUND is signed. The current bound
	  implementation does a signed compare instead of an unsigned one. This
	  patch should fix it.

	* [r1832] src/base/async/int.c, src/base/dev/misc/lpt.c,
	  src/emu-i386/simx86/interp.c:
	  Implement the bound instruction (albeit fully interpreted). Make sure
	  that int 5 does not try printscreen if there is no printer.

	* [r1831] src/emu-i386/simx86/interp.c:
	  From Michael Karcher: #1763170 CPU emu: implement INTO correctly. The
	  INTO instruction should generate the overflow execption only if the
	  overflow flag is set, not on every invocation.

	* [r1830] src/emu-i386/simx86/interp.c:
	  From Michael Karcher: SF #1763169 CPU emu: handle prefixed jumps
	  correctly: The distance in a (not 8-bit) jump instruction is encoded
	  according to operand size, not address size. There is some wrong
	  documentation in this regard, even the processor reference manual I
	  usually use. The size of CX used in JCXZ is depending on the address
	  size, as correctly implemented in dosemu.

	* [r1829] src/emu-i386/simx86/interp.c:
	  From Michael Karcher, #1763166 CPU emu: ignore access to unknown VGA
	  ports Currently, dosemu crashes on read/write access to unhandled
	  ports in the VGA range when cpuemu is enabled. While this is
	  acceptable behaviour while developing, it is not helpful for the end
	  user, who has a program probing for different SVGA cards by direct
	  hardware access.

2007-06-11  Bart

	* [r1828] src/dosext/mfs/lfn.c, src/tools/Makefile:
	  Fixed some warnings with 64-bit builds.

2007-06-05  Bart

	* [r1827] etc/global.conf, src/plugin/X/X.c:
	  Fix $_X_winsize; also enable to use it, and X_aspect_43 with text
	  modes with bitmapped fonts.

2007-06-04  Bart

	* [r1826] src/dosext/dpmi/msdos.c:
	  Add DPMI API translation support for int21/ax=71a6.

	* [r1825] src/base/async/int.c, src/dosext/mfs/lfn.c,
	  src/dosext/mfs/mfs.c, src/dosext/mfs/mfs.h, src/include/dos2linux.h:
	  Implement the LFN handle functions int21/ax=5704,5,6,7, and 71a6.
	  Also avoid using the set attribute ioctl on non-FAT filesystems.

2007-06-03  Bart

	* [r1824] dist/dosemu:
	  Correct dosemu script.

	* [r1823] src/plugin/sdl/sdl.c:
	  Fix SDL video mode chooser if only one mode is available.

	* [r1822] src/plugin/X/X.c:
	  Fix "dosemu -w" for X and error messages for $DISPLAY not set.

	* [r1821] src/plugin/kbd_unicode/keymaps.c, src/plugin/term/terminal.c:
	  Prompt if the keyboard layout can't be auto-detected. Initialize the
	  SLang terminal screen draw routines as late as possible (the first
	  time something needs to be drawn) so that other error messages can
	  still be seen on the normal (non-SLang) terminal screen.

	* [r1820] dist/dosemu, dist/dosemu.bindist, dist/dosemu.systemwide,
	  man/dosemu.bin.1.in, src/arch/linux/Makefile.main,
	  src/base/init/config.c, src/include/emu.h, src/plugin/X/X.c,
	  src/plugin/X/X_font.c, src/plugin/term/terminal.c:
	  Move xset functionality to obtain the X fonts and the terminal < 25
	  lines warnings from dosemu to dosemu.bin.

2007-06-01  Bart

	* [r1819] src/base/async/int.c, src/base/bios/int10.c,
	  src/base/dev/pic/pic.c, src/base/init/config.c,
	  src/base/init/parser.y.in, src/base/misc/dump.c,
	  src/dosext/dpmi/dpmi.c, src/dosext/mfs/mfs.c, src/dosext/mfs/mfs.h,
	  src/dosext/misc/xms.c, src/dosext/net/net/pktnew.c,
	  src/emu-i386/simx86/cpu-emu.c, src/include/Asm/vm86.h,
	  src/include/machcompat.h:
	  Change longs in vm86.h to ints to be consistent between x86-64 and
	  i386.

	* [r1818] src/base/bios/int10.c, src/env/video/crtcemu.c,
	  src/env/video/seqemu.c, src/env/video/vgaemu.c:
	  Fix VESA text modes (fixes SR#1728817).

2007-05-30  Bart

	* [r1817] src/plugin/commands/generic.S:
	  Fix preprocessor confusion.

2007-05-28  Bart

	* [r1816] src/base/async/int.c, src/base/misc/dos2linux.c,
	  src/dosext/mfs/mangle.h, src/dosext/mfs/util.c,
	  src/include/dos2linux.h, src/plugin/X/X.c, src/plugin/sdl/sdl.c,
	  src/plugin/term/terminal.c, src/plugin/translate/include/translate.h,
	  src/plugin/translate/translate.c:
	  Better fix for X window titles & UTF-8. The title is now passed to
	  the plugin using a wchar_t string.

2007-05-25  Bart

	* [r1815] src/dosext/mfs/lfn.c, src/dosext/mfs/mfs.c,
	  src/dosext/mfs/mfs.h:
	  Let find_file report FILE_NOT_FOUND or PATH_NOT_FOUND in an extra
	  parameter depending on whether the directory where the file to be
	  searched would be in exists or not.

2007-05-23  Bart

	* [r1814] src/base/init/parser.y.in, src/dosext/mfs/mfs.c,
	  src/env/video/vgaemu.c:
	  Fix a memory leak and some other issues found by Valgrind.

2007-05-21  Bart

	* [r1813] src/emu-i386/simx86/sigsegv.c:
	  CPUEMU: do not mix up LDT accesses with emulator page faults, and
	  translate non-zero based DPMI addresses to the correct pointer.

2007-05-18  Bart

	* [r1812] etc/global.conf, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in, src/env/video/vesa.c, src/include/emu.h:
	  Use vgaemubios_file internally to get the Bochs BIOS to avoid mixing
	  up with using it with console graphics, and be able to run it in a
	  non-root console.

	* [r1811] src/doc/README/config, src/plugin/X/screen.c,
	  src/plugin/kbd_unicode/include/keyb_clients.h,
	  src/plugin/kbd_unicode/keyb_clients.c,
	  src/plugin/translate/config/plugin_parser,
	  src/plugin/translate/include/translate.h,
	  src/plugin/translate/translate_config.c:
	  Improve pasting in X into DOSEMU too, trying to ask for UTF-8, then
	  iso2022, and then iso8859-1. This obsoletes the use of
	  $_external_char_set for pasting.

	* [r1810] src/base/async/int.c:
	  Add forgotten init memset of mbstate_t unix_state to 0. Fixes crash
	  on x86-64.

	* [r1809] src/env/video/text.c, src/include/vgatext.h,
	  src/plugin/X/screen.c:
	  Improving pasting text from DOSEMU: follow guidelines about which
	  character sets to use (in practise we must usually convert to UTF8
	  nowadays).

	* [r1808] src/plugin/kbd_unicode/keyb_clients.c:
	  Check for -1 return from character_count (if an invalid multibyte
	  character string is pasted for example), so DOSEMU won't crash.

	* [r1807] src/base/bios/int10.c:
	  Add missing semicolon in int10.c

	* [r1806] src/arch/linux/debugger/mhpdbgc.c, src/base/async/int.c,
	  src/base/misc/disks.c, src/base/misc/fatfs.c,
	  src/base/misc/userhook.c, src/base/misc/utilities.c,
	  src/dosext/mfs/lfn.c, src/dosext/mfs/mangle.c,
	  src/dosext/mfs/mangle.h, src/dosext/mfs/mfs.c,
	  src/dosext/mfs/mscdex.c, src/dosext/mfs/util.c,
	  src/include/dos2linux.h, src/include/utilities.h,
	  src/plugin/commands/builtins.c, src/plugin/commands/commands.c,
	  src/plugin/commands/dosdbg.c, src/plugin/commands/lredir.c,
	  src/plugin/commands/msetenv.c, src/plugin/commands/xmode.c:
	  Force within-ASCII uppercasing for ASCII letters for toupperDOS and
	  friends. Consistently use toupperDOS etc. functions instead of
	  toupper etc. to avoid problems with the dotless i as used in Turkish
	  and some other languages. In fatfs.c convert from the Linux to the
	  DOS character set, and vice versa for the X title display.

2007-05-17  Bart

	* [r1805] src/base/bios/bios.S:
	  Always covert ax=6cxx to 6c00 for the int21/ah=6c LFN->DOS converter.

2007-05-16  Bart

	* [r1804] src/env/video/vesa.c:
	  Allow larger Bochs vgabios'es to be used than 32K.

2007-05-14  Bart

	* [r1803] src/emu-i386/simx86/interp.c:
	  Implemented lock prefix (either ignored, or illegal op).

2007-05-13  Bart

	* [r1802] src/emu-i386/simx86/cpu-emu.c:
	  SIMX86: Don't try to stretch time using RDTSC if $_rdtsc=(off)

	* [r1801] src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/interp.c:
	  Push IOPL_MASK on the stack for pushf and int. Fixes vm86 mode
	  detection of DOS4GW when $_dpmi=(off).

	* [r1800] src/arch/linux/async/signal.c:
	  Revert DPMI-inability detection change from #1799.

	* [r1799] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/emu-i386/simx86/sigsegv.c,
	  src/env/video/vgaemu.c:
	  When handling signals, check for a valid DPMI selector, which means
	  that it is an LDT selector and not reserved by glibc or similar, e.g.
	  for pthreads. Else, and that includes the whole GDT, assume we
	  interrupt DOSEMU code. SystemSelector() in DPMI now refers to
	  anything not covered by the above, plus dpmi_sel16 & dpmi_sel32. This
	  fixes crashes with Xen-DOM0 on x86-64 where cs is 0x33 on entry to
	  signal handlers but set to 0xe033 after the first syscall.

2007-05-11  Bart

	* [r1798] src/emu-i386/simx86/interp.c:
	  Remove (replace by an e_printf) debug code that aborts CPUEMU if 4 or
	  more 0's in a row are executed. Some .com programs do this to skip
	  over data (Reinhard Karcher).

	* [r1797] dist/dosemu, src/emu.c:
	  Moved DOSDRIVE_D environment manipulation from the dosemu script to
	  dosemu.bin so it also works with sudo.

	* [r1796] src/arch/linux/async/debug.c, src/arch/linux/async/sigsegv.c,
	  src/base/init/init.c:
	  Reorganize some debug reporting a bit. uname and the GCC version
	  number are now always reported in boot.log. Added some bug report
	  instructions.

	* [r1795] src/plugin/X/X.c, src/plugin/sdl/sdl.c,
	  src/plugin/term/term_core.c:
	  Fix terminal init problem (no terminal input running xdosemu) if no
	  dynamically linked plugins are used.

	* [r1794] default-configure:
	  Check the default bitness of gcc, instead of blindly relying on
	  uname.

	* [r1793] src/dosext/dpmi/dpmi.c, src/emu-i386/cpu.c,
	  src/emu-i386/simx86/sigsegv.c, src/include/emu.h:
	  Implement some workarounds for the CPU ESP bug. It is unlikely that
	  it will be worked around in 64-bit kernels. Compare with segment
	  limits instead of what is supposed to be kernel space (it isn't on
	  x86-64). Fixes the ancient MS Linker and the Need For Speed demo on
	  x86-64.

2007-05-10  Bart

	* [r1792] src/emu-i386/simx86/sigsegv.c:
	  Do not patch code that has just tried to overwrite code instead of
	  data. Fixes a crash with Larry.

2007-05-09  Bart

	* [r1791] src/dosext/mfs/mfs.c:
	  As the read-only attribute is mostly ignored for directories in DOS,
	  the dos_would_allow check for writable directories doesn't make much
	  sense. Instead simply check if the file is writable.

	* [r1790] src/dosext/mfs/mfs.c:
	  It is possible to work around the x86-64 FAT compat-ioctl kernel bug.
	  Thanks to Wine.

2007-05-08  Bart

	* [r1789] src/arch/linux/async/signal.c, src/emu.c:
	  Force $_cpu_emu="full", and do not crash, if %cs is not saved for
	  signal handlers on x86-64 (kernels < 2.6.15, #1713659).

	* [r1788] src/arch/linux/dosext/sound/midid/oss.c,
	  src/arch/linux/dosext/sound/midid/timid.c,
	  src/plugin/midimisc/mid_o_oss.c:
	  Declare *seqbuf_dump static before including soundcard.h. Hopefully
	  that solves all warnings and errors with the variations out there.

	* [r1787] src/plugin/kbd_unicode/keymaps.c:
	  Do not attempt to load the X plugin if X isn't compiled.

	* [r1786] src/dosext/mfs/lfn.c:
	  int21/ax=7160/cl=1,2 must return an error if the file does not exist.
	  Fixes problems with FreeCOM mkdir not preserving the LFN directory
	  name.

	* [r1785] src/dosext/mfs/mfs.c:
	  Ignore attempts to translate the archive and read-only attributes to
	  Unix permissions for directories. Fixes problem with pkunzip (Joe
	  Ripley, linux-msdos).

2007-05-07  Bart

	* [r1784] dist/autoexec.bat, dist/config.sys, src/base/async/int.c,
	  src/plugin/commands/blaster.c:
	  Reduce lines of output in config.sys, autoexec.bat, blaster, and the
	  banner, so everything fits on 25 lines.

	* [r1783] src/dosext/mfs/lfn.c:
	  Fix more illegal writes in the LFN code (crashed DJGPP gcc with
	  cpuemu=vm86).

2007-05-06  Bart

	* [r1782] Makefile, Makefile.conf.in, src/Makefile.common,
	  src/arch/linux/Makefile.main, src/commands/Makefile:
	  Speed up 'make' a bit: - don't use bash anymore; remove bash-isms and
	  eliminate pwd -P - don't use the intermediate tmp directory for make
	  install anymore - use -rR make flags to ignore built-ins and made
	  some built-ins explicit

	* [r1781] configure, configure.ac, src/plugin/kbd_unicode/configure,
	  src/plugin/sdl/configure:
	  Execute sub-configures by hand to avoid autoconf warnings and
	  possible future breakage.

	* [r1780] Makefile.conf.in, configure, configure.ac, default-configure:
	  Allow dash to be used as sh in out-of-tree builds.

	* [r1779] Makefile.conf.in:
	  Do not forget sndfile and alsa libraries when building without
	  dynamically loaded plugins.

	* [r1778] src/base/bios/int10.c:
	  Implement INT10/AH=1c (save/restore video state)

2007-05-05  Bart

	* [r1776] ChangeLog, NEWS, dist/config.sys, dist/dosemu.bindist,
	  dist/mkbindist:
	  Last minute fix for 1.4.0: fix #1713278 COMSPEC setting wrong. Use
	  config.sys/autoexec.bat distributed from here in the bindist instead
	  of the one in dosemu-freedos-*-bin*.

	* [r1775] NEWS, ChangeLog:
	  Release 1.4.0.

	* [r1774] INSTALL, README, README.bindist, doc/README.txt,
	  doc/announce, src/base/init/install.c, src/doc/README/config,
	  src/doc/README/header:
	  More documentation updates; added a quick more basic introduction at
	  the beginning of README.txt.

2007-05-04  Bart

	* [r1773] VERSION, doc/DANG.txt, doc/README-tech.txt, doc/README.txt,
	  doc/announce, doc/dosemu-HOWTO.txt, etc/dosemu.conf,
	  src/doc/DANG/DANG.sgml, src/doc/HOWTO/dosemu-HOWTO.sgml,
	  src/doc/README/Priv-usage, src/doc/README/SECURITY,
	  src/doc/README/config, src/doc/README/port-io,
	  src/doc/README/recover, src/doc/README/runasuser:
	  Documentation updates for 1.4.0.

	* [r1772] src/dosext/mfs/lfn.c, src/emu-i386/simx86/codegen-sim.c,
	  src/plugin/commands/lredir.c:
	  gcc-2.95 compatibility fixes.

	* [r1771] src/base/init/config.c, src/emu-i386/ports.c:
	  Convert error about direct port i/o without root into a warning.
	  Err about using "-s" without enough privileges.

	* [r1770] src/arch/linux/Makefile.main:
	  Fix man page out-of-tree building.

	* [r1769]  (almost all files changed)
	  Update copyright line to 2007.

	* [r1768] dosemu.spec.in:
	  Added missing new directory and symbolic link to dosemu.spec.

	* [r1767] src/arch/linux/Makefile.main:
	  Make man files at "make" instead of "make install" time.

	* [r1766] dist/dosemu, dist/dosemu.bindist, dist/mkbindist,
	  man/dosemu.bin.1.in, src/arch/linux/Makefile.main,
	  src/base/init/config.c, src/base/init/install.c,
	  src/base/init/parser.y.in, src/base/misc/fatfs.c:
	  Allow --Flibdir for suid configurations, as it hasn't been used to
	  locate global.conf for years. Document the allowance for
	  --Flibdir/--Fimagedir. Repair bindist/mkbindist to work with the 
	  new FreeDOS configuration. This means using --Flibdir and
	  $DOSEMU_LIB_DIR instead of the hardcode DOSEMULIB_DEFAULT.
	  Run mkfontdir at "make" instead of "make install" time when possible.

	* [r1765] src/plugin/commands/lredir.c:
	  Fix lredir c: d:

2007-05-03  Bart

	* [r1764] configure, configure.ac, src/plugin/sdl/Makefile:
	  Fix forgotten make distclean file in SDL plugin; add -lXext for
	  Xxf86vm checking on certain systems.

	* [r1763] INSTALL, configure, configure.ac:
	  Check for the existence of the Xxf86vm and Xext libraries, not just
	  header files. Adjust INSTALL instructions.

	* [r1762] config.guess, config.sub, configure, configure.ac:
	  Don't use -mtune by default. It doesn't bear much relation to 'uname
	  -m' anymore on anything newer than a Pentium Pro.

	* [r1761] etc/dosemu.users.example, src/base/init/config.c,
	  src/base/init/parser.y.in, src/base/misc/priv.c, src/include/priv.h:
	  Register the difference between sudo and suid-root.
	  Use c_all as the default for users who run dosemu via sudo so
	  dosemu.users does not need to be edited for that case, leaving
	  the default "restricted" (only console graphics at the console,
	  no remote direct hardware access) setting for suid-root.

2007-05-02  Bart

	* [r1760] src/arch/linux/Makefile.main:
	  Use -rm instead of rm to deal with non-existing directories.
	  Use bdftopcf at make time instead of make install.
	  Fixes problems reported at linux-msdos (perry hargrave).

	* [r1759] src/base/init/parser.y.in:
	  Repair $_sound=(on). You would only get the old sound driver via
	  $_sound=(1).

2007-05-01  Bart

	* [r1758] src/env/video/dualmon.c, src/env/video/hgc.c,
	  src/env/video/matrox.c, src/env/video/vc.c:
	  Mark all mapped video memory PROT_EXEC, similar to the VGAEMU memory.
	  Solves a few problems with console video on x86-64.

	* [r1757] src/emu-i386/simx86/fp87-x86.c:
	  Use aliased memory for emulation of FSTENV/FSAVE.

	* [r1756] src/emu-i386/simx86/cpatch.c:
	  There is a slight chance that the CPUEMU cpatch stubs hit VGA memory.
	  For that case there is a simple instruction decoder but we must use
	  explicit assembly instructions. Fixes another problem with Norton
	  SysInfo.

2007-04-30  Bart

	* [r1755] src/emu-i386/simx86/codegen-sim.c:
	  Fix regression in vgaemu handling from #1754.
	  Fix problem with rep movs with df set backwards for simulated cpuemu
	  with planar VGA modes.

	* [r1754] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/sigsegv.c, src/env/video/vgaemu.c:
	  Fix problems with programs that try to access unmapped VGA memory or
	  write to ROM in CPUEMU, such as Norton SysInfo.

2007-04-29  Bart

	* [r1753] src/dosext/mfs/mfs.c:
	  Check for FAT filesystem before attempting to use the VFAT ioctls.
	  Also check if the first entry is ".\0" to avoid an ioctl32 bug in
	  kernels <= 2.6.21.1.

2007-04-27  Bart

	* [r1751] VERSION, NEWS, ChangeLog, doc/DOSEMU-HOWTO.txt,
	  etc/dosemu.conf:
	  Regenerate documentation. Release 1.3.5.

	* [r1750] src/plugin/commands/lredir.c, src/plugin/commands/msetenv.c:
	  Avoid CPUEMU problems with msetenv. Only set DOSEMU_LASTREDIR if no
	  drive letter was given; improve lredir command line processing with C
	  and R.

	* [r1749] etc/dosemu.conf, src/base/dev/misc/lpt.c:
	  Flush every second when printing. Fix $_lptx="" to not register any
	  ports.

	* [r1748] src/dosext/dpmi/msdos.c:
	  Fix #1638135 (int 21h, ax=6300 not translated currently, japheth)

	* [r1747] src/dosext/mfs/mfs.c, src/dosext/mfs/mfs.h:
	  Always return . and .. as the first two entries for
	  findfirst/findnext to be consistent with real DOS. On Linux they
	  can be somewhere in the middle.

2007-04-26  Bart

	* [r1746] src/base/misc/dos2linux.c, src/include/dos2linux.h,
	  src/plugin/commands/lredir.c, src/plugin/commands/unix.c:
	  Apply #1691712 make lredir able to automatically choose next free
	  drive II (Stuart Axon)

	* [r1745] INSTALL:
	  Made a note about libXxf86vm (#1644784)

	* [r1744] man/dosemu.1.in:
	  [ 1692149 ] Describe --version in man page (fix for 1245033) (Stuart
	  Axon)

	* [r1743] src/doc/HOWTO/dosemu-HOWTO.sgml:
	  Some HOWTO updates by Stuart Axon (#1692299).

	* [r1742] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/codegen.h,
	  src/emu-i386/simx86/cpatch.c, src/emu-i386/simx86/interp.c,
	  src/emu-i386/simx86/tables.c:
	  Handle 16bit address overflow in cpuemu string instructions.
	  (#1683078, slightly adjusted from Michael Karcher's patch)

2007-04-23  Bart

	* [r1741] src/base/init/config.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/emu-i386/cpu.c, src/include/cpu.h,
	  src/include/emu.h:
	  Use fxsave/fxrstor when available on i386 to deal with SSE fp.
	  Make sure the fxsave buffer is paragraph aligned (fixes a bug with
	  DJGPP gcc on x86_64).

2007-04-22  Bart

	* [r1740] src/dosext/dpmi/dpmi.c:
	  Check fs/gs values before loading them on x86-64. Preserves 64 bit
	  segment bases on Intel chips (but apparently makes no difference on
	  AMD's).

2007-04-20  Bart

	* [r1739] src/dosext/dpmi/dpmi.c:
	  Fix LFB w/console graphics for x86-64.

	* [r1738] src/base/async/pci_bios.c, src/base/dev/misc/pci.c,
	  src/env/video/matrox.c, src/include/pci.h:
	  Fix PCI support on x86-64.

	* [r1737] src/emu-i386/do_vm86.c, src/include/cpu.h:
	  Use fnsave instead of fsave for saving the FPU state. Should fix
	  #1436788.

	* [r1736] src/plugin/term/keyb_slang.c,
	  src/plugin/translate/charsets/utf8.c:
	  Fix problems with utf-8 multibyte input in terminals (reported by
	  Grigory Batalov, linux-msdos).

2007-03-29  Bart

	* [r1735] dist/dosemu, src/base/init/config.c:
	  Avoid bash-ism "exec -a"; use an environment variable instead.

	* [r1734] src/emu-i386/simx86/codegen-x86.c:
	  Fix gcc warning.

	* [r1733] src/emu-i386/simx86/codegen-sim.c:
	  Fix shift/rotate instructions in simulator (Michael Karcher,
	  #1687296)

	* [r1732] src/emu-i386/simx86/codegen-x86.c:
	  Fix spurious crashes with "linker: node busy" (Michael Karcher,
	  #1687298)

2007-03-24  Bart

	* [r1731] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/tables.c:
	  Fix rep scas/cmps when eCX is 0 (#1683190, with Michael Karcher)

2007-03-18  Bart

	* [r1730] src/emu-i386/simx86/cpatch.c:
	  Fix to SVN #1727 stosw fix (Michael Karcher, #1679675)

2007-03-17  Bart

	* [r1729] src/emu-i386/simx86/interp.c:
	  Fix problem with push when single stepping in cpuemu (#1682620, M.
	  Karcher)

	* [r1728] src/emu-i386/simx86/interp.c:
	  Fix cpuemu bug with sbb, affects GNUish ls and tasm (#1682575)

2007-03-13  Bart

	* [r1727] src/emu-i386/simx86/cpatch.c:
	  Save eax in stosw stub (Michael Karcher, #1679675)

2007-03-11  Bart

	* [r1726] src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/interp.c:
	  Use leavedos(1) for EMU86 failure to drop into dosdebug; improve
	  diagnostics. For rep outs, use not_permitted and let the port code
	  deal with it instead of quitting DOSEMU.

	* [r1725] src/emu-i386/simx86/cpatch.c, src/emu-i386/simx86/trees.c:
	  Break node if current eip is in a page to be unprotected; fixes bug
	  #1678581

2007-03-10  Bart

	* [r1724] src/dosext/mfs/dosc.c, src/dosext/mfs/lfn.c:
	  LFN: avoid writing to write-protected memory (thanks Michael Karcher)

	* [r1723] src/base/bios/setup.c, src/base/init/init.c,
	  src/base/misc/disks.c, src/dosext/dpmi/emu-ldt.c,
	  src/dosext/dpmi/msdos.c, src/dosext/misc/xms.c,
	  src/dosext/net/net/ipx.c, src/emu-i386/ports.c,
	  src/emu-i386/simx86/fp87-x86.c, src/emu-i386/simx86/sigsegv.c,
	  src/tools/periph/dexeconfig.c, src/tools/tools86.c:
	  Replaced 'long *' by 'int *' or 'uint32_t *' for 64-bit
	  compatibility.

2007-02-28  Bart

	* [r1722] src/env/video/instremu.c:
	  Fix problem with constraints in inline assembler.

2006-12-10  Bart

	* [r1721] src/include/sound, src/include/sound/midi.h,
	  src/include/sound/sndpcm.h, src/include/sound/sound.h,
	  src/plugin/sdl/snd_o_SDL.c:
	  Add forgotten files from Stas' new sound code.

	* [r1720] src/arch/linux/dosext/sound/midid/io.c,
	  src/arch/linux/dosext/sound/midid/midid.c,
	  src/arch/linux/dosext/sound/midid/timid.c:
	  Integrated most of the other midid changes by Stas.

	* [r1719] Makefile.conf.in, compiletime-settings,
	  compiletime-settings.devel, configure, configure.ac,
	  default-configure, src/base/sound/sndpcm.c, src/include/config.h.in,
	  src/plugin/alsa, src/plugin/alsa/Makefile,
	  src/plugin/alsa/mid_o_alsa.c, src/plugin/sndfile,
	  src/plugin/sndfile/Makefile, src/plugin/sndfile/snd_o_wav.c:
	  Added ALSA and libsndfile plugins from Stas.

2006-11-29  Bart

	* [r1718] compiletime-settings, compiletime-settings.devel,
	  etc/dosemu.conf, etc/global.conf, src/arch/linux/Makefile.main,
	  src/base/dev/dma/Makefile, src/base/dev/dma/dma.c,
	  src/base/dev/dma/dmanew.c, src/base/dev/sb16,
	  src/base/dev/sb16/Makefile, src/base/dev/sb16/adlib.c,
	  src/base/dev/sb16/adlib.h, src/base/dev/sb16/dspio.c,
	  src/base/dev/sb16/dspio.h, src/base/dev/sb16/sb16.c,
	  src/base/dev/sb16/sb16.h, src/base/dev/sb16/ymf262.c,
	  src/base/dev/sb16/ymf262.h, src/base/init/dev_list.c,
	  src/base/init/parser.y.in, src/base/sound, src/base/sound/Makefile,
	  src/base/sound/midi.c, src/base/sound/nullsnd.c,
	  src/base/sound/nullsnd.h, src/base/sound/sndpcm.c,
	  src/dosext/sound/sound.c, src/include/dma.h, src/include/sound.h,
	  src/plugin/midimisc, src/plugin/midimisc/Makefile,
	  src/plugin/midimisc/mid_i_pipe.c, src/plugin/midimisc/mid_o_midid.c,
	  src/plugin/midimisc/mid_o_oss.c, src/plugin/midimisc/mid_o_pipe.c,
	  src/plugin/midimisc/mid_o_tmdty.c, src/plugin/sdl/Makefile:
	  Integrate most of Stas' new sound code, for now run-time selectable
	  using $_sound = (2).

2006-11-25  Bart

	* [r1717] src/dosext/dpmi/dpmi.c:
	  Fix trap flag handling regression for DPMI (#1602643)

	* [r1716] src/arch/linux/dosext/sound/midid/Makefile,
	  src/arch/linux/dosext/sound/midid/device.c,
	  src/arch/linux/dosext/sound/midid/device.h,
	  src/arch/linux/dosext/sound/midid/midid.c,
	  src/arch/linux/dosext/sound/midid/midout.c,
	  src/arch/linux/dosext/sound/midid/null.c,
	  src/arch/linux/dosext/sound/midid/oss.c,
	  src/arch/linux/dosext/sound/midid/seqops.h,
	  src/arch/linux/dosext/sound/midid/timid.c:
	  Merged trivial changes and makefile improvements from Stas' new midid
	  code.

	* [r1715] src/arch/linux/Makefile.main:
	  Do not erase all previous FreeDOS files when upgrading. Remove risky
	  comment between semicolons.

2006-11-22  Bart

	* [r1714] src/plugin/sdl/keyb_SDL.c:
	  Fix AltGr handling with SDL. It was confused with ScrollLock.

	* [r1713] src/plugin/sdl/keyb_SDL.c:
	  Try to use keysyms where possible in the SDL keyboard code.
	  Implemented workaround for altgr and broken unicode support in older
	  SDL versions.

2006-11-21  Bart

	* [r1712] src/plugin/X/X.c:
	  Fix double mouse cursor problem with Arachne.

2006-11-18  Bart

	* [r1710] VERSION, NEWS, ChangeLog, src/doc/DANG/DANG.sgml,
	  src/doc/README/CDROM, doc/DANG.txt, doc/README.cpuemu,
	  doc/README.txt, doc/EMUfailure.txt:
	  Added CDROM lredir documentation. Regenerate documentation.
	  Release 1.3.4.

	* [r1709] src/arch/linux/async/debug.c, src/base/init/lexer.l.in,
	  src/base/misc/fatfs_boot.S, src/base/misc/utilities.c,
	  src/dosext/dpmi/memory.c, src/dosext/dpmi/vxd.c,
	  src/dosext/dpmi/windefs.h, src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/include/cpu.h:
	  GCC-2.95 and x86-64 VXD compatibility changes.

	* [r1708] INSTALL, src/base/init/install.c:
	  Fixed -install for other DOSes than the supplied FreeDOS and
	  adjust README.

2006-11-16  Bart

	* [r1707] src/emu-i386/simx86/sigsegv.c:
	  Fixed some 64-bit rip usage, and the division by zero exception.

	* [r1706] configure, configure.ac, src/include/config.h.in,
	  src/include/dlmalloc.h:
	  Fixed gcc warning in dlmalloc and removed some obsolete autoconf
	  macros.

2006-11-15  Bart

	* [r1705] src/arch/linux/Makefile.main:
	  Rearranged the messages after make install, so it is more clear
	  that the FreeDOS tarball is missing.

	* [r1704] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/interp.c, src/emu-i386/simx86/modrm-gen.c,
	  src/emu-i386/simx86/protmode.c, src/emu-i386/simx86/protmode.h,
	  src/emu-i386/simx86/tables.c:
	  Segment handling and address calculation optimizations for
	  cpuemu.

2006-11-14  Bart

	* [r1703] configure, configure.ac:
	  Added configure checks for bdftopcf and mkfontdir.

	* [r1702] dist/dosemu:
	  Allow DOSDRIVE_D to be overridden.

	* [r1701] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/tables.c:
	  Optimize the O_MOVS_SetA cpuemu op.

2006-11-13  Bart

	* [r1700] ChangeLog, NEWS:
	  Updated NEWS and ChangeLog

2006-11-12  Bart

	* [r1699] COPYING.DOSEMU, src/env/video/vgafonts.c:
	  Added VGA font and dlmalloc copyrights for completeness.

	* [r1698] dist/autoemu.bat, dist/autoexec.bat, dist/config.emu,
	  dist/config.sys, src/arch/linux/Makefile.main,
	  src/base/init/install.c, src/base/misc/fatfs.c:
	  The previous approach had circular symbolic links for directories
	  which is bad as it confuses DOS programs. It seems clearer to
	  create a drive_z directory with contents equal to the old freedos
	  directory (even though there may not be a freedos present).

	* [r1697] dist/dosemu, src/base/init/config.c,
	  src/base/init/install.c, src/emu.c, src/include/dos2linux.h,
	  src/include/emu.h, src/plugin/commands/unix.c:
	  Create no-prompt initial boot for DOSEMU+FreeDOS with a welcome
	  screen. The liability disclaimer just needs to be confirmed.
	  Removed the win4lin check from the dosemu script and moved the
	  terminal instructions to the main code.

	* [r1696] dist/autoemu.bat, dist/autoexec.bat, dist/config.emu,
	  dist/config.sys, dosemu.spec.in, src/arch/linux/Makefile.main,
	  src/base/init/install.c, src/base/misc/fatfs.c:
	  Remove the tarballs with symlinks. Instead, point d: to the
	  systemwide FreeDOS directory during config.sys processing and use
	  z: after that. Install config.sys et al from dosemu.

	* [r1695] etc/dosemu.conf, etc/global.conf,
	  src/base/dev/misc/lpt.c, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in:
	  Use $_lpt1, $_lpt2, and $_lpt3 for printer configuration and
	  disable the printer IRQ for now since it's not used. Fixes
	  #1492201.

	* [r1694] src/base/async/int.c, src/base/bios/setup.c,
	  src/include/int.h:
	  Fix missing LFN support after ctrl-alt-del (#1487899)

	* [r1693] INSTALL, compiletime-settings,
	  compiletime-settings.devel, compiletime-settings.help, configure,
	  configure.ac, default-configure, src/emu.c,
	  src/plugin/sdl/acinclude.m4, src/plugin/sdl/configure,
	  src/plugin/sdl/configure.ac:
	  Use JIT cpuemu by default on x86-64, and don't force -m32 any
	  longer. Introduce target_bits compile time option to optionally
	  set -m32 or -m64. Updated SDL configure script and added a link
	  check for cross-compilation.

2006-11-11  Bart

	* [r1692] dist/dosemu:
	  Use `id -ur` instead of $UID for dash compatibility.

	* [r1691] src/arch/linux/async/signal.c, src/dosext/dpmi/dpmi.c,
	  src/emu-i386/cpu.c, src/include/cpu-emu.h:
	  Fix compilation with cpuemu off.

	* [r1690] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-sim.h,
	  src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/codegen-x86.h, src/emu-i386/simx86/emu86.h,
	  src/emu-i386/simx86/sigsegv.c, src/env/video/instremu.c,
	  src/env/video/vgaemu.c, src/include/vgaemu.h:
	  Implemented better VGAEMU support for simulated cpuemu and
	  eliminated the e_vga_base and e_vga_end variables.

	* [r1689] src/arch/linux/async/signal.c,
	  src/emu-i386/simx86/cpu-emu.c, src/emu.c, src/env/video/vc.c,
	  src/include/emu.h, src/plugin/term/terminal.c:
	  Handle all async signals except those that call leavedos using
	  sigasync() which calls the correct sighandler using a function
	  pointer array. The real signal handlers are all set in
	  signal.c:signal_init() now. Add SIGWINCH & SIGPROF to the queue
	  block list because of their nature.

	* [r1688] src/emu-i386/simx86/sigsegv.c,
	  src/emu-i386/simx86/trees.c:
	  Fixed some issues with self-modifying code.

	* [r1687] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/tables.c, src/emu-i386/simx86/trees.c:
	  Removed GenBufSize hack and adjusted the op size array.

	* [r1686] src/emu-i386/simx86/interp.c, src/env/video/instremu.c,
	  src/include/cpu.h:
	  Avoid "lahf" (may not be available on x86-64) and use READ_BYTE
	  for IS_IRET.

2006-11-10  Bart

	* [r1685] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/interp.c,
	  src/emu-i386/simx86/trees.c:
	  Fixed a bug in InvalidateSingleNode and DPMI TheCPU.eflags
	  handling. Under normal circumstances IOPL should never be set
	  there.

	* [r1684] configure, configure.ac:
	  Add -lm to LIBS as DOSEMU now uses a few math functions.

	* [r1683] src/emu-i386/simx86/fp87-sim.c:
	  Fixed rounding to integer in the FPU simulator.

	* [r1682] src/emu-i386/simx86/codegen-x86.c:
	  Fix das/aas/aam for x86-64.

	* [r1681] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/fp87-sim.c, src/emu-i386/simx86/interp.c:
	  Fixed ENTER/IDIV/DIV/IMUL/DAS and some FPU cases that failed with
	  the QEMU i386 emulator test program.

2006-11-09  Bart

	* [r1680] src/emu-i386/simx86/interp.c:
	  Correct ofsseg array for DPMI

2006-11-08  Bart

	* [r1679] src/emu.c, src/include/emu.h:
	  Forgotten sigjmp_buf declarations from r1677.

	* [r1678] src/plugin/sdl/sdl.c:
	  Enable X background pause for SDL

	* [r1677] src/base/misc/utilities.c, src/emu.c:
	  Use sigsetjmp/siglongjmp because signal handlers may be involved
	  in leavedos.

	* [r1676] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/sigsegv.c:
	  Fix BSF and BSR, and don't use code patches for DPMI code for
	  cpuemu="full". Fixes Duke Nukem 3D in this mode.

	* [r1675] src/emu-i386/simx86/interp.c:
	  Use the operand size instead of the address size for jump
	  destination masking. Fixes some issues with cpuemu in DPMI.

	* [r1674] src/emu-i386/simx86/codegen-x86.c:
	  Fix vgaemu in compiled code.

	* [r1673] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/interp.c:
	  Fixed IMUL regressions from r1670.

2006-11-07  Bart

	* [r1672] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/interp.c:
	  Use load/op/store for inc&dec, and optimize inc/dec byte reg.

	* [r1671] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/interp.c:
	  Use load/op/store for xchg and actually use xchg in generated
	  code as well.

	* [r1670] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/interp.c:
	  Use load/op/store for cpuemu (I)MUL, (I)DIV, NEG, and NOT.

	* [r1669] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/codegen.h,
	  src/emu-i386/simx86/interp.c:
	  Use "op %al,reg" style instructions in cpuemu instead of "op
	  (%edi),%al" to avoid certain VGA memory reads.

	* [r1668] src/base/misc/dump.c, src/dosext/dpmi/dpmi.c:
	  Fixed a DPMI ctrl-c problem (missed in_dpmi_dos_int), and avoid
	  dumping unreachable memory in dump.c, which may double-fault.

2006-11-06  Bart

	* [r1667] src/dosext/dpmi/memory.c:
	  Save actual dpmi base pointer in config.dpmi_base.

	* [r1666] src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/fp87-x86.c:
	  Changed fp87 absolute addresses to bx-relative so that the FPU
	  works for x86-64 for JIT cpuemu, and improve x86-64 cpuemu fault
	  handling.

	* [r1665] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/trees.c:
	  Fixed VGA read/write for x86-64. Misc adjustments to deal with
	  64-bit pointers. Add forgotten #include.

2006-11-05  Bart

	* [r1664] src/base/misc/Makefile, src/base/misc/dlmalloc.c,
	  src/base/misc/smalloc.c, src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/memory.c, src/emu-i386/simx86/trees.c,
	  src/include/dlmalloc.h, src/include/smalloc.h:
	  Use Doug Lea's malloc (forced to use mmap with PROT_EXEC) instead
	  of smalloc for cpuemu. It is a lot faster.

	* [r1663] src/base/misc/smalloc.c, src/emu-i386/simx86/memory.c,
	  src/include/smalloc.h:
	  Introduce smalloc_fast and smfree_fast: these clobber the
	  allocated memory to improve the speed of smfree (eliminating a
	  linear search). Used by cpuemu: shaves ~25% off DOS boot time.

	* [r1662] src/base/misc/smalloc.c, src/include/smalloc.h:
	  Changed smalloc to use a double-linked list for a little
	  performance improvement.

	* [r1661] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/trees.c,
	  src/emu-i386/simx86/trees.h:
	  Clean up HOST_ARCH_X86 use.

	* [r1660] src/emu-i386/simx86/codegen.h,
	  src/emu-i386/simx86/cpatch.c, src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/syncpu.h:
	  Implemented stos/movs patches for x86-64.

	* [r1659] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/interp.c, src/emu-i386/simx86/trees.h:
	  Pass clink as a pointer instead of as a possibly truncated int.

	* [r1658] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/trees.c, src/emu-i386/simx86/trees.h:
	  Clean up pointer casts in cpuemu tree handling. Use int instead
	  of long where possible/appropriate.

2006-11-04  Bart

	* [r1657] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/codegen-x86.h, src/emu-i386/simx86/codegen.h,
	  src/emu-i386/simx86/cpatch.c, src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/syncpu.h, src/emu-i386/simx86/trees.c:
	  Implemented stack/write code patches for x86-64 and fixed an
	  associated bug in trees.c.

	* [r1656] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/codegen.h, src/emu-i386/simx86/cpatch.c,
	  src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/protmode.c,
	  src/emu-i386/simx86/sigsegv.c, src/emu-i386/simx86/syncpu.h:
	  Reorganised the SynCPU structure and rep stos/movs code patches
	  to use call (%ebx), and enable those on x86-64.

2006-11-02  Bart

	* [r1655] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/codegen-x86.h, src/emu-i386/simx86/cpatch.c,
	  src/emu-i386/simx86/emu86.h:
	  Cleaned up cpuemu eflags handling. DF is now always handled via
	  TheCPU.eflags instead of the stack flag image, and always clear
	  between instructions. Disabled the pushf VIF trick which doesn't
	  seem to work as advertised.

	* [r1654] src/emu-i386/simx86/interp.c:
	  Correct cpuemu regression from rev #1652

2006-11-01  Bart

	* [r1653] src/emu-i386/simx86/codegen-sim.c:
	  Correct flag handling in AAA, AAS, DAS, DAA, CMPS*, SCAS* in the
	  cpuemu interpreter. Fixes problems with FD DEBUG's "a" command.

	* [r1652] src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/interp.c:
	  Fix single stepping in cpu-emu (including dosdebug).

2006-10-31  Bart

	* [r1651] src/env/video/render.c, src/env/video/text.c,
	  src/include/render.h, src/plugin/X/X.c,
	  src/plugin/sdl/mouse_SDL.c, src/plugin/sdl/sdl.c:
	  Fix palette and mouse with SDL for fbdev/fullscreen/256 colors.

	* [r1650] (almost all files changed)
	  Update year to 2006. COPYING now contains the pure GPL, and
	  COPYING.DOSEMU the other copyright details. Distribute the GPL
	  and COPYING.DOSEMU with rpm's from dosemu.spec. Clarified the
	  clause on redistribution of repackaged official packages.

	* [r1649] src/plugin/X/X.c, src/plugin/sdl/sdl.c:
	  Don't call SDL_UpdateRects with 0 rectangles: it may crash. Fix
	  the close (x) window button in xdosemu.

2006-10-30  Bart

	* [r1648] src/env/video/text.c, src/plugin/X/X.c, src/plugin/X/X.h,
	  src/plugin/X/X_font.c, src/plugin/sdl/sdl.c:
	  Don't call X functions directly from SDL code, that won't work
	  with SDL libraries that are not directly linked with X. Added
	  more checks for x11.window availability. Fixed mouse/input focus
	  cursor blinking situation.

	* [r1647] src/plugin/sdl/sdl.c:
	  Initialize most of the X support before creating the first window
	  (except for window and font), where it was done previously.
	  Avoids some issues with dynamic loading.

	* [r1646] src/plugin/X/X_font.c:
	  Fix crash in SDL if X_font = "" (thanks Reinhard).

2006-10-29  Bart

	* [r1645] src/env/video/text.c, src/include/vgatext.h,
	  src/plugin/X/X.c, src/plugin/X/X_font.c, src/plugin/sdl/sdl.c:
	  Add X font support to the SDL plugin. There's a bit of a trick
	  involved (a second "Display") to receive all expose events. Did
	  some associated cleanup.

	* [r1644] src/plugin/X/Makefile, src/plugin/X/X.c,
	  src/plugin/X/X.h, src/plugin/X/X_font.c:
	  Moved X font handling into a seperate file with seperate static
	  variables, so X fonts can be used by SDL later.

	* [r1643] dist/dosemu:
	  Replace bash-isms in dosemu script with sh constructs.

	* [r1642] src/env/video/text.c, src/plugin/X/X.c:
	  Introduce a new Window in the X code, drawwindow, that is a
	  subwindow of either the fullscreen or the normal window, so can
	  be reparented (technique borrowed from SDL). The main advantage
	  is that the X server can take care of shift_x/shift_y for text
	  modes. Also no need to copy gc's any more. Fix crash for a too
	  eager update_cursor().

2006-10-28  Bart

	* [r1641] src/env/video/render.c, src/env/video/text.c,
	  src/include/render.h, src/include/vgatext.h, src/plugin/X/X.c,
	  src/plugin/sdl/sdl.c:
	  Create a "bitmap" text system in render.c that is shared by X and
	  SDL. Implemented line drawing (for mono underline) on the canvas.
	  The text cursor and underlining now go through the remapper on X.
	  Remove scaling from the previously used X calls (impossible with
	  X fonts). Screen updates now lock the surface during the whole
	  update for SDL; the SDL code pushes rectangles to be updated and
	  sends them in one go. Mode changes need to be checked before
	  locking the surface: moved the mode adjust calls out of the
	  common update code.

	* [r1640] src/arch/linux/async/signal.c, src/env/video/text.c,
	  src/include/vgatext.h, src/plugin/X/X.c, src/plugin/sdl/sdl.c,
	  src/plugin/term/terminal.c:
	  Remove update function in text_system struct. The only user was X
	  with XFlush but XFlush is not necessary if XPending is called
	  often enough. Moved event handler call in signal.c after update
	  calls to be sure of that. Similarly the mouse cursor update is
	  best placed before other updates.

	* [r1639] src/env/video/seqemu.c, src/env/video/text.c,
	  src/env/video/vesa.c, src/include/vgatext.h, src/plugin/X/X.c,
	  src/plugin/sdl/sdl.c, src/plugin/term/terminal.c:
	  Remove X_resize_text_screen from text_system structure. Resizes
	  are done on demand by update_screen(); set vga.reconfig.re_init
	  to be sure of that in all cases.

	* [r1638] src/emu-i386/simx86/codegen-sim.c:
	  Correct DAA & DAS in simulator.

	* [r1637] src/emu-i386/simx86/codegen-x86.c:
	  Implement AAD and AAM replacements for x86-64.

	* [r1636] src/emu-i386/simx86/codegen-x86.c:
	  Implement JIT code for AAA,AAS,DAA, and DAS for x86-64 as they
	  are not available in long mode. Fixes FreeDOS debug which uses
	  DAA, in particular.

2006-10-26  Bart

	* [r1635] src/base/init/parser.y.in,
	  src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/codegen-x86.h, src/emu-i386/simx86/codegen.h,
	  src/emu-i386/simx86/cpu-emu.c, src/emu.c, src/include/cpu-emu.h:
	  Enable dynamic code generation for x86-64. Almost all generated
	  code is the same as for i386, but it's still a bit unstable, and
	  slower than simulation because of excessive page faulting: code
	  patching isn't working yet. But FreeDOS boots. Only enabled for
	  $_cpu_emu="vm86", not for the default "off" for now. Marked
	  InCompiledCode as volatile to simplify asm constraints.

	* [r1634] src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-sim.h,
	  src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/codegen-x86.h, src/emu-i386/simx86/codegen.h,
	  src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/interp.c,
	  src/emu-i386/simx86/trees.c:
	  cpuemu: replaced use of inline asm __memcpy by memcpy. GCC does a
	  good job now and asm __memcpy isn't portable.

	* [r1633] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/fp87-x86.c:
	  cpuemu: fix asm compilation on x86-64.

2006-10-24  Bart

	* [r1632] src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/emu-i386/simx86/sigsegv.c, src/plugin/commands/builtins.h:
	  Improve cpuemu fault handling and diagnostics; avoid a few more
	  page faults in DOSEMU code.

	* [r1631] src/base/init/config.c, src/dosext/dpmi/dpmi.c,
	  src/emu-i386/simx86/codegen-x86.c, src/include/emu.h:
	  simx86: shortened asm code, check correct CPU feature flags for
	  prefetcht0, and fix DPMI Jazz Jackrabbit crash with
	  $_cpu_emu="vm86".

2006-10-23  Bart

	* [r1630] src/base/init/parser.y.in,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/cpatch.c,
	  src/emu-i386/simx86/sigsegv.c, src/include/cpu-emu.h:
	  Link in most of the JIT code for x86-64. Small crucial parts
	  still disabled.

	* [r1629] src/arch/linux/debugger/Makefile,
	  src/arch/linux/dosext/sound/midid/Makefile,
	  src/tools/periph/Makefile:
	  Use LDFLAGS without -rdynamic to link misc binaries.

	* [r1628] etc/dosemu.conf, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in, src/emu-i386/simx86/Makefile,
	  src/emu-i386/simx86/codegen-arch.h,
	  src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/codegen.h,
	  src/emu-i386/simx86/cpatch.c, src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/emu86.h, src/emu-i386/simx86/fp87-sim.c,
	  src/emu-i386/simx86/fp87-x86.c, src/emu-i386/simx86/interp.c,
	  src/emu-i386/simx86/sigsegv.c, src/emu-i386/simx86/trees.c,
	  src/include/cpu-emu.h, src/include/emu.h:
	  Select JIT or simulated CPU emulation at runtime instead of at
	  compiletime.

2006-10-22  Bart

	* [r1627] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/emu-i386/cpu.c,
	  src/include/emu.h:
	  Replaced tls_setup hack with something just a little cleaner. The
	  64bit fs and gs bases are restored in signal handlers. To avoid
	  an expensive syscall it is first checked if the bases really need
	  to be set by comparing the memory fs/gs and the original base
	  point to. There is a very small chance that that involves a page
	  fault, which needs to be fixed up.

	* [r1626] src/include/cpu.h:
	  Fix FPU save/restore on x86-64.

2006-10-20  Bart

	* [r1625] src/base/misc/Makefile, src/base/misc/fatfs.c,
	  src/base/misc/fatfs.h, src/base/misc/fatfs_boot.S:
	  Simplify linking in fatfs_boot.S, similar to bootsect.S before.

	* [r1624] src/tools/periph/Makefile, src/tools/periph/bootsect.S,
	  src/tools/periph/bootsect.h, src/tools/periph/mkfatimage.c,
	  src/tools/periph/mkfatimage16.c:
	  Link compiled bootsect.S directly into mkfatimage* instead of
	  using hex. Get rid of things that are overwritten in bootsect.S;
	  I can't find anything left (C) Peter Norton.

2006-10-19  Bart

	* [r1623] src/base/bios/Makefile, src/env/video/remap_asm.S:
	  Adjustments for older GCCs and 64-bit noexecstack.

	* [r1622] src/base/bios/Makefile, src/base/bios/bios.S,
	  src/dosext/dpmi/dpmisel.S, src/env/video/Makefile,
	  src/env/video/remap_asm.S, src/env/video/vesabios.S,
	  src/env/video/vesabios_pm.S, src/include/macros86.h:
	  Added sections to assembly files to mark a non-executable stack.
	  (suggestion from James Courtier-Dutton, linux-msdos). For bios.S
	  and vesabios.S it was necessary to compile without intermediate
	  linking, which adds a few "-bios_f000"'s but simplifies Makefiles
	  considerably.

	* [r1621] src/dosext/dpmi/dpmi.c:
	  Fix C problem with wrongly placed label.

	* [r1620] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmisel.S, src/dosext/dpmi/dpmisel.h:
	  Use IRET to jump into DPMI client code on x86-64. It's nice
	  because it pops up ss:esp even for same-privilege transfers from
	  long mode. To avoid the infamous 16-bit stack ESP corruption
	  issue the iret stack frame is allocated at 0x100000000 or a
	  similar address with bits 16-31 zero.

2006-10-18  Bart

	* [r1619] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c,
	  src/arch/linux/debugger/dis8086.c,
	  src/arch/linux/mapping/mapping.c, src/base/misc/ioctl.c,
	  src/dosext/dpmi/dpmi.c, src/dosext/dpmi/dpmi.h,
	  src/emu-i386/cpu.c, src/emu-i386/do_vm86.c,
	  src/emu-i386/simx86/cpu-emu.c, src/emu.c, src/env/video/vc.c,
	  src/include/cpu.h, src/include/emu.h, src/include/vm86plus.h,
	  src/plugin/term/terminal.c:
	  Cleaned up vm86plus.h. Created a new init_handler function in
	  signal.c which takes care of flags, %fs, %gs etc. dis8086 64-bit
	  compat. Create dpmi_iret_setup for exiting signal handlers to
	  DPMI client code.

	* [r1618] src/arch/linux/debugger/dis8086.c,
	  src/arch/linux/debugger/mhpdbgc.c, src/base/misc/dump.c,
	  src/emu-i386/simx86/cpu-emu.c, src/env/video/instremu.c,
	  src/include/dis8086.h:
	  Replaced disassembler of unclearly licensed origin by one adapted
	  from 2asm via MAME and DOSBox.

2006-10-17  Bart

	* [r1617] src/plugin/commands/unix.c:
	  Fixed quiet switching for dosemu in dumb mode with a given
	  command.

2006-10-12  Bart

	* [r1616] src/dosext/dpmi/dpmi.c, src/dosext/dpmi/dpmisel.S:
	  Improve direct DPMI switch jmp for x86-64: don't use instructions
	  that change flags after popf, eliminate use of r10, and tell gcc
	  that r8 and r9 are clobbered.

2006-10-11  Bart

	* [r1615] src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/dosext/dpmi/dpmisel.S,
	  src/dosext/dpmi/dpmisel.h:
	  Removed sigsetjmp/longjmp usage for DPMI again. A tiny amount of
	  assembly can do it more efficiently (saves the sigprocmask
	  syscall that sigsetjmp makes).

2006-10-10  Bart

	* [r1614] src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmisel.S, src/dosext/dpmi/dpmisel.h,
	  src/emu-i386/cpu.c, src/emu-i386/simx86/cpu-emu.c:
	  Implemented native DPMI code execution for x86-64. Only tested
	  with a simple Openwatcom "wcc hello.c" but that works. It needed
	  a few workarounds involving %ss and in particular a nasty hack
	  for %fs (used for TLS).

	* [r1613] src/emu-i386/simx86/codegen-x86.h,
	  src/emu-i386/simx86/codegen.h, src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/protmode.c, src/include/emu-ldt.h:
	  Change lots of long * to int * in CPUEMU. Now basic DPMI works
	  for $_cpu_emu="full" on x86-64.

	* [r1612] src/arch/linux/async/debug.c:
	  Add an extra backtrace without full (in case gdb with full
	  fails), and a simple backtrace using glibc backtrace(), for
	  suid-root.

	* [r1611] src/base/async/int.c, src/dosext/dpmi/dpmi.c,
	  src/include/Asm/ldt.h:
	  Changed lots of longs to int in the DPMI and LDT code, and a few
	  for int15(extmem). Now DPMI LDT entry allocation works for 64bit.

	* [r1610] src/arch/linux/mapping/mapping.c:
	  Map DPMI, LFB, and hardware RAM high memory into the first 2G of
	  address space on x86-64 using MAP_32BIT.

	* [r1609] src/arch/linux/debugger/mhpdbgc.c,
	  src/emu-i386/simx86/sigsegv.c, src/include/mhpdbg.h:
	  Fix dosdebug (ldt, symbol reading) and cpu exception printf for
	  64-bit.

	* [r1608] src/dosext/dpmi/dpmi.c,
	  src/emu-i386/simx86/codegen-sim.c, src/include/bitops.h:
	  Replaced simulated BITOP code by non-self-modifying code, adding
	  the used change_bit and find_bit_r inline functions to bitops.h.
	  Some more long->int conversions for 64bit compatibility.

2006-10-08  Bart

	* [r1607] src/include/cpu.h, src/include/timers.h:
	  Fix rdtsc (fixes random slow-downs and hangs) and unix.com in
	  64-bit. Getting more usable.

	* [r1606] src/plugin/sdl/sdl.c:
	  Tweak fullscreen mode selection (for 320x200 you now get 640x400
	  instead of 640x350) in SDL, and work around a crash for fbdev
	  etc.

	* [r1605] src/plugin/X/X.c, src/plugin/X/screen.c,
	  src/plugin/X/screen.h, src/plugin/sdl/sdl.c:
	  Move X dependent part of copy/paste support into screen.c.
	  Support copy/paste with SDL/X11.

	* [r1604] src/plugin/X/X_keysyms.c, src/plugin/X/keyb_X_keycode.c:
	  Fix Alt-Gr handling with Xorg 7.1 (Reinhard & Michael Karcher)

	* [r1603] src/env/video/vc.c:
	  Fix i386 compilation.

	* [r1602] default-configure:
	  Fix configure with environment variables.

	* [r1601] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/base/misc/dump.c,
	  src/base/misc/utilities.c, src/emu-i386/cpu.c,
	  src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/sigsegv.c,
	  src/emu-i386/simx86/syncpu.h, src/env/video/vc.c,
	  src/include/cpu-emu.h, src/include/cpu.h, src/include/emu.h:
	  Implemented proper x86_64 signal handling. Have just one sigalrm
	  handler. Fix error() to not mysteriously give different output on
	  stderr compared to boot.log. Very basic stuff works now (freedos
	  dir/exitemu).

	* [r1600] src/base/misc/dump.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/dosext/dpmi/msdos.c,
	  src/dosext/mfs/mfs.c, src/dosext/mfs/mfs.h,
	  src/dosext/net/net/ipx.c, src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-sim.h, src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/fp87-sim.c, src/emu-i386/simx86/host.h,
	  src/emu-i386/simx86/interp.c, src/include/cpu.h,
	  src/include/dos2linux.h, src/plugin/X/X.c, src/plugin/X/screen.c,
	  src/plugin/term/keyb_slang.c, src/plugin/term/terminal.c:
	  More 64-bit compatibility, mostly changing "long" to "int".

2006-10-07  Bart

	* [r1599] src/env/video/vgaemu.c, src/include/vgaemu.h:
	  Make vga.mem.scratch_page a void * to avoid having to shift all
	  the time, and 'unsigned int' did not suffice for x86-64 any more.

	* [r1598] src/arch/linux/debugger/dosdebug.c,
	  src/arch/linux/debugger/mhpdbg.c,
	  src/arch/linux/debugger/mhpdbgc.c, src/base/bios/hlt.c,
	  src/base/bios/int10.c, src/base/bios/setup.c,
	  src/base/dev/dma/dma.c, src/base/dev/pic/pic.c,
	  src/base/init/config.c, src/base/init/init.c,
	  src/base/init/memcheck.c, src/base/mouse/mouse.c,
	  src/base/speaker/console_speaker.c, src/dosext/dpmi/msdos.c,
	  src/dosext/drivers/aspi.c, src/dosext/mfs/lfn.c,
	  src/dosext/mfs/mangle.c, src/dosext/mfs/mfs.c,
	  src/dosext/mfs/mscdex.c, src/dosext/misc/emm.c,
	  src/dosext/misc/xms.c, src/dosext/sound/sound.c, src/emu.c,
	  src/env/video/remap.c, src/env/video/remap_pent.c,
	  src/env/video/vga.c, src/include/dos2linux.h,
	  src/include/memory.h, src/plugin/commands/blaster.c,
	  src/plugin/translate/Makefile, src/plugin/translate/translate.c:
	  Fix all x86-64 warnings in the main DOSEMU code. 64bit DOSEMU
	  links now.

	* [r1597] src/emu-i386/simx86/cpatch.c,
	  src/emu-i386/simx86/cpu-emu.c, src/emu-i386/simx86/host.h,
	  src/emu-i386/simx86/interp.c, src/emu-i386/simx86/memory.c,
	  src/emu-i386/simx86/sigsegv.c, src/include/emu-ldt.h:
	  Fix x86-64 simx86 warnings.

	* [r1596] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/arch/linux/mapping/mapfile.c,
	  src/arch/linux/mapping/mapping.c,
	  src/arch/linux/mapping/mapshm.c, src/base/dev/misc/rtc.c,
	  src/base/misc/disks.c, src/base/misc/dos2linux.c,
	  src/base/misc/dump.c, src/base/misc/fatfs.c,
	  src/base/misc/ioctl.c, src/base/misc/smalloc.c,
	  src/dosext/dpmi/dpmi.c, src/dosext/dpmi/msdos.c,
	  src/dosext/dpmi/vxd.c, src/dosext/dpmi/windefs.h,
	  src/emu-i386/cpu.c, src/emu-i386/do_vm86.c,
	  src/emu-i386/simx86/Makefile, src/emu-i386/simx86/codegen-sim.c,
	  src/emu-i386/simx86/codegen-x86.c, src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/fp87-x86.c, src/emu-i386/simx86/sigsegv.c,
	  src/emu-i386/simx86/trees.c, src/include/bitops.h,
	  src/include/cpu-emu.h, src/include/cpu.h, src/include/emu.h,
	  src/include/vm86plus.h:
	  Another batch of x86_64 changes. Using the native x86_64
	  sigcontext after all, where _rip is EIP or RIP (from DOSEMU
	  itself) and _eip is always 32-bit.

2006-10-06  Bart

	* [r1595] src/dosext/dpmi/dpmi.c, src/dosext/dpmi/dpmi.h,
	  src/env/video/hgc.c, src/env/video/instremu.c,
	  src/env/video/remap.c, src/env/video/remap_asm.S,
	  src/env/video/text.c, src/env/video/vbe.c, src/env/video/vc.c,
	  src/env/video/vesa.c, src/env/video/vesabios_pm.S,
	  src/env/video/vgaemu.c, src/env/video/video.c, src/include/cpu.h,
	  src/include/memory.h, src/include/termio.h, src/include/vgaemu.h,
	  src/include/video.h:
	  First batch of x86-64 compatibility changes, mostly relating to
	  integer to pointer conversions. instremu is most affected.

2006-10-05  Bart

	* [r1594] src/arch/linux/Makefile.main:
	  Correct "tail +9" command to "tail -n +9". Closes #1516259.

	* [r1593] src/arch/linux/debugger/dis8086.c, src/dosext/misc/emm.c,
	  src/env/video/vc.c:
	  Fix gcc-4.2 warnings.

	* [r1592] src/arch/linux/mapping/mapfile.c,
	  src/arch/linux/mapping/mapping.c,
	  src/arch/linux/mapping/mapshm.c, src/base/misc/hma.c,
	  src/dosext/dpmi/memory.c, src/dosext/misc/emm.c, src/emu.c,
	  src/env/video/dualmon.c, src/env/video/hgc.c,
	  src/env/video/matrox.c, src/env/video/vc.c,
	  src/env/video/vgaemu.c, src/include/mapping.h:
	  Change mapping definitions to be more similar to the libc
	  prototypes, to save on casting (particularly for x86-64, later).
	  Handle alias maps via a separate alias_mapping() function because
	  here are two pointers instead of pointer + offset.

	* [r1591] src/include/memory.h:
	  Fix gcc warning in cmos.c.

	* [r1590] src/dosext/dpmi/dpmi.c, src/emu-i386/simx86/cpu-emu.c:
	  Basic cpu-emu DPMI fixes. At least Jazz Jackrabbit starts now,
	  but it's still not very stable.

	* [r1589] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/emu-i386/simx86/cpu-emu.c,
	  src/include/cpu-emu.h, src/include/cpu.h:
	  Do not store the dpmi retcode in _eax any more, but return it
	  using the normal C mechanism. There are also some basic cpuemu
	  DPMI fixes.

2006-10-04  Bart

	* [r1588] src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/dosext/dpmi/dpmisel.S,
	  src/dosext/dpmi/dpmisel.h:
	  Clean up unused returns, marking functions "noreturn". Move some
	  some more asm to dpmisel.S, and make dpmisel() as small as
	  possible. Using dpmisel() as %cs for the intermediate jmp just
	  confuses the selector checks so this isn't implemented after all.
	  Avoid various casts.

	* [r1587] src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/emu-i386/cpu.c,
	  src/emu-i386/simx86/sigsegv.c, src/env/video/vgaemu.c,
	  src/include/cpu.h:
	  Remove _emu_stack_frame. Use a special static eflags_fs_gs struct
	  to save and restore those, and handle the rest using the real CPU
	  segment registers, using asm macros.

	* [r1586] src/dosext/dpmi/dpmi.c:
	  Eliminate one-time indirect DPMI switch to save FPU context. It's
	  not necessary any more after inheriting it from vm86.

2006-10-03  Bart

	* [r1585] src/dosext/dpmi/dpmi.c, src/emu-i386/cpu.c,
	  src/emu-i386/do_vm86.c:
	  Do not save and restore the emulator FPU state (only VM86 and
	  DPMI states): savefpstate (fsave) also resets the current FPU
	  state which is good enough for calling FPU-using routines.

	* [r1584] src/base/dev/misc/rtc.c:
	  Replace 1e6 by 1000000: no need for floating point here.

	* [r1583] src/base/bios/bios.S, src/dosext/dpmi/Makefile,
	  src/dosext/dpmi/dpmi.c, src/dosext/dpmi/dpmisel.S,
	  src/dosext/dpmi/dpmisel.h, src/dosext/dpmi/msdos.c,
	  src/dosext/dpmi/vxd.c, src/include/bios.h:
	  Move all protected mode HLTs and the intermediate direct DPMI jmp
	  to a seperate memory area from the BIOS, and point dpmi_sel() to
	  that.

2006-10-01  Bart

	* [r1582] configure, configure.ac:
	  Better fix for configure (the previous one only worked with one
	  option).

2006-09-30  Bart

	* [r1581] configure, src/include/config.h.in,
	  src/plugin/kbd_unicode/configure,
	  src/plugin/kbd_unicode/include/kbd_unicode_config.h.in,
	  src/plugin/sdl/configure:
	  Regenerate autoconf-generated files with autoconf 2.60a.

	* [r1580] configure.ac:
	  Fix argument issue with calling default-configure from configure.

	* [r1579] src/base/init/lexer.l.in, src/base/init/parser.y.in:
	  Use strtoul to parse dosemu.conf numbers so that hardware ram etc
	  work with negative addresses.

	* [r1578] etc/dosemu.conf, src/arch/linux/mapping/mapping.c,
	  src/base/misc/utilities.c, src/dosext/dpmi/memory.c,
	  src/include/mapping.h, src/include/utilities.h:
	  Use non-zero mmap target addresses without MAP_FIXED. This avoids
	  the need to parse /proc/self/maps. Make (auto) the new default
	  for $_dpmi_base. Change dpmi_alloc_pool for $_dpmi_base=(auto) to
	  reject negative addresses; it will then try an address 128MB past
	  the current brk limit which is fairly close to the old default.

	* [r1577] src/arch/linux/mapping/mapfile.c, src/env/video/vgaemu.c:
	  Move VGAEMU LFB memory out of the shared memory pool (it can be
	  anonymous). Now the memory pool can be mmap'ed rw instead of rwx
	  (better protection with exec-shield); just the DOS-accessible
	  memory is rwx.

	* [r1576] src/arch/linux/mapping/mapfile.c:
	  Implemented workaround for failed PROT_EXEC on noexec shm mounts.

	* [r1575] src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h:
	  Use sigsetjmp() and siglongjmp() to enter and return from DPMI,
	  instead of fiddling with CPU registers using assembly language,
	  greatly simplifying direct_dpmi_switch(). It will also be
	  portable to x86-64. The changes are as minimal as possible but
	  more cleanups can certainly be done (most of the _emu_stack_frame
	  can be eliminated for instance).

2006-09-28  Bart

	* [r1574] src/base/bios/bios.S, src/dosext/dpmi/dpmi.c,
	  src/include/memory.h:
	  Use a special mmap'ed area for direct dpmi switching. This avoids
	  using the BIOS for data transfers and (wrt Stas' solution) has
	  the advantage of working with -fpic/pie

2006-04-29  Bart

	* [r1573] src/plugin/term/terminal.c:
	  Streamline terminal character write and ACS table construction
	  routines. Don't use ACS characters when it's not necessary (the
	  external charset already contains the required characters); this
	  helps with $_external_charset="cp437" on xterm -k8 -font vga
	  (Putty makes no difference). Only use ACS characters that are
	  specified by the relevant terminfo entry.

	* [r1572] src/plugin/X/X.c:
	  Enable use of unicode fonts for $_X_font, such as uni-vga, but
	  also misc-fixed*iso10646-1. The logic assumes DOS codepage
	  encoding for fonts with 256 or less characters, and UCS-16
	  otherwise.

	* [r1571] src/base/bios/bios.S, src/dosext/dpmi/dpmi.c,
	  src/include/memory.h:
	  Apply %cs segment limit workaround for direct_dpmi_switch on
	  exec-shield kernels. Fixes #1478658: Crash on every DPMI program
	  under Linux 2.6.16.

2006-04-11  Bart

	* [r1570] src/include/pci.h:
	  Avoid problems with <sys/pci.h> by just defining the PCI_
	  constants ourselves.

	* [r1569] src/base/init/config.c:
	  Moved -2 -3 etc option parsing after config file parsing so they
	  actually work.

2006-03-11  Bart

	* [r1568] src/env/video/render.c:
	  Scale small modes towards ~640x400 (shows testcase for #1443448
	  in the right proportions)

2006-03-05  Bart

	* [r1567] src/emu-i386/cputime.c:
	  Fix TSC handling during DOSEMU freeze. Fixes #1441256 keyboard
	  issue (current cvs)

2006-03-04  Stas

	* [r1566] src/base/bios/bios.S, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/dosext/dpmi/msdos.c,
	  src/dosext/dpmi/msdos.h, src/include/bios.h:
	  Preserve the PM regs unpon the realmode interrupts. That allows
	  to merge the msdos_pre_exec() with msdos_pre_extender(), and
	  msdos_post_exec() became completely unnecessary and removed. Also
	  cleaned up the dpmi_init() and removed the "psp" field from the
	  DPMI struct (msdos.c now handles PSP)

2006-03-04  Bart

	* [r1565] src/tools/periph/Makefile:
	  Fix dependency for bootsect.h after make distclean.

2006-03-04  Stas

	* [r1564] src/dosext/dpmi/dpmi.c, src/dosext/dpmi/dpmi.h,
	  src/dosext/dpmi/msdos.c, src/dosext/dpmi/msdos.h:
	  Remove wrong env-mangling code (#1442375)

2006-03-04  Bart

	* [r1563] src/include/vc.h, src/tools/tools86.c:
	  Fix GCC warnings.

	* [r1562] src/commands/Makefile, src/plugin/commands/Makefile,
	  src/tools/Makefile, src/tools/periph/Makefile:
	  Use dependencies for commands and tools; using intermediate .o
	  files was the easiest (and GCC-version-independent) way to do
	  this. Fixes #1415598 (build deps for commands are missing).

2006-03-04  Stas

	* [r1561] src/base/misc/utilities.c:
	  reapplying

	* [r1560] configure.ac:
	  reapplying

2006-03-04  Bart

	* [r1559] src/env/video/render.c:
	  Dirty everything in vgaemu re-inits. Fixes #1407567 (vgaemu
	  problem with stdemo).

2006-03-03  Bart

	* [r1558] (all directories)
	  Set ignore properties on directories.

	* [r1557] src/base/serial/ser_init.c, src/dosext/misc/xms.c:
	  Replace $Header$ by $ Id: $ (svn only understands $ Id: $)

	* [r1556] src/commands/cmdline.c, src/commands/detect.h,
	  src/commands/dosdbg.c, src/commands/emulib.h,
	  src/commands/emumouse.c, src/commands/lredir.c,
	  src/commands/msetenv.c, src/commands/precompiled/autoexec.bat,
	  src/commands/turboc.cfg, src/commands/unix.c,
	  src/commands/xmode.c:
	  Set svn:eol-style to CRLF for all DOS text files.

2006-02-28  Bart

	* [r1555] src/include/vm86plus.h:
	  Don't set force_return_for_pic. I'll leave it in the macro like
	  this for now, so if we really find a testcase we can re-enable
	  it.

	* [r1554] src/arch/linux/async/signal.c, src/base/dev/pic/pic.c,
	  src/dosext/dpmi/dpmi.c:
	  More correct handling of VIP; only have it set when VIF is not
	  set, and and a hardware interrupt is requested. Optimize DPMI so
	  that it does not return to dosemu code when interrupts are
	  pending but VIF is not set.

	* [r1553] src/include/cpu.h:
	  Change pointer casts to use unions (to allow -O2 without
	  -fno-strict-aliasing). This does not allow removal of
	  -fno-strict-aliasing but is a step in that direction.

2006-02-27  Stas

	* [r1552] src/dosext/dpmi/vxd.c, src/dosext/dpmi/windefs.h:
	  Compile in the win32s support. It is still not activated, but at
	  least it is now clear what functions needs to be implemented (not
	  too much).

2006-02-27  Bart

	* [r1551] src/base/init/config.c, src/base/init/init.c,
	  src/base/init/parser.y.in, src/base/misc/utilities.c,
	  src/base/serial/ser_init.c, src/env/video/vc.c,
	  src/env/video/video.c, src/include/emu.h,
	  src/include/utilities.h, src/include/video.h,
	  src/plugin/gpm/mouse_gpm.c, src/plugin/kbd_unicode/keyb_raw.c,
	  src/plugin/term/mouse_xterm.c, src/plugin/term/term_core.c:
	  Replaced is_console(), check_console() and config.console by a
	  single on_console() function. Moved console config scrubbing to
	  config_post_process(). Made scr_state_init() static.

2006-02-26  Stas

	* [r1550] src/dosext/dpmi/msdos.c:
	  Never copy >64K

	* [r1549] src/dosext/dpmi/dpmi.c, src/emu.c:
	  unused includes

2006-02-24  Bart

	* [r1548] src/base/bios/int10.c:
	  set cursor shape after font height adjustments in int10/ah=0.
	  Fixes #1418023 duke3d and cursor at wrong location

	* [r1547] src/base/init/parser.y.in:
	  Move getpwuid() check to only do this when DOSEMU is executed
	  suid or sudo: there is no need to access /etc/passwd when running
	  non-suid.

2006-02-20  Stas

	* [r1546] src/base/bios/bios.S, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/msdos.c, src/dosext/dpmi/vxd.c,
	  src/dosext/dpmi/vxd.h, src/dosext/misc/emm.c, src/include/bios.h:
	  Cosmetic stuff. Mostly moving the VXD code from dpmi.c to vxd.c.

2006-02-20  Bart

	* [r1545] src/plugin/commands/emumouse.c:
	  Fix printf warnings.

2006-02-16  Stas

	* [r1544] src/base/misc/fatfs.c:
	  Make sure to add command.com/config.sys/autoexec.bat to FAT image
	  before the virtual floppy overflows.

2006-02-14  Stas

	* [r1543] src/emu.c:
	  Regard config.exitearly better than before.

	* [r1542] src/base/misc/fatfs.c:
	  This makes PartitionMagic happy again.

	* [r1541] src/base/misc/disks.c:
	  Replaced a few early leavedos() with "exitearly" to avoid
	  crashes.

	* [r1540] src/base/bios/bios.S:
	  Added Ctrl-Alt-Del handling into bios. Dosemu handling still
	  overrides though, as it seem to work "better" for some reasons.

	* [r1539] src/base/dev/pic/pic.c:
	  This should fix the keyboard bug of #1430175

2006-02-13  Stas

	* [r1538] src/dosext/dpmi/dpmi.c:
	  Fix corner case with VIF handling (#1430175)

	* [r1537] src/base/dev/pic/pic.c:
	  This hack is no longer necessary.

	* [r1536] src/dosext/dpmi/msdos.c, src/include/doshelpers.h:
	  Translation for dosemu PRINT_STRING helper.

2006-02-11  Stas

	* [r1535] src/include/dos2linux.h, src/plugin/commands/commands.c:
	  Extended dpmi.com

2006-02-09  Stas

	* [r1534] src/base/misc/disks.c, src/base/misc/fatfs.c,
	  src/include/disks.h, src/plugin/commands/lredir.c:
	  - Made it possible to boot FreeDOS from virtual floppy
	  - Scan boot dir only once for any DOS, instead of 2 times for FreeDOS
	    and 5 for other DOSes. (not scanning for FreeDOS at all makes it
	    impossible to boot from virtual floppy)
	  - lredir now tries the FAT automatically when source redirection
	    doesnt exist (for the recent redir-duplication feature)

	* [r1533] src/emu-i386/do_vm86.c, src/emu.c, src/include/emu.h:
	  Shut up do_call_back() a little. (part of #1422921)

2006-02-08  Stas

	* [r1532] src/dosext/dpmi/dpmi.c, src/emu-i386/do_vm86.c,
	  src/emu.c, src/include/emu.h:
	  Call the hardware stuff from the DPMI too. (part of #1422921)

	* [r1531] src/base/init/parser.y.in:
	  Print more info about "illegal user"

2006-02-08  Bart

	* [r1530] src/dosext/mfs/lfn.c, src/dosext/mfs/mfs.c,
	  src/dosext/mfs/mfs.h:
	  Merge common rmdir, mkdir, and rename MFS code between SFN and
	  LFN. Fix problem with opening files in the root directory. Honour
	  read only drives in the LFN code. Fixes #1426126 (LFN problem
	  with current DosEmu)

2006-02-07  Bart

	* [r1529] src/base/init/lexer.l.in, src/base/init/parser.y.in,
	  src/base/init/parsglob.h:
	  Remove pointer casts and parsglob.h in the parser for better type
	  safety. Use the Bison types typed_expr, int_expr, bool_expr,
	  real_expr, and string_expr instead of the casts in V_VAL, I_VAL,
	  B_VAL, R_VAL, and S_VAL. An integer "expression" now derives from
	  a typed_expr (the union); its fp counterpart is a
	  "real_expression". Remove unused TIMINT and OPTIONS tokens. Moved
	  string quote removal from the lexer to the parser to be able to
	  handle 'a' (and not "a" or a) cleanly as a character integer
	  constant.

2006-02-06  Stas

	* [r1528] src/dosext/dpmi/msdos.c:
	  Fix DPMI corrupting the EMS state. (#1415332)

2006-02-03  Bart

	* [r1527] src/base/init/parser.y.in, src/base/init/parsglob.h:
	  Made the parser 64-bit clean.

2006-02-02  Stas

	* [r1526] src/base/dev/pic/pic.c, src/dosext/sound/sound.c,
	  src/include/pic.h:
	  Reenabled sound hack. Apparently it won't be replaced by the new
	  code ever before 1.4.

	* [r1525] src/emu.c:
	  use LOWMEM()

	* [r1524] src/base/dev/misc/rtc.c:
	  pic_untrigger() on ACK.

2006-02-01  Stas

	* [r1523] src/base/misc/smalloc.c, src/dosext/dpmi/memory.c,
	  src/include/smalloc.h:
	  - Added uncommitted memory support to smalloc
	  - Used that to make
	    the free()'d DPMI memory uncommitted (FR#1417852)

	* [r1522] src/base/bios/bios.S, src/base/bios/setup.c,
	  src/include/memory.h:
	  Fix intvectors 1e, 41, 46. This makes it possible to use win98dos
	  (even with $_lfn_support=(on)), because this fix stops the memory
	  corruptions which happen when win98dos *writes* to the disk
	  tables.

	* [r1521] src/base/async/int.c:
	  This must be error().

	* [r1520] src/base/bios/hlt.c:
	  Take start_addr into account for hlt.

2006-01-31  Bart

	* [r1519] dist/dosemu:
	  Fix dosemu script (#1420769)

2006-01-31  Stas

	* [r1518] src/base/async/int.c:
	  Fixed "bpint" and "tf" of dosdebug.

2006-01-31  Bart

	* [r1517] src/arch/linux/mapping/mapfile.c,
	  src/base/async/dyndeb.c, src/base/misc/hma.c,
	  src/dosext/misc/emm.c, src/env/video/matrox.c,
	  src/env/video/vgaemu.c:
	  Remove various to-int-casts of (mostly mmap'ed) pointers. The one
	  in matrox.c was a bug with flex-mmap.

2006-01-30  Bart

	* [r1516] src/dosext/misc/xms.c, src/env/video/vgaemu.c:
	  Fix Bochs vgabios (and manual mode setting in general)
	  interaction with vga.mem.wrap. Let XMS register all 6 relevant
	  bytes within the hlt table (that aren't all hlt, but that does
	  not matter). Fixes #1418856.

	* [r1515] src/emu-i386/cpu.c, src/emu-i386/simx86/cpu-emu.c,
	  src/emu-i386/simx86/interp.c, src/emu-i386/simx86/protmode.c,
	  src/emu-i386/simx86/protmode.h, src/emu-i386/simx86/sigsegv.c,
	  src/emu-i386/simx86/syncpu.h:
	  Use "int" instead of "long" for most things referring to 32-bit
	  entities in cpuemu (for 64 bit compatibility), and changed the
	  related printf()s.

	* [r1514] src/base/serial/ser_init.c, src/dosext/dpmi/msdos.c,
	  src/dosext/mfs/mfs.c, src/dosext/misc/emm.c,
	  src/dosext/net/net/ipx.c, src/emu-i386/simx86/interp.c,
	  src/env/video/vc.c, src/env/video/vesa.c, src/env/video/vgaemu.c,
	  src/plugin/sdl/sdl.c:
	  Change %#x with casts to %p without casts in debug printf()s.

	* [r1513] src/env/video/vc.c, src/plugin/kbd_unicode/keyb_raw.c:
	  Remove ioctl casts that are unnecessary and wrong for 64=bit
	  code.

2006-01-28  Stas

	* [r1512] src/doc/HOWTO/EMUfailure.sgml:
	  Updated.

	* [r1511] src/base/dev/misc/rtc.c, src/emu-i386/do_vm86.c,
	  src/include/cmos.h:
	  Implemented the RTC periodic IRQ generator (better later than
	  never:) Closes FR#1406011. There are not too much of those
	  urgently missing/missed parts now. dosemu now only lacks the
	  proper LPT support, and well, the sound. The rest is there.

2006-01-28  Bart

	* [r1510] src/base/init/install.c:
	  Fix wrong strlen() in terminal_read().

	* [r1509] src/base/init/install.c, src/emu.c:
	  Fix disclaimer file content and behaviour with console_video on.

2006-01-28  Stas

	* [r1508] src/dosext/dpmi/dpmi.c:
	  "Linux DOSEMU" must die. ;-)

	* [r1507] src/base/async/int.c:
	  - Made kill_time() to use sigsuspend() instead of select()
	  - Removed some #if0'd stuff
	  - Removed precard_xxx and card_init since they seem to be unused

2006-01-28  Bart

	* [r1506] src/base/async/int.c, src/base/init/install.c,
	  src/base/init/parser.y.in, src/base/misc/dos2linux.c,
	  src/base/misc/utilities.c, src/emu.c, src/include/dos2linux.h,
	  src/include/dosemu_debug.h:
	  Move disclaimer and install prompts from dos_post_boot to banner
	  code, using BIOS calls.

2006-01-27  Stas

	* [r1505] src/dosext/misc/emm.c:
	  Release EMS memory upon soft-reboot, or it overflows.

	* [r1504] src/base/misc/disks.c:
	  Report virtual floppy as read-only.

	* [r1503] src/dosext/dpmi/dpmi.c, src/dosext/dpmi/msdos.c,
	  src/dosext/dpmi/msdos.h:
	  Don't let the dpmi_exec code to touch the EMS page. (probably
	  fixes #1415332)

	* [r1502] src/base/dev/misc/rtc.c:
	  Next bunch of the copy/paste fixes. :(

	* [r1501] src/base/dev/misc/rtc.c:
	  Nasty copy/paste bugs of the previous commit.

2006-01-26  Stas

	* [r1500] src/base/async/int.c, src/base/dev/misc/cmos.c,
	  src/base/dev/misc/rtc.c, src/include/cmos.h:
	  - Sorted and applied all the Eric Auer's RTC fixes, except those
	    that look wrong.
	  - Did some (rather heavy-handed) cleanups and
	    reorganizations, along with the minor fixes here and there, in a
	    preparation to the periodic IRQ generator.
	  - Got rid of pic_seti()/rtc_int8() usage.

	* [r1499] src/commands/ems.S, src/include/emm.h:
	  - Use a separate message for ems.sys when the XMS is disabled. -
	  Made ems.sys to respect the version again. Note that the ver
	  checking was introduced because ems.sys had a severe bug which
	  caused the obscure lock-ups for some programs. And besides, what
	  was the reason behind *that* way of disabling the check? -
	  Incremented ems.sys version

2006-01-25  Bart

	* [r1498] src/base/async/int.c:
	  Correct si and bp in process_master_boot_record(). Make int.c
	  64-bit clean.

2006-01-25  Stas

	* [r1497] src/base/misc/fatfs.c:
	  Fix a few fat bugs in FAT12

2006-01-23  Bart

	* [r1496] src/dosext/mfs/lfn.c, src/dosext/mfs/mfs.c:
	  Improve UNC support so that it works with environment variables,
	  LFNs and "dir" (depending on the command.com that is used).

	* [r1495] src/dosext/mfs/mfs.c, src/dosext/mfs/mfs.h:
	  Added basic support for UNC pathnames in the style
	  \\LINUX\FS\BIN\LS, using a permanent "drive 32".

2006-01-22  Stas

	* [r1494] src/plugin/commands/lredir.c:
	  Convinced myself that &ptr->memb is not a dereference and
	  therefore is safe to use with the DOS addresses.

2006-01-22  Bart

	* [r1493] dist/dosemu, dist/dosemu.bindist, dist/dosemu.systemwide,
	  man/Makefile, man/dosemu.1.in, man/dosemu.bin.1.in,
	  src/arch/linux/Makefile.main, src/base/async/int.c,
	  src/base/init/Makefile, src/base/init/config.c,
	  src/base/init/install.c, src/base/init/parser.y.in, src/emu.c,
	  src/include/emu.h:
	  Moved all the dosemu script questions to C. This allows asking in
	  the DOSEMU window after booting if possible (so window managers
	  don't need to specify "run in terminal" anymore), and avoiding
	  question if not necessary (if the user already installed a DOS
	  manually). Propagate dosemu -install option to dosemu.bin -i
	  option. Remove X first start info, users probably know how to
	  operate the "x" button on an X window.

2006-01-21  Stas

	* [r1492] src/plugin/commands/lredir.c:
	  Carefull with the DOS memory accesses.

	* [r1491] src/plugin/commands/lredir.c:
	  Implemented an ability for lredir to replicate the redirection of
	  an existing drives, even the not redirected ones.

	* [r1490] etc/global.conf, src/base/misc/disks.c,
	  src/base/misc/fatfs.c, src/base/misc/fatfs.h,
	  src/base/misc/fatfs_boot.S, src/base/misc/ioctl.c,
	  src/dosext/mfs/mfs.c, src/include/disks.h,
	  src/include/dos2linux.h, src/include/fatfs.h:
	  - Implemented FAT12 emulation.
	  - Made $_vbootfloppy, $_floppy_a etc to accept the directories.
	  - Made it possible to boot from a directory as from floppy
	    ($_vbootfloppy)
	  
	  Fixes (the ones from the top of my head):
	  - vol label must not contain slashes (NDD complains)
	  - vol label must not contain lowercase letters
	  - disabled the emusys hackery in fatfs: it was reverting the
	    effect of the subst_file_ext() and didn't work.
	  - made serial numbers unique for all drives
	  - fix crash in some cases when the boot system is unavailable
	    (fatfs_boot.S) And probably some more I cant recall...

	* [r1489] src/commands/ems.S, src/dosext/misc/xms.c:
	  Dont use internal XMS if it is disabled in the config.

2006-01-19  Stas

	* [r1488] src/base/misc/disks.c:
	  (cosmetic) This used to hide real bugs from gcc.

2006-01-19  Bart

	* [r1487] dist/dosemu, dist/dosemu.bindist, dist/dosemu.systemwide:
	  Use a clearer menu system for initial DOSEMU-FreeDOS
	  installation. I hope to convert most of this to C, to be executed
	  inside the DOSEMU window later.

	* [r1486] src/base/async/int.c, src/emu.c, src/include/emu.h:
	  Move liability disclaimer prompt to dos_post_boot in most
	  circumstances: no console video and using a directory DOS boot.

	* [r1485] dist/dosemu, dist/dosemu.bindist, dist/dosemu.systemwide,
	  dist/mkbindist, src/arch/linux/Makefile.main:
	  Split dosemu script into systemwide, non-systemwide, and common
	  sections, so some processing is simplified and can be done at
	  compiletime, not runtime.

2006-01-18  Stas

	* [r1484] src/base/misc/disks.c:
	  Fix 2 NULL-deref bugs.

2006-01-17  Bart

	* [r1483] src/dosext/net/net/ipx.c:
	  Use #define'd constant for IPX.

	* [r1482] src/dosext/drivers/cdrom.c, src/dosext/net/net/ipx.c:
	  Fix compiler warnings. The gcc-4.1 warning for ipx.c was a real
	  bug too.

2006-01-16  Bart

	* [r1481] src/dosext/mfs/lfn.c, src/dosext/mfs/mfs.c:
	  Store LFN volume label at offset 0x2c, and \0 at offset 0x130 for
	  int21/ax=714e. Fixes spaces problem of #1400179

	* [r1480] src/plugin/X/X.c:
	  Re-init font_width & font_height upon X mode re-init. Fixes
	  #1406522 xdosemu: cursor in text mode causes slight pollution.

2006-01-14  Bart

	* [r1479] src/dosext/mfs/lfn.c:
	  Accept * as wildcard spec for LFN volume labels (#1400179)

	* [r1478] src/env/video/crtcemu.c:
	  Set blanking start in crtc registers for VESA modes. Fixes
	  800x600 modes (etc), #1406001 Quake cannot change gfx resolution
	  in X

2006-01-14  Stas

	* [r1477] src/doc/HOWTO/EMUfailure.sgml:
	  Update EMUfailures.

2006-01-14  Bart

	* [r1476] src/plugin/gpm/Makefile:
	  From Hans de Goede: #1405681 patch fixing x86_64 compilation.

	* [r1475] src/base/bios/int10.c:
	  Remember clear video memory bit correctly. Fixes #1405682 vgaemu
	  problem with win98dos.

	* [r1474] src/emu-i386/simx86/codegen-x86.c,
	  src/emu-i386/simx86/emu86.h, src/emu-i386/simx86/memory.c,
	  src/emu-i386/simx86/trees.c:
	  Use smalloc for the generated code buffer in simx86 on a
	  PROT_EXEC mmap. Fixes #1404395.

2006-01-13  Bart

	* [r1473] src/arch/linux/mapping/mapping.c,
	  src/emu-i386/simx86/memory.c:
	  Remove accidentally unremoved alias code from mapping.c simx86:
	  mark PROT_READ memory as PROT_EXEC as well (#1404395)

2006-01-12  Stas

	* [r1472] src/base/dev/pic/pic.c, src/dosext/dpmi/dpmi.c:
	  cosmetic:
	  - add sanity checks to pic_iret()
	  - stop calling pic_iret() from dpmi.c
	  - this was an optimization which looks unsafe now when all the
	    HLT checks are removed.
	  - Unhardcode the pic HLT address! The memory.h things should
	    IMO never be hardcoded in different places.

2006-01-12  Bart

	* [r1471] src/env/video/miscemu.c:
	  Replace horizontal retrace logic with the method used in DosBox.
	  Solves issues with Commander Keen4 reported on linux-msdos.

2006-01-07  Bart

	* [r1470] src/dosext/misc/xms.c:
	  Fix the new internal XMS driver's free/largest memory reporting.

2006-01-06  Bart

	* [r1469] src/base/misc/disks.c, src/dosext/mfs/mfs.c,
	  src/include/redirect.h:
	  Make sure that the redirection resetter only clears internal
	  state and not DOS state. Merge some common code from
	  Cancel*Redirection into a new function RemoveRedirection.

	* [r1468] src/dosext/dpmi/dpmi.c:
	  Revert if (Segments[_ss >> 3].is_32) { change which wasn't meant
	  to be.

2006-01-04  Bart

	* [r1467] src/base/misc/disks.c, src/dosext/mfs/mscdex.c:
	  Reset redirections on ctrl-alt-del. Remove a few too vocal debug
	  printfs.

	* [r1466] src/base/async/int.c, src/commands/cdrom.S,
	  src/dosext/drivers/cdrom.c, src/dosext/mfs/Makefile,
	  src/dosext/mfs/lfn.c, src/dosext/mfs/mfs.c, src/dosext/mfs/mfs.h,
	  src/dosext/mfs/mscdex.c, src/include/emu.h,
	  src/plugin/commands/lredir.c:
	  Added support for int2f/ax=15xx (MSCDEX CDROM functions). Thanks
	  to dosbox. These make it possible to use low-level access with
	  lredir'ed CDROMs so that MSCDEX/SHSUCDX/DOSLFN are not necessary
	  (see also FR:1389792 volume label support for cdroms and
	  redirected drives), using a new 'C' lredir option. Also use
	  dos_read() in cdrom.c instead of read() because it may go
	  straight to DOS memory.

2006-01-03  Bart

	* [r1465] src/arch/linux/mapping/mapping.c, src/base/async/int.c,
	  src/base/init/memcheck.c, src/base/misc/hma.c,
	  src/env/video/vgaemu.c, src/include/memory.h:
	  Implement int15/ax=e820 (necessary for fdxxms.sys), and some
	  memcheck infrastructure to construct the memory map. Avoid
	  putting nul characters in the debug log (use 'e' for emulated
	  hardware RAM).

2006-01-02  Bart

	* [r1464] src/env/video/render.c, src/env/video/vgaemu.c:
	  Take the blanking register into account for determining height
	  and width. Force width/height changes to update the window as
	  well. This fixes #1124658 Problems with TIM

	* [r1463] src/env/video/render.c, src/env/video/vgaemu.c,
	  src/include/vgaemu.h:
	  Implement vgaemu wrapping around the video memory. This fixes the
	  colour flicker problem in Commander Keen 4.

	* [r1462] src/base/bios/int10.c:
	  Fix offset to copy font data from in int10/ax=11*0
	  (vga_RAM_to_RAM). Fixes #1394280 (X video problems with Cubic and
	  Fast Tracker)

	* [r1461] src/env/video/vgaemu.c:
	  Adjust the width when the number of bpp's change. Fixes Fast
	  Tracker 2 display completely (#1394280)

	* [r1460] src/dosext/dpmi/dpmi.c:
	  Search and replace DPMI_CLIENT.is_32 by Segments[_cs>>3].is_32 at
	  the right places for GPF handling. There may be more of these
	  necessary (or _ss>>3). Fixes part of bug #1394280 (Fast Tracker
	  problem): the outw's became outd's

	* [r1459] INSTALL, README, dist/dosemu, doc/README.txt,
	  man/dosemu.1.in, man/dosemu.bin.1.in, src/doc/README/X,
	  src/doc/README/batch:
	  Documentation updates, in particular about batch operation and X.
	  Don't let "dosemu -dumb" complain if less than 25 lines are
	  present.

2006-01-01  Stas

	* [r1458] src/doc/README/Windows, src/doc/README/config:
	  Minor doc fixes.

2006-01-01  Bart

	* [r1457] doc/README.txt, etc/dosemu.conf, src/doc/README/CDROM,
	  src/doc/README/Windows, src/doc/README/config,
	  src/doc/README/header:
	  Misc README.txt and dosemu.conf documentation updates (also
	  obsoletes (#1245910 Documentation for timemode)

	* [r1456] etc/dosemu.conf, src/doc/README/mouse:
	  Adapt and apply #1153944 improve mouse documentation.

	* [r1455] Makefile.conf.in, configure, configure.ac, man/Makefile,
	  man/dosemu.1.in, man/dosemu.bin.1.in, man/ru/dosemu.1.in,
	  man/ru/dosemu.bin.1.in:
	  Set version and date automatically in man pages.

	* [r1454] src/dosext/mfs/mfs.c:
	  Do not attempt open/ioctl for attributes for FIFOs etc, only for
	  regular files and directories.

2005-12-31  Bart

	* [r1453] src/dosext/mfs/lfn.c:
	  Do not clear carry if we do not support LFN for the drive. Fixes
	  #1394114 "weird cd problem with dosemu-1.3.3"

	* [r1452] src/commands/ems.S:
	  Remove comment about himem.sys. It is a personal decision whether
	  people like to use himem.sys, himem.exe, fdxms.sys, fdxxms.sys or
	  the internal XMS driver, all of which have their advantages and
	  disadvantages.

2005-12-31  Stas

	* [r1451] src/commands/ems.S, src/dosext/misc/xms.c,
	  src/include/smalloc.h:
	  - Make sure smpool is always initialized before using
	    smfree/smdestroy on it.
	  - Give the hint about the external XMS driver usage, if not
	    making it a default.

2005-12-31  Bart

	* [r1450] src/base/init/config.c, src/base/misc/dos2linux.c,
	  src/include/dos2linux.h, src/plugin/commands/unix.c:
	  Mostly from Clarence: unix.com patches in
	  dosemu-exec-friendly.diff, so that "dosemu keen1.exe" works
	  again. But do not use heuristics that split options from
	  commands, by making quotes of filenames that contain spaces
	  compulsory.

2005-12-30  Bart

	* [r1449] src/env/video/remap.c:
	  Map white to white for 15->32 and 16->32. Closes #1244513 color
	  correction while converting 555,565 to 888 color.

	* [r1448] VERSION, etc/dosemu.conf, etc/global.conf,
	  src/base/async/int.c, src/base/misc/hma.c,
	  src/base/misc/smalloc.c, src/commands/ems.S,
	  src/dosext/misc/emm.c, src/dosext/misc/xms.c,
	  src/include/doshelpers.h, src/include/hma.h,
	  src/include/smalloc.h, src/include/xms.h:
	  Let the internal XMS driver use int15 memory and smalloc. ems.sys
	  can activate it if no other XMS driver is loaded. Merge old $_xms
	  and $_ext_mem into a single $_xms option. Correct int15/88 and
	  e801. ems.sys uses less resident memory if the XMS UMB handler is
	  not hooked.

2005-12-29  Bart

	* [r1447] etc/dosemu.conf, etc/global.conf, src/base/init/config.c,
	  src/base/init/parser.y.in:
	  Introduce $_pci=(auto) to make the meaning of $_pci more clear.
	  Initialize $_netdev in restricted suid mode. Report VESA in
	  config.c.

2005-12-28  Bart

	* [r1446] src/base/dev/misc/pci.c:
	  From: Michael and Reinhard Karcher. There was a problem with word
	  and byte accesses to PCI configuration spaces.

	* [r1445] src/base/async/pci_bios.c:
	  From: Michael and Reinhard Karcher. Fix segfaults in the PCI BIOS
	  because pciConfigType was a NULL pointer.

	* [r1444] config.guess, config.sub, install-sh:
	  Update autoconf helper scripts.

2005-12-27  Bart

	* [r1443] etc/dosemu.conf, etc/global.conf,
	  src/base/init/parser.y.in:
	  Allow "wholedisk" access config from dosemu.conf. Remove
	  $_mounted_devices checks from global.conf (parser.y.in already
	  checks). Closes FR #993179 Whole disk access.

	* [r1442] src/base/init/lexer.l.in:
	  Correct and report line counter in the lexer.

2005-12-26  Bart

	* [r1441] etc/dosemu.conf, etc/global.conf:
	  Add $_cdrom CDROM configuration to dosemu.conf.

	* [r1440] src/dosext/mfs/mfs.c:
	  Initialise the "attr" field at two forgotten places.

	* [r1439] src/dosext/mfs/lfn.c, src/dosext/mfs/mfs.c,
	  src/dosext/mfs/mfs.h:
	  Add support for FAT_IOCTL_GET/SET_ATTRIBUTES to directly
	  manipulate attributes on FAT partitions. Consolidate utime/chmod
	  calls from LFN/SFN to enforce calling dos_would_allow().

2005-12-24  Bart

	* [r1438] src/base/init/config.c:
	  cpu_override() does not know about config.realcpu anymore. The
	  checks are done later in config_post_process.

	* [r1437] src/include/memory.h:
	  The BIOS size was reduced but I had not adjusted memory.h. Fixed.
	  Solves problem with ZIPKEY (reported by Ralph Alvy, linux-msdos)

	* [r1436] src/emu-i386/cputime.c:
	  Use sigsuspend() instead of usleep() in idle(). Fixes #1387967
	  (dosemu 1.3.3: keyboard is "sticky" on some apps) without
	  resorting to speed 0.

2005-12-23  Bart

	* [r1435] src/base/misc/priv.c:
	  Initialize the group vector to the original user's one when using
	  sudo.

	* [r1434] src/base/init/config.c, src/base/misc/priv.c,
	  src/base/misc/utilities.c, src/emu-i386/cpu.c,
	  src/include/dosemu_config.h:
	  Save a file descriptor to /proc/self/maps for Fedora kernels in
	  suid mode; otherwise we lose access after dropping privileges.

	* [r1433] src/env/video/vc.c:
	  Fix dosemu -s -c: set_process_control must unblock
	  SIG_ACQUIRE/SIG_RELEASE.

2005-12-22  Bart

	* [r1432] src/base/async/pci_bios.c, src/base/dev/misc/pci.c:
	  Added some (untested) support for PCI configuration mechanism 2;
	  fix GCC warnings.

2005-12-22  Stas

	* [r1431] src/dosext/dpmi/dpmi.c:
	  Fix flags handling on prot-mode hardware interrupts (#915452)
	  Also removed some no longer valid comments.

	* [r1430] etc/dosemu.conf:
	  Clarify comment.

2005-12-22  Bart

	* configure, configure.ac:
	Make svgalib version check more robust (did not work with gcc-2.95).

	* doc/DANG.txt, src/doc/DANG/DANG.sgml, src/doc/DANG/DANG_CONFIG,
	  src/doc/DANG/Makefile, src/doc/DANG/make_DANG:
	Regenerated DANG

	* etc/dosemu.conf, etc/global.conf, src/base/init/config.c,
	  src/base/init/lexer.l.in, src/base/init/parser.y.in,
	  src/dosext/dpmi/memory.c, src/include/emu.h,
	  src/plugin/commands/Makefile, src/plugin/commands/commands.c,
	  src/plugin/commands/commands.h, src/plugin/commands/unix.c:
	Apply #1023178 Option for disabling DJGPP null checks.
	Also add a dpmi.com command, with a -x option similar to cwsdpmi.
	Shorten unix.com usage help a bit.

2005-12-22  Stas

	* src/dosext/dpmi/dpmi.c:
	Try "verr" before giving up on an arbitrary selector usage.
	(Bugs #988992, #1358562)

2005-12-21  Bart

	* doc/EMUfailure.txt, doc/README.txt, src/doc/DANG/DANG.sgml,
	  src/doc/HOWTO/EMUfailure.sgml:
	Regenerated documentation.

	* INSTALL, VERSION, compiletime-settings,
	  compiletime-settings.devel, configure, configure.ac,
	  default-configure, etc/dosemu.conf, src/arch/linux/Makefile.main:
	bump up VERSION
	put some notes about compiling on x86-64 in INSTALL
	mention that full CPU emulation is experimental
	add dlplugins option to compiletime-settings*
	warn if no S-Lang library is available
	allow "make install" without plugins (#1308052)

2005-12-19  Bart

	* src/base/bios/setup.c:
	Release DOS helper memory for ctrl-alt-del, to avoid OOM after a few times.

	* src/env/video/vgaemu.c:
	TEXT<->GRAPHICS mode changes via register programming needs adjustment
	of some other parts in vgaemu_adj_cfg too. Fixes aladdin/gw interaction.

	* src/plugin/kbd_unicode/serv_backend.c:
	Fix #1377671 Pause button doesn't work

2005-12-18  Bart

	* src/: base/bios/int10.c, env/video/video.c:
	Initialize video_mode/0:449 in video_mem_setup instead of scr_state_init.
	Fixes #1379838 Ctrl-Alt-Del from graphics mode

	* src/: base/misc/dos2linux.c, base/misc/hma.c, dosext/misc/emm.c,
	  dosext/misc/xms.c, include/dos2linux.h:
	Put some basic checks into dos_read/dos_write, and memmove_dos2dos to
	avoid touching the protected video memory.
	Fixes #1379806 (gw stopped to work under X).

2005-12-14  Stas

	* src/base/async/int.c:
	Remove debugging that causes "dosemu touched the protected memory"
	bug with some apps.

2005-12-13  Bart

	* doc/README.txt, src/emu.c, src/arch/linux/debugger/dis8086.c,
	  src/base/async/pci_bios.c, src/commands/bootoff.S,
	  src/commands/booton.S, src/commands/dosdbg.c,
	  src/commands/exitemu.S, src/commands/lredir.c,
	  src/doc/README/CDROM, src/dosext/drivers/cdrom.c,
	  src/dosext/net/net/ipx.c, src/env/video/hercemu.c,
	  src/env/video/hgc.c, src/env/video/miscemu.c,
	  src/env/video/remap.c, src/env/video/remap_asm.S,
	  src/env/video/s3.c, src/env/video/svgalib.c,
	  src/env/video/vesa.c, src/env/video/vesabios_pm.S,
	  src/plugin/commands/dosdbg.c, src/plugin/commands/lredir.c,
	  src/tools/periph/bootsect.S:
	From: Hans de Goede <j.w.r.degoede@hhs.nl>
	Clarify copyrights. This is necessary for inclusion of DOSEMU into Fedora
	Extras, which is what Hans likes to do.

	* src/arch/linux/Makefile.main:
	Correct fresh "make install" (bug reported by Victor Warner, linux-msdos)

2005-12-10  Bart

	* src/: base/async/pci_bios.c, base/dev/misc/pci.c, include/pci.h:
	Move the PCI r/w's that are strictly called by int1a (and may be emulated)
	to pci_bios.c; made some configuration static.

2005-12-09  Bart

	* src/: base/async/pci_bios.c, base/dev/misc/pci.c,
	  emu-i386/ports.c, include/pci.h, include/port.h:
	Handle PCIEMU completely within pci.c.
	Direct hardware accesses for extended configuration space are fed
	directly to the portserver.
	Let the port server handle an address and data PCI i/o access as close
	to each other as possible.
	INT1A pci_bios accesses are handled via port_in/out*.

2005-12-03  Clarence

	* src/base/dev/misc/timers.c:
	Bart said: "This is about port 0x42 which is set to FAST in pit_init(),
	timers.c. Port 0x61 was indeed made slow, (because it needs special
	treatment in keyb_io_write()) but that's not what this is about."

2005-12-03  Bart

	* src/base/: dev/misc/pci.c, async/pci_bios.c:
	Explicitly clear 0 bits in CF8 dword writes. Revert PCI_EN handling to what
	it was (for some reason I thought PCI_EN=1, but it's 0x80000000).

2005-12-03  Clarence

	* src/include/emu.h:
	* make config.features doc realistic
	* bump up number of features to 16 to avoid recompile of every
	file that #include's emu.h every time a different vendor wants to
	add a different hack - Bart suggested in 2003 to use malloc()
	but I think that's overkill

	* src/base/init/config.c:
	update intrinsic doc on newly added -t and -s options

	* src/base/dev/misc/timers.c:
	remove obsolete comments following the removal of PORT_FAST on
	SPRK_NATIVE thanks to src/plugin/kbd_unicode/serv_8042.c:r1.7

	* src/emu-i386/ports.c:
	remove useless statement

2005-12-02  Bart

	* src/: base/async/pci_bios.c, base/dev/misc/pci.c, include/pci.h:
	PCI: let word and byte accesses use inw/outw and inb/outb when appropriate,
	instead of ind/outd + masking. Suggested by Stas.

2005-12-02  Stas

	* NEWS:
	minor news

	* src/doc/README/Windows:
	Rewrote the "Windows" chapter.

2005-12-01  Bart

	* src/base/async/pci_bios.c:
	Enable R/O emulation of PCI-PCI bridges.

	* dosemu.spec.in, dist/dosemu:
	Mark directories in the spec file (fixes #1165147).
	Don't look at X fonts for dosemu -dumb.

	* src/dosext/mfs/mfs.c:
	Check for errno == ESPIPE for lseeks before read or write,
	then they should not fail (#1347960)

	* src/: base/init/dev_list.c, base/misc/disks.c,
	  base/misc/utilities.c, include/emu.h:
	Fix ctrl-alt-del + $_emusys (#1310344)

2005-11-30  Bart

	* src/: base/dev/misc/pci.c, include/pci.h:
	Introduce ext_enabled flag to only allow direct h/w access to the extended
	VGA PCI config space, and not to the PCI-HOST bridge.

	* src/base/dev/misc/pci.c:
	Fix fatal (for Matrox) typo: > 0x40 should be < 0x40.

2005-11-30  Stas

	* src/env/video/: vga.c, video.c:
	Dont register the video memory twice.

	* src/base/async/pci_bios.c:
	Skip bogus PCI memory regions

	* src/arch/linux/mapping/mapping.c:
	debug messages

	* src/dosext/dpmi/dpmi.c:
	Revert the "dpmi.c can use com_printf" thing. It cant - calling
	the realmode code from the signal context is unsafe.

	* src/base/misc/dos2linux.c:
	call_msdos() must switch to real mode before calling DOS, if needed.

2005-11-29  Bart

	* src/: base/async/int.c, base/bios/int10.c, base/misc/dos2linux.c,
	  env/video/video.c, include/emu.h, plugin/commands/unix.c:
	Adjust video.c init so that -dumb does not pop up an X window.
	Make -dumb quiet until the command is executed if a command is given. So
	dosemu -dumb dir
	gives a directory listing and nothing else.

	* dist/dosemu, src/arch/linux/Makefile.main:
	Change default C: drive from ~/dosemu/freedos to ~/.dosemu/drive_c
	(similar to Wine).
	Remove dosemu/freedos/ directory prefixes from the files in the symlink
	tarballs. The primary location for the DOSEMU utilities is now
	$prefix/share/dosemu/commands.
	Make the dosemu script aware of "-X by default".

	* NEWS:
	Update NEWS file for 1.3.3. This will be the last developer's release,
	almost release candidate, before 1.4.0.

	* ChangeLog:
	update ChangeLog

	* src/base/bios/int10.c:
	Correct VIDEO_BIOS_COMBO for vbios_post=0. Thanks Michael and Reinhard
	Karcher for spotting this.

2005-11-28  Bart

	* etc/dosemu.conf, src/base/init/config.c,
	  src/base/init/parser.y.in, src/include/emu.h:
	Introduce and set $_rawkeyboard = (auto), so the raw keyboard is only
	used when either -s or -k are given as options.

	* dist/dosemu, src/base/init/config.c:
	Correct information message about root. Let '-c' disable config.vga so it
	can work without editing dosemu.conf. Commit forgotten dist/dosemu change.

2005-11-28  Stas

	* src/: plugin/kbd_unicode/keyboard.c, base/init/init.c,
	  plugin/kbd_unicode/include/keyboard.h:
	Introduce keyb_priv_init() which must be called before port-server
	startup. This fixes $_speaker="native" (suggested by Clarence)

2005-11-27  Bart

	* etc/dosemu.conf, man/dosemu.bin.1.in, src/base/init/config.c,
	  src/base/misc/priv.c:
	Add new switches:
	-s to enable direct hardware access
	-t to force terminal mode
	use X, graphics, and raw keyboard by default if possible.
	Set default time mode to "bios".

2005-11-22  Stas

	* src/emu-i386/ports.c:
	Start portserver for the config.pci_video to make the $_pci=(off)
	to finally work with G550.

	* src/base/misc/dos2linux.c:
	- Map the DOS<-->unix STDOUT/STDERR properly for unix.com.
	- Improved the DOS console reading for unix.com

2005-11-20  Bart

	* src/: base/dev/misc/pci.c, base/async/pci_bios.c, include/pci.h:
	Use pciemu (as before) for the first 64 PCI configuration bytes, and direct
	access for the last part.

2005-11-19  Stas

	* src/: base/misc/dos2linux.c, include/dos2linux.h:
	Make unix.com "keyboard-aware" (FR #1360156). It works like a tty
	in a -icanon mode.
	system() replaced with execlp() to make it possible to emulate ^C
	with SIGINT.
	Also reworked the output-grabbing again - it was still skipping an
	output sometimes.

	* src/: base/misc/dos2linux.c, dosext/dpmi/dpmi.c,
	  include/dos2linux.h, plugin/commands/builtins.c,
	  plugin/commands/builtins.h, plugin/commands/unix.c:
	Make unix.com to use DOS/stdout instead of the direct video mem access,
	so that the file redirection to work.

2005-11-13  Bart

	* src/base/async/pci_bios.c:
	Get PCI resource sizes from /proc/bus/pci/devices instead of writing to
	the configuration space, if possible.

2005-11-11  Stas

	* src/: base/bios/bios.S, dosext/dpmi/msdos.c:
	Use "call" instead of "int" to invoke the IO helpers. Eliminates
	the remaining "lret $2"s.

2005-11-08  Bart

	* src/: base/async/pci_bios.c, base/dev/misc/pci.c, include/pci.h:
	Use /proc config space instead of the header array for pciemu. Allows write
	access to the PCI configuration space, necessary for some video BIOSes.

2005-11-07  Bart

	* src/: base/async/pci_bios.c, base/dev/misc/pci.c, include/pci.h,
	  env/video/matrox.c:
	Stage 1 of using /proc instead of direct hardware I/O for PCI:
	use /proc/bus/pci (when available) for pciemu init when $_pci=(off).

2005-11-02  Stas

	* src/base/misc/dos2linux.c:
	Fix run_unix_command (#1345102)

2005-10-30  Bart

	* src/plugin/sdl/sdl.c:
	Add speaker support for SDL within X11.

	* configure, configure.ac, src/base/init/config.c,
	  src/env/video/video.c, src/include/config.h.in,
	  src/plugin/kbd_unicode/keymaps.c, src/plugin/sdl/configure,
	  src/plugin/sdl/configure.ac,
	  src/plugin/sdl/include/sdl_config.h.in:
	Make DOSEMU without run-time plugins actually usable.

2005-10-29  Bart

	* Makefile.conf.in, configure, configure.ac, src/arch/linux/Makefile.main,
	  src/include/config.h.in, src/plugin/X/Makefile, src/plugin/X/X.c,
	  src/plugin/gpm/Makefile, src/plugin/sdl/Makefile,
	  src/plugin/sdl/Makefile.conf.in, src/plugin/term/Makefile,
	  src/base/misc/utilities.c:
	Add --disable-dlplugins configure option to be able to avoid run-time
	plugins. Use configure generated strings instead of -lSDL and -lgpm
	directly in the makefiles.

2005-10-28  Stas

	* src/plugin/: gpm/Makefile, sdl/Makefile, term/Makefile:
	Reduce the dependancies for the run-time plugins.

2005-10-24  Bart

	* src/: emu-i386/cpu.c, include/cpu.h:
	Introduce save and load macros to clean up some inline assembly.

	* src/arch/linux/dosext/sound/midid/oss.c:
	#include <unistd.h> for close() and write().

2005-10-23  Stas

	* src/: emu.c, arch/linux/async/signal.c:
	Do signal_init() later to avoid problems with SDL.
	But we still can't do the threading right...

	* compiletime-settings.devel:
	svgalib got updated, looks cool.

2005-10-20  Stas

	* src/: base/dev/pic/pic.c, include/pic.h,
	  plugin/kbd_unicode/serv_backend.c:
	Hack to mimic the old keyboard interrupt behaveour (PIC recursion).
	Closes #1329881.

2005-10-17  Stas

	* src/plugin/commands/builtins.c:
	Add copyrights and myself, my ego is very big these days. :-)

2005-10-14  Stas

	* src/emu.c:
	Closer debugger earlier (than iodev_term() mainly) to reduce the
	chance of having an orphaned pipes.

2005-10-13  Stas

	* src/dosext/dpmi/dpmi.c:
	Cleaned int23 handling by adding an extra parameter to quit_dpmi().

2005-10-12  Stas

	* src/arch/linux/async/sigsegv.c:
	Print something usefull on a vbios fault, and exit.

2005-10-09  Stas

	* src/emu-i386/ports.c:
	Vacate the ports 0x3bc-0x3bf for printer. (closes #1315913)

	* src/: env/video/video.c, base/bios/int10.c, include/video.h:
	Move some stuff from video_mem_setup() to scr_state_init() to fix
	the $_console=(1) $_graphics=(0) (part of #1315913)

2005-10-08  Stas

	* src/arch/linux/dosext/sound/midid/oss.c:
	Timer is not needed for sequencer.

2005-10-06  Stas

	* src/arch/linux/dosext/sound/midid/: device.c, io.c, midid.c,
	  oss.c, timid.c:
	Various updates

2005-10-04  Stas

	* Makefile.conf.in, configure.ac,
	  src/arch/linux/dosext/sound/midid/Makefile,
	  src/arch/linux/dosext/sound/midid/gus.c,
	  src/arch/linux/dosext/sound/midid/oss.c:
	New OSS sequencer driver.
	Remove obsolete libgus driver.

2005-10-01  Bart

	* configure, configure.ac, src/include/config.h.in:
	Removed some unnecessary configure checks.

2005-10-01  Stas

	* src/: commands/ems.S, dosext/misc/emm.c:
	Adjustments.

	* src/: base/init/memcheck.c, base/misc/disks.c,
	  base/misc/dos2linux.c, base/misc/fatfs.c, dosext/mfs/mfs.c,
	  emu-i386/simx86/trees.c, include/cpu-emu.h, include/dos2linux.h,
	  include/memory.h:
	Avoid using LOWMEM for the non-const addresses.
	This fixes iplay (again), as it read()s directly to the EMS frame.
	Also, moved dos_read/write to dos2linux.c to make them globally
	available. And removed the __builtin_constant_p() check in LINEAR2UNIX -
	gcc might still be able to optimize the const addresses, but falling
	back for dosaddr_to_unixaddr() will happen less frequently.

	* src/: commands/ems.S, include/emm.h, dosext/misc/emm.c,
	  dosext/misc/emm.h:
	- Implemented the version checking for ems.sys. Whoever forgets
	to update one, will now get the deserved punishment.
	- Since the bug was in the UMB hook, not in the EMS driver, made
	ems.sys not to install the UMB hook too, if dosemu refused EMS.
	("EMS 4.0.1" was very funny :-)

	* src/commands/ems.S:
	Avoid using "lret $2" - this doesn't restore the IF flag, causing
	the program to lock up (noticed with iplay).
	Bumped up the version. Some version checking is really needed here.
	Important: bios.S have to be inspected for the like things.

2005-09-30  Stas

	* src/: base/misc/utilities.c, include/utilities.h:
	Very simple, type-unsafe (I could really do with C++/STL here!)
	primitives for the ring-buffer management.
	Do not help much but to keep my sound patches smaller.

	* src/arch/linux/dosext/sound/midid/: midid.c, timid.c:
	Update for more non-existant timidity additions.

2005-09-26  Bart

	* src/env/video/: Makefile, remap.c, remap.h, remap_pent.c:
	Move pentium-optimized remapper functions to a seperate file.

	* src/base/bios/setup.c:
	Set int 7a correctly for IPX (bug reported by Reinhard Karcher)

	* src/base/bios/bios.S:
	Removed blanks in FILL_OPCODE expressions (#1292257, and R. Karcher)

2005-09-26  Stas

	* src/arch/linux/dosext/sound/midid/timid.c:
	cosmetic (never reached)

	* src/arch/linux/dosext/sound/midid/: midid.c, midid.h, timid.c:
	Added the standalone mode - midid can now launch timidity itself.
	Added the capture mode - midid can now capture and redirect the
	sound generated by timidity.
	Nothing of the above works with the current timidity, and so the
	usage description of the new params is disabled.
	Also changed the default timidity timeout to 0 (no timeout).

2005-09-25  Bart

	* src/: base/bios/bios.S, dosext/misc/xms.c:
	There need to be a short jmp and 3 nops in the XMS handler so just broke
	up the HLT table a bit.

2005-09-24  Bart

	* src/: emu.c, base/bios/bios.S, base/bios/hlt.c,
	  base/bios/setup.c, dosext/misc/xms.c, include/memory.h,
	  include/xms.h:
	Reset the A20 line for ctrl-alt-del. Moved the XMS handler back to f800:4150
	to avoid having to change ems.sys for different dosemu versions. Register
	this address as a HLT handler.

	* src/: include/emu.h, base/dev/misc/cmos.c, base/dev/misc/rtc.c,
	  base/dev/misc/timers.c, base/bios/setup.c, base/init/dev_list.c,
	  base/init/init.c, base/mouse/mouse.c, dosext/net/net/ipx.c,
	  dosext/net/net/pktnew.c, env/video/vga.c, env/video/vgaemu.c,
	  include/iodev.h, include/ipx.h, include/pic.h, include/pktdrvr.h:
	Unmap conventional memory until just before boot; VESA ints temporarily
	map it when necessary.
	BIOS setup calls iodev_reset. Moved iodev_init after priv_drop() and priv.
	needing inits out of it. Add disk, printer, ipx, pktdrvr init/reset to
	the iodev list. Eliminated hardware_setup() by calling pic_seti in the
	various _init functions.

	* src/: base/bios/int10.c, base/bios/setup.c, base/init/init.c,
	  env/video/vga.c, include/int.h:
	Only use video ints and 0x40:0xa8 from /dev/mem for config.vga.
	Set all interrupts (incl. all video ints) in bios/setup.c
	Repair config.vbios_post=1 + VESA
	VESA pre-boot information gathering uses complete /dev/mem information.

	* src/base/bios/setup.c:
	Revamp ctrl-alt-del functionality. It quickly reboots dosemu.

	* src/: env/video/video.c, plugin/term/keyb_slang.c:
	Allow running dosemu with a redirected stdin, and without a terminal, for
	cron jobs etc. Somehow this functionality was present in the old keyboard
	code but got lost in the new one.

	* src/: base/async/int.c, emu.c, base/bios/Makefile,
	  base/bios/bios.S, base/bios/int17.c, base/dev/misc/lpt.c,
	  base/init/init.c, dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/misc/emm.c, dosext/misc/emm.h, dosext/misc/xms.c,
	  emu-i386/cpu.c, env/video/vc.c, include/bios.h, include/emu.h,
	  include/int.h, include/lpt.h, include/video.h, include/xms.h,
	  plugin/kbd_unicode/dosemu_keys.c:
	Revamp ctrl-alt-del functionality. It quickly reboots dosemu.

2005-09-23  Stas

	* src/arch/linux/dosext/sound/midid/oss.c:
	Fix gcc4 warning again, but without using "static" this time.

2005-09-22  Bart

	* src/arch/linux/dosext/sound/midid/oss.c:
	Fix gcc-4.0 compilation error.

	* src/: base/async/int.c, base/bios/bios.S, base/init/init.c,
	  emu-i386/cpu.c, env/video/video.c, include/memory.h,
	  plugin/commands/builtins.c:
	Use a straightforward BIOS POST jumped to from 0xffff:0x0000 as in real
	BIOSes instead of the return call stack to get to 0000:7c00.

2005-09-21  Stas

	* src/arch/linux/dosext/sound/midid/: midid.c, midout.c, null.c,
	  oss.c, timid.c:
	gcc warnings and indentation fixes.
	Bumped version number, ha-ha-ha.

	* src/arch/linux/dosext/sound/midid/midid.c:
	Ignore the bad data in midi stream, rather than lock-up.
	Also some cleanups and gcc warning fixes.

2005-09-20  Bart

	* src/base/bios/bios.S:
	Moved R/W data in the BIOS to 0xd000, and use indirect jumps/calls instead
	of patched jumps/calls, so that the 0xe000-0xffff area is read-only.
	Added IBM signature at 0xe000.

	* src/dosext/dpmi/dpmi.c:
	Implement debug breakpoints in DPMI (RFE: #937984). This works if a forked
	child can ptrace attach us, i.e. if GDB is not already active and if
	DOSEMU is not suid-root or ran via sudo.

2005-09-20  Stas

	* src/: emu-i386/cpu.c, emu-i386/do_vm86.c, include/cpu.h,
	  include/emu.h:
	Use the separate FPU context for vm86. This fixes the recent
	regressions in CVS (bug #1292250), as well as an old FPU problems
	(bug #1275661).

2005-09-19  Bart

	* src/dosext/dpmi/dpmi.c:
	pic_iret() call in dpmi_realmode_hlt() needs to be pic_iret_dpmi() too.

2005-09-18  Bart

	* etc/dosemu.conf, src/base/async/int.c, src/base/bios/bios.S,
	  src/base/bios/hlt.c, src/base/dev/pic/pic.c,
	  src/base/init/memcheck.c, src/emu-i386/do_vm86.c,
	  src/include/bios.h, src/include/emu.h, src/include/hlt.h,
	  src/include/int.h, src/include/memory.h:
	Activate hlt.c code, and use its registered handlers for ints and PIC.
	Move the BIOS parts under 0xf4000 back beyond 0xfc000.
	Change default EMS page frame to 0xe4000 so that the new space is used
	efficiently, and 16K more UMB space is available.

	* src/: base/async/int.c, emu-i386/do_vm86.c, include/int.h:
	Split off do_int_from_hlt() from do_int(). It simplifies some processing
	since we don't need to check cs:ip again, and allows simplification of
	run_caller_func().

	* src/: base/dev/pic/pic.c, dosext/dpmi/dpmi.c, emu-i386/do_vm86.c,
	  include/pic.h:
	Split pic_iret() into pic_iret() and pic_iret_dpmi(): the callers know
	enough, there's no need to check again. Remove bogus pic_iret() call
	for VM86_STI.

2005-09-18  Stas

	* src/: base/dev/pic/pic.c, dosext/dpmi/dpmi.c,
	  dosext/sound/sound.c, emu-i386/do_vm86.c, include/pic.h,
	  include/vm86plus.h:
	Moved the PIC-internal variables into pic.c, converted the pic
	macros to functions.

	The small code changes:
	- pic_pending() now also takes into account the pic_irqs_active hack
	- disabled the "bad HACK" in sound.c to make it compile

2005-09-17  Bart

	* src/arch/linux/async/: signal.c, sigsegv.c:
	Re-introduce SA_NODEFER (kernel version dependent).

2005-09-17  Stas

	* src/: arch/linux/async/signal.c, base/init/init.c:
	Removed some redundant pic_seti() usages.
	The subsystems that still (ab)use pic_seti() are: sound, rtc, pit and serial.
	New sound won't use it, rtc and serial look easy to fix in the future,
	not sure about PIT though.

2005-09-16  Stas

	* src/base/misc/smalloc.c:
	free(NULL) is perfectly valid.

	* src/plugin/commands/blaster.c:
	New sound code will allow to use the 8bit DMA for the 16bit
	sound when the 16bit DMA is broken/unavail. That's the official
	feature of SB16, lets make blaster.c aware of it.

2005-09-14  Stas

	* src/base/misc/smalloc.c:
	Cosmetic (== hopefully non-intrusive) updates to smalloc.

	* src/arch/linux/mapping/mapfile.c:
	Fixed a very bogus bug with the SHM permissions: 700!=0700 !
	O_CREAT usually gives an RW access regardless, but add some
	security patches here, and that will explain a SIGBUS reported
	recently in ML.

2005-09-13  Stas

	* src/dosext/dpmi/dpmi.c:
	It is better to keep the orig client number instead of the pointer.
	This allows to avoid saving the state of the already terminated client -
	may help if we start doing free() on the client struct when it
	terminates.

	* dist/dosemu:
	beautify

2005-09-12  Bart

	* src/base/bios/bios.S:
	Fix alt-sysrq handling typo in int9. Thanks to Japheth, #1288107

2005-09-12  Stas

	* src/dosext/dpmi/dpmi.c:
	Cache the pointer to the DPMI_CLIENT struct where in_dpmi can
	change, and pass it to return_to_dosemu(). This fixes the watcom
	problem and allows some cleanups. The further cleanups can be
	to use that pointer always, not only for return_to_dosemu(), but
	I think only return_to_dosemu() really cares.

2005-09-11  Bart

	* src/emu-i386/do_vm86.c:
	Remove recursion check for dpmi ints 0x1c,0x23,0x24 that is no longer
	necesary since we use hlt in bios.S.

	* src/plugin/kbd_unicode/serv_xlat.c:
	put_preceding_dead_keys entered the wrong dead keys and forgot about alt.
	Call put_character_symbol recursively to get it right. This fixes
	bug #1262962

2005-09-09  Clarence

	* src/arch/linux/Makefile.main:
	Fix #1224934 - 1.3.2: make install changes permissions of /tmp:

	https://sourceforge.net/tracker/?func=detail&atid=457447&aid=1224934&group_id=49784

	tar 1.14 (e.g. FC4) enabled the opposite of "--no-overwrite-dir" by default.

	At "make install" time, a symbolic link
	"/usr/local/share/dosemu/freedos/tmp" is made to point to "/tmp".  On the
	second invocation of "make install", dosemu-freedos-bin.tgz is unpacked to
	"/usr/local/share" - however it contains a directory "dosemu/freedos/tmp"
	with permissions "rwxr-xr-x".

2005-09-09  Bart

	* src/base/misc/fatfs.c:
	Needs errno.

	* src/: dosext/mfs/mfs.c, include/cpu-emu.h:
	Fix compilation failure with cpuemu disabled.

2005-09-07  Bart

	* src/emu-i386/simx86/sigsegv.c:
	Fix simx86 vgaemu movs op handling. This fixes space quest's and
	jazz jackrabbit's display in simx86.

	* src/emu-i386/simx86/emu86.h:
	simx86: Do not stretch time if the EMUtime goes faster than the TSC.
	The negative adjustments caused wrong multiplications and random hangs.
	Now it looks like the random hangs are gone. There are only consistent
	hangs left, all in DPMI it seems.

2005-09-06  Bart

	* src/plugin/sdl/sdl.c:
	Handle resizing in SDL fullscreen toggling.

	* src/plugin/: X/X.c, kbd_unicode/dosemu_keys.c,
	  kbd_unicode/serv_xlat.c, sdl/sdl.c,
	  kbd_unicode/include/keyboard.h:
	Moved ctrl-alt-p processing to general keyboard code. It saves duplicate
	code and now it works on the console too.

2005-09-05  Bart

	* src/plugin/sdl/sdl.c:
	Always grab if fullscreen is set at init. This fixes the mouse in SDL
	fbdev mode.

	* src/plugin/sdl/: mouse_SDL.c, sdl.c, sdl.h:
	Added support for fullscreen toggling, mouse and keyboard grab (can't
	seperate them), some xmode support, and window title support to the
	SDL plugin.

	* src/: base/misc/dos2linux.c, include/dos2linux.h, plugin/X/X.c,
	  plugin/X/X.h:
	Moved much of X_change_config to dos2linux.c. Much of it will be shared
	with SDL.

	* src/plugin/sdl/sdl.c:
	Allow loading the SDL plugin with Video already set to something else.

2005-09-04  Bart

	* src/: emu-i386/simx86/cpu-emu.c, emu-i386/simx86/protmode.c,
	  emu-i386/simx86/protmode.h, include/emu-ldt.h,
	  dosext/dpmi/Makefile, dosext/dpmi/dpmi.c, dosext/dpmi/emu-ldt.c:
	Use ldt_buffer for simx86's LDT. Merge the codes that update the cached
	LDT. I thought the simx86 version was the nicer of the two.

	* src/dosext/dpmi/dpmi.c:
	Added extra check in get_ldt to make sure that the simx86 LDT matches the
	init-time LDT (which comes from the real modify_ldt).

	* src/base/misc/hma.c:
	simx86: extmem memmove's can also overwrite code

	* src/: base/misc/fatfs.c, dosext/mfs/mfs.c, dosext/misc/xms.c,
	  emu-i386/simx86/codegen-x86.h, emu-i386/simx86/cpatch.c,
	  emu-i386/simx86/emu86.h, emu-i386/simx86/memory.c,
	  emu-i386/simx86/trees.c, include/cpu-emu.h:
	simx86: added e_invalidate: invalidates a memory region, to be used after
	a memcpy to DOS space which may overwrite code. e_dos_read can use this
	function as well, after a plain "read" into aliased space.
	Use a few header adjustments to avoid #ifdef's in the main code.
	Make check_munprotect e_check_munprotect, a global function that only
	unprotects memory that is not low.

2005-09-04  Clarence

	* INSTALL:
	ok, ok, 64-bit is supported now

2005-09-03  Bart

	* src/arch/linux/async/sigsegv.c:
	Localise variables csp and i in dosemu_fault1. This is a workaround for
	a GDB bug (fixed Jan 2005, post 6.3) where it bombs out of a
	"backtrace full" as soon as variable "csp" is not available.

2005-09-01  Bart

	* src/: env/video/vc.c, plugin/kbd_unicode/keyb_raw.c:
	Raw keyboard by itself does not require VC process control: the kernel
	handles raw<->xlate keyboard changes upon mode switching itself.

2005-08-31  Bart

	* src/base/init/memcheck.c:
	Fix gcc warnings.

2005-08-28  Bart

	* src/emu-i386/simx86/interp.c:
	Allow reads from GFX_INDEX in cpuemu.

	* src/base/async/int.c:
	Revert 2UNIX/2DOS changes in int.c (similar to msdos.c)

	* src/emu-i386/simx86/cpatch.c:
	Use macros and straight-asm for the rep instructions.

	* src/emu-i386/simx86/cpatch.c:
	Use straight asm without function overhead. This allows to eliminate _DEBUG
	defines. Use macros to reduce near-duplicate code.

	* src/emu-i386/simx86/cpatch.c:
	Use wri_8 etc. functions in stub_movsb etc. This reduces assembly and
	number of m(un)protect calls further.

	* src/emu-i386/simx86/interp.c:
	Fix warnings for HOST_ARCH_SIM

	* src/emu-i386/simx86/: codegen-arch.h, codegen-x86.c, fp87-sim.c:
	Fix typo, asm constraints and used/unused attributes.

	* src/emu-i386/simx86/codegen-arch.h:
	Re-add.

	* src/emu-i386/simx86/: Makefile, codegen-arch.c, codegen-arch.h,
	  codegen-sim.c, codegen-sim.h, codegen-x86.c, fp87-arch.c, usesim,
	  usex86:
	Replace symbolic link system for simx86 by conditional compilation.
	Fix a dpmi_eflags and case label range issue with codegen-sim.

	* src/emu-i386/simx86/cpatch.c:
	Allow gcc -O2 for newer versions of GCC (need __attribute__((used)))
	Converted some of the assembly in the stubs to C
	Avoid mprotect/munprotect where possible by making use of the aliased
	low memory. This significantly improves simx86 performance.

2005-08-27  Bart

	* src/: arch/linux/async/sigsegv.c, emu-i386/simx86/cpu-emu.c,
	  emu-i386/simx86/emu86.h, emu-i386/simx86/sigsegv.c,
	  include/cpu-emu.h:
	Call e_emu_fault from dosemu_fault instead of installing a private SIGSEGV
	handler. This way simx86 inherits most of the fault handling infrastructure
	around dosemu_fault.

	* src/dosext/dpmi/msdos.c:
	Revert 2UNIX/2DOS changes to msdos.c.

	* src/: arch/linux/mapping/mapping.c, base/async/int.c,
	  base/init/memcheck.c, dosext/mfs/mfs.c, include/bios.h,
	  include/memory.h:
	Replace READ_BYTE macros etc by something more intelligent, which
	allows us to eliminate lowmem_alias again. Move them to memory.h as
	they are not strictly bios related.

2005-08-23  Stas

	* src/base/async/int.c:
	This allows First Encounter game to work with default hogthreshold.
	I actually only changed 0->20 in the idle() call, the rest is just a
	white-space noice.

2005-08-22  Bart

	* src/: base/async/int.c, base/serial/ser_init.c,
	  dosext/dpmi/msdos.c:
	Use WRITE_WORD in ser_init.c. Correct MEMCPY_2DOS etc usage in msdos.c/int.c
	(if you interprete "DOS" as below 1MB+64k of course which is all it
	 manages)

	* src/: arch/linux/async/signal.c, arch/linux/async/sigsegv.c,
	  env/video/instremu.c:
	Don't use SA_NODEFER because it doesn't work as documented, at least, for
	the time being. Explicitly unblock the faulting signal instead.
	Unblock async signals in instremu.

	* src/arch/linux/async/signal.c:
	Use the kernel sigaction unconditionally. As it turned out the Wine
	technique required another workaround which is so glibc-internal dependent
	that it was not worth it.

2005-08-21  Bart

	* src/: base/async/int.c, base/bios/int16.c, base/dev/pic/pic.c,
	  dosext/dpmi/dpmi.c, dosext/mfs/mfs.c,
	  plugin/kbd_unicode/serv_backend.c, include/cpu-emu.h:
	Remove E_M(UN)PROT_STACK and all its users because they are no longer
	necesarry. Use fake_call/int_to where possible.

	* src/: arch/linux/mapping/mapping.c, include/bios.h,
	  env/video/text.c:
	Introduce lowmem_alias pointer and mappings in mapping.c. This provides
	a mirror map of the 0-1MB+64KB area, but not r/w protected. So we can
	access everything from dosemu's main code without causing page faults,
	or necessary mprotect adjustments. NULL page debugging also becomes a
	little cheaper this way.

	* src/base/bios/int10.c:
	Fix not yet existing lowmem_alias.

	* src/base/: init/init.c, mouse/mouse.c:
	Use READ/WRITE* when accessing DOS memory.

	* src/: include/cpu.h, emu-i386/simx86/cpu-emu.c:
	Replace asm push/pop macros by C code, using READ_BYTE etc.
	Use READ/WRITE_WORD for IOFF, ISEG, and SETIVEC.

	* src/: env/video/text.c, include/video.h:
	Moved ATTR and CHAR macros from video.h to text.c. They access internal
	vgaemu RAM, so no need for READ_BYTE etc.

	* src/base/bios/: int10.c, int17.c:
	Use macros to access BIOS variables in int10.c.
	int17.c does not need MUNPROT emulator stuff, because it's all read only.

2005-08-21  Stas

	* src/base/mouse/mouse.c:
	Don't disable the mouse driver on ax=0x1f.
	RBIL says the driver gets really disabled only if you install
	the intvector returned by this function, so it looks like otherwise
	this function does nothing.
	This solves the problem with mcity, for which I previously had
	to use dosbox:)

2005-08-18  Bart

	* etc/global.conf, src/base/bios/Makefile, src/base/bios/int17.c,
	  src/base/dev/misc/lpt.c, src/include/lpt.h:
	Rewrote int17 (thanks to Bochs) to interface to the parallel port hardware,
	so that it works with emulated ports and real i/o ports.
	Implemented basic emulated parallel port hardware that deals with the
	printer. $_printer_commands should be allowed from .dosemurc for suid-root.
	This implements RFE #830601.

2005-08-18  Stas

	* src/base/async/int.c:
	My midnight-accumulation code works better than this.

2005-08-17  Stas

	* src/include/timers.h:
	Compile fix

2005-08-17  Bart

	* src/base/misc/disks.c:
	Added very basic floppy i/o port motor control handling, just to turn it
	off for now.

	* src/base/: async/int.c, bios/bios.S:
	Let INT 8 increment, instead of just set, the midnight flag when the time
	is right. This helps when INT 1A isn't called for longer periods of time,
	and is consistent with some other BIOSes.
	Use READ_DWORD etc. in int.c; small optimization; flag floppy timeout to
	controller (note that the floppy controller port 0x3f2 isn't emulated yet).

	* src/plugin/sdl/keyb_SDL.c:
	Handle all SDL keysyms including keypad, prtscr etc. Fixes #1252147

	* src/base/bios/int10.c:
	Set correct page size for int10/ah=5 in graphics modes. Fixes #1255178

2005-08-16  Bart

	* src/: base/bios/bios.S, emu-i386/do_vm86.c:
	Replace "int xx" in bios.S trampoline by hlt. Minimal change: further
	cleanups are possible.

2005-08-15  Clarence

	* dist/dosemu, src/base/init/config.c:
	Wrapper script: don't pass "dosemu.bin" as argv[0], pass the wrapper scr
	ipt name instead.

	config.c: Look for --version/--help arg anywhere in the argv[] list
	(so as to not complain on "xdosemu --help" which prepends a -X to argv[]).
	Don't print out "xdosemu = dosemu -X" if already using xdos/xdosemu.

2005-08-14  Stas

	* src/include/dosemu_debug.h:
	Bump up the gcc version needed for attribute format.

2005-08-14  Bart

	* src/dosext/mfs/: mangle.c, mangle.h:
	Use new min/max macros in mangle.c.

2005-08-13  Bart

	* src/emu-i386/simx86/interp.c:
	Correct case labels for 0xb0, 0xb1, should not be -1 (CMPXCHG).

2005-08-11  Stas

	* src/: dosext/dpmi/dpmi.c, emu-i386/do_vm86.c:
	Remove the ancient pic_resched hacks.

	* src/dosext/dpmi/dpmi.c:
	Fixes on a failure path (cosmetic)

2005-08-06  Stas

	* src/dosext/dpmi/dpmi.c:
	Initialize the DPMI FPU context to something sensible.
	Also poll the DMA more frequently.
	Be more carefull about the FPU context copying.
	Do FPU context initialization in indirect DPMI switch.

2005-08-05  Stas

	* src/: include/smalloc.h, include/utilities.h,
	  base/misc/smalloc.c:
	Use the compatibility FORMAT macro in a few places.

2005-08-05  Bart

	* src/: arch/linux/mapping/mapfile.c, include/smalloc.h:
	Compatibility with older gcc versions.

2005-08-03  Bart

	* src/env/video/instremu.c:
	Made instremu assembly macros compatible with earlier gcc versions.

2005-08-03  Stas

	* src/plugin/kbd_unicode/serv_backend.c:
	Got tired of the ocasional keypress duplications and increased
	the keyboard char delay to 800uS.
	Actually, the duplicate keypresses have not disappeared in BC IDE
	at all. Set the latency to 2000uS - now they seem to really have
	gone.

	* src/: emu-i386/cpu.c, dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/msdos.c, include/cpu.h, include/emu.h:
	Implemented FPU state switching. Needed for my new sound code
	and is a long-overdue anyway.

2005-07-29  Stas

	* src/doc/HOWTO/EMUfailure.sgml:
	Clarify a comment about x-com game.

2005-07-26  Bart

	* src/base/async/int.c:
	Use new min macro.

	* src/base/dev/dma/dma.c:
	Fix warnings.

	* src/: dosext/sound/sound.c, base/dev/dma/dma.c, include/dma.h,
	  include/sound.h:
	Use new min/max macros in sound code, adjust some types to match.

	* src/: include/utilities.h, plugin/X/X.c:
	Use the same type-safe min/max macros as the Linux kernel uses and use
	them in X.c.

2005-07-25  Bart

	* src/env/video/remap.c:
	Added basic 15->32 and 16->32 remapper functions. Based on a patch by
	Mike Nelson, SF #1244195

2005-07-24  Bart

	* src/base/init/parser.y.in:
	No need (and wrong) to free Path_cdrom[which].

	* src/: emu.c, emu-i386/simx86/cpu-emu.c:
	Allow cpuemu when $_rdtsc=(off). It uses RDTSC nevertheless (so should
	check for 586), but now with the timer code just using gettimeofday().

	* src/: arch/linux/async/signal.c, emu-i386/cputime.c,
	  include/timers.h, base/init/init.c, dosext/dpmi/memory.c,
	  emu-i386/simx86/emu86.h, dosext/drivers/aspi.c:
	Replaced HZ by the more modern sysconf(_SC_CLK_TCK).
	The sigalarm handler now updates the time system counter base, so our
	TSC timer is a hybrid just like the one in the Linux kernel. This avoids
	DOS time slow downs because of inactive idle cpu's etc. Correct backtracing
	in emu86.h.

2005-07-24  Stas

	* etc/dosemu.conf, etc/global.conf, src/base/async/int.c,
	  src/base/dev/misc/rtc.c, src/include/iodev.h:
	Applied (by popular demand) the new timemode patch from Andrew Brooks.
	This should have a positive effect of having the cmos values in
	sync with the time in any mode. And it introduces the "linux"
	time source.
	New option is added to dosemu.conf.

2005-07-23  Bart

	* Makefile.conf.in, compiletime-settings, configure, configure.ac,
	  src/emu.c, src/include/cpu.h, src/plugin/sdl/Makefile,
	  src/plugin/sdl/Makefile.conf.in, src/plugin/translate/Makefile:
	Add support for compilation on x86-64.

	* src/env/video/instremu.c:
	We must use "q" and not "r" in byte-operating asm instructions to avoid
	GCC telling us "Error: bad register name `%sil".

	* src/dosext/dpmi/: dpmi.c, dpmi.h:
	Moved ds, es, fs, and gs check selector code into a function.
	Allow 1, 2, and 3 as null selectors. They sometimes seem to occur on
	x86-64. Simplified ValidSelector(): in practice it only needs to check for
	the LDT bit.

	* src/base/mouse/mouse.c:
	We should only erase a text mouse cursor if it's native and drawn, not
	unconditionally if it's non-native.

	* src/arch/linux/async/signal.c:
	Removed unused variable kernel_sa.

	* src/emu-i386/simx86/codegen-arch.c:
	Actually enable the hack to get bgidemo (and doom) working.

	* src/include/cpu.h:
	Forgotten sys/vm86.h change.

	* src/: emu-i386/simx86/cpu-emu.c, emu-i386/simx86/sigsegv.c,
	  env/video/vgaemu.c:
	Make simx86 more functional with DPMI code (both native and emulated).
	Adjusted bogus ((int)_cr2 < 0) test. Signal handlers use the signal stack
	and perhaps queue, and restore eflags, fs and gs. Revert the meanings of
	config.cpuemu==2 and 3. The fault handler takes better care of VGAEMU.

2005-07-22  Bart

	* src/emu-i386/simx86/sigsegv.c, etc/dosemu.conf, etc/global.conf,
	  src/dosext/dpmi/dpmi.c, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in, src/include/cpu-emu.h:
	Introduced new $_cpu_emu option to set to either "off", "vm86" or "full".
	config.cpuemu==4 now means full emulation, 3 means vm86 only.
	Adjusted DPMI to reflect this. CPUEMU's fault handler temporarily leaves
	the vm86-only emulator after a page fault if DPMI is active.
	Disabled non-emulated boot and vbios for now.

	* src/: include/vm86plus.h, include/Asm/vm86.h, base/dev/pic/pic.c,
	  base/misc/ioctl.c, dosext/net/net/ipx.c, emu-i386/do_vm86.c,
	  emu.c:
	Include Asm/vm86.h. Removed #include <sys/vm86.h> because this file is not
	available on AMD64.

2005-07-22  Stas

	* src/dosext/dpmi/dpmi.c:
	Zero out FS/GS upon raw mode switches (bug #1242171)
	Also zero out the "undefined" registers.

2005-07-22  Clarence

	* src/: base/init/config.c, include/emu.h:
	As posted to dosemu-devel put without the usage() change:

	Config documentation cleanup and a little bit of getopt() fixing.

	Complete list of changes (it's smaller than it looks):
	- Remove unused, probably out-of-sync "struct debug_flags d"
	- Pass the same string to the 2 getopt calls and in sync with reality
	  (sometimes we were missing ":" or options entirely)
	- We need "--help" in addition to "--version" (I finally found out that
	  "--version" was the correct way to bring up the help, rather than triggering
	  a syntax error with "-h" :))
	- Remove unused "sizes" variable, group together code for handling obsolete
	  options
	- Print the bad character (not '?') when user types in incorrect option
	- usage():
	  # Remove "[-ABckballtheseareeitherwrongoroutofdateanyway]" etc. from the
	    description
	  # Remove non-existent options, obsolete options
	  # Document secret until now options like -S (so Bart, your SDL secret is out
	:))
	  # In other words, document all the options we have and be consistent with
	    the getopt string
	  # Move "%s --version" lower since it doesn't accept options
	  # Indent "%s --version" and "xdosemu [options]" for consistency with primary
	    command

2005-07-21  Bart

	* src/base/misc/fatfs.c:
	Use e_dos_read() to load the FreeDOS kernel when cpuemu is active.
	Allows running dosemu without using vm86 at all, useful for x86-64.

	* src/emu-i386/simx86/: codegen-arch.c, cpu-emu.c, interp.c:
	The correct expression for the virtual flags in DPMI is
	get_vFLAGS(TheCPU.eflags)
	which gets the VIF from the vm86s structure.

	* src/emu-i386/simx86/: codegen-arch.c, interp.c, sigsegv.c:
	simx86: Corrected vga_read/write calls, and VGAEMU port list. Removed
	is_cli stuff, as a blacklist is not needed here. Set up a hack for
	genbufsize. Enough for bgidemo to work.

2005-07-21  Stas

	* src/base/: init/parser.y.in, serial/ser_init.c:
	Init sptr->dev to NULL as parser now does free() and crashes.
	Have to check on the other similar bugs.

2005-07-20  Bart

	* compiletime-settings, compiletime-settings.devel,
	  default-configure:
	Remove linkstatic in compiletime-settings.*. Re-enable cpuemu in .devel.

	* src/emu-i386/simx86/: codegen-arch.c, cpu-emu.c, interp.c:
	Replace dpmi_eflags with _EFLAGS in simx86. Not quite sure how correct this
	is. Copy the LDT table that dpmi_setup() put up into the simx86 LDT.
	With these changes simx86 works again for DPMI (not perfectly but...).

	* src/emu-i386/simx86/sigsegv.c:
	s/Logical_VGA/vga/

	* src/emu-i386/simx86/protmode.c:
	Fix a bug in simx86's LAR handling. This was *the* major bug in simx86.

2005-07-20  Clarence

	* src/: arch/linux/debugger/mhpdbgc.c, emu-i386/ports.c,
	  env/video/matrox.c:
	Many people don't know how to use fgets() and waste 1 byte :)
	Avoid using hardcoded constants without changing someone else's style too much.

2005-07-20  Bart

	* src/: env/video/vgaemu.c, env/video/video.c, base/bios/int10.c:
	Do the fake call to the int10 post/video set a bit later, and set a few
	more variables in vga_emu_init(). This gets the Bochs vgabios back to work.

2005-07-20  Stas

	* src/plugin/kbd_unicode/serv_backend.c:
	Emulate the bits 0 and 1 of the keyboard_flags_3 (0x40:0x96)
	(fixes #1230579)
	Respect the state of the keyboard_flags_3 instead of relying on
	the one remembered by dosemu (second part of #1230579)

2005-07-20  Bart

	* src/dosext/mfs/: lfn.c, mfs.c, mfs.h:
	LFN MFS fixes: basic volume label for LFN findfirst, give "access denied"
	when trying to remove a non empty dir. Fixes VC move problem, #1238148;
	and cleanups: header files, replace MAXPATHLEN with PATH_MAX.

2005-07-19  Bart

	* src/env/video/: crtcemu.c, vgaemu.c:
	Modify vga_emu_adj_config to adjust VESA modes that are within bounds,
	in general < 2048x1024x8bpp. Setup the CRT mode init that way as well.

	* src/env/video/seqemu.c:
	Set vga.seq.data[4] to the correct value for VESA modes.

2005-07-18  Bart

	* src/base/mouse/mouse.c:
	Let mouse_move_absolute only cause a callback to (e.g.) perhaps warp the
	X cursor if the mouse was clipped.

	* src/base/bios/int10.c:
	Unconditionally set the bios cursor shape variable, even if set to
	invisible. This fixes a problem with DN.

	* src/env/video/vga.c:
	Don't check for the int10 location if $_vbios_post=(1).

2005-07-17  Bart

	* src/env/video/: crtcemu.c, vgaemu.c:
	Adjust some crtc registers in 8bpp vesa modes, and recognize them in
	the adjust config routine. Perhaps that allows a windows vesa driver to
	work.

	* src/base/: mouse/mouse.c, mouse/mousevid.c, bios/bios.S:
	Fix missing 0x typo in mousevid.c; check if the vesa mode was really set.
	The mode is now passed on the stack instead of in cx.

	* src/env/video/: text.c, vgaemu.c:
	Set video to off initially so that the screen won't get updated before the
	initial mode set. Also don't divide by zero in check_cursor_location.
	Fixes #1239421

2005-07-17  Stas

	* src/plugin/X/X.c:
	Properly track FocusIn/FocusOut X events (further fixing #920216)

	* src/: include/mouse.h, base/mouse/mouse.c:
	Replace mouse.rx and mouse.ry with a macros to reduce the
	amount of the variables we should keep in sync.

	* src/base/mouse/mouse.c, src/plugin/X/X.c:
	Move mouse pointer no matter whether it is visible or not
	(part of #920216)
	Forgotten piece of the partial #920216 fix.

2005-07-16  Bart

	* src/: env/video/console.c, env/video/vgaemu.c, include/mouse.h,
	  base/bios/bios.S, base/mouse/gcursor.c, base/mouse/mouse.c,
	  base/mouse/mousevid.c, base/mouse/mousevid.h:
	fix #1206135 by passing bx from vesa mode sets to the mouse mode set
	adjustments. This works for vgaemu and all fixed console vesa modes.
	However, don't draw any mouse cursor: gcursor.c doesn't know about
	LFBs, >8 bpp and bank switching.

	* src/base/init/parser.y.in:
	Removed a free() that was a tad too aggressive.

2005-07-15  Bart

	* src/: base/init/parser.y.in,
	  plugin/translate/config/plugin_parser, base/dev/misc/joystick.c,
	  base/dev/misc/lpt.c, plugin/term/mouse_xterm.c:
	Plugged some memory leaks in the parser (thanks to valgrind). Simplify
	mouse_xterm detection (which was also a leak).

	* src/: base/misc/priv.c, base/misc/utilities.c,
	  arch/linux/async/debug.c, include/dosemu_config.h,
	  arch/linux/debugger/mhpdbgc.c, base/init/config.c:
	Reintroduced dosemu_proc_self_exe, as it comes in really handy for dosdebug.
	Fall back to dosemu_argv[0] for older valgrinds and qemu if it's NULL.
	Plugged a small memory leak.

	* src/arch/linux/async/signal.c:
	Use RTLD_NEXT to find glibc's default (non-pthread) sigaction. Saves a
	bit of effort on our part. This technique is borrowed from Wine: if they
	can do it, we can do it too.

	* src/: env/video/vesa.c, base/bios/int10.c, env/video/console.c,
	  env/video/hgc.c, env/video/vgaemu.c, env/video/video.c,
	  include/video.h:
	Moved BIOS variable init from video.c to int10.c
	Install a small real VGA BIOS for all vgaemu clients, that just contains
	the static functionality table, no fonts.

2005-07-15  Stas

	* src/: arch/linux/async/debug.c, arch/linux/debugger/mhpdbgc.c,
	  base/init/config.c, include/dosemu_config.h, base/misc/priv.c,
	  base/misc/utilities.c:
	Remove dosemu_proc_self_exe. It doesn't work under qemu and
	valgrind, it can have problems with privs, and overall it
	looks useless.

2005-07-14  Bart

	* src/: base/misc/utilities.c, emu-i386/cpu.c, emu-i386/ports.c:
	Use fscanf directly instead of fgets and then sscanf. Avoids some
	arbitrarily sized buffers.

2005-07-13  Bart

	* src/base/bios/int10.c:
	Moved adjust_font_size into a function of its own instead of fiddling with
	the high word of mode in set_video_mode. Implement changing scanlines after
	mode sets so that "mode co80,43" really gives you 43 lines in xdosemu.

2005-07-13  Stas

	* etc/dosemu.conf, src/arch/linux/mapping/mapfile.c,
	  src/arch/linux/mapping/mapping.c,
	  src/arch/linux/mapping/mapshm.c, src/include/mapping.h:
	- Fixed $_mapping="mapfile" by providing the separate ops for
	"mapfile" and "mapshm", otherwise one can't select.
	- Added "mapashm" option for the anon-shm mapping.
	- "mapshm" is now a default.

	* src/base/misc/smalloc.c:
	Don't call any smalloc functions on error path, as they may assert.

	* src/base/init/parser.y.in:
	cosmetic

2005-07-12  Stas

	* etc/dosemu.conf:
	typo.

	* src/dosext/dpmi/: dpmi.c, msdos.c:
	Small fixes.

2005-07-12  Bart

	* src/: base/mouse/mouse.c, include/mouse.h, plugin/X/X.c:
	Made some mouse functions static, removed some unused mouse code.
	Re-enabled Mouse->set_cursor call in mouse_do_cur to be able to warp the
	X cursor. However, be more conservative and safer in warping than before:
	- don't warp if snap_X is active or if the mouse cursor is off.
	- ignore any events caused by pointer warps; they often triggered infinite
	  actions because the event could be different from what we warped to.
	In non grab mode this fixes some issues with SC2000 (dual mouse cursor),
	and VPA (vga planets assistant, clicking didn't move the cursor).

	* src/: base/bios/int10.c, include/memory.h:
	Program display start via crtc for mode sets in terminal mode; fix TEXT_SIZE
	This fixes some new issues with programs that use multiple pages in terminal
	mode.

	* src/: base/init/dev_list.c, plugin/term/mouse_xterm.c:
	Initialize video before mouse and don't use the native (text) cursor
	for the xterm mouse.

2005-07-11  Bart

	* src/plugin/: X/X.c, sdl/sdl.c:
	Revert X and SDL to use video_mode global variable for now. Necessary for
	VESA modes, in particular with z80s (spectrum emulator).

	* src/plugin/X/X.c:
	Correct MIT-SHM X error handling. It didn't work over remote X via ssh.
	Call leavedos from the X error handler, otherwise it leaves DOSEMU
	uncleanly.

	* src/base/bios/int10.c:
	We can't change the number of screen rows in terminal mode when adjusting
	the font size.

2005-07-10  Bart

	* src/: dosext/dpmi/msdos.c, env/video/instremu.c,
	  include/vgaemu.h:
	From Stas: implements decode_modify_segreg_insn (instruction decoder
	for modified segment registers in msdos.c) in instremu.

	* src/: base/bios/int10.c, env/video/video.c, include/video.h:
	Eliminated video_subsys, *height and text_scanlines global variables.
	set_cursor_shape now takes care of setting the BIOS variable as well.
	Cleaned up int10/ah=f to work like a real video bios does.

	* src/: emu.c, base/bios/bios.S, base/init/dev_list.c,
	  base/init/init.c, env/video/vesa.c, env/video/vga.c,
	  env/video/video.c, include/video.h, plugin/X/X.c,
	  plugin/sdl/sdl.c:
	Moved video priv_init/init/close to iodev list; the init no longer needs to
	map any /dev/mem, it all comes from the register_hardware_ram list.
	Always boot via setting a video mode, or POSTing, not just on the console;
	use 0:449 for the mode. Remove most other mode setters.
	Use fake_call_to() where possible.
	Merged init_vga_card() with vga_post_init().
	Eliminated font_height global variable.

	* src/base/init/config.c, src/include/emu.h, src/plugin/translate/translate.c,
	  etc/global.conf, src/base/init/config.c,
	  src/base/init/lexer.l.in, src/base/init/parser.y.in,
	  src/include/video.h, src/plugin/translate/translate_config.c:
	Removed old charset configuration.

	* etc/dosemu.conf, etc/global.conf, src/base/dev/misc/lpt.c,
	  src/base/init/lexer.l.in, src/base/init/parser.y.in,
	  src/include/lpt.h:
	(mostly from Stas) More flexible printer configuration.

2005-07-10  Stas

	* src/env/video/render.c:
	People complain about this leavedos.

	* src/base/misc/utilities.c:
	This message, always being in the log, makes people nervous.

	* src/plugin/commands/unix.c:
	Even a better heuristic can be done if we check for '/' to be
	before ' '.

	* src/plugin/commands/unix.c:
	Use strchr() for '/' to destinguish the dos/linux path.
	Not convinced that it is a bad solution, and it is better
	than now in any case.

2005-07-09  Stas

	* src/arch/linux/mapping/mapping.c:
	realloc() from NULL should malloc(), and also added some
	sanity checks. They may probably trigger some false-positives,
	but I'd like too see them.

	* src/dosext/misc/emm.c:
	Don't pass zero-sized EMS allocations to the memory management
	subsystems. smalloc is really against the zero-sized allocations
	(deliberate decision, won't change), but the EMS specs explicitly
	allows the zero-sized allocations :(
	Fixes the problems with Windows 3.0

2005-07-08  Clarence

	* src/: base/dev/misc/joystick.c, emu-i386/ports.c:

	Rearrange joystick global init order to match def order somewhat.
	Initialise joy_port_[xy] to -1 so that if the port handlers are ever reinstated
	for when there is no joystick and the first joystick port access is an inb,
	the axis bits will be set high like the buttons (the byte returned will be 0xFF).

	Update comments to emphasise Stas' r1.4 change (don't register joy port handlers
	if no joy).

	* etc/dosemu.conf:
	spel

2005-07-08  Bart

	* src/: emu-i386/ports.c, env/video/video.c:
	Replace ioperm by set_ioperm in ports.c; otherwise almost all ports are
	slow using sudo/suid. No wonder why console graphics were so slow.
	Also disable the native speaker when not on the console or you'd get all
	kinds of strange effects when running remotely.

	* src/: base/async/int.c, base/bios/int10.c, base/mouse/mouse.c,
	  env/video/dualmon.c, env/video/vgaemu.c, include/memory.h,
	  include/vgaemu.h, include/video.h:
	Get rid of SCREEN_ADR(), use screen_adr() instead, which uses only BIOS
	variables. Use vga_write*, vga_read*, etc. functions to access VGA memory,
	and adjust those a bit. Cleaned up set_video_mode, but just slightly.

	* src/: base/bios/int10.c, emu-i386/ports.c, env/video/console.c,
	  env/video/crtcemu.c, env/video/hgc.c, env/video/text.c,
	  include/vgaemu.h, include/video.h, plugin/term/terminal.c:
	Eliminated global variables cursor_shape, cursor_blink and char_blink.
	The BIOS now sets these in vga.* via emulated hardware instead.

	* src/: base/async/int.c, base/bios/int10.c, env/video/console.c,
	  env/video/vc.c, env/video/vga.c, include/vc.h:
	Make set_vc_screen_page emulated-hardware instead of BIOS dependent.

	* src/emu-i386/ports.c:
	The port server should ignore SIGINT.

	* src/: base/bios/int10.c, env/video/console.c,
	  env/video/crtcemu.c, env/video/dualmon.c, env/video/hgc.c,
	  env/video/text.c, env/video/vgaemu.c, env/video/video.c,
	  include/video.h, plugin/term/terminal.c:
	Eliminated global variables screen_adr, cursor_row, and cursor_col.

2005-07-07  Bart

	* src/: emu-i386/ports.c, env/video/console.c, env/video/vgaemu.c,
	  env/video/video.c:
	Use a very basic vgaemu for (config.console_video && !config.vga)

	* src/: base/bios/int10.c, env/video/vgaemu.c, env/video/video.c,
	  include/video.h:
	Started merging set_video_mode() and X_set_video_mode()
	clear_screen() now clears the whole screen (all pages)
	video.c calls set_video_mode(video_mode) instead of clear_screen; this
	obsoletes a similar call in vgaemu.c.
	bios_scroll now takes the BIOS screen offset into account.

	* src/: emu.c, base/misc/ioctl.c, emu-i386/do_vm86.c,
	  emu-i386/ports.c, env/video/dualmon.c, env/video/hgc.c,
	  env/video/video.c, include/hgc.h:
	Eliminated hgc.h, made functions in hgc.c static, and some dualmon fixes.

2005-07-05  Clarence

	* dist/dosemu:
	"dosemu -install" fixes:
	1. Allow spaces in private dosemu directory name
	2. actually create a correct "~/.dosemu/drives/c" symlink (needs to be an absolute path)

	Bart, the patch is by no means comprehensive - you should audit the entire file for space
	problems e.g. suppose $HOME had a space in it.

	> Support Requests item #1039909, was opened at 2004-10-04
	> https://sourceforge.net/tracker/?func=detail&atid=457448&aid=1039909&group_id=49784

	* src/base/dev/misc/timers.c:
	+debug

	* src/base/init/config.c:
	fix crash with -h0 and "auto" keytable; IIRC, we have lots of problems with
	dump_config_status() printing before vars have been initialised

	* src/: base/async/dyndeb.c, plugin/X/X.c:
	Unbreak -DX when not invoking executable as "xdos"
	"Unknown debug-msg mask: X"

	It is bogus putting register_debug_class later than config_init()
	as usage() won't show -DX - we're not going to reuse letters anyway
	(we have lots of spare letters and it would be confusing otherwise).

	I would say the same about "./src/plugin/translate/translate.c:    
	register_debug_class('u', 0, "Unicode translation");"
	but unfortunately but it's called earlier than even dyndeb.c:init()
	so not sure if safe to move into there as well.

	* src/base/async/dyndeb.c:
	-double break

	* src/base/mouse/mouse.c:
	stop crash on early leavedos of 'dosemu -U <not a pipe>'

	* dist/mkbindist:
	spel

	* INSTALL:
	too many people ask about x86/64

2005-07-05  Bart

	* src/: base/mouse/mouse.c, include/mouse.h, plugin/X/X.c,
	  plugin/X/X.h, plugin/kbd_unicode/include/keyb_clients.h,
	  plugin/sdl/sdl.h, plugin/term/env_term.h:
	Fix gcc-4.0 build; make some more client structures static.

2005-07-05  Stas

	* src/arch/linux/mapping/mapping.c:
	Fix SIGSEGV when $_mapping set to a wrong value, make dosemu to
	promptly terminate instead.

	* src/dosext/dpmi/msdos.c:
	cosmetic

2005-07-04  Bart

	* src/: base/async/int.c, base/bios/int10.c, base/mouse/mouse.c,
	  env/video/vgaemu.c, env/video/video.c, include/memory.h,
	  include/vgaemu.h, include/video.h:
	Cleaned up int10 cursor positioning code, eliminated some global variables,
	and use BIOS variables more often.

	* src/: emu-i386/ports.c, env/video/vc.c:
	Re-enabled VID_IO and SPECIAL_IO stuff. It's in the wrong place, but
	necessary for console mode without direct port access. Graphical mouse
	cursors still work.

	* src/env/video/crtcemu.c:
	Reverted MODE_CONTROL CRT init change for now.

2005-07-03  Bart

	* src/plugin/X/X_keymaps.c:
	Add forgotten file X_keymaps.c

	* src/: base/bios/int10.c, env/video/vgaemu.c:
	Fix two bugs in terminal mode: int10/ah=0 should set the video memory start
	address and we need to force a mode even if vga.text_width > 80.
	Fixes #1231686

	* configure, configure.ac, src/base/misc/utilities.c,
	  src/base/mouse/Makefile, src/base/mouse/mouse.c,
	  src/base/mouse/mouse_gpm.c, src/base/serial/ser_init.c,
	  src/include/config.h.in, src/plugin/gpm/Makefile,
	  src/plugin/gpm/mouse_gpm.c, src/plugin/term/mouse_xterm.c,
	  src/plugin/term/term_core.c:
	Moved GPM mouse support to a shared-object plugin of its own.
	Now the base dosemu.bin only depends on GLIBC libraries.
	Added logic in mouse_gpm.c to deal with different binary-incompatible
	versions of GPM.

	* Makefile.conf.in, configure, configure.ac,
	  src/base/misc/utilities.c, src/base/mouse/mouse.c,
	  src/env/video/dualmon.c, src/env/video/video.c,
	  src/include/config.h.in, src/include/mouse.h,
	  src/include/video.h, src/plugin/X/X.c,
	  src/plugin/kbd_unicode/dosemu_keys.c,
	  src/plugin/kbd_unicode/keyb_clients.c,
	  src/plugin/kbd_unicode/keyb_none.c,
	  src/plugin/kbd_unicode/include/keyb_clients.h,
	  src/plugin/sdl/Makefile, src/plugin/sdl/sdl.c,
	  src/plugin/term/Makefile, src/plugin/term/keyb_slang.c,
	  src/plugin/term/mouse_xterm.c, src/plugin/term/term_core.c:
	Convert terminal plugin into a shared object.
	Introduce a system to register mouse and keyboard clients instead of
	direct assignments -- they now form a linked list instead of an array.

2005-07-02  Stas

	* src/doc/HOWTO/EMUfailure.sgml:
	From Ryan Underwood:
	PIT acronym is expanded wrong in documentation.

	* src/arch/linux/dosext/sound/midid/Makefile:
	Patch from Ryan Underwood:
	Make midid obey make configuration if it is being built in-tree.

2005-07-02  Bart

	* Makefile.conf.in, configure, configure.ac,
	  src/base/init/config.c, src/base/misc/utilities.c,
	  src/include/config.h.in, src/include/utilities.h,
	  src/plugin/X/Makefile, src/plugin/X/X.c, src/plugin/X/keyb_X.h,
	  src/plugin/kbd_unicode/keymaps.c:
	Convert the X plugin to a shared object.

	* src/: dosext/dpmi/dpmi.c, emu-i386/do_vm86.c,
	  emu-i386/simx86/codegen-arch.c, emu-i386/simx86/codegen-sim.c,
	  emu-i386/simx86/codegen-x86.c:
	Remove X_GRAPHICS #if's.

	* src/plugin/sdl/: keyb_SDL.c, mouse_SDL.c, sdl.c:
	Use <SDL.h> instead of <SDL/SDL.h> in #include. Part of SR #1230661

	* compiletime-settings, compiletime-settings.devel, src/emu.c,
	  src/base/async/dyndeb.c, src/base/init/config.c,
	  src/base/mouse/mouse.c, src/base/speaker/Makefile,
	  src/base/speaker/X_speaker.c, src/env/video/Makefile,
	  src/env/video/X.c, src/env/video/X.h, src/env/video/screen.c,
	  src/env/video/screen.h, src/plugin/X/Makefile, src/plugin/X/X.c,
	  src/plugin/X/X.h, src/plugin/X/X_keysyms.c,
	  src/plugin/X/X_speaker.c, src/plugin/X/keyb_X.c,
	  src/plugin/X/keyb_X.h, src/plugin/X/keyb_X_keycode.c,
	  src/plugin/X/screen.c, src/plugin/X/screen.h,
	  src/plugin/kbd_unicode/Makefile, src/plugin/kbd_unicode/keyb_X.c,
	  src/plugin/kbd_unicode/keyb_X.h,
	  src/plugin/kbd_unicode/keyb_X_keycode.c,
	  src/plugin/kbd_unicode/keyb_clients.c,
	  src/plugin/kbd_unicode/keymaps.c,
	  src/plugin/translate/charsets/X_keysyms.c:
	Converted the X files into a plugin.

	* Makefile.conf.in, compiletime-settings,
	  compiletime-settings.devel, default-configure,
	  src/arch/linux/Makefile.main, src/base/init/config.c,
	  src/base/misc/utilities.c, src/base/mouse/mouse.c,
	  src/include/utilities.h, src/plugin/kbd_unicode/keyb_clients.c,
	  src/plugin/sdl/Makefile, src/plugin/sdl/Makefile.conf.in,
	  src/plugin/sdl/configure, src/plugin/sdl/configure.ac,
	  src/plugin/sdl/sdl.c, src/plugin/sdl/include/sdl_config.h.in:
	Convert the SDL plugin into a real dynamically loaded plugin.
	This allows binary distributions to not depend on libsdl; you only need it
	if you specify -S.

	* src/env/video/crtcemu.c:
	Need to adjust CFG_MODE_CONTROL too, in CRTC_init.

	* src/base/bios/int10.c:
	Removed int10_old, and merged some differing pieces with int10_new.

2005-07-01  Stas

	* etc/global.conf:
	Add $_vbios_file to global.conf.

	* src/dosext/dpmi/: dmemory.h, dpmi.c, dpmi.h, memory.c, msdos.c:
	Hopefully the last "huge cleanups" part.
	- Completed the msdos.c separation by not accessing any of the
	dpmi.c variables directly, use the DPMI API instead.
	- And there seem to be the off-by-one bugs that the segment
	limits were used as a length without +1, fixed.
	- Cleaned up the memory.c API again.
	With this state of affairs I was able to resync my DJGPP port
	of msdos.c rather quickly, so I think the code is now "clean enough".

2005-06-30  Stas

	* src/dosext/dpmi/dpmi.c:
	Cleaned up the hack a little.

	* src/: base/async/int.c, dosext/dpmi/dpmi.c, include/int.h:
	First pass on introducing the Windows Hack (tm) that will allow
	to run the DPMI apps in a Windows Standard mode DOS prompt (hence
	eliminating the need for the DOS prompt support in an Enhanced mode).
	Now running the DPMI in DOS prompt apps is possible, but an attempt
	to switch back to Windows before the DPMI app terminates, will crash.

	* src/dosext/dpmi/: dmemory.h, dpmi.c, dpmi.h, memory.c, msdos.c,
	  msdos.h:
	Next round of the "huge cleanups":
	- Separated memory.c from dpmi.c by passing the root of the memory
	list as a parameter to all the memory.c functions.
	- The DPMI state structure can now be static.
	- Made msdos.c to not use memory.c directly - it now tracks the
	memory allocations itself, as it should under real DOS (backported
	the appropreate code from my DJGPP playground). This is not very
	effective under dosemu, but this is the only possible way under
	real DOS, and is also now unavoidable because msdos.c doesn't any
	longer have the root of the memory list to pass to the memory.c API.
	- Unfortunately the memory.h name is already taken, so the added
	header is called dmemory.h :(

2005-06-29  Stas

	* src/dosext/dpmi/: dpmi.h, msdos.c, msdos.h:
	- All the msdos.c data can now be static
	- Remove the unused variable on which gcc4 complains it is used uninitialized

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/msdos.c, dosext/dpmi/msdos.h, base/bios/bios.S,
	  include/bios.h:
	Next step in separating dpmi.c/msdos.c. dpmi.c no longer accesses
	the state struct of the API translator, but it now calls its
	hooks directly, while normally the translator should register
	that hooks via the DPMI API. This will, however, add an extra
	context switches under dosemu, so the current state is probably
	the most adequate for dosemu. A few extra hooks should not be
	a big problem for the DJGPP port either.

	* src/dosext/dpmi/: dpmi.c, dpmi.h, memory.c, vxd.c:
	- Remove the pre-client DPMI_SEL selector. It doesn't need to be
	per-client, we only have to be care to provide the 16bit and 32bit
	version of it separately. This way vxd.c no longer accesses the
	DPMI state structure directly.
	- Moved dpmi_setup() from memory.c to dpmi.c and make it to
	allocate the above two selectors.
	- Made LDT_ALIAS and PMSTACK_SEL really per-client this time
	(the old code that inherits them was forgotten to remove).

2005-06-28  Bart

	* src/: env/video/attremu.c, env/video/crtcemu.c,
	  env/video/gfxemu.c, env/video/miscemu.c, env/video/render.c,
	  env/video/vesa.c, env/video/vgaemu.c, include/vgaemu.h:
	Allow loading the Bochs BIOS (very experimental).
	VGAEMU fixes so that it can change modes. It works with standard VGA modes,
	not VESA modes. You can use it by using a command line option such as
	-I 'video { vga vbios_file /usr/share/vgabios/vgabios.bin }'

	* src/env/video/instremu.c:
	Fix typos

	* src/env/video/instremu.c:
	Allow instremu to work with read-only code.

2005-06-28  Stas

	* src/dosext/dpmi/dpmi.c:
	Moved env restoration to the better place (after the RSP stuff is
	finished).

	* src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c, msdos.h:
	Some large cleanups:
	- First step at separating the API translator from DPMI. msdos.c
	now has its own state structure, all the translator-related stuff
	moved there from the DPMI structure. msdos.c no longer accesses
	the DPMI structure, but the dpmi.c still accesses the translator
	structure - this can't be addressed without a big functionality
	changes.
	- Cleaned up old_dos_terminate() to make Clarence happy
	- Some cleanups in ConvertSegmentToDescriptor and friends.

2005-06-27  Stas

	* src/env/video/seqemu.c:
	Fix the regression with the Trident code to make Windows happy.

2005-06-26  Bart

	* etc/dosemu.conf, etc/global.conf, src/base/init/parser.y.in,
	  src/base/mouse/mouse.c, src/base/serial/ser_init.c:
	Some fixes to get the mouse back to work in X when $_mouse_dev happens to
	be set to "com1". Avoid talking about X/xterm for $_mouse_dev: it is
	irrelevant for those two.
	Fix a related potential SIGSEGV in the parser.

	* src/base/async/int.c:
	Install a hook function for LFNs via f000:0210 using the new split
	interrupt_function functionality. This fixes bug #1211627.

	* src/base/async/int.c:
	Split the interrupt_function array into two sets, one for revectored
	ints and one for non-revectored ints. This allows using a real DOS mouse
	driver without flipping function pointers, and also repairs
	$_mouse_dev="com1".

	* src/: dosext/dpmi/msdos.c, env/video/instremu.c:
	Use instremu to decode certain segment modifying instructions in msdos.c

	* src/dosext/dpmi/msdos.c:
	Added 32-bit address decoding. Maybe some of this can be merged with
	instremu later. Fixes bug #1227378

2005-06-25  Stas

	* src/: emu.c, env/video/vc.c, plugin/kbd_unicode/keyb_raw.c,
	  base/dev/misc/timers.c, include/emu.h:
	Lets remove the do_ioctl then, sorry for the typo bug...

	* src/dosext/dpmi/dpmi.c:
	Use-after-free detected by smalloc.

	* src/: include/smalloc.h, include/utilities.h, base/misc/lowmem.c,
	  base/misc/smalloc.c, base/misc/utilities.c:
	- Shuffled the assertions in smalloc, since I've seen it asserted.
	- Added the error handling, now all the memory violations will be
	logged with a stack trace.

	* src/base/: bios/int16.c, misc/ioctl.c:
	Adjustments to the hogthreshold code in a hope to address those
	ramblings in an ML.

2005-06-25  Bart

	* src/: dosext/mfs/mangle.c, dosext/mfs/mangle.h, dosext/mfs/mfs.c,
	  dosext/mfs/util.c, env/video/X.c, env/video/X.h,
	  env/video/text.c, include/emu.h, include/mouse.h,
	  plugin/translate/make_attributes.c:
	Removed now-dead non-unicode variations for MFS and X copy/paste.

	* src/: env/video/console.c, env/video/hgc.c, env/video/vc.c,
	  env/video/vga.c, env/video/vga.h, env/video/video.c,
	  include/video.h:
	Console code cleanups.

2005-06-24  Bart

	* src/: base/async/int.c, base/bios/int10.c, base/mouse/mouse.c,
	  base/mouse/mouse_gpm.c, env/video/X.c, env/video/console.c,
	  env/video/crtcemu.c, env/video/dualmon.c, env/video/hgc.c,
	  env/video/text.c, env/video/vc.c, env/video/vgaemu.c,
	  env/video/video.c, include/memory.h, include/video.h,
	  plugin/sdl/sdl.c, plugin/term/mouse_xterm.c,
	  plugin/term/terminal.c:
	Eliminate the two-letter global variables "co" and "li".

	* src/include/emu.h:
	Fix do_ioctl macro. Why not simply remove it by the way?

2005-06-23  Stas

	* src/dosext/dpmi/dpmi.c:
	Fix DPMI RSP functionality which was ruined by the base_addr stuff.

2005-06-22  Bart

	* src/env/video/text.c:
	Turn off the visible selection if anything in it changes (not just the
	attribute but also text), so that *if* something is selected it matches
	what is pasted when you press the middle mouse button.

2005-06-21  Bart

	* src/env/video/: X.c, text.c:
	Fix cursor position with fonts that are 8 pixels high.
	Fixes #1206525: 1.3.2: text mode cursor uses only upper half of cell @80x50

2005-06-21  Stas

	* src/: dosext/net/net/libpacket.c, include/pktdrvr.h,
	  dosext/net/net/pktnew.c:
	Minimal receive mode support for packet driver. Completely untested...

	* src/: emu.c, arch/linux/async/signal.c, base/async/int.c,
	  base/misc/dos2linux.c, base/misc/ioctl.c, env/video/vc.c,
	  include/emu.h:
	Remove the ancient (unused) ioctl queueing code.

2005-06-20  Bart

	* src/env/video/text.c:
	No selection area is shown if the DOS app changed the colours itself.
	Fixes #1206137.

	* src/: include/video.h, plugin/term/terminal.c:
	Terminal code:
	* blinking instead of back background should be set to "blink" at boot time
	* split up utf8 and 8bit character update routines for sanity
	* change The_Charset property that signals an ACS character
	* for Slang 1 in 8bit mode we can't use ACS if blinking is on
	* fix attribute 0
	* for (patched) SLang 1, SLtt_Use_Blink_For_ACS is always set in UTF8 mode,
	  and in 8 bit mode depends on the bright background setting.
	  This fixes a new bug with Norton Utilities.

2005-06-12  Stas

	* src/base/async/int.c:
	Set 0x66 ivec to IRET only when Windows is detected, as some
	programs expects it to be NULL (bug #1218406)
	INT_OFF(0x68) is where we have an IRET (hack) - INT_OFF(0x66) didn't
	have one.

2005-06-04  Stas

	* src/base/mouse/mouse.c:
	Remove the *2 Y multiplication from the PS2 code. It looks
	more like we need to devide it by 2, not multiple.
	The real problem (as it seems to me) is that we do not implement
	the sensitivity options for PS2 interface, and use the int33
	speed settings instead, which is completely bogus. One have to
	add the sensitivity settings for the PS2 pointer.

2005-05-31  Stas

	* src/plugin/kbd_unicode/serv_backend.c:
	Use the bios's keyboard modifiers instead of always relying on the
	internal ones. (bug #1207940)

2005-05-29  Stas

	* src/dosext/dpmi/msdos.c:
	From Japheth: added the translation of int21/ah=43h and ax=71a0h
	Make int21/ah=0 use ah=0x4c to work around some bugs in ms-dos.
	Path from Japheth.

2005-05-26  Stas

	* src/base/async/int.c:
	This works faster.

2005-05-25  Stas

	* src/emu.c:
	Reset fatalerr to 0 in leavedos() to allow the do_call_back() to do
	its final work.

	* src/: base/mouse/mouse.c, base/mouse/mouseint.c, env/video/X.c,
	  include/mouse.h:
	Fixed a diabolical rounding errors in mouse_move_relative(). That
	allowed to remove the hacks with Y coord multiplication, which, in
	turn, should fix all the recent and old sensitivity problems. Lets see.

	* src/: dosext/drivers/cdrom.c, plugin/commands/commands.c:
	- Resetting/reopening cdrom before ejecting helps to eject it more
	reliably.
	- Implemented "eject -t" for closing the tray.

2005-05-24  Stas

	* src/base/mouse/mouse_gpm.c:
	gpm-mouse can lock up dosemu if Gpm_GetEvent() is called on a
	non-blocking fd when there is no data - it then returns the
	random values in a mouse coords, which leads to bad results.
	Added the select() check to avoid the problem.

	* etc/dosemu.conf:
	Some fixes to dosemu.conf. Comments mainly, but also enabled the
	$_lfn_support. Any reasons why it was disabled?

2005-05-23  Stas

	* src/dosext/drivers/cdrom.c:
	Use O_NONBLOCK for cd-rom, that makes eject to work more reliably.
	(suggested by Robert Komar)

	* src/: dosext/drivers/cdrom.c, plugin/commands/commands.c:
	Make eject.com to print some diagnostic on failures.

	* src/env/video/X.c:
	Use the modes with the highest dotclock rates.

2005-05-20  Bart

	* ChangeLog:
	Update ChangeLog with last changes.
2005-05-20  Bart

	* NEWS, src/env/video/vga.c:
	gcc warning; set date in NEWS

	* (almost all files)
	It's 2005 this year.

	* NEWS, doc/EMUfailure.txt, doc/README.txt, man/dosemu.1.in,
	  man/dosemu.bin.1.in, src/doc/HOWTO/EMUfailure.sgml:
	Documentation updates. Mostly grammatical stuff, and a clarification
	about framebuffer consoles: it was possible before with some video cards
	(e.g. SiS) but with others only with major problems (needing fbset after
	exitemu, not being able to switch consoles and then go back etc).

	* configure:
	Regenerated

	* etc/dosemu.conf, src/commands/ems.S:
	Soften language about external XMS drivers a bit. No need to rush
	dosemu-freedos users at the moment since the only known problematic
	program is MS MEM.

2005-05-20  Stas

	* NEWS:
	No need to mention svgalib since it doesn't work very well yet
	(lacks one small fix in svgalib), but mention the fact that dosemu
	can be started from under the fbcon.

	* NEWS:
	Some more news added. But do not mention tasmx since it was just a
	regression at some point after all (2005-02-24 namely)

	* configure.ac:
	Cosmetic about the svgalib detection.

2005-05-19  Bart

	* ChangeLog, NEWS, VERSION:
	NEWS and ChangeLog updates for 1.3.2.

2005-05-10  Bart

	* src/dosext/misc/xms.c:
	Fix the XMS_RET() macro; and making it a function is more efficient.
	Added some comments to hopefully make sure the same bugs don't creep in
	again. This fixes Aladdin's issues with XMS.

2005-05-09  Bart

	* src/base/misc/fatfs.c:
	Don't scan files on fatfs drives for FreeDOS, as this DOS has these
	drives redirected early enough for int13 never to be necessary.
	This can save quite a bit of startup time.

	* src/: base/async/int.c, dosext/mfs/mfs.c, include/redirect.h:
	If the CDS changes, try to redirect any fatfs drives that did not fit in
	the CDS before. This may happen when FreeDOS changes LASTDRIVE from
	config.sys, and more than 4 fatfs drives are defined.

2005-05-08  Bart

	* etc/dosemu.alias, etc/vga10x24.bdf, etc/vga12x30.bdf,
	  etc/vga8x19.bdf, src/arch/linux/Makefile.main:
	Added some more vga fonts, which more or less match 640x480, 800x600
	and 1024x768 resolutions. Thanks to Martin Reuber, OFD Kiel,
	German Fiscal Administration

2005-05-06  Stas

	* src/env/video/: vga.c, vbe.c:
	- Make do_int10_setmode() to do something more than just locking up
	the video bios.
	- Disabled the "special memory mode" - Matrox G550 doesn't honour
	the bit15 (even for that mode!), so the memory was cleared before
	saving. By the way, Matrox can handle our banked saving/restoring
	very well, but Radeon 7500 miserably fails on our bankswitching code.
	- Disabled the "set mode before restore" hack - that never worked
	because of the both the above bugs, it only makes problems.
	- Restoring the ext regs is necessary after saving/restoring the video
	memory (well, without using the "special memory mode" it may not be
	necessary, but I added it to stay safe).

	This makes the console VESA driver pretty much usable.

	* src/dosext/dpmi/msdos.c:
	Really fix int21h/ah=38h this time! tasmx is now finally... yuck

2005-05-05  Stas

	* etc/dosemu.conf, src/include/emu.h, src/include/vc.h,
	  src/env/video/avance.c, src/env/video/cirrus.c,
	  src/env/video/matrox.c, src/env/video/s3.c, src/env/video/sis.c,
	  src/env/video/vbe.c, src/env/video/vga.c:
	Fixed some bugs with $_vmemsize, made it to accept (auto) and (off),
	defaulted to 4096 to make the console switching faster.

2005-05-05  Stas

	* src/arch/linux/dosext/sound/midid/: device.c, device.h, timid.c:
	Cosmetics and gcc-4 warning fixes.

2005-05-04  Stas

	* src/env/video/: svgalib.c, vbe.c:
	Cosmetic.

	* src/: include/debug.h, emu.c:
	Make the gdb stacktracer interface globally available.

	* src/emu-i386/do_vm86.c:
	This sanity check made problems.

2005-05-02  Stas

	* src/env/video/X.c:
	$_X_fixed_aspect can work for the text modes too.

2005-05-02  Bart

	* src/plugin/sdl/include/sdl_config.h.in:
	Added forgotten file sdl_config.h.in

2005-05-01  Bart

	* configure, configure.ac:
	Re-fix auto setting for target-cpu.
	Use -Wno-pointer-sign for gcc-4.0 to avoid obscuring really useful warnings
	for now.

	* src/plugin/sdl/Makefile:
	Fix makefile in previous commit.

	* src/plugin/sdl/: Makefile, configure, configure.ac,
	  config/plugin_config.h, config/plugin_config.h.in:
	Use include/sdl_config.h[.in] included in config/plugin_config.h just like the
	kbd_unicode plugin does. This avoids the "mkpluginhooks-before-configure"
	problem.

	* configure, configure.ac, default-configure:
	#1118031: --target_cpu should be --with-target-cpu or it doesn't work.

	* src/dosext/mfs/mfs.c:
	Let MFS "commit" return TRUE if fsync was successful (it was reversed).
	Happens to fix the problem with Word's "disk is full" message.

2005-05-01  Stas

	* etc/dosemu.conf, src/base/serial/ser_init.c:
	tty locking can be disabled by $_ttylocks=""

2005-05-01  Bart

	* etc/global.conf, src/plugin/kbd_unicode/config/plugin_parser:
	Fix #1110543 Custom keyboard layout
	The underlying foreach parser problem is still a mystery, but as long the
	keytables work...

	* compiletime-settings, compiletime-settings.devel,
	  compiletime-settings.help, configure, configure.ac,
	  default-configure, src/arch/linux/async/signal.c,
	  src/base/mouse/mouse.c, src/env/video/console.c,
	  src/env/video/dualmon.c, src/env/video/video.c,
	  src/include/config.h.in, src/include/video.h,
	  src/plugin/kbd_unicode/dosemu_keys.c,
	  src/plugin/kbd_unicode/keyb_clients.c,
	  src/plugin/term/terminal.c:
	Remove the S-Lang plugin. DOSEMU now cooperates nicely with all SLang
	libraries that are present in Linux distributions, so it is no longer
	necessary. Made a comment about some minor issues with the various
	library versions in existence.
	If no slang-devel library is installed, DOSEMU can now compile without
	terminal support.

	* doc/README.gdb:
	correct typo

	* src/: plugin/term/Makefile, plugin/term/mouse_gpm.c,
	  base/mouse/Makefile, base/mouse/mouse_gpm.c:
	Move mouse_gpm.c from src/plugin/term to src/base/mouse.

	* configure, src/include/config.h.in:
	Regenerate autoconf files.

2005-04-29  Stas

	* src/dosext/dpmi/msdos.c:
	Further fixes for translation of int21h/ah=38h and 5dh

	* src/base/mouse/mousevid.c:
	for text modes too.

	* src/dosext/mfs/mfs.c:
	Debug msg.

	* src/: base/bios/int10.c, base/mouse/mousevid.c,
	  env/video/vgaemu.c, include/vgaemu.h:
	- Fixed 40h:4eh bios value (current video page start)
	- Made the gfx-cursor code to take that value into an account
	(works in Orbits3 properly now)
	- Disabled the X-specific code for gfx-cursor. This can introduce
	the regressions, but as the gfx-cursor for X was added just a few
	days ago (what was that X-specific code then, if there wasn't a
	gfx-cursor under X before?), the regressions on it are not a problem.

	* src/dosext/mfs/mfs.c:
	Off-by-one error in MFS code causes lock-ups (bug #1189666)

2005-04-27  Stas

	* src/dosext/dpmi/msdos.c:
	Fixed int21h/ah=38h translation to get tasmx to work. Yes, tasmx
	used to work sometime in the past, but the bug was always there,
	so it couldn't work properly.
	Also fixed 2 gcc4 warnings.

2005-04-26  Stas

	* src/env/video/X.c:
	Fullscreen mode can now always enable mouse grab.

	* src/base/: init/lexer.l.in, init/parser.y.in, misc/disks.c:
	Applied patch #845119 - 2.8M floppy support.
	The patch was there for 1.5year already - enough!

	* src/: env/video/instremu.c, env/video/vgaemu.c, include/vgaemu.h:
	Moved instremu to the new vga helpers, Logical_VGA_xxx can now be static.

	* src/: include/vgaemu.h, base/mouse/gcursor.c, base/mouse/mouse.c,
	  env/video/vgaemu.c:
	- Added the vga memory access helpers
	- Moved gfx-cursor code to use that helpers
	- Enabled the gfx mouse cursor code under X

	GFX mouse cursor now works under X!

2005-04-24  Stas

	* src/arch/linux/dosext/sound/linux_sound.c:
	Fix recent small regression with sound code (kryptegg works again)

	* src/env/video/vc.c:
	Remove unused (and crap) DUMP_VIDEO

	* src/base/mouse/: gcursor.c, mouse.c:
	Another small step towards the gfx mouse cursor under X.

	* src/env/video/svgalib.c:
	Trying to resurrect the svgalib support.
	It really works much faster than our VESA driver (due to the
	use of the native driver) but it doesn't save the video memory,
	so there may be some problems.

	* configure.ac:
	Added proper svgalib checks. New svgalibs are better, but we can't
	even link the old ones in.
	But not enable it for now - svgalib still misses one very small
	patch that I forgot to submit, and so it crashes, damn. Will have
	to wait for the next version again :(((

	* src/include/vc.h:
	Increase MAX_X_REGS as per the new svgalib.

	* src/env/video/: vc.c, vga.c:
	Disable dump_video(). It can crash if the MAX_X_REGS of dosemu
	mismatches with MAX_REGS of svgalib.

2005-04-20  Stas

	* src/emu-i386/ports.c:
	set_ioperm() should also set the std-handler. This allows the dosemu
	code to call port_outb/port_inb even for the iopermed ports, and the
	real I/O will occur. This is necessary for the mouse gfx code to work
	under X.
	Also disabled HANDLE_VID_IO and HANDLE_SPECIAL. They prevented the
	above code from working and also these features looks completely
	broken and useless.

2005-04-19  Stas

	* src/base/init/: config.c, parser.y.in:
	Repair $_rdtsc

2005-04-17  Stas

	* src/arch/linux/dosext/sound/midid/timid.c:
	Increase timidity timeout from 1 to 3 seconds - timidity is slow
	these days.

	* etc/dosemu.conf, etc/global.conf, src/include/emu.h,
	  src/arch/linux/dosext/sound/linux_sound.c,
	  src/arch/linux/dosext/sound/linux_sound.h,
	  src/base/init/config.c, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in:
	Added the option to control the direct DAC write frequency for OSS.
	No longer need to hack linux_sound.h

	* src/: base/mouse/mouse.c, include/memory.h:
	Moved Mouse_INT_OFF to memory.h and adjusted it instead of changing
	the segment (Stas wake up and stop stumbling around the mouse code!)

	* src/base/mouse/mouse.c:
	Mouse_INT now requires BIOSSEG.

	* src/: env/video/X.c, base/mouse/mouse.c, base/mouse/mouseint.c,
	  plugin/sdl/mouse_SDL.c:
	Enable the native mouse cursor by default (to stay compatible), and
	the X and SDL frontends disable it manually.
	Also "raw" mouse needed the *2 for Y coordinate too. I don't know
	why, maybe the screen resolution is not taken into an account somewhere.

2005-04-16  Stas

	* src/: base/mouse/mouse.c, include/mouse.h:
	Move "native_cursor" to config.mouse, where it actually should be.

	* src/: env/video/X.c, plugin/sdl/mouse_SDL.c:
	X and SDL frontends were erroneously overriding the mouse sensitivity
	values. Also teached X.c about the 2:1 resolution. Native mouse cursor
	now have the proper speed.

	* src/base/mouse/mouse.c:
	Native cursor state should survive save/restore.

	* src/include/memory.h:
	Set 0x33 ivec (mouse) not to 0xf000 segment, as some programs (td)
	are refusing to use it in that case, and the offset should not be 0 too.
	(bug #818094 of myself)

2005-04-15  Stas

	* src/: env/video/X.c, base/mouse/mouse.c, include/mouse.h:
	Enable the native cursor code. Used under X only for now (not for SDL,
	for example). (RFE #1079033 of my own)

	* src/env/video/X.c:
	Disable the selection ability when mouse grab is enabled.

2005-04-14  Stas

	* src/env/video/: X.c, render.c, vbe.c, vga.c:
	Abort dosemu on the fatal video errors instead of having the blank screen.

2005-04-12  Stas

	* src/env/video/X.c:
	Added keyboard grab - hardcoded to Ctrl-Alt-k for now.

	* src/env/video/X.c:
	Remove some ancient code.

2005-04-09  Stas

	* src/: emu-i386/ports.c, base/dev/misc/joystick.c,
	  base/init/parser.y.in:
	Dont try to register the joystick if it is disabled/unavail. (SR #1178900)

2005-04-05  Stas

	* src/env/video/: crtcemu.c, seqemu.c:
	Previous patch needed this too.

	* src/env/video/: crtcemu.c, seqemu.c:
	Kill the optimization that optimizes nothing.

2005-04-04  Stas

	* src/env/video/X.c:
	Handle the unlikely case of the miltiple KeyRelease events.

	* src/dosext/dpmi/dpmi.c:
	This keyboard hack is no longer needed.

	* src/env/video/X.c:
	Filter out the fake X KeyRelease events of the autorepeat keyboard mode.
	This fixes bug #1113468, all the recent keyboard regressions, and the
	number of the old keyboard bugs too.
	There are lots of hacks all around dosemu that were trying to work
	around that problem with the different level of success. They all now
	have to be located and removed.

2005-04-01  Stas

	* etc/global.conf:
	Set $BEING_ON for X too.

2005-03-28  Stas

	* src/plugin/commands/commands.c:
	generic.com should print something usefull too.

2005-03-27  Stas

	* src/plugin/commands/unix.c:
	Nah, use-after-free on error path.

2005-03-26  Stas

	* src/plugin/commands/unix.c:
	Fixes to unix builtin:
	- Dont strip the trailing slashes for the DOS directory path, as this
	path may consist of only that slash (second part of #1152829)
	- Dont terminate if the linux path we wanted to execute, doesn't exist.
	For the DOS path, figuring out the existance is more difficult, so left
	as is for now.

	* src/plugin/commands/builtins.c:
	Small cleanup.

	* src/emu-i386/: cpu.c, ports.c:
	Enlarge line buffer for proc scans, remove smiley ":)" from asm
	constraints (lets put smiles in a comments, not in the code:)

	* src/base/serial/ser_ports.c:
	Update the MSR status before reading it - should make the serial more
	robust.

	* src/base/dev/misc/rtc.c:
	Properly initialize date in cmos. "bios" timesource should now be
	quite usable.

	* src/base/dev/misc/rtc.c:
	Multiple bugs with date in RTC.

2005-03-22  Stas

	* src/include/dos2linux.h, src/base/misc/dos2linux.c,
	  src/plugin/commands/unix.c, src/base/misc/utilities.c,
	  etc/dosemu.conf:
	Fixed (and re-enabled) the terminate-after-execute feature (bug #1152829).
	Also some minor adjustments/leftovers.

2005-03-21  Stas

	* src/base/misc/utilities.c:
	/proc/self/maps can contain lines longer than 100 chars, causing DPMI
	to fail (old bug btw).

	* etc/dosemu.conf:
	0x40000000 for the $_dpmi_base was a bad choise for the non-flexmmap
	kernels. 0x10000000 looks safer.

2005-03-20  Stas

	* src/base/async/int.c:
	Calling io_select() is too expensive, dont do it more than 1000 times
	per second (a cheap fix for the keen4 lockups, but it is still too slow).

	* src/base/mouse/mouse.c:
	This improves the mouse responsiveness a lot.

	* src/base/mouse/mouse.c:
	Repair the mouse too.

	* src/: arch/linux/dosext/sound/linux_sound.c,
	  arch/linux/dosext/sound/linux_sound.h, dosext/sound/sound.c,
	  include/sound.h:
	This should make the sound recording to work properly (bug #1074310,
	was not confirmed)

	* src/doc/HOWTO/EMUfailure.sgml:
	This was fixed.

	* etc/dosemu.conf:
	Set $_X_aspect_43 to (off), as we agreed, AFAIR.
	This fixes z80s emulator visual artifacts, and many games too.

	* src/base/dev/pic/pic.c:
	Remove the PIC recursion.
	This will probably break everything again, but at least the keyboard
	should survive.

	* src/plugin/kbd_unicode/serv_backend.c:
	Preparing (again) the keyboard code for the removal of the PIC
	recursion. We have to simulate the proper delay between the chars,
	otherwise the nasties races are happening, and whatever is typed,
	gets doubled (bug #1037915).
	Set the emulated kbd clock frequency to 27.5KHz (that is, actually,
	after the set2->set1 translation of 8042; the real frequency may
	be slightly different).
	I hope this is the last implicit dependancy the keyboard code had
	to the PIC code. If all the other subsystems have so many too, then
	we'll be in a big troubles:)

2005-03-18  Stas

	* etc/dosemu.conf, etc/global.conf, src/base/init/config.c,
	  src/base/init/init.c, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in, src/base/misc/utilities.c,
	  src/dosext/dpmi/dpmi.c, src/dosext/dpmi/dpmi.h,
	  src/dosext/dpmi/memory.c, src/include/emu.h,
	  src/include/utilities.h:
	Introduce the $_dpmi_base option which allows to choose the address
	of a DPMI memory pool. The problem with the dynamic allocation is
	that some programs can't handle the bit 31 in the pointers, and that's
	what being set now in the recent 2.6 kernels.
	Fixes Mortal Kombat 2 and SerfCity game saving (bug #1164054)

2005-03-17  Stas

	* src/base/async/int.c:
	Returned the old mouse hack of mine instead of the (currently disabled
	anyway) Bart's one. This fixes the mouse for SerfCity game, makes the
	mouse pointer to be syncronized at startup again, and (hopefully)
	removes the possibility of a crash when the DOS sets int33 to some crap.
	This doesn't allow to call into an external mouse driver, but thats
	a useless feature anyway.

	* src/doc/HOWTO/EMUfailure.sgml:
	Updated to reflect the current state of affairs.

2005-03-16  Stas

	* src/: base/init/init.c, plugin/kbd_unicode/include/keyb_server.h,
	  plugin/kbd_unicode/serv_8042.c,
	  plugin/kbd_unicode/serv_backend.c:
	More work on preparing the keyboard code for the PIC recursion removal.

	* src/base/dev/pic/pic.c:
	Remove the now harmfull sanity check from pic_request(). This should
	fix most of the breakages of the previous commit.

2005-03-06  Stas

	* src/plugin/commands/: Makefile, blaster.c, blaster.h, commands.c:
	New helper: blaster.com. Sets the BLASTER and MIDI variables accordingly
	to the dosemu configuration.
	Patch from Ryan Underwood, #1157059.

2005-03-05  Stas

	* src/plugin/kbd_unicode/keymaps.c:
	Fix problem with '<' key in non-keycode mode (bug #818145)

2005-03-02  Stas

	* src/: arch/linux/async/signal.c, base/dev/misc/rtc.c,
	  base/dev/misc/timers.c, base/dev/pic/pic.c, base/init/init.c,
	  base/mouse/mouse.c, base/serial/ser_defs.h,
	  base/serial/ser_irq.c, dosext/net/net/ipx.c,
	  dosext/net/net/pktnew.c, dosext/sound/sound.c, include/iodev.h,
	  include/ipx.h, include/mouse.h, include/pic.h, include/pktdrvr.h,
	  plugin/kbd_unicode/include/keyb_server.h,
	  plugin/kbd_unicode/serv_8042.c:
	Abruptly terminate the PIC recursion usage. Globally, for all drivers.
	This will probably break everything at once, but at least those
	subsystems that were prepared, should tolerate.

2005-03-01  Stas

	* src/: include/emu.h, arch/linux/async/signal.c,
	  base/misc/ioctl.c:
	Trying to unbind SillyG (irqpassing) from PIC recursion. I dont have a
	test-case for it, hope it still work.

	* src/base/mouse/mouse.c:
	Unbind mouse from the PIC recursion.
	That looks pretty much it. Next thing would be to try remove the
	recursion. Havoc to come...

	* src/: base/serial/ser_init.c, base/serial/ser_irq.c,
	  base/serial/ser_ports.c, include/serial.h:
	Trying to unbind serial from PIC recursion.
	Sorry, no way to keep serial functional any longer, lets break it again:)

	* compiletime-settings.devel:
	Linking with svgalib can produce a broken build because the svgalib
	was linked without -Bsymbolic.
	svgalib is probably dead...

2005-02-28  Bart

	* src/plugin/sdl/sdl.c:
	Implemented handling of the SDL_QUIT event so that clicking "x" quits DOSEMU.

	* src/tools/periph/Makefile:
	Do not generate hdimage.dist in the default build as we don't need it anymore.

2005-02-24  Stas

	* src/dosext/dpmi/msdos.c:
	Get rid of DS_MAPPED/ES_MAPPED to make the translator code fully
	re-entrant (again)

	* src/dosext/dpmi/msdos.c:
	Remove some usages of ES_MAPPED/DS_MAPPED.

2005-02-17  Stas

	* src/dosext/dpmi/dpmi.c:
	Call keyb_server_run() from dpmi_fault() to improve the keyboard
	response time (bug #1113468). I hope doing that is safe.

	* src/base/async/int.c:
	Disable the mouse iret hack (again).
	It turned out that DOS initializes the IVT to not always point to irets.
	If PC-DOS is booted without DOS=HIGH, then for some reasons it sets
	int33 (and others) to some crap, then the crash.
	Besides, this code simply asks for being disabled: the recursion have
	to be addressed in do_int(), not here.

2005-02-11  Stas

	* src/base/serial/ser_init.c:
	Made serial ports to work *again*.
	Lets keep them working at least for some time, pleeease! :)

2005-02-07  Stas

	* src/: arch/linux/async/signal.c, base/async/int.c,
	  base/bios/int16.c, base/dev/misc/lpt.c, base/misc/ioctl.c,
	  dosext/net/net/ipx.c, emu-i386/cputime.c, include/timers.h:
	More flexible idle system. For now tuned similar to the current one,
	except for the printer and async I/O, which, when active, give more
	power to dosemu.
	Now we can easily tune the things as per 1.2.1 and better.
	Helper would be nice to allow the run-time adjustments, or perhaps
	we need a section in dosemu.conf dedicated to the idle stuff.

2005-02-06  Bart

	* doc/README.gdb:
	Add some more info about how to deal with GDB and avoid SIGALRM getting
	in the way of single stepping.

	* src/base/bios/int10.c:
	Fix problem with cursor drawing with bigger fonts such as vga11x19.

2005-02-05  Stas

	* src/dosext/dpmi/dpmi.c:
	Per-client stack must be freed on a client termination btw.

2005-02-05  Bart

	* etc/dosemu.conf, etc/global.conf, src/doc/README/config,
	  src/env/video/avance.c, src/env/video/cirrus.c,
	  src/env/video/matrox.c, src/env/video/s3.c, src/env/video/sis.c,
	  src/env/video/vbe.c, src/env/video/vga.c:
	$_vmemsize = (0) now means autodetect just like $_vbios_size = (0).
	If you specify a fixed amount DOSEMU will only try to save/restore this
	amount so console switching does not take such a long time.

	* src/include/emu.h:
	gcc-4.0 warning fixes

	* src/doc/HOWTO/EMUfailure.sgml:
	Add missing "of".

	* src/env/video/text.c:
	Fix gcc-4.0 warning.

	* src/emu-i386/ports.c:
	Remove unused devstat struct.

	* src/base/init/: config.c, lexer.l.in:
	Fix gcc warnings.

	* src/base/serial/ser_init.c:
	ser_init cleanups: use a table instead of switch for default COM settings,
	get rid of some gcc-4.0 warnings.

2005-02-05  Stas

	* src/dosext/dpmi/: dpmi.c, dpmi.h, memory.c:
	Make PM stacks per-client.
	Borland C IDE can benefit from this.

2005-02-04  Stas

	* src/doc/README/dosnet:
	Networking documentation update.
	I am not a doc writer, but I tried to make it short, simple and
	informative. Please dont beat me on that:) It should be better
	than the old (completely outdated) one anyway.

	* src/base/init/config.c:
	Dont parse /proc/cpuinfo if not necessary, plus some cleanups. (SR #1081283)

	* etc/global.conf, src/base/async/int.c, src/base/dev/misc/rtc.c,
	  src/base/init/lexer.l.in, src/base/init/parser.y.in,
	  src/include/emu.h, src/include/iodev.h:
	First pass on merging the timing patch from Paul Crawford and Andrew Brooks.
	This includes BIOS timing and a few fixes and enhancements to the old
	code.
	Linux timing is not yet.

2005-02-01  Stas

	* src/base/serial/ser_irq.c:
	Completely draining the queue appears to be somewhat slow.
	This patch allows up to 2 (QUEUE_THRESHOLD) chars to queue.
	This returns the previous speed while still allowing my test-cases
	to work.

2005-01-30  Stas

	* src/base/serial/ser_irq.c:
	Get the queue size from linux and dont request the TX interrupt
	before it is empty.
	This makes my ancient test-case to work and hopefully is not as
	slow as my previous attempt of using tcdrain().

	* src/base/serial/: ser_defs.h, ser_irq.c, ser_ports.c:
	Made transmit queue a sliding buffer (like the receive one) so that
	the end-start calculation to always give the right result.

2005-01-28  Stas

	* src/: dosext/misc/emm.c, commands/ems.S:
	Added int2f hook to ems.sys to provide the "unhooked" version of
	the XMS callback that we hooked for UMB... Windows really demands
	that (works unreliably otherwise when the native himem.sys is in
	the game).
	Also while I was at it, I reworte the ems.S almost entirely to get
	rid of the ancient crap that was all there.

	* src/: include/serial.h, base/serial/fossil.c,
	  base/serial/ser_irq.c, base/serial/ser_ports.c:
	Replaced tx_buf_bytes/rx_buf_bytes vars with the macros to reduce
	the chances for the counters-out-of-sync bugs.

	* src/base/serial/ser_ports.c:
	Properly update the buffer counters when receiving data. Horrible
	bug in fact, it used to work by a pure luck before - rx_buffer_slide()
	was bringing the counters in sync at some point, but not always, and
	not any more. This bug was there since the creation of the world.
	This fix whould make the fifo transfers much faster and more reliable.
	Closes #1103434.

	* src/base/serial/ser_ports.c:
	Be more carefull about the fifo counter. Mostly cosmetic.

2005-01-26  Stas

	* src/dosext/dpmi/dpmi.c:
	Remove RealModeContext and the surrounding stuff.
	I dont know why it was introduced. It is stated it helps some DJ200
	compiler (djgpp?), but it looks like the hack to work around some
	bugs that are not there any more. If someone know why this stuff
	was necessary, let me know.
	Bart, please see if djgpp feels well now without the hack.

	* src/dosext/dpmi/dpmi.c:
	Made it possible for the 16bit clients to safely access the 32bit API.
	This is not defined in a DPMI specs, so this is a small extension.
	No 16bit client is allowed to use 32bit API, but it is necessary
	for the djgpp-ported API translator to provide the service for 16bit
	clients.

	* src/: include/pci.h, base/dev/misc/pci.c, base/async/pci_bios.c:
	Made pciemu to do something more than just locking up the card
	by fixing the inb/inw.
	Also the header space is enlarged (still reading 64bytes only though).
	Now it works with some cards, but in most cases it still doesnt.
	The cards that reserve an extra PCI ports (like my Radeon) are
	fine, but the ones that dont, usually keep the extended registers
	in the config space, right after the config header. The emulation
	approach cannot fork for them...
	The last argument I've heard against just limiting the direct PCI
	access, was that it would be too slow. But pci_port_inb/pci_port_outb
	already do this!
	I think pciemu have to go away. It is useless, at least for its
	currently intended usage.

2005-01-24  Stas

	* man/dosemu.bin.1.in:
	the related man adjustment

	* etc/dosemu.conf, man/dosemu.bin.1.in:
	Change $_cpu to 586 as people report problems about 386.
	Dosemu is beleived to be 586-safe these days.

2005-01-17  Stas

	* src/env/video/text.c:
	Use MB_LEN_MAX

	* etc/dosemu.conf, etc/global.conf,
	  src/arch/linux/mapping/mapping.c, src/base/async/int.c,
	  src/base/dev/misc/cmos.c, src/base/init/config.c,
	  src/base/init/init.c, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in, src/base/misc/hma.c,
	  src/commands/ems.S, src/dosext/misc/xms.c, src/include/emu.h,
	  src/include/hma.h, src/include/mapping.h, src/include/memory.h,
	  src/include/xms.h:
	Implemented int15 block move support and the infrastructure for
	using the native himem.sys.
	Dont forget to update your ems.sys!

2005-01-15  Stas

	* src/dosext/dpmi/: dpmi.c, msdos.c, msdos.h:
	Got rid of S_xxx macros of msdos.c

	* src/dosext/dpmi/dpmi.c:
	Preserve the high word of ESP across the hw interrupts and exceptions
	for 16bit DPMI clients.
	This fixes the 16bit clients that use the 32bit code with 32bit stack
	sometimes.
	If the 16bit client is interrupted while on 32bit code/stack, it gets
	switched to 16bit stack, where the high word of ESP is lost because of
	the CPU bug. We can save/restore it by hands.
	The 32bit clients that work on 16bit stack are still vulnirable.

	* src/dosext/dpmi/dpmi.c:
	Consolidate the stack switching into enter_lpms()/leave_lpms().
	This saves 8K of the code and will make it easier to make the
	per-client stacks.

2005-01-11  Stas

	* src/base/async/int.c:
	- Improved windows hacks to support Standard mode.
	- Made xtitle code to properly handle DOS shells of Windows.

2005-01-10  Stas

	* src/dosext/dpmi/msdos.c:
	Small bug in int33/ax=0ch translation: offsets of 0 must be allowed.
	(Japheth)

	* src/dosext/dpmi/msdos.c:
	Better fix for int33/ax=14h translation.

2005-01-09  Stas

	* src/env/video/text.c:
	Fixed memory corruptions in save_selection(). utf8 seem to use up to
	6 bytes per char, so the allocated buffer was too small. Also it was
	not properly tracked.
	Are there the charsets that can use more than 6 bytes?

	* src/dosext/dpmi/msdos.c:
	Fixed int33/ax=14h translation (noticed by Japheth)

	* src/dosext/dpmi/dpmi.c:
	Fixed a diabolical bug in do_LAR asm. It was not taking an argument!
	So it operated on whatever random value was in %ax. Sometimes it
	worked because %ax happened to contain the selector, but in most
	cases it just did crap, corrupting the LDT cache. Now z80s emulator
	works (again) and I suppose many other progs do as well.
	This bug was here (presumably) since 1996, and noone noticed?!!!
	This might explain the most of the oddities I observed for years,
	like adding some debugging output makes one program to work and
	breaks another...

	* src/base/mouse/mouse.c:
	Made ps2mouse enable/disable state to not interfere with int33 state.
	Fixes some problems with Windows.

	* src/dosext/dpmi/: dpmi.c, dpmi.h:
	Added DPMI functions 0xe and 0xf.
	Just because these were easy to code up:)

	* src/dosext/dpmi/dpmi.c:
	Added DPMI function 0x801 (free physical mapping).
	This function does nothing for us, but it should not fail.

2005-01-07  Stas

	* src/dosext/dpmi/dpmi.c:
	Dont reset in_win31 before LDT is unprotected (bug of RSP patches)

	* src/dosext/dpmi/dpmi.c:
	Evil typo in a (rarely used) DPMI function 0x50a

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, base/bios/bios.S,
	  include/bios.h:
	PM RSP functionality added (DPMI functions 0xc00, 0xc01).
	No sufficient test-case, but needed for djgpp-ported msdos.c

2004-12-29  Stas

	* src/base/async/int.c:
	gcc warning

2004-12-27  Stas

	* src/base/init/init.c:
	Always report Game port and DMA.

	* src/base/bios/bios.S:
	Fixes to bios-reported caps:
	- Table length does not count itself, so it is 8, not 9
	- Report extended keyboard in features byte 2.

2004-12-23  Stas

	* src/dosext/dpmi/: dpmi.c, msdos.c, vxd.c, vxd.h:
	Moved the VxD glue code from msdos.c to vxd.c. msdos.c must be kept
	clean and perhaps it will be possible to port it to DJGPP one day.

2004-12-22  Stas

	* src/dosext/dpmi/vxd.c:
	VTDAPI function 4 added. Media Player (Video for Windows) now works properly.

2004-12-19  Stas

	* src/emu-i386/ports.c:
	Some more debug messages from ports.

2004-12-16  Stas

	* src/dosext/dpmi/dpmi.c:
	2 small fixes:
	- dont trash BP on return from int24 PM inthandler
	- attribute the segments to the proper client for direct LDT writes

2004-12-14  Bart

	* src/dosext/mfs/lfn.c:
	Return FILE_NOT_FOUND if the LFN wildcard search for "delete file"
	does not find anything (Bug #1020635)

2004-12-12  Stas

	* src/dosext/dpmi/dpmi.c:
	Missing return.

	* src/dosext/dpmi/dpmi.c:
	Re-applied accidentally removed commit.

2004-12-11  Stas

	* src/dosext/dpmi/dpmi.c:
	Reflect the exceptions 1,3,4 to realmode handlers as the last resort,
	if neither the exception handler nor the prot.mode interrupt handler
	is installed.

	* src/base/serial/ser_ports.c:
	Dont try to raise IRQ if read() returns -1.

2004-12-10  Stas

	* src/dosext/dpmi/dpmi.c:
	Unhandled exceptions 6 and >=8 should still terminate the client.

	* src/dosext/dpmi/dpmi.c:
	Reflect the unhandled exceptions to protected mode interrupts
	handlers. If such a handler is not installed, the client is
	terminated. This heavily contradicts with the DPMI specs, but
	the specs are nonsense - reflecting the fault exceptions to
	realmode inthandlers cant work.
	(with the input from Japheth)

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/memory.c, arch/linux/debugger/mhpdbgc.c:
	Scan the LDT at startup and find all the used entries (usually there
	are none, sometimes one). These entries are not allowed to be changed
	by the DOS code. May help with pthreads.

	* src/plugin/commands/builtins.c:
	Made builtins version checking to work again. com_error() must be
	called only *after* the memory pool is allocated. Fixes the
	"builtin  OOM" problem reported by Reinhard.

2004-12-09  Bart

	* src/include/timers.h:
	Replaced all assembly language in timers.h except for "rdtsc" itself by C.
	This fixes bug #1080784.

2004-12-09  Stas

	* src/dosext/dpmi/dpmi.c:
	Removed most of the ADD_16_32 usages.

	* src/dosext/dpmi/dpmi.c:
	One should not use "m" constraint for the variables that are in
	the stack and the stack pointer is altered... set back to "d".
	(thanks to Reinhard)

2004-12-08  Stas

	* src/dosext/dpmi/dpmi.c:
	Reworked direct context-switching code. It is now 2 times shorter,
	easily readable and more gcc-friendly.

2004-12-07  Stas

	* src/base/serial/ser_init.c:
	Fixed error message

2004-12-03  Stas

	* src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c:
	- Always use copy_context() instead of direct assignments (bug #1076593)
	- Improved int23 handling

	* src/base/mouse/mouse.c:
	Reset the PS2 pointer callback on mouse reset. Fixes Windows problem
	with mouse.

	* src/dosext/dpmi/dpmi.c:
	Made "Map Device" function to always fail.
	It turned out we dont support that functionality, it just didn't return
	the error. We can't support that before the .nopage method is implemented
	for /dev/mem VMAs in the kernel.
	Changed the DPMI caps again.

	* src/dosext/dpmi/dpmi.c:
	Make sure the realmode callbacks never use an unallocated descriptors.

2004-12-02  Stas

	* src/arch/linux/dosext/sound/linux_sound.c:
	Use blocking sync for "disable speaker" SB function. (part of bug #1074310)
	SNDCTL_DSP_SYNC ioctl() call is blocking. We need threading...

	* src/: base/dev/misc/timers.c, dosext/dpmi/dpmi.c:
	Preserve the "cli_timeout" hack state across the realmode calls.
	Fixes the problem with Death Rally.

	* src/emu-i386/do_vm86.c:
	do_intr_call_back should push "vflags", not "eflags".

	* src/base/serial/: ser_irq.c, ser_ports.c:
	- Disable the left-over modstat timer code. This makes MSR to
	work again (bug #1075088)
	- moved TIOCSSERIAL ioctl closer to TIOCGSERIAL, for safety.

2004-12-01  Stas

	* src/: arch/linux/dosext/sound/linux_sound.c,
	  dosext/sound/sound.c:
	Make sound recording kinda work (part of bug #1074310)

	* src/dosext/mfs/mfs.c:
	dont dump uninitialized memory to the log.

2004-11-29  Stas

	* src/: include/pic.h, include/vm86plus.h,
	  arch/linux/async/signal.c, base/dev/pic/pic.c,
	  base/mouse/mouse.c, base/serial/ser_init.c, dosext/sound/sound.c,
	  base/init/init.c:
	Remove never really used pic_maski/pic_unmaski.

	* src/: base/mouse/mouse.c, include/pic.h, base/async/int.c:
	Unmask IRQ8 and IRQ12 initially.

2004-11-28  Bart

	* src/: base/async/int.c, base/dev/misc/lpt.c, include/lpt.h:
	Printer fixes, enhancements and cleanups:
	* printer_close must reset the write function to the stub.
	* distinguish between "pipe" and "dev" files. The function pointers
	  really make sense now I think.
	* use line buffering for the printer files, so we don't need to wait
	  timeout seconds before output appears
	* after printer_timeout seconds the printer dev/pipe is closed
	* remove unnecessary flush function, fclose/pclose do that automatically

2004-11-28  Stas

	* src/arch/linux/async/sigsegv.c:
	Route coprocessor exceptions to IRQ13 (hints from Japheth).
	This allows Netscape 4.x to work.

	* src/include/pic.h:
	Make IRQ13 unmasked on startup.

	* src/base/init/init.c:
	Enable IRQ13 on PIC, it can be invoked by FPU.

2004-11-28  Bart

	* doc/: EMUfailure.txt, dosemu-HOWTO.txt:
	Regenerate EMUfailure and HOWTO

2004-11-27  Stas

	* src/dosext/dpmi/Makefile:
	Stop mentioning winemu.bat in Makefile.

	* src/base/mouse/mouse.c:
	Added dummy "set rate" function to PS2 mouse. This allows Windows
	to use the mouse without the custom driver.

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, emu-i386/do_vm86.c:
	Moved dpmi_init() call to do_vm86.c. All other DPMI calls are now
	ignored if DPMI is not initialized.
	Windows seem to forget to unregister the mouse handler on exit.
	This patch avoids the crash afterwards. There might be better fix
	of course.

	* src/base/async/int.c:
	Setting int66 to iret is a Windows hack.

	* src/: base/bios/bios.S, dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/msdos.c, dosext/dpmi/msdos.h, emu-i386/do_vm86.c,
	  include/bios.h:
	- Made the API translator fully reentrant, which allowed lots of cleanups.
	- Implemented the proper reflection to PM of interrupts 0x1c, 0x23, 0x24.
	It never worked properly before.
	Windows feels much better now when accessing the missing floppies or CD.

	* src/dosext/dpmi/winemu.bat:
	winemu.bat is no longer needed as win.com works perfectly.

	* src/dosext/dpmi/: Makefile, dpmi.c, meminfo.c, meminfo.h,
	  memory.c:
	Dont export the /proc/meminfo to the DPMI client. This is just plain
	wrong. It is not supposed to know the real amount of mem or swap on
	a system. It is only supposed to know the amount we allow it to use,
	which is config.dpmi.

	* src/dosext/dpmi/dpmi.c:
	Allow the DPMI API to operate with some reserved descriptors
	(like LDT alias, PM stack and DPMI_SEL).

	* src/dosext/dpmi/dpmi.c:
	Changed the DPMI caps: we do not support the exception restartability,
	and never did. But we do support device mapping - we can map LFB :)

2004-11-23  Stas

	* src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c:
	Make mouse, ps2 and XMS DPMI callbacks per-client.

	* etc/: dosemu.conf, global.conf:
	Remove $_pm_dos_api from dosemu.conf. $_ems now implicitly controls
	the API translator (as was discussed).

	* THANKS:
	Japheth helped with 32rtm and Windows - thanks.

2004-11-22  Bart

	* src/dosext/mfs/: lfn.c, mangle.c, mangle.h, mfs.c, mfs.h:
	Removed name_ufs_to_dos call from name_convert, so the caller is responsible.
	Often the caller did this already, and so we are saving double work this way.
	Simplified LFN int21/71a8 to work directly on the DOS character set.

	* src/dosext/mfs/: lfn.c, mangle.c, mangle.h, mfs.c, util.c:
	name_convert no longer uppercases. Leave this to the caller if it's
	necessary, and if not it can use strcasecmp style functions.

	* src/dosext/mfs/mfs.c:
	Moved find_again into a function instead of messing around with goto's.

	* src/dosext/mfs/mfs.c:
	Must compare . and .. to the wildcard too. Fixes problem with Rocket Chase

	* src/: base/async/int.c, base/bios/bios.S, dosext/dpmi/msdos.c,
	  emu-i386/do_vm86.c, include/memory.h, include/mouse.h:
	Use a HLT to deal with the hogthreshold code for real mode mouse drivers.
	Correct EOI procedure in bios.S (used by IPX and packet driver)

2004-11-22  Stas

	* src/dosext/dpmi/dpmi.c:
	debug output.

	* src/dosext/dpmi/msdos.c:
	Respect the returned CX value for int21/ah=65,al=1...7.
	(suggested by Japheth)

2004-11-22  Clarence

	* src/plugin/translate/translate_config.c:
	newline

2004-11-21  Bart

	* src/: base/async/int.c, dosext/dpmi/msdos.c, include/mouse.h:
	Call int33 the old way using real_run_int() when it's called from a signal
	handler. In this case DPMI's post extender takes care of the hogthreshold
	code.

2004-11-21  Stas

	* src/emu-i386/do_vm86.c:
	Make sure do_call_back() never executed from within the signal
	context.

	* src/base/async/int.c:
	Disable int33 to DOS callouts. This allows windows to be started
	in enhanced mode by win.com, otherwise crashes.
	The reason is that do_int() can be called from within the signal
	context (by DPMI). Calling realmode code from within the signal
	context is not possible for many reasons (vm86() can emit the signals
	itself, or DPMI may not yet set everything up for realmode code, etc).
	So do_int() must *never* use the do_call_back() variations.

	* src/dosext/dpmi/msdos.c:
	int21/ah=65h calls added to API translator. This allows Win3.11
	install to go further, but it still doesnt finish.

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/msdos.c, base/bios/bios.S, include/bios.h,
	  include/cpu.h, plugin/commands/builtins.c:
	- Added XMS calls from DPMI thunk. This allows the Win3.1 installation.
	Win3.11 installation still doesn't work.
	- Some cleanups in msdos.c

	* src/: include/dos2linux.h, plugin/commands/builtins.c:
	Forgotten bits of the previous commit.

	* src/base/async/int.c:
	Introducing "Windows Hacks".
	With these hacks it is now possible to:
	- run Windows 3.1 in an usual way (via win.com) in both the 286 and 386
	mode. The mode will be displayed in the window title.
	- install Windows 3.1 under dosemu. But the installation crashes
	at the very end :( This is to work out later.

2004-11-20  Stas

	* compiletime-settings.devel, src/arch/linux/async/signal.c,
	  src/arch/linux/async/sigsegv.c, src/arch/linux/debugger/mhpdbg.c,
	  src/base/async/int.c, src/base/dev/misc/timers.c,
	  src/base/dev/pic/pic.c, src/dosext/dpmi/dpmi.c,
	  src/dosext/dpmi/dpmi.h, src/dosext/sound/sound.c,
	  src/emu-i386/do_vm86.c, src/include/cpu.h:
	First pass on the IF flag virtualization.
	cpuemu is disabled for now - have to be updated somehow.
	This patch fixes (probably partially) bugs: #1027805, #855948, #855556,
	#811365 and the rest of the world.
	Give it some testing, make sure it doesnt lock up you favourite DPMI app.

2004-11-20  Bart

	* src/base/misc/fatfs.c:
	Fixed problem trying to open io.syskernel.sys if io.sys has 0 bytes.

2004-11-20  Stas

	* src/base/async/int.c:
	int21/ah=6 is output only when dl!=0xff, otherwise it is input and
	must not reset idle. (Bug #1067680)

2004-11-18  Bart

	* src/include/bios.h, src/base/misc/disks.c:
	For floppies call disk_close() only when the floppy MOTOR_TIMEOUT expired.
	Otherwise call fsync(). This improves floppy performance, particularly when
	using kernel 2.6.

	* etc/global.conf:
	Fix typo in $_X_vesamode

2004-11-14  Bart

	* src/: base/async/pci_bios.c, base/dev/misc/pci.c, include/pci.h:
	Restrict PCI configuration space access to the first 64 bytes (16 longs).
	Some machines crash otherwise. Thanks to MIchael and Reinhard Karcher for
	reporting and fixing this.

2004-11-12  Stas

	* etc/dosemu.conf:
	IPX is presumed to be fixed and DPMI-safe.

2004-11-11  Bart

	* src/: arch/linux/mapping/mapping.c, env/video/console.c,
	  env/video/vga.c, env/video/video.c:
	Ignore PCI memory ranges under 1MB. Decouple memcheck_reserve from
	map_hardware_ram for video memory. Fix console=1, graphics=0 mode,
	by fixing its map_hardware_ram but still having a 128K chunk reserved
	at 0xa0000 as virtual hardware RAM.

2004-11-10  Bart

	* src/plugin/commands/builtins.c:
	lowmem_alloc cannot call com_error in case of failure, since com_error
	will call lowmem_alloc again (via com_doswrite). This fails and causes
	infinite recursion.

2004-11-09  Bart

	* src/base/async/int.c:
	int33() now takes over the int33 vector if it points to an iret. This is still
	a bit dirty but not worse than what we did before. I reverted the other
	workarounds.

2004-11-09  Stas

	* src/dosext/dpmi/msdos.c:
	- Set MAX_DOS_PATH to 260 and use it instead of some hardcoded vals
	- Use sprintf instead of memcpy for ax=7160

	* src/dosext/dpmi/msdos.c:
	Better to use MEMCPY_DOS2DOS macro

	* src/dosext/dpmi/msdos.c:
	Silly strncpy vs memcpy confusion.

2004-11-08  Bart

	* src/env/video/text.c:
	Fix invisible mouse selection in colour text programs. This code is what
	the Linux console selection code also uses to invert on VGA displays.

	* src/base/async/int.c:
	Simplified int code a bit: moved some code from run_caller_func() to
	do_int() to avoid checking things twice, and have only one place
	where real_run_int() is called. The mouse workarounds aren't necessary
	anymore; ctrl-c still works.

2004-11-08  Stas

	* src/base/async/int.c:
	If dosemu have no internal function for interrupt, just call the
	DOS interrupt handler. This fixes the problem with ^C.

	* src/dosext/dpmi/dpmi.c:
	Increase instremu count to 10 for LDT writes - looks a bit faster.

	* src/: base/async/int.c, dosext/dpmi/dpmi.c:
	Revector interrupts 0x1c, 0x23 and 0x24 for DPMI.
	This allows windows to handle critical errors like missing diskette
	in drive.

	* src/base/async/int.c:
	Dont call post_boot() anywhere but from int21/ah=4b and even then
	ignore the first invocation.
	The reason is that DOS sets int33 vector (and probably some other)
	to iret on the very late stages of its startup. This hack makes
	mouse to work again.

	* src/dosext/dpmi/dpmi.c:
	- Fix bug with LDT segment expanding (hint from Japheth)
	- This makes it possible to decrease the initial LDT limit to 0xfff

	* src/dosext/dpmi/msdos.c:
	- Increased MAX_DOS_PATH: int21/ax=7160 needs 261 bytes.
	- Added API translation for int21/ax=7160 (Japheth)
	- Fixed bug in translation for int21/ax=7147 (Japheth)

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/msdos.c, base/bios/bios.S, base/mouse/mouse.c,
	  include/bios.h:
	Add PS2 mouse support for DPMI.
	This allows WinOS2 to work again (otherwise crashes with recent CVS),
	but mouse no longer works :(
	Maybe there are some bugs, but we need the config switch to choose
	between int15 and int33 interfaces.

	* src/base/serial/ser_init.c:
	Hi Bart:)

	* src/base/serial/ser_ports.c:
	Revert the ser_ports.c patch of 2004-05-07. It seems to be no longer
	necessary and causes problems.

2004-11-05  Bart

	* src/include/serial.h, etc/global.conf, src/base/init/parser.y.in,
	  src/base/serial/ser_init.c:
	Fix parser for $_com1 = "/dev/ttyS0 irq 4" (#1012035)
	Don't try to remove a lock file for virtual com ports -- it just gives
	a spurious ERROR.
	Avoid some buffer overflows and NULL pointer dereferences
	(sptr->dev is a pointer now, space for path determined at runtime,
	 take care of strrchr, remove unused dev_nam array)

	* src/: base/misc/ioctl.c, env/video/matrox.h, include/bitops.h:
	gcc-4.0 warning/error fixes

	* src/: base/init/config.c, base/init/dev_list.c, base/init/init.c,
	  emu.c, include/emu.h:
	Removed the remaining old keyboard code that was still around at various
	places.

	* src/arch/linux/async/signal.c:
	The sigreturn caller really needs to be called __restore and not restore__,
	otherwise gdb will still be confused.

2004-11-04  Bart

	* src/arch/linux/async/signal.c:
	Set the SA_RESTORER flag when calling the kernel sigaction (for the wrapper
	case), because glibc does the same thing. Hopefully that solves some problems
	with GDB on 2.4 kernels.

	* src/: base/bios/bios.S, env/video/X.c, include/mouse.h,
	  include/pic.h, base/mouse/mouse.c, plugin/sdl/sdl.c,
	  plugin/term/mouse_xterm.c:
	Handle user and int15 mouse event handlers via int74/irq12.
	Some DOS mouse drivers hook int74 and only work if we handle events this
	way.

	* src/base/mouse/mouse.c:
	scale ps2mouse dy by a factor 2; the speed_x and speed_y are already changed
	by a video mode switch. Also don't call do_mouse_irq_ps2 if no events occur.
	ctmouse is now more usable without the grab active
	(if you use ctmouse /r1 to disable acceleration).

2004-11-03  Bart

	* src/plugin/: term/keyb_slang.c, translate/translate.c:
	Compute the shift/alt/ctrl modifier for xterms/rxvt instead of relying on
	a very long table that would cover all possibilities.
	Assume high bit means ALT when the external charset is ASCII or "" with C
	locale. Fix segfaults when $_external_char_set = "ascii".

2004-11-03  Stas

	* src/emu-i386/do_vm86.c:
	Remove the re-entry check from do_call_back(), IPX (Reinhard) have
	problems with it.
	do_call_back() must be reenterable, but I am worrying about the
	case where it is re-entered by the VESA switch, after which
	dosemu will be frozen while callback is processing. Probably the
	VESA driver have to wait if any callback is active?

2004-11-03  Bart

	* src/: base/async/int.c, base/mouse/mouse.c, base/bios/bios.S,
	  include/memory.h, include/mouse.h:
	int33() now uses a callback into the mouse driver to make sure the
	hogthreshold is done after the call even for DOS mouse drivers.
	A DOS mouse driver can now redirect int33; in that case we use NOREVECT
	for mouse_int(). To combine this with the callback via the hog code (which
	is always revectored) some extra checks and function pointer adjustments
	have to be made.
	Removed the unused indirect function pointer for the mouse callback.
	Enabling the internal driver no longer always sets the int33 vector.
	Implemented a second mouse callback for the PS/2 mouse BIOS.
	All this combined gives a PS/2 mouse bios that actually works so a
	DOS mouse driver (such as CTMOUSE 1.9) can be loaded into xdosemu --
	although to have it usable one needs to grab the mouse.

2004-11-02  Bart

	* src/doc/HOWTO/dosemu-HOWTO.sgml:
	Removed any version information about Windows 3.x and dosemu.
	This remark was merely a historical saying when the VGA emulator was
	good enough to run Windows 3.x, it doesn't really matter today.
	The 1.2.0 fixes were merely to get it back on track, nothing specific
	to xdosemu vs. console dosemu.

2004-11-02  Stas

	* src/doc/HOWTO/dosemu-HOWTO.sgml:
	Rip some FUD/crap about Windows support from HOWTO:
	- .386 doesnt mean 32bit. There is nearly no 32bit code in Win31.
	- dosemu can run Windows since 1.2.0, not 0.64.3 (or it was broken
	for ages, at least on 1.0.x it doesnt work).
	- Icons do not disappear from Windows desktop, and winos2 doesnt
	make progman.exe to use system.ini instead of progman.ini (who wrote
	that kind of crap?)
	- Some other Windows-related junk ripped.

	* src/dosext/dpmi/dpmi.c:
	Support for unmodified Win31 386 kernel (thanks Japheth!):
	- Dynamically growing LDT, initial limit set to 0x1fff. This
	supercedes the allocation hack I've done for 286 kernel (hack removed).
	- Check for eIP to not exceed the CS limit (CheckSelectors())
	- When Windows creates the invalid LDT entries, just free the
	entry (type 0). This causes LAR to fail, same as if it would be of
	a type 0x0f, which Windows uses. Bingo!

	And oh yeah, there are still no reasons to use the unmodified
	Win31, at least before the proper mouse event translation is
	implemented.

2004-11-01  Bart

	* src/plugin/term/keyb_slang.c:
	If only "20" function keys are available let "F11" appear as shift-F1 to
	DOS apps. This is consistent with older dosemu's; and more DOS apps use
	shift-F1 than F11 (because there was no F11 on XT keyboards).

2004-10-31  Stas

	* src/plugin/commands/: builtins.c, builtins.h:
	- Remove no longer used com_int86()
	- Duplicate some "builtins" error message to the DOS screen

2004-10-31  Bart

	* src/plugin/term/keyb_slang.c:
	keyb_slang.c cleanups and enhancements:
	* Use our own definitions only as fallbacks for the terminfo definitions.
	  Some definitions could be removed because the terminfo is reliable
	  enough.
	* Added logic to translate esc-key into alt-key so many definitions could
	  be removed from the table.
	* Added some entries for shift/ctrl/alt arrow keys etc in xterm and friends
	* Add support for kf1--kf48 as used by recent xterms. Makes it possible
	  to distinguish shift-f1 from f11 and use ctrl-f1 etc.
	* Force application keypad mode to be able to distinguish keypad keys from
	  others.

2004-10-31  Stas

	* src/dosext/dpmi/dpmi.c:
	Remove some leftover debugging stuff.

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/memory.c, dosext/dpmi/msdos.c,
	  arch/linux/debugger/mhpdbgc.c, env/video/instremu.c:
	Win3.1 support:
	- Added LDT R/W emulation.
	- Added several tricks that Windows relies upon.
	- Static DPMI initialization is now done only once, in dpmi_memory_init().

	This allows unmodified Win3.1 to work, but only krnl286.exe so far.
	krnl386.exe is not yet.
	There are no advantages in running unmodified windows, compared to WinOS2,
	only the disadvantages, like that you cant use mouse under X (don't even
	try WinOS2 mouse driver under unmodified winkernel, it will crash!).
	But it is an imminent step towards win32s, Win95 etc...

2004-10-30  Bart

	* etc/dosemu.conf, src/plugin/translate/translate_config.c:
	$_term_char_set is obsolete (it really has been for over two years now).

2004-10-30  Stas

	* src/dosext/dpmi/: dpmi.c, dpmi.h:
	Enlarge PM locked stack to 0xf000 as needed for Windows.
	Also be more carefull calculating the stack offsets.

2004-10-30  Bart

	* src/plugin/kbd_unicode/keyb_raw.c:
	Fix gcc warning.

2004-10-30  Stas

	* src/: env/video/instremu.c, env/video/vgaemu.c, include/vgaemu.h:
	Add the "cnt" arg to instr_emu(), which specifies how many insns
	to emulate. 0 means default count. When cnt!=0, signal_pending is ignored.

2004-10-30  Bart

	* src/plugin/: term/terminal.c, translate/charsets/vt100.c:
	Optimize terminal->utf8 support to use a max of 3 bytes: DOS characters
	never get beyond the BMP.
	Implement support for VT100 drawing characters; add this character set.
	Exploit cp437 as the alternate character set on the Linux console.
	This makes the Use_IBM_Codes escape sequence trick superfluous, and
	allows us to even use most IBM characters < 0x20.

2004-10-30  Stas

	* src/base/async/int.c:
	Set vector 0x66 to iret because Win3.1 calls it and crashes otherwise.

	* src/dosext/dpmi/dpmi.c:
	Make FreeAllDescriptors() to actually work.

	* src/: base/mouse/mouse.c, base/async/int.c, include/emu.h,
	  plugin/commands/emumouse.c:
	- Make emumouse to call the mouse_helper() directly, rather than via
	DOS interrupt.
	- Fix the bug with permanently disabling mouse internaldriver.

	* src/: arch/linux/async/signal.c, base/async/int.c,
	  base/bios/bios.S, base/init/init.c, dosext/mfs/mfs.h,
	  dosext/net/net/ipx.c, dosext/net/net/ipxglt.c, include/bios.h,
	  include/cpu.h, include/doshelpers.h, include/emu.h,
	  include/ipx.h, include/pic.h:
	IPX updates:
	- Switch to async IO
	- Route all the callback stuff via PIC
	- Removed all the horrible asm hackery from bios.S, it is all in C now

	This was tested and benchmarked by Reinhard - thanks!
	Benchmarks shows that it is not faster than the old code, but the
	CPU load was dropped from 100% to 10%, which is very good.
	It also should not have the problems with DPMI, but this remains
	unconfirmed. We'll see.

2004-10-27  Bart

	* src/plugin/kbd_unicode/keyb_raw.c:
	The raw keyboard needs to switch back to the original mode when you quit:
	it may not be XLATE, but can be UNICODE as well.

2004-10-27  Stas

	* src/arch/linux/async/signal.c:
	Calling io_select() in sigalrm() is still necessary for dosdebug.

2004-10-27  Bart

	* src/arch/linux/Makefile.main:
	Removed some obsolete advise about xmodmap and xset fp rehash.

2004-10-26  Bart

	* src/env/video/text.c:
	Don't use the remapper unless bitmap fonts are used. This fixes a crash in
	some text mode programs in terminal mode or when an X font is used.

	* src/dosext/dpmi/: dpmi.c, msdos.c:
	Removed more lvalue casts.

	* src/plugin/kbd_unicode/include/keyboard.h:
	Added symbol for Altgr lock which is used in the console keyboard detection.

	* src/plugin/kbd_unicode/keymaps.c:
	Use a more generic approach to scan for alternate keyboards than using the
	KT_ALTERNATE flag.
	The console keyboard detector can now deal with alternate layouts,
	non-ISO-8859-1 symbols and Unicode symbols (if kbd_mode -u is used).

2004-10-25  Bart

	* src/plugin/kbd_unicode/keymaps.c:
	Detect alternate keymaps by checking keys 2 and 3 from the X server.
	Fixes the problem with setxkbmap us,ru

2004-10-25  Stas

	* src/dosext/net/net/pktnew.c:
	Supress error messages.

2004-10-24  Bart

	* src/plugin/kbd_unicode/keymaps.c:
	Only report a mismatch if the X server reports a valid key which is different
	from our valid key. This seems to fix both "uk" and "ru" autodetection.

	* src/dosext/dpmi/dpmi.c:
	Fix gcc warning, remove unnecessary PAGE_SIZE definition.

	* src/plugin/kbd_unicode/keymaps.c:
	Clean up auto detection to use the "X_keysym" character set and to not
	compare too many keys.

2004-10-23  Bart

	* src/: base/init/parser.y.in, plugin/kbd_unicode/keymaps.c,
	  plugin/kbd_unicode/serv_xlat.c,
	  plugin/kbd_unicode/include/keymaps.h:
	The console keyboard auto detection now merges with the US def, instead
	of replacing it.
	Changed $_layout="auto" to no longer blindly trust the console keyboard
	when running under X. A function was borrowed from Wine which compares
	the X keymap with all keymaps that we have (including perhaps the console
	keymap) and choose the one that matches best (as there is no way to
	obtain scancodes from X; X terminals may not be PCs after all).
	Hopefully fixes bug #999831.

	* src/dosext/mfs/mfs.c:
	Don't use asprintf() in exists() as there may not be enough space
	(fullname can become longer in find_file as names are unmangled).
	This caused a very nasty SIGSEGV when trying to delete a mangled name.
	Change to cheaper allocation on the stack with NAME_MAX+1 bytes for
	the filename component.

	* src/dosext/mfs/mfs.c:
	Converted chmod error into a warning; also used for utime() now.
	It now causes DOSEMU to ignore the request (not return an error),
	but only if errno==EPERM (not e.g. EROFS), the directory is writable,
	and chmod would actually change the mode.

	* src/dosext/mfs/mfs.c:
	convert_compare() now checks if the name has a ~ or ? at position 5;
	otherwise we don't need to mangle.
	Simplified extract_filename(), and auspr(): they may assume valid filenames.
	Convert * to ? before searching, so we don't need to check '*' in the
	comparison routines anymore.

	* Makefile:
	Removed the automatic autoconf rule again; it appears to have more drawbacks
	than advantages. Sometimes configure.ac changes only the autoheader part
	so that configure does not change and autoconf is not necessary (only
	autoheader).

2004-10-22  Bart

	* src/env/video/vgaemu.c:
	Fix wrong comparison for character heights. This fixes many fonts in
	graphics modes.

	* src/plugin/: sdl/Makefile, kbd_unicode/Makefile:
	Clean some generated files with make distclean/realclean.

	* src/plugin/sdl/sdl.c:
	Enable key repeat in SDL

2004-10-21  Stas

	* src/arch/linux/async/signal.c:
	Dont trust the "old" action struct, it may contain not what we want.
	This patch allows njamd to be used with dosemu, btw.

	* src/include/pic.h:
	Revert patch of 11.10.2004.
	Reinhard pointed the stupidity of it, and the fact that pic_unmaski()
	takes care about that automagically for more than a year already,
	makes it even not worth fixing.

	* etc/dosemu.conf, src/dosext/net/net/pktnew.c:
	I tested $_novell_hack, it appears to work (for my test-case at least).
	So the comment in the code that said it was disabled (that I propagated
	to dosemu.conf) appeared to be misleading. Removed.

2004-10-20  Bart

	* src/dosext/drivers/cdrom.c:
	Check for ENOTTY when doing the cdrom ioctl before reading. This allows
	using image files with cdrom.sys and *cdex.exe.

2004-10-20  Stas

	* src/dosext/net/net/pktnew.c:
	Dont try to init pkt when disabled in config.

	* src/dosext/mfs/mfs.c:
	Mounting FAT without "quiet" causes many obscure problems for dosemu.

	* src/dosext/net/net/pktnew.c:
	Return two accidentally removed strcpy() calls to packet driver...

2004-10-19  Bart

	* src/arch/linux/Makefile.main:
	Do the final link using a recursive invocation of make. That seems
	to avoid the problems with parallel makes, because this rule can
	now reliably depend on a phony target.

2004-10-18  Bart

	* src/env/video/vbe.c:
	removed protected mode bank switch caller again, because we don't handle
	cli and sti for it.

2004-10-18  Stas

	* src/: include/inifile.h, dosext/net/net/ipx.c:
	Really really remove the dos.ini support.

	* src/dosext/net/net/inifile.c:
	Remove dos.ini again (escaped from previous commit).

	* configure.ac, etc/dosemu.conf, etc/global.conf,
	  src/base/init/lexer.l.in, src/base/init/parser.y.in,
	  src/dosext/net/net/Makefile, src/dosext/net/net/ipx.c,
	  src/include/config.h.in, src/include/emu.h:
	- Removed never used (not even mentioned in docs) dos.ini file support.
	- Added $_ipx_network option to dosemu.conf (was in dos.ini previously).

2004-10-18  Bart

	* src/dosext/mfs/lfn.c:
	Fix semicolon typo. Should solve Clarence' problem.

2004-10-17  Bart

	* src/dosext/mfs/: mangle.h, mfs.c, util.c:
	Use a dos_to_unicode_table to complement unicode_to_dos_table and make
	path_to_ufs faster.

	* src/dosext/mfs/lfn.c:
	Fix possible buffer overflow.

	* src/dosext/mfs/mfs.c:
	For findfirst delay the filename compare and stat to findnext's.
	This makes get_dir() so much faster (70x) that the sigalrm check is no
	longer necessary.
	Also moved the . and .. in root dir check out of the loop in
	scan_dir.

	* src/dosext/mfs/: lfn.c, mangle.c, mangle.h, mfs.c, util.c:
	Reverted VFAT optimization. It's not reliable for say \`o (o with accent
	grave) where the uppercase equivalent does not exist in CP437. The kernel
	does not uppercase it but DOS and DOSEMU convert it to O. So searching
	for POT where the filename is p\`ot means the expensive way is necessary.
	Introduced a DOS uppercase table to be able to do this quickly, and
	let the LFN code use this. Simplify name_ufs_to_dos to no longer do any
	uppercasing as strupperDOS does this much more quickly. Some cleanups
	in scan_dir to make it more similar to what it was before.

2004-10-16  Bart

	* src/dosext/mfs/mfs.c:
	Simplify last part of loop: the strcasecmp for long and short names could
	be the same thing for a non-mangled name on a non-FAT fs.

	* src/dosext/mfs/: mangle.c, mfs.c:
	Fixed a regression in mangle.c with the unicode->dos table.
	Use the stack instead of malloc in name_convert.
	Only mangle all names in the directory if what we are looking for
	is a mangled name in the first place! Otherwise a simple strcasecmp
	is sufficient. That's another 12x faster for scan_dir(non_mangled_name).
	On VFAT (case insensitive fs) we don't need to scan at all.

	* src/: dosext/mfs/lfn.c, dosext/mfs/mangle.c, dosext/mfs/mfs.c,
	  dosext/mfs/util.c, plugin/translate/translate_config.c,
	  plugin/translate/config/plugin_parser,
	  plugin/translate/include/translate.h:
	Use current locale for the external filename character set (leaving
	keyboard/terminal/paste untouched for now). Allows simply using
	strcasecmp instead of slow unicode compare, and mbsrtowcs for the
	unix->dos filename translation. Gives a further 30% speed improvement
	of readdir searches.

	* src/dosext/mfs/mangle.c:
	Use a 64K-sized char table for unicode->DOS lookups. This makes the
	readdir searches about 3x faster.

2004-10-15  Bart

	* src/plugin/kbd_unicode/keyb_clients.c:
	Add the SDL keyboard to the keyb_clients struct.

	* src/env/video/X.c:
	Properly handle TIMESTAMP requests. Now klipper doesn't cause bad events
	anymore.

2004-10-14  Bart

	* src/env/video/X.c:
	Implement support for the TARGETS and TIMESTAMP atoms used in selection.
	This fixes the copy/paste problems with KDE 3.2.3.

2004-10-14  Stas

	* src/: arch/linux/debugger/mhpdbgc.c, emu-i386/do_vm86.c:
	Dont unfreeze dosemu when dosdebug is attached, do it only if
	explicitly asked via dosdebug.

2004-10-13  Bart

	* src/arch/linux/mapping/mapping.c:
	Allow virtual maps of the video memory at 0xa0000 if !config.console_video

	* src/: arch/linux/mapping/mapping.c, base/init/config.c,
	  base/init/init.c, base/init/parser.y.in, dosext/dpmi/dpmi.c,
	  env/video/vbe.c, env/video/vc.c, env/video/vga.c,
	  env/video/vgaemu.c, env/video/video.c, include/emu.h,
	  include/mapping.h, include/pci.h:
	Extend $_hardware_ram to allow maps over 1MB with a virtual base that
	DPMI can get. Implement a new set of hardware RAM functions (register,
	map, list, get) and make $_hardware_ram, VGA(PCI), DPMI, and VESA its
	users. A special type (0) is used for virtual mappings (used by VGAEMU);
	otherwise the memcheck character types are used.
	map_hardware_ram tries to map everything that was registered, including
	the low VGA display memory.

	* src/dosext/mfs/mfs.c:
	Speed up scan_dir by uppercasing the name to search for outside the loop
	and only comparing the mangled short name for SFN searches.
	LFN searches only compare the long name case insensitively.
	Use VFAT_IOCTL_READDIR_SHORT on vfat partitions from non-LFN code to
	make sure that LFN's are invisible when they aren't needed.
	Plug memory leak and page fault if you lredir'ed a non-existent
	directory.

2004-10-13  Stas

	* src/include/emu.h:
	Making config.hogthreshold (and ocasionally a couple of other vars)
	signed - needed for my upcoming hogthreshold updates (using the
	negative thresholds sometimes).

	* src/: arch/linux/async/signal.c, base/async/int.c:
	Moving io_select() from sigalrm to do_periodic_stuff() speeds up the
	packet driver twice.

	* src/env/video/X.c:
	Set the real resolution for fullscrean, not the scaled one.

2004-10-12  Bart

	* etc/dosemu.conf, src/arch/linux/async/signal.c,
	  src/base/init/lexer.l.in, src/env/video/Makefile,
	  src/env/video/vbe.c, src/env/video/vbe.h, src/env/video/vga.c,
	  src/env/video/vga.h, src/include/emu.h, src/include/vc.h,
	  src/include/video.h:
	Add a VESA VBE graphics driver and make that the default. This driver
	should work with any VBE version; an LFB is not necessary
	LFB availability is only possible on PCI boards right now.
	If (say) your PCI VGA BIOS only supports VESA 1.2 then it should even be
	possible to load a TSR such as UNIVBE in DOSEMU and the driver will use
	that.

	Provide a way to force reentry into handle_signals() so that we don't
	miss too many SIGALRMs whilst saving the video memory (a thread would
	perhaps be a nicer solution).

2004-10-12  Stas

	* src/dosext/net/net/pktnew.c:
	Complain if the pkt driver is not able to handle the bandwidth.
	I was not able to trigger that, so I need to know it some queueing
	should be implemented or not.

	* src/include/pic.h:
	Allow PIC to process EOI from pkt and mouse. They no longer need any
	special treatment.

	* src/dosext/net/net/pktnew.c:
	With bound socket we dont need that hack any more.

	* src/env/video/X.c:
	Restore dotclock rate on switching from fullscreen to windowed mode,
	otherwise the very bad things happen.

2004-10-11  Bart

	* src/: base/async/int.c, base/bios/bios.S, emu-i386/do_vm86.c,
	  emu-i386/ports.c, env/video/vga.c, include/bios.h,
	  include/port.h:
	Call int10/ax=mode for PLAINVGA before restoring registers. This helps
	when the BIOS is buggy or we don't restore enough registers ourselves;
	otherwise it doesn't hurt. The BIOS needs a check not to mess with
	the mouse driver.
	From Stas: introduce in_crit_section to make sure that the BIOS survives
	the callback. Allow callbacks when "frozen". Some small cleanups.

2004-10-11  Stas

	* src/dosext/net/net/: libpacket.c, libpacket.h, pktnew.c:
	Packet driver networking updates:
	- Use PF_PACKET/SOCK_RAW sockets instead of the deprecated and buggy
	AF_INET/SOCK_PACKET ones, changed the interfaces accordingly.
	- Put the sockets in a bind state - this allows to use the Async IO,
	which makes the direct NIC access mode ~50x faster.
	- Use simple read/write for IO - this is possible with the binded
	RAW sockets (not with the PACKET sockets though - they insist on
	sendto() even when binded, which is a bug).
	- Some large cleanups.

2004-10-10  Stas

	* etc/dosemu.conf, src/dosext/net/net/libpacket.c,
	  src/dosext/net/net/pktnew.c:
	Direct NIC access no longer requires root all the time, only at
	startup now, similar to dosnet.
	It looks like this was the last thing that required root all the time.

2004-10-09  Stas

	* src/base/serial/ser_ports.c:
	Fix another bug with IIR clearing. (part of #1042020)

2004-10-09  Bart

	* src/: include/vc.h, env/video/Makefile, env/video/vc.c,
	  env/video/vga.c, env/video/vga.h, env/video/video.c:
	vga.c cleanups and changes:
	* made lots of functions static, moved out of vga.h
	* use constant PLANE_SIZE of 64K; always save 256K in standard VGA modes
	* moved the state save to the end of the video init (init_vga_card)
	  and don't let it clear the saved Linux video memory (from Stas)
	* improved diagnostics
	vc.c: repaired dosemu -c

	* src/plugin/kbd_unicode/serv_xlat.c:
	Dead keys should not cause the display of question marks.

	* src/plugin/term/: keyb_slang.c, terminal.c:
	Make DOSEMU compatible with SLang 2.0.

	* src/emu.c:
	Don't call pcibios_init() in emu.c anymore as it's done elsewhere now.

2004-10-09  Stas

	* src/base/serial/ser_irq.c:
	Fix IIR clearing. (part of #1042020)

	* src/base/serial/ser_ports.c:
	Fix the problem introduced by the previous patch...

2004-10-09  Bart

	* etc/dosemu.conf, etc/global.conf, src/base/async/pci_bios.c,
	  src/base/dev/misc/pci.c, src/base/init/parser.y.in,
	  src/env/video/matrox.c, src/env/video/vga.c, src/include/pci.h,
	  src/dosext/dpmi/dpmi.c:
	* cleaned up pci_bios.c<->pci.c interface (Stas)
	* pci_bios.c now registers i/o and memory areas for all PCI devices
	* the real PCI interface can no longer be iopl(3) optimized because
	  of the port server
	* don't allow byte access to port 0xcf9 (can reset the CPU)
	* implemented a read-only PCI emulation interface based on the values
	  found at init. This only applies to selected PCI devices (eg VGA)
	* use PCI emulation by default with console graphics if PCI is available,
	  unless $_pci=(on)
	* allow I/O to all ports that PCI reports about VGA (closes #687024)
	* changed DPMI fn 0x800 to report about mmap'ed PCI memory areas, so
	  that LFB's work in the console
	* removed now obsolete $_console_pci and $_console_ports

2004-10-08  Bart

	* src/env/video/console.c:
	If the Linux console uses fbcon we can force a complete text redraw
	by doing two (round-trip) vc switches; otherwise (vgacon) it doesn't hurt.

	* src/: env/video/vc.c, env/video/vga.c, include/vc.h:
	Only reprogram the graphics and sequencer registers like they are in
	VGA mode 12 when saving/restoring video memory. Skipping the CRT registers
	is sometimes a little easier on the eye, when fbdev causes
	dosemu_vga_screenoff() not to do its job.

2004-10-07  Bart

	* src/emu-i386/do_vm86.c:
	0x66 0xef should be "out dx,eax", NOT "out edx,eax".

2004-10-03  Stas

	* src/base/init/parser.y.in:
	Do not fallback to "direct" for unknown vnet mode, just abort the dosemu.
	Wrong configs should not be allowed.

	* src/dosext/net/net/pktnew.c:
	Do not fallback to dynamic TAP allocation if the requested static
	allocation fails.

	* src/base/misc/smalloc.c:
	smalloc: It turned out safer to fail on zero-sized mallocs, rather than
	to do nothing. Otherwise people expect realloc() to work on the pointers
	returned by malloc(0).

	* etc/dosemu.conf:
	Increased LFB size to 4Mb under X.

	* etc/dosemu.conf, src/base/init/parser.y.in,
	  src/dosext/net/net/libpacket.c:
	- Enabled Packet Driver by default.
	- Clarified the pkt-related options in dosemu.conf.
	- $_vnet="direct" added - same as $_vnet="".

2004-10-02  Stas

	* src/base/serial/ser_ports.c:
	Dont reset "data ready" before the receive queue is empty.
	(Should fix #1029819)

2004-09-30  Bart

	* src/dosext/mfs/mfs.c:
	Include lfn.h (compiler warning)

2004-09-29  Bart

	* src/dosext/misc/xms.c:
	Removed some unnecessary #includes and function.

	* src/: dosext/misc/xms.c, env/video/vesa.c, include/vesa.h:
	Split off VESA definitions into a global header file.
	Always use the "aggressive" way to find UMBs (this is really the clean
	way, the real difference for umb_max is in video.c).
	For this to work the VGAEMU BIOS has to be registered though (in vesa.c).

	* src/arch/linux/mapping/mapping.c:
	Allow kmem mmaps with non-fixed targets.

2004-09-27  Stas

	* src/: include/smalloc.h, base/misc/smalloc.c:
	Made smget_area_size() signed.

	* src/dosext/dpmi/dpmi.c:
	Install the realmode callback trampoline only when program allocates
	the callback. This fixes some extremely buggy program. (Bug #1033901)

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, emu-i386/do_vm86.c:
	More accurate realmode callback address calculations.

	* src/base/misc/smalloc.c:
	smalloc: smget_area_size() should return -1 on failure, since 0 can be valid
	(found by megath@users.sourceforge.net)

	* src/base/misc/smalloc.c:
	smalloc: realloc(NULL, size) should work as malloc(size), rather than to fail.
	Bug found by megath@users.sourceforge.net.
	I was sure there are no bugs in smalloc... but dosemu never uses that trick.

2004-09-26  Bart

	* src/base/mouse/mouseint.c:
	Don't (un)freeze the mouse if there is no mouse,  because if we do that
	we get a SIGSEGV.

	* src/env/video/console.c:
	Don't clear the Linux console screen for $_graphics=(1). This will happen
	later anyway.

	* src/env/video/svgalib.c:
	Remove (now) useless #undef SVGALIB_C

2004-09-26  Stas

	* src/base/async/int.c:
	- NULL checks in xtitle code.
	- Replaced !strlen(str) with !str[0] - cosmetic.

	* src/emu-i386/ports.c:
	Make dosemu to work again.

2004-09-25  Bart

	* etc/dosemu.conf, etc/global.conf, src/base/init/lexer.l.in,
	  src/base/init/parser.y.in, src/emu-i386/ports.c,
	  src/include/port.h:
	- export trace_ports from global.conf to dosemu.conf
	- ports are now fast by default unless they are mentioned in $_trace_ports
	- using explicit "fast" or "slow" it is possible to force the ioperm
	  independently of any tracing set -- based on patch #1019824

2004-09-24  Bart

	* src/dosext/mfs/: lfn.c, lfn.h, mfs.c:
	LFN: only explicitly close findfirst handles for ax=71a1, not if no more
	files are found. For unknown filehandles, chain through to DOS to give
	DOSLFN a chance if that is loaded.
	A process termination hook closes all findfirst handles connected to
	the PSP that is terminated.

2004-09-23  Stas

	* src/dosext/dpmi/msdos.c:
	Fix 2 silly bugs in msdos_pre_exec() noticed by Japheth (Bug #1028236)

2004-09-22  Bart

	* src/arch/linux/async/signal.c:
	Remove the signal wrapper wrapper again -- it may not work with some old
	glibc's. So may be worse after all than simply bypassing the wrapper.
	Now detect if glibc installs a wrapper, and if it does, use the kernel
	sigaction instead to force the kernel to call our handlers directly.

	* src/dosext/mfs/lfn.c:
	LFN: don't return . and .. in findfirst/next for root directories.
	don't clobber the getcwd dest more than absolutely necessary.
	small cleanup of /. removal -- this is already done by truename now

2004-09-16  Stas

	* src/base/misc/smalloc.c:
	Cosmetic optimization for smalloc.

2004-09-15  Bart

	* src/env/video/X.c:
	Fix X.c to choose a better fitting resolution if (say) both 320x240 and
	320x200 modes are defined in XF86Config.

	* src/: base/bios/bios.S, dosext/mfs/lfn.c, dosext/mfs/mfs.c:
	Fix two bugs in the LFN support as per #1020635:
	* do not remove embedded spaces before dots and leading spaces.
	* fix interface between int21/ax=716c and int21/ax=6c00 to only transform
	  a "create" into an "open" if a file was really created, not if it already
	  existed, and to set cx to "created" (2).

2004-09-15  Stas

	* src/base/misc/smalloc.c:
	Small improvements and optimizations to smalloc.

2004-09-14  Stas

	* src/plugin/commands/builtins.c:
	com_dosallocmem()/com_dosfreemem() are no longer necessary.
	Why lowmem_alloc()/lowmem_free() are still there is because the
	builtins used to have many memory leaks and other mem violations.
	So allocating a private 2K pool for them is safer than to allow
	them to allocate from the main 32K pool. At least for a time.

	* src/: base/bios/bios.S, base/init/init.c, base/misc/Makefile,
	  base/misc/lowmem.c, include/lowmem.h, include/memory.h,
	  plugin/commands/builtins.c:
	- Shuffled the bios.S a bit to get a 32Kb of low memory for free.
	- Added a management for it - lowmem.[ch]. This is needed for VESA
	support.
	- Since the VESA support is not there yet, the usual victim is builtins,
	which are moved to use that heap instead of the on-fly DOS allocation
	that may be not always safe.

2004-09-13  Stas

	* src/: arch/linux/mapping/mapfile.c, base/misc/Makefile,
	  base/misc/pagemalloc.c, dosext/dpmi/memory.c,
	  include/pagemalloc.h:
	smalloc replaces pagemalloc. The advantages:
	- Allocations are not limited with the page-granularity.
	- Doesnt require garbage-collection and therefore probaly has fewer bugs.
	- Much simpler and smaller code (4K vs 12K).

	* src/: base/misc/Makefile, base/misc/smalloc.c,
	  base/misc/zalloc.c, env/video/matrox.c, env/video/vga.c,
	  include/smalloc.h, include/zalloc.h, plugin/commands/builtins.c:
	Introducing the new memory allocator - smalloc. It is intended to
	replace both zalloc and pagemalloc and being suitable for the VESA
	driver.
	- Replaced zalloc allocator by smalloc. smalloc is only 4K of code,
	compared to 12K of zalloc. The advantages over zalloc:
	-- Has realloc() (smrealloc)
	-- Has normal free(), which doesn't require to specify the length to free.
	-- Code is much smaller and almost as simple as of zalloc.

	* src/: dosext/mfs/mfs.c, emu-i386/do_vm86.c, include/emu.h,
	  plugin/commands/builtins.c, plugin/commands/builtins.h,
	  plugin/commands/commands.c, plugin/commands/dosdbg.c,
	  plugin/commands/lredir.c, plugin/commands/unix.c,
	  plugin/commands/xmode.c:
	Fix dozens of memory violations in builtins, mostly detected by the
	smalloc memory allocator. The fixes include (but not limited to the)
	following:
	- Cease the usage of the low mem considerably by calling the helpers
	directly.
	- Protect do_call_back() against re-entering. This was happening
	when eg. cmdline is interrupted by ^C, it was not able to recover.
	- Track all the allocations of load_and_run_DOS_program() to free it
	on termination (leaks).
	- On dos_read()/dos_write() set int0x23 to our return point, so that
	dosemu can recover even in case of ^C.
	- Fix com_strfree() to free the region of a proper size.
	- dos_helper_r is no longer necessary.
	- com_dosread() was not checking the size specified by caller -
	memory corruption.
	- memory corruption with builtin_name, no longer use DOS mem for it.
	- etc...

	* src/emu.c:
	Fix gcc warning.

	* src/include/shared.h:
	shared.h must die.

	* src/include/emu.h:
	Video memory size should not be of a short type.

2004-09-11  Bart

	* VERSION, configure, configure.ac, src/plugin/commands/generic.S:
	Make generic.S backwards compatible with older DOSEMUs so we can easily
	use DOSEMU 1.2 & 1.3 at the same time. Bump version code to 1.3.1.1
	so that generic.S can do a runtime check. Remove obsolete pthread
	comment in configure.ac (forces reconfigure).

2004-09-10  Bart

	* src/: emu-i386/do_vm86.c, arch/linux/async/signal.c:
	Force restoration of GS before signal handlers but only if
	the libc uses signal wrappers and GS != 0.
	Also restore flags/fs/gs after a vm86 call to work around a bug
	in 2.4 kernels.
	The implementation is hackish -- any beautification improvements
	are welcome, but it seems to work.

	* src/: include/emu.h, arch/linux/async/signal.c:
	Move common sigaction calling code into one static function
	(dosemu_sigaction_wrapper).

	* src/: emu.c, arch/linux/async/signal.c, include/emu.h,
	  base/misc/ioctl.c, emu-i386/simx86/cpu-emu.c, env/video/vc.c,
	  plugin/term/terminal.c:
	Convert ADDSET_SIGNALS_THAT_QUEUE, SETSIG, NEWSETSIG, and NEWSETQSIG from
	macros to functions.

2004-09-10  Stas

	* etc/dosemu.conf:
	$_oss_stalled_frags=(2) - this enables aoss to work.

	* src/emu.c:
	Dont close mouse twice, doing that in iodev_term() is enough.

2004-09-09  Stas

	* src/: include/cpu.h, arch/linux/async/signal.c,
	  dosext/dpmi/dpmi.h, emu-i386/cpu.c:
	Optimization: ucodesel/udatasel are unnecessary, use _emu_stack_frame
	instead.

	* src/: arch/linux/async/sigsegv.c, dosext/dpmi/dpmi.c:
	Prevent DPMI from trashing the entire LDT at startup! This makes
	pthreads much happier, and it was a horrible bug overall.

2004-09-08  Stas

	* src/: arch/linux/async/signal.c, include/emu.h:
	SIGWINCH was hijacked and no longer works for console switching.
	Changed to USR1 - now the console switching works again.

	* src/: base/mouse/mouseint.c, env/video/vc.c, include/mouse.h:
	closing/reopening mouse on console switch doesnt work: we need to call
	DOSEMUMouseSetup() (at least) after opening, but we dont.
	It is better to not close it at all, just halt reading it should be enough.

	* src/plugin/kbd_unicode/keyb_raw.c:
	set_shiftstate() in raw_keyboard_init() causes NULL deref.

	* src/env/video/: svgalib.c, svgalib.h, vga.h:
	There is no conflict anymore between <vga.h> and "vga.h" so svgalib.c
	can include both and svgalib.h can have the extern defs removed.

2004-09-04  Stas

	* src/dosext/dpmi/msdos.c:
	From japheth@users.sourceforge.net:
	Support for the following LFN functions added to PM API translator:
	3b, 41, 4e, 4f, 47, 6c, a1.

	* src/dosext/dpmi/msdos.c:
	Stop assuming 0 being in some regs and converted the mess to use the
	prominent macros.

2004-09-02  Stas

	* src/plugin/commands/: builtins.c, detect.h, generic.S:
	dosemu builtins locks up the machine if started under pure DOS.
	Fixed detect.h and used it to prevent that.

2004-09-01  Stas

	* src/plugin/commands/builtins.c:
	typo.

	* src/dosext/dpmi/dpmi.c:
	A little more info on exception.

	* src/plugin/commands/: Makefile, builtins.c, builtins.h,
	  generic.S, lredir.c, config/plugin_config.h,
	  config/plugin_inte6.h:
	Builtins plugin work:
	- Recursive invocations (unix -r et al) were not handled properly:
	every new invocation allocated the new mem pool, making the previous
	pool unaccessable. Now only one pool is allocated. Refcounting added
	to know when the pool is safe to destroy.
	- The above is an incompatible change for generic.S. Introduced the
	builtins interface versioning. Now if dosemu detects the outdated
	version of builtins, it will not run them and will ask user to upgrade.
	- Removed the code that was intended to allow calling builtins with
	far call. This code was never used and was broken since generic.S
	started to release memory at startup.
	- Moved DOS version checking from builtins.c to lredir.c.

	* src/base/serial/ser_init.c:
	Unlink the stalled lockfiles for serial and some debug messages cleanup.

	* src/emu.c:
	Remove dummy ign_sigs sighandler for leavedos() - our main sighandler
	is now mature enough to handle that, and also this will allow to get
	the stack traces from within the leavedos.

2004-08-30  Stas

	* src/: arch/linux/async/signal.c, emu-i386/do_vm86.c,
	  plugin/kbd_unicode/serv_8042.c,
	  plugin/kbd_unicode/serv_backend.c:
	- Completed the unbinding kbd code from PIC recursion.
	- keyb_server_run() must now be called more frequently, so moved from
	sigalrm handler to loopstep_run_vm86().

	* src/plugin/sdl/sdl.c:
	Please use -Wdeclaration-after-statement gcc option.

	* src/base/serial/: ser_irq.c, ser_ports.c:
	Dont try to clear FIFO when it is not enabled (bug #1012035).

2004-08-29  Bart

	* etc/global.conf:
	Fix problem with in global.conf with $_term_char_set.

	* src/base/misc/Makefile:
	Simplify the Makefile for src/base/misc.

	* src/base/misc/Makefile:
	Fix possible compilation problem (#1007380) that happened in some
	circumstances.

2004-08-28  Bart

	* configure, configure.ac, etc/global.conf,
	  src/plugin/term/terminal.c:
	Allow the utf8 patched slang to be linked in.
	Use "default" (mbrtowc and wcrtomb, following LC_CTYPE) for the output
	charset unless $_external_charset is specified.
	Switch the console to cp437 mode only if "linux" is in $TERM and the
	external character set is single-byte.
	The terminal code can now work with multibyte output character sets
	(including utf-8), if the patched slang (and hopefully slang 2.0 when it's
	released) is used.

	* src/plugin/translate/translate_config.c:
	Use the default (multibyte) charset for the unix_charset instead of
	manually playing with nl_langinfo.

	* src/plugin/translate/charsets/: multibyte.c, utf8.c:
	Fix a bounds check that was the wrong way around in multibyte.c.
	Fix unicode to utf8 conversion for 1- and 2- bytes sequences.

	* src/: arch/linux/async/signal.c, plugin/term/terminal.c:
	Move SIGWINCH sig init to the terminal init function and correct a
	problem where ctrl-alt-fn didn't work on the console with rawkeyboard
	in terminmal mode. Also made sure that vga.text* are set to the right
	values for non 80x25 terminals.

2004-08-15  Stas

	* src/: plugin/kbd_unicode/serv_8042.c, env/video/video.c:
	Repair $_speaker="native":
	- It should not use fast port access, it should go via portserver
	- Dont always disable it, the bug with killing linux is already fixed.

	* src/: base/bios/bios.S, plugin/kbd_unicode/serv_8042.c,
	  plugin/kbd_unicode/serv_backend.c:
	Attempt to unbind the keyboard code from the PIC recursion.

2004-08-15  Bart

	* src/plugin/sdl/sdl.c:
	Add support for resizing windows with SDL

	* Makefile.conf.in, compiletime-settings,
	  compiletime-settings.devel, etc/global.conf,
	  src/base/init/config.c, src/base/mouse/mouse.c,
	  src/base/mouse/mouseint.c, src/env/video/X.c,
	  src/env/video/text.c, src/env/video/video.c, src/include/mouse.h,
	  src/include/vgatext.h, src/include/video.h,
	  src/plugin/kbd_unicode/include/keyb_clients.h,
	  src/plugin/sdl/Makefile, src/plugin/sdl/Makefile.conf.in,
	  src/plugin/sdl/acinclude.m4, src/plugin/sdl/configure,
	  src/plugin/sdl/configure.ac, src/plugin/sdl/keyb_SDL.c,
	  src/plugin/sdl/mouse_SDL.c, src/plugin/sdl/sdl.c,
	  src/plugin/sdl/sdl.h, src/plugin/sdl/config/plugin_config.h.in:
	Added SDL plugin, based on the initial patch by Emmanuel Jeandel.
	Mostly functional, tested for X and fbdev.
	Start dosemu with the -S switch to use it.
	Still missing: dynamic window resizing, ctrl-alt-f/home, keyboard repeat,
	OpenGL/Overlay optimizations, PC speaker support, copy/paste, xtitle.

2004-08-14  Stas

	* src/: base/bios/bios.S, dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h,
	  dosext/dpmi/msdos.c, emu-i386/do_vm86.c, include/bios.h:
	Allocate realmode callbacks on a client's data area. This allows the
	client to allocate all the 16 callbacks (and avoids any limitations
	on the amount of clients), while still being able to use those of its
	parents parents parents

2004-08-14  Bart

	* src/: env/video/X.c, env/video/render.c, include/render.h:
	Introduce new function (get_mode_parameters() in render.c), which translates
	the vgaemu mode parameters into a convenient display mode.

	* src/: env/video/X.c, env/video/remap.h, env/video/vgaemu.c,
	  include/vgaemu.h, plugin/kbd_unicode/keyb_X.c,
	  plugin/term/terminal.c:
	Move vgaemu_display_type fill-in of fields from X.c to vgaemu.c (vga_emu_init)

	* src/: env/video/X.c, env/video/text.c, include/vgatext.h:
	Move resize_text_mapper() from X.c to text.c.

	* src/: env/video/X.c, env/video/render.c, include/render.h:
	Move the graphics update-related functions from X.c to render.c.
	Simplify the put_ximage interface as src_x/y are always equal to dest_x/y
	the way we call it.

2004-08-13  Bart

	* src/base/dev/misc/lpt.c:
	Fix printer code problem by making all fops members static and the public
	printer_* functions wrappers.

	* src/: arch/linux/async/signal.c, env/video/X.c, env/video/text.c,
	  include/video.h:
	Removed X_blink_cursor (use blink_cursor() in text.c instead) and made the
	call independent of config.X.

2004-08-11  Stas

	* src/dosext/net/net/pktnew.c:
	Small cleanup.

	* src/dosext/dpmi/msdos.c:
	Disable VXDLDR: some DOS progs think they can use it to load vxd
	and crash.

2004-08-09  Stas

	* src/base/dev/pic/pic.c:
	Misplaced bracket in do_irq() caused problems for console mouse
	driver (probably also in 1.2).

	* src/: base/dev/misc/rtc.c, base/dev/misc/timers.c,
	  base/dev/pic/pic.c, base/init/init.c, base/misc/ioctl.c,
	  base/mouse/mouse.c, base/serial/ser_defs.h,
	  base/serial/ser_irq.c, dosext/net/net/pktnew.c,
	  dosext/sound/sound.c, include/emu.h, include/iodev.h,
	  include/mouse.h, include/pic.h, include/pktdrvr.h,
	  plugin/kbd_unicode/serv_8042.c,
	  plugin/kbd_unicode/include/keyb_server.h:
	- Removed global variable pic_ilevel. ilevel is now passed as an argument
	to IRQ handlers. This is another step to upcoming removal of the recursion
	from PIC.
	Note: This change may yield bugs!
	- Fixed packet driver to work with that technique. Other drivers must be
	carefully tested (well, whats the use, they'll be broken again anyway
	when the recursion is removed:).

	* src/base/dev/pic/pic.c:
	Set ISR bits only in do_irq(). We don't need to clear them in
	run_irqs() then, which makes it easier to remove recursion from PIC
	without fixing all the drivers that produce the spurious interrupts.

2004-08-08  Stas

	* src/emu-i386/do_vm86.c:
	Small cleanup.

	* src/: env/video/Makefile, env/video/X.c, env/video/render.c,
	  env/video/text.c, include/render.h, include/vgatext.h,
	  plugin/term/terminal.c:
	Introduce render.c and render.h which form the middle layer between
	SDL and X and the remapper. One global remap_obj (hopefully a file scope
	static later) is defined in render.c.

	* src/dosext/dpmi/memory.c:
	Allocate 5 extra pages for DPMI pool to work around the possible
	memory fragmentation and potential pagemalloc bugs.

	* src/base/misc/pagemalloc.c:
	pagemalloc was refusing the last page.

	* src/dosext/dpmi/dpmi.c:
	Dont touch hi words of %eax/%ebx in dos memory functions of DPMI.
	(Bug #1004472)

	* src/dosext/dpmi/dpmi.c:
	Inherit the realmode callbacks on DPMI client creation. (Bug #1005015)

	* src/base/serial/ser_ports.c:
	Dont tcdrain() after transmitting the char as slows the transfer.
	There might be better ways to avoid queueing.

2004-08-07  Bart

	* src/: arch/linux/async/signal.c, arch/linux/async/sigsegv.c,
	  base/bios/int10.c, env/video/X.c, env/video/console.c,
	  env/video/dualmon.c, env/video/hgc.c, env/video/video.c,
	  include/video.h, plugin/term/terminal.c:
	Eliminated is_mapped field in Video, using checks whether the
	update_screen function pointer is NULL instead.
	Since update_screen now always goes through vgaemu we can use this to
	check for vgaemu instead of config.X.
	Add handle_events function pointer.

2004-08-01  Bart

	* src/: arch/linux/async/signal.c, arch/linux/async/sigsegv.c,
	  base/bios/int10.c, base/mouse/mousevid.c,
	  emu-i386/simx86/interp.c, emu-i386/simx86/sigsegv.c,
	  env/video/X.c, env/video/X.h, env/video/text.c,
	  include/vgatext.h:
	Remove many X_GRAPHICS and X_SUPPORT #ifdefs that are no longer necessary.
	Move (X_)set_textsize from X.c to text.c

2004-07-31  Bart

	* src/: env/video/X.c, env/video/text.c, plugin/term/terminal.c:
	Solve link problem when X is enabled with have_focus.

	* src/: emu-i386/ports.c, env/video/Makefile, env/video/miscemu.c,
	  env/video/remap.h, env/video/vgaemu.c, include/vgatext.h,
	  plugin/term/terminal.c:
	Use vgaemu for the terminal code and unconditionally compile vgaemu support.

2004-07-30  Bart

	* src/arch/linux/mapping/mapfile.c:
	Fix memory leak in case shm_open fails.

	* configure, configure.ac, src/arch/linux/mapping/mapfile.c,
	  src/arch/linux/mapping/mapping.c, src/include/config.h.in:
	Use shm_open and shm_unlink(). This is the new default for $_mapping = "auto"
	(tmpfile is the last resort); if it works out well we can remove mapshm.c later.

	* src/: emu.c, arch/linux/async/signal.c, include/emu.h:
	Allocate the signal stack on DOSEMU's stack instead of allocating it
	statically. Now it is possible to link with Linuxthreads without
	crashing, because the thread handling code is no longer confused
	about the thread id of the stack it is using.

	* configure, src/base/mouse/gcursor.c, src/base/mouse/mouse.c,
	  src/base/mouse/mousevid.c, src/base/mouse/mousevid.h,
	  src/include/config.h.in:
	Rename current_video to mouse_current_video, because of a namespace conflict
	with SDL.

2004-07-29  Bart

	* src/: env/video/X.c, include/vgatext.h, env/video/text.c:
	Move conversion from text map to bitmap in bitmap_draw_string() from X.c
	to text.c.

2004-07-27  Bart

	* src/env/video/Makefile:
	Adjust env/video/Makefile to text.c split.

2004-07-26  Bart

	* src/: include/vgatext.h, env/video/X.c, env/video/text.c:
	(Originally by Emmanuel Jeandel) Split most of the X-independent
	text mode functionality from X.c. That will make it easier to
	implement SDL support.

2004-07-22  Stas

	* src/arch/linux/async/: signal.c, sigsegv.c:
	- Invoking gdb in cleanup_child() is useless
	- Invoke gdb in dosemu_fault() before printing an exception info,
	because printing exception info can sigsegv itself.

2004-07-21  Stas

	* src/arch/linux/dosext/sound/linux_sound.c:
	Write some diagnostic when DSP open fails.

2004-07-19  Stas

	* src/base/dev/misc/lpt.c:
	reset_idle() when printing, and some cleanups.

	* src/dosext/dpmi/memory.c:
	Fix return value check.

	* src/dosext/dpmi/: dpmi.c, dpmi.h, memory.c, msdos.c:
	Attempt to separate committed and uncommitted memory handling on a
	DPMI level. DPMI spec says "Resize Linear Memory Block" (0x505) cannot
	be used on a block allocated with "Allocate Memory Block" (0x501), but
	only on a block allocated with "Allocate Linear Memory Block" (0x504).
	That helps.

	- DPMImalloc() splitted into DPMImalloc() and DPMImallocLinear()
	- DPMImallocFixed() merged into DPMImallocLinear()
	- DPMIrealloc() splitted into DPMIrealloc() and DPMIreallocLinear()
	- "Resize Linear Memory Block" can now create uncommitted pages.

2004-07-17  Stas

	* src/: dosext/dpmi/dpmi.c, arch/linux/async/sigsegv.c,
	  dosext/dpmi/dpmi.h:
	- Make CheckSelectors() to not terminate dosemu, but just to return
	whether the selectors are valid or not. The caller have to decide
	what to do.
	- Dont CheckSelectors() in direct_dpmi_switch() and indirect_dpmi_switch().
	Do it in dpmi_control() instead, which is within dosemu context.

	This all results in that dosemu now drops to dosdebug when encounters
	the invalid selector. A bit easier to debug.

	* src/dosext/dpmi/dpmi.c:
	Check stack segment against being read-only.

2004-07-16  Stas

	* src/dosext/dpmi/msdos.c:
	Clear higher word of %ebx when returning the DTA pointer.
	(bug #991194, Japheth)

2004-07-15  Bart

	* src/env/video/X.c:
	Add bound checks for text cursor drawing. Fixes #990235

2004-07-14  Stas

	* src/dosext/dpmi/vxd.c:
	Fixed bug in VTD VxD (timer). It turned out that dos4gw, at least the
	one from Tenberry, uses this VxD when available, so some games were
	screwed up with the timing.

	* src/emu-i386/do_vm86.c:
	Put the DPMI IF hacks exactly where they used to be in dpmi.c, to avoid
	regressions.

	* src/: base/dev/pic/pic.c, dosext/dpmi/dpmi.c, emu-i386/do_vm86.c:
	Merge the real-mode part of run_dpmi() into run_vm86().
	This allows to remove the "main loop" from dpmi_init(), using the
	loopstep_run_vm86() also for DPMI.
	There is yet another "main loop" in do_irq(), but that would be more
	difficult to remove.
	Note: this is a moderately intrusive change.

	* src/: arch/linux/mapping/Makefile, arch/linux/mapping/mapfile.c,
	  arch/linux/mapping/mapping.c, arch/linux/mapping/pagemalloc.c,
	  arch/linux/mapping/pagemalloc.h, base/init/init.c,
	  base/misc/Makefile, base/misc/pagemalloc.c, dosext/dpmi/dpmi.c,
	  dosext/dpmi/dpmi.h, dosext/dpmi/memory.c, include/pagemalloc.h:
	Use pagemalloc for DPMI allocations since the kernel no longer meets the
	expectations of DOS progs. See comments in memory.c for details.
	This makes GTA to work again.
	What a mess in fact...
	This cannot be done effectively via mapping system because of the problems
	with uncommitted memory.
	This cannot be done via zalloc because zalloc lacks realloc.
	This patch does:
	- Make pagemalloc to manage multiple pools, and move it to src/base/misc
	- Allocate a memory pool for the committed DPMI allocations and manage it
	with pagemalloc. Uncommitted allocations, even after being committed, are
	still handled separately. This probably cannot be generalized.

2004-07-12  Stas

	* src/base/misc/: fatfs.c, fatfs_boot.S:
	Make it possible to terminate dosemu by "any key" when no OS to boot.

	* src/base/misc/fatfs.c:
	Specify the directory where's the OS files are expected to be.

2004-07-11  Stas

	* src/doc/HOWTO/EMUfailure.sgml:
	Updated for 1.2.2 (hi Bart :), removed outdated things because of the
	following events:
	 - Windows (winos2) runs fine
	 - Protected mode "make" runs fine since 1.2.1
	 - DPMI call 0x506 is implemented (in -devel only so far)
	 - Bitmap fonts backported
	 - Keen4 works, you just need the proper version of it.
	(please regenerate docs)

2004-07-11  Bart

	* ChangeLog:
	Update ChangeLog for 1.3.1

	* NEWS, dosemu.spec.in:
	Added one more NEWS entry. Adjust dosemu.spec.in.

	* README, THANKS, doc/EMUfailure.txt, doc/announce,
	etc/dosemu.conf, man/dosemu.1.in, man/dosemu.bin.1.in,
	src/arch/linux/Makefile.main:
	Some minor documentation updates.

	* src/: arch/linux/async/signal.c, base/misc/ioctl.c:
	Block all async signals before signal_init. Avoids that the portserver will
	catch any -- set_process_control is also called from raw_keyboard_init.

2004-07-10  Stas

	* src/dosext/dpmi/dpmi.c:
	(AllocateSpecificDescriptor): we dont need this anymore.

	* src/: base/mouse/mouse.c, base/mouse/mouseint.c, include/mouse.h:
	Dont enable mouse driver before post_boot.
	Dont process mouse events when driver is disabled, to avoid crash.
	Init mouse.speed_x and mouse.speed_y early to avoid divizion by zero
	at startup.

	* NEWS:
	Some more news worth to mention.

2004-07-10  Bart

	* ChangeLog.old, NEWS, ChangeLog, VERSION:
	Renamed old ChangeLog to ChangeLog.old
	The new ChangeLog is now a more GNU-style changelog based on the raw commit
	dates on log messages so we can track more easily when a specific change
	was made.
	User visible changes go into NEWS.

	* src/base/async/int.c:
	reset idle for int21 functions that output

	* src/: emu.c, emu-i386/ports.c, include/emu.h,
	arch/linux/async/signal.c, base/misc/ioctl.c:
	Block SIGIO until signal_init() is called. That's the easiest way to
	avoid problems...
	This makes it possible to avoid all the new extra code in ports.c.
	While I was at it I could remove some related old cruft.

	* src/env/video/vc.c:
	Limit memcpy for VC text mode switching to 32k. Avoids crashes if
	more than 25 lines are used.

2004-07-09  Bart

	* src/emu-i386/ports.c:
	Set all signals that dosemu changed either to a default or ignore
	handler. Unblock all of them.

	* src/dosext/mfs/mfs.c:
	Check for failed lseeks before reads and writes (may happen if the file
	offset is negative). Thanks to Jan Zuchhold <Jan@Zuchhold.com>

2004-07-08  Bart

	* src/arch/linux/mapping/mapshm.c:
	We need string.h for memcpy.

	* src/: base/bios/int10.c, env/video/miscemu.c, env/video/vgaemu.c:
	Fix two vgaemu regressions:
	fonts were wrong in 640x480 and 640x350 VGA graphics modes
	colours were wrong in these modes too
	Fixes some new issues with STDEMO.

	* src/: emu.c, emu-i386/ports.c:
	Fix for #984975. Easiest was after all to to do signal init before 
	deviceinit and port server fork. Then block *all* signals in the
	port server.

2004-07-06  Bart

	* src/: emu-i386/ports.c, include/cpu-emu.h:
	Remove i/o port restrictions for 0x400, asking ioperm instead.
	Will help when the kernel supports a larger bitmap.

	* src/base/bios/int10.c:
	Adjust int10 CGA palette support to do brightness correctly.
	Now and` old CGA pacman is yellow instead of brown as it should be.

	* src/: include/vgaemu.h, base/bios/int10.c, env/video/miscemu.c,
	env/video/vgaemu.c:
	Implement CGA register 0x3d9 emulation + BIOS support. Fixes colours
	in bug #958717

2004-07-05  Bart

	* src/env/video/vgaemu.c:
	Correct screen height for CGA modes (part of #958717)

	* configure, src/include/config.h.in:
	Regenerate configure and config.h.in

2004-07-04  Stas

	* src/dosext/dpmi/: dpmi.c, msdos.c:
	Small fixes and cleanups from the failed Win3.1 support (R/W LDT is
	completely dropped):
	- Never allocate the system descriptors for client (UCODESEL, UDATASEL)
	- Set ldt_buffer and pm_stack to NULL after free()
	- Zero out the entire client struct on DPMI init, rather than some of
	its parts.
	- Dsable NULL-ptr fixing code again.

	* configure.ac, src/dosext/dpmi/Makefile, src/dosext/dpmi/dpmi.c:
	We want windows.
	(please re-run autoheader and autoconf)

2004-07-04  Bart

	* src/base/bios/int10.c:
	Fix || which should be && of course to determine if we use a text or
	a graphics mode. Fixes #982872

	* src/base/mouse/mouse.c:
	Only init the xterm mouse once or you'll get a lot of traffic!
	Closes #959015.

	* etc/vga.bdf, src/env/video/X.c, src/env/video/vgafonts.c:
	The XCHAR kludge to translate 0 to 0x20 (' ') is only necessary for
	vga.pcf, not bitmap fonts. I've corrected vga.pcf but since people may
	use a different vga.pcf than ours (IIRC Debian has a seperate vgafonts
	package) I'll leave the kludge for non-bitmap fonts for the time being.
	In any case this fixes the zx_emul vertical bar problem (#911174)

2004-07-03  Stas

	* src/dosext/misc/emm.c:
	EMM fixes:
	- handle name is 8 bytes ASCII, but dosemu stores it as ASCIIZ,
	  therefore 9 bytes must be reserved.
	- Fix usage of NULL_PAGE, it is not a handle.

2004-07-02  Stas

	* src/dosext/dpmi/dpmi.c:
	OK, but then the ms-linker stops to work again...
	Well, with this hack they both work, but no guarantee something
	else is not broken (this is an obscure case anyway).

	* src/dosext/dpmi/dpmi.c:
	Be more conservative about fixing %esp. Apparently there are the DPMI
	clients that put esp above the TASK_SIZE (somewhere to 0xffffff80) and
	work perfectly (unless I "fix" %esp). No idea how they work, but...

2004-06-28  Bart

	* etc/global.conf:
	Ignore empty "drives" directories for $_hdimage="drives/*".

2004-06-27  Stas

	* src/dosext/dpmi/msdos.c:
	Re-enabled NULL-ptr fixing in msdos.c. This is required by the unmodified
	Win3.1 kernel (not WinOS2 fortunately).

	* src/dosext/dpmi/dpmi.c:
	Properly check for selectors allocation limit. Unmodified Win3.1 requests
	too many descriptors which crash dosemu.

	* src/: dosext/dpmi/vxd.c, dosext/dpmi/Makefile,
	dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, dosext/dpmi/msdos.c,
	dosext/dpmi/vxd.h, base/bios/bios.S, include/bios.h:
	VxD hooks for WinOS2.
	This seems to solve all the remaining problems with Win3.1, namely:
	- Alt-Tab now works (SHELL VxD)
	- Timer now works (VTDAPI VxD)

	Note: win32s support is disabled for now - it needs some porting efforts and
	I have lost my test-cases for it.
	Note: Only protected mode entry points are supported. WinOS2 doesnt seem to
	be using the real-mode entry points, so I have not added those.

	It seems Win3.1/WinOS2 works perfectly now as far as I can tell, at least
	similar to how it works under QDPMI.

2004-06-26  Stas

	* src/dosext/dpmi/msdos.c:
	Dont trash %esi if cwd failed.

2004-06-22  Stas

	* src/dosext/dpmi/dpmi.c:
	Make the error message to work again.

	* src/dosext/dpmi/dpmi.c:
	Refer to our docs, not to external.

	* src/dosext/dpmi/memory.c:
	DPMIfree() & co must account only the committed pages. +Some cosmetic.

2004-06-21  Bart

	* src/env/video/s3.c:

	From Reinhard:
	There is a small problem with s3.c, so I can't use it with $_console=1 and
	$_graphic=1. (thanks to Michael)

2004-06-12  Bart

	* src/env/video/vgaemu.c:
	Hercules port range patch from Ryan Underwood.

	* etc/dosemu.conf, src/plugin/extra_charsets/bg-mik.c,
	src/plugin/extra_charsets/cp895.c:
	Add cp895 (Czech/Slovak) (ZUB@atlas.cz)
	Add bg-mik character set (Ivo Tachev, ivotachev@mail.bg)

2004-06-11  Bart

	* src/arch/linux/dosext/sound/midid/timid.c:
	I really have to make seqbuf_dump non-static to avoid the gcc warning...

2004-06-09  Stas

	* src/arch/linux/dosext/sound/midid/timid.c:
	Fix gcc warning.

	* src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, env/video/vc.c,
	include/emu.h:
	- Move _emu_stack_frame to emu.h - it must be globally available.
	- Restore fs/gs in console sighandlers - this way dosemu can survive the
	console switch on a NPTL-enabled systems.
	- Set NO_VC_NO_DEBUG to 0 - it only eats debug info.

	* src/arch/linux/async/debug.c:
	cat maps for the reason this time.

2004-06-07  Bart

	* src/env/video/instremu.c:
	From: dcoffin@cybercom.net
	To: bart@dosemu.org
	Subject: Incorrect bitshifts in instremu.c

	Hi Bart,

	     My fiancee really loves playing her old DOS games
	on DOSEMU, so thanks for the hard work!

	     Running my Scrabble game in DOSEMU, I saw visual
	defects.  After many hours of debugging, I traced the
	problem to instremu.c.

	     My code does "shl al,cl", which should set AL to
	zero when CL is 8.  But DOSEMU treats the 8 as though
	it were a zero.  No x86 CPU behaves this way.

	     According to the MASM reference:

	"On the 80186-80386 processors, shift counts larger than
	31 are masked off, but on the 8088 and 8086, larger shift
	counts are performed despite the inefficiency involved."

	     I experimentated with the other shift and rotate
	commands, and then made a patch to imitate the behavior
	of 80186 and later CPUs.  RCL and RCR are especially
	interesting...
	                                Dave Coffin  6/3/2004

2004-06-03  Stas

	* src/plugin/kbd_unicode/serv_8042.c:
	Allow booting with $_xms=(off).
	dosemu always maps HMA, regardless of the $_xms setting. This check does
	nothing but prevents dosemu from booting with $_xms=(off).
	Unfortunaltely Win98/DOS hates our XMS driver, so possibility to disable
	it, must work.

	* src/: arch/linux/debugger/mhpdbgc.c, base/data.c,
	base/dev/misc/lpt.c, base/misc/hma.c, base/misc/ioctl.c,
	dosext/dpmi/dpmi.c, dosext/misc/xms.c, dosext/net/net/pktnew.c,
	emu-i386/do_vm86.c, emu.c, env/video/vc.c, include/dosio.h,
	include/hma.h, include/xms.h, plugin/kbd_unicode/serv_8042.c:
	- dosio.h must die, use hma.h instead
	- small cleanups in hma.c
	- use separate a20_local and a20_global in xms.c

	* src/arch/linux/async/debug.c:
	The more debug info the better.

2004-05-31  Bart

	* src/dosext/mfs/mfs.c:
	Avoid fixed sized buffer and strcpy/strcat in exists()

2004-05-30  Bart

	* src/env/video/X.c:
	Use vga.seq.addr_mode == 2 instead of the number of planes to check for
	chain4 modes of planes. This fixes the Windows logo... #962683

	* src/arch/linux/mapping/mapshm.c:
	For realloc_mapping_shm we can't expand shared anonymous memory using mremap
	so we must allocate a new region and memcpy to it. Fixes a problem with
	WP 5.1's use of EMS

	* src/base/bios/int10.c:
	The int10 BIOS now determines whether a mode is text or graphics from
	the byte at 40:49. Also reduce use of global co and li by peeking these
	values from 40:xx. Eventually co and li should be completely removed.

2004-05-29  Bart

	* src/base/init/parser.y.in:
	Change stop_mouse c_printf to be a little more legible.

2004-05-29  Stas

	* src/dosext/dpmi/msdos.c:
	- Rewrote old_dos_terminate() as per suggestions in bug #909015
	- Disable fix-NULL-deref code as per suggestion in RFE #937984

2004-05-29  Bart

	* src/env/video/: X.c, vgaemu.c:
	Removed line_compare==0 workaround, since the CRTC init now initializes it
	correctly from the CRTC registers. Have to check at a few places in X.c
	to compensate. This fixes some display problems with bananoid.

	* src/env/video/X.c:
	Fix another scan_len case: fixes problems with resizing zx_emul. Only the
	bars remain.

2004-05-28  Bart

	* src/env/video/X.c:
	Force a redraw for bitmap text modes upon resizing. This helps for plain
	text modes but not for funny text modes such as the one zx_emul uses.

	* src/emu-i386/ports.c:
	Replace kernel 2.6 test as agreed upon during the last IRC

2004-05-25  Bart

	* src/env/video/crtcemu.c:
	Fix occasional wrong display or even page fault after an int10 mode change.

2004-05-24  Stas

	* src/dosext/dpmi/memory.c:
	Two use-after-free bugs in uncommitted mem code :(

2004-05-22  Bart

	* src/env/video/X.c:
	Fix hang when non-bitmap fonts were used.

	* src/env/video/: X.c, vgaemu.c:
	Decouple scan_len from co. Sometimes we must use scan_len instead of co...
	Since zx_emul has co=40 but scan_len=48 this is necessary.
	Now zx_emul displays everything correctly except for some annoying vertical bars
	I couldn't get rid off.

	* src/env/video/: X.c, vgaemu.c:
	Correct vgaemu height calculations and relax limits on columns on lines
	(as long as the product*2 is within 64k)

	* src/env/video/: X.c, seqemu.c, vgaemu.c:
	Respect sequencer for determining 8- or 9- pixel wide characters.
	X_update_text_screen should respect a changed display and resize.

	* src/: base/bios/int10.c, env/video/vgaemu.c:
	Text modes in X now update from the aliased memory (high up in the Linux
	address space), instead of 0xa0000-0xc0000; will be necessary to use
	instremu for text modes. Corrected one related screen_adr assignment.

	* src/dosext/dpmi/dpmi.c:
	Use syscall() for modify_ldt. Not sure if this fixes the Fedora problem yet
	but it is consistent with the other syscalls anyway.

	* src/: base/serial/ser_ports.c, arch/linux/async/sigsegv.c,
	dosext/dpmi/dpmi.c, dosext/dpmi/memory.c, include/Linux/serial.h:
	Avoid the direct inclusion of kernel headers that seem to creep in
	by using private copies.

	* src/base/init/parser.y.in:
	Reverted Stas' mouse change with respect to the parser. $_mouse_dev="" should
	not disable the mouse for X/terminal/gpm, only for console.

2004-05-20  Bart

	* src/: include/vgaemu.h, env/video/crtcemu.c, env/video/vgaemu.c:
	Implement CRTC readonly flag (thanks to the dosbox source code for the hint :-P)
	Fixes the myth bug --only 72 out of 200 lines were displayed (#930572)
	Stas please close if you can confirm.

2004-05-20  Stas

	* src/base/serial/ser_ports.c:
	Fix transmit IRQ triggering code of ser_ports.c. Closes bug #944346.

2004-05-19  Bart

	* INSTALL, src/emu-i386/ports.c:
	Added sanity check to see if catching port i/o works.

2004-05-18  Bart

	* src/dosext/net/net/ipxglt.c:
	ipx_interface really should get the same treatment as ipx_route...

2004-05-10  Stas

	* src/base/: mouse/mouseint.c, init/parser.y.in:
	Dont try internaldriver if $_mouse_dev=""

2004-05-09  Stas

	* src/: include/mapping.h, arch/linux/mapping/mapping.c,
	arch/linux/mapping/mapshm.c:
	Dont use mapshm if MREMAP_FIXED is not available (this was implicitly
	checked together with mremap(,0,...), but not any longer).

2004-05-08  Bart

	* configure, configure.ac:
	Respect CFLAGS as set by the user.

	* etc/global.conf:
	Repair $_cpu="emulated"

2004-05-08  Stas

	* src/arch/linux/async/debug.c:
	asprintf() is a GNU extension and needs _GNU_SOURCE before <stdio.h>

2004-05-08  Bart

	* etc/global.conf:
	Add missing endif.

	* configure.ac, default-configure, configure,
	src/base/bios/Makefile, src/env/video/Makefile:
	Don't use CFLAGS for the 16bit BIOS asm files. The -g in there confused
	binutils/gdb and that was the reason for the -gstabs+. Now we can just
	use the standard dwarf-2 debug info in dosemu.
	Also default-configure must check for gpm, not libgpm in compiletime-settings.

	* etc/global.conf:
	Remove warning that wasn't any more ...

	* etc/global.conf:
	Correct new problem with $_chipset

2004-05-07  Bart

	* src/arch/linux/async/: Makefile, debug.c, debug.h, signal.c,
	sigsegv.c:
	Added Stas' auto-gdb patch. I changed two small things: avoid buf[255]
	(potential buffer overflow), and also output what "ldd" says.
	getconf GNU_LIBC_VERSION must be quite recent (GLIBC 2.3+ I think) by
	the way, doesn't work here with 2.2.4
	getconf: Unrecognised variable `GNU_LIBC_VERSION'
	That doesn't hurt though.

	* etc/global.conf, src/base/init/parser.y.in:
	Limit use of strlen in global.conf; move com port processing into a loop.
	For some reason foreach doesn't always play nicely with if :(
	Don't define a serial port in the parser with an empty device ("virtual"
	still works though)
	Please check if this doesn't break your favourite configuration.

2004-05-07  Stas

	* src/base/serial/: ser_init.c, ser_irq.c, ser_ports.c:
	Next round of serial low-latency work: disable the internal timers.
	Now, with the async notifications, we can sync with the real thing instead.
	This gains 20sec improvement here at burning a flash in MC.

	* src/base/serial/ser_ports.c:
	Remove wrong IRQ triggering code from ser_ports.c. Part of bug #944346

2004-05-05  Bart

	* src/: include/video.h, base/init/parsglob.h,
	base/init/parser.y.in:
	Hopefully last bunch of gcc-3.4 adjustments. Compiles cleanly and works now.

	* configure, configure.ac:
	gcc 3.4 doesn't like -mcpu= anymore. Use -mtune= instead.

	* src/dosext/misc/emm.c:
	Avoid lvalue casts.

	* src/dosext/dpmi/dpmi.c:
	Avoid lvalue casts... What a mess, probably push/pop style macros would be
	cleaner...

	* src/: emu-i386/do_vm86.c, include/cpu.h:
	Avoid more deprecated casts. Not sure if prefix66 ^ prefix67 is the right
	thing for ecx... Have to look that up.

	* src/emu-i386/cpu.c:
	Fixed GCC 3.3.3 warning:
	cpu.c:154: warning: use of conditional expressions as lvalues is deprecated
	cpu.c:154: warning: use of cast expressions as lvalues is deprecated

	* src/emu-i386/cputime.c:
	Don't zero trigger1 after usleep.

2004-05-02  Bart

	* src/: base/async/int.c, base/bios/int16.c, emu-i386/cputime.c,
	include/timers.h:
	Consolidated all idling calls that use a trigger into one common function
	with a common trigger. All triggers now reset after each usleep(). Also
	the MFS resets the trigger. There may be more places where that is useful.

	* src/env/video/: X.c, remap.c:
	reconfig.mem should become 0 again after redrawing the text screen.
	fixed an x-offset bug in remap.c: now X.c can properly draw rectangles of
	texts, and not just screen-wide blocks.
	The combination of these two changes makes bitmap fonts much faster.

2004-05-01  Bart

	* src/arch/linux/mapping/mapshm.c:
	From Stas: use MAP_SHARED | MAP_ANONYMOUS instead of IPC.

2004-04-30  Bart

	* src/: arch/linux/mapping/mapping.c, env/video/vc.c:
	Repair !have_mremap_fixed and related vc code.

2004-04-29  Bart

	* src/base/async/int.c:
	Correct int15/ax=e801.

2004-04-29  Stas

	* src/dosext/dpmi/memory.c:
	Fix return value check.

	* src/: arch/linux/mapping/mapping.c, env/video/vc.c:
	- Make MAPPING_COPYBACK to work for MAPPING_KMEM and MAPPING_LOWMEM in all
	cases.
	- Map lowmem instead of unmapping KMEM - this makes the interfaces more
	consistent.

2004-04-26  Bart

	* src/dosext/net/net/ipxglt.c:
	From Michael Karcher: also check /proc/net/ipx/route for kernel 2.6

2004-04-25  Stas

	* src/: include/emu.h, plugin/kbd_unicode/prestroke.c:
	Fix memory corruption in keystroke handling + cleanups. Bug #909588.

2004-04-16  Stas

	* src/emu-i386/cpu.c:
	Fix some in_dpmi misuses. Noticed by japheth@users.sf.net, bug #934921.

2004-04-14  Stas

	* src/: arch/linux/mapping/mapping.c, dosext/dpmi/memory.c:
	Fix mprotect size, cosmetic.

2004-04-12  Bart

	* src/plugin/term/keyb_slang.c:
	Get rid of the "inconsistency in define key" warning message where it's
	harmless.

	* src/env/video/: vc.c, vga.c:
	Fix a couple of small new bugs encountered in the cleaned up video code.

2004-04-11  Bart

	* src/: arch/linux/mapping/mapping.c, env/video/vc.c,
	include/mapping.h:
	Mostly from Stas: use COPYBACK cap to avoid a temporary buffer when
	flipping between /dev/mem memory and low memory.
	Bart: clean up a bit, use size_t instead of off_t (off_t is a signed
	type used for file offsets!) and remove the root checks (if extended
	mremap is available).

	* src/: include/vc.h, env/video/console.c, env/video/vc.c,
	env/video/vga.c, env/video/video.c:
	Clean up vc get/put video ram routines. It should now be clear how and
	where to apply Stas' patch.

	* src/: emu.c, env/video/X.c, include/video.h,
	plugin/term/terminal.c, env/video/console.c, env/video/dualmon.c,
	env/video/hgc.c, env/video/video.c:
	Introduced a priv_init field for the video system. priv_init (for now) calls
	the old console driver init procedure. init calls the console driver
	post_init and for the terminal and X the normal init. Hopefully this doesn't
	break too much -- terminal and X still work.

2004-04-08  Bart

	* src/dosext/mfs/lfn.c:
	Implemented our own LFN filematch routine, with a little help from
	GLIBC. Special trick is to add a period if it's not there so that:
	dir *.
	matches all files without an extension.
	log and log? match log (==log.), but log?? doesn't match.

	* src/dosext/mfs/lfn.c:
	LFN: wildcard delete and findfirst/next need to match both sfn's and lfn's!
	-- in Win98 "dir *1.*" will give you almost all LFNs.
	Next stage will be to dumb down fnmatch with a custom version.

2004-04-07  Stas

	* src/dosext/dpmi/dpmi.c:
	Sanity check triggers false-positives.

2004-04-06  Stas

	* src/include/emu.h:
	Restart syscalls after EINTR. Should fix #885692.

	* src/: dosext/dpmi/dpmi.c, emu-i386/cpu.c, include/emu.h:
	Dont allow client stack to run above the dosemu stack. This is a loosy
	attempt to work around a ESP CPU bug. Seems to get the ancient MS linker
	to work. (bug #929123)

	* src/include/emu.h:
	linux-2.6 needs SA_NODEFER to allow the recursive signal handling. We need
	2 nesting levels of SIGSEGV sometimes. (part of bug #929123)

2004-04-02  Stas

	* src/dosext/dpmi/dpmi.c:
	Dont print debug info twice. Also avoids crash when trying to dump the
	content of an uncommitted page after a Page Fault.

	* src/: base/async/int.c, base/bios/bios.S, dosext/dpmi/dpmi.c,
	dosext/dpmi/msdos.c, dosext/dpmi/msdos.h, include/doshelpers.h,
	include/int.h, include/memory.h:
	- Added wrappers for DOS I/O (int21/ah=0x3f,0x40) to allow read/write >64K.
	- Added helpers to pass data between the high and low mem.
	- PM API Translator adjusted to use the new wrappers for I/O operations.
	- READ_DS_COPIED no longer needed, removed.
	This patch allows 32rtm to work. This is a noticeable step - 32rtm allows
	to run win32 console apps (PE).
	Many thanks to japheth@users.sourceforge.net for locating so many problems
	and providing a usefull hints.

2004-03-30  Bart

	* src/: dosext/mfs/lfn.c, dosext/mfs/mfs.c, dosext/mfs/util.c,
	include/dos2linux.h:
	LFN updates: ported FreeDOS' truename function to be able to handle
	int21/ax=7160 better, and to avoid escaping the drive letter "sandbox".
	"...." = "..\..\.." etc work too.
	Just like dir c:\foo\.. when foo does not exist (another DOS oddity).

2004-03-29  Bart

	* src/emu-i386/ports.c:
	Remove the munmap(low memory) in the portserver. It no longer
	makes sense.

2004-03-29  Stas

	* src/dosext/dpmi/memory.c:
	Always map the uncommitted mem to zeropage.

	* src/: arch/linux/mapping/mapping.c, base/init/init.c:
	- kmem_map_mapping() was necessary only to supply the lowmem hack.
	Since there is nomore a hack, kmem_map_mapping() is unnecessary.
	- add missing alloc_mapping() call.

2004-03-29  Bart

	* src/: emu.c, arch/linux/mapping/mapping.c, env/video/console.c,
	env/video/vc.c, env/video/vga.c, env/video/video.c, include/emu.h,
	include/video.h:
	Introduced video_post_init(): mmaps /dev/mem for video RAM and
	sets up VC switch functionality.  This allows for the complete
	removal of the mapping.c hacks.

	* src/: emu.c, arch/linux/mapping/mapping.c, base/dev/misc/lpt.c,
	base/init/dev_list.c, base/init/init.c, base/mouse/mouse.c,
	base/mouse/mouseint.c, base/serial/ser_init.c, emu-i386/cputime.c,
	emu-i386/ports.c, env/video/X.c, env/video/console.c,
	env/video/vc.c, env/video/video.c, include/emu.h, include/mouse.h:
	Seperate low memory initialization from the rest of the init and fixed
	a few NULL pointer dereferences...
	Note: this allows us to remove some hacks but by keeping a temporary
	fd to /dev/mem open during init we will also be able to mmap video
	ram after dropping privs, so more can be removed in mapping.c...
	Dropping privs can then be done much earlier, and also is independent
	from memory mapping.
	* printer: set BIOS values in printer_mem_setup()
	* video: set BIOS values in video_mem_setup()
	* dev_list: add mouse_reset and serial_reset handlers which just like
	  the keyboard reset handler fill in the BIOS values.
	* call the reset handler just before booting, not immediately after
	  the init handler
	* move the mouse_reset_to_current_video_mode() during init to
	  mouse_post_boot() (current_video_mode may be strange for fbdev now,
	  was 0....)
	* mouse.c: fixed sptr null dereference
	* mouseint.c: fixed mice->dev NULL deref
	* cputime.c: Video may be NULL for first console switches at init while
	  console code is playing with ioctls
	* ports.c -- can derive BIOS_VIDEO_PORT value from dosemu config
	* X.c check for config.X_font being NULL
	* removed a few superfluous calls to clear_screen() and set_video_bios_size()
	* vc.c: can't read the BIOS during the first get_video_ram and console
	  switch --- this really needs to be cleaned up...

2004-03-28  Stas

	* src/arch/linux/mapping/mapping.c:
	MAPPING_LOWMEM implies MAPPING_ALIAS.

	* src/dosext/dpmi/memory.c:
	Account only the committed memory for $_dpmi. Also properly account
	committing/uncommitting pages.

2004-03-28  Bart

	* src/arch/linux/mapping/mapping.c:
	Apply mremap /dev/mem areas functionality.
	Move old skip code over to new memory structure.
	Add #ifdefs for "REQUIRED_KERNEL_VERSION"

2004-03-27  Bart

	* src/arch/linux/mapping/mapshm.c:
	From Stas: replace kernel 2.6.1 check by a cleaner one.

	* src/: arch/linux/mapping/mapping.c, base/init/init.c,
	include/mapping.h:
	Move my hack from init.c to mapping.c, hoping to merge with Stas'
	technique in case mremap is not available.
	Only one file left to change now though...

	* src/: arch/linux/mapping/mapping.c, env/video/dualmon.c,
	env/video/hgc.c, env/video/matrox.c, env/video/vc.c:
	Next chunk of Stas' changes -- this one doesn't really do anything
	except for limiting the size of the patch I want to have a closer
	look at.

	* src/arch/linux/mapping/mapping.c:
	The basic changes need this one too, or DOSEMU is completely broken ...
	(sorry, my fault, Bart)

	* etc/global.conf, src/arch/linux/mapping/mapfile.c,
	src/arch/linux/mapping/mapping.c, src/arch/linux/mapping/mapshm.c,
	src/base/misc/hma.c, src/dosext/dpmi/memory.c,
	src/dosext/misc/emm.c, src/include/mapping.h,
	src/include/Linux/mman.h:
	The small part of Stas' mapping cleanups.
	Remove "console" from global.conf for $_graphics=(1) since it already
	implies "console" in the parser anyway.

2004-03-16  Bart

	* src/base/dev/misc/lpt.c:
	Fix memory leak.

2004-03-15  Bart

	* Makefile.conf.in, src/commands/Makefile,
	src/arch/linux/Makefile.main:
	Define LD at the right place. Remove unnecessary exports in
	Makefile.main

2004-03-13  Stas

	* src/dosext/dpmi/msdos.c:
	Fix bug in function 0x56 (rename file), from #909015
	Properly return the canonicalized filename to DPMI client
	(from bug #909015)

	* src/dosext/dpmi/: dpmi.c, memory.c:
	Escaped bits from previous commit (use RWX, not RW).

2004-03-12  Bart

	* configure:
	autoconf

2004-03-11  Bart

	* VERSION:
	Bump up VERSION in CVS already so people won't confuse it with 
	1.3.0 from the tarball.

2004-03-11  Stas

	* configure.ac:
	More escaped bits from the mapping redesign commit.

	* src/base/misc/: dosio.c, shared.c:
	Escaped bits from the mapping redesign commit.

2004-03-11  Bart

	* src/: arch/linux/mapping/mapping.c, base/init/init.c,
	include/mapping.h:
	Had to create an even bigger hack because the aliased low memory now
	overwrites any /dev/mem areas -- this broke console graphics.
	So we have to be careful to see which areas were already mapped to
	/dev/mem (using a char array that check if a page is /dev/mem or not)
	Hopefully with this working base I can start cleaning things up.

2004-03-10  Bart

	* src/dosext/dpmi/memory.c:
	Need to include "emu.h" before other headers to get config.h including
	_GNU_SOURCE...
	See /usr/include/features.h
	#ifdef  _GNU_SOURCE
	# define __USE_GNU      1
	#endif
	_GNU_SOURCE is documented. __USE_GNU is internal to Glibc (AFAICS)

2004-03-10  Stas

	* src/: arch/linux/mapping/mapping.c, arch/linux/mapping/mapshm.c,
	dosext/dpmi/memory.c, dosext/sound/sound.c,
	arch/linux/dosext/sound/midid/midid.c, base/dev/dma/dma.c:
	- Use RWX permissions for IPC SHM by default instead of RW,
	otherwise we end up with the non-executable first meg (but it
	didnt hurt since on x86 it is possible to execute regardless).
	- Update my e-mail address :)

2004-03-08  Stas

	* src/: emu-i386/do_vm86.c, include/emu.h,
	plugin/commands/builtins.c:
	Alowing interrupts during the callbacks proved to be reliable, making a
	default.

	* src/plugin/commands/comcom.h, src/plugin/commands/commands.c:
	Remove the remaining traces of comcom.

2004-03-07  Stas

	* src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c:
	Properly free segregs after freeing memory block (from bug #909015)

2004-03-07  Bart

	* src/: emu.c, arch/linux/mapping/mapfile.c,
	arch/linux/mapping/mapping.c, arch/linux/mapping/mapshm.c,
	emu-i386/ports.c, emu-i386/simx86/memory.c, include/mapping.h,
	include/vm86plus.h:
	Removed direct kernel interfaces where possible and replaced inline asm
	by syscall() otherwise -- the latter allows glibc to use sysenter and
	friends.
	The calls for syscall() are extended_mremap, dosemu_sigaction,
	vm86_old and vm86_plus. Note however that dosemu_sigaction is only
	called when sigaltstack is not supported.

2004-03-07  Stas

	* src/: base/bios/bios.S, dosext/dpmi/dpmi.c, include/bios.h:
	- Implemented extended exception stack frame (DPMI 1.0, needed by rtm32)
	- Allow Visible Page Faults (DPMI 1.0, needed by bug #909015 and rtm32)

	* src/: arch/linux/mapping/mapping.c, dosext/misc/emm.c,
	include/mapping.h:
	Update EMM to new mapping flag.

2004-03-07  Bart

	* src/: base/misc/disks.c, base/misc/utilities.c, include/disks.h,
	include/utilities.h, tools/periph/hdinfo.c:
	eliminate libless_llseek. For hdinfo we can use _FILE_OFFSET_BITS==64
	as it's standalone. For disks.c it's safer to explicitly use *64 calls.
	#ifdef __linux__ is a little optimistic but doesn't hurt :)

2004-03-07  Stas

	* src/: arch/linux/async/signal.c, arch/linux/debugger/mhpdbg.c,
	arch/linux/mapping/mapfile.c, arch/linux/mapping/mapping.c,
	arch/linux/mapping/mapshm.c, base/data.c, base/init/init.c,
	base/misc/Makefile, base/misc/hma.c, dosext/dpmi/dpmi.c,
	dosext/dpmi/dpmi.h, dosext/dpmi/memory.c, emu-i386/ports.c, emu.c,
	include/emu.h, include/mapping.h, include/memory.h:
	Mapping system revamp.
	- Added support for lowmem region, it is now a part of SHM segment.
	- Moved DPMI memory away from SHM segment.
	- Updated HMA, DPMI and other subsystems to the new mapping features.

	* src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c:
	Next part of bug #902742:
	- remaining issues with is_dos_selector() fixed.
	- couple of 16/32bit registers confusion fixed.
	dos_read/dos_write case is not yet.

2004-03-06  Stas

	* src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c:
	Allocate 6 realmode stacks for each DPMI client instead of 16 for 
	all clients. Blinker extender is now supported (closes SR #855611).