Showing results for History - The Old New Thing

Jan 18, 2005
Post comments count0
Post likes count1

The importance of error code backwards compatibility

Raymond Chen
Raymond Chen

I remember a bug report that came on in an old MS-DOS program (from a company that is still in business so don't ask me to identify them) that attempted to open the file "". That's the file with no name. This returned error 2 (file not found). But the program didn't check the error code and though that 2 was the file handle. It then began writi...

History
Jan 17, 2005
Post comments count0
Post likes count1

How did MS-DOS report error codes?

Raymond Chen
Raymond Chen

The old MS-DOS function calls (ah, int 21h), typically indicated error by returning with carry set and putting the error code in the AX register. These error codes will look awfully familiar today: They are the same error codes that Windows uses. All the small-valued error codes like ERROR_FILE_NOT_FOUND go back to MS-DOS (and possibly even furth...

History
Jan 11, 2005
Post comments count0
Post likes count0

Why doesn't \ autocomplete to all the computers on the network?

Raymond Chen
Raymond Chen

Wes Haggard wishes that \ would autocomplete to all the computers on the network. [Link fixed 10am.] An early beta of Windows 95 actually did something similar to this, showing all the computers on the network when you opened the Network Neighborhood folder. And the feature was quickly killed. Why? Corporations with large networks wer...

History
Jan 11, 2005
Post comments count0
Post likes count0

Why doesn’t \ autocomplete to all the computers on the network?

Raymond Chen
Raymond Chen

Wes Haggard wishes that \ would autocomplete to all the computers on the network. [Link fixed 10am.] An early beta of Windows 95 actually did something similar to this, showing all the computers on the network when you opened the Network Neighborhood folder. And the feature was quickly killed. Why? Corporations with large networks wer...

History
Dec 20, 2004
Post comments count0
Post likes count0

Don’t save anything you can recalculate

Raymond Chen
Raymond Chen

Nowadays, a major barrier to performance for many classes of programs is paging. We saw earlier this year that paging can kill a server. Today, another example of how performance became tied to paging. The principle is "Don't save anything you can recalculate." This of course, seems counterintuitive: Shouldn't you save the answer so you don't h...

History
Dec 17, 2004
Post comments count0
Post likes count0

How did Windows 95 rebase DLLs?

Raymond Chen
Raymond Chen

Windows 95 handled DLL-rebasing very differently from Windows NT. When Windows NT detects that a DLL needs to be loaded at an address different from its preferred load address, it maps the entire DLL as copy-on-write, fixes it up (causing all pages that contain fixups to be dumped into the page file), then restores the read-only/re...

History
Dec 15, 2004
Post comments count0
Post likes count1

The hunt for a faster syscall trap

Raymond Chen
Raymond Chen

The performance of the syscall trap gets a lot of attention. I was reminded of a meeting that took place between Intel and Microsoft over fifteen years ago. (Sadly, I was not myself at this meeting, so the story is second-hand.) Since Microsoft is one of Intel's biggest customers, their representatives often visit Microsoft to show off what t...

History
Dec 14, 2004
Post comments count0
Post likes count0

Why do dialog editors start assigning control IDs with 100?

Raymond Chen
Raymond Chen

When you use a dialog editor and insert new controls, they typically are assigned control IDs starting at around 100. Why? Because the small numbers are already taken. /* * Dialog Box Command IDs */ #define IDOK 1 #define IDCANCEL 2 #define IDABORT 3 #define IDRETRY 4 #define IDIGNORE ...

History