Welcome, Guest. Please login or register.

Author Topic: 64-bit AmigaDOS operations?  (Read 6494 times)

Description:

0 Members and 1 Guest are viewing this topic.

Online Thomas

Re: 64-bit AmigaDOS operations?
« on: February 04, 2004, 03:24:47 PM »

Well, the 4GB limit as described above applies only to the internal IDE driver of the Amiga. If you have a third-party IDE controller like the Elbox FasATA or the Buddha Flash which allows to use 64bit commands without any patch, you can create one big partition on a HDD of any size up to 2TB (2'32 * 512).

Physical block size is still 512 bytes and AFAIK both IDE and SCSI refer to 512 bytes blocks by 32 bit block numbers, so 2TB is the physical limit until someone expands the SCSI norm.

Just for correctness, the IDE driver is called scsi.device, not trackdisk.device. OS3.5+ does not change anything on trackdisk.device, it replaces scsi.device.

So, in conclusion, if you boot from the internal IDE bus, your boot partition has to be smaller than 4GB and *it has to reside below the 4GB limit*. People usually don't see that the 4GB limit applies to the entire HDD, not only to partitions.

Bye,
Thomas

Online Thomas

Re: 64-bit AmigaDOS operations?
« Reply #1 on: February 06, 2004, 02:20:49 PM »

Well, AllocVec is a library function which was introdused in version 2.0 of AmigaOS, so you probably use pragmas from OS1.3.

AllocAslRequestTags is not a library function at all but a stub program for AllocAslRequest. It is contained in amiga.lib so you should make sure you add amiga.lib to your library list.

IMHO you shouldn't use 64bit operations at all. These large data types cannot be output by printf or handled in any other meaningful way. I'd rather suggest to determine how many blocks fit into one kilobyte or one megabyte and output the free space in KB or MB. So for blocks of 512 byte you divide the number of blocks by 2 to get the kilobytes. Or for blocks of 1024 bytes you don't need to calculate at all.

Bye,
Thomas