/[dtapublic]/pubs/books/ucbka/trunk/c_tin0/c_tin0.tex
ViewVC logotype

Diff of /pubs/books/ucbka/trunk/c_tin0/c_tin0.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 139 by dashley, Thu Oct 6 23:27:41 2016 UTC revision 140 by dashley, Mon Jul 3 01:59:16 2017 UTC
# Line 1  Line 1 
1  %$Header: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/c_tin0/c_tin0.tex,v 1.6 2003/11/03 02:14:24 dtashley Exp $  %$Header$
2    
3  \chapter[\ctinzeroshorttitle{}]{\ctinzerolongtitle{}}  \chapter[\ctinzeroshorttitle{}]{\ctinzerolongtitle{}}
4    
5  \label{ctin0}  \label{ctin0}
6    
7  \index{Hobbs, Jeffrey}  \index{Hobbs, Jeffrey}
8  \beginchapterquote{``I may seem more arrogant, but I think that's just because  \beginchapterquote{``I may seem more arrogant, but I think that's just because
9                       you didn't realize how arrogant I was before.''}                       you didn't realize how arrogant I was before.''}
10                     {Jeffrey Hobbs \cite{bibref:i:jeffreyhobbs}, Tcl Ambassador, Ajuba Solutions}                     {Jeffrey Hobbs \cite{bibref:i:jeffreyhobbs}, Tcl Ambassador, Ajuba Solutions}
11    
12  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
14  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15    
16  %Section Tag: INT  %Section Tag: INT
17  \section{Overview Of The Iju Tool Set}  \section{Overview Of The Iju Tool Set}
18  \index{IjuTools}\index{Iju!tool set}  \index{IjuTools}\index{Iju!tool set}
19  The \emph{Iju}\footnote{The name \emph{Iju} is an acronym for  The \emph{Iju}\footnote{The name \emph{Iju} is an acronym for
20  ``\emph{I}t's \emph{J}ust \emph{U}s'', and has its origins in  ``\emph{I}t's \emph{J}ust \emph{U}s'', and has its origins in
21  a dilbertesque conversation between disgruntled engineers  a dilbertesque conversation between disgruntled engineers
22  in a large company years ago where it  in a large company years ago where it
23  was stated that we felt \emph{it's just us} who understood  was stated that we felt \emph{it's just us} who understood
24  the nature of certain product problems.} tool set (or \emph{IjuTools} for short)  the nature of certain product problems.} tool set (or \emph{IjuTools} for short)
25  is a collection of utilities and research tools which are  is a collection of utilities and research tools which are
26  useful for small microcontroller work.  At this time, the current version of  useful for small microcontroller work.  At this time, the current version of
27  IjuTools is v1.05.  IjuTools is v1.05.
28    
29  As of v1.05, IjuTools consists of [only] the following components.  As of v1.05, IjuTools consists of [only] the following components.
30    
31  \begin{itemize}  \begin{itemize}
32  \item \emph{IjuScripter}, a statically linked\footnote{By \emph{statically linked}  \item \emph{IjuScripter}, a statically linked\footnote{By \emph{statically linked}
33        I mean that a monolithic executable which is complete and requires no        I mean that a monolithic executable which is complete and requires no
34        DLLs is provided.} version of Tclsh, with extensions.        DLLs is provided.} version of Tclsh, with extensions.
35    
36  \item \emph{IjuConsole}, a statically linked version of Wish, with extensions.  \item \emph{IjuConsole}, a statically linked version of Wish, with extensions.
37    
38  \item A set of DOS command-line utilities.  In many cases, these utilities  \item A set of DOS command-line utilities.  In many cases, these utilities
39        perform functions similar to the Tcl/Tk extensions incorporated into        perform functions similar to the Tcl/Tk extensions incorporated into
40            IjuScripter/IjuConsole.            IjuScripter/IjuConsole.
41  \item Supplemental example scripts, technical papers, books, and URLs.\footnote{As  \item Supplemental example scripts, technical papers, books, and URLs.\footnote{As
42        of v1.03, just a few, but I hope the list will grow.}        of v1.03, just a few, but I hope the list will grow.}
43  \end{itemize}  \end{itemize}
44    
45  IjuTools is built around Tcl/Tk 8.3.1.\index{Tcl}\index{Tk}  IjuTools is built around Tcl/Tk 8.3.1.\index{Tcl}\index{Tk}
46  Tcl is a scripting language from  Tcl is a scripting language from
47  Scriptics\index{Scriptics} (now Interwoven).\index{Interwoven}  Scriptics\index{Scriptics} (now Interwoven).\index{Interwoven}
48  At the present time,  At the present time,
49  all components of the tool set are implemented  all components of the tool set are implemented
50  as Tcl extensions, so that they can be executed interactively or as part of  as Tcl extensions, so that they can be executed interactively or as part of
51  a script.  The scripted nature of the tool set gives users the ability to  a script.  The scripted nature of the tool set gives users the ability to
52  use the tool set components together in arbitrary ways.  use the tool set components together in arbitrary ways.
53    
54  Although IjuTools is slanted towards microcontroller software development,  Although IjuTools is slanted towards microcontroller software development,
55  it is a good general automation solution (in the same sense that  it is a good general automation solution (in the same sense that
56  Tcl and Tk are), and it can be used for other endeavors.  (In fact,  Tcl and Tk are), and it can be used for other endeavors.  (In fact,
57  the generation of this book is automated using IjuConsole.)  the generation of this book is automated using IjuConsole.)
58    
59  At the present time, \emph{The Iju Tool Set} (including this  At the present time, \emph{The Iju Tool Set} (including this
60  book) is maintained  book) is maintained
61  at the site \texttt{http://ijutools.sourceforge.net} as an  at the site \texttt{http://ijutools.sourceforge.net} as an
62  open-source product.  All source code may be freely downloaded.  open-source product.  All source code may be freely downloaded.
63  In the future, in order to recoup some of the cost of producing  In the future, in order to recoup some of the cost of producing
64  the tool set, some of the convenient distributions (packaged installations,  the tool set, some of the convenient distributions (packaged installations,
65  printed materials, and media) may be sold  printed materials, and media) may be sold
66  for a small fee.  However, all of the source code will remain  for a small fee.  However, all of the source code will remain
67  public and free.  public and free.
68    
69    
70  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
71  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
72  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
73  %Design Goals Of IjuTools  %Design Goals Of IjuTools
74  %Section tag: DGI  %Section tag: DGI
75  \section{IjuTools Design Goals}  \section{IjuTools Design Goals}
76  The design goals of IjuTools are enumerated below.    The design goals of IjuTools are enumerated below.  
77  Each goal is discussed in more detail later.  Each goal is discussed in more detail later.
78    
79  \begin{itemize}  \begin{itemize}
80    
81  \item \textbf{Stability, Repeatability, And Lack Of Intermittent Behavior:}    \item \textbf{Stability, Repeatability, And Lack Of Intermittent Behavior:}  
82        because the tool set will be used to produce ROM images, it must be very reliable.        because the tool set will be used to produce ROM images, it must be very reliable.
83    
84  \item \textbf{Extensibility:}  \item \textbf{Extensibility:}
85        it must be straightforward to extend the capabilities of the tool set.        it must be straightforward to extend the capabilities of the tool set.
86    
87  \item \textbf{Cross-Platform Capability:}  \item \textbf{Cross-Platform Capability:}
88        the tool set should have a migration path to platforms other than Microsoft        the tool set should have a migration path to platforms other than Microsoft
89        Windows.        Windows.
90    
91  \item \textbf{Utility:}  \item \textbf{Utility:}
92        the tool set should be genuinely useful.        the tool set should be genuinely useful.
93    
94  \end{itemize}  \end{itemize}
95    
96  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
98  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99  \subsection{Stability, Repeatability, And Lack Of Intermittent Behavior}  \subsection{Stability, Repeatability, And Lack Of Intermittent Behavior}
100    
101  \emph{Microsoft Windows}\index{Windows}\index{Microsoft Windows}\index{Microsoft!Windows}  \emph{Microsoft Windows}\index{Windows}\index{Microsoft Windows}\index{Microsoft!Windows}
102  is surely the most despised computing  is surely the most despised computing
103  platform in the world.  The complaints include  platform in the world.  The complaints include
104  lack of stability, incomplete uninstallation of  lack of stability, incomplete uninstallation of
105  applications, and unintended interactions between  applications, and unintended interactions between
106  applications.   Web servers,\index{web server}\index{HTTP server}  applications.   Web servers,\index{web server}\index{HTTP server}
107  file servers,\index{file server} and mail\index{mail server}  file servers,\index{file server} and mail\index{mail server}
108  servers are often hosted under Unix\index{Unix} or Linux\index{Linux}  servers are often hosted under Unix\index{Unix} or Linux\index{Linux}
109  rather than a Microsoft product because  rather than a Microsoft product because
110  the MTBF for Windows is typically hundreds of hours, whereas the the MTBF  the MTBF for Windows is typically hundreds of hours, whereas the the MTBF
111  for Unix or Linux is typically hundreds of days.  However, most microcontroller  for Unix or Linux is typically hundreds of days.  However, most microcontroller
112  software development is done on Windows platforms.  software development is done on Windows platforms.
113    
114  Defects in Windows are unlikely to result  Defects in Windows are unlikely to result
115  in the corruption of a ROM image or in incorrect data (human error is  in the corruption of a ROM image or in incorrect data (human error is
116  a more likely cause).  However, to minimize the possibility of human error and  a more likely cause).  However, to minimize the possibility of human error and
117  unforeseen interactions between applications, IjuTools possesses the following design  unforeseen interactions between applications, IjuTools possesses the following design
118  characteristics.  characteristics.
119    
120  \begin{itemize}  \begin{itemize}
121    
122  \item \textbf{DLLs and the Windows registry are not used.}    \item \textbf{DLLs and the Windows registry are not used.}  
123        Each component of \emph{The Iju Tool Set} is a monolithic        Each component of \emph{The Iju Tool Set} is a monolithic
124        executable image (an .EXE file).  This makes it impossible        executable image (an .EXE file).  This makes it impossible
125        to mismatch an application        to mismatch an application
126        with the DLLs it requires.  Additionally, the Windows registry,        with the DLLs it requires.  Additionally, the Windows registry,
127        which may cause differences in behavior from machine to machine,        which may cause differences in behavior from machine to machine,
128        is not used.  Although the IjuTools installation installs executable        is not used.  Although the IjuTools installation installs executable
129        files in specific directories, any of these executable files may be copied        files in specific directories, any of these executable files may be copied
130        or moved to other locations or to other machines (without an installation process),        or moved to other locations or to other machines (without an installation process),
131        because the executable files are standalone and have no DLL or registry        because the executable files are standalone and have no DLL or registry
132        dependencies.        dependencies.
133    
134  \item \textbf{Executable files are internally versioned.}    \item \textbf{Executable files are internally versioned.}  
135        IjuTools version numbers are never re-used, and each executable component        IjuTools version numbers are never re-used, and each executable component
136        of the tool set ``knows'' its version number.  IjuScripter and IjuConsole        of the tool set ``knows'' its version number.  IjuScripter and IjuConsole
137        contain embedded commands to allow a script to determine the version number of        contain embedded commands to allow a script to determine the version number of
138        the executable.  Thus, it is possible to author scripts that will only run        the executable.  Thus, it is possible to author scripts that will only run
139        with a specific version of IjuScripter or IjuConsole.        with a specific version of IjuScripter or IjuConsole.
140    
141  \end{itemize}  \end{itemize}
142    
143  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
146  \subsection{Extensibility}  \subsection{Extensibility}
147    
148  The two core components of IjuTools (IjuScripter and IjuConsole) are extensible in the  The two core components of IjuTools (IjuScripter and IjuConsole) are extensible in the
149  sense that additional commands can be added to the language understood by the tools.  sense that additional commands can be added to the language understood by the tools.
150  Because of the way in which Tcl treats strings (they can be of arbitrary length), the output  Because of the way in which Tcl treats strings (they can be of arbitrary length), the output
151  of a built-in command can be easily retained in RAM (for further processing by other  of a built-in command can be easily retained in RAM (for further processing by other
152  commands) or placed in a file (as output).  commands) or placed in a file (as output).
153  Thus, if parsing or file transformation is involved, it is easy to make the claim that  Thus, if parsing or file transformation is involved, it is easy to make the claim that
154  IjuTools is ``arbitrarily extensible'' because commands can be added arbitrarily to IjuScripter  IjuTools is ``arbitrarily extensible'' because commands can be added arbitrarily to IjuScripter
155  and IjuConsole..  and IjuConsole..
156    
157  For microcontroller work, this type of extensibility is probably adequate.  For microcontroller work, this type of extensibility is probably adequate.
158    
159  However, no framework has yet been developed to encompass the integration of  However, no framework has yet been developed to encompass the integration of
160  GUI applications or additional executables into IjuTools.  I welcome suggestions  GUI applications or additional executables into IjuTools.  I welcome suggestions
161  in this area.  in this area.
162    
163  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
164  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
165  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
166  \subsection{Cross-Platform Capability}  \subsection{Cross-Platform Capability}
167    
168  Windows is presently the dominant platform for microcontroller software  Windows is presently the dominant platform for microcontroller software
169  development.  However, it is easy to envision scenarios in which Linux or Unix become  development.  However, it is easy to envision scenarios in which Linux or Unix become
170  popular platforms for certain types of development.  popular platforms for certain types of development.
171    
172  Tcl/Tk inherently runs on Windows, Linux, Unix, and Solaris platforms.  Tcl/Tk inherently runs on Windows, Linux, Unix, and Solaris platforms.
173  (I'm sure that designing one set of source code that fits all of these  (I'm sure that designing one set of source code that fits all of these
174  platforms has caused Scriptics substantial technical anguish, but they  platforms has caused Scriptics substantial technical anguish, but they
175  were successful in this.)  To ensure that IjuScripter and IjuConsole are  were successful in this.)  To ensure that IjuScripter and IjuConsole are
176  portable to these other platforms if necessary, the following steps  portable to these other platforms if necessary, the following steps
177  are planned.  are planned.
178    
179  \begin{itemize}  \begin{itemize}
180    
181  \item All changes to the Tcl/Tk 8.3.1 core (the changes will be bug fixes  \item All changes to the Tcl/Tk 8.3.1 core (the changes will be bug fixes
182        only) will be logged so that they can be        only) will be logged so that they can be
183        reproduced if IjuTools is ported to another platform using        reproduced if IjuTools is ported to another platform using
184        the original Scriptics 8.3.1 code as the starting        the original Scriptics 8.3.1 code as the starting
185        point.\footnote{As the Tcl 8.3.1 core is maintained,        point.\footnote{As the Tcl 8.3.1 core is maintained,
186        to clean up the Windows source code and enhance clarity, it is natural        to clean up the Windows source code and enhance clarity, it is natural
187        to eliminate blocks of code that are preprocessed out and do not        to eliminate blocks of code that are preprocessed out and do not
188        enter the compile stream for a Windows build.  This type of maintenance        enter the compile stream for a Windows build.  This type of maintenance
189        will make it impossible to compile the code for any other platform,        will make it impossible to compile the code for any other platform,
190        and hence the original Scriptics code would be necessary as a starting        and hence the original Scriptics code would be necessary as a starting
191        point.}        point.}
192    
193  \item Extensions will follow coding standards to minimize platform dependencies  \item Extensions will follow coding standards to minimize platform dependencies
194        and enhance portability        and enhance portability
195        (sizes of ordinal data sizes, use of floating-point arithmetic, etc.).        (sizes of ordinal data sizes, use of floating-point arithmetic, etc.).
196    
197  \item Extensions will not make use of the Win32 API or standard library  \item Extensions will not make use of the Win32 API or standard library
198        calls---instead, they will interact only with the Tcl/Tk core.        calls---instead, they will interact only with the Tcl/Tk core.
199    
200  \end{itemize}  \end{itemize}
201    
202    
203  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
204  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
206  \subsection{Utility}  \subsection{Utility}
207    
208  In the assembly of IjuTools and supporting materials, I hope and believe  In the assembly of IjuTools and supporting materials, I hope and believe
209  I've met the goal of providing something genuinely useful for microcontroller  I've met the goal of providing something genuinely useful for microcontroller
210  software developers. I've listed below the characteristics of the tool set  software developers. I've listed below the characteristics of the tool set
211  which I feel most enhance its usefulness.  which I feel most enhance its usefulness.
212    
213  \begin{itemize}  \begin{itemize}
214  \item \textbf{The tools can be used interactively as well as from a script.}  \item \textbf{The tools can be used interactively as well as from a script.}
215        Because Tcl commands can be used        Because Tcl commands can be used
216        both interactively and from        both interactively and from
217        a script, IjuScripter and IjuConsole are useful for interactive        a script, IjuScripter and IjuConsole are useful for interactive
218        tasks (file conversions, impromptu calculations).  For example,        tasks (file conversions, impromptu calculations).  For example,
219        with no calculator handy, \texttt{expr sqrt(5)} can be used        with no calculator handy, \texttt{expr sqrt(5)} can be used
220        interactively in IjuScripter or IjuConsole to obtain $\sqrt{5}$.        interactively in IjuScripter or IjuConsole to obtain $\sqrt{5}$.
221  \item \textbf{The tools are suitable for orchestrating microcontroller  \item \textbf{The tools are suitable for orchestrating microcontroller
222        software builds.}  Microcontroller software builds tend to be        software builds.}  Microcontroller software builds tend to be
223        awkward, complex, and to involve many steps---utilities such as        awkward, complex, and to involve many steps---utilities such as
224        \texttt{MAKE} fall short in their ability to support        \texttt{MAKE} fall short in their ability to support
225        such builds.  The Tcl scripting language        such builds.  The Tcl scripting language
226        is rich enough to allow the automation of these kinds of software builds.        is rich enough to allow the automation of these kinds of software builds.
227  \item \textbf{The tools can be used as a general automation utility.}  \item \textbf{The tools can be used as a general automation utility.}
228        The static executables provided can be used        The static executables provided can be used
229        to automate common office tasks; such as        to automate common office tasks; such as
230        removing all files last modified prior to a certain date,        removing all files last modified prior to a certain date,
231        or searching your boss' computer for information        or searching your boss' computer for information
232        about your colleagues' salaries while your boss is away at lunch.        about your colleagues' salaries while your boss is away at lunch.
233  \item \textbf{The full source code for the tools is available.}  The full  \item \textbf{The full source code for the tools is available.}  The full
234        source code for the tools is available at        source code for the tools is available at
235            \texttt{http://ijutools.sourceforge.net}.              \texttt{http://ijutools.sourceforge.net}.  
236            The source code can be useful in several ways.            The source code can be useful in several ways.
237        \begin{itemize}        \begin{itemize}
238        \item The source code contains all project files for the GUI version        \item The source code contains all project files for the GUI version
239              of Microsoft Visual C++.  It can be used as a quick way to get              of Microsoft Visual C++.  It can be used as a quick way to get
240              a Tcl/Tk GUI build for Windows up and going.\footnote{Two notes on this              a Tcl/Tk GUI build for Windows up and going.\footnote{Two notes on this
241              \ldots{} First, the base source code is available from Scriptics              \ldots{} First, the base source code is available from Scriptics
242              for free, but as of this writing, Scriptics does not support              for free, but as of this writing, Scriptics does not support
243              a GUI build (instead, they provide a MAKE file).  The port to              a GUI build (instead, they provide a MAKE file).  The port to
244              the GUI interface is not wholly straightforward and requires              the GUI interface is not wholly straightforward and requires
245              some effort.  Second,              some effort.  Second,
246              Tcl/Tk version 8.3.1 is old and getting older (but the new              Tcl/Tk version 8.3.1 is old and getting older (but the new
247              features added in subsequent versions don't make them any more              features added in subsequent versions don't make them any more
248              useful for microcontroller work).}              useful for microcontroller work).}
249        \item The source code can be used as the basis for another product.        \item The source code can be used as the basis for another product.
250        \item The source code for Tcl extensions can be harvested for other        \item The source code for Tcl extensions can be harvested for other
251              purposes.  For example, functions to calculate the CRC32              purposes.  For example, functions to calculate the CRC32
252              are included to support the              are included to support the
253              Tcl/Tk extensions.  This code could be harvested for other              Tcl/Tk extensions.  This code could be harvested for other
254              uses.              uses.
255        \end{itemize}        \end{itemize}
256  \item \textbf{The IjuTools distribution contains useful materials not available  \item \textbf{The IjuTools distribution contains useful materials not available
257        anywhere else.}  The technical papers and supplemental materials included        anywhere else.}  The technical papers and supplemental materials included
258        are genuinely useful for microcontroller software work.        are genuinely useful for microcontroller software work.
259  \end{itemize}  \end{itemize}
260    
261  Overall, I hope I've met the aim of assembling and distributing something which is  Overall, I hope I've met the aim of assembling and distributing something which is
262  genuinely \emph{useful}.  genuinely \emph{useful}.
263    
264    
265  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
266  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
267  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
268  %Section Tag:  EPL  %Section Tag:  EPL
269  \section{IjuTools Expansion And Development Plans}  \section{IjuTools Expansion And Development Plans}
270    
271  Future development of the Iju tool set will focus [only] in the following directions.  Future development of the Iju tool set will focus [only] in the following directions.
272    
273  \begin{itemize}  \begin{itemize}
274  \item \textbf{Removal of any existing Tcl/Tk 8.3.1 bugs.}  This is the very  \item \textbf{Removal of any existing Tcl/Tk 8.3.1 bugs.}  This is the very
275        highest priority, as any such bugs threaten the usability or        highest priority, as any such bugs threaten the usability or
276        logical integrity of the tool.        logical integrity of the tool.
277  \item \textbf{Development and co-development of new extensions useful in  \item \textbf{Development and co-development of new extensions useful in
278        microcontroller work.}  Any suggestions that I receive for        microcontroller work.}  Any suggestions that I receive for
279        extensions will be placed on my Web page, and I will attack them as        extensions will be placed on my Web page, and I will attack them as
280        time and expertise permit.  I also welcome co-development opportunities,        time and expertise permit.  I also welcome co-development opportunities,
281        where other parties develop the extensions and I act in a review and        where other parties develop the extensions and I act in a review and
282        integration capacity.        integration capacity.
283  \item \textbf{Acquisition of additional software useful in microcontroller work.}  \item \textbf{Acquisition of additional software useful in microcontroller work.}
284        I welcome contributions in this area, as well.        I welcome contributions in this area, as well.
285  \item \textbf{Acquisition of additional books, technical papers, books, web links, and  \item \textbf{Acquisition of additional books, technical papers, books, web links, and
286        other materials.}  I welcome contributions in all of these areas.  (Please keep in        other materials.}  I welcome contributions in all of these areas.  (Please keep in
287        mind that in order for me to distribute any contributed material with the Iju        mind that in order for me to distribute any contributed material with the Iju
288        tool set, I must have a letter of permission from the copyright holder.)        tool set, I must have a letter of permission from the copyright holder.)
289  \end{itemize}  \end{itemize}
290    
291  One direction that it won't be possible to go with the Iju tool set is enhancement of  One direction that it won't be possible to go with the Iju tool set is enhancement of
292  the Tcl/Tk 8.3.1 core.  The Tcl/Tk core is its own complexity, and I'd like to confine  the Tcl/Tk 8.3.1 core.  The Tcl/Tk core is its own complexity, and I'd like to confine
293  any efforts there to correction of existing defects and neatening of the set  any efforts there to correction of existing defects and neatening of the set
294  of source files.  of source files.
295    
296    
297    
298  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
299  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
300  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
301  \section{Common Parameter Formats}  \section{Common Parameter Formats}
302  %Section tag: CCL0  %Section tag: CCL0
303  \label{ctin0:sccl0}  \label{ctin0:sccl0}
304    
305  \emph{The Iju Tool Set} consists of the following components:  \emph{The Iju Tool Set} consists of the following components:
306    
307  \begin{itemize}  \begin{itemize}
308  \item The core of \emph{Tclsh} and \emph{Wish} (the \emph{Tcl}  \item The core of \emph{Tclsh} and \emph{Wish} (the \emph{Tcl}
309        language with \emph{Tk} graphic extensions).        language with \emph{Tk} graphic extensions).
310    
311  \item Extensions to the language, added for utility in microcontroller  \item Extensions to the language, added for utility in microcontroller
312        work or for research purposes.        work or for research purposes.
313    
314  \item A set of DOS command-line utilities.  \item A set of DOS command-line utilities.
315  \end{itemize}  \end{itemize}
316    
317  Each of these components makes heavy use of strings.  Since Tcl/Tk is  Each of these components makes heavy use of strings.  Since Tcl/Tk is
318  string-based (really, this is the \emph{only} Tcl data type), it is natural  string-based (really, this is the \emph{only} Tcl data type), it is natural
319  to think of each Tcl/Tk command as accepting string arguments.  Many of the  to think of each Tcl/Tk command as accepting string arguments.  Many of the
320  DOS command-line utilities accept arguments on the command-line which are  DOS command-line utilities accept arguments on the command-line which are
321  in exactly the same form as required by a Tcl/Tk extension, and hence  in exactly the same form as required by a Tcl/Tk extension, and hence
322  it is also useful to think of the DOS command-line utilities as  it is also useful to think of the DOS command-line utilities as
323  accepting string arguments.  For this reason, all string parameter types  accepting string arguments.  For this reason, all string parameter types
324  are documented together in this section.  are documented together in this section.
325    
326  When using Tcl/Tk extensions, the author of the Tcl/Tk script  When using Tcl/Tk extensions, the author of the Tcl/Tk script
327  has complete control over how strings are passed to the extension.  has complete control over how strings are passed to the extension.
328  However, when using the DOS command-line utilities,  However, when using the DOS command-line utilities,
329  the DOS/Windows command-line  the DOS/Windows command-line
330  interpreter breaks the command-line into parameters based on the  interpreter breaks the command-line into parameters based on the
331  occurence of whitespace (spaces and tabs) on the command line.  These  occurence of whitespace (spaces and tabs) on the command line.  These
332  parameters are passed to the utility itself as an array of strings.  parameters are passed to the utility itself as an array of strings.
333  It is possible to cause the command-line interpreter to pass parameters  It is possible to cause the command-line interpreter to pass parameters
334  containing whitespace by quoting the parameter.  All of the IjuTools  containing whitespace by quoting the parameter.  All of the IjuTools
335  command-line utilites will work correctly with whitespace embedded in  command-line utilites will work correctly with whitespace embedded in
336  parameters if it is appropriate for the context (for example, whitespace  parameters if it is appropriate for the context (for example, whitespace
337  may be appropriate in a path name but not appropriate within an integer).  may be appropriate in a path name but not appropriate within an integer).
338    
339  In this section, each different type of parameter is given a symbolic  In this section, each different type of parameter is given a symbolic
340  tag (\texttt{urn}, for example).  This symbolic tag is used in the description  tag (\texttt{urn}, for example).  This symbolic tag is used in the description
341  of Tcl extensions and DOS utilities to denote parameters.  In some cases,  of Tcl extensions and DOS utilities to denote parameters.  In some cases,
342  additional descriptive information is concatenated to the symbolic  additional descriptive information is concatenated to the symbolic
343  tag (\texttt{divisor\_urn} or \texttt{urn\_divisor}, for example) to  tag (\texttt{divisor\_urn} or \texttt{urn\_divisor}, for example) to
344  indicate the role the parameter fills.  indicate the role the parameter fills.
345    
346    
347  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
348  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
349  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
350  \subsection{\texttt{winfname} Parameter Format}  \subsection{\texttt{winfname} Parameter Format}
351  %Section Tag: WNF0  %Section Tag: WNF0
352  \label{ctin0:sccl0:swnf0}  \label{ctin0:sccl0:swnf0}
353    
354  \index{winfname@\texttt{winfname}}  \index{winfname@\texttt{winfname}}
355  \texttt{winfname} is used to indicate a file whose name is used only through  \texttt{winfname} is used to indicate a file whose name is used only through
356  the Windows operating system (i.e. to open a file, read from a file, etc.).  File  the Windows operating system (i.e. to open a file, read from a file, etc.).  File
357  names are ultimately arbitrated by the underlying operating system, which  names are ultimately arbitrated by the underlying operating system, which
358  in the case of any of \emph{The Iju Tool Set} components will always be a variant  in the case of any of \emph{The Iju Tool Set} components will always be a variant
359  of Microsoft Windows.  of Microsoft Windows.
360  A parameter of type \texttt{winfname} may be any file name which Windows  A parameter of type \texttt{winfname} may be any file name which Windows
361  will accept.  will accept.
362    
363  Note in parameters of type \texttt{winfname} that backslashes (`$\backslash$')  Note in parameters of type \texttt{winfname} that backslashes (`$\backslash$')
364  must normally be used in paths rather than forward slashes  must normally be used in paths rather than forward slashes
365  (`/').\footnote{Note that this is different than the path conventions in Tcl  (`/').\footnote{Note that this is different than the path conventions in Tcl
366  scripts.  The reason for this is that Tcl seeks to be operating system  scripts.  The reason for this is that Tcl seeks to be operating system
367  independent, so that the path separator is standardized to be the  independent, so that the path separator is standardized to be the
368  forward slash.}  forward slash.}
369    
370    
371  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
372  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
374  \subsection{\texttt{tclfname} Parameter Format}  \subsection{\texttt{tclfname} Parameter Format}
375  %Section Tag: TCF0  %Section Tag: TCF0
376  \label{ctin0:sccl0:stcf0}  \label{ctin0:sccl0:stcf0}
377    
378  \index{tclfname@\texttt{tclfname}}  \index{tclfname@\texttt{tclfname}}
379  \texttt{tclfname} is used to indicate a file name as specified within a Tcl  \texttt{tclfname} is used to indicate a file name as specified within a Tcl
380  script.  This is normally the same as a Windows file name, except that  script.  This is normally the same as a Windows file name, except that
381  the forward slash rather than the backslash is used as the path separator.  the forward slash rather than the backslash is used as the path separator.
382    
383    
384  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
385  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
386  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
387  \subsection{\texttt{winfpath} Parameter Format}  \subsection{\texttt{winfpath} Parameter Format}
388  %Section Tag: WFP0  %Section Tag: WFP0
389  \label{ctin0:sccl0:swfp0}  \label{ctin0:sccl0:swfp0}
390    
391  \index{winfpath@\texttt{winfpath}}  \index{winfpath@\texttt{winfpath}}
392  \texttt{winfpath} is used to indicate a directory path in a format  \texttt{winfpath} is used to indicate a directory path in a format
393  acceptable to Microsoft Windows.  This means that the path  acceptable to Microsoft Windows.  This means that the path
394  separator is the backslash rather than the forward slash.  In nearly all  separator is the backslash rather than the forward slash.  In nearly all
395  cases the the path name may be specified with or without a trailing backslash.  cases the the path name may be specified with or without a trailing backslash.
396    
397    
398  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
399  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
400  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
401  \subsection{\texttt{tclfpath} Parameter Format}  \subsection{\texttt{tclfpath} Parameter Format}
402  %Section Tag: TCF1  %Section Tag: TCF1
403  \label{ctin0:sccl0:stcf1}  \label{ctin0:sccl0:stcf1}
404    
405  \index{tclfpath@\texttt{tclfpath}}  \index{tclfpath@\texttt{tclfpath}}
406  \texttt{tclfpath} is used to indicate a directory path in a format  \texttt{tclfpath} is used to indicate a directory path in a format
407  acceptable inside a Tcl script.  This means that the path  acceptable inside a Tcl script.  This means that the path
408  separator is the forward slash rather than the backslash.  separator is the forward slash rather than the backslash.
409  In nearly all cases the path name may be specified with or without  In nearly all cases the path name may be specified with or without
410  a trailing forward slash.  a trailing forward slash.
411    
412    
413  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
414  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
415  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
416  \subsection{\texttt{uint} Parameter Format}  \subsection{\texttt{uint} Parameter Format}
417  %Section Tag: UIN0  %Section Tag: UIN0
418  \label{ctin0:sccl0:suin0}  \label{ctin0:sccl0:suin0}
419    
420  \index{uint@\texttt{uint}}  \index{uint@\texttt{uint}}
421  \texttt{uint} is used to indicate an arbitrarily large unsigned integer  \texttt{uint} is used to indicate an arbitrarily large unsigned integer
422  (\emph{unsigned} means non-negative).  The following formats are accepted:  (\emph{unsigned} means non-negative).  The following formats are accepted:
423    
424  \begin{itemize}  \begin{itemize}
425  \item \emph{A string of digits.}  Examples: ``0'', ``342'', ``4912947'', etc.  \item \emph{A string of digits.}  Examples: ``0'', ``342'', ``4912947'', etc.
426        Note in this format that the only acceptable representation of        Note in this format that the only acceptable representation of
427        zero is ``0'' (``00'' will not be accepted).        zero is ``0'' (``00'' will not be accepted).
428  \item \emph{A string of digits with commas.}  Examples: ``0'',  \item \emph{A string of digits with commas.}  Examples: ``0'',
429        ``342'', ``4,921''.  Note that if \emph{any} commas occur        ``342'', ``4,921''.  Note that if \emph{any} commas occur
430        in the string of digits, \emph{every} comma must be        in the string of digits, \emph{every} comma must be
431        properly placed.  For example, ``49,241,34'' will not be accepted        properly placed.  For example, ``49,241,34'' will not be accepted
432        as an integer.  In this format, the only acceptable representation        as an integer.  In this format, the only acceptable representation
433        of zero is ``0''.        of zero is ``0''.
434  \item \emph{An integer expressed as a number in scientific notation.}  \item \emph{An integer expressed as a number in scientific notation.}
435        ``3.14e2'' will be accepted as the integer ``314''.  Numbers in        ``3.14e2'' will be accepted as the integer ``314''.  Numbers in
436        scientific notation that do not evaluate to integers, such        scientific notation that do not evaluate to integers, such
437        as ``3.12e1'', will not be accepted.        as ``3.12e1'', will not be accepted.
438  \end{itemize}  \end{itemize}
439    
440    
441  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
442  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444  \subsection{\texttt{sint} Parameter Format}  \subsection{\texttt{sint} Parameter Format}
445  %Section Tag: SIN0  %Section Tag: SIN0
446  \label{ctin0:sccl0:ssin0}  \label{ctin0:sccl0:ssin0}
447    
448  \index{sint@\texttt{sint}}  \index{sint@\texttt{sint}}
449  \texttt{sint} is used to indicate a signed integer  \texttt{sint} is used to indicate a signed integer
450  of arbitrary magnitude.  (By \emph{signed} we mean  of arbitrary magnitude.  (By \emph{signed} we mean
451  that the integer may be negative, zero, or positive.)  that the integer may be negative, zero, or positive.)
452    
453  Any format described for the \emph{uint} parameter format  Any format described for the \emph{uint} parameter format
454  in Section \ref{ctin0:sccl0:suin0} (immediately above)  in Section \ref{ctin0:sccl0:suin0} (immediately above)
455  will be accepted, with the relaxation that a minus sign  will be accepted, with the relaxation that a minus sign
456  (`-') may be included in front of the integer.  As described  (`-') may be included in front of the integer.  As described
457  above, the integer zero may have only one `0' digit.  above, the integer zero may have only one `0' digit.
458  Additionally, the parsing strategies have been relaxed to  Additionally, the parsing strategies have been relaxed to
459  allow zero to be negated, i.e. ``-0'' is allowed (but  allow zero to be negated, i.e. ``-0'' is allowed (but
460  ``-00'' is not).  \footnote{This parsing relaxation was made to allow for the  ``-00'' is not).  \footnote{This parsing relaxation was made to allow for the
461  possibility that some software may output negative numbers  possibility that some software may output negative numbers
462  close to zero in forms such as ``-0.000e+000''.  The  close to zero in forms such as ``-0.000e+000''.  The
463  permissiveness in the parsing was deliberate.}  permissiveness in the parsing was deliberate.}
464    
465    
466  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
467  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
468  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
469  \subsection{The \texttt{uint8}, \texttt{uint16},  \subsection{The \texttt{uint8}, \texttt{uint16},
470              \texttt{uint24},              \texttt{uint24},
471              \texttt{uint32}, \texttt{uint64}, And              \texttt{uint32}, \texttt{uint64}, And
472              \texttt{uint128} Parameter Formats}              \texttt{uint128} Parameter Formats}
473  %Section Tag: UIG0  %Section Tag: UIG0
474  \label{ctin0:sccl0:suig0}  \label{ctin0:sccl0:suig0}
475    
476  \index{uint8@\texttt{uint8}}  \index{uint8@\texttt{uint8}}
477  \index{uint16@\texttt{uint16}}  \index{uint16@\texttt{uint16}}
478  \index{uint24@\texttt{uint24}}  \index{uint24@\texttt{uint24}}
479  \index{uint32@\texttt{uint32}}  \index{uint32@\texttt{uint32}}
480  \index{uint64@\texttt{uint64}}  \index{uint64@\texttt{uint64}}
481  \index{uint128@\texttt{uint128}}  \index{uint128@\texttt{uint128}}
482  The \texttt{uint8}, \texttt{uint16},  The \texttt{uint8}, \texttt{uint16},
483  \texttt{uint32}, \texttt{uint64}, and  \texttt{uint32}, \texttt{uint64}, and
484  \texttt{uint128} are unsigned integers with the  \texttt{uint128} are unsigned integers with the
485  number of bits implied by the name.  Such integers  number of bits implied by the name.  Such integers
486  may assume values from 0 through $2^{N} - 1$,  may assume values from 0 through $2^{N} - 1$,
487  where $N$ is the number of bits.  where $N$ is the number of bits.
488    
489  For example, a \texttt{uint8} may assume values from  For example, a \texttt{uint8} may assume values from
490  0 through 255.  0 through 255.
491    
492    
493  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
494  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
495  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
496  \subsection{The \texttt{sint8}, \texttt{sint16},  \subsection{The \texttt{sint8}, \texttt{sint16},
497              \texttt{sint24},              \texttt{sint24},
498              \texttt{sint32}, \texttt{sint64}, And              \texttt{sint32}, \texttt{sint64}, And
499              \texttt{sint128} Parameter Formats}              \texttt{sint128} Parameter Formats}
500  %Section Tag: SIG0  %Section Tag: SIG0
501  \label{ctin0:sccl0:ssig0}  \label{ctin0:sccl0:ssig0}
502    
503  \index{sint8@\texttt{sint8}}  \index{sint8@\texttt{sint8}}
504  \index{sint16@\texttt{sint16}}  \index{sint16@\texttt{sint16}}
505  \index{sint24@\texttt{sint24}}  \index{sint24@\texttt{sint24}}
506  \index{sint32@\texttt{sint32}}  \index{sint32@\texttt{sint32}}
507  \index{sint64@\texttt{sint64}}  \index{sint64@\texttt{sint64}}
508  \index{sint128@\texttt{sint128}}  \index{sint128@\texttt{sint128}}
509  The \texttt{sint8}, \texttt{sint16},  The \texttt{sint8}, \texttt{sint16},
510  \texttt{sint32}, \texttt{sint64}, and  \texttt{sint32}, \texttt{sint64}, and
511  \texttt{sint128} are signed integers with the  \texttt{sint128} are signed integers with the
512  number of bits implied by the name.  Such integers  number of bits implied by the name.  Such integers
513  may assume values from $-2^{N-1}$ through $2^{N-1} - 1$,  may assume values from $-2^{N-1}$ through $2^{N-1} - 1$,
514  where $N$ is the number of bits.  where $N$ is the number of bits.
515    
516  For example, a \texttt{sint8} may assume values from  For example, a \texttt{sint8} may assume values from
517  -128 through 127.  -128 through 127.
518    
519    
520  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
521  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
522  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
523  \subsection{The \texttt{rint8}, \texttt{rint16}, \texttt{rint24},  \subsection{The \texttt{rint8}, \texttt{rint16}, \texttt{rint24},
524              \texttt{rint32}, \texttt{rint64}, And              \texttt{rint32}, \texttt{rint64}, And
525              \texttt{rint128} Parameter Formats}              \texttt{rint128} Parameter Formats}
526  %Section Tag: RIG0  %Section Tag: RIG0
527  \label{ctin0:sccl0:srig0}  \label{ctin0:sccl0:srig0}
528    
529  \index{rint8@\texttt{rint8}}  \index{rint8@\texttt{rint8}}
530  \index{rint16@\texttt{rint16}}  \index{rint16@\texttt{rint16}}
531  \index{rint24@\texttt{rint24}}  \index{rint24@\texttt{rint24}}
532  \index{rint32@\texttt{rint32}}  \index{rint32@\texttt{rint32}}
533  \index{rint64@\texttt{rint64}}  \index{rint64@\texttt{rint64}}
534  \index{rint128@\texttt{rint128}}  \index{rint128@\texttt{rint128}}
535  The \texttt{rint8}, \texttt{rint16},  The \texttt{rint8}, \texttt{rint16},
536  \texttt{rint32}, \texttt{rint64}, and  \texttt{rint32}, \texttt{rint64}, and
537  \texttt{rint128} are unsigned (i.e. non-negative)  \texttt{rint128} are unsigned (i.e. non-negative)
538  integers which do not exceed the maximum positive  integers which do not exceed the maximum positive
539  value that a signed integer of the same size could  value that a signed integer of the same size could
540  attain.  Such integers may assume values from 0  attain.  Such integers may assume values from 0
541  through $2^{N-1} - 1$,  through $2^{N-1} - 1$,
542  where $N$ is the number of bits.  where $N$ is the number of bits.
543    
544  For example, a \texttt{rint8} may assume values from  For example, a \texttt{rint8} may assume values from
545  0 through 127.  0 through 127.
546    
547    
548  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
549  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
550  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
551  \subsection{The \texttt{urn} Parameter Formats}  \subsection{The \texttt{urn} Parameter Formats}
552  %Section Tag: URN0  %Section Tag: URN0
553  \label{ctin0:sccl0:surn0}  \label{ctin0:sccl0:surn0}
554    
555  \index{urn@\texttt{urn}}  \index{urn@\texttt{urn}}
556  The \texttt{urn} parameter type is a non-negative rational number with  The \texttt{urn} parameter type is a non-negative rational number with
557  non-negative integer components of arbitrary magnitude.    non-negative integer components of arbitrary magnitude.  
558  There are two ways to specify such a rational  There are two ways to specify such a rational
559  number.  number.
560    
561  \begin{enumerate}  \begin{enumerate}
562  \item \emph{Integer components, separated by a forward slash.}  \item \emph{Integer components, separated by a forward slash.}
563        ``1/3'', ``0/49'', and ``36/1e31'' are acceptable.  A denominator        ``1/3'', ``0/49'', and ``36/1e31'' are acceptable.  A denominator
564        of zero is not allowed.        of zero is not allowed.
565  \item \emph{A number in scientific notation.}  The general accepted  \item \emph{A number in scientific notation.}  The general accepted
566        form is        form is
567    
568        \texttt{[digs|digs.|.digs|digs.digs][e|E[[+|-]digs]]},        \texttt{[digs|digs.|.digs|digs.digs][e|E[[+|-]digs]]},
569    
570        where \texttt{digs} represents a series of digits and the        where \texttt{digs} represents a series of digits and the
571        vertical bar (`\texttt{|}') separates a string of parameters,        vertical bar (`\texttt{|}') separates a string of parameters,
572        only one of which is allowed to appear.  Numbers of this        only one of which is allowed to appear.  Numbers of this
573        type are always rational and will be converted to a rational        type are always rational and will be converted to a rational
574        number for calculation.  A unary `+' before the mantissa is allowed.        number for calculation.  A unary `+' before the mantissa is allowed.
575  \end{enumerate}  \end{enumerate}
576    
577    
578  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
579  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
580  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
581  \subsection{The \texttt{srn} Parameter Formats}  \subsection{The \texttt{srn} Parameter Formats}
582  %Section Tag: SRN0  %Section Tag: SRN0
583  \label{ctin0:sccl0:ssrn0}  \label{ctin0:sccl0:ssrn0}
584    
585  \index{srn@\texttt{srn}}  \index{srn@\texttt{srn}}
586  The \texttt{srn} parameter type is a signed arbitrary rational number  The \texttt{srn} parameter type is a signed arbitrary rational number
587  (by \emph{signed} we mean that it may be negative, zero, or positive).  (by \emph{signed} we mean that it may be negative, zero, or positive).
588  This format is identical to the format  This format is identical to the format
589  described in Section \ref{ctin0:sccl0:surn0}, immediately above,  described in Section \ref{ctin0:sccl0:surn0}, immediately above,
590  with the relaxation that a unary `-' is allowed to indicate a  with the relaxation that a unary `-' is allowed to indicate a
591  negative number.  negative number.
592    
593    
594  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
595  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
596  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
597  \section{A High-Speed Tour Of Tcl And Tk}  \section{A High-Speed Tour Of Tcl And Tk}
598    
599  \subsection{Invoking Tclsh, Wish, IjuScripter, And IjuConsole}  \subsection{Invoking Tclsh, Wish, IjuScripter, And IjuConsole}
600    
601  \subsection{General Features Of Tcl}  \subsection{General Features Of Tcl}
602    
603  \subsection{Statements}  \subsection{Statements}
604    
605  \subsection{Procedures}  \subsection{Procedures}
606    
607  \subsection{The \emph{expr} Command}  \subsection{The \emph{expr} Command}
608    
609  \subsection{Conditional Control Constructs}  \subsection{Conditional Control Constructs}
610    
611  \subsection{Looping Constructs}  \subsection{Looping Constructs}
612    
613  \subsection{File And Console I/O}  \subsection{File And Console I/O}
614    
615  \subsection{Obtaining Command-Line Arguments}  \subsection{Obtaining Command-Line Arguments}
616    
617  \subsection{A Sample Program}  \subsection{A Sample Program}
618    
619    
620  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
621  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
622  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
623  \section{Additional Resources For Learning Tcl And Tk}  \section{Additional Resources For Learning Tcl And Tk}
624    
625  This chapter has provided a brief tutorial of Tcl and Tk---enough  This chapter has provided a brief tutorial of Tcl and Tk---enough
626  information to begin writing basic scripts which use the microcontroller  information to begin writing basic scripts which use the microcontroller
627  extensions in IjuTools.  However, to use Tcl and Tk in a competent  extensions in IjuTools.  However, to use Tcl and Tk in a competent
628  fashion, additional materials and additional study are required.  fashion, additional materials and additional study are required.
629    
630    
631    
632    
633  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
634  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
635  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
636  \section{Acknowledgements}  \section{Acknowledgements}
637    
638  What I've called \emph{The Iju Tool Set} would not have been possible in  What I've called \emph{The Iju Tool Set} would not have been possible in
639  its present form without the outstanding technical work by the engineers  its present form without the outstanding technical work by the engineers
640  at Scriptics, Ajuba Solutions, and Interwoven; plus contributors and  at Scriptics, Ajuba Solutions, and Interwoven; plus contributors and
641  newsgroup posters from all over the world.  I had discussed with colleagues  newsgroup posters from all over the world.  I had discussed with colleagues
642  the possibility of an interpreted language to integrate tools, but I never  the possibility of an interpreted language to integrate tools, but I never
643  could have done such a masterful job as Scriptics has done; and I was fortunate  could have done such a masterful job as Scriptics has done; and I was fortunate
644  to discover Tcl/Tk.  to discover Tcl/Tk.
645    
646  For proposing Tcl and Tk as a solution to my particular integration  For proposing Tcl and Tk as a solution to my particular integration
647  problem, I'm grateful to Les Hatton \cite{bibref:i:leshatton}.    problem, I'm grateful to Les Hatton \cite{bibref:i:leshatton}.  
648    
649  For generous  For generous
650  technical support from Scriptics/Ajuba/Interwoven, I'm grateful to  technical support from Scriptics/Ajuba/Interwoven, I'm grateful to
651  Jeff Hobbs \cite{bibref:i:jeffreyhobbs}, Dan Kuchler \cite{bibref:i:dankuchler},  Jeff Hobbs \cite{bibref:i:jeffreyhobbs}, Dan Kuchler \cite{bibref:i:dankuchler},
652  and John Ousterhout \cite{bibref:i:johnousterhout}.  and John Ousterhout \cite{bibref:i:johnousterhout}.
653  I'm also grateful to all of the newsgroup posters who  I'm also grateful to all of the newsgroup posters who
654  answered questions and offered suggestions, including  answered questions and offered suggestions, including
655  but not limited to Jan Nijtmans and Dave Graveaux.  but not limited to Jan Nijtmans and Dave Graveaux.
656    
657  For providing a solution (the \emph{mktclapp} program) which allows  For providing a solution (the \emph{mktclapp} program) which allows
658  the construction of a standalone Wish executable without the  the construction of a standalone Wish executable without the
659  requirement for external library script files, I'm grateful to  requirement for external library script files, I'm grateful to
660  D. Richard Hipp \cite{bibref:i:drichardhipp}.  D. Richard Hipp \cite{bibref:i:drichardhipp}.
661    
662  For testing installation packages and executables for the  For testing installation packages and executables for the
663  Win32 platform and offering  Win32 platform and offering
664  prompt and detailed feedback about problems, I'm grateful to  prompt and detailed feedback about problems, I'm grateful to
665  Mirza Kolokovic \cite{bibref:i:mirzakolakovic}.  Mirza Kolokovic \cite{bibref:i:mirzakolakovic}.
666    
667  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
668  \noindent\begin{figure}[!b]  \noindent\begin{figure}[!b]
669  \noindent\rule[-0.25in]{\textwidth}{1pt}  \noindent\rule[-0.25in]{\textwidth}{1pt}
670  \begin{tiny}  \begin{tiny}
671  \begin{verbatim}  \begin{verbatim}
672  $RCSfile: c_tin0.tex,v $  $RCSfile: c_tin0.tex,v $
673  $Source: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/c_tin0/c_tin0.tex,v $  $Source: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/c_tin0/c_tin0.tex,v $
674  $Revision: 1.6 $  $Revision: 1.6 $
675  $Author: dtashley $  $Author: dtashley $
676  $Date: 2003/11/03 02:14:24 $  $Date: 2003/11/03 02:14:24 $
677  \end{verbatim}  \end{verbatim}
678  \end{tiny}  \end{tiny}
679  \noindent\rule[0.25in]{\textwidth}{1pt}  \noindent\rule[0.25in]{\textwidth}{1pt}
680  \end{figure}  \end{figure}
681    
682  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
683  % $Log: c_tin0.tex,v $  % $Log: c_tin0.tex,v $
684  % Revision 1.6  2003/11/03 02:14:24  dtashley  % Revision 1.6  2003/11/03 02:14:24  dtashley
685  % All duplicate labels as flagged by LaTeX removed.  Additional files added  % All duplicate labels as flagged by LaTeX removed.  Additional files added
686  % to Microsoft Visual Studio edit context.  % to Microsoft Visual Studio edit context.
687  %  %
688  % Revision 1.5  2001/08/18 18:37:56  dtashley  % Revision 1.5  2001/08/18 18:37:56  dtashley
689  % Preparation for v1.05 release.  % Preparation for v1.05 release.
690  %  %
691  % Revision 1.4  2001/08/16 19:53:27  dtashley  % Revision 1.4  2001/08/16 19:53:27  dtashley
692  % Beginning to prepare for v1.05 release.  % Beginning to prepare for v1.05 release.
693  %  %
694  % Revision 1.3  2001/07/30 02:54:17  dtashley  % Revision 1.3  2001/07/30 02:54:17  dtashley
695  % INTFAC extension and command-line utility finished.  % INTFAC extension and command-line utility finished.
696  %  %
697  % Revision 1.2  2001/07/01 20:42:51  dtashley  % Revision 1.2  2001/07/01 20:42:51  dtashley
698  % Move out of binary mode for use with CVS.  % Move out of binary mode for use with CVS.
699  %  %
700  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
701  % $History: c_tin0.tex $  % $History: c_tin0.tex $
702  %  %
703  % *****************  Version 4  *****************  % *****************  Version 4  *****************
704  % User: Dashley1     Date: 1/01/01    Time: 8:13p  % User: Dashley1     Date: 1/01/01    Time: 8:13p
705  % Updated in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction  % Updated in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction
706  % Edits.  % Edits.
707  %  %
708  % *****************  Version 3  *****************  % *****************  Version 3  *****************
709  % User: Dashley1     Date: 12/31/00   Time: 7:42p  % User: Dashley1     Date: 12/31/00   Time: 7:42p
710  % Updated in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction  % Updated in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction
711  %  %
712  % *****************  Version 2  *****************  % *****************  Version 2  *****************
713  % User: Dashley1     Date: 12/22/00   Time: 12:56a  % User: Dashley1     Date: 12/22/00   Time: 12:56a
714  % Updated in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction  % Updated in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction
715  % Tcl automated method of build refined.  % Tcl automated method of build refined.
716  %  %
717  % *****************  Version 1  *****************  % *****************  Version 1  *****************
718  % User: David Ashley Date: 11/29/00   Time: 5:45p  % User: David Ashley Date: 11/29/00   Time: 5:45p
719  % Created in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction  % Created in $/uC Software Multi-Volume Book (A)/Chapter, TIN0, Tool Introduction
720  % Initial check-in.  % Initial check-in.
721  %  %
722  %End of file C_TIN0.TEX  %End of file C_TIN0.TEX

Legend:
Removed from v.139  
changed lines
  Added in v.140

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25