[Freedos-kernel] Fwd: FreeDOS kernel disk routines

2004-11-06 Thread tom ehlert



This is a forwarded message
From: Jose Antonio Senna
Subject: FreeDOS kernel disk routines

===8==Original message text===
 Excuse me for sending this directly to you, but I am still unable to post
on Freedos lists.
 I do not know who (if anyone) mantains the FreeDOS kernel disk routines.
If it is not you, please pass this mail to the appropriate person.
 The problem I found is:
 My computer BIOS INT 13 is able to access up to 4096 cylinders in a hard disk,
by using bits 6 -7 of DH in INT 13 requests as bits 10-11 of cylinder number.
This BIOS variant is documented in Brown and Kyle interrupts list.
 However,FreeDOS hooks INT 13 and,in doing so,rolls over any cylinder 
number modulo 1024,that is,if I make a request to access cylinder 1024,it does
not report any error,but I get cylinder 0, and so on.
 FreeDOS is not the only DOS to have this problem. Is it too difficult to 
solve ?
I thank you for your attention
JAS

===8===End of original message text===

my comment:

how are these disks/BIOS variants detected ?

I have a faint memory of these translating BIOS's, but can't find it
in RBIL.

IMO the kernel shouldn't touch partitions that are to big to handle
(1024 cylinders), unless LBA is detected.

tom




---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588alloc_id=12065op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Fwd: FreeDOS kernel disk routines

2004-11-06 Thread Arkady V.Belousov
Hi!

6--2004 16:13 [EMAIL PROTECTED] (tom ehlert) wrote to
[EMAIL PROTECTED]:

te From: Jose Antonio Senna
te ===8==Original message text===
te  Excuse me for sending this directly to you, but I am still unable to post
te on Freedos lists.
te  I do not know who (if anyone) mantains the FreeDOS kernel disk routines.
te If it is not you, please pass this mail to the appropriate person.
te  The problem I found is:
te  My computer BIOS INT 13 is able to access up to 4096 cylinders in a hard
te disk,
te by using bits 6 -7 of DH in INT 13 requests as bits 10-11 of cylinder
te number.

 If so, then this is non-standard and this completely prohibits LBA
(with up to 256/255 heads).

te This BIOS variant is documented in Brown and Kyle interrupts list.

 Ralf Brown not documents such API deviation (or I miss something?).

te  However,FreeDOS hooks INT 13 and,in doing so,rolls over any cylinder
te number modulo 1024, that is,if I make a request to access cylinder 1024,it
te does not report any error,but I get cylinder 0, and so on.

 FreeDOS _doesn't_ hooks INT 13. See main.c:setup_int_vectors() for list
of hooked vectors.

te  FreeDOS is not the only DOS to have this problem.

 May you quote code fragment, which works under other OSes (which?) and
doesn't works under FD?

te  Is it too difficult to solve ?
te ===8===End of original message text===
te my comment:
te how are these disks/BIOS variants detected ?
te I have a faint memory of these translating BIOS's, but can't find it
te in RBIL.
te IMO the kernel shouldn't touch partitions that are to big to handle
(1024 cylinders), unless LBA is detected.




---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88alloc_id065op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] Re: Fwd: FreeDOS kernel disk routines

2004-11-06 Thread Eric Auer

Hi!

 te  My computer BIOS INT 13 is able to access up to 4096 cylinders
 te in a hard disk.
 te by using bits 6 -7 of DH in INT 13 requests as bits 10-11 of cylinder
 te number.

I remember having a 386 (NeAT mainboard) which had this kind of BIOS
feature. It means you can have 4k cylinders but only 16 (in theory 64,
but at least my BIOS only allowed 16) heads. As Tom points out, this
is incompatible to modern style disk access, so you will only be able
to use the first 1024 cylinders with FreeDOS.

There are other INT 13 extensions which allow you to use cylinder numbers
of up to 65535. Those come in two flavors: One is a call which tells
add CX to cylinder number for next disk access (int 13.ef, supported
by Ontrack Drive Rocket, SWBIOS and Disk Manager, and the other
just adds a constant value of 1024 to the cylinder number (int 13.ee).
SWBIOS is a TSR by OnTrack.

For all three special more cylinder things, I can tell you that they
are very outdated. Please install something more fancy (e.g. newer OnTrack
or EzDrive driver, which you put into the MasterBootRecord) which provides
a modern LBA (all sectors on disk are just accessed by linear number, not
by a position in terms of cylinders, heads and sectors) interface.

I even wrote something like that myself for that 386 (must have been AMI
or AWARD BIOS). It mapped access to the second harddisk to access to
the first harddisk, after adding 1024 to the cylinder number. Very ugly
but allowed me to use all of my 850 MB disk for a while (until something
went really wrong and the simulated 2nd harddisk contents got screwed).

Yet another reason why you should use LBA: With LBA, you can have up to
255 (+/- 1, depending on OS) heads, so with a smart LBA driver in place,
even CHS based access, using translation to LBA positions, can squeeze
8 GB of disk space into the first 1024 cylinders! Much better than having
16 heads and some incompatible (even to standard partition table format)
cheat to allow 4096 cylinders (to reach 2 GB instead of 500 MB).

Eric



---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588alloc_id=12065op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Fwd: FreeDOS kernel disk routines

2004-11-06 Thread Bart Oldeman
On Sat, 6 Nov 2004, tom ehlert wrote:

  However,FreeDOS hooks INT 13

No, if anything hooks INT 13 it could be LBACACHE but the kernel does not
(it should but for different reasons -- see int2f/ah=13 in RBIL).

 how are these disks/BIOS variants detected ?

 I have a faint memory of these translating BIOS's, but can't find it
 in RBIL.

RBIL D-1302
INT 13 - DISK - READ SECTOR(S) INTO MEMORY
[...]
AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
than 1024 cylinders by placing bits 10 and 11 of the cylinder number
into bits 6 and 7 of DH

Probably a rare breed of machines. For most bit 6  7 of DH mean bit 6
and 7 of the (translated) head number. I have no idea how to distinguish
this meaning.

My 386 SX only had 80 MB hard disk space, which was far below the
first problematic barrier of 1024*16*63*512=512MB

 IMO the kernel shouldn't touch partitions that are to big to handle
 (1024 cylinders), unless LBA is detected.

Agreed. That's what it does today.

Bart


---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588alloc_id=12065op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Fwd: FreeDOS kernel disk routines

2004-11-06 Thread Arkady V.Belousov
Hi!

7--2004 09:24 [EMAIL PROTECTED] (Bart Oldeman) wrote to
[EMAIL PROTECTED]:

BO My 386 SX only had 80 MB hard disk space, which was far below the
BO first problematic barrier of 1024*16*63*512=512MB

 1024*16*63*512=504Mb (or 528 Mb, as this counted by disk
manufacturers).




---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88alloc_id065op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] Re: Your X-Comment-To: tom ehlert te@drivesnapshot.de

2004-11-06 Thread Arkady V.Belousov
Hi!

7--2004 01:02 [EMAIL PROTECTED] (Jose Antonio Senna) wrote to Arkady
V.Belousov [EMAIL PROTECTED]:

JAS  I am unable to post,but read user and devel lists.

 Just subscribe. :)

JAS  Here are some further explanations:
te by using bits 6 -7 of DH in INT 13 requests as bits 10-11 of cylinder
avb If so, then this is non-standard and this completely prohibits LBA
avb (with up to 256/255 heads).
[...]
te This BIOS variant is documented in Brown and Kyle interrupts list.
avb  Ralf Brown not documents such API deviation (or I miss something?).
JAS   It does,not in DOS API,but under low-level disk I/O heading,at

 Of course, I also mean INT13.

JAS   least in the list version which copy I have. A mail to this list
JAS   by Bart Oldeman a few hours ago confirms it is documented.

 Yes, I was see this letter. Ok, there was such deviation

te  However,FreeDOS hooks INT 13 and,in doing so,rolls over any cylinder
te number modulo 1024, that is,if I make a request to access cylinder 1024,it
te does not report any error,but I get cylinder 0, and so on.
avb FreeDOS _doesn't_ hooks INT 13. See main.c:setup_int_vectors() for list
avb of hooked vectors.
JAS I thought I did,for the vector in the Interrupt Vector Table clearly
JAS   points into DOS area.

 Ok, let clarify this. Unfortunately, neither my nor Bart's MEM shows
interrupt vectors relation, so procedure slightly more complex:

1. Run my MEMA (prefered) with option(s) /DAT (without quotes) or run
   Bart's MEM with options /F/D/U (without quotes) and show me result.
2. In DEBUG execute d 0:0l100 ans show me results.

Then get results into file (which you may insert into letter) you may use
redirection. For example, make file (and call it, say, DBG.CMD) with next
content:

__O\_/_\_/O__
d 0:0l100
q
_
  O/~\ /~\O

and run next commands:

MEMA/DATRESULT1
DEBUGDBG.CMDRESULT2

Now you get results in files, which you may send us.

JAS   Maybe I did miss something, and there is some
JAS   installed device driver, instead, that hooks INT 13.




---
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_idU88alloc_id065op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel