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 |