Robert and John, all good answers.
John, it was difficult enough to get this old legacy code working in 32-bit. Extended this 40 year old code to 64-bit is definitely not on my immediate horizon! Much of the legacy code uses (and relies on) /SAVE, so stack utilization is minimal, save for the system/Salford routines that might use it. I have experienced some FTN95 memory allocation issues that are puzzling and frustrating, but those have been identified and steps taken to minimize or eliminate issues. I also have some users who are running 32-bit Windows OS's and don't want them to be excluded. It is difficult enough to maintain a Production implementation and a Development implementation simultaneously, when the two instantiations have to be kept physically separated before I add on a third and fourth with 64-bit!
Further Background: I was starting the program with no indication of the reason for the ending. I observed that there was about a 2-4 second delay from the invocation to the ending, and the Splash Screen did not display, so that limited the possible code to a smaller set. I have a common exit point handling routine, so I know it never got there. It had to be ending due to some exception or exit point that was outside of my code.
These were NOT SDBG runs. It happened both on /CHECKMATE and /RELEASE compilations, although less so on /CHECKMATE. This was a hint.
I ran the /RELEASE program in SDBG (my first time running SDBG actually) just to see what the reason for the abnormal termination was, if possible, and that's the info I posted. It took a number of tries (more than 'normal') to get the problem to throw the exception. The reason made no sense when I looked at where in the execution stream it occurred. It was my %sc handler. Initialization of an allocated data item to zero (single element)? Nah, can't be....
Robert, the information you posted I was never able to find. Lots of reference to this specific exception, but no real explanation. So, many thanks for a better description. It makes sense after the fact; I put in a 3 second delay between building the child windows and the creation of the main window. Dozens of attempts to get the program to fail after making that change were not successful. My thinking is if there is something regarding the creation of a child with %cw, and I was trying to 'write' to the default (%cw attached) unit while the final window was being built (that was where the exception was thrown), this might cause an asynchronous condition that SOMETIMES causes the crash.
So, is the 'problem' solved? Probably not, but it is likely to be at such a low occurrence that it is 'acceptable'. As a former aerospace engineer, I still look for root cause in any failure (even my household projects). Alas, I shall probably never see it.
The reason for this longer e-mail is to assist someone else who might experience the same behavior, and can take similar steps to eliminate the problem. I experienced this same asynchronous behavior in some 'C' Windows code a number of years ago, where I had expected (from the documentation) that State 'A' would be complete before State 'B' would be started. I found out that this was NOT the case all the time. It made the coding more cumbersome, but also prevented 'odd' behaviors and crashes.