74LS32

By Examples
void setup() {
    chipName("74LS32"); // Quad 2-input OR 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 the curved part of the OR gate symbol
    drawArc(middle_w - 15, middle_h, 10, 0, 90 * (PI / 180));
    drawArc(middle_w - 15, middle_h, 10, 270 * (PI / 180), 360 * (PI / 180));
    // Draw the straight part of the OR gate symbol
    drawLine(middle_w - 15, middle_h + 10, middle_w, middle_h + 10);
    drawLine(middle_w - 15, middle_h - 10, middle_w, middle_h - 10);
    // Draw the second curved part of the OR gate symbol
    drawArc(middle_w, middle_h, 10, 0, 90 * (PI / 180));
    drawArc(middle_w, middle_h, 10, 270 * (PI / 180), 360 * (PI / 180));
    // Draw input lines
    drawLine(middle_w - 20, middle_h - 5, middle_w - 7, middle_h - 5);
    drawLine(middle_w - 20, middle_h + 5, middle_w - 7, 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 OR gate
    // OR operation for inputs 1A and 1B
    bool one = digitalRead(1) || digitalRead(2);
    // Write the output to the first OR gate
    digitalWrite(3, one);

    // Repeat the logic for all the OR gates
    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);
}