diff --git a/INO/Backup Of PRINT micro-code with address.pdsbak b/INO/Backup Of PRINT micro-code with address.pdsbak
new file mode 100644
index 0000000..72a4493
Binary files /dev/null and b/INO/Backup Of PRINT micro-code with address.pdsbak differ
diff --git a/INO/Last Loaded PRINT micro-code with address.pdsbak b/INO/Last Loaded PRINT micro-code with address.pdsbak
new file mode 100644
index 0000000..e389b6a
Binary files /dev/null and b/INO/Last Loaded PRINT micro-code with address.pdsbak differ
diff --git a/INO/Last Loaded PRINT micro-code.pdsbak b/INO/Last Loaded PRINT micro-code.pdsbak
new file mode 100644
index 0000000..b81e8bf
Binary files /dev/null and b/INO/Last Loaded PRINT micro-code.pdsbak differ
diff --git a/microcode-eeprom-with-flags/microcode-eeprom-with-flags.ino b/INO/PRINT micro-code with address.ino
similarity index 57%
rename from microcode-eeprom-with-flags/microcode-eeprom-with-flags.ino
rename to INO/PRINT micro-code with address.ino
index 1cd0073..b6647b0 100644
--- a/microcode-eeprom-with-flags/microcode-eeprom-with-flags.ino
+++ b/INO/PRINT micro-code with address.ino
@@ -1,14 +1,5 @@
-/**
- * This sketch programs the microcode EEPROMs for the 8-bit breadboard computer
- * It includes support for a flags register with carry and zero flags
- * See this video for more: https://youtu.be/Zg1NdPKoosU
- */
-#define SHIFT_DATA 2
-#define SHIFT_CLK 3
-#define SHIFT_LATCH 4
#define EEPROM_D0 5
#define EEPROM_D7 12
-#define WRITE_EN 13
#define HLT 0b1000000000000000 // Halt clock
#define MI 0b0100000000000000 // Memory address register in
@@ -62,103 +53,71 @@ void initUCode() {
// ZF = 0, CF = 1
memcpy(ucode[FLAGS_Z0C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
- ucode[FLAGS_Z0C1][JC][2] = IO|J;
+ ucode[FLAGS_Z0C1][JC][2] = IO | J;
// ZF = 1, CF = 0
memcpy(ucode[FLAGS_Z1C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
- ucode[FLAGS_Z1C0][JZ][2] = IO|J;
+ ucode[FLAGS_Z1C0][JZ][2] = IO | J;
// ZF = 1, CF = 1
memcpy(ucode[FLAGS_Z1C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
- ucode[FLAGS_Z1C1][JC][2] = IO|J;
- ucode[FLAGS_Z1C1][JZ][2] = IO|J;
+ ucode[FLAGS_Z1C1][JC][2] = IO | J;
+ ucode[FLAGS_Z1C1][JZ][2] = IO | J;
}
-/*
- * Output the address bits and outputEnable signal using shift registers.
- */
-void setAddress(int address, bool outputEnable) {
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, (address >> 8) | (outputEnable ? 0x00 : 0x80));
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, address);
-
- digitalWrite(SHIFT_LATCH, LOW);
- digitalWrite(SHIFT_LATCH, HIGH);
- digitalWrite(SHIFT_LATCH, LOW);
-}
-
-
-/*
- * Read a byte from the EEPROM at the specified address.
- */
-byte readEEPROM(int address) {
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, INPUT);
- }
- setAddress(address, /*outputEnable*/ true);
-
- byte data = 0;
- for (int pin = EEPROM_D7; pin >= EEPROM_D0; pin -= 1) {
- data = (data << 1) + digitalRead(pin);
- }
- return data;
-}
-
-
-/*
- * Write a byte to the EEPROM at the specified address.
- */
+char bufd[2];
+char bufa[8];
+int line_count = 0;
+int oneTime = -1;
+int addr = 0;
void writeEEPROM(int address, byte data) {
- setAddress(address, /*outputEnable*/ false);
for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, OUTPUT);
- }
-
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- digitalWrite(pin, data & 1);
+ if (oneTime == -1) {
+ sprintf(bufd, "%02x ", data);
+ Serial.print(bufd);
+ }
+ oneTime++;
data = data >> 1;
}
- digitalWrite(WRITE_EN, LOW);
- delayMicroseconds(1);
- digitalWrite(WRITE_EN, HIGH);
- delay(10);
+ oneTime = -1;
+
+ line_count++;
+ if (line_count % 8 == 0)
+ Serial.print(" ");
+ if (line_count % 16 == 0) {
+ Serial.println("");
+ addr = addr + 16;
+ // Serial.print(addr,HEX);
+ // Serial.print(": ");
+ sprintf(bufa, "%03x: ", addr);
+ Serial.print(bufa);
+ }
}
+void setup() {
+ initUCode();
+ Serial.begin(9600);
-/*
- * Read the contents of the EEPROM and print them to the serial monitor.
- */
-void printContents(int start, int length) {
- for (int base = start; base < length; base += 16) {
- byte data[16];
- for (int offset = 0; offset <= 15; offset += 1) {
- data[offset] = readEEPROM(base + offset);
- }
+ Serial.print("Programming EEPROM");
- char buf[80];
- sprintf(buf, "%03x: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
- base, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7],
- data[8], data[9], data[10], data[11], data[12], data[13], data[14], data[15]);
+ for (int address = 0; address < 1024; address += 1) {
+ delayMicroseconds(1);
+ delay(10);
- Serial.println(buf);
+ if (address % 64 == 0) {
+ Serial.print(".");
+ }
}
-}
-
-void setup() {
- // put your setup code here, to run once:
- initUCode();
+ Serial.println(" done");
- pinMode(SHIFT_DATA, OUTPUT);
- pinMode(SHIFT_CLK, OUTPUT);
- pinMode(SHIFT_LATCH, OUTPUT);
- digitalWrite(WRITE_EN, HIGH);
- pinMode(WRITE_EN, OUTPUT);
- Serial.begin(57600);
+ Serial.println("Reading EEPROM");
- // Program data bytes
- Serial.print("Programming EEPROM");
+ int zero = 0;
+ char buff[3];
+ sprintf(buff, "000: ", zero);
+ Serial.print(buff);
- // Program the 8 high-order bits of microcode into the first 128 bytes of EEPROM
for (int address = 0; address < 1024; address += 1) {
int flags = (address & 0b1100000000) >> 8;
int byte_sel = (address & 0b0010000000) >> 7;
@@ -170,23 +129,10 @@ void setup() {
} else {
writeEEPROM(address, ucode[flags][instruction][step] >> 8);
}
-
- if (address % 64 == 0) {
- Serial.print(".");
- }
}
-
- Serial.println(" done");
-
-
- // Read and print out the contents of the EERPROM
- Serial.println("Reading EEPROM");
- printContents(0, 1024);
}
void loop() {
- // put your main code here, to run repeatedly:
}
-
diff --git a/INO/PRINT micro-code with address.pdsprj b/INO/PRINT micro-code with address.pdsprj
new file mode 100644
index 0000000..b81e8bf
Binary files /dev/null and b/INO/PRINT micro-code with address.pdsprj differ
diff --git a/INO/PRINT micro-code with address.pdsprj.IDEAPAD.Subhankar.workspace b/INO/PRINT micro-code with address.pdsprj.IDEAPAD.Subhankar.workspace
new file mode 100644
index 0000000..6abc1f1
--- /dev/null
+++ b/INO/PRINT micro-code with address.pdsprj.IDEAPAD.Subhankar.workspace
@@ -0,0 +1,151 @@
+
+
+
+ 2c0000000200000003000000ffffffffffffffffffffffffffffffff6900000000000000540300007c020000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 279
+ - No
+ - 100
+ - 100
+
+
+
+
+ - 87
+ - No
+ - Yes
+ - 87
+ - Yes
+ - No
+ - No
+ - Yes
+ - 0
+ - 87
+ - 100
+ - 87
+ - 0
+
+
+
+
+
+
+
+
+
+
+ - 0
+ - 0
+
+
+
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000100
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000020
+
+
+
+
+ - No
+ - Yes
+ - No
+ - No
+ - Yes
+ - No
+ - 0
+
+
+
+
+ - 608
+ - No
+ - Yes
+ - 608
+ - Yes
+ - Yes
+ - No
+ - No
+ - No
+ - 0
+ - 608
+ - 100
+ - 0
+
+
+
+
+
diff --git a/INO/PRINT micro-code.ino b/INO/PRINT micro-code.ino
new file mode 100644
index 0000000..db78f94
--- /dev/null
+++ b/INO/PRINT micro-code.ino
@@ -0,0 +1,110 @@
+#define EEPROM_D0 5
+#define EEPROM_D7 12
+
+#define HLT 0b1000000000000000 // Halt clock
+#define MI 0b0100000000000000 // Memory address register in
+#define RI 0b0010000000000000 // RAM data in
+#define RO 0b0001000000000000 // RAM data out
+#define IO 0b0000100000000000 // Instruction register out
+#define II 0b0000010000000000 // Instruction register in
+#define AI 0b0000001000000000 // A register in
+#define AO 0b0000000100000000 // A register out
+#define EO 0b0000000010000000 // ALU out
+#define SU 0b0000000001000000 // ALU subtract
+#define BI 0b0000000000100000 // B register in
+#define OI 0b0000000000010000 // Output register in
+#define CE 0b0000000000001000 // Program counter enable
+#define CO 0b0000000000000100 // Program counter out
+#define J 0b0000000000000010 // Jump (program counter in)
+#define FI 0b0000000000000001 // Flags in
+
+#define FLAGS_Z0C0 0
+#define FLAGS_Z0C1 1
+#define FLAGS_Z1C0 2
+#define FLAGS_Z1C1 3
+
+#define JC 0b0111
+#define JZ 0b1000
+
+uint16_t UCODE_TEMPLATE[16][8] = {
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0000 - NOP
+ { MI|CO, RO|II|CE, IO|MI, RO|AI, 0, 0, 0, 0 }, // 0001 - LDA
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|FI, 0, 0, 0 }, // 0010 - ADD
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|SU|FI, 0, 0, 0 }, // 0011 - SUB
+ { MI|CO, RO|II|CE, IO|MI, AO|RI, 0, 0, 0, 0 }, // 0100 - STA
+ { MI|CO, RO|II|CE, IO|AI, 0, 0, 0, 0, 0 }, // 0101 - LDI
+ { MI|CO, RO|II|CE, IO|J, 0, 0, 0, 0, 0 }, // 0110 - JMP
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0111 - JC
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1000 - JZ
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1001
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1010
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1011
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1100
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1101
+ { MI|CO, RO|II|CE, AO|OI, 0, 0, 0, 0, 0 }, // 1110 - OUT
+ { MI|CO, RO|II|CE, HLT, 0, 0, 0, 0, 0 }, // 1111 - HLT
+};
+
+uint16_t ucode[4][16][8];
+
+void initUCode() {
+ // ZF = 0, CF = 0
+ memcpy(ucode[FLAGS_Z0C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+
+ // ZF = 0, CF = 1
+ memcpy(ucode[FLAGS_Z0C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z0C1][JC][2] = IO | J;
+
+ // ZF = 1, CF = 0
+ memcpy(ucode[FLAGS_Z1C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C0][JZ][2] = IO | J;
+
+ // ZF = 1, CF = 1
+ memcpy(ucode[FLAGS_Z1C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C1][JC][2] = IO | J;
+ ucode[FLAGS_Z1C1][JZ][2] = IO | J;
+}
+
+char bufd[2];
+char bufa[3];
+int line_count = 0;
+int oneTime = -1;
+int addr = 0;
+void writeEEPROM(int address, byte data) {
+ for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
+ if (oneTime == -1) {
+ sprintf(bufd, "%02x ", data);
+ Serial.print(bufd);
+ }
+ oneTime++;
+ data = data >> 1;
+ }
+ oneTime = -1;
+
+ line_count++;
+ if (line_count % 8 == 0)
+ Serial.println("");
+}
+
+void setup() {
+ initUCode();
+ Serial.begin(9600);
+
+ for (int address = 0; address < 1024; address += 1) {
+ int flags = (address & 0b1100000000) >> 8;
+ int byte_sel = (address & 0b0010000000) >> 7;
+ int instruction = (address & 0b0001111000) >> 3;
+ int step = (address & 0b0000000111);
+
+ if (byte_sel) {
+ writeEEPROM(address, ucode[flags][instruction][step]);
+ } else {
+ writeEEPROM(address, ucode[flags][instruction][step] >> 8);
+ }
+ }
+}
+
+
+void loop() {
+
+}
diff --git a/INO/PRINT micro-code.pdsprj b/INO/PRINT micro-code.pdsprj
new file mode 100644
index 0000000..a695011
Binary files /dev/null and b/INO/PRINT micro-code.pdsprj differ
diff --git a/INO/PRINT micro-code.pdsprj.IDEAPAD.Subhankar.workspace b/INO/PRINT micro-code.pdsprj.IDEAPAD.Subhankar.workspace
new file mode 100644
index 0000000..16f3ff3
--- /dev/null
+++ b/INO/PRINT micro-code.pdsprj.IDEAPAD.Subhankar.workspace
@@ -0,0 +1,151 @@
+
+
+
+ 2c0000000200000003000000ffffffffffffffffffffffffffffffff6900000000000000540300007c020000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 279
+ - No
+ - 100
+ - 100
+
+
+
+
+ - 87
+ - No
+ - Yes
+ - 87
+ - Yes
+ - No
+ - No
+ - Yes
+ - 0
+ - 87
+ - 100
+ - 87
+ - 0
+
+
+
+
+
+
+
+
+
+
+ - 0
+ - 0
+
+
+
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000100
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000020
+
+
+
+
+ - No
+ - Yes
+ - No
+ - No
+ - Yes
+ - No
+ - 0
+
+
+
+
+ - 99
+ - No
+ - Yes
+ - 99
+ - Yes
+ - Yes
+ - No
+ - No
+ - No
+ - 0
+ - 99
+ - 100
+ - 0
+
+
+
+
+
diff --git a/INO/micro-code with address.txt b/INO/micro-code with address.txt
new file mode 100644
index 0000000..490e00e
--- /dev/null
+++ b/INO/micro-code with address.txt
@@ -0,0 +1,64 @@
+000: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+010: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+020: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+030: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+040: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+050: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+060: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+070: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+080: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+090: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+0a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+0c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+100: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+110: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+120: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+130: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+140: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+150: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+160: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+170: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+180: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+190: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+1a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+1c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+200: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+210: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+220: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+230: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+240: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+250: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+260: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+270: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+280: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+290: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+2a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+300: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+310: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+320: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+330: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+340: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+350: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+360: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+370: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+380: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+390: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+3a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+3c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+3d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
\ No newline at end of file
diff --git a/INO/micro-code.txt b/INO/micro-code.txt
new file mode 100644
index 0000000..3274744
--- /dev/null
+++ b/INO/micro-code.txt
@@ -0,0 +1,128 @@
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
\ No newline at end of file
diff --git a/README.md b/README.md
index 387d78f..85e5032 100644
--- a/README.md
+++ b/README.md
@@ -1,43 +1,95 @@
-# Arduino EEPROM programmer
-
-Copyright 2017 Ben Eater
-
-This code and schematic are [MIT licensed](http://en.wikipedia.org/wiki/MIT_License).
-
-## Circuit
-
-This is a simple circuit for programming the 28C16, 28C64, 28C256, and similar parallel EEPROMs using an Arduino. Since the Arduino doesn’t have enough pins to directly control all of the address, data, and control lines of the EEPROM, two 74HC595 shift registers are used for the 11 address lines (15 for the 28C256) and the output enable control line.
-
-![Schematic of EEPROM programmer](https://raw.githubusercontent.com/beneater/eeprom-programmer/master/schematic.png)
-
-
-## What’s here?
-
-There are four different Arduino sketches that correspond to several YouTube videos. A lot of the code is duplicated since each sketch built on the previous ones. But I’ve kept them separate to make it easier to find the exact code that goes with a particular video:
-
-### 1. Basic programmer
-
-The code in [`/eeprom-programmer`](/eeprom-programmer) is the basic programmer that programs a few bytes into the EEPROM and dumps the contents.
-
-That software, along with the EEPROM programmer’s hardware are described in detail in the following video. This is a good place to start if you’re looking for the fastest way to make sense of this repo:
-- [Build an Arduino EEPROM programmer](https://youtu.be/K88pgWhEb1M).
-
-### 2. 8-bit decimal display
-
-The code in [`/multiplexed-display`](/multiplexed-display) is for programming an EEPROM to be used to decode 8-bit values and drive a 4-digit 7-segment display. Check out this video for more:
-- [Build an 8-bit decimal display for our 8-bit computer](https://youtu.be/dLh1n2dErzE).
-
-### 3. 8-bit computer microcode
-
-The code in [`/microcode-eeprom-programmer`](/microcode-eeprom-programmer) is for programming a pair of EEPROMs to serve as an instruction decoder for an 8-bit breadboard computer. You’ll probably want to watch the whole 8-bit computer playlist (see below) for this to really make sense, but the specific videos describing the code here are:
-- [Reprogramming CPU microcode with an Arduino](https://youtu.be/JUVt_KYAp-I).
-- [Adding more machine language instructions to the CPU](https://youtu.be/FCscQGBIL-Y).
-
-### 4. 8-bit computer microcode with flags register
-
-The code in [`/microcode-eeprom-with-flags`](/microcode-eeprom-with-flags) adds functionality for a flags register to the microcode above to support conditional instructions. Again, you’ll likely want more context from the full series of videos, but here’s the video describing the code:
-- [Conditional jump instructions](https://youtu.be/Zg1NdPKoosU).
-
-## More information
-
-This EEPROM programmer was designed as part of a larger project to build an 8-bit computer from scratch. There’s a much larger [series of videos about this project](https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU) on YouTube as well. In all likelihood, if this repo interests you, you want to binge that whole playlist.
+# eeprom-programmer-WITHOUT-eeprom
+I have forked the original repository to make modifications so that I can see the input going to the EEPROM without having the EEPROM itself.
+Helpful for simulation.
+
+The .ino files can be used if any one has Arduino hardware lying and can get the code by uploading the program and seeing the serial output and there are also .pdsprj files which are proteus design simulation files which can simulate the entire code along with the hardware and any one with Proteus Simulation software can run them without any extra component and still get the EEPROM contents to be programmed.
+
+However, I have given the serial dump also if anyone needs the original ROM contents, and the .ino files and .pdsprj files will help one to write their own microcode and get the ROM contents for simulation.
+
+### Here are some screenshots of the properly formatted one as shown in Ben-Eater's video - 44:Conditional jump instructions (https://www.youtube.com/watch?v=Zg1NdPKoosU&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=44) :
+
+![1.png](https://github.com/Subhankar2000/eeprom-programmer-WITHOUT-eeprom/blob/master/blob/1.png?raw=true)
+
+![2.png](https://github.com/Subhankar2000/eeprom-programmer-WITHOUT-eeprom/blob/master/blob/2.png?raw=true)
+
+![3.png](https://github.com/Subhankar2000/eeprom-programmer-WITHOUT-eeprom/blob/master/blob/3.png?raw=true)
+
+![4.png](https://github.com/Subhankar2000/eeprom-programmer-WITHOUT-eeprom/blob/master/blob/4.png?raw=true)
+
+![5.png](https://github.com/Subhankar2000/eeprom-programmer-WITHOUT-eeprom/blob/master/blob/5.png?raw=true)
+
+![6.png](https://github.com/Subhankar2000/eeprom-programmer-WITHOUT-eeprom/blob/master/blob/6.png?raw=true)
+
+```diff
++ completed
+```
+
+```diff
+- CORRECTED output for Logisim
+Programming EEPROM................ done
+Reading EEPROM
+000: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+010: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+020: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+030: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+040: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+050: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+060: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+070: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+080: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+090: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+0a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+0c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+100: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+110: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+120: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+130: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+140: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+150: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+160: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+170: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+180: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+190: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+1a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+1c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+200: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+210: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+220: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+230: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+240: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+250: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+260: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+270: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+280: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+290: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+2a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+300: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+310: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+320: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+330: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+340: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+350: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+360: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+370: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+380: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+390: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+3a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+3c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+3d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+```
\ No newline at end of file
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/Backup Of microcode-eeprom-with-flags_FORMATTED.pdsbak b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/Backup Of microcode-eeprom-with-flags_FORMATTED.pdsbak
new file mode 100644
index 0000000..2f9c3d9
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/Backup Of microcode-eeprom-with-flags_FORMATTED.pdsbak differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino
new file mode 100644
index 0000000..b6647b0
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino
@@ -0,0 +1,138 @@
+#define EEPROM_D0 5
+#define EEPROM_D7 12
+
+#define HLT 0b1000000000000000 // Halt clock
+#define MI 0b0100000000000000 // Memory address register in
+#define RI 0b0010000000000000 // RAM data in
+#define RO 0b0001000000000000 // RAM data out
+#define IO 0b0000100000000000 // Instruction register out
+#define II 0b0000010000000000 // Instruction register in
+#define AI 0b0000001000000000 // A register in
+#define AO 0b0000000100000000 // A register out
+#define EO 0b0000000010000000 // ALU out
+#define SU 0b0000000001000000 // ALU subtract
+#define BI 0b0000000000100000 // B register in
+#define OI 0b0000000000010000 // Output register in
+#define CE 0b0000000000001000 // Program counter enable
+#define CO 0b0000000000000100 // Program counter out
+#define J 0b0000000000000010 // Jump (program counter in)
+#define FI 0b0000000000000001 // Flags in
+
+#define FLAGS_Z0C0 0
+#define FLAGS_Z0C1 1
+#define FLAGS_Z1C0 2
+#define FLAGS_Z1C1 3
+
+#define JC 0b0111
+#define JZ 0b1000
+
+uint16_t UCODE_TEMPLATE[16][8] = {
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0000 - NOP
+ { MI|CO, RO|II|CE, IO|MI, RO|AI, 0, 0, 0, 0 }, // 0001 - LDA
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|FI, 0, 0, 0 }, // 0010 - ADD
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|SU|FI, 0, 0, 0 }, // 0011 - SUB
+ { MI|CO, RO|II|CE, IO|MI, AO|RI, 0, 0, 0, 0 }, // 0100 - STA
+ { MI|CO, RO|II|CE, IO|AI, 0, 0, 0, 0, 0 }, // 0101 - LDI
+ { MI|CO, RO|II|CE, IO|J, 0, 0, 0, 0, 0 }, // 0110 - JMP
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0111 - JC
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1000 - JZ
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1001
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1010
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1011
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1100
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1101
+ { MI|CO, RO|II|CE, AO|OI, 0, 0, 0, 0, 0 }, // 1110 - OUT
+ { MI|CO, RO|II|CE, HLT, 0, 0, 0, 0, 0 }, // 1111 - HLT
+};
+
+uint16_t ucode[4][16][8];
+
+void initUCode() {
+ // ZF = 0, CF = 0
+ memcpy(ucode[FLAGS_Z0C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+
+ // ZF = 0, CF = 1
+ memcpy(ucode[FLAGS_Z0C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z0C1][JC][2] = IO | J;
+
+ // ZF = 1, CF = 0
+ memcpy(ucode[FLAGS_Z1C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C0][JZ][2] = IO | J;
+
+ // ZF = 1, CF = 1
+ memcpy(ucode[FLAGS_Z1C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C1][JC][2] = IO | J;
+ ucode[FLAGS_Z1C1][JZ][2] = IO | J;
+}
+
+char bufd[2];
+char bufa[8];
+int line_count = 0;
+int oneTime = -1;
+int addr = 0;
+void writeEEPROM(int address, byte data) {
+ for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
+ if (oneTime == -1) {
+ sprintf(bufd, "%02x ", data);
+ Serial.print(bufd);
+ }
+ oneTime++;
+ data = data >> 1;
+ }
+ oneTime = -1;
+
+ line_count++;
+ if (line_count % 8 == 0)
+ Serial.print(" ");
+ if (line_count % 16 == 0) {
+ Serial.println("");
+ addr = addr + 16;
+ // Serial.print(addr,HEX);
+ // Serial.print(": ");
+ sprintf(bufa, "%03x: ", addr);
+ Serial.print(bufa);
+ }
+}
+
+void setup() {
+ initUCode();
+ Serial.begin(9600);
+
+ Serial.print("Programming EEPROM");
+
+ for (int address = 0; address < 1024; address += 1) {
+ delayMicroseconds(1);
+ delay(10);
+
+ if (address % 64 == 0) {
+ Serial.print(".");
+ }
+ }
+
+ Serial.println(" done");
+
+ Serial.println("Reading EEPROM");
+
+ int zero = 0;
+ char buff[3];
+ sprintf(buff, "000: ", zero);
+ Serial.print(buff);
+
+ for (int address = 0; address < 1024; address += 1) {
+ int flags = (address & 0b1100000000) >> 8;
+ int byte_sel = (address & 0b0010000000) >> 7;
+ int instruction = (address & 0b0001111000) >> 3;
+ int step = (address & 0b0000000111);
+
+ if (byte_sel) {
+ writeEEPROM(address, ucode[flags][instruction][step]);
+ } else {
+ writeEEPROM(address, ucode[flags][instruction][step] >> 8);
+ }
+ }
+}
+
+
+void loop() {
+
+}
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino.standard.hex b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino.standard.hex
new file mode 100644
index 0000000..85c77bd
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino.standard.hex
@@ -0,0 +1,253 @@
+:100000000C9435000C945D000C945D000C945D0024
+:100010000C945D000C945D000C945D000C945D00EC
+:100020000C945D000C945D000C945D000C945D00DC
+:100030000C945D000C945D000C945D000C945D00CC
+:100040000C9492020C945D000C9460020C943A02A1
+:100050000C945D000C945D000C945D000C945D00AC
+:100060000C945D000C945D00220411241FBECFEFA0
+:10007000D8E0DEBFCDBF12E0A0E0B1E0EEE5FEE0EB
+:1000800002C005900D92A835B107D9F727E0A8E581
+:10009000B2E001C01D92AC30B207E1F710E0C5E359
+:1000A000D0E004C02197FE010E944F04C433D10761
+:1000B000C9F70E94DC020C942D070C940000AF924B
+:1000C000BF92CF92DF92EF92FF920F931F93CF9345
+:1000D000DF936C017B018B01040F151FEB015E01A7
+:1000E000AE18BF08C017D10759F06991D601ED913C
+:1000F000FC910190F081E02DC6010995892B79F7DB
+:10010000C501DF91CF911F910F91FF90EF90DF908C
+:10011000CF90BF90AF900895FC01538D448D252F53
+:1001200030E0842F90E0821B930B541710F0CF9691
+:10013000089501970895FC01918D828D981761F0C3
+:10014000A28DAE0FBF2FB11D5D968C91928D9F5FDA
+:100150009F73928F90E008958FEF9FEF0895FC01B9
+:10016000918D828D981731F0828DE80FF11D858D6C
+:1001700090E008958FEF9FEF0895FC01918D228DFF
+:10018000892F90E0805C9F4F821B91098F73992784
+:1001900008958FE696E00E94BD0021E0892B09F4C6
+:1001A00020E0822F089580E090E0892B29F00E94C2
+:1001B000C90081110C9400000895FC01A48DA80FC2
+:1001C000B92FB11DA35ABF4F2C91848D90E0019699
+:1001D0008F739927848FA689B7892C93A089B189B9
+:1001E0008C91837080648C93938D848D981306C05A
+:1001F0000288F389E02D80818F7D80830895EF92BE
+:10020000FF920F931F93CF93DF93EC0181E0888FD0
+:100210009B8D8C8D98131AC0E889F989808185FFA0
+:1002200015C09FB7F894EE89FF896083E889F98942
+:1002300080818370806480839FBF81E090E0DF9144
+:10024000CF911F910F91FF90EF900895F62E0B8D97
+:1002500010E00F5F1F4F0F731127E02E8C8D8E1152
+:100260000CC00FB607FCFACFE889F989808185FFB9
+:10027000F5CFCE010E94DD00F1CFEB8DEC0FFD2F0D
+:10028000F11DE35AFF4FF0829FB7F8940B8FEA8974
+:10029000FB8980818062CFCFCF93DF93EC01888D83
+:1002A0008823B9F0AA89BB89E889F9898C9185FDF1
+:1002B00003C0808186FD0DC00FB607FCF7CF8C917F
+:1002C00085FFF2CF808185FFEDCFCE010E94DD005A
+:1002D000E9CFDF91CF9108953FB7F89480915D0207
+:1002E00090915E02A0915F02B091600226B5A89B3A
+:1002F00005C02F3F19F00196A11DB11D3FBFBA2FB8
+:10030000A92F982F8827BC01CD01620F711D811D77
+:10031000911D42E0660F771F881F991F4A95D1F7FC
+:100320000895FC0101900020E9F73197AF01481BC7
+:10033000590BBC018FE696E00C945F00CF93DF93DE
+:100340000E949101EC0184E192E00E9491018C0FE6
+:100350009D1FDF91CF910895CF92DF92EF92FF9290
+:100360000F931F93CF93DF93C8E0D0E037E1E32EE4
+:1003700032E0F32E4DE6C42E46E0D42E082F10E0D6
+:1003800020910001309101012F3F3F4F91F41F92C6
+:100390008F93FF92EF92DF92CF920E9455048DE6E9
+:1003A00096E00E9491010F900F900F900F900F9088
+:1003B0000F908091000190910101019690930101AD
+:1003C00080930001C801959587952197B9F68FEF25
+:1003D0009FEF909301018093000180916B069091B3
+:1003E0006C06019690936C0680936B068770992734
+:1003F000892B21F48DE192E00E94910180916B069E
+:1004000090916C068F709927892B59F586E192E0BF
+:100410000E949E018091690690916A064096909391
+:100420006A06809369069F938F9380E292E09F9380
+:100430008F9381E696E09F938F930E9455040F90CF
+:100440000F900F900F900F900F9081E696E0DF9144
+:10045000CF911F910F91FF90EF90DF90CF900C9470
+:100460009101DF91CF911F910F91FF90EF90DF905D
+:10047000CF9008951F920F920FB60F9211242F93D1
+:100480003F934F935F936F937F938F939F93AF931C
+:10049000BF93EF93FF938FE696E00E94DD00FF91FC
+:1004A000EF91BF91AF919F918F917F916F915F91EC
+:1004B0004F913F912F910F900FBE0F901F90189565
+:1004C0001F920F920FB60F9211242F938F939F9329
+:1004D000EF93FF93E0917F06F09180068081E09199
+:1004E0008506F091860682FD1BC09081809188066A
+:1004F0008F5F8F7320918906821741F0E091880603
+:10050000F0E0E159F94F958F80938806FF91EF91C4
+:100510009F918F912F910F900FBE0F901F90189564
+:100520008081F4CF1F920F920FB60F9211242F9358
+:100530003F938F939F93AF93BF9380915902909174
+:100540005A02A0915B02B0915C023091580223E004
+:10055000230F2D3758F50196A11DB11D2093580288
+:100560008093590290935A02A0935B02B0935C026D
+:1005700080915D0290915E02A0915F02B091600255
+:100580000196A11DB11D80935D0290935E02A09320
+:100590005F02B0936002BF91AF919F918F913F91A5
+:1005A0002F910F900FBE0F901F90189526E8230FE4
+:1005B0000296A11DB11DD2CFCF93DF9300D01F9221
+:1005C000CDB7DEB7789484B5826084BD84B5816090
+:1005D00084BD85B5826085BD85B5816085BD80910E
+:1005E0006E00816080936E00109281008091810086
+:1005F000826080938100809181008160809381007E
+:10060000809180008160809380008091B10084603F
+:100610008093B1008091B00081608093B0008091A0
+:100620007A00846080937A0080917A00826080935F
+:100630007A0080917A00816080937A0080917A00BC
+:10064000806880937A001092C10080E0E4E1F1E0DC
+:10065000A1E6B2E001900D928A95E1F780E0E4E135
+:10066000F1E0A1E6B3E001900D928A95E1F782E016
+:1006700098E09093D6038093D50320E0E4E1F1E085
+:10068000A1E6B4E001900D922A95E1F79093E6047B
+:100690008093E50420E0E4E1F1E0A1E6B5E001901B
+:1006A0000D922A95E1F79093D6058093D505909306
+:1006B000E6058093E505E0917F06F091800682E0F3
+:1006C0008083E0917B06F0917C061082E0917D06AC
+:1006D000F0917E068FEC808310928706E09183066E
+:1006E000F091840686E08083E0918106F091820695
+:1006F000808180618083E0918106F0918206808113
+:1007000088608083E0918106F09182068081806814
+:100710008083E0918106F091820680818F7D8083C5
+:1007200087E292E00E94910110E000E00E946C01DB
+:100730004B015C016AE0C62ED12CE12CF12C0E9409
+:100740006C01681979098A099B09683E7340810523
+:100750009105A8F321E0C21AD108E108F10888EE5A
+:10076000880E83E0981EA11CB11CC114D104E104C1
+:10077000F10429F7C8018F739927892B21F48AE3A3
+:1007800092E00E9491010F5F1F4F011584E018074E
+:1007900069F68CE392E00E949E0182E492E00E945E
+:1007A0009E011F921F9281E592E09F938F938E018D
+:1007B0000F5F1F4F1F930F930E945504C8010E94A3
+:1007C00091010F900F900F900F900F900F9010E0ED
+:1007D00000E0E12FFF27E7FDFA95C80123E095959A
+:1007E00087952A95E1F78F70992734E0EE0FFF1F68
+:1007F0003A95E1F7E80FF91F43E0EE0FFF1F4A9526
+:10080000E1F7C80187709927E80FF91FEE0FFF1F66
+:10081000EF59FD4F9081818107FD892F0E94AC0126
+:100820000F5F1F4F011524E0120799F600E010E05A
+:1008300001151105E9F30E94C9008823C9F30E943C
+:100840000000F6CFEFE6F6E01382128288EE93E026
+:10085000A0E0B0E084839583A683B78386E091E02F
+:100860009183808385EC90E09587848784EC90E089
+:100870009787868780EC90E0918B808B81EC90E06D
+:10088000938B828B82EC90E0958B848B86EC90E04E
+:10089000978B868B118E128E138E148E0895EE0F09
+:1008A000FF1F0590F491E02D0994AEE0B0E0EBE578
+:1008B000F4E00C9404070D891E8986E08C831A836A
+:1008C00009838FEF9FE79E838D83AE01475E5F4F65
+:1008D0006F89788DCE0101960E9478042F8138852A
+:1008E000020F131FF80110822E96E4E00C942007EB
+:1008F000ABE0B0E0EEE7F4E00C94F6067C013B01DF
+:100900008A01FC0117821682838181FFC8C1CE0152
+:1009100001965C01F7019381F30193FD859193FFAB
+:1009200081913F01882309F453C1853239F493FD45
+:10093000859193FF81913F01853229F4B70190E0C1
+:100940000E946806E7CF912C212C312CFFE1F31592
+:1009500038F08B3211F190F4803209F1833229F1B1
+:1009600037FC3CC020ED280F2A3050F536FE20C061
+:100970008AE0989E200D1124922E06C08D3291F0AF
+:10098000803371F7689430F8F30193FD859193FFFC
+:1009900081913F018111DACF21C0689431F86894C8
+:1009A00032F8F2CF689433F8EFCF689434F8ECCF94
+:1009B000EAE02E9E200D1124222E689435F8E4CF13
+:1009C0008E3229F436FC04C1689436F8DDCF8C36BB
+:1009D00019F4689437F8D8CF8836B1F2982F9F7DF4
+:1009E00095549330E0F08336A1F18337C1F183351C
+:1009F00009F063C02801F2E04F0E511CF801C080DD
+:100A0000D180692D70E036FC02C06FEF7FEFC60128
+:100A10000E9452064C01689437F882010AC00C5FAC
+:100A20001F4FFFE3F98388248394912C6501E89498
+:100A300037F833FE2DC0522C8114910471F55520E6
+:100A400009F468CFB70180E290E00E9468065A94EA
+:100A5000F6CFF801808189830E5F1F4FE4CF280114
+:100A6000F2E04F0E511CF801C080D180692D70E07A
+:100A700036FC02C06FEF7FEFC6010E945D064C019D
+:100A80008201D5CFB70180E290E00E9468062A94E7
+:100A90002814190409F0B0F7CECFF60137FC859180
+:100AA00037FE81916F01B70190E00E9468065110F6
+:100AB0005A94F1E08F1A9108BFCF843619F0893625
+:100AC00009F077C0F80137FE6BC0608171818281C7
+:100AD00093810C5F1F4FF32DFF763F2E97FF09C0C8
+:100AE00090958095709561957F4F8F4F9F4F68943B
+:100AF00037F82AE030E0A5010E949806C82ECA18EF
+:100B00008C2C432C36FE0CC0E89440F8C91440F4F9
+:100B100034FE05C032FC03C0F32DFE7E4F2E892C1F
+:100B200044FE95C0FE01EC0DF11D8081803309F07B
+:100B300087C0242D297E422E842D8870582E43FC98
+:100B400095C040FE8FC09C2C821418F42C0C922C63
+:100B5000981844FE91C0B70180E390E00E946806B7
+:100B600042FE09C088E790E041FE02C088E590E0BF
+:100B7000B7010E946806C91408F48AC0CA94D12C2F
+:100B80009FEFC91AD90ACA0CDB1CF60182916F01CA
+:100B9000B70190E00E946806AC14BD04B1F74FCFD6
+:100BA00060817181072E000C880B990B0E5F1F4F1F
+:100BB00092CFD32CE894D4F82AE030E0853739F18D
+:100BC000232D297FD22E8F3601F148F48835A9F0E4
+:100BD000F701868197812B96E2E10C94120780370A
+:100BE00049F08837A9F7D4FE02C06894D2F820E112
+:100BF00030E00DC06894D4F8F6CF34FE03C0822FE5
+:100C00008660D82E20E132E002C028E030E0F80112
+:100C1000D7FE0FC060817181828193810C5F1F4F6D
+:100C2000A5010E949806C82ECA183D2CE89437F8F2
+:100C300067CF6081718190E080E00E5F1F4FF0CF41
+:100C400042FC02C0839478CF8394839475CF842D23
+:100C5000867809F471CFF6CFB70180E290E00E9468
+:100C6000680683948214C0F3512C73CF522C581809
+:100C7000821408F46ECFF8CF842D867809F47BCFE8
+:100C80008BE241FE80E247FC8DE2B70190E071CF3C
+:100C9000B70180E390E00E9468069A946CCF8FEFD2
+:100CA0009FEF99CFFC010590615070400110D8F77B
+:100CB000809590958E0F9F1F0895FC0161507040A4
+:100CC00001900110D8F7809590958E0F9F1F089581
+:100CD0000F931F93CF93DF93182F092FEB018B8175
+:100CE00081FD09C01FEF0FEF812F902FDF91CF9172
+:100CF0001F910F91089582FF14C02E813F818C8136
+:100D00009D81281739073CF4E881F981CF010196CC
+:100D10009983888310838E819F8101969F838E8320
+:100D2000E3CFE885F985812F0995892BA1F3DACFE7
+:100D3000FA01AA27283051F1203181F1E8946F930C
+:100D40006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED0B2
+:100D5000B4E03CD0670F781F891F9A1FA11D680F50
+:100D6000791F8A1F911DA11D6A0F711D811D911D83
+:100D7000A11D20D009F468943F912AE0269F1124F8
+:100D80003019305D3193DEF6CF010895462F47705C
+:100D9000405D4193B3E00FD0C9F7F6CF462F4F70B7
+:100DA000405D4A3318F0495D31FD4052419302D015
+:100DB000A9F7EACFB4E0A6959795879577956795BB
+:100DC000BA95C9F700976105710508959B01AC01BB
+:100DD0000A2E06945795479537952795BA95C9F7E2
+:100DE000620F731F841F951FA01D08952F923F92BD
+:100DF0004F925F926F927F928F929F92AF92BF922B
+:100E0000CF92DF92EF92FF920F931F93CF93DF93D6
+:100E1000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE33
+:100E2000CDBF09942A88398848885F846E847D8480
+:100E30008C849B84AA84B984C884DF80EE80FD8082
+:100E40000C811B81AA81B981CE0FD11D0FB6F894F8
+:0E0E5000DEBF0FBECDBFED010895F894FFCFB9
+:100E5E00FFFF00000000FF005F008C004C01BD0092
+:100E6E009B00AF00044008140000000000000000CA
+:100E7E0000000000044008140048001200000000AA
+:100E8E0000000000044008140048201081020000F9
+:100E9E00000000000440081400482010C1020000A9
+:100EAE00000000000440081400480021000000006B
+:100EBE000000000004400814000A000000000000BA
+:100ECE0000000000044008140208000000000000AA
+:100EDE0000000000044008140000000000000000A4
+:100EEE000000000004400814000000000000000094
+:100EFE000000000004400814000000000000000084
+:100F0E000000000004400814000000000000000073
+:100F1E000000000004400814000000000000000063
+:100F2E000000000004400814000000000000000053
+:100F3E000000000004400814000000000000000043
+:100F4E000000000004400814100100000000000022
+:100F5E0000000000044008140080000000000000A3
+:100F6E00000000000D0A00253032782000202000FD
+:100F7E00253033783A200050726F6772616D6D695B
+:100F8E006E6720454550524F4D002E0020646F6E07
+:100F9E00650052656164696E6720454550524F4D3C
+:080FAE00003030303A20000051
+:00000001FF
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino.with_bootloader.standard.hex b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino.with_bootloader.standard.hex
new file mode 100644
index 0000000..b98385f
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.ino.with_bootloader.standard.hex
@@ -0,0 +1,287 @@
+:020000040000FA
+:100000000C9435000C945D000C945D000C945D0024
+:100010000C945D000C945D000C945D000C945D00EC
+:100020000C945D000C945D000C945D000C945D00DC
+:100030000C945D000C945D000C945D000C945D00CC
+:100040000C9492020C945D000C9460020C943A02A1
+:100050000C945D000C945D000C945D000C945D00AC
+:100060000C945D000C945D00220411241FBECFEFA0
+:10007000D8E0DEBFCDBF12E0A0E0B1E0EEE5FEE0EB
+:1000800002C005900D92A835B107D9F727E0A8E581
+:10009000B2E001C01D92AC30B207E1F710E0C5E359
+:1000A000D0E004C02197FE010E944F04C433D10761
+:1000B000C9F70E94DC020C942D070C940000AF924B
+:1000C000BF92CF92DF92EF92FF920F931F93CF9345
+:1000D000DF936C017B018B01040F151FEB015E01A7
+:1000E000AE18BF08C017D10759F06991D601ED913C
+:1000F000FC910190F081E02DC6010995892B79F7DB
+:10010000C501DF91CF911F910F91FF90EF90DF908C
+:10011000CF90BF90AF900895FC01538D448D252F53
+:1001200030E0842F90E0821B930B541710F0CF9691
+:10013000089501970895FC01918D828D981761F0C3
+:10014000A28DAE0FBF2FB11D5D968C91928D9F5FDA
+:100150009F73928F90E008958FEF9FEF0895FC01B9
+:10016000918D828D981731F0828DE80FF11D858D6C
+:1001700090E008958FEF9FEF0895FC01918D228DFF
+:10018000892F90E0805C9F4F821B91098F73992784
+:1001900008958FE696E00E94BD0021E0892B09F4C6
+:1001A00020E0822F089580E090E0892B29F00E94C2
+:1001B000C90081110C9400000895FC01A48DA80FC2
+:1001C000B92FB11DA35ABF4F2C91848D90E0019699
+:1001D0008F739927848FA689B7892C93A089B189B9
+:1001E0008C91837080648C93938D848D981306C05A
+:1001F0000288F389E02D80818F7D80830895EF92BE
+:10020000FF920F931F93CF93DF93EC0181E0888FD0
+:100210009B8D8C8D98131AC0E889F989808185FFA0
+:1002200015C09FB7F894EE89FF896083E889F98942
+:1002300080818370806480839FBF81E090E0DF9144
+:10024000CF911F910F91FF90EF900895F62E0B8D97
+:1002500010E00F5F1F4F0F731127E02E8C8D8E1152
+:100260000CC00FB607FCFACFE889F989808185FFB9
+:10027000F5CFCE010E94DD00F1CFEB8DEC0FFD2F0D
+:10028000F11DE35AFF4FF0829FB7F8940B8FEA8974
+:10029000FB8980818062CFCFCF93DF93EC01888D83
+:1002A0008823B9F0AA89BB89E889F9898C9185FDF1
+:1002B00003C0808186FD0DC00FB607FCF7CF8C917F
+:1002C00085FFF2CF808185FFEDCFCE010E94DD005A
+:1002D000E9CFDF91CF9108953FB7F89480915D0207
+:1002E00090915E02A0915F02B091600226B5A89B3A
+:1002F00005C02F3F19F00196A11DB11D3FBFBA2FB8
+:10030000A92F982F8827BC01CD01620F711D811D77
+:10031000911D42E0660F771F881F991F4A95D1F7FC
+:100320000895FC0101900020E9F73197AF01481BC7
+:10033000590BBC018FE696E00C945F00CF93DF93DE
+:100340000E949101EC0184E192E00E9491018C0FE6
+:100350009D1FDF91CF910895CF92DF92EF92FF9290
+:100360000F931F93CF93DF93C8E0D0E037E1E32EE4
+:1003700032E0F32E4DE6C42E46E0D42E082F10E0D6
+:1003800020910001309101012F3F3F4F91F41F92C6
+:100390008F93FF92EF92DF92CF920E9455048DE6E9
+:1003A00096E00E9491010F900F900F900F900F9088
+:1003B0000F908091000190910101019690930101AD
+:1003C00080930001C801959587952197B9F68FEF25
+:1003D0009FEF909301018093000180916B069091B3
+:1003E0006C06019690936C0680936B068770992734
+:1003F000892B21F48DE192E00E94910180916B069E
+:1004000090916C068F709927892B59F586E192E0BF
+:100410000E949E018091690690916A064096909391
+:100420006A06809369069F938F9380E292E09F9380
+:100430008F9381E696E09F938F930E9455040F90CF
+:100440000F900F900F900F900F9081E696E0DF9144
+:10045000CF911F910F91FF90EF90DF90CF900C9470
+:100460009101DF91CF911F910F91FF90EF90DF905D
+:10047000CF9008951F920F920FB60F9211242F93D1
+:100480003F934F935F936F937F938F939F93AF931C
+:10049000BF93EF93FF938FE696E00E94DD00FF91FC
+:1004A000EF91BF91AF919F918F917F916F915F91EC
+:1004B0004F913F912F910F900FBE0F901F90189565
+:1004C0001F920F920FB60F9211242F938F939F9329
+:1004D000EF93FF93E0917F06F09180068081E09199
+:1004E0008506F091860682FD1BC09081809188066A
+:1004F0008F5F8F7320918906821741F0E091880603
+:10050000F0E0E159F94F958F80938806FF91EF91C4
+:100510009F918F912F910F900FBE0F901F90189564
+:100520008081F4CF1F920F920FB60F9211242F9358
+:100530003F938F939F93AF93BF9380915902909174
+:100540005A02A0915B02B0915C023091580223E004
+:10055000230F2D3758F50196A11DB11D2093580288
+:100560008093590290935A02A0935B02B0935C026D
+:1005700080915D0290915E02A0915F02B091600255
+:100580000196A11DB11D80935D0290935E02A09320
+:100590005F02B0936002BF91AF919F918F913F91A5
+:1005A0002F910F900FBE0F901F90189526E8230FE4
+:1005B0000296A11DB11DD2CFCF93DF9300D01F9221
+:1005C000CDB7DEB7789484B5826084BD84B5816090
+:1005D00084BD85B5826085BD85B5816085BD80910E
+:1005E0006E00816080936E00109281008091810086
+:1005F000826080938100809181008160809381007E
+:10060000809180008160809380008091B10084603F
+:100610008093B1008091B00081608093B0008091A0
+:100620007A00846080937A0080917A00826080935F
+:100630007A0080917A00816080937A0080917A00BC
+:10064000806880937A001092C10080E0E4E1F1E0DC
+:10065000A1E6B2E001900D928A95E1F780E0E4E135
+:10066000F1E0A1E6B3E001900D928A95E1F782E016
+:1006700098E09093D6038093D50320E0E4E1F1E085
+:10068000A1E6B4E001900D922A95E1F79093E6047B
+:100690008093E50420E0E4E1F1E0A1E6B5E001901B
+:1006A0000D922A95E1F79093D6058093D505909306
+:1006B000E6058093E505E0917F06F091800682E0F3
+:1006C0008083E0917B06F0917C061082E0917D06AC
+:1006D000F0917E068FEC808310928706E09183066E
+:1006E000F091840686E08083E0918106F091820695
+:1006F000808180618083E0918106F0918206808113
+:1007000088608083E0918106F09182068081806814
+:100710008083E0918106F091820680818F7D8083C5
+:1007200087E292E00E94910110E000E00E946C01DB
+:100730004B015C016AE0C62ED12CE12CF12C0E9409
+:100740006C01681979098A099B09683E7340810523
+:100750009105A8F321E0C21AD108E108F10888EE5A
+:10076000880E83E0981EA11CB11CC114D104E104C1
+:10077000F10429F7C8018F739927892B21F48AE3A3
+:1007800092E00E9491010F5F1F4F011584E018074E
+:1007900069F68CE392E00E949E0182E492E00E945E
+:1007A0009E011F921F9281E592E09F938F938E018D
+:1007B0000F5F1F4F1F930F930E945504C8010E94A3
+:1007C00091010F900F900F900F900F900F9010E0ED
+:1007D00000E0E12FFF27E7FDFA95C80123E095959A
+:1007E00087952A95E1F78F70992734E0EE0FFF1F68
+:1007F0003A95E1F7E80FF91F43E0EE0FFF1F4A9526
+:10080000E1F7C80187709927E80FF91FEE0FFF1F66
+:10081000EF59FD4F9081818107FD892F0E94AC0126
+:100820000F5F1F4F011524E0120799F600E010E05A
+:1008300001151105E9F30E94C9008823C9F30E943C
+:100840000000F6CFEFE6F6E01382128288EE93E026
+:10085000A0E0B0E084839583A683B78386E091E02F
+:100860009183808385EC90E09587848784EC90E089
+:100870009787868780EC90E0918B808B81EC90E06D
+:10088000938B828B82EC90E0958B848B86EC90E04E
+:10089000978B868B118E128E138E148E0895EE0F09
+:1008A000FF1F0590F491E02D0994AEE0B0E0EBE578
+:1008B000F4E00C9404070D891E8986E08C831A836A
+:1008C00009838FEF9FE79E838D83AE01475E5F4F65
+:1008D0006F89788DCE0101960E9478042F8138852A
+:1008E000020F131FF80110822E96E4E00C942007EB
+:1008F000ABE0B0E0EEE7F4E00C94F6067C013B01DF
+:100900008A01FC0117821682838181FFC8C1CE0152
+:1009100001965C01F7019381F30193FD859193FFAB
+:1009200081913F01882309F453C1853239F493FD45
+:10093000859193FF81913F01853229F4B70190E0C1
+:100940000E946806E7CF912C212C312CFFE1F31592
+:1009500038F08B3211F190F4803209F1833229F1B1
+:1009600037FC3CC020ED280F2A3050F536FE20C061
+:100970008AE0989E200D1124922E06C08D3291F0AF
+:10098000803371F7689430F8F30193FD859193FFFC
+:1009900081913F018111DACF21C0689431F86894C8
+:1009A00032F8F2CF689433F8EFCF689434F8ECCF94
+:1009B000EAE02E9E200D1124222E689435F8E4CF13
+:1009C0008E3229F436FC04C1689436F8DDCF8C36BB
+:1009D00019F4689437F8D8CF8836B1F2982F9F7DF4
+:1009E00095549330E0F08336A1F18337C1F183351C
+:1009F00009F063C02801F2E04F0E511CF801C080DD
+:100A0000D180692D70E036FC02C06FEF7FEFC60128
+:100A10000E9452064C01689437F882010AC00C5FAC
+:100A20001F4FFFE3F98388248394912C6501E89498
+:100A300037F833FE2DC0522C8114910471F55520E6
+:100A400009F468CFB70180E290E00E9468065A94EA
+:100A5000F6CFF801808189830E5F1F4FE4CF280114
+:100A6000F2E04F0E511CF801C080D180692D70E07A
+:100A700036FC02C06FEF7FEFC6010E945D064C019D
+:100A80008201D5CFB70180E290E00E9468062A94E7
+:100A90002814190409F0B0F7CECFF60137FC859180
+:100AA00037FE81916F01B70190E00E9468065110F6
+:100AB0005A94F1E08F1A9108BFCF843619F0893625
+:100AC00009F077C0F80137FE6BC0608171818281C7
+:100AD00093810C5F1F4FF32DFF763F2E97FF09C0C8
+:100AE00090958095709561957F4F8F4F9F4F68943B
+:100AF00037F82AE030E0A5010E949806C82ECA18EF
+:100B00008C2C432C36FE0CC0E89440F8C91440F4F9
+:100B100034FE05C032FC03C0F32DFE7E4F2E892C1F
+:100B200044FE95C0FE01EC0DF11D8081803309F07B
+:100B300087C0242D297E422E842D8870582E43FC98
+:100B400095C040FE8FC09C2C821418F42C0C922C63
+:100B5000981844FE91C0B70180E390E00E946806B7
+:100B600042FE09C088E790E041FE02C088E590E0BF
+:100B7000B7010E946806C91408F48AC0CA94D12C2F
+:100B80009FEFC91AD90ACA0CDB1CF60182916F01CA
+:100B9000B70190E00E946806AC14BD04B1F74FCFD6
+:100BA00060817181072E000C880B990B0E5F1F4F1F
+:100BB00092CFD32CE894D4F82AE030E0853739F18D
+:100BC000232D297FD22E8F3601F148F48835A9F0E4
+:100BD000F701868197812B96E2E10C94120780370A
+:100BE00049F08837A9F7D4FE02C06894D2F820E112
+:100BF00030E00DC06894D4F8F6CF34FE03C0822FE5
+:100C00008660D82E20E132E002C028E030E0F80112
+:100C1000D7FE0FC060817181828193810C5F1F4F6D
+:100C2000A5010E949806C82ECA183D2CE89437F8F2
+:100C300067CF6081718190E080E00E5F1F4FF0CF41
+:100C400042FC02C0839478CF8394839475CF842D23
+:100C5000867809F471CFF6CFB70180E290E00E9468
+:100C6000680683948214C0F3512C73CF522C581809
+:100C7000821408F46ECFF8CF842D867809F47BCFE8
+:100C80008BE241FE80E247FC8DE2B70190E071CF3C
+:100C9000B70180E390E00E9468069A946CCF8FEFD2
+:100CA0009FEF99CFFC010590615070400110D8F77B
+:100CB000809590958E0F9F1F0895FC0161507040A4
+:100CC00001900110D8F7809590958E0F9F1F089581
+:100CD0000F931F93CF93DF93182F092FEB018B8175
+:100CE00081FD09C01FEF0FEF812F902FDF91CF9172
+:100CF0001F910F91089582FF14C02E813F818C8136
+:100D00009D81281739073CF4E881F981CF010196CC
+:100D10009983888310838E819F8101969F838E8320
+:100D2000E3CFE885F985812F0995892BA1F3DACFE7
+:100D3000FA01AA27283051F1203181F1E8946F930C
+:100D40006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED0B2
+:100D5000B4E03CD0670F781F891F9A1FA11D680F50
+:100D6000791F8A1F911DA11D6A0F711D811D911D83
+:100D7000A11D20D009F468943F912AE0269F1124F8
+:100D80003019305D3193DEF6CF010895462F47705C
+:100D9000405D4193B3E00FD0C9F7F6CF462F4F70B7
+:100DA000405D4A3318F0495D31FD4052419302D015
+:100DB000A9F7EACFB4E0A6959795879577956795BB
+:100DC000BA95C9F700976105710508959B01AC01BB
+:100DD0000A2E06945795479537952795BA95C9F7E2
+:100DE000620F731F841F951FA01D08952F923F92BD
+:100DF0004F925F926F927F928F929F92AF92BF922B
+:100E0000CF92DF92EF92FF920F931F93CF93DF93D6
+:100E1000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE33
+:100E2000CDBF09942A88398848885F846E847D8480
+:100E30008C849B84AA84B984C884DF80EE80FD8082
+:100E40000C811B81AA81B981CE0FD11D0FB6F894F8
+:100E5000DEBF0FBECDBFED010895F894FFCFFFFFB9
+:100E600000000000FF005F008C004C01BD009B00F3
+:100E7000AF00044008140000000000000000000063
+:100E800000000440081400480012000000000000A8
+:100E900000000440081400482010810200000000F7
+:100EA00000000440081400482010C10200000000A7
+:100EB0000000044008140048002100000000000069
+:100EC000000004400814000A0000000000000000B8
+:100ED00000000440081402080000000000000000A8
+:100EE00000000440081400000000000000000000A2
+:100EF0000000044008140000000000000000000092
+:100F00000000044008140000000000000000000081
+:100F10000000044008140000000000000000000071
+:100F20000000044008140000000000000000000061
+:100F30000000044008140000000000000000000051
+:100F40000000044008140000000000000000000041
+:100F50000000044008141001000000000000000020
+:100F600000000440081400800000000000000000A1
+:100F700000000D0A002530327820002020002530A6
+:100F800033783A200050726F6772616D6D696E67D9
+:100F900020454550524F4D002E0020646F6E650075
+:100FA00052656164696E6720454550524F4D00306F
+:060FB00030303A20000081
+:107E0000112484B714BE81FFF0D085E080938100F7
+:107E100082E08093C00088E18093C10086E0809377
+:107E2000C20080E18093C4008EE0C9D0259A86E02C
+:107E300020E33CEF91E0309385002093840096BBD3
+:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4
+:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7
+:107E6000A2D0813461F49FD0082FAFD0023811F036
+:107E7000013811F484E001C083E08DD089C08234E0
+:107E800011F484E103C0853419F485E0A6D080C0E4
+:107E9000853579F488D0E82EFF2485D0082F10E0AE
+:107EA000102F00270E291F29000F111F8ED06801E7
+:107EB0006FC0863521F484E090D080E0DECF843638
+:107EC00009F040C070D06FD0082F6DD080E0C81688
+:107ED00080E7D80618F4F601B7BEE895C0E0D1E017
+:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8
+:107EF00018F0F601B7BEE89568D007B600FCFDCFD4
+:107F0000A601A0E0B1E02C9130E011968C91119780
+:107F100090E0982F8827822B932B1296FA010C0160
+:107F200087BEE89511244E5F5F4FF1E0A038BF0790
+:107F300051F7F601A7BEE89507B600FCFDCF97BE46
+:107F4000E89526C08437B1F42ED02DD0F82E2BD052
+:107F50003CD0F601EF2C8F010F5F1F4F84911BD097
+:107F6000EA94F801C1F70894C11CD11CFA94CF0C13
+:107F7000D11C0EC0853739F428D08EE10CD085E9AC
+:107F80000AD08FE07ACF813511F488E018D01DD067
+:107F900080E101D065CF982F8091C00085FFFCCF94
+:107FA0009093C60008958091C00087FFFCCF809118
+:107FB000C00084FD01C0A8958091C6000895E0E648
+:107FC000F0E098E1908380830895EDDF803219F02E
+:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA
+:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6
+:047FF000FF270994CA
+:027FFE00040479
+:00000001FF
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.pdsprj b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.pdsprj
new file mode 100644
index 0000000..e389b6a
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.pdsprj differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace
new file mode 100644
index 0000000..cee254b
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_FORMATTED/microcode-eeprom-with-flags_FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace
@@ -0,0 +1,151 @@
+
+
+
+ 2c0000000200000003000000ffffffffffffffffffffffffffffffff6900000000000000540300007c020000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 279
+ - No
+ - 100
+ - 100
+
+
+
+
+ - 87
+ - No
+ - Yes
+ - 87
+ - Yes
+ - No
+ - No
+ - Yes
+ - 0
+ - 87
+ - 100
+ - 87
+ - 0
+
+
+
+
+
+
+
+
+
+
+ - 0
+ - 0
+
+
+
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000100
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000020
+
+
+
+
+ - No
+ - Yes
+ - No
+ - No
+ - Yes
+ - No
+ - 0
+
+
+
+
+ - 608
+ - No
+ - Yes
+ - 608
+ - Yes
+ - Yes
+ - No
+ - No
+ - No
+ - 0
+ - 608
+ - 100
+ - 0
+
+
+
+
+
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/Backup Of microcode-eeprom-with-flags_NOT_FORMATTED.pdsbak b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/Backup Of microcode-eeprom-with-flags_NOT_FORMATTED.pdsbak
new file mode 100644
index 0000000..f5c83be
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/Backup Of microcode-eeprom-with-flags_NOT_FORMATTED.pdsbak differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/Last Loaded microcode-eeprom-with-flags_NOT_FORMATTED.pdsbak b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/Last Loaded microcode-eeprom-with-flags_NOT_FORMATTED.pdsbak
new file mode 100644
index 0000000..2fcf0ec
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/Last Loaded microcode-eeprom-with-flags_NOT_FORMATTED.pdsbak differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino
new file mode 100644
index 0000000..db78f94
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino
@@ -0,0 +1,110 @@
+#define EEPROM_D0 5
+#define EEPROM_D7 12
+
+#define HLT 0b1000000000000000 // Halt clock
+#define MI 0b0100000000000000 // Memory address register in
+#define RI 0b0010000000000000 // RAM data in
+#define RO 0b0001000000000000 // RAM data out
+#define IO 0b0000100000000000 // Instruction register out
+#define II 0b0000010000000000 // Instruction register in
+#define AI 0b0000001000000000 // A register in
+#define AO 0b0000000100000000 // A register out
+#define EO 0b0000000010000000 // ALU out
+#define SU 0b0000000001000000 // ALU subtract
+#define BI 0b0000000000100000 // B register in
+#define OI 0b0000000000010000 // Output register in
+#define CE 0b0000000000001000 // Program counter enable
+#define CO 0b0000000000000100 // Program counter out
+#define J 0b0000000000000010 // Jump (program counter in)
+#define FI 0b0000000000000001 // Flags in
+
+#define FLAGS_Z0C0 0
+#define FLAGS_Z0C1 1
+#define FLAGS_Z1C0 2
+#define FLAGS_Z1C1 3
+
+#define JC 0b0111
+#define JZ 0b1000
+
+uint16_t UCODE_TEMPLATE[16][8] = {
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0000 - NOP
+ { MI|CO, RO|II|CE, IO|MI, RO|AI, 0, 0, 0, 0 }, // 0001 - LDA
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|FI, 0, 0, 0 }, // 0010 - ADD
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|SU|FI, 0, 0, 0 }, // 0011 - SUB
+ { MI|CO, RO|II|CE, IO|MI, AO|RI, 0, 0, 0, 0 }, // 0100 - STA
+ { MI|CO, RO|II|CE, IO|AI, 0, 0, 0, 0, 0 }, // 0101 - LDI
+ { MI|CO, RO|II|CE, IO|J, 0, 0, 0, 0, 0 }, // 0110 - JMP
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0111 - JC
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1000 - JZ
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1001
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1010
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1011
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1100
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1101
+ { MI|CO, RO|II|CE, AO|OI, 0, 0, 0, 0, 0 }, // 1110 - OUT
+ { MI|CO, RO|II|CE, HLT, 0, 0, 0, 0, 0 }, // 1111 - HLT
+};
+
+uint16_t ucode[4][16][8];
+
+void initUCode() {
+ // ZF = 0, CF = 0
+ memcpy(ucode[FLAGS_Z0C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+
+ // ZF = 0, CF = 1
+ memcpy(ucode[FLAGS_Z0C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z0C1][JC][2] = IO | J;
+
+ // ZF = 1, CF = 0
+ memcpy(ucode[FLAGS_Z1C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C0][JZ][2] = IO | J;
+
+ // ZF = 1, CF = 1
+ memcpy(ucode[FLAGS_Z1C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C1][JC][2] = IO | J;
+ ucode[FLAGS_Z1C1][JZ][2] = IO | J;
+}
+
+char bufd[2];
+char bufa[3];
+int line_count = 0;
+int oneTime = -1;
+int addr = 0;
+void writeEEPROM(int address, byte data) {
+ for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
+ if (oneTime == -1) {
+ sprintf(bufd, "%02x ", data);
+ Serial.print(bufd);
+ }
+ oneTime++;
+ data = data >> 1;
+ }
+ oneTime = -1;
+
+ line_count++;
+ if (line_count % 8 == 0)
+ Serial.println("");
+}
+
+void setup() {
+ initUCode();
+ Serial.begin(9600);
+
+ for (int address = 0; address < 1024; address += 1) {
+ int flags = (address & 0b1100000000) >> 8;
+ int byte_sel = (address & 0b0010000000) >> 7;
+ int instruction = (address & 0b0001111000) >> 3;
+ int step = (address & 0b0000000111);
+
+ if (byte_sel) {
+ writeEEPROM(address, ucode[flags][instruction][step]);
+ } else {
+ writeEEPROM(address, ucode[flags][instruction][step] >> 8);
+ }
+ }
+}
+
+
+void loop() {
+
+}
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino.standard.hex b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino.standard.hex
new file mode 100644
index 0000000..a46dd35
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino.standard.hex
@@ -0,0 +1,226 @@
+:100000000C9435000C945D000C945D000C945D0024
+:100010000C945D000C945D000C945D000C945D00EC
+:100020000C945D000C945D000C945D000C945D00DC
+:100030000C945D000C945D000C945D000C945D00CC
+:100040000C94E0010C945D000C9450020C942A0274
+:100050000C945D000C945D000C945D000C945D00AC
+:100060000C945D000C945D00690311241FBECFEF5A
+:10007000D8E0DEBFCDBF12E0A0E0B1E0ECEEFCE0E6
+:1000800002C005900D92AE31B107D9F726E0AEE17E
+:10009000B2E001C01D92A83CB207E1F710E0C5E351
+:1000A000D0E004C02197FE010E949603C433D1071B
+:1000B000C9F70E9482020C9474060C940000AF925F
+:1000C000BF92CF92DF92EF92FF920F931F93CF9345
+:1000D000DF936C017B018B01040F151FEB015E01A7
+:1000E000AE18BF08C017D10759F06991D601ED913C
+:1000F000FC910190F081E02DC6010995892B79F7DB
+:10010000C501DF91CF911F910F91FF90EF90DF908C
+:10011000CF90BF90AF900895FC01538D448D252F53
+:1001200030E0842F90E0821B930B541710F0CF9691
+:10013000089501970895FC01918D828D981761F0C3
+:10014000A28DAE0FBF2FB11D5D968C91928D9F5FDA
+:100150009F73928F90E008958FEF9FEF0895FC01B9
+:10016000918D828D981731F0828DE80FF11D858D6C
+:1001700090E008958FEF9FEF0895FC01918D228DFF
+:10018000892F90E0805C9F4F821B91098F73992784
+:1001900008958BE296E00E94BD0021E0892B09F4CE
+:1001A00020E0822F089580E090E0892B29F00E94C2
+:1001B000C90081110C9400000895FC01A48DA80FC2
+:1001C000B92FB11DA35ABF4F2C91848D90E0019699
+:1001D0008F739927848FA689B7892C93A089B189B9
+:1001E0008C91837080648C93938D848D981306C05A
+:1001F0000288F389E02D80818F7D80830895EF92BE
+:10020000FF920F931F93CF93DF93EC0181E0888FD0
+:100210009B8D8C8D98131AC0E889F989808185FFA0
+:1002200015C09FB7F894EE89FF896083E889F98942
+:1002300080818370806480839FBF81E090E0DF9144
+:10024000CF911F910F91FF90EF900895F62E0B8D97
+:1002500010E00F5F1F4F0F731127E02E8C8D8E1152
+:100260000CC00FB607FCFACFE889F989808185FFB9
+:10027000F5CFCE010E94DD00F1CFEB8DEC0FFD2F0D
+:10028000F11DE35AFF4FF0829FB7F8940B8FEA8974
+:10029000FB8980818062CFCFCF93DF93EC01888D83
+:1002A0008823B9F0AA89BB89E889F9898C9185FDF1
+:1002B00003C0808186FD0DC00FB607FCF7CF8C917F
+:1002C00085FFF2CF808185FFEDCFCE010E94DD005A
+:1002D000E9CFDF91CF910895FC0101900020E9F76B
+:1002E0003197AF01481B590BBC018BE296E00C948F
+:1002F0005F00CF92DF92EF92FF920F931F93CF9305
+:10030000DF93C8E0D0E034E1E32E32E0F32E49E29F
+:10031000C42E46E0D42E082F10E020910001309129
+:1003200001012F3F3F4F91F41F928F93FF92EF9265
+:10033000DF92CF920E949C0389E296E00E946C01BA
+:100340000F900F900F900F900F900F9080910001E1
+:100350009091010101969093010180930001C801E1
+:10036000959587952197B9F68FEF9FEF90930101AF
+:100370008093000180912706909128060196909322
+:1003800028068093270687709927892B81F48CE1B2
+:1003900092E00E946C018AE192E0DF91CF911F917F
+:1003A0000F91FF90EF90DF90CF900C946C01DF9154
+:1003B000CF911F910F91FF90EF90DF90CF90089514
+:1003C0001F920F920FB60F9211242F933F938F938A
+:1003D0009F93AF93BF938091230690912406A091A1
+:1003E0002506B09126063091220623E0230F2D37F3
+:1003F00058F50196A11DB11D209322068093230676
+:1004000090932406A0932506B093260680911E069D
+:1004100090911F06A0912006B09121060196A11D82
+:10042000B11D80931E0690931F06A0932006B093E3
+:100430002106BF91AF919F918F913F912F910F9086
+:100440000FBE0F901F90189526E8230F0296A11D4E
+:10045000B11DD2CF1F920F920FB60F9211242F937E
+:100460003F934F935F936F937F938F939F93AF933C
+:10047000BF93EF93FF938BE296E00E94DD00FF9124
+:10048000EF91BF91AF919F918F917F916F915F910C
+:100490004F913F912F910F900FBE0F901F90189585
+:1004A0001F920F920FB60F9211242F938F939F9349
+:1004B000EF93FF93E0913B06F0913C068081E09141
+:1004C0004106F091420682FD1BC090818091440656
+:1004D0008F5F8F7320914506821741F0E0914406AB
+:1004E000F0E0E55DF94F958F80934406FF91EF9121
+:1004F0009F918F912F910F900FBE0F901F90189585
+:100500008081F4CF789484B5826084BD84B58160A5
+:1005100084BD85B5826085BD85B5816085BD8091CE
+:100520006E00816080936E00109281008091810046
+:10053000826080938100809181008160809381003E
+:10054000809180008160809380008091B100846000
+:100550008093B1008091B00081608093B000809161
+:100560007A00846080937A0080917A008260809320
+:100570007A0080917A00816080937A0080917A007D
+:10058000806880937A001092C10080E0E4E1F1E09D
+:10059000AEE1B2E001900D928A95E1F780E0E4E1EE
+:1005A000F1E0AEE1B3E001900D928A95E1F782E0CF
+:1005B00098E0909393038093920320E0E4E1F1E0CC
+:1005C000AEE1B4E001900D922A95E1F79093A30477
+:1005D0008093A20420E0E4E1F1E0AEE1B5E0019017
+:1005E0000D922A95E1F7909393058093920590934D
+:1005F000A3058093A205E0913B06F0913C0682E0C2
+:100600008083E0913706F09138061082E091390638
+:10061000F0913A068FEC808310924306E0913F06FA
+:10062000F091400686E08083E0913D06F0913E0621
+:10063000808180618083E0913D06F0913E0680815B
+:1006400088608083E0913D06F0913E06808180685D
+:100650008083E0913D06F0913E0680818F7D80830E
+:10066000D0E0C0E0ED2FFF27E7FDFA95CE0123E0B3
+:10067000959587952A95E1F78F70992734E0EE0FCD
+:10068000FF1F3A95E1F7E80FF91F43E0EE0FFF1F58
+:100690004A95E1F7CE0187709927E80FF91FEE0F11
+:1006A000FF1FE25EFD4F90818181C7FD892F0E946F
+:1006B00079012196C11584E0D807A1F6C0E0D0E009
+:1006C0002097F1F30E94C9008823D1F30E94000013
+:1006D000F7CFEBE2F6E01382128288EE93E0A0E01F
+:1006E000B0E084839583A683B78386E091E091830D
+:1006F000808385EC90E09587848784EC90E09787F1
+:10070000868780EC90E0918B808B81EC90E0938BDE
+:10071000828B82EC90E0958B848B86EC90E0978BBB
+:10072000868B118E128E138E148E0895EE0FFF1F7E
+:100730000590F491E02D0994AEE0B0E0E2EAF3E038
+:100740000C944B060D891E8986E08C831A830983DD
+:100750008FEF9FE79E838D83AE01475E5F4F6F896A
+:10076000788DCE0101960E94BF032F813885020F3C
+:10077000131FF80110822E96E4E00C946706ABE09C
+:10078000B0E0E5ECF3E00C943D067C013B018A010E
+:10079000FC0117821682838181FFC8C1CE010196B8
+:1007A0005C01F7019381F30193FD859193FF8191A2
+:1007B0003F01882309F453C1853239F493FD8591B3
+:1007C00093FF81913F01853229F4B70190E00E94A7
+:1007D000AF05E7CF912C212C312CFFE1F31538F038
+:1007E0008B3211F190F4803209F1833229F137FC18
+:1007F0003CC020ED280F2A3050F536FE20C08AE09C
+:10080000989E200D1124922E06C08D3291F08033D7
+:1008100071F7689430F8F30193FD859193FF81910E
+:100820003F018111DACF21C0689431F8689432F821
+:10083000F2CF689433F8EFCF689434F8ECCFEAE065
+:100840002E9E200D1124222E689435F8E4CF8E328E
+:1008500029F436FC04C1689436F8DDCF8C3619F4DF
+:10086000689437F8D8CF8836B1F2982F9F7D955489
+:100870009330E0F08336A1F18337C1F1833509F07D
+:1008800063C02801F2E04F0E511CF801C080D180F6
+:10089000692D70E036FC02C06FEF7FEFC6010E9449
+:1008A00099054C01689437F882010AC00C5F1F4F0C
+:1008B000FFE3F98388248394912C6501E89437F849
+:1008C00033FE2DC0522C8114910471F5552009F48A
+:1008D00068CFB70180E290E00E94AF055A94F6CF4E
+:1008E000F801808189830E5F1F4FE4CF2801F2E079
+:1008F0004F0E511CF801C080D180692D70E036FC8C
+:1009000002C06FEF7FEFC6010E94A4054C01820177
+:10091000D5CFB70180E290E00E94AF052A94281459
+:10092000190409F0B0F7CECFF60137FC859137FEF8
+:1009300081916F01B70190E00E94AF0551105A9468
+:10094000F1E08F1A9108BFCF843619F0893609F08B
+:1009500077C0F80137FE6BC060817181828193811D
+:100960000C5F1F4FF32DFF763F2E97FF09C0909528
+:100970008095709561957F4F8F4F9F4F689437F8A2
+:100980002AE030E0A5010E94DF05C82ECA188C2C91
+:10099000432C36FE0CC0E89440F8C91440F434FEF1
+:1009A00005C032FC03C0F32DFE7E4F2E892C44FE81
+:1009B00095C0FE01EC0DF11D8081803309F087C0E8
+:1009C000242D297E422E842D8870582E43FC95C0FC
+:1009D00040FE8FC09C2C821418F42C0C922C98187A
+:1009E00044FE91C0B70180E390E00E94AF0542FE53
+:1009F00009C088E790E041FE02C088E590E0B701B9
+:100A00000E94AF05C91408F48AC0CA94D12C9FEF84
+:100A1000C91AD90ACA0CDB1CF60182916F01B70111
+:100A200090E00E94AF05AC14BD04B1F74FCF6081D8
+:100A30007181072E000C880B990B0E5F1F4F92CF10
+:100A4000D32CE894D4F82AE030E0853739F1232D0F
+:100A5000297FD22E8F3601F148F48835A9F0F701AD
+:100A6000868197812B96E2E10C945906803749F0F4
+:100A70008837A9F7D4FE02C06894D2F820E130E0AC
+:100A80000DC06894D4F8F6CF34FE03C0822F866080
+:100A9000D82E20E132E002C028E030E0F801D7FE95
+:100AA0000FC060817181828193810C5F1F4FA5010E
+:100AB0000E94DF05C82ECA183D2CE89437F867CF8E
+:100AC0006081718190E080E00E5F1F4FF0CF42FCAB
+:100AD00002C0839478CF8394839475CF842D8678D5
+:100AE00009F471CFF6CFB70180E290E00E94AF0524
+:100AF00083948214C0F3512C73CF522C5818821453
+:100B000008F46ECFF8CF842D867809F47BCF8BE282
+:100B100041FE80E247FC8DE2B70190E071CFB70162
+:100B200080E390E00E94AF059A946CCF8FEF9FEF27
+:100B300099CFFC010590615070400110D8F7809565
+:100B400090958E0F9F1F0895FC0161507040019099
+:100B50000110D8F7809590958E0F9F1F08950F93E1
+:100B60001F93CF93DF93182F092FEB018B8181FD0A
+:100B700009C01FEF0FEF812F902FDF91CF911F91B1
+:100B80000F91089582FF14C02E813F818C819D8139
+:100B9000281739073CF4E881F981CF010196998340
+:100BA000888310838E819F8101969F838E83E3CFFC
+:100BB000E885F985812F0995892BA1F3DACFFA0110
+:100BC000AA27283051F1203181F1E8946F936E7F8C
+:100BD0006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E07D
+:100BE0003CD0670F781F891F9A1FA11D680F791FBE
+:100BF0008A1F911DA11D6A0F711D811D911DA11DCF
+:100C000020D009F468943F912AE0269F11243019DE
+:100C1000305D3193DEF6CF010895462F4770405D79
+:100C20004193B3E00FD0C9F7F6CF462F4F70405D28
+:100C30004A3318F0495D31FD4052419302D0A9F783
+:100C4000EACFB4E0A6959795879577956795BA957D
+:100C5000C9F700976105710508959B01AC010A2E43
+:100C600006945795479537952795BA95C9F7620F1A
+:100C7000731F841F951FA01D08952F923F924F92BE
+:100C80005F926F927F928F929F92AF92BF92CF921C
+:100C9000DF92EF92FF920F931F93CF93DF93CDB725
+:100CA000DEB7CA1BDB0B0FB6F894DEBF0FBECDBF9D
+:100CB00009942A88398848885F846E847D848C846E
+:100CC0009B84AA84B984C884DF80EE80FD800C8177
+:100CD0001B81AA81B981CE0FD11D0FB6F894DEBF5A
+:0C0CE0000FBECDBFED010895F894FFCFCA
+:100CEC00FFFF00000000FF005F008C004C01BD0006
+:100CFC009B00AF000440081400000000000000003E
+:100D0C00000000000440081400480012000000001D
+:100D1C00000000000440081400482010810200006C
+:100D2C00000000000440081400482010C10200001C
+:100D3C0000000000044008140048002100000000DE
+:100D4C000000000004400814000A0000000000002D
+:100D5C00000000000440081402080000000000001D
+:100D6C000000000004400814000000000000000017
+:100D7C000000000004400814000000000000000007
+:100D8C0000000000044008140000000000000000F7
+:100D9C0000000000044008140000000000000000E7
+:100DAC0000000000044008140000000000000000D7
+:100DBC0000000000044008140000000000000000C7
+:100DCC0000000000044008140000000000000000B7
+:100DDC000000000004400814100100000000000096
+:100DEC000000000004400814008000000000000017
+:0E0DFC00000000002530327820000D0A0000B3
+:00000001FF
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino.with_bootloader.standard.hex b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino.with_bootloader.standard.hex
new file mode 100644
index 0000000..94a2b97
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.ino.with_bootloader.standard.hex
@@ -0,0 +1,260 @@
+:020000040000FA
+:100000000C9435000C945D000C945D000C945D0024
+:100010000C945D000C945D000C945D000C945D00EC
+:100020000C945D000C945D000C945D000C945D00DC
+:100030000C945D000C945D000C945D000C945D00CC
+:100040000C94E0010C945D000C9450020C942A0274
+:100050000C945D000C945D000C945D000C945D00AC
+:100060000C945D000C945D00690311241FBECFEF5A
+:10007000D8E0DEBFCDBF12E0A0E0B1E0ECEEFCE0E6
+:1000800002C005900D92AE31B107D9F726E0AEE17E
+:10009000B2E001C01D92A83CB207E1F710E0C5E351
+:1000A000D0E004C02197FE010E949603C433D1071B
+:1000B000C9F70E9482020C9474060C940000AF925F
+:1000C000BF92CF92DF92EF92FF920F931F93CF9345
+:1000D000DF936C017B018B01040F151FEB015E01A7
+:1000E000AE18BF08C017D10759F06991D601ED913C
+:1000F000FC910190F081E02DC6010995892B79F7DB
+:10010000C501DF91CF911F910F91FF90EF90DF908C
+:10011000CF90BF90AF900895FC01538D448D252F53
+:1001200030E0842F90E0821B930B541710F0CF9691
+:10013000089501970895FC01918D828D981761F0C3
+:10014000A28DAE0FBF2FB11D5D968C91928D9F5FDA
+:100150009F73928F90E008958FEF9FEF0895FC01B9
+:10016000918D828D981731F0828DE80FF11D858D6C
+:1001700090E008958FEF9FEF0895FC01918D228DFF
+:10018000892F90E0805C9F4F821B91098F73992784
+:1001900008958BE296E00E94BD0021E0892B09F4CE
+:1001A00020E0822F089580E090E0892B29F00E94C2
+:1001B000C90081110C9400000895FC01A48DA80FC2
+:1001C000B92FB11DA35ABF4F2C91848D90E0019699
+:1001D0008F739927848FA689B7892C93A089B189B9
+:1001E0008C91837080648C93938D848D981306C05A
+:1001F0000288F389E02D80818F7D80830895EF92BE
+:10020000FF920F931F93CF93DF93EC0181E0888FD0
+:100210009B8D8C8D98131AC0E889F989808185FFA0
+:1002200015C09FB7F894EE89FF896083E889F98942
+:1002300080818370806480839FBF81E090E0DF9144
+:10024000CF911F910F91FF90EF900895F62E0B8D97
+:1002500010E00F5F1F4F0F731127E02E8C8D8E1152
+:100260000CC00FB607FCFACFE889F989808185FFB9
+:10027000F5CFCE010E94DD00F1CFEB8DEC0FFD2F0D
+:10028000F11DE35AFF4FF0829FB7F8940B8FEA8974
+:10029000FB8980818062CFCFCF93DF93EC01888D83
+:1002A0008823B9F0AA89BB89E889F9898C9185FDF1
+:1002B00003C0808186FD0DC00FB607FCF7CF8C917F
+:1002C00085FFF2CF808185FFEDCFCE010E94DD005A
+:1002D000E9CFDF91CF910895FC0101900020E9F76B
+:1002E0003197AF01481B590BBC018BE296E00C948F
+:1002F0005F00CF92DF92EF92FF920F931F93CF9305
+:10030000DF93C8E0D0E034E1E32E32E0F32E49E29F
+:10031000C42E46E0D42E082F10E020910001309129
+:1003200001012F3F3F4F91F41F928F93FF92EF9265
+:10033000DF92CF920E949C0389E296E00E946C01BA
+:100340000F900F900F900F900F900F9080910001E1
+:100350009091010101969093010180930001C801E1
+:10036000959587952197B9F68FEF9FEF90930101AF
+:100370008093000180912706909128060196909322
+:1003800028068093270687709927892B81F48CE1B2
+:1003900092E00E946C018AE192E0DF91CF911F917F
+:1003A0000F91FF90EF90DF90CF900C946C01DF9154
+:1003B000CF911F910F91FF90EF90DF90CF90089514
+:1003C0001F920F920FB60F9211242F933F938F938A
+:1003D0009F93AF93BF938091230690912406A091A1
+:1003E0002506B09126063091220623E0230F2D37F3
+:1003F00058F50196A11DB11D209322068093230676
+:1004000090932406A0932506B093260680911E069D
+:1004100090911F06A0912006B09121060196A11D82
+:10042000B11D80931E0690931F06A0932006B093E3
+:100430002106BF91AF919F918F913F912F910F9086
+:100440000FBE0F901F90189526E8230F0296A11D4E
+:10045000B11DD2CF1F920F920FB60F9211242F937E
+:100460003F934F935F936F937F938F939F93AF933C
+:10047000BF93EF93FF938BE296E00E94DD00FF9124
+:10048000EF91BF91AF919F918F917F916F915F910C
+:100490004F913F912F910F900FBE0F901F90189585
+:1004A0001F920F920FB60F9211242F938F939F9349
+:1004B000EF93FF93E0913B06F0913C068081E09141
+:1004C0004106F091420682FD1BC090818091440656
+:1004D0008F5F8F7320914506821741F0E0914406AB
+:1004E000F0E0E55DF94F958F80934406FF91EF9121
+:1004F0009F918F912F910F900FBE0F901F90189585
+:100500008081F4CF789484B5826084BD84B58160A5
+:1005100084BD85B5826085BD85B5816085BD8091CE
+:100520006E00816080936E00109281008091810046
+:10053000826080938100809181008160809381003E
+:10054000809180008160809380008091B100846000
+:100550008093B1008091B00081608093B000809161
+:100560007A00846080937A0080917A008260809320
+:100570007A0080917A00816080937A0080917A007D
+:10058000806880937A001092C10080E0E4E1F1E09D
+:10059000AEE1B2E001900D928A95E1F780E0E4E1EE
+:1005A000F1E0AEE1B3E001900D928A95E1F782E0CF
+:1005B00098E0909393038093920320E0E4E1F1E0CC
+:1005C000AEE1B4E001900D922A95E1F79093A30477
+:1005D0008093A20420E0E4E1F1E0AEE1B5E0019017
+:1005E0000D922A95E1F7909393058093920590934D
+:1005F000A3058093A205E0913B06F0913C0682E0C2
+:100600008083E0913706F09138061082E091390638
+:10061000F0913A068FEC808310924306E0913F06FA
+:10062000F091400686E08083E0913D06F0913E0621
+:10063000808180618083E0913D06F0913E0680815B
+:1006400088608083E0913D06F0913E06808180685D
+:100650008083E0913D06F0913E0680818F7D80830E
+:10066000D0E0C0E0ED2FFF27E7FDFA95CE0123E0B3
+:10067000959587952A95E1F78F70992734E0EE0FCD
+:10068000FF1F3A95E1F7E80FF91F43E0EE0FFF1F58
+:100690004A95E1F7CE0187709927E80FF91FEE0F11
+:1006A000FF1FE25EFD4F90818181C7FD892F0E946F
+:1006B00079012196C11584E0D807A1F6C0E0D0E009
+:1006C0002097F1F30E94C9008823D1F30E94000013
+:1006D000F7CFEBE2F6E01382128288EE93E0A0E01F
+:1006E000B0E084839583A683B78386E091E091830D
+:1006F000808385EC90E09587848784EC90E09787F1
+:10070000868780EC90E0918B808B81EC90E0938BDE
+:10071000828B82EC90E0958B848B86EC90E0978BBB
+:10072000868B118E128E138E148E0895EE0FFF1F7E
+:100730000590F491E02D0994AEE0B0E0E2EAF3E038
+:100740000C944B060D891E8986E08C831A830983DD
+:100750008FEF9FE79E838D83AE01475E5F4F6F896A
+:10076000788DCE0101960E94BF032F813885020F3C
+:10077000131FF80110822E96E4E00C946706ABE09C
+:10078000B0E0E5ECF3E00C943D067C013B018A010E
+:10079000FC0117821682838181FFC8C1CE010196B8
+:1007A0005C01F7019381F30193FD859193FF8191A2
+:1007B0003F01882309F453C1853239F493FD8591B3
+:1007C00093FF81913F01853229F4B70190E00E94A7
+:1007D000AF05E7CF912C212C312CFFE1F31538F038
+:1007E0008B3211F190F4803209F1833229F137FC18
+:1007F0003CC020ED280F2A3050F536FE20C08AE09C
+:10080000989E200D1124922E06C08D3291F08033D7
+:1008100071F7689430F8F30193FD859193FF81910E
+:100820003F018111DACF21C0689431F8689432F821
+:10083000F2CF689433F8EFCF689434F8ECCFEAE065
+:100840002E9E200D1124222E689435F8E4CF8E328E
+:1008500029F436FC04C1689436F8DDCF8C3619F4DF
+:10086000689437F8D8CF8836B1F2982F9F7D955489
+:100870009330E0F08336A1F18337C1F1833509F07D
+:1008800063C02801F2E04F0E511CF801C080D180F6
+:10089000692D70E036FC02C06FEF7FEFC6010E9449
+:1008A00099054C01689437F882010AC00C5F1F4F0C
+:1008B000FFE3F98388248394912C6501E89437F849
+:1008C00033FE2DC0522C8114910471F5552009F48A
+:1008D00068CFB70180E290E00E94AF055A94F6CF4E
+:1008E000F801808189830E5F1F4FE4CF2801F2E079
+:1008F0004F0E511CF801C080D180692D70E036FC8C
+:1009000002C06FEF7FEFC6010E94A4054C01820177
+:10091000D5CFB70180E290E00E94AF052A94281459
+:10092000190409F0B0F7CECFF60137FC859137FEF8
+:1009300081916F01B70190E00E94AF0551105A9468
+:10094000F1E08F1A9108BFCF843619F0893609F08B
+:1009500077C0F80137FE6BC060817181828193811D
+:100960000C5F1F4FF32DFF763F2E97FF09C0909528
+:100970008095709561957F4F8F4F9F4F689437F8A2
+:100980002AE030E0A5010E94DF05C82ECA188C2C91
+:10099000432C36FE0CC0E89440F8C91440F434FEF1
+:1009A00005C032FC03C0F32DFE7E4F2E892C44FE81
+:1009B00095C0FE01EC0DF11D8081803309F087C0E8
+:1009C000242D297E422E842D8870582E43FC95C0FC
+:1009D00040FE8FC09C2C821418F42C0C922C98187A
+:1009E00044FE91C0B70180E390E00E94AF0542FE53
+:1009F00009C088E790E041FE02C088E590E0B701B9
+:100A00000E94AF05C91408F48AC0CA94D12C9FEF84
+:100A1000C91AD90ACA0CDB1CF60182916F01B70111
+:100A200090E00E94AF05AC14BD04B1F74FCF6081D8
+:100A30007181072E000C880B990B0E5F1F4F92CF10
+:100A4000D32CE894D4F82AE030E0853739F1232D0F
+:100A5000297FD22E8F3601F148F48835A9F0F701AD
+:100A6000868197812B96E2E10C945906803749F0F4
+:100A70008837A9F7D4FE02C06894D2F820E130E0AC
+:100A80000DC06894D4F8F6CF34FE03C0822F866080
+:100A9000D82E20E132E002C028E030E0F801D7FE95
+:100AA0000FC060817181828193810C5F1F4FA5010E
+:100AB0000E94DF05C82ECA183D2CE89437F867CF8E
+:100AC0006081718190E080E00E5F1F4FF0CF42FCAB
+:100AD00002C0839478CF8394839475CF842D8678D5
+:100AE00009F471CFF6CFB70180E290E00E94AF0524
+:100AF00083948214C0F3512C73CF522C5818821453
+:100B000008F46ECFF8CF842D867809F47BCF8BE282
+:100B100041FE80E247FC8DE2B70190E071CFB70162
+:100B200080E390E00E94AF059A946CCF8FEF9FEF27
+:100B300099CFFC010590615070400110D8F7809565
+:100B400090958E0F9F1F0895FC0161507040019099
+:100B50000110D8F7809590958E0F9F1F08950F93E1
+:100B60001F93CF93DF93182F092FEB018B8181FD0A
+:100B700009C01FEF0FEF812F902FDF91CF911F91B1
+:100B80000F91089582FF14C02E813F818C819D8139
+:100B9000281739073CF4E881F981CF010196998340
+:100BA000888310838E819F8101969F838E83E3CFFC
+:100BB000E885F985812F0995892BA1F3DACFFA0110
+:100BC000AA27283051F1203181F1E8946F936E7F8C
+:100BD0006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E07D
+:100BE0003CD0670F781F891F9A1FA11D680F791FBE
+:100BF0008A1F911DA11D6A0F711D811D911DA11DCF
+:100C000020D009F468943F912AE0269F11243019DE
+:100C1000305D3193DEF6CF010895462F4770405D79
+:100C20004193B3E00FD0C9F7F6CF462F4F70405D28
+:100C30004A3318F0495D31FD4052419302D0A9F783
+:100C4000EACFB4E0A6959795879577956795BA957D
+:100C5000C9F700976105710508959B01AC010A2E43
+:100C600006945795479537952795BA95C9F7620F1A
+:100C7000731F841F951FA01D08952F923F924F92BE
+:100C80005F926F927F928F929F92AF92BF92CF921C
+:100C9000DF92EF92FF920F931F93CF93DF93CDB725
+:100CA000DEB7CA1BDB0B0FB6F894DEBF0FBECDBF9D
+:100CB00009942A88398848885F846E847D848C846E
+:100CC0009B84AA84B984C884DF80EE80FD800C8177
+:100CD0001B81AA81B981CE0FD11D0FB6F894DEBF5A
+:100CE0000FBECDBFED010895F894FFCFFFFF0000C8
+:100CF0000000FF005F008C004C01BD009B00AF00B6
+:100D00000440081400000000000000000000000083
+:100D10000440081400480012000000000000000019
+:100D20000440081400482010810200000000000068
+:100D30000440081400482010C10200000000000018
+:100D400004400814004800210000000000000000DA
+:100D500004400814000A0000000000000000000029
+:100D60000440081402080000000000000000000019
+:100D70000440081400000000000000000000000013
+:100D80000440081400000000000000000000000003
+:100D900004400814000000000000000000000000F3
+:100DA00004400814000000000000000000000000E3
+:100DB00004400814000000000000000000000000D3
+:100DC00004400814000000000000000000000000C3
+:100DD00004400814000000000000000000000000B3
+:100DE0000440081410010000000000000000000092
+:100DF0000440081400800000000000000000000013
+:0A0E00002530327820000D0A0000B2
+:107E0000112484B714BE81FFF0D085E080938100F7
+:107E100082E08093C00088E18093C10086E0809377
+:107E2000C20080E18093C4008EE0C9D0259A86E02C
+:107E300020E33CEF91E0309385002093840096BBD3
+:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4
+:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7
+:107E6000A2D0813461F49FD0082FAFD0023811F036
+:107E7000013811F484E001C083E08DD089C08234E0
+:107E800011F484E103C0853419F485E0A6D080C0E4
+:107E9000853579F488D0E82EFF2485D0082F10E0AE
+:107EA000102F00270E291F29000F111F8ED06801E7
+:107EB0006FC0863521F484E090D080E0DECF843638
+:107EC00009F040C070D06FD0082F6DD080E0C81688
+:107ED00080E7D80618F4F601B7BEE895C0E0D1E017
+:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8
+:107EF00018F0F601B7BEE89568D007B600FCFDCFD4
+:107F0000A601A0E0B1E02C9130E011968C91119780
+:107F100090E0982F8827822B932B1296FA010C0160
+:107F200087BEE89511244E5F5F4FF1E0A038BF0790
+:107F300051F7F601A7BEE89507B600FCFDCF97BE46
+:107F4000E89526C08437B1F42ED02DD0F82E2BD052
+:107F50003CD0F601EF2C8F010F5F1F4F84911BD097
+:107F6000EA94F801C1F70894C11CD11CFA94CF0C13
+:107F7000D11C0EC0853739F428D08EE10CD085E9AC
+:107F80000AD08FE07ACF813511F488E018D01DD067
+:107F900080E101D065CF982F8091C00085FFFCCF94
+:107FA0009093C60008958091C00087FFFCCF809118
+:107FB000C00084FD01C0A8958091C6000895E0E648
+:107FC000F0E098E1908380830895EDDF803219F02E
+:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA
+:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6
+:047FF000FF270994CA
+:027FFE00040479
+:00000001FF
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.pdsprj b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.pdsprj
new file mode 100644
index 0000000..2c76976
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.pdsprj differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace
new file mode 100644
index 0000000..5bdf0f5
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags_NOT_FORMATTED/microcode-eeprom-with-flags_NOT_FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace
@@ -0,0 +1,151 @@
+
+
+
+ 2c0000000200000003000000ffffffffffffffffffffffffffffffff6900000000000000540300007c020000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 279
+ - No
+ - 100
+ - 100
+
+
+
+
+ - 87
+ - No
+ - Yes
+ - 87
+ - Yes
+ - No
+ - No
+ - Yes
+ - 0
+ - 87
+ - 100
+ - 87
+ - 0
+
+
+
+
+
+
+
+
+
+
+ - 0
+ - 0
+
+
+
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000100
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000020
+
+
+
+
+ - No
+ - Yes
+ - No
+ - No
+ - Yes
+ - No
+ - 0
+
+
+
+
+ - 509
+ - No
+ - Yes
+ - 509
+ - Yes
+ - Yes
+ - No
+ - No
+ - No
+ - 0
+ - 509
+ - 100
+ - 0
+
+
+
+
+
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/Backup Of microcode-eeprom-with-flags__FORMATTED.pdsbak b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/Backup Of microcode-eeprom-with-flags__FORMATTED.pdsbak
new file mode 100644
index 0000000..faa2d58
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/Backup Of microcode-eeprom-with-flags__FORMATTED.pdsbak differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/Last Loaded microcode-eeprom-with-flags__FORMATTED.pdsbak b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/Last Loaded microcode-eeprom-with-flags__FORMATTED.pdsbak
new file mode 100644
index 0000000..4cc98fa
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/Last Loaded microcode-eeprom-with-flags__FORMATTED.pdsbak differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino
new file mode 100644
index 0000000..ac5b945
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino
@@ -0,0 +1,121 @@
+#define EEPROM_D0 5
+#define EEPROM_D7 12
+
+#define HLT 0b1000000000000000 // Halt clock
+#define MI 0b0100000000000000 // Memory address register in
+#define RI 0b0010000000000000 // RAM data in
+#define RO 0b0001000000000000 // RAM data out
+#define IO 0b0000100000000000 // Instruction register out
+#define II 0b0000010000000000 // Instruction register in
+#define AI 0b0000001000000000 // A register in
+#define AO 0b0000000100000000 // A register out
+#define EO 0b0000000010000000 // ALU out
+#define SU 0b0000000001000000 // ALU subtract
+#define BI 0b0000000000100000 // B register in
+#define OI 0b0000000000010000 // Output register in
+#define CE 0b0000000000001000 // Program counter enable
+#define CO 0b0000000000000100 // Program counter out
+#define J 0b0000000000000010 // Jump (program counter in)
+#define FI 0b0000000000000001 // Flags in
+
+#define FLAGS_Z0C0 0
+#define FLAGS_Z0C1 1
+#define FLAGS_Z1C0 2
+#define FLAGS_Z1C1 3
+
+#define JC 0b0111
+#define JZ 0b1000
+
+uint16_t UCODE_TEMPLATE[16][8] = {
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0000 - NOP
+ { MI|CO, RO|II|CE, IO|MI, RO|AI, 0, 0, 0, 0 }, // 0001 - LDA
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|FI, 0, 0, 0 }, // 0010 - ADD
+ { MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|SU|FI, 0, 0, 0 }, // 0011 - SUB
+ { MI|CO, RO|II|CE, IO|MI, AO|RI, 0, 0, 0, 0 }, // 0100 - STA
+ { MI|CO, RO|II|CE, IO|AI, 0, 0, 0, 0, 0 }, // 0101 - LDI
+ { MI|CO, RO|II|CE, IO|J, 0, 0, 0, 0, 0 }, // 0110 - JMP
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 0111 - JC
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1000 - JZ
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1001
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1010
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1011
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1100
+ { MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0 }, // 1101
+ { MI|CO, RO|II|CE, AO|OI, 0, 0, 0, 0, 0 }, // 1110 - OUT
+ { MI|CO, RO|II|CE, HLT, 0, 0, 0, 0, 0 }, // 1111 - HLT
+};
+
+uint16_t ucode[4][16][8];
+
+void initUCode() {
+ // ZF = 0, CF = 0
+ memcpy(ucode[FLAGS_Z0C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+
+ // ZF = 0, CF = 1
+ memcpy(ucode[FLAGS_Z0C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z0C1][JC][2] = IO | J;
+
+ // ZF = 1, CF = 0
+ memcpy(ucode[FLAGS_Z1C0], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C0][JZ][2] = IO | J;
+
+ // ZF = 1, CF = 1
+ memcpy(ucode[FLAGS_Z1C1], UCODE_TEMPLATE, sizeof(UCODE_TEMPLATE));
+ ucode[FLAGS_Z1C1][JC][2] = IO | J;
+ ucode[FLAGS_Z1C1][JZ][2] = IO | J;
+}
+
+char bufd[2];
+char bufa[3];
+int line_count = 0;
+int oneTime = -1;
+int addr = 0;
+void writeEEPROM(int address, byte data) {
+ for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
+ if (oneTime == -1) {
+ sprintf(bufd, "%02x ", data);
+ Serial.print(bufd);
+ }
+ oneTime++;
+ data = data >> 1;
+ }
+ oneTime = -1;
+
+ line_count++;
+ if (line_count % 8 == 0)
+ Serial.print(" ");
+ if (line_count % 16 == 0) {
+ Serial.println("");
+ addr = addr+16;
+ Serial.print(addr,HEX);
+ Serial.print(": ");
+ }
+}
+
+void setup() {
+ initUCode();
+ Serial.begin(9600);
+
+ int zero=0;
+ char buff[3];
+ sprintf(buff,"000: ",zero);
+ Serial.print(buff);
+
+ for (int address = 0; address < 1024; address += 1) {
+ int flags = (address & 0b1100000000) >> 8;
+ int byte_sel = (address & 0b0010000000) >> 7;
+ int instruction = (address & 0b0001111000) >> 3;
+ int step = (address & 0b0000000111);
+
+ if (byte_sel) {
+ writeEEPROM(address, ucode[flags][instruction][step]);
+ } else {
+ writeEEPROM(address, ucode[flags][instruction][step] >> 8);
+ }
+ }
+}
+
+
+void loop() {
+
+}
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino.standard.hex b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino.standard.hex
new file mode 100644
index 0000000..1bb0d83
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino.standard.hex
@@ -0,0 +1,240 @@
+:100000000C9435000C945D000C945D000C945D0024
+:100010000C945D000C945D000C945D000C945D00EC
+:100020000C945D000C945D000C945D000C945D00DC
+:100030000C945D000C945D000C945D000C945D00CC
+:100040000C942A020C945D000C949A020C94740295
+:100050000C945D000C945D000C945D000C945D00AC
+:100060000C945D000C945D00D10311241FBECFEFF2
+:10007000D8E0DEBFCDBF12E0A0E0B1E0ECEBFDE0E8
+:1000800002C005900D92A832B107D9F726E0A8E288
+:10009000B2E001C01D92A43DB207E1F710E0C5E354
+:1000A000D0E004C02197FE010E94FE03C433D107B3
+:1000B000C9F70E94CC020C94DC060C940000AF92AD
+:1000C000BF92CF92DF92EF92FF920F931F93CF9345
+:1000D000DF936C017B018B01040F151FEB015E01A7
+:1000E000AE18BF08C017D10759F06991D601ED913C
+:1000F000FC910190F081E02DC6010995892B79F7DB
+:10010000C501DF91CF911F910F91FF90EF90DF908C
+:10011000CF90BF90AF900895FC01538D448D252F53
+:1001200030E0842F90E0821B930B541710F0CF9691
+:10013000089501970895FC01918D828D981761F0C3
+:10014000A28DAE0FBF2FB11D5D968C91928D9F5FDA
+:100150009F73928F90E008958FEF9FEF0895FC01B9
+:10016000918D828D981731F0828DE80FF11D858D6C
+:1001700090E008958FEF9FEF0895FC01918D228DFF
+:10018000892F90E0805C9F4F821B91098F73992784
+:10019000089587E396E00E94BD0021E0892B09F4D1
+:1001A00020E0822F089580E090E0892B29F00E94C2
+:1001B000C90081110C9400000895FC01A48DA80FC2
+:1001C000B92FB11DA35ABF4F2C91848D90E0019699
+:1001D0008F739927848FA689B7892C93A089B189B9
+:1001E0008C91837080648C93938D848D981306C05A
+:1001F0000288F389E02D80818F7D80830895EF92BE
+:10020000FF920F931F93CF93DF93EC0181E0888FD0
+:100210009B8D8C8D98131AC0E889F989808185FFA0
+:1002200015C09FB7F894EE89FF896083E889F98942
+:1002300080818370806480839FBF81E090E0DF9144
+:10024000CF911F910F91FF90EF900895F62E0B8D97
+:1002500010E00F5F1F4F0F731127E02E8C8D8E1152
+:100260000CC00FB607FCFACFE889F989808185FFB9
+:10027000F5CFCE010E94DD00F1CFEB8DEC0FFD2F0D
+:10028000F11DE35AFF4FF0829FB7F8940B8FEA8974
+:10029000FB8980818062CFCFCF93DF93EC01888D83
+:1002A0008823B9F0AA89BB89E889F9898C9185FDF1
+:1002B00003C0808186FD0DC00FB607FCF7CF8C917F
+:1002C00085FFF2CF808185FFEDCFCE010E94DD005A
+:1002D000E9CFDF91CF910895FC0101900020E9F76B
+:1002E0003197AF01481B590BBC0187E396E00C9492
+:1002F0005F00AF92BF92CF92DF92EF92FF920F9387
+:100300001F93CF93DF93CDB7DEB7A1970FB6F894C5
+:10031000DEBF0FBECDBF08E010E044E1C42E42E0D6
+:10032000D42E55E3A52E56E0B52EE82EF12C2091C3
+:100330000001309101012F3F3F4F91F41F928F93A5
+:10034000DF92CF92BF92AF920E94040485E396E0C1
+:100350000E946C010F900F900F900F900F900F90D4
+:100360008091000190910101019690930101809389
+:100370000001C7019595879501501109B1F68FEFDE
+:100380009FEF90930101809300018091330690913B
+:10039000340601969093340680933306877099272C
+:1003A000892B21F48EE192E00E946C01809133064A
+:1003B000909134068F709927892BC9F58CE192E0D2
+:1003C0000E946C018AE192E00E946C01409131062A
+:1003D00050913206405F5F4F509332064093310692
+:1003E000052E000C660B770B19A2CE0181968A01AF
+:1003F0009B010F7011272227332724E076956795FC
+:10040000579547952A95D1F70A3014F5005DFC0100
+:100410000293CF01411551056105710541F7EF2B9D
+:1004200011F00E946C018DE192E00E946C01A19696
+:100430000FB6F894DEBF0FBECDBFDF91CF911F91F5
+:100440000F91FF90EF90DF90CF90BF90AF90089505
+:10045000095CDDCF1F920F920FB60F9211242F93DC
+:100460003F938F939F93AF93BF9380912D0690916D
+:100470002E06A0912F06B091300630912C0623E075
+:10048000230F2D3758F50196A11DB11D20932C0681
+:1004900080932D0690932E06A0932F06B0933006DE
+:1004A0008091280690912906A0912A06B0912B06EA
+:1004B0000196A11DB11D8093280690932906A09353
+:1004C0002A06B0932B06BF91AF919F918F913F91D8
+:1004D0002F910F900FBE0F901F90189526E8230FB5
+:1004E0000296A11DB11DD2CF1F920F920FB60F928F
+:1004F00011242F933F934F935F936F937F938F9329
+:100500009F93AF93BF93EF93FF9387E396E00E948F
+:10051000DD00FF91EF91BF91AF919F918F917F91FE
+:100520006F915F914F913F912F910F900FBE0F9060
+:100530001F9018951F920F920FB60F9211242F93B0
+:100540008F939F93EF93FF93E0914706F0914806B6
+:100550008081E0914D06F0914E0682FD1BC0908196
+:10056000809150068F5F8F7320915106821741F062
+:10057000E0915006F0E0E95CF94F958F80935006CA
+:10058000FF91EF919F918F912F910F900FBE0F9040
+:100590001F9018958081F4CFCF93DF9300D01F92E6
+:1005A000CDB7DEB7789484B5826084BD84B58160B0
+:1005B00084BD85B5826085BD85B5816085BD80912E
+:1005C0006E00816080936E001092810080918100A6
+:1005D000826080938100809181008160809381009E
+:1005E000809180008160809380008091B100846060
+:1005F0008093B1008091B00081608093B0008091C1
+:100600007A00846080937A0080917A00826080937F
+:100610007A0080917A00816080937A0080917A00DC
+:10062000806880937A001092C10080E0E4E1F1E0FC
+:10063000A8E2B2E001900D928A95E1F780E0E4E152
+:10064000F1E0A8E2B3E001900D928A95E1F782E033
+:1006500098E090939D0380939C0320E0E4E1F1E017
+:10066000A8E2B4E001900D922A95E1F79093AD04D1
+:100670008093AC0420E0E4E1F1E0A8E2B5E0019071
+:100680000D922A95E1F790939D0580939C05909398
+:10069000AD058093AC05E0914706F091480682E0F5
+:1006A0008083E0914306F09144061082E091450674
+:1006B000F09146068FEC808310924F06E0914B0636
+:1006C000F0914C0686E08083E0914906F0914A065D
+:1006D000808180618083E0914906F0914A068081A3
+:1006E00088608083E0914906F0914A0680818068A5
+:1006F0008083E0914906F0914A0680818F7D808356
+:100700001F921F9281E292E09F938F938E010F5F61
+:100710001F4F1F930F930E940404C8010E946C0195
+:100720000F900F900F900F900F900F9010E000E03F
+:10073000E12FFF27E7FDFA95C80123E095958795FE
+:100740002A95E1F78F70992734E0EE0FFF1F3A9555
+:10075000E1F7E80FF91F43E0EE0FFF1F4A95E1F7BD
+:10076000C80187709927E80FF91FEE0FFF1FE85D9A
+:10077000FD4F9081818107FD892F0E9479010F5FD4
+:100780001F4F011584E0180799F600E010E00115ED
+:100790001105E9F30E94C9008823C9F30E940000F3
+:1007A000F6CFE7E3F6E01382128288EE93E0A0E052
+:1007B000B0E084839583A683B78386E091E091833C
+:1007C000808385EC90E09587848784EC90E0978720
+:1007D000868780EC90E0918B808B81EC90E0938B0E
+:1007E000828B82EC90E0958B848B86EC90E0978BEB
+:1007F000868B118E128E138E148E0895EE0FFF1FAE
+:100800000590F491E02D0994AEE0B0E0EAE0F4E068
+:100810000C94B3060D891E8986E08C831A830983A4
+:100820008FEF9FE79E838D83AE01475E5F4F6F8999
+:10083000788DCE0101960E9427042F813885020F02
+:10084000131FF80110822E96E4E00C94CF06ABE063
+:10085000B0E0EDE2F4E00C94A5067C013B018A01D6
+:10086000FC0117821682838181FFC8C1CE010196E7
+:100870005C01F7019381F30193FD859193FF8191D1
+:100880003F01882309F453C1853239F493FD8591E2
+:1008900093FF81913F01853229F4B70190E00E94D6
+:1008A0001706E7CF912C212C312CFFE1F31538F0FE
+:1008B0008B3211F190F4803209F1833229F137FC47
+:1008C0003CC020ED280F2A3050F536FE20C08AE0CB
+:1008D000989E200D1124922E06C08D3291F0803307
+:1008E00071F7689430F8F30193FD859193FF81913E
+:1008F0003F018111DACF21C0689431F8689432F851
+:10090000F2CF689433F8EFCF689434F8ECCFEAE094
+:100910002E9E200D1124222E689435F8E4CF8E32BD
+:1009200029F436FC04C1689436F8DDCF8C3619F40E
+:10093000689437F8D8CF8836B1F2982F9F7D9554B8
+:100940009330E0F08336A1F18337C1F1833509F0AC
+:1009500063C02801F2E04F0E511CF801C080D18025
+:10096000692D70E036FC02C06FEF7FEFC6010E9478
+:1009700001064C01689437F882010AC00C5F1F4FD2
+:10098000FFE3F98388248394912C6501E89437F878
+:1009900033FE2DC0522C8114910471F5552009F4B9
+:1009A00068CFB70180E290E00E9417065A94F6CF14
+:1009B000F801808189830E5F1F4FE4CF2801F2E0A8
+:1009C0004F0E511CF801C080D180692D70E036FCBB
+:1009D00002C06FEF7FEFC6010E940C064C0182013E
+:1009E000D5CFB70180E290E00E9417062A94281420
+:1009F000190409F0B0F7CECFF60137FC859137FE28
+:100A000081916F01B70190E00E94170651105A942E
+:100A1000F1E08F1A9108BFCF843619F0893609F0BA
+:100A200077C0F80137FE6BC060817181828193814C
+:100A30000C5F1F4FF32DFF763F2E97FF09C0909557
+:100A40008095709561957F4F8F4F9F4F689437F8D1
+:100A50002AE030E0A5010E944706C82ECA188C2C57
+:100A6000432C36FE0CC0E89440F8C91440F434FE20
+:100A700005C032FC03C0F32DFE7E4F2E892C44FEB0
+:100A800095C0FE01EC0DF11D8081803309F087C017
+:100A9000242D297E422E842D8870582E43FC95C02B
+:100AA00040FE8FC09C2C821418F42C0C922C9818A9
+:100AB00044FE91C0B70180E390E00E94170642FE19
+:100AC00009C088E790E041FE02C088E590E0B701E8
+:100AD0000E941706C91408F48AC0CA94D12C9FEF4B
+:100AE000C91AD90ACA0CDB1CF60182916F01B70141
+:100AF00090E00E941706AC14BD04B1F74FCF60819F
+:100B00007181072E000C880B990B0E5F1F4F92CF3F
+:100B1000D32CE894D4F82AE030E0853739F1232D3E
+:100B2000297FD22E8F3601F148F48835A9F0F701DC
+:100B3000868197812B96E2E10C94C106803749F0BB
+:100B40008837A9F7D4FE02C06894D2F820E130E0DB
+:100B50000DC06894D4F8F6CF34FE03C0822F8660AF
+:100B6000D82E20E132E002C028E030E0F801D7FEC4
+:100B70000FC060817181828193810C5F1F4FA5013D
+:100B80000E944706C82ECA183D2CE89437F867CF54
+:100B90006081718190E080E00E5F1F4FF0CF42FCDA
+:100BA00002C0839478CF8394839475CF842D867804
+:100BB00009F471CFF6CFB70180E290E00E941706EA
+:100BC00083948214C0F3512C73CF522C5818821482
+:100BD00008F46ECFF8CF842D867809F47BCF8BE2B2
+:100BE00041FE80E247FC8DE2B70190E071CFB70192
+:100BF00080E390E00E9417069A946CCF8FEF9FEFEE
+:100C000099CFFC010590615070400110D8F7809594
+:100C100090958E0F9F1F0895FC01615070400190C8
+:100C20000110D8F7809590958E0F9F1F08950F9310
+:100C30001F93CF93DF93182F092FEB018B8181FD39
+:100C400009C01FEF0FEF812F902FDF91CF911F91E0
+:100C50000F91089582FF14C02E813F818C819D8168
+:100C6000281739073CF4E881F981CF01019699836F
+:100C7000888310838E819F8101969F838E83E3CF2B
+:100C8000E885F985812F0995892BA1F3DACFFA013F
+:100C9000AA27283051F1203181F1E8946F936E7FBB
+:100CA0006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E0AC
+:100CB0003CD0670F781F891F9A1FA11D680F791FED
+:100CC0008A1F911DA11D6A0F711D811D911DA11DFE
+:100CD00020D009F468943F912AE0269F112430190E
+:100CE000305D3193DEF6CF010895462F4770405DA9
+:100CF0004193B3E00FD0C9F7F6CF462F4F70405D58
+:100D00004A3318F0495D31FD4052419302D0A9F7B2
+:100D1000EACFB4E0A6959795879577956795BA95AC
+:100D2000C9F700976105710508959B01AC010A2E72
+:100D300006945795479537952795BA95C9F7620F49
+:100D4000731F841F951FA01D08952F923F924F92ED
+:100D50005F926F927F928F929F92AF92BF92CF924B
+:100D6000DF92EF92FF920F931F93CF93DF93CDB754
+:100D7000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFCC
+:100D800009942A88398848885F846E847D848C849D
+:100D90009B84AA84B984C884DF80EE80FD800C81A6
+:100DA0001B81AA81B981CE0FD11D0FB6F894DEBF89
+:0C0DB0000FBECDBFED010895F894FFCFF9
+:100DBC00FFFF00000000FF005F008C004C01BD0035
+:100DCC009B00AF000440081400000000000000006D
+:100DDC00000000000440081400480012000000004D
+:100DEC00000000000440081400482010810200009C
+:100DFC00000000000440081400482010C10200004C
+:100E0C00000000000440081400480021000000000D
+:100E1C000000000004400814000A0000000000005C
+:100E2C00000000000440081402080000000000004C
+:100E3C000000000004400814000000000000000046
+:100E4C000000000004400814000000000000000036
+:100E5C000000000004400814000000000000000026
+:100E6C000000000004400814000000000000000016
+:100E7C000000000004400814000000000000000006
+:100E8C0000000000044008140000000000000000F6
+:100E9C0000000000044008140000000000000000E6
+:100EAC0000000000044008141001000000000000C5
+:100EBC000000000004400814008000000000000046
+:100ECC00000000002530327820000D0A003A202066
+:080EDC00003030303A20000024
+:00000001FF
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino.with_bootloader.standard.hex b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino.with_bootloader.standard.hex
new file mode 100644
index 0000000..6faafdb
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.ino.with_bootloader.standard.hex
@@ -0,0 +1,274 @@
+:020000040000FA
+:100000000C9435000C945D000C945D000C945D0024
+:100010000C945D000C945D000C945D000C945D00EC
+:100020000C945D000C945D000C945D000C945D00DC
+:100030000C945D000C945D000C945D000C945D00CC
+:100040000C942A020C945D000C949A020C94740295
+:100050000C945D000C945D000C945D000C945D00AC
+:100060000C945D000C945D00D10311241FBECFEFF2
+:10007000D8E0DEBFCDBF12E0A0E0B1E0ECEBFDE0E8
+:1000800002C005900D92A832B107D9F726E0A8E288
+:10009000B2E001C01D92A43DB207E1F710E0C5E354
+:1000A000D0E004C02197FE010E94FE03C433D107B3
+:1000B000C9F70E94CC020C94DC060C940000AF92AD
+:1000C000BF92CF92DF92EF92FF920F931F93CF9345
+:1000D000DF936C017B018B01040F151FEB015E01A7
+:1000E000AE18BF08C017D10759F06991D601ED913C
+:1000F000FC910190F081E02DC6010995892B79F7DB
+:10010000C501DF91CF911F910F91FF90EF90DF908C
+:10011000CF90BF90AF900895FC01538D448D252F53
+:1001200030E0842F90E0821B930B541710F0CF9691
+:10013000089501970895FC01918D828D981761F0C3
+:10014000A28DAE0FBF2FB11D5D968C91928D9F5FDA
+:100150009F73928F90E008958FEF9FEF0895FC01B9
+:10016000918D828D981731F0828DE80FF11D858D6C
+:1001700090E008958FEF9FEF0895FC01918D228DFF
+:10018000892F90E0805C9F4F821B91098F73992784
+:10019000089587E396E00E94BD0021E0892B09F4D1
+:1001A00020E0822F089580E090E0892B29F00E94C2
+:1001B000C90081110C9400000895FC01A48DA80FC2
+:1001C000B92FB11DA35ABF4F2C91848D90E0019699
+:1001D0008F739927848FA689B7892C93A089B189B9
+:1001E0008C91837080648C93938D848D981306C05A
+:1001F0000288F389E02D80818F7D80830895EF92BE
+:10020000FF920F931F93CF93DF93EC0181E0888FD0
+:100210009B8D8C8D98131AC0E889F989808185FFA0
+:1002200015C09FB7F894EE89FF896083E889F98942
+:1002300080818370806480839FBF81E090E0DF9144
+:10024000CF911F910F91FF90EF900895F62E0B8D97
+:1002500010E00F5F1F4F0F731127E02E8C8D8E1152
+:100260000CC00FB607FCFACFE889F989808185FFB9
+:10027000F5CFCE010E94DD00F1CFEB8DEC0FFD2F0D
+:10028000F11DE35AFF4FF0829FB7F8940B8FEA8974
+:10029000FB8980818062CFCFCF93DF93EC01888D83
+:1002A0008823B9F0AA89BB89E889F9898C9185FDF1
+:1002B00003C0808186FD0DC00FB607FCF7CF8C917F
+:1002C00085FFF2CF808185FFEDCFCE010E94DD005A
+:1002D000E9CFDF91CF910895FC0101900020E9F76B
+:1002E0003197AF01481B590BBC0187E396E00C9492
+:1002F0005F00AF92BF92CF92DF92EF92FF920F9387
+:100300001F93CF93DF93CDB7DEB7A1970FB6F894C5
+:10031000DEBF0FBECDBF08E010E044E1C42E42E0D6
+:10032000D42E55E3A52E56E0B52EE82EF12C2091C3
+:100330000001309101012F3F3F4F91F41F928F93A5
+:10034000DF92CF92BF92AF920E94040485E396E0C1
+:100350000E946C010F900F900F900F900F900F90D4
+:100360008091000190910101019690930101809389
+:100370000001C7019595879501501109B1F68FEFDE
+:100380009FEF90930101809300018091330690913B
+:10039000340601969093340680933306877099272C
+:1003A000892B21F48EE192E00E946C01809133064A
+:1003B000909134068F709927892BC9F58CE192E0D2
+:1003C0000E946C018AE192E00E946C01409131062A
+:1003D00050913206405F5F4F509332064093310692
+:1003E000052E000C660B770B19A2CE0181968A01AF
+:1003F0009B010F7011272227332724E076956795FC
+:10040000579547952A95D1F70A3014F5005DFC0100
+:100410000293CF01411551056105710541F7EF2B9D
+:1004200011F00E946C018DE192E00E946C01A19696
+:100430000FB6F894DEBF0FBECDBFDF91CF911F91F5
+:100440000F91FF90EF90DF90CF90BF90AF90089505
+:10045000095CDDCF1F920F920FB60F9211242F93DC
+:100460003F938F939F93AF93BF9380912D0690916D
+:100470002E06A0912F06B091300630912C0623E075
+:10048000230F2D3758F50196A11DB11D20932C0681
+:1004900080932D0690932E06A0932F06B0933006DE
+:1004A0008091280690912906A0912A06B0912B06EA
+:1004B0000196A11DB11D8093280690932906A09353
+:1004C0002A06B0932B06BF91AF919F918F913F91D8
+:1004D0002F910F900FBE0F901F90189526E8230FB5
+:1004E0000296A11DB11DD2CF1F920F920FB60F928F
+:1004F00011242F933F934F935F936F937F938F9329
+:100500009F93AF93BF93EF93FF9387E396E00E948F
+:10051000DD00FF91EF91BF91AF919F918F917F91FE
+:100520006F915F914F913F912F910F900FBE0F9060
+:100530001F9018951F920F920FB60F9211242F93B0
+:100540008F939F93EF93FF93E0914706F0914806B6
+:100550008081E0914D06F0914E0682FD1BC0908196
+:10056000809150068F5F8F7320915106821741F062
+:10057000E0915006F0E0E95CF94F958F80935006CA
+:10058000FF91EF919F918F912F910F900FBE0F9040
+:100590001F9018958081F4CFCF93DF9300D01F92E6
+:1005A000CDB7DEB7789484B5826084BD84B58160B0
+:1005B00084BD85B5826085BD85B5816085BD80912E
+:1005C0006E00816080936E001092810080918100A6
+:1005D000826080938100809181008160809381009E
+:1005E000809180008160809380008091B100846060
+:1005F0008093B1008091B00081608093B0008091C1
+:100600007A00846080937A0080917A00826080937F
+:100610007A0080917A00816080937A0080917A00DC
+:10062000806880937A001092C10080E0E4E1F1E0FC
+:10063000A8E2B2E001900D928A95E1F780E0E4E152
+:10064000F1E0A8E2B3E001900D928A95E1F782E033
+:1006500098E090939D0380939C0320E0E4E1F1E017
+:10066000A8E2B4E001900D922A95E1F79093AD04D1
+:100670008093AC0420E0E4E1F1E0A8E2B5E0019071
+:100680000D922A95E1F790939D0580939C05909398
+:10069000AD058093AC05E0914706F091480682E0F5
+:1006A0008083E0914306F09144061082E091450674
+:1006B000F09146068FEC808310924F06E0914B0636
+:1006C000F0914C0686E08083E0914906F0914A065D
+:1006D000808180618083E0914906F0914A068081A3
+:1006E00088608083E0914906F0914A0680818068A5
+:1006F0008083E0914906F0914A0680818F7D808356
+:100700001F921F9281E292E09F938F938E010F5F61
+:100710001F4F1F930F930E940404C8010E946C0195
+:100720000F900F900F900F900F900F9010E000E03F
+:10073000E12FFF27E7FDFA95C80123E095958795FE
+:100740002A95E1F78F70992734E0EE0FFF1F3A9555
+:10075000E1F7E80FF91F43E0EE0FFF1F4A95E1F7BD
+:10076000C80187709927E80FF91FEE0FFF1FE85D9A
+:10077000FD4F9081818107FD892F0E9479010F5FD4
+:100780001F4F011584E0180799F600E010E00115ED
+:100790001105E9F30E94C9008823C9F30E940000F3
+:1007A000F6CFE7E3F6E01382128288EE93E0A0E052
+:1007B000B0E084839583A683B78386E091E091833C
+:1007C000808385EC90E09587848784EC90E0978720
+:1007D000868780EC90E0918B808B81EC90E0938B0E
+:1007E000828B82EC90E0958B848B86EC90E0978BEB
+:1007F000868B118E128E138E148E0895EE0FFF1FAE
+:100800000590F491E02D0994AEE0B0E0EAE0F4E068
+:100810000C94B3060D891E8986E08C831A830983A4
+:100820008FEF9FE79E838D83AE01475E5F4F6F8999
+:10083000788DCE0101960E9427042F813885020F02
+:10084000131FF80110822E96E4E00C94CF06ABE063
+:10085000B0E0EDE2F4E00C94A5067C013B018A01D6
+:10086000FC0117821682838181FFC8C1CE010196E7
+:100870005C01F7019381F30193FD859193FF8191D1
+:100880003F01882309F453C1853239F493FD8591E2
+:1008900093FF81913F01853229F4B70190E00E94D6
+:1008A0001706E7CF912C212C312CFFE1F31538F0FE
+:1008B0008B3211F190F4803209F1833229F137FC47
+:1008C0003CC020ED280F2A3050F536FE20C08AE0CB
+:1008D000989E200D1124922E06C08D3291F0803307
+:1008E00071F7689430F8F30193FD859193FF81913E
+:1008F0003F018111DACF21C0689431F8689432F851
+:10090000F2CF689433F8EFCF689434F8ECCFEAE094
+:100910002E9E200D1124222E689435F8E4CF8E32BD
+:1009200029F436FC04C1689436F8DDCF8C3619F40E
+:10093000689437F8D8CF8836B1F2982F9F7D9554B8
+:100940009330E0F08336A1F18337C1F1833509F0AC
+:1009500063C02801F2E04F0E511CF801C080D18025
+:10096000692D70E036FC02C06FEF7FEFC6010E9478
+:1009700001064C01689437F882010AC00C5F1F4FD2
+:10098000FFE3F98388248394912C6501E89437F878
+:1009900033FE2DC0522C8114910471F5552009F4B9
+:1009A00068CFB70180E290E00E9417065A94F6CF14
+:1009B000F801808189830E5F1F4FE4CF2801F2E0A8
+:1009C0004F0E511CF801C080D180692D70E036FCBB
+:1009D00002C06FEF7FEFC6010E940C064C0182013E
+:1009E000D5CFB70180E290E00E9417062A94281420
+:1009F000190409F0B0F7CECFF60137FC859137FE28
+:100A000081916F01B70190E00E94170651105A942E
+:100A1000F1E08F1A9108BFCF843619F0893609F0BA
+:100A200077C0F80137FE6BC060817181828193814C
+:100A30000C5F1F4FF32DFF763F2E97FF09C0909557
+:100A40008095709561957F4F8F4F9F4F689437F8D1
+:100A50002AE030E0A5010E944706C82ECA188C2C57
+:100A6000432C36FE0CC0E89440F8C91440F434FE20
+:100A700005C032FC03C0F32DFE7E4F2E892C44FEB0
+:100A800095C0FE01EC0DF11D8081803309F087C017
+:100A9000242D297E422E842D8870582E43FC95C02B
+:100AA00040FE8FC09C2C821418F42C0C922C9818A9
+:100AB00044FE91C0B70180E390E00E94170642FE19
+:100AC00009C088E790E041FE02C088E590E0B701E8
+:100AD0000E941706C91408F48AC0CA94D12C9FEF4B
+:100AE000C91AD90ACA0CDB1CF60182916F01B70141
+:100AF00090E00E941706AC14BD04B1F74FCF60819F
+:100B00007181072E000C880B990B0E5F1F4F92CF3F
+:100B1000D32CE894D4F82AE030E0853739F1232D3E
+:100B2000297FD22E8F3601F148F48835A9F0F701DC
+:100B3000868197812B96E2E10C94C106803749F0BB
+:100B40008837A9F7D4FE02C06894D2F820E130E0DB
+:100B50000DC06894D4F8F6CF34FE03C0822F8660AF
+:100B6000D82E20E132E002C028E030E0F801D7FEC4
+:100B70000FC060817181828193810C5F1F4FA5013D
+:100B80000E944706C82ECA183D2CE89437F867CF54
+:100B90006081718190E080E00E5F1F4FF0CF42FCDA
+:100BA00002C0839478CF8394839475CF842D867804
+:100BB00009F471CFF6CFB70180E290E00E941706EA
+:100BC00083948214C0F3512C73CF522C5818821482
+:100BD00008F46ECFF8CF842D867809F47BCF8BE2B2
+:100BE00041FE80E247FC8DE2B70190E071CFB70192
+:100BF00080E390E00E9417069A946CCF8FEF9FEFEE
+:100C000099CFFC010590615070400110D8F7809594
+:100C100090958E0F9F1F0895FC01615070400190C8
+:100C20000110D8F7809590958E0F9F1F08950F9310
+:100C30001F93CF93DF93182F092FEB018B8181FD39
+:100C400009C01FEF0FEF812F902FDF91CF911F91E0
+:100C50000F91089582FF14C02E813F818C819D8168
+:100C6000281739073CF4E881F981CF01019699836F
+:100C7000888310838E819F8101969F838E83E3CF2B
+:100C8000E885F985812F0995892BA1F3DACFFA013F
+:100C9000AA27283051F1203181F1E8946F936E7FBB
+:100CA0006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E0AC
+:100CB0003CD0670F781F891F9A1FA11D680F791FED
+:100CC0008A1F911DA11D6A0F711D811D911DA11DFE
+:100CD00020D009F468943F912AE0269F112430190E
+:100CE000305D3193DEF6CF010895462F4770405DA9
+:100CF0004193B3E00FD0C9F7F6CF462F4F70405D58
+:100D00004A3318F0495D31FD4052419302D0A9F7B2
+:100D1000EACFB4E0A6959795879577956795BA95AC
+:100D2000C9F700976105710508959B01AC010A2E72
+:100D300006945795479537952795BA95C9F7620F49
+:100D4000731F841F951FA01D08952F923F924F92ED
+:100D50005F926F927F928F929F92AF92BF92CF924B
+:100D6000DF92EF92FF920F931F93CF93DF93CDB754
+:100D7000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFCC
+:100D800009942A88398848885F846E847D848C849D
+:100D90009B84AA84B984C884DF80EE80FD800C81A6
+:100DA0001B81AA81B981CE0FD11D0FB6F894DEBF89
+:100DB0000FBECDBFED010895F894FFCFFFFF0000F7
+:100DC0000000FF005F008C004C01BD009B00AF00E5
+:100DD00004400814000000000000000000000000B3
+:100DE0000440081400480012000000000000000049
+:100DF0000440081400482010810200000000000098
+:100E00000440081400482010C10200000000000047
+:100E10000440081400480021000000000000000009
+:100E200004400814000A0000000000000000000058
+:100E30000440081402080000000000000000000048
+:100E40000440081400000000000000000000000042
+:100E50000440081400000000000000000000000032
+:100E60000440081400000000000000000000000022
+:100E70000440081400000000000000000000000012
+:100E80000440081400000000000000000000000002
+:100E900004400814000000000000000000000000F2
+:100EA00004400814000000000000000000000000E2
+:100EB00004400814100100000000000000000000C1
+:100EC0000440081400800000000000000000000042
+:100ED0002530327820000D0A003A202000303030D2
+:040EE0003A200000B4
+:107E0000112484B714BE81FFF0D085E080938100F7
+:107E100082E08093C00088E18093C10086E0809377
+:107E2000C20080E18093C4008EE0C9D0259A86E02C
+:107E300020E33CEF91E0309385002093840096BBD3
+:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4
+:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7
+:107E6000A2D0813461F49FD0082FAFD0023811F036
+:107E7000013811F484E001C083E08DD089C08234E0
+:107E800011F484E103C0853419F485E0A6D080C0E4
+:107E9000853579F488D0E82EFF2485D0082F10E0AE
+:107EA000102F00270E291F29000F111F8ED06801E7
+:107EB0006FC0863521F484E090D080E0DECF843638
+:107EC00009F040C070D06FD0082F6DD080E0C81688
+:107ED00080E7D80618F4F601B7BEE895C0E0D1E017
+:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8
+:107EF00018F0F601B7BEE89568D007B600FCFDCFD4
+:107F0000A601A0E0B1E02C9130E011968C91119780
+:107F100090E0982F8827822B932B1296FA010C0160
+:107F200087BEE89511244E5F5F4FF1E0A038BF0790
+:107F300051F7F601A7BEE89507B600FCFDCF97BE46
+:107F4000E89526C08437B1F42ED02DD0F82E2BD052
+:107F50003CD0F601EF2C8F010F5F1F4F84911BD097
+:107F6000EA94F801C1F70894C11CD11CFA94CF0C13
+:107F7000D11C0EC0853739F428D08EE10CD085E9AC
+:107F80000AD08FE07ACF813511F488E018D01DD067
+:107F900080E101D065CF982F8091C00085FFFCCF94
+:107FA0009093C60008958091C00087FFFCCF809118
+:107FB000C00084FD01C0A8958091C6000895E0E648
+:107FC000F0E098E1908380830895EDDF803219F02E
+:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA
+:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6
+:047FF000FF270994CA
+:027FFE00040479
+:00000001FF
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.pdsprj b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.pdsprj
new file mode 100644
index 0000000..e7d0700
Binary files /dev/null and b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.pdsprj differ
diff --git a/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace
new file mode 100644
index 0000000..838665b
--- /dev/null
+++ b/ROM DUMP WITHOUT HAVING A EEPROM/microcode-eeprom-with-flags__FORMATTED/microcode-eeprom-with-flags__FORMATTED.pdsprj.IDEAPAD.Subhankar.workspace
@@ -0,0 +1,154 @@
+
+
+
+ 2c0000000200000003000000ffffffffffffffffffffffffffffffff6900000000000000540300007c020000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 279
+ - No
+ - 100
+ - 100
+
+
+
+
+ - 87
+ - No
+ - Yes
+ - 87
+ - Yes
+ - No
+ - No
+ - Yes
+ - 0
+ - 87
+ - 100
+ - 87
+ - 0
+
+
+
+
+
+
+
+ - 0
+ - 0
+
+
+
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000000
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000100
+
+
+
+
+ - 2
+ - Yes
+ - 2
+ - Yes
+ - Yes
+ - 00000020
+
+
+
+
+ - No
+ - Yes
+ - No
+ - No
+ - Yes
+ - No
+ - 0
+
+
+
+
+ - 608
+ - No
+ - Yes
+ - 608
+ - Yes
+ - Yes
+ - No
+ - No
+ - No
+ - 0
+ - 608
+ - 100
+ - 0
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SERIAL DUMP/CORRECTED output for Logisim/FINAL-INS-DEC-without Logisim Format.ROM b/SERIAL DUMP/CORRECTED output for Logisim/FINAL-INS-DEC-without Logisim Format.ROM
new file mode 100644
index 0000000..e4e1a6d
--- /dev/null
+++ b/SERIAL DUMP/CORRECTED output for Logisim/FINAL-INS-DEC-without Logisim Format.ROM
@@ -0,0 +1,64 @@
+40 14 6*0 40 14 48 12 4*0
+40 14 48 10 2 0 0 0
+40 14 48 10 2 0 0 0
+40 14 48 21 4*0 40 14 a
+5*0 40 14 8 5*0 40 14 6*0
+40 14 6*0 40 14 6*0 40 14
+6*0 40 14 6*0 40 14 6*0 40
+14 6*0 40 14 1 5*0 40 14
+80 5*0 4 8 6*0 4 8 6*0
+4 8 0 20 81 0 0 0
+4 8 0 20 c1 0 0 0
+4 8 6*0 4 8 6*0 4 8
+2 5*0 4 8 6*0 4 8 6*0
+4 8 6*0 4 8 6*0 4 8
+6*0 4 8 6*0 4 8 6*0 4
+8 10 5*0 4 8 6*0 40 14
+6*0 40 14 48 12 4*0 40 14
+48 10 2 0 0 0 40 14
+48 10 2 0 0 0 40 14
+48 21 4*0 40 14 a 5*0 40
+14 8 5*0 40 14 8 5*0 40
+14 6*0 40 14 6*0 40 14 6*0
+40 14 6*0 40 14 6*0 40 14
+6*0 40 14 1 5*0 40 14 80
+5*0 4 8 6*0 4 8 6*0 4
+8 0 20 81 0 0 0 4
+8 0 20 c1 0 0 0 4
+8 6*0 4 8 6*0 4 8 2
+5*0 4 8 2 5*0 4 8 6*0
+4 8 6*0 4 8 6*0 4 8
+6*0 4 8 6*0 4 8 6*0 4
+8 10 5*0 4 8 6*0 40 14
+6*0 40 14 48 12 4*0 40 14
+48 10 2 0 0 0 40 14
+48 10 2 0 0 0 40 14
+48 21 4*0 40 14 a 5*0 40
+14 8 5*0 40 14 6*0 40 14
+8 5*0 40 14 6*0 40 14 6*0
+40 14 6*0 40 14 6*0 40 14
+6*0 40 14 1 5*0 40 14 80
+5*0 4 8 6*0 4 8 6*0 4
+8 0 20 81 0 0 0 4
+8 0 20 c1 0 0 0 4
+8 6*0 4 8 6*0 4 8 2
+5*0 4 8 6*0 4 8 2 5*0
+4 8 6*0 4 8 6*0 4 8
+6*0 4 8 6*0 4 8 6*0 4
+8 10 5*0 4 8 6*0 40 14
+6*0 40 14 48 12 4*0 40 14
+48 10 2 0 0 0 40 14
+48 10 2 0 0 0 40 14
+48 21 4*0 40 14 a 5*0 40
+14 8 5*0 40 14 8 5*0 40
+14 8 5*0 40 14 6*0 40 14
+6*0 40 14 6*0 40 14 6*0 40
+14 6*0 40 14 1 5*0 40 14
+80 5*0 4 8 6*0 4 8 6*0
+4 8 0 20 81 0 0 0
+4 8 0 20 c1 0 0 0
+4 8 6*0 4 8 6*0 4 8
+2 5*0 4 8 2 5*0 4 8
+2 5*0 4 8 6*0 4 8 6*0
+4 8 6*0 4 8 6*0 4 8
+6*0 4 8 10 5*0 4 8
\ No newline at end of file
diff --git a/SERIAL DUMP/CORRECTED output for Logisim/LOGISIM-ROM DUMP.ROM b/SERIAL DUMP/CORRECTED output for Logisim/LOGISIM-ROM DUMP.ROM
new file mode 100644
index 0000000..3274744
--- /dev/null
+++ b/SERIAL DUMP/CORRECTED output for Logisim/LOGISIM-ROM DUMP.ROM
@@ -0,0 +1,128 @@
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
\ No newline at end of file
diff --git a/SERIAL DUMP/CORRECTED output for Logisim/LOGISIM-ROM DUMP.txt b/SERIAL DUMP/CORRECTED output for Logisim/LOGISIM-ROM DUMP.txt
new file mode 100644
index 0000000..3274744
--- /dev/null
+++ b/SERIAL DUMP/CORRECTED output for Logisim/LOGISIM-ROM DUMP.txt
@@ -0,0 +1,128 @@
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
\ No newline at end of file
diff --git a/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags_NOT_FORMATTED.ROM b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags_NOT_FORMATTED.ROM
new file mode 100644
index 0000000..3274744
--- /dev/null
+++ b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags_NOT_FORMATTED.ROM
@@ -0,0 +1,128 @@
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
\ No newline at end of file
diff --git a/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags_NOT_FORMATTED.txt b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags_NOT_FORMATTED.txt
new file mode 100644
index 0000000..3274744
--- /dev/null
+++ b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags_NOT_FORMATTED.txt
@@ -0,0 +1,128 @@
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
\ No newline at end of file
diff --git a/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags__FORMATTED.txt b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags__FORMATTED.txt
new file mode 100644
index 0000000..a93f596
--- /dev/null
+++ b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags__FORMATTED.txt
@@ -0,0 +1,66 @@
+Programming EEPROM................ done
+Reading EEPROM
+000: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+010: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+020: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+030: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+040: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+050: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+060: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+070: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+080: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+090: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+0a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+0c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+100: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+110: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+120: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+130: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+140: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+150: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+160: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+170: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+180: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+190: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+1a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+1c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+200: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+210: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+220: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+230: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+240: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+250: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+260: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+270: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+280: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+290: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+2a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+300: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+310: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+320: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+330: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+340: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+350: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+360: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+370: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+380: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+390: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+3a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+3c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+3d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
\ No newline at end of file
diff --git a/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags___FORMATTED.txt b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags___FORMATTED.txt
new file mode 100644
index 0000000..9b91602
--- /dev/null
+++ b/SERIAL DUMP/CORRECTED output for Logisim/microcode-eeprom-with-flags___FORMATTED.txt
@@ -0,0 +1,65 @@
+000: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+10: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+20: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+30: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+40: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+50: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+60: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+70: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+80: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+90: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+B0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+C0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+100: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+110: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+120: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+130: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+140: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+150: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+160: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+170: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+180: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+190: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+1A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1B0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+1C0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+200: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+210: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+220: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+230: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+240: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+250: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+260: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+270: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+280: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+290: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+2A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2B0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2C0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+300: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+310: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+320: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+330: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+340: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+350: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+360: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+370: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+380: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+390: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+3A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3B0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+3C0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+3D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+400:
\ No newline at end of file
diff --git a/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags_NOT_FORMATTED.txt b/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags_NOT_FORMATTED.txt
new file mode 100644
index 0000000..3f99886
--- /dev/null
+++ b/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags_NOT_FORMATTED.txt
@@ -0,0 +1,128 @@
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+20 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 48 12 00 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 10 02 00 00 00
+40 14 48 21 00 00 00 00
+40 14 0a 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 08 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 00 00 00 00 00 00
+40 14 01 00 00 00 00 00
+40 14 80 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 20 81 00 00 00
+04 08 00 20 c1 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 02 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 00 00 00 00 00 00
+04 08 10 00 00 00 00 00
+04 08 00 00 00 00 00 00
diff --git a/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags__FORMATTED.txt b/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags__FORMATTED.txt
new file mode 100644
index 0000000..1b79a0b
--- /dev/null
+++ b/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags__FORMATTED.txt
@@ -0,0 +1,67 @@
+Programming EEPROM................ done
+Reading EEPROM
+000: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+010: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+020: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+030: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+040: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+050: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+060: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+070: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+080: 20 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+090: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+0a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+0c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+0f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+100: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+110: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+120: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+130: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+140: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+150: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+160: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+170: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+180: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+190: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+1a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+1c0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+200: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+210: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+220: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+230: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+240: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+250: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+260: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+270: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+280: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+290: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+2a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2b0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+300: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+310: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+320: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+330: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+340: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+350: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+360: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+370: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+380: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+390: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+3a0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3b0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+3c0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+3d0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3e0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3f0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+400:
\ No newline at end of file
diff --git a/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags___FORMATTED.txt b/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags___FORMATTED.txt
new file mode 100644
index 0000000..5bbee91
--- /dev/null
+++ b/SERIAL DUMP/ORIGINAL output/microcode-eeprom-with-flags___FORMATTED.txt
@@ -0,0 +1,65 @@
+000: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+10: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+20: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+30: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+40: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+50: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+60: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+70: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+80: 20 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+90: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+B0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+C0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+100: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+110: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+120: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+130: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+140: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+150: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+160: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+170: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+180: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+190: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+1A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1B0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+1C0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+1F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+200: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+210: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+220: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+230: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+240: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+250: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+260: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+270: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+280: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+290: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+2A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2B0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2C0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+2D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+2F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+300: 40 14 00 00 00 00 00 00 40 14 48 12 00 00 00 00
+310: 40 14 48 10 02 00 00 00 40 14 48 10 02 00 00 00
+320: 40 14 48 21 00 00 00 00 40 14 0a 00 00 00 00 00
+330: 40 14 08 00 00 00 00 00 40 14 08 00 00 00 00 00
+340: 40 14 08 00 00 00 00 00 40 14 00 00 00 00 00 00
+350: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+360: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00
+370: 40 14 01 00 00 00 00 00 40 14 80 00 00 00 00 00
+380: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+390: 04 08 00 20 81 00 00 00 04 08 00 20 c1 00 00 00
+3A0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3B0: 04 08 02 00 00 00 00 00 04 08 02 00 00 00 00 00
+3C0: 04 08 02 00 00 00 00 00 04 08 00 00 00 00 00 00
+3D0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3E0: 04 08 00 00 00 00 00 00 04 08 00 00 00 00 00 00
+3F0: 04 08 10 00 00 00 00 00 04 08 00 00 00 00 00 00
+400:
\ No newline at end of file
diff --git a/blob/1.png b/blob/1.png
new file mode 100644
index 0000000..618a1ad
Binary files /dev/null and b/blob/1.png differ
diff --git a/blob/2.png b/blob/2.png
new file mode 100644
index 0000000..24456ea
Binary files /dev/null and b/blob/2.png differ
diff --git a/blob/3.png b/blob/3.png
new file mode 100644
index 0000000..3c09674
Binary files /dev/null and b/blob/3.png differ
diff --git a/blob/4.png b/blob/4.png
new file mode 100644
index 0000000..9f0ad82
Binary files /dev/null and b/blob/4.png differ
diff --git a/blob/5.png b/blob/5.png
new file mode 100644
index 0000000..89b9089
Binary files /dev/null and b/blob/5.png differ
diff --git a/blob/6.png b/blob/6.png
new file mode 100644
index 0000000..219cd96
Binary files /dev/null and b/blob/6.png differ
diff --git a/eeprom-programmer/eeprom-programmer.ino b/eeprom-programmer/eeprom-programmer.ino
deleted file mode 100644
index 7073214..0000000
--- a/eeprom-programmer/eeprom-programmer.ino
+++ /dev/null
@@ -1,127 +0,0 @@
-#define SHIFT_DATA 2
-#define SHIFT_CLK 3
-#define SHIFT_LATCH 4
-#define EEPROM_D0 5
-#define EEPROM_D7 12
-#define WRITE_EN 13
-
-/*
- * Output the address bits and outputEnable signal using shift registers.
- */
-void setAddress(int address, bool outputEnable) {
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, (address >> 8) | (outputEnable ? 0x00 : 0x80));
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, address);
-
- digitalWrite(SHIFT_LATCH, LOW);
- digitalWrite(SHIFT_LATCH, HIGH);
- digitalWrite(SHIFT_LATCH, LOW);
-}
-
-
-/*
- * Read a byte from the EEPROM at the specified address.
- */
-byte readEEPROM(int address) {
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, INPUT);
- }
- setAddress(address, /*outputEnable*/ true);
-
- byte data = 0;
- for (int pin = EEPROM_D7; pin >= EEPROM_D0; pin -= 1) {
- data = (data << 1) + digitalRead(pin);
- }
- return data;
-}
-
-
-/*
- * Write a byte to the EEPROM at the specified address.
- */
-void writeEEPROM(int address, byte data) {
- setAddress(address, /*outputEnable*/ false);
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, OUTPUT);
- }
-
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- digitalWrite(pin, data & 1);
- data = data >> 1;
- }
- digitalWrite(WRITE_EN, LOW);
- delayMicroseconds(1);
- digitalWrite(WRITE_EN, HIGH);
- delay(10);
-}
-
-
-/*
- * Read the contents of the EEPROM and print them to the serial monitor.
- */
-void printContents() {
- for (int base = 0; base <= 255; base += 16) {
- byte data[16];
- for (int offset = 0; offset <= 15; offset += 1) {
- data[offset] = readEEPROM(base + offset);
- }
-
- char buf[80];
- sprintf(buf, "%03x: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
- base, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7],
- data[8], data[9], data[10], data[11], data[12], data[13], data[14], data[15]);
-
- Serial.println(buf);
- }
-}
-
-
-// 4-bit hex decoder for common anode 7-segment display
-byte data[] = { 0x81, 0xcf, 0x92, 0x86, 0xcc, 0xa4, 0xa0, 0x8f, 0x80, 0x84, 0x88, 0xe0, 0xb1, 0xc2, 0xb0, 0xb8 };
-
-// 4-bit hex decoder for common cathode 7-segment display
-// byte data[] = { 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b, 0x77, 0x1f, 0x4e, 0x3d, 0x4f, 0x47 };
-
-
-void setup() {
- // put your setup code here, to run once:
- pinMode(SHIFT_DATA, OUTPUT);
- pinMode(SHIFT_CLK, OUTPUT);
- pinMode(SHIFT_LATCH, OUTPUT);
- digitalWrite(WRITE_EN, HIGH);
- pinMode(WRITE_EN, OUTPUT);
- Serial.begin(57600);
-
- // Erase entire EEPROM
- Serial.print("Erasing EEPROM");
- for (int address = 0; address <= 2047; address += 1) {
- writeEEPROM(address, 0xff);
-
- if (address % 64 == 0) {
- Serial.print(".");
- }
- }
- Serial.println(" done");
-
-
- // Program data bytes
- Serial.print("Programming EEPROM");
- for (int address = 0; address < sizeof(data); address += 1) {
- writeEEPROM(address, data[address]);
-
- if (address % 64 == 0) {
- Serial.print(".");
- }
- }
- Serial.println(" done");
-
-
- // Read and print out the contents of the EERPROM
- Serial.println("Reading EEPROM");
- printContents();
-}
-
-
-void loop() {
- // put your main code here, to run repeatedly:
-
-}
diff --git a/microcode-eeprom-programmer/microcode-eeprom-programmer.ino b/microcode-eeprom-programmer/microcode-eeprom-programmer.ino
deleted file mode 100644
index 032cb65..0000000
--- a/microcode-eeprom-programmer/microcode-eeprom-programmer.ino
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * This sketch programs the microcode EEPROMs for the 8-bit breadboard computer
- * See this video for more: https://youtu.be/JUVt_KYAp-I
- */
-#define SHIFT_DATA 2
-#define SHIFT_CLK 3
-#define SHIFT_LATCH 4
-#define EEPROM_D0 5
-#define EEPROM_D7 12
-#define WRITE_EN 13
-
-#define HLT 0b1000000000000000 // Halt clock
-#define MI 0b0100000000000000 // Memory address register in
-#define RI 0b0010000000000000 // RAM data in
-#define RO 0b0001000000000000 // RAM data out
-#define IO 0b0000100000000000 // Instruction register out
-#define II 0b0000010000000000 // Instruction register in
-#define AI 0b0000001000000000 // A register in
-#define AO 0b0000000100000000 // A register out
-#define EO 0b0000000010000000 // ALU out
-#define SU 0b0000000001000000 // ALU subtract
-#define BI 0b0000000000100000 // B register in
-#define OI 0b0000000000010000 // Output register in
-#define CE 0b0000000000001000 // Program counter enable
-#define CO 0b0000000000000100 // Program counter out
-#define J 0b0000000000000010 // Jump (program counter in)
-
-uint16_t data[] = {
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 0000 - NOP
- MI|CO, RO|II|CE, IO|MI, RO|AI, 0, 0, 0, 0, // 0001 - LDA
- MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI, 0, 0, 0, // 0010 - ADD
- MI|CO, RO|II|CE, IO|MI, RO|BI, EO|AI|SU, 0, 0, 0, // 0011 - SUB
- MI|CO, RO|II|CE, IO|MI, AO|RI, 0, 0, 0, 0, // 0100 - STA
- MI|CO, RO|II|CE, IO|AI, 0, 0, 0, 0, 0, // 0101 - LDI
- MI|CO, RO|II|CE, IO|J, 0, 0, 0, 0, 0, // 0110 - JMP
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 0111
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 1000
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 1001
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 1010
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 1011
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 1100
- MI|CO, RO|II|CE, 0, 0, 0, 0, 0, 0, // 1101
- MI|CO, RO|II|CE, AO|OI, 0, 0, 0, 0, 0, // 1110 - OUT
- MI|CO, RO|II|CE, HLT, 0, 0, 0, 0, 0, // 1111 - HLT
-};
-
-
-/*
- * Output the address bits and outputEnable signal using shift registers.
- */
-void setAddress(int address, bool outputEnable) {
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, (address >> 8) | (outputEnable ? 0x00 : 0x80));
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, address);
-
- digitalWrite(SHIFT_LATCH, LOW);
- digitalWrite(SHIFT_LATCH, HIGH);
- digitalWrite(SHIFT_LATCH, LOW);
-}
-
-
-/*
- * Read a byte from the EEPROM at the specified address.
- */
-byte readEEPROM(int address) {
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, INPUT);
- }
- setAddress(address, /*outputEnable*/ true);
-
- byte data = 0;
- for (int pin = EEPROM_D7; pin >= EEPROM_D0; pin -= 1) {
- data = (data << 1) + digitalRead(pin);
- }
- return data;
-}
-
-
-/*
- * Write a byte to the EEPROM at the specified address.
- */
-void writeEEPROM(int address, byte data) {
- setAddress(address, /*outputEnable*/ false);
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, OUTPUT);
- }
-
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- digitalWrite(pin, data & 1);
- data = data >> 1;
- }
- digitalWrite(WRITE_EN, LOW);
- delayMicroseconds(1);
- digitalWrite(WRITE_EN, HIGH);
- delay(10);
-}
-
-
-/*
- * Read the contents of the EEPROM and print them to the serial monitor.
- */
-void printContents() {
- for (int base = 0; base <= 255; base += 16) {
- byte data[16];
- for (int offset = 0; offset <= 15; offset += 1) {
- data[offset] = readEEPROM(base + offset);
- }
-
- char buf[80];
- sprintf(buf, "%03x: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
- base, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7],
- data[8], data[9], data[10], data[11], data[12], data[13], data[14], data[15]);
-
- Serial.println(buf);
- }
-}
-
-
-void setup() {
- // put your setup code here, to run once:
- pinMode(SHIFT_DATA, OUTPUT);
- pinMode(SHIFT_CLK, OUTPUT);
- pinMode(SHIFT_LATCH, OUTPUT);
- digitalWrite(WRITE_EN, HIGH);
- pinMode(WRITE_EN, OUTPUT);
- Serial.begin(57600);
-
- // Program data bytes
- Serial.print("Programming EEPROM");
-
- // Program the 8 high-order bits of microcode into the first 128 bytes of EEPROM
- for (int address = 0; address < sizeof(data)/sizeof(data[0]); address += 1) {
- writeEEPROM(address, data[address] >> 8);
-
- if (address % 64 == 0) {
- Serial.print(".");
- }
- }
-
- // Program the 8 low-order bits of microcode into the second 128 bytes of EEPROM
- for (int address = 0; address < sizeof(data)/sizeof(data[0]); address += 1) {
- writeEEPROM(address + 128, data[address]);
-
- if (address % 64 == 0) {
- Serial.print(".");
- }
- }
-
- Serial.println(" done");
-
-
- // Read and print out the contents of the EERPROM
- Serial.println("Reading EEPROM");
- printContents();
-}
-
-
-void loop() {
- // put your main code here, to run repeatedly:
-
-}
-
diff --git a/multiplexed-display/multiplexed-display.ino b/multiplexed-display/multiplexed-display.ino
deleted file mode 100644
index cc018d6..0000000
--- a/multiplexed-display/multiplexed-display.ino
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * This sketch is specifically for programming the EEPROM used in the 8-bit
- * decimal display decoder described in https://youtu.be/dLh1n2dErzE
- */
-#define SHIFT_DATA 2
-#define SHIFT_CLK 3
-#define SHIFT_LATCH 4
-#define EEPROM_D0 5
-#define EEPROM_D7 12
-#define WRITE_EN 13
-
-/*
- Output the address bits and outputEnable signal using shift registers.
-*/
-void setAddress(int address, bool outputEnable) {
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, (address >> 8) | (outputEnable ? 0x00 : 0x80));
- shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, address);
-
- digitalWrite(SHIFT_LATCH, LOW);
- digitalWrite(SHIFT_LATCH, HIGH);
- digitalWrite(SHIFT_LATCH, LOW);
-}
-
-
-/*
- Read a byte from the EEPROM at the specified address.
-*/
-byte readEEPROM(int address) {
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, INPUT);
- }
- setAddress(address, /*outputEnable*/ true);
-
- byte data = 0;
- for (int pin = EEPROM_D7; pin >= EEPROM_D0; pin -= 1) {
- data = (data << 1) + digitalRead(pin);
- }
- return data;
-}
-
-
-/*
- Write a byte to the EEPROM at the specified address.
-*/
-void writeEEPROM(int address, byte data) {
- setAddress(address, /*outputEnable*/ false);
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- pinMode(pin, OUTPUT);
- }
-
- for (int pin = EEPROM_D0; pin <= EEPROM_D7; pin += 1) {
- digitalWrite(pin, data & 1);
- data = data >> 1;
- }
- digitalWrite(WRITE_EN, LOW);
- delayMicroseconds(1);
- digitalWrite(WRITE_EN, HIGH);
- delay(10);
-}
-
-
-/*
- Read the contents of the EEPROM and print them to the serial monitor.
-*/
-void printContents() {
- for (int base = 0; base <= 255; base += 16) {
- byte data[16];
- for (int offset = 0; offset <= 15; offset += 1) {
- data[offset] = readEEPROM(base + offset);
- }
-
- char buf[80];
- sprintf(buf, "%03x: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
- base, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7],
- data[8], data[9], data[10], data[11], data[12], data[13], data[14], data[15]);
-
- Serial.println(buf);
- }
-}
-
-
-void setup() {
- // put your setup code here, to run once:
- pinMode(SHIFT_DATA, OUTPUT);
- pinMode(SHIFT_CLK, OUTPUT);
- pinMode(SHIFT_LATCH, OUTPUT);
- digitalWrite(WRITE_EN, HIGH);
- pinMode(WRITE_EN, OUTPUT);
- Serial.begin(57600);
-
-
- // Bit patterns for the digits 0..9
- byte digits[] = { 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b };
-
- Serial.println("Programming ones place");
- for (int value = 0; value <= 255; value += 1) {
- writeEEPROM(value, digits[value % 10]);
- }
- Serial.println("Programming tens place");
- for (int value = 0; value <= 255; value += 1) {
- writeEEPROM(value + 256, digits[(value / 10) % 10]);
- }
- Serial.println("Programming hundreds place");
- for (int value = 0; value <= 255; value += 1) {
- writeEEPROM(value + 512, digits[(value / 100) % 10]);
- }
- Serial.println("Programming sign");
- for (int value = 0; value <= 255; value += 1) {
- writeEEPROM(value + 768, 0);
- }
-
- Serial.println("Programming ones place (twos complement)");
- for (int value = -128; value <= 127; value += 1) {
- writeEEPROM((byte)value + 1024, digits[abs(value) % 10]);
- }
- Serial.println("Programming tens place (twos complement)");
- for (int value = -128; value <= 127; value += 1) {
- writeEEPROM((byte)value + 1280, digits[abs(value / 10) % 10]);
- }
- Serial.println("Programming hundreds place (twos complement)");
- for (int value = -128; value <= 127; value += 1) {
- writeEEPROM((byte)value + 1536, digits[abs(value / 100) % 10]);
- }
- Serial.println("Programming sign (twos complement)");
- for (int value = -128; value <= 127; value += 1) {
- if (value < 0) {
- writeEEPROM((byte)value + 1792, 0x01);
- } else {
- writeEEPROM((byte)value + 1792, 0);
- }
- }
-
- // Read and print out the contents of the EERPROM
- Serial.println("Reading EEPROM");
- printContents();
-}
-
-
-void loop() {
- // put your main code here, to run repeatedly:
-
-}
diff --git a/schematic.png b/schematic.png
deleted file mode 100644
index 29a14b1..0000000
Binary files a/schematic.png and /dev/null differ