100 S$ = "1100 + 1100 = " : GOSUB 400 110 S$ = "1100 + 1101 = " : GOSUB 400 120 S$ = "1100 + 1110 = " : GOSUB 400 130 S$ = "1100 + 1111 = " : GOSUB 400 140 S$ = "1101 + 0000 = " : GOSUB 400 150 S$ = "1101 + 0001 = " : GOSUB 400 160 S$ = "1101 + 0010 = " : GOSUB 400 170 S$ = "1101 + 0011 = " : GOSUB 400 180 END 400 A0 = VAL(MID$(S$, 4, 1)) 410 A1 = VAL(MID$(S$, 3, 1)) 420 A2 = VAL(MID$(S$, 2, 1)) 430 A3 = VAL(MID$(S$, 1, 1)) 440 B0 = VAL(MID$(S$, 11, 1)) 450 B1 = VAL(MID$(S$, 10, 1)) 460 B2 = VAL(MID$(S$, 9, 1)) 470 B3 = VAL(MID$(S$, 8, 1)) 480 GOSUB 600 490 PRINT S$; REM 4 BIT PRINT 500 PRINT C;S3;S2;S1;S0 510 RETURN REM 4 BIT ADD REM ADD A3 A2 A1 A0 TO B3 B2 B1 B0 REM RESULT IN S3 S2 S1 S0 REM CARRY IN C 600 C = 0 610 A = A0 : B = B0 : GOSUB 700 : S0 = S 620 A = A1 : B = B1 : GOSUB 700 : S1 = S 630 A = A2 : B = B2 : GOSUB 700 : S2 = S 640 A = A3 : B = B3 : GOSUB 700 : S3 = S 650 RETURN REM FULL ADDER REM ADD A + B + C REM RESULT IN S REM CARRY IN C 700 BH = B : B = C : GOSUB 800 : C1 = C 710 A = S : B = BH : GOSUB 800 : C2 = C 720 C = C1 OR C2 730 RETURN REM HALF ADDER REM ADD A + B REM RESULT IN S REM CARRY IN C 800 GOSUB 900 : S = C 810 C = A AND B 820 RETURN REM XOR GATE REM A XOR B REM RESULT IN C 900 C = A AND NOT B 910 D = B AND NOT A 920 C = C OR D 930 RETURN