embedded RTOS class project.
Dependencies: C12832_lcd USBDevice mbed-rtos mbed mmSPI_RTOS watchdog_RTOS
Revision 0:8e898e1270d6, committed 2013-09-17
- Comitter:
- gatedClock
- Date:
- Tue Sep 17 19:42:49 2013 +0000
- Child:
- 1:a3df81701818
- Commit message:
- title.
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/C12832_lcd.lib Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/dreschpe/code/C12832_lcd/#468cdccff7af
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/USBDevice.lib Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/USBDevice/#335f2506f422
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,918 @@
+/*----------------------------------------------//------------------------------
+ student : m-moore
+ email : gated.clock@gmail.com
+ class : embedded RTOS
+ directory : USB_device_project
+ file : main.cpp
+ date : september 19, 2013.
+----copyright-----------------------------------//------------------------------
+ licensed for personal and academic use.
+ commercial use of original code must be approved by the account-holder of
+ gated.clock@gmail.com
+----revision------------------------------------//------------------------------
+ this is the embedded RTOS class revision.
+ changes made since the USB device class release:
+
+ 1. a 'read all registers' feature has been added, which speeds up
+ CPU execution, since the UI obtains all of the register states after
+ each CPU clock. originally, each register was individually read.
+ now, all registers are read at once, if so requested by the python code.
+
+ 2. some 'if' statements were changed to 'switch' statements (neatening).
+
+ 3. added watchdog timers for the three threads. this via a meta-watchdog thread.
+
+ 4. added #defined-based option to either boot on error detection
+ (such as malloc fail) or use error(); function.
+
+ 5. the LCD is updated only if a display value is changed - reduced power
+ usage a little & reduces potential 'blinkieness'.
+
+ 6. BOOT notification on LCD.
+----description---------------------------------//------------------------------
+ overview:
+ program to provide round-trip communication between a python test-control
+ program running on a pc host, and a device-under-test CPU implemented on
+ an altera board. the pc-host communication is over USBSerial, and the
+ altera communication is over SPI.
+
+ features:
+ 1. multi-threaded design, use of memory-pools to transfer data between threads.
+ 2. use of USBDevice library for communication with PC host.
+ 3. use of mmSPI custom library for communication with FPGA.
+ 4. main thread provides USBSerial communication to/from host.
+ 5. SPI processing thread provides SPI communication to/from DUT.
+ 6. mmSPI library generates non-overlapping SPI and CPU clocks.
+ 7. background diagnostic thread provides LCD & error updates.
+ 8. meta watchdog thread monitors itself & the other threads.
+
+ indicators: (led<3:0> = LED<1:4>)
+ 1. LCD provides running counts for SPI and CPU clock cycles.
+ 2. led0 indicates main thread processing.
+ 3. led1 indicates SPI thread processing.
+ 4. led2 indicates LCD thread processing.
+ 5. led3 indicates watchdog thread processing.
+
+ implementation:
+ 1. main.processIncomingSerial(): accept incoming serial data from host,
+ and map it into tFromHost structures.
+ 2. SPIprocessingThread: take the incoming data structures instances, and
+ feed their content into mmSPI commands.
+ 3. mmSPI object: given commands/data passed from caller,
+ map them into SPI outgoing vectors and scan them into the FPGA.
+ 4. mmSPI object: receive incoming SPI vectors from FPGA.
+ make FPGA payload data available to caller.
+ 5. SPIprocessingThread: load tToHost structures with said FPGA payload data.
+ 6. main.processOutgoingSerial(): transfer tToHost structure data into a
+ serial outgoing buffer, and block-transfer it to the host PC.
+
+ electrical:
+ 1. four pins (and ground) attached to the zigbee header,
+ programmed as three SPI pins and the CPU clock.
+ 2. each of the four signals over twisted-pair.
+ 3. but some ribbon cable is used at the FPGA end.
+ 4. best if only the mbed application board USB cable is attached
+ to the host; if the mbed CPU board USB cable is also attached to
+ the host, then the python program may attempt to use the wrong USB
+ connection.
+ 5. no particular power sequence is needed for this system to work.
+
+ timing critical path: serial processing. the python code needs
+ a delay between serial access of 40mS conservatively.
+
+ testing:
+ the python UI provides the main testing mechanism.
+
+ USB connect.
+ 00. press 'CONNECT' button in UI. verify connection info in shell.
+
+ CPU register w/r
+ 01. type values into {R0,R1,R2,R3,PC,IR} UI entry-forms.
+ 02. press 'REG WRITE' UI button.
+ 03. press 'REG READ' UI button.
+ 04. verify that the read data is correct.
+
+ CPU main-memory w/r
+ 05. type an address into 'mmADR' UI entry-form.
+ 06. type data into 'mmVAL' UI entry-form.
+ 07. press 'MM WRITE' UI button.
+ 08. type a different address into 'mmADR' UI entry-form.
+ 09. type different data into 'mmVAL' UI entry-form.
+ 10. press 'MM WRITE' UI button.
+ 11. type address from (05) into 'mmADR' UI entry-form.
+ 12. press 'MM READ' UI button.
+ 13. verify that the data from (06) is seen in the 'mmVAL' entry form.
+ 14. type address from (08) into 'mmADR' UI entry-form.
+ 15. press 'MM READ' UI button.
+ 16. verify that the data from (09) is seen in the 'mmVAL' entry form.
+
+ CPU main-memory full load/dump.
+ 17. press 'PROGRAM' in the UI. select a program file in the dialog-popup.
+ 18. watch the load process in the shell text.
+ 19. press 'DUMP in the UI. select a main-memory dump file in the diaglog-popup.
+ 20. watch the dump process in the shell text.
+
+ CPU step function.
+ 21. press 'STEP' in the UI repeatedly, watch the UI display the
+ CPU register states as the current program is executed one CPU clock
+ at a time.
+
+ CPU run function.
+ 22. press 'RUN' in the UI. watch the current program run at high speed.
+ 23. press 'SLOW' in the UI. watch the current program run at slow speed.
+ 24. press 'STOP' in the UI. the program will stop execution.
+
+ CPU test function.
+ 25. press 'TEST' in the UI. the program will load,execute,dump,compare.
+ 26. tail -f testlog.txt to see test status.
+ 27. the test will repeat until 'STOP TEST' is pressed.
+ 28. long test performed by allowing this mode to continue.
+
+ UI exit function.
+ 29. press 'EXIT' in the UI. it will exit.
+-----includes-----------------------------------//----------------------------*/
+ #include "mbed.h" // general.
+ #include "USBSerial.h" // serial over USB.
+ #include "C12832_lcd.h" // LCD display.
+ #include "rtos.h" // RTOS.
+ #include "mmSPI.h" // SPI.
+ #include "watchdog.h" // watchdog.
+//---defines------------------------------------//------------------------------
+ #define LCD1 lcd.locate(0, 0); // LCD line 1.
+ #define LCD2 lcd.locate(0,11); // LCD line 2.
+ #define LCD3 lcd.locate(0,22); // LCD line 3.
+ #define LCD3 lcd.locate(0,22); // LCD line 3.
+ #define WATCHDOG_S 10 // watchdog timeout, in seconds.
+ #define ERROR_BOOT 1 // 1 means boot rather than error().
+ #define SPI_BYTES 8 // number of SPI bytes.
+ #define SPI_HZ 100000 // SPI frequency in Hz.
+ #define SER_BYTES 18 // serial in/out # of bytes.
+ #define SER_ALIGN 7 // '$' location in shift-register.
+ #define THREAD_0_WAIT 8 // multitasking wait mS.
+ #define THREAD_1_WAIT 2 // multitasking wait mS.
+ #define THREAD_2_WAIT 128 // multitasking wait mS.
+ #define THREAD_3_WAIT 128 // multitasking wait mS.
+ #define HB_MODULO 64 // heartbeat slowdown factor.
+ #define POOL_LEN 16 // memory pool dimension.
+ #define HCMD_SETREG 1 // host command 'set register'.
+ #define HCMD_GETREG 2 // host command 'get register'.
+ #define HCMD_SETMM 3 // host command 'set main-memory.'
+ #define HCMD_GETMM 4 // host command 'get main-memory.'
+ #define HCMD_STEP 5 // host command 'step-CPU'.
+ #define HCMD_SETIR 6 // host command 'set-IR'.
+ #define HCMD_GETALLREG 7 // host command 'get-all-registers'.
+ #define CPU_REG_0 0 // CPU register 0.
+ #define CPU_REG_1 1 // CPU register 1.
+ #define CPU_REG_2 2 // CPU register 2.
+ #define CPU_REG_3 3 // CPU register 3.
+ #define CPU_REG_PC 4 // CPU Program Counter.
+ #define CPU_IR_H 5 // CPU IR high-byte.
+ #define CPU_IR_L 6 // CPU IR low-byte.
+//--externals-----------------------------------//------------------------------
+ extern "C" void mbed_reset(); // processor reset.
+//--global_definitions--------------------------//------------------------------
+ struct tFromHost // command from host.
+ {
+ char cCommand; // command from host.
+ char cRegisterID; // which CPU register.
+ char cRegisterValue; // write this to CPU register.
+ char cIRValueH; // write this to IR.
+ char cIRValueL; // write this to IR.
+ char cMMaddress; // access this MM address.
+ char cMMdataH; // MM content high byte.
+ char cMMdataL; // MM content low byte.
+ };
+ MemoryPool<tFromHost, POOL_LEN> mPoolFromHost;
+ Queue <tFromHost, POOL_LEN> qFromHost;
+
+//----
+
+ struct tToHost // reply to host.
+ {
+ char cCommand; // command executed.
+ char cRegisterID; // which CPU register read.
+ char cRegisterValue; // data from CPU register.
+ char cMMaddress; // which MM address read.
+ char cMMdataH; // MM content high byte.
+ char cMMdataL; // MM content low byte.
+ char cReg0; // data from R0.
+ char cReg1; // data from R1.
+ char cReg2; // data from R2.
+ char cReg3; // data from R3.
+ char cPC; // data from program counter.
+ char cIRH; // high byte from instruction register.
+ char cIRL; // low byte from instruction register.
+ };
+ MemoryPool<tToHost, POOL_LEN> mPoolToHost;
+ Queue <tToHost, POOL_LEN> qToHost;
+
+ Queue<int, POOL_LEN> queueWatchdogThread_0; // main thread watchdog notice.
+ Queue<int, POOL_LEN> queueWatchdogThread_1; // thread 1 watchdog notice.
+ Queue<int, POOL_LEN> queueWatchdogThread_2; // thread 2 watchdog notice.
+//--global_variables----------------------------//------------------------------
+ char gpcSerialFromHost[SER_BYTES]; // incoming serial buffer.
+ char gpcSerialToHost [SER_BYTES]; // outgoing serial buffer.
+ char gcNewCommand; // new command from host.
+ int gdRoundTrip; // +1 from host, -1 to host.
+ tToHost * gpToHost; // to-host structure.
+ osEvent gqToHostEvent; // incoming message event.
+ unsigned long gulSPIclkCount; // SPI clock count.
+ unsigned long gulCPUclkCount; // CPU clock count.
+//--global_instances----------------------------//------------------------------
+ USBSerial serial; // serial over usb.
+ C12832_LCD lcd; // LCD display.
+ DigitalOut led0(LED4); // thread heartbeat.
+ DigitalOut led1(LED3); // thread heartbeat.
+ DigitalOut led2(LED2); // thread heartbeat.
+ DigitalOut led3(LED1); // SPI reply underflow warning.
+//-------prototypes-----------------------------//------------------------------
+ int main(); // main.
+ void processIncomingSerial(); // process incoming host data.
+ void processOutgoingSerial(); // process outgoing data to host.
+ void SPIprocessingThread(void const *args); // SPI-side processing.
+ void diagnosticThread (void const *args); // LCD and LED notifications.
+ void watchdogThread (void const *args); // overall watchdog.
+ char ascii_nibble_to_binary(char cAscii); // ascii nibble -> binary.
+ char binary_to_ascii_nibble(char cBinary); // binary -> ascii nibble.
+ void clear_tFromHost(tFromHost *ptFromHost);// initialize structure.
+ void clear_tToHost (tToHost *ptToHost); // initialize structure.
+//==============================================//==============================
+ int main(void) // USBSerial processing thread.
+ {
+ int dHeartbeat; // heartbeat counter.
+ int dLoop; // loop index.
+
+ gpToHost = NULL; // initialize global.
+ gcNewCommand = 0; // initialize global.
+ gdRoundTrip = 1024; // initialize global.
+ gulSPIclkCount = 0; // initialize global.
+ gulCPUclkCount = 0; // initialize global.
+ led0 = 0; // initialize global.
+ led1 = 0; // initialize global.
+ led2 = 0; // initialize global.
+ led3 = 0; // initialize global.
+ dHeartbeat = 0; // initialize local.
+ dLoop = 0; // initialize local.
+
+ // BOOT notification.
+ lcd.cls(); LCD2; lcd.printf(" BOOT"); wait(1.0);
+
+ // initialize serial-in shift-register.
+ for (dLoop = 0; dLoop < SER_BYTES; dLoop++) gpcSerialFromHost[dLoop] = 0;
+
+ // thread-out SPI-side processing.
+ Thread thread_1(SPIprocessingThread,NULL,osPriorityHigh,DEFAULT_STACK_SIZE,NULL);
+
+ // thread-out diagnostics.
+ Thread thread_2(diagnosticThread, NULL,osPriorityIdle,DEFAULT_STACK_SIZE,NULL);
+
+ // thread-out universal watchdog.
+ Thread thread_3(watchdogThread, NULL,osPriorityIdle,DEFAULT_STACK_SIZE,NULL);
+
+ while(1) // main loop.
+ {
+ processIncomingSerial(); // process data in from host.
+ processOutgoingSerial(); // process data out to host.
+
+ dHeartbeat++; // thread heartbeat.
+ if (!(dHeartbeat % HB_MODULO)) led0 = !led0;
+ queueWatchdogThread_0.put((int *) 0,1); // adds 1mS to wait.
+ Thread::wait(THREAD_0_WAIT - 1); // multitasking.
+ } // main loop.
+ } // main.
+/*----------------------------------------------//----------------------------*/
+/*
+ the python program running on the host is sending/receiving ascii characters
+ which represent command/data binary nibbles. the python program will send
+ the '$' character for command-string alignment. this function reads-in the
+ incoming serial stream when any serial data is available, into a shift-register,
+ and breaks upon detection of the '$' alignment character for python
+ command-processing. at that point the shift-register will look something like
+ [0] [1] [2] [3] [4] [5] [6] [7]
+ '1' '2' '3' '4' x x x '$' (means write 0x34 to CPU R2).
+
+
+ command-host register-number interpretation:
+ 0 = CPU R0.
+ 1 = CPU R1.
+ 2 = CPU R2.
+ 3 = CPU R3.
+ 4 = CPU program-counter.
+ 5 = CPU instruction-register high-byte.
+ 6 = CPU instruction-register low-byte.
+
+ instruction-register write is specially implemented,
+ instruction-register read is implemented as two standard register-reads.
+
+ host-command shift-register interpretation:
+
+ gpcSerialFromHost[0] = command.
+ subsequent interpretation depends on the command.
+
+----
+ if command = HCMD_SETREG (write-CPU-register) or HCMD_GETREG (read-CPU-register):
+
+ gpcSerialFromHost[1] = register number (see above).
+ gpcSerialFromHost[2] = register content, high nibble.
+ gpcSerialFromHost[3] = register content, low nibble.
+ gpcSerialFromHost[4] = not used.
+ gpcSerialFromHost[5] = not used.
+ gpcSerialFromHost[6] = not used.
+
+----
+ if command = HCMD_SETIR (write-CPU-instruction-register):
+
+ gpcSerialFromHost[1] = IR register number, implied anyway.
+ gpcSerialFromHost[2] = IR write value high byte high nibble.
+ gpcSerialFromHost[3] = IR write value high byte low nibble.
+ gpcSerialFromHost[4] = IR write value low byte high nibble.
+ gpcSerialFromHost[5] = IR write value low byte low nibble.
+ gpcSerialFromHost[6] = not used.
+
+----
+ if command = HCMD_SETMM (write to CPU main-memory) or HCMD_GETMM (read from CPU main-memory):
+
+ gpcSerialFromHost[1] = MM address high nibble.
+ gpcSerialFromHost[2] = MM address low nibble.
+ gpcSerialFromHost[3] = MM content high byte high nibble.
+ gpcSerialFromHost[4] = MM content high byte low nibble.
+ gpcSerialFromHost[5] = MM content low byte high nibble.
+ gpcSerialFromHost[6] = MM content low byte low nibble.
+
+ the above also applies to function 'processOutgoingSerial'.
+*/
+
+ void processIncomingSerial(void) // process incoming serial data.
+ {
+ int dLoop; // loop index.
+ tFromHost * pFromHost; // from-host structure.
+
+ while(serial.available()) // while data from host is available.
+ {
+ // shift-in the serial stream.
+ for (dLoop = 0; dLoop < (SER_BYTES - 1); dLoop++)
+ gpcSerialFromHost[dLoop] = gpcSerialFromHost[dLoop + 1];
+ gpcSerialFromHost[SER_BYTES - 1] = serial._getc();
+
+ if (gpcSerialFromHost[SER_ALIGN] == '$')// data from host is aligned.
+ {
+ gcNewCommand = 1; // new host command just recognised.
+ break; // need to process aligned data.
+ } // data from host is aligned.
+ } // while data from host is available.
+
+ // even if more data awaits from the
+ // incoming serial stream, we now need
+ // to process the aligned data recognised
+ // as a command from the host.
+
+ if (gcNewCommand) // execute once per new command.
+ {
+ pFromHost = mPoolFromHost.alloc(); // allocate next pool entry.
+ if (!pFromHost) // failure detection.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r processIncomingSerial : FATAL malloc error for pFromHost. \n\r");
+ }
+
+ clear_tFromHost(pFromHost); // initialize structure.
+
+ // copy-in host message.
+ pFromHost->cCommand = ascii_nibble_to_binary(gpcSerialFromHost[0]);
+
+//----
+
+ switch(pFromHost->cCommand) // command dependency.
+ {
+ case HCMD_SETREG : // host command 'set register'.
+ {
+ pFromHost->cRegisterID = ascii_nibble_to_binary(gpcSerialFromHost[1]);
+ pFromHost->cRegisterValue = ((ascii_nibble_to_binary(gpcSerialFromHost[2])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[3]);
+ break;
+ } // host command 'set register'.
+
+ case HCMD_GETREG : // host command 'get register'.
+ {
+ pFromHost->cRegisterID = ascii_nibble_to_binary(gpcSerialFromHost[1]);
+ pFromHost->cRegisterValue = ((ascii_nibble_to_binary(gpcSerialFromHost[2])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[3]);
+ gdRoundTrip++; // expected reply to host is pending.
+ break;
+ } // host command 'get register'.
+
+ case HCMD_SETMM : // host command 'set main-memory.'
+ {
+ pFromHost->cMMaddress = ((ascii_nibble_to_binary(gpcSerialFromHost[1])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[2]);
+ pFromHost->cMMdataH = ((ascii_nibble_to_binary(gpcSerialFromHost[3])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[4]);
+ pFromHost->cMMdataL = ((ascii_nibble_to_binary(gpcSerialFromHost[5])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[6]);
+ break;
+ } // host command 'set main-memory.'
+
+ case HCMD_GETMM : // host command 'get main-memory.'
+ {
+ pFromHost->cMMaddress = ((ascii_nibble_to_binary(gpcSerialFromHost[1])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[2]);
+ pFromHost->cMMdataH = ((ascii_nibble_to_binary(gpcSerialFromHost[3])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[4]);
+ pFromHost->cMMdataL = ((ascii_nibble_to_binary(gpcSerialFromHost[5])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[6]);
+
+ gdRoundTrip++; // expected reply to host is pending.
+ break;
+ } // host command 'get main-memory.'
+
+ case HCMD_STEP : // host command 'step-CPU'.
+ {
+ break;
+ } // host command 'step-CPU'.
+
+ case HCMD_SETIR : // host command 'set-IR'.
+ {
+ pFromHost->cIRValueH = ((ascii_nibble_to_binary(gpcSerialFromHost[2])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[3]);
+ pFromHost->cIRValueL = ((ascii_nibble_to_binary(gpcSerialFromHost[4])) << 4) +
+ ascii_nibble_to_binary(gpcSerialFromHost[5]);
+ break;
+ } // host command 'set-IR'.
+
+ case HCMD_GETALLREG : // host command 'get-all-registers'.
+ {
+ gdRoundTrip++; // expected reply to host is pending.
+ break;
+ } // host command 'get-all-registers'.
+
+ default : // default.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r processIncomingSerial : ERROR unrecognised command from host. \n\r");
+ break;
+ } // default.
+ } // command dependency.
+
+//----
+
+ qFromHost.put(pFromHost); // send out for processing.
+ gcNewCommand = 0; // don't execute until next new command.
+ } // execute once per new command.
+ Thread::wait(THREAD_0_WAIT); // multitasking.
+ } // processIncomingSerial
+/*----------------------------------------------//----------------------------*/
+ void processOutgoingSerial(void) // prepare/transmit data to host.
+ {
+ int dLoop; // loop index.
+
+ gqToHostEvent = qToHost.get(1); // check for reply back to host.
+
+ // if new reply to host:
+ if (gqToHostEvent.status == osEventMessage)
+ {
+ // bring it in from the queue.
+ gpToHost = (tToHost *) gqToHostEvent.value.p;
+ if (!gpToHost) // failure detection.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r processOutgoingSerial : FATAL NULL gpToHost pointer. \n\r");
+ }
+
+ // clear outgoing buffer.
+ for (dLoop = 0; dLoop < SER_BYTES; dLoop++) gpcSerialToHost[dLoop] = 0;
+
+ switch(gpToHost->cCommand) // the from-host command was looped to here.
+ {
+ case HCMD_SETREG : // host command 'set register'.
+ {
+ break;
+ } // host command 'set register'.
+
+ case HCMD_GETREG : // host command 'get register'.
+ {
+ gpcSerialToHost[0] = binary_to_ascii_nibble( gpToHost->cCommand);
+ gpcSerialToHost[1] = binary_to_ascii_nibble( gpToHost->cRegisterID);
+ gpcSerialToHost[2] = binary_to_ascii_nibble(((gpToHost->cRegisterValue) >> 4) & 0x0F);
+ gpcSerialToHost[3] = binary_to_ascii_nibble(((gpToHost->cRegisterValue) >> 0) & 0x0F);
+ gpcSerialToHost[4] = '\n'; // signals end of transfer.
+
+ // transmit to the host.
+ serial.writeBlock((uint8_t *) gpcSerialToHost, (uint16_t) SER_BYTES);
+ gdRoundTrip--; // expected reply sent to host.
+ break;
+ } // host command 'get register'.
+
+ case HCMD_SETMM : // host command 'set main-memory.'
+ {
+ break;
+ } // host command 'set main-memory.'
+
+ case HCMD_GETMM : // host command 'get main-memory.'
+ {
+ gpcSerialToHost[0] = binary_to_ascii_nibble( gpToHost->cCommand);
+ gpcSerialToHost[1] = binary_to_ascii_nibble(((gpToHost->cMMaddress) >> 4) & 0x0F);
+ gpcSerialToHost[2] = binary_to_ascii_nibble(((gpToHost->cMMaddress) >> 0) & 0x0F);
+ gpcSerialToHost[3] = binary_to_ascii_nibble(((gpToHost->cMMdataH ) >> 4) & 0x0F);
+ gpcSerialToHost[4] = binary_to_ascii_nibble(((gpToHost->cMMdataH ) >> 0) & 0x0F);
+ gpcSerialToHost[5] = binary_to_ascii_nibble(((gpToHost->cMMdataL ) >> 4) & 0x0F);
+ gpcSerialToHost[6] = binary_to_ascii_nibble(((gpToHost->cMMdataL ) >> 0) & 0x0F);
+ gpcSerialToHost[7] = '\n'; // signals end of transfer.
+
+ // transmit to the host.
+ serial.writeBlock((uint8_t *) gpcSerialToHost, (uint16_t) SER_BYTES);
+ gdRoundTrip--; // expected reply sent to host.
+ break;
+ } // host command 'get main-memory.'
+
+ case HCMD_STEP : // host command 'step-CPU'.
+ {
+ break;
+ } // host command 'step-CPU'.
+
+ case HCMD_SETIR : // host command 'set-IR'.
+ {
+ break;
+ } // host command 'set-IR'.
+
+ case HCMD_GETALLREG : // host command 'get-all-registers'.
+ {
+ gpcSerialToHost[ 0] = binary_to_ascii_nibble( gpToHost->cCommand);
+ gpcSerialToHost[ 1] = binary_to_ascii_nibble(((gpToHost->cReg0) >> 4) & 0x0F);
+ gpcSerialToHost[ 2] = binary_to_ascii_nibble(((gpToHost->cReg0) >> 0) & 0x0F);
+ gpcSerialToHost[ 3] = binary_to_ascii_nibble(((gpToHost->cReg1) >> 4) & 0x0F);
+ gpcSerialToHost[ 4] = binary_to_ascii_nibble(((gpToHost->cReg1) >> 0) & 0x0F);
+ gpcSerialToHost[ 5] = binary_to_ascii_nibble(((gpToHost->cReg2) >> 4) & 0x0F);
+ gpcSerialToHost[ 6] = binary_to_ascii_nibble(((gpToHost->cReg2) >> 0) & 0x0F);
+ gpcSerialToHost[ 7] = binary_to_ascii_nibble(((gpToHost->cReg3) >> 4) & 0x0F);
+ gpcSerialToHost[ 8] = binary_to_ascii_nibble(((gpToHost->cReg3) >> 0) & 0x0F);
+ gpcSerialToHost[ 9] = binary_to_ascii_nibble(((gpToHost->cPC) >> 4) & 0x0F);
+ gpcSerialToHost[10] = binary_to_ascii_nibble(((gpToHost->cPC) >> 0) & 0x0F);
+ gpcSerialToHost[11] = binary_to_ascii_nibble(((gpToHost->cIRH) >> 4) & 0x0F);
+ gpcSerialToHost[12] = binary_to_ascii_nibble(((gpToHost->cIRH) >> 0) & 0x0F);
+ gpcSerialToHost[13] = binary_to_ascii_nibble(((gpToHost->cIRL) >> 4) & 0x0F);
+ gpcSerialToHost[14] = binary_to_ascii_nibble(((gpToHost->cIRL) >> 0) & 0x0F);
+ gpcSerialToHost[15] = '\n'; // signals end of transfer.
+
+ // transmit to the host.
+ serial.writeBlock((uint8_t *) gpcSerialToHost, (uint16_t) SER_BYTES);
+ gdRoundTrip--; // expected reply sent to host.
+ break;
+ } // host command 'get-all-registers'.
+
+ default :
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r processOutgoingSerial : ERROR unrecognised command from host. \n\r");
+ break;
+ } // default.
+ } // switch(gpToHost->cCommand)
+
+ mPoolToHost.free(gpToHost); // done with this queue entry.
+ gpToHost = NULL; // clear pointer.
+ } // if new reply to host.
+ } // processOutgoingSerial.
+/*----------------------------------------------//----------------------------*/
+// the pcSendBuffer and pcReceiveBuffer arrays are not used by this function,
+// but they are declared by this function, and their pointers are passed
+// down to the mmSPI library for its use of them.
+// note- the prefix 'pc' means 'pointer of type character', not 'personal computer'.
+
+ void SPIprocessingThread(void const *args) // process host-commands via SPI.
+ {
+ char pcSendBuffer [SPI_BYTES]; // SPI send buffer.
+ char pcReceiveBuffer[SPI_BYTES]; // SPI receive buffer.
+ char pcRegisters [SPI_BYTES]; // fetch-all-registers vector.
+ int dHeartbeat; // heartbeat counter.
+ int dMemoryRead; // read main-memory into this.
+ int dLoop; // loop index.
+ osEvent qFromHostEvent; // incoming message event.
+ tFromHost * pFromHost; // message structure.
+ tToHost * gpToHost; // message structure.
+ mmSPI * pSPI; // SPI.
+
+ pFromHost = NULL; // NULL pointers.
+ gpToHost = NULL;
+ pSPI = NULL;
+ dHeartbeat = 0; // clear variables.
+ dMemoryRead = 0;
+ dLoop = 0;
+ // clear SPI vectors.
+ for (dLoop = 0; dLoop < SPI_BYTES; dLoop++) pcSendBuffer [dLoop] = 0;
+ for (dLoop = 0; dLoop < SPI_BYTES; dLoop++) pcReceiveBuffer[dLoop] = 0;
+
+ pSPI = new mmSPI; // SPI allocation.
+ if (!pSPI) // failure detection.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r SPIprocessingThread : FATAL new error for pSPI. \n\r");
+ }
+
+ pSPI->setSendBuffer (pcSendBuffer); // set SPI send buffer.
+ pSPI->setReceiveBuffer(pcReceiveBuffer); // set SPI receive buffer.
+ pSPI->setNumberOfBytes(SPI_BYTES); // set SPI number of bytes.
+ pSPI->setSPIfrequency (SPI_HZ); // set SPI clock frequency.
+
+ while(1) // thread loop.
+ {
+ qFromHostEvent = qFromHost.get(1); // check for incoming host command.
+
+ // if new host command:
+ if (qFromHostEvent.status == osEventMessage)
+ {
+ // bring it in from the queue.
+ pFromHost = (tFromHost *) qFromHostEvent.value.p;
+ if (!pFromHost) // failure detection.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r SPIprocessingThread : FATAL NULL pFromHost pointer. \n\r");
+ }
+
+ switch(pFromHost->cCommand) // host command decode.
+ {
+ case HCMD_SETREG : // set CPU register.
+ {
+ switch(pFromHost->cRegisterID) // which register to write to.
+ {
+ case CPU_REG_0 : {pSPI->write_register(CPU_REG_0 , pFromHost->cRegisterValue); break;}
+ case CPU_REG_1 : {pSPI->write_register(CPU_REG_1 , pFromHost->cRegisterValue); break;}
+ case CPU_REG_2 : {pSPI->write_register(CPU_REG_2 , pFromHost->cRegisterValue); break;}
+ case CPU_REG_3 : {pSPI->write_register(CPU_REG_3 , pFromHost->cRegisterValue); break;}
+ case CPU_REG_PC : {pSPI->write_register(CPU_REG_PC, pFromHost->cRegisterValue); break;}
+ default : {break;}
+ } // which register to write to.
+ break;
+ } // set CPU register.
+
+ case HCMD_SETIR: // set instruction register.
+ {
+ pSPI->write_IR(pFromHost->cIRValueH, pFromHost->cIRValueL);
+ break;
+ } // set instruction register.
+
+ case HCMD_GETREG : // get CPU register.
+ {
+ gpToHost = mPoolToHost.alloc(); // allocate next pool entry.
+ if (!gpToHost) // failure detection.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r SPIprocessingThread : FATAL malloc error for gpToHost. \n\r");
+ }
+
+ clear_tToHost(gpToHost); // initialize structure.
+
+ switch(pFromHost->cRegisterID) // which register to read from.
+ {
+ case CPU_REG_0 : {gpToHost->cRegisterValue = pSPI->read_register(CPU_REG_0 ); break;}
+ case CPU_REG_1 : {gpToHost->cRegisterValue = pSPI->read_register(CPU_REG_1 ); break;}
+ case CPU_REG_2 : {gpToHost->cRegisterValue = pSPI->read_register(CPU_REG_2 ); break;}
+ case CPU_REG_3 : {gpToHost->cRegisterValue = pSPI->read_register(CPU_REG_3 ); break;}
+ case CPU_REG_PC : {gpToHost->cRegisterValue = pSPI->read_register(CPU_REG_PC); break;}
+ case CPU_IR_H : {gpToHost->cRegisterValue = pSPI->read_register(CPU_IR_H ); break;}
+ case CPU_IR_L : {gpToHost->cRegisterValue = pSPI->read_register(CPU_IR_L ); break;}
+ default : {break;}
+ } // which register to read from.
+
+ // loop-back to host.
+ gpToHost->cCommand = pFromHost->cCommand;
+ gpToHost->cRegisterID = pFromHost->cRegisterID;
+
+ qToHost.put(gpToHost); // send up for processing.
+ break;
+ } // get CPU register.
+
+ case HCMD_GETALLREG : // get all CPU registers.
+ {
+ gpToHost = mPoolToHost.alloc(); // allocate next pool entry.
+ if (!gpToHost) // failure detection.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r SPIprocessingThread : FATAL malloc error for gpToHost. \n\r");
+ }
+
+ clear_tToHost(gpToHost); // initialize structure.
+
+ // tell SPI to return all reg content.
+ pSPI->read_all_registers(pcRegisters);
+
+ gpToHost->cReg0 = pcRegisters[6]; // transfer to outgoing structure.
+ gpToHost->cReg1 = pcRegisters[5];
+ gpToHost->cReg2 = pcRegisters[4];
+ gpToHost->cReg3 = pcRegisters[3];
+ gpToHost->cPC = pcRegisters[2];
+ gpToHost->cIRH = pcRegisters[1];
+ gpToHost->cIRL = pcRegisters[0];
+
+ // loop-back to host.
+ gpToHost->cCommand = pFromHost->cCommand;
+ qToHost.put(gpToHost); // send up for processing.
+
+ break;
+ } // get all CPU registers.
+
+ case HCMD_SETMM : // do main-memory write.
+ {
+ pSPI->write_memory(pFromHost->cMMdataH, pFromHost->cMMdataL, pFromHost->cMMaddress);
+ break;
+ } // do main-memory write.
+
+ case HCMD_GETMM : // do main-memory read.
+ {
+ gpToHost = mPoolToHost.alloc(); // allocate next pool entry.
+ if (!gpToHost) // failure detection.
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r SPIprocessingThread : FATAL malloc error for gpToHost. \n\r");
+ }
+
+ clear_tToHost(gpToHost); // initialize structure.
+
+ // read from CPU memory.
+ dMemoryRead = pSPI->read_memory(pFromHost->cMMaddress);
+ gpToHost->cMMdataH = (dMemoryRead >> 8) & 0xFF;
+ gpToHost->cMMdataL = (dMemoryRead >> 0) & 0xFF;
+
+ // loop-back to host.
+ gpToHost->cCommand = pFromHost->cCommand;
+ gpToHost->cMMaddress = pFromHost->cMMaddress;
+
+ qToHost.put(gpToHost); // send up for processing.
+ break;
+ } // do main-memory read.
+
+ case HCMD_STEP : // step the CPU.
+ {
+ pSPI->step();
+ break;
+ } // step the CPU.
+ default : break;
+ } // host command decode.
+ mPoolFromHost.free(pFromHost); // done with this queue entry.
+ pFromHost = NULL; // clear pointer.
+ } // if new host command.
+
+ gulSPIclkCount = pSPI->SPIClockCount(); // propagate to global variable.
+ gulCPUclkCount = pSPI->CPUClockCount(); // propagate to global variable.
+
+ // thread heartbeat.
+ dHeartbeat++; if (!(dHeartbeat % HB_MODULO)) led1 = !led1;
+ queueWatchdogThread_1.put((int *) 0,1); // adds 1mS to wait.
+ Thread::wait(THREAD_1_WAIT - 1); // cooperative multitasking.
+ } // thread loop.
+ } // SPIprocessingThread.
+/*----------------------------------------------//----------------------------*/
+ void diagnosticThread(void const *args) // LCD notification & error check.
+ {
+ // track previous values.
+ static unsigned long ulLastSPIclkCount = 1;
+ static unsigned long ulLastCPUclkCount = 1;
+ int dHeartbeat; // heartbeat counter.
+
+ dHeartbeat = 0; // initialize.
+
+ while(1) // thread loop.
+ {
+ // if message round trip
+ // count not consistent.
+ if (gdRoundTrip > 1025 || gdRoundTrip < 1024)
+ {
+ if (ERROR_BOOT) mbed_reset(); else
+ error("\n\r diagnosticThread : ERROR serial reply underflow. \n\r");
+ }
+
+ // update LCD only if a display
+ // value has changed. anti-blink,
+ // save a bit of power.
+ if (gulSPIclkCount != ulLastSPIclkCount ||
+ gulCPUclkCount != ulLastCPUclkCount )
+ {
+ lcd.cls(); // clear LCD display.
+ LCD1; // lcd line 1.
+ lcd.printf(" RTOS CLASS PROJECT");
+
+ LCD2; // lcd line 2.
+ lcd.printf(" %11lu = SPI clocks",gulSPIclkCount);
+
+ LCD3; // lcd line 3.
+ lcd.printf(" %11lu = CPU clocks",gulCPUclkCount);
+ }
+
+ ulLastSPIclkCount = gulSPIclkCount; // pipeline.
+ ulLastCPUclkCount = gulCPUclkCount; // pipeline.
+
+ dHeartbeat++; // thread heartbeat.
+ if (!(dHeartbeat % HB_MODULO)) led2 = !led2;
+ queueWatchdogThread_2.put((int *) 0,1); // adds 1mS to wait.
+ Thread::wait(THREAD_2_WAIT - 1); // multitasking.
+ } // thread loop.
+ } // diagnosticThread.
+/*----------------------------------------------//----------------------------*/
+ // this is its own watchdog.
+
+ void watchdogThread(void const *args) // overall watchdog.
+ {
+ int dHeartbeat; // heartbeat counter.
+ osEvent queueEvent; // queue event
+ Watchdog watchdog; // the one and only watchdog.
+
+ dHeartbeat = 0; // initialize.
+
+ watchdog.kick(WATCHDOG_S); // initialize watchdog.
+
+ while (1) // thread loop.
+ {
+ // all other threads report-in.
+ // blocking wait on all of them.
+ queueEvent = queueWatchdogThread_0.get(osWaitForever);
+ queueEvent = queueWatchdogThread_1.get(osWaitForever);
+ queueEvent = queueWatchdogThread_2.get(osWaitForever);
+
+ watchdog.kick(); // reset watchdog timer.
+
+ dHeartbeat++; // thread heartbeat.
+ if (!(dHeartbeat % HB_MODULO)) led3 = !led3;
+ Thread::wait(THREAD_3_WAIT); // multitasking.
+ } // thread loop.
+ }
+/*----------------------------------------------//----------------------------*/
+ char ascii_nibble_to_binary(char cAscii) // ascii nibble -> binary.
+ {
+ char cBinary; // converted value.
+
+ switch(cAscii)
+ {
+ case 'F' : {cBinary = 15; break;}
+ case 'E' : {cBinary = 14; break;}
+ case 'D' : {cBinary = 13; break;}
+ case 'C' : {cBinary = 12; break;}
+ case 'B' : {cBinary = 11; break;}
+ case 'A' : {cBinary = 10; break;}
+ case 'f' : {cBinary = 15; break;}
+ case 'e' : {cBinary = 14; break;}
+ case 'd' : {cBinary = 13; break;}
+ case 'c' : {cBinary = 12; break;}
+ case 'b' : {cBinary = 11; break;}
+ case 'a' : {cBinary = 10; break;}
+ case '9' : {cBinary = 9; break;}
+ case '8' : {cBinary = 8; break;}
+ case '7' : {cBinary = 7; break;}
+ case '6' : {cBinary = 6; break;}
+ case '5' : {cBinary = 5; break;}
+ case '4' : {cBinary = 4; break;}
+ case '3' : {cBinary = 3; break;}
+ case '2' : {cBinary = 2; break;}
+ case '1' : {cBinary = 1; break;}
+ case '0' : {cBinary = 0; break;}
+ default : {cBinary = 0; break;}
+ } // switch(cAscii).
+ return(cBinary); // return the binary.
+ } // ascii_nibble_to_binary.
+/*----------------------------------------------//----------------------------*/
+ char binary_to_ascii_nibble(char cBinary) // binary -> ascii nibble.
+ {
+ char cAscii; // converted value.
+
+ switch(cBinary)
+ {
+ case 15 : {cAscii = 'F'; break;}
+ case 14 : {cAscii = 'E'; break;}
+ case 13 : {cAscii = 'D'; break;}
+ case 12 : {cAscii = 'C'; break;}
+ case 11 : {cAscii = 'B'; break;}
+ case 10 : {cAscii = 'A'; break;}
+ case 9 : {cAscii = '9'; break;}
+ case 8 : {cAscii = '8'; break;}
+ case 7 : {cAscii = '7'; break;}
+ case 6 : {cAscii = '6'; break;}
+ case 5 : {cAscii = '5'; break;}
+ case 4 : {cAscii = '4'; break;}
+ case 3 : {cAscii = '3'; break;}
+ case 2 : {cAscii = '2'; break;}
+ case 1 : {cAscii = '1'; break;}
+ case 0 : {cAscii = '0'; break;}
+ default : {cAscii = '0'; break;}
+ } // switch(cBinary).
+ return(cAscii); // return the binary.
+ } // binary_to_ascii_nibble.
+/*----------------------------------------------//----------------------------*/
+ void clear_tFromHost(tFromHost * ptFromHost)// clear structure.
+ {
+ ptFromHost->cCommand = 0x00;
+ ptFromHost->cRegisterID = 0x00;
+ ptFromHost->cRegisterValue = 0x00;
+ ptFromHost->cIRValueH = 0x00;
+ ptFromHost->cIRValueL = 0x00;
+ ptFromHost->cMMaddress = 0x00;
+ ptFromHost->cMMdataH = 0x00;
+ ptFromHost->cMMdataL = 0x00;
+ } // clear_tFromHost.
+/*----------------------------------------------//----------------------------*/
+ void clear_tToHost(tToHost * ptToHost) // clear structure.
+ {
+ ptToHost->cCommand = 0x00;
+ ptToHost->cRegisterID = 0x00;
+ ptToHost->cRegisterValue = 0x00;
+ ptToHost->cMMaddress = 0x00;
+ ptToHost->cMMdataH = 0x00;
+ ptToHost->cMMdataL = 0x00;
+ } // clear_tToHost.
+/*----------------------------------------------//----------------------------*/
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rtos.lib Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-rtos/#869ef732a8a2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/9c8f0e3462fb \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmCPUassemblySource/prog_add_list.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,256 @@ + 0x00 0xADD0 ; R3 gets 0xD0 immediate. ** ====================== 0x*0 + 0x01 0xC500 ; R1 gets mm[R3]. + 0x02 0x2100 ; R0 gets R1. + 0x03 0xADE0 ; R3 gets 0xE0 immediate. ** + 0x04 0xC500 ; R1 gets mm[R3]. + 0x05 0x0900 ; R2 gets R0. + 0x06 0xC100 ; R0 gets R1 + R2. + 0x07 0xADF0 ; R3 gets 0xF0 immediate. ** + 0x08 0xA900 ; R2 gets 0x00 immediate. + 0x09 0x0500 ; R1 gets R0. + 0x0a 0x0300 ; WE goes high. + 0x0b 0x0100 ; WE goes low. + 0x0c 0xADD1 ; R3 gets 0xD1 immediate. ** ====================== 0x*1 + 0x0d 0xC500 ; R1 gets mm[R3]. + 0x0e 0x2100 ; R0 gets R1. + 0x0f 0xADE1 ; R3 gets 0xE1 immediate. ** + 0x10 0xC500 ; R1 gets mm[R3]. + 0x11 0x0900 ; R2 gets R0. + 0x12 0xC100 ; R0 gets R1 + R2. + 0x13 0xADF1 ; R3 gets 0xF1 immediate. ** + 0x14 0xA900 ; R2 gets 0x00 immediate. + 0x15 0x0500 ; R1 gets R0. + 0x16 0x0300 ; WE goes high. + 0x17 0x0100 ; WE goes low. + 0x18 0xADD2 ; R3 gets 0xD2 immediate. ** ====================== 0x*2 + 0x19 0xC500 ; R1 gets mm[R3]. + 0x1a 0x2100 ; R0 gets R1. + 0x1b 0xADE2 ; R3 gets 0xE2 immediate. ** + 0x1c 0xC500 ; R1 gets mm[R3]. + 0x1d 0x0900 ; R2 gets R0. + 0x1e 0xC100 ; R0 gets R1 + R2. + 0x1f 0xADF2 ; R3 gets 0xF2 immediate. ** + 0x20 0xA900 ; R2 gets 0x00 immediate. + 0x21 0x0500 ; R1 gets R0. + 0x22 0x0300 ; WE goes high. + 0x23 0x0100 ; WE goes low. + 0x24 0xADD3 ; R3 gets 0xD3 immediate. ** ====================== 0x*3 + 0x25 0xC500 ; R1 gets mm[R3]. + 0x26 0x2100 ; R0 gets R1. + 0x27 0xADE3 ; R3 gets 0xE3 immediate. ** + 0x28 0xC500 ; R1 gets mm[R3]. + 0x29 0x0900 ; R2 gets R0. + 0x2a 0xC100 ; R0 gets R1 + R2. + 0x2b 0xADF3 ; R3 gets 0xF3 immediate. ** + 0x2c 0xA900 ; R2 gets 0x00 immediate. + 0x2d 0x0500 ; R1 gets R0. + 0x2e 0x0300 ; WE goes high. + 0x2f 0x0100 ; WE goes low. + 0x30 0xADD4 ; R3 gets 0xD4 immediate. ** ====================== 0x*4 + 0x31 0xC500 ; R1 gets mm[R3]. + 0x32 0x2100 ; R0 gets R1. + 0x33 0xADE4 ; R3 gets 0xE4 immediate. ** + 0x34 0xC500 ; R1 gets mm[R3]. + 0x35 0x0900 ; R2 gets R0. + 0x36 0xC100 ; R0 gets R1 + R2. + 0x37 0xADF4 ; R3 gets 0xF4 immediate. ** + 0x38 0xA900 ; R2 gets 0x00 immediate. + 0x39 0x0500 ; R1 gets R0. + 0x3a 0x0300 ; WE goes high. + 0x3b 0x0100 ; WE goes low. + 0x3c 0xADD5 ; R3 gets 0xD5 immediate. ** ====================== 0x*5 + 0x3d 0xC500 ; R1 gets mm[R3]. + 0x3e 0x2100 ; R0 gets R1. + 0x3f 0xADE5 ; R3 gets 0xE5 immediate. ** + 0x40 0xC500 ; R1 gets mm[R3]. + 0x41 0x0900 ; R2 gets R0. + 0x42 0xC100 ; R0 gets R1 + R2. + 0x43 0xADF5 ; R3 gets 0xF5 immediate. ** + 0x44 0xA900 ; R2 gets 0x00 immediate. + 0x45 0x0500 ; R1 gets R0. + 0x46 0x0300 ; WE goes high. + 0x47 0x0100 ; WE goes low. + 0x48 0xADD6 ; R3 gets 0xD6 immediate. ** ====================== 0x*6 + 0x49 0xC500 ; R1 gets mm[R3]. + 0x4a 0x2100 ; R0 gets R1. + 0x4b 0xADE6 ; R3 gets 0xE6 immediate. ** + 0x4c 0xC500 ; R1 gets mm[R3]. + 0x4d 0x0900 ; R2 gets R0. + 0x4e 0xC100 ; R0 gets R1 + R2. + 0x4f 0xADF6 ; R3 gets 0xF6 immediate. ** + 0x50 0xA900 ; R2 gets 0x00 immediate. + 0x51 0x0500 ; R1 gets R0. + 0x52 0x0300 ; WE goes high. + 0x53 0x0100 ; WE goes low. + 0x54 0xADD7 ; R3 gets 0xD7 immediate. ** ====================== 0x*7 + 0x55 0xC500 ; R1 gets mm[R3]. + 0x56 0x2100 ; R0 gets R1. + 0x57 0xADE7 ; R3 gets 0xE7 immediate. ** + 0x58 0xC500 ; R1 gets mm[R3]. + 0x59 0x0900 ; R2 gets R0. + 0x5a 0xC100 ; R0 gets R1 + R2. + 0x5b 0xADF7 ; R3 gets 0xF7 immediate. ** + 0x5c 0xA900 ; R2 gets 0x00 immediate. + 0x5d 0x0500 ; R1 gets R0. + 0x5e 0x0300 ; WE goes high. + 0x5f 0x0100 ; WE goes low. + 0x60 0xADD8 ; R3 gets 0xD8 immediate. ** ====================== 0x*8 + 0x61 0xC500 ; R1 gets mm[R3]. + 0x62 0x2100 ; R0 gets R1. + 0x63 0xADE8 ; R3 gets 0xE8 immediate. ** + 0x64 0xC500 ; R1 gets mm[R3]. + 0x65 0x0900 ; R2 gets R0. + 0x66 0xC100 ; R0 gets R1 + R2. + 0x67 0xADF8 ; R3 gets 0xF8 immediate. ** + 0x68 0xA900 ; R2 gets 0x00 immediate. + 0x69 0x0500 ; R1 gets R0. + 0x6a 0x0300 ; WE goes high. + 0x6b 0x0100 ; WE goes low. + 0x6c 0xADD9 ; R3 gets 0xD9 immediate. ** ====================== 0x*9 + 0x6d 0xC500 ; R1 gets mm[R3]. + 0x6e 0x2100 ; R0 gets R1. + 0x6f 0xADE9 ; R3 gets 0xE9 immediate. ** + 0x70 0xC500 ; R1 gets mm[R3]. + 0x71 0x0900 ; R2 gets R0. + 0x72 0xC100 ; R0 gets R1 + R2. + 0x73 0xADF9 ; R3 gets 0xF9 immediate. ** + 0x74 0xA900 ; R2 gets 0x00 immediate. + 0x75 0x0500 ; R1 gets R0. + 0x76 0x0300 ; WE goes high. + 0x77 0x0100 ; WE goes low. + 0x78 0xADDA ; R3 gets 0xDA immediate. ** ====================== 0x*A + 0x79 0xC500 ; R1 gets mm[R3]. + 0x7a 0x2100 ; R0 gets R1. + 0x7b 0xADEA ; R3 gets 0xEA immediate. ** + 0x7c 0xC500 ; R1 gets mm[R3]. + 0x7d 0x0900 ; R2 gets R0. + 0x7e 0xC100 ; R0 gets R1 + R2. + 0x7f 0xADFA ; R3 gets 0xFA immediate. ** + 0x80 0xA900 ; R2 gets 0x00 immediate. + 0x81 0x0500 ; R1 gets R0. + 0x82 0x0300 ; WE goes high. + 0x83 0x0100 ; WE goes low. + 0x84 0xADDB ; R3 gets 0xDB immediate. ** ====================== 0x*B + 0x85 0xC500 ; R1 gets mm[R3]. + 0x86 0x2100 ; R0 gets R1. + 0x87 0xADEB ; R3 gets 0xEB immediate. ** + 0x88 0xC500 ; R1 gets mm[R3]. + 0x89 0x0900 ; R2 gets R0. + 0x8a 0xC100 ; R0 gets R1 + R2. + 0x8b 0xADFB ; R3 gets 0xFB immediate. ** + 0x8c 0xA900 ; R2 gets 0x00 immediate. + 0x8d 0x0500 ; R1 gets R0. + 0x8e 0x0300 ; WE goes high. + 0x8f 0x0100 ; WE goes low. + 0x90 0xADDC ; R3 gets 0xDC immediate. ** ====================== 0x*C + 0x91 0xC500 ; R1 gets mm[R3]. + 0x92 0x2100 ; R0 gets R1. + 0x93 0xADEC ; R3 gets 0xEC immediate. ** + 0x94 0xC500 ; R1 gets mm[R3]. + 0x95 0x0900 ; R2 gets R0. + 0x96 0xC100 ; R0 gets R1 + R2. + 0x97 0xADFC ; R3 gets 0xFC immediate. ** + 0x98 0xA900 ; R2 gets 0x00 immediate. + 0x99 0x0500 ; R1 gets R0. + 0x9a 0x0300 ; WE goes high. + 0x9b 0x0100 ; WE goes low. + 0x9c 0xADDD ; R3 gets 0xDD immediate. ** ====================== 0x*D + 0x9d 0xC500 ; R1 gets mm[R3]. + 0x9e 0x2100 ; R0 gets R1. + 0x9f 0xADED ; R3 gets 0xED immediate. ** + 0xa0 0xC500 ; R1 gets mm[R3]. + 0xa1 0x0900 ; R2 gets R0. + 0xa2 0xC100 ; R0 gets R1 + R2. + 0xa3 0xADFD ; R3 gets 0xFD immediate. ** + 0xa4 0xA900 ; R2 gets 0x00 immediate. + 0xa5 0x0500 ; R1 gets R0. + 0xa6 0x0300 ; WE goes high. + 0xa7 0x0100 ; WE goes low. + 0xa8 0xADDE ; R3 gets 0xDE immediate. ** ====================== 0x*E + 0xa9 0xC500 ; R1 gets mm[R3]. + 0xaa 0x2100 ; R0 gets R1. + 0xab 0xADEE ; R3 gets 0xEE immediate. ** + 0xac 0xC500 ; R1 gets mm[R3]. + 0xad 0x0900 ; R2 gets R0. + 0xae 0xC100 ; R0 gets R1 + R2. + 0xaf 0xADFE ; R3 gets 0xFE immediate. ** + 0xb0 0xA900 ; R2 gets 0x00 immediate. + 0xb1 0x0500 ; R1 gets R0. + 0xb2 0x0300 ; WE goes high. + 0xb3 0x0100 ; WE goes low. + 0xb4 0xADDF ; R3 gets 0xDF immediate. ** ====================== 0x*F + 0xb5 0xC500 ; R1 gets mm[R3]. + 0xb6 0x2100 ; R0 gets R1. + 0xb7 0xADEF ; R3 gets 0xEF immediate. ** + 0xb8 0xC500 ; R1 gets mm[R3]. + 0xb9 0x0900 ; R2 gets R0. + 0xba 0xC100 ; R0 gets R1 + R2. + 0xbb 0xADFF ; R3 gets 0xFF immediate. ** + 0xbc 0xA900 ; R2 gets 0x00 immediate. + 0xbd 0x0500 ; R1 gets R0. + 0xbe 0x0300 ; WE goes high. + 0xbf 0x0100 ; WE goes low. + 0xc0 0x0100 ; NO-OP. + 0xc1 0x0100 ; NO-OP. + 0xc2 0x0100 ; NO-OP. + 0xc3 0x0100 ; NO-OP. + 0xc4 0x0100 ; NO-OP. + 0xc5 0x0100 ; NO-OP. + 0xc6 0x0100 ; NO-OP. + 0xc7 0x0100 ; NO-OP. + 0xc8 0x0000 ; HALT. + 0xc9 0x0000 ; HALT. + 0xca 0x0000 ; HALT. + 0xcb 0x0000 ; HALT. + 0xcc 0x0000 ; HALT. + 0xcd 0x0000 ; HALT. + 0xce 0x0000 ; HALT. + 0xcf 0x0000 ; HALT. + 0xd0 0x0011 ; begin source vector 1. + 0xd1 0x0027 + 0xd2 0x0014 + 0xd3 0x00e2 + 0xd4 0x0075 + 0xd5 0x0045 + 0xd6 0x009B + 0xd7 0x00DE + 0xd8 0x0009 + 0xd9 0x0041 + 0xda 0x009A + 0xdb 0x0052 + 0xdc 0x00aa + 0xdd 0x00bb + 0xde 0x00cc + 0xdf 0x00dd ; end source vector 1. + 0xe0 0x0022 ; begin source vector 2. + 0xe1 0x0058 + 0xe2 0x00B5 + 0xe3 0x009E + 0xe4 0x0014 + 0xe5 0x002C + 0xe6 0x00AA + 0xe7 0x0086 + 0xe8 0x0090 + 0xe9 0x0012 + 0xea 0x0049 + 0xeb 0x0099 + 0xec 0x0027 + 0xed 0x0037 + 0xee 0x0047 + 0xef 0x0057 ; end source vector 2. + 0xf0 0x0000 ; begin result vector region. + 0xf1 0x0000 + 0xf2 0x0000 + 0xf3 0x0000 + 0xf4 0x0000 + 0xf5 0x0000 + 0xf6 0x0000 + 0xf7 0x0000 + 0xf8 0x0000 + 0xf9 0x0000 + 0xfa 0x0000 + 0xfb 0x0000 + 0xfc 0x0000 + 0xfd 0x0000 + 0xfe 0x0000 + 0xff 0x0000 ; end result vector region. \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmCPUassemblySource/prog_loop_registers.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,256 @@ + 0x00 0x4D00 ; R3 gets R2 begin register-rotation program. + 0x01 0x2900 ; R2 gets R1 + 0x02 0x0500 ; R1 gets R0 + 0x03 0x6100 ; R0 gets R3 + 0x04 0xB000 ; PC gets 00 + 0x05 0x8100 ; R0 gets R0 (guard instruction) + 0x06 0x0000 + 0x07 0x0000 + 0x08 0x0000 + 0x09 0x0000 + 0x0a 0x0000 + 0x0b 0x0000 + 0x0c 0x0000 + 0x0d 0x0000 + 0x0e 0x0000 + 0x0f 0x0000 + 0x10 0x0000 + 0x11 0x0000 + 0x12 0x0000 + 0x13 0x0000 + 0x14 0x0000 + 0x15 0x0000 + 0x16 0x0000 + 0x17 0x0000 + 0x18 0x0000 + 0x19 0x0000 + 0x1a 0x0000 + 0x1b 0x0000 + 0x1c 0x0000 + 0x1d 0x0000 + 0x1e 0x0000 + 0x1f 0x0000 + 0x20 0x0000 + 0x21 0x0000 + 0x22 0x0000 + 0x23 0x0000 + 0x24 0x0000 + 0x25 0x0000 + 0x26 0x0000 + 0x27 0x0000 + 0x28 0x0000 + 0x29 0x0000 + 0x2a 0x0000 + 0x2b 0x0000 + 0x2c 0x0000 + 0x2d 0x0000 + 0x2e 0x0000 + 0x2f 0x0000 + 0x30 0x0000 + 0x31 0x0000 + 0x32 0x0000 + 0x33 0x0000 + 0x34 0x0000 + 0x35 0x0000 + 0x36 0x0000 + 0x37 0x0000 + 0x38 0x0000 + 0x39 0x0000 + 0x3a 0x0000 + 0x3b 0x0000 + 0x3c 0x0000 + 0x3d 0x0000 + 0x3e 0x0000 + 0x3f 0x0000 + 0x40 0x0000 + 0x41 0x0000 + 0x42 0x0000 + 0x43 0x0000 + 0x44 0x0000 + 0x45 0x0000 + 0x46 0x0000 + 0x47 0x0000 + 0x48 0x0000 + 0x49 0x0000 + 0x4a 0x0000 + 0x4b 0x0000 + 0x4c 0x0000 + 0x4d 0x0000 + 0x4e 0x0000 + 0x4f 0x0000 + 0x50 0x0000 + 0x51 0x0000 + 0x52 0x0000 + 0x53 0x0000 + 0x54 0x0000 + 0x55 0x0000 + 0x56 0x0000 + 0x57 0x0000 + 0x58 0x0000 + 0x59 0x0000 + 0x5a 0x0000 + 0x5b 0x0000 + 0x5c 0x0000 + 0x5d 0x0000 + 0x5e 0x0000 + 0x5f 0x0000 + 0x60 0x0000 + 0x61 0x0000 + 0x62 0x0000 + 0x63 0x0000 + 0x64 0x0000 + 0x65 0x0000 + 0x66 0x0000 + 0x67 0x0000 + 0x68 0x0000 + 0x69 0x0000 + 0x6a 0x0000 + 0x6b 0x0000 + 0x6c 0x0000 + 0x6d 0x0000 + 0x6e 0x0000 + 0x6f 0x0000 + 0x70 0x0000 + 0x71 0x0000 + 0x72 0x0000 + 0x73 0x0000 + 0x74 0x0000 + 0x75 0x0000 + 0x76 0x0000 + 0x77 0x0000 + 0x78 0x0000 + 0x79 0x0000 + 0x7a 0x0000 + 0x7b 0x0000 + 0x7c 0x0000 + 0x7d 0x0000 + 0x7e 0x0000 + 0x7f 0x0000 + 0x80 0x0000 + 0x81 0x0000 + 0x82 0x0000 + 0x83 0x0000 + 0x84 0x0000 + 0x85 0x0000 + 0x86 0x0000 + 0x87 0x0000 + 0x88 0x0000 + 0x89 0x0000 + 0x8a 0x0000 + 0x8b 0x0000 + 0x8c 0x0000 + 0x8d 0x0000 + 0x8e 0x0000 + 0x8f 0x0000 + 0x90 0x0000 + 0x91 0x0000 + 0x92 0x0000 + 0x93 0x0000 + 0x94 0x0000 + 0x95 0x0000 + 0x96 0x0000 + 0x97 0x0000 + 0x98 0x0000 + 0x99 0x0000 + 0x9a 0x0000 + 0x9b 0x0000 + 0x9c 0x0000 + 0x9d 0x0000 + 0x9e 0x0000 + 0x9f 0x0000 + 0xa0 0x0000 + 0xa1 0x0000 + 0xa2 0x0000 + 0xa3 0x0000 + 0xa4 0x0000 + 0xa5 0x0000 + 0xa6 0x0000 + 0xa7 0x0000 + 0xa8 0x0000 + 0xa9 0x0000 + 0xaa 0x0000 + 0xab 0x0000 + 0xac 0x0000 + 0xad 0x0000 + 0xae 0x0000 + 0xaf 0x0000 + 0xb0 0x0000 + 0xb1 0x0000 + 0xb2 0x0000 + 0xb3 0x0000 + 0xb4 0x0000 + 0xb5 0x0000 + 0xb6 0x0000 + 0xb7 0x0000 + 0xb8 0x0000 + 0xb9 0x0000 + 0xba 0x0000 + 0xbb 0x0000 + 0xbc 0x0000 + 0xbd 0x0000 + 0xbe 0x0000 + 0xbf 0x0000 + 0xc0 0x0000 + 0xc1 0x0000 + 0xc2 0x0000 + 0xc3 0x0000 + 0xc4 0x0000 + 0xc5 0x0000 + 0xc6 0x0000 + 0xc7 0x0000 + 0xc8 0x0000 + 0xc9 0x0000 + 0xca 0x0000 + 0xcb 0x0000 + 0xcc 0x0000 + 0xcd 0x0000 + 0xce 0x0000 + 0xcf 0x0000 + 0xd0 0x0000 + 0xd1 0x0000 + 0xd2 0x0000 + 0xd3 0x0000 + 0xd4 0x0000 + 0xd5 0x0000 + 0xd6 0x0000 + 0xd7 0x0000 + 0xd8 0x0000 + 0xd9 0x0000 + 0xda 0x0000 + 0xdb 0x0000 + 0xdc 0x0000 + 0xdd 0x0000 + 0xde 0x0000 + 0xdf 0x0000 + 0xe0 0x0000 + 0xe1 0x0000 + 0xe2 0x0000 + 0xe3 0x0000 + 0xe4 0x0000 + 0xe5 0x0000 + 0xe6 0x0000 + 0xe7 0x0000 + 0xe8 0x0000 + 0xe9 0x0000 + 0xea 0x0000 + 0xeb 0x0000 + 0xec 0x0000 + 0xed 0x0000 + 0xee 0x0000 + 0xef 0x0000 + 0xf0 0x0000 + 0xf1 0x0000 + 0xf2 0x0000 + 0xf3 0x0000 + 0xf4 0x0000 + 0xf5 0x0000 + 0xf6 0x0000 + 0xf7 0x0000 + 0xf8 0x0000 + 0xf9 0x0000 + 0xfa 0x0000 + 0xfb 0x0000 + 0xfc 0x0000 + 0xfd 0x0000 + 0xfe 0x0000 + 0xff 0x0000 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmPython/invoke.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,1 @@ +python ./mmProject.py \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmPython/mmProject.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,30 @@ +#!/usr/bin/python -tt # tt: detect mixed space/tab. +#---copyright-----------------------------------#------------------------------- +# licensed for personal and academic use. +# commercial use must be approved by the account-holder of +# gated.clock@gmail.com +#=======imports=================================#=============================== +import os # import os library. +import sys # import sys library. +import usb.core # import PyUSB library. +from Tkinter import * # Tk library. +import ttk # from Tk library. +import tkFileDialog # from Tk library. +import pexpect # not needed here. +import mmUI # specify file. +from mmUI import * # specify module. +#=======function================================#=============================== +#=======main====================================#=============================== +#-------parameters------------------------------#------------------------------- +#-------locals----------------------------------#------------------------------- +#-------execution-------------------------------#------------------------------- +if (1): + + root = Tk() + app = mmUI(root) + root.mainloop() + sys.exit(0) +#-----------------------------------------------#------------------------------- + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmPython/mmUI.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,740 @@
+#!/usr/bin/python -tt # tt: detect mixed space/tab.
+#---copyright-----------------------------------#-------------------------------
+# licensed for personal and academic use.
+# commercial use must be approved by the account-holder of
+# gated.clock@gmail.com
+#-------imports---------------------------------#-------------------------------
+from Tkinter import * # Tk graphics.
+import mmUSBserial # USB Serial object.
+from mmUSBserial import *
+import time # Time object.
+from time import time, sleep
+import threading # Threading object.
+import tkFileDialog # File-select dialog object.'
+import os # import os library.
+#=======class===================================#===============================
+#-----------------------------------------------#-------------------------------
+'''
+ licensed for personal and accedemic use.
+ commercial use must be approved by the account-holder of
+ gated.clock@gmail.com
+'''
+#-----------------------------------------------#-------------------------------
+'''
+ description:
+
+ python/Tk code for interfacing with the mbed.org system.
+ this code provides a UI which is used to communicate over USB
+ to the mbed.org processor, and in turn the toy CPU programmed
+ into the altera device.
+
+ this code provides a UI which is used to monitor and write-to the
+ toy CPU's registers and its main memory.
+
+ I/O capability:
+
+ * R0 write/read.
+ * R1 write/read.
+ * R2 write/read.
+ * R3 write/read.
+ * PC write/read. (that's 'Program Counter'.)
+ * IR write/read. (that's 'Instruction Register'.)
+ * MM address. (that's 'Main Memory.')
+ * MM content.
+
+ Button Controls:
+
+ * USB Connect/Disconnect.
+ * Register Read.
+ * Register Write.
+ * Main Memory Read.
+ * Main Memory Write.
+ * Main Memory Load-From-File.
+ * Main Memory Dump-To-File.
+ * Step CPU.
+ * Run-Fast, Run-Slow, Stop CPU.
+ * Run Test.
+ * Exit.
+
+'''
+#-----------------------------------------------#-------------------------------
+if (1): # allow further indentation.
+ class mmUI: # UI class.
+#-----------------------------------------------#-------------------------------
+ def __init__(self,masterWidget): # constructor.
+
+ self.__masterWidget = masterWidget # promote to object scope.
+
+ # master widget title.
+ self.__masterWidget.wm_title("CPU Control")
+
+ self.__frame = Frame(masterWidget) # create frame widget.
+ self.__frame.grid(column=0, row=0) # use grid packer.
+
+ self.__connected = 0 # not yet __connected to USB.
+ self.__isRunning = 0 # program execution not running.
+ self.__testRunning = 0 # test mode not runing.
+ self.__testIter = 0 # test mode iteration count.
+ self.__sleepVal = 0.04 # serial transceive sleep. 3 works.
+
+
+ self.uiR0 (0, 1, 10) # label/entry widgets (x, y, width)
+ self.uiR1 (0, 2, 10)
+ self.uiR2 (0, 3, 10)
+ self.uiR3 (0, 4, 10)
+ self.uiPC (0, 5, 10)
+ self.uiIR (0, 6, 10)
+ self.uimmADR (0, 7, 10)
+ self.uimmVAL (0, 8, 10)
+
+ self.uiConnect (3, 1, 8) # button widgets (x, y, width)
+ self.uiRegRead (3, 2, 8)
+ self.uiRegWrite(3, 3, 8)
+ self.uimmRead (3, 4, 8)
+ self.uimmWrite (3, 5, 8)
+ self.uiProg (3, 6, 8)
+ self.uimmDump (3, 7, 8)
+ self.uiStep (3, 8, 8)
+ self.uiRun (3, 9, 8)
+ self.uiTest (3, 10, 8)
+ self.uiExit (3, 11, 8)
+
+ self.refreshUI() # initial content display.
+
+#-----------------------------------------------#-------------------------------
+ def __del__(self): # destructor.
+ print "object destroyed."
+#-----------------------------------------------#-------------------------------
+# WIDGETS: BEGIN LABEL/ENTRY PAIRS. #===============================
+#-----------------------------------------------#-------------------------------
+ def uiR0(self,dColumn,dRow,dWidth): # R0.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__R0Label = Label(self.__frame, text="R0")
+ self.__R0Label.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__R0Entry = Entry(self.__frame, width=dWidth, background="GREEN")
+ self.__R0Entry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiR1(self,dColumn,dRow,dWidth): # R1.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__R1Label = Label(self.__frame, text="R1")
+ self.__R1Label.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__R1Entry = Entry(self.__frame, width=dWidth, background="GREEN")
+ self.__R1Entry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiR2(self,dColumn,dRow,dWidth): # R2.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__R2Label = Label(self.__frame, text="R2")
+ self.__R2Label.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__R2Entry = Entry(self.__frame, width=dWidth, background="GREEN")
+ self.__R2Entry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiR3(self,dColumn,dRow,dWidth): # R3.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__R3Label = Label(self.__frame, text="R3")
+ self.__R3Label.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__R3Entry = Entry(self.__frame, width=dWidth, background="GREEN")
+ self.__R3Entry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiPC(self,dColumn,dRow,dWidth): # program counter.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__PCLabel = Label(self.__frame, text="PC")
+ self.__PCLabel.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__PCEntry = Entry(self.__frame, width=dWidth, background="ORANGE")
+ self.__PCEntry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiIR(self,dColumn,dRow,dWidth): # instruction register.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__IRLabel = Label(self.__frame, text="IR")
+ self.__IRLabel.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__IREntry = Entry(self.__frame, width=dWidth, background="ORANGE")
+ self.__IREntry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uimmADR(self,dColumn,dRow,dWidth):# mmADR.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__mmADRLabel = Label(self.__frame, text="mmADR")
+ self.__mmADRLabel.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__mmADREntry = Entry(self.__frame, width=dWidth,
+ background="MAROON", foreground="WHITE")
+ self.__mmADREntry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uimmVAL(self,dColumn,dRow,dWidth):# mmVAL.
+
+ dColumnPlusOne = dColumn + 1
+
+ self.__mmVALLabel = Label(self.__frame, text="mmVAL")
+ self.__mmVALLabel.grid(column=dColumn, row=dRow, sticky=(E))
+
+ self.__mmVALEntry = Entry(self.__frame, width=dWidth,
+ background="MAROON", foreground="WHITE")
+ self.__mmVALEntry.grid(column=dColumnPlusOne, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+# WIDGETS: BEGIN BUTTONS. #===============================
+#-----------------------------------------------#-------------------------------
+ # generate the 'connect' button.
+ def uiConnect(self,dColumn,dRow,dWidth):
+
+ self.__connectButton = Button(self.__frame, text="CONNECT",
+ command=self.selectConnectButtonPressed,
+ background="RED",
+ width = dWidth)
+
+ self.__connectButton.grid(column=dColumn, row=dRow, sticky=(E))
+#-----------------------------------------------#-------------------------------
+ # generate the register-read button.
+ def uiRegRead(self,dColumn,dRow,dWidth):
+ self.__RegReadButton = Button(self.__frame, text="REG READ",
+ command=self.selectRegReadButtonPressed,
+ width = dWidth)
+
+ self.__RegReadButton.grid(column=dColumn, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ # generate the 'reg write' button.
+ def uiRegWrite(self,dColumn,dRow,dWidth):
+ self.__RegWriteButton = Button(self.__frame, text="REG WRITE",
+ command=self.selectRegWriteButtonPressed,
+ width = dWidth)
+
+ self.__RegWriteButton.grid(column=dColumn, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ # generate the mm-read button.
+ def uimmRead(self,dColumn,dRow,dWidth):
+ self.__mmReadButton = Button(self.__frame, text="MM READ",
+ command=self.selectmmReadButtonPressed,
+ width = dWidth)
+
+ self.__mmReadButton.grid(column=dColumn, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ # generate the 'mm write' button.
+ def uimmWrite(self,dColumn,dRow,dWidth):
+ self.__mmWriteButton = Button(self.__frame, text="MM WRITE",
+ command=self.selectmmWriteButtonPressed,
+ width = dWidth)
+
+ self.__mmWriteButton.grid(column=dColumn, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiProg(self,dColumn,dRow,dWidth): # generate the 'program' button.
+ self.__ProgButton = Button(self.__frame, text="PROGRAM",
+ command=self.selectProgButtonPressed,
+ width = dWidth)
+
+ self.__ProgButton.grid(column=dColumn, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ # generate the 'mm dump' button.
+ def uimmDump(self,dColumn,dRow,dWidth):
+ self.__mmWriteButton = Button(self.__frame, text="DUMP",
+ command=self.selectmmDumpButtonPressed,
+ width = dWidth)
+
+ self.__mmWriteButton.grid(column=dColumn, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiStep(self,dColumn,dRow,dWidth): # generate the 'step' button.
+ self.__StepButton = Button(self.__frame, text="STEP",
+ command=self.selectStepButtonPressed,
+ width = dWidth)
+
+ self.__StepButton.grid(column=dColumn, row=dRow, sticky=(W))
+#-----------------------------------------------#-------------------------------
+ def uiRun(self,dColumn,dRow,dWidth): # generate the 'run' button.
+ self.__runButton = Button(self.__frame, text="RUN",
+ command=self.selectRunButtonPressed,width = dWidth)
+
+ self.__runButton.grid(column=dColumn, row=dRow, sticky=(E))
+#-----------------------------------------------#-------------------------------
+ def uiTest(self,dColumn,dRow,dWidth): # generate the 'test' button.
+ self.__testButton = Button(self.__frame, text="TEST",
+ command=self.selectTestButtonPressed,width = dWidth)
+
+ self.__testButton.grid(column=dColumn, row=dRow, sticky=(E))
+#-----------------------------------------------#-------------------------------
+ def uiExit(self,dColumn,dRow,dWidth): # generate the 'exit' button.
+
+ self.__isRunning = 0 # end the running thread.
+ sleep(2.0) # give thread time to stop.
+
+ self.__exitButton = Button(self.__frame, text="EXIT",
+ command=sys.exit,width = dWidth)
+
+ self.__exitButton.grid(column=dColumn, row=dRow, sticky=(E))
+#-----------------------------------------------#-------------------------------
+# BEGIN EXECUTE-WHEN-BUTTON-PRESSED CODE#===============================
+#-----------------------------------------------#-------------------------------
+ def selectConnectButtonPressed(self): # execute CONNECT.
+ if (self.__connected == 0):
+ self.__iUSB = mmUSBserial(idVendor=0x1234, idProduct=0x0006)
+ self.__connected = 1
+ self.__connectButton["text"] = "DISCONNECT"
+ self.__connectButton["background"] = self.__frame.cget("background")
+ else:
+ del(self.__iUSB)
+ self.__connected = 0
+ self.__connectButton["text"] = "CONNECT"
+ self.__connectButton["background"] = "RED"
+#-----------------------------------------------#-------------------------------
+ def selectRegReadButtonPressed(self): # REG READ button has been pressed.
+ self.refreshUI() # ensure proper text formats.
+
+ # real all registers.
+ self.__iUSB.write(self.buildReadAllRegisterCommand())
+ messageVector = self.__iUSB.read()
+
+ # parse-out the register entries.
+ hexTextR0 = "0x" + messageVector[ 1: 3]
+ hexTextR1 = "0x" + messageVector[ 3: 5]
+ hexTextR2 = "0x" + messageVector[ 5: 7]
+ hexTextR3 = "0x" + messageVector[ 7: 9]
+ hexTextPC = "0x" + messageVector[ 9:11]
+ hexTextIR = "0x" + messageVector[11:15]
+
+
+ self.__R0Entry.delete(0,99) # R0 to UI.
+ self.__R0Entry.insert(0,hexTextR0)
+
+ self.__R1Entry.delete(0,99) # R1 to UI.
+ self.__R1Entry.insert(0,hexTextR1)
+
+ self.__R2Entry.delete(0,99) # R2 to UI.
+ self.__R2Entry.insert(0,hexTextR2)
+
+ self.__R3Entry.delete(0,99) # R3 to UI.
+ self.__R3Entry.insert(0,hexTextR3)
+
+ self.__PCEntry.delete(0,99) # PC to UI.
+ self.__PCEntry.insert(0,hexTextPC)
+
+ self.__IREntry.delete(0,99) # IR to UI.
+ self.__IREntry.insert(0,hexTextIR)
+
+#----
+ self.refreshUI() # ensure proper text formats
+#-----------------------------------------------#-------------------------------
+ def selectmmReadButtonPressed(self): # MM READ button has been pressed.
+ self.refreshUI() # ensure proper text formats.
+
+ transmitmmADRText = self.formatByteStringForTransmit(self.__mmADREntry.get())
+ commandText = self.buildReadMMCommand(transmitmmADRText)
+
+ self.__iUSB.write(commandText)
+
+ fetchTextmmVAL = self.__iUSB.read()
+
+ buildHextmmVALString = fetchTextmmVAL[3:7]
+
+ self.__mmVALEntry.delete(0,99)
+ self.__mmVALEntry.insert(0,buildHextmmVALString)
+#----
+ self.selectRegReadButtonPressed() # because registers are affected.
+ self.refreshUI() # ensure proper text formats
+#-----------------------------------------------#-------------------------------
+# before writing the register values currently displayed in the UI,
+# this method will first run that data through a formatter, so that
+# the data is transformed into '0x##' format. this is convenient for
+# the user. for example, the user can type '12' in a register entry
+# form, press the 'REG WRITE' button, and that data will be reformatted
+# to appear as '0x12'.
+
+ def selectRegWriteButtonPressed(self):# REG WRITE button has been pressed.
+
+ self.refreshUI() # ensure proper text formats.
+#----
+ # place those values in the
+ # standard format.
+ R0Val = self.formatByteStringForTransmit(self.__R0Entry.get())
+ R1Val = self.formatByteStringForTransmit(self.__R1Entry.get())
+ R2Val = self.formatByteStringForTransmit(self.__R2Entry.get())
+ R3Val = self.formatByteStringForTransmit(self.__R3Entry.get())
+ PCVal = self.formatByteStringForTransmit(self.__PCEntry.get())
+ IRVal = self.formatWordStringForTransmit(self.__IREntry.get())
+#----
+ # write those values to the CPU.
+ self.__iUSB.write(self.buildWriteRegisterCommand("0",R0Val))
+ self.__iUSB.write(self.buildWriteRegisterCommand("1",R1Val))
+ self.__iUSB.write(self.buildWriteRegisterCommand("2",R2Val))
+ self.__iUSB.write(self.buildWriteRegisterCommand("3",R3Val))
+ self.__iUSB.write(self.buildWriteRegisterCommand("4",PCVal))
+ self.__iUSB.write(self.buildWriteIRCommand ( IRVal))
+#-----------------------------------------------#-------------------------------
+# before writing the main-memory values currently displayed in the UI,
+# this method will first run that data through a formatter, so that
+# the data is transformed into '0x##' or '0x####' format.
+# this is convenient for the user.
+# for example, the user can type '12' in the mmADR entry
+# form, press the 'MM WRITE' button, and that data will be reformatted
+# to appear as '0x12'.
+
+ def selectmmWriteButtonPressed(self): # mm WRITE button has been pressed.
+
+ self.refreshUI() # ensure proper text formats.
+
+ # obtain mm values currently
+ # displayed in the UI.
+ self.__transmitmmADRText = self.__mmADREntry.get()
+ self.__transmitmmVALText = self.__mmVALEntry.get()
+
+ # place those values in the
+ # standard format.
+ mmADRVAL = self.formatByteStringForTransmit(self.__mmADREntry.get())
+ mmVALVal = self.formatWordStringForTransmit(self.__mmVALEntry.get())
+
+ # write those values to the CPU.
+ self.__iUSB.write(self.buildWriteMMCommand(mmADRVAL,mmVALVal))
+
+ self.selectRegReadButtonPressed() # because registers are affected.
+#-----------------------------------------------#-------------------------------
+ def selectProgButtonPressed(self): # Program button has been pressed.
+
+ # ask user for program source file
+ # name using a dialog.
+ fileName = tkFileDialog.askopenfilename(defaultextension='.txt')
+
+ print("memory load started.") # announce to user.
+ self.progamMainMemory(fileName) # main part of programming.
+ print("memory load completed.") # announce to user.
+#-----------------------------------------------#-------------------------------
+ def selectmmDumpButtonPressed(self): # MM dump button has been pressed.
+
+ # obtain file-to-write-to name
+ # from user, using a dialog.
+ fileName = tkFileDialog.asksaveasfilename(defaultextension='.txt')
+
+ print("memory dump started.") # announce to user.
+ self.dumpMainMemory(fileName) # dump main memory to file.
+ print("memory dump completed.") # announce to user.
+#-----------------------------------------------#-------------------------------
+ def selectStepButtonPressed(self): # STEP button has been pressed.
+ self.__iUSB.write("50000000") # the command code.
+ self.selectRegReadButtonPressed() # monitor the result.
+#-----------------------------------------------#-------------------------------
+ def selectRunButtonPressed(self): # RUN/STOP button has been pressed.
+
+ if (self.__isRunning == 0): # start high speed run.
+ self.__isRunning = 1
+ self.__runButton["text"] = "SLOW"
+ self.t = threading.Thread(target=self.doRun)
+ self.t.start()
+
+ elif (self.__isRunning == 1): # switch to a slower run.
+ self.__isRunning = 2
+ self.__runButton["text"] = "STOP"
+
+ else: # stop the CPU.
+ self.__isRunning = 0
+ self.__runButton["text"] = "RUN"
+#-----------------------------------------------#-------------------------------
+ def selectTestButtonPressed(self): # TEST/STOP button has been pressed.
+
+ if (self.__testRunning == 0): # start test.
+ self.__testRunning = 1
+ self.__testButton["text"] = "STOP TEST"
+ self.t = threading.Thread(target=self.doTest)
+ self.t.start()
+
+
+ else: # stop test.
+ self.__testRunning = 0
+ self.__testButton["text"] = "TEST"
+#-----------------------------------------------#-------------------------------
+# BEGIN UTILITY CODE. #===============================
+#-----------------------------------------------#-------------------------------
+ # guarantee 0x## format.
+ def formatByteStringForDisplay(self, byteText):
+
+ xIndex = byteText.find("x") # eliminate any 0x, 0X prefix.
+ XIndex = byteText.find("X")
+
+ theXindex = 0
+ if (xIndex >= 0): theXindex = xIndex + 1
+ if (XIndex >= 0): theXindex = XIndex + 1
+
+ buildText = byteText[theXindex:] # any 0x, 0X prefix gone.
+
+ # build-out leading 0's.
+ if (len(buildText) == 0): buildText = "0" + buildText
+ if (len(buildText) == 1): buildText = "0" + buildText
+
+ # truncate leading characters.
+ if (len(buildText) > 2): buildText = buildText[-2:]
+
+ buildText = "0x" + buildText # add leading 0x.
+
+ return(buildText) # 0x## format returned.
+#-----------------------------------------------#-------------------------------
+ # guarantee 0x#### format.
+ def formatWordStringForDisplay(self, wordText):
+
+ xIndex = wordText.find("x") # eliminate any 0x, 0X prefix.
+ XIndex = wordText.find("X")
+
+ theXindex = 0
+ if (xIndex >= 0): theXindex = xIndex + 1
+ if (XIndex >= 0): theXindex = XIndex + 1
+
+ buildText = wordText[theXindex:] # any 0x, 0X prefix gone.
+
+ # build-out leading 0's.
+ if (len(buildText) == 0): buildText = "0" + buildText
+ if (len(buildText) == 1): buildText = "0" + buildText
+ if (len(buildText) == 2): buildText = "0" + buildText
+ if (len(buildText) == 3): buildText = "0" + buildText
+
+
+ # truncate leading characters.
+ if (len(buildText) > 4): buildText = buildText[-4:]
+
+ buildText = "0x" + buildText # add leading 0x.
+
+ return(buildText) # 0x## format returned.
+#-----------------------------------------------#-------------------------------
+ # guarantee ## format.
+ def formatByteStringForTransmit(self, byteText):
+ buildText = self.formatByteStringForDisplay(byteText)
+ buildText = buildText[-2:]
+ return(buildText)
+#-----------------------------------------------#-------------------------------
+ # guarantee #### format.
+ def formatWordStringForTransmit(self, wordText):
+ buildText = self.formatWordStringForDisplay(wordText)
+ buildText = buildText[-4:]
+ return(buildText)
+#-----------------------------------------------#-------------------------------
+ def refreshUI(self): # reformat UI text.
+
+ # copy-in current form contents.
+ originalR0Entry = self.__R0Entry.get()
+ originalR1Entry = self.__R1Entry.get()
+ originalR2Entry = self.__R2Entry.get()
+ originalR3Entry = self.__R3Entry.get()
+ originalPCEntry = self.__PCEntry.get()
+ originalIREntry = self.__IREntry.get()
+ originalmmADREntry = self.__mmADREntry.get()
+ originalmmVALEntry = self.__mmVALEntry.get()
+
+ # reformat form contents.
+ newR0Entry = self.formatByteStringForDisplay(originalR0Entry)
+ newR1Entry = self.formatByteStringForDisplay(originalR1Entry)
+ newR2Entry = self.formatByteStringForDisplay(originalR2Entry)
+ newR3Entry = self.formatByteStringForDisplay(originalR3Entry)
+ newPCEntry = self.formatByteStringForDisplay(originalPCEntry)
+ newIREntry = self.formatWordStringForDisplay(originalIREntry)
+
+ newmmADREntry = self.formatByteStringForDisplay(originalmmADREntry)
+ newmmVALEntry = self.formatWordStringForDisplay(originalmmVALEntry)
+
+
+ self.__R0Entry. delete(0,99) # clear form contents.
+ self.__R1Entry. delete(0,99)
+ self.__R2Entry. delete(0,99)
+ self.__R3Entry. delete(0,99)
+ self.__PCEntry. delete(0,99)
+ self.__IREntry. delete(0,99)
+ self.__mmADREntry.delete(0,99)
+ self.__mmVALEntry.delete(0,99)
+
+ # update form contents.
+ self.__R0Entry. insert(0,newR0Entry)
+ self.__R1Entry. insert(0,newR1Entry)
+ self.__R2Entry. insert(0,newR2Entry)
+ self.__R3Entry. insert(0,newR3Entry)
+ self.__PCEntry. insert(0,newPCEntry)
+ self.__IREntry. insert(0,newIREntry)
+ self.__mmADREntry.insert(0,newmmADREntry)
+ self.__mmVALEntry.insert(0,newmmVALEntry)
+#-----------------------------------------------#-------------------------------
+ # build the command string for
+ # reading a value from a CPU register.
+ def buildReadRegisterCommand(self,regNum):
+
+ commandText = "" # build command for read register.
+ commandText = commandText + "2" # command-code.
+ commandText = commandText + regNum # register number.
+ commandText = commandText + "0000000000000"
+ return(commandText)
+#-----------------------------------------------#-------------------------------
+ # build the command string for
+ # reading all CPU register values.
+ def buildReadAllRegisterCommand(self):
+
+ commandText = "" # build command for read register.
+ commandText = commandText + "7" # command-code.
+ commandText = commandText + "00000000000000"
+ return(commandText)
+#-----------------------------------------------#-------------------------------
+ # build the command-string for
+ # writing a value to a CPU register.
+ def buildWriteRegisterCommand(self,regNum,regVal):
+
+ commandText = ""
+ commandText = commandText + "1" # command-code.
+ commandText = commandText + regNum # register.
+ commandText = commandText + regVal # content.
+ commandText = commandText + "00000000000"
+ return(commandText)
+#-----------------------------------------------#-------------------------------
+ # build the command-string for
+ # writing a value to the IR.
+ def buildWriteIRCommand(self,regVal):
+
+ commandText = ""
+ commandText = commandText + "6" # command-code.
+ commandText = commandText + "5" # actually a placeholder.
+ commandText = commandText + regVal # content.
+ commandText = commandText + "000000000"
+ return(commandText)
+#-----------------------------------------------#-------------------------------
+ # build the command-string for
+ # writing a main-memory value.
+ def buildWriteMMCommand(self,mmADR,mmVAL):
+
+ commandText = ""
+ commandText = commandText + "3" # command-code.
+ commandText = commandText + mmADR # address.
+ commandText = commandText + mmVAL # value.
+ commandText = commandText + "00000000"
+ return(commandText)
+#-----------------------------------------------#-------------------------------
+ def buildReadMMCommand(self,mmADR): # build read-mm command-string.
+ commandText = "" # build command for read main-memory.
+ commandText = commandText + "4" # command-code.
+ commandText = commandText + mmADR
+ commandText = commandText + "000000000000"
+ return(commandText)
+#-----------------------------------------------#-------------------------------
+ # extract reg value payload.
+ def formatRegValPayload(self,messageVector):
+ buildHex = "0x" + messageVector[2:4]
+ return(buildHex)
+#-----------------------------------------------#-------------------------------
+ def progamMainMemory(self,progFile): # core of loading program to MM.
+
+ hFile = open(progFile, 'r')
+ fileLineList = hFile.readlines() # read file into a list.
+ hFile.close() # close the file.
+
+ # load '0x12 0x3456' memory content
+ # format, into a list.
+ for listIndex in range(0, len(fileLineList)):
+ addressStartIndex = fileLineList[listIndex].find("0x") + 2
+ dataStartIndex = fileLineList[listIndex].find("0x", addressStartIndex) + 2
+ progAddress = fileLineList[listIndex][addressStartIndex : addressStartIndex + 2]
+ progAddress = format(listIndex,'02x')
+ progData = fileLineList[listIndex][dataStartIndex : dataStartIndex + 4]
+ commandText = self.buildWriteMMCommand(progAddress,progData)
+ self.__iUSB.write(commandText)
+ print(fileLineList[listIndex][0:len(fileLineList[listIndex])-1])
+ sleep(self.__sleepVal)
+#-----------------------------------------------#-------------------------------
+ def dumpMainMemory(self,dumpFile): # core of dumping MM to file.
+
+ hFile = open(dumpFile, 'w')
+
+ for loopIndex in range(0, 256): # traverse all of main-memory.
+ transmitmmADRText = "{}".format(hex(loopIndex))
+ transmitmmADRText = transmitmmADRText[2:]
+ if (len(transmitmmADRText) == 1): transmitmmADRText = "0" + transmitmmADRText
+ commandText = self.buildReadMMCommand(transmitmmADRText)
+ self.__iUSB.write(commandText)
+ fetchTextmmVAL = self.__iUSB.read()
+ buildHextmmVALString = fetchTextmmVAL[3:7]
+ buildHexIndex = hex(loopIndex)
+ buildHexIndex = buildHexIndex[2:]
+ if (len(buildHexIndex) == 1): buildHexIndex = "0" + buildHexIndex
+ buildHexIndex = "0x" + buildHexIndex
+ dumpString = " {} 0x{}\n".format(buildHexIndex,buildHextmmVALString)
+ hFile.write(dumpString)
+ print(dumpString[0:len(dumpString)-1])
+ sleep(self.__sleepVal)
+
+ hFile.close() # close the dump file.
+#-----------------------------------------------#-------------------------------
+# BEGIN THREADED CODE. #===============================
+#-----------------------------------------------#-------------------------------
+ def doRun(self): # drives the CPU running.
+ while(self.__isRunning):
+ self.selectStepButtonPressed()
+ self.__masterWidget.update_idletasks()
+ if (self.__isRunning == 2): sleep(1.0)
+#-----------------------------------------------#-------------------------------
+# the test consists of loading the add-list program into main memory,
+# running it, dumping the result to a file, and comparing that file
+# to the expected result.
+
+ def doTest(self): # drives the test.
+ while(self.__testRunning):
+ # load program into main memory.
+ self.progamMainMemory("prog_add_list.txt")
+
+ # clear instruction register.
+ self.__iUSB.write(self.buildWriteIRCommand("0000"))
+
+ # rewind program counter.
+ PCVal = self.formatByteStringForTransmit("0")
+ writePCcommand = self.buildWriteRegisterCommand("4",PCVal)
+ self.__iUSB.write(writePCcommand)
+ self.selectRegReadButtonPressed()
+
+
+ for stepIndex in range(0, 196): # step through program.
+ self.selectStepButtonPressed()
+
+ # dump result to file.
+ self.dumpMainMemory ("dump_test.txt")
+
+ # build and run test commands.
+ self.__testIter = self.__testIter + 1
+ iterationText = "test iteration {}".format(self.__testIter)
+ iterationText = "echo '" + iterationText + "' >> testlog.txt"
+ os.system("echo ============================ >> testlog.txt")
+ os.system("date >> testlog.txt")
+ os.system(iterationText)
+ os.system("echo 'compare dump_test.txt against dump_add_list.txt' >> testlog.txt")
+ os.system("diff dump_add_list.txt dump_test.txt >> testlog.txt")
+
+ self.__masterWidget.update_idletasks()
+#===============================================#===============================
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmPython/mmUSBserial.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,94 @@
+#!/usr/bin/python -tt # tt: detect mixed space/tab.
+#---copyright-----------------------------------#-------------------------------
+# licensed for personal and academic use.
+# commercial use must be approved by the account-holder of
+# gated.clock@gmail.com
+#-------imports---------------------------------#-------------------------------
+import serial # serial over USB.
+#=======class===================================#===============================
+if (1):
+ class mmUSBserial(): # USB class.
+#-----------------------------------------------#-------------------------------
+ # constructor.
+ def __init__(self, idVendor, idProduct):
+
+ self.__idVendor = idVendor # promote to object scope.
+ self.__idProduct = idProduct # promote to object scope.
+
+ openSuccess = 1
+ self.__serialPort = serial.Serial()
+ self.__serialPort.baudrate = 115200 # was 9600
+ self.__serialPort.timeout = 1 # one-second timeout.
+
+ for portIndex in range(7, -1, -1):
+ portString = "/dev/ttyACM" + "{}".format(portIndex)
+ self.__serialPort.port = portString
+ try:
+ self.__serialPort.open()
+ except:
+ print("failed to open port {}.").format(portString)
+ openSuccess = 0
+
+ if (openSuccess): break
+ openSuccess = 1
+
+ if (openSuccess): print("successfully opened port {}.").format(portString)
+ else: print("could not open any port.")
+
+ self.__SER_BYTES = 18 # same as mbed program's SER_BYTES.
+#-----------------------------------------------#-------------------------------
+ def __del__(self): # destructor.
+ self.__serialPort.close()
+ print "object destroyed."
+#-----------------------------------------------#-------------------------------
+# the number of bytes written and read must both be SER_BYTES.
+# the '$' must be in bit<7> of what's written.
+
+ def write(self,toWrite): # write a string.
+ nowWrite = toWrite[:7]
+ nowWrite = nowWrite + "$" # in <7>.
+ if (self.__SER_BYTES > 8): # flush out with 0's.
+ for loopIndex in range (0, self.__SER_BYTES - 8):
+ nowWrite = nowWrite + "0"
+# print("nowWrite {}").format(nowWrite)
+ self.__serialPort.write(nowWrite)
+ return(nowWrite)
+#-----------------------------------------------#-------------------------------
+ def read(self): # read a string.
+ gotRead = self.__serialPort.read(self.__SER_BYTES)
+# print("gotRead {}").format(gotRead)
+ return(gotRead)
+#-----------------------------------------------#-------------------------------
+#===============================================#===============================
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmRTL/counter_08.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,132 @@
+/*----------------------------------copyright---------------------------------*/
+// licensed for personal and academic use.
+// commercial use must be approved by the account-holder of
+// gated.clock@gmail.com
+/*-----------------------------------module-----------------------------------*/
+ module counter_08
+ (
+ oCount, // counter state.
+ iParallel7, // parallel-input data.
+ iParallel6, // parallel-input data.
+ iParallel5, // parallel-input data.
+ iParallel4, // parallel-input data.
+ iParallel3, // parallel-input data.
+ iParallel2, // parallel-input data.
+ iParallel1, // parallel-input data.
+ iParallel0, // parallel-input data.
+ iSel, // select the parallel input.
+ oSerial, // serial-output data.
+ iSerial, // serial-input data.
+ iLoadEnable, // parallel-load-enable.
+ iShiftEnable, // serial-shift-enable.
+ iCountEnable, // count-increment enable.
+ iResetN, // synchronous reset*.
+ iClk // module clock.
+ );
+/*--------------------------------description-----------------------------------
+ an 8-bit preloadable counter.
+-------------------------------------notes--------------------------------------
+ shifting is LSB->MSB.
+------------------------------------defines-----------------------------------*/
+/*-----------------------------------ports------------------------------------*/
+ output [ 7:0] oCount; // counter state.
+ input [ 7:0] iParallel7; // parallel-input data.
+ input [ 7:0] iParallel6; // parallel-input data.
+ input [ 7:0] iParallel5; // parallel-input data.
+ input [ 7:0] iParallel4; // parallel-input data.
+ input [ 7:0] iParallel3; // parallel-input data.
+ input [ 7:0] iParallel2; // parallel-input data.
+ input [ 7:0] iParallel1; // parallel-input data.
+ input [ 7:0] iParallel0; // parallel-input data.
+ input [ 2:0] iSel; // select the parallel input.
+ output oSerial; // serial-output data.
+ input iSerial; // serial-input data.
+ input iLoadEnable; // parallel-load-enable.
+ input iShiftEnable; // serial-shift-enable.
+ input iCountEnable; // count-increment enable.
+ input iResetN; // synchronous reset*.
+ input iClk; // module clock.
+/*-----------------------------------wires------------------------------------*/
+ wire [ 7:0] oCount; // counter state.
+ wire [ 7:0] iParallel7; // parallel-input data.
+ wire [ 7:0] iParallel6; // parallel-input data.
+ wire [ 7:0] iParallel5; // parallel-input data.
+ wire [ 7:0] iParallel4; // parallel-input data.
+ wire [ 7:0] iParallel3; // parallel-input data.
+ wire [ 7:0] iParallel2; // parallel-input data.
+ wire [ 7:0] iParallel1; // parallel-input data.
+ wire [ 7:0] iParallel0; // parallel-input data.
+ wire [ 2:0] iSel; // select the parallel input.
+ wire [ 7:0] wParallelIn; // select the parallel input.
+ wire oSerial; // serial-output data.
+ wire iSerial; // serial-input data.
+ wire iLoadEnable; // parallel-load-enable.
+ wire iShiftEnable; // serial-shift-enable.
+ wire iCountEnable; // count-increment enable.
+ wire iResetN; // synchronous reset*.
+ wire iClk; // module clock.
+/*---------------------------------registers----------------------------------*/
+ reg [ 7:0] rRegister; // the counter state.
+/*---------------------------------variables----------------------------------*/
+/*---------------------------------parameters---------------------------------*/
+/*-----------------------------------clocks-----------------------------------*/
+/*---------------------------------instances----------------------------------*/
+ mux8x8 U01_mux8x8 // data-input selection.
+ (
+ .iDin7(iParallel7),
+ .iDin6(iParallel6),
+ .iDin5(iParallel5),
+ .iDin4(iParallel4),
+ .iDin3(iParallel3),
+ .iDin2(iParallel2),
+ .iDin1(iParallel1),
+ .iDin0(iParallel0),
+ .iSel (iSel),
+ .oDout(wParallelIn)
+ );
+/*-----------------------------------logic------------------------------------*/
+ always @ (posedge iClk or negedge iResetN)
+ begin
+ if (!iResetN) rRegister <= 8'h00;
+ else if (iLoadEnable) rRegister <= wParallelIn;
+ else if (iShiftEnable) rRegister <= {rRegister[6:0], iSerial};
+ else if (iCountEnable) rRegister <= rRegister + 1'b1;
+ else rRegister <= rRegister;
+ end
+
+ assign oCount = rRegister; // propagate counter state.
+ assign oSerial = rRegister[7]; // propagate serial-out.
+/*-------------------------------*/endmodule/*--------------------------------*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmRTL/cpu.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,531 @@
+/*----------------------------------copyright---//----------------------------*/
+// licensed for personal and academic use.
+// commercial use must be approved by the account-holder of
+// gated.clock@gmail.com
+/*-----------------------------------module-----//----------------------------*/
+ module cpu
+ (
+ iMOSI,
+ oMISO,
+ iSPIclk,
+ iCPUclk,
+ iKEY,
+ iSW,
+ oLEDR,
+ oLEDG,
+ oDummyLoad
+ );
+/*--------------------------------description---//------------------------------
+ the demonstration cpu datapath.
+
+ the CPU consists of
+ R0 - 8-bit register and accumulator.
+ R1 - 8-bit register and main-memory address register.
+ R2 - 8-bit register and main-memory high data byte.
+ R3 - 8-bit register and main-memory low data byte.
+ PC - 8-bit program counter.
+ IR - 16-bit instruction register.
+ ID - combinatorial instruction decoder.
+ MM - 16-bit-wide x 256-address Main Memory.
+
+ the instruction words is sixteen bits long, and is comprised of
+ <15:13> = source resource.
+ <12:10> = destination resource.
+ < 9> = write-enable.
+ < 8> = program-counter-enable.
+ < 7: 0> = immediate data.
+
+ the registers (U00 through U05) have a iSel input which define the source.
+ the instruction decoder (U06) enables the loading of the destinations.
+
+ the SPI shadow registers (U19-U25) monitor the CPU state, and can
+ control the CPU state by asserting U19's bits 1 and 2.
+
+ U08 provides a shadow register load-enable pulse which
+ begins at the falling edge of a CPU clock and ends at
+ the falling edge of the next SPI clock, allowing the shadow
+ registers the ability to capture the state of the CPU.
+
+ U30 routes internal nets out to the green LED bank according
+ to the setting of switches SW<3:0>.
+
+-------------------------------------notes------//------------------------------
+
+ fpga board pin assignments.
+
+
+ project:
+ MOSI P17
+ MISO D15
+ SPIclk E20
+ CPUclk E14
+
+
+ key3 T21
+ key2 T22
+ key1 R21
+ key0 R22 iRstn
+
+ sw9 L2
+ sw8 M1
+ sw7 M2
+ sw6 U11
+ sw5 U12
+ sw4 W12
+ sw3 V12
+ sw2 M22
+ sw1 L21
+ sw0 L22
+
+ ledr9 R17
+ ledr8 R18
+ ledr7 U18
+ ledr6 Y18
+ ledr5 V19
+ ledr4 T18
+ ledr3 Y19
+ ledr2 U19
+ ledr1 R19
+ ledr0 R20
+
+ ledg7 Y21
+ ledg6 Y22
+ ledg5 W21
+ ledg4 W22
+ ledg3 V21
+ ledg2 V22
+ ledg1 U21
+ ledg0 U22
+------------------------------------defines-----//----------------------------*/
+/*-----------------------------------ports------//----------------------------*/
+ input iMOSI; // SPI input.
+ output oMISO; // SPI output.
+ input iSPIclk; // SPI clock.
+ input iCPUclk; // CPU clock.
+ input [ 3:0] iKEY; // keypress.
+ input [ 9:0] iSW; // slide-switches.
+ output [ 9:0] oLEDR; // red LED bank.
+ output [ 7:0] oLEDG; // green LED bank.
+ output oDummyLoad; // anti-optimization.
+/*-----------------------------------wires------//----------------------------*/
+ wire iMOSI; // SPI input.
+ wire oMISO; // SPI output.
+ wire iSPIclk; // SPI clock.
+ wire iCPUclk; // CPU clock.
+ wire [ 3:0] iKEY; // keypress.
+ wire [ 9:0] iSW; // slide-switches.
+ wire [ 9:0] oLEDR; // red LED bank.
+ wire [ 7:0] oLEDG; // green LED bank.
+
+ wire wCEPC; // program counter count-enable.
+ wire [15:0] wIR; // instruction register.
+ wire wLEIR; // instruction register load-enable.
+ wire wLEPC; // program counter load-enable.
+ wire wLER0; // R0 load-enable.
+ wire wLER1; // R1 load-enable.
+ wire wLER2; // R2 load-enable.
+ wire wLER3; // R3 load-enable.
+ wire [15:0] wMMD; // main-memory data-out.
+ wire [15:0] wMMI; // main-memory instruction-out.
+ wire [ 7:0] wPC; // program-counter.
+ wire [ 7:0] wR0; // R0.
+ wire [ 7:0] wR1; // R1.
+ wire [ 7:0] wR2; // R2.
+ wire [ 7:0] wR3; // R3.
+ wire wRstn; // system reset.
+ wire [ 2:0] wSel; // common data-in selector.
+ wire [ 7:0] wShadow0; // R0 shadow register.
+ wire [ 7:0] wShadow1; // R1 shadow register.
+ wire [ 7:0] wShadow2; // R2 shadow register.
+ wire [ 7:0] wShadow3; // R3 shadow register.
+ wire [15:0] wShadowIR; // instruction register shadow.
+ wire [ 7:0] wShadowPC; // program counter shadow.
+ wire wSIR; // instruction register shadow shift-up.
+ wire wSPC; // program counter shadow shift-up.
+ wire wSR0; // R0 shadow shift-up.
+ wire wSR1; // R1 shadow shift-up.
+ wire wSR2; // R2 shadow shift-up.
+ wire wSR3; // R3 shadow shift-up.
+ wire wWE; // write-enable pulse.
+ wire [ 7:0] wImmediate; // immediate data.
+ wire [ 7:0] wSpiControl; // from spi control register.
+ wire wSquelch; // from spi control register.
+ wire wBypassIR; // from spi control register.
+ wire wLoadShadows; // shadow registers parallel load.
+
+ // not currently used.
+ wire [ 7:0] wGreenLEDBus7; // green LED bus.
+ wire [ 7:0] wGreenLEDBus6; // green LED bus.
+ wire [ 7:0] wGreenLEDBus5; // green LED bus.
+ wire [ 7:0] wGreenLEDBus4; // green LED bus.
+ wire [ 7:0] wGreenLEDBus3; // green LED bus.
+ wire [ 7:0] wGreenLEDBus2; // green LED bus.
+ wire [ 7:0] wGreenLEDBus1; // green LED bus.
+ wire [ 7:0] wGreenLEDBus0; // green LED bus.
+ wire oDummyLoad; // anti-optimization.
+ wire [ 3:0] wTrigger; // trigger control.
+/*---------------------------------registers----//----------------------------*/
+/*---------------------------------variables----//----------------------------*/
+/*---------------------------------parameters---//----------------------------*/
+/*-----------------------------------clocks-----//----------------------------*/
+/*---------------------------------instances----//----------------------------*/
+
+//--- begin regular CPU section.
+
+
+ reg_08 U00_R0 // CPU R0.
+ (
+ .oParallel (wR0),
+ .iParallel7 (wShadow0),
+ .iParallel6 (wR1 + wR2), // adder.
+ .iParallel5 (wImmediate),
+ .iParallel4 (wR0),
+ .iParallel3 (wR3),
+ .iParallel2 (wR2),
+ .iParallel1 (wR1),
+ .iParallel0 (wR0), // needed for zero vector no-op.
+ .iSel (wSel),
+ .oSerial (),
+ .iSerial (1'b0),
+ .iLoadEnable (wLER0),
+ .iShiftEnable(1'b0),
+ .iResetN (wRstn),
+ .iClk (iCPUclk)
+ );
+
+
+
+ reg_08 U01_R1 // CPU R1.
+ (
+ .oParallel (wR1),
+ .iParallel7 (wShadow1),
+ .iParallel6 (wMMD[7:0]),
+ .iParallel5 (wImmediate),
+ .iParallel4 (wR1),
+ .iParallel3 (wR3),
+ .iParallel2 (wR2),
+ .iParallel1 (wR1),
+ .iParallel0 (wR0),
+ .iSel (wSel),
+ .oSerial (),
+ .iSerial (1'b0),
+ .iLoadEnable (wLER1),
+ .iShiftEnable(1'b0),
+ .iResetN (wRstn),
+ .iClk (iCPUclk)
+ );
+
+
+
+ reg_08 U02_R2 // CPU R2.
+ (
+ .oParallel (wR2),
+ .iParallel7 (wShadow2),
+ .iParallel6 (wMMD[15:8]),
+ .iParallel5 (wImmediate),
+ .iParallel4 (wR2),
+ .iParallel3 (wR3),
+ .iParallel2 (wR2),
+ .iParallel1 (wR1),
+ .iParallel0 (wR0),
+ .iSel (wSel),
+ .oSerial (),
+ .iSerial (1'b0),
+ .iLoadEnable (wLER2),
+ .iShiftEnable(1'b0),
+ .iResetN (wRstn),
+ .iClk (iCPUclk)
+ );
+
+
+ reg_08 U03_R3 // CPU R3.
+ (
+ .oParallel (wR3),
+ .iParallel7 (wShadow3),
+ .iParallel6 (wMMD[7:0]),
+ .iParallel5 (wImmediate),
+ .iParallel4 (wR3),
+ .iParallel3 (wR3),
+ .iParallel2 (wR2),
+ .iParallel1 (wR1),
+ .iParallel0 (wR0),
+ .iSel (wSel),
+ .oSerial (),
+ .iSerial (1'b0),
+ .iLoadEnable (wLER3),
+ .iShiftEnable(1'b0),
+ .iResetN (wRstn),
+ .iClk (iCPUclk)
+ );
+
+
+
+ counter_08 U04_PC // CPU program counter.
+ (
+ .oCount (wPC),
+ .iParallel7 (wShadowPC),
+ .iParallel6 (wMMD[7:0]),
+ .iParallel5 (wImmediate),
+ .iParallel4 (wPC),
+ .iParallel3 (wR3),
+ .iParallel2 (wR2),
+ .iParallel1 (wR1),
+ .iParallel0 (wR0),
+ .iSel (wSel),
+ .oSerial (),
+ .iSerial (1'b0),
+ .iLoadEnable (wLEPC),
+ .iShiftEnable(1'b0),
+ .iCountEnable(wCEPC),
+ .iResetN (wRstn),
+ .iClk (iCPUclk)
+ );
+
+
+ reg_16 U05_IR // CPU instruction register.
+ (
+ .oParallel (wIR), // IR state.
+ .iParallel1 (wShadowIR), // IR shadow state.
+ .iParallel0 (wMMI), // MM output.
+ .iSel (wSpiControl[2]), // special control.
+ .oSerial (),
+ .iSerial (1'b0),
+ .iLoadEnable (wLEIR),
+ .iShiftEnable(1'b0),
+ .iResetN (wRstn),
+ .iClk (iCPUclk)
+ );
+
+
+ instruction_decoder U06_ID // instruction decoder.
+ (
+ .iSquelch (wSquelch), // squelch when writing to IR.
+ .iIR (wIR), // instruction register.
+ .iBypass (wShadowIR), // IR bypass from SPI.
+ .iBypassIR (wBypassIR), // bypass the IR.
+ .oSel (wSel), // common data-in selector.
+ .oLER0 (wLER0), // R0 load-enable.
+ .oLER1 (wLER1), // R1 load-enable.
+ .oLER2 (wLER2), // R2 load-enable.
+ .oLER3 (wLER3), // R3 load-enable.
+ .oLEPC (wLEPC), // PC load-enable.
+ .oWE (wWE), // write-enable pulse.
+ .oCEPC (wCEPC), // PC count-enable.
+ .oImmediate(wImmediate) // immediate data.
+ );
+
+
+
+ // main memory:
+ // the program counter reads from read-port-0.
+ // the R2:R1 port reads from read-port-1.
+ // the R2:R1 port writes to the write port.
+ // the R2:R1 port reads/writes using address from R3.
+
+
+ main_memory U07_MM // main-memory.
+ (
+ .iReadAddress1(wR3), // from R3.
+ .iReadAddress0(wPC), // from PC
+ .iWriteAddress(wR3), // from R3
+ .oReadData1 (wMMD), // to <R2:R1>
+ .oReadData0 (wMMI), // to IR.
+ .iWriteData ({wR2,wR1}), // from <R2:R1>.
+ .iWE (wWE), // from the instruction decoder.
+ .iCPUclk (iCPUclk)
+ );
+
+
+ // load shadow-registers upon rising
+ // edge of first SPI clock following
+ // the falling edge of a CPU clock.
+ shadow_load_control U08_shadow_load // shadow-register load control.
+ (
+ .iCPUclk(iCPUclk),
+ .iSPIclk(iSPIclk),
+ .iRstn(wRstn),
+ .oLoadEnable(wLoadShadows)
+ );
+
+
+//--- begin SPI shadow-scan section.
+
+
+ // the SPI scan registers are generally
+ // given the term 'shadow registers'.
+
+
+ scan_08 U19_spi_control // top of SPI scan chain, used for control.
+ (
+ .oParallel (wSpiControl), // green LED select 7.
+ .iParallel (wSpiControl), // self-refresh.
+ .oSerial (oMISO),
+ .iSerial (wSR0),
+ .iLoadEnable (wLoadShadows),
+ .iShiftEnable(1'b1),
+ .iResetN (wRstn),
+ .iClk (iSPIclk)
+ );
+
+
+
+ scan_08 U20_shadowR0 // R0 shadow register.
+ (
+ .oParallel (wShadow0), // green LED select 6.
+ .iParallel (wR0),
+ .oSerial (wSR0),
+ .iSerial (wSR1),
+ .iLoadEnable (wLoadShadows),
+ .iShiftEnable(1'b1),
+ .iResetN (wRstn),
+ .iClk (iSPIclk)
+ );
+
+ scan_08 U21_shadowR1 // R1 shadow register.
+ (
+ .oParallel (wShadow1), // green LED select 5.
+ .iParallel (wR1),
+ .oSerial (wSR1),
+ .iSerial (wSR2),
+ .iLoadEnable (wLoadShadows),
+ .iShiftEnable(1'b1),
+ .iResetN (wRstn),
+ .iClk (iSPIclk)
+ );
+
+ scan_08 U22_shadowR2 // R2 shadow register.
+ (
+ .oParallel (wShadow2), // green LED select 4.
+ .iParallel (wR2),
+ .oSerial (wSR2),
+ .iSerial (wSR3),
+ .iLoadEnable (wLoadShadows),
+ .iShiftEnable(1'b1),
+ .iResetN (wRstn),
+ .iClk (iSPIclk)
+ );
+
+ scan_08 U23_shadowR3 // R3 shadow register.
+ (
+ .oParallel (wShadow3), // green LED select 3.
+ .iParallel (wR3),
+ .oSerial (wSR3),
+ .iSerial (wSPC),
+ .iLoadEnable (wLoadShadows),
+ .iShiftEnable(1'b1),
+ .iResetN (wRstn),
+ .iClk (iSPIclk)
+ );
+
+ scan_08 U24_shadowPC // program-counter shadow register.
+ (
+ .oParallel (wShadowPC), // green LED select 2.
+ .iParallel (wPC),
+ .oSerial (wSPC),
+ .iSerial (wSIR),
+ .iLoadEnable (wLoadShadows),
+ .iShiftEnable(1'b1),
+ .iResetN (wRstn),
+ .iClk (iSPIclk)
+ );
+
+ scan_16 U25_shadowIR // instruction-register shadow register.
+ (
+ .oParallel (wShadowIR), // green LED select 1,0.
+ .iParallel (wIR),
+ .oSerial (wSIR),
+ .iSerial (iMOSI),
+ .iLoadEnable (wLoadShadows),
+ .iShiftEnable(1'b1),
+ .iResetN (wRstn),
+ .iClk (iSPIclk)
+ );
+
+
+
+//--- begin green LED signal-monitoring section.
+
+
+
+ mux8x16 U30_green_led_mux // green LED diagnostic mux.
+ (
+ .iDin15({wLER0,wLER1,wLER2,wLER3,wLEPC,wLEIR,wWE,wCEPC}),
+ .iDin14(wIR[15:8]), // IR-H.
+ .iDin13(wIR[7:0]), // IR-L.
+ .iDin12(wPC), // PC.
+ .iDin11(wR3), // R3.
+ .iDin10(wR2), // R2.
+ .iDin9 (wR1), // R1.
+ .iDin8 (wR0), // R0.
+ .iDin7 (wSpiControl), // SPI control.
+ .iDin6 (wShadowIR[15:8]), // IR-H shadow.
+ .iDin5 (wShadowIR[7:0]), // IR-L shadow.
+ .iDin4 (wShadowPC), // PC shadow.
+ .iDin3 (wShadow3), // R3 shadow.
+ .iDin2 (wShadow2), // R2 shadow.
+ .iDin1 (wShadow1), // R1 shadow.
+ .iDin0 (wShadow0), // R0 shadow.
+ .iSel (iSW[3:0]), // mux-select.
+ .oDout (oLEDG) // to green LED bank.
+ );
+/*-----------------------------------logic------//----------------------------*/
+ assign wRstn = iKEY[0]; // pushbutton system reset.
+ assign wSquelch = wSpiControl[2]; // for python squelching ins. decode.
+ assign wBypassIR = wSpiControl[1]; // for python controlling CPU.
+ assign wTrigger = wSpiControl[7:4]; // for signaltap triggering, not used.
+
+ // load instruction register
+ // if neither or both shadow
+ // control signals asserted.
+ assign wLEIR = !(wSquelch ^ wBypassIR);
+
+
+ assign oLEDR[9] = 1'b0; // red LED hookup.
+ assign oLEDR[8] = 1'b0;
+ assign oLEDR[7] = wSel[2];
+ assign oLEDR[6] = wSel[1];
+ assign oLEDR[5] = wSel[0];
+ assign oLEDR[4] = wRstn;
+ assign oLEDR[3] = iCPUclk;
+ assign oLEDR[2] = oMISO;
+ assign oLEDR[1] = iMOSI;
+ assign oLEDR[0] = iSPIclk;
+
+
+ // signals not to be optimized
+ // out, place here.
+ assign oDummyLoad = (|wShadowIR) | wSIR | (|wSpiControl) | (|wTrigger);
+/*-------------------------------*/endmodule/*--------------------------------*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmRTL/instruction_decoder.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,202 @@ +/*----------------------------------copyright---------------------------------*/ +// licensed for personal and academic use. +// commercial use must be approved by the account-holder of +// gated.clock@gmail.com +/*-----------------------------------module-----------------------------------*/ + module instruction_decoder + ( + iSquelch, // disrupt output enables. + iIR, // instruction register. + iBypass, // instruction from SPI. + iBypassIR, // override the IR. + oSel, // common data-in selector. + oLER0, // R0 load-enable. + oLER1, // R1 load-enable. + oLER2, // R2 load-enable. + oLER3, // R3 load-enable. + oLEPC, // PC load-enable. + oWE, // write-enable pulse. + oCEPC, // PC count-enable. + oImmediate // immediate data. + ); +/*--------------------------------description----------------------------------- + the instruction decoder. +-------------------------------------notes-------------------------------------- + this instruction decoder operates in three different 'modes'. + 1. nominal mode: the instruction word is decoded as per the CPU spec. + 2. regular test mode: the instruction register is ignored, and instead + this decoder makes use of iBypass, which is the instruction pattern + provided by the instruction word shadow register (which is part of + the spi scan chain). this allows the python code to take over the + operation of the CPU. + 3. IR-write test mode: a special-case mode which occurs when python + writes to the instruction register. in this case, the outputs of + this decoder which are used to provide load-enables to CPU + resources, must be squelched. this is because we don't want the + python-written instruction register content to be decoded and + the decoded signals sent into the CPU. why? because most likely + the python-write to the IR is only to check that it can be done, + and if the result of such a write were allowed to propagate, then + the other registers may be arbitrarily updated, confusing the + user at the python end. +------------------------------------defines-----------------------------------*/ +/*-----------------------------------ports------------------------------------*/ + input iSquelch; // disrupt output enables. + input [15:0] iIR; // instruction register. + input [15:0] iBypass; // instruction from SPI. + input iBypassIR; // override the IR. + output [ 2:0] oSel; // common data-in selector. + output oLER0; // R0 load-enable. + output oLER1; // R1 load-enable. + output oLER2; // R2 load-enable. + output oLER3; // R3 load-enable. + output oLEPC; // PC load-enable. + output oWE; // write-enable pulse. + output oCEPC; // PC count-enable. + output [ 7:0] oImmediate; // immediate data. +/*-----------------------------------wires------------------------------------*/ + wire iSquelch; // disrupt output enables. + wire [15:0] iIR; // instruction register. + wire [15:0] iBypass; // instruction from SPI. + wire iBypassIR; // override the IR. + wire [ 2:0] oSel; // common data-in selector. + wire oLER0; // R0 load-enable. + wire oLER1; // R1 load-enable. + wire oLER2; // R2 load-enable. + wire oLER3; // R3 load-enable. + wire oLEPC; // PC load-enable. + wire oWE; // write-enable pulse. + wire oCEPC; // PC count-enable. + wire [ 7:0] oImmediate; // immediate data. +/*---------------------------------registers----------------------------------*/ + reg [15:0] rIR; // instruction. + reg rLER0; // R0 load-enable. + reg rLER1; // R1 load-enable. + reg rLER2; // R2 load-enable. + reg rLER3; // R3 load-enable. + reg rLEPC; // PC load-enable. +/*---------------------------------variables----------------------------------*/ +/*---------------------------------parameters---------------------------------*/ +/*-----------------------------------clocks-----------------------------------*/ +/*---------------------------------instances----------------------------------*/ +/*-----------------------------------logic------------------------------------*/ + + + always @ (rIR) + case (rIR[12:10]) // decode the load-enables. + + 7 : begin // no register. + rLER0 = 1'b0; + rLER1 = 1'b0; + rLER2 = 1'b0; + rLER3 = 1'b0; + rLEPC = 1'b0; + end + + 6 : begin // no register. + rLER0 = 1'b0; + rLER1 = 1'b0; + rLER2 = 1'b0; + rLER3 = 1'b0; + rLEPC = 1'b0; + end + + 5 : begin // no register. + rLER0 = 1'b0; + rLER1 = 1'b0; + rLER2 = 1'b0; + rLER3 = 1'b0; + rLEPC = 1'b0; + end + + 4 : begin // PC + rLER0 = 1'b0; + rLER1 = 1'b0; + rLER2 = 1'b0; + rLER3 = 1'b0; + rLEPC = 1'b1; + end + + 3 : begin // R3 + rLER0 = 1'b0; + rLER1 = 1'b0; + rLER2 = 1'b0; + rLER3 = 1'b1; + rLEPC = 1'b0; + end + + 2 : begin // R2 + rLER0 = 1'b0; + rLER1 = 1'b0; + rLER2 = 1'b1; + rLER3 = 1'b0; + rLEPC = 1'b0; + end + + 1 : begin // R1 + rLER0 = 1'b0; + rLER1 = 1'b1; + rLER2 = 1'b0; + rLER3 = 1'b0; + rLEPC = 1'b0; + end + + 0 : begin // R0 + rLER0 = 1'b1; + rLER1 = 1'b0; + rLER2 = 1'b0; + rLER3 = 1'b0; + rLEPC = 1'b0; + end + + + endcase + + assign oSel = rIR[15:13]; // pass-through. + assign oLER0 = rLER0 & !iSquelch; // decode iIR[12:10]. + assign oLER1 = rLER1 & !iSquelch; // decode iIR[12:10]. + assign oLER2 = rLER2 & !iSquelch; // decode iIR[12:10]. + assign oLER3 = rLER3 & !iSquelch; // decode iIR[12:10]. + assign oLEPC = rLEPC & !iSquelch; // decode iIR[12:10]. + assign oWE = rIR[9] & !iSquelch; // pass-through. + assign oCEPC = rIR[8] & !iSquelch; // pass-through. + assign oImmediate = rIR[7:0]; // pass-through. + + + always @ (iIR or iBypass or iBypassIR) + if (iBypassIR) rIR = iBypass; + else rIR = iIR; +/*-------------------------------*/endmodule/*--------------------------------*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmRTL/main_memory.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,74 @@ +/*----------------------------------copyright---------------------------------*/ +// licensed for personal and academic use. +// commercial use must be approved by the account-holder of +// gated.clock@gmail.com +/*-----------------------------------module-----------------------------------*/ + module main_memory + ( + iReadAddress1, // read-address 1. + iReadAddress0, // read-address 0. + iWriteAddress, // write-address. + oReadData1, // read-data 1. + oReadData0, // read-data 0. + iWriteData, // write-data. + iWE, // write-enable. + iCPUclk // cpu clock. + ); +/*--------------------------------description----------------------------------- + CPU main memory. + two read-ports, one write-port. +-------------------------------------notes-------------------------------------- + level-sensitive write-enable. + the memory needs to be sixteen bits wide in order to hold + immediate data for the instruction set. +------------------------------------defines-----------------------------------*/ +/*-----------------------------------ports------------------------------------*/ + input [ 7:0] iReadAddress1; // read-address 1. + input [ 7:0] iReadAddress0; // read-address 0. + input [ 7:0] iWriteAddress; // write-address. + output [15:0] oReadData1; // read-data 1. + output [15:0] oReadData0; // read-data 0. + input [15:0] iWriteData; // write-data. + input iWE; // write-enable. + input iCPUclk; // cpu clock. +/*-----------------------------------wires------------------------------------*/ + wire [ 7:0] iReadAddress1; // read-address 1. + wire [ 7:0] iReadAddress0; // read-address 0. + wire [ 7:0] iWriteAddress; // write-address. + wire [15:0] oReadData1; // read-data 1. + wire [15:0] oReadData0; // read-data 0. + wire [15:0] iWriteData; // write-data. + wire iWE; // write-enable. + wire iCPUclk; // cpu clock. +/*---------------------------------registers----------------------------------*/ + reg [15:0] mem_bank [0:255]; // memory bank. + reg [15:0] rData1; // data-out-1 register. + reg [15:0] rData0; // data-out-0 register. +/*---------------------------------variables----------------------------------*/ +/*---------------------------------parameters---------------------------------*/ +/*-----------------------------------clocks-----------------------------------*/ +/*---------------------------------instances----------------------------------*/ +/*-----------------------------------logic------------------------------------*/ + always @ (posedge iCPUclk) + if (iWE) mem_bank[iWriteAddress] = iWriteData; + else mem_bank[iWriteAddress] = mem_bank[iWriteAddress]; + + assign oReadData1 = mem_bank[iReadAddress1]; + assign oReadData0 = mem_bank[iReadAddress0]; +/*-------------------------------*/endmodule/*--------------------------------*/ + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmRTL/mux16x2.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,65 @@ +/*----------------------------------copyright---------------------------------*/ +// licensed for personal and academic use. +// commercial use must be approved by the account-holder of +// gated.clock@gmail.com +/*-----------------------------------module-----------------------------------*/ + module mux16x2 + ( + iDin1, // data-input 1. + iDin0, // data-input 0. + iSel, // multiplexor select. + oDout // data-out. + ); +/*--------------------------------description----------------------------------- + a 16-bit-wide, 2-selection multiplexor. +-------------------------------------notes-------------------------------------- +------------------------------------defines-----------------------------------*/ +/*-----------------------------------ports------------------------------------*/ + input [15:0] iDin1; // data-input 1. + input [15:0] iDin0; // data-input 0. + input iSel; // multiplexor select. + output [15:0] oDout; // data-out. +/*-----------------------------------wires------------------------------------*/ + wire [15:0] iDin1; // data-input 1. + wire [15:0] iDin0; // data-input 0. + wire iSel; // multiplexor select. + wire [15:0] oDout; // data-out. +/*---------------------------------registers----------------------------------*/ + reg [15:0] rDout; // output register. +/*---------------------------------variables----------------------------------*/ +/*---------------------------------parameters---------------------------------*/ +/*-----------------------------------clocks-----------------------------------*/ +/*---------------------------------instances----------------------------------*/ +/*-----------------------------------logic------------------------------------*/ + always @ (iDin1 or iDin0 or iSel) + case (iSel) + 1 : rDout = iDin1; + 0 : rDout = iDin0; + endcase + + assign oDout = rDout; // propagate output. +/*-------------------------------*/endmodule/*--------------------------------*/ + + + + + + + + + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmRTL/mux8x16.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,120 @@ +/*----------------------------------copyright---------------------------------*/ +// licensed for personal and academic use. +// commercial use must be approved by the account-holder of +// gated.clock@gmail.com +/*-----------------------------------module-----------------------------------*/ + module mux8x16 + ( + iDin15, // data-input 15. + iDin14, // data-input 14. + iDin13, // data-input 13. + iDin12, // data-input 12. + iDin11, // data-input 11. + iDin10, // data-input 10. + iDin9, // data-input 9. + iDin8, // data-input 8. + iDin7, // data-input 7. + iDin6, // data-input 6. + iDin5, // data-input 5. + iDin4, // data-input 4. + iDin3, // data-input 3. + iDin2, // data-input 2. + iDin1, // data-input 1. + iDin0, // data-input 0. + iSel, // multiplexor select. + oDout // data-out. + ); +/*--------------------------------description----------------------------------- + a 8-bit-wide, 16-selection multiplexor. +-------------------------------------notes-------------------------------------- +------------------------------------defines-----------------------------------*/ +/*-----------------------------------ports------------------------------------*/ + input [ 7:0] iDin15; // data-input 15. + input [ 7:0] iDin14; // data-input 14. + input [ 7:0] iDin13; // data-input 13. + input [ 7:0] iDin12; // data-input 12. + input [ 7:0] iDin11; // data-input 11. + input [ 7:0] iDin10; // data-input 10. + input [ 7:0] iDin9; // data-input 9. + input [ 7:0] iDin8; // data-input 8. + input [ 7:0] iDin7; // data-input 7. + input [ 7:0] iDin6; // data-input 6. + input [ 7:0] iDin5; // data-input 5. + input [ 7:0] iDin4; // data-input 4. + input [ 7:0] iDin3; // data-input 3. + input [ 7:0] iDin2; // data-input 2. + input [ 7:0] iDin1; // data-input 1. + input [ 7:0] iDin0; // data-input 0. + input [ 3:0] iSel; // multiplexor select. + output [ 7:0] oDout; // data-out. +/*-----------------------------------wires------------------------------------*/ + wire [ 7:0] iDin15; // data-input 15. + wire [ 7:0] iDin14; // data-input 14. + wire [ 7:0] iDin13; // data-input 13. + wire [ 7:0] iDin12; // data-input 12. + wire [ 7:0] iDin11; // data-input 11. + wire [ 7:0] iDin10; // data-input 10. + wire [ 7:0] iDin9; // data-input 9. + wire [ 7:0] iDin8; // data-input 8. + wire [ 7:0] iDin7; // data-input 7. + wire [ 7:0] iDin6; // data-input 6. + wire [ 7:0] iDin5; // data-input 5. + wire [ 7:0] iDin4; // data-input 4. + wire [ 7:0] iDin3; // data-input 3. + wire [ 7:0] iDin2; // data-input 2. + wire [ 7:0] iDin1; // data-input 1. + wire [ 7:0] iDin0; // data-input 0. + wire [ 3:0] iSel; // multiplexor select. + wire [ 7:0] oDout; // data-out. +/*---------------------------------registers----------------------------------*/ + reg [ 7:0] rDout; // output register. +/*---------------------------------variables----------------------------------*/ +/*---------------------------------parameters---------------------------------*/ +/*-----------------------------------clocks-----------------------------------*/ +/*---------------------------------instances----------------------------------*/ +/*-----------------------------------logic------------------------------------*/ + + always @ (iDin15 or iDin14 or iDin13 or iDin12 or + iDin11 or iDin10 or iDin9 or iDin8 or + iDin7 or iDin6 or iDin5 or iDin4 or + iDin3 or iDin2 or iDin1 or iDin0 or iSel) + case (iSel) + 15 : rDout = iDin15; + 14 : rDout = iDin14; + 13 : rDout = iDin13; + 12 : rDout = iDin12; + 11 : rDout = iDin11; + 10 : rDout = iDin10; + 9 : rDout = iDin9; + 8 : rDout = iDin8; + 7 : rDout = iDin7; + 6 : rDout = iDin6; + 5 : rDout = iDin5; + 4 : rDout = iDin4; + 3 : rDout = iDin3; + 2 : rDout = iDin2; + 1 : rDout = iDin1; + 0 : rDout = iDin0; + endcase + + assign oDout = rDout; // propagate output. +/*-------------------------------*/endmodule/*--------------------------------*/ + + + + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmRTL/mux8x8.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,87 @@ +/*----------------------------------copyright---------------------------------*/ +// licensed for personal and academic use. +// commercial use must be approved by the account-holder of +// gated.clock@gmail.com +/*-----------------------------------module-----------------------------------*/ + module mux8x8 + ( + iDin7, // data-input 7. + iDin6, // data-input 6. + iDin5, // data-input 5. + iDin4, // data-input 4. + iDin3, // data-input 3. + iDin2, // data-input 2. + iDin1, // data-input 1. + iDin0, // data-input 0. + iSel, // multiplexor select. + oDout // data-out. + ); +/*--------------------------------description----------------------------------- + an 8-bit-wide, 8-selection multiplexor. +-------------------------------------notes-------------------------------------- +------------------------------------defines-----------------------------------*/ +/*-----------------------------------ports------------------------------------*/ + input [ 7:0] iDin7; // data-input 7. + input [ 7:0] iDin6; // data-input 6. + input [ 7:0] iDin5; // data-input 5. + input [ 7:0] iDin4; // data-input 4. + input [ 7:0] iDin3; // data-input 3. + input [ 7:0] iDin2; // data-input 2. + input [ 7:0] iDin1; // data-input 1. + input [ 7:0] iDin0; // data-input 0. + input [ 2:0] iSel; // multiplexor select. + output [ 7:0] oDout; // data-out. +/*-----------------------------------wires------------------------------------*/ + wire [ 7:0] iDin7; // data-input 7. + wire [ 7:0] iDin6; // data-input 6. + wire [ 7:0] iDin5; // data-input 5. + wire [ 7:0] iDin4; // data-input 4. + wire [ 7:0] iDin3; // data-input 3. + wire [ 7:0] iDin2; // data-input 2. + wire [ 7:0] iDin1; // data-input 1. + wire [ 7:0] iDin0; // data-input 0. + wire [ 2:0] iSel; // multiplexor select. + wire [ 7:0] oDout; // data-out. +/*---------------------------------registers----------------------------------*/ + reg [ 7:0] rDout; // output register. +/*---------------------------------variables----------------------------------*/ +/*---------------------------------parameters---------------------------------*/ +/*-----------------------------------clocks-----------------------------------*/ +/*---------------------------------instances----------------------------------*/ +/*-----------------------------------logic------------------------------------*/ + always @ (iDin7 or iDin6 or iDin5 or iDin4 or + iDin3 or iDin2 or iDin1 or iDin0 or iSel) + case (iSel) + 7 : rDout = iDin7; + 6 : rDout = iDin6; + 5 : rDout = iDin5; + 4 : rDout = iDin4; + 3 : rDout = iDin3; + 2 : rDout = iDin2; + 1 : rDout = iDin1; + 0 : rDout = iDin0; + endcase + + assign oDout = rDout; // propagate output. +/*-------------------------------*/endmodule/*--------------------------------*/ + + + + + + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmRTL/reg_08.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,128 @@
+/*----------------------------------copyright---------------------------------*/
+// licensed for personal and academic use.
+// commercial use must be approved by the account-holder of
+// gated.clock@gmail.com
+/*-----------------------------------module-----------------------------------*/
+ module reg_08
+ (
+ oParallel, // parallel-output data.
+ iParallel7, // parallel-input data.
+ iParallel6, // parallel-input data.
+ iParallel5, // parallel-input data.
+ iParallel4, // parallel-input data.
+ iParallel3, // parallel-input data.
+ iParallel2, // parallel-input data.
+ iParallel1, // parallel-input data.
+ iParallel0, // parallel-input data.
+ iSel, // select the parallel input.
+ oSerial, // serial-output data.
+ iSerial, // serial-input data.
+ iLoadEnable, // parallel-load-enable.
+ iShiftEnable, // serial-shift-enable.
+ iResetN, // synchronous reset*.
+ iClk // module clock.
+ );
+/*--------------------------------description-----------------------------------
+ an 8-bit parallel shift-register with 8 selectable input buses.
+-------------------------------------notes--------------------------------------
+ shifting is LSB->MSB.
+------------------------------------defines-----------------------------------*/
+/*-----------------------------------ports------------------------------------*/
+ output [ 7:0] oParallel; // parallel-output data.
+ input [ 7:0] iParallel7; // parallel-input data.
+ input [ 7:0] iParallel6; // parallel-input data.
+ input [ 7:0] iParallel5; // parallel-input data.
+ input [ 7:0] iParallel4; // parallel-input data.
+ input [ 7:0] iParallel3; // parallel-input data.
+ input [ 7:0] iParallel2; // parallel-input data.
+ input [ 7:0] iParallel1; // parallel-input data.
+ input [ 7:0] iParallel0; // parallel-input data.
+ input [ 2:0] iSel; // select the parallel input.
+ output oSerial; // serial-output data.
+ input iSerial; // serial-input data.
+ input iLoadEnable; // parallel-load-enable.
+ input iShiftEnable; // serial-shift-enable.
+ input iResetN; // synchronous reset*.
+ input iClk; // module clock.
+/*-----------------------------------wires------------------------------------*/
+ wire [ 7:0] oParallel; // parallel-output data.
+ wire [ 7:0] iParallel7; // parallel-input data.
+ wire [ 7:0] iParallel6; // parallel-input data.
+ wire [ 7:0] iParallel5; // parallel-input data.
+ wire [ 7:0] iParallel4; // parallel-input data.
+ wire [ 7:0] iParallel3; // parallel-input data.
+ wire [ 7:0] iParallel2; // parallel-input data.
+ wire [ 7:0] iParallel1; // parallel-input data.
+ wire [ 7:0] iParallel0; // parallel-input data.
+ wire [ 2:0] iSel; // select the parallel input.
+ wire [ 7:0] wParallelIn; // select the parallel input.
+ wire oSerial; // serial-output data.
+ wire iSerial; // serial-input data.
+ wire iLoadEnable; // parallel-load-enable.
+ wire iShiftEnable; // serial-shift-enable.
+ wire iResetN; // synchronous reset*.
+ wire iClk; // module clock.
+/*---------------------------------registers----------------------------------*/
+ reg [ 7:0] rRegister; // the register.
+/*---------------------------------variables----------------------------------*/
+/*---------------------------------parameters---------------------------------*/
+/*-----------------------------------clocks-----------------------------------*/
+/*---------------------------------instances----------------------------------*/
+ mux8x8 U01_mux8x8 // data-input selection.
+ (
+ .iDin7(iParallel7),
+ .iDin6(iParallel6),
+ .iDin5(iParallel5),
+ .iDin4(iParallel4),
+ .iDin3(iParallel3),
+ .iDin2(iParallel2),
+ .iDin1(iParallel1),
+ .iDin0(iParallel0),
+ .iSel (iSel),
+ .oDout(wParallelIn)
+ );
+/*-----------------------------------logic------------------------------------*/
+ always @ (posedge iClk or negedge iResetN)
+ begin
+ if (!iResetN) rRegister <= 8'h00;
+ else if (iLoadEnable) rRegister <= wParallelIn;
+ else if (iShiftEnable) rRegister <= {rRegister[6:0], iSerial};
+ else rRegister <= rRegister;
+ end
+
+ assign oParallel = rRegister; // propagate parallel-out.
+ assign oSerial = rRegister[7]; // propagate serial-out.
+/*-------------------------------*/endmodule/*--------------------------------*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmRTL/reg_16.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,72 @@
+/*----------------------------------copyright---------------------------------*/
+// licensed for personal and academic use.
+// commercial use must be approved by the account-holder of
+// gated.clock@gmail.com
+/*-----------------------------------module-----------------------------------*/
+ module reg_16
+ (
+ oParallel, // parallel-output data.
+ iParallel1, // parallel-input data.
+ iParallel0, // parallel-input data.
+ iSel, // select the parallel input.
+ oSerial, // serial-output data.
+ iSerial, // serial-input data.
+ iLoadEnable, // parallel-load-enable.
+ iShiftEnable, // serial-shift-enable.
+ iResetN, // synchronous reset*.
+ iClk // module clock.
+ );
+/*--------------------------------description-----------------------------------
+ a 16-bit parallel shift-register with 2 selectable input buses.
+-------------------------------------notes--------------------------------------
+ shifting is LSB->MSB.
+------------------------------------defines-----------------------------------*/
+/*-----------------------------------ports------------------------------------*/
+ output [15:0] oParallel; // parallel-output data.
+ input [15:0] iParallel1; // parallel-input data.
+ input [15:0] iParallel0; // parallel-input data.
+ input iSel; // select the parallel input.
+ output oSerial; // serial-output data.
+ input iSerial; // serial-input data.
+ input iLoadEnable; // parallel-load-enable.
+ input iShiftEnable; // serial-shift-enable.
+ input iResetN; // synchronous reset*.
+ input iClk; // module clock.
+/*-----------------------------------wires------------------------------------*/
+ wire [15:0] oParallel; // parallel-output data.
+ wire [15:0] iParallel1; // parallel-input data.
+ wire [15:0] iParallel0; // parallel-input data.
+ wire iSel; // select the parallel input.
+ wire [15:0] wParallelIn; // select the parallel input.
+ wire oSerial; // serial-output data.
+ wire iSerial; // serial-input data.
+ wire iLoadEnable; // parallel-load-enable.
+ wire iShiftEnable; // serial-shift-enable.
+ wire iResetN; // synchronous reset*.
+ wire iClk; // module clock.
+/*---------------------------------registers----------------------------------*/
+ reg [15:0] rRegister; // the register.
+/*---------------------------------variables----------------------------------*/
+/*---------------------------------parameters---------------------------------*/
+/*-----------------------------------clocks-----------------------------------*/
+/*---------------------------------instances----------------------------------*/
+ mux16x2 U0_mux16x2 // data-input selection.
+ (
+ .iDin1(iParallel1),
+ .iDin0(iParallel0),
+ .iSel (iSel),
+ .oDout(wParallelIn)
+ );
+/*-----------------------------------logic------------------------------------*/
+ always @ (posedge iClk or negedge iResetN)
+ begin
+ if (!iResetN) rRegister <= 16'h0000;
+ else if (iLoadEnable) rRegister <= wParallelIn;
+ else if (iShiftEnable) rRegister <= {rRegister[14:0], iSerial};
+ else rRegister <= rRegister;
+ end
+
+ assign oParallel = rRegister; // propagate parallel-out.
+ assign oSerial = rRegister[15]; // propagate serial-out.
+/*-------------------------------*/endmodule/*--------------------------------*/
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmRTL/scan_08.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,75 @@
+/*----------------------------------copyright---------------------------------*/
+// licensed for personal and academic use.
+// commercial use must be approved by the account-holder of
+// gated.clock@gmail.com
+/*-----------------------------------module-----------------------------------*/
+ module scan_08 // shadow register.
+ (
+ oParallel, // parallel-output data.
+ iParallel, // parallel-input data.
+ oSerial, // serial-output data.
+ iSerial, // serial-input data.
+ iLoadEnable, // parallel-load-enable.
+ iShiftEnable, // serial-shift-enable.
+ iResetN, // synchronous reset*.
+ iClk // module clock.
+ );
+/*--------------------------------description-----------------------------------
+ an 8-bit parallel shift-register.
+-------------------------------------notes--------------------------------------
+ shifting is LSB->MSB.
+------------------------------------defines-----------------------------------*/
+/*-----------------------------------ports------------------------------------*/
+ output [ 7:0] oParallel; // parallel-output data.
+ input [ 7:0] iParallel; // parallel-input data.
+ output oSerial; // serial-output data.
+ input iSerial; // serial-input data.
+ input iLoadEnable; // parallel-load-enable.
+ input iShiftEnable; // serial-shift-enable.
+ input iResetN; // synchronous reset*.
+ input iClk; // module clock.
+/*-----------------------------------wires------------------------------------*/
+ wire [ 7:0] oParallel; // parallel-output data.
+ wire [ 7:0] iParallel; // parallel-input data.
+ wire [ 7:0] wParallelIn; // select the parallel input.
+ wire oSerial; // serial-output data.
+ wire iSerial; // serial-input data.
+ wire iLoadEnable; // parallel-load-enable.
+ wire iShiftEnable; // serial-shift-enable.
+ wire iResetN; // synchronous reset*.
+ wire iClk; // module clock.
+/*---------------------------------registers----------------------------------*/
+ reg [ 7:0] rRegister; // the register.
+/*---------------------------------variables----------------------------------*/
+/*---------------------------------parameters---------------------------------*/
+/*-----------------------------------clocks-----------------------------------*/
+/*---------------------------------instances----------------------------------*/
+/*-----------------------------------logic------------------------------------*/
+ always @ (posedge iClk or negedge iResetN)
+ begin
+ if (!iResetN) rRegister <= 8'h00;
+ else if (iLoadEnable) rRegister <= iParallel;
+ else if (iShiftEnable) rRegister <= {rRegister[6:0], iSerial};
+ else rRegister <= rRegister;
+ end
+
+ assign oParallel = rRegister; // propagate parallel-out.
+ assign oSerial = rRegister[7]; // propagate serial-out.
+/*-------------------------------*/endmodule/*--------------------------------*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmRTL/scan_16.txt Tue Sep 17 19:42:49 2013 +0000
@@ -0,0 +1,77 @@
+/*----------------------------------copyright---------------------------------*/
+// licensed for personal and academic use.
+// commercial use must be approved by the account-holder of
+// gated.clock@gmail.com
+/*-----------------------------------module-----------------------------------*/
+ module scan_16 // shadow register.
+ (
+ oParallel, // parallel-output data.
+ iParallel, // parallel-input data.
+ oSerial, // serial-output data.
+ iSerial, // serial-input data.
+ iLoadEnable, // parallel-load-enable.
+ iShiftEnable, // serial-shift-enable.
+ iResetN, // synchronous reset*.
+ iClk // module clock.
+ );
+/*--------------------------------description-----------------------------------
+ a 16-bit parallel shift-register.
+-------------------------------------notes--------------------------------------
+ shifting is LSB->MSB.
+------------------------------------defines-----------------------------------*/
+/*-----------------------------------ports------------------------------------*/
+ output [15:0] oParallel; // parallel-output data.
+ input [15:0] iParallel; // parallel-input data.
+ output oSerial; // serial-output data.
+ input iSerial; // serial-input data.
+ input iLoadEnable; // parallel-load-enable.
+ input iShiftEnable; // serial-shift-enable.
+ input iResetN; // synchronous reset*.
+ input iClk; // module clock.
+/*-----------------------------------wires------------------------------------*/
+ wire [15:0] oParallel; // parallel-output data.
+ wire [15:0] iParallel; // parallel-input data.
+ wire [15:0] wParallelIn; // select the parallel input.
+ wire oSerial; // serial-output data.
+ wire iSerial; // serial-input data.
+ wire iLoadEnable; // parallel-load-enable.
+ wire iShiftEnable; // serial-shift-enable.
+ wire iResetN; // synchronous reset*.
+ wire iClk; // module clock.
+/*---------------------------------registers----------------------------------*/
+ reg [15:0] rRegister; // the register.
+/*---------------------------------variables----------------------------------*/
+/*---------------------------------parameters---------------------------------*/
+/*-----------------------------------clocks-----------------------------------*/
+/*---------------------------------instances----------------------------------*/
+/*-----------------------------------logic------------------------------------*/
+ always @ (posedge iClk or negedge iResetN)
+ begin
+ if (!iResetN) rRegister[15:0] <= 16'h0000;
+ else if (iLoadEnable) rRegister[15:0] <= iParallel[15:0];
+ else if (iShiftEnable) rRegister[15:0] <= {rRegister[14:0], iSerial};
+ else rRegister[15:0] <= rRegister[15:0];
+ end
+
+ // propagate parallel-out.
+ assign oParallel[15:0] = rRegister[15:0];
+ assign oSerial = rRegister[15]; // propagate serial-out.
+/*-------------------------------*/endmodule/*--------------------------------*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmRTL/shadow_load_control.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,82 @@ +/*----------------------------------copyright---------------------------------*/ +// licensed for personal and academic use. +// commercial use must be approved by the account-holder of +// gated.clock@gmail.com +/*-----------------------------------module-----------------------------------*/ + module shadow_load_control + ( + iCPUclk, + iSPIclk, + iRstn, // direct clear. + oLoadEnable // shadow registers load enable. + ); +/*--------------------------------description----------------------------------- + when the CPU clock goes low, the CPU state is stable, and its time + for the SPI shadow registers to do a parallel load of the CPU state, + so its time to turn on the load-enable signal. + + when the first SPI clock goes high, the parallel load completes and + its time to turn off the load-enable signal. +-------------------------------------notes-------------------------------------- +------------------------------------defines-----------------------------------*/ +/*-----------------------------------ports------------------------------------*/ + input iCPUclk; + input iSPIclk; + input iRstn; // direct clear. + output oLoadEnable; // shadow registers load enable. +/*-----------------------------------wires------------------------------------*/ + wire iCPUclk; + wire iSPIclk; + wire iRstn; // direct clear. + wire oLoadEnable; // shadow registers load enable. + + wire wOrClock; // OR the clocks. +/*---------------------------------registers----------------------------------*/ + reg rRegister; +/*---------------------------------variables----------------------------------*/ +/*---------------------------------parameters---------------------------------*/ +/*-----------------------------------clocks-----------------------------------*/ +/*---------------------------------instances----------------------------------*/ +/*-----------------------------------logic------------------------------------*/ + always @ (negedge wOrClock or negedge iRstn) + begin + if (!iRstn ) rRegister <= 1'b0; + else if (!wOrClock) rRegister <= !iSPIclk; + end + + assign wOrClock = iCPUclk | iSPIclk; + assign oLoadEnable = rRegister; +/*-------------------------------*/endmodule/*--------------------------------*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmSPI.lib Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,1 @@ +mmSPI#adca2b413bf1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmTestResult/clock_count.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,5 @@ + related to testlog.txt, + the number of clock cycles was + + 326,480,840 SPI clocks. + 4,798,920 CPU clocks. \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmTestResult/dump_add_list.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,256 @@ + 0x00 0xADD0 + 0x01 0xC500 + 0x02 0x2100 + 0x03 0xADE0 + 0x04 0xC500 + 0x05 0x0900 + 0x06 0xC100 + 0x07 0xADF0 + 0x08 0xA900 + 0x09 0x0500 + 0x0a 0x0300 + 0x0b 0x0100 + 0x0c 0xADD1 + 0x0d 0xC500 + 0x0e 0x2100 + 0x0f 0xADE1 + 0x10 0xC500 + 0x11 0x0900 + 0x12 0xC100 + 0x13 0xADF1 + 0x14 0xA900 + 0x15 0x0500 + 0x16 0x0300 + 0x17 0x0100 + 0x18 0xADD2 + 0x19 0xC500 + 0x1a 0x2100 + 0x1b 0xADE2 + 0x1c 0xC500 + 0x1d 0x0900 + 0x1e 0xC100 + 0x1f 0xADF2 + 0x20 0xA900 + 0x21 0x0500 + 0x22 0x0300 + 0x23 0x0100 + 0x24 0xADD3 + 0x25 0xC500 + 0x26 0x2100 + 0x27 0xADE3 + 0x28 0xC500 + 0x29 0x0900 + 0x2a 0xC100 + 0x2b 0xADF3 + 0x2c 0xA900 + 0x2d 0x0500 + 0x2e 0x0300 + 0x2f 0x0100 + 0x30 0xADD4 + 0x31 0xC500 + 0x32 0x2100 + 0x33 0xADE4 + 0x34 0xC500 + 0x35 0x0900 + 0x36 0xC100 + 0x37 0xADF4 + 0x38 0xA900 + 0x39 0x0500 + 0x3a 0x0300 + 0x3b 0x0100 + 0x3c 0xADD5 + 0x3d 0xC500 + 0x3e 0x2100 + 0x3f 0xADE5 + 0x40 0xC500 + 0x41 0x0900 + 0x42 0xC100 + 0x43 0xADF5 + 0x44 0xA900 + 0x45 0x0500 + 0x46 0x0300 + 0x47 0x0100 + 0x48 0xADD6 + 0x49 0xC500 + 0x4a 0x2100 + 0x4b 0xADE6 + 0x4c 0xC500 + 0x4d 0x0900 + 0x4e 0xC100 + 0x4f 0xADF6 + 0x50 0xA900 + 0x51 0x0500 + 0x52 0x0300 + 0x53 0x0100 + 0x54 0xADD7 + 0x55 0xC500 + 0x56 0x2100 + 0x57 0xADE7 + 0x58 0xC500 + 0x59 0x0900 + 0x5a 0xC100 + 0x5b 0xADF7 + 0x5c 0xA900 + 0x5d 0x0500 + 0x5e 0x0300 + 0x5f 0x0100 + 0x60 0xADD8 + 0x61 0xC500 + 0x62 0x2100 + 0x63 0xADE8 + 0x64 0xC500 + 0x65 0x0900 + 0x66 0xC100 + 0x67 0xADF8 + 0x68 0xA900 + 0x69 0x0500 + 0x6a 0x0300 + 0x6b 0x0100 + 0x6c 0xADD9 + 0x6d 0xC500 + 0x6e 0x2100 + 0x6f 0xADE9 + 0x70 0xC500 + 0x71 0x0900 + 0x72 0xC100 + 0x73 0xADF9 + 0x74 0xA900 + 0x75 0x0500 + 0x76 0x0300 + 0x77 0x0100 + 0x78 0xADDA + 0x79 0xC500 + 0x7a 0x2100 + 0x7b 0xADEA + 0x7c 0xC500 + 0x7d 0x0900 + 0x7e 0xC100 + 0x7f 0xADFA + 0x80 0xA900 + 0x81 0x0500 + 0x82 0x0300 + 0x83 0x0100 + 0x84 0xADDB + 0x85 0xC500 + 0x86 0x2100 + 0x87 0xADEB + 0x88 0xC500 + 0x89 0x0900 + 0x8a 0xC100 + 0x8b 0xADFB + 0x8c 0xA900 + 0x8d 0x0500 + 0x8e 0x0300 + 0x8f 0x0100 + 0x90 0xADDC + 0x91 0xC500 + 0x92 0x2100 + 0x93 0xADEC + 0x94 0xC500 + 0x95 0x0900 + 0x96 0xC100 + 0x97 0xADFC + 0x98 0xA900 + 0x99 0x0500 + 0x9a 0x0300 + 0x9b 0x0100 + 0x9c 0xADDD + 0x9d 0xC500 + 0x9e 0x2100 + 0x9f 0xADED + 0xa0 0xC500 + 0xa1 0x0900 + 0xa2 0xC100 + 0xa3 0xADFD + 0xa4 0xA900 + 0xa5 0x0500 + 0xa6 0x0300 + 0xa7 0x0100 + 0xa8 0xADDE + 0xa9 0xC500 + 0xaa 0x2100 + 0xab 0xADEE + 0xac 0xC500 + 0xad 0x0900 + 0xae 0xC100 + 0xaf 0xADFE + 0xb0 0xA900 + 0xb1 0x0500 + 0xb2 0x0300 + 0xb3 0x0100 + 0xb4 0xADDF + 0xb5 0xC500 + 0xb6 0x2100 + 0xb7 0xADEF + 0xb8 0xC500 + 0xb9 0x0900 + 0xba 0xC100 + 0xbb 0xADFF + 0xbc 0xA900 + 0xbd 0x0500 + 0xbe 0x0300 + 0xbf 0x0100 + 0xc0 0x0100 + 0xc1 0x0100 + 0xc2 0x0100 + 0xc3 0x0100 + 0xc4 0x0100 + 0xc5 0x0100 + 0xc6 0x0100 + 0xc7 0x0100 + 0xc8 0x0000 + 0xc9 0x0000 + 0xca 0x0000 + 0xcb 0x0000 + 0xcc 0x0000 + 0xcd 0x0000 + 0xce 0x0000 + 0xcf 0x0000 + 0xd0 0x0011 + 0xd1 0x0027 + 0xd2 0x0014 + 0xd3 0x00E2 + 0xd4 0x0075 + 0xd5 0x0045 + 0xd6 0x009B + 0xd7 0x00DE + 0xd8 0x0009 + 0xd9 0x0041 + 0xda 0x009A + 0xdb 0x0052 + 0xdc 0x00AA + 0xdd 0x00BB + 0xde 0x00CC + 0xdf 0x00DD + 0xe0 0x0022 + 0xe1 0x0058 + 0xe2 0x00B5 + 0xe3 0x009E + 0xe4 0x0014 + 0xe5 0x002C + 0xe6 0x00AA + 0xe7 0x0086 + 0xe8 0x0090 + 0xe9 0x0012 + 0xea 0x0049 + 0xeb 0x0099 + 0xec 0x0027 + 0xed 0x0037 + 0xee 0x0047 + 0xef 0x0057 + 0xf0 0x0033 + 0xf1 0x007F + 0xf2 0x00C9 + 0xf3 0x0080 + 0xf4 0x0089 + 0xf5 0x0071 + 0xf6 0x0045 + 0xf7 0x0064 + 0xf8 0x0099 + 0xf9 0x0053 + 0xfa 0x00E3 + 0xfb 0x00EB + 0xfc 0x00D1 + 0xfd 0x00F2 + 0xfe 0x0013 + 0xff 0x0034 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmTestResult/testlog.txt Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,4640 @@ +============================ +Sat Aug 31 21:16:10 PDT 2013 +test iteration 1 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:17:00 PDT 2013 +test iteration 2 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:17:50 PDT 2013 +test iteration 3 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:18:40 PDT 2013 +test iteration 4 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:19:30 PDT 2013 +test iteration 5 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:20:20 PDT 2013 +test iteration 6 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:21:10 PDT 2013 +test iteration 7 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:22:00 PDT 2013 +test iteration 8 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:22:50 PDT 2013 +test iteration 9 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:23:40 PDT 2013 +test iteration 10 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:24:30 PDT 2013 +test iteration 11 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:25:20 PDT 2013 +test iteration 12 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:26:10 PDT 2013 +test iteration 13 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:27:00 PDT 2013 +test iteration 14 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:27:50 PDT 2013 +test iteration 15 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:28:40 PDT 2013 +test iteration 16 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:29:30 PDT 2013 +test iteration 17 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:30:20 PDT 2013 +test iteration 18 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:31:10 PDT 2013 +test iteration 19 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:32:00 PDT 2013 +test iteration 20 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:32:50 PDT 2013 +test iteration 21 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:33:40 PDT 2013 +test iteration 22 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:34:30 PDT 2013 +test iteration 23 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:35:20 PDT 2013 +test iteration 24 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:36:10 PDT 2013 +test iteration 25 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:36:59 PDT 2013 +test iteration 26 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:37:49 PDT 2013 +test iteration 27 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:38:39 PDT 2013 +test iteration 28 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:39:29 PDT 2013 +test iteration 29 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:40:19 PDT 2013 +test iteration 30 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:41:09 PDT 2013 +test iteration 31 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:41:59 PDT 2013 +test iteration 32 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:42:49 PDT 2013 +test iteration 33 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:43:39 PDT 2013 +test iteration 34 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:44:29 PDT 2013 +test iteration 35 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:45:19 PDT 2013 +test iteration 36 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:46:09 PDT 2013 +test iteration 37 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:46:59 PDT 2013 +test iteration 38 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:47:49 PDT 2013 +test iteration 39 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:48:39 PDT 2013 +test iteration 40 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:49:29 PDT 2013 +test iteration 41 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:50:19 PDT 2013 +test iteration 42 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:51:09 PDT 2013 +test iteration 43 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:51:59 PDT 2013 +test iteration 44 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:52:49 PDT 2013 +test iteration 45 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:53:39 PDT 2013 +test iteration 46 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:54:29 PDT 2013 +test iteration 47 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:55:19 PDT 2013 +test iteration 48 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:56:09 PDT 2013 +test iteration 49 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:56:59 PDT 2013 +test iteration 50 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:57:49 PDT 2013 +test iteration 51 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:58:39 PDT 2013 +test iteration 52 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 21:59:29 PDT 2013 +test iteration 53 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:00:18 PDT 2013 +test iteration 54 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:01:08 PDT 2013 +test iteration 55 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:01:58 PDT 2013 +test iteration 56 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:02:48 PDT 2013 +test iteration 57 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:03:38 PDT 2013 +test iteration 58 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:04:28 PDT 2013 +test iteration 59 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:05:18 PDT 2013 +test iteration 60 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:06:08 PDT 2013 +test iteration 61 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:06:58 PDT 2013 +test iteration 62 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:07:48 PDT 2013 +test iteration 63 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:08:38 PDT 2013 +test iteration 64 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:09:28 PDT 2013 +test iteration 65 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:10:18 PDT 2013 +test iteration 66 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:11:08 PDT 2013 +test iteration 67 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:11:58 PDT 2013 +test iteration 68 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:12:48 PDT 2013 +test iteration 69 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:13:38 PDT 2013 +test iteration 70 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:14:28 PDT 2013 +test iteration 71 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:15:18 PDT 2013 +test iteration 72 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:16:08 PDT 2013 +test iteration 73 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:16:58 PDT 2013 +test iteration 74 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:17:48 PDT 2013 +test iteration 75 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:18:38 PDT 2013 +test iteration 76 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:19:28 PDT 2013 +test iteration 77 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:20:18 PDT 2013 +test iteration 78 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:21:07 PDT 2013 +test iteration 79 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:21:57 PDT 2013 +test iteration 80 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:22:47 PDT 2013 +test iteration 81 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:23:37 PDT 2013 +test iteration 82 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:24:27 PDT 2013 +test iteration 83 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:25:17 PDT 2013 +test iteration 84 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:26:07 PDT 2013 +test iteration 85 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:26:57 PDT 2013 +test iteration 86 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:27:47 PDT 2013 +test iteration 87 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:28:37 PDT 2013 +test iteration 88 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:29:27 PDT 2013 +test iteration 89 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:30:17 PDT 2013 +test iteration 90 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:31:07 PDT 2013 +test iteration 91 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:31:57 PDT 2013 +test iteration 92 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:32:47 PDT 2013 +test iteration 93 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:33:37 PDT 2013 +test iteration 94 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:34:27 PDT 2013 +test iteration 95 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:35:17 PDT 2013 +test iteration 96 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:36:07 PDT 2013 +test iteration 97 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:36:57 PDT 2013 +test iteration 98 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:37:47 PDT 2013 +test iteration 99 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:38:37 PDT 2013 +test iteration 100 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:39:27 PDT 2013 +test iteration 101 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:40:17 PDT 2013 +test iteration 102 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:41:07 PDT 2013 +test iteration 103 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:41:56 PDT 2013 +test iteration 104 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:42:46 PDT 2013 +test iteration 105 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:43:36 PDT 2013 +test iteration 106 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:44:26 PDT 2013 +test iteration 107 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:45:16 PDT 2013 +test iteration 108 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:46:06 PDT 2013 +test iteration 109 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:46:56 PDT 2013 +test iteration 110 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:47:46 PDT 2013 +test iteration 111 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:48:36 PDT 2013 +test iteration 112 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:49:26 PDT 2013 +test iteration 113 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:50:16 PDT 2013 +test iteration 114 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:51:06 PDT 2013 +test iteration 115 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:51:56 PDT 2013 +test iteration 116 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:52:46 PDT 2013 +test iteration 117 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:53:36 PDT 2013 +test iteration 118 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:54:26 PDT 2013 +test iteration 119 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:55:16 PDT 2013 +test iteration 120 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:56:06 PDT 2013 +test iteration 121 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:56:56 PDT 2013 +test iteration 122 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:57:46 PDT 2013 +test iteration 123 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:58:36 PDT 2013 +test iteration 124 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 22:59:26 PDT 2013 +test iteration 125 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:00:16 PDT 2013 +test iteration 126 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:01:06 PDT 2013 +test iteration 127 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:01:55 PDT 2013 +test iteration 128 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:02:45 PDT 2013 +test iteration 129 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:03:35 PDT 2013 +test iteration 130 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:04:25 PDT 2013 +test iteration 131 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:05:15 PDT 2013 +test iteration 132 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:06:05 PDT 2013 +test iteration 133 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:06:55 PDT 2013 +test iteration 134 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:07:45 PDT 2013 +test iteration 135 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:08:35 PDT 2013 +test iteration 136 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:09:25 PDT 2013 +test iteration 137 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:10:15 PDT 2013 +test iteration 138 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:11:05 PDT 2013 +test iteration 139 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:11:55 PDT 2013 +test iteration 140 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:12:45 PDT 2013 +test iteration 141 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:13:35 PDT 2013 +test iteration 142 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:14:25 PDT 2013 +test iteration 143 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:15:15 PDT 2013 +test iteration 144 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:16:05 PDT 2013 +test iteration 145 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:16:55 PDT 2013 +test iteration 146 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:17:45 PDT 2013 +test iteration 147 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:18:35 PDT 2013 +test iteration 148 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:19:25 PDT 2013 +test iteration 149 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:20:15 PDT 2013 +test iteration 150 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:21:05 PDT 2013 +test iteration 151 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:21:55 PDT 2013 +test iteration 152 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:22:45 PDT 2013 +test iteration 153 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:23:35 PDT 2013 +test iteration 154 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:24:24 PDT 2013 +test iteration 155 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:25:14 PDT 2013 +test iteration 156 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:26:05 PDT 2013 +test iteration 157 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:26:55 PDT 2013 +test iteration 158 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:27:45 PDT 2013 +test iteration 159 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:28:35 PDT 2013 +test iteration 160 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:29:25 PDT 2013 +test iteration 161 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:30:15 PDT 2013 +test iteration 162 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:31:05 PDT 2013 +test iteration 163 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:31:54 PDT 2013 +test iteration 164 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:32:44 PDT 2013 +test iteration 165 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:33:34 PDT 2013 +test iteration 166 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:34:24 PDT 2013 +test iteration 167 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:35:14 PDT 2013 +test iteration 168 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:36:04 PDT 2013 +test iteration 169 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:36:54 PDT 2013 +test iteration 170 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:37:44 PDT 2013 +test iteration 171 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:38:34 PDT 2013 +test iteration 172 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:39:24 PDT 2013 +test iteration 173 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:40:14 PDT 2013 +test iteration 174 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:41:04 PDT 2013 +test iteration 175 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:41:54 PDT 2013 +test iteration 176 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:42:44 PDT 2013 +test iteration 177 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:43:34 PDT 2013 +test iteration 178 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:44:24 PDT 2013 +test iteration 179 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:45:14 PDT 2013 +test iteration 180 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:46:04 PDT 2013 +test iteration 181 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:46:54 PDT 2013 +test iteration 182 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:47:44 PDT 2013 +test iteration 183 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:48:34 PDT 2013 +test iteration 184 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:49:24 PDT 2013 +test iteration 185 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:50:14 PDT 2013 +test iteration 186 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:51:04 PDT 2013 +test iteration 187 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:51:54 PDT 2013 +test iteration 188 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:52:44 PDT 2013 +test iteration 189 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:53:34 PDT 2013 +test iteration 190 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:54:24 PDT 2013 +test iteration 191 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:55:14 PDT 2013 +test iteration 192 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:56:04 PDT 2013 +test iteration 193 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:56:54 PDT 2013 +test iteration 194 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:57:44 PDT 2013 +test iteration 195 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:58:34 PDT 2013 +test iteration 196 +compare dump_test.txt against dump_add_list.txt +============================ +Sat Aug 31 23:59:23 PDT 2013 +test iteration 197 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:00:13 PDT 2013 +test iteration 198 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:01:03 PDT 2013 +test iteration 199 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:01:53 PDT 2013 +test iteration 200 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:02:43 PDT 2013 +test iteration 201 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:03:33 PDT 2013 +test iteration 202 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:04:23 PDT 2013 +test iteration 203 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:05:13 PDT 2013 +test iteration 204 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:06:03 PDT 2013 +test iteration 205 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:06:53 PDT 2013 +test iteration 206 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:07:43 PDT 2013 +test iteration 207 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:08:33 PDT 2013 +test iteration 208 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:09:23 PDT 2013 +test iteration 209 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:10:13 PDT 2013 +test iteration 210 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:11:03 PDT 2013 +test iteration 211 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:11:53 PDT 2013 +test iteration 212 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:12:43 PDT 2013 +test iteration 213 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:13:33 PDT 2013 +test iteration 214 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:14:23 PDT 2013 +test iteration 215 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:15:13 PDT 2013 +test iteration 216 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:16:03 PDT 2013 +test iteration 217 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:16:53 PDT 2013 +test iteration 218 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:17:43 PDT 2013 +test iteration 219 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:18:33 PDT 2013 +test iteration 220 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:19:23 PDT 2013 +test iteration 221 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:20:13 PDT 2013 +test iteration 222 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:21:03 PDT 2013 +test iteration 223 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:21:53 PDT 2013 +test iteration 224 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:22:43 PDT 2013 +test iteration 225 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:23:33 PDT 2013 +test iteration 226 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:24:23 PDT 2013 +test iteration 227 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:25:13 PDT 2013 +test iteration 228 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:26:03 PDT 2013 +test iteration 229 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:26:52 PDT 2013 +test iteration 230 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:27:42 PDT 2013 +test iteration 231 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:28:32 PDT 2013 +test iteration 232 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:29:22 PDT 2013 +test iteration 233 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:30:12 PDT 2013 +test iteration 234 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:31:02 PDT 2013 +test iteration 235 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:31:52 PDT 2013 +test iteration 236 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:32:42 PDT 2013 +test iteration 237 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:33:32 PDT 2013 +test iteration 238 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:34:22 PDT 2013 +test iteration 239 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:35:12 PDT 2013 +test iteration 240 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:36:02 PDT 2013 +test iteration 241 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:36:52 PDT 2013 +test iteration 242 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:37:42 PDT 2013 +test iteration 243 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:38:32 PDT 2013 +test iteration 244 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:39:22 PDT 2013 +test iteration 245 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:40:12 PDT 2013 +test iteration 246 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:41:02 PDT 2013 +test iteration 247 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:41:52 PDT 2013 +test iteration 248 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:42:42 PDT 2013 +test iteration 249 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:43:32 PDT 2013 +test iteration 250 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:44:22 PDT 2013 +test iteration 251 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:45:12 PDT 2013 +test iteration 252 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:46:02 PDT 2013 +test iteration 253 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:46:52 PDT 2013 +test iteration 254 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:47:42 PDT 2013 +test iteration 255 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:48:32 PDT 2013 +test iteration 256 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:49:22 PDT 2013 +test iteration 257 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:50:12 PDT 2013 +test iteration 258 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:51:02 PDT 2013 +test iteration 259 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:51:52 PDT 2013 +test iteration 260 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:52:42 PDT 2013 +test iteration 261 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:53:31 PDT 2013 +test iteration 262 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:54:21 PDT 2013 +test iteration 263 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:55:11 PDT 2013 +test iteration 264 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:56:01 PDT 2013 +test iteration 265 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:56:51 PDT 2013 +test iteration 266 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:57:41 PDT 2013 +test iteration 267 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:58:31 PDT 2013 +test iteration 268 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 00:59:21 PDT 2013 +test iteration 269 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:00:11 PDT 2013 +test iteration 270 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:01:01 PDT 2013 +test iteration 271 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:01:51 PDT 2013 +test iteration 272 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:02:41 PDT 2013 +test iteration 273 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:03:31 PDT 2013 +test iteration 274 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:04:21 PDT 2013 +test iteration 275 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:05:11 PDT 2013 +test iteration 276 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:06:01 PDT 2013 +test iteration 277 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:06:51 PDT 2013 +test iteration 278 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:07:41 PDT 2013 +test iteration 279 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:08:31 PDT 2013 +test iteration 280 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:09:21 PDT 2013 +test iteration 281 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:10:11 PDT 2013 +test iteration 282 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:11:01 PDT 2013 +test iteration 283 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:11:51 PDT 2013 +test iteration 284 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:12:41 PDT 2013 +test iteration 285 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:13:31 PDT 2013 +test iteration 286 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:14:20 PDT 2013 +test iteration 287 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:15:10 PDT 2013 +test iteration 288 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:16:00 PDT 2013 +test iteration 289 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:16:50 PDT 2013 +test iteration 290 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:17:40 PDT 2013 +test iteration 291 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:18:30 PDT 2013 +test iteration 292 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:19:20 PDT 2013 +test iteration 293 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:20:10 PDT 2013 +test iteration 294 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:21:00 PDT 2013 +test iteration 295 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:21:50 PDT 2013 +test iteration 296 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:22:40 PDT 2013 +test iteration 297 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:23:30 PDT 2013 +test iteration 298 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:24:20 PDT 2013 +test iteration 299 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:25:10 PDT 2013 +test iteration 300 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:26:00 PDT 2013 +test iteration 301 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:26:50 PDT 2013 +test iteration 302 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:27:40 PDT 2013 +test iteration 303 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:28:30 PDT 2013 +test iteration 304 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:29:20 PDT 2013 +test iteration 305 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:30:10 PDT 2013 +test iteration 306 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:31:00 PDT 2013 +test iteration 307 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:31:50 PDT 2013 +test iteration 308 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:32:40 PDT 2013 +test iteration 309 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:33:30 PDT 2013 +test iteration 310 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:34:20 PDT 2013 +test iteration 311 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:35:10 PDT 2013 +test iteration 312 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:36:00 PDT 2013 +test iteration 313 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:36:50 PDT 2013 +test iteration 314 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:37:39 PDT 2013 +test iteration 315 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:38:29 PDT 2013 +test iteration 316 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:39:19 PDT 2013 +test iteration 317 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:40:09 PDT 2013 +test iteration 318 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:40:59 PDT 2013 +test iteration 319 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:41:49 PDT 2013 +test iteration 320 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:42:39 PDT 2013 +test iteration 321 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:43:29 PDT 2013 +test iteration 322 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:44:19 PDT 2013 +test iteration 323 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:45:09 PDT 2013 +test iteration 324 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:45:59 PDT 2013 +test iteration 325 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:46:49 PDT 2013 +test iteration 326 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:47:39 PDT 2013 +test iteration 327 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:48:29 PDT 2013 +test iteration 328 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:49:19 PDT 2013 +test iteration 329 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:50:09 PDT 2013 +test iteration 330 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:50:59 PDT 2013 +test iteration 331 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:51:49 PDT 2013 +test iteration 332 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:52:39 PDT 2013 +test iteration 333 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:53:29 PDT 2013 +test iteration 334 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:54:19 PDT 2013 +test iteration 335 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:55:09 PDT 2013 +test iteration 336 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:55:59 PDT 2013 +test iteration 337 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:56:49 PDT 2013 +test iteration 338 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:57:39 PDT 2013 +test iteration 339 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:58:29 PDT 2013 +test iteration 340 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 01:59:19 PDT 2013 +test iteration 341 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:00:09 PDT 2013 +test iteration 342 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:00:58 PDT 2013 +test iteration 343 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:01:48 PDT 2013 +test iteration 344 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:02:38 PDT 2013 +test iteration 345 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:03:28 PDT 2013 +test iteration 346 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:04:18 PDT 2013 +test iteration 347 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:05:08 PDT 2013 +test iteration 348 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:05:58 PDT 2013 +test iteration 349 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:06:48 PDT 2013 +test iteration 350 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:07:38 PDT 2013 +test iteration 351 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:08:28 PDT 2013 +test iteration 352 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:09:18 PDT 2013 +test iteration 353 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:10:08 PDT 2013 +test iteration 354 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:10:58 PDT 2013 +test iteration 355 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:11:48 PDT 2013 +test iteration 356 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:12:38 PDT 2013 +test iteration 357 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:13:28 PDT 2013 +test iteration 358 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:14:18 PDT 2013 +test iteration 359 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:15:08 PDT 2013 +test iteration 360 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:15:58 PDT 2013 +test iteration 361 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:16:48 PDT 2013 +test iteration 362 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:17:38 PDT 2013 +test iteration 363 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:18:28 PDT 2013 +test iteration 364 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:19:18 PDT 2013 +test iteration 365 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:20:08 PDT 2013 +test iteration 366 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:20:58 PDT 2013 +test iteration 367 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:21:48 PDT 2013 +test iteration 368 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:22:38 PDT 2013 +test iteration 369 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:23:28 PDT 2013 +test iteration 370 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:24:18 PDT 2013 +test iteration 371 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:25:08 PDT 2013 +test iteration 372 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:25:58 PDT 2013 +test iteration 373 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:26:48 PDT 2013 +test iteration 374 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:27:37 PDT 2013 +test iteration 375 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:28:27 PDT 2013 +test iteration 376 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:29:17 PDT 2013 +test iteration 377 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:30:07 PDT 2013 +test iteration 378 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:30:57 PDT 2013 +test iteration 379 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:31:47 PDT 2013 +test iteration 380 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:32:37 PDT 2013 +test iteration 381 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:33:27 PDT 2013 +test iteration 382 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:34:17 PDT 2013 +test iteration 383 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:35:07 PDT 2013 +test iteration 384 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:35:57 PDT 2013 +test iteration 385 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:36:47 PDT 2013 +test iteration 386 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:37:37 PDT 2013 +test iteration 387 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:38:27 PDT 2013 +test iteration 388 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:39:17 PDT 2013 +test iteration 389 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:40:07 PDT 2013 +test iteration 390 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:40:57 PDT 2013 +test iteration 391 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:41:47 PDT 2013 +test iteration 392 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:42:37 PDT 2013 +test iteration 393 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:43:27 PDT 2013 +test iteration 394 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:44:17 PDT 2013 +test iteration 395 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:45:07 PDT 2013 +test iteration 396 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:45:57 PDT 2013 +test iteration 397 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:46:47 PDT 2013 +test iteration 398 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:47:37 PDT 2013 +test iteration 399 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:48:27 PDT 2013 +test iteration 400 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:49:17 PDT 2013 +test iteration 401 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:50:07 PDT 2013 +test iteration 402 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:50:57 PDT 2013 +test iteration 403 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:51:47 PDT 2013 +test iteration 404 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:52:37 PDT 2013 +test iteration 405 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:53:26 PDT 2013 +test iteration 406 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:54:16 PDT 2013 +test iteration 407 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:55:06 PDT 2013 +test iteration 408 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:55:56 PDT 2013 +test iteration 409 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:56:46 PDT 2013 +test iteration 410 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:57:36 PDT 2013 +test iteration 411 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:58:26 PDT 2013 +test iteration 412 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 02:59:16 PDT 2013 +test iteration 413 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:00:06 PDT 2013 +test iteration 414 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:00:56 PDT 2013 +test iteration 415 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:01:46 PDT 2013 +test iteration 416 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:02:36 PDT 2013 +test iteration 417 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:03:26 PDT 2013 +test iteration 418 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:04:16 PDT 2013 +test iteration 419 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:05:06 PDT 2013 +test iteration 420 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:05:56 PDT 2013 +test iteration 421 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:06:46 PDT 2013 +test iteration 422 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:07:36 PDT 2013 +test iteration 423 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:08:26 PDT 2013 +test iteration 424 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:09:16 PDT 2013 +test iteration 425 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:10:06 PDT 2013 +test iteration 426 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:10:56 PDT 2013 +test iteration 427 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:11:46 PDT 2013 +test iteration 428 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:12:36 PDT 2013 +test iteration 429 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:13:26 PDT 2013 +test iteration 430 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:14:16 PDT 2013 +test iteration 431 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:15:06 PDT 2013 +test iteration 432 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:15:56 PDT 2013 +test iteration 433 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:16:46 PDT 2013 +test iteration 434 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:17:36 PDT 2013 +test iteration 435 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:18:25 PDT 2013 +test iteration 436 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:19:15 PDT 2013 +test iteration 437 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:20:05 PDT 2013 +test iteration 438 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:20:55 PDT 2013 +test iteration 439 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:21:45 PDT 2013 +test iteration 440 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:22:35 PDT 2013 +test iteration 441 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:23:25 PDT 2013 +test iteration 442 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:24:15 PDT 2013 +test iteration 443 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:25:05 PDT 2013 +test iteration 444 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:25:55 PDT 2013 +test iteration 445 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:26:45 PDT 2013 +test iteration 446 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:27:35 PDT 2013 +test iteration 447 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:28:25 PDT 2013 +test iteration 448 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:29:15 PDT 2013 +test iteration 449 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:30:05 PDT 2013 +test iteration 450 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:30:55 PDT 2013 +test iteration 451 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:31:45 PDT 2013 +test iteration 452 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:32:35 PDT 2013 +test iteration 453 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:33:25 PDT 2013 +test iteration 454 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:34:15 PDT 2013 +test iteration 455 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:35:05 PDT 2013 +test iteration 456 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:35:55 PDT 2013 +test iteration 457 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:36:45 PDT 2013 +test iteration 458 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:37:35 PDT 2013 +test iteration 459 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:38:25 PDT 2013 +test iteration 460 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:39:15 PDT 2013 +test iteration 461 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:40:05 PDT 2013 +test iteration 462 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:40:54 PDT 2013 +test iteration 463 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:41:44 PDT 2013 +test iteration 464 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:42:34 PDT 2013 +test iteration 465 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:43:24 PDT 2013 +test iteration 466 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:44:14 PDT 2013 +test iteration 467 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:45:04 PDT 2013 +test iteration 468 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:45:54 PDT 2013 +test iteration 469 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:46:44 PDT 2013 +test iteration 470 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:47:34 PDT 2013 +test iteration 471 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:48:24 PDT 2013 +test iteration 472 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:49:14 PDT 2013 +test iteration 473 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:50:04 PDT 2013 +test iteration 474 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:50:54 PDT 2013 +test iteration 475 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:51:44 PDT 2013 +test iteration 476 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:52:34 PDT 2013 +test iteration 477 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:53:24 PDT 2013 +test iteration 478 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:54:14 PDT 2013 +test iteration 479 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:55:04 PDT 2013 +test iteration 480 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:55:54 PDT 2013 +test iteration 481 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:56:44 PDT 2013 +test iteration 482 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:57:34 PDT 2013 +test iteration 483 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:58:24 PDT 2013 +test iteration 484 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 03:59:14 PDT 2013 +test iteration 485 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:00:04 PDT 2013 +test iteration 486 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:00:54 PDT 2013 +test iteration 487 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:01:44 PDT 2013 +test iteration 488 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:02:34 PDT 2013 +test iteration 489 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:03:23 PDT 2013 +test iteration 490 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:04:13 PDT 2013 +test iteration 491 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:05:03 PDT 2013 +test iteration 492 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:05:53 PDT 2013 +test iteration 493 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:06:43 PDT 2013 +test iteration 494 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:07:33 PDT 2013 +test iteration 495 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:08:23 PDT 2013 +test iteration 496 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:09:13 PDT 2013 +test iteration 497 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:10:03 PDT 2013 +test iteration 498 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:10:53 PDT 2013 +test iteration 499 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:11:43 PDT 2013 +test iteration 500 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:12:33 PDT 2013 +test iteration 501 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:13:23 PDT 2013 +test iteration 502 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:14:13 PDT 2013 +test iteration 503 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:15:03 PDT 2013 +test iteration 504 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:15:53 PDT 2013 +test iteration 505 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:16:43 PDT 2013 +test iteration 506 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:17:33 PDT 2013 +test iteration 507 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:18:23 PDT 2013 +test iteration 508 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:19:13 PDT 2013 +test iteration 509 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:20:03 PDT 2013 +test iteration 510 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:20:53 PDT 2013 +test iteration 511 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:21:43 PDT 2013 +test iteration 512 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:22:33 PDT 2013 +test iteration 513 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:23:23 PDT 2013 +test iteration 514 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:24:13 PDT 2013 +test iteration 515 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:25:03 PDT 2013 +test iteration 516 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:25:53 PDT 2013 +test iteration 517 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:26:43 PDT 2013 +test iteration 518 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:27:32 PDT 2013 +test iteration 519 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:28:22 PDT 2013 +test iteration 520 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:29:12 PDT 2013 +test iteration 521 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:30:02 PDT 2013 +test iteration 522 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:30:52 PDT 2013 +test iteration 523 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:31:42 PDT 2013 +test iteration 524 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:32:32 PDT 2013 +test iteration 525 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:33:22 PDT 2013 +test iteration 526 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:34:12 PDT 2013 +test iteration 527 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:35:02 PDT 2013 +test iteration 528 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:35:52 PDT 2013 +test iteration 529 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:36:42 PDT 2013 +test iteration 530 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:37:32 PDT 2013 +test iteration 531 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:38:22 PDT 2013 +test iteration 532 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:39:12 PDT 2013 +test iteration 533 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:40:02 PDT 2013 +test iteration 534 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:40:52 PDT 2013 +test iteration 535 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:41:42 PDT 2013 +test iteration 536 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:42:32 PDT 2013 +test iteration 537 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:43:22 PDT 2013 +test iteration 538 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:44:12 PDT 2013 +test iteration 539 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:45:02 PDT 2013 +test iteration 540 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:45:52 PDT 2013 +test iteration 541 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:46:42 PDT 2013 +test iteration 542 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:47:32 PDT 2013 +test iteration 543 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:48:22 PDT 2013 +test iteration 544 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:49:12 PDT 2013 +test iteration 545 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:50:01 PDT 2013 +test iteration 546 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:50:51 PDT 2013 +test iteration 547 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:51:41 PDT 2013 +test iteration 548 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:52:31 PDT 2013 +test iteration 549 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:53:21 PDT 2013 +test iteration 550 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:54:11 PDT 2013 +test iteration 551 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:55:01 PDT 2013 +test iteration 552 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:55:51 PDT 2013 +test iteration 553 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:56:41 PDT 2013 +test iteration 554 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:57:31 PDT 2013 +test iteration 555 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:58:21 PDT 2013 +test iteration 556 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 04:59:11 PDT 2013 +test iteration 557 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:00:01 PDT 2013 +test iteration 558 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:00:51 PDT 2013 +test iteration 559 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:01:41 PDT 2013 +test iteration 560 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:02:31 PDT 2013 +test iteration 561 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:03:21 PDT 2013 +test iteration 562 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:04:11 PDT 2013 +test iteration 563 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:05:01 PDT 2013 +test iteration 564 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:05:51 PDT 2013 +test iteration 565 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:06:41 PDT 2013 +test iteration 566 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:07:31 PDT 2013 +test iteration 567 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:08:21 PDT 2013 +test iteration 568 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:09:11 PDT 2013 +test iteration 569 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:10:01 PDT 2013 +test iteration 570 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:10:51 PDT 2013 +test iteration 571 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:11:41 PDT 2013 +test iteration 572 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:12:31 PDT 2013 +test iteration 573 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:13:20 PDT 2013 +test iteration 574 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:14:10 PDT 2013 +test iteration 575 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:15:00 PDT 2013 +test iteration 576 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:15:50 PDT 2013 +test iteration 577 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:16:40 PDT 2013 +test iteration 578 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:17:30 PDT 2013 +test iteration 579 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:18:20 PDT 2013 +test iteration 580 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:19:10 PDT 2013 +test iteration 581 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:20:00 PDT 2013 +test iteration 582 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:20:50 PDT 2013 +test iteration 583 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:21:40 PDT 2013 +test iteration 584 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:22:30 PDT 2013 +test iteration 585 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:23:20 PDT 2013 +test iteration 586 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:24:10 PDT 2013 +test iteration 587 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:25:00 PDT 2013 +test iteration 588 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:25:50 PDT 2013 +test iteration 589 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:26:40 PDT 2013 +test iteration 590 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:27:30 PDT 2013 +test iteration 591 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:28:20 PDT 2013 +test iteration 592 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:29:10 PDT 2013 +test iteration 593 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:30:00 PDT 2013 +test iteration 594 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:30:50 PDT 2013 +test iteration 595 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:31:40 PDT 2013 +test iteration 596 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:32:30 PDT 2013 +test iteration 597 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:33:20 PDT 2013 +test iteration 598 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:34:10 PDT 2013 +test iteration 599 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:34:59 PDT 2013 +test iteration 600 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:35:49 PDT 2013 +test iteration 601 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:36:39 PDT 2013 +test iteration 602 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:37:29 PDT 2013 +test iteration 603 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:38:19 PDT 2013 +test iteration 604 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:39:09 PDT 2013 +test iteration 605 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:39:59 PDT 2013 +test iteration 606 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:40:49 PDT 2013 +test iteration 607 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:41:39 PDT 2013 +test iteration 608 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:42:29 PDT 2013 +test iteration 609 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:43:19 PDT 2013 +test iteration 610 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:44:09 PDT 2013 +test iteration 611 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:44:59 PDT 2013 +test iteration 612 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:45:49 PDT 2013 +test iteration 613 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:46:39 PDT 2013 +test iteration 614 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:47:29 PDT 2013 +test iteration 615 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:48:19 PDT 2013 +test iteration 616 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:49:09 PDT 2013 +test iteration 617 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:49:59 PDT 2013 +test iteration 618 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:50:49 PDT 2013 +test iteration 619 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:51:39 PDT 2013 +test iteration 620 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:52:29 PDT 2013 +test iteration 621 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:53:19 PDT 2013 +test iteration 622 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:54:09 PDT 2013 +test iteration 623 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:54:59 PDT 2013 +test iteration 624 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:55:49 PDT 2013 +test iteration 625 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:56:39 PDT 2013 +test iteration 626 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:57:29 PDT 2013 +test iteration 627 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:58:19 PDT 2013 +test iteration 628 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:59:09 PDT 2013 +test iteration 629 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 05:59:59 PDT 2013 +test iteration 630 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:00:49 PDT 2013 +test iteration 631 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:01:39 PDT 2013 +test iteration 632 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:02:28 PDT 2013 +test iteration 633 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:03:18 PDT 2013 +test iteration 634 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:04:08 PDT 2013 +test iteration 635 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:04:58 PDT 2013 +test iteration 636 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:05:48 PDT 2013 +test iteration 637 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:06:38 PDT 2013 +test iteration 638 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:07:28 PDT 2013 +test iteration 639 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:08:18 PDT 2013 +test iteration 640 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:09:08 PDT 2013 +test iteration 641 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:09:58 PDT 2013 +test iteration 642 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:10:48 PDT 2013 +test iteration 643 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:11:38 PDT 2013 +test iteration 644 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:12:28 PDT 2013 +test iteration 645 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:13:18 PDT 2013 +test iteration 646 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:14:08 PDT 2013 +test iteration 647 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:14:58 PDT 2013 +test iteration 648 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:15:48 PDT 2013 +test iteration 649 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:16:38 PDT 2013 +test iteration 650 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:17:28 PDT 2013 +test iteration 651 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:18:18 PDT 2013 +test iteration 652 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:19:08 PDT 2013 +test iteration 653 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:19:58 PDT 2013 +test iteration 654 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:20:48 PDT 2013 +test iteration 655 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:21:38 PDT 2013 +test iteration 656 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:22:28 PDT 2013 +test iteration 657 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:23:18 PDT 2013 +test iteration 658 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:24:08 PDT 2013 +test iteration 659 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:24:58 PDT 2013 +test iteration 660 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:25:48 PDT 2013 +test iteration 661 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:26:38 PDT 2013 +test iteration 662 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:27:28 PDT 2013 +test iteration 663 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:28:18 PDT 2013 +test iteration 664 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:29:07 PDT 2013 +test iteration 665 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:29:57 PDT 2013 +test iteration 666 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:30:47 PDT 2013 +test iteration 667 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:31:37 PDT 2013 +test iteration 668 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:32:27 PDT 2013 +test iteration 669 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:33:17 PDT 2013 +test iteration 670 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:34:07 PDT 2013 +test iteration 671 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:34:57 PDT 2013 +test iteration 672 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:35:47 PDT 2013 +test iteration 673 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:36:37 PDT 2013 +test iteration 674 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:37:27 PDT 2013 +test iteration 675 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:38:17 PDT 2013 +test iteration 676 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:39:07 PDT 2013 +test iteration 677 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:39:57 PDT 2013 +test iteration 678 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:40:47 PDT 2013 +test iteration 679 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:41:37 PDT 2013 +test iteration 680 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:42:27 PDT 2013 +test iteration 681 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:43:17 PDT 2013 +test iteration 682 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:44:07 PDT 2013 +test iteration 683 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:44:57 PDT 2013 +test iteration 684 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:45:47 PDT 2013 +test iteration 685 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:46:37 PDT 2013 +test iteration 686 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:47:27 PDT 2013 +test iteration 687 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:48:17 PDT 2013 +test iteration 688 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:49:07 PDT 2013 +test iteration 689 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:49:57 PDT 2013 +test iteration 690 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:50:47 PDT 2013 +test iteration 691 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:51:37 PDT 2013 +test iteration 692 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:52:27 PDT 2013 +test iteration 693 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:53:17 PDT 2013 +test iteration 694 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:54:07 PDT 2013 +test iteration 695 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:54:56 PDT 2013 +test iteration 696 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:55:46 PDT 2013 +test iteration 697 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:56:36 PDT 2013 +test iteration 698 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:57:26 PDT 2013 +test iteration 699 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:58:16 PDT 2013 +test iteration 700 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:59:06 PDT 2013 +test iteration 701 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 06:59:56 PDT 2013 +test iteration 702 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:00:46 PDT 2013 +test iteration 703 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:01:36 PDT 2013 +test iteration 704 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:02:26 PDT 2013 +test iteration 705 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:03:16 PDT 2013 +test iteration 706 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:04:06 PDT 2013 +test iteration 707 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:04:56 PDT 2013 +test iteration 708 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:05:46 PDT 2013 +test iteration 709 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:06:36 PDT 2013 +test iteration 710 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:07:26 PDT 2013 +test iteration 711 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:08:16 PDT 2013 +test iteration 712 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:09:06 PDT 2013 +test iteration 713 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:09:56 PDT 2013 +test iteration 714 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:10:46 PDT 2013 +test iteration 715 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:11:36 PDT 2013 +test iteration 716 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:12:26 PDT 2013 +test iteration 717 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:13:16 PDT 2013 +test iteration 718 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:14:06 PDT 2013 +test iteration 719 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:14:55 PDT 2013 +test iteration 720 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:15:45 PDT 2013 +test iteration 721 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:16:35 PDT 2013 +test iteration 722 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:17:25 PDT 2013 +test iteration 723 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:18:15 PDT 2013 +test iteration 724 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:19:05 PDT 2013 +test iteration 725 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:19:55 PDT 2013 +test iteration 726 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:20:45 PDT 2013 +test iteration 727 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:21:35 PDT 2013 +test iteration 728 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:22:25 PDT 2013 +test iteration 729 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:23:15 PDT 2013 +test iteration 730 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:24:05 PDT 2013 +test iteration 731 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:24:55 PDT 2013 +test iteration 732 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:25:45 PDT 2013 +test iteration 733 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:26:35 PDT 2013 +test iteration 734 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:27:25 PDT 2013 +test iteration 735 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:28:15 PDT 2013 +test iteration 736 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:29:05 PDT 2013 +test iteration 737 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:29:55 PDT 2013 +test iteration 738 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:30:45 PDT 2013 +test iteration 739 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:31:35 PDT 2013 +test iteration 740 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:32:25 PDT 2013 +test iteration 741 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:33:15 PDT 2013 +test iteration 742 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:34:05 PDT 2013 +test iteration 743 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:34:55 PDT 2013 +test iteration 744 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:35:45 PDT 2013 +test iteration 745 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:36:35 PDT 2013 +test iteration 746 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:37:25 PDT 2013 +test iteration 747 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:38:14 PDT 2013 +test iteration 748 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:39:04 PDT 2013 +test iteration 749 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:39:54 PDT 2013 +test iteration 750 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:40:44 PDT 2013 +test iteration 751 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:41:34 PDT 2013 +test iteration 752 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:42:24 PDT 2013 +test iteration 753 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:43:14 PDT 2013 +test iteration 754 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:44:04 PDT 2013 +test iteration 755 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:44:54 PDT 2013 +test iteration 756 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:45:44 PDT 2013 +test iteration 757 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:46:34 PDT 2013 +test iteration 758 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:47:24 PDT 2013 +test iteration 759 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:48:14 PDT 2013 +test iteration 760 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:49:04 PDT 2013 +test iteration 761 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:49:54 PDT 2013 +test iteration 762 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:50:44 PDT 2013 +test iteration 763 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:51:34 PDT 2013 +test iteration 764 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:52:24 PDT 2013 +test iteration 765 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:53:14 PDT 2013 +test iteration 766 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:54:04 PDT 2013 +test iteration 767 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:54:54 PDT 2013 +test iteration 768 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:55:44 PDT 2013 +test iteration 769 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:56:34 PDT 2013 +test iteration 770 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:57:24 PDT 2013 +test iteration 771 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:58:14 PDT 2013 +test iteration 772 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:59:04 PDT 2013 +test iteration 773 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 07:59:53 PDT 2013 +test iteration 774 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:00:43 PDT 2013 +test iteration 775 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:01:33 PDT 2013 +test iteration 776 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:02:23 PDT 2013 +test iteration 777 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:03:13 PDT 2013 +test iteration 778 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:04:03 PDT 2013 +test iteration 779 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:04:53 PDT 2013 +test iteration 780 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:05:43 PDT 2013 +test iteration 781 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:06:33 PDT 2013 +test iteration 782 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:07:23 PDT 2013 +test iteration 783 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:08:13 PDT 2013 +test iteration 784 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:09:03 PDT 2013 +test iteration 785 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:09:53 PDT 2013 +test iteration 786 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:10:43 PDT 2013 +test iteration 787 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:11:33 PDT 2013 +test iteration 788 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:12:23 PDT 2013 +test iteration 789 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:13:13 PDT 2013 +test iteration 790 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:14:03 PDT 2013 +test iteration 791 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:14:53 PDT 2013 +test iteration 792 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:15:43 PDT 2013 +test iteration 793 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:16:33 PDT 2013 +test iteration 794 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:17:23 PDT 2013 +test iteration 795 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:18:13 PDT 2013 +test iteration 796 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:19:03 PDT 2013 +test iteration 797 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:19:53 PDT 2013 +test iteration 798 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:20:43 PDT 2013 +test iteration 799 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:21:33 PDT 2013 +test iteration 800 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:22:22 PDT 2013 +test iteration 801 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:23:12 PDT 2013 +test iteration 802 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:24:02 PDT 2013 +test iteration 803 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:24:52 PDT 2013 +test iteration 804 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:25:42 PDT 2013 +test iteration 805 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:26:32 PDT 2013 +test iteration 806 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:27:22 PDT 2013 +test iteration 807 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:28:12 PDT 2013 +test iteration 808 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:29:02 PDT 2013 +test iteration 809 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:29:52 PDT 2013 +test iteration 810 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:30:42 PDT 2013 +test iteration 811 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:31:32 PDT 2013 +test iteration 812 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:32:22 PDT 2013 +test iteration 813 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:33:12 PDT 2013 +test iteration 814 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:34:02 PDT 2013 +test iteration 815 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:34:52 PDT 2013 +test iteration 816 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:35:42 PDT 2013 +test iteration 817 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:36:32 PDT 2013 +test iteration 818 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:37:22 PDT 2013 +test iteration 819 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:38:12 PDT 2013 +test iteration 820 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:39:02 PDT 2013 +test iteration 821 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:39:52 PDT 2013 +test iteration 822 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:40:42 PDT 2013 +test iteration 823 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:41:32 PDT 2013 +test iteration 824 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:42:22 PDT 2013 +test iteration 825 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:43:12 PDT 2013 +test iteration 826 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:44:02 PDT 2013 +test iteration 827 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:44:52 PDT 2013 +test iteration 828 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:45:42 PDT 2013 +test iteration 829 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:46:32 PDT 2013 +test iteration 830 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:47:22 PDT 2013 +test iteration 831 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:48:12 PDT 2013 +test iteration 832 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:49:02 PDT 2013 +test iteration 833 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:49:51 PDT 2013 +test iteration 834 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:50:41 PDT 2013 +test iteration 835 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:51:31 PDT 2013 +test iteration 836 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:52:21 PDT 2013 +test iteration 837 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:53:11 PDT 2013 +test iteration 838 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:54:01 PDT 2013 +test iteration 839 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:54:51 PDT 2013 +test iteration 840 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:55:41 PDT 2013 +test iteration 841 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:56:31 PDT 2013 +test iteration 842 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:57:21 PDT 2013 +test iteration 843 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:58:11 PDT 2013 +test iteration 844 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:59:01 PDT 2013 +test iteration 845 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 08:59:51 PDT 2013 +test iteration 846 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:00:41 PDT 2013 +test iteration 847 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:01:31 PDT 2013 +test iteration 848 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:02:21 PDT 2013 +test iteration 849 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:03:11 PDT 2013 +test iteration 850 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:04:01 PDT 2013 +test iteration 851 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:04:51 PDT 2013 +test iteration 852 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:05:41 PDT 2013 +test iteration 853 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:06:31 PDT 2013 +test iteration 854 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:07:21 PDT 2013 +test iteration 855 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:08:11 PDT 2013 +test iteration 856 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:09:01 PDT 2013 +test iteration 857 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:09:51 PDT 2013 +test iteration 858 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:10:41 PDT 2013 +test iteration 859 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:11:31 PDT 2013 +test iteration 860 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:12:21 PDT 2013 +test iteration 861 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:13:11 PDT 2013 +test iteration 862 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:14:00 PDT 2013 +test iteration 863 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:14:50 PDT 2013 +test iteration 864 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:15:40 PDT 2013 +test iteration 865 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:16:30 PDT 2013 +test iteration 866 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:17:20 PDT 2013 +test iteration 867 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:18:10 PDT 2013 +test iteration 868 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:19:00 PDT 2013 +test iteration 869 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:19:50 PDT 2013 +test iteration 870 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:20:40 PDT 2013 +test iteration 871 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:21:30 PDT 2013 +test iteration 872 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:22:20 PDT 2013 +test iteration 873 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:23:10 PDT 2013 +test iteration 874 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:24:00 PDT 2013 +test iteration 875 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:24:50 PDT 2013 +test iteration 876 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:25:40 PDT 2013 +test iteration 877 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:26:30 PDT 2013 +test iteration 878 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:27:20 PDT 2013 +test iteration 879 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:28:10 PDT 2013 +test iteration 880 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:29:00 PDT 2013 +test iteration 881 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:29:50 PDT 2013 +test iteration 882 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:30:40 PDT 2013 +test iteration 883 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:31:30 PDT 2013 +test iteration 884 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:32:20 PDT 2013 +test iteration 885 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:33:10 PDT 2013 +test iteration 886 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:34:00 PDT 2013 +test iteration 887 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:34:50 PDT 2013 +test iteration 888 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:35:40 PDT 2013 +test iteration 889 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:36:30 PDT 2013 +test iteration 890 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:37:20 PDT 2013 +test iteration 891 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:38:10 PDT 2013 +test iteration 892 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:39:00 PDT 2013 +test iteration 893 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:39:50 PDT 2013 +test iteration 894 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:40:39 PDT 2013 +test iteration 895 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:41:29 PDT 2013 +test iteration 896 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:42:19 PDT 2013 +test iteration 897 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:43:09 PDT 2013 +test iteration 898 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:43:59 PDT 2013 +test iteration 899 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:44:49 PDT 2013 +test iteration 900 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:45:39 PDT 2013 +test iteration 901 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:46:29 PDT 2013 +test iteration 902 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:47:19 PDT 2013 +test iteration 903 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:48:09 PDT 2013 +test iteration 904 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:48:59 PDT 2013 +test iteration 905 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:49:49 PDT 2013 +test iteration 906 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:50:39 PDT 2013 +test iteration 907 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:51:29 PDT 2013 +test iteration 908 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:52:19 PDT 2013 +test iteration 909 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:53:09 PDT 2013 +test iteration 910 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:53:59 PDT 2013 +test iteration 911 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:54:49 PDT 2013 +test iteration 912 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:55:39 PDT 2013 +test iteration 913 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:56:29 PDT 2013 +test iteration 914 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:57:19 PDT 2013 +test iteration 915 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:58:09 PDT 2013 +test iteration 916 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:58:59 PDT 2013 +test iteration 917 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 09:59:49 PDT 2013 +test iteration 918 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:00:39 PDT 2013 +test iteration 919 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:01:29 PDT 2013 +test iteration 920 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:02:19 PDT 2013 +test iteration 921 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:03:08 PDT 2013 +test iteration 922 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:03:58 PDT 2013 +test iteration 923 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:04:48 PDT 2013 +test iteration 924 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:05:38 PDT 2013 +test iteration 925 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:06:28 PDT 2013 +test iteration 926 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:07:18 PDT 2013 +test iteration 927 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:08:08 PDT 2013 +test iteration 928 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:08:58 PDT 2013 +test iteration 929 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:09:48 PDT 2013 +test iteration 930 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:10:38 PDT 2013 +test iteration 931 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:11:28 PDT 2013 +test iteration 932 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:12:18 PDT 2013 +test iteration 933 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:13:08 PDT 2013 +test iteration 934 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:13:58 PDT 2013 +test iteration 935 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:14:48 PDT 2013 +test iteration 936 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:15:38 PDT 2013 +test iteration 937 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:16:28 PDT 2013 +test iteration 938 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:17:18 PDT 2013 +test iteration 939 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:18:08 PDT 2013 +test iteration 940 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:18:58 PDT 2013 +test iteration 941 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:19:48 PDT 2013 +test iteration 942 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:20:38 PDT 2013 +test iteration 943 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:21:28 PDT 2013 +test iteration 944 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:22:18 PDT 2013 +test iteration 945 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:23:08 PDT 2013 +test iteration 946 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:23:58 PDT 2013 +test iteration 947 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:24:48 PDT 2013 +test iteration 948 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:25:38 PDT 2013 +test iteration 949 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:26:27 PDT 2013 +test iteration 950 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:27:17 PDT 2013 +test iteration 951 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:28:07 PDT 2013 +test iteration 952 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:28:57 PDT 2013 +test iteration 953 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:29:47 PDT 2013 +test iteration 954 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:30:37 PDT 2013 +test iteration 955 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:31:27 PDT 2013 +test iteration 956 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:32:17 PDT 2013 +test iteration 957 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:33:07 PDT 2013 +test iteration 958 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:33:57 PDT 2013 +test iteration 959 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:34:47 PDT 2013 +test iteration 960 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:35:37 PDT 2013 +test iteration 961 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:36:27 PDT 2013 +test iteration 962 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:37:17 PDT 2013 +test iteration 963 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:38:07 PDT 2013 +test iteration 964 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:38:57 PDT 2013 +test iteration 965 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:39:47 PDT 2013 +test iteration 966 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:40:37 PDT 2013 +test iteration 967 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:41:27 PDT 2013 +test iteration 968 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:42:17 PDT 2013 +test iteration 969 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:43:07 PDT 2013 +test iteration 970 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:43:57 PDT 2013 +test iteration 971 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:44:46 PDT 2013 +test iteration 972 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:45:36 PDT 2013 +test iteration 973 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:46:26 PDT 2013 +test iteration 974 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:47:16 PDT 2013 +test iteration 975 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:48:06 PDT 2013 +test iteration 976 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:48:56 PDT 2013 +test iteration 977 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:49:46 PDT 2013 +test iteration 978 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:50:36 PDT 2013 +test iteration 979 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:51:26 PDT 2013 +test iteration 980 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:52:16 PDT 2013 +test iteration 981 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:53:06 PDT 2013 +test iteration 982 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:53:56 PDT 2013 +test iteration 983 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:54:46 PDT 2013 +test iteration 984 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:55:36 PDT 2013 +test iteration 985 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:56:26 PDT 2013 +test iteration 986 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:57:16 PDT 2013 +test iteration 987 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:58:06 PDT 2013 +test iteration 988 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:58:56 PDT 2013 +test iteration 989 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 10:59:46 PDT 2013 +test iteration 990 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:00:36 PDT 2013 +test iteration 991 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:01:26 PDT 2013 +test iteration 992 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:02:16 PDT 2013 +test iteration 993 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:03:06 PDT 2013 +test iteration 994 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:03:56 PDT 2013 +test iteration 995 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:04:46 PDT 2013 +test iteration 996 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:05:36 PDT 2013 +test iteration 997 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:06:26 PDT 2013 +test iteration 998 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:07:16 PDT 2013 +test iteration 999 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:08:06 PDT 2013 +test iteration 1000 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:08:55 PDT 2013 +test iteration 1001 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:09:45 PDT 2013 +test iteration 1002 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:10:35 PDT 2013 +test iteration 1003 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:11:25 PDT 2013 +test iteration 1004 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:12:15 PDT 2013 +test iteration 1005 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:13:05 PDT 2013 +test iteration 1006 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:13:55 PDT 2013 +test iteration 1007 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:14:45 PDT 2013 +test iteration 1008 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:15:35 PDT 2013 +test iteration 1009 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:16:25 PDT 2013 +test iteration 1010 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:17:15 PDT 2013 +test iteration 1011 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:18:05 PDT 2013 +test iteration 1012 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:18:55 PDT 2013 +test iteration 1013 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:19:45 PDT 2013 +test iteration 1014 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:20:35 PDT 2013 +test iteration 1015 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:21:25 PDT 2013 +test iteration 1016 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:22:15 PDT 2013 +test iteration 1017 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:23:05 PDT 2013 +test iteration 1018 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:23:55 PDT 2013 +test iteration 1019 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:24:45 PDT 2013 +test iteration 1020 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:25:35 PDT 2013 +test iteration 1021 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:26:25 PDT 2013 +test iteration 1022 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:27:15 PDT 2013 +test iteration 1023 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:28:05 PDT 2013 +test iteration 1024 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:28:55 PDT 2013 +test iteration 1025 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:29:45 PDT 2013 +test iteration 1026 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:30:35 PDT 2013 +test iteration 1027 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:31:25 PDT 2013 +test iteration 1028 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:32:14 PDT 2013 +test iteration 1029 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:33:04 PDT 2013 +test iteration 1030 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:33:54 PDT 2013 +test iteration 1031 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:34:44 PDT 2013 +test iteration 1032 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:35:34 PDT 2013 +test iteration 1033 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:36:24 PDT 2013 +test iteration 1034 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:37:14 PDT 2013 +test iteration 1035 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:38:04 PDT 2013 +test iteration 1036 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:38:54 PDT 2013 +test iteration 1037 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:39:44 PDT 2013 +test iteration 1038 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:40:34 PDT 2013 +test iteration 1039 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:41:24 PDT 2013 +test iteration 1040 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:42:14 PDT 2013 +test iteration 1041 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:43:04 PDT 2013 +test iteration 1042 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:43:54 PDT 2013 +test iteration 1043 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:44:44 PDT 2013 +test iteration 1044 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:45:34 PDT 2013 +test iteration 1045 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:46:24 PDT 2013 +test iteration 1046 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:47:14 PDT 2013 +test iteration 1047 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:48:04 PDT 2013 +test iteration 1048 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:48:54 PDT 2013 +test iteration 1049 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:49:44 PDT 2013 +test iteration 1050 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:50:34 PDT 2013 +test iteration 1051 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:51:24 PDT 2013 +test iteration 1052 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:52:14 PDT 2013 +test iteration 1053 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:53:04 PDT 2013 +test iteration 1054 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:53:54 PDT 2013 +test iteration 1055 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:54:44 PDT 2013 +test iteration 1056 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:55:34 PDT 2013 +test iteration 1057 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:56:23 PDT 2013 +test iteration 1058 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:57:13 PDT 2013 +test iteration 1059 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:58:03 PDT 2013 +test iteration 1060 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:58:53 PDT 2013 +test iteration 1061 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 11:59:43 PDT 2013 +test iteration 1062 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:00:33 PDT 2013 +test iteration 1063 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:01:23 PDT 2013 +test iteration 1064 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:02:13 PDT 2013 +test iteration 1065 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:03:03 PDT 2013 +test iteration 1066 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:03:53 PDT 2013 +test iteration 1067 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:04:43 PDT 2013 +test iteration 1068 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:05:33 PDT 2013 +test iteration 1069 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:06:23 PDT 2013 +test iteration 1070 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:07:13 PDT 2013 +test iteration 1071 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:08:03 PDT 2013 +test iteration 1072 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:08:53 PDT 2013 +test iteration 1073 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:09:43 PDT 2013 +test iteration 1074 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:10:33 PDT 2013 +test iteration 1075 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:11:23 PDT 2013 +test iteration 1076 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:12:13 PDT 2013 +test iteration 1077 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:13:03 PDT 2013 +test iteration 1078 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:13:53 PDT 2013 +test iteration 1079 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:14:43 PDT 2013 +test iteration 1080 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:15:33 PDT 2013 +test iteration 1081 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:16:23 PDT 2013 +test iteration 1082 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:17:13 PDT 2013 +test iteration 1083 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:18:03 PDT 2013 +test iteration 1084 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:18:53 PDT 2013 +test iteration 1085 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:19:42 PDT 2013 +test iteration 1086 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:20:32 PDT 2013 +test iteration 1087 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:21:22 PDT 2013 +test iteration 1088 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:22:12 PDT 2013 +test iteration 1089 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:23:02 PDT 2013 +test iteration 1090 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:23:52 PDT 2013 +test iteration 1091 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:24:42 PDT 2013 +test iteration 1092 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:25:32 PDT 2013 +test iteration 1093 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:26:22 PDT 2013 +test iteration 1094 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:27:12 PDT 2013 +test iteration 1095 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:28:02 PDT 2013 +test iteration 1096 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:28:52 PDT 2013 +test iteration 1097 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:29:42 PDT 2013 +test iteration 1098 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:30:32 PDT 2013 +test iteration 1099 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:31:22 PDT 2013 +test iteration 1100 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:32:12 PDT 2013 +test iteration 1101 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:33:02 PDT 2013 +test iteration 1102 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:33:52 PDT 2013 +test iteration 1103 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:34:42 PDT 2013 +test iteration 1104 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:35:32 PDT 2013 +test iteration 1105 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:36:22 PDT 2013 +test iteration 1106 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:37:12 PDT 2013 +test iteration 1107 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:38:02 PDT 2013 +test iteration 1108 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:38:52 PDT 2013 +test iteration 1109 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:39:42 PDT 2013 +test iteration 1110 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:40:32 PDT 2013 +test iteration 1111 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:41:22 PDT 2013 +test iteration 1112 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:42:12 PDT 2013 +test iteration 1113 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:43:02 PDT 2013 +test iteration 1114 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:43:52 PDT 2013 +test iteration 1115 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:44:41 PDT 2013 +test iteration 1116 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:45:31 PDT 2013 +test iteration 1117 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:46:21 PDT 2013 +test iteration 1118 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:47:11 PDT 2013 +test iteration 1119 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:48:01 PDT 2013 +test iteration 1120 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:48:51 PDT 2013 +test iteration 1121 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:49:41 PDT 2013 +test iteration 1122 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:50:31 PDT 2013 +test iteration 1123 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:51:21 PDT 2013 +test iteration 1124 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:52:11 PDT 2013 +test iteration 1125 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:53:01 PDT 2013 +test iteration 1126 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:53:51 PDT 2013 +test iteration 1127 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:54:41 PDT 2013 +test iteration 1128 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:55:31 PDT 2013 +test iteration 1129 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:56:21 PDT 2013 +test iteration 1130 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:57:11 PDT 2013 +test iteration 1131 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:58:01 PDT 2013 +test iteration 1132 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:58:51 PDT 2013 +test iteration 1133 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 12:59:41 PDT 2013 +test iteration 1134 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:00:31 PDT 2013 +test iteration 1135 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:01:21 PDT 2013 +test iteration 1136 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:02:11 PDT 2013 +test iteration 1137 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:03:01 PDT 2013 +test iteration 1138 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:03:51 PDT 2013 +test iteration 1139 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:04:41 PDT 2013 +test iteration 1140 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:05:31 PDT 2013 +test iteration 1141 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:06:21 PDT 2013 +test iteration 1142 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:07:11 PDT 2013 +test iteration 1143 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:08:01 PDT 2013 +test iteration 1144 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:08:51 PDT 2013 +test iteration 1145 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:09:41 PDT 2013 +test iteration 1146 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:10:30 PDT 2013 +test iteration 1147 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:11:20 PDT 2013 +test iteration 1148 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:12:10 PDT 2013 +test iteration 1149 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:13:00 PDT 2013 +test iteration 1150 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:13:50 PDT 2013 +test iteration 1151 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:14:40 PDT 2013 +test iteration 1152 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:15:30 PDT 2013 +test iteration 1153 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:16:20 PDT 2013 +test iteration 1154 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:17:10 PDT 2013 +test iteration 1155 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:18:00 PDT 2013 +test iteration 1156 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:18:50 PDT 2013 +test iteration 1157 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:19:40 PDT 2013 +test iteration 1158 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:20:30 PDT 2013 +test iteration 1159 +compare dump_test.txt against dump_add_list.txt +============================ +Sun Sep 1 13:21:20 PDT 2013 +test iteration 1160 +compare dump_test.txt against dump_add_list.txt \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/watchdog.lib Tue Sep 17 19:42:49 2013 +0000 @@ -0,0 +1,1 @@ +watchdog#f27d373a8e28