74LS08

By Examples
void setup() {
    chipName("74LS08"); // Quad 2-input AND gate
    logicFamily(TTL);
    
    pin(1, "1A");
    pin(2, "1B");
    pin(3, "1Y", OUTPUT);
    pin(4, "2A");
    pin(5, "2B");
    pin(6, "2Y", OUTPUT);
    pin(7, "GND", GROUND);
    pin(8, "3Y", OUTPUT);
    pin(9, "3A");
    pin(10, "3B");
    pin(11, "4Y", OUTPUT);
    pin(12, "4A");
    pin(13, "4B");
    pin(14, "VCC", POWER);

    int w = chipWidth();
    int h = chipHeight();
    int middle_w = w / 2;
    int middle_h = h / 2;

    // Draw lines for the AND gate symbol
    drawLine(middle_w - 10, middle_h - 10, middle_w - 10, middle_h + 10);
    drawLine(middle_w - 10, middle_h + 10, middle_w, middle_h + 10);
    drawLine(middle_w - 10, middle_h - 10, middle_w, middle_h - 10);
    // Draw the arc of the AND gate symbol
    drawArc(middle_w, middle_h, 10, 270 * (PI / 180), 90 * (PI / 180));
    // Draw input lines
    drawLine(middle_w - 20, middle_h - 5, middle_w - 10, middle_h - 5);
    drawLine(middle_w - 20, middle_h + 5, middle_w - 10, middle_h + 5);
    // Draw output line
    drawLine(middle_w + 10, middle_h, middle_w + 20, middle_h);
}

void loop() {
    // Compute the output of the first AND gate
    // AND operation between input A and input B
    bool one = digitalRead(1) && digitalRead(2);
    // Write the output to the first AND gate output
    digitalWrite(3, one);

    // Repeat the logic for the second AND gate
    bool two = digitalRead(4) && digitalRead(5);
    digitalWrite(6, two);

    bool three = digitalRead(9) && digitalRead(10);
    digitalWrite(8, three);

    bool four = digitalRead(12) && digitalRead(13);
    digitalWrite(11, four);
}