• Please review our updated Terms and Rules here

Run Time Error R6001 when running DOSSHELL

cr1901

Veteran Member
Joined
Dec 28, 2011
Messages
817
Location
NJ
This is a low-priority issue for me, since I don't normally run DOSSHELL, but it worries me all the same. Upon running DOSSHELL on my 1984 PC AT running IBM DOS 5, I get the following error after all directories are loaded:
20180711_231835.jpg

According to this Microsoft KB article, this error occurs when "The DOSSHELL.EXE file cannot be found on your disk, or there is not enough free memory in your system for the program". However, on my AT, I have 590kB of conventional memory.
20180711_232053.jpg

Additionally, DOSSHELL.EXE, COMMAND.COM, and DOSSWAP.EXE are all present!
20180711_232258.jpg

Based on the DOSSHELL.SWP timestamp, the last time I ran DOSSHELL was in November 2016, and I don't recall any issues back then. Renaming DOSSHELL.SWB doesn't change anything.

Has anyone seen an issue like this before w/ DOSSHELL where there's sufficient memory _and_ both COMMAND.COM and DOSSHELL.EXE can be found? I wonder if there is bitrot/hard errors on the hard drive in the AT...
 
R6001 is a null pointer assignment (Microsoft C).

Does this imply that DOSSHELL was written in C, or did MASM also come with such a runtime?

Why would assigning a NULL pointer cause an error (as opposed to accessing it)? That's perfectly legal in C world, often used to denote, say, the end of a linked list...
 
MSC runtime has an interesting way of detecting storing into a null pointer. When loaded, it sets a constant in DS:0000. It checks that location on certain library calls and throws an error if DS:[0000] changes. The problem is that it's not detected until a system or library call happens, so it's not trapping the violation when it occurs, but sometime afterward. This isn't bad when you're debugging source code, but if you don't have that, it can be nearly impossible to determine the cause.

It could be a corrupted binary--at least that's a good starting point.
 
Back
Top