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);
}