News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

return from int24

Started by Rockphorr, April 02, 2009, 05:48:25 PM

Previous topic - Next topic

Rockphorr

At last I must mov to al the code one of ignore, retry, abort, fail

What is diferent between ignore & fail ??

Both return with error state CF+1
Strike while the iron is hot - Бей утюгом, пока он горячий

FORTRANS

Quote from: Rockphorr on April 02, 2009, 05:48:25 PM
At last I must mov to al the code one of ignore, retry, abort, fail

What is diferent between ignore & fail ??

Hello,

   For DOS the Int 24H error handler issues the Abort, Retry,
Fail, or Ignore, message when a request to a device fails.  Given
an attempt to copy a floppy with bad sectors as an example:

   Abort terminates the copy operation.

   Retry does just that, it tries to read the sectors again.

   Fail returns to COPY with an error indicated.  COPY will
(on my DOS system) go on to try a couple more times to complete
the  copy.

   Ignore returns to COPY with no or bad data.

   According to the "MS-DOS Programmer;s Reference" if you
create your own critical error handler, when you return to
DOS, you should put a number in AL to tell the system what to
do:  0 = Ignore the error, 1 = Retry the operation, 2 =
Terminate the program, or 3 = Terminate the function.

HTH,

Steve N.

sinsi

Is it your own INT 24 handler?

From RBIL
Quote
if IGNORE specified but not allowed, it is turned into FAIL
if RETRY specified but not allowed, it is turned into FAIL
if FAIL specified but not allowed, it is turned into ABORT
It depends on which part of DOS triggered the interrupt - some will allow 'ignore' and others won't. On entry to the INT, AH has the bits set of what is allowed.

One other thing
Quote"Abort is always allowed"
Abort here means 'forcibly terminate this program' with no chance of the program cleaning up (restoring hooked INTs for example).
Light travels faster than sound, that's why some people seem bright until you hear them.

MichaelW

Ignore, if allowed, returns to the caller as if the function had completed successfully.

Fail, if allowed, terminates the function and returns an error to the caller. This is the one to select if the code that called the function needs to handle the error.
eschew obfuscation

Rockphorr

Quote from: sinsi on April 03, 2009, 04:43:52 AM
Is it your own INT 24 handler?

From RBIL
Quote
if IGNORE specified but not allowed, it is turned into FAIL
if RETRY specified but not allowed, it is turned into FAIL
if FAIL specified but not allowed, it is turned into ABORT
It depends on which part of DOS triggered the interrupt - some will allow 'ignore' and others won't. On entry to the INT, AH has the bits set of what is allowed.

One other thing
Quote"Abort is always allowed"
Abort here means 'forcibly terminate this program' with no chance of the program cleaning up (restoring hooked INTs for example).


Hi!
What is RBIL ??
Give mi please link to it.

Thanx
Strike while the iron is hot - Бей утюгом, пока он горячий

Rockphorr

Quote from: MichaelW on April 03, 2009, 06:40:18 AM
Ignore, if allowed, returns to the caller as if the function had completed successfully.

Fail, if allowed, terminates the function and returns an error to the caller. This is the one to select if the code that called the function needs to handle the error.


HI MichaelW
I try ignore & fail in my int24 handler with get curdir on empty floppy drive.
Both returned error with cf=1
Strike while the iron is hot - Бей утюгом, пока он горячий

MichaelW

#6
RBIL = Ralf Brown's Interrupt List

An HTML version is here:

http://www.ctyme.com/rbrown.htm

And the download version here:

http://www-2.cs.cmu.edu/~ralf/files.html

When the Interrupt 24h handler is called, bits 3, 4, and 5 of AH specify which actions are allowed:

Bit 3 = 1 if handler can terminate function.

Bit 4 = 1 if handler can retry the function.

Bit 5 = 1 if handler can ignore the error.

eschew obfuscation

Rockphorr

Quote from: MichaelW on April 04, 2009, 03:04:14 PM
RBIL = Ralf Brown's Interrupt List

An HTML version is here:

http://www.ctyme.com/rbrown.htm

And the download version here:

http://www-2.cs.cmu.edu/~ralf/files.html

When the Interrupt 24h handler is called, bits 3, 4, and 5 of AH specify which actions are allowed:

Bit 3 = 1 if handler can terminate function.

Bit 4 = 1 if handler can retry the function.

Bit 5 = 1 if handler can ignore the error.




thanx.
Strike while the iron is hot - Бей утюгом, пока он горячий