Sepieha (and you) are right... it needs to be run from the folder where your library files are, otherwise it gives that error message. That has no negative effect (that I know of) on the test you did, however.
Okay, so it's not an exception error like I was hoping for. Back to the drawing board.
Based on the info provided by OldBitCollector (via a Googled error message)... this is a common error that affects many programs.· That led me to believe that the Propeller Tool is not generating the error itself (which I already confirmed to my satisfaction many months ago) but something the Propeller Tool is doing causes Windows to display the error.
I found the following on Microsoft's site talking about this issue (in particular, talking about the registry hack):
The value of 2 instructs the Windows NT operating system to avoid popup messages for any hard error on the system and return the default error condition to the calling process.
This registry key is always checked before any hard error is received. Therefore, you do NOT have to restart the system after changing the key value. You can immediately reset the key back to 0 if any unexpected side effects occur.
If you do not want to set the registry key, use one of the following options:
Click Continue in the dialog box. You may have to click Continue several times before the dialog box disappears.
-or-
Keep a floppy permanently inserted in disk drive A.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
The Windows operating system has a limited subset of errors called 'Hard Errors.' These hard error conditions result in you receiving a dialog box on the default desktop.
Of course, this is talking about floppy drives and Microsoft SQL server, but there are tons of hits on Google from many other software packages.
It seems that when the Propeller Tool asks the OS what is on the "drive" a hard error occurs that the Propeller Tool is not able to respond to because Windows throws a system modal dialog up.· That explains a lot (to me).
I'll post additional info when I have it.
EDIT:· Here is some more info from Microsoft on that specific registry key:
The collective postings in this thread,·the thread Phil mentioned,·info from OldBitCollector and a number of Googled pages plus Microsoft's Developers Network Knowledge base info has led me to discover (I think) what is causing the problem.
Currently, it appears to happen in any of a few·possible places in the code where it "may" check if a drive and path exists.· If the drive and path in question happen to be a media card reader,··upon calling the Windows DirectoryExists API, instead of returning with a nice False result, it causes a system-level "hard error" and Windows then preempts the Propeller Tool software (starves it of CPU time) and displays a modal dialog window.
This only seems to happen presumably with a certain type of driver that behaves differently than the other drivers I happened to try on the media readers I have available to me.
I think I have found how to solve this problem... I'll report back when I've had more time to test.
Folks... this is just a quick note to let you know I think we've finally solved this problem. We're doing a little more testing today and will release a new version in this thread, the other thread mentioned here, and our website. I'll also fill you in on the details of the problem and the solution at that time.
Jeff Martin (Parallax) said...
Folks... this is just a quick note to let you know I think we've finally solved this problem. We're doing a little more testing today and will release a new version in this thread, the other thread mentioned here, and our website. I'll also fill you in on the details of the problem and the solution at that time.
Any Windows API calls that deal with files can potentially cause a "legacy" INT24 (interrupt) which is deemed by the operating system to be a "hard error."· Unless someone has set the registry key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows\ErrorCode" to 2, the system's default behavior is to preempt the software that made the request and display a system dialog box saying "No disk in drive..."· Once the user selects one of the buttons on the dialog, control then returns back to the originating software.
This error is very common with lots of software (even Microsoft's)... just Google "No disk in drive" to see for yourself.· But, there is very little information on how to fix it short of the registry hack.
The Solution:
(Windows Software Developer Information - this is here to hopefully help other poor saps "like me" who have to deal with this stuff)
The attached Propeller.exe (Propeller Tool v1.2.5) solves this problem by itself by calling another Windows function, SetErrorMode(SEM_FAILCRITICALERRORS), before any direct suspect drive/file access API call, then sets the error mode back to what it was before, after the drive/file access call. The SEM_FAILCRITICALERRORS constant tells Windows that, for the process that issued the call, do·NOT·display a dialog box if such an error occurs, and instead let the process, the Propeller Tool in this case, handle the error itself.
It would have been nice if the Propeller Tool could have just set the error mode at the start of it's session, but Microsoft highly suggests not doing so as there may be other hard errors that should be handled by the OS.
(Propeller Users Information)
So, you may download the attached Propeller Tool v1.2.5 executable and copy it to your current Propeller Tool installation folder to make this problem go away... no more clicking on that silly dialog box!
Or, you can·download a complete installer from our website for this version of the software:
That is just awesome! That issue has been plaguing my Windows stations all year.
(unless fixed with the little registry hack)
[noparse][[/noparse]*BTW sylvie369, Back in '89-'90 Microsoft used to actually work this way. I recall spending 2 hours
on the phone with a Windows 3.1 developer to nail down that COM port address issue that
occurred when you had a missing COM port between two others, say COM1, and COM3.]
Excellent work Jeff! Thanks for putting a nail in this one!
Is any other changes in the new installer (1.2.5) as updated objects, additional ones and/or other stuff or it's just the executable that was updated ?
Okay, I downloaded it, and it works just fine (yes, the problem was back for me).
I still get that error when I run Basic Stamp Editor v2.4. Is it possible to fix that as well?
(yeah, I know, probably with another week's worth of work...)
Oldbitcollector said...
Excellent work Jeff! Thanks for putting a nail in this one!
Thank you, and you're welcome.· Thank you for pointing out the registry hack.· That, combined with the latest things said by·everyone in this thread, and a little dumb luck on my part, ultimately led me to the·proper solution.
dMajo said...
Is any other changes in the new installer (1.2.5) as updated objects, additional ones and/or other stuff or it's just the executable that was updated ?
·Just a little.· You can see what changed on the information page for the download (the link below).· There were no library updates in this release.
sylvie369 said...
I still get that error when I run Basic Stamp Editor v2.4. Is it possible to fix that as well?
I most certainly think so; that's what I'm working on today, but I won't be able to finish it and release it until Monday (sorry). [noparse]:([/noparse]
[noparse][[/noparse]UPDATE] 12/8/2008 - Done, and on website.
Take care,
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ --Jeff Martin
· Sr. Software Engineer ·Parallax, Inc.
Post Edited (Jeff Martin (Parallax)) : 12/8/2008 9:23:40 PM GMT
I still get that error when I run Basic Stamp Editor v2.4. Is it possible to fix that as well?
I most certainly think so; that's what I'm working on today, but I won't be able to finish it and release it until Monday (sorry). [noparse]:([/noparse]
Comments
Sepieha (and you) are right... it needs to be run from the folder where your library files are, otherwise it gives that error message. That has no negative effect (that I know of) on the test you did, however.
Okay, so it's not an exception error like I was hoping for. Back to the drawing board.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
I found the following on Microsoft's site talking about this issue (in particular, talking about the registry hack):
Of course, this is talking about floppy drives and Microsoft SQL server, but there are tons of hits on Google from many other software packages.
It seems that when the Propeller Tool asks the OS what is on the "drive" a hard error occurs that the Propeller Tool is not able to respond to because Windows throws a system modal dialog up.· That explains a lot (to me).
I'll post additional info when I have it.
EDIT:· Here is some more info from Microsoft on that specific registry key:
http://support.microsoft.com/kb/128642
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
Post Edited (Jeff Martin (Parallax)) : 12/3/2008 7:46:45 PM GMT
I've had a Eureka! moment.
The collective postings in this thread,·the thread Phil mentioned,·info from OldBitCollector and a number of Googled pages plus Microsoft's Developers Network Knowledge base info has led me to discover (I think) what is causing the problem.
Currently, it appears to happen in any of a few·possible places in the code where it "may" check if a drive and path exists.· If the drive and path in question happen to be a media card reader,··upon calling the Windows DirectoryExists API, instead of returning with a nice False result, it causes a system-level "hard error" and Windows then preempts the Propeller Tool software (starves it of CPU time) and displays a modal dialog window.
This only seems to happen presumably with a certain type of driver that behaves differently than the other drivers I happened to try on the media readers I have available to me.
I think I have found how to solve this problem... I'll report back when I've had more time to test.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
Take care,
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
http://www.propgfx.co.uk/forum/·home of the PropGFX Lite
·
(fantasizes about Microsoft working this way...)
Okay, we've fixed it!
Here's the scoop...
The Problem:
Any Windows API calls that deal with files can potentially cause a "legacy" INT24 (interrupt) which is deemed by the operating system to be a "hard error."· Unless someone has set the registry key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows\ErrorCode" to 2, the system's default behavior is to preempt the software that made the request and display a system dialog box saying "No disk in drive..."· Once the user selects one of the buttons on the dialog, control then returns back to the originating software.
This error is very common with lots of software (even Microsoft's)... just Google "No disk in drive" to see for yourself.· But, there is very little information on how to fix it short of the registry hack.
The Solution:
(Windows Software Developer Information - this is here to hopefully help other poor saps "like me" who have to deal with this stuff)
The attached Propeller.exe (Propeller Tool v1.2.5) solves this problem by itself by calling another Windows function, SetErrorMode(SEM_FAILCRITICALERRORS), before any direct suspect drive/file access API call, then sets the error mode back to what it was before, after the drive/file access call. The SEM_FAILCRITICALERRORS constant tells Windows that, for the process that issued the call, do·NOT·display a dialog box if such an error occurs, and instead let the process, the Propeller Tool in this case, handle the error itself.
It would have been nice if the Propeller Tool could have just set the error mode at the start of it's session, but Microsoft highly suggests not doing so as there may be other hard errors that should be handled by the OS.
(Propeller Users Information)
So, you may download the attached Propeller Tool v1.2.5 executable and copy it to your current Propeller Tool installation folder to make this problem go away... no more clicking on that silly dialog box!
Or, you can·download a complete installer from our website for this version of the software:
http://www.parallax.com/tabid/442/Default.aspx
Thanks for everyone who pitched in their time and the information they found out about this issue!
Take care,
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
Post Edited (Jeff Martin (Parallax)) : 12/6/2008 2:26:50 PM GMT
(unless fixed with the little registry hack)
[noparse][[/noparse]*BTW sylvie369, Back in '89-'90 Microsoft used to actually work this way. I recall spending 2 hours
on the phone with a Windows 3.1 developer to nail down that COM port address issue that
occurred when you had a missing COM port between two others, say COM1, and COM3.]
Excellent work Jeff! Thanks for putting a nail in this one!
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with a Propeller Protoboard?
Check out: Introduction to the Proboard & Propeller Cookbook 1.4
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
Got an SD card connected? - PropDOS
Is any other changes in the new installer (1.2.5) as updated objects, additional ones and/or other stuff or it's just the executable that was updated ?
I still get that error when I run Basic Stamp Editor v2.4. Is it possible to fix that as well?
(yeah, I know, probably with another week's worth of work...)
·Just a little.· You can see what changed on the information page for the download (the link below).· There were no library updates in this release.
http://www.parallax.com/ProductInfo/Microcontrollers/PropellerGeneralInformation/PropellerDownloads/PropellerToolSoftware/tabid/609/Default.aspx
I most certainly think so; that's what I'm working on today, but I won't be able to finish it and release it until Monday (sorry). [noparse]:([/noparse]
[noparse][[/noparse]UPDATE] 12/8/2008 - Done, and on website.
Take care,
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin
· Sr. Software Engineer
· Parallax, Inc.
Post Edited (Jeff Martin (Parallax)) : 12/8/2008 9:23:40 PM GMT
Not until Monday? How will I survive until then?
Take the weekend off, man.