DUO BINARY Make a computer with a single LED and single button interface (single wire I/O). It should have a lot of storage and memory. The computer should interpret a simple bytecode. Parts to use: Microcontroller: ATTINY84-20PU (x2) 3 pin male header: 69190-403 2 MB flash: SST25VF016B-50-4C-S2AF 128 KB SRAM: 23LC1024-I/P 14 pin IC socket: 4814-3000-CP 8 pin IC socket: 4808-3000-CP (x2) 4 pin female header: 929974-01-04-RK (x2) 4 pin male header: 68000-104HLF SOIC to DIP board: 485-1212 (x3) 0.1 uF capacitor: K104K15X7RF5TL2 Button: B3F-1000 LED: WP7113GD 300 ohm resistor: 291-330-RC (x5) 10K ohm resistor: 291-10K-RC (x1 for microcontroller reset, x1 for MISO, x1 for flash CE, x1 for SRAM CE, x1 for button) Larger capacitor: UVR1H100MDD1TA Switch: MHSS1104 Battery holder: 534-2462 "User interface": The user and computer take turns transmitting 6-bit character encoded strings to each other. Strings are terminated by the null character. Characters are transmitted from most significant to least significant bit. After each character the listener will transmit an acknowledge bit. If the acknowledge bit is 1, the transmitter should send the same byte again. A 0 is represented by a short pulse. A 1 is represented by a long pulse. File system: Each file will be stored in a single continuous segment. Each file will be associated with a name. Some programs will have associated export files. These export files contain addresses of public functions and argument variables. File entry format: (1 byte entry type) (4 byte file data size) (4 byte file allocation size) (4 byte file address) (51 byte null terminated file name) Total size: 64 bytes Entry types: 0 = End of entry list 1 = No entry 2 = Yes entry Storage layout: (4 KB jump table) (8 KB file entry table) (52 KB boot code) (file space) Monitor program commands: S-110010 (3 byte address) = Seek T-110011 = Tell R-110001 (1 byte amount) = Read W-110110 (byte) (byte) (byte)... = Write E-100100 (3 byte amount) = Erase Q-110000 = Quit Bytes are encoded as two letters between A-100000 and P-101111 inclusive. Space is 000010. Memory allocation format: (4 byte next allocation) (4 byte previous allocation) (4 byte size) (data) File navigator commands: CN (name) = Create new file C = Count OI (index) = Open by index ON (name) = Open by name N = Get name S = Get size A = Get address SN (name) = Set name SS (size) = Set size E = Execute D = Delete Typological Editor commands: N = New buffer R (name) = Read file W (name) = Write file L = Print length S (index) = Seek T = Tell P (amount) = Print text I (text) = Insert D (amount) = Delete