Knowledge (XXG)

Bug compatibility

Source 📝

245: 80:
calculation errors caused by some of their formatter software under earlier issues of these systems. While this undocumented behaviour allows them to cope with these incorrectly formatted volumes specifically, it limits the flexibility of disk geometries they can work with in general and can cause
38:
and unintended behaviour. That must also be preserved by the newer replacement. Besides the significantly higher complexity that needs to be maintained during the natural evolution of the code or interface, it can sometimes cause performance or security issues, and the inconsistencies in the
132:(CDS) internally), but also actual bugs in the kernel and several drivers, in order to make certain other drivers and applications run on DR-DOS, when they were tested on specific versions of MS-DOS only. 666: 112:
also had to be modified to not only emulate many undocumented peculiarities and undesirable properties of MS-DOS and PC DOS (like having to use certain misleading filenames such as
781:(NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger 335:), but could not be done later on in order to remain compatible with various tools expecting these particular filenames. To eliminate the risk of crashes, these files were changed into 39:
behaviour of interfaces can sometimes lead to new bugs in the software using it, creating difficult to resolve multi-directional cross dependencies between various pieces of code.
852: 476: 93:
contains code specially designed to detect and fix certain widespread applications and stub loaders (such as programs linked with older versions of Microsoft's
511: 638: 813: 636: 581: 615:
Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1
536: 677: 101:' 386 DOS extenders) by patching the loaded program image before executing it. Under certain conditions an underlying DOS also patches Windows ( 785:
collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the
650: 769: 741: 373:
Same as bug-compatible, with the additional implication that much tedious effort went into ensuring that each (known) bug was replicated.
924: 181:'s chips", forcing them to make their computer bug-compatible with the IBM PC. Another hardware example is found in the design of the 147:, which makes it possible to run many Windows applications on other platforms, also needs to maintain bug compatibility with Windows. 882: 713: 628: 439: 556: 143:, which has traditionally emulated many old system bugs to allow older low-level programs to run, is another example. As a result, 996: 829:
and the non-obvious design constraints to be observed when developing resident system extensions to be loaded into the HMA.)
790: 34:
with an older system is that such systems' client programs often do not only depend on their specified interfaces but also
453:(NB. The author mentions that DOS 4.0 checks the OEM label, but denies that DOS 3.2 checks it as well (although it does).) 948: 765:
NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds
129: 840: 464: 165: 503: 182: 961: 805: 81:
them to trash validly formatted volumes created by third-parties if they deviate from the defaults used by
991: 31: 573: 544: 687: 76:(BPB) values and recalculate them from other disk geometry parameters in order to work around several 73: 848: 808:[Loading drivers dynamically (Intra-segment offset relocation to load TSRs into the HMA)]. 737:
NWDOS7UN.TXT — Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7
472: 213: 212:, talks about this problem that he observed firsthand while working on C++ core libraries. It was 205: 23:
if it exactly replicates an undesirable feature of a previous version. The phrase is found in the
250: 198:, which falsely treats 29 February 1900 as an actual date, to ensure backward compatibility with 121: 90: 874: 763: 735: 364: 102: 89:. When MS-DOS/PC DOS 5.0 and higher are running on 286 or higher processors, the resident 624: 435: 156: 140: 806:"Treiber dynamisch nachladen (Intra-Segment-Offset-Relokation zum Laden von TSRs in die HMA)" 406: 844: 826: 468: 124:
for files which do not follow the specs for executables under DOS, or having to introduce a
98: 709: 308:
programs would result in the system to crash. This is the reason why these files have the
301: 263: 191: 144: 385: 875:"Re: [fd-dev] On GRAFTABL and DISPLAY.SYS (Was: Changing codepages in FreeDOS)" 654: 620: 613: 324: 312: 217: 125: 244: 985: 683: 608: 429: 195: 174: 69: 35: 343:
and higher now including tiny stubs to exit gracefully when invoked inappropriately.
268: 224: 233:. It was a mistake in the original web proposal, and was kept for compatibility. 216:, also an engineer at Google, who popularized this concept on a larger scale as " 340: 305: 199: 24: 336: 332: 328: 297: 293: 240: 117: 113: 77: 61: 258: 229: 82: 304:. Accidentally trying to run them from the prompt as if they were normal 185: 170: 903: 825:(NB. Gives a comprehensive overview on the history and "nature" of the 94: 320: 316: 209: 160: 109: 57: 53: 734:
Paul, Matthias R. (1997-06-07) . "Chapter 1.3.xi: Überlange Pfade".
679:
DR-DOS 7.03 WHATSNEW.TXT - Changes from DR-DOS 7.02 to DR-DOS 7.03
178: 651:"Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT" 602: 600: 598: 65: 273: 86: 841:"Fix for CauseWay DOS extender under DR-DOS 7.0x EMM386.EXE" 949:
Excel incorrectly assumes that the year 1900 is a leap year
925:"Bruce Artwick / The Designer Behind Flight Simulator II" 431:
Programmer's Technical Reference for MSDOS and the IBM PC
611:; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) . 60:: When MS-DOS/PC DOS 3.1 and higher (including 612: 323:. This could have been avoided by choosing other 799: 797: 567: 565: 563: 962:"Software Engineering at Google [Book]" 530: 528: 497: 495: 493: 188:to emulate the behaviour in older processors. 8: 19:Computer hardware or software is said to be 300:files are special binary images containing 635:(xviii+856+vi pages, 3.5"-floppy) Errata: 407:"Windows 95's third delay; needs polish" 904:"WineFeatures - The Official Wine Wiki" 356: 285: 619:(2 ed.). Reading, Massachusetts: 417:(52). InfoWorld Media Group, Inc.: 18. 768:. MPDOSTIP (in German) (3 ed.). 574:"Re: masm .com (PSP) related trouble" 7: 712:(COUNTRY.LST file) (1.44 ed.). 14: 762:Paul, Matthias R. (1997-07-30) . 708:Paul, Matthias R. (2001-06-10) . 386:"Bug-compatible - www.jargon.net" 873:Paul, Matthias R. (2001-08-18). 839:Paul, Matthias R. (2002-04-01). 804:Paul, Matthias R. (2002-02-02). 649:Paul, Matthias R. (1997-10-02). 572:Paul, Matthias R. (2002-10-07). 535:Paul, Matthias R. (2004-08-25). 502:Paul, Matthias R. (2002-02-20). 243: 108:Over the course of development, 885:from the original on 2017-09-04 855:from the original on 2018-09-19 816:from the original on 2017-09-09 772:from the original on 2017-09-10 744:from the original on 2016-11-07 716:from the original on 2016-04-20 584:from the original on 2017-09-03 514:from the original on 2017-09-09 479:from the original on 2017-09-09 177:described as "a bug in one of 169:would not run because of what 1: 923:Yakal, Kathy (January 1985). 710:"DOS COUNTRY.SYS file format" 428:Williams, Dave (1992-01-12). 227:is a misspelling of the word 405:Pontin, Jason (1994-12-26). 194:has always had a deliberate 130:Current Directory Structure 1013: 686:1998-12-24. Archived from 463:Bass, Wally (1994-02-14). 166:Microsoft Flight Simulator 155:During development of its 504:"Need DOS 6.22 (Not OEM)" 72:, they do not trust some 52:Examples can be found in 30:An aspect of maintaining 849:comp.os.msdos.programmer 740:. MPDOSTIP (in German). 473:comp.os.msdos.programmer 365:"bug-for-bug compatible" 183:IBM Personal Computer/AT 951:. Retrieved 2019-05-01. 997:Backward compatibility 32:backward compatibility 163:engineers found that 508:alt.msdos.programmer 74:BIOS Parameter Block 225:HTTP referer header 929:Compute!'s Gazette 607:Schulman, Andrew; 251:Engineering portal 208:, an engineer at 157:IBM PC compatible 91:executable loader 1004: 976: 975: 973: 972: 958: 952: 946: 940: 939: 937: 936: 920: 914: 913: 911: 910: 900: 894: 893: 891: 890: 870: 864: 863: 861: 860: 836: 830: 824: 822: 821: 810:de.comp.os.msdos 801: 792: 788: 784: 780: 778: 777: 759: 753: 752: 750: 749: 731: 725: 724: 722: 721: 705: 699: 698: 696: 695: 674: 668: 665: 663: 662: 653:. Archived from 646: 640: 634: 618: 604: 593: 592: 590: 589: 569: 558: 555: 553: 552: 543:. Archived from 532: 523: 522: 520: 519: 499: 488: 487: 485: 484: 460: 454: 452: 450: 449: 425: 419: 418: 402: 396: 395: 393: 392: 382: 376: 375: 361: 344: 290: 253: 248: 247: 186:A20 address line 99:Rational Systems 16:Programming term 1012: 1011: 1007: 1006: 1005: 1003: 1002: 1001: 982: 981: 980: 979: 970: 968: 966:www.oreilly.com 960: 959: 955: 947: 943: 934: 932: 922: 921: 917: 908: 906: 902: 901: 897: 888: 886: 872: 871: 867: 858: 856: 838: 837: 833: 819: 817: 803: 802: 795: 786: 782: 775: 773: 761: 760: 756: 747: 745: 733: 732: 728: 719: 717: 707: 706: 702: 693: 691: 676: 675: 671: 660: 658: 648: 647: 643: 631: 606: 605: 596: 587: 585: 571: 570: 561: 550: 548: 534: 533: 526: 517: 515: 501: 500: 491: 482: 480: 462: 461: 457: 447: 445: 442: 427: 426: 422: 404: 403: 399: 390: 388: 384: 383: 379: 363: 362: 358: 353: 348: 347: 325:file extensions 302:executable code 291: 287: 282: 264:Plug compatible 249: 242: 239: 192:Microsoft Excel 153: 138: 128:length-limited 68:detect certain 50: 45: 17: 12: 11: 5: 1010: 1008: 1000: 999: 994: 984: 983: 978: 977: 953: 941: 915: 895: 865: 831: 793: 754: 726: 700: 669: 641: 629: 621:Addison Wesley 609:Brown, Ralf D. 594: 559: 537:"NOVOLTRK.REG" 524: 489: 465:"Cluster Size" 455: 440: 420: 397: 377: 355: 354: 352: 349: 346: 345: 284: 283: 281: 278: 277: 276: 271: 266: 261: 255: 254: 238: 235: 152: 149: 137: 134: 126:directory path 70:FAT OEM labels 49: 46: 44: 41: 21:bug compatible 15: 13: 10: 9: 6: 4: 3: 2: 1009: 998: 995: 993: 992:Software bugs 990: 989: 987: 967: 963: 957: 954: 950: 945: 942: 930: 926: 919: 916: 905: 899: 896: 884: 880: 876: 869: 866: 854: 850: 846: 842: 835: 832: 828: 815: 812:(in German). 811: 807: 800: 798: 794: 791: 771: 767: 766: 758: 755: 743: 739: 738: 730: 727: 715: 711: 704: 701: 690:on 2019-04-08 689: 685: 684:Caldera, Inc. 681: 680: 673: 670: 667: 657:on 2003-10-04 656: 652: 645: 642: 639: 637: 632: 630:0-201-63287-X 626: 622: 617: 616: 610: 603: 601: 599: 595: 583: 579: 575: 568: 566: 564: 560: 557: 547:on 2016-03-04 546: 542: 541:www.drdos.org 538: 531: 529: 525: 513: 509: 505: 498: 496: 494: 490: 478: 474: 470: 466: 459: 456: 443: 441:1-878830-02-3 437: 433: 432: 424: 421: 416: 412: 408: 401: 398: 387: 381: 378: 374: 370: 366: 360: 357: 350: 342: 338: 334: 330: 326: 322: 318: 314: 311: 307: 303: 299: 295: 289: 286: 279: 275: 272: 270: 267: 265: 262: 260: 257: 256: 252: 246: 241: 236: 234: 232: 231: 226: 221: 219: 215: 214:Titus Winters 211: 207: 203: 201: 197: 196:leap year bug 193: 189: 187: 184: 180: 176: 175:Bruce Artwick 172: 168: 167: 162: 158: 150: 148: 146: 142: 135: 133: 131: 127: 123: 119: 115: 111: 106: 104: 100: 96: 92: 88: 84: 79: 75: 71: 67: 63: 59: 55: 47: 42: 40: 37: 33: 28: 26: 22: 969:. Retrieved 965: 956: 944: 933:. Retrieved 931:. p. 32 928: 918: 907:. Retrieved 898: 887:. Retrieved 878: 868: 857:. Retrieved 834: 818:. Retrieved 809: 787:NWDOSTIP.TXT 783:MPDOSTIP.ZIP 774:. Retrieved 764: 757: 746:. Retrieved 736: 729: 718:. Retrieved 703: 692:. Retrieved 688:the original 678: 672: 659:. Retrieved 655:the original 644: 614: 586:. Retrieved 578:alt.lang.asm 577: 549:. Retrieved 545:the original 540: 516:. Retrieved 507: 481:. Retrieved 458: 446:. Retrieved 430: 423: 414: 410: 400: 389:. Retrieved 380: 372: 368: 359: 337:fat binaries 309: 288: 269:Software bug 228: 222: 206:Hyrum Wright 204: 190: 164: 154: 139: 107: 51: 29: 20: 18: 879:freedos-dev 341:DR-DOS 7.02 327:(like with 218:Hyrum's Law 200:Lotus 1-2-3 122:COUNTRY.SYS 58:PC DOS 25:Jargon File 986:Categories 971:2022-05-31 935:2014-07-06 909:2010-02-03 889:2017-09-04 859:2018-09-19 820:2017-07-02 776:2014-08-06 748:2016-11-07 720:2016-08-20 694:2019-04-08 661:2009-03-29 588:2017-09-03 551:2011-12-17 518:2006-10-14 483:2006-10-14 448:2012-01-08 391:2010-02-03 351:References 333:DRBDOS.SYS 329:DRBIOS.SYS 315:set under 298:IBMDOS.COM 294:IBMBIO.COM 118:IBMDOS.COM 114:IBMBIO.COM 103:WINA20.386 78:off-by-one 62:Windows 9x 845:Newsgroup 469:Newsgroup 411:InfoWorld 313:attribute 306:COM-style 259:AARD code 83:Microsoft 883:Archived 853:Archived 814:Archived 770:Archived 742:Archived 714:Archived 582:Archived 512:Archived 477:Archived 444:. DOSREF 369:catb.org 237:See also 230:referrer 171:subLOGIC 43:Examples 847::  789:file.) 471::  141:Windows 136:Windows 95:EXEPACK 627:  438:  321:PC DOS 317:MS-DOS 310:hidden 210:Google 161:Compaq 110:DR-DOS 64:) and 54:MS-DOS 339:with 280:Notes 179:Intel 151:Other 625:ISBN 436:ISBN 331:and 296:and 292:The 223:The 145:Wine 85:and 66:OS/2 36:bugs 827:HMA 274:API 220:". 173:'s 120:or 105:). 97:or 87:IBM 48:DOS 988:: 964:. 927:. 881:. 877:. 851:. 843:. 796:^ 682:. 623:. 597:^ 580:. 576:. 562:^ 539:. 527:^ 510:. 506:. 492:^ 475:. 467:. 434:. 415:16 413:. 409:. 371:. 367:. 202:. 159:, 116:, 27:. 974:. 938:. 912:. 892:. 862:. 823:. 779:. 751:. 723:. 697:. 664:. 633:. 591:. 554:. 521:. 486:. 451:. 394:. 319:/ 56:/

Index

Jargon File
backward compatibility
bugs
MS-DOS
PC DOS
Windows 9x
OS/2
FAT OEM labels
BIOS Parameter Block
off-by-one
Microsoft
IBM
executable loader
EXEPACK
Rational Systems
WINA20.386
DR-DOS
IBMBIO.COM
IBMDOS.COM
COUNTRY.SYS
directory path
Current Directory Structure
Windows
Wine
IBM PC compatible
Compaq
Microsoft Flight Simulator
subLOGIC
Bruce Artwick
Intel

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.