The MASM Forum Archive 2004 to 2012

Miscellaneous Forums => 16 bit DOS Programming => Topic started by: Rockphorr on April 02, 2009, 05:48:25 PM

Title: return from int24
Post by: 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 ??

Both return with error state CF+1
Title: Re: return from int24
Post by: FORTRANS on April 02, 2009, 08:58:49 PM
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.
Title: Re: return from int24
Post by: 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).
Title: Re: return from int24
Post by: 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.
Title: Re: return from int24
Post by: Rockphorr on April 04, 2009, 08:48:20 AM
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
Title: Re: return from int24
Post by: Rockphorr on April 04, 2009, 08:51:54 AM
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
Title: Re: return from int24
Post by: 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.

Title: Re: return from int24
Post by: Rockphorr on November 03, 2009, 05:58:21 AM
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.