<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.signature.net/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.signature.net/index.php?feed=atom&amp;target=Barb&amp;title=Special%3AContributions</id>
		<title>CometWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.signature.net/index.php?feed=atom&amp;target=Barb&amp;title=Special%3AContributions"/>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Special:Contributions/Barb"/>
		<updated>2026-05-18T16:54:51Z</updated>
		<subtitle>From CometWiki</subtitle>
		<generator>MediaWiki 1.16.0</generator>

	<entry>
		<id>http://wiki.signature.net/index.php/The_Comet_Gateways</id>
		<title>The Comet Gateways</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_Comet_Gateways"/>
				<updated>2020-12-02T21:31:30Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Comet Gateways'''&lt;br /&gt;
There are several gateways available in Comet98 and Comet2000. These gateways provide access to features that are external to Comet, such as a high-speed sorting function, Internet application-layer protocols and advanced Common Gateway Interface processing, ODBC data sources, the serial port on a PC, and an internal fax/modem.&lt;br /&gt;
&lt;br /&gt;
There are two basic steps for using a gateway: configuration and programming. The configuration step is accomplished with the [GATEWAYS] section in the INI file (which is processed by the SYSGEN program). Each configured gateway is listed in sequence. For example:&lt;br /&gt;
&lt;br /&gt;
'''[GATEWAYS]'''&lt;br /&gt;
&lt;br /&gt;
 Gateway = 2,0;    Sort driver gateway     (gateway G00)&lt;br /&gt;
 Gateway = 3,0;    Winsock gateway         (gateway G01)&lt;br /&gt;
 Gateway = 4,0;    XAP gateway (eComet)    (gateway G02)&lt;br /&gt;
 Gateway = 5,0;    ODBC gateway            (gateway G03)&lt;br /&gt;
  The ODBC Gateway was replaced by mySQL for Comet32&lt;br /&gt;
 Gateway = 6,0;    Serial gateway          (gateway G04)&lt;br /&gt;
  The Serial Gateway was not implemented for Comet32&lt;br /&gt;
 Gateway = 7,0;    Universal gateway (fax) (gateway G05)&lt;br /&gt;
  The Universal Gateway (aka the FAX Gateway) was not implemented for Comet32&lt;br /&gt;
&lt;br /&gt;
The programming step starts with opening a specific gateway device. For example, the following statement opens the Winsock gateway shown in the above [GATEWAYS] configuration:&lt;br /&gt;
&lt;br /&gt;
OPEN (20) “G01”   ! open Winsock gateway&lt;br /&gt;
&lt;br /&gt;
Note: The Reporter automatically generates the IB code to open the sort gateway, and the eComet Extensions automatically open the XAP gateway and assign the logical unit numbers to it.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For the other types of gateways, here is a general-purpose IB routine that shows how to locate and open a specific type of gateway on LUN (1). In the following example, the program searches for a type 6 gateway (serial gateway), which is signified by the ‘@06@’ returned by the DSTAT function.&lt;br /&gt;
&lt;br /&gt;
 length 3.0 &amp;amp; local  I&lt;br /&gt;
 length   3 &amp;amp; local  Ga teName$&lt;br /&gt;
 Open.Gateway:&lt;br /&gt;
  print(0) 'Opening Gateway . . .'&lt;br /&gt;
   for I = 100 TO 199 &lt;br /&gt;
         GateName$ = 'G' + SUB(STRIP(STR(I)), 2, 2) &lt;br /&gt;
   if SUB(DSTAT(GateName$, excp=Try.Next.Gateway), 4, 1) EQ '@06@'_&lt;br /&gt;
         goto Found.Gateway&lt;br /&gt;
 Try.Next.Gateway:&lt;br /&gt;
   next I&lt;br /&gt;
   print(0) 'Cannot Locate Gateway.'&lt;br /&gt;
   goto Abort&lt;br /&gt;
 Found.Gateway:&lt;br /&gt;
   open(1) GateName$&lt;br /&gt;
   print(0) 'Gateway found as ';GateName$&lt;br /&gt;
   return&lt;br /&gt;
&lt;br /&gt;
The following chart shows each type of gateway, whether it is available in Comet98 or Comet2000 (and whether it is included with the base level or available as a add-on product), and describes its basic features. There are also links to documentation and sample programs.&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
!  Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Comet98&lt;br /&gt;
!  Comet2000&lt;br /&gt;
!  Comet32&lt;br /&gt;
!                Description&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  Sort&lt;br /&gt;
gateway&lt;br /&gt;
|  included&lt;br /&gt;
|  included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The sort driver gateway provides an efficient sorting method for both the Reporter and your IB applications. If the data to be sorted takes up less than 64K bytes, the sort driver performs the sort function in memory, and offers the fastest sort available on a Comet system. For data greater than 64K, the sort driver performs it's sorting using temporary disk files (either RAM or hard disk).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to configure one sort driver gateway for each user performing sorting operations simultaneously. We suggest configuring one sort gateway for each Reporter user. Each configured sort driver gateway requires 64K of system memory above and beyond the other memory requirements of Comet. Additionally, if one or more sort driver gateways are configured, the number of partitions that can be configured for a Comet system is reduced by 1.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For information on using the sort gateway from within an IB program, see the sort gateway section in the MoreThanBasic documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  Winsock&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The Winsock gateway provides a way for IB applications to communicate over the Internet using industry-standard application-layer protocols. Introduced with Comet 2005, the Comet Email Printer provides a simple method for sending email from your Comet app.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  4&lt;br /&gt;
|  XAP &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The XAP gateway provides advanced Common Gateway Interface processing, and offers a way to create interactive web pages and eComet applications. XAP technology is patent pending. The many features of the XAP gateway are described in the eComet tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  5&lt;br /&gt;
|  ODBC &lt;br /&gt;
client &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|replaced by SQL device&lt;br /&gt;
|The ODBC client gateway provides a way for IB applications to interact with external data sources, including Microsoft Access databases, Excel spreadsheets, and other ODBC-compliant data sources. For more information, see the ODBC client gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  6&lt;br /&gt;
|  Serial &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|Not included&lt;br /&gt;
|The serial gateway allows an InternetBasic (IB) program to communicate with an external serial device connected to the COM port of the Comet system. For more information, see the serial gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  7&lt;br /&gt;
|  Universal&lt;br /&gt;
&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The universal gateway allows generic communication between Comet and an external driver program. The fax driver is the first example that uses the universal gateway. For information about the fax driver, see the fax driver documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|Local &lt;br /&gt;
XAP&lt;br /&gt;
gateway&lt;br /&gt;
|&lt;br /&gt;
|included&lt;br /&gt;
|&lt;br /&gt;
|The local XAP gateway allows development of web applications without an XAP license. These applications are limited to pages served by the local host. It's a great way to develop and test your site before implementing a full XAP configuration. For more info on using Comet to host your web site, check out the XAP tutorials..&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/The_Comet_Gateways</id>
		<title>The Comet Gateways</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_Comet_Gateways"/>
				<updated>2020-12-02T21:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Comet Gateways'''&lt;br /&gt;
There are several gateways available in Comet98 and Comet2000. These gateways provide access to features that are external to Comet, such as a high-speed sorting function, Internet application-layer protocols and advanced Common Gateway Interface processing, ODBC data sources, the serial port on a PC, and an internal fax/modem.&lt;br /&gt;
&lt;br /&gt;
There are two basic steps for using a gateway: configuration and programming. The configuration step is accomplished with the [GATEWAYS] section in the INI file (which is processed by the SYSGEN program). Each configured gateway is listed in sequence. For example:&lt;br /&gt;
&lt;br /&gt;
'''[GATEWAYS]'''&lt;br /&gt;
&lt;br /&gt;
 Gateway = 2,0;    Sort driver gateway     (gateway G00)&lt;br /&gt;
 Gateway = 3,0;    Winsock gateway         (gateway G01)&lt;br /&gt;
 Gateway = 4,0;    XAP gateway (eComet)    (gateway G02)&lt;br /&gt;
 Gateway = 5,0;    ODBC gateway            (gateway G03)&lt;br /&gt;
  The ODBC Gateway was replaced by mySQL for Comet32&lt;br /&gt;
 Gateway = 6,0;    Serial gateway          (gateway G04)&lt;br /&gt;
  The Serial Gateway was not implemented for Comet32&lt;br /&gt;
 Gateway = 7,0;    Universal gateway (fax) (gateway G05)&lt;br /&gt;
  The Universal Gateway (aka the FAX Gateway) was not implemented for Comet32&lt;br /&gt;
&lt;br /&gt;
The programming step starts with opening a specific gateway device. For example, the following statement opens the Winsock gateway shown in the above [GATEWAYS] configuration:&lt;br /&gt;
&lt;br /&gt;
OPEN (20) “G01”   ! open Winsock gateway&lt;br /&gt;
&lt;br /&gt;
Note: The Reporter automatically generates the IB code to open the sort gateway, and the eComet Extensions automatically open the XAP gateway and assign the logical unit numbers to it.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For the other types of gateways, here is a general-purpose IB routine that shows how to locate and open a specific type of gateway on LUN (1). In the following example, the program searches for a type 6 gateway (serial gateway), which is signified by the ‘@06@’ returned by the DSTAT function.&lt;br /&gt;
&lt;br /&gt;
 length 3.0 &amp;amp; local  I&lt;br /&gt;
 length   3 &amp;amp; local  Ga teName$&lt;br /&gt;
 Open.Gateway:&lt;br /&gt;
  print(0) 'Opening Gateway . . .'&lt;br /&gt;
   for I = 100 TO 199 &lt;br /&gt;
         GateName$ = 'G' + SUB(STRIP(STR(I)), 2, 2) &lt;br /&gt;
   if SUB(DSTAT(GateName$, excp=Try.Next.Gateway), 4, 1) EQ '@06@'_&lt;br /&gt;
         goto Found.Gateway&lt;br /&gt;
 Try.Next.Gateway:&lt;br /&gt;
   next I&lt;br /&gt;
   print(0) 'Cannot Locate Gateway.'&lt;br /&gt;
   goto Abort&lt;br /&gt;
 Found.Gateway:&lt;br /&gt;
   open(1) GateName$&lt;br /&gt;
   print(0) 'Gateway found as ';GateName$&lt;br /&gt;
   return&lt;br /&gt;
&lt;br /&gt;
The following chart shows each type of gateway, whether it is available in Comet98 or Comet2000 (and whether it is included with the base level or available as a add-on product), and describes its basic features. There are also links to documentation and sample programs.&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
!  Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Comet98&lt;br /&gt;
!  Comet2000&lt;br /&gt;
!  Comet32&lt;br /&gt;
!                Description&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  Sort&lt;br /&gt;
gateway&lt;br /&gt;
|  included&lt;br /&gt;
|  included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The sort driver gateway provides an efficient sorting method for both the Reporter and your IB applications. If the data to be sorted takes up less than 64K bytes, the sort driver performs the sort function in memory, and offers the fastest sort available on a Comet system. For data greater than 64K, the sort driver performs it's sorting using temporary disk files (either RAM or hard disk).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to configure one sort driver gateway for each user performing sorting operations simultaneously. We suggest configuring one sort gateway for each Reporter user. Each configured sort driver gateway requires 64K of system memory above and beyond the other memory requirements of Comet. Additionally, if one or more sort driver gateways are configured, the number of partitions that can be configured for a Comet system is reduced by 1.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For information on using the sort gateway from within an IB program, see the sort gateway section in the MoreThanBasic documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  Winsock&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The Winsock gateway provides a way for IB applications to communicate over the Internet using industry-standard application-layer protocols. Introduced with Comet 2005, the Comet Email Printer provides a simple method for sending email from your Comet app.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  4&lt;br /&gt;
|  XAP &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The XAP gateway provides advanced Common Gateway Interface processing, and offers a way to create interactive web pages and eComet applications. XAP technology is patent pending. The many features of the XAP gateway are described in the eComet tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  5&lt;br /&gt;
|  ODBC &lt;br /&gt;
client &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|replaced by SQL&lt;br /&gt;
|The ODBC client gateway provides a way for IB applications to interact with external data sources, including Microsoft Access databases, Excel spreadsheets, and other ODBC-compliant data sources. For more information, see the ODBC client gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  6&lt;br /&gt;
|  Serial &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|Not included&lt;br /&gt;
|The serial gateway allows an InternetBasic (IB) program to communicate with an external serial device connected to the COM port of the Comet system. For more information, see the serial gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  7&lt;br /&gt;
|  Universal&lt;br /&gt;
&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The universal gateway allows generic communication between Comet and an external driver program. The fax driver is the first example that uses the universal gateway. For information about the fax driver, see the fax driver documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|Local &lt;br /&gt;
XAP&lt;br /&gt;
gateway&lt;br /&gt;
|&lt;br /&gt;
|included&lt;br /&gt;
|&lt;br /&gt;
|The local XAP gateway allows development of web applications without an XAP license. These applications are limited to pages served by the local host. It's a great way to develop and test your site before implementing a full XAP configuration. For more info on using Comet to host your web site, check out the XAP tutorials..&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/The_Comet_Gateways</id>
		<title>The Comet Gateways</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_Comet_Gateways"/>
				<updated>2020-12-02T21:30:09Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Comet Gateways'''&lt;br /&gt;
There are several gateways available in Comet98 and Comet2000. These gateways provide access to features that are external to Comet, such as a high-speed sorting function, Internet application-layer protocols and advanced Common Gateway Interface processing, ODBC data sources, the serial port on a PC, and an internal fax/modem.&lt;br /&gt;
&lt;br /&gt;
There are two basic steps for using a gateway: configuration and programming. The configuration step is accomplished with the [GATEWAYS] section in the INI file (which is processed by the SYSGEN program). Each configured gateway is listed in sequence. For example:&lt;br /&gt;
&lt;br /&gt;
'''[GATEWAYS]'''&lt;br /&gt;
&lt;br /&gt;
 Gateway = 2,0;    Sort driver gateway     (gateway G00)&lt;br /&gt;
 Gateway = 3,0;    Winsock gateway         (gateway G01)&lt;br /&gt;
 Gateway = 4,0;    XAP gateway (eComet)    (gateway G02)&lt;br /&gt;
 Gateway = 5,0;    ODBC gateway            (gateway G03)&lt;br /&gt;
  The ODBC Gateway was replaced by mySQL for Comet32&lt;br /&gt;
 Gateway = 6,0;    Serial gateway          (gateway G04)&lt;br /&gt;
  The Serial Gateway was not implemented for Comet32&lt;br /&gt;
 Gateway = 7,0;    Universal gateway (fax) (gateway G05)&lt;br /&gt;
  The Universal Gateway (aka the FAX Gateway) was not implemented for Comet32&lt;br /&gt;
&lt;br /&gt;
The programming step starts with opening a specific gateway device. For example, the following statement opens the Winsock gateway shown in the above [GATEWAYS] configuration:&lt;br /&gt;
&lt;br /&gt;
OPEN (20) “G01”   ! open Winsock gateway&lt;br /&gt;
&lt;br /&gt;
Note: The Reporter automatically generates the IB code to open the sort gateway, and the eComet Extensions automatically open the XAP gateway and assign the logical unit numbers to it.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For the other types of gateways, here is a general-purpose IB routine that shows how to locate and open a specific type of gateway on LUN (1). In the following example, the program searches for a type 6 gateway (serial gateway), which is signified by the ‘@06@’ returned by the DSTAT function.&lt;br /&gt;
&lt;br /&gt;
 length 3.0 &amp;amp; local  I&lt;br /&gt;
 length   3 &amp;amp; local  Ga teName$&lt;br /&gt;
 Open.Gateway:&lt;br /&gt;
  print(0) 'Opening Gateway . . .'&lt;br /&gt;
   for I = 100 TO 199 &lt;br /&gt;
         GateName$ = 'G' + SUB(STRIP(STR(I)), 2, 2) &lt;br /&gt;
   if SUB(DSTAT(GateName$, excp=Try.Next.Gateway), 4, 1) EQ '@06@'_&lt;br /&gt;
         goto Found.Gateway&lt;br /&gt;
 Try.Next.Gateway:&lt;br /&gt;
   next I&lt;br /&gt;
   print(0) 'Cannot Locate Gateway.'&lt;br /&gt;
   goto Abort&lt;br /&gt;
 Found.Gateway:&lt;br /&gt;
   open(1) GateName$&lt;br /&gt;
   print(0) 'Gateway found as ';GateName$&lt;br /&gt;
   return&lt;br /&gt;
&lt;br /&gt;
The following chart shows each type of gateway, whether it is available in Comet98 or Comet2000 (and whether it is included with the base level or available as a add-on product), and describes its basic features. There are also links to documentation and sample programs.&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
!  Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Comet98&lt;br /&gt;
!  Comet2000&lt;br /&gt;
!  Comet32&lt;br /&gt;
!                Description&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  Sort&lt;br /&gt;
gateway&lt;br /&gt;
|  included&lt;br /&gt;
|  included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The sort driver gateway provides an efficient sorting method for both the Reporter and your IB applications. If the data to be sorted takes up less than 64K bytes, the sort driver performs the sort function in memory, and offers the fastest sort available on a Comet system. For data greater than 64K, the sort driver performs it's sorting using temporary disk files (either RAM or hard disk).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to configure one sort driver gateway for each user performing sorting operations simultaneously. We suggest configuring one sort gateway for each Reporter user. Each configured sort driver gateway requires 64K of system memory above and beyond the other memory requirements of Comet. Additionally, if one or more sort driver gateways are configured, the number of partitions that can be configured for a Comet system is reduced by 1.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For information on using the sort gateway from within an IB program, see the sort gateway section in the MoreThanBasic documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  Winsock&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The Winsock gateway provides a way for IB applications to communicate over the Internet using industry-standard application-layer protocols. Introduced with Comet 2005, the Comet Email Printer provides a simple method for sending email from your Comet app.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  4&lt;br /&gt;
|  XAP &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The XAP gateway provides advanced Common Gateway Interface processing, and offers a way to create interactive web pages and eComet applications. XAP technology is patent pending. The many features of the XAP gateway are described in the eComet tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  5&lt;br /&gt;
|  ODBC &lt;br /&gt;
client &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The ODBC client gateway provides a way for IB applications to interact with external data sources, including Microsoft Access databases, Excel spreadsheets, and other ODBC-compliant data sources. For more information, see the ODBC client gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  6&lt;br /&gt;
|  Serial &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|Not included&lt;br /&gt;
|The serial gateway allows an InternetBasic (IB) program to communicate with an external serial device connected to the COM port of the Comet system. For more information, see the serial gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  7&lt;br /&gt;
|  Universal&lt;br /&gt;
&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The universal gateway allows generic communication between Comet and an external driver program. The fax driver is the first example that uses the universal gateway. For information about the fax driver, see the fax driver documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|Local &lt;br /&gt;
XAP&lt;br /&gt;
gateway&lt;br /&gt;
|&lt;br /&gt;
|included&lt;br /&gt;
|&lt;br /&gt;
|The local XAP gateway allows development of web applications without an XAP license. These applications are limited to pages served by the local host. It's a great way to develop and test your site before implementing a full XAP configuration. For more info on using Comet to host your web site, check out the XAP tutorials..&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/The_Comet_Gateways</id>
		<title>The Comet Gateways</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_Comet_Gateways"/>
				<updated>2020-12-02T21:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Comet Gateways'''&lt;br /&gt;
There are several gateways available in Comet98 and Comet2000. These gateways provide access to features that are external to Comet, such as a high-speed sorting function, Internet application-layer protocols and advanced Common Gateway Interface processing, ODBC data sources, the serial port on a PC, and an internal fax/modem.&lt;br /&gt;
&lt;br /&gt;
There are two basic steps for using a gateway: configuration and programming. The configuration step is accomplished with the [GATEWAYS] section in the INI file (which is processed by the SYSGEN program). Each configured gateway is listed in sequence. For example:&lt;br /&gt;
&lt;br /&gt;
'''[GATEWAYS]'''&lt;br /&gt;
&lt;br /&gt;
 Gateway = 2,0;    Sort driver gateway     (gateway G00)&lt;br /&gt;
 Gateway = 3,0;    Winsock gateway         (gateway G01)&lt;br /&gt;
 Gateway = 4,0;    XAP gateway (eComet)    (gateway G02)&lt;br /&gt;
 Gateway = 5,0;    ODBC gateway            (gateway G03)&lt;br /&gt;
  The ODBC Gateway was replaced by mySQL for Comet32&lt;br /&gt;
 Gateway = 6,0;    Serial gateway          (gateway G04)&lt;br /&gt;
  The Serial Gateway was not implemented for Comet32&lt;br /&gt;
 Gateway = 7,0;    Universal gateway (fax) (gateway G05)&lt;br /&gt;
  The Universal Gateway (aka the FAX Gateway) was not implemented for Comet32&lt;br /&gt;
&lt;br /&gt;
The programming step starts with opening a specific gateway device. For example, the following statement opens the Winsock gateway shown in the above [GATEWAYS] configuration:&lt;br /&gt;
&lt;br /&gt;
OPEN (20) “G01”   ! open Winsock gateway&lt;br /&gt;
&lt;br /&gt;
Note: The Reporter automatically generates the IB code to open the sort gateway, and the eComet Extensions automatically open the XAP gateway and assign the logical unit numbers to it.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For the other types of gateways, here is a general-purpose IB routine that shows how to locate and open a specific type of gateway on LUN (1). In the following example, the program searches for a type 6 gateway (serial gateway), which is signified by the ‘@06@’ returned by the DSTAT function.&lt;br /&gt;
&lt;br /&gt;
 length 3.0 &amp;amp; local  I&lt;br /&gt;
 length   3 &amp;amp; local  Ga teName$&lt;br /&gt;
 Open.Gateway:&lt;br /&gt;
  print(0) 'Opening Gateway . . .'&lt;br /&gt;
   for I = 100 TO 199 &lt;br /&gt;
         GateName$ = 'G' + SUB(STRIP(STR(I)), 2, 2) &lt;br /&gt;
   if SUB(DSTAT(GateName$, excp=Try.Next.Gateway), 4, 1) EQ '@06@'_&lt;br /&gt;
         goto Found.Gateway&lt;br /&gt;
 Try.Next.Gateway:&lt;br /&gt;
   next I&lt;br /&gt;
   print(0) 'Cannot Locate Gateway.'&lt;br /&gt;
   goto Abort&lt;br /&gt;
 Found.Gateway:&lt;br /&gt;
   open(1) GateName$&lt;br /&gt;
   print(0) 'Gateway found as ';GateName$&lt;br /&gt;
   return&lt;br /&gt;
&lt;br /&gt;
The following chart shows each type of gateway, whether it is available in Comet98 or Comet2000 (and whether it is included with the base level or available as a add-on product), and describes its basic features. There are also links to documentation and sample programs.&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
!  Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Comet98&lt;br /&gt;
!  Comet2000&lt;br /&gt;
!  Comet32&lt;br /&gt;
!                Description&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  Sort&lt;br /&gt;
gateway&lt;br /&gt;
|  included&lt;br /&gt;
|  included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The sort driver gateway provides an efficient sorting method for both the Reporter and your IB applications. If the data to be sorted takes up less than 64K bytes, the sort driver performs the sort function in memory, and offers the fastest sort available on a Comet system. For data greater than 64K, the sort driver performs it's sorting using temporary disk files (either RAM or hard disk).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to configure one sort driver gateway for each user performing sorting operations simultaneously. We suggest configuring one sort gateway for each Reporter user. Each configured sort driver gateway requires 64K of system memory above and beyond the other memory requirements of Comet. Additionally, if one or more sort driver gateways are configured, the number of partitions that can be configured for a Comet system is reduced by 1.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For information on using the sort gateway from within an IB program, see the sort gateway section in the MoreThanBasic documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  Winsock&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The Winsock gateway provides a way for IB applications to communicate over the Internet using industry-standard application-layer protocols. Introduced with Comet 2005, the Comet Email Printer provides a simple method for sending email from your Comet app.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  4&lt;br /&gt;
|  XAP &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The XAP gateway provides advanced Common Gateway Interface processing, and offers a way to create interactive web pages and eComet applications. XAP technology is patent pending. The many features of the XAP gateway are described in the eComet tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  5&lt;br /&gt;
|  ODBC &lt;br /&gt;
client &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The ODBC client gateway provides a way for IB applications to interact with external data sources, including Microsoft Access databases, Excel spreadsheets, and other ODBC-compliant data sources. For more information, see the ODBC client gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  6&lt;br /&gt;
|  Serial &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The serial gateway allows an InternetBasic (IB) program to communicate with an external serial device connected to the COM port of the Comet system. For more information, see the serial gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  7&lt;br /&gt;
|  Universal&lt;br /&gt;
&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The universal gateway allows generic communication between Comet and an external driver program. The fax driver is the first example that uses the universal gateway. For information about the fax driver, see the fax driver documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|Local &lt;br /&gt;
XAP&lt;br /&gt;
gateway&lt;br /&gt;
|&lt;br /&gt;
|included&lt;br /&gt;
|&lt;br /&gt;
|The local XAP gateway allows development of web applications without an XAP license. These applications are limited to pages served by the local host. It's a great way to develop and test your site before implementing a full XAP configuration. For more info on using Comet to host your web site, check out the XAP tutorials..&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/The_Comet_Gateways</id>
		<title>The Comet Gateways</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_Comet_Gateways"/>
				<updated>2020-12-01T19:34:33Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Comet Gateways'''&lt;br /&gt;
There are several gateways available in Comet98 and Comet2000. These gateways provide access to features that are external to Comet, such as a high-speed sorting function, Internet application-layer protocols and advanced Common Gateway Interface processing, ODBC data sources, the serial port on a PC, and an internal fax/modem.&lt;br /&gt;
&lt;br /&gt;
There are two basic steps for using a gateway: configuration and programming. The configuration step is accomplished with the [GATEWAYS] section in the INI file (which is processed by the SYSGEN program). Each configured gateway is listed in sequence. For example:&lt;br /&gt;
&lt;br /&gt;
'''[GATEWAYS]'''&lt;br /&gt;
&lt;br /&gt;
 Gateway = 2,0;    Sort driver gateway     (gateway G00)&lt;br /&gt;
 Gateway = 3,0;    Winsock gateway         (gateway G01)&lt;br /&gt;
 Gateway = 4,0;    XAP gateway (eComet)    (gateway G02)&lt;br /&gt;
 Gateway = 5,0;    ODBC gateway            (gateway G03)&lt;br /&gt;
 Gateway = 6,0;    Serial gateway          (gateway G04)&lt;br /&gt;
 Gateway = 7,0;    Universal gateway (fax) (gateway G05)&lt;br /&gt;
  NOTE: The Universal Gateway (aka the FAX Gateway) was not implemented for Comet32&lt;br /&gt;
&lt;br /&gt;
The programming step starts with opening a specific gateway device. For example, the following statement opens the Winsock gateway shown in the above [GATEWAYS] configuration:&lt;br /&gt;
&lt;br /&gt;
OPEN (20) “G01”   ! open Winsock gateway&lt;br /&gt;
&lt;br /&gt;
Note: The Reporter automatically generates the IB code to open the sort gateway, and the eComet Extensions automatically open the XAP gateway and assign the logical unit numbers to it.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For the other types of gateways, here is a general-purpose IB routine that shows how to locate and open a specific type of gateway on LUN (1). In the following example, the program searches for a type 6 gateway (serial gateway), which is signified by the ‘@06@’ returned by the DSTAT function.&lt;br /&gt;
&lt;br /&gt;
 length 3.0 &amp;amp; local  I&lt;br /&gt;
 length   3 &amp;amp; local  Ga teName$&lt;br /&gt;
 Open.Gateway:&lt;br /&gt;
  print(0) 'Opening Gateway . . .'&lt;br /&gt;
   for I = 100 TO 199 &lt;br /&gt;
         GateName$ = 'G' + SUB(STRIP(STR(I)), 2, 2) &lt;br /&gt;
   if SUB(DSTAT(GateName$, excp=Try.Next.Gateway), 4, 1) EQ '@06@'_&lt;br /&gt;
         goto Found.Gateway&lt;br /&gt;
 Try.Next.Gateway:&lt;br /&gt;
   next I&lt;br /&gt;
   print(0) 'Cannot Locate Gateway.'&lt;br /&gt;
   goto Abort&lt;br /&gt;
 Found.Gateway:&lt;br /&gt;
   open(1) GateName$&lt;br /&gt;
   print(0) 'Gateway found as ';GateName$&lt;br /&gt;
   return&lt;br /&gt;
&lt;br /&gt;
The following chart shows each type of gateway, whether it is available in Comet98 or Comet2000 (and whether it is included with the base level or available as a add-on product), and describes its basic features. There are also links to documentation and sample programs.&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
!  Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Comet98&lt;br /&gt;
!  Comet2000&lt;br /&gt;
!  Comet32&lt;br /&gt;
!                Description&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  Sort&lt;br /&gt;
gateway&lt;br /&gt;
|  included&lt;br /&gt;
|  included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The sort driver gateway provides an efficient sorting method for both the Reporter and your IB applications. If the data to be sorted takes up less than 64K bytes, the sort driver performs the sort function in memory, and offers the fastest sort available on a Comet system. For data greater than 64K, the sort driver performs it's sorting using temporary disk files (either RAM or hard disk).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to configure one sort driver gateway for each user performing sorting operations simultaneously. We suggest configuring one sort gateway for each Reporter user. Each configured sort driver gateway requires 64K of system memory above and beyond the other memory requirements of Comet. Additionally, if one or more sort driver gateways are configured, the number of partitions that can be configured for a Comet system is reduced by 1.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For information on using the sort gateway from within an IB program, see the sort gateway section in the MoreThanBasic documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  Winsock&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The Winsock gateway provides a way for IB applications to communicate over the Internet using industry-standard application-layer protocols. Introduced with Comet 2005, the Comet Email Printer provides a simple method for sending email from your Comet app.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  4&lt;br /&gt;
|  XAP &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The XAP gateway provides advanced Common Gateway Interface processing, and offers a way to create interactive web pages and eComet applications. XAP technology is patent pending. The many features of the XAP gateway are described in the eComet tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  5&lt;br /&gt;
|  ODBC &lt;br /&gt;
client &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The ODBC client gateway provides a way for IB applications to interact with external data sources, including Microsoft Access databases, Excel spreadsheets, and other ODBC-compliant data sources. For more information, see the ODBC client gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  6&lt;br /&gt;
|  Serial &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The serial gateway allows an InternetBasic (IB) program to communicate with an external serial device connected to the COM port of the Comet system. For more information, see the serial gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  7&lt;br /&gt;
|  Universal&lt;br /&gt;
&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The universal gateway allows generic communication between Comet and an external driver program. The fax driver is the first example that uses the universal gateway. For information about the fax driver, see the fax driver documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|Local &lt;br /&gt;
XAP&lt;br /&gt;
gateway&lt;br /&gt;
|&lt;br /&gt;
|included&lt;br /&gt;
|&lt;br /&gt;
|The local XAP gateway allows development of web applications without an XAP license. These applications are limited to pages served by the local host. It's a great way to develop and test your site before implementing a full XAP configuration. For more info on using Comet to host your web site, check out the XAP tutorials..&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/The_Comet_Gateways</id>
		<title>The Comet Gateways</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_Comet_Gateways"/>
				<updated>2020-12-01T16:27:04Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Comet Gateways'''&lt;br /&gt;
There are several gateways available in Comet98 and Comet2000. These gateways provide access to features that are external to Comet, such as a high-speed sorting function, Internet application-layer protocols and advanced Common Gateway Interface processing, ODBC data sources, the serial port on a PC, and an internal fax/modem.&lt;br /&gt;
&lt;br /&gt;
There are two basic steps for using a gateway: configuration and programming. The configuration step is accomplished with the [GATEWAYS] section in the INI file (which is processed by the SYSGEN program). Each configured gateway is listed in sequence. For example:&lt;br /&gt;
&lt;br /&gt;
'''[GATEWAYS]'''&lt;br /&gt;
&lt;br /&gt;
 Gateway = 2,0;    Sort driver gateway     (gateway G00)&lt;br /&gt;
 Gateway = 3,0;    Winsock gateway         (gateway G01)&lt;br /&gt;
 Gateway = 4,0;    XAP gateway (eComet)    (gateway G02)&lt;br /&gt;
 Gateway = 5,0;    ODBC gateway            (gateway G03)&lt;br /&gt;
 Gateway = 6,0;    Serial gateway          (gateway G04)&lt;br /&gt;
 Gateway = 7,0;    Universal gateway (fax) (gateway G05)&lt;br /&gt;
  NOTE: The Universal Gateway (aka the FAX Gateway) was not implemented for Comet32&lt;br /&gt;
&lt;br /&gt;
The programming step starts with opening a specific gateway device. For example, the following statement opens the Winsock gateway shown in the above [GATEWAYS] configuration:&lt;br /&gt;
&lt;br /&gt;
OPEN (20) “G01”   ! open Winsock gateway&lt;br /&gt;
&lt;br /&gt;
Note: The Reporter automatically generates the IB code to open the sort gateway, and the eComet Extensions automatically open the XAP gateway and assign the logical unit numbers to it.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For the other types of gateways, here is a general-purpose IB routine that shows how to locate and open a specific type of gateway on LUN (1). In the following example, the program searches for a type 6 gateway (serial gateway), which is signified by the ‘@06@’ returned by the DSTAT function.&lt;br /&gt;
&lt;br /&gt;
 length 3.0 &amp;amp; local  I&lt;br /&gt;
 length   3 &amp;amp; local  Ga teName$&lt;br /&gt;
 Open.Gateway:&lt;br /&gt;
  print(0) 'Opening Gateway . . .'&lt;br /&gt;
   for I = 100 TO 199 &lt;br /&gt;
         GateName$ = 'G' + SUB(STRIP(STR(I)), 2, 2) &lt;br /&gt;
   if SUB(DSTAT(GateName$, excp=Try.Next.Gateway), 4, 1) EQ '@06@'_&lt;br /&gt;
         goto Found.Gateway&lt;br /&gt;
 Try.Next.Gateway:&lt;br /&gt;
   next I&lt;br /&gt;
   print(0) 'Cannot Locate Gateway.'&lt;br /&gt;
   goto Abort&lt;br /&gt;
 Found.Gateway:&lt;br /&gt;
   open(1) GateName$&lt;br /&gt;
   print(0) 'Gateway found as ';GateName$&lt;br /&gt;
   return&lt;br /&gt;
&lt;br /&gt;
The following chart shows each type of gateway, whether it is available in Comet98 or Comet2000 (and whether it is included with the base level or available as a add-on product), and describes its basic features. There are also links to documentation and sample programs.&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
!  Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Comet98&lt;br /&gt;
!  Comet2000&lt;br /&gt;
!  Comet32&lt;br /&gt;
!                Description&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  Sort&lt;br /&gt;
gateway&lt;br /&gt;
|  included&lt;br /&gt;
|  included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The sort driver gateway provides an efficient sorting method for both the Reporter and your IB applications. If the data to be sorted takes up less than 64K bytes, the sort driver performs the sort function in memory, and offers the fastest sort available on a Comet system. For data greater than 64K, the sort driver performs it's sorting using temporary disk files (either RAM or hard disk).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to configure one sort driver gateway for each user performing sorting operations simultaneously. We suggest configuring one sort gateway for each Reporter user. Each configured sort driver gateway requires 64K of system memory above and beyond the other memory requirements of Comet. Additionally, if one or more sort driver gateways are configured, the number of partitions that can be configured for a Comet system is reduced by 1.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For information on using the sort gateway from within an IB program, see the sort gateway section in the MoreThanBasic documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  Winsock&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The Winsock gateway provides a way for IB applications to communicate over the Internet using industry-standard application-layer protocols. Introduced with Comet 2005, the Comet Email Printer provides a simple method for sending email from your Comet app.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  4&lt;br /&gt;
|  XAP &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The XAP gateway provides advanced Common Gateway Interface processing, and offers a way to create interactive web pages and eComet applications. XAP technology is patent pending. The many features of the XAP gateway are described in the eComet tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  5&lt;br /&gt;
|  ODBC &lt;br /&gt;
client &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The ODBC client gateway provides a way for IB applications to interact with external data sources, including Microsoft Access databases, Excel spreadsheets, and other ODBC-compliant data sources. For more information, see the ODBC client gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  6&lt;br /&gt;
|  Serial &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The serial gateway allows an InternetBasic (IB) program to communicate with an external serial device connected to the COM port of the Comet system. For more information, see the serial gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  7&lt;br /&gt;
|  Universal&lt;br /&gt;
&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The universal gateway allows generic communication between Comet and an external driver program. The fax driver is the first example that uses the universal gateway. For information about the fax driver, see the fax driver documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|Local &lt;br /&gt;
XAP&lt;br /&gt;
gateway&lt;br /&gt;
|&lt;br /&gt;
|included&lt;br /&gt;
|&lt;br /&gt;
|The local XAP gateway allows development of web applications without an XAP license. These applications are limited to pages served by the local host. It's a great way to develop and test your site before implementing a full XAP configuration. For more info on using Comet to host your web site, check out the XAP tutorials..&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/The_Comet_Gateways</id>
		<title>The Comet Gateways</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_Comet_Gateways"/>
				<updated>2020-12-01T16:24:51Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Comet Gateways'''&lt;br /&gt;
There are several gateways available in Comet98 and Comet2000. These gateways provide access to features that are external to Comet, such as a high-speed sorting function, Internet application-layer protocols and advanced Common Gateway Interface processing, ODBC data sources, the serial port on a PC, and an internal fax/modem.&lt;br /&gt;
&lt;br /&gt;
There are two basic steps for using a gateway: configuration and programming. The configuration step is accomplished with the [GATEWAYS] section in the INI file (which is processed by the SYSGEN program). Each configured gateway is listed in sequence. For example:&lt;br /&gt;
&lt;br /&gt;
'''[GATEWAYS]'''&lt;br /&gt;
&lt;br /&gt;
 Gateway = 2,0;    Sort driver gateway     (gateway G00)&lt;br /&gt;
 Gateway = 3,0;    Winsock gateway         (gateway G01)&lt;br /&gt;
 Gateway = 4,0;    XAP gateway (eComet)    (gateway G02)&lt;br /&gt;
 Gateway = 5,0;    ODBC gateway            (gateway G03)&lt;br /&gt;
 Gateway = 6,0;    Serial gateway          (gateway G04)&lt;br /&gt;
 Gateway = 7,0;    Universal gateway (fax) (gateway G05)  (The Universal Gateway (aka the FAX Gateway) was not implemented for Comet32)&lt;br /&gt;
&lt;br /&gt;
The programming step starts with opening a specific gateway device. For example, the following statement opens the Winsock gateway shown in the above [GATEWAYS] configuration:&lt;br /&gt;
&lt;br /&gt;
OPEN (20) “G01”   ! open Winsock gateway&lt;br /&gt;
&lt;br /&gt;
Note: The Reporter automatically generates the IB code to open the sort gateway, and the eComet Extensions automatically open the XAP gateway and assign the logical unit numbers to it.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For the other types of gateways, here is a general-purpose IB routine that shows how to locate and open a specific type of gateway on LUN (1). In the following example, the program searches for a type 6 gateway (serial gateway), which is signified by the ‘@06@’ returned by the DSTAT function.&lt;br /&gt;
&lt;br /&gt;
 length 3.0 &amp;amp; local  I&lt;br /&gt;
 length   3 &amp;amp; local  Ga teName$&lt;br /&gt;
 Open.Gateway:&lt;br /&gt;
  print(0) 'Opening Gateway . . .'&lt;br /&gt;
   for I = 100 TO 199 &lt;br /&gt;
         GateName$ = 'G' + SUB(STRIP(STR(I)), 2, 2) &lt;br /&gt;
   if SUB(DSTAT(GateName$, excp=Try.Next.Gateway), 4, 1) EQ '@06@'_&lt;br /&gt;
         goto Found.Gateway&lt;br /&gt;
 Try.Next.Gateway:&lt;br /&gt;
   next I&lt;br /&gt;
   print(0) 'Cannot Locate Gateway.'&lt;br /&gt;
   goto Abort&lt;br /&gt;
 Found.Gateway:&lt;br /&gt;
   open(1) GateName$&lt;br /&gt;
   print(0) 'Gateway found as ';GateName$&lt;br /&gt;
   return&lt;br /&gt;
&lt;br /&gt;
The following chart shows each type of gateway, whether it is available in Comet98 or Comet2000 (and whether it is included with the base level or available as a add-on product), and describes its basic features. There are also links to documentation and sample programs.&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
!  Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Comet98&lt;br /&gt;
!  Comet2000&lt;br /&gt;
!  Comet32&lt;br /&gt;
!                Description&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  Sort&lt;br /&gt;
gateway&lt;br /&gt;
|  included&lt;br /&gt;
|  included&lt;br /&gt;
| Not&lt;br /&gt;
Included&lt;br /&gt;
|The sort driver gateway provides an efficient sorting method for both the Reporter and your IB applications. If the data to be sorted takes up less than 64K bytes, the sort driver performs the sort function in memory, and offers the fastest sort available on a Comet system. For data greater than 64K, the sort driver performs it's sorting using temporary disk files (either RAM or hard disk).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to configure one sort driver gateway for each user performing sorting operations simultaneously. We suggest configuring one sort gateway for each Reporter user. Each configured sort driver gateway requires 64K of system memory above and beyond the other memory requirements of Comet. Additionally, if one or more sort driver gateways are configured, the number of partitions that can be configured for a Comet system is reduced by 1.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
For information on using the sort gateway from within an IB program, see the sort gateway section in the MoreThanBasic documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  Winsock&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The Winsock gateway provides a way for IB applications to communicate over the Internet using industry-standard application-layer protocols. Introduced with Comet 2005, the Comet Email Printer provides a simple method for sending email from your Comet app.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  4&lt;br /&gt;
|  XAP &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The XAP gateway provides advanced Common Gateway Interface processing, and offers a way to create interactive web pages and eComet applications. XAP technology is patent pending. The many features of the XAP gateway are described in the eComet tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  5&lt;br /&gt;
|  ODBC &lt;br /&gt;
client &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The ODBC client gateway provides a way for IB applications to interact with external data sources, including Microsoft Access databases, Excel spreadsheets, and other ODBC-compliant data sources. For more information, see the ODBC client gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  6&lt;br /&gt;
|  Serial &lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
|add-on&lt;br /&gt;
|&lt;br /&gt;
|The serial gateway allows an InternetBasic (IB) program to communicate with an external serial device connected to the COM port of the Comet system. For more information, see the serial gateway documentation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  7&lt;br /&gt;
|  Universal&lt;br /&gt;
&lt;br /&gt;
gateway&lt;br /&gt;
|  &lt;br /&gt;
| included&lt;br /&gt;
|&lt;br /&gt;
|The universal gateway allows generic communication between Comet and an external driver program. The fax driver is the first example that uses the universal gateway. For information about the fax driver, see the fax driver documentation.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|Local &lt;br /&gt;
XAP&lt;br /&gt;
gateway&lt;br /&gt;
|&lt;br /&gt;
|included&lt;br /&gt;
|&lt;br /&gt;
|The local XAP gateway allows development of web applications without an XAP license. These applications are limited to pages served by the local host. It's a great way to develop and test your site before implementing a full XAP configuration. For more info on using Comet to host your web site, check out the XAP tutorials..&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Virtual_Dongle</id>
		<title>Virtual Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Virtual_Dongle"/>
				<updated>2020-09-21T16:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet Security Server Virtual Dongle Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Security Server Virtual Dongle Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Virtual Dongle Server was released with Comet Server Products version 13. Here are the requirements to use it:&lt;br /&gt;
&lt;br /&gt;
*A signed EULA must be on file with Signature Systems that includes the conditions of using a virtual dongle. You'll find the current End User License Agreement.pdf here: [http://www.signature.net/download/End%20User%20License%20Agreement.pdf]&lt;br /&gt;
&lt;br /&gt;
*You'll need a dongle server registration file called DRB.txt. This will be emailed to you when your order for the virtual dongle is processed.&lt;br /&gt;
*The Comet Security Server must have a reliable internet connection.  If you use Internet Security Software you'll need to set it up to allow 2-way traffic with dongle.signature.net (to port 80) and signature.net (to port 8080).  Be aware that your use of a proxy server may interfere with this communication.  Also we have had customers with problems when SonicWall was doing content filtering.  It may need to be disabled.&lt;br /&gt;
*The Comet Security Server must be running as a service and have '''administrator privileges'''. &lt;br /&gt;
*A Virtual Dongle may be associated with one and only one computer.  Once installed you may not move it to another computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are replacing an existing USB or parallel dongle:&lt;br /&gt;
&lt;br /&gt;
*Install Server Products vsn 18 or higher on your server and make sure all is well using the existing dongle.&lt;br /&gt;
*Put the DRB.txt file into your Comet Services folder. This is the same folder where you installed the Server Products release.&lt;br /&gt;
*Stop the Comet Services then remove the old dongle.&lt;br /&gt;
*Make sure your internet connection is working and restart the Comet Services. When you restart the services it should process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you simply restart the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
*Return the old dongle to Signature Systems so that the permanent certificate can be issued. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are installing a new system:&lt;br /&gt;
&lt;br /&gt;
*Make sure your internet connection is working on the server where the Comet Services will be installed.&lt;br /&gt;
*If you haven't already done so, we recommend you install the Microsoft Redistributables Package.  Some of the .NET framework files are used by the Security Server.  You can download vcredist_x86.exe here [http://www.signature.net/download/MailBoxes/]&lt;br /&gt;
*Create the Comet Services folder.&lt;br /&gt;
*Put the DRB.txt file into that folder.&lt;br /&gt;
*Install Server Products vsn 18 or higher on your server. When it asks for dongle type, choose USB.  This is because the Security Server will attempt to find a USB dongle first and it needs the drivers to be able to do that.  When it asks if you want to restart Windows, say '''&amp;quot;No&amp;quot;'''. Then use the Windows Services program to start the Comet Services. It will process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you start the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Notes:&lt;br /&gt;
The DRB.txt file is a single-use file for installing and registering your virtual dongle.  It is unique for each dongle installed.  Once the installation has been registered successfully with our server the DRB.txt file expires and cannot be reused.  This file is different from the Comet License Certificate file.  Virtual dongles use a license file just like USB or parallel port dongles.  The license file will be updated each time your subscription is renewed or new products are purchased.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/STL_Container_IB_Reference</id>
		<title>STL Container IB Reference</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/STL_Container_IB_Reference"/>
				<updated>2020-07-14T23:37:01Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Utility Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Core Functions===&lt;br /&gt;
These are the main functions you will use for each container.&lt;br /&gt;
&lt;br /&gt;
====Vector====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the vector&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the vector&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the front of the vector&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the vector&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Similar to arrays, vectors are mostly used to access data based on a numeric index, thus stlGet and stlSet are going to be your bread and butter functions for this container.  stlPushBack is a great way to programatically build a vector - it will append the specified data to the end of the vector, and increase its size by 1.  If you want to remove the last element, you would use stlPopBack.  Then the stlFront and stlBack functions have been included as shortcuts for accessing the first and last elements respectively.&lt;br /&gt;
&lt;br /&gt;
====List====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the list&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the list&lt;br /&gt;
 '''stlPushFront( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the beginning of the list&lt;br /&gt;
 '''stlPopFront( &amp;lt;container-name&amp;gt; )''' removes the element at the beginning of the list&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the beginning of the list&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the list&lt;br /&gt;
&lt;br /&gt;
Lists are designed to be accessed sequentially, that is each element is associated with the preceding and following elements in the container.  As such, the core functions provided are used to add, remove, and get the elements at the front and back of the list.  The real power of lists is utilized during iteration - they are the most efficient container for inserting and erasing elements in the middle of the container.&lt;br /&gt;
&lt;br /&gt;
====Map====&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;key&amp;gt; [,EXCP=statement label])''' gets the element at the key specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;key&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the key specified&lt;br /&gt;
&lt;br /&gt;
Maps are used to relate an element to a key (string index).  Similar to vectors, to access a value, the key must be specified.&lt;br /&gt;
&lt;br /&gt;
====Stack/Queue====&lt;br /&gt;
 '''stlPush( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the container&lt;br /&gt;
 '''stlPop( &amp;lt;container-name&amp;gt; )''' removes the next element from the container&lt;br /&gt;
 '''stlPeek( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the next element from the container&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Both stacks and queues utilize the same set of functions, but perform differently depending on which container you have implemented.  In general, the stlPush, stlPop, and stlPeek functions are going to be the most important of these functions.  They perform the basic operations associated with these containers.  For stacks, stlPush and stlPop adds and removes from the end of the container.  For queues, stlPush adds to the end of the container, and stlPop removes from the front of the container.  For both containers, stlPeek will get the &amp;quot;next&amp;quot; element in the container (i.e. the last element for stacks, the first element for queues).&lt;br /&gt;
&lt;br /&gt;
Because these containers are implemented with deques internally, we also provide access via numeric indexes with the stlSet() and stlGet() operators.  These functions behave similarly to the vector functions of the same name, by getting and setting the elements at the specified index.&lt;br /&gt;
&lt;br /&gt;
===Iteration Functions===&lt;br /&gt;
These functions are used to iterate over the elements of a container.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
 '''stlBegin( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the beginning&lt;br /&gt;
 '''stlEnd( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the end&lt;br /&gt;
 '''stlNext( &amp;lt;container-name&amp;gt; )''' moves the iterator position forward one element&lt;br /&gt;
 '''stlPrev( &amp;lt;container-name&amp;gt; )''' moves the iterator position back one element&lt;br /&gt;
 '''stlRead( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the current iterator position&lt;br /&gt;
 '''stlWrite( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' - sets the element at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Maps only:&lt;br /&gt;
 '''stlReadKey( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the key at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Lists only:&lt;br /&gt;
 '''stlInsert( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' inserts the element BEFORE the current iterator position&lt;br /&gt;
 '''stlErase( &amp;lt;container-name&amp;gt; )''' erases the element at the current iterator position&lt;br /&gt;
 (stlErase will subsequently move the iterator position to the next element)&lt;br /&gt;
&lt;br /&gt;
===Utility Functions===&lt;br /&gt;
These are basic functions that return information about the specified container.&lt;br /&gt;
&lt;br /&gt;
 '''stlSize( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' returns the size of the container&lt;br /&gt;
 '''stlEmpty( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' returns whether the container is empty&lt;br /&gt;
 '''stlClear( &amp;lt;container-name&amp;gt; )''' empties the specified container&lt;br /&gt;
 '''stlReset( &amp;lt;container-name&amp;gt; )''' resets the container to its initial values&lt;br /&gt;
&lt;br /&gt;
===Meta Functions===&lt;br /&gt;
These functions perform some action either on all of the elements in the container, or using all the elements in the container.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/STL_Container_IB_Reference</id>
		<title>STL Container IB Reference</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/STL_Container_IB_Reference"/>
				<updated>2020-07-14T23:33:15Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Iteration Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Core Functions===&lt;br /&gt;
These are the main functions you will use for each container.&lt;br /&gt;
&lt;br /&gt;
====Vector====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the vector&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the vector&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the front of the vector&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the vector&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Similar to arrays, vectors are mostly used to access data based on a numeric index, thus stlGet and stlSet are going to be your bread and butter functions for this container.  stlPushBack is a great way to programatically build a vector - it will append the specified data to the end of the vector, and increase its size by 1.  If you want to remove the last element, you would use stlPopBack.  Then the stlFront and stlBack functions have been included as shortcuts for accessing the first and last elements respectively.&lt;br /&gt;
&lt;br /&gt;
====List====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the list&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the list&lt;br /&gt;
 '''stlPushFront( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the beginning of the list&lt;br /&gt;
 '''stlPopFront( &amp;lt;container-name&amp;gt; )''' removes the element at the beginning of the list&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the beginning of the list&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the list&lt;br /&gt;
&lt;br /&gt;
Lists are designed to be accessed sequentially, that is each element is associated with the preceding and following elements in the container.  As such, the core functions provided are used to add, remove, and get the elements at the front and back of the list.  The real power of lists is utilized during iteration - they are the most efficient container for inserting and erasing elements in the middle of the container.&lt;br /&gt;
&lt;br /&gt;
====Map====&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;key&amp;gt; [,EXCP=statement label])''' gets the element at the key specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;key&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the key specified&lt;br /&gt;
&lt;br /&gt;
Maps are used to relate an element to a key (string index).  Similar to vectors, to access a value, the key must be specified.&lt;br /&gt;
&lt;br /&gt;
====Stack/Queue====&lt;br /&gt;
 '''stlPush( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the container&lt;br /&gt;
 '''stlPop( &amp;lt;container-name&amp;gt; )''' removes the next element from the container&lt;br /&gt;
 '''stlPeek( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the next element from the container&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Both stacks and queues utilize the same set of functions, but perform differently depending on which container you have implemented.  In general, the stlPush, stlPop, and stlPeek functions are going to be the most important of these functions.  They perform the basic operations associated with these containers.  For stacks, stlPush and stlPop adds and removes from the end of the container.  For queues, stlPush adds to the end of the container, and stlPop removes from the front of the container.  For both containers, stlPeek will get the &amp;quot;next&amp;quot; element in the container (i.e. the last element for stacks, the first element for queues).&lt;br /&gt;
&lt;br /&gt;
Because these containers are implemented with deques internally, we also provide access via numeric indexes with the stlSet() and stlGet() operators.  These functions behave similarly to the vector functions of the same name, by getting and setting the elements at the specified index.&lt;br /&gt;
&lt;br /&gt;
===Iteration Functions===&lt;br /&gt;
These functions are used to iterate over the elements of a container.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
 '''stlBegin( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the beginning&lt;br /&gt;
 '''stlEnd( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the end&lt;br /&gt;
 '''stlNext( &amp;lt;container-name&amp;gt; )''' moves the iterator position forward one element&lt;br /&gt;
 '''stlPrev( &amp;lt;container-name&amp;gt; )''' moves the iterator position back one element&lt;br /&gt;
 '''stlRead( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the current iterator position&lt;br /&gt;
 '''stlWrite( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' - sets the element at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Maps only:&lt;br /&gt;
 '''stlReadKey( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the key at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Lists only:&lt;br /&gt;
 '''stlInsert( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' inserts the element BEFORE the current iterator position&lt;br /&gt;
 '''stlErase( &amp;lt;container-name&amp;gt; )''' erases the element at the current iterator position&lt;br /&gt;
 (stlErase will subsequently move the iterator position to the next element)&lt;br /&gt;
&lt;br /&gt;
===Utility Functions===&lt;br /&gt;
These are basic functions that return information about the specified container.&lt;br /&gt;
&lt;br /&gt;
 '''stlSize( &amp;lt;container-name&amp;gt; )''' returns the size of the container&lt;br /&gt;
 '''stlEmpty( &amp;lt;container-name&amp;gt; )''' returns whether the container is empty&lt;br /&gt;
 '''stlClear( &amp;lt;container-name&amp;gt; )''' empties the specified container&lt;br /&gt;
 '''stlReset( &amp;lt;container-name&amp;gt; )''' resets the container to its initial values&lt;br /&gt;
&lt;br /&gt;
===Meta Functions===&lt;br /&gt;
These functions perform some action either on all of the elements in the container, or using all the elements in the container.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/STL_Container_IB_Reference</id>
		<title>STL Container IB Reference</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/STL_Container_IB_Reference"/>
				<updated>2020-07-14T23:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Iteration Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Core Functions===&lt;br /&gt;
These are the main functions you will use for each container.&lt;br /&gt;
&lt;br /&gt;
====Vector====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the vector&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the vector&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the front of the vector&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the vector&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Similar to arrays, vectors are mostly used to access data based on a numeric index, thus stlGet and stlSet are going to be your bread and butter functions for this container.  stlPushBack is a great way to programatically build a vector - it will append the specified data to the end of the vector, and increase its size by 1.  If you want to remove the last element, you would use stlPopBack.  Then the stlFront and stlBack functions have been included as shortcuts for accessing the first and last elements respectively.&lt;br /&gt;
&lt;br /&gt;
====List====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the list&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the list&lt;br /&gt;
 '''stlPushFront( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the beginning of the list&lt;br /&gt;
 '''stlPopFront( &amp;lt;container-name&amp;gt; )''' removes the element at the beginning of the list&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the beginning of the list&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the list&lt;br /&gt;
&lt;br /&gt;
Lists are designed to be accessed sequentially, that is each element is associated with the preceding and following elements in the container.  As such, the core functions provided are used to add, remove, and get the elements at the front and back of the list.  The real power of lists is utilized during iteration - they are the most efficient container for inserting and erasing elements in the middle of the container.&lt;br /&gt;
&lt;br /&gt;
====Map====&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;key&amp;gt; [,EXCP=statement label])''' gets the element at the key specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;key&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the key specified&lt;br /&gt;
&lt;br /&gt;
Maps are used to relate an element to a key (string index).  Similar to vectors, to access a value, the key must be specified.&lt;br /&gt;
&lt;br /&gt;
====Stack/Queue====&lt;br /&gt;
 '''stlPush( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the container&lt;br /&gt;
 '''stlPop( &amp;lt;container-name&amp;gt; )''' removes the next element from the container&lt;br /&gt;
 '''stlPeek( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the next element from the container&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Both stacks and queues utilize the same set of functions, but perform differently depending on which container you have implemented.  In general, the stlPush, stlPop, and stlPeek functions are going to be the most important of these functions.  They perform the basic operations associated with these containers.  For stacks, stlPush and stlPop adds and removes from the end of the container.  For queues, stlPush adds to the end of the container, and stlPop removes from the front of the container.  For both containers, stlPeek will get the &amp;quot;next&amp;quot; element in the container (i.e. the last element for stacks, the first element for queues).&lt;br /&gt;
&lt;br /&gt;
Because these containers are implemented with deques internally, we also provide access via numeric indexes with the stlSet() and stlGet() operators.  These functions behave similarly to the vector functions of the same name, by getting and setting the elements at the specified index.&lt;br /&gt;
&lt;br /&gt;
===Iteration Functions===&lt;br /&gt;
These functions are used to iterate over the elements of a container.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
 '''stlBegin( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the beginning&lt;br /&gt;
 '''stlEnd( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the end&lt;br /&gt;
 '''stlNext( &amp;lt;container-name&amp;gt; )''' moves the iterator position forward one element&lt;br /&gt;
 '''stlPrev( &amp;lt;container-name&amp;gt; )''' moves the iterator position back one element&lt;br /&gt;
 '''stlRead( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the current iterator position&lt;br /&gt;
 '''stlWrite( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' - sets the element at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Maps only:&lt;br /&gt;
 '''stlReadKey( &amp;lt;container-name&amp;gt; )''' gets the key at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Lists only:&lt;br /&gt;
 '''stlInsert( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' inserts the element BEFORE the current iterator position&lt;br /&gt;
 '''stlErase( &amp;lt;container-name&amp;gt; )''' erases the element at the current iterator position&lt;br /&gt;
 (stlErase will subsequently move the iterator position to the next element)&lt;br /&gt;
&lt;br /&gt;
===Utility Functions===&lt;br /&gt;
These are basic functions that return information about the specified container.&lt;br /&gt;
&lt;br /&gt;
 '''stlSize( &amp;lt;container-name&amp;gt; )''' returns the size of the container&lt;br /&gt;
 '''stlEmpty( &amp;lt;container-name&amp;gt; )''' returns whether the container is empty&lt;br /&gt;
 '''stlClear( &amp;lt;container-name&amp;gt; )''' empties the specified container&lt;br /&gt;
 '''stlReset( &amp;lt;container-name&amp;gt; )''' resets the container to its initial values&lt;br /&gt;
&lt;br /&gt;
===Meta Functions===&lt;br /&gt;
These functions perform some action either on all of the elements in the container, or using all the elements in the container.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/STL_Container_IB_Reference</id>
		<title>STL Container IB Reference</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/STL_Container_IB_Reference"/>
				<updated>2020-07-14T23:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Stack/Queue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Core Functions===&lt;br /&gt;
These are the main functions you will use for each container.&lt;br /&gt;
&lt;br /&gt;
====Vector====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the vector&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the vector&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the front of the vector&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the vector&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Similar to arrays, vectors are mostly used to access data based on a numeric index, thus stlGet and stlSet are going to be your bread and butter functions for this container.  stlPushBack is a great way to programatically build a vector - it will append the specified data to the end of the vector, and increase its size by 1.  If you want to remove the last element, you would use stlPopBack.  Then the stlFront and stlBack functions have been included as shortcuts for accessing the first and last elements respectively.&lt;br /&gt;
&lt;br /&gt;
====List====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the list&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the list&lt;br /&gt;
 '''stlPushFront( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the beginning of the list&lt;br /&gt;
 '''stlPopFront( &amp;lt;container-name&amp;gt; )''' removes the element at the beginning of the list&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the beginning of the list&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the list&lt;br /&gt;
&lt;br /&gt;
Lists are designed to be accessed sequentially, that is each element is associated with the preceding and following elements in the container.  As such, the core functions provided are used to add, remove, and get the elements at the front and back of the list.  The real power of lists is utilized during iteration - they are the most efficient container for inserting and erasing elements in the middle of the container.&lt;br /&gt;
&lt;br /&gt;
====Map====&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;key&amp;gt; [,EXCP=statement label])''' gets the element at the key specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;key&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the key specified&lt;br /&gt;
&lt;br /&gt;
Maps are used to relate an element to a key (string index).  Similar to vectors, to access a value, the key must be specified.&lt;br /&gt;
&lt;br /&gt;
====Stack/Queue====&lt;br /&gt;
 '''stlPush( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the container&lt;br /&gt;
 '''stlPop( &amp;lt;container-name&amp;gt; )''' removes the next element from the container&lt;br /&gt;
 '''stlPeek( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the next element from the container&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Both stacks and queues utilize the same set of functions, but perform differently depending on which container you have implemented.  In general, the stlPush, stlPop, and stlPeek functions are going to be the most important of these functions.  They perform the basic operations associated with these containers.  For stacks, stlPush and stlPop adds and removes from the end of the container.  For queues, stlPush adds to the end of the container, and stlPop removes from the front of the container.  For both containers, stlPeek will get the &amp;quot;next&amp;quot; element in the container (i.e. the last element for stacks, the first element for queues).&lt;br /&gt;
&lt;br /&gt;
Because these containers are implemented with deques internally, we also provide access via numeric indexes with the stlSet() and stlGet() operators.  These functions behave similarly to the vector functions of the same name, by getting and setting the elements at the specified index.&lt;br /&gt;
&lt;br /&gt;
===Iteration Functions===&lt;br /&gt;
These functions are used to iterate over the elements of a container.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
 '''stlBegin( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the beginning&lt;br /&gt;
 '''stlEnd( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the end&lt;br /&gt;
 '''stlNext( &amp;lt;container-name&amp;gt; )''' moves the iterator position forward one element&lt;br /&gt;
 '''stlPrev( &amp;lt;container-name&amp;gt; )''' moves the iterator position back one element&lt;br /&gt;
 '''stlRead( &amp;lt;container-name&amp;gt; )''' gets the element at the current iterator position&lt;br /&gt;
 '''stlWrite( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' - sets the element at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Maps only:&lt;br /&gt;
 '''stlReadKey( &amp;lt;container-name&amp;gt; )''' gets the key at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Lists only:&lt;br /&gt;
 '''stlInsert( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' inserts the element BEFORE the current iterator position&lt;br /&gt;
 '''stlErase( &amp;lt;container-name&amp;gt; )''' erases the element at the current iterator position&lt;br /&gt;
 (stlErase will subsequently move the iterator position to the next element)&lt;br /&gt;
&lt;br /&gt;
===Utility Functions===&lt;br /&gt;
These are basic functions that return information about the specified container.&lt;br /&gt;
&lt;br /&gt;
 '''stlSize( &amp;lt;container-name&amp;gt; )''' returns the size of the container&lt;br /&gt;
 '''stlEmpty( &amp;lt;container-name&amp;gt; )''' returns whether the container is empty&lt;br /&gt;
 '''stlClear( &amp;lt;container-name&amp;gt; )''' empties the specified container&lt;br /&gt;
 '''stlReset( &amp;lt;container-name&amp;gt; )''' resets the container to its initial values&lt;br /&gt;
&lt;br /&gt;
===Meta Functions===&lt;br /&gt;
These functions perform some action either on all of the elements in the container, or using all the elements in the container.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/STL_Container_IB_Reference</id>
		<title>STL Container IB Reference</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/STL_Container_IB_Reference"/>
				<updated>2020-07-14T23:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Core Functions===&lt;br /&gt;
These are the main functions you will use for each container.&lt;br /&gt;
&lt;br /&gt;
====Vector====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the vector&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the vector&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the front of the vector&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the vector&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Similar to arrays, vectors are mostly used to access data based on a numeric index, thus stlGet and stlSet are going to be your bread and butter functions for this container.  stlPushBack is a great way to programatically build a vector - it will append the specified data to the end of the vector, and increase its size by 1.  If you want to remove the last element, you would use stlPopBack.  Then the stlFront and stlBack functions have been included as shortcuts for accessing the first and last elements respectively.&lt;br /&gt;
&lt;br /&gt;
====List====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the list&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the list&lt;br /&gt;
 '''stlPushFront( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the beginning of the list&lt;br /&gt;
 '''stlPopFront( &amp;lt;container-name&amp;gt; )''' removes the element at the beginning of the list&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the beginning of the list&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the list&lt;br /&gt;
&lt;br /&gt;
Lists are designed to be accessed sequentially, that is each element is associated with the preceding and following elements in the container.  As such, the core functions provided are used to add, remove, and get the elements at the front and back of the list.  The real power of lists is utilized during iteration - they are the most efficient container for inserting and erasing elements in the middle of the container.&lt;br /&gt;
&lt;br /&gt;
====Map====&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;key&amp;gt; [,EXCP=statement label])''' gets the element at the key specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;key&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the key specified&lt;br /&gt;
&lt;br /&gt;
Maps are used to relate an element to a key (string index).  Similar to vectors, to access a value, the key must be specified.&lt;br /&gt;
&lt;br /&gt;
====Stack/Queue====&lt;br /&gt;
 '''stlPush( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the container&lt;br /&gt;
 '''stlPop( &amp;lt;container-name&amp;gt; )''' removes the next element from the container&lt;br /&gt;
 '''stlPeek( &amp;lt;container-name&amp;gt; )''' gets the next element from the container&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; )''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Both stacks and queues utilize the same set of functions, but perform differently depending on which container you have implemented.  In general, the stlPush, stlPop, and stlPeek functions are going to be the most important of these functions.  They perform the basic operations associated with these containers.  For stacks, stlPush and stlPop adds and removes from the end of the container.  For queues, stlPush adds to the end of the container, and stlPop removes from the front of the container.  For both containers, stlPeek will get the &amp;quot;next&amp;quot; element in the container (i.e. the last element for stacks, the first element for queues).&lt;br /&gt;
&lt;br /&gt;
Because these containers are implemented with deques internally, we also provide access via numeric indexes with the stlSet() and stlGet() operators.  These functions behave similarly to the vector functions of the same name, by getting and setting the elements at the specified index.&lt;br /&gt;
&lt;br /&gt;
===Iteration Functions===&lt;br /&gt;
These functions are used to iterate over the elements of a container.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
 '''stlBegin( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the beginning&lt;br /&gt;
 '''stlEnd( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the end&lt;br /&gt;
 '''stlNext( &amp;lt;container-name&amp;gt; )''' moves the iterator position forward one element&lt;br /&gt;
 '''stlPrev( &amp;lt;container-name&amp;gt; )''' moves the iterator position back one element&lt;br /&gt;
 '''stlRead( &amp;lt;container-name&amp;gt; )''' gets the element at the current iterator position&lt;br /&gt;
 '''stlWrite( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' - sets the element at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Maps only:&lt;br /&gt;
 '''stlReadKey( &amp;lt;container-name&amp;gt; )''' gets the key at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Lists only:&lt;br /&gt;
 '''stlInsert( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' inserts the element BEFORE the current iterator position&lt;br /&gt;
 '''stlErase( &amp;lt;container-name&amp;gt; )''' erases the element at the current iterator position&lt;br /&gt;
 (stlErase will subsequently move the iterator position to the next element)&lt;br /&gt;
&lt;br /&gt;
===Utility Functions===&lt;br /&gt;
These are basic functions that return information about the specified container.&lt;br /&gt;
&lt;br /&gt;
 '''stlSize( &amp;lt;container-name&amp;gt; )''' returns the size of the container&lt;br /&gt;
 '''stlEmpty( &amp;lt;container-name&amp;gt; )''' returns whether the container is empty&lt;br /&gt;
 '''stlClear( &amp;lt;container-name&amp;gt; )''' empties the specified container&lt;br /&gt;
 '''stlReset( &amp;lt;container-name&amp;gt; )''' resets the container to its initial values&lt;br /&gt;
&lt;br /&gt;
===Meta Functions===&lt;br /&gt;
These functions perform some action either on all of the elements in the container, or using all the elements in the container.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/STL_Container_IB_Reference</id>
		<title>STL Container IB Reference</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/STL_Container_IB_Reference"/>
				<updated>2020-07-14T23:12:06Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Core Functions===&lt;br /&gt;
These are the main functions you will use for each container.&lt;br /&gt;
&lt;br /&gt;
====Vector====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the vector&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the vector&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the front of the vector&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the vector&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Similar to arrays, vectors are mostly used to access data based on a numeric index, thus stlGet and stlSet are going to be your bread and butter functions for this container.  stlPushBack is a great way to programatically build a vector - it will append the specified data to the end of the vector, and increase its size by 1.  If you want to remove the last element, you would use stlPopBack.  Then the stlFront and stlBack functions have been included as shortcuts for accessing the first and last elements respectively.&lt;br /&gt;
&lt;br /&gt;
====List====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the list&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the list&lt;br /&gt;
 '''stlPushFront( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the beginning of the list&lt;br /&gt;
 '''stlPopFront( &amp;lt;container-name&amp;gt; )''' removes the element at the beginning of the list&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; )''' gets the element at the beginning of the list&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; )''' gets the element at the end of the list&lt;br /&gt;
&lt;br /&gt;
Lists are designed to be accessed sequentially, that is each element is associated with the preceding and following elements in the container.  As such, the core functions provided are used to add, remove, and get the elements at the front and back of the list.  The real power of lists is utilized during iteration - they are the most efficient container for inserting and erasing elements in the middle of the container.&lt;br /&gt;
&lt;br /&gt;
====Map====&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;key&amp;gt; [,EXCP=statement label])''' gets the element at the key specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;key&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the key specified&lt;br /&gt;
&lt;br /&gt;
Maps are used to relate an element to a key (string index).  Similar to vectors, to access a value, the key must be specified.&lt;br /&gt;
&lt;br /&gt;
====Stack/Queue====&lt;br /&gt;
 '''stlPush( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the container&lt;br /&gt;
 '''stlPop( &amp;lt;container-name&amp;gt; )''' removes the next element from the container&lt;br /&gt;
 '''stlPeek( &amp;lt;container-name&amp;gt; )''' gets the next element from the container&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; )''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Both stacks and queues utilize the same set of functions, but perform differently depending on which container you have implemented.  In general, the stlPush, stlPop, and stlPeek functions are going to be the most important of these functions.  They perform the basic operations associated with these containers.  For stacks, stlPush and stlPop adds and removes from the end of the container.  For queues, stlPush adds to the end of the container, and stlPop removes from the front of the container.  For both containers, stlPeek will get the &amp;quot;next&amp;quot; element in the container (i.e. the last element for stacks, the first element for queues).&lt;br /&gt;
&lt;br /&gt;
Because these containers are implemented with deques internally, we also provide access via numeric indexes with the stlSet() and stlGet() operators.  These functions behave similarly to the vector functions of the same name, by getting and setting the elements at the specified index.&lt;br /&gt;
&lt;br /&gt;
===Iteration Functions===&lt;br /&gt;
These functions are used to iterate over the elements of a container.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
 '''stlBegin( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the beginning&lt;br /&gt;
 '''stlEnd( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the end&lt;br /&gt;
 '''stlNext( &amp;lt;container-name&amp;gt; )''' moves the iterator position forward one element&lt;br /&gt;
 '''stlPrev( &amp;lt;container-name&amp;gt; )''' moves the iterator position back one element&lt;br /&gt;
 '''stlRead( &amp;lt;container-name&amp;gt; )''' gets the element at the current iterator position&lt;br /&gt;
 '''stlWrite( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' - sets the element at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Maps only:&lt;br /&gt;
 '''stlReadKey( &amp;lt;container-name&amp;gt; )''' gets the key at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Lists only:&lt;br /&gt;
 '''stlInsert( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' inserts the element BEFORE the current iterator position&lt;br /&gt;
 '''stlErase( &amp;lt;container-name&amp;gt; )''' erases the element at the current iterator position&lt;br /&gt;
 (stlErase will subsequently move the iterator position to the next element)&lt;br /&gt;
&lt;br /&gt;
===Utility Functions===&lt;br /&gt;
These are basic functions that return information about the specified container.&lt;br /&gt;
&lt;br /&gt;
 '''stlSize( &amp;lt;container-name&amp;gt; )''' returns the size of the container&lt;br /&gt;
 '''stlEmpty( &amp;lt;container-name&amp;gt; )''' returns whether the container is empty&lt;br /&gt;
 '''stlClear( &amp;lt;container-name&amp;gt; )''' empties the specified container&lt;br /&gt;
 '''stlReset( &amp;lt;container-name&amp;gt; )''' resets the container to its initial values&lt;br /&gt;
&lt;br /&gt;
===Meta Functions===&lt;br /&gt;
These functions perform some action either on all of the elements in the container, or using all the elements in the container.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/STL_Container_IB_Reference</id>
		<title>STL Container IB Reference</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/STL_Container_IB_Reference"/>
				<updated>2020-07-14T23:06:56Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Vector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Core Functions===&lt;br /&gt;
These are the main functions you will use for each container.&lt;br /&gt;
&lt;br /&gt;
====Vector====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the vector&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the vector&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the front of the vector&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; [,EXCP=statement label])''' gets the element at the end of the vector&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; [,EXCP=statement label])''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Similar to arrays, vectors are mostly used to access data based on a numeric index, thus stlGet and stlSet are going to be your bread and butter functions for this container.  stlPushBack is a great way to programatically build a vector - it will append the specified data to the end of the vector, and increase its size by 1.  If you want to remove the last element, you would use stlPopBack.  Then the stlFront and stlBack functions have been included as shortcuts for accessing the first and last elements respectively.&lt;br /&gt;
&lt;br /&gt;
====List====&lt;br /&gt;
 '''stlPushBack( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the end of the list&lt;br /&gt;
 '''stlPopBack( &amp;lt;container-name&amp;gt; )''' removes the element at the end of the list&lt;br /&gt;
 '''stlPushFront( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the beginning of the list&lt;br /&gt;
 '''stlPopFront( &amp;lt;container-name&amp;gt; )''' removes the element at the beginning of the list&lt;br /&gt;
 '''stlFront( &amp;lt;container-name&amp;gt; )''' gets the element at the beginning of the list&lt;br /&gt;
 '''stlBack( &amp;lt;container-name&amp;gt; )''' gets the element at the end of the list&lt;br /&gt;
&lt;br /&gt;
Lists are designed to be accessed sequentially, that is each element is associated with the preceding and following elements in the container.  As such, the core functions provided are used to add, remove, and get the elements at the front and back of the list.  The real power of lists is utilized during iteration - they are the most efficient container for inserting and erasing elements in the middle of the container.&lt;br /&gt;
&lt;br /&gt;
====Map====&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;key&amp;gt; )''' gets the element at the key specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;key&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the key specified&lt;br /&gt;
&lt;br /&gt;
Maps are used to relate an element to a key (string index).  Similar to vectors, to access a value, the key must be specified.&lt;br /&gt;
&lt;br /&gt;
====Stack/Queue====&lt;br /&gt;
 '''stlPush( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' adds an element to the container&lt;br /&gt;
 '''stlPop( &amp;lt;container-name&amp;gt; )''' removes the next element from the container&lt;br /&gt;
 '''stlPeek( &amp;lt;container-name&amp;gt; )''' gets the next element from the container&lt;br /&gt;
 '''stlGet( &amp;lt;container-name&amp;gt;, &amp;lt;index&amp;gt; )''' gets the element at the index specified&lt;br /&gt;
 '''stlSet( &amp;lt;container-name&amp;gt; &amp;lt;index&amp;gt; &amp;lt;data&amp;gt;)''' sets the element at the index specified&lt;br /&gt;
&lt;br /&gt;
Both stacks and queues utilize the same set of functions, but perform differently depending on which container you have implemented.  In general, the stlPush, stlPop, and stlPeek functions are going to be the most important of these functions.  They perform the basic operations associated with these containers.  For stacks, stlPush and stlPop adds and removes from the end of the container.  For queues, stlPush adds to the end of the container, and stlPop removes from the front of the container.  For both containers, stlPeek will get the &amp;quot;next&amp;quot; element in the container (i.e. the last element for stacks, the first element for queues).&lt;br /&gt;
&lt;br /&gt;
Because these containers are implemented with deques internally, we also provide access via numeric indexes with the stlSet() and stlGet() operators.  These functions behave similarly to the vector functions of the same name, by getting and setting the elements at the specified index.&lt;br /&gt;
&lt;br /&gt;
===Iteration Functions===&lt;br /&gt;
These functions are used to iterate over the elements of a container.&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
 '''stlBegin( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the beginning&lt;br /&gt;
 '''stlEnd( &amp;lt;container-name&amp;gt; )''' sets the iterator position at the end&lt;br /&gt;
 '''stlNext( &amp;lt;container-name&amp;gt; )''' moves the iterator position forward one element&lt;br /&gt;
 '''stlPrev( &amp;lt;container-name&amp;gt; )''' moves the iterator position back one element&lt;br /&gt;
 '''stlRead( &amp;lt;container-name&amp;gt; )''' gets the element at the current iterator position&lt;br /&gt;
 '''stlWrite( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' - sets the element at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Maps only:&lt;br /&gt;
 '''stlReadKey( &amp;lt;container-name&amp;gt; )''' gets the key at the current iterator position&lt;br /&gt;
&lt;br /&gt;
Lists only:&lt;br /&gt;
 '''stlInsert( &amp;lt;container-name&amp;gt;, &amp;lt;data&amp;gt; )''' inserts the element BEFORE the current iterator position&lt;br /&gt;
 '''stlErase( &amp;lt;container-name&amp;gt; )''' erases the element at the current iterator position&lt;br /&gt;
 (stlErase will subsequently move the iterator position to the next element)&lt;br /&gt;
&lt;br /&gt;
===Utility Functions===&lt;br /&gt;
These are basic functions that return information about the specified container.&lt;br /&gt;
&lt;br /&gt;
 '''stlSize( &amp;lt;container-name&amp;gt; )''' returns the size of the container&lt;br /&gt;
 '''stlEmpty( &amp;lt;container-name&amp;gt; )''' returns whether the container is empty&lt;br /&gt;
 '''stlClear( &amp;lt;container-name&amp;gt; )''' empties the specified container&lt;br /&gt;
 '''stlReset( &amp;lt;container-name&amp;gt; )''' resets the container to its initial values&lt;br /&gt;
&lt;br /&gt;
===Meta Functions===&lt;br /&gt;
These functions perform some action either on all of the elements in the container, or using all the elements in the container.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2020-06-10T21:10:40Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Where are all the various log files? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
If you can't even do that, try looking in C:\Users\[username]\AppData\Local\Signature Systems\LOGS&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What options can be set in the #XAP file?==&lt;br /&gt;
&lt;br /&gt;
CLOSE&amp;lt;br&amp;gt;&lt;br /&gt;
The CLOSE command tells Comet to stop listening on the XAP gateway (in effect, resetting&lt;br /&gt;
the gateway).&lt;br /&gt;
&lt;br /&gt;
LOGFILE pathname[,cycle | ,erase]&amp;lt;br&amp;gt;&lt;br /&gt;
The cycle option keeps up to 7 generations of the log file.&lt;br /&gt;
&lt;br /&gt;
LISTEN port-number&amp;lt;br&amp;gt;&lt;br /&gt;
Specifies the port for XAP to listen on. Port 80 will be used by default.&lt;br /&gt;
&lt;br /&gt;
USEWIN&amp;lt;br&amp;gt;&lt;br /&gt;
This will direct XAP to use direct Windows calls rather than going through the file server. The default is to use the file server. Logging however always uses Windows calls because of stack space limitations.&lt;br /&gt;
&lt;br /&gt;
EXPIRE xT[,ProgramName]&amp;lt;br&amp;gt;&lt;br /&gt;
This is used to set the expiration date for an eComet Context cookie. x is number; T is M|D|H, (for example 5M for 5 minutes); optional ProgramName is program to run when a new cookie is created (for example a relogin program). Without ProgramName, the normal XAP program is run with ClearCommon. Previously cookies expired only when the browser was closed. Now the cookies are persistent. Without the EXPIRE command cookies will be session cookies as they were before this enhancement. You can delete a cookie by setting an expiration date in the past.&lt;br /&gt;
&lt;br /&gt;
TRACE&amp;lt;br&amp;gt;&lt;br /&gt;
Turns on the Comet32 TRACE window you'd get if you said TRACE ON in your IB program.&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecSrv utility with Comet32.  In addition to doing certificate retrieval, it will also list all currently connected users along with their local IP addresses and tell you how long they have been connected.  For Comet16 users you can use the older utility, SecLic.  This requires that you have configured a WinSock gateway.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, just set ForceC32 = 1 in your CosWGlob.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if a program was compiled for Comet16 or Comet32?==&lt;br /&gt;
There are several ways.&lt;br /&gt;
* CometExplorer's TYPE column indicates the type of object file: C16 Program, C32 Program, or C32M Program (Comet Mobile)&lt;br /&gt;
* When you run a program in Comet32 a colored block on the window's status line indicates the type of program: purple for Comet16; green for Comet32&lt;br /&gt;
* From inside your program you can use FSTAT on an object file to determine if it was compiled for Comet16 or Comet32.  Look in position 135 [[http://wiki.signature.net/index.php/IB_Statements/fstat]] &lt;br /&gt;
* PSTAT can also be used to check the type of a program that's currently running.  Look in position 219 [[http://wiki.signature.net/index.php/IB_Statements/pstat]]&lt;br /&gt;
* If you attempt to run a Comet32 program in Comet16 you will get an Error 63.&lt;br /&gt;
&lt;br /&gt;
==Can I use the Comet16 compiler on a 64-bit computer?==&lt;br /&gt;
No, you can only run the Comet16 compiler from a computer that can run Comet16.  When compiling from UltraEdit, either the Comet16 compiler or the Comet32 compiler will be launched depending on the version of Comet currently running on the host computer.  So, on a 32-bit computer you can compile with either the Comet16 compiler or the Comet32 compiler, but on a 64-bit computer you can only compile with the Comet32 compiler.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Virtual_Dongle</id>
		<title>Virtual Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Virtual_Dongle"/>
				<updated>2019-06-20T18:29:53Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet Security Server Virtual Dongle Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Security Server Virtual Dongle Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Virtual Dongle Server was released with Comet Server Products version 13. Here are the requirements to use it:&lt;br /&gt;
&lt;br /&gt;
*A signed EULA must be on file with Signature Systems that includes the conditions of using a virtual dongle. You'll find the current End User License Agreement.pdf here: [http://www.signature.net/download/End%20User%20License%20Agreement.pdf]&lt;br /&gt;
&lt;br /&gt;
*You'll need a dongle server registration file called DRB.txt. This will be emailed to you when your order for the virtual dongle is processed.&lt;br /&gt;
*The Comet Security Server must have a reliable internet connection.  If you use Internet Security Software you'll need to set it up to allow 2-way traffic with dongle.signature.net (to port 80) and signature.net (to port 8080).  Be aware that your use of a proxy server may interfere with this communication.&lt;br /&gt;
*The Comet Security Server must be running as a service and have '''administrator privileges'''. &lt;br /&gt;
*A Virtual Dongle may be associated with one and only one computer.  Once installed you may not move it to another computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are replacing an existing USB or parallel dongle:&lt;br /&gt;
&lt;br /&gt;
*Install Server Products vsn 18 or higher on your server and make sure all is well using the existing dongle.&lt;br /&gt;
*Put the DRB.txt file into your Comet Services folder. This is the same folder where you installed the Server Products release.&lt;br /&gt;
*Stop the Comet Services then remove the old dongle.&lt;br /&gt;
*Make sure your internet connection is working and restart the Comet Services. When you restart the services it should process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you simply restart the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
*Return the old dongle to Signature Systems so that the permanent certificate can be issued. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are installing a new system:&lt;br /&gt;
&lt;br /&gt;
*Make sure your internet connection is working on the server where the Comet Services will be installed.&lt;br /&gt;
*If you haven't already done so, we recommend you install the Microsoft Redistributables Package.  Some of the .NET framework files are used by the Security Server.  You can download vcredist_x86.exe here [http://www.signature.net/download/MailBoxes/]&lt;br /&gt;
*Create the Comet Services folder.&lt;br /&gt;
*Put the DRB.txt file into that folder.&lt;br /&gt;
*Install Server Products vsn 18 or higher on your server. When it asks for dongle type, choose USB.  This is because the Security Server will attempt to find a USB dongle first and it needs the drivers to be able to do that.  When it asks if you want to restart Windows, say '''&amp;quot;No&amp;quot;'''. Then use the Windows Services program to start the Comet Services. It will process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you start the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Notes:&lt;br /&gt;
The DRB.txt file is a single-use file for installing and registering your virtual dongle.  It is unique for each dongle installed.  Once the installation has been registered successfully with our server the DRB.txt file expires and cannot be reused.  This file is different from the Comet License Certificate file.  Virtual dongles use a license file just like USB or parallel port dongles.  The license file will be updated each time your subscription is renewed or new products are purchased.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Using_the_email_printer</id>
		<title>Using the email printer</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Using_the_email_printer"/>
				<updated>2019-01-03T23:48:48Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Email Printing with Comet==&lt;br /&gt;
© 2007 Signature System Inc.&lt;br /&gt;
&lt;br /&gt;
Within a few minutes you can configure a &amp;quot;printer&amp;quot; that will automatically email any text, HTML, or PDF document produced using Comet's printer drivers.&lt;br /&gt;
 &lt;br /&gt;
==Understanding SMTP==&lt;br /&gt;
The Email Printer uses a DES program called EMAILPTR. It talks the SMTP protocol. &lt;br /&gt;
SMTP stands for '''S'''imple '''M'''ail '''T'''ransport '''P'''rotocol. It is the basic protocol used to send mail over the internet. SMTP mimics the process of sending a package or letter by snail mail or delivery service.  When mailing a physical letter, you first write the letter itself (the body), then write the envelope and then take the envelope to the post office, giving delivery instructions.&lt;br /&gt;
&lt;br /&gt;
===There are 3 sections of an SMTP email transaction.===&lt;br /&gt;
 &lt;br /&gt;
====1. The SMTP routing instructions:====&lt;br /&gt;
* The connection server and port (Connect)&lt;br /&gt;
* The introduction (Domain)&lt;br /&gt;
* Optional Authentication (User and Password)&lt;br /&gt;
* The Sender's ID (Mail from)&lt;br /&gt;
* The destination (rcpt to)&lt;br /&gt;
* Other SMTP Commands&lt;br /&gt;
&lt;br /&gt;
====2. The &amp;quot;envelope&amp;quot; or Header====&lt;br /&gt;
* The date&lt;br /&gt;
* From&lt;br /&gt;
* To&lt;br /&gt;
* Subject&lt;br /&gt;
* Other Header elements&lt;br /&gt;
&lt;br /&gt;
====3. The body of the mail====&lt;br /&gt;
* Possibly multiple parts, each a different format.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
There are a few requirements to make this feature work. &lt;br /&gt;
&lt;br /&gt;
* A WinSock gateway configured. It is better to configure multiple WinSock Gateways.&lt;br /&gt;
* A COM license for CometLib. &lt;br /&gt;
* A connection to the Internet. &lt;br /&gt;
* A reachable SMTP server. &lt;br /&gt;
* The TMP directory for Comet must be configured as a CFAM directory and it must be configured in SYSGEN using the $(CATEMP) alias: &lt;br /&gt;
 00 = c ,$(catemp); &lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
You can designate TEXT, HTML, and PDF printers as email printers. Here is a sample of a section of an INI file:&lt;br /&gt;
&lt;br /&gt;
 Printer = leh,h,n,,htm,EmailPtr;   ; Data records are limited to 254 bytes &lt;br /&gt;
 Printer = leh,h,n,,htm,EmlPtr32;   ; For Comet32 users only: no restriction on length of data records written to the printer &lt;br /&gt;
 Printer = lep,p,n,,pdfFactory,EmailPtr; &lt;br /&gt;
 Printer = let,x,n,,txt,EmailPtr;   ; Data records are limited to 254 bytes &lt;br /&gt;
 Printer = let,x,n,,txt,EmlPtr32;   ; For Comet32 users only: no restriction on length of data records written to the printer &lt;br /&gt;
&lt;br /&gt;
We could have named the printers any device name beginning with an &amp;quot;L&amp;quot;. What designates this as an email printer is the DES program &amp;quot;EmailPtr&amp;quot; or &amp;quot;EmlPtr32&amp;quot;. These DES programs are released as part of the REL Directory.&lt;br /&gt;
&lt;br /&gt;
===Doc Manager===&lt;br /&gt;
You can configure a printer as both an email printer and an archive printer.&lt;br /&gt;
 &lt;br /&gt;
 Printer = LPI,p,x,SPL:invoices,Adobe PDF,EmailPtr;&lt;br /&gt;
&lt;br /&gt;
Every document printed to that printer would be rendered in PDF by the Adobe Pdf driver, emailed, and placed into the INVOICES docmanager archive. With appropriate Email.ini settings (see below), no program changes would be required other than selecting 'LPI' as the printer.&lt;br /&gt;
&lt;br /&gt;
==Mnemonics==&lt;br /&gt;
&lt;br /&gt;
There are several mnemonics specifically related to the email printer. First, you need to specify the smtp server name and port to be used to send your email.&lt;br /&gt;
&lt;br /&gt;
 Print (lun) (Server='smtp.ourserver.net mail')&lt;br /&gt;
&lt;br /&gt;
Look at the server settings in your email program for the correct setting for this. The word &amp;quot;mail&amp;quot; above is an alias for port 25. Thus, you could have written &lt;br /&gt;
&lt;br /&gt;
 Print (lun) (Server='smtp.ourserver.net 25') &lt;br /&gt;
&lt;br /&gt;
and accomplished the same thing. You can use any port mandated by your ISP. Port 25 is the default. If you do not specify a port as part of the server name, the email printer will attempt to use port 25. Note: Beginning with Comet 2006 you are able to send email from smtp servers that require authentication.&lt;br /&gt;
&lt;br /&gt;
If you wish, you may also specify a domain name. &lt;br /&gt;
&lt;br /&gt;
 Print (lun) (Domain='signature.net')&lt;br /&gt;
&lt;br /&gt;
If it is not specified, the email printer will supply the same domain as designated in the server mnemonic. &lt;br /&gt;
&lt;br /&gt;
To specify the sender's name you use the &amp;quot;From&amp;quot; mnemonic.&lt;br /&gt;
&lt;br /&gt;
 Print (lun) (From='&amp;quot;jim guerber&amp;quot;&amp;lt;jim@@signature.net&amp;gt;')&lt;br /&gt;
&lt;br /&gt;
This is used both for SMTP routing (MAIL FROM:) and for the mail message header (From:). It should be set to a valid email address. &lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;To&amp;quot; mnemonic to specify your recipients. This will be used for SMTP routing (RCPT TO:) and the header (To:).&lt;br /&gt;
&lt;br /&gt;
 Print (lun) (To = 'jim&amp;lt;jim@@signature.net&amp;gt;')&lt;br /&gt;
 Print (lun) (To = 'gina@@signature.net') &lt;br /&gt;
&lt;br /&gt;
You must specify at least one recipient. Use multiple instances of this mnemonic to send your email to more than one recipient. CC and BCC recipients may be specified in addition to or instead of TO recipients. &lt;br /&gt;
&lt;br /&gt;
 Print (lun) (CC = 'barbara@@signature.net')&lt;br /&gt;
 Print (lun) (BCC = 'brian@@signature.net') &lt;br /&gt;
&lt;br /&gt;
You must include a subject for your email, use the &amp;quot;Subject&amp;quot; mnemonic. &lt;br /&gt;
&lt;br /&gt;
 Print (lun) (Subject='The Subject of this email') &lt;br /&gt;
&lt;br /&gt;
In addition to whatever is written to the email printer, you may want to include body text. Depending on your email client, for html printers body text will either appear in an attachment, since it is usual for HTML to appear as the main body of the email, or it will be appended following the html content. For PDF printers, this text will be the main body of the email and the PDF will appear as an attachment. For text printers, the body text will appear just before the printer output. To specify body text, use the &amp;quot;Text&amp;quot; mnemonic.&lt;br /&gt;
&lt;br /&gt;
 Print (lun) (Text='yada yada yada') &lt;br /&gt;
&lt;br /&gt;
The email printer will optionally write to a log file, recording details about each email sent, including responses from the smtp server. The log file is a text file located on any directory to which the user has access. The email printer will append to this log file. The log file may optionally be erased before the print job is run. Otherwise, it is up to the administrator or outside program to erase this file periodically. &lt;br /&gt;
&lt;br /&gt;
 Print (lun) (Log='file','dir','erase') &lt;br /&gt;
&lt;br /&gt;
If the log file name is not specified, a file named &amp;quot;email.log&amp;quot; will be used. If the email directory is not specified, &amp;quot;COS&amp;quot; will be used. By default, the file will not be erased. If there is no LOG statement at all, no log file will be generated.&lt;br /&gt;
&lt;br /&gt;
If you wish to specify a name for an attachment to your email, use the (EmailDocument=) mnemonic. &lt;br /&gt;
&lt;br /&gt;
 Print (lun) (EmailDocument='file') &lt;br /&gt;
 Without the (EmailDocument=) mnemonic, the attachment would carry the default name of the document.&lt;br /&gt;
&lt;br /&gt;
==Formatting of email addresses==&lt;br /&gt;
&lt;br /&gt;
In the examples above, we have shown a few different ways to specify an email address. Mail programs like addresses formatted in the following way: &amp;quot;FirstName LastName&amp;quot;&amp;lt;email@domain.tld&amp;gt; Any of the following should work: &lt;br /&gt;
&lt;br /&gt;
 Print (lun) (To = 'Jim Guerber&amp;lt;jim@@signature.net&amp;gt;') ! Best &lt;br /&gt;
 Print (lun) (To = 'Jim&amp;lt;jim@@signature.net&amp;gt;')              ! ok &lt;br /&gt;
 Print (lun) (To = 'jim@@signature.net')                      ! worst &lt;br /&gt;
&lt;br /&gt;
If there is no space character in the name the double quotes are not necessary. Most email programs will take some sort of shortened form of email address, even just the address with no &amp;lt;&amp;gt; such as email@domain.tld, but some spam detection programs may object to this simple form. Note the use of double @ characters as an escape convention of Internet Basic. &lt;br /&gt;
&lt;br /&gt;
Email addresses used in the SMTP routing instructions &amp;quot;mail from&amp;quot; and &amp;quot;rcpt to&amp;quot; will have any name information (like &amp;quot;Jim Guerber&amp;quot; in the above example) stripped out. Microsoft Exchange Server doesn't tolerate anything other than the simple email address.&lt;br /&gt;
&lt;br /&gt;
== A Note on Verifying Email Addresses==&lt;br /&gt;
&lt;br /&gt;
If you're going to do email address validation, consider that VRFY and EXPN are blocked by most ISPs nowadays. Also, simulating VRFY by stacking RCPT TO: commands is something that spammers do. ISPs know this, and the smarter ones track how often you do this. You'll get blocked after some number of attempts. I wouldn't go looking for a lot of sympathy from ISPs when trying to get unblocked afterwards, as the ISPs consider this a very bad practice that good guys don't engage in.&lt;br /&gt;
==The email.ini file==&lt;br /&gt;
&lt;br /&gt;
Several settings for email printers never (or rarely) change. These settings can be placed in an initialization file (INI File). The email printer will look for a file named email.ini which can contain those settings. The email.ini file is optional since all values may be supplied by mnemonics in the program, but it may be a more convenient way to supply some parameters such as the smtp server name. Lines beginning with an exclamation marks ! are treated as comments.&lt;br /&gt;
&lt;br /&gt;
====Mnemonics vs the Email.ini file====&lt;br /&gt;
The information required for an email may be either specified by the use of mnemonics, or placed in a text file called email.ini or both. You may want to setup a standard email.ini file containing items that remain constant from one email to another such as server and domain, and specify the rest of the info using mnemonics, or you may want to write a new email.ini file in the temp directory containing all of the information required before initiating the email program. &lt;br /&gt;
* The email.ini file is not processed until the printer is closed. This means that any time during the execution of the print program, you may add items to the email.ini file.&lt;br /&gt;
* Each print of a mnemonic causes a new line to be generated in the document (the email body) unless Transparent mode is specified (TR).&lt;br /&gt;
* Use of the email.ini file allows general print programs to generate email with no change.&lt;br /&gt;
&lt;br /&gt;
The email printer will look for an equal sign (=) as a delimiter between the parameter name and the value. If an equal sign is not found, the whole line will be treated as text. This is the same as using the &amp;quot;text=&amp;quot; parameter. Here's an example:&lt;br /&gt;
&lt;br /&gt;
 server = smtp.ourserver.net &lt;br /&gt;
 from = OrderProcessing@OurCompany.com &lt;br /&gt;
 bcc = AcctsReceivable@OurCompany.com &lt;br /&gt;
 subject = Thank you for your order &lt;br /&gt;
 Thank you for your recent order. The attached document contains your invoice and delivery schedule. &lt;br /&gt;
&lt;br /&gt;
Using the preceding email.ini file, all that the program would need to supply is the recipient's email address (using the (To=) mnemonic) and write the unique details of the message to the email printer. Note that Accounts Receivable will automatically receive a copy (bcc) of each email.&lt;br /&gt;
 &lt;br /&gt;
Some mnemonics supplied by the program have precedence over the email.ini settings. In other cases both values from a mnemonic AND values from the email.ini file will be used. Those mnemonics which will super cede the equivalent setting in the email.ini file are Server, Domain, From, Subject, and Log. And, if you were to try to use more than one of any of those mnemonics for a given email, only the first one of each would be used. The other settings: To, CC, BCC, and Text, may have multiple occurrences. And, if you use these mnemonics and have equivalent settings in the email.ini, they will all be processed for your email. &lt;br /&gt;
&lt;br /&gt;
==Attachments==&lt;br /&gt;
&lt;br /&gt;
Before understanding attachments, It is good to know the order documents get placed in the email for various printers. For the sake of this document we will call any text specified by the (text=)mnemonic or in the email.ini file &amp;quot;body text&amp;quot;. For all email print jobs there are three possible components that are transmitted. The order depends on the printer type.&lt;br /&gt;
&lt;br /&gt;
For HTML printers, the email is composed of the HTML generated for the printer, followed by the body text, and then any attachments specified.&lt;br /&gt;
 &lt;br /&gt;
For Text printers, email is composed of the printer output followed by body text and then attachments.&lt;br /&gt;
 &lt;br /&gt;
For PDF printers, the email is composed of body text, followed by the printer output as an attachment and then followed by any other attachments specified.&lt;br /&gt;
 &lt;br /&gt;
To add an attachment to the email document, either use the (attachment=path) mnemonic or specify the attachment in the INI file. The path specified must be a valid windows path (use either drive letter or UNC conventions), and does not need to be a Comet file or reside in a Comet directory. Any number of attachment files may be specified. The Emailptr program attempts to determine the mime type of the file by reading the mime keyed file in the rel directory using the file extent ion as the key. If the mime type is not determine able, the default mime type of &amp;quot;application/octet-stream&amp;quot; is used.&lt;br /&gt;
&lt;br /&gt;
==Return Receipts==&lt;br /&gt;
&lt;br /&gt;
Occasionally you may want to know when the receiver of your email reads it. Some (not all) email programs support the &amp;quot;Return-Receipt-To:&amp;quot; command. You may specify (a single) return receipt address either in the ini file or by using the (rr=) mnemonic. Following the equal sign must be a valid email address. &lt;br /&gt;
&lt;br /&gt;
==Silent Running==&lt;br /&gt;
&lt;br /&gt;
The Emailptr will sometimes put up a message box if some component of the email such as the subject is missing. This will stop any program that is designed to produce a series of emails, and would crash if run from a background partition. For that reason, there is an extra instruction in the email.ini file to take care of this situation. If you do not want the emailptr to send any output to the screen, include the '''silent''' command in the email.ini file. If this command appears alone, the emailptr will simply close the email and continue. You may also optionally specify a program to be entered each time an error is encountered. In that case, # buffer will contain the error information (the text that would normally appear in the message box.&lt;br /&gt;
&lt;br /&gt;
==Other SMTP commands and header lines==&lt;br /&gt;
&lt;br /&gt;
You may want to supply other commands to the SMTP server or place additional commands in the header. There are 2 commands that allow you to do that. &lt;br /&gt;
&lt;br /&gt;
'''SmtpCmd=text''' includes the text into the smtp routing instructions. I can't find any good examples of why you would want to send one of these things, but in the future, some Exchange server or something may require one of these.&lt;br /&gt;
&lt;br /&gt;
'''Smtphdr=text''' includes the text in the envelope (the header). There are several interesting commands you could want to put here, but most of them are obsolete.&lt;br /&gt;
&lt;br /&gt;
Examples are:&lt;br /&gt;
&lt;br /&gt;
 print (LUN)(SmtpHdr='X-Priority: 1')    ! mark the email as urgent&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
For reference, here is a complete list of mnemonics and their corresponding email.ini file settings: &lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;225&amp;quot;| Mnemonic&lt;br /&gt;
!width=&amp;quot;400&amp;quot;| Ini file&lt;br /&gt;
|-&lt;br /&gt;
| (log = log$)&lt;br /&gt;
| log = email.log,cos,cycle&lt;br /&gt;
|-&lt;br /&gt;
| (server = server$) &lt;br /&gt;
| server = smtp.ourserver.net &lt;br /&gt;
|-&lt;br /&gt;
| (domain= domain$) &lt;br /&gt;
| domain= smtp.ourserver.net &lt;br /&gt;
|-&lt;br /&gt;
| (user = user$) &lt;br /&gt;
|  user = username &lt;br /&gt;
|-&lt;br /&gt;
| (password= pw$) &lt;br /&gt;
| password = MyPassword &lt;br /&gt;
|-&lt;br /&gt;
| (from = from$) &lt;br /&gt;
| from = OrderProcessing@OurCompany.com&lt;br /&gt;
|-&lt;br /&gt;
| (to = to$)&lt;br /&gt;
| to = youraddress@yourisp.net&lt;br /&gt;
|-&lt;br /&gt;
| (cc = cc$) &lt;br /&gt;
| cc = mylawyer@protectme.net &lt;br /&gt;
|-&lt;br /&gt;
| (rr= ReturnReceipt$)&lt;br /&gt;
| rr = returnReceipt@OurCompany.com &lt;br /&gt;
|-&lt;br /&gt;
| (bcc = bcc$) &lt;br /&gt;
| bcc = AcctsReceivable@OurCompany.com &lt;br /&gt;
|-&lt;br /&gt;
| (subject = Subject$) &lt;br /&gt;
| subject = Thank you for your order &lt;br /&gt;
|-&lt;br /&gt;
| (attachment = a$) &lt;br /&gt;
| attachment = c:\boilerplate\terms.pdf &lt;br /&gt;
|-&lt;br /&gt;
| (silent = 'myprog')&lt;br /&gt;
| silent = myprog&lt;br /&gt;
|-&lt;br /&gt;
| (SmtpCmd = 'help')&lt;br /&gt;
| SmtpCmd=help&lt;br /&gt;
|-&lt;br /&gt;
| (SmtpHdr=h$)&lt;br /&gt;
| SmtpHdr=X-Priority: 1&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| ssl=true&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| tls=true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Here is an interesting article aimed at writers of smtp servers with techniques for filtering spam. It is useful to us so that we can better format our emails to avoid being labeled as &amp;quot;ratware&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[http://slett.net/spam-filtering-for-mx/ Spam Filtering for Mail Exchangers]&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Subscription_Benefits</id>
		<title>Subscription Benefits</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Subscription_Benefits"/>
				<updated>2018-12-07T19:40:17Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Benefits of being a Comet Subscriber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if you are not a current subscriber to the Comet Software, most of your core applications will continue to work. However, Signature Systems continually improves its software and adds new features to the Comet System. These features are mainly available to current Comet Subscribers only. &lt;br /&gt;
=Benefits of being a Comet Subscriber=&lt;br /&gt;
&lt;br /&gt;
*Entitled to all updates made to existing products during the subscription year&lt;br /&gt;
*Free COM license for each Comet license. This license is required for:&lt;br /&gt;
**CometExplorer&lt;br /&gt;
**(CopyFile) mnemonic through the file server.  Without a COM license CopyFile is done directly with Windows calls which requires the client to have Windows access to the source and destination folders.  This could require you to purchase additional Client Access Licenses from Microsoft.&lt;br /&gt;
**(Document=) mnemonic.  This mnemonic is used by features of the email printer, the pdf printer, and DocMgr.&lt;br /&gt;
**The DataExpress version of the Reporter.&lt;br /&gt;
**CB, the CometAnywhere File Transfer Utility&lt;br /&gt;
*Protection against the loss of Comet access because of theft or verifiable loss of the security module. We will replace the usb plug and Comet licenses immediately, at no charge to the subscriber. Comet users who are not subscribers must rely on their business insurance to replace their system by completely repurchasing Comet at current prices. The expense and delay could far outweigh the cost of the subscription.&lt;br /&gt;
*Priority access to the technical support staff.&lt;br /&gt;
*The convenience of being able to apply CometAnywhere licenses to any version of the CometAnywhere host.  This can be especially useful at subscription time.  When new CometAnywhere licenses are issued you may continue to run an older version of Comet on the host until it is convenient for you to install the upgrade.&lt;br /&gt;
*Free ODBC/mySQL licenses for each Comet license.&lt;br /&gt;
&lt;br /&gt;
==These benefits expire at the end of the subscription period.==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/The_SYSGEN_configuration_utility/Printers</id>
		<title>The SYSGEN configuration utility/Printers</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/The_SYSGEN_configuration_utility/Printers"/>
				<updated>2018-11-19T20:26:23Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[PRINTERS]'''&lt;br /&gt;
&lt;br /&gt;
 Minimum Requirements: &lt;br /&gt;
                                                                                                                             .&lt;br /&gt;
 This group is not required.&lt;br /&gt;
                                                                                                                             .&lt;br /&gt;
 Refer to the minimal INI file to see the minimum requirements to configure Comet.&lt;br /&gt;
&lt;br /&gt;
The PRINTERS group contains information about the configured printers. The following segment title defines each printer:&lt;br /&gt;
&lt;br /&gt;
'''''Printer = printer-name,printer-type,spool-type,spool-name|printer-name,&lt;br /&gt;
device-name|#[:RAW],driver-event-server-name,owning-node;'''''&lt;br /&gt;
&lt;br /&gt;
'''Examples:'''&lt;br /&gt;
&lt;br /&gt;
[PRINTERS]&lt;br /&gt;
&lt;br /&gt;
Printer = LP1,W,N,,//NTServer/HP Laserjet IIP,,;&lt;br /&gt;
 ; Printer-name          LP1&lt;br /&gt;
 ; Printer-type          W (Windows printer)&lt;br /&gt;
 ; Spool-type            N (non-spooling)&lt;br /&gt;
 ; Spool-name            none&lt;br /&gt;
 ; Printer-name          //NTServer/HP Laserjet IIP&lt;br /&gt;
 ; DES-name              none&lt;br /&gt;
 ; Owning-node           none (printer not network sharable)&lt;br /&gt;
&lt;br /&gt;
Printer = LP1,W,N,,HP Laserjet IIP,,;&lt;br /&gt;
 ; Printer-name          LP1&lt;br /&gt;
 ; Printer-type          W (Windows printer)&lt;br /&gt;
 ; Spool-type            N (non-spooling)&lt;br /&gt;
 ; Spool-name            none&lt;br /&gt;
 ; Printer-name          HP Laserjet IIP&lt;br /&gt;
 ; DES-name              none &lt;br /&gt;
 ; Owning-node           none (printer not network sharable)&lt;br /&gt;
&lt;br /&gt;
Printer = LP2,W,N,,Epson MX80:RAW,,;&lt;br /&gt;
 ; Printer-name          LP2&lt;br /&gt;
 ; Printer-type          W (Windows printer)&lt;br /&gt;
 ; Spool-type            N (non-spooling)&lt;br /&gt;
 ; Spool-name            none&lt;br /&gt;
 ; Printer-name          Epson MX80 in RAW mode&lt;br /&gt;
 ; DES-name              none&lt;br /&gt;
 ; Owning-node           none (printer not network sharable)&lt;br /&gt;
&lt;br /&gt;
Printer = LP3,L,N,,LPT1,,;&lt;br /&gt;
 ; Printer-name          LP3&lt;br /&gt;
 ; Printer-type          L (local printer)&lt;br /&gt;
 ; Spool-type            N (non-spooling)&lt;br /&gt;
 ; Spool-name            none&lt;br /&gt;
 ; Printer-name          Use parallel port 1 (LPT1)&lt;br /&gt;
 ; DES-name              none&lt;br /&gt;
 ; Owning-node           none (printer not network sharable)&lt;br /&gt;
&lt;br /&gt;
Printer = LP4,L,A,SP3,*,LPTDRV,SALES;&lt;br /&gt;
 ; Printer-name          LP4&lt;br /&gt;
 ; Printer-type          L (local printer)&lt;br /&gt;
 ; Spool-type            A (Auto spool)&lt;br /&gt;
 ; Spool-name            SP3&lt;br /&gt;
 ; Printer-name          Use default printer port (LPT1)&lt;br /&gt;
 ; DES-name              LPTDRV.DLL&lt;br /&gt;
 ; Owning-node           SALES&lt;br /&gt;
&lt;br /&gt;
Printer = L99,L,N,,C:\COMET\PRINTER\OUTPUT.TXT,,;&lt;br /&gt;
 ; Printer-name          L99&lt;br /&gt;
 ; Printer-type          L (local printer)&lt;br /&gt;
 ; Spool-type            N (non-spooling)&lt;br /&gt;
 ; Spool-name            none&lt;br /&gt;
 ; Printer-name          Text file (C:\COMET\PRINTER\OUTPUT.TXT)&lt;br /&gt;
 ; DES-name              none&lt;br /&gt;
 ; Owning-node           none&lt;br /&gt;
&lt;br /&gt;
Printer = LPH,H,N,,HTM,HTMLPTR,;&lt;br /&gt;
 ; Printer-name          LPH&lt;br /&gt;
 ; Printer-type          H (HTML printer) &lt;br /&gt;
 ; Spool-type            N (non-spooling)&lt;br /&gt;
 ; Spool-name            none&lt;br /&gt;
 ; Printer-name          HTM (HTML printer)&lt;br /&gt;
 ; DES-name              HTMLPTR&lt;br /&gt;
 ; Owning-node           none&lt;br /&gt;
&lt;br /&gt;
Printer = LPT,X,N,,TXT,EXTPTR,;&lt;br /&gt;
 ; Printer-name          LPT&lt;br /&gt;
 ; Printer-type          X (text printer)&lt;br /&gt;
 ; Spool-type            N (non-spooling)&lt;br /&gt;
 ; Spool-name            none&lt;br /&gt;
 ; Printer-name          TXT (text printer)&lt;br /&gt;
 ; DES-name              EXTPTR&lt;br /&gt;
 ; Owning-node           none&lt;br /&gt;
&lt;br /&gt;
'''Segment Title'''&lt;br /&gt;
&lt;br /&gt;
Printer = printer-name,printer-type,spool-type,spool-name|printer-name,&lt;br /&gt;
device-name|#[:RAW],driver-event-server-name,owning-node;&lt;br /&gt;
&lt;br /&gt;
'''printer-name'''&lt;br /&gt;
Required.&lt;br /&gt;
&lt;br /&gt;
The printer device name in the form “Lxx” (where xx can be any alphanumeric character). Printer names must begin with the letter “L”.&lt;br /&gt;
&lt;br /&gt;
printer-type&lt;br /&gt;
&lt;br /&gt;
Required.&lt;br /&gt;
&lt;br /&gt;
The type of printer that’s being configured.&lt;br /&gt;
&lt;br /&gt;
{| Border=1&lt;br /&gt;
|-&lt;br /&gt;
|Type    &lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|L          &lt;br /&gt;
|Local printer.&amp;lt;br/p&amp;gt; &lt;br /&gt;
A printer that is connected directly to the Comet node and assigned one of the following ports:&amp;lt;br/p&amp;gt; &lt;br /&gt;
LPT1, LPT2, LPT3, PRN, CON, COM1, COM2, COM3, COM4.&lt;br /&gt;
|- &lt;br /&gt;
|W        &lt;br /&gt;
|Windows printer (Windows95 or higher). &lt;br /&gt;
|-&lt;br /&gt;
|H         &lt;br /&gt;
|HTML printer (Comet2000 Build 291 and higher). See below for more information.&lt;br /&gt;
|-&lt;br /&gt;
|X         &lt;br /&gt;
|Text printer (Comet2000 Build 291 and higher). See below for more information.&lt;br /&gt;
|-&lt;br /&gt;
|P         &lt;br /&gt;
|PDF printer (Comet2005 and higher). See below for more information.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Previous versions of Comet supported remote, network, and fax printers.&amp;lt;br/p&amp;gt;&lt;br /&gt;
These printer types are no longer supported.&lt;br /&gt;
&lt;br /&gt;
'''spool-type'''&lt;br /&gt;
&lt;br /&gt;
Required.&lt;br /&gt;
&lt;br /&gt;
Defines the spooling characteristics for the printer that’s being configured.&lt;br /&gt;
&lt;br /&gt;
{| Border=1&lt;br /&gt;
|-&lt;br /&gt;
|Type    &lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|N         &lt;br /&gt;
|Non-spooling. The system will not create Comet spool files under any circumstances.&lt;br /&gt;
|-&lt;br /&gt;
|E          &lt;br /&gt;
|Exception spooling.&amp;lt;br/p&amp;gt;&lt;br /&gt;
The system will create Comet spool files if the printer is off-line or not available.&amp;lt;br/p&amp;gt;&lt;br /&gt;
These spool files may be viewed and printed using Comet’s QSPOOL utility program.&lt;br /&gt;
|-&lt;br /&gt;
|A         &lt;br /&gt;
|Auto-spooling.&amp;lt;br/p&amp;gt;&lt;br /&gt;
The system will create a Comet spool file every time this printer is selected for output.&amp;lt;br/p&amp;gt;&lt;br /&gt;
These spool files may be viewed and printed using Comet’s QSPOOL utility program.&lt;br /&gt;
|-&lt;br /&gt;
|X         &lt;br /&gt;
|Document Archive (Comet 2005 and higher).&amp;lt;br/p&amp;gt;&lt;br /&gt;
The system will create a Comet archive file every time this printer is selected for output.&amp;lt;br/p&amp;gt;&lt;br /&gt;
These documents may be viewed using Comet’s DocMgr program. Archives are only available for pdf, htm, and txt printers.&lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
'''spool-name | printer-name''' &lt;br /&gt;
&lt;br /&gt;
Optional if the printer is non-spooling (N).&lt;br /&gt;
&lt;br /&gt;
Required if the printer is exception (E), auto (A) spooling, or archive (X).&lt;br /&gt;
&lt;br /&gt;
For archives, this parameter takes the form of Dir:Archive. Dir is the CFAM directory where the archive will be created. Archive is the name of the file that will be created to catalog the jobs in the archive. For example: &lt;br /&gt;
&lt;br /&gt;
Printer = LP5,P,X,SPL:INVOICES,pdfFactory,,;  &lt;br /&gt;
 &lt;br /&gt;
This specifies a pdf printer that creates its archive in INVOICES on SPL.&lt;br /&gt;
&lt;br /&gt;
For legacy configurations, this parameter defines the spool-name or printer-name that will be used if this printer is configured for exception or auto spooling. (If the printer is configured for non-spooling, use a comma and leave this parameter blank.)&lt;br /&gt;
&lt;br /&gt;
 Spool-names are in the form “Sxx” (where xx can be any alphanumeric character).&lt;br /&gt;
                                                                                                                             .&lt;br /&gt;
 Printer-names are in the form “Lxx” (where xx can be any alphanumeric character).&lt;br /&gt;
&lt;br /&gt;
See below for information about Cascading Printers.&lt;br /&gt;
&lt;br /&gt;
'''device-name | # [:RAW]'''&lt;br /&gt;
&lt;br /&gt;
Required.&lt;br /&gt;
&lt;br /&gt;
Defines the device-name where output will be sent.&lt;br /&gt;
&lt;br /&gt;
 ·         If this is a local printer, the device name matches the port where the printer is connected &lt;br /&gt;
           (e.g., LPT1, LPT2,      COM1, etc.), or use an asterisk (*) to specify the default host printer.&lt;br /&gt;
                                                                                                                            .&lt;br /&gt;
 ·         If this is a Windows printer, enter the printer name such as “HP Laserjet IIP”. &lt;br /&gt;
           Make sure that you use the exact name of the printer as it appears in the Control Panel.&lt;br /&gt;
                                                                                                                            .&lt;br /&gt;
 ·         If this is a printer on a CometAnywhere system,&lt;br /&gt;
           use a pound sign (#) to set the default Windows printer on the remote system.&lt;br /&gt;
           The printing itself is managed by the COSP program on the remote CometAnywhere system.&lt;br /&gt;
                                                                                                                             .&lt;br /&gt;
 ·         If this is a type H printer, enter HTM as the device name.&lt;br /&gt;
&lt;br /&gt;
If this is a type X printer, enter TXT as the device name. &lt;br /&gt;
&lt;br /&gt;
Type H and X printers are available with Comet2000 Build 291 and higher. See below for more information about HTML and text printers.&lt;br /&gt;
&lt;br /&gt;
 ·         To send output to a text file (without launching the text file), use the path name of the file. For example:&lt;br /&gt;
&lt;br /&gt;
'''C:\COMET\PRINTER\OUTPUT.TXT'''&lt;br /&gt;
&lt;br /&gt;
In this case, all output that is directed to this printer will be sent to the text file named OUTPUT.TXT in the C:\COMET\PRINTER directory. If this file does not exist, Comet creates it. If the file exists, the output is appended to the end of the file. (Note: Comet does not erase this file.)&lt;br /&gt;
&lt;br /&gt;
To operate the printer in RAW mode, append “:RAW” to the printer name. For example:&lt;br /&gt;
&lt;br /&gt;
'''HP Laserjet IIP:RAW'''&lt;br /&gt;
&lt;br /&gt;
See below for information about RAW mode.&lt;br /&gt;
&lt;br /&gt;
'''driver-event-server-name'''&lt;br /&gt;
&lt;br /&gt;
Optional.&lt;br /&gt;
&lt;br /&gt;
(Required if a driver event server is being configured.)&lt;br /&gt;
&lt;br /&gt;
Defines the driver event server (DES) program that is to be used with the printer being configured.&lt;br /&gt;
&lt;br /&gt;
If this is a type H or type X printer (available with Comet2000 Build 291 and higher), specify the appropriate DES progr&lt;br /&gt;
 &lt;br /&gt;
{| Border=1&lt;br /&gt;
|-&lt;br /&gt;
|Printer type                   &lt;br /&gt;
|DES program&lt;br /&gt;
|-&lt;br /&gt;
|H                                 &lt;br /&gt;
|HTMLPTR&lt;br /&gt;
|-&lt;br /&gt;
|X                                 &lt;br /&gt;
|EXTPTR&lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
See below for more information about DES programs.&lt;br /&gt;
&lt;br /&gt;
'''owning-node'''&lt;br /&gt;
&lt;br /&gt;
Optional.&lt;br /&gt;
&lt;br /&gt;
(Required if the printer is to be network sharable.)&lt;br /&gt;
&lt;br /&gt;
Defines the owning node name if the printer is used in a network.&lt;br /&gt;
&lt;br /&gt;
Do not declare this parameter is any of the following is true:&lt;br /&gt;
&lt;br /&gt;
 ·         The printer is not physically attached to a given node&lt;br /&gt;
                                                                                                                              .&lt;br /&gt;
 ·         The printer is declared as auto spool&lt;br /&gt;
                                                                                                                              .&lt;br /&gt;
 ·         You do not have a networked system&lt;br /&gt;
                                                                                                                              .&lt;br /&gt;
 ·         You do not want the printer to be network sharable&lt;br /&gt;
 &lt;br /&gt;
'''&amp;quot;Raw&amp;quot; vs. &amp;quot;Cooked&amp;quot; Mode Printers'''&lt;br /&gt;
 &lt;br /&gt;
Comet offers two modes of printer support for MTB applications. Which mode you use at any given installation depends on the level of compatibility you desire with the DOS version of Comet. The primary difference between a &amp;quot;raw&amp;quot; mode printer and a &amp;quot;cooked&amp;quot; mode printer is the addition of the control word &amp;quot;:RAW&amp;quot; to the Windows printer name for a raw mode printer. A raw mode printer is required for fully 100 percent Comet/DOS compatible printer operation. &lt;br /&gt;
&lt;br /&gt;
The features for each print mode are as follows:&lt;br /&gt;
&lt;br /&gt;
'''Raw Mode:'''&lt;br /&gt;
 &lt;br /&gt;
{| Border=1&lt;br /&gt;
|-&lt;br /&gt;
|Advantages&lt;br /&gt;
|Disadvantages&lt;br /&gt;
|- &lt;br /&gt;
|·                   Provides 100% compatibility with existing MTB applications. &lt;br /&gt;
&lt;br /&gt;
·                   The application may use printer-specific control codes to modify the printer's behavior.&lt;br /&gt;
|·                 Requires direct knowledge of specific printer codes by MTB applications to perform special operations (compressed print, etc.). &lt;br /&gt;
&lt;br /&gt;
·                 The application may not use any Windows-oriented printer controls such as font selection, line drawing etc. &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
'''Cooked Mode:''' &lt;br /&gt;
&lt;br /&gt;
{| Border=1&lt;br /&gt;
|- &lt;br /&gt;
|Advantages&lt;br /&gt;
|Disadvantages&lt;br /&gt;
|- &lt;br /&gt;
|·                   Provides an MTB application with access to the Windows Graphical Device Interface (GDI), providing enhanced features allowing custom forms to be printed directly under MTB program control. &lt;br /&gt;
&lt;br /&gt;
·                   Provides limited compatibility for those legacy applications that use standard sized printer forms. Different sized forms may be used if the printer itself has knowledge of the form size when performing a form-feed (note that this is usually NOT the case). &lt;br /&gt;
&lt;br /&gt;
·                   Printer font type/size may be modified by specifying Windows fonts. &lt;br /&gt;
&lt;br /&gt;
·                   Knowledge of the specific kind of printer or its control codes is not required by the MTB application to use enhanced features.&lt;br /&gt;
|·                   Legacy programs that rely on line counting to print non-standard sized forms may not function properly.&lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
'''Discussion''' &lt;br /&gt;
 &lt;br /&gt;
Many applications, specifically those that use standard form length (11 inches in the U.S.), can function properly when printing to a cooked mode printer by choosing an appropriate Windows font that is compatible with the printer. To eliminate MTB program modification, &amp;quot;System&amp;quot; fonts can be set to choose a font that will initially be used for a specific printer. System fonts are specified in the COSW.INI file (located in the WINDOWS directory). These settings affect Comet cooked mode printers only. Entries in the COSW.INI file must conform to the following example: &lt;br /&gt;
&lt;br /&gt;
'''[Printer Fonts]'''&lt;br /&gt;
&lt;br /&gt;
printer name Font-n = font, height, chars per inch, weight&lt;br /&gt;
 &lt;br /&gt;
where: &lt;br /&gt;
&lt;br /&gt;
printer name is the name of a Windows printer. If omitted, this entry represents the default for all printers not listed. &lt;br /&gt;
&lt;br /&gt;
n is a number to represent the font. The current standard for font usage is: &lt;br /&gt;
 &lt;br /&gt;
  0 represents a normal size font&lt;br /&gt;
  1 represents a compressed or narrow font&lt;br /&gt;
  2 represents a expanded or wide font&lt;br /&gt;
&lt;br /&gt;
font is the name of an existing Windows font &lt;br /&gt;
&lt;br /&gt;
height is the character height specified in points &lt;br /&gt;
&lt;br /&gt;
chars per inch is the desired number of chars per inch &lt;br /&gt;
&lt;br /&gt;
weight is the heaviness of the font (range=0-1000, normal=400) &lt;br /&gt;
&lt;br /&gt;
'''Examples:''' &lt;br /&gt;
&lt;br /&gt;
; for printers not listed separately&lt;br /&gt;
 Font-0 = Courier New, 12, 10, 400&lt;br /&gt;
 Font-1 = Courier New, 12, 17, 400&lt;br /&gt;
 Font-2 = Courier New, 12, 6, 400&lt;br /&gt;
  &lt;br /&gt;
; for HP LaserJet 4 only&lt;br /&gt;
 HP LaserJet 4 Font-0 = Courier, 12, 10, 400&lt;br /&gt;
 &lt;br /&gt;
Some printers may not give the desired results with any of the available Windows fonts. If this should be the case, there are two options available: &lt;br /&gt;
&lt;br /&gt;
Configure the Windows printer using the supplied &amp;quot;Generic&amp;quot; printer driver available when setting up your printer. Because generic printers are &amp;quot;text only&amp;quot; printers, Windows will not attempt to load any fonts to the printer, resulting in the printer using whatever font (or other settings) set by the factory or the front panel. &lt;br /&gt;
Use the raw mode described earlier in this document. &lt;br /&gt;
 &lt;br /&gt;
'''Driver Event Servers (DES)'''&lt;br /&gt;
 &lt;br /&gt;
When using a Comet printer that is configured to operate in &amp;quot;cooked&amp;quot; mode, the printer can be enabled to generate pre-printed pages for an existing MTB application. Specifying a Driver Event Server program in the configuration enables this feature. &lt;br /&gt;
&lt;br /&gt;
A Driver Event Server (DES) is nothing more than an MTB subprogram that is &amp;quot;entered&amp;quot; transparently to the user program. Once in control, the DES program can access the printer and perform various operations to prepare a page for printing by the user application. &lt;br /&gt;
&lt;br /&gt;
As is implied by its name, a DES is entered only in response to certain printer events. Currently those events supported are: Initialization (just after the printer has been opened), NewPage (before a form feed), and Shutdown (just before the printer is closed). &lt;br /&gt;
&lt;br /&gt;
The following example shows how a DES can be included in your Comet .INI configuration file: &lt;br /&gt;
 &lt;br /&gt;
Printer = LPW, W, N, , HP LaserJet 4, PWMARK,;&lt;br /&gt;
&lt;br /&gt;
The DES program in this example is named PWMARK.OBJ. Note that the .OBJ extension is not specified in the configuration syntax. Sample DES programs can be found in the Comet demonstration directory for Windows (DMW), which is available, along with the required WDL directory, at the Signature Systems web site. &lt;br /&gt;
&lt;br /&gt;
The following sample DES programs are currently available: &lt;br /&gt;
&lt;br /&gt;
 PWMARK (source #PWMARK) draws a water mark on each page &lt;br /&gt;
 PFORM (source #PFORM) generates a sample invoice form &lt;br /&gt;
 PFONT N/C/E (source #PTRFNT)&lt;br /&gt;
                                                                                                                             .&lt;br /&gt;
 Each selects one of the system fonts as follows:&lt;br /&gt;
                                                                                                                             .&lt;br /&gt;
 N = System font 0 (normal print)&lt;br /&gt;
 C = System font 1 (compressed [narrow] print)&lt;br /&gt;
 E = System font 2 (expanded [wide] print)&lt;br /&gt;
&lt;br /&gt;
See below for information about the HTMLPTR and EXTPRE driver event servers.&lt;br /&gt;
&lt;br /&gt;
'''Form feeds and &amp;quot;raw&amp;quot; printers'''&lt;br /&gt;
&lt;br /&gt;
Here a &amp;quot;workaround&amp;quot; solution to a problem that can happen when you print to &amp;quot;raw&amp;quot; printers under Comet98 and Comet2000. The problem has to do with the suppression of initial form feeds and the assumptions made by some existing MTB applications. Here's some background information. &lt;br /&gt;
&lt;br /&gt;
When you print to a regular (non-raw) printer, there is no form feed problem because Windows ejects a job when it's done, even if your program does not include a final form feed. However, when you print to a &amp;quot;raw&amp;quot; printer, there can be a problem. The WINPRINT.DDL required by all type &amp;quot;W&amp;quot; printers suppresses the initial form feed. For programs that don't include a final form feed, his can cause multiple print jobs to run together (i.e., the second job prints on the final page of the first job, etc.). &lt;br /&gt;
&lt;br /&gt;
Signature Systems solved the problem by writing a small Driver Event Server (DES) program that you can include in the configuration for your raw printers. The DES program is named FFCLOSE.OBJ and it simply issues a form feed every time it detects a non-trivial close of a printer. To configure this option, place the DES program name in the field following the Windows printer name in the configuration .INI file, as shown in this example: &lt;br /&gt;
 &lt;br /&gt;
Printer = LP1, W, N, , HP Laserjet 4:RAW, FFCLOSE,;&lt;br /&gt;
 &lt;br /&gt;
The FFCLOSE.OBJ program is included in the REL directory starting with release 99.01.&lt;br /&gt;
&lt;br /&gt;
'''Cascading Printers'''&lt;br /&gt;
 &lt;br /&gt;
'''Note:''' Beginning with Comet release .344, cascading printers are no longer required to handle an unavailble printer (E31) configured as type &amp;quot;W&amp;quot;, &amp;quot;H&amp;quot;, &amp;quot;T&amp;quot;, or &amp;quot;P&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Here is a useful method for configuring Windows printers in Comet. The method allows a user to open a printer and, if that printer is not available, have Comet automatically redirect the output to another configured printer. If you configure a number of printers this way, the user's request can &amp;quot;cascade&amp;quot; from one printer to the next until Comet finds an available printer. &lt;br /&gt;
&lt;br /&gt;
The third parameter in the PRINTER= segment title defines the spooling characteristics of the printer. If you choose E (exception) and then attempt to print to a printer that's either busy or unavailable, your job will be redirected to the spooler or printer listed in the fourth parameter.&lt;br /&gt;
&lt;br /&gt;
'''For example:'''&lt;br /&gt;
&lt;br /&gt;
Printer = LP1,W,E,LP2,HP LASERJET 4:RAW,,;&lt;br /&gt;
 &lt;br /&gt;
If a user gets an open exception on LP1, their job is redirected to LP2. &lt;br /&gt;
&lt;br /&gt;
This type of configuration lets you create a &amp;quot;bank&amp;quot; of printers that can cascade from one to the next if necessary. This is a great way to configure CometAnywhere printers. Let's say you have a single printer configured for your remote users, as follows: &lt;br /&gt;
 &lt;br /&gt;
Printer = L10,W,N,,#:RAW,,;&lt;br /&gt;
&lt;br /&gt;
As you can see, the printer named L10 is a non-spooling printer. The # symbol indicates that output will be sent to the remote user's printer.&lt;br /&gt;
&lt;br /&gt;
But, what happens if more than one remote user tries to open L10 at the same time? Because it's a non-spooling printer, the additional users would have a problem.&lt;br /&gt;
&lt;br /&gt;
Here's how to solve that problem. Configure a series of cascading printers beginning with L10: &lt;br /&gt;
&lt;br /&gt;
 Printer = L10,W,E,L11,#:RAW,,;  &lt;br /&gt;
 Printer = L11,W,E,L12,#:RAW,,;  &lt;br /&gt;
 Printer = L12,W,E,L13,#:RAW,,;  &lt;br /&gt;
 Printer = L13,W,E,L14,#:RAW,,;  &lt;br /&gt;
 Printer = L14,W,E,L15,#:RAW,,;  &lt;br /&gt;
 Printer = L15,W,E,L16,#:RAW,,;  &lt;br /&gt;
 Printer = L16,W,E,L17,#:RAW,,;  &lt;br /&gt;
 Printer = L17,W,E,L18,#:RAW,,;  &lt;br /&gt;
 Printer = L18,W,E,L19,#:RAW,,;  &lt;br /&gt;
 Printer = L19,W,E,L20,#:RAW,,;  &lt;br /&gt;
 Printer = L20,W,N,   ,#:RAW,,;&lt;br /&gt;
 &lt;br /&gt;
All of the CometAnywhere users could specify L10, and the system would print to the first available printer on the above list. If all CometAnywhere users tried to use L10 at the same time, each user's output would be redirected to the next available printer on the cascade list.&lt;br /&gt;
&lt;br /&gt;
For planning purposes, you should configure the same number of cascading printers as the number of simultaneous CometAnywhere remote users. That way, you won't run out of available printers. &lt;br /&gt;
&lt;br /&gt;
'''HTML and Text Printers'''&lt;br /&gt;
&lt;br /&gt;
Starting with Comet2000 Build 291 and REL version 01.04, you can configure HTML and text printers. When an MTB program prints to one of these virtual printers, the output is written to a temporary file in the $(catemp) directory and that file is then launched. If it’s an HTML file, the output is displayed in your default web browser (e.g., Explorer, Navigator). If it’s a text file, the output is displayed in your default text editor (e.g., Notepad).&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
&lt;br /&gt;
HTML and text printers support text output, including the (CR), (LF) and (FF) mnemonics, but do not support the Windows enhanced printing features (e.g., text and font functions, graphics and drawing functions).&lt;br /&gt;
&lt;br /&gt;
When printing to an HTML or text printer from a Comet node, you can print from a foreground or background partition. However, when printing to an HTML or text printer from a CometAnywhere remote system, you can only print from a foreground partition (namely, your own session).&lt;br /&gt;
&lt;br /&gt;
'''Configuration information'''&lt;br /&gt;
&lt;br /&gt;
·         To configure an HTML printer, specify the printer type as H, the spool-type as N, the device name as HTM, and the DES program as HTMLPTR.&lt;br /&gt;
&lt;br /&gt;
For example, suppose you want to configure an HTML printer named LPH. Here’s the printer configuration command:&lt;br /&gt;
&lt;br /&gt;
Printer = LPH,H,N,,HTM,HTMLPTR,;&lt;br /&gt;
&lt;br /&gt;
·         To configure a text printer, specify the printer type as X, the spool-type as N, the device name as TXT, and the DES program as EXTPTR.&lt;br /&gt;
&lt;br /&gt;
For example, suppose you want to configure a text printer named LPT. Here’s the printer configuration command:&lt;br /&gt;
&lt;br /&gt;
Printer = LPT,X,N,,TXT,EXTPTR,;&lt;br /&gt;
&lt;br /&gt;
'''Implementation Notes'''&lt;br /&gt;
&lt;br /&gt;
HTML and text printers rely on the interaction between the specified DES program and the Comet2000 printer driver. In order to create a valid HTML document, a minimal number of HTML tags must be added to the output. These additions happen (1) before the user’s program outputs any data, (2) each time the user’s program issues a form feed, and (3) when the user’s program closes the printer. Here are the tags that are added by HTMLPTR driver event server program.&lt;br /&gt;
&lt;br /&gt;
             Before the user’s program outputs any data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HTML&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HEAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TITLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output from program-name,directory – Comet 2000 version HTMLPTR version&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/TITLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/HEAD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BODY&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each time the user’s program issues a form feed&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;HR WIDTH=100%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the user’s program closes the printer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/BODY&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/HTML&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important note'''&lt;br /&gt;
&lt;br /&gt;
If your printed output contains imbedded HTML commands, or characters that are reserved characters in HTML (such as the &amp;lt; and &amp;gt; symbols), these characters are interpreted by the browser the same as all other HTML documents (i.e., the Comet printer driver does not filter imbedded HTML characters). For example, if you print an MTB source program to an HMTL printer, and that source program contains in-line HTML commands (e.g., an eComet source program), the browser will interpret the HTML commands. To avoid this problem when printing Comet output that contains imbedded HTML, use a text printer and the EXTPTR driver event server.&lt;br /&gt;
&lt;br /&gt;
When printing to a text printer, the EXTPTR driver event server adds a line of dashes each time the user’s program issues a form feed. Nothing else is added to the output.&lt;br /&gt;
&lt;br /&gt;
The Comet Utility Source Subset library (XTL directory, starting with version 01.01) contains the source code for HTMLPTR and EXTPTR. If you want to customize your HTML printer output (by adding a background color or image to the &amp;lt;BODY&amp;gt; tag, for example), you can modify and recompile the appropriate DES program.&lt;br /&gt;
&lt;br /&gt;
When an HTML or text printer is closed, the DES program launches the temporary document.&lt;br /&gt;
&lt;br /&gt;
Prior to Comet 2005, each time you print to a type H or type X printer, Comet created a temporary file in the $(catemp) directory. If you want to save one of these temporary files to a more permanent location, you could use the “Save As” feature in your browser or text editor. Beginning in Comet 2005, you may use the (Document = FileName$, Dir$) mnemonic to specify the name and location of the file.&lt;br /&gt;
&lt;br /&gt;
PDF Printers&lt;br /&gt;
 &lt;br /&gt;
Beginning with Comet 2005 you can output to a pdf printer. You will need to have a pdf printer driver, either Adobe Acrobat or pdfFactory, installed on your system.&lt;br /&gt;
&lt;br /&gt;
You configure your pdf printer as a type &amp;quot;P&amp;quot; printer:&lt;br /&gt;
&lt;br /&gt;
Printer = LP5,P,N,,pdfFactory,,;  &lt;br /&gt;
 &lt;br /&gt;
This printer is non-spooling and output will be directed to the pdfFactory printer.&lt;br /&gt;
&lt;br /&gt;
By default, the document will be assigned a name and created in the folder specified in the printer's properties. Optionally, you can assign the document's name and the Comet directory in which it will be created by using the (Document = FileName$, Dir$) mnemonic. When this mnemonic is used, the document is first created in the folder specified in the printer's properties. Then, when the printer is closed, the document is copied to the Comet directory. You may send this mnemonic multiple times to create several uniquely named copies of the document.&lt;br /&gt;
&lt;br /&gt;
Depending on whether you are using pdfFactory or Adobe Acrobat, Comet requires specific printer settings. From the Control Panel, select the printer's properties, then &amp;quot;Printing Preferences&amp;quot;. For Adobe Acrobat, be sure the check box for &amp;quot;prompt for pdf filename&amp;quot; is unchecked. If you wish documents to launch automatically when printed, you may check the &amp;quot;view Adobe pdf results&amp;quot; check box. We have also found that checking &amp;quot;Enable advanced printing features&amp;quot; on the &amp;quot;Advanced&amp;quot; tab of the &amp;quot;Properties&amp;quot; dialog speeds up the document generation process considerably. For pdfFactory, be sure the radio button for &amp;quot;save the file in the AutoSave folder&amp;quot; is selected. When using pdfFactory, documents must be launched manually or you may associate the DES program, ViewDoc, with the printer. This will cause the document to launch when the printer is closed.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Introduction_to_the_Comet_Security_System</id>
		<title>Introduction to the Comet Security System</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Introduction_to_the_Comet_Security_System"/>
				<updated>2018-09-27T13:37:24Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction to the Comet Security System''' &lt;br /&gt;
&lt;br /&gt;
The Comet Security System provides password sign-on security for Comet systems. These features are implemented through the standard QMONITOR program included with Comet Version 502 and above, and through the SECURITY utility program contained in the UTL directory of a standard Comet release.&lt;br /&gt;
 &lt;br /&gt;
This documentation is intended for system managers who will be installing and maintaining the Comet security system. We have tried to keep the information in this document as clear as possible, but if you should have questions about any information in this document, we recommend calling your authorized Signature Systems dealer before proceeding. &lt;br /&gt;
&lt;br /&gt;
The standard QMONITOR program included with Comet release contains password security options. The security options are activated simply by running the SECURITY utility program. The following chart lists the differences between the security and non-security implementations of QMONITOR. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;lt;B&amp;gt;Non-security implementation&amp;lt;/B&amp;gt;  &lt;br /&gt;
|&amp;lt;B&amp;gt;Security implementation&amp;lt;/B&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|No password required at sign-on  &lt;br /&gt;
|Password required at sign-on  &lt;br /&gt;
|-&lt;br /&gt;
|Automatic access to all Comet directories  &lt;br /&gt;
|Restricted access to directories (controlled by directory list in individual's password record)  &lt;br /&gt;
|-&lt;br /&gt;
|Ability to use the ACCESS command at the READY prompt  &lt;br /&gt;
|Optional ability to use the ACCESS command at the READY prompt (controlled by flag in individual's password record)  &lt;br /&gt;
|-&lt;br /&gt;
|System always runs QMONITOR  &lt;br /&gt;
|System runs QMONITOR or specific user program (if program name is contained in individual's password record)  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The security options in QMONITOR make use of a system password file. Each record in this file contains the user's name, password, directory list, program-to-run, and ACCESS command flag. &lt;br /&gt;
&lt;br /&gt;
When a user signs on to a password-secured Comet system, they enter their assigned password and QMONITOR reads the information from their password record to create their list of accessed Comet directories. Thus, each person's password may contain an individual list of up to 50 directories, one of the best ways to prohibit access to security-sensitive files and programs. &lt;br /&gt;
&lt;br /&gt;
If the user's password record contains the name of a program to be run, the user will be taken immediately to that program (an application menu, for example) and they will not see the familiar READY prompt of the QMONITOR program. And, in the course of using the Comet system, that user will always be returned to the program listed in their password record, not to the QMONITOR READY prompt. (Note, however, that if no program name is listed in the user's password record, they will proceed to the QMONITOR program all the time.) &lt;br /&gt;
&lt;br /&gt;
Another option in the user's password is a flag indicating whether or not the person will be allowed to use the ACCESS command at the READY prompt of QMONITOR. If the flag is turned on, the user will be permitted to access additional Comet directories from the READY prompt. If the flag is turned off, the user will not be permitted to access other Comet directories. &lt;br /&gt;
&lt;br /&gt;
The system password file is created and maintained with the SECURITY program. This program provides options for naming the system password file; adding, changing, deleting,and printing password records; and renaming the system password file. &lt;br /&gt;
&lt;br /&gt;
Note: Since the name of the system password file is itself contained in a data file, the filename can be changed at any time without having to change the QMONITOR program. In fact, the QMONITOR program never needs to be re-compiled in order to implement the Comet security system. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following file is created by the Comet security system: &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Filename  &lt;br /&gt;
|Directory  &lt;br /&gt;
|Description  &lt;br /&gt;
|-&lt;br /&gt;
|QSTART2  &lt;br /&gt;
|COS  &lt;br /&gt;
|Contains the name of the system password file and a list of the users currently signed onto the system  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition, a user-defined password file name is created on a Comet directory specified by the user. This file is named (or renamed) via the SECURITY program.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Introduction_to_the_Comet_Security_System</id>
		<title>Introduction to the Comet Security System</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Introduction_to_the_Comet_Security_System"/>
				<updated>2018-09-27T13:34:41Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction to the Comet Security System''' &lt;br /&gt;
&lt;br /&gt;
The Comet Security System provides password sign-on security for Comet systems. These features are implemented through the standard QMONITOR program included with Comet Version 502 and above, and through the SECURITY utility program contained in the UTL directory of a standard Comet release.&lt;br /&gt;
 &lt;br /&gt;
This documentation is intended for system managers who will be installing and maintaining the Comet security system. We have tried to keep the information in this document as clear as possible, but if you should have questions about any information in this document, we recommend calling your authorized Signature Systems dealer before proceeding. &lt;br /&gt;
&lt;br /&gt;
The standard QMONITOR program included with Comet release contains password security options. The security options are activated simply by running the SECURITY utility program. The following chart lists the differences between the security and non-security implementations of QMONITOR. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;lt;B&amp;gt;Non-security implementation&amp;lt;/B&amp;gt;  &lt;br /&gt;
|&amp;lt;B&amp;gt;Security implementation&amp;lt;/B&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|No password required at sign-on  &lt;br /&gt;
|Password required at sign-on  &lt;br /&gt;
|-&lt;br /&gt;
|Automatic access to all Comet directories  &lt;br /&gt;
|Restricted access to directories (controlled by directory list in individual's password record)  &lt;br /&gt;
|-&lt;br /&gt;
|Ability to use the ACCESS command at the READY prompt  &lt;br /&gt;
|Optional ability to use the ACCESS command at the READY prompt (controlled by flag in individual's password record)  &lt;br /&gt;
|-&lt;br /&gt;
|System always runs QMONITOR  &lt;br /&gt;
|System runs QMONITOR or specific user program (if program name is contained in individual's password record)  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The security options in QMONITOR make use of a system password file. Each record in this file contains the user's name, password, directory list, program-to-run, and ACCESS command flag. &lt;br /&gt;
&lt;br /&gt;
When a user signs on to a password-secured Comet system, they enter their assigned password and QMONITOR reads the information from their password record to create their list of accessed Comet directories. Thus, each person's password may contain an individual list of directories, one of the best ways to prohibit access to security-sensitive files and programs. &lt;br /&gt;
&lt;br /&gt;
If the user's password record contains the name of a program to be run, the user will be taken immediately to that program (an application menu, for example) and they will not see the familiar READY prompt of the QMONITOR program. And, in the course of using the Comet system, that user will always be returned to the program listed in their password record, not to the QMONITOR READY prompt. (Note, however, that if no program name is listed in the user's password record, they will proceed to the QMONITOR program all the time.) &lt;br /&gt;
&lt;br /&gt;
Another option in the user's password is a flag indicating whether or not the person will be allowed to use the ACCESS command at the READY prompt of QMONITOR. If the flag is turned on, the user will be permitted to access additional Comet directories from the READY prompt. If the flag is turned off, the user will not be permitted to access other Comet directories. &lt;br /&gt;
&lt;br /&gt;
The system password file is created and maintained with the SECURITY program. This program provides options for naming the system password file; adding, changing, deleting,and printing password records; and renaming the system password file. &lt;br /&gt;
&lt;br /&gt;
Note: Since the name of the system password file is itself contained in a data file, the filename can be changed at any time without having to change the QMONITOR program. In fact, the QMONITOR program never needs to be re-compiled in order to implement the Comet security system. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following file is created by the Comet security system: &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Filename  &lt;br /&gt;
|Directory  &lt;br /&gt;
|Description  &lt;br /&gt;
|-&lt;br /&gt;
|QSTART2  &lt;br /&gt;
|COS  &lt;br /&gt;
|Contains the name of the system password file and a list of the users currently signed onto the system  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition, a user-defined password file name is created on a Comet directory specified by the user. This file is named (or renamed) via the SECURITY program.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Introduction_to_the_Comet_Security_System</id>
		<title>Introduction to the Comet Security System</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Introduction_to_the_Comet_Security_System"/>
				<updated>2018-09-27T13:33:39Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction to the Comet Security System''' &lt;br /&gt;
&lt;br /&gt;
The Comet Security System provides password sign-on security for Comet systems. These features are implemented through the standard QMONITOR program included with Comet Version 502 and above, and through the SECURITY utility program contained in the UTL directory of a standard Comet release.&lt;br /&gt;
 &lt;br /&gt;
This documentation is intended for system managers who will be installing and maintaining the Comet security system. We have tried to keep the information in this document as clear as possible, but if you should have questions about any information in this document, we recommend calling your authorized Signature Systems dealer before proceeding. &lt;br /&gt;
&lt;br /&gt;
The standard QMONITOR program included with Comet release contains password security options. The security options are activated simply by running the SECURITY utility program. The following chart lists the differences between the security and non-security implementations of QMONITOR. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;lt;B&amp;gt;Non-security implementation&amp;lt;/B&amp;gt;  &lt;br /&gt;
|&amp;lt;B&amp;gt;Security implementation&amp;lt;/B&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|No password required at sign-on  &lt;br /&gt;
|Password required at sign-on  &lt;br /&gt;
|-&lt;br /&gt;
|Automatic access to all Comet directories  &lt;br /&gt;
|Restricted access to directories (controlled by directory list in individual's password record)  &lt;br /&gt;
|-&lt;br /&gt;
|Ability to use the ACCESS command at the READY prompt  &lt;br /&gt;
|Optional ability to use the ACCESS command at the READY prompt (controlled by flag in individual's password record)  &lt;br /&gt;
|-&lt;br /&gt;
|System always runs QMONITOR  &lt;br /&gt;
|System runs QMONITOR or specific user program (if program name is contained in individual's password record)  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The security options in QMONITOR make use of a system password file. Each record in this file contains the user's name, password, directory list, program-to-run, and ACCESS command flag. &lt;br /&gt;
&lt;br /&gt;
When a user signs on to a password-secured Comet system, they enter their assigned password and QMONITOR reads the information from their password record to create their list of accessed Comet directories. Thus, each person's password may contain an individual list of directories, one of the best ways to prohibit access to security-sensitive files and programs. &lt;br /&gt;
&lt;br /&gt;
If the user's password record contains the name of a program to be run, the user will be taken immediately to that program (an application menu, for example) and they will not see the familiar READY prompt of the QMONITOR program. And, in the course of using the Comet system, that user will always be returned to the program listed in their password record, not to the QMONITOR READY prompt. (Note, however, that if no program name is listed in the user's password record, they will proceed to the QMONITOR program all the time.) &lt;br /&gt;
&lt;br /&gt;
Another option in the user's password is a flag indicating whether or not the person will be allowed to use the ACCESS command at the READY prompt of QMONITOR. If the flag is turned on, the user will be permitted to access additional Comet directories from the READY prompt. If the flag is turned off, the user will not be permitted to access other Comet directories. &lt;br /&gt;
&lt;br /&gt;
The system password file is created and maintained with the SECURITY program. This program provides options for naming the system password file; adding, changing, deleting,and printing password records; and renaming the system password file. &lt;br /&gt;
&lt;br /&gt;
Note: Since the name of the system password file is itself contained in a data file, the filename can be changed at any time without having to change the QMONITOR program. In fact, the QMONITOR program never needs to be re-compiled in order to implement the Comet security system. &lt;br /&gt;
&lt;br /&gt;
An additional utility program is included with the release. This program lets you convert a password file from Qantel format to Comet format. The program name is SECQ2C. &lt;br /&gt;
&lt;br /&gt;
The following file is created by the Comet security system: &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Filename  &lt;br /&gt;
|Directory  &lt;br /&gt;
|Description  &lt;br /&gt;
|-&lt;br /&gt;
|QSTART2  &lt;br /&gt;
|COS  &lt;br /&gt;
|Contains the name of the system password file and a list of the users currently signed onto the system  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition, a user-defined password file name is created on a Comet directory specified by the user. This file is named (or renamed) via the SECURITY program.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2018-09-20T21:41:08Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* How can I get the latest license certificate for my security token? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What options can be set in the #XAP file?==&lt;br /&gt;
&lt;br /&gt;
CLOSE&amp;lt;br&amp;gt;&lt;br /&gt;
The CLOSE command tells Comet to stop listening on the XAP gateway (in effect, resetting&lt;br /&gt;
the gateway).&lt;br /&gt;
&lt;br /&gt;
LOGFILE pathname[,cycle | ,erase]&amp;lt;br&amp;gt;&lt;br /&gt;
The cycle option keeps up to 7 generations of the log file.&lt;br /&gt;
&lt;br /&gt;
LISTEN port-number&amp;lt;br&amp;gt;&lt;br /&gt;
Specifies the port for XAP to listen on. Port 80 will be used by default.&lt;br /&gt;
&lt;br /&gt;
USEWIN&amp;lt;br&amp;gt;&lt;br /&gt;
This will direct XAP to use direct Windows calls rather than going through the file server. The default is to use the file server. Logging however always uses Windows calls because of stack space limitations.&lt;br /&gt;
&lt;br /&gt;
EXPIRE xT[,ProgramName]&amp;lt;br&amp;gt;&lt;br /&gt;
This is used to set the expiration date for an eComet Context cookie. x is number; T is M|D|H, (for example 5M for 5 minutes); optional ProgramName is program to run when a new cookie is created (for example a relogin program). Without ProgramName, the normal XAP program is run with ClearCommon. Previously cookies expired only when the browser was closed. Now the cookies are persistent. Without the EXPIRE command cookies will be session cookies as they were before this enhancement. You can delete a cookie by setting an expiration date in the past.&lt;br /&gt;
&lt;br /&gt;
TRACE&amp;lt;br&amp;gt;&lt;br /&gt;
Turns on the Comet32 TRACE window you'd get if you said TRACE ON in your IB program.&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecSrv utility with Comet32.  In addition to doing certificate retrieval, it will also list all currently connected users along with their local IP addresses and tell you how long they have been connected.  For Comet16 users you can use the older utility, SecLic.  This requires that you have configured a WinSock gateway.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, just set ForceC32 = 1 in your CosWGlob.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if a program was compiled for Comet16 or Comet32?==&lt;br /&gt;
There are several ways.&lt;br /&gt;
* CometExplorer's TYPE column indicates the type of object file: C16 Program, C32 Program, or C32M Program (Comet Mobile)&lt;br /&gt;
* When you run a program in Comet32 a colored block on the window's status line indicates the type of program: purple for Comet16; green for Comet32&lt;br /&gt;
* From inside your program you can use FSTAT on an object file to determine if it was compiled for Comet16 or Comet32.  Look in position 135 [[http://wiki.signature.net/index.php/IB_Statements/fstat]] &lt;br /&gt;
* PSTAT can also be used to check the type of a program that's currently running.  Look in position 219 [[http://wiki.signature.net/index.php/IB_Statements/pstat]]&lt;br /&gt;
* If you attempt to run a Comet32 program in Comet16 you will get an Error 63.&lt;br /&gt;
&lt;br /&gt;
==Can I use the Comet16 compiler on a 64-bit computer?==&lt;br /&gt;
No, you can only run the Comet16 compiler from a computer that can run Comet16.  When compiling from UltraEdit, either the Comet16 compiler or the Comet32 compiler will be launched depending on the version of Comet currently running on the host computer.  So, on a 32-bit computer you can compile with either the Comet16 compiler or the Comet32 compiler, but on a 64-bit computer you can only compile with the Comet32 compiler.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2018-09-20T19:15:00Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* FAQs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What options can be set in the #XAP file?==&lt;br /&gt;
&lt;br /&gt;
CLOSE&amp;lt;br&amp;gt;&lt;br /&gt;
The CLOSE command tells Comet to stop listening on the XAP gateway (in effect, resetting&lt;br /&gt;
the gateway).&lt;br /&gt;
&lt;br /&gt;
LOGFILE pathname[,cycle | ,erase]&amp;lt;br&amp;gt;&lt;br /&gt;
The cycle option keeps up to 7 generations of the log file.&lt;br /&gt;
&lt;br /&gt;
LISTEN port-number&amp;lt;br&amp;gt;&lt;br /&gt;
Specifies the port for XAP to listen on. Port 80 will be used by default.&lt;br /&gt;
&lt;br /&gt;
USEWIN&amp;lt;br&amp;gt;&lt;br /&gt;
This will direct XAP to use direct Windows calls rather than going through the file server. The default is to use the file server. Logging however always uses Windows calls because of stack space limitations.&lt;br /&gt;
&lt;br /&gt;
EXPIRE xT[,ProgramName]&amp;lt;br&amp;gt;&lt;br /&gt;
This is used to set the expiration date for an eComet Context cookie. x is number; T is M|D|H, (for example 5M for 5 minutes); optional ProgramName is program to run when a new cookie is created (for example a relogin program). Without ProgramName, the normal XAP program is run with ClearCommon. Previously cookies expired only when the browser was closed. Now the cookies are persistent. Without the EXPIRE command cookies will be session cookies as they were before this enhancement. You can delete a cookie by setting an expiration date in the past.&lt;br /&gt;
&lt;br /&gt;
TRACE&amp;lt;br&amp;gt;&lt;br /&gt;
Turns on the Comet32 TRACE window you'd get if you said TRACE ON in your IB program.&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecLic utility.  This requires a WinSock gateway in your configuration.  If you are running Comet32, SecLic has been replaced by SecSrv.  The WinSock gateway is automatically configured for you in Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, just set ForceC32 = 1 in your CosWGlob.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if a program was compiled for Comet16 or Comet32?==&lt;br /&gt;
There are several ways.&lt;br /&gt;
* CometExplorer's TYPE column indicates the type of object file: C16 Program, C32 Program, or C32M Program (Comet Mobile)&lt;br /&gt;
* When you run a program in Comet32 a colored block on the window's status line indicates the type of program: purple for Comet16; green for Comet32&lt;br /&gt;
* From inside your program you can use FSTAT on an object file to determine if it was compiled for Comet16 or Comet32.  Look in position 135 [[http://wiki.signature.net/index.php/IB_Statements/fstat]] &lt;br /&gt;
* PSTAT can also be used to check the type of a program that's currently running.  Look in position 219 [[http://wiki.signature.net/index.php/IB_Statements/pstat]]&lt;br /&gt;
* If you attempt to run a Comet32 program in Comet16 you will get an Error 63.&lt;br /&gt;
&lt;br /&gt;
==Can I use the Comet16 compiler on a 64-bit computer?==&lt;br /&gt;
No, you can only run the Comet16 compiler from a computer that can run Comet16.  When compiling from UltraEdit, either the Comet16 compiler or the Comet32 compiler will be launched depending on the version of Comet currently running on the host computer.  So, on a 32-bit computer you can compile with either the Comet16 compiler or the Comet32 compiler, but on a 64-bit computer you can only compile with the Comet32 compiler.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Main_Page"/>
				<updated>2018-09-20T19:11:50Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet by Signature Systems, Inc. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Comet by Signature Systems, Inc.'''=&lt;br /&gt;
&lt;br /&gt;
* [[Getting Started With Comet]]&lt;br /&gt;
&lt;br /&gt;
* [[Subscription Benefits]]&lt;br /&gt;
&lt;br /&gt;
* [[Virtual Dongle]]&lt;br /&gt;
&lt;br /&gt;
* [[FAQs]]&lt;br /&gt;
&lt;br /&gt;
* [[CFILES - the replacement for DbMgr]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet Meetings]]&lt;br /&gt;
&lt;br /&gt;
* [[Configuration and Installation]]&lt;br /&gt;
&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet32]]&lt;br /&gt;
&lt;br /&gt;
* [[STL Containers]]&lt;br /&gt;
&lt;br /&gt;
* [[Xap and Comet32]]&lt;br /&gt;
&lt;br /&gt;
* [[CometAnywhere Mobile]]&lt;br /&gt;
&lt;br /&gt;
* [[Products]]&lt;br /&gt;
&lt;br /&gt;
* [[Utilities]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet Tips]]&lt;br /&gt;
&lt;br /&gt;
* [http://support.signature.net/ Support - Users Forum]&lt;br /&gt;
&lt;br /&gt;
* [[How to edit this Wiki]]&lt;br /&gt;
&lt;br /&gt;
* '''[http://cc.signature.net/guest/adduser Request ability to edit pages on this Wiki]'''&lt;br /&gt;
&lt;br /&gt;
*[[Comet And RDP]]&lt;br /&gt;
&lt;br /&gt;
A hint from the old guy. The Wiki's text size is based on the browser's settings. In '''Firefox''' I set the minimum font size to 16.&lt;br /&gt;
&lt;br /&gt;
Tools &amp;gt;&amp;gt; Options &amp;gt;&amp;gt; Content &amp;gt;&amp;gt; Advanced. Minimum font size.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Subscription_Benefits</id>
		<title>Subscription Benefits</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Subscription_Benefits"/>
				<updated>2018-08-08T13:43:24Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Benefits of being a Comet Subscriber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if you are not a current subscriber to the Comet Software, most of your core applications will continue to work. However, Signature Systems continually improves its software and adds new features to the Comet System. These features are mainly available to current Comet Subscribers only. &lt;br /&gt;
=Benefits of being a Comet Subscriber=&lt;br /&gt;
&lt;br /&gt;
*Entitled to all updates made to existing products during the subscription year&lt;br /&gt;
*Free COM license for each Comet license. This license is required for:&lt;br /&gt;
**CometExplorer&lt;br /&gt;
**(CopyFile) mnemonic through the file server.  Without a COM license CopyFile is done directly with Windows calls which requires the client to have Windows access to the source and destination folders.  This could require you to purchase additional Client Access Licenses from Microsoft.&lt;br /&gt;
**(Document=) mnemonic.  This mnemonic is used by features of the email printer, the pdf printer, and DocMgr.&lt;br /&gt;
**The DataExpress version of the Reporter.&lt;br /&gt;
**CB, the CometAnywhere File Transfer Utility&lt;br /&gt;
*Protection against the loss of Comet access because of theft or verifiable loss of the security module. We will replace the usb plug and Comet licenses immediately, at no charge to the subscriber. Comet users who are not subscribers must rely on their business insurance to replace their system by completely repurchasing Comet at current prices. The expense and delay could far outweigh the cost of the subscription.&lt;br /&gt;
*Priority access to the technical support staff.&lt;br /&gt;
*The convenience of being able to apply CometAnywhere licenses to any version of the CometAnywhere host.  This can be especially useful at subscription time.  When new CometAnywhere licenses are issued you may continue to run an older version of Comet on the host until it is convenient for you to install the upgrade.&lt;br /&gt;
*Free ODBC/mySQL licenses for each Comet license.&lt;br /&gt;
*Use of the CometAnywhere Mobile API for developing IB programs that run on the Apple iPad and iPhone.&lt;br /&gt;
&lt;br /&gt;
==These benefits expire at the end of the subscription period.==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Glossary_of_Terms</id>
		<title>Glossary of Terms</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Glossary_of_Terms"/>
				<updated>2018-05-01T21:30:42Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Glossary of Files and Terms'''&lt;br /&gt;
&lt;br /&gt;
'''CapiServ.dll''' - A library of support routines for communication with external applications &lt;br /&gt;
&lt;br /&gt;
'''CasMonitor.exe''' - Provides a mechanism to configure the &amp;quot;CometAsService&amp;quot; service startup parameters. It also monitors the state of the service and allows the user to start and/or stop the service. &lt;br /&gt;
&lt;br /&gt;
'''CAUPD.exe''' - A self-extracting zip file containing CosUpd.exe, CosW.exe, CosP.exe, DIBAPI32.dll, and Update.dat to update software used by Comet Anywhere clients. This has been replaced by CAUpdate.exe beginning with Comet 2005. &lt;br /&gt;
&lt;br /&gt;
'''CAUpdate.exe''' - A self-extracting zip file containing Comet.exe, CosW.exe, CosP.exe, CometLib.dll, and DIBAPI32.dll to update software used by Comet Anywhere clients. This has been replaced by the recommendation to run a full Comet install for your CometAnywhere clients.&lt;br /&gt;
&lt;br /&gt;
'''CbSetup.exe''' - An installation program for the drivers required to locate your USB dongle. You need not run this program directly. It will be run automatically for you by CometServerProducts.exe. &lt;br /&gt;
&lt;br /&gt;
'''CbUSB.exe''' - A diagnostic utility to test for the presence and validity of your USB dongle &lt;br /&gt;
&lt;br /&gt;
'''CFAM.exe''' - The module which handles communications between your Comet application and its file server, whether local or remote &lt;br /&gt;
&lt;br /&gt;
'''CFAMNetServe.exe''' - The Comet client/server communication manager. It provides remote connectivity to CFileSrv for CFAM clients. &lt;br /&gt;
&lt;br /&gt;
'''CFileSrv.exe''' - The Comet file server for Windows operating systems &lt;br /&gt;
&lt;br /&gt;
'''CLibNetServe.exe''' - Provides remote access for CometLib at the Comet Anywhere host computer. &lt;br /&gt;
&lt;br /&gt;
'''CNS''' - see CFAMNetServe.exe &lt;br /&gt;
&lt;br /&gt;
'''COM product''' - A COM-compliant DLL available to Comet applications allowing them to access Comet files from programs written in languages other than Internet Basic, such as Visual Basic, VBScript, JScript, and C++. &lt;br /&gt;
&lt;br /&gt;
'''Comet.exe''' - The program used to startup Comet and insure that the user is running the most up to date version of Comet available on the network &lt;br /&gt;
&lt;br /&gt;
'''CometKMD.sys''' - The driver used to communicate with your parallel security dongle &lt;br /&gt;
&lt;br /&gt;
'''CometNTService.exe''' - The program which performs the (un)installation and execution of the Comet file server programs as services. &lt;br /&gt;
&lt;br /&gt;
'''CometLib.dll''' - The library of Comet file system functions available to COM-compliant programming languages. &lt;br /&gt;
&lt;br /&gt;
'''CometPV.dll''' - The library of functions required for use with the Comet OleDbLite product. &lt;br /&gt;
&lt;br /&gt;
'''CometServerProducts.exe''' - The program used to install a Comet file and/or security server with all required files and libraries. &lt;br /&gt;
&lt;br /&gt;
'''CometSrv.NLM''' - The Comet file server for NetWare operating systems. &lt;br /&gt;
&lt;br /&gt;
'''CometWorkstation.exe''' - The program used to install a Comet workstation with all required files and libraries. &lt;br /&gt;
&lt;br /&gt;
'''Cos32.exe''' - The Comet32 runtime kernel &lt;br /&gt;
&lt;br /&gt;
'''CosC.exe''' - The Comet sessions manager &lt;br /&gt;
&lt;br /&gt;
'''CosD.exe''' - The Comet16 debugger for Internet Basic programs &lt;br /&gt;
&lt;br /&gt;
'''CosH.exe''' - The Comet runtime kernel &lt;br /&gt;
&lt;br /&gt;
'''CosHdll.dll''' - OBSOLETE: a test version of the Comet32 runtime kernel &lt;br /&gt;
&lt;br /&gt;
'''CosHipc.dll''' - A library of supporting routines used by CosH.exe &lt;br /&gt;
&lt;br /&gt;
'''CosM32.exe''' - The Comet32 Internet Basic compiler &lt;br /&gt;
&lt;br /&gt;
'''CosP.exe''' - The Comet printer driver for Windows printers &lt;br /&gt;
&lt;br /&gt;
'''CosW.exe''' - The Comet session; the window in which Comet runs &lt;br /&gt;
&lt;br /&gt;
'''Crt.ddl''' - The definition of mnemonic extensions to the Internet Basic language for use with terminal I/O &lt;br /&gt;
&lt;br /&gt;
'''Crt32.ddl''' - The definition of mnemonic extensions to the Internet Basic language for Comet32 terminal I/O &lt;br /&gt;
&lt;br /&gt;
'''CSAdmin.exe''' - A program used to install the security dongle drivers and setup the server executables to run as a service. This program was replaced by CometServerProducts.exe beginning in Comet 2004 and by ServerInstall.exe for older systems. &lt;br /&gt;
&lt;br /&gt;
'''CSecSrv.exe''' - The Comet Security Server for Windows operating systems &lt;br /&gt;
&lt;br /&gt;
'''DDL''' - An abbreviation for data definition language, a database language that describes its data structures &lt;br /&gt;
&lt;br /&gt;
'''DLL''' - An abbreviation for dynamic link library, a file containing a collection of executable routines designed to perform specific functions &lt;br /&gt;
&lt;br /&gt;
'''DIBAPI32.dll''' - A 32-bit device-independent bitmap (DIB) library used by CosW.exe and CosP.exe for rendering bitmap objects &lt;br /&gt;
&lt;br /&gt;
'''FaxDriver.exe''' - The Comet fax driver &lt;br /&gt;
&lt;br /&gt;
'''InstallHelper.dll''' - A component of InstallShield™ used in the installation of Comet software products. &lt;br /&gt;
&lt;br /&gt;
'''ODBC''' - An abbreviation for Open DataBase Connectivity - A Microsoft standard for accessing different database systems. &lt;br /&gt;
&lt;br /&gt;
'''ODBCd.dll''' - A library of functions used by the COMET16 ODBC facility &lt;br /&gt;
&lt;br /&gt;
'''ODBCDrv.exe''' - A library of functions used by the COMET16 ODBC facility &lt;br /&gt;
&lt;br /&gt;
'''OleDbLite''' - The Comet product allowing use of Crystal Reports™ to access to your Comet data &lt;br /&gt;
&lt;br /&gt;
'''ServerInstall.exe''' - A program used to install the security dongle drivers and setup the server executables to run as a service. This program was replaced by CometServerProducts.exe beginning in Comet 2004. &lt;br /&gt;
&lt;br /&gt;
'''System.ddl''' - The definition of mnemonic extensions to the Internet Basic language for use with the kernel &lt;br /&gt;
&lt;br /&gt;
'''System32.ddl''' - The definition of mnemonic extensions to the Internet Basic language for use with the Comet32 kernel &lt;br /&gt;
&lt;br /&gt;
'''UniDrv.dll''' - A universal driver used by the Comet fax application &lt;br /&gt;
&lt;br /&gt;
'''WinPrint.ddl''' - The definition of mnemonic extensions to the Internet Basic language for use with printer output. &lt;br /&gt;
&lt;br /&gt;
'''WPrint32.ddl''' - The definition of mnemonic extensions to the Internet Basic language for use with Comet32 printer output. &lt;br /&gt;
&lt;br /&gt;
'''Ws32.ddl''' - The definition of mnemonic extensions to the Internet Basic language for use with Comet32 WinSock applications. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Copyright © 1995 - 2013 Signature Systems, Inc.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Comet_Error_Codes</id>
		<title>Comet Error Codes</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Comet_Error_Codes"/>
				<updated>2018-05-01T16:16:43Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Internet Basic Compiler Error Messages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Exception Messages ==&lt;br /&gt;
 &lt;br /&gt;
 (QERCOMET file) &lt;br /&gt;
  EXCP    Meaning&lt;br /&gt;
  =================================================================&lt;br /&gt;
  00      No Exception Reported&lt;br /&gt;
  01      Not in Current Use&lt;br /&gt;
  02      End of File&lt;br /&gt;
  03      Unable to Allocate Space for File&lt;br /&gt;
  04      Keyed File Write Without Index&lt;br /&gt;
  05      Create Without Directory Label&lt;br /&gt;
  06      Directory Not Found on ACCESS&lt;br /&gt;
  07      File Unavailable--Lock/Unlock Error&lt;br /&gt;
  08      Not in Current Use&lt;br /&gt;
  09      Not in Current Use&lt;br /&gt;
  10      Not in Current Use&lt;br /&gt;
  11      File Not Found&lt;br /&gt;
  12      File Already Exists&lt;br /&gt;
  13      Text file exists on CREATE&lt;br /&gt;
  14      Not in Current Use&lt;br /&gt;
  15      Unhandled math error&lt;br /&gt;
  16      Number too large for variable&lt;br /&gt;
  17      Numeric overflow&lt;br /&gt;
  18      Not in Current Use&lt;br /&gt;
  19      Attempt to divide by zero&lt;br /&gt;
  20      Math library ran out of memory&lt;br /&gt;
  21      Math library internal error&lt;br /&gt;
  22      Not in Current Use&lt;br /&gt;
  23      Not in Current Use&lt;br /&gt;
  24      Unable to Rename Disk to Disk&lt;br /&gt;
  25      Invalid DOS Call&lt;br /&gt;
  26      Invalid Message Call&lt;br /&gt;
  27      DOS Returned an Error&lt;br /&gt;
  28      Invalid Priority Call&lt;br /&gt;
  29      Not in Current Use&lt;br /&gt;
  30      Device Inoperative&lt;br /&gt;
  31      Device or Directory Unavailable&lt;br /&gt;
  32      Key Not Found&lt;br /&gt;
  33      Record Unavailable--Extract Error&lt;br /&gt;
  34      Logical Unit # Unavailable for Open&lt;br /&gt;
  35      File Not Open for Read or Write&lt;br /&gt;
  36      Can't Perform Function on Open File&lt;br /&gt;
  37      Not in Current Use&lt;br /&gt;
  38      Device or Target File System Unable to Perform Function&lt;br /&gt;
  39      Not in Current Use&lt;br /&gt;
  3D      KDOS Function Error&lt;br /&gt;
  40      Invalid Window Specified&lt;br /&gt;
  41      Edit Mask Length Incorrect&lt;br /&gt;
  42      Not in Current Use&lt;br /&gt;
  43      Not in Current Use&lt;br /&gt;
  44      I/O Buffer Overflow&lt;br /&gt;
  45      Invalid Parameter&lt;br /&gt;
  46      Non-Numeric Input in a Numeric Field&lt;br /&gt;
  47      Parameter Too Large&lt;br /&gt;
  48      Invalid Key or Record Size: CREATE&lt;br /&gt;
  49      Invalid Logical Unit Number&lt;br /&gt;
  50      Array Subscript Out of Range&lt;br /&gt;
  51      Not in Current Use&lt;br /&gt;
  52      Not in Current Use&lt;br /&gt;
  53      Invalid File Access&lt;br /&gt;
  54      Invalid Function for Named File&lt;br /&gt;
  55      Not in Current Use&lt;br /&gt;
  56      Record Already Exists for INSERT&lt;br /&gt;
  59      Not in Current Use&lt;br /&gt;
  60      Cannot IPL while other Users Active&lt;br /&gt;
  61      Program Not Found&lt;br /&gt;
  62      Not in Current Use&lt;br /&gt;
  63      Cannot Run Non-Object File&lt;br /&gt;
  64      Invalid Partition Name&lt;br /&gt;
  65      Partition Busy, Program Running&lt;br /&gt;
  66      Performed an EXIT when ENTERLEVEL value was 0&lt;br /&gt;
  67      Partition Busy, Normal Termination&lt;br /&gt;
  68      Terminate Complete, Task Wasn't Idle&lt;br /&gt;
  69      Activate Unsuccessful/Task had Error Pending&lt;br /&gt;
  70      ESCAPETO/SUB not active for INTERRUPT&lt;br /&gt;
  71      DOS Failed to Transfer Read Data&lt;br /&gt;
  72      IRQ 3 Failure from Comet Board&lt;br /&gt;
  73      Illegal Jump to Location Zero&lt;br /&gt;
  74      Not in Current Use&lt;br /&gt;
  75      Resources Left Allocated After Call&lt;br /&gt;
  76      File Size Limit Reached in Demo Mode&lt;br /&gt;
  77      Attempted Write with Zero Length&lt;br /&gt;
  78      Error Performing ENTER/EXIT Program&lt;br /&gt;
  79      Key Block Offset Too Large&lt;br /&gt;
  7A      Attempt to EXTRACT Keyed Only File&lt;br /&gt;
  7B      Maximum File Size Exceeded&lt;br /&gt;
  80      Maximum I/O Buffer Size Exceeded&lt;br /&gt;
  81      Spool File Error&lt;br /&gt;
  82      Top Key Sector not in Delete Stack&lt;br /&gt;
  83      DOS Disc Error&lt;br /&gt;
  84      Key Sector Search Level Impossible&lt;br /&gt;
  85      ES NOT POINTING TO DATA_SEG IN DOS CALL&lt;br /&gt;
  86      File Descriptor List Overflow&lt;br /&gt;
  87      Unexpected EOF from DOS&lt;br /&gt;
  88      Keys but NO Records in File&lt;br /&gt;
  89      Unsupported Reference&lt;br /&gt;
  8A      Network Buffer Overflow&lt;br /&gt;
  8E      Node Lock Timed Out&lt;br /&gt;
  90      Disk Full -- DOS Wrote Less Than Expected&lt;br /&gt;
  91      Invalid/Unsupported System Call&lt;br /&gt;
  92      GOSUB Stack Underflow&lt;br /&gt;
  93      GOSUB Stack Overflow&lt;br /&gt;
  94      Directory Entry Unavailable / CLOSE&lt;br /&gt;
  95      Next Key Unavailable for Deletion&lt;br /&gt;
  96      New Key Found during INSERT&lt;br /&gt;
  97      New First Key found during INSERT&lt;br /&gt;
  98      Extracted Record not found in Table&lt;br /&gt;
  99      Error Received from DOS&lt;br /&gt;
&lt;br /&gt;
== Internet Basic Compiler Error Messages ==&lt;br /&gt;
 &lt;br /&gt;
 Number    Error Message&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 00        System error - Reload and restart&lt;br /&gt;
 01        Missing keyword, punctuation&lt;br /&gt;
 02        Cannot redefine symbolic constant at execution time&lt;br /&gt;
 03        Variable referenced is incorrect type or undefined&lt;br /&gt;
 04        Variable has been previously defined&lt;br /&gt;
 05        Out of range parameter (constant)&lt;br /&gt;
 06        Array too large (9999 bytes maximum)&lt;br /&gt;
 07        Unnecessary characters following a statement&lt;br /&gt;
 08        Statement number previously declared&lt;br /&gt;
 09        Invalid syntax for hex field&lt;br /&gt;
 10        Non-numeric FOR/NEXT parameter&lt;br /&gt;
 11        Invalid loop statement&lt;br /&gt;
 12        Invalid string constant termination&lt;br /&gt;
 13        Nested FOR/NEXT loop using same control variable&lt;br /&gt;
 14        Invalid conditional statement&lt;br /&gt;
 15        FOR/NEXT nesting error&lt;br /&gt;
 16        No matching FOR statement&lt;br /&gt;
 17        Statement number required&lt;br /&gt;
 18        FORMAT number not declared&lt;br /&gt;
 19        Argument/subscript error&lt;br /&gt;
 20        Incorrect number of expression operands&lt;br /&gt;
 21        Precision will overflow accumulator&lt;br /&gt;
 22        No path to this statement&lt;br /&gt;
 23        No space to evaluate expression&lt;br /&gt;
 24        Precision conflict (FOR/NEXT)&lt;br /&gt;
 25        We've only got one string accumulator&lt;br /&gt;
 26        String length not declared&lt;br /&gt;
 27        BREAK or CONTINUE found, no FOR/DO&lt;br /&gt;
 28        Integer out of range&lt;br /&gt;
 29        Operand/operator type disagreement&lt;br /&gt;
 30        Unbalanced parentheses&lt;br /&gt;
 31        Numeric expression required&lt;br /&gt;
 32        Logical expression required&lt;br /&gt;
 33        Expression operator not allowed&lt;br /&gt;
 34        No DO loop conditional clause&lt;br /&gt;
 35        String expression required&lt;br /&gt;
 36        Fraction, where integer required&lt;br /&gt;
 37        Integer/symbolic constant required&lt;br /&gt;
 38        -reserved for future use-&lt;br /&gt;
 39        Invalid usefile parameter&lt;br /&gt;
 40        LOOP statement has no preceding &amp;quot;DO&amp;quot;&lt;br /&gt;
 41        SELECT/CASE sequence error&lt;br /&gt;
 42        CASE: &amp;quot;FROM&amp;quot; with no &amp;quot;TO&amp;quot; or &amp;quot;THRU&amp;quot;&lt;br /&gt;
 43        &amp;quot;CASE ELSE&amp;quot; no last &amp;quot;CASE&amp;quot;&lt;br /&gt;
 44        MTB51 read\write error&lt;br /&gt;
 45        .ELSE without .IF (Comet16 only)&lt;br /&gt;
 46        Unrecognizable compiler directive (Comet16 only)&lt;br /&gt;
 47        not used&lt;br /&gt;
 48        not used&lt;br /&gt;
 49        not used&lt;br /&gt;
 50        not used&lt;br /&gt;
 51        Program exceeds 64K (Comet16 only)&lt;br /&gt;
 52        Too many conditional statements (internal label count) 64K (Comet16 only)&lt;br /&gt;
 53        Array element not allowed for SELECT CASE expression&lt;br /&gt;
&lt;br /&gt;
== Windows Sockets Error Codes, Values, and Meanings ==&lt;br /&gt;
&lt;br /&gt;
 Last reviewed: November 17, 1997&lt;br /&gt;
 Article ID: Q150537  &lt;br /&gt;
 The information in this article applies to: &lt;br /&gt;
 Microsoft Windows NT Workstation versions 3.5 and 3.51 &lt;br /&gt;
 Microsoft Windows NT Server versions 3.5 and 3.51 &lt;br /&gt;
 Microsoft LAN Manager version 2.2c &lt;br /&gt;
 Microsoft TCP/IP-32 for Windows for Workgroups, versions 3.11, 3.11a, and 3.11b &lt;br /&gt;
 Microsoft Windows 95 &lt;br /&gt;
 Microsoft Network Client version 3.0 for MS-DOS &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SUMMARY'''&lt;br /&gt;
&lt;br /&gt;
This article describes the Windows Sockets error codes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''MORE INFORMATION'''&lt;br /&gt;
The following table is a list of possible error codes returned by the WSAGetLastError() call, along with their explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Windows Sockets code   Error   Description&lt;br /&gt;
   ------------------------------------------------------------------------&lt;br /&gt;
   WSAEINTR               10004   Interrupted system call.&lt;br /&gt;
   WSAEBADF               10009   Bad file number.&lt;br /&gt;
   WSEACCES               10013   Permission denied.&lt;br /&gt;
   WSAEFAULT              10014   Bad address.&lt;br /&gt;
   WSAEINVAL              10022   Invalid argument.&lt;br /&gt;
   WSAEMFILE              10024   Too many open files.&lt;br /&gt;
   WSAEWOULDBLOCK         10035   Operation would block.&lt;br /&gt;
   WSAEINPROGRESS         10036   Operation now in progress. This error is&lt;br /&gt;
                                  returned if any Windows Sockets API&lt;br /&gt;
                                  function is called while a blocking&lt;br /&gt;
                                  function is in progress.&lt;br /&gt;
   WSAEALREADY            10037   Operation already in progress.&lt;br /&gt;
   WSAENOTSOCK            10038   Socket operation on nonsocket.&lt;br /&gt;
   WSAEDESTADDRREQ        10039   Destination address required.&lt;br /&gt;
   WSAEMSGSIZE            10040   Message too long.&lt;br /&gt;
   WSAEPROTOTYPE          10041   Protocol wrong type for socket.&lt;br /&gt;
   WSAENOPROTOOPT         10042   Protocol not available.&lt;br /&gt;
   WSAEPROTONOSUPPORT     10043   Protocol not supported.&lt;br /&gt;
   WSAESOCKTNOSUPPORT     10044   Socket type not supported.&lt;br /&gt;
   WSAEOPNOTSUPP          10045   Operation not supported on socket.&lt;br /&gt;
   WSAEPFNOSUPPORT        10046   Protocol family not supported.&lt;br /&gt;
   WSAEAFNOSUPPORT        10047   Address family not supported by protocol&lt;br /&gt;
                                  family.&lt;br /&gt;
   WSAEADDRINUSE          10048   Address already in use.&lt;br /&gt;
   WSAEADDRNOTAVAIL       10049   Cannot assign requested address.&lt;br /&gt;
   WSAENETDOWN            10050   Network is down. This error may be&lt;br /&gt;
                                  reported at any time if the Windows&lt;br /&gt;
                                  Sockets implementation detects an&lt;br /&gt;
                                  underlying failure.&lt;br /&gt;
   WSAENETUNREACH         10051   Network is unreachable.&lt;br /&gt;
   WSAENETRESET           10052   Network dropped connection on reset.&lt;br /&gt;
   WSAECONNABORTED        10053   Software caused connection abort.&lt;br /&gt;
   WSAECONNRESET          10054   Connection reset by peer.&lt;br /&gt;
   WSAENOBUFS             10055   No buffer space available.&lt;br /&gt;
   WSAEISCONN             10056   Socket is already connected.&lt;br /&gt;
   WSAENOTCONN            10057   Socket is not connected.&lt;br /&gt;
   WSAESHUTDOWN           10058   Cannot send after socket shutdown.&lt;br /&gt;
   WSAETOOMANYREFS        10059   Too many references: cannot splice.&lt;br /&gt;
   WSAETIMEDOUT           10060   Connection timed out.&lt;br /&gt;
   WSAECONNREFUSED        10061   Connection refused.&lt;br /&gt;
   WSAELOOP               10062   Too many levels of symbolic links.&lt;br /&gt;
   WSAENAMETOOLONG        10063   File name too long.&lt;br /&gt;
   WSAEHOSTDOWN           10064   Host is down.&lt;br /&gt;
   WSAEHOSTUNREACH        10065   No route to host.&lt;br /&gt;
   WSASYSNOTREADY         10091   Returned by WSAStartup(), indicating that&lt;br /&gt;
                                  the network subsystem is unusable.&lt;br /&gt;
   WSAVERNOTSUPPORTED     10092   Returned by WSAStartup(), indicating that&lt;br /&gt;
                                  the Windows Sockets DLL cannot support&lt;br /&gt;
                                  this application.&lt;br /&gt;
   WSANOTINITIALISED      10093   Winsock not initialized. This message is&lt;br /&gt;
                                  returned by any function except&lt;br /&gt;
                                  WSAStartup(), indicating that a&lt;br /&gt;
                                  successful WSAStartup() has not yet been&lt;br /&gt;
                                  performed.&lt;br /&gt;
   WSAEDISCON             10101   Disconnect.&lt;br /&gt;
   WSAHOST_NOT_FOUND      11001   Host not found. This message indicates&lt;br /&gt;
                                  that the key (name, address, and so on)&lt;br /&gt;
                                  was not found.&lt;br /&gt;
   WSATRY_AGAIN           11002   Nonauthoritative host not found. This&lt;br /&gt;
                                  error may suggest that the name service&lt;br /&gt;
                                  itself is not functioning.&lt;br /&gt;
   WSANO_RECOVERY         11003   Nonrecoverable error. This error may&lt;br /&gt;
                                  suggest that the name service itself is&lt;br /&gt;
                                  not functioning.&lt;br /&gt;
   WSANO_DATA             11004   Valid name, no data record of requested&lt;br /&gt;
                                  type. This error indicates that the key&lt;br /&gt;
                                  (name, address, and so on) was not found.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' This table does not include all of the error codes defined in &lt;br /&gt;
      Winsock&lt;br /&gt;
&lt;br /&gt;
== CopyFileErrors: ==&lt;br /&gt;
'''Function Error Routine/Apply Descriptions''' &lt;br /&gt;
&lt;br /&gt;
 '''select case FuncError'''&lt;br /&gt;
{| Border=1&lt;br /&gt;
|-&lt;br /&gt;
| Heading 1&lt;br /&gt;
| Heading 2&lt;br /&gt;
| Heading3&lt;br /&gt;
|-&lt;br /&gt;
| case 0 &lt;br /&gt;
| Funcerror$ = 'Function not supported'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 1 &lt;br /&gt;
| Funcerror$ = 'Success -- update performed'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 2 &lt;br /&gt;
| Funcerror$ = 'CometAnywhere required'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 3 &lt;br /&gt;
| Funcerror$ = 'Source file error (see suberrors)'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 4 &lt;br /&gt;
| Funcerror$ = 'Aborted by user'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 5 &lt;br /&gt;
| Funcerror$ = 'Function in progress'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 20 &lt;br /&gt;
| Funcerror$ = 'Success -- update not required'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 21 &lt;br /&gt;
| Funcerror$ = 'Success -- update required'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case 22 &lt;br /&gt;
| Funcerror$ = 'Destination file error (see suberrors)'&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| case else &amp;amp; Funcerror$ = 'Unknown'&lt;br /&gt;
| endselect &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
 '''select case FileError'''&lt;br /&gt;
 case 0 &lt;br /&gt;
 FileError$ = 'Success'&lt;br /&gt;
 case 2 &lt;br /&gt;
 FileError$ = 'File not found'&lt;br /&gt;
 case 3 &lt;br /&gt;
 FileError$ = 'Path not found'&lt;br /&gt;
 case 5&lt;br /&gt;
 FileError$ = 'Access denied'&lt;br /&gt;
 case 12 &lt;br /&gt;
 FileError$ = 'Invalid access'&lt;br /&gt;
 case 15&lt;br /&gt;
 FileError$ = 'Invalid drive'&lt;br /&gt;
 case 16&lt;br /&gt;
 FileError$ = 'An error has occurred in the current directory'&lt;br /&gt;
 case 18 &lt;br /&gt;
 FileError$ = 'No more files'&lt;br /&gt;
 case 32 &lt;br /&gt;
 FileError$ = 'Sharing violation'&lt;br /&gt;
 case 33&lt;br /&gt;
 FileError$ = 'Lock violation'&lt;br /&gt;
 case 80&lt;br /&gt;
 FileError$ = 'File exists'&lt;br /&gt;
 case 123&lt;br /&gt;
 FileError$ = 'The Filename, Directory Name, or Volume Label Syntax Is Incorrect'&lt;br /&gt;
 case 161&lt;br /&gt;
 FileError$ = 'Bad pathname'&lt;br /&gt;
 case else &lt;br /&gt;
 FileError$ = 'Unknown' &lt;br /&gt;
 endselect&lt;br /&gt;
 return&lt;br /&gt;
&lt;br /&gt;
 '''GetDirAliasErrors:'''&lt;br /&gt;
 select case FuncError&lt;br /&gt;
 case 0 &lt;br /&gt;
 Funcerror$ = 'Function not supported'&lt;br /&gt;
 case 1 &lt;br /&gt;
 Funcerror$ = 'Success'&lt;br /&gt;
 case 2 &lt;br /&gt;
 Funcerror$ = 'CometAnywhere required'&lt;br /&gt;
 case 3 &lt;br /&gt;
 Funcerror$ = 'Source file error (see suberrors)'&lt;br /&gt;
 case 4 &lt;br /&gt;
 Funcerror$ = 'Aborted by user'&lt;br /&gt;
 case 5 &lt;br /&gt;
 Funcerror$ = 'Function in progress'&lt;br /&gt;
 case else &amp;amp; Funcerror$ = 'Unknown'&lt;br /&gt;
 endselect &lt;br /&gt;
&lt;br /&gt;
 '''select case FileError'''&lt;br /&gt;
 case 0 &lt;br /&gt;
 FileError$ = 'Success'&lt;br /&gt;
 case 2 &lt;br /&gt;
 FileError$ = 'File not found'&lt;br /&gt;
 case 3 &lt;br /&gt;
 FileError$ = 'Path not found'&lt;br /&gt;
 case 5&lt;br /&gt;
 FileError$ = 'Access denied'&lt;br /&gt;
 case 12 &lt;br /&gt;
 FileError$ = 'Invalid access'&lt;br /&gt;
 case 15&lt;br /&gt;
 FileError$ = 'Invalid drive'&lt;br /&gt;
 case 16&lt;br /&gt;
 FileError$ = 'An error has occurred in the current directory'&lt;br /&gt;
 case 18 &lt;br /&gt;
 FileError$ = 'No more files'&lt;br /&gt;
 case 32 &lt;br /&gt;
 FileError$ = 'Sharing violation'&lt;br /&gt;
 case 33&lt;br /&gt;
 FileError$ = 'Lock violation'&lt;br /&gt;
 case 80&lt;br /&gt;
 FileError$ = 'File exists'&lt;br /&gt;
 case 123&lt;br /&gt;
 FileError$ = 'The Filename, Directory Name, or Volume Label Syntax Is Incorrect'&lt;br /&gt;
 case 161&lt;br /&gt;
 FileError$ = 'Bad pathname'&lt;br /&gt;
 case else &lt;br /&gt;
 FileError$ = 'Unknown' &lt;br /&gt;
 endselect&lt;br /&gt;
 return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== These are spare headings for any other tables of error codes ==&lt;br /&gt;
== Actually I just couldn't be bothered to check the help to see how to force this T.O.C. ==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/CometAnywhere_Mobile</id>
		<title>CometAnywhere Mobile</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/CometAnywhere_Mobile"/>
				<updated>2018-04-25T18:24:25Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Demo programs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CometAnywhere Mobile (Alpha testing) ==&lt;br /&gt;
&lt;br /&gt;
Click here for the [[CometAnywhere Mobile Changelog]]&lt;br /&gt;
&lt;br /&gt;
== READ ME FIRST ==&lt;br /&gt;
&lt;br /&gt;
You MUST send your UDID number to justin@signature.net in order to be included in the alpha testing for CometAnywhere Mobile!&lt;br /&gt;
&lt;br /&gt;
To get your UDID, go to your iPad device under iTunes, and click &amp;quot;Serial Number.&amp;quot;  &amp;quot;Identifier (UDID)&amp;quot; should then show up with a long hex code next to it - this is your UDID.  We are currently building your UDID numbers into our releases so that ONLY the iPads with the included UDIDs can run the mobile app.&lt;br /&gt;
&lt;br /&gt;
Alternatively you can download a program (like http://itunes.apple.com/us/app/udid/id458358726?mt=8) and use it to email a summary of your device to justin@signature.net&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
&lt;br /&gt;
This product is VERY alpha.  We hope that you will join us in developing this product, but be aware that it is and will be constantly in flux.  By getting in at the ground floor, you will be able to follow our development, see new features become available, as well as recommend new features as you become familiar with the mobile devices.&lt;br /&gt;
&lt;br /&gt;
That being said, there is absolutely no guarantee that as we release new versions of the app, that old programs will continue to run (or even be stable).  We are trying to provide you with the best product we can, which means that at this stage functions/procs could change overnight, and redesigns of the app will be commonplace - especially if you see improvements we can make!&lt;br /&gt;
&lt;br /&gt;
We hope you will help us test this new and exciting product.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&lt;br /&gt;
CometAnywhere Mobile currently uses up a regular CometAnywhere license.  You must have a CometAnywhere host running with available client licenses.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The CometAnywhere Mobile App requires the latest REL (12.07) be installed on the CometAnywhere host.  Due to the special nature of mobile devices, we are running a special MMonitor program to interface with the iPad.&lt;br /&gt;
&lt;br /&gt;
Once you've received the CometAnywhere Mobile app, you must install it on your iPad.  To do this, import the .ipa file into itunes (usually by double clicking).  Then sync the app to your iPad by going to your iPad (under devices in itunes), then the &amp;quot;Apps&amp;quot; tab.  Check &amp;quot;Sync Apps&amp;quot; and sync the CometAnywhere app.&lt;br /&gt;
&lt;br /&gt;
When it's synced, you should be able to run the app from your iPad and connect to a CometAnywhere mobile-enabled server.&lt;br /&gt;
&lt;br /&gt;
== Running the app ==&lt;br /&gt;
&lt;br /&gt;
When the app first opens, you must push the &amp;quot;Connect&amp;quot; button in order to connect to a CometAnywhere host.  Currently, you must connect via a globally visible IP address (i.e. myserver.mydomain.com, or xxx.xxx.xxx.xxx).  Once connected you will be prompted to enter a program to run.  Use this to run any mobile programs you have compiled.&lt;br /&gt;
&lt;br /&gt;
== Demo programs ==&lt;br /&gt;
&lt;br /&gt;
Demo programs are hosted on cc32.signature.net under the username &amp;quot;mobile&amp;quot; and password &amp;quot;mobile&amp;quot;.  Connect and log in, then enter the demo program name that you would like to run.&lt;br /&gt;
&lt;br /&gt;
== Mobile.inc ==&lt;br /&gt;
&lt;br /&gt;
Currently, mobile programs are written using procs to simulate mnemonics/functions that interact with the iPad.  You can find the file [http://www.signature.net/download/MailBoxes/mobile.inc here].  Use these procs as demonstrated in the demo programs.&lt;br /&gt;
&lt;br /&gt;
== KBC Demo App ==&lt;br /&gt;
&lt;br /&gt;
Info on how to download and install the KBC invoicing demo app, source included [[http://wiki.signature.net/index.php/KBC_demo_app]].&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Virtual_Dongle</id>
		<title>Virtual Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Virtual_Dongle"/>
				<updated>2018-02-27T18:39:48Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet Security Server Virtual Dongle Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Security Server Virtual Dongle Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Virtual Dongle Server was released with Comet Server Products version 13. Here are the requirements to use it:&lt;br /&gt;
&lt;br /&gt;
*A signed EULA must be on file with Signature Systems that includes the conditions of using a virtual dongle. You'll find the current End User License Agreement.pdf here: [http://www.signature.net/download/End%20User%20License%20Agreement.pdf]&lt;br /&gt;
&lt;br /&gt;
*You'll need a dongle server registration file called DRB.txt. This will be emailed to you when your order for the virtual dongle is processed.&lt;br /&gt;
*The Comet Security Server must have a reliable internet connection.  If you use Internet Security Software you'll need to set it up to allow 2-way traffic with dongle.signature.net (to port 80) and signature.net (to port 8080).  Be aware that your use of a proxy server may interfere with this communication.&lt;br /&gt;
*The Comet Security Server must be running as a service and have '''administrator privileges'''. &lt;br /&gt;
*A Virtual Dongle may be associated with one and only one computer.  Once installed you may not move it to another computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are replacing an existing USB or parallel dongle:&lt;br /&gt;
&lt;br /&gt;
*Install Server Products vsn 18 or higher on your server and make sure all is well using the existing dongle.&lt;br /&gt;
*Put the DRB.txt file into your Comet Services folder. This is the same folder where you installed the Server Products release.&lt;br /&gt;
*Stop the Comet Services then remove the old dongle.&lt;br /&gt;
*Make sure your internet connection is working and restart the Comet Services. When you restart the services it should process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you simply restart the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
*Return the old dongle to Signature Systems so that the permanent certificate can be issued. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are installing a new system:&lt;br /&gt;
&lt;br /&gt;
*Make sure your internet connection is working on the server where the Comet Services will be installed.&lt;br /&gt;
*If you haven't already done so, we recommend you install the Microsoft Redistributables Package.  Some of the .NET framework files are used by the Security Server.  You can download vcredist_x86.exe here [http://www.signature.net/download/MailBoxes/]&lt;br /&gt;
*Create the Comet Services folder.&lt;br /&gt;
*Put the DRB.txt file into that folder.&lt;br /&gt;
*Install Server Products vsn 18 or higher on your server. When it asks for dongle type, choose USB.  This is because the Security Server will attempt to find a USB dongle first and it needs the drivers to be able to do that.  When it asks if you want to restart Windows, say '''&amp;quot;No&amp;quot;'''. Then use the Windows Services program to start the Comet Services. It will process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you start the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Virtual_Dongle</id>
		<title>Virtual Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Virtual_Dongle"/>
				<updated>2018-02-27T18:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet Security Server Virtual Dongle Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Security Server Virtual Dongle Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Virtual Dongle Server was released with Comet Server Products version 13. Here are the requirements to use it:&lt;br /&gt;
&lt;br /&gt;
*A signed EULA must be on file with Signature Systems that includes the conditions of using a virtual dongle. You'll find the current End User License Agreement.pdf here: [http://www.signature.net/download/End%20User%20License%20Agreement.pdf]&lt;br /&gt;
&lt;br /&gt;
*You'll need a dongle server registration file called DRB.txt. This will be emailed to you when your order for the virtual dongle is processed.&lt;br /&gt;
*The Comet Security Server must have a reliable internet connection.  If you use Internet Security Software you'll need to set it up to allow 2-way traffic with dongle.signature.net (to port 80) and signature.net (to port 8080).  Be aware that your use of a proxy server may interfere with this communication.&lt;br /&gt;
*The Comet Security Server must be running as a service and have '''administrator privileges'''. &lt;br /&gt;
*A Virtual Dongle may be associated with one and only one computer.  Once installed you may not move it to another computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are replacing an existing USB or parallel dongle:&lt;br /&gt;
&lt;br /&gt;
*Install Server Products vsn 16 or higher on your server and make sure all is well using the existing dongle.&lt;br /&gt;
*Put the DRB.txt file into your Comet Services folder. This is the same folder where you installed the Server Products release.&lt;br /&gt;
*Stop the Comet Services then remove the old dongle.&lt;br /&gt;
*Make sure your internet connection is working and restart the Comet Services. When you restart the services it should process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you simply restart the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
*Return the old dongle to Signature Systems so that the permanent certificate can be issued. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are installing a new system:&lt;br /&gt;
&lt;br /&gt;
*Make sure your internet connection is working on the server where the Comet Services will be installed.&lt;br /&gt;
*If you haven't already done so, we recommend you install the Microsoft Redistributables Package.  Some of the .NET framework files are used by the Security Server.  You can download vcredist_x86.exe here [http://www.signature.net/download/MailBoxes/]&lt;br /&gt;
*Create the Comet Services folder.&lt;br /&gt;
*Put the DRB.txt file into that folder.&lt;br /&gt;
*Install Server Products vsn 18 or higher on your server. When it asks for dongle type, choose USB.  This is because the Security Server will attempt to find a USB dongle first and it needs the drivers to be able to do that.  When it asks if you want to restart Windows, say '''&amp;quot;No&amp;quot;'''. Then use the Windows Services program to start the Comet Services. It will process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you start the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Subscription_Benefits</id>
		<title>Subscription Benefits</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Subscription_Benefits"/>
				<updated>2018-01-31T21:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Benefits of being a Comet Subscriber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if you are not a current subscriber to the Comet Software, most of your core applications will continue to work. However, Signature Systems continually improves its software and adds new features to the Comet System. These features are mainly available to current Comet Subscribers only. &lt;br /&gt;
=Benefits of being a Comet Subscriber=&lt;br /&gt;
&lt;br /&gt;
*Entitled to all updates made to existing products during the subscription year&lt;br /&gt;
*Free COM license for each Comet license. This license is required for:&lt;br /&gt;
**CometExplorer&lt;br /&gt;
**(CopyFile) mnemonic through the file server.  Without a COM license CopyFile is done directly with Windows calls which requires the client to have Windows access to the source and destination folders.  This could require you to purchase additional Client Access Licenses from Microsoft.&lt;br /&gt;
**(Document=) mnemonic.  This mnemonic is used by features of the email printer, the pdf printer, and DocMgr.&lt;br /&gt;
**The DataExpress version of the Reporter.&lt;br /&gt;
*Protection against the loss of Comet access because of theft or verifiable loss of the security module. We will replace the usb plug and Comet licenses immediately, at no charge to the subscriber. Comet users who are not subscribers must rely on their business insurance to replace their system by completely repurchasing Comet at current prices. The expense and delay could far outweigh the cost of the subscription.&lt;br /&gt;
*Priority access to the technical support staff.&lt;br /&gt;
*The convenience of being able to apply CometAnywhere licenses to any version of the CometAnywhere host.  This can be especially useful at subscription time.  When new CometAnywhere licenses are issued you may continue to run an older version of Comet on the host until it is convenient for you to install the upgrade.&lt;br /&gt;
*Free ODBC/mySQL licenses for each Comet license.&lt;br /&gt;
*Use of the CometAnywhere Mobile API for developing IB programs that run on the Apple iPad and iPhone.&lt;br /&gt;
&lt;br /&gt;
==These benefits expire at the end of the subscription period.==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Subscription_Benefits</id>
		<title>Subscription Benefits</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Subscription_Benefits"/>
				<updated>2018-01-31T21:20:51Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Benefits of being a Comet Subscriber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if you are not a current subscriber to the Comet Software, most of your core applications will continue to work. However, Signature Systems continually improves its software and adds new features to the Comet System. These features are mainly available to current Comet Subscribers only. &lt;br /&gt;
=Benefits of being a Comet Subscriber=&lt;br /&gt;
&lt;br /&gt;
*Entitled to all updates made to existing products during the subscription year&lt;br /&gt;
*Free COM license for each Comet license. This license is required for:&lt;br /&gt;
**CometExplorer&lt;br /&gt;
**(CopyFile) mnemonic through the file server.  Without a COM license CopyFile is done directly with Windows calls which requires the client to have Windows access to the source and destination folders.  This could require you to purchase additional Client Access Licenses from Microsoft.&lt;br /&gt;
**(Document=) mnemonic.  This mnemonic is used by features of the email printer, the pdf printer, and DocMgr.&lt;br /&gt;
**The DataExpress version of the Reporter.&lt;br /&gt;
*Protection against the loss of Comet access because of theft or verifiable loss of the security module. We will replace the plug/usb and Comet licenses immediately, at no charge to the subscriber. Comet users who are not subscribers must rely on their business insurance to replace their system by completely repurchasing Comet at current prices. The expense and delay could far outweigh the cost of the subscription.&lt;br /&gt;
*Priority access to the technical support staff.&lt;br /&gt;
*The convenience of being able to apply CometAnywhere licenses to any version of the CometAnywhere host.  This can be especially useful at subscription time.  When new CometAnywhere licenses are issued you may continue to run an older version of Comet on the host until it is convenient for you to install the upgrade.&lt;br /&gt;
*Free ODBC/mySQL licenses for each Comet license.&lt;br /&gt;
*Use of the CometAnywhere Mobile API for developing IB programs that run on the Apple iPad and iPhone.&lt;br /&gt;
&lt;br /&gt;
==These benefits expire at the end of the subscription period.==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Subscription_Benefits</id>
		<title>Subscription Benefits</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Subscription_Benefits"/>
				<updated>2018-01-31T20:01:32Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if you are not a current subscriber to the Comet Software, most of your core applications will continue to work. However, Signature Systems continually improves its software and adds new features to the Comet System. These features are mainly available to current Comet Subscribers only. &lt;br /&gt;
=Benefits of being a Comet Subscriber=&lt;br /&gt;
&lt;br /&gt;
*Entitled to all updates made to existing products during the subscription year&lt;br /&gt;
*Free COM license for each Comet license. This license is required for:&lt;br /&gt;
**CometExplorer&lt;br /&gt;
**(CopyFile) mnemonic through the file server.  Without a COM license CopyFile is done directly with Windows calls which requires the client to have Windows access to the source and destination folders.  This could require you to purchase additional Client Access Licenses from Microsoft.&lt;br /&gt;
**(Document=) mnemonic.  This mnemonic is used by features of the email printer, the pdf printer, and DocMgr.&lt;br /&gt;
**The DataExpress version of the Reporter.&lt;br /&gt;
*Protection against the loss of Comet access because of theft or verifiable loss of the security module. We will replace the plug/usb and Comet licenses immediately, at no charge to the subscriber. Comet users who are not subscribers must rely on their business insurance to replace their system by completely repurchasing Comet at current prices. The expense and delay far outweigh the cost of the subscription.&lt;br /&gt;
*Priority access to the technical support staff.&lt;br /&gt;
*The convenience of being able to apply CometAnywhere licenses to any version of the CometAnywhere host.  This can be especially useful at subscription time.  When new CometAnywhere licenses are issued you may continue to run an older version of Comet on the host until it is convenient for you to install the upgrade.&lt;br /&gt;
*Free ODBC/mySQL licenses for each Comet license.&lt;br /&gt;
*Use of the CometAnywhere Mobile API for developing IB programs that run on the Apple iPad and iPhone.&lt;br /&gt;
&lt;br /&gt;
==These benefits expire at the end of the subscription period.==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/IB_enhancements_for_Comet32</id>
		<title>IB enhancements for Comet32</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/IB_enhancements_for_Comet32"/>
				<updated>2017-12-05T22:49:47Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[IB_Statements/SearchFile|'''Search File - C32''']]&lt;br /&gt;
&lt;br /&gt;
[[IB_Statements/InputFile_and_PrintFile|'''InputFile and PrintFile - C32''']]&lt;br /&gt;
&lt;br /&gt;
[[IB_Statements/GetFormat|'''GetFormat and SetFormat - C32''']]&lt;br /&gt;
&lt;br /&gt;
[[IB_Statements/UserDefinedProcs|'''User Defined Procedures''']]&lt;br /&gt;
&lt;br /&gt;
Comet32 Numeric Processing&lt;br /&gt;
* Comet32 provides much enhanced numeric handling over Comet16.&lt;br /&gt;
* Numeric variables can be as long as 32 decimal places. This is twice the length of Comet16.&lt;br /&gt;
* Expression results are calculated to length 64.32 so that partial results of expressions are preserved.&lt;br /&gt;
* The following Comet16 Functionality is supported::&lt;br /&gt;
            Add,           z = x + y&lt;br /&gt;
            Subtract,      z = x - y&lt;br /&gt;
            Multiply,      z = x * y&lt;br /&gt;
            Divide,        z = x / y&lt;br /&gt;
            Negate,        z = - x&lt;br /&gt;
            Abs,           z = abs(x)      -- Return the absolute value of x&lt;br /&gt;
            Int,           z = int(x)      -- Return the integer portion of x&lt;br /&gt;
            Fpt,           z = fpt(x)      -- Return the fractional portion of x&lt;br /&gt;
            Sgn,           z = sgn(x)      -- Return the sign of x (-1,0,+1)&lt;br /&gt;
            Num,           z = num(a$,err) -- Return the string a$ converted to a number.&lt;br /&gt;
            Asc,           z = asc(a$)     -- Return the ascii equivalent of the first character in a$.&lt;br /&gt;
            Len,           z = len(a$)     -- Return the length of string a$.&lt;br /&gt;
            BitwiseAnd,    z = x and y&lt;br /&gt;
            BitwiseOr,     z = x or y&lt;br /&gt;
            BitwiseXor,    z = x xor y&lt;br /&gt;
            BitwiseNot,    z = not(x)&lt;br /&gt;
            Mod,           z = x mod y     -- Divides int(x) by int(y) and return the remainder&lt;br /&gt;
            Sqrt,          z = sqrt(x)     -- Return the Square Root of x&lt;br /&gt;
            Rnd,           z = rnd()       -- Return a &amp;quot;random number&amp;quot; between 0 and 1&lt;br /&gt;
Many additional math functions are supported in Comet32:&lt;br /&gt;
            Cbrt,          z = cbrt(x)     -- Return the Cube Root of x&lt;br /&gt;
            Log,           z = log(x)      -- Return the base-e logarithm of x, so x==exp(z)&lt;br /&gt;
            Log10,         z = log10(x)    -- Return the base-10 logarithm of x, so x==pow(10,z)&lt;br /&gt;
            Exp,           z = exp(x)      -- Return e raised to the power x, so x==log(z)&lt;br /&gt;
            Pow,           z = pow(x,y)    -- Return x raised to the power y&lt;br /&gt;
            Sin,           z = sin(x)      -- Return the sine of x, with x in radians&lt;br /&gt;
            Cos,           z = cos(x)      -- Return the cosine of x, with x in radians&lt;br /&gt;
            Tan,           z = tan(x)      -- Return the tangent of x, with x in radians&lt;br /&gt;
            Asin,          z = asin(x)     -- Return the inverse sine of x, in radians&lt;br /&gt;
            Acos,          z = acos(x)     -- Return the inverse cosine of x, in radians&lt;br /&gt;
            Atan,          z = atan(x)     -- Return the inverse tangent of x, in radians&lt;br /&gt;
            Atan2,         z = atan2(y,x)  -- Return the 4 quadrant inverse tangent of y/x&lt;br /&gt;
            Sinh,          z = sinh(x)     -- Return the hyperbolic sine of x&lt;br /&gt;
            Cosh,          z = cosh(x)     -- Return the hyperbolic cosine of x&lt;br /&gt;
            Tanh,          z = tanh(x)     -- Return the hyperbolic tangent of x&lt;br /&gt;
            Asinh,         z = asinh(x)    -- Return the inverse hyperbolic sine of x&lt;br /&gt;
            Acosh,         z = acosh(x)    -- Return the inverse hyperbolic cosine of x&lt;br /&gt;
            Atanh,         z = atanh(x)    -- Return the inverse hyperbolic tangent of x&lt;br /&gt;
            Factorial,     z = factorial(x)-- Return the factorial of x&lt;br /&gt;
            Floor,         z = floor(x)    -- Return the floor (next lowest integer value) of x.&lt;br /&gt;
            Ceil,          z = ceil(x)     -- Return the ceil (next highest integer value) of x.&lt;br /&gt;
            Gcd,           z = gcd(x,y)    -- Return the GCD (greatest common divisor) of x, y.&lt;br /&gt;
            Lcm,           z = lcm(x,y)    -- Return the LCM (least common multiple) of x, y.&lt;br /&gt;
&lt;br /&gt;
Beware! The following code will not work the same for Comet32 as it did for Comet16:&lt;br /&gt;
         For I = 0 to 99                     &lt;br /&gt;
             A$ = &amp;quot;T&amp;quot; + sub(str(i+100),15,2)&lt;br /&gt;
         Next i &lt;br /&gt;
&lt;br /&gt;
Because the result of the addition is in the accumulator which has changed.&lt;br /&gt;
&lt;br /&gt;
The following code will ALWAYS work for both Comet16 and Comet32:&lt;br /&gt;
        For I = 0 to 99&lt;br /&gt;
              A$ = `T' + sub(strip(str(i+100)),2,2)&lt;br /&gt;
        Next I&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Internet_Basic_Compiler_Error_Messages</id>
		<title>Internet Basic Compiler Error Messages</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Internet_Basic_Compiler_Error_Messages"/>
				<updated>2017-11-22T15:27:02Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Internet Basic Compiler Error Messages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Internet Basic Compiler Error Messages ==&lt;br /&gt;
 &lt;br /&gt;
 Number    Error Message&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 00        System error - Reload and restart&lt;br /&gt;
 01        Missing keyword, punctuation&lt;br /&gt;
 02        Cannot redefine symbolic constant at execution time&lt;br /&gt;
 03        Variable referenced is incorrect type or undefined&lt;br /&gt;
 04        Variable has been previously defined&lt;br /&gt;
 05        Out of range parameter (constant)&lt;br /&gt;
 06        Array too large (9999 bytes maximum)&lt;br /&gt;
 07        Unnecessary characters following a statement&lt;br /&gt;
 08        Statement number previously declared&lt;br /&gt;
 09        Invalid syntax for hex field&lt;br /&gt;
 10        Non-numeric FOR/NEXT parameter&lt;br /&gt;
 11        Invalid loop statement&lt;br /&gt;
 12        Invalid string constant termination&lt;br /&gt;
 13        Nested FOR/NEXT loop using same control variable&lt;br /&gt;
 14        Invalid conditional statement&lt;br /&gt;
 15        FOR/NEXT nesting error&lt;br /&gt;
 16        No matching FOR statement&lt;br /&gt;
 17        Statement number required&lt;br /&gt;
 18        FORMAT number not declared&lt;br /&gt;
 19        Argument/subscript error&lt;br /&gt;
 20        Incorrect number of expression operands&lt;br /&gt;
 21        Precision will overflow accumulator&lt;br /&gt;
 22        No path to this statement&lt;br /&gt;
 23        No space to evaluate expression&lt;br /&gt;
 24        Precision conflict (FOR/NEXT)&lt;br /&gt;
 25        We've only got one string accumulator&lt;br /&gt;
 26        String length not declared&lt;br /&gt;
 27        BREAK or CONTINUE found, no FOR/DO&lt;br /&gt;
 28        Integer out of range&lt;br /&gt;
 29        Operand/operator type disagreement&lt;br /&gt;
 30        Unbalanced parentheses&lt;br /&gt;
 31        Numeric expression required&lt;br /&gt;
 32        Logical expression required&lt;br /&gt;
 33        Expression operator not allowed&lt;br /&gt;
 34        No DO loop conditional clause&lt;br /&gt;
 35        String expression required&lt;br /&gt;
 36        Fraction, where integer required&lt;br /&gt;
 37        Integer/symbolic constant required&lt;br /&gt;
 38        -reserved for future use-&lt;br /&gt;
 39        Invalid usefile parameter&lt;br /&gt;
 40        LOOP statement has no preceding &amp;quot;DO&amp;quot;&lt;br /&gt;
 41        SELECT/CASE sequence error&lt;br /&gt;
 42        CASE: &amp;quot;FROM&amp;quot; with no &amp;quot;TO&amp;quot; or &amp;quot;THRU&amp;quot;&lt;br /&gt;
 43        &amp;quot;CASE ELSE&amp;quot; no last &amp;quot;CASE&amp;quot;&lt;br /&gt;
 44        MTB51 read\write error&lt;br /&gt;
 45        .ELSE without .IF&lt;br /&gt;
 46        Unrecognizable compiler directive&lt;br /&gt;
 47        - reserved -&lt;br /&gt;
 48        - reserved -&lt;br /&gt;
 49        - reserved -&lt;br /&gt;
 50        - reserved -&lt;br /&gt;
 51        Program exceeds 64K&lt;br /&gt;
 52        Too many internal statements&lt;br /&gt;
 53        Array element not allowed for SELECT CASE expression&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/IB_Statements/move</id>
		<title>IB Statements/move</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/IB_Statements/move"/>
				<updated>2017-11-10T16:17:17Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MOVE statement''' &lt;br /&gt;
&lt;br /&gt;
'''Syntax:'''  MOVE (string-argument-1, string-argument-2, starting-position, length)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  The MOVE statement moves a specified number of characters from one string into another string, starting at a specified location in the second string. &lt;br /&gt;
&lt;br /&gt;
String-argument-1 may be a string constant, a single element string variable, a string array element, a string expression or a string function. &lt;br /&gt;
&lt;br /&gt;
String-argument-2 must be a string variable. &lt;br /&gt;
&lt;br /&gt;
The starting position and length are numeric values. They may be numeric constants or single element numeric variables. The starting position is the position in the second string argument into which the characters from the first string argument are to be moved. The length is the number of characters to be moved. &lt;br /&gt;
 &lt;br /&gt;
'''Example:'''  MOVE(A$,B$,2,3)&lt;br /&gt;
&lt;br /&gt;
If A$ = &amp;quot;ABCDEFG&amp;quot; and B$ = &amp;quot;123456789&amp;quot;, after the move operation, A$ will be &amp;quot;ABCDEFG&amp;quot; and B$ will be &amp;quot;1ABC56789&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Virtual_Dongle</id>
		<title>Virtual Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Virtual_Dongle"/>
				<updated>2017-09-20T16:17:05Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet Security Server Virtual Dongle Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Security Server Virtual Dongle Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Virtual Dongle Server was released with Comet Server Products version 13. Here are the requirements to use it:&lt;br /&gt;
&lt;br /&gt;
*A signed EULA must be on file with Signature Systems that includes the conditions of using a virtual dongle. You'll find the current End User License Agreement.pdf here: [http://www.signature.net/download/End%20User%20License%20Agreement.pdf]&lt;br /&gt;
&lt;br /&gt;
*You'll need a dongle server registration file called DRB.txt. This will be emailed to you when your order for the virtual dongle is processed.&lt;br /&gt;
*The Comet Security Server must have a reliable internet connection.  If you use Internet Security Software you'll need to set it up to allow 2-way traffic with dongle.signature.net (to port 80) and signature.net (to port 8080).  Be aware that your use of a proxy server may interfere with this communication.&lt;br /&gt;
*The Comet Security Server must be running as a service and have '''administrator privileges'''. &lt;br /&gt;
*A Virtual Dongle may be associated with one and only one computer.  Once installed you may not move it to another computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are replacing an existing USB or parallel dongle:&lt;br /&gt;
&lt;br /&gt;
*Install Server Products vsn 16 or higher on your server and make sure all is well using the existing dongle.&lt;br /&gt;
*Put the DRB.txt file into your Comet Services folder. This is the same folder where you installed the Server Products release.&lt;br /&gt;
*Stop the Comet Services then remove the old dongle.&lt;br /&gt;
*Make sure your internet connection is working and restart the Comet Services. When you restart the services it should process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you simply restart the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
*Return the old dongle to Signature Systems so that the permanent certificate can be issued. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are installing a new system:&lt;br /&gt;
&lt;br /&gt;
*Make sure your internet connection is working on the server where the Comet Services will be installed.&lt;br /&gt;
*If you haven't already done so, we recommend you install the Microsoft Redistributables Package.  Some of the .NET framework files are used by the Security Server.  You can download vcredist_x86.exe here [http://www.signature.net/download/MailBoxes/]&lt;br /&gt;
*Create the Comet Services folder.&lt;br /&gt;
*Put the DRB.txt file into that folder.&lt;br /&gt;
*Install Server Products vsn 16 or higher on your server. When it asks for dongle type, choose USB.  This is because the Security Server will attempt to find a USB dongle first and it needs the drivers to be able to do that.  When it asks if you want to restart Windows, say '''&amp;quot;No&amp;quot;'''. Then use the Windows Services program to start the Comet Services. It will process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you start the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Virtual_Dongle</id>
		<title>Virtual Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Virtual_Dongle"/>
				<updated>2017-03-02T16:55:34Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet Security Server Virtual Dongle Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Security Server Virtual Dongle Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Virtual Dongle Server was released with Comet Server Products version 13. Here are the requirements to use it:&lt;br /&gt;
&lt;br /&gt;
*A signed EULA must be on file with Signature Systems that includes the conditions of using a virtual dongle. You'll find the current End User License Agreement.pdf here: [http://www.signature.net/download/End%20User%20License%20Agreement.pdf]&lt;br /&gt;
&lt;br /&gt;
*You'll need a dongle server registration file called DRB.txt. This will be emailed to you when your order for the virtual dongle is processed.&lt;br /&gt;
*The Comet Security Server must have a reliable internet connection.  If you use Internet Security Software you'll need to set it up to allow 2-way traffic with dongle.signature.net (port 80) and signature.net (port 8080).&lt;br /&gt;
*The Comet Security Server must be running as a service and have '''administrator privileges'''. &lt;br /&gt;
*A Virtual Dongle may be associated with one and only one computer.  Once installed you may not move it to another computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are replacing an existing USB or parallel dongle:&lt;br /&gt;
&lt;br /&gt;
*Install Server Products vsn 16 or higher on your server and make sure all is well using the existing dongle.&lt;br /&gt;
*Put the DRB.txt file into your Comet Services folder. This is the same folder where you installed the Server Products release.&lt;br /&gt;
*Stop the Comet Services then remove the old dongle.&lt;br /&gt;
*Make sure your internet connection is working and restart the Comet Services. When you restart the services it should process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you simply restart the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
*Return the old dongle to Signature Systems so that the permanent certificate can be issued. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are installing a new system:&lt;br /&gt;
&lt;br /&gt;
*Make sure your internet connection is working on the server where the Comet Services will be installed.&lt;br /&gt;
*If you haven't already done so, we recommend you install the Microsoft Redistributables Package.  Some of the .NET framework files are used by the Security Server.  You can download vcredist_x86.exe here [http://www.signature.net/download/MailBoxes/]&lt;br /&gt;
*Create the Comet Services folder.&lt;br /&gt;
*Put the DRB.txt file into that folder.&lt;br /&gt;
*Install Server Products vsn 16 or higher on your server. When it asks for dongle type, choose USB.  This is because the Security Server will attempt to find a USB dongle first and it needs the drivers to be able to do that.  When it asks if you want to restart Windows, say '''&amp;quot;No&amp;quot;'''. Then use the Windows Services program to start the Comet Services. It will process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you start the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Virtual_Dongle</id>
		<title>Virtual Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Virtual_Dongle"/>
				<updated>2017-03-02T16:54:58Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet Security Server Virtual Dongle Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comet Security Server Virtual Dongle Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Virtual Dongle Server was released with Comet Server Products version 13. Here are the requirements to use it:&lt;br /&gt;
&lt;br /&gt;
*A signed EULA must be on file with Signature Systems that includes the conditions of using a virtual dongle. You'll find the current End User License Agreement.pdf here: [http://www.signature.net/download/End%20User%20License%20Agreement.pdf]&lt;br /&gt;
&lt;br /&gt;
*You'll need a dongle server registration file called DRB.txt. This will be emailed to you when your order for the virtual dongle is processed.&lt;br /&gt;
*The Comet Security Server must have a reliable internet connection.  If you use Internet Security Software you'll need to set it up to allow 2-way traffic with dongle.signature.net (port 80) and signature.net (port 8080).&lt;br /&gt;
*The Comet Security Server must be running as a service and have '''administrator privileges'''. &lt;br /&gt;
*A Virtual Dongle may be associated with one and only one computer.  Once installed you may not move it to another computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are replacing an existing USB or parallel dongle:&lt;br /&gt;
&lt;br /&gt;
*Install Server Products vsn 16 or higher on your server and make sure all is well using the existing dongle.&lt;br /&gt;
*Put the DRB.txt file into your Comet Services folder. This is the same folder where you installed the Server Products release.&lt;br /&gt;
*Stop the Comet Services then remove the old dongle.&lt;br /&gt;
*Make sure your internet connection is working and restart the Comet Services. When you restart the services it should process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you simply restart the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;br /&gt;
*Return the old dongle to Signature Systems so that the permanent certificate can be issued. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;If you are installing a new system:&lt;br /&gt;
&lt;br /&gt;
*Make sure your internet connection is working on the server where the Comet Services will be installed.&lt;br /&gt;
*If you haven't already done so, we recommend you install the Microsoft Redistributables Package.  Some of the .NET framework files are used by the Security Server.  You can download vcredist_x86.exe here [http://www.signature.net/download/MailBoxes/]&lt;br /&gt;
*Create the Comet Services folder.&lt;br /&gt;
*Put the DRB.txt file into that folder.&lt;br /&gt;
*Install Server Products vsn 13 or higher on your server. When it asks for dongle type, choose USB.  This is because the Security Server will attempt to find a USB dongle first and it needs the drivers to be able to do that.  When it asks if you want to restart Windows, say '''&amp;quot;No&amp;quot;'''. Then use the Windows Services program to start the Comet Services. It will process the DRB.txt, retrieve and install the new demo license certificate, and come up. You should check the CSecSrv.log file for activity logging. It's in the LOGS folder that will be created under your Comet Services folder. '''NOTE: It is recommended that you start the Comet Services using the Windows Services program rather than rebooting Windows. This is to be sure that your TCP/IP services are fully initialized before the Comet Services start. This is only an issue when first registering your dongle.'''&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Subscription_Benefits</id>
		<title>Subscription Benefits</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Subscription_Benefits"/>
				<updated>2017-02-21T22:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Benefits of being a Comet Subscriber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if you are not a current subscriber to the Comet Software, most of your core applications will continue to work. However, Signature Systems continually improves its software and adds new features to the Comet System. These features are mainly available to current Comet Subscribers only. &lt;br /&gt;
=Benefits of being a Comet Subscriber=&lt;br /&gt;
&lt;br /&gt;
*Entitled to all updates made to existing products during the subscription year&lt;br /&gt;
*Free COM license for each Comet license. This license is required for:&lt;br /&gt;
**CometExplorer&lt;br /&gt;
**(CopyFile) mnemonic through the file server.  Without a COM license CopyFile is done directly with Windows calls which requires the client to have Windows access to the source and destination folders.  This could require you to purchase additional Client Access Licenses from Microsoft.&lt;br /&gt;
**(Document=) mnemonic.  This mnemonic is used by features of the email printer, the pdf printer, and DocMgr.&lt;br /&gt;
**The DataExpress version of the Reporter.&lt;br /&gt;
*Protection against the loss of Comet access because of theft or verifiable loss of the security module. We will replace the plug/usb and Comet licenses immediately, at no charge to the subscriber. Comet users who are not subscribers must rely on their business insurance to replace their system by completely repurchasing Comet at current prices. The expense and delay far outweigh the cost of the subscription.&lt;br /&gt;
*Priority access to the technical support staff.&lt;br /&gt;
*The convenience of being able to apply CometAnywhere licenses to any version of the CometAnywhere host.  This can be especially useful at subscription time.  When new CometAnywhere licenses are issued you may continue to run an older version of Comet on the host until it is convenient for you to install the upgrade.&lt;br /&gt;
*Free ODBC/mySQL licenses for each Comet license.&lt;br /&gt;
&lt;br /&gt;
==These benefits expire at the end of the subscription period.==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Main_Page"/>
				<updated>2017-02-10T17:07:20Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet by Signature Systems, Inc. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Comet by Signature Systems, Inc.'''=&lt;br /&gt;
&lt;br /&gt;
* [[Getting Started With Comet]]&lt;br /&gt;
&lt;br /&gt;
* [[Subscription Benefits]]&lt;br /&gt;
&lt;br /&gt;
* [[Virtual Dongle]]&lt;br /&gt;
&lt;br /&gt;
* Get your questions answered with [[FAQs]]&lt;br /&gt;
&lt;br /&gt;
* [[CFILES - the replacement for DbMgr]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet Meetings]]&lt;br /&gt;
&lt;br /&gt;
* [[Configuration and Installation]]&lt;br /&gt;
&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet32]]&lt;br /&gt;
&lt;br /&gt;
* [[STL Containers]]&lt;br /&gt;
&lt;br /&gt;
* [[Xap and Comet32]]&lt;br /&gt;
&lt;br /&gt;
* [[CometAnywhere Mobile]]&lt;br /&gt;
&lt;br /&gt;
* [[Products]]&lt;br /&gt;
&lt;br /&gt;
* [[Utilities]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet Tips]]&lt;br /&gt;
&lt;br /&gt;
* [http://support.signature.net/ Support - Users Forum]&lt;br /&gt;
&lt;br /&gt;
* [[How to edit this Wiki]]&lt;br /&gt;
&lt;br /&gt;
* '''[http://cc.signature.net/guest/adduser Request ability to edit pages on this Wiki]'''&lt;br /&gt;
&lt;br /&gt;
*[[Comet And RDP]]&lt;br /&gt;
&lt;br /&gt;
A hint from the old guy. The Wiki's text size is based on the browser's settings. In '''Firefox''' I set the minimum font size to 16.&lt;br /&gt;
&lt;br /&gt;
Tools &amp;gt;&amp;gt; Options &amp;gt;&amp;gt; Content &amp;gt;&amp;gt; Advanced. Minimum font size.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Subscription_Benefits</id>
		<title>Subscription Benefits</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Subscription_Benefits"/>
				<updated>2016-12-13T17:57:46Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Benefits of being a Comet Subscriber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if you are not a current subscriber to the Comet Software, most of your core applications will continue to work. However, Signature Systems continually improves its software and adds new features to the Comet System. These features are mainly available to current Comet Subscribers only. &lt;br /&gt;
=Benefits of being a Comet Subscriber=&lt;br /&gt;
&lt;br /&gt;
*Entitled to all updates made to existing products during the subscription year&lt;br /&gt;
*Free COM license for each Comet license. This license is required for:&lt;br /&gt;
**CometExplorer&lt;br /&gt;
**(CopyFile) mnemonic through the file server.  Without a COM license CopyFile is done directly with Windows calls which requires the client to have Windows access to the source and destination folders.  This could require you to purchase additional Client Access Licenses from Microsoft.&lt;br /&gt;
**(Document=) mnemonic.  This mnemonic is used by features of the email printer, the pdf printer, and DocMgr.&lt;br /&gt;
**The DataExpress version of the Reporter.&lt;br /&gt;
*Protection against the loss of Comet access because of theft or verifiable loss of the security module. We will replace the plug/usb and Comet licenses immediately, at no charge to the subscriber. Comet users who are not subscribers must rely on their business insurance to replace their system by completely repurchasing Comet at current prices. The expense and delay far outweigh the cost of the subscription.&lt;br /&gt;
*Priority access to the technical support staff.&lt;br /&gt;
*The convenience of being able to apply CometAnywhere licenses to any version of the CometAnywhere host.  This can be especially useful at subscription time.  When new CometAnywhere licenses are issued you may continue to run an older version of Comet on the host until it is convenient for you to install the upgrade.&lt;br /&gt;
*Free ODBC/mySQL licenses for each Comet license.&lt;br /&gt;
*Free OleDbLite license for each Comet license (required for interface to Crystal Reports.  Note: We can only interface to version 8.x of Crystal Reports.).&lt;br /&gt;
&lt;br /&gt;
==These benefits expire at the end of the subscription period.==&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2016-10-11T15:03:43Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* FAQs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecLic utility.  This requires a WinSock gateway in your configuration.  If you are running Comet32, SecLic has been replaced by SecSrv.  The WinSock gateway is automatically configured for you in Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, just set ForceC32 = 1 in your CosWGlob.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if a program was compiled for Comet16 or Comet32?==&lt;br /&gt;
There are several ways.&lt;br /&gt;
* CometExplorer's TYPE column indicates the type of object file: C16 Program, C32 Program, or C32M Program (Comet Mobile)&lt;br /&gt;
* When you run a program in Comet32 a colored block on the window's status line indicates the type of program: purple for Comet16; green for Comet32&lt;br /&gt;
* From inside your program you can use FSTAT on an object file to determine if it was compiled for Comet16 or Comet32.  Look in position 135 [[http://wiki.signature.net/index.php/IB_Statements/fstat]] &lt;br /&gt;
* PSTAT can also be used to check the type of a program that's currently running.  Look in position 219 [[http://wiki.signature.net/index.php/IB_Statements/pstat]]&lt;br /&gt;
* If you attempt to run a Comet32 program in Comet16 you will get an Error 63.&lt;br /&gt;
&lt;br /&gt;
==Can I use the Comet16 compiler on a 64-bit computer?==&lt;br /&gt;
No, you can only run the Comet16 compiler from a computer that can run Comet16.  When compiling from UltraEdit, either the Comet16 compiler or the Comet32 compiler will be launched depending on the version of Comet currently running on the host computer.  So, on a 32-bit computer you can compile with either the Comet16 compiler or the Comet32 compiler, but on a 64-bit computer you can only compile with the Comet32 compiler.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Getting_Started_With_Comet</id>
		<title>Getting Started With Comet</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Getting_Started_With_Comet"/>
				<updated>2016-08-17T18:45:29Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comet is a versatile computing environment developed by Signature Systems for business and web applications running on Microsoft Windows.  It includes a multi-tasking runtime component and a high-speed database engine.  It can run as a standalone system, in a local area network, in a wide area network, and on the Internet. One of Comet’s notable strengths is its remote application processing, which is accomplished with CometAnywhere and/or eComet.  Application programming is primarily done in Signature's Internet Basic compiled language.  There is also an option to access the Comet File Server from COM-compliant languages such as Visual Basic and C++.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Installation'''&amp;lt;br&amp;gt;&lt;br /&gt;
If you are running in a network environment you should install your server first. Once it is all setup, you can install your workstations.  Download the Server Install Program, CometServerProductsxxxx.exe, where xxxx is the version number from http://www.signature.net/download/CometServer%20Products%20%28Windows%29/  While you may install it in whatever folder you choose, we recommend C:\Comet Services as you will see references to this folder name elsewhere in our documentation.  By default the installation will setup both the Security Server (using a USB Security Token) and the File Server to run as a Windows service.  Note the USB Security Token should be installed onto the server and the Comet License file placed in the C:\Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the Comet client software from http://signature.net/download/Comet2016/  While you may install it in whatever folder you choose, we recommend C:\Comet on your server as you will see references to this folder name elsewhere in our documentation.  The clients will be setup to load the Comet executables from the server.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the supporting utilities from http://signature.net/download/REL/ and http://www.signature.net/download/UTL/  Unzip the REL folder into server folder C:\Comet\REL and the UTL folder into C:\Comet\UTL.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comet uses a .ini file to define its configuration.  You must establish this file before attempting to run Comet for the first time.  You can find the layout of this file here: http://wiki.signature.net/index.php/The_SYSGEN_configuration_utility  It is recommended that you keep this file in server folder C:\Comet.  When you run Comet for the first time it should recognize that the .ini file needs to be processed.  It will run SYSGEN.  Once this runs successfully, restart Comet and you should see the default start program, QMONITOR.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Access to particular folders and some convenience options may be specifed using the optional QMONITOR Security System.  Here is a link to some documentation on how to set that up: http://www.signature.net/signature/techdoc/security/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''File System and Programming'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While the Comet File System handles several file types, the most common data file is the keyed file.  Here is some info on Comet Keyed Files: http://wiki.signature.net/index.php/Intro_to_Multi-Keyed_Files&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Internet Basic''' (IB) will be your primary programming language for Comet.  Here's a link to a statement summary: http://signature.net/ib/stmtsum.htm  In addition, several enhancements have been added to our current generation product, Comet32, including user-defined procs: http://wiki.signature.net/index.php/IB_Statements/UserDefinedProcs&lt;br /&gt;
IB source files may be any Comet data file type however we strongly recommend using a text file with a &amp;quot;.ibs&amp;quot; (for IB source) extension.  This file type can be recognized by the recommended text editor, UltraEdit from IDM Computer Solutions http://www.ultraedit.com/  You should purchase the editor directly from IDM.  After it is installed, run CometUESetup.exe to add the Comet extensions to UltraEdit.  You'll find CometUESetup.exe in your Comet executables folder, C:\Comet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To write Windows dialog programs for Comet you'll use the optional '''Comet Windows API'''.  You can download that here: http://www.signature.net/download/WinDev/  There are 2 components to this library, WDL (the API code library) and DLG (sample programs).  You'll need to install Wdl1401.zip into folder C:\Comet\WDL and Dlg1401.zip into C:\Comet\DLG.  There's also a third folder of sample programs for some special purpose IB instructions.  For this, install DMW1402.zip into C:\Comet\DMW.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Utilities'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The Report Generator''' script language can be used for quick reporting on your data.  Here's a link to an introduction to its capabilites: http://signature.net/signature/techdoc/rpg/  The Report Generator programs are included in the UTL folder installed above.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Comet Explorer''' provides a collection of data file management utilites: http://www.signature.net/2005/cometex.html  You can run it by clicking on the &amp;quot;Comet Explorer&amp;quot; hyperlink on the QMONITOR screen or by running CometEx.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a set of older utilites accessible by clicking the '''&amp;quot;Utilities&amp;quot; hyperlink''' in QMONITOR.  Note that these utilities have been replaced by Comet Explorer and may not support all the newest Comet features and file types.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''XAP for eComet Web Applications'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XAP is an optional add-on to your Comet system that provides the capability to write interactive web-based applications that have access to the Comet file system.  Here's a link to a tutorial and demo applications: http://www.signature.net/ecomet/index.html&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''mySQL'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comet provides a SQL device that allows you to connect to a MySQL database (remote or local) from within an IB application. It is designed to provide a simple way to access your mySQL data for use within Comet.  Here's more info on how to use this device: http://wiki.signature.net/index.php/SQL_Driver&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''COM-compliant access to the File Server'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although most all of your Comet development will be done in IB, there may be an occasion where it is more convenient to write your Comet application in another language such as Visual Basic or C++.  The CometLib API provides this capability.  You'll find documentation and programming examples here: http://wiki.signature.net/index.php/CometLib&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Links for more help'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''Site Map''' page is a good place to start a search for additional documentation http://www.signature.net/sitemap.htm .  For example it's here you'll find information about the Comet PDF and Email Printers, Comet startup-options, and CometAnywhere for remote clients.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have also started a '''wiki''' which may provide additional help: http://wiki.signature.net/index.php/Main_Page&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And of course there's our '''Support Forum''' http://support.signature.net/  This is supported by the Signature Systems staff and members of the Comet user community.  It's a great resource for getting answers to your questions.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Main_Page"/>
				<updated>2016-08-16T17:47:20Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Comet by Signature Systems, Inc. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;='''Comet by Signature Systems, Inc.'''=&lt;br /&gt;
&lt;br /&gt;
* [[Getting Started With Comet]]&lt;br /&gt;
&lt;br /&gt;
* [[Subscription Benefits]]&lt;br /&gt;
&lt;br /&gt;
* Get your questions answered with [[FAQs]]&lt;br /&gt;
&lt;br /&gt;
* [[CFILES - the replacement for DbMgr]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet Meetings]]&lt;br /&gt;
&lt;br /&gt;
* [[Configuration and Installation]]&lt;br /&gt;
&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet32]]&lt;br /&gt;
&lt;br /&gt;
* [[STL Containers]]&lt;br /&gt;
&lt;br /&gt;
* [[Xap and Comet32]]&lt;br /&gt;
&lt;br /&gt;
* [[CometAnywhere Mobile]]&lt;br /&gt;
&lt;br /&gt;
* [[Products]]&lt;br /&gt;
&lt;br /&gt;
* [[Utilities]]&lt;br /&gt;
&lt;br /&gt;
* [[Comet Tips]]&lt;br /&gt;
&lt;br /&gt;
* [http://support.signature.net/ Support - Users Forum]&lt;br /&gt;
&lt;br /&gt;
* [[How to edit this Wiki]]&lt;br /&gt;
&lt;br /&gt;
* '''[http://cc.signature.net/guest/adduser Request ability to edit pages on this Wiki]'''&lt;br /&gt;
&lt;br /&gt;
*[[Comet And RDP]]&lt;br /&gt;
&lt;br /&gt;
A hint from the old guy. The Wiki's text size is based on the browser's settings. In '''Firefox''' I set the minimum font size to 16.&lt;br /&gt;
&lt;br /&gt;
Tools &amp;gt;&amp;gt; Options &amp;gt;&amp;gt; Content &amp;gt;&amp;gt; Advanced. Minimum font size.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2016-08-16T17:41:53Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Should I run Comet16 or Comet32? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecLic utility.  This requires a WinSock gateway in your configuration.  If you are running Comet32, SecLic has been replaced by SecSrv.  The WinSock gateway is automatically configured for you in Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, just set ForceC32 = 1 in your CosWGlob.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if a program was compiled for Comet16 or Comet32?==&lt;br /&gt;
There are several ways.&lt;br /&gt;
* CometExplorer's TYPE column indicates the type of object file: C16 Program, C32 Program, or C32M Program (Comet Mobile)&lt;br /&gt;
* When you run a program in Comet32 a colored block on the window's status line indicates the type of program: purple for Comet16; green for Comet32&lt;br /&gt;
* From inside your program you can use FSTAT on an object file to determine if it was compiled for Comet16 or Comet32.  Look in position 135 [[http://wiki.signature.net/index.php/IB_Statements/fstat]] &lt;br /&gt;
* PSTAT can also be used to check the type of a program that's currently running.  Look in position 219 [[http://wiki.signature.net/index.php/IB_Statements/pstat]]&lt;br /&gt;
* If you attempt to run a Comet32 program in Comet16 you will get an Error 63.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2016-08-16T17:36:55Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Should I run Comet16 or Comet32? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecLic utility.  This requires a WinSock gateway in your configuration.  If you are running Comet32, SecLic has been replaced by SecSrv.  The WinSock gateway is automatically configured for you in Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
Alternatively you can use the Force32 = 1 option in your CosW.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, just set Force32 = 1 in your CosWGlob.ini file &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if a program was compiled for Comet16 or Comet32?==&lt;br /&gt;
There are several ways.&lt;br /&gt;
* CometExplorer's TYPE column indicates the type of object file: C16 Program, C32 Program, or C32M Program (Comet Mobile)&lt;br /&gt;
* When you run a program in Comet32 a colored block on the window's status line indicates the type of program: purple for Comet16; green for Comet32&lt;br /&gt;
* From inside your program you can use FSTAT on an object file to determine if it was compiled for Comet16 or Comet32.  Look in position 135 [[http://wiki.signature.net/index.php/IB_Statements/fstat]] &lt;br /&gt;
* PSTAT can also be used to check the type of a program that's currently running.  Look in position 219 [[http://wiki.signature.net/index.php/IB_Statements/pstat]]&lt;br /&gt;
* If you attempt to run a Comet32 program in Comet16 you will get an Error 63.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2016-08-16T17:01:02Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* FAQs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecLic utility.  This requires a WinSock gateway in your configuration.  If you are running Comet32, SecLic has been replaced by SecSrv.  The WinSock gateway is automatically configured for you in Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, instead of /32 on each client set Force32 = 1 in your CosWGlob.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if a program was compiled for Comet16 or Comet32?==&lt;br /&gt;
There are several ways.&lt;br /&gt;
* CometExplorer's TYPE column indicates the type of object file: C16 Program, C32 Program, or C32M Program (Comet Mobile)&lt;br /&gt;
* When you run a program in Comet32 a colored block on the window's status line indicates the type of program: purple for Comet16; green for Comet32&lt;br /&gt;
* From inside your program you can use FSTAT on an object file to determine if it was compiled for Comet16 or Comet32.  Look in position 135 [[http://wiki.signature.net/index.php/IB_Statements/fstat]] &lt;br /&gt;
* PSTAT can also be used to check the type of a program that's currently running.  Look in position 219 [[http://wiki.signature.net/index.php/IB_Statements/pstat]]&lt;br /&gt;
* If you attempt to run a Comet32 program in Comet16 you will get an Error 63.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/FAQs</id>
		<title>FAQs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/FAQs"/>
				<updated>2016-08-16T16:50:57Z</updated>
		
		<summary type="html">&lt;p&gt;Barb: /* Should I run Comet16 or Comet32? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FAQs =&lt;br /&gt;
&lt;br /&gt;
==Where are all the various log files?==&lt;br /&gt;
When troubleshooting problems with your Comet installation, a good first place to start is with the appropriate log file.  Below we'll tell you where the default locations of the files are.  But you can control the location of the Comet logs by creating a %COMETDATA% environment variable.  This does not apply to the Comet Services log files.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the log files and their default locations:&lt;br /&gt;
&lt;br /&gt;
'''The Comet Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
Normally the easiest way to find the Comet log is to click on the &amp;quot;System Logs&amp;quot; button on the QMONITOR screen.  This will open Windows Explorer to the folder containing the log.  It will have all of the log information since the last time the log file was either erased or truncated.  If you only need to see the log for the current Comet session just click on View-&amp;gt;Comet log at the top of your Comet window (full Comet sessions only).&lt;br /&gt;
&lt;br /&gt;
If you can't even run Comet and you need the log, click on the &amp;quot;Details&amp;quot; button at the bottom right corner of the splash screen when you attempt to run Comet.  When the log display opens up, click on &amp;lt;b&amp;gt;File-&amp;gt;Open log file&amp;lt;/b&amp;gt;.  It will open up in your text editor.&lt;br /&gt;
&lt;br /&gt;
Another way to find the path to the Comet log file is to look at the value assigned to your LOGS alias.  Click on Edit-&amp;gt;Directory Aliases at the top of your Comet window to view the path.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using the /log command line argument on your Comet shortcut then the Comet log will be in the user's temp folder (%temp%).  It'll be called [profile].log, where [profile] is the Comet profile name matching the /PN= command line argument.&lt;br /&gt;
&lt;br /&gt;
'''The CosP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
For printing problems this is the first place to look.  You'll find it in the same folder as the Comet log (above).  In some error situations you will see a message to find additional information in CosPErr.log.  Follow the path in the error message to retrieve that file as well.&amp;lt;br&amp;gt;&lt;br /&gt;
In order to get the printing logs you must turn on the logging option in your CosW.ini.  See info below about where to find CosW.ini and where to find a list of the settings.&lt;br /&gt;
&lt;br /&gt;
'''The Comet Services Logs'''&amp;lt;br&amp;gt;&lt;br /&gt;
Both the Security Server and the File Server produce logs which may be helpful in troubleshooting problems.  You'll find the logs in a folder called LOGS in your Comet Services folder.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Security Server log is called CSecSrv.log.  Each time you restart the Security Server a new log is started so that seven generations of logs are kept.  They are named CSecSrvN.log, where N is a number from 1 to 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current file server log is called CometSrv.log.  Each time you restart the File Server a new log is started so that seven generations of logs are kept.  They are named CometSrvN.log, where N is a number from 1 to 6.  The log is only created if you have logging turned on.  You'll need administrative privileges to turn logging on.  From the file server console, click on View-&amp;gt;Properties.  (If the dialog is disabled, you'll need to restart the console using &amp;quot;Run as administrator&amp;quot;.)  Check the &amp;quot;Log Messages&amp;quot; box under &amp;quot;Diagnostic Logging&amp;quot;.  Select the &amp;quot;All Messages&amp;quot; radio button.  The top half of the properties dialog lets you choose which functions will generate log entries.  Unless you are troubleshooting a particular function we recommend you choose the &amp;quot;Show None&amp;quot; button.  This will restrict logging to just logins and logouts and any error messages that occur.  Adding additional functions to the logging can impact file server performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The XAP Log'''&amp;lt;br&amp;gt;&lt;br /&gt;
An XAP log is only generated if you have a LOGFILE statement in your #XAP file.  The LOGFILE specifies where to find the log.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where can I find my CosW.ini file?==&lt;br /&gt;
If you can find your Comet.log file, finding CosW.ini is really easy.  Navigate one folder up from the folder containing the Comet.log file.  You'll find CosW.ini there.  This is true even if you are using the %COMETDATA% environment variable.  This file contains important settings for how your Comet session and printing will be handled.  You can find out about those settings here [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What ports are used by Signature Systems software?==&lt;br /&gt;
You can find a list of ports here [[http://wiki.signature.net/index.php/TCP/IP_Ports_used_by_Signature_Products]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==I'm getting an error message that CometLib couldn't be registered.  What should I do?==&lt;br /&gt;
The CometLib dll should register automatically when you start Comet.  If not, there are a couple of things to try.&amp;lt;br&amp;gt;&lt;br /&gt;
First, right-click your Comet shortcut and select &amp;quot;Run as administrator&amp;quot;.  If CometLib registers successfully, you can run Comet normally from now on.&amp;lt;br&amp;gt;&lt;br /&gt;
If that was unsuccessful then you can try to register it manually.  It needs to be registered for the user's temp folder.  To do that, get to the Windows command prompt by running cmd.exe.  Change to the temp folder by typing cd %temp%.  Now you can register CometLib by typing regsvr32 cometlib.dll&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Will the Comet Services run on a virtual server?==&lt;br /&gt;
Yes as long as the server is running a supported version of Windows [[http://www.signature.net/signature/techdoc/general/systreq.htm]].  You will probably want to consider using a virtual dongle for your Comet security.  Here's a link to info about the virtual dongle: [[http://wiki.signature.net/index.php/Virtual_Dongle]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How can I get the latest license certificate for my security token?==&lt;br /&gt;
There are a couple of ways.  First if you are able to run Comet you can use the SecLic utility.  This requires a WinSock gateway in your configuration.  If you are running Comet32, SecLic has been replaced by SecSrv.  The WinSock gateway is automatically configured for you in Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you can't run Comet at all, you can still get the latest license.  For Server versions prior to 16.00, stop the Comet Services.  Erase the license.txt and any [plugnumber].txt files from your Comet Services folder.  When you restart the Comet Services the Security Server will automatically connect to our server to get the license if one is not found in your folder.&amp;lt;br&amp;gt;If you're running Comet Services 16.00 or later, it's even easier.  From the Security Server console, click Edit-&amp;gt;Update licenses.  Now click the &amp;quot;Update Certificate&amp;quot; button.  Your certificate will be retrieved and installed for you.&amp;lt;br&amp;gt;&lt;br /&gt;
These methods work for parallel, USB, and virtual dongles.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Should I run Comet16 or Comet32?==&lt;br /&gt;
Comet16 can only be run on 32-bit versions of Windows and it has been retired.  No further work will be done on it.  We recommend you run Comet32.&amp;lt;br&amp;gt;&amp;lt;Br&amp;gt;&lt;br /&gt;
If you are running a 64-bit version of Windows, Comet32 will run automatically.  On 32-bit versions of Windows you can request Comet32 by including /32 on your Comet shortcut command line: c:\comet\comet.exe /pn=nodename /32&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to make sure all Comet clients on the network are running Comet32, instead of /32 on each client set Force32 = 1 in your CosWGlob.ini file [[http://wiki.signature.net/index.php/CosW.ini_settings]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Other things to consider:&amp;lt;br&amp;gt;&lt;br /&gt;
Comet16 can run programs compiled for Comet16.  It can also run programs compiled for Qantel computers.&amp;lt;br&amp;gt;&lt;br /&gt;
Comet32 can run programs compiled for Comet16 and programs compiled for Comet32.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check the Systems Requirements chart for [http://www.signature.net/signature/techdoc/general/systreq.htm Comet compatibility with the various versions of Windows]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note:  64-bit CometAnywhere clients can run their Comet session from a Comet16 CA host.  In an environment where factors are preventing deployment of Comet32 at this time, this is a way you can run Comet16 on computers that otherwise could only run Comet32.&lt;/div&gt;</summary>
		<author><name>Barb</name></author>	</entry>

	</feed>