Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!crdgw1!uunet!zds-ux!paulb From: paulb@zds-ux.UUCP (Paul E. Berg) Newsgroups: comp.sys.zenith Subject: Re: Zenith DOS 3.3+ problem! Summary: int 25 access to partitions larger than 32MB Message-ID: <594@zds-ux.UUCP> Date: 4 Apr 91 22:15:10 GMT References: <1991Apr1.212138.18402@umbc3.umbc.edu> Distribution: usa Organization: Zenith Data Systems Lines: 36 In article <1991Apr1.212138.18402@umbc3.umbc.edu>, cs106132@umbc5.umbc.edu (cs106132) writes: > > I encountered a strange problem when trying to read the boot sector on a > 40M hard disk formatted using Zenith DOS 3.3+, the one that supports large > partitions. The program I am working on needs to read the boot sector and > extract some info from the BPB. I use DOS absolute read interrupt 25h to > access logical sector 0. For some reason, this works fine with MS-DOS > systems, but when I try using Zenith DOS 3.3+, it bombs out. Since you noted that 3.3+ has support for large partitions I assume that you are in using one here. For this case you need to use int 25 with CX=-1 and DS:BX=far pointer to a parameter packet, a la the MS-DOS 4.0 way. Normally, your application should try the int 25 as you have it now, and if you get an error (carry set and AX=0207) retry the int 25 with the CX and DS:BX changes. In case you're wondering, this approach is also compatible with generic MS-DOS 4.0 as well as the soon-to-be-available MS-DOS 5.0. In fact, this is one of the few ways of reliably determining that you have a large partition. Just in case you don't have the appropriate reference manual... the DS:BX parameter packet referred to above is: starting sector number dd ? number of sectors dw ? transfer address dd ? > Regards, > Tarkan Best of luck... --____ ___ ____ /| ) /) / ' /| ) Paul E. Berg / |-'__ // /-- / |-< _ __ _ Zenith Data Systems (_/ (_(_(_(_(/_ (___,o (_/___)_(/_/ (_(_)_ ZDS Technology Center voice (616) 982-5124 /| 150 Hilltop Road paulb@zds-ux.ZDS.COM fax (616) 982-5690 (/ St Joseph, MI 49085