AM79C90 Advanced Micro Devices, AM79C90 Datasheet - Page 52
![no-image](/images/manufacturer_photos/0/0/14/advanced_micro_devices_sml.jpg)
AM79C90
Manufacturer Part Number
AM79C90
Description
CMOS Local Area Network Controller for Ethernet (C-LANCE)
Manufacturer
Advanced Micro Devices
Datasheet
1.AM79C90.pdf
(62 pages)
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
AM79C900AJC
Manufacturer:
AMD
Quantity:
5 510
Company:
Part Number:
AM79C900AJC
Manufacturer:
SIG
Quantity:
5 510
Company:
Part Number:
AM79C900JAJC
Manufacturer:
AMD
Quantity:
359
Company:
Part Number:
AM79C900JCDV
Manufacturer:
AMD
Quantity:
1 831
Part Number:
AM79C901AJC
Manufacturer:
AMD
Quantity:
20 000
Part Number:
AM79C901AVC
Manufacturer:
AMD
Quantity:
20 000
Part Number:
AM79C90JC
Manufacturer:
AMD
Quantity:
20 000
{
52
while (1)
{
loop:
for (i=0;i<8;i++) ladrf[i] = 0; /* clear log. adr. filter */
printf (”Enter Ethernet addresses as 6 octets separated by blanks.\n”);
printf (”Each octet is one or two hex characters. The first octet \n”);
printf (”entered is the first octet to be transmitted. The LSB of \n”);
printf (”the first octet is the first bit transmitted. After each \n”);
printf (”address is entered, the Logical Address Filter contents \n”);
printf (”are displayed, least significant byte first, with the \n”);
printf (”appropriate bits set for all addresses entered so far.\n”);
printf (”
printf (”\nEnter address: ”);
/* If 1st character = CR, quit, otherwise read address. */
gets (buf);
if ( buf[0] == ’\0’) break;
if (sscanf (buf, ”%x %x %x %x %x %x”,
if ((adr[0] & 1) == 0)
/* Initialize CRC */
for (i=0; i<32; i++) CRC[i] = 1;
/* Process each bit of the address in the order of transmission.*/
for (byte=0; byte<6; byte++)
/* The hash code is the 6 least significant bits of the CRC
*/
hashcode = 0;
for (i=0; i<6; i++) hashcode = (hashcode << 1) + CRC[i];
/* Bits 3–5 of hashcode point to byte in address filter.
byte = hashcode >> 3;
int k,i, byte; /* temporary array indices */
int hashcode; /* the object of this program */
char buf[80]; /* holds input characters */
AMD
for (i=0; i<8; i++)
in reverse order: CRC[0] = hash[5], CRC[1] = hash[4], etc.
Bits 0–2 point to bit within that byte. */
!= 6)
{ printf
}
{ printf (”First octet of multicast address ”);
}
&adr[0], &adr[1], &adr[2],&adr[3],&adr[4],&adr[5])
goto loop;
updateCRC ((adr[byte] >> i) & 1);
(”Address must contain 6 octets separated by blanks.\n”);
printf (”must be an odd number.\n”);
goto loop;
To exit press the <Enter> key.\n\n”);
Am79C90