Functions | |
| void | check_ATAPI_device_event_has_work () |
| --------------------------------------------------------------------------— More... | |
Variables | |
| label | ReadCDWRetr |
| ******************************************** READING SECTOR WITH REPEATS * Repeated reads on failures * More... | |
| label | ReadCDWRetr_1 |
| --------------------------------------------------------------------------— More... | |
| label | NextRetr |
| -----------------------------------— More... | |
| label | End_4 |
| -----------------------------------— More... | |
| label | PacketCommand |
| Memory area for generating a packet command. More... | |
| label | CDSectorAddress |
| address of reading data sector More... | |
| dd | TickCounter_1 |
| Start time of the next disk operation. More... | |
| dd | WURStartTime |
| Time to start waiting for device readiness. More... | |
| dd | CDDataBuf_pointer |
| pointer to buffer to read data into More... | |
| label | SendPacketDatCommand |
| --------------------------------------------------------------------------— More... | |
| label | WaitDevice0 |
| -----------------------------------— More... | |
| label | WaitDevice1 |
| -----------------------------------— More... | |
| label | End_8 |
| -----------------------------------— Successful completion of data receive More... | |
| label | Err1_1 |
| -----------------------------------— Write error code More... | |
| label | Err6_temp |
| -----------------------------------— More... | |
| label | Err6 |
| -----------------------------------— More... | |
| label | SendPacketNoDatCommand |
| --------------------------------------------------------------------------— More... | |
| label | WaitDevice0_1 |
| -----------------------------------— More... | |
| label | WaitDevice1_1 |
| -----------------------------------— More... | |
| label | clear_DEC |
| -----------------------------------— More... | |
| label | Err1_3 |
| -----------------------------------— Write error code More... | |
| label | Err6_1 |
| -----------------------------------— More... | |
| label | End_9 |
| -----------------------------------— More... | |
| label | SendCommandToHDD_1 |
| --------------------------------------------------------------------------— More... | |
| label | WaitHDReady_2 |
| -----------------------------------— More... | |
| label | End_10 |
| -----------------------------------— More... | |
| label | Err1_4 |
| -----------------------------------— Write error code More... | |
| label | Err2_4 |
| -----------------------------------— More... | |
| label | Err3_4 |
| -----------------------------------— More... | |
| label | Err4_4 |
| -----------------------------------— More... | |
| label | Err5_4 |
| -----------------------------------— More... | |
| label | WaitUnitReady |
| --------------------------------------------------------------------------— More... | |
| label | SendCommand |
| -----------------------------------— More... | |
| label | End_11 |
| -----------------------------------— More... | |
| label | prevent_medium_removal |
| --------------------------------------------------------------------------— More... | |
| label | allow_medium_removal |
| --------------------------------------------------------------------------— More... | |
| label | LoadMedium |
| --------------------------------------------------------------------------— More... | |
| label | EjectMedium |
| --------------------------------------------------------------------------— More... | |
| label | check_ATAPI_device_event |
| --------------------------------------------------------------------------— More... | |
| dd | timer_ATAPI_check |
| db | ATAPI_IDE0_lock |
| db | ATAPI_IDE1_lock |
| db | ATAPI_IDE2_lock |
| db | ATAPI_IDE3_lock |
| db | ATAPI_IDE4_lock |
| db | ATAPI_IDE5_lock |
| db | ATAPI_IDE6_lock |
| db | ATAPI_IDE7_lock |
| db | ATAPI_IDE8_lock |
| db | ATAPI_IDE9_lock |
| db | ATAPI_IDE10_lock |
| db | ATAPI_IDE11_lock |
| db | ignore_CD_eject_wait |
| label | GetEvent_StatusNotification |
| --------------------------------------------------------------------------— More... | |
| label | Read_TOC |
| --------------------------------------------------------------------------— More... | |
| label | clear_packet_buffer |
| --------------------------------------------------------------------------— More... | |
| void check_ATAPI_device_event_has_work | ( | ) |
--------------------------------------------------------------------------—
Check the event of pressing the eject button *
| label allow_medium_removal |
--------------------------------------------------------------------------—
ALLOW DISK CHANGE *
Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. *
| db ATAPI_IDE0_lock |
| db ATAPI_IDE10_lock |
| db ATAPI_IDE11_lock |
| db ATAPI_IDE1_lock |
| db ATAPI_IDE2_lock |
| db ATAPI_IDE3_lock |
| db ATAPI_IDE4_lock |
| db ATAPI_IDE5_lock |
| db ATAPI_IDE6_lock |
| db ATAPI_IDE7_lock |
| db ATAPI_IDE8_lock |
| db ATAPI_IDE9_lock |
| dd CDDataBuf_pointer |
| label CDSectorAddress |
address of reading data sector
| label check_ATAPI_device_event |
--------------------------------------------------------------------------—
| label clear_DEC |
-----------------------------------—
| label clear_packet_buffer |
--------------------------------------------------------------------------—
DETERMINE THE TOTAL NUMBER OF SECTORS ON THE DISK * Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel *
ReadCapacity: pusha ; Clear the packet command buffer call clear_packet_buffer ; Set the buffer size in bytes mov [CDBlockSize],8 ; Generate READ CAPACITY command mov [PacketCommand],word 25h ; Send command call SendPacketDatCommand popa
| label EjectMedium |
--------------------------------------------------------------------------—
REMOVE THE DISK FROM THE DRIVE *
Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. *
| label End_10 |
-----------------------------------—
| label End_11 |
-----------------------------------—
| label End_4 |
-----------------------------------—
| label End_8 |
-----------------------------------— Successful completion of data receive
| label End_9 |
-----------------------------------—
| label Err1_1 |
-----------------------------------— Write error code
| label Err1_3 |
-----------------------------------— Write error code
| label Err1_4 |
-----------------------------------— Write error code
| label Err2_4 |
-----------------------------------—
| label Err3_4 |
-----------------------------------—
| label Err4_4 |
-----------------------------------—
| label Err5_4 |
-----------------------------------—
| label Err6 |
-----------------------------------—
| label Err6_1 |
-----------------------------------—
| label Err6_temp |
-----------------------------------—
| label GetEvent_StatusNotification |
--------------------------------------------------------------------------—
Get an event or device status message *
| db ignore_CD_eject_wait |
| label LoadMedium |
--------------------------------------------------------------------------—
LOAD DISK TO THE DRIVE *
Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. *
| label NextRetr |
-----------------------------------—
| label PacketCommand |
Memory area for generating a packet command.
| label prevent_medium_removal |
--------------------------------------------------------------------------—
FORBID DISK CHANGE *
Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. *
| label Read_TOC |
--------------------------------------------------------------------------—
Read information from TOC (Table of contents) * Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel *
| label ReadCDWRetr |
******************************************** READING SECTOR WITH REPEATS * Repeated reads on failures *
| label ReadCDWRetr_1 |
--------------------------------------------------------------------------—
| label SendCommand |
-----------------------------------—
| label SendCommandToHDD_1 |
--------------------------------------------------------------------------—
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. *
| label SendPacketDatCommand |
--------------------------------------------------------------------------—
SEND TO ATAPI DEVICE PACKET COMMAND, *
THAT MEANS TRASMIT ONE DATA SECTOR OF SIZE * 2048 BYTE FROM DEVICE TO HOST * Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. * PacketCommand - 12-byte command packet; * CDBlockSize - size of receiving data block. * return eax DevErrorCode
| label SendPacketNoDatCommand |
--------------------------------------------------------------------------—
SEND TO ATAPI DEVICE PACKET COMMAND, * THAT DOESNT MEAN TRANSMIT DATA * Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. * PacketCommand - 12-byte command packet. *
| dd TickCounter_1 |
| dd timer_ATAPI_check |
| label WaitDevice0 |
-----------------------------------—
| label WaitDevice0_1 |
-----------------------------------—
| label WaitDevice1 |
-----------------------------------—
| label WaitDevice1_1 |
-----------------------------------—
| label WaitHDReady_2 |
-----------------------------------—
| label WaitUnitReady |
--------------------------------------------------------------------------—
WAIT FOR THE DEVICE IS READY FOR WORK *
Input parameters are passed through global * variables: * ChannelNumber - channel number; * DiskNumber - disk number on channel. *
| dd WURStartTime |