| AND Gate |
|
NAND Gate |
 |
 |
Output is TRUE only if all inputs are TRUE. |
Output is FALSE only if all inputs are TRUE. |
| A B C | output |
|
| F F F | F |
| F F T | F |
| F T F | F |
| F T T | F |
| T F F | F |
| T F T | F |
| T T F | F |
| T T T | T |
|
|
| A B C | output |
|
| 0 0 0 | 0 |
| 0 0 1 | 0 |
| 0 1 0 | 0 |
| 0 1 1 | 0 |
| 1 0 0 | 0 |
| 1 0 1 | 0 |
| 1 1 0 | 0 |
| 1 1 1 | 1 |
|
|
| A B C | output |
|
| F F F | T |
| F F T | T |
| F T F | T |
| F T T | T |
| T F F | T |
| T F T | T |
| T T F | T |
| T T T | F |
|
|
| A B C | output |
|
| 0 0 0 | 1 |
| 0 0 1 | 1 |
| 0 1 0 | 1 |
| 0 1 1 | 1 |
| 1 0 0 | 1 |
| 1 0 1 | 1 |
| 1 1 0 | 1 |
| 1 1 1 | 0 |
|
|
|
| OR Gate |
NOR Gate |
 |
 |
Output is TRUE if any input (or all) is TRUE. |
Output is FALSE if any input (or all) is TRUE. |
| A B C | output |
|
| F F F | F |
| F F T | T |
| F T F | T |
| F T T | T |
| T F F | T |
| T F T | T |
| T T F | T |
| T T T | T |
|
|
| A B C | output |
|
| 0 0 0 | 0 |
| 0 0 1 | 1 |
| 0 1 0 | 1 |
| 0 1 1 | 1 |
| 1 0 0 | 1 |
| 1 0 1 | 1 |
| 1 1 0 | 1 |
| 1 1 1 | 1 |
|
|
| A B C | output |
|
| F F F | T |
| F F T | F |
| F T F | F |
| F T T | F |
| T F F | F |
| T F T | F |
| T T F | F |
| T T T | F |
|
|
| A B C | output |
|
| 0 0 0 | 1 |
| 0 0 1 | 0 |
| 0 1 0 | 0 |
| 0 1 1 | 0 |
| 1 0 0 | 0 |
| 1 0 1 | 0 |
| 1 1 0 | 0 |
| 1 1 1 | 0 |
|
|
|
| XOR (EXCLUSIVE OR) Gate |
XNOR (EXCLUSIVE NOR) Gate |
 |
 |
| A B C | output |
|
| F F F | F |
| F F T | T |
| F T F | T |
| F T T | F |
| T F F | T |
| T F T | F |
| T T F | F |
| T T T | T |
|
|
| A B C | output |
|
| 0 0 0 | 0 |
| 0 0 1 | 1 |
| 0 1 0 | 1 |
| 0 1 1 | 0 |
| 1 0 0 | 1 |
| 1 0 1 | 0 |
| 1 1 0 | 0 |
| 1 1 1 | 1 |
|
|
| A B C | output |
|
| F F F | T |
| F F T | F |
| F T F | F |
| F T T | T |
| T F F | F |
| T F T | T |
| T T F | T |
| T T T | F |
|
|
| A B C | output |
|
| 0 0 0 | 1 |
| 0 0 1 | 0 |
| 0 1 0 | 0 |
| 0 1 1 | 1 |
| 1 0 0 | 0 |
| 1 0 1 | 1 |
| 1 1 0 | 1 |
| 1 1 1 | 0 |
|
|
| IF N AND 1 THEN |
|
Tests if a number is odd (has its bit 1 set) |
|
| N + N AND -2 |
Always gives the even number of a pair, so if you are calculating an offset into a buffer, this always places you at an even-numbered position. |
|
| N = N AND X |
Keeps a variable within a range X. So N AND 16383 insures that an integer never exceeds 16383. |
|
| N = N AND 127 |
Clears the high bit (bit 8) in characters such as for sending to a serial port. |
|
| N = N OR 128 |
Sets the high bit (bit 8) in characters. In some cases this signals an attribute such as underlining. |
|
| N = N AND 95 |
Changes an lower case ASCII letter character to upper case by clearing bit 6. Replaces IF (ASCII CODE N) > 96 THEN N = N - 32. |
|
| N = N OR 32 |
Changes an upper case ASCII letter character to lower case by setting bit 6. |
|
| N = N AND 15 |
Converts an ASCII number character into its decimal number value by clearing bits 5 and 6. |
|
| N = N OR 48 |
Converts the digits 0 to 9 into their printable ASCII codes by setting bits 5 and 6. |
|
| IF X OR Y |
If either X or Y has a nonzero value ... |
|
| X = X XOR 1 |
Sets a flag variable from 1 or -1 to 0 and back. Replaces IF X THEN X = 0 ELSE X = 1. |
|
| PAGE = PAGE XOR 3 |
XOR can be used jump back and forth between two values, here between video pages 1 and 2. The value that toggles between has 1's where changes occur and 0 where they don't, for example to switch between
| |
3 | 00000011 |
| and 45 | 00101101 |
| use 46 | 00101110 |
|
|
| X = X + 1 AND 3 |
This can be used to maintain a cycle. Replaces X = X + 1: IF X = 4 THEN X = 0. |
|
| X = 1 - X |
Toggles a variable between 1 and 0. |