home *** CD-ROM | disk | FTP | other *** search
- How to disable entry into IDLE mode:
-
- Many of today's newer ATA interface drives have automatic energy savings
- modes implemented by default. The drive's typically are designed to go into
- an Idle mode which reduces power consumption and parks the drive heads
- after a defined period of inactivity. If the inactivity period continues
- to another defined interval, the disc drive will further reduce its power
- consumption by spinning down the platters and entering Standby mode.
-
- When the drives are Idle or in Standby, any subsequent disc I/O will "wake
- them up" and enter Active Mode. This requires a modest amount of time that
- may not be desired. Disc drive Power Management Commands control these
- features and can be used to enable, disable or change the activation
- intervals of the power saving modes. A general command FBh is used to
- cause a drive to enter Active mode and set the Idle timer. If the Idle
- timer is set to 0 then the power management mode is disabled until a cold
- boot.
-
- The executable program required to do this is very small at 42 bytes.
- It can be created through the DOS Debug utility. Two Debug script files are
- included, one for each drive:
- master = no_idle0.scr
- slave = no_idle1.scr
-
- At the DOS prompt simply type:
- debug <no_idle0.scr
-
- This will cause the script file to be redirected into Debug with the
- following results (without the comments and the xxxx is system dependant):
-
- -n no_idle0.com program name
- -a 100 assemble at memory location 100
- xxxx:0100 call 120 call the instruction at location 120
- xxxx:0103 mov dx,1f6 select the drive/head register
- xxxx:0106 mov al,a0 setup for drive 0 (b0 for drive 1)
- xxxx:0108 out dx,al output to the port address
- xxxx:0109 call 120 wait while busy
- xxxx:010C mov dx,1f2 select the sector count/timer register
- xxxx:010F mov al,0 set it to 0 msecs
- xxxx:0111 out dx,al output to the port address
- xxxx:0112 call 120 wait while busy
- xxxx:0115 mov dx,1f7 select the drive command register
- xxxx:0118 mov al,fb setup the Active/Set Idle command
- xxxx:011A out dx,al output to the port address
- xxxx:011B call 120 wait while busy
- xxxx:011E nop no operation (slight pause)
- xxxx:011F nop
- xxxx:0120 mov dx,1f7 select the status register
- xxxx:0123 in al,dx input from the port
- xxxx:0124 and al,80 isolate the busy bit
- xxxx:0126 jnz 120 jump if not zero to location 120
- xxxx:0128 nop
- xxxx:0129 ret return (finished)
- xxxx:012A
- -rcx
- CX 0000
- :2a number of bytes to save
- -w
- Writing 0002A bytes
- -q as in quit
-
- When finished, a very small no_idle0.com file will exist that can be run to
- disable the Idle mode. The statement @no_idle0.com may be added to your
- autoexec.bat file.
-
-