Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!yale!cs.yale.edu!fischer-michael From: fischer-michael@cs.yale.edu (Michael Fischer) Newsgroups: comp.sys.atari.st Subject: Re: Defragmentation Message-ID: <28607@cs.yale.edu> Date: 7 Feb 91 21:37:04 GMT References: <1991Feb5.161838@ncsuvx.enet.dec.com> <1991Feb6.221439.2486@mailer.cc.fsu.edu> Sender: news@cs.yale.edu Organization: Yale University Computer Science Dept., New Haven, CT 06520-2158 Lines: 30 Nntp-Posting-Host: ginkgo.theory.cs.yale.edu Originator: fischer@ginkgo.CS.Yale.Edu In article <1991Feb6.221439.2486@mailer.cc.fsu.edu> boyd@nu.cs.fsu.edu (Mickey Boyd) writes: >Now the question: Is there a defragger that works with TOS 1.4's bigger >partitions? You can go up to 32 megs! Just a point of clarification. The reason for the 16 meg limit of TOS 1.0 and 1.2 is that TOS used a signed short integer for the sector address. This allows only 2^15 = 32,768 sectors to be addressed. Since each sector is 512 bytes, that works out to 16 meg. TOS 1.4 uses an unsigned short integer, which allows 65,536 or 32 meg to be addressed. HDX version 3.01 (Atari's hard disk driver) achieves large partitions another way. It restricts each partition to at most 32,768 "sectors" (I believe, to maintain compatibility across all TOS versions), but the logical sector size can be multiples of 512 bytes. Thus, if the logical sector size is 2048, then those same 32,768 sectors contain 64 meg of disk space. Because there are two distinct ways of achieving partitions larger than 16 meg, there are two ways for a defragger to fail: (1) it may itself use signed short integers for sector addressing, preventing it from addressing more than 16 meg correctly, even if run under TOS 1.4, or (2) it may assume that the logical sector size = 512 bytes and fail to handle the longer logical sectors of HDX 3.01 correctly. -- ================================================== | Michael Fischer | ==================================================