Browse Source

Added KDE3 version of ktechlab


git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/ktechlab@1095338 283d02a7-25f6-0310-bc7c-ecb5cbfe19
tpearson 9 years ago
commit
5de3dd4762
100 changed files with 29722 additions and 0 deletions
  1. 2
    0
      AUTHORS
  2. 280
    0
      COPYING
  3. 56
    0
      ChangeLog
  4. 167
    0
      INSTALL
  5. 5
    0
      Makefile.am
  6. 10
    0
      Makefile.cvs
  7. 0
    0
      NEWS
  8. 1
    0
      README
  9. 49
    0
      TODO
  10. 11630
    0
      acinclude.m4
  11. 12463
    0
      aclocal.m4
  12. 1561
    0
      config.guess
  13. 256
    0
      config.h.in
  14. 341
    0
      config.log
  15. 1686
    0
      config.sub
  16. 2
    0
      configure.files
  17. 248
    0
      configure.in
  18. 142
    0
      configure.in.in
  19. 7
    0
      doc/Makefile.am
  20. 7
    0
      doc/en/Makefile.am
  21. 84
    0
      doc/en/circuits.docbook
  22. 35
    0
      doc/en/debugging.docbook
  23. 68
    0
      doc/en/faq.docbook
  24. 52
    0
      doc/en/flowcode.docbook
  25. 56
    0
      doc/en/index.docbook
  26. 422
    0
      doc/en/microbe.docbook
  27. 44
    0
      doc/en/picprograms.docbook
  28. 42
    0
      doc/en/quick.docbook
  29. 6
    0
      icons/Makefile.am
  30. BIN
      icons/hi128-app-ktechlab.png
  31. BIN
      icons/hi128-app-microbe.png
  32. BIN
      icons/hi128-mime-ktechlab_circuit.png
  33. BIN
      icons/hi128-mime-ktechlab_flowcode.png
  34. BIN
      icons/hi128-mime-ktechlab_microbe.png
  35. BIN
      icons/hi16-action-convert_to_assembly.png
  36. BIN
      icons/hi16-action-convert_to_hex.png
  37. BIN
      icons/hi16-action-convert_to_microbe.png
  38. BIN
      icons/hi16-action-convert_to_pic.png
  39. BIN
      icons/hi16-action-indent_asm.png
  40. BIN
      icons/hi16-action-logic_or.png
  41. BIN
      icons/hi16-action-null.png
  42. BIN
      icons/hi16-action-oscilloscope.png
  43. BIN
      icons/hi16-action-tool_arrow.png
  44. BIN
      icons/hi16-action-tool_ellipse.png
  45. BIN
      icons/hi16-action-tool_line.png
  46. BIN
      icons/hi16-action-tool_rectangle.png
  47. BIN
      icons/hi16-action-tool_text.png
  48. BIN
      icons/hi16-app-ktechlab.png
  49. BIN
      icons/hi16-app-microbe.png
  50. BIN
      icons/hi16-mime-ktechlab_circuit.png
  51. BIN
      icons/hi16-mime-ktechlab_flowcode.png
  52. BIN
      icons/hi16-mime-ktechlab_microbe.png
  53. BIN
      icons/hi22-action-convert_to_assembly.png
  54. BIN
      icons/hi22-action-convert_to_hex.png
  55. BIN
      icons/hi22-action-convert_to_microbe.png
  56. BIN
      icons/hi22-action-convert_to_pic.png
  57. BIN
      icons/hi22-action-dbgnext.png
  58. BIN
      icons/hi22-action-dbgrun.png
  59. BIN
      icons/hi22-action-dbgstep.png
  60. BIN
      icons/hi22-action-dbgstepout.png
  61. BIN
      icons/hi22-action-indent_asm.png
  62. BIN
      icons/hi22-action-logic_or.png
  63. BIN
      icons/hi22-app-ktechlab.png
  64. BIN
      icons/hi22-app-microbe.png
  65. BIN
      icons/hi22-mime-ktechlab_circuit.png
  66. BIN
      icons/hi22-mime-ktechlab_flowcode.png
  67. BIN
      icons/hi22-mime-ktechlab_microbe.png
  68. BIN
      icons/hi32-action-convert_to_assembly.png
  69. BIN
      icons/hi32-action-convert_to_hex.png
  70. BIN
      icons/hi32-action-convert_to_microbe.png
  71. BIN
      icons/hi32-action-convert_to_pic.png
  72. BIN
      icons/hi32-action-indent_asm.png
  73. BIN
      icons/hi32-action-logic_or.png
  74. BIN
      icons/hi32-app-ktechlab.png
  75. BIN
      icons/hi32-app-microbe.png
  76. BIN
      icons/hi32-mime-ktechlab_circuit.png
  77. BIN
      icons/hi32-mime-ktechlab_flowcode.png
  78. BIN
      icons/hi32-mime-ktechlab_microbe.png
  79. BIN
      icons/hi48-action-convert_to_assembly.png
  80. BIN
      icons/hi48-action-convert_to_hex.png
  81. BIN
      icons/hi48-action-convert_to_microbe.png
  82. BIN
      icons/hi48-action-convert_to_pic.png
  83. BIN
      icons/hi48-action-indent_asm.png
  84. BIN
      icons/hi48-action-logic_or.png
  85. BIN
      icons/hi48-app-ktechlab.png
  86. BIN
      icons/hi48-app-microbe.png
  87. BIN
      icons/hi48-mime-ktechlab_circuit.png
  88. BIN
      icons/hi48-mime-ktechlab_flowcode.png
  89. BIN
      icons/hi48-mime-ktechlab_microbe.png
  90. BIN
      icons/hi64-action-convert_to_assembly.png
  91. BIN
      icons/hi64-action-convert_to_hex.png
  92. BIN
      icons/hi64-action-convert_to_microbe.png
  93. BIN
      icons/hi64-action-convert_to_pic.png
  94. BIN
      icons/hi64-action-indent_asm.png
  95. BIN
      icons/hi64-action-logic_or.png
  96. BIN
      icons/hi64-app-ktechlab.png
  97. BIN
      icons/hi64-app-microbe.png
  98. BIN
      icons/hi64-mime-ktechlab_circuit.png
  99. BIN
      icons/hi64-mime-ktechlab_flowcode.png
  100. 0
    0
      icons/hi64-mime-ktechlab_microbe.png

+ 2
- 0
AUTHORS View File

@@ -0,0 +1,2 @@
1
+David Saxton <david@bluehaze.org>
2
+Daniel Clarke <daniel.jc@gmail.com>

+ 280
- 0
COPYING View File

@@ -0,0 +1,280 @@
1
+		    GNU GENERAL PUBLIC LICENSE
2
+		       Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
+               51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+			    Preamble
10
+
11
+  The licenses for most software are designed to take away your
12
+freedom to share and change it.  By contrast, the GNU General Public
13
+License is intended to guarantee your freedom to share and change free
14
+software--to make sure the software is free for all its users.  This
15
+General Public License applies to most of the Free Software
16
+Foundation's software and to any other program whose authors commit to
17
+using it.  (Some other Free Software Foundation software is covered by
18
+the GNU Library General Public License instead.)  You can apply it to
19
+your programs, too.
20
+
21
+  When we speak of free software, we are referring to freedom, not
22
+price.  Our General Public Licenses are designed to make sure that you
23
+have the freedom to distribute copies of free software (and charge for
24
+this service if you wish), that you receive source code or can get it
25
+if you want it, that you can change the software or use pieces of it
26
+in new free programs; and that you know you can do these things.
27
+
28
+  To protect your rights, we need to make restrictions that forbid
29
+anyone to deny you these rights or to ask you to surrender the rights.
30
+These restrictions translate to certain responsibilities for you if you
31
+distribute copies of the software, or if you modify it.
32
+
33
+  For example, if you distribute copies of such a program, whether
34
+gratis or for a fee, you must give the recipients all the rights that
35
+you have.  You must make sure that they, too, receive or can get the
36
+source code.  And you must show them these terms so they know their
37
+rights.
38
+
39
+  We protect your rights with two steps: (1) copyright the software, and
40
+(2) offer you this license which gives you legal permission to copy,
41
+distribute and/or modify the software.
42
+
43
+  Also, for each author's protection and ours, we want to make certain
44
+that everyone understands that there is no warranty for this free
45
+software.  If the software is modified by someone else and passed on, we
46
+want its recipients to know that what they have is not the original, so
47
+that any problems introduced by others will not reflect on the original
48
+authors' reputations.
49
+
50
+  Finally, any free program is threatened constantly by software
51
+patents.  We wish to avoid the danger that redistributors of a free
52
+program will individually obtain patent licenses, in effect making the
53
+program proprietary.  To prevent this, we have made it clear that any
54
+patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+  The precise terms and conditions for copying, distribution and
57
+modification follow.
58
+
59
+		    GNU GENERAL PUBLIC LICENSE
60
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+  0. This License applies to any program or other work which contains
63
+a notice placed by the copyright holder saying it may be distributed
64
+under the terms of this General Public License.  The "Program", below,
65
+refers to any such program or work, and a "work based on the Program"
66
+means either the Program or any derivative work under copyright law:
67
+that is to say, a work containing the Program or a portion of it,
68
+either verbatim or with modifications and/or translated into another
69
+language.  (Hereinafter, translation is included without limitation in
70
+the term "modification".)  Each licensee is addressed as "you".
71
+
72
+Activities other than copying, distribution and modification are not
73
+covered by this License; they are outside its scope.  The act of
74
+running the Program is not restricted, and the output from the Program
75
+is covered only if its contents constitute a work based on the
76
+Program (independent of having been made by running the Program).
77
+Whether that is true depends on what the Program does.
78
+
79
+  1. You may copy and distribute verbatim copies of the Program's
80
+source code as you receive it, in any medium, provided that you
81
+conspicuously and appropriately publish on each copy an appropriate
82
+copyright notice and disclaimer of warranty; keep intact all the
83
+notices that refer to this License and to the absence of any warranty;
84
+and give any other recipients of the Program a copy of this License
85
+along with the Program.
86
+
87
+You may charge a fee for the physical act of transferring a copy, and
88
+you may at your option offer warranty protection in exchange for a fee.
89
+
90
+  2. You may modify your copy or copies of the Program or any portion
91
+of it, thus forming a work based on the Program, and copy and
92
+distribute such modifications or work under the terms of Section 1
93
+above, provided that you also meet all of these conditions:
94
+
95
+    a) You must cause the modified files to carry prominent notices
96
+    stating that you changed the files and the date of any change.
97
+
98
+    b) You must cause any work that you distribute or publish, that in
99
+    whole or in part contains or is derived from the Program or any
100
+    part thereof, to be licensed as a whole at no charge to all third
101
+    parties under the terms of this License.
102
+
103
+    c) If the modified program normally reads commands interactively
104
+    when run, you must cause it, when started running for such
105
+    interactive use in the most ordinary way, to print or display an
106
+    announcement including an appropriate copyright notice and a
107
+    notice that there is no warranty (or else, saying that you provide
108
+    a warranty) and that users may redistribute the program under
109
+    these conditions, and telling the user how to view a copy of this
110
+    License.  (Exception: if the Program itself is interactive but
111
+    does not normally print such an announcement, your work based on
112
+    the Program is not required to print an announcement.)
113
+
114
+These requirements apply to the modified work as a whole.  If
115
+identifiable sections of that work are not derived from the Program,
116
+and can be reasonably considered independent and separate works in
117
+themselves, then this License, and its terms, do not apply to those
118
+sections when you distribute them as separate works.  But when you
119
+distribute the same sections as part of a whole which is a work based
120
+on the Program, the distribution of the whole must be on the terms of
121
+this License, whose permissions for other licensees extend to the
122
+entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+Thus, it is not the intent of this section to claim rights or contest
125
+your rights to work written entirely by you; rather, the intent is to
126
+exercise the right to control the distribution of derivative or
127
+collective works based on the Program.
128
+
129
+In addition, mere aggregation of another work not based on the Program
130
+with the Program (or with a work based on the Program) on a volume of
131
+a storage or distribution medium does not bring the other work under
132
+the scope of this License.
133
+
134
+  3. You may copy and distribute the Program (or a work based on it,
135
+under Section 2) in object code or executable form under the terms of
136
+Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+    a) Accompany it with the complete corresponding machine-readable
139
+    source code, which must be distributed under the terms of Sections
140
+    1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+    b) Accompany it with a written offer, valid for at least three
143
+    years, to give any third party, for a charge no more than your
144
+    cost of physically performing source distribution, a complete
145
+    machine-readable copy of the corresponding source code, to be
146
+    distributed under the terms of Sections 1 and 2 above on a medium
147
+    customarily used for software interchange; or,
148
+
149
+    c) Accompany it with the information you received as to the offer
150
+    to distribute corresponding source code.  (This alternative is
151
+    allowed only for noncommercial distribution and only if you
152
+    received the program in object code or executable form with such
153
+    an offer, in accord with Subsection b above.)
154
+
155
+The source code for a work means the preferred form of the work for
156
+making modifications to it.  For an executable work, complete source
157
+code means all the source code for all modules it contains, plus any
158
+associated interface definition files, plus the scripts used to
159
+control compilation and installation of the executable.  However, as a
160
+special exception, the source code distributed need not include
161
+anything that is normally distributed (in either source or binary
162
+form) with the major components (compiler, kernel, and so on) of the
163
+operating system on which the executable runs, unless that component
164
+itself accompanies the executable.
165
+
166
+If distribution of executable or object code is made by offering
167
+access to copy from a designated place, then offering equivalent
168
+access to copy the source code from the same place counts as
169
+distribution of the source code, even though third parties are not
170
+compelled to copy the source along with the object code.
171
+
172
+  4. You may not copy, modify, sublicense, or distribute the Program
173
+except as expressly provided under this License.  Any attempt
174
+otherwise to copy, modify, sublicense or distribute the Program is
175
+void, and will automatically terminate your rights under this License.
176
+However, parties who have received copies, or rights, from you under
177
+this License will not have their licenses terminated so long as such
178
+parties remain in full compliance.
179
+
180
+  5. You are not required to accept this License, since you have not
181
+signed it.  However, nothing else grants you permission to modify or
182
+distribute the Program or its derivative works.  These actions are
183
+prohibited by law if you do not accept this License.  Therefore, by
184
+modifying or distributing the Program (or any work based on the
185
+Program), you indicate your acceptance of this License to do so, and
186
+all its terms and conditions for copying, distributing or modifying
187
+the Program or works based on it.
188
+
189
+  6. Each time you redistribute the Program (or any work based on the
190
+Program), the recipient automatically receives a license from the
191
+original licensor to copy, distribute or modify the Program subject to
192
+these terms and conditions.  You may not impose any further
193
+restrictions on the recipients' exercise of the rights granted herein.
194
+You are not responsible for enforcing compliance by third parties to
195
+this License.
196
+
197
+  7. If, as a consequence of a court judgment or allegation of patent
198
+infringement or for any other reason (not limited to patent issues),
199
+conditions are imposed on you (whether by court order, agreement or
200
+otherwise) that contradict the conditions of this License, they do not
201
+excuse you from the conditions of this License.  If you cannot
202
+distribute so as to satisfy simultaneously your obligations under this
203
+License and any other pertinent obligations, then as a consequence you
204
+may not distribute the Program at all.  For example, if a patent
205
+license would not permit royalty-free redistribution of the Program by
206
+all those who receive copies directly or indirectly through you, then
207
+the only way you could satisfy both it and this License would be to
208
+refrain entirely from distribution of the Program.
209
+
210
+If any portion of this section is held invalid or unenforceable under
211
+any particular circumstance, the balance of the section is intended to
212
+apply and the section as a whole is intended to apply in other
213
+circumstances.
214
+
215
+It is not the purpose of this section to induce you to infringe any
216
+patents or other property right claims or to contest validity of any
217
+such claims; this section has the sole purpose of protecting the
218
+integrity of the free software distribution system, which is
219
+implemented by public license practices.  Many people have made
220
+generous contributions to the wide range of software distributed
221
+through that system in reliance on consistent application of that
222
+system; it is up to the author/donor to decide if he or she is willing
223
+to distribute software through any other system and a licensee cannot
224
+impose that choice.
225
+
226
+This section is intended to make thoroughly clear what is believed to
227
+be a consequence of the rest of this License.
228
+
229
+  8. If the distribution and/or use of the Program is restricted in
230
+certain countries either by patents or by copyrighted interfaces, the
231
+original copyright holder who places the Program under this License
232
+may add an explicit geographical distribution limitation excluding
233
+those countries, so that distribution is permitted only in or among
234
+countries not thus excluded.  In such case, this License incorporates
235
+the limitation as if written in the body of this License.
236
+
237
+  9. The Free Software Foundation may publish revised and/or new versions
238
+of the General Public License from time to time.  Such new versions will
239
+be similar in spirit to the present version, but may differ in detail to
240
+address new problems or concerns.
241
+
242
+Each version is given a distinguishing version number.  If the Program
243
+specifies a version number of this License which applies to it and "any
244
+later version", you have the option of following the terms and conditions
245
+either of that version or of any later version published by the Free
246
+Software Foundation.  If the Program does not specify a version number of
247
+this License, you may choose any version ever published by the Free Software
248
+Foundation.
249
+
250
+  10. If you wish to incorporate parts of the Program into other free
251
+programs whose distribution conditions are different, write to the author
252
+to ask for permission.  For software which is copyrighted by the Free
253
+Software Foundation, write to the Free Software Foundation; we sometimes
254
+make exceptions for this.  Our decision will be guided by the two goals
255
+of preserving the free status of all derivatives of our free software and
256
+of promoting the sharing and reuse of software generally.
257
+
258
+			    NO WARRANTY
259
+
260
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
262
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
266
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
267
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+REPAIR OR CORRECTION.
269
+
270
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+POSSIBILITY OF SUCH DAMAGES.
279
+
280
+		     END OF TERMS AND CONDITIONS

+ 56
- 0
ChangeLog View File

@@ -0,0 +1,56 @@
1
+New or improved components:
2
+* Transistors (NPN and PNP).
3
+* Inductor.
4
+* Ideal opamp.
5
+* Rotary switch.
6
+* Bus connection.
7
+* Matrix display and driver.
8
+* Magnitude comparator.
9
+* Voltage and current probes for oscilloscope.
10
+* Simulated bouncing for switches.
11
+* Serial and parallel port components (interface with computer hardware).
12
+
13
+Project Management:
14
+* Complete rewrite...
15
+* Support for building targets, with processing and linking options.
16
+
17
+FlowCode / Microbe:
18
+* Can read from keypads and display on seven segment displays.
19
+* Add warning for floating connections in FlowCode.
20
+* Generated assembly is now heavily optimized.
21
+
22
+Debugging:
23
+* High level language support (SDCC, Microbe).
24
+* Mouse-over variable inspection.
25
+* Symbol Viewer.
26
+
27
+Optimization:
28
+* Cache simulation data for circuits with discrete set of inputs (and no
29
+  reactive components).
30
+* Speed up calculation of diode operating point.
31
+* Optimized mixed logic and non-logic simulation.
32
+* Optimized recording of boolean data from logic probes.
33
+
34
+Interface:
35
+* Translations into French, Spanish and Italian.
36
+* Replaced KMDI with KateMDI (toolviews remember sizes, lots of other
37
+  improvements).
38
+* Modularised GUI - menus and toolbars are hidden / shown as appropriate for
39
+  the document being edited.
40
+* Toolbar item editor is now squashable.
41
+* Lots of icon improvements.
42
+
43
+Polishing:
44
+* Removed flicker when resizing the work area.
45
+* Remember cursor position in text documents on save / restore.
46
+* Removed flicker when joining / splitting connectors.
47
+* Save undo / redo state after editing data.
48
+* Remember connection routing selection.
49
+* Try and retain upwards position of text when rotating / reflecting components.
50
+* Editing of real numbers now always uses three significant figures.
51
+* Give LEDs a nice selection of predefined LED colours.
52
+
53
+Miscellaneous Features:
54
+* PIC program uploading (via the use of external programs).
55
+* Allow changing of the z-ordering of items.
56
+* Added support for gpsim-0.21.11 and gpsim-0.21.12.

+ 167
- 0
INSTALL View File

@@ -0,0 +1,167 @@
1
+Basic Installation
2
+==================
3
+
4
+   These are generic installation instructions.
5
+
6
+   The `configure' shell script attempts to guess correct values for
7
+various system-dependent variables used during compilation.  It uses
8
+those values to create a `Makefile' in each directory of the package.
9
+It may also create one or more `.h' files containing system-dependent
10
+definitions.  Finally, it creates a shell script `config.status' that
11
+you can run in the future to recreate the current configuration, a file
12
+`config.cache' that saves the results of its tests to speed up
13
+reconfiguring, and a file `config.log' containing compiler output
14
+(useful mainly for debugging `configure').
15
+
16
+   If you need to do unusual things to compile the package, please try
17
+to figure out how `configure' could check whether to do them, and mail
18
+diffs or instructions to the address given in the `README' so they can
19
+be considered for the next release.  If at some point `config.cache'
20
+contains results you don't want to keep, you may remove or edit it.
21
+
22
+   The file `configure.in' is used to create `configure' by a program
23
+called `autoconf'.  You only need `configure.in' if you want to change
24
+it or regenerate `configure' using a newer version of `autoconf'.
25
+
26
+The simplest way to compile this package is:
27
+
28
+  1. `cd' to the directory containing the package's source code and type
29
+     `./configure' to configure the package for your system.  If you're
30
+     using `csh' on an old version of System V, you might need to type
31
+     `sh ./configure' instead to prevent `csh' from trying to execute
32
+     `configure' itself.
33
+
34
+     Running `configure' takes a while.  While running, it prints some
35
+     messages telling which features it is checking for.
36
+
37
+  2. Type `make' to compile the package.
38
+
39
+  3. Type `make install' to install the programs and any data files and
40
+     documentation.
41
+
42
+  4. You can remove the program binaries and object files from the
43
+     source code directory by typing `make clean'.  
44
+
45
+Compilers and Options
46
+=====================
47
+
48
+   Some systems require unusual options for compilation or linking that
49
+the `configure' script does not know about.  You can give `configure'
50
+initial values for variables by setting them in the environment.  Using
51
+a Bourne-compatible shell, you can do that on the command line like
52
+this:
53
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
54
+
55
+Or on systems that have the `env' program, you can do it like this:
56
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
57
+
58
+Compiling For Multiple Architectures
59
+====================================
60
+
61
+   You can compile the package for more than one kind of computer at the
62
+same time, by placing the object files for each architecture in their
63
+own directory.  To do this, you must use a version of `make' that
64
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
65
+directory where you want the object files and executables to go and run
66
+the `configure' script.  `configure' automatically checks for the
67
+source code in the directory that `configure' is in and in `..'.
68
+
69
+   If you have to use a `make' that does not supports the `VPATH'
70
+variable, you have to compile the package for one architecture at a time
71
+in the source code directory.  After you have installed the package for
72
+one architecture, use `make distclean' before reconfiguring for another
73
+architecture.
74
+
75
+Installation Names
76
+==================
77
+
78
+   By default, `make install' will install the package's files in
79
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
80
+installation prefix other than `/usr/local' by giving `configure' the
81
+option `--prefix=PATH'.
82
+
83
+   You can specify separate installation prefixes for
84
+architecture-specific files and architecture-independent files.  If you
85
+give `configure' the option `--exec-prefix=PATH', the package will use
86
+PATH as the prefix for installing programs and libraries.
87
+Documentation and other data files will still use the regular prefix.
88
+
89
+   If the package supports it, you can cause programs to be installed
90
+with an extra prefix or suffix on their names by giving `configure' the
91
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
92
+
93
+Optional Features
94
+=================
95
+
96
+   Some packages pay attention to `--enable-FEATURE' options to
97
+`configure', where FEATURE indicates an optional part of the package.
98
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
99
+is something like `gnu-as' or `x' (for the X Window System).  The
100
+`README' should mention any `--enable-' and `--with-' options that the
101
+package recognizes.
102
+
103
+   For packages that use the X Window System, `configure' can usually
104
+find the X include and library files automatically, but if it doesn't,
105
+you can use the `configure' options `--x-includes=DIR' and
106
+`--x-libraries=DIR' to specify their locations.
107
+
108
+Specifying the System Type
109
+==========================
110
+
111
+   There may be some features `configure' can not figure out
112
+automatically, but needs to determine by the type of host the package
113
+will run on.  Usually `configure' can figure that out, but if it prints
114
+a message saying it can not guess the host type, give it the
115
+`--host=TYPE' option.  TYPE can either be a short name for the system
116
+type, such as `sun4', or a canonical name with three fields:
117
+     CPU-COMPANY-SYSTEM
118
+
119
+See the file `config.sub' for the possible values of each field.  If
120
+`config.sub' isn't included in this package, then this package doesn't
121
+need to know the host type.
122
+
123
+   If you are building compiler tools for cross-compiling, you can also
124
+use the `--target=TYPE' option to select the type of system they will
125
+produce code for and the `--build=TYPE' option to select the type of
126
+system on which you are compiling the package.
127
+
128
+Sharing Defaults
129
+================
130
+
131
+   If you want to set default values for `configure' scripts to share,
132
+you can create a site shell script called `config.site' that gives
133
+default values for variables like `CC', `cache_file', and `prefix'.
134
+`configure' looks for `PREFIX/share/config.site' if it exists, then
135
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
136
+`CONFIG_SITE' environment variable to the location of the site script.
137
+A warning: not all `configure' scripts look for a site script.
138
+
139
+Operation Controls
140
+==================
141
+
142
+   `configure' recognizes the following options to control how it
143
+operates.
144
+
145
+`--cache-file=FILE'
146
+     Use and save the results of the tests in FILE instead of
147
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
148
+     debugging `configure'.
149
+
150
+`--help'
151
+     Print a summary of the options to `configure', and exit.
152
+
153
+`--quiet'
154
+`--silent'
155
+`-q'
156
+     Do not print messages saying which checks are being made.
157
+
158
+`--srcdir=DIR'
159
+     Look for the package's source code in directory DIR.  Usually
160
+     `configure' can determine that directory automatically.
161
+
162
+`--version'
163
+     Print the version of Autoconf used to generate the `configure'
164
+     script, and exit.
165
+
166
+`configure' also accepts some other, not widely useful, options.
167
+

+ 5
- 0
Makefile.am View File

@@ -0,0 +1,5 @@
1
+AUTOMAKE_OPTIONS = foreign 1.5
2
+
3
+include admin/deps.am
4
+
5
+SUBDIRS=$(TOPSUBDIRS)

+ 10
- 0
Makefile.cvs View File

@@ -0,0 +1,10 @@
1
+all: 
2
+	@echo "This Makefile is only for the CVS repository"
3
+	@echo "This will be deleted before making the distribution"
4
+	@echo ""
5
+	$(MAKE) -f admin/Makefile.common cvs
6
+
7
+dist:
8
+	$(MAKE) -f admin/Makefile.common dist
9
+
10
+.SILENT:

+ 0
- 0
NEWS View File


+ 1
- 0
README View File

@@ -0,0 +1 @@
1
+

+ 49
- 0
TODO View File

@@ -0,0 +1,49 @@
1
+0.4 targets:
2
+* Replace QCanvas with own optimized implementation.
3
+* "Tutorial" tool (e.g. for learning about electronic circuits and PICs) tailored to education.
4
+* Only use IDs for items, etc, in ItemDocumentData - otherwise they lead to too many bugs.
5
+* More intelligent connector routing.
6
+* Variable time step in Simulation.
7
+* Improved ItemEditor (free scaling preview buttons, moved buttons around, toolbar needs work, etc).
8
+* Remove insert / duplicate functionality for ViewContainers, and replace it with concept of empty panes.
9
+* Fix subcircuits so that they are saved in an itemdocument.
10
+* Fully i18n'izable (e.g. see string lists bug below, some buttons too big with non-english text, etc).
11
+* Full complement of basic electronic devices (e.g. mosfet, jfet).
12
+* Debugging support for FlowCode.
13
+
14
+New components:
15
+* ALU components (shifters, multipliers)
16
+* Displays: double-digit LCD display
17
+* Audio: buzzers, speakers.
18
+* Different types of signals (e.g. square, triangular) for current and voltage signal components.
19
+
20
+Bugs:
21
+* At the moment, KTechlab auto-detects a point in the circuit to use as ground, according to a set of priorities (e.g. the Ground component has the highest priority, then voltage elements, etc etc). However, some circuits do not have any point which should be considered ground, e.g. "(+9V)-------(Battery)". Suggested solution: detect a point to have as a fixed voltage, that can be anything including 0V.
22
+* Some string lists for item properties are not i18n-safe. Scaling {Linear, Logarithmic}; Polarity {Row Cathode, Column Cathode } / {Common Cathode, Common Anode}; Edge {Rising, Falling}; Unary Operation {Rotate Left, Rotate Right, Increment, Decremement}
23
+* Microbe should give "noline" where applicable in show-source (such as in delay routines).
24
+
25
+Features:
26
+* Bookmarks in the oscilloscope.
27
+* Draw an outline of the component / flowpart / etc being dragged from the list on the left to show where it will be placed. This will probably involve adding static functions to all Item subclasses that will do the drawing, and returning a pointer to the function in the LibraryItem the subclass returns.
28
+* Allow inserting a component into a wire, so that the wire is broken in two with the component connecting at either end.
29
+* Some intelligent connect tool that will connect up pins between components - e.g. if the pins are dragged over each other, or horizontaly next to each other.
30
+* Work area text: allow clickable URIs, rich text editor.
31
+* Indicate the direction of current flow in a wire when hovering the mouse over.
32
+* Allow editing of embedded code in the FlowCode element in a TextView, instead of a popup dialog.
33
+* Be able to "shake" an item to get rid of attached connectors.
34
+* Allow creating a flowcontainer by dragging a rectangle.
35
+* Templates for different file types (making use of the microcontroller selected).
36
+* "Show All" zoom action (zooms in / out to a level that shows everything in the work area).
37
+
38
+General TODO:
39
+* Finish serial and parallel port components.
40
+* optimize microbe some more?
41
+
42
+Polishing:
43
+* Make sure that when context help refers to "advanced" variables (i.e. only editable from the Item Editor tab), it makes clear how to edit them.
44
+* Informational message when user attempts to paste flowcode into a circuit (can't do so; must save and load into pic).
45
+* On program startup, use "text blobs" pointing to sidebars to explain what they do.
46
+* Update register info even when PIC is paused.
47
+* Move the "merge" button to individual property entries.
48
+* replace "refresh rate" slider in settings dialog with standard one.
49
+* flicker of bottom horizontal scrollbar when initially moving a component downwards from having no vertical scrollbar to having one.

+ 11630
- 0
acinclude.m4
File diff suppressed because it is too large
View File


+ 12463
- 0
aclocal.m4
File diff suppressed because it is too large
View File


+ 1561
- 0
config.guess
File diff suppressed because it is too large
View File


+ 256
- 0
config.h.in View File

@@ -0,0 +1,256 @@
1
+/* config.h.in.  Generated from configure.in by autoheader.  */
2
+
3
+/* Gpsim 0.21.11 was found */
4
+#undef GPSIM_0_21_11
5
+
6
+/* Gpsim 0.21.12 was found */
7
+#undef GPSIM_0_21_12
8
+
9
+/* Gpsim 0.21.4 was found */
10
+#undef GPSIM_0_21_4
11
+
12
+/* Define to 1 if you have the <Carbon/Carbon.h> header file. */
13
+#undef HAVE_CARBON_CARBON_H
14
+
15
+/* Define if you have the CoreAudio API */
16
+#undef HAVE_COREAUDIO
17
+
18
+/* Define to 1 if you have the <crt_externs.h> header file. */
19
+#undef HAVE_CRT_EXTERNS_H
20
+
21
+/* Defines if your system has the crypt function */
22
+#undef HAVE_CRYPT
23
+
24
+/* Define to 1 if you have the <dlfcn.h> header file. */
25
+#undef HAVE_DLFCN_H
26
+
27
+/* Define to 1 if you have the <inttypes.h> header file. */
28
+#undef HAVE_INTTYPES_H
29
+
30
+/* Define if you have libjpeg */
31
+#undef HAVE_LIBJPEG
32
+
33
+/* Define if you have libpng */
34
+#undef HAVE_LIBPNG
35
+
36
+/* Define if you have a working libpthread (will enable threaded code) */
37
+#undef HAVE_LIBPTHREAD
38
+
39
+/* Define if you have libz */
40
+#undef HAVE_LIBZ
41
+
42
+/* Define to 1 if you have the <memory.h> header file. */
43
+#undef HAVE_MEMORY_H
44
+
45
+/* Define if your system needs _NSGetEnviron to set up the environment */
46
+#undef HAVE_NSGETENVIRON
47
+
48
+/* Define if you have res_init */
49
+#undef HAVE_RES_INIT
50
+
51
+/* Define if you have the res_init prototype */
52
+#undef HAVE_RES_INIT_PROTO
53
+
54
+/* Define if you have a STL implementation by SGI */
55
+#undef HAVE_SGI_STL
56
+
57
+/* Define to 1 if you have the `snprintf' function. */
58
+#undef HAVE_SNPRINTF
59
+
60
+/* Define to 1 if you have the <stdint.h> header file. */
61
+#undef HAVE_STDINT_H
62
+
63
+/* Define to 1 if you have the <stdlib.h> header file. */
64
+#undef HAVE_STDLIB_H
65
+
66
+/* Define to 1 if you have the <strings.h> header file. */
67
+#undef HAVE_STRINGS_H
68
+
69
+/* Define to 1 if you have the <string.h> header file. */
70
+#undef HAVE_STRING_H
71
+
72
+/* Define if you have strlcat */
73
+#undef HAVE_STRLCAT
74
+
75
+/* Define if you have the strlcat prototype */
76
+#undef HAVE_STRLCAT_PROTO
77
+
78
+/* Define if you have strlcpy */
79
+#undef HAVE_STRLCPY
80
+
81
+/* Define if you have the strlcpy prototype */
82
+#undef HAVE_STRLCPY_PROTO
83
+
84
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
85
+#undef HAVE_SYS_BITYPES_H
86
+
87
+/* Define to 1 if you have the <sys/stat.h> header file. */
88
+#undef HAVE_SYS_STAT_H
89
+
90
+/* Define to 1 if you have the <sys/types.h> header file. */
91
+#undef HAVE_SYS_TYPES_H
92
+
93
+/* Define to 1 if you have the <unistd.h> header file. */
94
+#undef HAVE_UNISTD_H
95
+
96
+/* Define to 1 if you have the `vsnprintf' function. */
97
+#undef HAVE_VSNPRINTF
98
+
99
+/* Suffix for lib directories */
100
+#undef KDELIBSUFF
101
+
102
+/* Define a safe value for MAXPATHLEN */
103
+#undef KDEMAXPATHLEN
104
+
105
+/* Gpsim was not found */
106
+#undef NO_GPSIM
107
+
108
+/* Name of package */
109
+#undef PACKAGE
110
+
111
+/* Define to the address where bug reports for this package should be sent. */
112
+#undef PACKAGE_BUGREPORT
113
+
114
+/* Define to the full name of this package. */
115
+#undef PACKAGE_NAME
116
+
117
+/* Define to the full name and version of this package. */
118
+#undef PACKAGE_STRING
119
+
120
+/* Define to the one symbol short name of this package. */
121
+#undef PACKAGE_TARNAME
122
+
123
+/* Define to the version of this package. */
124
+#undef PACKAGE_VERSION
125
+
126
+/* The size of a `char *', as computed by sizeof. */
127
+#undef SIZEOF_CHAR_P
128
+
129
+/* The size of a `int', as computed by sizeof. */
130
+#undef SIZEOF_INT
131
+
132
+/* The size of a `long', as computed by sizeof. */
133
+#undef SIZEOF_LONG
134
+
135
+/* The size of a `short', as computed by sizeof. */
136
+#undef SIZEOF_SHORT
137
+
138
+/* The size of a `size_t', as computed by sizeof. */
139
+#undef SIZEOF_SIZE_T
140
+
141
+/* The size of a `unsigned long', as computed by sizeof. */
142
+#undef SIZEOF_UNSIGNED_LONG
143
+
144
+/* Define to 1 if you have the ANSI C header files. */
145
+#undef STDC_HEADERS
146
+
147
+/* Version number of package */
148
+#undef VERSION
149
+
150
+/* Defined if compiling without arts */
151
+#undef WITHOUT_ARTS
152
+
153
+/* Define to 1 if your processor stores words with the most significant byte
154
+   first (like Motorola and SPARC, unlike Intel and VAX). */
155
+#undef WORDS_BIGENDIAN
156
+
157
+/*
158
+ * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
159
+ * headers and I'm too lazy to write a configure test as long as only
160
+ * unixware is related
161
+ */
162
+#ifdef _UNIXWARE
163
+#define HAVE_BOOLEAN
164
+#endif
165
+
166
+
167
+
168
+/*
169
+ * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
170
+ * that defines bzero.
171
+ */
172
+
173
+#if defined(_AIX)
174
+#include <strings.h>
175
+#endif
176
+
177
+
178
+
179
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
180
+# include <sys/time.h>
181
+# include <crt_externs.h>
182
+# define environ (*_NSGetEnviron())
183
+#endif
184
+
185
+
186
+
187
+#if !defined(HAVE_RES_INIT_PROTO)
188
+#ifdef __cplusplus
189
+extern "C" {
190
+#endif
191
+int res_init(void);
192
+#ifdef __cplusplus
193
+}
194
+#endif
195
+#endif
196
+
197
+
198
+
199
+#if !defined(HAVE_STRLCAT_PROTO)
200
+#ifdef __cplusplus
201
+extern "C" {
202
+#endif
203
+unsigned long strlcat(char*, const char*, unsigned long);
204
+#ifdef __cplusplus
205
+}
206
+#endif
207
+#endif
208
+
209
+
210
+
211
+#if !defined(HAVE_STRLCPY_PROTO)
212
+#ifdef __cplusplus
213
+extern "C" {
214
+#endif
215
+unsigned long strlcpy(char*, const char*, unsigned long);
216
+#ifdef __cplusplus
217
+}
218
+#endif
219
+#endif
220
+
221
+
222
+
223
+/*
224
+ * On HP-UX, the declaration of vsnprintf() is needed every time !
225
+ */
226
+
227
+#if !defined(HAVE_VSNPRINTF) || defined(hpux)
228
+#if __STDC__
229
+#include <stdarg.h>
230
+#include <stdlib.h>
231
+#else
232
+#include <varargs.h>
233
+#endif
234
+#ifdef __cplusplus
235
+extern "C"
236
+#endif
237
+int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
238
+#ifdef __cplusplus
239
+extern "C"
240
+#endif
241
+int snprintf(char *str, size_t n, char const *fmt, ...);
242
+#endif
243
+
244
+
245
+
246
+#if defined(__SVR4) && !defined(__svr4__)
247
+#define __svr4__ 1
248
+#endif
249
+
250
+
251
+/* type to use in place of socklen_t if not defined */
252
+#undef kde_socklen_t
253
+
254
+/* type to use in place of socklen_t if not defined (deprecated, use
255
+   kde_socklen_t) */
256
+#undef ksize_t

+ 341
- 0
config.log View File

@@ -0,0 +1,341 @@
1
+This file contains any messages produced by compilers while
2
+running configure, to aid debugging if configure makes a mistake.
3
+
4
+It was created by configure, which was
5
+generated by GNU Autoconf 2.59.  Invocation command line was
6
+
7
+  $ ./configure --host=x86_64-linux-gnu --build=x86_64-linux-gnu --disable-debug --disable-rpath --prefix=/opt/kde3 --libexecdir=/opt/kde3/bin --sysconfdir=/etc --libdir=/opt/kde3/lib --includedir=/opt/kde3/include/kde --with-qt-includes=/usr/include/qt3 --mandir=/opt/kde3/share/man --infodir=/opt/kde3/share/info --with-xinerama --prefix=/opt/kde3
8
+
9
+## --------- ##
10
+## Platform. ##
11
+## --------- ##
12
+
13
+hostname = argus4
14
+uname -m = x86_64
15
+uname -r = 2.6.31-16-generic
16
+uname -s = Linux
17
+uname -v = #53-Ubuntu SMP Tue Dec 8 04:02:15 UTC 2009
18
+
19
+/usr/bin/uname -p = unknown
20
+/bin/uname -X     = unknown
21
+
22
+/bin/arch              = unknown
23
+/usr/bin/arch -k       = unknown
24
+/usr/convex/getsysinfo = unknown
25
+hostinfo               = unknown
26
+/bin/machine           = unknown
27
+/usr/bin/oslevel       = unknown
28
+/bin/universe          = unknown
29
+
30
+PATH: /opt/kde3/bin
31
+PATH: /opt/kde3/bin
32
+PATH: /opt/kde3/games
33
+PATH: /opt/kde3/bin
34
+PATH: /home/eldarion/bin
35
+PATH: /usr/local/sbin
36
+PATH: /usr/local/bin
37
+PATH: /usr/sbin
38
+PATH: /usr/bin
39
+PATH: /sbin
40
+PATH: /bin
41
+PATH: /usr/games
42
+
43
+
44
+## ----------- ##
45
+## Core tests. ##
46
+## ----------- ##
47
+
48
+configure:1564: checking build system type
49
+configure:1582: result: x86_64-pc-linux-gnu
50
+configure:1590: checking host system type
51
+configure:1604: result: x86_64-pc-linux-gnu
52
+configure:1612: checking target system type
53
+configure:1626: result: x86_64-pc-linux-gnu
54
+configure:1673: checking for a BSD-compatible install
55
+configure:1728: result: /usr/bin/install -c
56
+configure:1743: checking for -p flag to install
57
+configure:1756: result: yes
58
+configure:1767: checking whether build environment is sane
59
+
60
+## ---------------- ##
61
+## Cache variables. ##
62
+## ---------------- ##
63
+
64
+ac_cv_build=x86_64-pc-linux-gnu
65
+ac_cv_build_alias=x86_64-linux-gnu
66
+ac_cv_env_CC_set=
67
+ac_cv_env_CC_value=
68
+ac_cv_env_CFLAGS_set=set
69
+ac_cv_env_CFLAGS_value='-Wall -g -O2 -Wl,-z,defs'
70
+ac_cv_env_CPPFLAGS_set=set
71
+ac_cv_env_CPPFLAGS_value=
72
+ac_cv_env_CPP_set=
73
+ac_cv_env_CPP_value=
74
+ac_cv_env_CXXCPP_set=
75
+ac_cv_env_CXXCPP_value=
76
+ac_cv_env_CXXFLAGS_set=set
77
+ac_cv_env_CXXFLAGS_value='-g -O2'
78
+ac_cv_env_CXX_set=
79
+ac_cv_env_CXX_value=
80
+ac_cv_env_F77_set=
81
+ac_cv_env_F77_value=
82
+ac_cv_env_FFLAGS_set=set
83
+ac_cv_env_FFLAGS_value='-g -O2'
84
+ac_cv_env_LDFLAGS_set=set
85
+ac_cv_env_LDFLAGS_value=-Wl,-Bsymbolic-functions
86
+ac_cv_env_build_alias_set=set
87
+ac_cv_env_build_alias_value=x86_64-linux-gnu
88
+ac_cv_env_host_alias_set=set
89
+ac_cv_env_host_alias_value=x86_64-linux-gnu
90
+ac_cv_env_target_alias_set=
91
+ac_cv_env_target_alias_value=
92
+ac_cv_host=x86_64-pc-linux-gnu
93
+ac_cv_host_alias=x86_64-linux-gnu
94
+ac_cv_path_install='/usr/bin/install -c'
95
+ac_cv_target=x86_64-pc-linux-gnu
96
+ac_cv_target_alias=x86_64-linux-gnu
97
+
98
+## ----------------- ##
99
+## Output variables. ##
100
+## ----------------- ##
101
+
102
+ACLOCAL=''
103
+AMDEPBACKSLASH=''
104
+AMDEP_FALSE=''
105
+AMDEP_TRUE=''
106
+AMTAR=''
107
+AR=''
108
+ARTSCCONFIG='/opt/kde3/bin/artsc-config'
109
+AUTOCONF=''
110
+AUTODIRS=''
111
+AUTOHEADER=''
112
+AUTOMAKE=''
113
+AWK=''
114
+CC=''
115
+CCDEPMODE=''
116
+CFLAGS='-Wall -g -O2 -Wl,-z,defs'
117
+CONF_FILES=''
118
+CPP=''
119
+CPPFLAGS=''
120
+CXX=''
121
+CXXCPP=''
122
+CXXDEPMODE=''
123
+CXXFLAGS='-g -O2'
124
+DCOPIDL2CPP='/opt/kde3/bin/dcopidl2cpp'
125
+DCOPIDL='/opt/kde3/bin/dcopidl'
126
+DCOPIDLNG=''
127
+DCOP_DEPENDENCIES=''
128
+DEFS=''
129
+DEPDIR=''
130
+ECHO='echo'
131
+ECHO_C=''
132
+ECHO_N='-n'
133
+ECHO_T=''
134
+EGREP=''
135
+ENABLE_PERMISSIVE_FLAG=''
136
+EXEEXT=''
137
+F77=''
138
+FFLAGS='-g -O2'
139
+FRAMEWORK_COREAUDIO=''
140
+GMSGFMT=''
141
+HAVE_GCC_VISIBILITY=''
142
+INSTALL_DATA='install -p -c -m 644'
143
+INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
144
+INSTALL_SCRIPT='${INSTALL}'
145
+INSTALL_STRIP_PROGRAM=''
146
+KCFG_DEPENDENCIES=''
147
+KCONFIG_COMPILER=''
148
+KDECONFIG=''
149
+KDE_EXTRA_RPATH=''
150
+KDE_INCLUDES=''
151
+KDE_LDFLAGS=''
152
+KDE_MT_LDFLAGS=''
153
+KDE_MT_LIBS=''
154
+KDE_NO_UNDEFINED=''
155
+KDE_PLUGIN=''
156
+KDE_RPATH=''
157
+KDE_USE_CLOSURE_FALSE=''
158
+KDE_USE_CLOSURE_TRUE=''
159
+KDE_USE_FINAL_FALSE=''
160
+KDE_USE_FINAL_TRUE=''
161
+KDE_USE_NMCHECK_FALSE=''
162
+KDE_USE_NMCHECK_TRUE=''
163
+KDE_XSL_STYLESHEET=''
164
+LDFLAGS='-Wl,-Bsymbolic-functions'
165
+LDFLAGS_AS_NEEDED=''
166
+LDFLAGS_NEW_DTAGS=''
167
+LIBCOMPAT=''
168
+LIBCRYPT=''
169
+LIBDL=''
170
+LIBJPEG=''
171
+LIBOBJS=''
172
+LIBPNG=''
173
+LIBPTHREAD=''
174
+LIBRESOLV=''
175
+LIBS=''
176
+LIBSM=''
177
+LIBSOCKET=''
178
+LIBTOOL=''
179
+LIBUCB=''
180
+LIBUTIL=''
181
+LIBZ=''
182
+LIB_GPSIM=''
183
+LIB_KAB=''
184
+LIB_KABC=''
185
+LIB_KDECORE=''
186
+LIB_KDEPIM=''
187
+LIB_KDEPRINT=''
188
+LIB_KDEUI=''
189
+LIB_KDNSSD=''
190
+LIB_KFILE=''
191
+LIB_KFM=''
192
+LIB_KHTML=''
193
+LIB_KIMPROXY=''
194
+LIB_KIO=''
195
+LIB_KJS=''
196
+LIB_KNEWSTUFF=''
197
+LIB_KPARTS=''
198
+LIB_KSPELL=''
199
+LIB_KSYCOCA=''
200
+LIB_KUTILS=''
201
+LIB_POLL=''
202
+LIB_QPE=''
203
+LIB_QT=''
204
+LIB_SMB=''
205
+LIB_X11=''
206
+LIB_XEXT=''
207
+LIB_XRENDER=''
208
+LN_S=''
209
+LTLIBOBJS=''
210
+MAKEINFO=''
211
+MAKEKDEWIDGETS=''
212
+MCOPIDL='/opt/kde3/bin/mcopidl'
213
+MEINPROC=''
214
+MOC=''
215
+MSGFMT=''
216
+NOOPT_CFLAGS=''
217
+NOOPT_CXXFLAGS=''
218
+OBJEXT=''
219
+PACKAGE=''
220
+PACKAGE_BUGREPORT=''
221
+PACKAGE_NAME=''
222
+PACKAGE_STRING=''
223
+PACKAGE_TARNAME=''
224
+PACKAGE_VERSION=''
225
+PATH_SEPARATOR=':'
226
+PERL=''
227
+QTE_NORTTI=''
228
+QT_INCLUDES=''
229
+QT_LDFLAGS=''
230
+RANLIB=''
231
+SET_MAKE=''
232
+SHELL='/bin/bash'
233
+STRIP=''
234
+TOPSUBDIRS=''
235
+UIC=''
236
+UIC_TR=''
237
+USER_INCLUDES=''
238
+USER_LDFLAGS=''
239
+USE_EXCEPTIONS=''
240
+USE_RTTI=''
241
+USE_THREADS=''
242
+VERSION=''
243
+WOVERLOADED_VIRTUAL=''
244
+XGETTEXT=''
245
+XMLLINT=''
246
+X_EXTRA_LIBS=''
247
+X_INCLUDES=''
248
+X_LDFLAGS=''
249
+X_PRE_LIBS=''
250
+X_RPATH=''
251
+ac_ct_AR=''
252
+ac_ct_CC=''
253
+ac_ct_CXX=''
254
+ac_ct_F77=''
255
+ac_ct_RANLIB=''
256
+ac_ct_STRIP=''
257
+all_includes=''
258
+all_libraries=''
259
+am__include=''
260
+am__quote=''
261
+bindir='${exec_prefix}/bin'
262
+build='x86_64-pc-linux-gnu'
263
+build_alias='x86_64-linux-gnu'
264
+build_cpu='x86_64'
265
+build_os='linux-gnu'
266
+build_vendor='pc'
267
+datadir='${prefix}/share'
268
+exec_prefix='NONE'
269
+glib_cflags=''
270
+host='x86_64-pc-linux-gnu'
271
+host_alias='x86_64-linux-gnu'
272
+host_cpu='x86_64'
273
+host_os='linux-gnu'
274
+host_vendor='pc'
275
+include_ARTS_FALSE=''
276
+include_ARTS_TRUE=''
277
+include_x11_FALSE=''
278
+include_x11_TRUE=''
279
+includedir='/opt/kde3/include/kde'
280
+infodir='/opt/kde3/share/info'
281
+install_sh=''
282
+kde_appsdir='/opt/kde3/share/applnk'
283
+kde_bindir='/opt/kde3/bin'
284
+kde_confdir='/etc/kde3'
285
+kde_datadir='/opt/kde3/share/apps'
286
+kde_htmldir='/opt/kde3/share/doc/kde/HTML'
287
+kde_icondir='/opt/kde3/share/icons'
288
+kde_includes=''
289
+kde_kcfgdir=''
290
+kde_libraries=''
291
+kde_libs_htmldir=''
292
+kde_libs_prefix=''
293
+kde_locale='/opt/kde3/share/locale'
294
+kde_mimedir='/opt/kde3/share/mimelnk'
295
+kde_moduledir='/opt/kde3/lib/kde3'
296
+kde_qtver=''
297
+kde_servicesdir='/opt/kde3/share/services'
298
+kde_servicetypesdir='/opt/kde3/share/servicetypes'
299
+kde_sounddir='/opt/kde3/share/sounds'
300
+kde_styledir=''
301
+kde_templatesdir='/opt/kde3/share/templates'
302
+kde_wallpaperdir='/opt/kde3/share/wallpapers'
303
+kde_widgetdir=''
304
+kdeinitdir=''
305
+libdir='/opt/kde3/lib'
306
+libexecdir='/opt/kde3/bin'
307
+localstatedir='${prefix}/var'
308
+mandir='/opt/kde3/share/man'
309
+oldincludedir='/usr/include'
310
+prefix='/opt/kde3'
311
+program_transform_name='s,x,x,'
312
+qt_includes=''
313
+qt_libraries=''
314
+sbindir='${exec_prefix}/sbin'
315
+sharedstatedir='${prefix}/com'
316
+sysconfdir='/etc'
317
+target='x86_64-pc-linux-gnu'
318
+target_alias=''
319
+target_cpu='x86_64'
320
+target_os='linux-gnu'
321
+target_vendor='pc'
322
+unsermake_enable_pch_FALSE=''
323
+unsermake_enable_pch_TRUE=''
324
+x_includes='NONE'
325
+x_libraries='NONE'
326
+xdg_appsdir=''
327
+xdg_directorydir=''
328
+xdg_menudir=''
329
+
330
+## ----------- ##
331
+## confdefs.h. ##
332
+## ----------- ##
333
+
334
+#define PACKAGE_BUGREPORT ""
335
+#define PACKAGE_NAME ""
336
+#define PACKAGE_STRING ""
337
+#define PACKAGE_TARNAME ""
338
+#define PACKAGE_VERSION ""
339
+
340
+configure: caught signal 2
341
+configure: exit 1

+ 1686
- 0
config.sub
File diff suppressed because it is too large
View File


+ 2
- 0
configure.files View File

@@ -0,0 +1,2 @@
1
+./admin/configure.in.min
2
+configure.in.in

+ 248
- 0
configure.in View File

@@ -0,0 +1,248 @@
1
+dnl =======================================================
2
+dnl FILE: ./admin/configure.in.min
3
+dnl =======================================================
4
+
5
+dnl    This file is part of the KDE libraries/packages
6
+dnl    Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
7
+ 
8
+dnl    This file is free software; you can redistribute it and/or
9
+dnl    modify it under the terms of the GNU Library General Public
10
+dnl    License as published by the Free Software Foundation; either
11
+dnl    version 2 of the License, or (at your option) any later version.
12
+ 
13
+dnl    This library is distributed in the hope that it will be useful,
14
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+dnl    Library General Public License for more details.
17
+ 
18
+dnl    You should have received a copy of the GNU Library General Public License
19
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
20
+dnl    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
+dnl    Boston, MA 02110-1301, USA.
22
+
23
+# Original Author was Kalle@kde.org
24
+# I lifted it in some mater. (Stephan Kulow)
25
+# I used much code from Janos Farkas
26
+
27
+dnl Process this file with autoconf to produce a configure script.
28
+
29
+AC_INIT(acinclude.m4) dnl a source file from your sub dir
30
+
31
+dnl This is so we can use kde-common
32
+AC_CONFIG_AUX_DIR(admin)
33
+
34
+dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
35
+unset CDPATH
36
+
37
+dnl Checking host/target/build systems, for make, install etc.
38
+AC_CANONICAL_SYSTEM 
39
+dnl Perform program name transformation
40
+AC_ARG_PROGRAM
41
+
42
+dnl Automake doc recommends to do this only here. (Janos)
43
+AM_INIT_AUTOMAKE(ktechlab, 0.3) dnl searches for some needed programs
44
+
45
+KDE_SET_PREFIX
46
+
47
+dnl generate the config header
48
+AM_CONFIG_HEADER(config.h) dnl at the distribution this done
49
+
50
+dnl Checks for programs.
51
+AC_CHECK_COMPILERS
52
+AC_ENABLE_SHARED(yes)
53
+AC_ENABLE_STATIC(no)
54
+KDE_PROG_LIBTOOL
55
+
56
+dnl for NLS support. Call them in this order!
57
+dnl WITH_NLS is for the po files
58
+AM_KDE_WITH_NLS
59
+
60
+KDE_USE_QT(3.2.0)
61
+AC_PATH_KDE
62
+dnl =======================================================
63
+dnl FILE: configure.in.in
64
+dnl =======================================================
65
+
66
+#MIN_CONFIG(3.2.0)
67
+
68
+dnl PACKAGE set before
69
+AC_C_BIGENDIAN
70
+AC_CHECK_KDEMAXPATHLEN
71
+
72
+
73
+################################
74
+## BEGIN Check for gpsim 0.21 ##
75
+################################
76
+
77
+AC_LANG_SAVE
78
+AC_LANG_CPLUSPLUS
79
+ktechlab_save_CXXFLAGS="$CXXFLAGS"
80
+
81
+AC_ARG_WITH(glib12, [  --with-glib12           force using glib 1.2.x [default=no]])
82
+if test "x$with_glib12" != "xyes" ; then
83
+	glib_cflags=`pkg-config --cflags glib-2.0`
84
+else
85
+	glib_cflags=`glib-config --cflags`
86
+fi
87
+AC_SUBST(glib_cflags)
88
+
89
+CXXFLAGS="$glib_cflags"
90
+
91
+AC_MSG_CHECKING([for gpsim 0.21.4 availability])
92
+AC_TRY_COMPILE(
93
+	[
94
+#include <gpsim/interface.h>
95
+#include <gpsim/gpsim_interface.h>
96
+#include <gpsim/breakpoints.h>
97
+#include <gpsim/gpsim_time.h>
98
+void func() { (void)cycles; (void)initialize_gpsim_core(); (void)load_symbol_file(0,0); }
99
+	],
100
+	[],
101
+	AC_MSG_RESULT( yes )
102
+	have_gpsim_0_21_4=yes,
103
+	AC_MSG_RESULT( no )
104
+)
105
+
106
+AC_MSG_CHECKING([for gpsim 0.21.11 availability])
107
+AC_TRY_COMPILE(
108
+	[
109
+#include <gpsim/interface.h>
110
+#include <gpsim/gpsim_interface.h>
111
+#include <gpsim/breakpoints.h>
112
+#include <gpsim/gpsim_time.h>
113
+#include <gpsim/symbol.h>
114
+#include <gpsim/program_files.h>
115
+void func() { (void)cycles; (void)initialize_gpsim_core(); }
116
+	],
117
+	[],
118
+	AC_MSG_RESULT( yes )
119
+	have_gpsim_0_21_11=yes,
120
+	AC_MSG_RESULT( no )
121
+)
122
+
123
+AC_MSG_CHECKING([for gpsim 0.21.12 availability])
124
+AC_TRY_COMPILE(
125
+	[
126
+#include <gpsim/ValueCollections.h>
127
+	],
128
+	[],
129
+	AC_MSG_RESULT( yes )
130
+	have_gpsim_0_21_12=yes,
131
+	AC_MSG_RESULT( no )
132
+)
133
+
134
+CXXFLAGS="$ktechlab_save_CXXFLAGS"
135
+AC_LANG_RESTORE
136
+
137
+##############################
138
+## END Check for gpsim 0.21 ##
139
+##############################
140
+
141
+
142
+
143
+################################
144
+## BEGIN DO_NOT_COMPILE CHECK ##
145
+################################
146
+
147
+if test x$have_gpsim_0_21_12 == xyes; then
148
+	AC_DEFINE([GPSIM_0_21_12],[],[Gpsim 0.21.12 was found])
149
+	CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
150
+else
151
+	if test x$have_gpsim_0_21_4 != xyes; then
152
+		if test x$have_gpsim_0_21_11 != xyes; then
153
+			AC_DEFINE([NO_GPSIM],[],[Gpsim was not found])
154
+			LIB_GPSIM=""
155
+		else
156
+			AC_DEFINE([GPSIM_0_21_11],[],[Gpsim 0.21.11 was found])
157
+		fi
158
+	else
159
+		AC_DEFINE([GPSIM_0_21_4],[],[Gpsim 0.21.4 was found])
160
+	fi
161
+fi
162
+
163
+if test x$have_gpsim_0_21_4 == xyes || test x$have_gpsim_0_21_11 == xyes || test x$have_gpsim_0_21_12 == xyes; then
164
+	wi_cv_lib_readline=no
165
+	ac_save_LIBS="$LIBS"
166
+	# Note: $LIBCURSES is permitted to be empty.
167
+	for LIBREADLINE in "-lreadline" "-lreadline $LIBCURSES" "-lreadline -ltermcap" "-lreadline -lncurses" "-lreadline -lcurses"
168
+	do
169
+		LIBS="$ac_save_LIBS $LIBREADLINE"
170
+		LIB_GPSIM="$LIBREADLINE -lgpsim -lgpsim_eXdbm -lgpsimcli"
171
+		AC_TRY_RUN([
172
+			/* program */
173
+			#include <stdio.h>
174
+			#include <stdlib.h>
175
+		 
176
+			main(int argc, char **argv)
177
+			{
178
+				/* Note:  don't actually call readline, since it may block;
179
+				 * We just want to see if it (dynamic) linked in okay.
180
+				 */
181
+				if (argc == 0)	/* never true */
182
+					readline(0);
183
+				exit(0);
184
+			}
185
+		],[
186
+		# action if true
187
+			wi_cv_lib_readline=yes
188
+		],[
189
+			# action if false
190
+			wi_cv_lib_readline=no
191
+	],[
192
+		# action if cross compiling
193
+		wi_cv_lib_readline=no
194
+	])
195
+	
196
+		if test "$wi_cv_lib_readline" = yes ; then break ; fi
197
+	done
198
+
199
+	LIBS="$ac_save_LIBS"
200
+fi
201
+
202
+AC_SUBST(LIB_GPSIM)
203
+
204
+##############################
205
+## END DO_NOT_COMPILE CHECK ##
206
+##############################
207
+
208
+KDE_CREATE_SUBDIRSLIST
209
+AC_CONFIG_FILES([ Makefile ])
210
+AC_CONFIG_FILES([ doc/Makefile ])
211
+AC_CONFIG_FILES([ doc/en/Makefile ])
212
+AC_CONFIG_FILES([ icons/Makefile ])
213
+AC_CONFIG_FILES([ icons/pics/Makefile ])
214
+AC_CONFIG_FILES([ microbe/Makefile ])
215
+AC_CONFIG_FILES([ po/Makefile ])
216
+AC_CONFIG_FILES([ src/Makefile ])
217
+AC_CONFIG_FILES([ src/core/Makefile ])
218
+AC_CONFIG_FILES([ src/drawparts/Makefile ])
219
+AC_CONFIG_FILES([ src/electronics/Makefile ])
220
+AC_CONFIG_FILES([ src/electronics/components/Makefile ])
221
+AC_CONFIG_FILES([ src/electronics/simulation/Makefile ])
222
+AC_CONFIG_FILES([ src/flowparts/Makefile ])
223
+AC_CONFIG_FILES([ src/gui/Makefile ])
224
+AC_CONFIG_FILES([ src/languages/Makefile ])
225
+AC_CONFIG_FILES([ src/mechanics/Makefile ])
226
+AC_CONFIG_FILES([ src/micro/Makefile ])
227
+AC_OUTPUT
228
+if test x$have_gpsim_0_21_4 != xyes; then
229
+	if test x$have_gpsim_0_21_11 != xyes; then
230
+		echo ""
231
+        echo "################################################################################"
232
+        echo "# WARNING: gpsim support will not be compiled as gpsim >= 0.21.4 was not found #"
233
+        echo "################################################################################"
234
+    fi
235
+fi
236
+
237
+if test "$all_tests" = "bad"; then
238
+  if test ! "$cache_file" = "/dev/null"; then
239
+    echo ""    
240
+    echo "Please remove the file $cache_file after changing your setup"
241
+    echo "so that configure will find the changes next time."
242
+    echo ""
243
+  fi
244
+else
245
+  echo ""
246
+  echo "Good - your configure finished. Start make now"
247
+  echo ""
248
+fi

+ 142
- 0
configure.in.in View File

@@ -0,0 +1,142 @@
1
+#MIN_CONFIG(3.2.0)
2
+
3
+AM_INIT_AUTOMAKE(ktechlab, 0.3)
4
+AC_C_BIGENDIAN
5
+AC_CHECK_KDEMAXPATHLEN
6
+
7
+
8
+################################
9
+## BEGIN Check for gpsim 0.21 ##
10
+################################
11
+
12
+AC_LANG_SAVE
13
+AC_LANG_CPLUSPLUS
14
+ktechlab_save_CXXFLAGS="$CXXFLAGS"
15
+
16
+AC_ARG_WITH(glib12, [  --with-glib12           force using glib 1.2.x [default=no]])
17
+if test "x$with_glib12" != "xyes" ; then
18
+	glib_cflags=`pkg-config --cflags glib-2.0`
19
+else
20
+	glib_cflags=`glib-config --cflags`
21
+fi
22
+AC_SUBST(glib_cflags)
23
+
24
+CXXFLAGS="$glib_cflags"
25
+
26
+AC_MSG_CHECKING([for gpsim 0.21.4 availability])
27
+AC_TRY_COMPILE(
28
+	[
29
+#include <gpsim/interface.h>
30
+#include <gpsim/gpsim_interface.h>
31
+#include <gpsim/breakpoints.h>
32
+#include <gpsim/gpsim_time.h>
33
+void func() { (void)cycles; (void)initialize_gpsim_core(); (void)load_symbol_file(0,0); }
34
+	],
35
+	[],
36
+	AC_MSG_RESULT( yes )
37
+	have_gpsim_0_21_4=yes,
38
+	AC_MSG_RESULT( no )
39
+)
40
+
41
+AC_MSG_CHECKING([for gpsim 0.21.11 availability])
42
+AC_TRY_COMPILE(
43
+	[
44
+#include <gpsim/interface.h>
45
+#include <gpsim/gpsim_interface.h>
46
+#include <gpsim/breakpoints.h>
47
+#include <gpsim/gpsim_time.h>
48
+#include <gpsim/symbol.h>
49
+#include <gpsim/program_files.h>
50
+void func() { (void)cycles; (void)initialize_gpsim_core(); }
51
+	],
52
+	[],
53
+	AC_MSG_RESULT( yes )
54
+	have_gpsim_0_21_11=yes,
55
+	AC_MSG_RESULT( no )
56
+)
57
+
58
+AC_MSG_CHECKING([for gpsim 0.21.12 availability])
59
+AC_TRY_COMPILE(
60
+	[
61
+#include <gpsim/ValueCollections.h>
62
+	],
63
+	[],
64
+	AC_MSG_RESULT( yes )
65
+	have_gpsim_0_21_12=yes,
66
+	AC_MSG_RESULT( no )
67
+)
68
+
69
+CXXFLAGS="$ktechlab_save_CXXFLAGS"
70
+AC_LANG_RESTORE
71
+
72
+##############################
73
+## END Check for gpsim 0.21 ##
74
+##############################
75
+
76
+
77
+
78
+################################
79
+## BEGIN DO_NOT_COMPILE CHECK ##
80
+################################
81
+
82
+if test x$have_gpsim_0_21_12 == xyes; then
83
+	AC_DEFINE([GPSIM_0_21_12],[],[Gpsim 0.21.12 was found])
84
+	CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
85
+else
86
+	if test x$have_gpsim_0_21_4 != xyes; then
87
+		if test x$have_gpsim_0_21_11 != xyes; then
88
+			AC_DEFINE([NO_GPSIM],[],[Gpsim was not found])
89
+			LIB_GPSIM=""
90
+		else
91
+			AC_DEFINE([GPSIM_0_21_11],[],[Gpsim 0.21.11 was found])
92
+		fi
93
+	else
94
+		AC_DEFINE([GPSIM_0_21_4],[],[Gpsim 0.21.4 was found])
95
+	fi
96
+fi
97
+
98
+if test x$have_gpsim_0_21_4 == xyes || test x$have_gpsim_0_21_11 == xyes || test x$have_gpsim_0_21_12 == xyes; then
99
+	wi_cv_lib_readline=no
100
+	ac_save_LIBS="$LIBS"
101
+	# Note: $LIBCURSES is permitted to be empty.
102
+	for LIBREADLINE in "-lreadline" "-lreadline $LIBCURSES" "-lreadline -ltermcap" "-lreadline -lncurses" "-lreadline -lcurses"
103
+	do
104
+		LIBS="$ac_save_LIBS $LIBREADLINE"
105
+		LIB_GPSIM="$LIBREADLINE -lgpsim -lgpsim_eXdbm -lgpsimcli"
106
+		AC_TRY_RUN([
107
+			/* program */
108
+			#include <stdio.h>
109
+			#include <stdlib.h>
110
+		 
111
+			main(int argc, char **argv)
112
+			{
113
+				/* Note:  don't actually call readline, since it may block;
114
+				 * We just want to see if it (dynamic) linked in okay.
115
+				 */
116
+				if (argc == 0)	/* never true */
117
+					readline(0);
118
+				exit(0);
119
+			}
120
+		],[
121
+		# action if true
122
+			wi_cv_lib_readline=yes
123
+		],[
124
+			# action if false
125
+			wi_cv_lib_readline=no
126
+	],[
127
+		# action if cross compiling
128
+		wi_cv_lib_readline=no
129
+	])
130
+	
131
+		if test "$wi_cv_lib_readline" = yes ; then break ; fi
132
+	done
133
+
134
+	LIBS="$ac_save_LIBS"
135
+fi
136
+
137
+AC_SUBST(LIB_GPSIM)
138
+
139
+##############################
140
+## END DO_NOT_COMPILE CHECK ##
141
+##############################
142
+

+ 7
- 0
doc/Makefile.am View File

@@ -0,0 +1,7 @@
1
+# the SUBDIRS is filled automatically by am_edit. If files are 
2
+# in this directory they are installed into the english dir
3
+
4
+KDE_LANG = en
5
+KDE_DOCS = AUTO
6
+SUBDIRS = $(AUTODIRS)
7
+

+ 7
- 0
doc/en/Makefile.am View File

@@ -0,0 +1,7 @@
1
+KDE_DOCS = ktechlab
2
+# KDE_MANS = ktechlab
3
+KDE_LANG = en
4
+# KDE_DOCS = AUTO
5
+
6
+kde_docs_KDEDOCS = debugging.docbook circuits.docbook flowcode.docbook \
7
+		quick.docbook faq.docbook picprograms.docbook

+ 84
- 0
doc/en/circuits.docbook View File

@@ -0,0 +1,84 @@
1
+<!-- kate: tab-width 2; indent-mode xml; -->
2
+<chapter id="circuits">
3
+	<title>Circuits</title>
4
+	
5
+	<sect1 id="placing_components">
6
+		<title>Placing components</title>
7
+		<para>On the left, you'll find the Components tab.</para>
8
+		
9
+		<para>Dragging a component from the sidebar into the circuit will place it under the mouse cursor. Alternatively, you can double click on an item in the Components sidebar to repeatedly add it to the circuit. In this mode, a copy of the selected component will be placed repeatedly on mouse left-clicking until either Escape is pressed, or the mouse is right-clicked.</para>
10
+		
11
+		<para>To reposition a component, left-click and drag. You'll find it snapping to the underlying grid. If you drag the component out of the right or bottom edges of the workarea, the workarea will resize itself to accomodate.</para>
12
+		
13
+		<para>All components have a notion of orientation; 0, 90, 180 and 270 degrees. Those that aren't symmetrical about an axis can also be flipped. To rotate a selection of components, either right click and select from the Orientation menu, or click on the rotate buttons in the toolbar. The latter can also be accessed by pressing the "[" and "]" keys (familiar to Inkscape users). The Item sidebar (on the right) provides a powerful method of setting the orientation by providing previews of the components. Flipping components is also only possibly via the Item sidebar.</para>
14
+	</sect1>
15
+	
16
+	<sect1 id="connecting_components">
17
+		<title>Connecting Components</title>
18
+		<para>There are two modes for creating connections (wires): automatic, and manual. These modes are selected via the "Connection Routing Mode" pulldown menu in the toolbar. Experiment with both - automatic routing is often better for small circuits, whereas more complex circuits may need manual routing.</para>
19
+		
20
+		<para>In automatic mode, create a connection by dragging from either a component pin or an existing connection, and releasing the mouse over the desired pin or connection. You'll see the straight-line being drawn turn orange when a valid connection will be created on mouse release. If the line you're drawing is black, it's either because there's nothing beneath the mouse cursor, or you're attempting to connect together two items which are already connected. When flowcharting, the criteria for a valid connection are more complex - but we'll get to that later.</para>
21
+		
22
+		<para>The best way to get a feel for manual connection routing is by experimenting with it. Click on the starting pin or connection, and then extend the proto-connector by moving the mouse away from where you clicked. To place a corner, left-click. To cancel drawing the connection, either press escape, or right-click the mouse.</para>
23
+		
24
+		<para>&kappname; tries its best to maintain the routes your connections take. However, if dragging a component results in the end points of a connection moving relative to each other, &kappname; will be forced to redraw the connection using auto-routing. Before moving a component, you can see which connectors will have to be rerouted - as they will turn grey on clicking.</para>
25
+		
26
+		<para>To remove an existing connection, select it by drawing a small select-rectangle over part of the connector, and hit delete.</para>
27
+	</sect1>
28
+	
29
+	<sect1 id="component_attributes">
30
+		<title>Component Attributes</title>
31
+		<para>Most components will have editable attributes, such as the resistance for resistors. By default, you can edit simple attributes in the toolbar, when a group of the same type of components are selected. If your selection contains a mixture of different types of components (such as resistors and capacitors), then no attributes will be displayed for editing.</para>
32
+		
33
+		<para>Some components have more advanced attributes which are not accesible via the toolbar. These are found in the Item sidebar on the right. The diode, for example, has a variety of behavioural characteristics that you can edit here.</para>
34
+		
35
+		<para>If your selection of components have different values for their attributes (for example, different resistances for a selection of resistors), the Item sidebar will have the disagreeing attributes greyed-out. You can enable these by clicking the "Merge properties" button.</para>
36
+		
37
+		<para>The "Defaults" button will reset the component attributes to the ones it had on creation.</para>
38
+		
39
+		<para>There is one type of attribute that cannot be editable by either the toolbar or Item sidebar - multiline text. Double clicking on the item will bring up a dialog box where the text can be entered.</para>
40
+	</sect1>
41
+	
42
+	<sect1 id="circuit_simulation">
43
+		<title>Simulation</title>
44
+		<para>By default, the simulation will be running when you create a new circuit. The status of the simulation is displayed in the lower right of a circuit view, and can be changed via the Tools menu. Firstly - a little explanation on how the Simulator works. This should allow you to make the most out of it.</para>
45
+		
46
+		<para>When a circuit is created or modified, the affected areas are partitioned up into groups of pins and connections that can be considered independent. Each group is then simulated as a seperate entity (although still interacting via the components), with the simulation provided dependent on the group's complexity. Complex groups, such as those involving nonlinear components like LEDs, are slow to simulate. Groups that contain only logic pins, of which only one controls the value on those pins, are the fastest to simulate.</para>
47
+		
48
+		<para>The results of the simulation are provided through several graphical means.</para>
49
+		
50
+		<para>The pins on the components will display voltage sidebars. These are coloured orange for positive voltage, and blue for negative voltage. Their length depends on the voltage level, and their width on the amount of current flowing through the pin. These can be turned off in the Work Area tab of the Configuration dialog.</para>
51
+		
52
+		<para>Hovering the mouse over a pin or connection will display a small tooltip showing the voltage and current at that point in the circuit. Several components also provide graphical feedback - for example, LEDs and voltmeters or ammeters.</para>
53
+		
54
+		<para>Lastly, there is the oscilloscope, discussed in the next section.</para>
55
+	</sect1>
56
+	
57
+	<sect1 id="oscilloscope">
58
+		<title>Oscilloscope</title>
59
+		<para>The oscilloscope can record logic, voltage and current data. The logic probe is optimized for storing boolean samples, and so should be used instead of the voltage probe when measuring logic.</para>
60
+		
61
+		<para>To collect data, create a new probe component, and attach it to an appropriate point in the circuit. You'll see the output immediately drawn in the oscilloscope. Adding more probes will squash the outputs next to each other - you can reposition these by dragging the arrows on the left of the oscilloscope view, and change their colours via the probe's attributes.</para>
62
+		
63
+		<para>For voltage and current probes, the range of input values can be adjusted in the "Item Editor" sidebar on the right.</para>
64
+		
65
+		<para>Zooming is controlled by a slider. The scaling is logarithmic; for every few pixels that the slider moves along, the zoom factor will be multipled by a constant. &kappname; simulates logic to a maximum precision of 1 microsecond, and at maximum zoom level, one microsecond is represented by 8 pixels.</para>
66
+		
67
+		<para>When the scrollbar is dragged to the end, it will remain there as new data is recorded. Otherwise, the position of the scrollbar remains fixed in time. The oscilloscope view can also be moved forwards and backwards by left-clicking and dragging the view. Due to limitations of the underlying widget system, scrolling will be very granular at maximum zoom.</para>
68
+		
69
+		<para>Right-clicking on the oscilloscope view brings up a menu where you can control the number of times the oscilloscope view is updated. This allows for either a smoother display, or reducing CPU usage.</para>
70
+	</sect1>
71
+	
72
+	<sect1 id="subcircuits">
73
+		<title>Subcircuits</title>
74
+		<para>Subcircuits offer a reusable and tidy way of using a circuit, when you're only interested in interacting with external connections to the circuit. The subcircuit is creating as an IC, with the pins acting as the interaction with the internal circuit.</para>
75
+		
76
+		<para>First, the circuit to be used in as a template for creating a subcircuit from must be constructed. The points of interaction are defined via "External Connection" components. These must be connected up, and positioned where you want the pin to be positioned on the subcircuit IC.</para>
77
+		
78
+		<para>Next, select the group of components and external connections to be turned into a subcircuit, and select "Create Subcircuit" from the right-click menu. You'll be offered to enter a name for the subcircuit. Once created, the name will popup in the Component selector under the Subcircuits selection. This can be treated as any normal component - with the additional option of removing it by right-clicking on the item and selecting Remove.</para>
79
+	</sect1>
80
+	
81
+</chapter>
82
+
83
+
84
+

+ 35
- 0
doc/en/debugging.docbook View File

@@ -0,0 +1,35 @@
1
+<!-- kate: tab-width 2; indent-mode xml; -->
2
+<chapter id="debugging">
3
+	<title>Debugging</title>
4
+	
5
+	<sect1 id="starting_debugger">
6
+		<title>Starting the Debugger</title>
7
+		
8
+		<para>Debugging support is provided for Assembly, SDCC and Microbe, when they are open as a text document. From here, stepping is controlled via the Debug menu. There are two methods of starting the debugger.</para>
9
+		
10
+		<para>If the PIC program is already running in a circuit, then double-clicking on the PIC component will open up the program. For assembly PIC programs, the debugger for that text document will be linked into the PIC component. In this case, the debug menu cannot stop the PIC program - as this is owned by the PIC component.</para>
11
+		
12
+		<para>If the assembly file is already opened, then the debugger can be run via the Debug menu. After compiling the program, the debugger will be ready, with the PIC program paused at the first instruction. Note that when debugging high level languages, the current execution point will not be shown if there is no line that corresponds to the first assembly instruction to be executed. In this case, clicking next will bring the execution point to the first line in the program.</para>
13
+	</sect1>
14
+	
15
+	<sect1 id="controlling_debugger">
16
+		<title>Controlling the Debugger</title>
17
+		
18
+		<para>The debugger can be in one of two modes: running, and stepping. While running, the PIC program will be simulated in realtime. To allow stepping, the PIC program must be paused - either by clicking on Interrupt in the Debug menu, or clicking on the pause button on the PIC component.</para>
19
+		
20
+		<para>In stepping mode, a green arrow in the margin of the text document indicates the next line to be executed (familiar to KDevelop users). It may be useful to turn on the icon border via the View menu (it can be permanently turned on via the Editor Settings dialog).</para>
21
+		
22
+		<para>There are three types of stepping:</para>
23
+		
24
+		<itemizedlist>
25
+			<listitem><para>Step into - This executes the current instruction. The green arrow is moved onto the next line to be executed.</para></listitem>
26
+			<listitem><para>Step over - If the next instruction to be executed is a call, or similar, then this will "step over" the call, returning to stepping mode once the call has returned. Otherwise, stepping over an instruction behaves identically to step. To put it technically - the initial stack level is recorded, and the program execution is paused once the stack level returns to its initial level.</para></listitem>
27
+			<listitem><para>Step out - If the current execution is inside a call, or similar, then this will wait until the call returns. Similarly to stepping over, this is equivalent to waiting until the stack level returns to one less than the initial level, if the initial level is greater than zero.</para></listitem>
28
+		</itemizedlist>
29
+		
30
+		<para>Breakpoints allow the execution to be paused when the PIC program reaches a given instruction. To toggle a breakpoint on the line containing the cursor, either use the Debug menu, or click on the icon border of the text document.</para>
31
+		
32
+		<para>The "Symbol Viewer" sidebar on the right shows the values of the Special Function Registers. To find out the value of a variable in the General Purpose Registers, you can hover your mouse over the variable name in an instruction that operates on that register. Note that the radix selection in the Symbol Viewer also controls how the value is displayed when hovering over a variable.</para>
33
+	</sect1>
34
+	
35
+</chapter>

+ 68
- 0
doc/en/faq.docbook View File

@@ -0,0 +1,68 @@
1
+<!-- kate: tab-width 2; indent-mode xml; -->
2
+<chapter id="faq">
3
+<title>FAQ</title>
4
+
5
+<qandaset>
6
+	<qandaentry>
7
+		<question>
8
+			<para>Configure can't find gpsim</para>
9
+		</question>
10
+		
11
+		<answer>
12
+			<para>Configure will attempt to compile several files to test for gpsim presence; testing for versions 0.21.4, 0.21.11 and 0.21.12. These files uses part of the gpsim API, that is also used by &kappname;, and was introduced in the respective gpsim versions. If it fails in compiling this program, it will display the warning to the user, and PIC simulation support will not be compiled into &kappname;. There are a number of possibly reasons for finding gpsim to fail:</para>
13
+			
14
+			<itemizedlist>
15
+				<listitem><para>gpsim >= 0.21.4 is not installed. &kappname; does not support gpsim-0.21.2 or gpsim-0.20.14 (or any earlier versions). Later versions may work; but this cannot be tested before they are released. The latest gpsim can be obtained from the <ulink url="http://www.dattalo.com/gnupic/gpsim.html">gpsim website</ulink>.</para></listitem>
16
+				<listitem><para>Gpsim is installed, but the header files could not be found. If gpsim is installed in a non-standard location, you may need to specify the location of the header files with "./configure --with-extra-includes=DIR". It is also likely you'll need to specify a library location with the configure option "--with-extra-lib" if the includes are in a non-standard location.</para></listitem>
17
+				<listitem><para>Gpsim is installed and the headers are somewhere where configure can find them, but there is some other glib craziness occuring.</para></listitem>
18
+			</itemizedlist>
19
+				
20
+			<para>Configure generates the file <computeroutput>config.log</computeroutput> which will contain details of exactly what went wrong. Searching for gpsim in this log should help you decide what's happened. As an example, here is part of the config.log file where one of the gpsim header files is missing:</para>
21
+			
22
+			<example><title>Possible config.log output where gpsim detection failed</title>
23
+				<programlisting>
24
+configure:30956: checking for gpsim 0.21.4 availability
25
+configure:31009: g++ -c -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    
26
+-DQT_THREAD_SUPPORT -O3 -march=athlon-xp -mcpu=athlon-xp -D_REENTRANT 
27
+conftest.cc >&amp;5
28
+conftest.cc:48:35: gpsim/gpsim_interface.h: No such file or directory</programlisting>
29
+			</example>
30
+			
31
+			<para>If the config.log doesn't help, please contact the &kappname; developers with the relevant parts of config.log attached.</para>
32
+		</answer>
33
+	</qandaentry>
34
+	<qandaentry>
35
+		<question>
36
+			<para>&kappname; crashes when running a PIC program</para>
37
+		</question>
38
+		
39
+		<answer>
40
+			<para>Version 0.21.11 of gpsim contains a bug that may cause &kappname; to crash on the second running of a PIC program. This bug has since been fixed in gpsim-cvs. The &kappname; website provides a <ulink url="http://ktechlab.org/download/gpsim.php">patched version</ulink> of the stable release of gpsim that fixes this bug.</para>
41
+		</answer>
42
+	</qandaentry>
43
+	
44
+	<qandaentry>
45
+		<question>
46
+			<para>High Level Language (HLL) debugging does not work</para>
47
+		</question>
48
+		
49
+		<answer>
50
+			<para>Version 0.21.11 of gpsim contains a bug preventing HLL debugging from working. This bug has since been fixed in gpsim-cvs. The &kappname; website provides a <ulink url="http://ktechlab.org/download/gpsim.php">patched version</ulink> of the stable release of gpsim that fixes this bug.</para>
51
+		</answer>
52
+	</qandaentry>
53
+	
54
+	<qandaentry>
55
+		<question>
56
+			<para>&kappname; uses lots of CPU</para>
57
+		</question>
58
+		
59
+		<answer>
60
+			<para>There are several possible causes. Simulation of circuits that contain both reactive and nonlinear components (such as capacitors and transistors) take a lot of CPU time to simulate. You can pause and resume the simulation via the Tools menu.</para>
61
+			
62
+			<para>Drawing of the work area (in particular, redrawing lots of rapidly updating voltage bars on pins) is also CPU intensive. You can reduce the refresh rate or turn off the voltage bars via the Settings dialog. The refresh rate of the Oscilloscope can also be reduced by right clicking on its display.</para>
63
+
64
+			<para>Note that the next major release of &kappname; will be a lot faster in both displaying the work area and simulating reactive and nonlinear components.</para>
65
+		</answer>
66
+	</qandaentry>
67
+</qandaset>
68
+</chapter>

+ 52
- 0
doc/en/flowcode.docbook View File

@@ -0,0 +1,52 @@
1
+<!-- kate: tab-width 2; indent-mode xml; -->
2
+<chapter id="flowcode">
3
+	<title>&flowcode;</title>
4
+	
5
+	<sect1 id="flowcode_introduction">
6
+		<title>Introduction</title>
7
+		
8
+		<para>&flowcode; allows for very quick and easy construction of a PIC program. After the user has constructed a flowchart from the program parts available, &kappname; can then convert the flowchart into a number of formats. To output hex, for example, the following chain of conversions takes place:</para>
9
+		
10
+		<orderedlist>
11
+			<listitem><para>The &flowcode; is converted to &microbe;; a high-level language whose compiler is distributed with &kappname;.</para></listitem>
12
+			<listitem><para>The <command>microbe</command> executable then compiles the &microbe; file to PIC assembly.</para></listitem>
13
+			<listitem><para>Finally, <command>gpasm</command> takes the PIC assembly file, and outputs the hex for the program.</para></listitem>
14
+		</orderedlist>
15
+		
16
+		<para>Of course, if you don't have gputils installed - with which <command>gpasm</command> is distributed - then the last step can't be performed.</para>
17
+		
18
+	</sect1>
19
+	
20
+	<sect1 id="flowcode_creation">
21
+		<title>Creating a Program</title>
22
+		
23
+		<para>Every &flowcode; program needs a unique starting point - this is the place where your program will be run from on PIC startup. To define this point, open up the FlowParts sidebar on the left, and drag across the Start part. &kappname; will only allow you to use one of these.</para>
24
+		
25
+		<para>You can then construct your program by using the predefined parts on the left - or insert code of your own (in assembly or &microbe; format) via the Embed part. The flow of the program is controlled via the connections between the FlowParts - <xref linkend="connecting_components"/> offers more detail on creating connections.</para>
26
+		
27
+		<para>&flowcode; imposes limitations in addition to those of Circuits on what can be connected. For example, each FlowPart can only have one output connection. Additional limitations are described in <xref linkend="nestling_flowcode"/>.</para>
28
+	</sect1>
29
+	
30
+	<sect1 id="pic_settings">
31
+		<title>PIC Settings</title>
32
+		
33
+		<para>When you create a new &flowcode; document, you'll notice a picture of the PIC you're using in the top-left corner of the work area. This represents the initial settings of the PIC.</para>
34
+		
35
+		<para>Each pin shown on the picture of the PIC shows the initial type of pin (input or output), and its initial state (high or low). You can change these by dragging the pin to set the type, and clicking on it to toggle its state.</para>
36
+		
37
+		<para>The Settings dialog, invoked by clicking on the Settings button, also allows you to edit the initial pin types and states - in this case, by editing the binary values written to the PORT and TRIS registers. As well as pin settings though, the dialog allows editing of the initial values of variables in the PIC program.</para>
38
+		
39
+		<para>At the bottom, there is a list of currently defined pin maps, as well as buttons to manipulate them. Pin maps are used to specify how a seven segment or a keypad is connected to a PIC. To use the Seven Segment or the Keypad &flowcode; parts, you will need to define a pin map here first.</para>
40
+		
41
+	</sect1>
42
+	
43
+	<sect1 id="nestling_flowcode">
44
+		<title>Nestling &flowcode;</title>
45
+		
46
+		<para>Many FlowParts, such as subroutines and loops, can contain code of their own. After creating such a container, FlowParts can be added by either dragging or dropping them into the container. The container will be highlighted to indicate that it will become the new parent of the FlowPart.</para>
47
+		
48
+		<para>The container takes responbility for FlowParts nestled inside. If the expand button is unclicked, all contained FlowParts will be hidden - and likewise, the contents will be shown when the expand button is clicked again. Connections cannot be made between FlowParts in different containers, and the contents of a container will be moved about along with the container.</para>
49
+		
50
+	</sect1>
51
+	
52
+</chapter>

+ 56
- 0
doc/en/index.docbook View File

@@ -0,0 +1,56 @@
1
+<?xml version="1.0" ?>
2
+<!-- kate: tab-width 2; indent-mode xml; -->
3
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
4
+		  <!ENTITY ktechlab "ktechlab">
5
+			<!ENTITY ktechlab-quick SYSTEM "quick.docbook">
6
+		  <!ENTITY ktechlab-pic-programs SYSTEM "picprograms.docbook">
7
+		  <!ENTITY ktechlab-circuits SYSTEM "circuits.docbook">
8
+		  <!ENTITY ktechlab-flowcode SYSTEM "flowcode.docbook">
9
+		  <!ENTITY ktechlab-microbe SYSTEM "microbe.docbook">
10
+		  <!ENTITY ktechlab-debugging SYSTEM "debugging.docbook">
11
+		  <!ENTITY ktechlab-faq SYSTEM "faq.docbook">
12
+		  <!ENTITY kappname "KTechlab">
13
+		  <!ENTITY microbe "Microbe">
14
+			<!ENTITY flowcode "FlowCode">
15
+		  <!ENTITY % addindex "IGNORE">
16
+		  <!ENTITY % English "INCLUDE">
17
+]>
18
+		  
19
+<book lang="&language;">
20
+	<bookinfo>
21
+		<title>The KTechlab Handbook</title>
22
+		<authorgroup>
23
+			<author>
24
+				<firstname>David</firstname>
25
+				<surname>Saxton</surname>
26
+				<affiliation><address><email>david&#64;bluehaze&#46;org</email></address></affiliation>
27
+			</author>
28
+			<author>
29
+				<firstname>Daniel</firstname>
30
+				<surname>Clarke</surname>
31
+			</author>
32
+		</authorgroup>
33
+		<date>2005-12-27</date>
34
+		<releaseinfo>0&#46;3</releaseinfo>
35
+		<abstract>
36
+			<para>KTechlab is an IDE for microcontrollers and electronics.</para> 
37
+		</abstract>
38
+		<keywordset>
39
+			<keyword>KTechlab</keyword>
40
+			<keyword>KDE</keyword>
41
+			<keyword>Development</keyword>
42
+			<keyword>Electronics</keyword>
43
+			<keyword>Simulation</keyword>
44
+			<keyword>PICs</keyword>
45
+			<keyword>Microbe</keyword>
46
+		</keywordset>
47
+	</bookinfo>
48
+	
49
+	&ktechlab-quick;
50
+	&ktechlab-pic-programs;
51
+	&ktechlab-circuits;
52
+	&ktechlab-flowcode;
53
+	&ktechlab-microbe;
54
+	&ktechlab-debugging;
55
+	&ktechlab-faq;
56
+</book>

+ 422
- 0
doc/en/microbe.docbook View File

@@ -0,0 +1,422 @@
1
+<!-- kate: tab-width 2; indent-mode xml; -->
2
+<chapter id="microbe">
3
+<title>&microbe;</title>
4
+<sect1>
5
+	<title>Introduction and General Syntax</title>
6
+	<para>
7
+		<application>Microbe</application> compiles programs written in the custom language for PICs, as a companion program to <application>&kappname;</application>. The syntax has been designed to suit a &flowcode; program.
8
+		
9
+		The syntax for running <command>microbe</command> from the commandline is:
10
+		
11
+		<programlisting>microbe [options] [input.microbe] [output.asm]</programlisting>
12
+		
13
+		where options are:
14
+		<itemizedlist>
15
+			<listitem><para><function>--show-source</function> - Puts each line of &microbe; source code as a comment in the assembly output before the assembly instructions themselves for that line.</para></listitem>
16
+			<listitem><para><function>--no-optimize</function> - Prevent optimization of the instructions generated from the source. Optimization is usually safe, and so this option is mainly used for debugging.</para></listitem>
17
+		</itemizedlist>
18
+		
19
+		The .microbe input file must identify the target PIC by inserting the PIC name at the top of the .microbe file; e.g. the name of a PIC16F84 is "P16F84".
20
+		
21
+		<example><title>Simple complete &microbe; program</title>
22
+			<programlisting role="correct">
23
+P16F84
24
+
25
+a = 0
26
+repeat
27
+{
28
+	PORTA = a
29
+	a = a + 1
30
+}
31
+until a == 5
32
+
33
+end</programlisting>
34
+			</example>
35
+		</para>
36
+
37
+	<sect2 id="namingconventions">
38
+		<title>Naming conventions</title>
39
+		<para>
40
+			The following rules apply to variable names and labels:
41
+			<itemizedlist>
42
+				<listitem><para>They can only contain alphanumerical characters [a..z][A..Z][0..9] and the underscore "_".</para></listitem>
43
+				<listitem><para>They are case-sensitive.</para></listitem>
44
+				<listitem><para>They cannot start with a number.</para></listitem>
45
+				<listitem><para>They should not start with "__" (double underscore), as this is reserved for use by the compiler.</para></listitem>
46
+			</itemizedlist>
47
+		</para>
48
+	</sect2>
49
+
50
+	<sect2 id="bracingconventions">
51
+		<title>Bracing conventions</title>
52
+		<para>
53
+			Curly braces, {}, indicate the start and end of a code block.
54
+			
55
+			They can appear anywhere before the start and after the end of the code block.
56
+			
57
+			Examples of acceptable code blocks:
58
+	<programlisting role="correct">
59
+statement1 {
60
+	some code
61
+}</programlisting>
62
+		<programlisting role="correct">
63
+statement2 {
64
+	other code }</programlisting>
65
+		
66
+		<programlisting role="correct">
67
+statement3
68
+{
69
+	other code
70
+}</programlisting>
71
+		
72
+		<programlisting role="correct">
73
+statement5 {
74
+	code block
75
+} statement6</programlisting>
76
+			</para>
77
+		</sect2>
78
+		<sect2 id="commenting">
79
+			<title>Commenting</title>
80
+			<para>
81
+				Commenting is similar to C. // comments out the rest of the line. /* and */ denote a multiline comment.
82
+				<programlisting role="correct">
83
+// This is a comment
84
+x = 2 
85
+/* As is this
86
+multiline comment */</programlisting>
87
+		</para>
88
+	</sect2>
89
+
90
+	<sect2 id="structure">
91
+		<title>Program Structure</title>
92
+		<para>
93
+			The PIC id must be inserted at the top of the program. The end of the main program is denoted with "end". Subroutines must placed after "end".
94
+		</para>
95
+	</sect2>
96
+
97
+	<sect2 id="subroutines">
98
+		<title>Subroutines</title>
99
+		<para>
100
+			A subroutine can be called from anywhere in the code. Syntax:
101
+		</para>
102
+		<programlisting role="correct">
103
+sub SubName
104
+{
105
+	// Code...
106
+}</programlisting>
107
+		<para>The subroutine is called with "call SubName".</para>
108
+	</sect2>
109
+</sect1>
110
+
111
+<sect1 id="languagereference">
112
+	<title>&microbe; language reference</title>
113
+	<sect2 id="if">
114
+		<title>if</title>
115
+		<para>Conditional branching.
116
+			
117
+			Syntax:
118
+			<programlisting role="correct">if [expression] then [statement]</programlisting>
119
+			or
120
+			<programlisting role="correct">
121
+if [expression] then
122
+{
123
+	[statement block]
124
+}</programlisting>
125
+		
126
+			Similarly for else:
127
+			<programlisting role="correct">else [statement]</programlisting>
128
+			or
129
+			<programlisting role="correct">
130
+else
131
+{
132
+	[statement block]
133
+}</programlisting>
134
+			</para>
135
+			
136
+			<example><title>if</title>
137
+			<programlisting role="correct">
138
+if porta.0 is high then
139
+{
140
+	delay 200
141
+}
142
+else
143
+{
144
+	delay 300
145
+}</programlisting>
146
+		</example>
147
+	</sect2>
148
+	
149
+	<sect2 id="alias">
150
+		<title>alias</title>
151
+		<para>Aliases one string to another. Syntax:
152
+			<programlisting role="correct">alias [from] [to]</programlisting>
153
+		</para>
154
+	</sect2>
155
+	
156
+	<sect2 id="repeat">
157
+		<title>repeat</title>
158
+		<para>Executes the statement block repeatedly until expression evaluates to true.
159
+			
160
+			The evaluation of the expression is performed after the statement block, so the statement block will always be executed at least once. Syntax:
161
+	<programlisting role="correct">
162
+repeat
163
+{
164
+	[statement block]
165
+}
166
+until [expression]</programlisting>
167
+	</para>
168
+</sect2>
169
+
170
+<sect2 id="while">
171
+<title>while</title>
172
+	<para>
173
+	Similar to repeat, this repeatedly executes the statement block. However, the expression is evaluated before execution, not after. So if the expression evaluates to false on the first pass, then the statement block will not get executed.
174
+	
175
+	Syntax:
176
+	<programlisting role="correct">
177
+while [expression]
178
+{
179
+	[statement block]
180
+}</programlisting>
181
+	</para>
182
+</sect2>
183
+
184
+
185
+<sect2 id="goto">
186
+	<title>goto</title>
187
+	<para>
188
+		This causes execution of the code to continue at the next statement after the label specified.
189
+		
190
+		Goto syntax:
191
+		<programlisting role="correct"><function>goto</function> [labelname]</programlisting>
192
+		
193
+		Label syntax:
194
+		<programlisting role="correct"><function>labelname:</function></programlisting>
195
+		
196
+		It is often considered good programming practice to avoid the use of goto. Use of control statements and subroutines will result in a much more readable program.
197
+	</para>
198
+	
199
+	<example><title>goto</title>
200
+	<programlisting role="correct">
201
+goto MyLabel
202
+
203
+...
204
+
205
+[MyLabel]:
206
+// Code will continue at this point</programlisting>
207
+		</example>
208
+	</sect2>
209
+	
210
+	<sect2 id="call">
211
+		<title>call</title>
212
+		<para>
213
+			Calls a subroutine.
214
+			
215
+			Syntax:
216
+			<programlisting role="correct"><function>call</function> [SubName]</programlisting>
217
+			where SubName is the name of the subroutine to be called.
218
+		</para>
219
+	</sect2>
220
+	
221
+	<sect2 id="delay">
222
+	<title>delay</title>
223
+		<para>
224
+		This causes the code execution to stop for the given period of time. The interval is in milliseconds.
225
+		
226
+		Syntax:
227
+		<programlisting role="correct"><function>delay</function> [interval]</programlisting>
228
+		
229
+		<note><para>At present, &microbe; assumes that the PIC is operating at a frequency of 4Mhz - i.e. each instruction takes 1 microsecond to execute. If this is not the case, the interval must be adjusted proportionately.</para></note>
230
+		</para>
231
+	</sect2>
232
+	
233
+	<sect2 id="sevenseg">
234
+		<title>sevenseg</title>
235
+		<para>This is used to define the pin mapping for a (common cathode) seven segment display connected to the PIC. Syntax:
236
+			<programlisting role="correct"><function>sevenseg</function> [name] [a] [b] [c] [d] [e] [f] [g]</programlisting>
237
+			
238
+			where [a]...[g] are the PIC pins to which the respective segments of the seven segment display are attached. The pins can be written either as PORTX.N or RXN.
239
+		</para>
240
+		
241
+		<para>To display a number on the seven segment, the pin mapping is treated as a write only variable.
242
+			<example>
243
+				<title>Defining and outputting to a seven segment</title>
244
+				<programlisting role="correct">
245
+sevenseg seg1 RB0 RB1 RB2 RB3 RB4 RB5 RB6
246
+seg1 = x + 2</programlisting>
247
+				</example>
248
+		</para>
249
+	</sect2>
250
+	
251
+	<sect2 id="keypad">
252
+		<title>keypad</title>
253
+		<para>This is used to define the pin mapping for a keypad connected to the PIC. Syntax:
254
+			<programlisting role="correct"><function>keypad</function> [name] [row 1] ... [row 4] [column 1] ... [column n]</programlisting>
255
+			
256
+			where [row 1] ... [row 4] and [column 1] ... [column n] are the PIC pins to which the respective rows and columns of the keypad are attached (at the moment, the number of rows is not changeable). See <xref linkend="sevenseg"/> (above) for more information on pin mappings.
257
+		</para>
258
+		
259
+		<para>The columns of the keypad should be pulled down via 100k resistors to ground. The row pins must be configured as outputs and the column pins as inputs. Once the keypad has been defined, it is treated as a read only variable.
260
+			<example>
261
+				<title>Defining and reading from a keypad</title>
262
+					<programlisting role="correct">
263
+keypad keypad1 RB0 RB1 RB2 RB3 RB4 RB5 RB6
264
+x = keypad1</programlisting>
265
+			</example>
266
+		</para>
267
+			
268
+		<para>
269
+			By default, the values returned for a keypad are:
270
+			<itemizedlist>
271
+				<listitem><para>The value of the number if it is a numeric key (1 to 3 along top row; hexadecimal A to D down the fourth column and continuing for each extra column).</para></listitem>
272
+				<listitem><para>253 for the key in row 4, column 1.</para></listitem>
273
+				<listitem><para>254 for the key in row 4, column 3.</para></listitem>
274
+			</itemizedlist>
275
+			These values can be redefined by using the alias command, where the name of the key in row x, column y (rows and columns starting at 1), is Keypad_x_y. For example, to give the star key on a 4x3 keypad the value zero, the following alias would be used:
276
+			<example>
277
+				<title>Aliasing a keypad key to a value</title>
278
+				<programlisting role="correct">alias Keypad_4_1 0</programlisting>
279
+			</example>
280
+		</para>
281
+	</sect2>
282
+</sect1>
283
+
284
+<sect1 id="picio">
285
+<title>PIC I/O</title>
286
+	
287
+	<sect2 id="tristate">
288
+	<title>Port Direction</title>
289
+		<para>
290
+		The port direction is set by assigning a value to TRIS*, where * is the port letter. For example:
291
+		</para>
292
+		<example><title>Setting port directions</title>
293
+		<programlisting role="correct">TRISB = b'01111001'</programlisting>
294
+		</example>
295
+		<para>
296
+		The above sets pins RB1, RB2 and RB7 on PORTB as outputs, and the other pins on PORTB as inputs. In this example, b'01111001' is a binary representation of the output type. The 1 on the right represents an output on RB0, and the 0 on the left represents an input on RB7.
297
+		</para>
298
+	</sect2>
299
+	
300
+	<sect2 id="ports">
301
+	<title>Port I/O</title>
302
+		<para>
303
+		The port can be treated as a variable. For example:
304
+		</para>
305
+		
306
+		<example><title>Writing to a port</title>
307
+		<programlisting role="correct">x = PORTA</programlisting>
308
+		</example>
309
+		
310
+		<para>
311
+		The above assigns the value of PORTA to the variable x.
312
+		</para>
313
+	</sect2>
314
+	
315
+	<sect2 id="pins">
316
+	<title>Pin I/O</title>
317
+		<para>
318
+		Each pin on a port is obtained by prefixing the pin number by the port name; e.g. Pin 2 (starting from Pin 0) on PORTA is known as
319
+		<emphasis>PORTA.0</emphasis>.
320
+		
321
+		The syntax to set a pin state is:
322
+		<programlisting role="correct">PORTX.N = <emphasis>STATE</emphasis></programlisting>
323
+		where <emphasis>STATE</emphasis> can be <emphasis>high</emphasis> or <emphasis>low</emphasis>.
324
+		
325
+		The syntax to test a pin state is:
326
+		<programlisting role="correct"><function>if</function> PORTX.N is <emphasis>STATE</emphasis> <function>then</function></programlisting>
327
+		
328
+		Combining these examples, we have:
329
+		</para>
330
+		<example><title>Setting and testing pin state</title>
331
+		<programlisting role="correct">
332
+TRISA = 0
333
+TRISB = 255
334
+<function>if</function> PORTA.3 is <function>high</function> <function>then</function>
335
+{
336
+	PORTB.5 = <function>low</function>
337
+}
338
+<function>else</function>
339
+{
340
+	PORTB = PORTA + 15
341
+}</programlisting>
342
+		</example>
343
+	</sect2>
344
+</sect1>
345
+	
346
+<sect1 id="variables">
347
+<title>Variables</title>
348
+	<para>
349
+	All variables are 8-bit unsigned integers, giving a range from 0 to 255.
350
+	
351
+	<application>&microbe;</application> supports the typical unary operations (acting on one variable) and binary operations (acting on two variables) that are supported by the PIC. In addition, &microbe; also supports division and multiplication.
352
+	</para>
353
+	<sect2 id="unary">
354
+	<title>Unary Operations</title>
355
+		<para>
356
+		<itemizedlist>
357
+		<listitem><para><emphasis>rotateleft x</emphasis> - Rotates the variable x left through carry.</para></listitem>
358
+		<listitem><para><emphasis>rotateright x</emphasis> - Rotates the variable x right through carry.</para></listitem>
359
+		<listitem><para><emphasis>increment x</emphasis> - Increments the variable x. If x has a value of 255, then x wraps round to 0.</para></listitem>
360
+		<listitem><para><emphasis>decrement x</emphasis> - Decrements the variable x. If x has a value of 0, then x wraps round to 255.</para></listitem>
361
+		</itemizedlist>
362
+		</para>
363
+	</sect2>
364
+	
365
+	<sect2 id="arithmetic">
366
+	<title>Arithmetic</title>
367
+		<para>
368
+		Supported operations:
369
+		<itemizedlist>
370
+		<listitem><para><emphasis>Addition:</emphasis> x + y</para></listitem>
371
+		<listitem><para><emphasis>Subtraction:</emphasis> x - y</para></listitem>
372
+		<listitem><para><emphasis>Multiplication:</emphasis> x * y</para></listitem>
373
+		<listitem><para><emphasis>Division:</emphasis> x / y</para></listitem>
374
+		<listitem><para><emphasis>Binary XOR:</emphasis> x XOR y</para></listitem>
375
+		<listitem><para><emphasis>Binary AND:</emphasis> x AND y</para></listitem>
376
+		<listitem><para><emphasis>Binary OR:</emphasis> x OR y</para></listitem>
377
+		</itemizedlist>
378
+		</para>
379
+	</sect2>
380
+	
381
+	<sect2 id="comparison">
382
+	<title>Comparison</title>
383
+	<para>
384
+	Supported operations:
385
+	<itemizedlist>
386
+	<listitem><para><emphasis>Equals:</emphasis> x == y</para></listitem>
387
+	<listitem><para><emphasis>Does not equal:</emphasis> x != y</para></listitem>
388
+	<listitem><para><emphasis>Is greater than:</emphasis> x > y</para></listitem>
389
+	<listitem><para><emphasis>Is less than:</emphasis> x &lt; y</para></listitem>
390
+	<listitem><para><emphasis>Is greater than or equal to:</emphasis> x &gt;= y</para></listitem>
391
+	<listitem><para><emphasis>Is less than or equal to:</emphasis> x &lt;= y</para></listitem>
392
+	</itemizedlist>
393
+	
394
+	For example:
395
+	</para>
396
+	<example><title>Comparison</title>
397
+	<programlisting role="correct">
398
+<function>if</function> PORTA >= 5 <function>then</function>
399
+{
400
+	...
401
+}</programlisting>
402
+	</example>
403
+	</sect2>
404
+</sect1>
405
+
406
+<!--
407
+<sect1 id="interrupts">
408
+<title>Interrupts</title>
409
+	<para>
410
+	There are several types of events, and some of these take an optional parameter making
411
+	the condition under which the routine is called more specific.
412
+	<itemizedlist>
413
+	<listitem><para><emphasis>changed &lt;pin name&gt;</emphasis>	
414
+		 - Occurs when the state of the specified pin changes. Pin name is in the usual syntax of PORTX.n, e.g. <programlisting>interrupt changed PORTB.4</programlisting></para></listitem>
415
+	<listitem><para><emphasis>triggered</emphasis> - Rotates the variable x right through carry.</para></listitem>
416
+	<listitem><para><emphasis>timer</emphasis> - ///TODO</para></listitem>
417
+	<listitem><para><emphasis>write_complete</emphasis> - ///TODO</para></listitem>
418
+	</itemizedlist>
419
+	</para>
420
+</sect1>
421
+-->
422
+</chapter>

+ 44
- 0
doc/en/picprograms.docbook View File

@@ -0,0 +1,44 @@
1
+<!-- kate: tab-width 2; indent-mode xml; -->
2
+<chapter id="pic_programs">
3
+	<title>PIC Programs</title>
4
+	
5
+	<sect1 id="manipulation">
6
+		<title>Manipulation</title>
7
+		
8
+		<para>When you create a FlowCode or a Text document, you'll notice a drop down menu in the toolbar with a rocket icon. From here, you can manipulate your PIC program; changing it to different forms.</para>
9
+		
10
+		<itemizedlist>
11
+			<listitem><para>Convert to &microbe; - This is used only in &flowcode; documents. This is explained further in <xref linkend="flowcode"/>.</para></listitem>
12
+			
13
+			<listitem><para>Convert to Assembly - This can be used in four contexts. When a &flowcode; document is open, it will output the &flowcode; as assembly instructions. When a &microbe; document is open, it will invoke the <command>microbe</command> program distributed with &kappname; to compile the program. Similarly, if a C program is open, it will attempt to compile it via SDCC. When a text document containing PIC hex is open, it will invoke <command>gpdasm</command> to disassemble the hex.</para></listitem>
14
+			
15
+			<listitem><para>Convert to Hex - This can also be used in four contexts. As with Convert to Assembly, this can be used with &flowcode;, &microbe; and C documents. It will also be enabled when an assembly document is open to assemble it via <command>gpasm</command>.</para></listitem>
16
+			
17
+			<listitem><para>Upload to PIC - This assembles the PIC program currently being edited, and uploads it using the programmer that the user has selected.</para></listitem>
18
+		</itemizedlist>
19
+		
20
+		<para>None of these actions require the current document to be saved - very useful for when a quick program is required. For non-PIC targets, the Output Dialog invoked on clicking on one of these actions can either output the result (always text in the above three cases) to a fresh document, or to a file. If the output is saved to file, it also provides options to load the file after creation, and adding the newly created file to the open project (if one is open).</para>
21
+		
22
+		<para>Note that you can make &kappname; always use the same view for displaying the outputed content by selecting the option under General Settings.</para>
23
+	</sect1>
24
+	
25
+	<sect1 id="uploading">
26
+		<title>Uploading</title>
27
+		
28
+		<para>&kappname; uses third-party programmers to upload programs to PICs. A variety of common programmers come predefined. Others can be added via the Settings dialog. See the <ulink url="http://ktechlab.org/pic_programmers.php">&kappname; website</ulink> for more information.</para>
29
+		
30
+		<para>The list of ports is obtained from scanning for serial and parallel ports that are readable and writable. Serial ports are looked for in:
31
+			<itemizedlist>
32
+				<listitem><para>/dev/ttyS<emphasis>[0..7]</emphasis></para></listitem>
33
+				<listitem><para>/dev/tts/<emphasis>[0..7]</emphasis></para></listitem>
34
+				<listitem><para>/dev/ttyUSB<emphasis>[0..7]</emphasis></para></listitem>
35
+				<listitem><para>/dev/usb/tts/<emphasis>[0..7]</emphasis></para></listitem>
36
+			</itemizedlist>
37
+			Parallel ports are looked for in:
38
+			<itemizedlist>
39
+				<listitem><para>/dev/usb/parport<emphasis>[0..7]</emphasis></para></listitem>
40
+				<listitem><para>/dev/usb/parports/<emphasis>[0..7]</emphasis></para></listitem>
41
+			</itemizedlist>
42
+		</para>
43
+	</sect1>
44
+</chapter>

+ 42
- 0
doc/en/quick.docbook View File

@@ -0,0 +1,42 @@
1
+<!-- kate: tab-width 2; indent-mode xml; -->
2
+<chapter id="quick">
3
+	<title>Quick Tour</title>
4
+	
5
+	<sect1 id="introduction">
6
+		<title>Introduction</title>
7
+		
8
+		<para>&kappname; is an IDE for electronic circuits and microcontrollers. It can perform simulation a variety of components (logic, integrated, linear, nonlinear and reactive), simulation and debugging of PIC microcontrollers via gpsim, and comes with its own closely-linked and complementary high level languages: &flowcode; and &microbe;.</para>
9
+		
10
+		<para>It has been designed to be as easy to use and unintrusive as possible; all components and FlowParts have context sensitive help, and simulating electronics is as simple as dragging components onto the work area and creating connectors that autoroute themselves between their pins. &flowcode; allows users new to PICs to instantly create their own programs, while the electronic simulation allows stepping through a PIC's assembly program inside a circuit.</para>
11
+	</sect1>
12
+	
13
+	<sect1 id="documents">
14
+		<title>Documents</title>
15
+		<para>To get started in &kappname;, you will need to create a new document, whose type will depend on your task:
16
+			
17
+			<itemizedlist>
18
+				<listitem><para>&flowcode; Document - Construct a PIC program via flowcharting.</para></listitem>
19
+				<listitem><para>Circuit Document - Simulate electronics circuits and microcontrollers.</para></listitem>
20
+				<listitem><para>&microbe; Document - High level language for PICs, also used by &flowcode; to generate assembly.</para></listitem>
21
+				<listitem><para>Assembly Document - Start writing a PIC assembly program.</para></listitem>
22
+			</itemizedlist>
23
+			
24
+			&kappname; uses a Document-View model, in that the Document logic is completely seperate from open views of the document. This allows several views of the same file.</para>
25
+		
26
+		<para>On creating a new document, the view is created in a seperate tab. Each tab can support any number of views, tiled in any arbitary pattern. This allows, for example, simulating a PIC program in circuit, while stepping through the program in an assembly document in the same tab.</para>
27
+		
28
+		<para>The contents of tabs can be duplicated by dragging the tab to an empty area on the tab bar. They can be inserted into an existing tab by dragging it onto that tab.</para>
29
+		
30
+		<para>Detailed instructions on the above documents can be found in their own respective chapters.</para>
31
+	</sect1>
32
+	
33
+	<sect1 id="drawing">
34
+		<title>Drawing</title>
35
+		
36
+		<para>In Circuit and &flowcode; documents, there are several drawing tools available, including text. These are available by clicking on the paintbrush icon in the toolbar. To draw, drag the mouse to form either a shape or a line appropriate to the drawing tool in use.</para>
37
+		
38
+		<para>When a drawing is selected, it can be resized by dragging its handles. Holding down shift while dragging will snap the handle to the underlying grid. Each tool has basic options accessible from the toolbar, such as colours. There are also more advanced options found in the Item sidebar, such as line and cap styles.</para>
39
+		
40
+	</sect1>
41
+	
42
+</chapter>

+ 6
- 0
icons/Makefile.am View File

@@ -0,0 +1,6 @@
1
+
2
+METASOURCES = AUTO
3
+	
4
+KDE_ICON = AUTO
5
+
6
+SUBDIRS = pics

BIN
icons/hi128-app-ktechlab.png View File


BIN
icons/hi128-app-microbe.png View File


BIN
icons/hi128-mime-ktechlab_circuit.png View File


BIN
icons/hi128-mime-ktechlab_flowcode.png View File


BIN
icons/hi128-mime-ktechlab_microbe.png View File


BIN
icons/hi16-action-convert_to_assembly.png View File


BIN
icons/hi16-action-convert_to_hex.png View File


BIN
icons/hi16-action-convert_to_microbe.png View File


BIN
icons/hi16-action-convert_to_pic.png View File


BIN
icons/hi16-action-indent_asm.png View File


BIN
icons/hi16-action-logic_or.png View File


BIN
icons/hi16-action-null.png View File


BIN
icons/hi16-action-oscilloscope.png View File


BIN
icons/hi16-action-tool_arrow.png View File


BIN
icons/hi16-action-tool_ellipse.png View File


BIN
icons/hi16-action-tool_line.png View File


BIN
icons/hi16-action-tool_rectangle.png View File


BIN
icons/hi16-action-tool_text.png View File


BIN
icons/hi16-app-ktechlab.png View File


BIN
icons/hi16-app-microbe.png View File


BIN
icons/hi16-mime-ktechlab_circuit.png View File


BIN
icons/hi16-mime-ktechlab_flowcode.png View File