Newsgroups: comp.windows.ms.programmer


So hello to Win3.1!
A brave new operating system with absolutely no UAE dialogue boxes!

We can all rejoice now that UAE is an error message which will
vanish into the mists of time to reside with "ABEND" and 
"BDOS Err A on B:" as error messages used to scare young hackers about
programming in the Old Days.

Or can we? Just because the message is gone, doesn't mean that a new
UAE dialog isn't out there, waiting. 
Waiting till that big demo.
Waiting till your applet goes on sale. 
Waiting till the second tuesday of the sixth month of 1993...

I've aleady got quite a frightening error message while compiling & testing a
dos program which sustained a "Bolivian Bus-Plunge" class crash:

	This application has violated system integrity
	and will be terminated. 

	Quit all applications, quit Windows, and then
	restart your computer.

Will be terminated huh? Does that mean a T1000 is motorbiking across 
Britain shooting all programmers called Steve?

And this "quit windows" business. Is that a blatant plug for win NT,
OS/2 2.0 or what?

Rather than keep wondering what else was "out there" I've just been through
the WINDOWS\SYSTEM directory with GREP, STRINGS and ResWorkshop.
Some of the stuff I found was quite interesting...

The dreaded "UNRECOVERABLE APPLICATION ERROR" used to reside in
KRNL386.EXE, and really is gone now.
It looks like it has been replaced by the standard message :

	An error has occurred in your application.
	If you choose Ignore, you should save your work in a new file.
	If you choose Close, your application will terminate.

The possible extra details are:

	a General Protection Fault
	a Divide by Zero
	a Stack Fault
	an Illegal Instruction
	a Page Fault
	a Not Present Fault  	(what's this - device related?)
	an Application Fault	(pretty specific this one)
	Segment Load Failure
	Out of Selectors

There seems to be more interesting stuff in WINOA386.MOD, with eight variants
on the Quit Windows message, each for a different cause -page fault, 
General Programming Exception, privilege violation, and, unusually,
invalid hardware manipulation. 

There are also lower serious fault with what look like exactly the same 
causes, yet the solution is just 
"It is recommended that you save all your changed data as soon as possible."  

Why the difference? The thing we all learned from the UAE days was that 
you could keep running everything else with about 50% success,and it was only
when progman ripped that you were in deep trouble.

Finally, I think the "Abort, Retry or Ignore?" award for the the least
useful error message may well go to 
	 "Call to Undefined Dynalink"

This has replaced 
	"Cannot find FOO.DLL, Please insert in drive A:"

I don't deny that the old message was useful only if you had a nearby
machine with the required DLL and a spare floppy, but at least you knew
which file you needed. Now the only chance you have is to use EXEHDR and
look through the imports to find all the DLLs. I forsee hours of fun here.

So, goodbye UAE, Hello CUD & QuitWindows!!!

	-Steve

PS. Something that might be useful -strings 513-517 in USER.EXE
This is where User, Company and version information seems to reside...

	
-----------------------------------------------------------------------------
|		  Steve Loughran					    |
| E-MAIL:         slo@hplb.hpl.hp.com || slo@hpl.hp.co.uk || slo@hplb.uucp  |
| ORGANISATION:   Hewlett-Packard Laboratories, Bristol			    |
| ADDRESS:        Filton Road, Stoke Gifford, Bristol, England, BS12 6QZ    |
| TELEPHONE:      +44 272 228717					    |
| FAX:		  +44 272 790554					    |
-----------------------------------------------------------------------------