| Variables | |
| label | FindHDD | 
| label | FindHDD_2 | 
| --------------------------------------------------------------------------—  More... | |
| label | FindHDD_1 | 
| label | calculate_IDE_device_values_storage | 
| --------------------------------------------------------------------------—  More... | |
| label | convert_Sector512_value | 
| --------------------------------------------------------------------------—  More... | |
| dd | SectorAddress | 
| label | dev_name | 
| label | ReadHDD_ID | 
| --------------------------------------------------------------------------—  More... | |
| label | WaitCompleet | 
| label | Error1 | 
| write the error code  More... | |
| label | Error6 | 
| label | End | 
| dw | StandardATABases | 
| Standart base addresses of channels 1 or 2 1F0h, 170h.  More... | |
| db | ChannelNumber | 
| Channel number.  More... | |
| db | DiskNumber | 
| Disk number.  More... | |
| db | DeviceNumber | 
| dw | ATABasePortAddr | 
| Base address of ATA controller's port group.  More... | |
| db | ATAFeatures | 
| ATA-command parameters features.  More... | |
| db | ATASectorCount | 
| count of processing sectors  More... | |
| db | ATASectorNumber | 
| initial sector number  More... | |
| dw | ATACylinder | 
| initial cylinder number  More... | |
| db | ATAHead | 
| initial head number  More... | |
| db | ATAAddressMode | 
| addressing mode (0 - CHS, 1 - LBA)  More... | |
| db | ATACommand | 
| executing command number  More... | |
| dd | DevErrorCode | 
| Error code (0 - no errors, 1 - waiting time limit exceed 2 - incorrect code of addressing mode, 3 - incorrect channel number, 4 - incorrect disk number, 5 - incorrect head number, 6 - command execution error, 7 - time out when choosing channel)  More... | |
| label | SendCommandToHDD | 
| --------------------------------------------------------------------------—  More... | |
| label | WaitHDReady | 
| label | Err1 | 
| write error code  More... | |
| label | Err2 | 
| label | Err3 | 
| label | Err4 | 
| label | Err5 | 
| label | ReadCD_ID | 
| --------------------------------------------------------------------------—  More... | |
| label | WaitCompleet_1 | 
| label | Error1_1 | 
| write the error code  More... | |
| label | Error6_1 | 
| label | End_1 | 
| label | DeviceReset | 
| --------------------------------------------------------------------------—  More... | |
| label | WaitHDReady_1 | 
| label | Err1_2 | 
| error processing  More... | |
| label | Err3_2 | 
| label | Err4_2 | 
| label | EndFindHDD | 
| --------------------------------------------------------------------------—  More... | |
| db ATAAddressMode | 
| dw ATABasePortAddr | 
| db ATACommand | 
| dw ATACylinder | 
| db ATAFeatures | 
| db ATAHead | 
| db ATASectorCount | 
| db ATASectorNumber | 
| label calculate_IDE_device_values_storage | 
--------------------------------------------------------------------------—
| db ChannelNumber | 
| label convert_Sector512_value | 
--------------------------------------------------------------------------—
| label dev_name | 
| dd DevErrorCode | 
Error code (0 - no errors, 1 - waiting time limit exceed 2 - incorrect code of addressing mode, 3 - incorrect channel number, 4 - incorrect disk number, 5 - incorrect head number, 6 - command execution error, 7 - time out when choosing channel)
| db DeviceNumber | 
| label DeviceReset | 
--------------------------------------------------------------------------—
DEVICE RESET *
Input parameters are passed through the global* variables: * ChannelNumber - channel number (1 or 2); * DiskNumber - disk number (0 or 1). *
| db DiskNumber | 
| label End | 
| label End_1 | 
| label EndFindHDD | 
--------------------------------------------------------------------------—
| label Err1 | 
write error code
| label Err1_2 | 
error processing
| label Err2 | 
| label Err3 | 
| label Err3_2 | 
| label Err4 | 
| label Err4_2 | 
| label Err5 | 
| label Error1 | 
write the error code
| label Error1_1 | 
write the error code
| label Error6 | 
| label Error6_1 | 
| label FindHDD | 
| label FindHDD_1 | 
| label FindHDD_2 | 
--------------------------------------------------------------------------—
| label ReadCD_ID | 
--------------------------------------------------------------------------—
READ ATAPI DEVICE IDENTIFIER *
Input parameters are passed through the global* variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. * Block of identificational data is reading * to Sector512 array. * *
| label ReadHDD_ID | 
--------------------------------------------------------------------------—
READING THE HARD DISK IDENTIFIER *
Input parameters are passed through the global* variables: * ChannelNumber - channel number (1 or 2); * DiskNumber - disk number on channel (0 or 1) * Block of identificational data is reading * to Sector512 array. *
| dd SectorAddress | 
| label SendCommandToHDD | 
--------------------------------------------------------------------------—
SEND COMMAND TO GIVEN DISK *
Input parameters are passed through the global * variables: * ChannelNumber - channel number (1 or 2); * DiskNumber - disk number (0 or 1); * ATAFeatures - "features"; * ATASectorCount - sector count; * ATASectorNumber - initial sector number; * ATACylinder - initial cylinder number; * ATAHead - initial head number; * ATAAddressMode - addressing mode (0-CHS, 1-LBA); * ATACommand - command code. * If the function finished successfully: * in ATABasePortAddr - base address of HDD; * in DevErrorCode - zero. * If error has occured then in DevErrorCode will * be the error code. *
| dw StandardATABases | 
Standart base addresses of channels 1 or 2 1F0h, 170h.
| label WaitCompleet | 
| label WaitCompleet_1 | 
| label WaitHDReady | 
| label WaitHDReady_1 |