?? mainloop.c
字號(hào):
//MLsup_XferWordFrUSB2IDE(); //Word 0x1A
c = *((INT8 xdata *)D12_data); // read D12 for ATA_LByte
c += (*((INT8 xdata *)D12_data) ) <<8; // read D12 for ATA_HByte
*((INT16 xdata *)ATAREG4OUT_DATA) = c ;
//MLsup_XferWordFrUSB2IDE(); //Word 0x1B
c = *((INT8 xdata *)D12_data); // read D12 for ATA_LByte
c += (*((INT8 xdata *)D12_data) ) <<8; // read D12 for ATA_HByte
*((INT16 xdata *)ATAREG4OUT_DATA) = c ;
//MLsup_XferWordFrUSB2IDE(); //Word 0x1C
c = *((INT8 xdata *)D12_data); // read D12 for ATA_LByte
c += (*((INT8 xdata *)D12_data) ) <<8; // read D12 for ATA_HByte
*((INT16 xdata *)ATAREG4OUT_DATA) = c ;
//MLsup_XferWordFrUSB2IDE(); //Word 0x1D
c = *((INT8 xdata *)D12_data); // read D12 for ATA_LByte
c += (*((INT8 xdata *)D12_data) ) <<8; // read D12 for ATA_HByte
*((INT16 xdata *)ATAREG4OUT_DATA) = c ;
//MLsup_XferWordFrUSB2IDE(); //Word 0x1E
c = *((INT8 xdata *)D12_data); // read D12 for ATA_LByte
c += (*((INT8 xdata *)D12_data) ) <<8; // read D12 for ATA_HByte
*((INT16 xdata *)ATAREG4OUT_DATA) = c ;
//MLsup_XferWordFrUSB2IDE(); //Word 0x1F
c = *((INT8 xdata *)D12_data); // read D12 for ATA_LByte
c += (*((INT8 xdata *)D12_data) ) <<8; // read D12 for ATA_HByte
*((INT16 xdata *)ATAREG4OUT_DATA) = c ;
// ==========================================================
#endif
ATA_DATABUS_LO = 0xFF; // Give up DataBus, MCU_P2 = 0xFF;
Hal4Sys_D12CmdPortOutB( 0xF2); //clear Buffer
Hal4ATA_SectCntInBlk -- ;
if( Hal4ATA_SectCntInBlk == 0)
{
Hal4ATA_SectCntInBlk = ATADevExt_IDData.MaximumBlockTransfer << BITNUM4EP2PKT_PER_SECTOR;
// Hal4ATA_WaitOnBusyNDrq();
// while(ATA_IORDY!=1);
Hal4ATA_WaitOnBusy();
}
}
#else
void MLsup_XferPktFrUSB2IDE(void)
{
INT8 c0;
for(c0=EP2_PACKET_SIZE/2 ; c0!=0; c0--)
MLsup_XferWordFrUSB2IDE();
//MCU_P1 = D12REG_ONLY;
// ATA_DATABUS_LO = 0xFF; // Give up DataBus, MCU_P2 = 0xFF;
Hal4Sys_D12CmdPortOutB( 0xF2); //clear Buffer
Hal4ATA_SectCntInBlk -- ;
if( Hal4ATA_SectCntInBlk == 0)
{
Hal4ATA_SectCntInBlk = ATADevExt_IDData.MaximumBlockTransfer << BITNUM4EP2PKT_PER_SECTOR;
// Hal4ATA_WaitOnBusyNDrq();
Hal4ATA_WaitOnBusy();
}
}
#endif
#ifdef MAX_SPEED
//unsigned char c;
void MLsup_XferPktFrIDE2USB(void)
{
INT16 c ;
Hal4Sys_D12CmdPortOutB( 0xF0);// Write Buffer
Hal4Sys_D12DataPortOutB(0);// HI BYTE of Buffer Len
Hal4Sys_D12DataPortOutB(EP2_PACKET_SIZE);// LO BYTE of Buffer Len
//MCU_P1 = ATAREG4IN_DATA;
#if(EP2_PACKET_SIZE == 8)
;
#elif(EP2_PACKET_SIZE == 16)
;
#elif(EP2_PACKET_SIZE == 32)
;
#elif(EP2_PACKET_SIZE == 64)
//MLsup_XferWordFrIDE2USB(); //Word 0x00
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c >>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x01
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x02
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x03
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x04
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x05
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x06
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x07
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x08
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x09
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x0A
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x0B
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x0C
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x0D
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x0E
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x0F
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x10
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x11
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x12
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x13
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x14
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x15
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x16
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x17
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x18
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x19
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x1A
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x1B
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x1C
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x1D
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x1E
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
//MLsup_XferWordFrIDE2USB(); //Word 0x1F
c = *((INT16 xdata *)ATAREG4IN_DATA);
*((INT8 xdata *)D12_data) = c;
*((INT8 xdata *)D12_data) = c>>8;
#endif
//MCU_P1 = D12REG_ONLY;
Hal4Sys_D12CmdPortOutB( 0xFA); //valid Buffer
Hal4ATA_SectCntInBlk -- ;
if( Hal4ATA_SectCntInBlk == 0)
{
Hal4ATA_SectCntInBlk = ATADevExt_IDData.MaximumBlockTransfer << BITNUM4EP2PKT_PER_SECTOR;
// Hal4ATA_WaitOnBusyNDrq();
Hal4ATA_WaitOnBusy();
}
}
#else
void MLsup_XferPktFrIDE2USB(void)
{
INT8 c0;
Hal4Sys_D12CmdPortOutB( 0xF0);// Write Buffer
Hal4Sys_D12DataPortOutB(0);// HI BYTE of Buffer Len
Hal4Sys_D12DataPortOutB(EP2_PACKET_SIZE);// LO BYTE of Buffer Len
// MCU_P1 = ATAREG4IN_DATA;
for(c0=EP2_PACKET_SIZE/2 ; c0!=0; c0--)
MLsup_XferWordFrIDE2USB();
Hal4Sys_D12CmdPortOutB( 0xFA); //valid Buffer
Hal4ATA_SectCntInBlk -- ;
if( Hal4ATA_SectCntInBlk == 0)
{
Hal4ATA_SectCntInBlk = ATADevExt_IDData.MaximumBlockTransfer << BITNUM4EP2PKT_PER_SECTOR;
Hal4ATA_WaitOnBusy();
}
}
#endif
#ifndef MAX_SPEED
{
INT16 c;
c = *((INT16 xdata *)D12_data); // read D12 for ATA_LByte
*((INT8 xdata *)ATAREG4OUT_DATA) = c ;
*((INT8 xdata *)ATAREG4OUT_DATA+1) = c >>8 ;
}
void MLsup_XferWordFrIDE2USB(void)
{
// INT16 c;
// c = *((INT16 xdata *)ATAREG4IN_DATA);
// *((INT8 xdata *)D12_data) = c;
// *((INT8 xdata *)D12_data) = c>>8;
// INT8 c;
*((INT8 xdata *)ATARead2BWriteD12_1B) =0xFF;
*((INT8 xdata *)ATARead0BWriteD12_2B) = 0xFF;
}
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -