SimonSoft's IDE-hardware for ATARI-computers. Chapter 3, HARDDISK PARTITIONING & DRIVER DISCRIPTION This is my protocoll for partitioning: -------------------------------------- The programm FDISK.BAS can be used to safely partition your harddrive. It works with ATARI-Basic so both the interfaces will work ($D100 and $D500). Track 0 is divided in to groups of 8 bytes. The first group contains the physical size of the harddisk and how many partitions there are: Byte 0: Number of cylinders low-byte Byte 1: Number of cylinders high-byte Byte 2: Number of heads Byte 3: Number of sectors Byte 4: Number of active partitions Byte 5-7 Reserved. Keep in mind that the number of cylinders and heads is the equivalent of the maximum minus 1. The number of sectors is already the maximum. This is done because the drive-logic uses the same numbers. The next groups (maximum = 15 times) are the partition-tables. The bytes are arrange as follows: Byte 0: Logical drives number ($00-$0F) Byte 1: Starting cylinder low-byte Byte 2: Starting cylinder high-byte Byte 3: Ending cylinder low-byte Byte 4: Ending cylinder high-byte Byte 5: Atari-density (0=128, 1=256 bytes/sector) Byte 6-8 Reserved. At track 1 the first partition begins. DRIVER DISCRIPTION: ------------------- First the OS is copied from ROM to RAM. All programs stored there are deleted. Then the patch is loaded in the aria normally used for the international character set. The cassette vector and boot-success is programmed to reactive the RAM after reset is pressed. This is done because only then, after a reset, the patch is active before any disk- activity starts. Next the partition-table is loaded and stored also in the international character set and the SIO-jump-vector is patched. When SIO is entered, the patch does the following check: 1/ Check the device letter. Not D: goto standard SIO 2/ Check harddisk activity If OFF: goto standard SIO 3/ Check is logical drive number exists If NOT: goto standard SIO Then the appropriate cylinder/head/sector is calculated and checked. If the cylinder is outside the partition an error NAK is reported. The driver reads with verify and ALWAYS writes with verify. Formatting a drive is a quick-format because only the FAT and VTOC are ereased. Memory-usage: $CC00-$E000, $570-$57F and all cassette-related-vectors. FUTURE DEVELOPMENT: ------------------- MULTI-BOOT ROUTINE (Driver is not ready yet): The latest version of hpatch includes a multi-boot action when de start key is kept down during a reset. A number on the screen apears and can be increased/decreased by the joystick in port 1. This number is a bootdisk copied by you onto the harddrive starting on a specified cylinder. You can have (if your drive is big enough) a maximum of 65535 bootdisks on your harddrive. Be sure when you use this option, that you do not erase any DOS-partitions. This update uses your last 8 bytes of the partition sector and is aranged: Byte 0: Cylinder increase for one atari dd-disk ($01-$FF) Byte 1: First bootdisk cylinder, low-byte Byte 2: First bootdisk cylinder, high-byte Byte 3: Number of bootdisks, low-byte Byte 4: Number of bootdisks, high-byte Byte 5-8 Reserved. (Edited 04-03-2000 By Mr. Atari. No warranty)