void NICInit()
{
reg00 = 0x21; // Page0, Stop
reg01 = 0x40; // PSTART
reg02 = 0x4d; // PSTOP
reg03 = 0x40; // BNRY
reg07 = 0xff; // ISR
reg0c = 0xc6; // RCR
reg0d = 0xe0; // TCR
reg0e = 0xb8; // DCR
reg00 = 0x61; // Page1, Stop
reg01 = ET0; // PAR
reg02 = ET1;
reg03 = ET2;
reg04 = ET3;
reg05 = ET4;
reg06 = ET5;
reg07 = 0x40; // CURR
reg00 = 0x02; // Page0, Start
}
void SendARP()
{
reg00 = 0x22; // Page0, Abort
reg04 = 0x5f; // TPSR
reg09 = 0x5f; // RSAR
reg08 = 0x00;
reg0b = 0x00; // RBCR
reg0a = 0x40;
reg00 = 0x12; // Page0, Remote Write
reg10 = 0xff; // To Everyone
reg10 = 0xff;
reg10 = 0xff;
reg10 = 0xff;
reg10 = 0xff;
reg10 = 0xff;
reg10 = ET0; // My MCU's MAC
reg10 = ET1;
reg10 = ET2;
reg10 = ET3;
reg10 = ET4;
reg10 = ET5;
reg10 = 0x08;
reg10 = 0x06;
reg10 = 0x00;
reg10 = 0x01;
reg10 = 0x08;
reg10 = 0x00;
reg10 = 0x06;
reg10 = 0x04;
reg10 = 0x00; // ARP Request
reg10 = 0x01;
reg10 = ET0; // My MCU's MAC
reg10 = ET1;
reg10 = ET2;
reg10 = ET3;
reg10 = ET4;
reg10 = ET5;
reg10 = 192; // My MCU's IP
reg10 = 9;
reg10 = 203;
reg10 = 94;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 192; // My PC's IP
reg10 = 9;
reg10 = 203;
reg10 = 93;
reg00 = 0x22; // Page0, Abort DMA
reg06 = 0x00; // TBCR
reg05 = 0x40;
reg00 = 0x06; // Send Packet
}
void main()
{
Delsy100ms(); // Delay for 100ms
NICInit(); // NIC Init
while(1)
{
Delay2s(); // Delay 2s
SendARP(); // Send ARP Packet
}
}