Home Page The Club Computers News Links Glossary EYAWTK
Before Amiga Background ICS OCS ECS AGA ??? AmigaOne
U-Boot SLB Linux Amiga OS Dual Boot Motherboards Peripherals Other
Initialisation Installation OS4 Updates About OS4 File Systems Networking Printing Other
Introduction File System Workbench Preferences Commands Error Msgs Miscellaneous

AmigaOS 4.0 - About OS4 - Commands

FDTOOL AmigaDOS
Purpose: To externally control and examine the current state of the a1floppy device.
Format: FDTOOL UNIT <unit> [DEBUG <level>] [AUTO] [MANUAL] [CHECKNOW] [INFO] [VERSION]
Template: U=UNIT/K/N, D=DEBUG/K/N, A=AUTO/S, M=MANUAL/S, C=CHECKNOW/S, I=INFO/S, V=VERS=VERSION/S
Path: C:FDTOOL
FDTool can be used to externally control and examine the current state of the a1floppy device(s).

UNIT refers to the device Unit (0 or 1). Note that the Unit will not exist and you will get an error if there is no drive connected for that device number.

DEBUG can be used to change the current debug level - default is 0. The driver may be compiled with built-in debugging information. To enable this information, the "debug level" must be made non-zero. Debugging information is then printed to the debug port (which may be serial port 0). Every internal debug print statement has a threshold value that is compared against the current debug level. If the debug level is greater than or equal to the threshold, then that statement is printed to the system debug output. The types of output (approximately) are:

  0 -   4:   No output
  5 - 10:   Fatal errors
11 - 15:   Recoverable errors (retries, etc)
16 - 20:   Explanatory notes about recoverable errors (reasons, etc)
21 - 25:   Explanatory notes about intermediate values (good data)
26 - 30:   Flow of control ("Kilroy wuz here" messages)
The driver will not be able to read/write properly if the debug level is 20 or higher, you will get data timeout errors due to the amount of output.

AUTO can be used to start auto checking, which direct the driver to regularly check each drive to see if its disk has been inserted/changed/removed. The driver can also automatically check the format of any new disk, in an effort to identify its format (720 kB, 1440 kB, etc). The method used involves seeks to the same or adjacent cylinders. Although the VIA 686B controller reacts predictably to this command sequence, some drives behave differently. For instance, on a Sony drive that was tested, the seek-to-same-track lasts only 200 µsec and did not move the motor or heads of the drive, so it is silent; on a Panasonic drive, when given a wakeup call, starts its motor and then runs it for a timeout period of about 4.5 seconds. This means that every time you poll the Panasonic drive, its motor starts again (click) and if you poll it more frequently than every 4 seconds, its motor runs continuously, which would soon wear out the drive or the disk. For this reason, it is recommended that the auto check feature be used only if you know for sure that your drive is not doing naughty things. You can't tell just by looking at the LED, both of the above drives only blink the LED for 200 µsec, but the Panasonic's motor continued to run after that, and you can see the spindle turning if you lift the front edge of the disk slightly and shine a torch into the slot. Some drives may click annoyingly when empty, but you know the fix for that - just stick a disk in it like in the old days.

Naturally, if you don't use the AUTO feature, you will have to use either diskchange xxx: or FDTool UNIT=<n> CHECKNOW (preferred) every time you insert/change/remove a disk. The auto checking feature is turned off by default, but if you wish to use it, one suggestion is to put FDTool UNIT <n> AUTO in User-Startup or via a WBStartUp script.

MANUAL can be used to stop auto checking.

CHECKNOW can be used to force a single disk check.

INFO can be used to print debugging information about the device, unit, disk inserted, etc.

VERSION can be used to display the version information of the driver.

Example 1:

3.OS4:> FDTOOL UNIT 0 CHECKNOW will check FD0: for a the presence of a floppy disk.

Example 2:

3.OS4:> FDTOOL UNIT 0 INFO
Requesting a check now on drive 0
Current state of A1Floppy Drive Unit 0
Version: 52 Revision: 2
Controller state: owned by Unit 0
Debug level: 0
Task readiness state: ready
Disk state: disk loaded, disktype = 1
        Disk geometry:
        Cylinders: 80
        Heads: 2
        Sectors per track: 9
        Sector size: 512 bytes
        Data Rate: 2 (250kbps)
Disk is write protected
Track buffer holds no known track (trk -1, state 0)
Drive status: ST0=20 ST1=00 ST2=00 ST3=78
Drive currently on cylinder 0
Driver state:
Interrupt state 0
Data count 0, status count 6
Unit Open count: 2
Change number: 1
Recovered errors this disk: 0
Config word: 00000000
will display detailed information about the floppy disk in unit FD0:.


Return to Commands Selection

Disclaimer: Amiga Auckland have prepared the above Information for the use of its members based on our experiences and as such is subject to revision at any time. Amiga Auckland cannot guarantee any of the Information and cannot be held accountable for any issues that may result from using it.


Copyright © 2006 Amiga Auckland Inc. All rights reserved.
Revised: December 24, 2006.