<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
  <title>Linux Format forums</title>
  <link>http://www.linuxformat.com/forums/index.php</link>
  <description>Help, discussion, magazine feedback and more</description>
  <language>english</language>
  <copyright>(c) Copyright Fri May 24, 2013 8:41 am by Linux Format forums</copyright>
  <managingEditor>webmaster@linuxformat.com</managingEditor>
  <webMaster>webmaster@linuxformat.com</webMaster>
  <pubDate>Fri May 24, 2013 8:41 am</pubDate>
  <lastBuildDate>Fri May 24, 2013 8:41 am</lastBuildDate>
  <docs>http://backend.userland.com/rss</docs>
  <generator>phpBB2 RSS Syndication Mod by Lucas</generator>
  <ttl>1</ttl>

  <image>
    <title>Linux Format forums</title>
    <url></url>
    <link>http://www.linuxformat.com/forums/</link>
    <description>Help, discussion, magazine feedback and more</description>
  </image>

                                      <item>
                                        <title>OK, now the start of the audio scope...</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=111125#111125</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=58561'&gt;Bazza&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Thu May 02, 2013 7:32 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Found 2 bugs and 1 programming error, yup there are bugs... ;oO&lt;br /&gt;
The bugs are esoteric but the error is stupidity on my part... ;oD&lt;br /&gt;
&lt;br /&gt;
I suspect none have been found by yourselves who are trying this out however...&lt;br /&gt;
&lt;br /&gt;
Removed the bash RANDOM call and used /dev/urandom instead. It is _infinitely_ quicker for the DEMO capture mode...&lt;br /&gt;
&lt;br /&gt;
The first of the _internal_sync_ routines done.&lt;br /&gt;
Help file updated, etc, etc...&lt;br /&gt;
&lt;br /&gt;
From Command mode:-&lt;br /&gt;
&lt;br /&gt;
TRIG&amp;lt;CR&amp;gt;&lt;br /&gt;
SYNCEQ&amp;lt;CR&amp;gt;&lt;br /&gt;
Caps shift u or caps shift d to decide a sync point from 15 to 240. Then &amp;lt;CR&amp;gt;...&lt;br /&gt;
This starts the display from the value set.&lt;br /&gt;
Do all this again and the trace will start from another point with the value chosen...&lt;br /&gt;
If the value is not found then the trace runs from the start of the waveform.raw file at the FASTEST timebase speed...&lt;br /&gt;
&lt;br /&gt;
Working on negative going SYNCLT and positive going SYNCGT ATM...&lt;br /&gt;
&lt;br /&gt;
The code has now had extensive testing on an ACER Aspire One netbook using PCLinuxOS 2009 in DEMO and DSP modes also...&lt;br /&gt;
&lt;br /&gt;
Before running delete your existing /default/full/path/to/AudioScope.config file so that the&lt;br /&gt;
changes can take place correctly... Also manually change the zero_offset value to give a centre straight line with 0 input voltage. It is now -2 on my Macbook Pro machine...&lt;br /&gt;
&lt;br /&gt;
(Also uploaded to &lt;a href=&quot;http://www.unix.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.unix.com/&lt;/a&gt; )&lt;br /&gt;
&lt;br /&gt;
Feedback would be welcome, TIA...&lt;br /&gt;
&lt;br /&gt;
Enjoy...&lt;br /&gt;
&lt;br /&gt;
Bazza...&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# AudioScope.sh&lt;br /&gt;
#&lt;br /&gt;
# At this point I will include and say thank you to &amp;quot;Corona688&amp;quot;, a member of http&amp;#58;//www.unix.com for his input...&lt;br /&gt;
# Many thanks also go to the guys who have helped with this on http&amp;#58;//www.linuxformat.com for all your input too...&lt;br /&gt;
#&lt;br /&gt;
# Tested in SOX mode on this Macbook Pro 13 inch, OSX 10.7.5 with the SOX sinewave generator enabled.&lt;br /&gt;
# Tested in /dev/dsp mode on an aging HP notebook running Debian 6.0.x with the /dev/dsp sinewave generator enabled.&lt;br /&gt;
# Tested on both in DEMO mode.&lt;br /&gt;
#&lt;br /&gt;
# Added the first simple circuit at the end of this script.&lt;br /&gt;
#&lt;br /&gt;
# NOTE TO SELF&amp;#58;- Remove &amp;quot;/tmp&amp;quot; and replace with &amp;quot;~&amp;quot; when ready, AND, &amp;quot;/tmp&amp;quot; is automatically cleared on this machine per reboot.&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# FOR SOund eXchance USERS ONLY!!!&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TESTED!!!&lt;br /&gt;
# The lines below, from &amp;quot;&amp;gt;&amp;quot; to &amp;quot;xterm&amp;quot;, will generate a new shell script and execute it in a new xterm terminal...&lt;br /&gt;
# Just EDIT out the comments and then EDIT the line pointing to the correct &amp;lt;/full/path/to/sox/&amp;gt; to use it.&lt;br /&gt;
# It assumes that you have SoX installed. When this script is run it generates a 1KHz sinewave in a separate window&lt;br /&gt;
# that lasts for 8 seconds. Just press ENTER when this window is active and it will repeat again. To quit this script&lt;br /&gt;
# and close the window just press Ctrl-C. This generator will be needed for the calibration of some timebase ranges. &lt;br /&gt;
#&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#chmod 744 /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '#!/bin/bash\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;gt; /tmp/sinewave.raw\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'data=&amp;quot;\\\\x80\\\\x26\\\\x00\\\\x26\\\\x7F\\\\xD9\\\\xFF\\\\xD9&amp;quot;\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'for waveform in &amp;#123;0..8191&amp;#125;\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'do\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf &amp;quot;$data&amp;quot; &amp;gt;&amp;gt; /tmp/sinewave.raw\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'done\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'while true\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'do\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /full/path/to/sox/play -b 8 -r 8000 -e unsigned-integer /tmp/sinewave.raw\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read -p &amp;quot;Press ENTER to rerun OR Ctrl-C to quit&amp;#58;- &amp;quot; -e kbinput\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'done\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#sleep 1&lt;br /&gt;
#xterm -e /tmp/1KHz-Test.sh &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# FOR /dev/dsp USERS ONLY!!!&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TESTED!!!&lt;br /&gt;
# The lines below, from &amp;quot;&amp;gt;&amp;quot; to &amp;quot;xterm&amp;quot;, will generate a new shell script and execute it in a new xterm terminal...&lt;br /&gt;
# Just EDIT out the comments to use it.&lt;br /&gt;
# It assumes that you have /dev/dsp _installed_. When this script is run it generates a 1KHz sinewave in a separate window&lt;br /&gt;
# that lasts for 8 seconds. Just press ENTER when this window is active and it will repeat again. To quit this script&lt;br /&gt;
# and close the window just press Ctrl-C. This generator will be needed for the calibration of some timebase ranges. &lt;br /&gt;
#&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#chmod 744 /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '#!/bin/bash\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;gt; /tmp/sinewave.raw\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'data=&amp;quot;\\\\x80\\\\x26\\\\x00\\\\x26\\\\x7F\\\\xD9\\\\xFF\\\\xD9&amp;quot;\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'for waveform in &amp;#123;0..8191&amp;#125;\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'do\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf &amp;quot;$data&amp;quot; &amp;gt;&amp;gt; /tmp/sinewave.raw\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'done\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'while true\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'do\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cat /tmp/sinewave.raw &amp;gt; /dev/dsp\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf '&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read -p &amp;quot;Press ENTER to rerun OR Ctrl-C to quit&amp;#58;- &amp;quot; -e kbinput\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#printf 'done\n' &amp;gt;&amp;gt; /tmp/1KHz-Test.sh&lt;br /&gt;
#sleep 1&lt;br /&gt;
#xterm -e /tmp/1KHz-Test.sh &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Variables in use.&lt;br /&gt;
ifs_str=$IFS&lt;br /&gt;
version=&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\$VER&amp;#58; AudioScope.sh_Version_0.00.68_PD_B.Walker_G0LCU.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&lt;br /&gt;
setup=&amp;quot; Please wait while the very first scan and configuration file is generated. &amp;quot;&lt;br /&gt;
# Default first time run capture mode, 0 = DEMO.&lt;br /&gt;
demo=0&lt;br /&gt;
# Draw proceedure mode, 0 = OFF&lt;br /&gt;
drawline=0&lt;br /&gt;
# Pseudo-continuous data file saving.&lt;br /&gt;
savefile=&amp;quot;0000000000&amp;quot;&lt;br /&gt;
save_string=&amp;quot;OFF&amp;quot;&lt;br /&gt;
# &amp;quot;hold&amp;quot; and &amp;quot;status&amp;quot; will always be reset to &amp;quot;1&amp;quot; on program exit.&lt;br /&gt;
hold=1&lt;br /&gt;
status=1&lt;br /&gt;
# &amp;quot;count&amp;quot;, &amp;quot;number&amp;quot; and &amp;quot;char&amp;quot; are reusable variables...&lt;br /&gt;
count=0&lt;br /&gt;
number=0&lt;br /&gt;
char=&amp;quot;?&amp;quot;&lt;br /&gt;
# Vertical components...&lt;br /&gt;
# vert_one and vert_two are the vertical plotting points for the draw&amp;#40;&amp;#41; function...&lt;br /&gt;
vert_one=2&lt;br /&gt;
vert_two=2&lt;br /&gt;
vert=12&lt;br /&gt;
vert_shift=2&lt;br /&gt;
vshift=&amp;quot;?&amp;quot;&lt;br /&gt;
vert_array=&amp;quot;&amp;quot;&lt;br /&gt;
vert_draw=9&lt;br /&gt;
# Display setup...&lt;br /&gt;
graticule=&amp;quot;Public Domain, 2013, B.Walker, G0LCU.&amp;quot;&lt;br /&gt;
# Keyboard components...&lt;br /&gt;
kbinput=&amp;quot;?&amp;quot;&lt;br /&gt;
tbinput=1&lt;br /&gt;
# &amp;quot;str_len&amp;quot; is a reusable variable IF required...&lt;br /&gt;
str_len=1&lt;br /&gt;
# &amp;quot;grab&amp;quot; is used for internal pseudo-synchronisation...&lt;br /&gt;
grab=0&lt;br /&gt;
# &amp;quot;zero_offset&amp;quot; can only be manually changed in the AudioScope.config file, OR, here...&lt;br /&gt;
zero_offset=-2&lt;br /&gt;
# Horizontal components...&lt;br /&gt;
horiz=9&lt;br /&gt;
# Scan retraces...&lt;br /&gt;
scan=1&lt;br /&gt;
scanloops=1&lt;br /&gt;
# Timebase variable components...&lt;br /&gt;
subscript=0&lt;br /&gt;
# &amp;quot;scan_start&amp;quot; is from 0 to &amp;#40; length of file - 64 &amp;#41;...&lt;br /&gt;
scan_start=0&lt;br /&gt;
# &amp;quot;scan_jump&amp;quot; is from 1 to &amp;#40; &amp;#40; &amp;#40; scan_end - scan_start &amp;#41; / 64&amp;#41; + 1 &amp;#41;...&lt;br /&gt;
scan_jump=1&lt;br /&gt;
# &amp;quot;scan_end&amp;quot; is at least 64 bytes in from the absolute file end...&lt;br /&gt;
scan_end=47935&lt;br /&gt;
# Synchronisation variavles...&lt;br /&gt;
# synchronise switches the syncchroisation ON or OFF...&lt;br /&gt;
synchronise=&amp;quot;OFF&amp;quot;&lt;br /&gt;
# sync_point is any value between 15 and 240 of the REAL grab&amp;#40;s&amp;#41;...&lt;br /&gt;
sync_point=128&lt;br /&gt;
sync_input=&amp;quot;?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Add the program tilte to the Terminal title bar...&lt;br /&gt;
# This may NOT work in every Terminal so just comment it out if it doesn't.&lt;br /&gt;
printf &amp;quot;\x1B&amp;#93;0;Shell AudioScope.\x07&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Generate a config file and temporarily store inside /tmp&lt;br /&gt;
if &amp;#91; -f /tmp/AudioScope.config &amp;#93;&lt;br /&gt;
then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;. /tmp/AudioScope.config&lt;br /&gt;
else&lt;br /&gt;
&amp;nbsp; &amp;nbsp;user_config&lt;br /&gt;
fi&lt;br /&gt;
user_config&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;chmod 644 /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;demo=$demo\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;drawline=$drawline\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;hold=1\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;status=1\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;zero_offset=$zero_offset\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;scanloops=$scanloops\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;scan_start=$scan_start\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;scan_jump=$scan_jump\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;scan_end=$scan_end\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;vert_shift=$vert_shift\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;setup='$setup'\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;save_string='$save_string'\n&amp;quot; &amp;gt;&amp;gt; /tmp/AudioScope.config&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Screen display setup function.&lt;br /&gt;
display&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Set foregound and background graticule colours and foreground and background other window colours.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;36;44m&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;clear&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+-------+-------+-------+---&amp;#91;\x1B&amp;#91;0;37;44mDISPLAY\x1B&amp;#91;0;36;44m&amp;#93;---+-------+-------+--------+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+-------+-------+-------+-------+-------+-------+-------+--------+ &amp;lt;&amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp;0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+ &amp;lt;&amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+-------+-------+-------+-------+-------+-------+-------+--------+ &amp;lt;&amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+-------+-------+-------+-------+-------+-------+-------+--------+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot; \x1B&amp;#91;0;37;40m+-----------------------------&amp;#91;COMMAND&amp;nbsp; WINDOW&amp;#93;------------------------------+\x1B&amp;#91;0;37;44m \n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot; \x1B&amp;#91;0;37;40m| COMMAND&amp;#58;-&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |\x1B&amp;#91;0;37;44m \n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot; \x1B&amp;#91;0;37;40m+------------------------------&amp;#91;STATUS WINDOW&amp;#93;-------------------------------+\x1B&amp;#91;0;37;44m \n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot; \x1B&amp;#91;0;37;40m| Stopped...&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|\x1B&amp;#91;0;37;44m \n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot; \x1B&amp;#91;0;37;40m|$setup|\x1B&amp;#91;0;37;44m \n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;graticule=$graticule&amp;quot; \x1B&amp;#91;0;37;40m+----------------------------------------------------------------------------+\x1B&amp;#91;0;37;44m &amp;quot;&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;$graticule&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Set the colours for plotting.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;1;37;44m&amp;quot;&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Pick which method to capture, &amp;#40;and store&amp;#41;, the waveform on the fly.&lt;br /&gt;
waveform&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;gt; /tmp/waveform.raw&lt;br /&gt;
&amp;nbsp; &amp;nbsp;chmod 644 /tmp/waveform.raw&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Demo mode, generate 48000 bytes of random data.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 0 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Use &amp;quot;sleep&amp;quot; to simulate a 1 second burst.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# &amp;quot;/dev/urandom is now used instead of RANDOM as it is MUCH faster.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;dd if=/dev/urandom of=/tmp/waveform.raw bs=48000 count=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Using the aging&amp;#40;/old&amp;#41; /dev/dsp device, mono, 8 bits per sample and 8KHz sampling rate, 8000 unsigned-integer bytes of data...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Now tested on PCLinuxOS 2009 and Debian 6.0.x.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# This uses the oss-compat installation from your distro's repository...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;dd if=/dev/dsp of=/tmp/waveform.raw bs=8000 count=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# The main means of obtaining the unsigned-integer data, using SoX, &amp;#40;Sound eXcahnge&amp;#41; from http&amp;#58;//sox.sourceforge.net ...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Change the absolute address for your location of &amp;quot;sox&amp;quot;...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;/Users/barrywalker/Downloads/sox-14.4.0/sox -q -V0 -d -t raw -r 48000 -b 8 -c 1 -e unsigned-integer -&amp;gt; /tmp/waveform.raw trim 0 00&amp;#58;01&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Plot the points inside the window...&lt;br /&gt;
plot&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;subscript=$scan_start&lt;br /&gt;
&amp;nbsp; &amp;nbsp;vert_array=&amp;quot;&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;for horiz in &amp;#123;9..72&amp;#125;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert=`hexdump -n1 -s$subscript -v -e '1/1 &amp;quot;%u&amp;quot;' /tmp/waveform.raw`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Add a small offset to give a straight line with zero input allowing for mid-point sound card bit error.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert=$&amp;#91; &amp;#40; $vert + $zero_offset &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert -le 0 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert -ge 255 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert=255&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Pseudo-vertical shift of + or - 1 vertical division maximum.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert=$&amp;#91; &amp;#40; &amp;#40; $vert / 16 &amp;#41; + $vert_shift &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Ensure the plot is NOT out of bounds after moving the shift position.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert -le 2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert=2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert -ge 17 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert=17&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;subscript=$&amp;#91; &amp;#40; $subscript + $scan_jump &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Generate a smple space delimited 64 sample array.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_array=&amp;quot;$vert_array$vert &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;1;37;44m\x1B&amp;#91;&amp;quot;$vert&amp;quot;;&amp;quot;$horiz&amp;quot;f*&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Set end of plot to COMMAND window.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# This function connects up the plotted points.&lt;br /&gt;
# Defaults to OFF on the very first time run.&lt;br /&gt;
draw&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;IFS=&amp;quot; &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;subscript=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;number=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;vert_one=2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;vert_two=2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;vert_draw=&amp;#40; $vert_array &amp;#41;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;for horiz in &amp;#123;9..71&amp;#125;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Obtain the two vertical components.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_one=$&amp;#123;vert_draw&amp;#91; $subscript &amp;#93;&amp;#125;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;subscript=$&amp;#91; &amp;#40; $subscript + 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_two=$&amp;#123;vert_draw&amp;#91; $subscript &amp;#93;&amp;#125;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Now subtract them and obtain an absolute value - ALWAYS 0 to positive...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;number=$&amp;#91; &amp;#40; $vert_two - $vert_one &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;number=$&amp;#123;number#-&amp;#125;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# This decision section _is_ needed.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $number -le 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#58; # NOP. Do nothing...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# This section does the drawing...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $number -ge 2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert_one -gt $vert_two &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_one=$&amp;#91; &amp;#40; $vert_one - 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while &amp;#91; $vert_one -gt $vert_two &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;1;37;44m\x1B&amp;#91;&amp;quot;$vert_one&amp;quot;;&amp;quot;$horiz&amp;quot;f*&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_one=$&amp;#91; $vert_one - 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert_two -gt $vert_one &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_one=$&amp;#91; &amp;#40; $vert_one + 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while &amp;#91; $vert_one -lt $vert_two &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;1;37;44m\x1B&amp;#91;&amp;quot;$vert_one&amp;quot;;&amp;quot;$horiz&amp;quot;f*&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_one=$&amp;#91; $vert_one + 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;IFS=$ifs_str&lt;br /&gt;
&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Set end of plot to COMMAND window.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# This is the information line _parser_...&lt;br /&gt;
statusline&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;22;3f&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \x1B&amp;#91;22;4f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $status -eq 0 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Stopped...&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $status -eq 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Running $scan of $scanloops scans...&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $status -eq 2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Running in single shot storage mode...&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $status -eq 3 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Drawing the scan...&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $status -eq 4 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Synchroniastion set to $sync_point$synchronise...&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $status -eq 5 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;CAUTION, AUTO-SAVING FACILITY ENABLED!!!&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; $status -eq 254 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setup=$version&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;23;3f$setup&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Set end of plot to COMMAND window.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# All keyboard commands appear here when the scanning stops; there will be lots of them to make subtle changes...&lt;br /&gt;
kbcommands&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;IFS=$ifs_str&lt;br /&gt;
&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;scan=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;read -p &amp;quot;Press &amp;lt;CR&amp;gt; to &amp;#40;re&amp;#41;run, HELP or QUIT&amp;lt;CR&amp;gt; &amp;quot; -e kbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Rerun scans captured or stored.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Run scans in captured mode only.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;RUN&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Swtich off capture mode and rerun one storage shot only, this disables the DRAW command.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Use DRAW to re-enable again. This is deliberate for slow machines...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;HOLD&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;drawline=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Quit the program.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;QUIT&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=255&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Display the _online_ HELP file in default terminal colours.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;HELP&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;commandhelp&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Enable DEMO pseudo-capture mode, default, but with 10 sweeps...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;DEMO&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=10&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_end=47935&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;demo=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Enable /dev/dsp capture mode, if your Linux flavour does NOT have it, install oss-compat from the distro's repository.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# This is the mode used to test on Debian 6.0.x and now PCLinuxOS 2009...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;DSP&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_end=7935&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;demo=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Eable SOX capture mode, this code is designed around this application on a Macbook Pro 13 inch OSX 10.7.5...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;SOX&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_end=47935&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;demo=2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# The next three commands set the timebase scans; 1, 10 or 100 before COMMAND mode is re-enabled and can be used.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;ONE&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;TEN&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=10&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;HUNDRED&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=100&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;VER&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=254&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ************ Horizontal components. *************&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ************ User timebase section. *************&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Written longhand for kids to understand.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;TBVAR&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Ensure capture mode is turned off.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# RUN&amp;lt;CR&amp;gt; will re-enable it if required.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;read -p &amp;quot;Set timebase starting point. From 0 to $scan_end&amp;lt;CR&amp;gt; &amp;quot; -e tbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Ensure the timebase values are set to default before changing.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Eliminate any keyboard error longhand...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Ensure a NULL string does NOT exist.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$tbinput&amp;quot; == &amp;quot;&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;tbinput=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Find the length of the inputted string.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;str_len=`printf &amp;quot;$&amp;#123;#tbinput&amp;#125;&amp;quot;`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Set the string to the correct last position for the _subscript_ point.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;str_len=$&amp;#91; &amp;#40; $str_len - 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Now check for continuous numerical charaters ONLY.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;for count in $&amp;#40; seq 0 $str_len &amp;#41;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Reuse variable _number_ to obtain each character per loop.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;number=`printf &amp;quot;$&amp;#123;tbinput&amp;#58;$count&amp;#58;1&amp;#125;&amp;quot;`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Now convert the character to a decimal number.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;number=`printf &amp;quot;%d&amp;quot; \'$number`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# IF ANY ASCII character exists that is not numerical then reset the scan start point.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $number -le 47 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;tbinput=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $number -ge 58 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;tbinput=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# If all is OK pass the &amp;quot;tbinput&amp;quot; value into the &amp;quot;scan_start&amp;quot; variable.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=$tbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Do a final check that the number is not out of bounds.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $scan_start -le 0 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $scan_start -ge $scan_end &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=$scan_end&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Use exactly the same method as above to determine the jump interval.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Now set the jump interval, this is the scan speed...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;read -p &amp;quot;Set timebase user speed. From 1 to $&amp;#91; &amp;#40; &amp;#40; &amp;#40; &amp;#40; $scan_end - $scan_start &amp;#41; / 64 &amp;#41; + 1 &amp;#41; &amp;#41; &amp;#93;&amp;lt;CR&amp;gt; &amp;quot; -e tbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Eliminate any keyboard error longhand...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Ensure a NULL string does NOT exist.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$tbinput&amp;quot; == &amp;quot;&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;tbinput=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Find the length of the inputted string.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;str_len=`printf &amp;quot;$&amp;#123;#tbinput&amp;#125;&amp;quot;`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Set the string to the correct last position for the _subscript_ point.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;str_len=$&amp;#91; &amp;#40; $str_len - 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Now check for continuous numerical charaters ONLY.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;for count in $&amp;#40; seq 0 $str_len &amp;#41;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Reuse variable _number_ to obtain each character per loop.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;number=`printf &amp;quot;$&amp;#123;tbinput&amp;#58;$count&amp;#58;1&amp;#125;&amp;quot;`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Now convert the character to a decimal number.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;number=`printf &amp;quot;%d&amp;quot; \'$number`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# IF ANY ASCII character exists that is not numerical then reset the scan jump value.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $number -le 47 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;tbinput=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $number -ge 58 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;tbinput=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# If all is OK pass the &amp;quot;tbinput&amp;quot; value into the &amp;quot;scan_jump&amp;quot; variable.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=$tbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Do a final check that the number is not out of bounds.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $scan_jump -le 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Reuse number for upper limit...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;number=$&amp;#91; &amp;#40; &amp;#40; &amp;#40; $scan_end - $scan_start &amp;#41; / 64 &amp;#41; + 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $scan_jump -ge $number &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=$number&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;22;4fScan start at offset $scan_start, with a jump rate of $scan_jump.&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setup=&amp;quot; Uncalibrated horizontal scan, vertical and storage modes, AC coupled only. &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ********** User timebase section end. ***********&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ********* Calibrated timebase section. **********&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;FASTEST&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setup=&amp;quot; Uncalibrated horizontal scan, vertical and storage modes, AC coupled only. &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;1mS&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setup=&amp;quot; 1mS/DIV, uncalibrated vertical and storage modes, AC coupled only.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 0 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=6&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=6&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;10mS&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setup=&amp;quot; 10mS/DIV, uncalibrated vertical and storage modes, AC coupled only.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 0 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=60&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=10&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=60&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;100mS&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setup=&amp;quot; 100mS/DIV, uncalibrated vertical and storage modes, AC coupled only.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 0 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=600&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=100&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $demo -eq 2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=600&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# *********** Calibrated timebase end. ************&lt;br /&gt;
&amp;nbsp; &amp;nbsp;#&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ************* Vertical components. **************&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ******** Pseudo-vertical shift control. *********&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;SHIFT&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while true&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# This input method is something akin to BASIC's INKEY$...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;read -p &amp;quot;Vertical shift&amp;#58;- U for up 1, D for down 1, &amp;lt;CR&amp;gt; to RETURN&amp;#58;- &amp;quot; -n 1 -s vshift&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$vshift&amp;quot; == &amp;quot;&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$vshift&amp;quot; == &amp;quot;D&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_shift=$&amp;#91; &amp;#40; $vert_shift + 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$vshift&amp;quot; == &amp;quot;U&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_shift=$&amp;#91; &amp;#40; $vert_shift - 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Ensure the shift psoition is NOT out of bounds.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert_shift -ge 6 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_shift=6&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $vert_shift -le -2 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vert_shift=-2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;23;3f Vertical shift is $&amp;#91; &amp;#40; 2 - $vert_shift &amp;#41; &amp;#93; from the mid-point position...&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ****** Pseudo-vertical shift control end. *******&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ********** Connect all plotted points. **********&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;DRAW&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;drawline=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=3&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ************* Connected plots done. *************&lt;br /&gt;
&amp;nbsp; &amp;nbsp;#&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# **** PSEUDO synchronisation and ptriggering. ****&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;TRIG&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;synchronise=&amp;quot; and OFF&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sync_point=128&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hold=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=$&amp;#91; &amp;#40; $scan_start + 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_jump=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scanloops=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;subscript=$scan_start&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;grab=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $scan_start -ge $scan_end &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;read -p &amp;quot;Set trigger type, &amp;lt;CR&amp;gt; to disable&amp;#58;- &amp;quot; -e kbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;SYNCEQ&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;synchronise=&amp;quot;, ON and fixed&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;trigger&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;for subscript in $&amp;#40; seq $scan_start $scan_end &amp;#41;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;grab=`hexdump -n1 -s$subscript -v -e '1/1 &amp;quot;%u&amp;quot;' /tmp/waveform.raw`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $grab -eq $sync_point &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;scan_start=$subscript&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;SYNCGT&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;synchronise=&amp;quot;, ON and positive going&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;trigger&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#58; # NOP... Place holder only.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;SYNCLT&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;synchronise=&amp;quot;, ON and negative going&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;trigger&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#58; # NOP... Place holder only...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;EXT&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Remember Corona688's code from the early stages of this thread...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;synchronise=&amp;quot;, EXTERNAL and waiting&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#58; # NOP... Place holder only,&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=4&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ** PSEUDO synchronisation and triggering end. ***&lt;br /&gt;
&amp;nbsp; &amp;nbsp;#&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# ************* Auto-saving facility. *************&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;SAVEON&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=5&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;save_string=&amp;quot;ON&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sleep 2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$kbinput&amp;quot; == &amp;quot;SAVEOFF&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;status=1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;save_string=&amp;quot;OFF&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# *********** Auto-saving facility end. ***********&lt;br /&gt;
&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Help clears the screen to the startup defaults and prints command line help...&lt;br /&gt;
commandhelp&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;status=2&lt;br /&gt;
&amp;nbsp; &amp;nbsp;hold=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0m&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;clear&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;CURRENT COMMANDS AVAILABLE&amp;#58;-\n\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;&amp;lt;CR&amp;gt; ................................................. Reruns the scan&amp;#40;s&amp;#41; again.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;RUN&amp;lt;CR&amp;gt; ......................... Reruns the scan&amp;#40;s&amp;#41;, always with real captures.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;QUIT&amp;lt;CR&amp;gt; .................................................... Quits the program.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;HELP&amp;lt;CR&amp;gt; ................................................ This help as required.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;HOLD&amp;lt;CR&amp;gt; ........................................ Switch to pseudo-storage mode.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;DEMO&amp;lt;CR&amp;gt; .......... Switch capture to default DEMO mode and 10 continuous scans.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;DSP&amp;lt;CR&amp;gt; ...................... Switch capture to Linux /dev/dsp mode and 1 scan.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;SOX&amp;lt;CR&amp;gt; ....... Switch capture to multi-platform SOund eXchange mode and 1 scan.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;ONE&amp;lt;CR&amp;gt; ......................................... Sets the number of scans to 1.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;TEN&amp;lt;CR&amp;gt; ........................................ Sets the number of scans to 10.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;HUNDRED&amp;lt;CR&amp;gt; ............. Sets the number of scans to 100, &amp;#40;not very practical&amp;#41;.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;VER&amp;lt;CR&amp;gt; .................. Displays the version number inside the status window.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;TBVAR&amp;lt;CR&amp;gt; ............ Set up uncalibrated user timebase offset and jump points.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SubCommands&amp;#58; ............................. Follow the on screen prompts.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;FASTEST&amp;lt;CR&amp;gt; .................. Set all modes to the fastest possible scan speed.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;1mS&amp;lt;CR&amp;gt; .......................................... Set scanning rate to 1mS/DIV.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;10mS&amp;lt;CR&amp;gt; ........................................ Set scanning rate to 10mS/DIV.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;100mS&amp;lt;CR&amp;gt; ...................................... Set scanning rate to 100mS/DIV.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;SHIFT&amp;lt;CR&amp;gt; ............ Set the vertical position from -4 to +4 to the mid-point.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SubCommands&amp;#58; ............ Press U or D then &amp;lt;CR&amp;gt; when value is obtained.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;read -p &amp;quot;Press &amp;lt;CR&amp;gt; to continue&amp;#58;- &amp;quot; -e kbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;clear&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;CURRENT COMMANDS AVAILABLE&amp;#58;-\n\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;DRAW&amp;lt;CR&amp;gt; .......... Connect up each vertical plot to give a fully lined display.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;TRIG&amp;lt;CR&amp;gt; ........... Sets the synchronisation methods for storage mode retraces.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SubCommand&amp;#58; SYNCEQ ........ Set the internal SYNC to a fixed value only.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SubCommand&amp;#58; SYNCGT ......................................... Unfinished.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SubCommand&amp;#58; SYNCLT ......................................... Unfinished.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SubCommand&amp;#58; EXT ............................................ Unfinished.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;SAVEON&amp;lt;CR&amp;gt; .................... Auto-saves EVERY scan with a numerical filename.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;SAVEOFF&amp;lt;CR&amp;gt; ....................................... Disables auto-save facility.\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;Manual here&amp;#58; &amp;lt;&amp;nbsp; http&amp;#58;//wisecracker.host22.com/public/AudioScope_Manual.readme&amp;nbsp; &amp;gt;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;read -p &amp;quot;Press &amp;lt;CR&amp;gt; to continue&amp;#58;- &amp;quot; -e kbinput&lt;br /&gt;
&amp;nbsp; &amp;nbsp;display&lt;br /&gt;
&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# This is the active part of the pseudo-synchroisation section.&lt;br /&gt;
trigger&amp;#40;&amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;while true&lt;br /&gt;
&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# This input method is something akin to BASIC's INKEY$...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;read -p &amp;quot;Sync point&amp;#58;- U for up 1, D for down 1, &amp;lt;CR&amp;gt; to RETURN&amp;#58;- &amp;quot; -n 1 -s sync_input&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\x1B&amp;#91;0;37;40m\x1B&amp;#91;20;14f&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$sync_input&amp;quot; == &amp;quot;&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$sync_input&amp;quot; == &amp;quot;U&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sync_point=$&amp;#91; &amp;#40; $sync_point + 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$sync_input&amp;quot; == &amp;quot;D&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sync_point=$&amp;#91; &amp;#40; $sync_point - 1 &amp;#41; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# Ensure the synchronisation point is NOT out of bounds.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $sync_point -ge 240 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sync_point=240&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $sync_point -le 15 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;sync_point=15&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;23;3f Synchronisation point set to $sync_point...&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;#125;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Do an initial screen set up...&lt;br /&gt;
display&lt;br /&gt;
statusline&lt;br /&gt;
setup=$version&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# This is the main loop...&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;for scan in $&amp;#40; seq 1 $scanloops &amp;#41;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;# &amp;quot;hold&amp;quot; determines a new captured scan or retrace of an existing scan...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $hold -eq 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;waveform&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;display&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;plot&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; $drawline -eq 1 &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;draw&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$save_string&amp;quot; == &amp;quot;ON&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;savefile=`date +%s`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;cp /tmp/waveform.raw /tmp/$savefile&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;done&lt;br /&gt;
&amp;nbsp; &amp;nbsp;status=0&lt;br /&gt;
&amp;nbsp; &amp;nbsp;statusline&lt;br /&gt;
&amp;nbsp; &amp;nbsp;kbcommands&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# Getout, autosave AudioScope.config, cleanup and quit...&lt;br /&gt;
if &amp;#91; $status -eq 255 &amp;#93;&lt;br /&gt;
then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Save the user configuration file.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;user_config&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Remove &amp;quot;Shell AudioScope&amp;quot; from the title bar.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#93;0;\x07&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;sleep 0.1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Reset back to normal...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;\x1B&amp;#91;0m&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;clear&lt;br /&gt;
&amp;nbsp; &amp;nbsp;reset&lt;br /&gt;
fi&lt;br /&gt;
printf &amp;quot;\nProgram terminated...\n\nTerminal reset back to startup defaults...\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# #########################################################&lt;br /&gt;
# The FIRST extremely simple construction part.&lt;br /&gt;
# Photos will be upload somewhere very soon...&lt;br /&gt;
# This is a simple I/O board for testing for the Macbook Pro 13 inch...&lt;br /&gt;
# It is just as easy to replace the 4 pole 3.5mm Jack Plug with 2 x 3.5mm Stereo Jack&lt;br /&gt;
# Plugs for machines with separate I/O sockets.&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Orange.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;White flylead.&lt;br /&gt;
# Tip -----&amp;gt;&amp;nbsp; O&amp;nbsp; &amp;lt;------------------------------------+---------O &amp;lt;----------+--------+&lt;br /&gt;
# Ring 1 --&amp;gt;&amp;nbsp; H&amp;nbsp; &amp;lt;-------------------------+-----------&amp;#41;--------O &amp;lt;- Blue.&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
# Ring 2 --&amp;gt;&amp;nbsp; H&amp;nbsp; &amp;lt;--------------+-----+-----&amp;#41;----------&amp;#41;--------O &amp;lt;- Yellow. |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
# _Gnd_ ---&amp;gt;&amp;nbsp; H&amp;nbsp; &amp;lt;----+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; C1 | +&amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;O &amp;lt;- Green.&amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+===+&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\&amp;nbsp; &amp;nbsp;=====&amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp;--+--&amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P1 |&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; R1 /&amp;nbsp; &amp;nbsp; &amp;nbsp;| R2 /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;R3 /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;R4 /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \ /&amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;H&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ~~~&amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+---------+------&amp;#41;---+----------+---------+------------+&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
# Pseudo-Ground. -&amp;gt; __|__&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;br /&gt;
#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/////&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+-----------------------------------------------+&lt;br /&gt;
# P1 ......... 3.5mm, 4 pole jack plug.&lt;br /&gt;
# R1 ......... 2K2, 1/8W, 5% tolerence resistor.&lt;br /&gt;
# R2, R3 ..... 33R, 1/8W, 5% tolerence resistor.&lt;br /&gt;
# R4 ......... 1M, 1/8W, 5% tolerence resistor.&lt;br /&gt;
# C1 ......... 47uF, 16V electrolytic.&lt;br /&gt;
# 4 way terminal block.&lt;br /&gt;
# Stripboard, &amp;#40;Verobaord&amp;#41;, as required.&lt;br /&gt;
# Green, yellow, orange, blue and white wire as required.&lt;br /&gt;
# Small cable ties, optional.&lt;br /&gt;
# Stick on cable clip, optional.&lt;br /&gt;
# Crimp terminal, 1 off, optional.&lt;br /&gt;
# #########################################################&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=111125#111125</comments>
                                        <author>Bazza</author>
                                        <pubDate>Thu May 02, 2013 7:32 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=111125#111125</guid>
                                      </item>
                                      <item>
                                        <title>Log what is being written to swap</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110999#110999</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=1620'&gt;serene&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Fri Apr 19, 2013 3:01 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Will follow up, thanks.&lt;br /&gt;
&lt;br /&gt;
Cheers&lt;br /&gt;
&lt;br /&gt;
Serene&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[SOLVED]</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110999#110999</comments>
                                        <author>serene</author>
                                        <pubDate>Fri Apr 19, 2013 3:01 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110999#110999</guid>
                                      </item>
                                      <item>
                                        <title>Bash One Liner INKEY$ Function...</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110755#110755</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=58561'&gt;Bazza&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Tue Mar 26, 2013 12:55 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      This a simple one liner code snippet is a function that immitates the BASIC:-&lt;br /&gt;
&lt;br /&gt;
LET char$=INKEY$&lt;br /&gt;
&lt;br /&gt;
For bash scripts...&lt;br /&gt;
&lt;br /&gt;
Just read the code for more info'.&lt;br /&gt;
&lt;br /&gt;
Bazza...&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# An INKEY$ function for bash!&lt;br /&gt;
inkey&amp;#40;&amp;#41; &amp;#123; char=&amp;quot;&amp;quot; ; read -p &amp;quot;&amp;quot; -n1 -s -t1 char ; &amp;#125;&lt;br /&gt;
# Similar to BASIC's LET char$=INKEY$&lt;br /&gt;
&lt;br /&gt;
# Do you remember INKEY$ in BASIC programming?&lt;br /&gt;
# Example&amp;#58;-&lt;br /&gt;
#&lt;br /&gt;
# PRINT &amp;quot;Some prompt&amp;#58;- &amp;quot;&lt;br /&gt;
# some_label&amp;#58;&lt;br /&gt;
# LET char$=INKEY$&lt;br /&gt;
# IF char$=&amp;quot;&amp;lt;some_character&amp;gt;&amp;quot; THEN &amp;lt;do_something&amp;gt;&lt;br /&gt;
# IF char$=&amp;quot;&amp;quot; THEN &amp;lt;do_something_else&amp;gt;&lt;br /&gt;
# GOTO some_label&lt;br /&gt;
&lt;br /&gt;
# This is just a test piece only...&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;Some prompt&amp;#58;- &amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# This is LET char$=INKEY$...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;inkey&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;Key pressed&amp;#58;- '$char'...\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$char&amp;quot; == &amp;quot;q&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Quitting... \n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;break&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$char&amp;quot; == &amp;quot;&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Timeout works OK...\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if &amp;#91; &amp;quot;$char&amp;quot; == &amp;quot;b&amp;quot; &amp;#93;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;then&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;printf &amp;quot;Barry Walker...\n&amp;quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fi&lt;br /&gt;
done&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110755#110755</comments>
                                        <author>Bazza</author>
                                        <pubDate>Tue Mar 26, 2013 12:55 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110755#110755</guid>
                                      </item>
                                      <item>
                                        <title>Shell script problem...</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110680#110680</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=58561'&gt;Bazza&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Sat Mar 16, 2013 12:27 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Hi jh...&lt;br /&gt;
&lt;br /&gt;
No need to worry sussed it... ;o)&lt;br /&gt;
&lt;br /&gt;
See other upload...</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110680#110680</comments>
                                        <author>Bazza</author>
                                        <pubDate>Sat Mar 16, 2013 12:27 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110680#110680</guid>
                                      </item>
                                      <item>
                                        <title>A crude 1KHz sinewave generator using bash...</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110659#110659</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=58561'&gt;Bazza&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Tue Mar 12, 2013 1:37 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      A very simple crude sinewave generator.&lt;br /&gt;
&lt;br /&gt;
The file required is generated inside the code, is linear interpolated and requires /dev/audio to work. Ensure you have this device, if not the download oss-compat from your OS's repository...&lt;br /&gt;
&lt;br /&gt;
It lasts for about 8 seconds before exiting and saves a 65536 byte file to your working directory/drawer/folder as sinewave.raw. Use an oscilloscope to check the waveform generated...&lt;br /&gt;
&lt;br /&gt;
This will be the test waveform soon for the AudioScope when the timebase of the scope is finished...&lt;br /&gt;
&lt;br /&gt;
It is entirely Public Domain and you may do with it as you please...&lt;br /&gt;
&lt;br /&gt;
Bazza, G0LCU...&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# 1KHz.sh&lt;br /&gt;
#&lt;br /&gt;
# A very simple DEMO crude sinewave generator using the device /dev/audio.&lt;br /&gt;
# It is an eight second burst and generates an approximation of a pure sinewave using linear interpolation.&lt;br /&gt;
# The &amp;quot;sinewave.raw&amp;quot; file length is 65536 bytes in size...&lt;br /&gt;
&lt;br /&gt;
# Zero the raw file...&lt;br /&gt;
&amp;gt; sinewave.raw&lt;br /&gt;
&lt;br /&gt;
# This is the b byte data list for the crude sinewave.&lt;br /&gt;
data=&amp;quot;\\x0f\\x2d\\x3f\\x2d\\x0f\\x03\\x00\\x03&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Generate the file as an eight second burst...&lt;br /&gt;
for waveform in &amp;#123;0..8191&amp;#125;&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf &amp;quot;$data&amp;quot; &amp;gt;&amp;gt; sinewave.raw&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Now play back a single run of the raw data for about eight seconds.&lt;br /&gt;
cat sinewave.raw &amp;gt; /dev/audio&lt;br /&gt;
&lt;br /&gt;
# End of 1KHz.sh DEMO...&lt;br /&gt;
# Enjoy finding simple solutions to often very simple problems... ;o&amp;#41;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110659#110659</comments>
                                        <author>Bazza</author>
                                        <pubDate>Tue Mar 12, 2013 1:37 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110659#110659</guid>
                                      </item>
                                      <item>
                                        <title>If and Grep</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110631#110631</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=8021'&gt;thusgaard&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Wed Mar 06, 2013 12:52 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      This last bit works like a charm.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;MartyBartfast wrote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;&lt;br /&gt;
you could probably achieve the same result with&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;&lt;br /&gt;
exiftool *.jpg | egrep &amp;quot;File Name|GPS L&amp;quot; | egrep -B1 &amp;quot;GPS L&amp;quot; &amp;gt; test.txt&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And just for the interested I'll post a full EXIF log of a picture with no GPS info:&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;ExifTool Version Number&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 8.60&lt;br /&gt;
File Name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; noEXIFtest.jpg&lt;br /&gt;
Directory&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; .&lt;br /&gt;
File Size&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 176 kB&lt;br /&gt;
File Modification Date/Time&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 2013&amp;#58;01&amp;#58;26 21&amp;#58;55&amp;#58;42+01&amp;#58;00&lt;br /&gt;
File Permissions&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; rw-rw-r--&lt;br /&gt;
File Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; JPEG&lt;br /&gt;
MIME Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; image/jpeg&lt;br /&gt;
JFIF Version&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 1.01&lt;br /&gt;
Exif Byte Order&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Big-endian &amp;#40;Motorola, MM&amp;#41;&lt;br /&gt;
Make&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Canon&lt;br /&gt;
Camera Model Name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Canon IXUS 1100 HS&lt;br /&gt;
X Resolution&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 240&lt;br /&gt;
Y Resolution&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 240&lt;br /&gt;
Resolution Unit&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; inches&lt;br /&gt;
Software&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Paint.NET v3.5.10&lt;br /&gt;
Modify Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 2012&amp;#58;03&amp;#58;02 08&amp;#58;32&amp;#58;06&lt;br /&gt;
Exposure Time&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 1/500&lt;br /&gt;
F Number&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 4.5&lt;br /&gt;
ISO&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 200&lt;br /&gt;
Exif Version&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 0230&lt;br /&gt;
Date/Time Original&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 2012&amp;#58;02&amp;#58;27 13&amp;#58;25&amp;#58;08&lt;br /&gt;
Create Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 2012&amp;#58;02&amp;#58;27 13&amp;#58;25&amp;#58;08&lt;br /&gt;
Shutter Speed Value&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 1/500&lt;br /&gt;
Aperture Value&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 4.5&lt;br /&gt;
Exposure Compensation&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0&lt;br /&gt;
Max Aperture Value&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 4.5&lt;br /&gt;
Subject Distance&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 64.4 m&lt;br /&gt;
Metering Mode&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Multi-segment&lt;br /&gt;
Flash&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Off, Did not fire&lt;br /&gt;
Focal Length&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 12.7 mm&lt;br /&gt;
Exif Image Width&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 3000&lt;br /&gt;
Exif Image Height&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 4000&lt;br /&gt;
Focal Plane X Resolution&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 16393.44262&lt;br /&gt;
Focal Plane Y Resolution&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 16393.44262&lt;br /&gt;
Focal Plane Resolution Unit&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; inches&lt;br /&gt;
Sensing Method&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; One-chip color area&lt;br /&gt;
File Source&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Digital Camera&lt;br /&gt;
Custom Rendered&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Normal&lt;br /&gt;
Exposure Mode&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Auto&lt;br /&gt;
White Balance&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Auto&lt;br /&gt;
Digital Zoom Ratio&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 1&lt;br /&gt;
Scene Capture Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Standard&lt;br /&gt;
Sensitivity Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Standard Output Sensitivity and Recommended Exposure Index&lt;br /&gt;
Lens Info&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 5-60mm f/?&lt;br /&gt;
Lens Model&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 5.0-60.0 mm&lt;br /&gt;
Profile CMM Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Lino&lt;br /&gt;
Profile Version&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 2.1.0&lt;br /&gt;
Profile Class&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Display Device Profile&lt;br /&gt;
Color Space Data&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; RGB&lt;br /&gt;
Profile Connection Space&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; XYZ&lt;br /&gt;
Profile Date Time&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 1998&amp;#58;02&amp;#58;09 06&amp;#58;49&amp;#58;00&lt;br /&gt;
Profile File Signature&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; acsp&lt;br /&gt;
Primary Platform&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Microsoft Corporation&lt;br /&gt;
CMM Flags&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Not Embedded, Independent&lt;br /&gt;
Device Manufacturer&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; IEC&lt;br /&gt;
Device Model&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; sRGB&lt;br /&gt;
Device Attributes&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Reflective, Glossy, Positive, Color&lt;br /&gt;
Rendering Intent&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Media-Relative Colorimetric&lt;br /&gt;
Connection Space Illuminant&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0.9642 1 0.82491&lt;br /&gt;
Profile Creator&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; HP&lt;br /&gt;
Profile ID&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 0&lt;br /&gt;
Profile Copyright&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Copyright &amp;#40;c&amp;#41; 1998 Hewlett-Packard Company&lt;br /&gt;
Profile Description&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; sRGB IEC61966-2.1&lt;br /&gt;
Media White Point&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0.95045 1 1.08905&lt;br /&gt;
Media Black Point&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0 0 0&lt;br /&gt;
Red Matrix Column&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0.43607 0.22249 0.01392&lt;br /&gt;
Green Matrix Column&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0.38515 0.71687 0.09708&lt;br /&gt;
Blue Matrix Column&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 0.14307 0.06061 0.7141&lt;br /&gt;
Device Mfg Desc&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; IEC http&amp;#58;//www.iec.ch&lt;br /&gt;
Device Model Desc&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; IEC 61966-2.1 Default RGB colour space - sRGB&lt;br /&gt;
Viewing Cond Desc&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; Reference Viewing Condition in IEC61966-2.1&lt;br /&gt;
Viewing Cond Illuminant&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 19.6445 20.3718 16.8089&lt;br /&gt;
Viewing Cond Surround&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 3.92889 4.07439 3.36179&lt;br /&gt;
Viewing Cond Illuminant Type&amp;nbsp; &amp;nbsp; &amp;#58; D50&lt;br /&gt;
Luminance&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 76.03647 80 87.12462&lt;br /&gt;
Measurement Observer&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; CIE 1931&lt;br /&gt;
Measurement Backing&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0 0 0&lt;br /&gt;
Measurement Geometry&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Unknown &amp;#40;0&amp;#41;&lt;br /&gt;
Measurement Flare&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0.999%&lt;br /&gt;
Measurement Illuminant&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; D65&lt;br /&gt;
Technology&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Cathode Ray Tube Display&lt;br /&gt;
Red Tone Reproduction Curve&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; &amp;#40;Binary data 2060 bytes, use -b option to extract&amp;#41;&lt;br /&gt;
Green Tone Reproduction Curve&amp;nbsp; &amp;nbsp;&amp;#58; &amp;#40;Binary data 2060 bytes, use -b option to extract&amp;#41;&lt;br /&gt;
Blue Tone Reproduction Curve&amp;nbsp; &amp;nbsp; &amp;#58; &amp;#40;Binary data 2060 bytes, use -b option to extract&amp;#41;&lt;br /&gt;
Image Width&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 600&lt;br /&gt;
Image Height&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 800&lt;br /&gt;
Encoding Process&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; Baseline DCT, Huffman coding&lt;br /&gt;
Bits Per Sample&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 8&lt;br /&gt;
Color Components&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 3&lt;br /&gt;
Y Cb Cr Sub Sampling&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; YCbCr4&amp;#58;2&amp;#58;0 &amp;#40;2 2&amp;#41;&lt;br /&gt;
Aperture&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 4.5&lt;br /&gt;
Image Size&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 600x800&lt;br /&gt;
Scale Factor To 35 mm Equivalent&amp;#58; 5.6&lt;br /&gt;
Shutter Speed&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 1/500&lt;br /&gt;
Circle Of Confusion&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 0.005 mm&lt;br /&gt;
Depth Of Field&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; inf &amp;#40;6.07 m - inf&amp;#41;&lt;br /&gt;
Field Of View&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 28.4 deg&lt;br /&gt;
Focal Length&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#58; 12.7 mm &amp;#40;35 mm equivalent&amp;#58; 71.1 mm&amp;#41;&lt;br /&gt;
Hyperfocal Distance&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 6.70 m&lt;br /&gt;
Light Value&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#58; 12.3&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110631#110631</comments>
                                        <author>thusgaard</author>
                                        <pubDate>Wed Mar 06, 2013 12:52 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110631#110631</guid>
                                      </item>
                                      <item>
                                        <title>C Structure multiple files</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110321#110321</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=66604'&gt;Crispy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Fri Feb 08, 2013 12:43 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Thank you for your reply einonm.&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Quote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;It's virtually contiguous, in that the addresses are a contiguous range. It's not guaranteed to be physically contiguous though - heck, the memory may not even exist yet due to the kernel using something called 'over committing'. There are special ways of asking for physically contiguous memory (e.g. for fast graphics operations). I think at this level, you don't need to worry about it. &lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
Yeah don't think I need to worry about over committing or anything like that, maybe in the future &lt;img src=&quot;images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; border=&quot;0&quot; /&gt;.&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Quote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;This code probably won't work. You can only _declare_ variables in header files, you must _define_ a variable in a .c file to use it (and then use the 'extern' keyword in the header to share it). This is because a variable declaration doesn't allocate any memory for the variable, only the variable definition does that.&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
Yeah, sorry I don't think I explained it very well.  Basically in the header file I declare all the data I require for the program.  That data is then initialised in the main file so assume that p was set to be 10 for example before testfnc was called.&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Quote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;Er, yes. Allocate once and not many times is better, probably...&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
Yeah I thought it would be, the thing is I've got a loop:&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;for &amp;#40;i = 0; i &amp;lt; 100; i++&amp;#41;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; testfnc&amp;#40; p &amp;#41;;&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
where testfnc then allocates a 1D array of size 40,000, then deallocates before leaving:&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;void testfnc&amp;#40; int j &amp;#41;&lt;br /&gt;
&amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; double *test;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; test = &amp;#40;double *&amp;#41; malloc&amp;#40; 40000 * sizeof&amp;#40;*test&amp;#41; &amp;#41;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; free&amp;#40;test&amp;#41;;&lt;br /&gt;
&amp;#125;&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
The size of the array testfnc allocates doesn't change in the 100 iterations so I thought it might be more efficient.  Perhaps I'll do a test.&lt;br /&gt;
&lt;br /&gt;
Thanks again,&lt;br /&gt;
Chris</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110321#110321</comments>
                                        <author>Crispy</author>
                                        <pubDate>Fri Feb 08, 2013 12:43 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110321#110321</guid>
                                      </item>
                                      <item>
                                        <title>Setting ant -source parameter for Android Coding Academy</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110208#110208</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=34395'&gt;Mad-Halfling&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Sun Jan 27, 2013 5:12 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Having a bit of a brain-failure.  I'm poking my way around the Android coding academy sections and in part 2 I'm getting a compiler error when I run &lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;ant debug&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;#91;javac&amp;#93; /home/&amp;#40;user&amp;#41;/Coding/countdown/src/com/example/countdown/CountdownActivity.java&amp;#58;60&amp;#58; error&amp;#58; strings in switch are not supported in -source 1.5&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#91;javac&amp;#93;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch&amp;#40;item.getItemId&amp;#40;&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#91;javac&amp;#93;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;#91;javac&amp;#93;&amp;nbsp; &amp;nbsp;&amp;#40;use -source 7 or higher to enable strings in switch&amp;#41;&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
but I can't find where to set this parameter.  I've got openjdk-7 installed and JAVA_HOME points to &lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;/usr/lib/jvm/default-java -&amp;gt; java-1.7.0-openjdk-amd64&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
So where do I set this (I'm sure it's something simple, but ant doesn't accept the -source parameter and Google hasn't brought up the config details)?&lt;br /&gt;
&lt;br /&gt;
Note that this compiler error is the result of a typo, but I was wondering how to do this for future reference, or in case I want to use this in future.&lt;br /&gt;
&lt;br /&gt;
Cheers - MH</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110208#110208</comments>
                                        <author>Mad-Halfling</author>
                                        <pubDate>Sun Jan 27, 2013 5:12 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110208#110208</guid>
                                      </item>
                                      <item>
                                        <title>Another bit of info...</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110049#110049</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=130'&gt;Ram&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Tue Jan 15, 2013 9:43 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      For what its worth my figures are&lt;br /&gt;
&lt;br /&gt;
55 206  &lt;br /&gt;
&lt;br /&gt;
But was not quite max size, maxing it I got size of 55 207 &lt;br /&gt;
&lt;br /&gt;
Now if I dragged the terminal off the left hand a touch I got a huge terminal of 200 * 300</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110049#110049</comments>
                                        <author>Ram</author>
                                        <pubDate>Tue Jan 15, 2013 9:43 am</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110049#110049</guid>
                                      </item>
                                      <item>
                                        <title>I am stuck...</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=110008#110008</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=58561'&gt;Bazza&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Sun Jan 13, 2013 3:51 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Hi MBF...&lt;br /&gt;
&lt;br /&gt;
Well here it is the DEMO using your backticks technique...&lt;br /&gt;
&lt;br /&gt;
A known binary file and my wanted binary file.&lt;br /&gt;
&lt;br /&gt;
Believe it or not my wanted file WILL become the _timebase_ of a shell AudioScope that I have already started...&lt;br /&gt;
&lt;br /&gt;
I mentioned you in the comments... ;o)&lt;br /&gt;
&lt;br /&gt;
Thanks a lot...&lt;br /&gt;
&lt;br /&gt;
Watch out for wordwrapping, etc...&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;&lt;br /&gt;
# !/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# BFM.sh&lt;br /&gt;
# A very simple DEMO Binary File Manipulation shell code issued entirely as Public Domain.&lt;br /&gt;
#&lt;br /&gt;
# Apologies for any typos...&lt;br /&gt;
#&lt;br /&gt;
# This is a DEMO to show how to generate binaryfiles in the shell.&lt;br /&gt;
# I need this facility for a kids project I am doing. It will be posted onto here in&lt;br /&gt;
# the not too distant future...&lt;br /&gt;
#&lt;br /&gt;
# To run, ensure the script is executable and from a terminal type&amp;#58;-&lt;br /&gt;
#&lt;br /&gt;
# *****$ /absolute/path/to/BFM.sh&amp;lt;CR&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# And away you go...&lt;br /&gt;
#&lt;br /&gt;
# Many thanks to MartyBartFast of the Linux Format forums for reminding me of the backticks... ;o&amp;#41;&lt;br /&gt;
#&lt;br /&gt;
# Written so that kids and newbies can understand what is going on...&lt;br /&gt;
#&lt;br /&gt;
# $VER&amp;#58; BFM.sh_Version_0.00.10_Public_Domain_2013_B.walker_G0LCU.&lt;br /&gt;
#&lt;br /&gt;
# Enjoy finding simple solutions to often very difficult problems...&lt;br /&gt;
&lt;br /&gt;
# These two files WILL be generated inside YOUR default /directory/drawer/folder/...&lt;br /&gt;
# Zero them as a starter JUST for this DEMO...&lt;br /&gt;
&amp;gt; SomeBinaryFile.dat&lt;br /&gt;
&amp;gt; MyBinaryFile.dat&lt;br /&gt;
&lt;br /&gt;
# This loop is to give a usable 256 byte binary file only from 0x00 to 0xFF continuous...&lt;br /&gt;
clear&lt;br /&gt;
for character in &amp;#123;0..255&amp;#125;&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;# Note&amp;#58;- The backticks and the four escape characters are required...&lt;br /&gt;
&amp;nbsp; &amp;nbsp;char=`printf '\\\\x'&amp;quot;%02x&amp;quot; $character`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;$char&amp;quot; &amp;gt;&amp;gt; SomeBinaryfile.dat&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Do a hexadecimal dump to prove the file is binary and 256 bytes in size...&lt;br /&gt;
printf &amp;quot;\nOffset.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hexadecimal Dump.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ASCII Dump.\n&amp;quot;&lt;br /&gt;
hexdump -C SomeBinaryFile.dat&lt;br /&gt;
&lt;br /&gt;
# Now this EXAMPLE loop is the working loop. The three variables set the &amp;quot;start&amp;quot;, &amp;#40;_offset_&amp;#41;, of where you want&lt;br /&gt;
# your file to start, the &amp;quot;jump&amp;quot; between each _sample_ and the last_byte_limit to where you want to finish...&lt;br /&gt;
# IMPORTANT!!! There is NO error detection or correction in the code as it is a DEMO so don't come back and&lt;br /&gt;
# say that you can crash it, e.g. setting the &amp;quot;last_byte_limit&amp;quot; to -1 for example...&lt;br /&gt;
# Also although I am using a &amp;quot;for&amp;quot; loop for this DEMO you could select a single byte manually and code accordingly...&lt;br /&gt;
#&lt;br /&gt;
# The _variables_ for this DEMO. The jump is set to every seventh byte for this DEMO.&lt;br /&gt;
start_offset=4&lt;br /&gt;
jump=7&lt;br /&gt;
last_byte_limit=200&lt;br /&gt;
&lt;br /&gt;
# _hexdump_ is used to select the byte&amp;#40;s&amp;#41; according to this DEMO &amp;quot;for&amp;quot; loop...&lt;br /&gt;
for subscript in $&amp;#40; seq $start_offset $jump $last_byte_limit &amp;#41;&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp; &amp;nbsp;number=`hexdump -n1 -s$subscript -v -e '1/1 &amp;quot;%u&amp;quot;' SomeBinaryFile.dat`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;char=`printf '\\\\x'&amp;quot;%02x&amp;quot; $number`&lt;br /&gt;
&amp;nbsp; &amp;nbsp;printf &amp;quot;$char&amp;quot; &amp;gt;&amp;gt; MyBinaryFile.dat&lt;br /&gt;
done&lt;br /&gt;
# Now display it...&lt;br /&gt;
printf &amp;quot;\nOffset.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hexadecimal Dump.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ASCII Dump.\n&amp;quot;&lt;br /&gt;
hexdump -C MyBinaryFile.dat&lt;br /&gt;
&lt;br /&gt;
# A terminal window dump of what should occur...&lt;br /&gt;
#&lt;br /&gt;
# Offset.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hexadecimal Dump.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ASCII Dump.&lt;br /&gt;
# 00000000&amp;nbsp; 00 01 02 03 04 05 06 07&amp;nbsp; 08 09 0a 0b 0c 0d 0e 0f&amp;nbsp; |................|&lt;br /&gt;
# 00000010&amp;nbsp; 10 11 12 13 14 15 16 17&amp;nbsp; 18 19 1a 1b 1c 1d 1e 1f&amp;nbsp; |................|&lt;br /&gt;
# 00000020&amp;nbsp; 20 21 22 23 24 25 26 27&amp;nbsp; 28 29 2a 2b 2c 2d 2e 2f&amp;nbsp; | !&amp;quot;#$%&amp;amp;'&amp;#40;&amp;#41;*+,-./|&lt;br /&gt;
# 00000030&amp;nbsp; 30 31 32 33 34 35 36 37&amp;nbsp; 38 39 3a 3b 3c 3d 3e 3f&amp;nbsp; |0123456789&amp;#58;;&amp;lt;=&amp;gt;?|&lt;br /&gt;
# 00000040&amp;nbsp; 40 41 42 43 44 45 46 47&amp;nbsp; 48 49 4a 4b 4c 4d 4e 4f&amp;nbsp; |@ABCDEFGHIJKLMNO|&lt;br /&gt;
# 00000050&amp;nbsp; 50 51 52 53 54 55 56 57&amp;nbsp; 58 59 5a 5b 5c 5d 5e 5f&amp;nbsp; |PQRSTUVWXYZ&amp;#91;\&amp;#93;^_|&lt;br /&gt;
# 00000060&amp;nbsp; 60 61 62 63 64 65 66 67&amp;nbsp; 68 69 6a 6b 6c 6d 6e 6f&amp;nbsp; |`abcdefghijklmno|&lt;br /&gt;
# 00000070&amp;nbsp; 70 71 72 73 74 75 76 77&amp;nbsp; 78 79 7a 7b 7c 7d 7e 7f&amp;nbsp; |pqrstuvwxyz&amp;#123;|&amp;#125;~.|&lt;br /&gt;
# 00000080&amp;nbsp; 80 81 82 83 84 85 86 87&amp;nbsp; 88 89 8a 8b 8c 8d 8e 8f&amp;nbsp; |................|&lt;br /&gt;
# 00000090&amp;nbsp; 90 91 92 93 94 95 96 97&amp;nbsp; 98 99 9a 9b 9c 9d 9e 9f&amp;nbsp; |................|&lt;br /&gt;
# 000000a0&amp;nbsp; a0 a1 a2 a3 a4 a5 a6 a7&amp;nbsp; a8 a9 aa ab ac ad ae af&amp;nbsp; |................|&lt;br /&gt;
# 000000b0&amp;nbsp; b0 b1 b2 b3 b4 b5 b6 b7&amp;nbsp; b8 b9 ba bb bc bd be bf&amp;nbsp; |................|&lt;br /&gt;
# 000000c0&amp;nbsp; c0 c1 c2 c3 c4 c5 c6 c7&amp;nbsp; c8 c9 ca cb cc cd ce cf&amp;nbsp; |................|&lt;br /&gt;
# 000000d0&amp;nbsp; d0 d1 d2 d3 d4 d5 d6 d7&amp;nbsp; d8 d9 da db dc dd de df&amp;nbsp; |................|&lt;br /&gt;
# 000000e0&amp;nbsp; e0 e1 e2 e3 e4 e5 e6 e7&amp;nbsp; e8 e9 ea eb ec ed ee ef&amp;nbsp; |................|&lt;br /&gt;
# 000000f0&amp;nbsp; f0 f1 f2 f3 f4 f5 f6 f7&amp;nbsp; f8 f9 fa fb fc fd fe ff&amp;nbsp; |................|&lt;br /&gt;
# 00000100&lt;br /&gt;
#&lt;br /&gt;
# Offset.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Hexadecimal Dump.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ASCII Dump.&lt;br /&gt;
# 00000000&amp;nbsp; 04 0b 12 19 20 27 2e 35&amp;nbsp; 3c 43 4a 51 58 5f 66 6d&amp;nbsp; |.... '.5&amp;lt;CJQX_fm|&lt;br /&gt;
# 00000010&amp;nbsp; 74 7b 82 89 90 97 9e a5&amp;nbsp; ac b3 ba c1 c8&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|t&amp;#123;...........|&lt;br /&gt;
# 0000001d&lt;br /&gt;
# Barrys-MacBook-Pro&amp;#58;~ barrywalker$ &lt;br /&gt;
#&lt;br /&gt;
# BFM.sh DEMO end...&lt;br /&gt;
# Enjoy finding simple solutions to often very difficult problems...&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=110008#110008</comments>
                                        <author>Bazza</author>
                                        <pubDate>Sun Jan 13, 2013 3:51 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=110008#110008</guid>
                                      </item>
                                      <item>
                                        <title>Problems managing Java's external libraries.</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=109760#109760</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=21079'&gt;leke&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Sun Dec 23, 2012 9:07 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      I've just started learning Java as part of my degree course. Having experience with PHP, Python and JavaScript has made it rather irritatingly easy so far though. &lt;br /&gt;
&lt;br /&gt;
I wanted to start to actually make something interesting with Java and tried to install the JMF to experiment with. I seem to have hit a bit of a wall with this and was wondering if there was some easy way of handling Java's external libraries which has escaped my search. &lt;br /&gt;
&lt;br /&gt;
Are there any library managers you use to handle this kind of thing better than the search-&amp;gt;download-&amp;gt;execute-&amp;gt;ponder_the_error_message method I tried? &lt;br /&gt;
&lt;br /&gt;
Thanks.</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=109760#109760</comments>
                                        <author>leke</author>
                                        <pubDate>Sun Dec 23, 2012 9:07 am</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=109760#109760</guid>
                                      </item>
                                      <item>
                                        <title>A DEMO To Show How To Expand A Standard Python Terminal.</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=109727#109727</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=58561'&gt;Bazza&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Tue Dec 18, 2012 9:03 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      A DEMO To Show How To Expand A Standard Python Terminal On The Fly...&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://code.activestate.com/recipes/578383-a-demo-to-show-how-to-expand-a-standard-python-ter/?in=lang-python&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://code.activestate.com/recipes/578383-a-demo-to-show-how-to-expand-a-standard-python-ter/?in=lang-python&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This code shows how to open up a default Terminal running Python to the maximum allowed on the _desktop_. I decided on writing code to do a crude emulation of a Campimeter. Anyone  who has worn spectacles for a long time has had this test done at the opticians. Originally written for a Macbook Pro, OSX 10.7.5 but also tested on Debian Linux 6.0.x. READ the code for more information!!! This code WILL alter the size of the Terminal window AND changes the colours too during this session, although it is very easy to return back to the default state, it is NOT included in the code...&lt;br /&gt;
&lt;br /&gt;
Before running Python inside the Terminal ensure the Terminal window is at the uppermost left hand corner of your desktop...&lt;br /&gt;
&lt;br /&gt;
I needed the maximised Python Terminal for something else but this was the easiest way to demonstrate how to do it through Python...&lt;br /&gt;
&lt;br /&gt;
Written so that kids can understand what is going on...&lt;br /&gt;
&lt;br /&gt;
Enjoy finding simple solutions to often very difficult problems... ;o)&lt;br /&gt;
&lt;br /&gt;
(Note, that it has been voted up in less than 24 hours. &lt;img src=&quot;images/smiles/icon_surprised.gif&quot; alt=&quot;Surprised&quot; border=&quot;0&quot; /&gt;)&lt;br /&gt;
&lt;br /&gt;
Bazza, G0LCU...</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=109727#109727</comments>
                                        <author>Bazza</author>
                                        <pubDate>Tue Dec 18, 2012 9:03 am</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=109727#109727</guid>
                                      </item>
                                      <item>
                                        <title>small web interface for bash - users controls</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=109709#109709</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=445'&gt;hyperdaz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Sat Dec 15, 2012 3:21 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      does anyone know a small web interface for bash that has user controls i.e. user1 can select xyz and it will kick off a bash script, user2 can select abc etc.. &lt;br /&gt;
&lt;br /&gt;
Cheers&lt;br /&gt;
Daz</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=109709#109709</comments>
                                        <author>hyperdaz</author>
                                        <pubDate>Sat Dec 15, 2012 3:21 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=109709#109709</guid>
                                      </item>
                                      <item>
                                        <title>Boolean logic conundrum</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=109661#109661</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=3554'&gt;AndyBaxman&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Mon Dec 10, 2012 1:02 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      &lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;purplepenguin wrote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;&lt;br /&gt;
I was getting all wrapped up with Boolean logic as we have just covered &amp;lt;, &amp;gt;, =, and, or and not operators the OU explained these as Boolean Logic operators. I now see the error is a mathematical one.&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
Comparison operators (==, &amp;gt;, &amp;lt;, &amp;lt;=, &amp;gt;=, ===, etc, depending on language) are not boolean operators as they can take non boolean operands, but they do &lt;span style=&quot;font-style: italic&quot;&gt;always&lt;/span&gt; return a boolean result.&lt;br /&gt;
&lt;br /&gt;
Only the equality operator makes any sense with Boolean operands, and then only if you are comparing two boolean variables (i.e. not literals). (boolvar1 == boolvar2) will return true if, and only if, both variables are true or both variables are false (i.e. the same)&lt;br /&gt;
&lt;br /&gt;
Cases like (boolvar1 == true) are nonsensical  as &lt;br /&gt;
IF boolvar1 == 1 THEN .....&lt;br /&gt;
&lt;br /&gt;
is equivalent to &lt;br /&gt;
&lt;br /&gt;
IF boolvar1 THEN .....</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=109661#109661</comments>
                                        <author>AndyBaxman</author>
                                        <pubDate>Mon Dec 10, 2012 1:02 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=109661#109661</guid>
                                      </item>
                                      <item>
                                        <title>QT4/5</title>
                                        <link>http://www.linuxformat.com/forums/viewtopic.php?p=109620#109620</link>
                                        <description>&lt;br /&gt;
                                      Author: &lt;a href='http://www.linuxformat.com/forums/profile.php?mode=viewprofile&amp;u=67'&gt;dhester&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      Posted: Tue Dec 04, 2012 10:55 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      I have looked at the examples on the QT website but what I was after was recommendations from people who have followed tutorials.&lt;br /&gt;
&lt;br /&gt;
I know QT5 is beta but from looking at videos what it and quint can do are great and I want to have a try at using it.&lt;br /&gt;
&lt;br /&gt;
Any chance of Linuxformat doing a tutorial</description>
                                        <comments>http://www.linuxformat.com/forums/viewtopic.php?p=109620#109620</comments>
                                        <author>dhester</author>
                                        <pubDate>Tue Dec 04, 2012 10:55 pm</pubDate>
                                        <guid isPermaLink="true">http://www.linuxformat.com/forums/viewtopic.php?p=109620#109620</guid>
                                      </item></channel></rss>