[Freedos-kernel] Fwd: FreeDOS kernel disk routines
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
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
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
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
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
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