// File: /workspace/github_cpp_makefile_star2_O3/SYZYGYfpga[P]brain-tools/src/smartvio-brain.cpp
// Function: printHelp(char*)
void printHelp (char *progname)
{
	printf("Usage: %s [option [argument]] <i2c device>\n", progname);
	printf("  <i2c device> is required for all commands. It must contain the\n");
	printf("               path to the Linux i2c device\n");
	printf("\n");
	printf("  Exactly one of the following options must be specified:\n");
	printf("    -r - run smartVIO, queries attached MCU's and sets voltages accordingly\n");
	printf("    -s - set VIO voltages to the values provided by -1 and -2 options\n");
	printf("    -j - print out a JSON object with DNA and SmartVIO information\n");
	printf("    -h - print this text\n");
	printf("    -w <filename> - write a binary DNA to a peripheral, takes the DNA filename\n");
	printf("                    as an argument\n");
	printf("    -d <filename> - dump the DNA from a peripheral to a binary file, takes the\n");
	printf("                    DNA filename as an argument\n");
	printf("\n");
	printf("  The following options may be used in conjunction with the above options:\n");
	printf("    -1 <vio1> - Sets the voltage for VIO1\n");
	printf("    -2 <vio2> - Sets the voltage for VIO2\n");
	printf("          <vio1> and <vio2> must be specified as numbers in 10's of mV\n");
	printf("    -p <number> - Specifies the peripheral number for the -w or -d options\n");
	printf("\n");
	printf("  Examples:\n");
	printf("    Run SmartVIO sequence:\n");
	printf("      %s -r /dev/i2c-1\n", progname);
	printf("    Dump DNA from the MCU on Port 1:\n");
	printf("      %s -d dna_file.bin -p 1 /dev/i2c-1\n", progname);
	printf("    Set VIO1 to 3.3V:\n");
	printf("      %s -s -1 330 /dev/i2c-1\n", progname);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
leaq 0x4f2d(%rip), %rdi      # 0x916f
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3040
leaq 0x58ca(%rip), %rdi      # 0x9b1d
callq 0x3310
leaq 0x58ff(%rip), %rdi      # 0x9b5e
callq 0x3310
movl $0xa, %edi
callq 0x32b0
leaq 0x5915(%rip), %rdi      # 0x9b8a
callq 0x3310
leaq 0x5943(%rip), %rdi      # 0x9bc4
callq 0x3310
leaq 0x5983(%rip), %rdi      # 0x9c10
callq 0x3310
leaq 0x59bd(%rip), %rdi      # 0x9c56
callq 0x3310
leaq 0x59f4(%rip), %rdi      # 0x9c99
callq 0x3310
leaq 0x5a01(%rip), %rdi      # 0x9cb2
callq 0x3310
leaq 0x5a44(%rip), %rdi      # 0x9d01
callq 0x3310
leaq 0x5a5b(%rip), %rdi      # 0x9d24
callq 0x3310
leaq 0x5a9e(%rip), %rdi      # 0x9d73
callq 0x3310
movl $0xa, %edi
callq 0x32b0
leaq 0x5ab8(%rip), %rdi      # 0x9da3
callq 0x3310
leaq 0x5af7(%rip), %rdi      # 0x9dee
callq 0x3310
leaq 0x5b15(%rip), %rdi      # 0x9e18
callq 0x3310
leaq 0x5b33(%rip), %rdi      # 0x9e42
callq 0x3310
leaq 0x5b6e(%rip), %rdi      # 0x9e89
callq 0x3310
movl $0xa, %edi
callq 0x32b0
leaq 0x5ba3(%rip), %rdi      # 0x9ed4
callq 0x3310
leaq 0x5ba3(%rip), %rdi      # 0x9ee0
callq 0x3310
leaq 0x4e52(%rip), %rdi      # 0x919b
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3040
leaq 0x5ba1(%rip), %rdi      # 0x9efb
callq 0x3310
leaq 0x4e4d(%rip), %rdi      # 0x91b3
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3040
leaq 0x5ba9(%rip), %rdi      # 0x9f20
callq 0x3310
leaq 0x4e5a(%rip), %rdi      # 0x91dd
movq %rbx, %rsi
xorl %eax, %eax
popq %rbx
jmp 0x3040