Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!ux1.cso.uiuc.edu!tank!gargoyle!igloo!ddsw1!ddsw1!andyross From: andyross@ddsw1.MCS.COM (Andrew Rossmann) Newsgroups: comp.sys.ibm.pc Subject: More questions, and book data Message-ID: <26659545-2cd2.8comp.ibmpc-1@ddsw1.MCS.COM> Date: 31 May 90 23:00:05 GMT References: <2381@zipeecs.umich.edu> <30347@cup.portal.com> Lines: 20 > Resp: 7 of 7 by cliffhanger at cup.portal.com >Author: [Cliff C Heyer] > >I've been reading several MS-DOS developer books >(Duncan, Norton, etc.) but have not been able to get >a really good "feel" as to why pre 3.3 DOS has the >32MB limit, and have the following questions: The DOS INT25H and INT26H disk read/write routines work by specifying which sector to read. It used a 16-bit word to do this. Since the maximum is 65536 (FFFFh), and each sector is 512 bytes, this is 65536 * 512 = 33554432 (/1048576 [1M] = 32M!) Under the 3.31, 3.30+, and 4.x versions, there is an alternate format used that uses 32-bit numbers for the sectors. This gives: 4294967295 * 512 = 2199023255552 (/ 1048576 =2097152M, /1073741824 [1G] = 2098G, /109951162776 [1T] = 2T!!!) M=Mega, G=Giga, T=Tera. Realistically, I don't believe this is really possible. Andrew Rossmann andyross@ddsw1.MCS.COM