Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

INT 25h or INT 21h AH=7305h, Absolute Disk Read

207 views
Skip to first unread message

Tak

unread,
Jul 9, 2004, 9:01:11 PM7/9/04
to
Colud a kind guru enlighten me on the "Absolute Disk Read" calls?

DOS provides int25h and int21h ah=7305h for direct sector read on HDD.
I have a couple of primirive questions.

1. On INT25h, AL specifies disk address such as 0 for A drive.
Is this address for logical disk? I want to read a physical
disk (spindle) of SCSI which has no MBR. By "logical disk", I
mean one partitioned area in one spindle.

2. The INT21h AH=7305h is said to be for FAT32.
Why in the hell do we need FAT for "absolute" disk read?
My disk does not have MBR, can't I use this call?

I am not be able to use INT13h AH=42h for some reason.
If above calls are for logical disk, do I have alternative
method to read physical disk?

Tak

colone...@yahoo.com

unread,
Jul 10, 2004, 5:17:00 PM7/10/04
to
On 9 Jul 2004, Tak wrote:

>
>
> Colud a kind guru enlighten me on the "Absolute Disk Read" calls?
>
> DOS provides int25h and int21h ah=7305h for direct sector read on HDD.
> I have a couple of primirive questions.

Those appear to be "absolute" reads into partitions (or even network
drives for int21h ah=7305h). It does make sense to say "give me block 102"
of a given partition. int21h ah=7305h is listed in Ralf Brown as a windows
95 function. Are you running w95+? If not it shouldn't work anyway. If
you are, windows may block direct disk access and you may have to
boot to dos (or even use an older dos though I don't think you have to).

> I am not be able to use INT13h AH=42h for some reason.
> If above calls are for logical disk, do I have alternative
> method to read physical disk?

Also look at INT 13h AH=02h, even a bit lower level.

Under in 13h in the Ralf Brown list there are several SCSI contoller
interupts listed which might help you.
[if you don't have it, do a search for Ralf Brown's interupt list and get
a copy. iirc it's many 10,000 of pages of reasonable well organized info
on any interupt on for program he could find out about. You'll be happy
you have it]

Why do you have a non-fat disk you need to read? (I'm assuming if it were
some other os's disk you'd just use that os --just curious).
You may want to look at dos or windows versions of tar or dd (check the
gnu/gnuish projects) or freedos's format and fdisk code. There might be a
hint or two there.

3ch


Tak

unread,
Jul 11, 2004, 9:02:04 PM7/11/04
to
Thanks 3ch,

> appear to be "absolute" reads into partitions ....

OK. That makes sense and resolves my question.

Have been using Ralf's list for years, but not familier with SCSI
descriptions as I usualy use ah=2 and/or ah=42h int13h.

I have a trouble on a DELL machine with SCSI.
I issued ah=41h int13h to test if it supports extended BIOS. It
responded OK (cx=1, bx=aa55). So, I issued ah=42h int13h
with multiple sector read starting LBA 0. It returned no carry!
and ah=1 (invalid parameter). No data was transfered.

That was the reason I was looking for other means of absolute read.
This was my first attempt for int25h, but, I will give up for DOS
calls and go digging into SCSI calls as you suggested.


> Why do you have a non-fat disk you need to read?

I wrote a disk sanitization program, in there DoD erase is one
of the feature. The last stage is to read the disk for
verification. All sectors should be zero filled. No MBR,
no FAT, no nothing.

The program works for thousands of machines, but not on this DELL
PowerEdge1300.

Thanks for the FreeDOS FORMAT/FDISK suggestion. I will look into
it.

Tak

xby

unread,
Jul 12, 2004, 8:54:10 AM7/12/04
to
tak...@hotmail.com (Tak) wrote in message news:<31f1ecc3.04071...@posting.google.com>...

[...snip...]

> I issued ah=41h int13h to test if it supports extended BIOS. It
> responded OK (cx=1, bx=aa55). So, I issued ah=42h int13h
> with multiple sector read starting LBA 0. It returned no carry!
> and ah=1 (invalid parameter). No data was transfered.
>

You do not mention at all the Device Address Packet, a data structure
required for the call to INT 13H with AH containing 42H, which should
be pointed to by DS:SI. The invalid parameter response suggests that
either you did not specify one (and who knows where and what your
DS:SI was pointing to) or that you had wrong data somewhere in the
DAP.

Tak

unread,
Jul 12, 2004, 11:11:32 PM7/12/04
to
> You do not mention at all the Device Address Packet,

As I said, it works on thousands of machines. I am almost sure I have
a valid DAP.

Say the DS:SI points to
10 00 01 00 d0 5a 35 17 00 00 00 00 00 00 00 00.
AH=42h, DL=80h.

Only Dell PowerEdge does not work.
Tak

0 new messages