#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ WaveformDiagram();
int /*<<< orphan*/ printf(char *, ...);
void Help() {
  char ESC = 27;
  printf("*********************************************************************"
         "****************\n");
  printf("********************************* Kicker Help "
         "***************************************\n");
  printf("*********************************************************************"
         "****************\n");
  printf("                                   Commands                          "
         "                \n");
  printf("*********************************************************************"
         "****************\n");
  printf("0 - end program \n");
  printf("  - can be done and not affect BNC-632 beam pulsing \n");
  printf("  - *** ON RESTART BNC-632 WILL GO TO SINE WAVE *** \n");
  printf("  - *** MAKE SURE BEAM IS OFF                   *** \n");
  printf("1 - set up and begin pulsing of beam \n");
  printf("  - provide grow-in time, decay-out time, and trigger\n");
  printf("  - times = integer format\n");
  printf("  - times = milliseconds\n");
  printf("  - trigger (y) = continuous or repeating pulsing\n");
  printf("  - trigger (n) = computer/MTC control of pulsing\n");
  printf("  - MTC controlled, a TTL signal must be provided on Ext Trigger on "
         "back of BNC-632\n");
  printf("  - pulse starts on leading edge of external trigger\n");
  printf("  - pulse beginning is high (beam off) for MTC movement\n");
  printf("  - pulse middle is low (beam on) for grow-in cycle\n");
  printf("  - pulse beginning is high (beam off) for decay-out cycle\n");
  printf("  - program can provide single triggers to ensure short burst of "
         "beam\n");
  printf("2 - resume pulsing of beam from previous set-up parameters \n");
  printf(
      "3 - turn off pulsing of the beam by setting the BNC-632 to no output\n");
  printf("4 - stop the beam using the BNC-632 to deflect the beam by raising "
         "output\n");
  printf("5 - show status by printing the front LCD panel of the BNC-632\n");
  printf("\n");
  printf("10 - list this section \n");
  printf(
      "11 - issue a single trigger to the BNC (see last section of 1 above\n");
  printf("12 - turn on  front panel of BNC-632 for hand control\n");
  printf("13 - turn off front panel of BNC-632 to prevent accidental changes "
         "(default)\n");
  printf("14 - adjust the amplitude and offset of the BNC-632 waveform\n");
  printf("   - *** DO NOT ADJUST UNLESS YOU KNOW WHAT YOU ARE DOING ***\n");
  printf("   - amplitude is the signal height peak-to-peak ie -V/2 -> +V/2\n");
  printf("   - maximum voltage range is 0 -> 2000 mV for our HV amplifier\n");
  printf("   - offset is an adjustment to ensure 0 mV is 0 mV \n");
  printf("   - offset is also used to ensure no steering of the beam should "
         "occur\n");
  printf("   - Initially offset is set to 1/2 amplitude so signal goes 0 -> Vo "
         "\n");
  printf("   - values are -6000 mV < offset < +6000 mV \n");
  printf("15 - go to manual control of the BNC-632\n");
  printf("   - issue commands as if you were using the front panel\n");
  printf("   - a list of possible commands is always printed to the screen\n");
  printf("16 - input the time it takes the MTC to move the tape fo rthe next "
         "measurement\n");
  printf("   - default is 200 ms \n");
  printf("   - electronic noise may require more time than the physical tape "
         "movement \n");
  printf("\n");
  printf("*********************************************************************"
         "****************\n");
  printf("              Hints on hardware setup and running philosophy         "
         "                \n");
  printf("*********************************************************************"
         "****************\n");
  printf("Baud rate on BNC-632 should be set to 38400 \n");
  printf(" - turn on BNC-632 \n");
  printf(" - default baud rate is 9600 \n");
  printf(" - go to Mode, Offset \n");
  printf(" - turn knob until 38400 is chosen \n");
  printf(" - program should now be able to communicate \n");
  printf("Sync out on front panel is a duplicate of actual signal BUT may not "
         "go to 0 V \n");
  printf(" - can use signal out to monitor signals going to amplifier \n");
  printf(" - sync is up when signal is up \n");
  printf("Sig out should be sent to amplifier input \n");
  printf(" - amplifier is x1000 \n");
  printf(" - beam is deflected when signal goes up\n");
  printf(" - check that down is 0 mV or give a correction voltage to opposite "
         "deflector plate\n");
  printf("Program does not read BNC-632 except for the front panel LCD\n");
  printf(
      " - changes to parameters by front panel will not be given to program\n");
  printf(" - exiting program does not affect beam pulsing\n");
  printf(" - restarting program DOES affect beam pulsing and should not be "
         "done with beam on target\n");
  printf(" - this can be changed but manual suggests BNC-632 should be started "
         "in known state\n");
  printf(" - known state is sine wave, offset = 0 mV, frequency,amplitude at "
         "previous sine wave values\n");
  printf("To stop beam just for tape movement \n");
  printf(" - set grow-in to any non-zero value\n");
  printf(" - set decay-out to 0 ms\n");
  printf(" - set tape movement time required\n");
  printf("\n");
  printf("%c[1m", ESC);
  printf("*********Notes on REMOTE OPERATION of the MTC******** \n");
  printf("%c[0m", ESC);
  printf("  1) Set the dwell time on the MTC control unit to a value lower \n");
  printf(
      "     than the dwell time determined by the remote control program \n");
  printf("     (time between desired MTC moves). A value of 10 ms is "
         "suggested. \n");
  printf("  2) Set \"Action when completed\" to STOP.  This ensures that when "
         "the \n");
  printf("     remote program issues the next move command, the MTC has "
         "completed  \n");
  printf("     the previous move cycle. \n");
  printf("  3) Check the time it takes to move the tape.  This time plus the "
         "dwell \n");
  printf("     time on the MTC controller MUST be less than the remote dwell "
         "time. \n");
  printf("     You can make the dwell time as short as you want, but you must "
         "alter \n");
  printf("     the acceleration and deceleration speed or the distance to "
         "change  \n");
  printf("     the time to move the tape.   \n");
  printf("  4) Refer to the manual for options and suggestions.  These changes "
         "\n");
  printf("     should be done very carefully and the action of the tape "
         "observed \n");
  printf("     afterwards.  This means the following should be valid: \n");
  printf("   \n");
  printf("    Time between moves < MTC dwell + MTC acceleration + MTC "
         "deceleration \n");
  printf("    where MTC dwell = 10 ms and typical accel/decel times are "
         "100-200 ms \n");
  printf("\n");
  WaveformDiagram();
  printf("\n");
  printf("*********************************************************************"
         "****************\n");
  return;
}


x86 assembly (clang, -O0):
<Help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movb   $0x1b,-0x1(%rbp)
lea    0xecd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf16(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xeb1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf51(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe95(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf8c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf90(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfb8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfe0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1008(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1021(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x104a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1058(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1064(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1089(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10ae(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10f5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x111d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1148(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x116f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x119d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11d6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1205(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x123d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x127a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe72(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x129e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12a9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12e0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1309(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1349(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1379(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13aa(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13de(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1411(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1439(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1474(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14ad(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14ce(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14ea(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1516(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x154a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x158c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1597(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xd68(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xc57(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15bb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xc3b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15f6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1616(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x161d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x162e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1638(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x164f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1670(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16b2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16e2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16f6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1714(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x171e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x173a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1781(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17b1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17e9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x180c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1859(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18a0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18f0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1908(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1920(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x192c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xbee(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x1(%rbp),%esi
lea    0x1930(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1928(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x1(%rbp),%esi
lea    0x194e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1946(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x197b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19b1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19eb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a25(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a62(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a74(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1ab1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1aee(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b2c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b68(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b7e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1bb7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1bf2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xae7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1c14(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1c51(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xac0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x0,%al
call   1040 <WaveformDiagram@plt>
lea    0xaab(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x99a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Help>:
push   %rbx
lea    0x20e1(%rip),%rbx
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0xeb5(%rip),%rdi
call   1040 <puts@plt>
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0xef7(%rip),%rdi
call   1040 <puts@plt>
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0xf39(%rip),%rdi
call   1040 <puts@plt>
lea    0xf3e(%rip),%rdi
call   1040 <puts@plt>
lea    0xf67(%rip),%rdi
call   1040 <puts@plt>
lea    0xf90(%rip),%rdi
call   1040 <puts@plt>
lea    0xfb9(%rip),%rdi
call   1040 <puts@plt>
lea    0xfd3(%rip),%rdi
call   1040 <puts@plt>
lea    0xffd(%rip),%rdi
call   1040 <puts@plt>
lea    0x100c(%rip),%rdi
call   1040 <puts@plt>
lea    0x1019(%rip),%rdi
call   1040 <puts@plt>
lea    0x103f(%rip),%rdi
call   1040 <puts@plt>
lea    0x1065(%rip),%rdi
call   1040 <puts@plt>
lea    0x10ad(%rip),%rdi
call   1040 <puts@plt>
lea    0x10d6(%rip),%rdi
call   1040 <puts@plt>
lea    0x1102(%rip),%rdi
call   1040 <puts@plt>
lea    0x112a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1159(%rip),%rdi
call   1040 <puts@plt>
lea    0x1193(%rip),%rdi
call   1040 <puts@plt>
lea    0x11c3(%rip),%rdi
call   1040 <puts@plt>
lea    0x11fc(%rip),%rdi
call   1040 <puts@plt>
lea    0x123a(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1263(%rip),%rdi
call   1040 <puts@plt>
lea    0x126f(%rip),%rdi
call   1040 <puts@plt>
lea    0x12a7(%rip),%rdi
call   1040 <puts@plt>
lea    0x12d1(%rip),%rdi
call   1040 <puts@plt>
lea    0x1312(%rip),%rdi
call   1040 <puts@plt>
lea    0x1343(%rip),%rdi
call   1040 <puts@plt>
lea    0x1375(%rip),%rdi
call   1040 <puts@plt>
lea    0x13aa(%rip),%rdi
call   1040 <puts@plt>
lea    0x13de(%rip),%rdi
call   1040 <puts@plt>
lea    0x1407(%rip),%rdi
call   1040 <puts@plt>
lea    0x1443(%rip),%rdi
call   1040 <puts@plt>
lea    0x147d(%rip),%rdi
call   1040 <puts@plt>
lea    0x149f(%rip),%rdi
call   1040 <puts@plt>
lea    0x14bc(%rip),%rdi
call   1040 <puts@plt>
lea    0x14e9(%rip),%rdi
call   1040 <puts@plt>
lea    0x151e(%rip),%rdi
call   1040 <puts@plt>
lea    0x1561(%rip),%rdi
call   1040 <puts@plt>
lea    0x156d(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0x159c(%rip),%rdi
call   1040 <puts@plt>
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0x15de(%rip),%rdi
call   1040 <puts@plt>
lea    0x15ff(%rip),%rdi
call   1040 <puts@plt>
lea    0x1607(%rip),%rdi
call   1040 <puts@plt>
lea    0x1619(%rip),%rdi
call   1040 <puts@plt>
lea    0x1624(%rip),%rdi
call   1040 <puts@plt>
lea    0x163c(%rip),%rdi
call   1040 <puts@plt>
lea    0x165e(%rip),%rdi
call   1040 <puts@plt>
lea    0x16a1(%rip),%rdi
call   1040 <puts@plt>
lea    0x16d2(%rip),%rdi
call   1040 <puts@plt>
lea    0x16e7(%rip),%rdi
call   1040 <puts@plt>
lea    0x1706(%rip),%rdi
call   1040 <puts@plt>
lea    0x1711(%rip),%rdi
call   1040 <puts@plt>
lea    0x172e(%rip),%rdi
call   1040 <puts@plt>
lea    0x1776(%rip),%rdi
call   1040 <puts@plt>
lea    0x17a7(%rip),%rdi
call   1040 <puts@plt>
lea    0x17e0(%rip),%rdi
call   1040 <puts@plt>
lea    0x1804(%rip),%rdi
call   1040 <puts@plt>
lea    0x1852(%rip),%rdi
call   1040 <puts@plt>
lea    0x189a(%rip),%rdi
call   1040 <puts@plt>
lea    0x18eb(%rip),%rdi
call   1040 <puts@plt>
lea    0x1904(%rip),%rdi
call   1040 <puts@plt>
lea    0x191d(%rip),%rdi
call   1040 <puts@plt>
lea    0x192a(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xb6b(%rip),%rdi
mov    $0x1b,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x1924(%rip),%rdi
call   1040 <puts@plt>
lea    0xb52(%rip),%rdi
mov    $0x1b,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x193c(%rip),%rdi
call   1040 <puts@plt>
lea    0x1972(%rip),%rdi
call   1040 <puts@plt>
lea    0x19a9(%rip),%rdi
call   1040 <puts@plt>
lea    0x19e4(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a1f(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a5d(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a70(%rip),%rdi
call   1040 <puts@plt>
lea    0x1aae(%rip),%rdi
call   1040 <puts@plt>
lea    0x1aec(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b2b(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b68(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b7f(%rip),%rdi
call   1040 <puts@plt>
lea    0x1bb9(%rip),%rdi
call   1040 <puts@plt>
lea    0x1bf5(%rip),%rdi
call   1040 <puts@plt>
lea    0xb45(%rip),%rdi
call   1040 <puts@plt>
lea    0x1c1a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1c58(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
xor    %eax,%eax
call   1060 <WaveformDiagram@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %rbx,%rdi
pop    %rbx
jmp    1040 <puts@plt>

LLVM IR (-O0):
@.str = [87 x i8] c"*************************************************************************************\0A\00"
@.str.1 = [87 x i8] c"********************************* Kicker Help ***************************************\0A\00"
@.str.2 = [87 x i8] c" Commands \0A\00"
@.str.3 = [18 x i8] c"0 - end program \0A\00"
@.str.4 = [54 x i8] c" - can be done and not affect BNC-632 beam pulsing \0A\00"
@.str.5 = [54 x i8] c" - *** ON RESTART BNC-632 WILL GO TO SINE WAVE *** \0A\00"
@.str.6 = [54 x i8] c" - *** MAKE SURE BEAM IS OFF *** \0A\00"
@.str.7 = [39 x i8] c"1 - set up and begin pulsing of beam \0A\00"
@.str.8 = [55 x i8] c" - provide grow-in time, decay-out time, and trigger\0A\00"
@.str.9 = [28 x i8] c" - times = integer format\0A\00"
@.str.10 = [26 x i8] c" - times = milliseconds\0A\00"
@.str.11 = [51 x i8] c" - trigger (y) = continuous or repeating pulsing\0A\00"
@.str.12 = [51 x i8] c" - trigger (n) = computer/MTC control of pulsing\0A\00"
@.str.13 = [85 x i8] c" - MTC controlled, a TTL signal must be provided on Ext Trigger on back of BNC-632\0A\00"
@.str.14 = [54 x i8] c" - pulse starts on leading edge of external trigger\0A\00"
@.str.15 = [57 x i8] c" - pulse beginning is high (beam off) for MTC movement\0A\00"
@.str.16 = [53 x i8] c" - pulse middle is low (beam on) for grow-in cycle\0A\00"
@.str.17 = [60 x i8] c" - pulse beginning is high (beam off) for decay-out cycle\0A\00"
@.str.18 = [71 x i8] c" - program can provide single triggers to ensure short burst of beam\0A\00"
@.str.19 = [61 x i8] c"2 - resume pulsing of beam from previous set-up parameters \0A\00"
@.str.20 = [70 x i8] c"3 - turn off pulsing of the beam by setting the BNC-632 to no output\0A\00"
@.str.21 = [75 x i8] c"4 - stop the beam using the BNC-632 to deflect the beam by raising output\0A\00"
@.str.22 = [64 x i8] c"5 - show status by printing the front LCD panel of the BNC-632\0A\00"
@.str.23 = [2 x i8] c"\0A\00"
@.str.24 = [25 x i8] c"10 - list this section \0A\00"
@.str.25 = [69 x i8] c"11 - issue a single trigger to the BNC (see last section of 1 above\0A\00"
@.str.26 = [55 x i8] c"12 - turn on front panel of BNC-632 for hand control\0A\00"
@.str.27 = [78 x i8] c"13 - turn off front panel of BNC-632 to prevent accidental changes (default)\0A\00"
@.str.28 = [62 x i8] c"14 - adjust the amplitude and offset of the BNC-632 waveform\0A\00"
@.str.29 = [63 x i8] c" - *** DO NOT ADJUST UNLESS YOU KNOW WHAT YOU ARE DOING ***\0A\00"
@.str.30 = [66 x i8] c" - amplitude is the signal height peak-to-peak ie -V/2 -> +V/2\0A\00"
@.str.31 = [65 x i8] c" - maximum voltage range is 0 -> 2000 mV for our HV amplifier\0A\00"
@.str.32 = [54 x i8] c" - offset is an adjustment to ensure 0 mV is 0 mV \0A\00"
@.str.33 = [73 x i8] c" - offset is also used to ensure no steering of the beam should occur\0A\00"
@.str.34 = [71 x i8] c" - Initially offset is set to 1/2 amplitude so signal goes 0 -> Vo \0A\00"
@.str.35 = [47 x i8] c" - values are -6000 mV < offset < +6000 mV \0A\00"
@.str.36 = [42 x i8] c"15 - go to manual control of the BNC-632\0A\00"
@.str.37 = [58 x i8] c" - issue commands as if you were using the front panel\0A\00"
@.str.38 = [66 x i8] c" - a list of possible commands is always printed to the screen\0A\00"
@.str.39 = [80 x i8] c"16 - input the time it takes the MTC to move the tape fo rthe next measurement\0A\00"
@.str.40 = [25 x i8] c" - default is 200 ms \0A\00"
@.str.41 = [78 x i8] c" - electronic noise may require more time than the physical tape movement \0A\00"
@.str.42 = [87 x i8] c" Hints on hardware setup and running philosophy \0A\00"
@.str.43 = [46 x i8] c"Baud rate on BNC-632 should be set to 38400 \0A\00"
@.str.44 = [21 x i8] c" - turn on BNC-632 \0A\00"
@.str.45 = [31 x i8] c" - default baud rate is 9600 \0A\00"
@.str.46 = [24 x i8] c" - go to Mode, Offset \0A\00"
@.str.47 = [37 x i8] c" - turn knob until 38400 is chosen \0A\00"
@.str.48 = [47 x i8] c" - program should now be able to communicate \0A\00"
@.str.49 = [80 x i8] c"Sync out on front panel is a duplicate of actual signal BUT may not go to 0 V \0A\00"
@.str.50 = [62 x i8] c" - can use signal out to monitor signals going to amplifier \0A\00"
@.str.51 = [34 x i8] c" - sync is up when signal is up \0A\00"
@.str.52 = [44 x i8] c"Sig out should be sent to amplifier input \0A\00"
@.str.53 = [24 x i8] c" - amplifier is x1000 \0A\00"
@.str.54 = [42 x i8] c" - beam is deflected when signal goes up\0A\00"
@.str.55 = [85 x i8] c" - check that down is 0 mV or give a correction voltage to opposite deflector plate\0A\00"
@.str.56 = [62 x i8] c"Program does not read BNC-632 except for the front panel LCD\0A\00"
@.str.57 = [70 x i8] c" - changes to parameters by front panel will not be given to program\0A\00"
@.str.58 = [49 x i8] c" - exiting program does not affect beam pulsing\0A\00"
@.str.59 = [91 x i8] c" - restarting program DOES affect beam pulsing and should not be done with beam on target\0A\00"
@.str.60 = [85 x i8] c" - this can be changed but manual suggests BNC-632 should be started in known state\0A\00"
@.str.61 = [94 x i8] c" - known state is sine wave, offset = 0 mV, frequency,amplitude at previous sine wave values\0A\00"
@.str.62 = [38 x i8] c"To stop beam just for tape movement \0A\00"
@.str.63 = [38 x i8] c" - set grow-in to any non-zero value\0A\00"
@.str.64 = [26 x i8] c" - set decay-out to 0 ms\0A\00"
@.str.65 = [36 x i8] c" - set tape movement time required\0A\00"
@.str.66 = [6 x i8] c"%c[1m\00"
@.str.67 = [56 x i8] c"*********Notes on REMOTE OPERATION of the MTC******** \0A\00"
@.str.68 = [6 x i8] c"%c[0m\00"
@.str.69 = [67 x i8] c" 1) Set the dwell time on the MTC control unit to a value lower \0A\00"
@.str.70 = [68 x i8] c" than the dwell time determined by the remote control program \0A\00"
@.str.71 = [72 x i8] c" (time between desired MTC moves). A value of 10 ms is suggested. \0A\00"
@.str.72 = [72 x i8] c" 2) Set \22Action when completed\22 to STOP. This ensures that when the \0A\00"
@.str.73 = [75 x i8] c" remote program issues the next move command, the MTC has completed \0A\00"
@.str.74 = [32 x i8] c" the previous move cycle. \0A\00"
@.str.75 = [75 x i8] c" 3) Check the time it takes to move the tape. This time plus the dwell \0A\00"
@.str.76 = [75 x i8] c" time on the MTC controller MUST be less than the remote dwell time. \0A\00"
@.str.77 = [76 x i8] c" You can make the dwell time as short as you want, but you must alter \0A\00"
@.str.78 = [74 x i8] c" the acceleration and deceleration speed or the distance to change \0A\00"
@.str.79 = [36 x i8] c" the time to move the tape. \0A\00"
@.str.80 = [71 x i8] c" 4) Refer to the manual for options and suggestions. These changes \0A\00"
@.str.81 = [73 x i8] c" should be done very carefully and the action of the tape observed \0A\00"
@.str.82 = [62 x i8] c" afterwards. This means the following should be valid: \0A\00"
@.str.83 = [5 x i8] c" \0A\00"
@.str.84 = [75 x i8] c" Time between moves < MTC dwell + MTC acceleration + MTC deceleration \0A\00"
@.str.85 = [75 x i8] c" where MTC dwell = 10 ms and typical accel/decel times are 100-200 ms \0A\00"
define void @Help() {
%1 = alloca i8
store i8 27, i8* %1
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str, i64 0, i64 0))
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.1, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str, i64 0, i64 0))
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.2, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.4, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.5, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.6, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.7, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.8, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.9, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.10, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.11, i64 0, i64 0))
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.12, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.13, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.14, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.15, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.16, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.17, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.18, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.20, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.21, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.22, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.23, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.24, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.25, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.26, i64 0, i64 0))
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.27, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.28, i64 0, i64 0))
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.29, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.30, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.31, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.32, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.33, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.34, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.35, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.36, i64 0, i64 0))
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.37, i64 0, i64 0))
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.38, i64 0, i64 0))
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.39, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.40, i64 0, i64 0))
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.41, i64 0, i64 0))
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.23, i64 0, i64 0))
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str, i64 0, i64 0))
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.42, i64 0, i64 0))
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str, i64 0, i64 0))
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.43, i64 0, i64 0))
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.44, i64 0, i64 0))
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.45, i64 0, i64 0))
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.46, i64 0, i64 0))
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.47, i64 0, i64 0))
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.48, i64 0, i64 0))
%56 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.49, i64 0, i64 0))
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.50, i64 0, i64 0))
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.51, i64 0, i64 0))
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.52, i64 0, i64 0))
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.53, i64 0, i64 0))
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.54, i64 0, i64 0))
%62 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.55, i64 0, i64 0))
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.56, i64 0, i64 0))
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.57, i64 0, i64 0))
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.58, i64 0, i64 0))
%66 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.59, i64 0, i64 0))
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.60, i64 0, i64 0))
%68 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.61, i64 0, i64 0))
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.62, i64 0, i64 0))
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.63, i64 0, i64 0))
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.64, i64 0, i64 0))
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.65, i64 0, i64 0))
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.23, i64 0, i64 0))
%74 = load i8, i8* %1
%75 = sext i8 %74 to i32
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.66, i64 0, i64 0), i32 %75)
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.67, i64 0, i64 0))
%78 = load i8, i8* %1
%79 = sext i8 %78 to i32
%80 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i64 0, i64 0), i32 %79)
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.69, i64 0, i64 0))
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.70, i64 0, i64 0))
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.71, i64 0, i64 0))
%84 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.72, i64 0, i64 0))
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.73, i64 0, i64 0))
%86 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.74, i64 0, i64 0))
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.75, i64 0, i64 0))
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.76, i64 0, i64 0))
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.77, i64 0, i64 0))
%90 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.78, i64 0, i64 0))
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.79, i64 0, i64 0))
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.80, i64 0, i64 0))
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.81, i64 0, i64 0))
%94 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.82, i64 0, i64 0))
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.83, i64 0, i64 0))
%96 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.84, i64 0, i64 0))
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.85, i64 0, i64 0))
%98 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.23, i64 0, i64 0))
%99 = call i32 (...) @WaveformDiagram()
%100 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.23, i64 0, i64 0))
%101 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str.66 = [6 x i8] c"%c[1m\00"
@.str.68 = [6 x i8] c"%c[0m\00"
@str.86 = [86 x i8] c"********************************* Kicker Help ***************************************\00"
@str.88 = [86 x i8] c" Commands \00"
@str.90 = [17 x i8] c"0 - end program \00"
@str.91 = [53 x i8] c" - can be done and not affect BNC-632 beam pulsing \00"
@str.92 = [53 x i8] c" - *** ON RESTART BNC-632 WILL GO TO SINE WAVE *** \00"
@str.93 = [53 x i8] c" - *** MAKE SURE BEAM IS OFF *** \00"
@str.94 = [38 x i8] c"1 - set up and begin pulsing of beam \00"
@str.95 = [54 x i8] c" - provide grow-in time, decay-out time, and trigger\00"
@str.96 = [27 x i8] c" - times = integer format\00"
@str.97 = [25 x i8] c" - times = milliseconds\00"
@str.98 = [50 x i8] c" - trigger (y) = continuous or repeating pulsing\00"
@str.99 = [50 x i8] c" - trigger (n) = computer/MTC control of pulsing\00"
@str.100 = [84 x i8] c" - MTC controlled, a TTL signal must be provided on Ext Trigger on back of BNC-632\00"
@str.101 = [53 x i8] c" - pulse starts on leading edge of external trigger\00"
@str.102 = [56 x i8] c" - pulse beginning is high (beam off) for MTC movement\00"
@str.103 = [52 x i8] c" - pulse middle is low (beam on) for grow-in cycle\00"
@str.104 = [59 x i8] c" - pulse beginning is high (beam off) for decay-out cycle\00"
@str.105 = [70 x i8] c" - program can provide single triggers to ensure short burst of beam\00"
@str.106 = [60 x i8] c"2 - resume pulsing of beam from previous set-up parameters \00"
@str.107 = [69 x i8] c"3 - turn off pulsing of the beam by setting the BNC-632 to no output\00"
@str.108 = [74 x i8] c"4 - stop the beam using the BNC-632 to deflect the beam by raising output\00"
@str.109 = [63 x i8] c"5 - show status by printing the front LCD panel of the BNC-632\00"
@str.110 = [24 x i8] c"10 - list this section \00"
@str.111 = [68 x i8] c"11 - issue a single trigger to the BNC (see last section of 1 above\00"
@str.112 = [54 x i8] c"12 - turn on front panel of BNC-632 for hand control\00"
@str.113 = [77 x i8] c"13 - turn off front panel of BNC-632 to prevent accidental changes (default)\00"
@str.114 = [61 x i8] c"14 - adjust the amplitude and offset of the BNC-632 waveform\00"
@str.115 = [62 x i8] c" - *** DO NOT ADJUST UNLESS YOU KNOW WHAT YOU ARE DOING ***\00"
@str.116 = [65 x i8] c" - amplitude is the signal height peak-to-peak ie -V/2 -> +V/2\00"
@str.117 = [64 x i8] c" - maximum voltage range is 0 -> 2000 mV for our HV amplifier\00"
@str.118 = [53 x i8] c" - offset is an adjustment to ensure 0 mV is 0 mV \00"
@str.119 = [72 x i8] c" - offset is also used to ensure no steering of the beam should occur\00"
@str.120 = [70 x i8] c" - Initially offset is set to 1/2 amplitude so signal goes 0 -> Vo \00"
@str.121 = [46 x i8] c" - values are -6000 mV < offset < +6000 mV \00"
@str.122 = [41 x i8] c"15 - go to manual control of the BNC-632\00"
@str.123 = [57 x i8] c" - issue commands as if you were using the front panel\00"
@str.124 = [65 x i8] c" - a list of possible commands is always printed to the screen\00"
@str.125 = [79 x i8] c"16 - input the time it takes the MTC to move the tape fo rthe next measurement\00"
@str.126 = [24 x i8] c" - default is 200 ms \00"
@str.127 = [77 x i8] c" - electronic noise may require more time than the physical tape movement \00"
@str.129 = [86 x i8] c" Hints on hardware setup and running philosophy \00"
@str.131 = [45 x i8] c"Baud rate on BNC-632 should be set to 38400 \00"
@str.132 = [20 x i8] c" - turn on BNC-632 \00"
@str.133 = [30 x i8] c" - default baud rate is 9600 \00"
@str.134 = [23 x i8] c" - go to Mode, Offset \00"
@str.135 = [36 x i8] c" - turn knob until 38400 is chosen \00"
@str.136 = [46 x i8] c" - program should now be able to communicate \00"
@str.137 = [79 x i8] c"Sync out on front panel is a duplicate of actual signal BUT may not go to 0 V \00"
@str.138 = [61 x i8] c" - can use signal out to monitor signals going to amplifier \00"
@str.139 = [33 x i8] c" - sync is up when signal is up \00"
@str.140 = [43 x i8] c"Sig out should be sent to amplifier input \00"
@str.141 = [23 x i8] c" - amplifier is x1000 \00"
@str.142 = [41 x i8] c" - beam is deflected when signal goes up\00"
@str.143 = [84 x i8] c" - check that down is 0 mV or give a correction voltage to opposite deflector plate\00"
@str.144 = [61 x i8] c"Program does not read BNC-632 except for the front panel LCD\00"
@str.145 = [69 x i8] c" - changes to parameters by front panel will not be given to program\00"
@str.146 = [48 x i8] c" - exiting program does not affect beam pulsing\00"
@str.147 = [90 x i8] c" - restarting program DOES affect beam pulsing and should not be done with beam on target\00"
@str.148 = [84 x i8] c" - this can be changed but manual suggests BNC-632 should be started in known state\00"
@str.149 = [93 x i8] c" - known state is sine wave, offset = 0 mV, frequency,amplitude at previous sine wave values\00"
@str.150 = [37 x i8] c"To stop beam just for tape movement \00"
@str.151 = [37 x i8] c" - set grow-in to any non-zero value\00"
@str.152 = [25 x i8] c" - set decay-out to 0 ms\00"
@str.153 = [35 x i8] c" - set tape movement time required\00"
@str.154 = [55 x i8] c"*********Notes on REMOTE OPERATION of the MTC******** \00"
@str.155 = [66 x i8] c" 1) Set the dwell time on the MTC control unit to a value lower \00"
@str.156 = [67 x i8] c" than the dwell time determined by the remote control program \00"
@str.157 = [71 x i8] c" (time between desired MTC moves). A value of 10 ms is suggested. \00"
@str.158 = [71 x i8] c" 2) Set \22Action when completed\22 to STOP. This ensures that when the \00"
@str.159 = [74 x i8] c" remote program issues the next move command, the MTC has completed \00"
@str.160 = [31 x i8] c" the previous move cycle. \00"
@str.161 = [74 x i8] c" 3) Check the time it takes to move the tape. This time plus the dwell \00"
@str.162 = [74 x i8] c" time on the MTC controller MUST be less than the remote dwell time. \00"
@str.163 = [75 x i8] c" You can make the dwell time as short as you want, but you must alter \00"
@str.164 = [73 x i8] c" the acceleration and deceleration speed or the distance to change \00"
@str.165 = [35 x i8] c" the time to move the tape. \00"
@str.166 = [70 x i8] c" 4) Refer to the manual for options and suggestions. These changes \00"
@str.167 = [72 x i8] c" should be done very carefully and the action of the tape observed \00"
@str.168 = [61 x i8] c" afterwards. This means the following should be valid: \00"
@str.169 = [4 x i8] c" \00"
@str.170 = [74 x i8] c" Time between moves < MTC dwell + MTC acceleration + MTC deceleration \00"
@str.171 = [74 x i8] c" where MTC dwell = 10 ms and typical accel/decel times are 100-200 ms \00"
@str.172 = [86 x i8] c"*************************************************************************************\00"
define void @Help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.172, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.86, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.172, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.88, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.172, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.90, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.91, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.92, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.93, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str.94, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.95, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str.96, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @str.97, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @str.98, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @str.99, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([84 x i8], [84 x i8]* @str.100, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.101, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.102, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @str.103, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.104, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.105, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @str.106, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.107, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.108, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.109, i64 0, i64 0))
%26 = tail call i32 @putchar(i32 10)
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @str.110, i64 0, i64 0))
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.111, i64 0, i64 0))
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.112, i64 0, i64 0))
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.113, i64 0, i64 0))
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.114, i64 0, i64 0))
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.115, i64 0, i64 0))
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.116, i64 0, i64 0))
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.117, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.118, i64 0, i64 0))
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.119, i64 0, i64 0))
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.120, i64 0, i64 0))
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.121, i64 0, i64 0))
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.122, i64 0, i64 0))
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.123, i64 0, i64 0))
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.124, i64 0, i64 0))
%42 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.125, i64 0, i64 0))
%43 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @str.126, i64 0, i64 0))
%44 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.127, i64 0, i64 0))
%45 = tail call i32 @putchar(i32 10)
%46 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.172, i64 0, i64 0))
%47 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.129, i64 0, i64 0))
%48 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.172, i64 0, i64 0))
%49 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @str.131, i64 0, i64 0))
%50 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.132, i64 0, i64 0))
%51 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @str.133, i64 0, i64 0))
%52 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.134, i64 0, i64 0))
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.135, i64 0, i64 0))
%54 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.136, i64 0, i64 0))
%55 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.137, i64 0, i64 0))
%56 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.138, i64 0, i64 0))
%57 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @str.139, i64 0, i64 0))
%58 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @str.140, i64 0, i64 0))
%59 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.141, i64 0, i64 0))
%60 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.142, i64 0, i64 0))
%61 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([84 x i8], [84 x i8]* @str.143, i64 0, i64 0))
%62 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.144, i64 0, i64 0))
%63 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.145, i64 0, i64 0))
%64 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.146, i64 0, i64 0))
%65 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([90 x i8], [90 x i8]* @str.147, i64 0, i64 0))
%66 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([84 x i8], [84 x i8]* @str.148, i64 0, i64 0))
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([93 x i8], [93 x i8]* @str.149, i64 0, i64 0))
%68 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.150, i64 0, i64 0))
%69 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.151, i64 0, i64 0))
%70 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @str.152, i64 0, i64 0))
%71 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.153, i64 0, i64 0))
%72 = tail call i32 @putchar(i32 10)
%73 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.66, i64 0, i64 0), i32 27)
%74 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.154, i64 0, i64 0))
%75 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i64 0, i64 0), i32 27)
%76 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @str.155, i64 0, i64 0))
%77 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.156, i64 0, i64 0))
%78 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.157, i64 0, i64 0))
%79 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.158, i64 0, i64 0))
%80 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.159, i64 0, i64 0))
%81 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @str.160, i64 0, i64 0))
%82 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.161, i64 0, i64 0))
%83 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.162, i64 0, i64 0))
%84 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.163, i64 0, i64 0))
%85 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.164, i64 0, i64 0))
%86 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.165, i64 0, i64 0))
%87 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.166, i64 0, i64 0))
%88 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.167, i64 0, i64 0))
%89 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.168, i64 0, i64 0))
%90 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.169, i64 0, i64 0))
%91 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.170, i64 0, i64 0))
%92 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.171, i64 0, i64 0))
%93 = tail call i32 @putchar(i32 10)
%94 = tail call i32 (...) @WaveformDiagram()
%95 = tail call i32 @putchar(i32 10)
%96 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.172, i64 0, i64 0))
ret void
}