<?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=SteveA&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=SteveA&amp;title=Special%3AContributions"/>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Special:Contributions/SteveA"/>
		<updated>2026-04-25T11:40:15Z</updated>
		<subtitle>From CometWiki</subtitle>
		<generator>MediaWiki 1.16.0</generator>

	<entry>
		<id>http://wiki.signature.net/index.php/IB_Statements/lock</id>
		<title>IB Statements/lock</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/IB_Statements/lock"/>
				<updated>2012-05-24T14:14:47Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''LOCK statement''' &lt;br /&gt;
&lt;br /&gt;
'''Syntax:'''  LOCK (lun) [,EXCP=statement-label | NOEXCP]  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  The LOCK statement locks a logical unit number. It is a way to prevent a specified file from being opened by another user. &lt;br /&gt;
&lt;br /&gt;
The lun parameter is a numeric or symbolic constant that is previously assigned to a file by an OPEN statement -- it represents the logical unit to be locked. &lt;br /&gt;
&lt;br /&gt;
If th LOCK statement is attempted while another user has the particular file open, an exception 7 (FILE UNAVAILABLE -- LOCK/UNLOCK ERROR) will be encountered. &lt;br /&gt;
 &lt;br /&gt;
'''Example:'''  OPEN (1) &amp;quot;FILEB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LOCK (1)&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
 &lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
UNLOCK (1)&lt;br /&gt;
&lt;br /&gt;
CLOSE (1)&lt;br /&gt;
&lt;br /&gt;
=========================================================================&lt;br /&gt;
&lt;br /&gt;
'''Posted by Jim Guerber on August 25, 2008 at 18:16:31:'''&lt;br /&gt;
&lt;br /&gt;
In Reply to: Re: LOCK question posted by Grant Foraker on August 25, 2008 at 14:33:51:&lt;br /&gt;
&lt;br /&gt;
Ok, Ok.&lt;br /&gt;
&lt;br /&gt;
We will try to turn this &amp;quot;feature&amp;quot; off. Here is what I found.&lt;br /&gt;
&lt;br /&gt;
When a program locks a file, the same partition may open the same file on multiple LUNS without a problem.&lt;br /&gt;
&lt;br /&gt;
If a program running in another partition tries to open the file, it will get a lock violation.&lt;br /&gt;
&lt;br /&gt;
If a program wishes to unlock a file and not close it, it can issue an unlock through the unlock(LUN) statement.(The unlock may be issued from ANY LUN that has the file opened.)&lt;br /&gt;
&lt;br /&gt;
The lock flag was getting reset when ANY LUN on the owning partition was closed. This happens whether the close happens in an enter program or not. This was probably incorrect.&lt;br /&gt;
&lt;br /&gt;
We will make the lock persistent such that the only way to unlock a file is to either issue an unlock or close the file on the last LUN which has it open.&lt;br /&gt;
&lt;br /&gt;
Does that make sense to everyone?&lt;br /&gt;
&lt;br /&gt;
If you all agree, the change will be made in the next file server release.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Talk:FAQ2010</id>
		<title>Talk:FAQ2010</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Talk:FAQ2010"/>
				<updated>2011-06-09T16:53:52Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: Created page with &amp;quot;Can and may are frequently but not always interchangeable in senses indicating possibility: A power failure can  (or may ) occur at any time.  Despite the insistence by some, tha...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Can and may are frequently but not always interchangeable in senses indicating possibility: A power failure can  (or may ) occur at any time.  Despite the insistence by some, that can  means only “to be able” and may  means “to be permitted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[User:SteveA|SteveA]] 09:53, 9 June 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Talk:Comet32</id>
		<title>Talk:Comet32</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Talk:Comet32"/>
				<updated>2011-02-24T15:14:33Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Badge:&lt;br /&gt;
== Str() Function - changed operation. ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As mentioned on Forum, I use the Str() function to convert a numeric to string for a percentage that is then used in the key of a file to rank slaes. This change negates that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Robert has a problem with it also, details on Forum. Just typing this to see how it appears.  How do you know who says what on a Wiki ?&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Jim:&lt;br /&gt;
&amp;lt;p&amp;gt;The real problem with the str() function is the use of numeric expressions as the argument to the function. The C16 accumulator was implicitly defined as length 16.8. The c32 accumulator  may be much larger. It is currently defined as 64.32. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
It is consistent to strip leading spaces from the string, otherwise, you would not know the actual result. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
That said, we are open to any change like this if everyone wants it. I just think it is short sighted to always want C32 to behave exactly like c16.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
We could also only strip the string if the argument were an expression. We could also, treat expressions as arguments to the str function as if the accumulator were 16.8.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Changing from one version of a language to another requires a re-compile. It is really the only opportunity we have to change behavior. I think we should also look at the obsolete fields in fstat() for instance.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The other big change is the unexpected error 1 if a numeric expression overflows the variable it is assigned to.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Length 3.2 &amp;amp; local I&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
I = 1234&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
will produce an excp=1.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Badge&lt;br /&gt;
&amp;lt;li&amp;gt; Fair enough, I can work around my problem fairly easily.&lt;br /&gt;
&amp;lt;p&amp;gt; I agree that we should take this chance to get rid of old &amp;amp; irrelevant stuff.&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
This numeric overflow thing.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If my setglobal has been populated in C16 and then I read it in C32 and there is a case of this numeric overflow. Will I get an exception 1 on the getglobal ?&lt;br /&gt;
&amp;lt;p&amp;gt; That is just plain silly, obviously once it is set in C16 it is already truncated.- Scratching around for an unexpalined excp=1.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If it happens as a result of a mathematical calculation, where do you test for the excp=1 ?&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
length 1.0 &amp;amp; local I&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
for i=0 to 20&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
i=i+1  ?  excp=test for overflow ?&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
next i&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Still chasing an elusive excp=1.  It appears to be when I read my date record.&amp;lt;p&amp;gt; Could an excp=46 be misconstrued as an excp=1 ? say there was the string 1234 where the numeric variable in Jim's example above was supposed to be. &amp;lt;p&amp;gt; Would that give a 46 or a 1 ??&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Barb:We decided to make the Comet32 str() functionality the same as the Comet16 functionality. Version .401 will be out soon and have this change.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
bb&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Let's see: four tildes identify the poster&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
[[User:SteveA|SteveA]] 07:13, 24 February 2011 (PST)&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Talk:Comet32</id>
		<title>Talk:Comet32</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Talk:Comet32"/>
				<updated>2011-02-24T15:13:16Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Badge:&lt;br /&gt;
== Str() Function - changed operation. ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As mentioned on Forum, I use the Str() function to convert a numeric to string for a percentage that is then used in the key of a file to rank slaes. This change negates that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Robert has a problem with it also, details on Forum. Just typing this to see how it appears.  How do you know who says what on a Wiki ?&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Jim:&lt;br /&gt;
&amp;lt;p&amp;gt;The real problem with the str() function is the use of numeric expressions as the argument to the function. The C16 accumulator was implicitly defined as length 16.8. The c32 accumulator  may be much larger. It is currently defined as 64.32. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
It is consistent to strip leading spaces from the string, otherwise, you would not know the actual result. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
That said, we are open to any change like this if everyone wants it. I just think it is short sighted to always want C32 to behave exactly like c16.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
We could also only strip the string if the argument were an expression. We could also, treat expressions as arguments to the str function as if the accumulator were 16.8.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Changing from one version of a language to another requires a re-compile. It is really the only opportunity we have to change behavior. I think we should also look at the obsolete fields in fstat() for instance.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The other big change is the unexpected error 1 if a numeric expression overflows the variable it is assigned to.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Length 3.2 &amp;amp; local I&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
I = 1234&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
will produce an excp=1.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Badge&lt;br /&gt;
&amp;lt;li&amp;gt; Fair enough, I can work around my problem fairly easily.&lt;br /&gt;
&amp;lt;p&amp;gt; I agree that we should take this chance to get rid of old &amp;amp; irrelevant stuff.&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
This numeric overflow thing.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If my setglobal has been populated in C16 and then I read it in C32 and there is a case of this numeric overflow. Will I get an exception 1 on the getglobal ?&lt;br /&gt;
&amp;lt;p&amp;gt; That is just plain silly, obviously once it is set in C16 it is already truncated.- Scratching around for an unexpalined excp=1.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If it happens as a result of a mathematical calculation, where do you test for the excp=1 ?&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
length 1.0 &amp;amp; local I&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
for i=0 to 20&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
i=i+1  ?  excp=test for overflow ?&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
next i&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Still chasing an elusive excp=1.  It appears to be when I read my date record.&amp;lt;p&amp;gt; Could an excp=46 be misconstrued as an excp=1 ? say there was the string 1234 where the numeric variable in Jim's example above was supposed to be. &amp;lt;p&amp;gt; Would that give a 46 or a 1 ??&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Barb:We decided to make the Comet32 str() functionality the same as the Comet16 functionality. Version .401 will be out soon and have this change.&lt;br /&gt;
&lt;br /&gt;
bb&lt;br /&gt;
&lt;br /&gt;
Let's see four tildes identify the poster&lt;br /&gt;
[[User:SteveA|SteveA]] 07:13, 24 February 2011 (PST)&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/IB_Statements/UserDefinedProcs</id>
		<title>IB Statements/UserDefinedProcs</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/IB_Statements/UserDefinedProcs"/>
				<updated>2011-01-20T20:48:18Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''User Defined Procedures in Comet32 (Procs)'''&lt;br /&gt;
&lt;br /&gt;
May be subroutines or functions. A Proc may or may not return a value. &lt;br /&gt;
Procs that return a value are called Functions and those that do not are called subroutines. &lt;br /&gt;
&lt;br /&gt;
Functions may be numeric or string depending on the kind of result they return. Functions may be called anywhere a system function is called. &lt;br /&gt;
Subroutines are invoked with the CALL verb (Not GOSUB).&lt;br /&gt;
&lt;br /&gt;
Procs must be declared in the main program. Just like variables, Procs must be declared before use. In fact, they must be declared in the Main part of the program. &lt;br /&gt;
Procs may take arguments and have locally defined local variables. The body of a proc looks like a mini program. It has a declaration section and an executable section. &lt;br /&gt;
All locals declared in the proc except for arguments are cleared. A clear local statement is not required. &lt;br /&gt;
Procs inherit all system variables and all variables declared in the main program. If a variable name is not found in the local declarations for a proc, and the variable is declared in the main program, that variable is used by the proc. In this case, the variable is used BY REFERENCE; that is, if the proc changes the variable, it is changed for the main program as well.&lt;br /&gt;
&lt;br /&gt;
Arguments may be passed by value or by reference. If an argument to a proc also appears in the declarations of local for the proc, the argument is copied into that local variable. If an argument does not also appear as a local variable, it as passed by reference. When a variable is passed by reference, no copy action is done (better performance), and the contents of the variable may be changed for the calling routine as well as for the proc. &lt;br /&gt;
Procs can call procs and may be recursive. Each time a proc is called; new storage for the proc is created. The arguments are then passed, initializing some of that storage. When a ProcReturn is executed, all local storage for that instance of the proc is destroyed. This provides a mechanism for recursion. &lt;br /&gt;
An example: &lt;br /&gt;
 &lt;br /&gt;
! Declare Subroutines And Functions&lt;br /&gt;
&lt;br /&gt;
     Numeric Factor(n)&lt;br /&gt;
     length 32.0 &amp;amp; local i z&lt;br /&gt;
     &lt;br /&gt;
     print (et)&lt;br /&gt;
&lt;br /&gt;
fact:    &lt;br /&gt;
     print 'factorial of what?'&lt;br /&gt;
     input i&lt;br /&gt;
     if i &amp;gt; 29 print 'Warning -- factorial of a number &amp;gt; 29 will overflow' &amp;amp; wait&lt;br /&gt;
     if i = 0 stop&lt;br /&gt;
&lt;br /&gt;
          Z = Factor(I)				  ! Call our function here&lt;br /&gt;
&lt;br /&gt;
          Print i;' Factorial Is ' ! Iterate through the function to get the factorial&lt;br /&gt;
          Print z&lt;br /&gt;
          Wait&lt;br /&gt;
          z = Factorial(I)         ! use the math library to get the factorial for validation purposes&lt;br /&gt;
          Print z&lt;br /&gt;
          wait&lt;br /&gt;
          goto fact         &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Numeric Factor(n)&lt;br /&gt;
     Length 32.0 &amp;amp; Local x&lt;br /&gt;
     print 'fact';n&lt;br /&gt;
     if n &amp;lt;= 1 Procreturn 1&lt;br /&gt;
     print 'returning ';n &amp;amp;wait&lt;br /&gt;
     x = n - 1&lt;br /&gt;
     Procreturn Factor(x) * n        ! Calling myself    &lt;br /&gt;
End&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/IB_Statements/operations</id>
		<title>IB Statements/operations</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/IB_Statements/operations"/>
				<updated>2011-01-18T21:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Internet Basic language supports the following types of operations:&lt;br /&gt;
&lt;br /&gt;
* Numeric Operations&lt;br /&gt;
* String Operations&lt;br /&gt;
* Relational Operations&lt;br /&gt;
* Logical Operations&lt;br /&gt;
===Numeric Operations===&lt;br /&gt;
The following types of operations may be performed on numeric data:&lt;br /&gt;
&lt;br /&gt;
* Addition&lt;br /&gt;
* Subtraction&lt;br /&gt;
* Multiplication&lt;br /&gt;
* Division&lt;br /&gt;
* Modulo&lt;br /&gt;
&lt;br /&gt;
Also see the notes about Precedence.&lt;br /&gt;
====Addition====&lt;br /&gt;
The plus sign '''(+)''' is the operator used to perform addition on numeric data.&lt;br /&gt;
&lt;br /&gt;
Notes: If the result of an addition operation exceeds the defined length of a receiving numeric variable, the value will be truncated on the left-hand side without warning.&lt;br /&gt;
&lt;br /&gt;
If the precision of the result exceeds the defined precision of a receiving variable (and the variable has not been defined for automatic rounding), the result will be truncated on the right-hand side. See the ROUND statement for more information.&lt;br /&gt;
&lt;br /&gt;
Also see the LET statement.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LENGTH 5.0                 ! Declare the length for A, B, C&lt;br /&gt;
LOCAL A, B, C              ! Declare them as LOCAL variables&lt;br /&gt;
.&lt;br /&gt;
LET A = 500                ! Set the value for A&lt;br /&gt;
LET B = 2000               ! Set the value for B&lt;br /&gt;
LET C = A + B              ! Add A and B, giving C&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Subtraction====&lt;br /&gt;
&lt;br /&gt;
The minus sign '''(-)''' is the operator used to perform subtraction on numeric data.&lt;br /&gt;
&lt;br /&gt;
Notes: If the result of a subtraction operation exceeds the defined length of a receiving numeric variable, the value will be truncated on the left-hand side without warning.&lt;br /&gt;
&lt;br /&gt;
If the precision of the result exceeds the defined precision       of a receiving variable (and the variable has not been defined       for automatic rounding), the result will be truncated on the       right-hand side. See the ROUND statement       for more information.&lt;br /&gt;
&lt;br /&gt;
Also see the LET statement.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LENGTH 5.0                 ! Declare the length for A, B, C&lt;br /&gt;
LOCAL A, B, C              ! Declare them as LOCAL variables&lt;br /&gt;
.&lt;br /&gt;
LET A = 800                ! Set the value for A&lt;br /&gt;
LET B = 200                ! Set the value for B&lt;br /&gt;
LET C = A - B              ! Subtract B from A, giving C&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Multiplication====&lt;br /&gt;
&lt;br /&gt;
The asterisk '''(*)''' is the operator used to perform multiplication on numeric data.&lt;br /&gt;
&lt;br /&gt;
Notes: If the result of a multiplication operation exceeds the defined length of a receiving numeric variable, the value will be truncated on the left-hand side without warning.&lt;br /&gt;
&lt;br /&gt;
If the precision of the result exceeds the defined precision of a receiving variable (and the variable has not been defined for automatic rounding), the result will be truncated on the right-hand side. See the ROUND statement for more information.&lt;br /&gt;
&lt;br /&gt;
Also see the LET statement.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LENGTH 5.0                 ! Declare the length for A, B, C&lt;br /&gt;
LOCAL A, B, C              ! Declare them as LOCAL variables&lt;br /&gt;
.&lt;br /&gt;
LET A = 150                ! Set the value for A&lt;br /&gt;
LET B = 25                 ! Set the value for B&lt;br /&gt;
LET C = A * B              ! Multiply A and B, giving C&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Division====&lt;br /&gt;
&lt;br /&gt;
The backslash '''(/)''' is the operator used to perform division on numeric data.&lt;br /&gt;
&lt;br /&gt;
Notes: If the result of a division operation exceeds the defined length of a receiving numeric variable, the value will be truncated on the left-hand side without warning.&lt;br /&gt;
&lt;br /&gt;
If the precision of the result exceeds the defined precision of a receiving variable (and the variable has not been defined for automatic rounding), the result will be truncated on the right-hand side. See the ROUND statement for more information.&lt;br /&gt;
&lt;br /&gt;
Also see the LET statement.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LENGTH 5.0                 ! Declare the length for A, B, C&lt;br /&gt;
LOCAL A, B, C              ! Declare them as LOCAL variables&lt;br /&gt;
.&lt;br /&gt;
LET A = 150                ! Set the value for A&lt;br /&gt;
LET B = 25                 ! Set the value for B&lt;br /&gt;
LET C = A / B              ! Divide A by B, giving C&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Modulo====&lt;br /&gt;
&lt;br /&gt;
The MOD operator performs a modulo operation on the two numeric values (i.e., it divides the first value by the second value and returns the remainder).&lt;br /&gt;
&lt;br /&gt;
The MOD operator is supported in Comet 504 and greater.  In &amp;lt;u&amp;gt;Comet32&amp;lt;/u&amp;gt; you may use either MOD or % as the operator.&lt;br /&gt;
&lt;br /&gt;
The syntax is:&lt;br /&gt;
&lt;br /&gt;
numeric-value-1 MOD numeric-value-2&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LET C = 10 MOD 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This operation returns a value of 1 as 10 divided by 3 equals 3 with a &amp;lt;u&amp;gt;remainder&amp;lt;/u&amp;gt; of 1.&lt;br /&gt;
&lt;br /&gt;
====Precedence====&lt;br /&gt;
&lt;br /&gt;
In a numeric expression containing multiple operations, the multiplication and division operations are performed first (from left to right). Next, the addition and subtraction operations are performed (also from left to right).&lt;br /&gt;
&lt;br /&gt;
This algebraic order can be overridden with parentheses. In a numeric expression containing parentheses, operations inside the parentheses will be performed first, followed by the algebraic order previously described. Parentheses may be nested to any level in a numeric expression -- they will be performed from the inside to the outside.&lt;br /&gt;
&lt;br /&gt;
====Results====&lt;br /&gt;
&lt;br /&gt;
The temporary result of a numeric operation will contain only as many digits to the right of the decimal point as the most precise operand in the expression. For example, if an expression contains operand with two digits of precision and four digits of precision, the temporary result will contain four digits of precision.&lt;br /&gt;
&lt;br /&gt;
==String Operation (Concatenation)==&lt;br /&gt;
&lt;br /&gt;
The Internet Basic language supports the string operation of concatenation. The plus sign (+) is used to indicate concatenation (the combining of strings). For example, concatenating two string variables would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FIRSTNAME$ + LASTNAME$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may concatenate string constants, string variables, and string functions. Here is an example of concatenating constants with variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;(&amp;quot; + AREACODE$ + &amp;quot;)&amp;quot; + PHONENUMBER$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The maximum number of characters in a string is 254. If a concatenation operation results in more characters than have been declared for a receiving variable, characters will be truncated on the right-hand side. THIS TRUNCATION WILL OCCUR WITHOUT WARNING OF ANY KIND.&lt;br /&gt;
&lt;br /&gt;
==Relational Operation (IF/THEN/ELSE)==&lt;br /&gt;
&lt;br /&gt;
The Internet Basic language supports relational operations in IF/THEN statements.&amp;lt;br/&amp;gt; The following operations are supported:&lt;br /&gt;
{| border = &amp;quot;1&amp;quot; cell padding=&amp;quot;30&amp;quot; align = &amp;quot;center&amp;quot;&lt;br /&gt;
!Operation&lt;br /&gt;
!Internet Basic syntax&lt;br /&gt;
|-&lt;br /&gt;
|Equal to ||EQ  or  =&lt;br /&gt;
|-&lt;br /&gt;
|Not equal to||NE  or  NOT=&lt;br /&gt;
|-&lt;br /&gt;
|Greater than||GT  or  &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Greater than or equal to||GE  or  &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
|Less than||LT  or  &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
|Less than or equal to||LE  or  &amp;lt;=&lt;br /&gt;
|-&lt;br /&gt;
|Contains||Contains&lt;br /&gt;
|-&lt;br /&gt;
|Soundslike||Soundslike &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Two strings are considered to be equal only when they are identical and have the &amp;lt;u&amp;gt;same current length&amp;lt;/u&amp;gt; (number of characters).&lt;br /&gt;
&lt;br /&gt;
When comparing string values, the ASCII values for the characters are compared. For example, upper case &amp;quot;A&amp;quot; is less than lower case &amp;quot;a&amp;quot; because the ASCII value for &amp;quot;A&amp;quot; (65) is less than the ASCII value for &amp;quot;a&amp;quot; (97). See ASCII chart [http://signature.net/ib/ascii.htm]&lt;br /&gt;
&lt;br /&gt;
The Contains operator will be true when the left hand string operand contains the right hand string operand.&amp;lt;br/&amp;gt;&lt;br /&gt;
The Soundslike operator will be true when the soundex key of both operands are equal. See [http://www.archives.gov/genealogy/census/soundex.html]&amp;lt;br/&amp;gt;&lt;br /&gt;
Both the Contains and Soundslike operators are case '''insensitive'''.&lt;br /&gt;
&lt;br /&gt;
==Logical Operations==&lt;br /&gt;
&lt;br /&gt;
The Internet Basic language supports the AND and OR logical operations to be used in conjunction with relational expressions. The AND operator tests whether both relational conditions are true, while the OR operator tests for truth of either relational condition. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IF A=B AND B=C THEN...        !  Both conditions must be true&lt;br /&gt;
&lt;br /&gt;
IF A=B OR B=C THEN...         !  Either condition may be true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If AND and OR are combined in a relational expression, the AND operator takes precedence (i.e., it will be evaluated first). It is possible to override this precedence with parentheses, just like the precedence in numeric operations can be overridden.&lt;br /&gt;
&lt;br /&gt;
For more information on relational operations and logical operations, see the [[IF]] statement.&lt;br /&gt;
&lt;br /&gt;
Beginning with Comet 2004, logical operations are also supported on binary expressions.  The AND, OR, and XOR operators are available.&lt;br /&gt;
&lt;br /&gt;
The AND operator performs a logical conjunction on two expressions. AND compares identically positioned bits in two numeric expressions and sets the corresponding bit in the result field.  A result bit will only be set to 1 if both of the corresponding bits in the expression fields are 1.  Otherwise the result bit will be 0.&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C = A AND B&lt;br /&gt;
If A = 1010 (binary) and B = 0011 (binary), then C = 0010 (binary).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The OR operator performs a logical disjunction on two numeric expressions. OR compares identically positioned bits in two numeric expressions and sets the corresponding bit in the result field.  A result bit will always be set to 1 unless the corresponding bits in both expression fields are 0.&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C = A OR B&lt;br /&gt;
If A = 1010 (binary) and B = 0011 (binary), then C = 1011 (binary).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The XOR operator performs a logical exclusion on two numeric expressions. XOR compares identically positioned bits in two numeric expressions and sets the corresponding bit in the result field.  A result bit will only be set to 1 if exactly one of the expression fields has a 1 bit set in the corresponding position.&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C = A XOR B&lt;br /&gt;
If A = 1010 (binary) and B = 0011 (binary), then C = 1001 (binary).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/LAUNCH</id>
		<title>LAUNCH</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/LAUNCH"/>
				<updated>2010-09-16T20:31:50Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LAUNCH ==&lt;br /&gt;
 &lt;br /&gt;
'''Syntax:'''&amp;lt;br&amp;gt;   LAUNCH Windows-program-or-document &amp;lt;br&amp;gt;  &lt;br /&gt;
'''Placement:''' &amp;lt;br&amp;gt;  Place the LAUNCH command after the REPORT command. &amp;lt;br&amp;gt;  &lt;br /&gt;
'''Discussion:''' &amp;lt;br&amp;gt;  Under Comet98 and greater, the LAUNCH command launches a Windows application or document. &amp;lt;br&amp;gt; &lt;br /&gt;
Here are some ways the LAUNCH command can be used: &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Launching a Windows program &lt;br /&gt;
	LAUNCH c:\msoffice\excel\excel.exe&lt;br /&gt;
	&lt;br /&gt;
Launching a Windows program and passing it a file name &lt;br /&gt;
	LAUNCH c:\msoffice\excel\excel.exe c:\budget\1998.xls&lt;br /&gt;
	&lt;br /&gt;
Launching a spreadsheet file &lt;br /&gt;
	LAUNCH c:\budget\1998.xls&lt;br /&gt;
	&lt;br /&gt;
When an &amp;quot;xls&amp;quot; file is launched, Windows automatically runs the Excel program (based on the file extension). &lt;br /&gt;
&lt;br /&gt;
Launching a text file &lt;br /&gt;
	LAUNCH c:\text\sample.txt&lt;br /&gt;
	&lt;br /&gt;
When a &amp;quot;txt&amp;quot; file is launched, Windows automatically runs the associated text editor (Notepad, Wordpad, etc.). &lt;br /&gt;
&lt;br /&gt;
Launching an intranet document &lt;br /&gt;
	LAUNCH c:\intranet\home.htm&lt;br /&gt;
	&lt;br /&gt;
When a local &amp;quot;htm&amp;quot; file is launched, Windows automatically runs the default web browser and displays the HTML document. &lt;br /&gt;
&lt;br /&gt;
Launching an Internet document (web page) &lt;br /&gt;
	LAUNCH http://www.signature.net/signature/index.html&lt;br /&gt;
	&lt;br /&gt;
When the launch value starts with &amp;quot;http://&amp;quot;, Windows runs the default web browser, connects to the Internet (if not already connected), and displays the named web page. &lt;br /&gt;
 &lt;br /&gt;
'''History:''' &amp;lt;br&amp;gt;  This command was added in version 99.01. &amp;lt;br&amp;gt;  &lt;br /&gt;
'''Example:''' &amp;lt;br&amp;gt;  The following report erases and then creates a data file named TEMPFILE.CSV (&amp;quot;CSV&amp;quot; means &amp;quot;comma separated values&amp;quot;) on directory DSK. &amp;lt;br&amp;gt; The PRINTER statement includes a &amp;quot;D&amp;quot; parameter, which specifies a delimited format for the output data. &lt;br /&gt;
The report inputs data from the CUSTOMER file and outputs data to the TEMPFILE.CSV file. &lt;br /&gt;
&lt;br /&gt;
After the report has been processed, the Reporter launches the Excel spreadsheet program which opens the TEMPFILE.CSV file. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	ERASE TEMPFILE.CSV,DSK&lt;br /&gt;
	PRINTER TEMPFILE.CSV,DSK,D&lt;br /&gt;
	INPUT CUSTOMER&lt;br /&gt;
	REPORT&lt;br /&gt;
	PRINT CUST.NUMBER;CUST.NAME;CREDIT.LIMIT;CURRENT.AR;&lt;br /&gt;
	      AR.OVER.30.DAYS;AR.OVER.60.DAYS;AR.OVER.90.DAYS;&lt;br /&gt;
	      AR.OVER.120.DAYS&lt;br /&gt;
	LAUNCH c:\msoffice\excel\excel.exe c:\comet\dsk\tempfile.csv&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
 &lt;br /&gt;
'''Notes:''' &amp;lt;br&amp;gt;  The Launch command expects the target file to be local to the client PC.&amp;lt;br&amp;gt;  If this is not the case you may need to execute a copyfile program prior to the launch, then launch the local copy of the file. &amp;lt;br&amp;gt; &lt;br /&gt;
The Enter command can be used to run your copyfile program.&amp;lt;br&amp;gt;  Before writing your own copyfile program you might try using the CUtlCpy utility which is released as part of the UTL directory: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	ERASE MyTextFile.txt,DSK&lt;br /&gt;
	PRINTER MyTextFile.txt,DSK&lt;br /&gt;
	INPUT CUSTOMER&lt;br /&gt;
	REPORT&lt;br /&gt;
	PRINT CUST.NUMBER;CUST.NAME;CREDIT.LIMIT;CURRENT.AR;&lt;br /&gt;
	      AR.OVER.30.DAYS;AR.OVER.60.DAYS;AR.OVER.90.DAYS;&lt;br /&gt;
	      AR.OVER.120.DAYS&lt;br /&gt;
	ENTER CUtlCpy &amp;quot;MyTextFile.txt,DSK,MyPersonalTextFile.txt,$(CATEMP),Y,Y,T&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
CUtlCpy includes an option to launch the destination file after doing the copy so in this case you don't even need the Reporter launch!&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/LAUNCH</id>
		<title>LAUNCH</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/LAUNCH"/>
				<updated>2010-09-16T20:28:10Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LAUNCH ==&lt;br /&gt;
 &lt;br /&gt;
'''Syntax:'''&amp;lt;br&amp;gt;   LAUNCH Windows-program-or-document &amp;lt;br&amp;gt;  &lt;br /&gt;
'''Placement:''' &amp;lt;br&amp;gt;  Place the LAUNCH command after the REPORT command. &amp;lt;br&amp;gt;  &lt;br /&gt;
'''Discussion:''' &amp;lt;br&amp;gt;  Under Comet98 and greater, the LAUNCH command launches a Windows application or document. &amp;lt;br&amp;gt; &lt;br /&gt;
Here are some ways the LAUNCH command can be used: &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Launching a Windows program &lt;br /&gt;
	LAUNCH c:\msoffice\excel\excel.exe&lt;br /&gt;
	&lt;br /&gt;
Launching a Windows program and passing it a file name &lt;br /&gt;
	LAUNCH c:\msoffice\excel\excel.exe c:\budget\1998.xls&lt;br /&gt;
	&lt;br /&gt;
Launching a spreadsheet file &lt;br /&gt;
	LAUNCH c:\budget\1998.xls&lt;br /&gt;
	&lt;br /&gt;
When an &amp;quot;xls&amp;quot; file is launched, Windows automatically runs the Excel program (based on the file extension). &lt;br /&gt;
&lt;br /&gt;
Launching a text file &lt;br /&gt;
	LAUNCH c:\text\sample.txt&lt;br /&gt;
	&lt;br /&gt;
When a &amp;quot;txt&amp;quot; file is launched, Windows automatically runs the associated text editor (Notepad, Wordpad, etc.). &lt;br /&gt;
&lt;br /&gt;
Launching an intranet document &lt;br /&gt;
	LAUNCH c:\intranet\home.htm&lt;br /&gt;
	&lt;br /&gt;
When a local &amp;quot;htm&amp;quot; file is launched, Windows automatically runs the default web browser and displays the HTML document. &lt;br /&gt;
&lt;br /&gt;
Launching an Internet document (web page) &lt;br /&gt;
	LAUNCH http://www.signature.net/signature/index.html&lt;br /&gt;
	&lt;br /&gt;
When the launch value starts with &amp;quot;http://&amp;quot;, Windows runs the default web browser, connects to the Internet (if not already connected), and displays the named web page. &lt;br /&gt;
 &lt;br /&gt;
'''History:''' &amp;lt;br&amp;gt;  This command was added in version 99.01. &amp;lt;br&amp;gt;  &lt;br /&gt;
'''Example:''' &amp;lt;br&amp;gt;  The following report erases and then creates a data file named TEMPFILE.CSV (&amp;quot;CSV&amp;quot; means &amp;quot;comma separated values&amp;quot;) on directory DSK. &amp;lt;br&amp;gt; The PRINTER statement includes a &amp;quot;D&amp;quot; parameter, which specifies a delimited format for the output data. &lt;br /&gt;
The report inputs data from the CUSTOMER file and outputs data to the TEMPFILE.CSV file. &lt;br /&gt;
&lt;br /&gt;
After the report has been processed, the Reporter launches the Excel spreadsheet program which opens the TEMPFILE.CSV file. &lt;br /&gt;
&lt;br /&gt;
	ERASE TEMPFILE.CSV,DSK&amp;lt;br&amp;gt;&lt;br /&gt;
	PRINTER TEMPFILE.CSV,DSK,D&amp;lt;br&amp;gt;&lt;br /&gt;
	INPUT CUSTOMER&amp;lt;br&amp;gt;&lt;br /&gt;
	REPORT&amp;lt;br&amp;gt;&lt;br /&gt;
	PRINT CUST.NUMBER;CUST.NAME;CREDIT.LIMIT;CURRENT.AR;&amp;lt;br&amp;gt;&lt;br /&gt;
	      AR.OVER.30.DAYS;AR.OVER.60.DAYS;AR.OVER.90.DAYS;&amp;lt;br&amp;gt;&lt;br /&gt;
	      AR.OVER.120.DAYS&amp;lt;br&amp;gt;&lt;br /&gt;
	LAUNCH c:\msoffice\excel\excel.exe c:\comet\dsk\tempfile.csv&amp;lt;br&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
 &lt;br /&gt;
'''Notes:''' &amp;lt;br&amp;gt;  The Launch command expects the target file to be local to the client PC.&amp;lt;br&amp;gt;  If this is not the case you may need to execute a copyfile program prior to the launch, then launch the local copy of the file. &amp;lt;br&amp;gt; &lt;br /&gt;
The Enter command can be used to run your copyfile program.&amp;lt;br&amp;gt;  Before writing your own copyfile program you might try using the CUtlCpy utility which is released as part of the UTL directory: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	ERASE MyTextFile.txt,DSK&lt;br /&gt;
	PRINTER MyTextFile.txt,DSK&lt;br /&gt;
	INPUT CUSTOMER&lt;br /&gt;
	REPORT&lt;br /&gt;
	PRINT CUST.NUMBER;CUST.NAME;CREDIT.LIMIT;CURRENT.AR;&lt;br /&gt;
	      AR.OVER.30.DAYS;AR.OVER.60.DAYS;AR.OVER.90.DAYS;&lt;br /&gt;
	      AR.OVER.120.DAYS&lt;br /&gt;
	ENTER CUtlCpy &amp;quot;MyTextFile.txt,DSK,MyPersonalTextFile.txt,$(CATEMP),Y,Y,T&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
CUtlCpy includes an option to launch the destination file after doing the copy so in this case you don't even need the Reporter launch!&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Talk:IB_Statements/autoinput</id>
		<title>Talk:IB Statements/autoinput</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Talk:IB_Statements/autoinput"/>
				<updated>2010-03-08T15:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: New page: I have found that AutoImput is upseting to Comet operators.   They are used to pressing ENTER and &amp;quot;magical&amp;quot; input upsets their rhythm  Steve A 3/8/10&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have found that AutoImput is upseting to Comet operators. &lt;br /&gt;
&lt;br /&gt;
They are used to pressing ENTER and &amp;quot;magical&amp;quot; input upsets their rhythm&lt;br /&gt;
&lt;br /&gt;
Steve A 3/8/10&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Bulletin_Board</id>
		<title>Bulletin Board</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Bulletin_Board"/>
				<updated>2009-10-16T15:56:39Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I believe this Wiki needs Badge's comments on how pages should be edited. I've put his forum posting here for posterity. Posterity is not the body part you sit on!&lt;br /&gt;
:'''Community section on the Wik'''i. This is where most other Wiki's have discussions, generally someone will post a paper or a proposal and then people comment on the discussion page which is attached to all Wiki pages.&lt;br /&gt;
:Belatedly I have cut and pasted all the current comments on this to the said page, Indenting is done with a : and your signature is attached with &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
:It is not as simple as the forum but it is a lot easier to find once it scrolls off the bottom of the forum. The Wiki man is proposing a new improved forum style discussion page, Google Wave may put some pressure on him to get it up and running quickly.&lt;br /&gt;
&lt;br /&gt;
[[User:SteveA|SteveA]] 15:56, 16 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Bulletin_Board</id>
		<title>Bulletin Board</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Bulletin_Board"/>
				<updated>2009-10-16T15:56:09Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: New page: I believe this Wiki needs Badge's comments on how pages should be edited. I've put his forum posting here for posterity. Posterity is not the body part you sit on! :Community section on th...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I believe this Wiki needs Badge's comments on how pages should be edited. I've put his forum posting here for posterity. Posterity is not the body part you sit on!&lt;br /&gt;
:Community section on the Wiki. This is where most other Wiki's have discussions, generally someone will post a paper or a proposal and then people comment on the discussion page which is attached to all Wiki pages.&lt;br /&gt;
:Belatedly I have cut and pasted all the current comments on this to the said page, Indenting is done with a : and your signature is attached with &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
:It is not as simple as the forum but it is a lot easier to find once it scrolls off the bottom of the forum. The Wiki man is proposing a new improved forum style discussion page, Google Wave may put some pressure on him to get it up and running quickly.&lt;br /&gt;
&lt;br /&gt;
[[User:SteveA|SteveA]] 15:56, 16 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22E%22</id>
		<title>Mnemonics &quot;E&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22E%22"/>
				<updated>2009-09-05T15:25:23Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (EmailDocument) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Easy Scan)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':    (Easy Scan)  Hex equivalent:  &amp;quot;@0E0000@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Easy Scan) mnemonic places the Comet console into &amp;quot;easy scan&amp;quot; mode. (This mnemonic does not apply to QTerm or terminals.) &amp;lt;br&amp;gt;&lt;br /&gt;
In &amp;quot;easy scan&amp;quot; mode, if the user presses one of the recognized keys while the program is at an INPUT prompt, the program responds as if an F10, Enter, or Tab key was pressed. In combination with the returned screen coordinates (see INPUT), this feature allows for an enriched style of screen I/O programming. &lt;br /&gt;
&lt;br /&gt;
In addition, if the mouse driver is active (see the (Mouse On) mnemonic), a mouse click also generates a transmit, and places the cursor's coordinates in the status buffer (see Example 2). Starting with Comet98 Build 232, (Easy Scan) turns the mouse on if it is not already being done. &lt;br /&gt;
&lt;br /&gt;
The (Scan Codes Off) mnemonic terminates &amp;quot;easy scan&amp;quot; mode. &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;reason for transmit&amp;quot; information is stored in the 8th byte of the console's status buffer, and is stored in hex. To determine which key (or click) caused the transmit to occur, perform the following operation: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
VALUE = ASC(SUB(STS(0),8,1)) &lt;br /&gt;
&lt;br /&gt;
Note: VALUE is a numeric field with length/precision of 3.0. &lt;br /&gt;
&lt;br /&gt;
The following values are returned: &lt;br /&gt;
&lt;br /&gt;
Value Key that caused the transmit to occur &lt;br /&gt;
4 Up arrow &lt;br /&gt;
5 Down arrow &lt;br /&gt;
6 Left mouse click &lt;br /&gt;
7 Ctrl + Home &lt;br /&gt;
8 Ctrl + End &lt;br /&gt;
9 Pg Up &lt;br /&gt;
10 Ctrl + Pg Up &lt;br /&gt;
11 Pg Dn &lt;br /&gt;
12 Ctrl + Pg Dn &lt;br /&gt;
14 Right mouse click &lt;br /&gt;
15 Window caption bar &amp;quot;X&amp;quot; was clicked. See (CreateWindowEx).  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Values 1, 2, and 3 are generated via the INPUT statement, and do not require the (Easy Scan) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
History:  The (Easy Scan) mnemonic was added in Comet version 504.208 as part of the enhanced INPUT statement. &lt;br /&gt;
Values 7 through 12 were added in Comet 504.228 and Comet98 Build 228. &lt;br /&gt;
&lt;br /&gt;
Starting with Comet98 Build 232, (EasyScan) turns the mouse on if it is not already being done. If it is already on, it is assumed the whoever turned it on will also turn it off. &lt;br /&gt;
&lt;br /&gt;
Starting with Build 292, (EasyScan) disables any scan modes that are currently enabled. &lt;br /&gt;
&lt;br /&gt;
Value 14 was added in Build 294. &lt;br /&gt;
&lt;br /&gt;
As of Build 294, (EasyScan) mouse clicks now occur on the up-click instead of the down-click. This is consistent with other Windows applications. &lt;br /&gt;
&lt;br /&gt;
Value 15 was added in Comet2002 Build 306. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
PRINT (0) (Mouse On)           ! Mouse on (optional)&lt;br /&gt;
.&lt;br /&gt;
PRINT (0) (Easy Scan)          ! Easy scan mode on&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
INPUT (0) DATA$                ! Input a field&lt;br /&gt;
&lt;br /&gt;
VALUE = ASC(SUB(STS(0),8,1))   ! Reason for transmit&lt;br /&gt;
&lt;br /&gt;
IF VALUE = 1 ...               ! F10 key&lt;br /&gt;
IF VALUE = 2 ...               ! Enter key&lt;br /&gt;
IF VALUE = 3 ...               ! Tab key&lt;br /&gt;
IF VALUE = 4 ...               ! Up arrow&lt;br /&gt;
IF VALUE = 5 ...               ! Down arrow&lt;br /&gt;
IF VALUE = 6 ...               ! Left mouse click&lt;br /&gt;
IF VALUE = 7 ...               ! Ctrl + Home&lt;br /&gt;
IF VALUE = 8 ...               ! Ctrl + End&lt;br /&gt;
IF VALUE = 9 ...               ! Pg Up&lt;br /&gt;
IF VALUE = 10 ...              ! Ctrl + Pg Up&lt;br /&gt;
IF VALUE = 11 ...              ! Pg Dn&lt;br /&gt;
IF VALUE = 12 ...              ! Ctrl + Pg Dn&lt;br /&gt;
IF VALUE = 14 ...              ! Right mouse click&lt;br /&gt;
IF VALUE = 15 ...              ! Window caption bar &amp;quot;X&amp;quot;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
PRINT (0) (ScanCodesOff)       ! Easy scan mode off&lt;br /&gt;
PRINT (0) (Mouse Off)          ! Mouse off (optional)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  &lt;br /&gt;
Data$ = Sub(Sts(0), 1, 254)    ! Get console status&lt;br /&gt;
J = Asc(Sub(Data$, 8, 1))      ! Get reason for transmit&lt;br /&gt;
If (J EQ 6)                    ! Mouse was clicked&lt;br /&gt;
  Row = Asc(Sub(Data$, 15, 1)) ! Get the row&lt;br /&gt;
  Col = Asc(sub(Data$, 16, 1)) ! Get the column&lt;br /&gt;
Endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to determine the cursor's coordinates when the mouse is clicked.&lt;br /&gt;
&lt;br /&gt;
==(Ellipse)==&lt;br /&gt;
'''Mnemonic''':   (Ellipse=left, top, right, bottom)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws an ellipse. The center of the ellipse is the center of the bounding rectangle specified by left, top, right, bottom. The ellipse is drawn with the current pen, and its interior is filled with the current brush. &lt;br /&gt;
The figure drawn by this function extends up to, but does not include, the right and bottom coordinates. This means that the height of the figure is bottom - top and the width of the figure is right - left. &lt;br /&gt;
&lt;br /&gt;
If either the width or the height of the bounding rectangle is 0, no ellipse is drawn. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater&lt;br /&gt;
&lt;br /&gt;
== (EmailDocument) ==&lt;br /&gt;
'''Email Mnemonic:'''   (EmailDocument=string-argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  The (EmailDocument) mnemonic may be used to specify the name associated with an attachment file. If an extension is not assigned, one appropriate for the file type will automatically be included (.pdf, .htm, etc). If this mnemonic is not used, the attachment will carry the default name assigned to the document.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
 OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
 PRINT (1) (EmailDocument=&amp;quot;OrderDetails&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Email printer mnemonics ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic  Description  &lt;br /&gt;
(Server = SMTPServerName$)  Specify SMTP server name and port  &lt;br /&gt;
(Domain = Domain$)  Specify email domain name  &lt;br /&gt;
(From = FromAddr$)  Specify sender's name and address  &lt;br /&gt;
(To = ToAddr$)  Specify recipient's name and address  &lt;br /&gt;
(CC = CCaddr$)  Specify CC recipient's name and address  &lt;br /&gt;
(BCC = BCCaddr$)  Specify BCC recipient's name and address  &lt;br /&gt;
(Subject = Subject$)  Specify message's subject line  &lt;br /&gt;
(Text = Text$)  Specify a line of body text  &lt;br /&gt;
(EmailDocument = Name$)  Specify a name for the attachment  &lt;br /&gt;
(Log = LogFile$,LogDir$,ERASE)  Specify a log file name and erase parameter  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Discussion of the Email Printer (requires access to web site) &lt;br /&gt;
&lt;br /&gt;
 Read about other Email Mnemonics &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EN) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic:   (EN)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E06@&amp;quot;  &lt;br /&gt;
Discussion:  Enter normal mode. &lt;br /&gt;
The (EN) control code sets the video display in normal mode. The location of displayed information, the placement of the cursor, and the places where data is transmitted are determined by the FORMAT statements in the program. &lt;br /&gt;
&lt;br /&gt;
The alternative to normal mode is typewriter mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
&lt;br /&gt;
This example shows how to set normal mode, either at the beginning of a FORMAT statement or within a PRINT statement. The additional controls set background mode and display a heading at column 10, row 0.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (End Metafile) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (EndMetafile = flags)  &lt;br /&gt;
Discussion:  End the metafile collection process by saving and/or executing the currently active MetaFile. &lt;br /&gt;
Where flags indicate: &lt;br /&gt;
&lt;br /&gt;
VMF.SAVE = 0    ! Save the file - do not execute&lt;br /&gt;
VMF.EXECUTE	= 1 ! Execute the metafile&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EndWaitCursor) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (EndWaitCursor)  &lt;br /&gt;
Discussion:  This mnemonic turns off the hourglass cursor. &lt;br /&gt;
See (BeginWaitCursor) and (RestoreWaitCursor). &lt;br /&gt;
 &lt;br /&gt;
Example:  Print (BeginWaitCursor)&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (EndWaitCursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Enhanced Mouse On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (Enhanced Mouse On)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0906@&amp;quot;  &lt;br /&gt;
Discussion:  This control opens the enhanced mouse driver (if possible). &lt;br /&gt;
Also see (BIOS Mouse On) and (Mouse On). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Enhanced Mouse On)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Enhanced Mouse On&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EN) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (EN)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E06@&amp;quot;  &lt;br /&gt;
Discussion:  Enter normal mode. &lt;br /&gt;
The (EN) control code sets the video display in normal mode. The location of displayed information, the placement of the cursor, and the places where data is transmitted are determined by the FORMAT statements in the program. &lt;br /&gt;
&lt;br /&gt;
The alternative to normal mode is typewriter mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
&lt;br /&gt;
This example shows how to set normal mode, either at the beginning of a FORMAT statement or within a PRINT statement. The additional controls set background mode and display a heading at column 10, row 0.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (ET) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (ET)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E05@&amp;quot;  &lt;br /&gt;
Discussion:  Enter typewriter mode. &lt;br /&gt;
The (ET) control code sets the video display in typewriter mode. Each new line of data written to the screen causes the screen to scroll up one line. The new line of data is written on the bottom line of the screen in background mode. &lt;br /&gt;
&lt;br /&gt;
Transmit marks are automatically placed after the last byte of data written and at the lower right corner of the screen (making the remaining part of the bottom line the foreground data entry field). &lt;br /&gt;
&lt;br /&gt;
The cursor is placed at the left-most position of the foreground field on the bottom line. &lt;br /&gt;
&lt;br /&gt;
The alternative to typewriter mode is normal mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (ET)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   PRINT (0) &amp;quot;ENTER CUSTOMER NUMBER:&amp;quot;&lt;br /&gt;
   INPUT (0) CUSTNUM$&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (ET)&lt;br /&gt;
   PRINT (0) &amp;quot;ENTER CUSTOMER NUMBER:&amp;quot;&lt;br /&gt;
   INPUT (0) CUSTNUM$&lt;br /&gt;
&lt;br /&gt;
In this example, the screen is placed into typewriter mode. Then a prompt is displayed and data is accepted into the variable named CUSTNUM$. Items such as foreground, background and transmit marks are handled automatically.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EraseFile) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic:  (EraseFile=file,flags)  &lt;br /&gt;
Discussion:  The mnemonic erases a Windows file. &lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
The file name is in Windows format, UNC format, or a directory alias. &lt;br /&gt;
&lt;br /&gt;
Flags is the sum of the specified decimal values from the following chart: &lt;br /&gt;
&lt;br /&gt;
Flag Description &lt;br /&gt;
1 Perform function at CometAnywhere remote system &lt;br /&gt;
2 If not CometAnywhere, then substitute local for remote &lt;br /&gt;
If the program is running on a local Comet system (not on a CometAnywhere client system), this flag substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program can issue an INPUT on LUN (0) to retrieve the error information. For example: &lt;br /&gt;
&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$;RESULT$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (EraseFile=File$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
(FuncError) Description &lt;br /&gt;
0 Function not supported &lt;br /&gt;
1 Success &lt;br /&gt;
2 CometAnywhere required &lt;br /&gt;
3 Source file error (see suberrors) &lt;br /&gt;
4 Aborted by user &lt;br /&gt;
5 Function in progress &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
(FileError) Description &lt;br /&gt;
0 Success &lt;br /&gt;
2 File not found &lt;br /&gt;
3 Path not found &lt;br /&gt;
5 Access denied &lt;br /&gt;
12 Invalid access &lt;br /&gt;
15 Invalid drive &lt;br /&gt;
16 An error has occurred in the current directory &lt;br /&gt;
18 No more files &lt;br /&gt;
32 Sharing violation &lt;br /&gt;
33 Lock violation &lt;br /&gt;
80 File exists &lt;br /&gt;
161 Bad pathname &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Execute Metafile ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (ExecuteMetafile = FileName)  &lt;br /&gt;
Discussion:  Executes the previously saved metafile FileName.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22E%22</id>
		<title>Mnemonics &quot;E&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22E%22"/>
				<updated>2009-09-05T15:24:09Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Ellipse) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Easy Scan)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':    (Easy Scan)  Hex equivalent:  &amp;quot;@0E0000@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Easy Scan) mnemonic places the Comet console into &amp;quot;easy scan&amp;quot; mode. (This mnemonic does not apply to QTerm or terminals.) &amp;lt;br&amp;gt;&lt;br /&gt;
In &amp;quot;easy scan&amp;quot; mode, if the user presses one of the recognized keys while the program is at an INPUT prompt, the program responds as if an F10, Enter, or Tab key was pressed. In combination with the returned screen coordinates (see INPUT), this feature allows for an enriched style of screen I/O programming. &lt;br /&gt;
&lt;br /&gt;
In addition, if the mouse driver is active (see the (Mouse On) mnemonic), a mouse click also generates a transmit, and places the cursor's coordinates in the status buffer (see Example 2). Starting with Comet98 Build 232, (Easy Scan) turns the mouse on if it is not already being done. &lt;br /&gt;
&lt;br /&gt;
The (Scan Codes Off) mnemonic terminates &amp;quot;easy scan&amp;quot; mode. &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;reason for transmit&amp;quot; information is stored in the 8th byte of the console's status buffer, and is stored in hex. To determine which key (or click) caused the transmit to occur, perform the following operation: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
VALUE = ASC(SUB(STS(0),8,1)) &lt;br /&gt;
&lt;br /&gt;
Note: VALUE is a numeric field with length/precision of 3.0. &lt;br /&gt;
&lt;br /&gt;
The following values are returned: &lt;br /&gt;
&lt;br /&gt;
Value Key that caused the transmit to occur &lt;br /&gt;
4 Up arrow &lt;br /&gt;
5 Down arrow &lt;br /&gt;
6 Left mouse click &lt;br /&gt;
7 Ctrl + Home &lt;br /&gt;
8 Ctrl + End &lt;br /&gt;
9 Pg Up &lt;br /&gt;
10 Ctrl + Pg Up &lt;br /&gt;
11 Pg Dn &lt;br /&gt;
12 Ctrl + Pg Dn &lt;br /&gt;
14 Right mouse click &lt;br /&gt;
15 Window caption bar &amp;quot;X&amp;quot; was clicked. See (CreateWindowEx).  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Values 1, 2, and 3 are generated via the INPUT statement, and do not require the (Easy Scan) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
History:  The (Easy Scan) mnemonic was added in Comet version 504.208 as part of the enhanced INPUT statement. &lt;br /&gt;
Values 7 through 12 were added in Comet 504.228 and Comet98 Build 228. &lt;br /&gt;
&lt;br /&gt;
Starting with Comet98 Build 232, (EasyScan) turns the mouse on if it is not already being done. If it is already on, it is assumed the whoever turned it on will also turn it off. &lt;br /&gt;
&lt;br /&gt;
Starting with Build 292, (EasyScan) disables any scan modes that are currently enabled. &lt;br /&gt;
&lt;br /&gt;
Value 14 was added in Build 294. &lt;br /&gt;
&lt;br /&gt;
As of Build 294, (EasyScan) mouse clicks now occur on the up-click instead of the down-click. This is consistent with other Windows applications. &lt;br /&gt;
&lt;br /&gt;
Value 15 was added in Comet2002 Build 306. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
PRINT (0) (Mouse On)           ! Mouse on (optional)&lt;br /&gt;
.&lt;br /&gt;
PRINT (0) (Easy Scan)          ! Easy scan mode on&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
INPUT (0) DATA$                ! Input a field&lt;br /&gt;
&lt;br /&gt;
VALUE = ASC(SUB(STS(0),8,1))   ! Reason for transmit&lt;br /&gt;
&lt;br /&gt;
IF VALUE = 1 ...               ! F10 key&lt;br /&gt;
IF VALUE = 2 ...               ! Enter key&lt;br /&gt;
IF VALUE = 3 ...               ! Tab key&lt;br /&gt;
IF VALUE = 4 ...               ! Up arrow&lt;br /&gt;
IF VALUE = 5 ...               ! Down arrow&lt;br /&gt;
IF VALUE = 6 ...               ! Left mouse click&lt;br /&gt;
IF VALUE = 7 ...               ! Ctrl + Home&lt;br /&gt;
IF VALUE = 8 ...               ! Ctrl + End&lt;br /&gt;
IF VALUE = 9 ...               ! Pg Up&lt;br /&gt;
IF VALUE = 10 ...              ! Ctrl + Pg Up&lt;br /&gt;
IF VALUE = 11 ...              ! Pg Dn&lt;br /&gt;
IF VALUE = 12 ...              ! Ctrl + Pg Dn&lt;br /&gt;
IF VALUE = 14 ...              ! Right mouse click&lt;br /&gt;
IF VALUE = 15 ...              ! Window caption bar &amp;quot;X&amp;quot;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
PRINT (0) (ScanCodesOff)       ! Easy scan mode off&lt;br /&gt;
PRINT (0) (Mouse Off)          ! Mouse off (optional)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  &lt;br /&gt;
Data$ = Sub(Sts(0), 1, 254)    ! Get console status&lt;br /&gt;
J = Asc(Sub(Data$, 8, 1))      ! Get reason for transmit&lt;br /&gt;
If (J EQ 6)                    ! Mouse was clicked&lt;br /&gt;
  Row = Asc(Sub(Data$, 15, 1)) ! Get the row&lt;br /&gt;
  Col = Asc(sub(Data$, 16, 1)) ! Get the column&lt;br /&gt;
Endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to determine the cursor's coordinates when the mouse is clicked.&lt;br /&gt;
&lt;br /&gt;
==(Ellipse)==&lt;br /&gt;
'''Mnemonic''':   (Ellipse=left, top, right, bottom)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws an ellipse. The center of the ellipse is the center of the bounding rectangle specified by left, top, right, bottom. The ellipse is drawn with the current pen, and its interior is filled with the current brush. &lt;br /&gt;
The figure drawn by this function extends up to, but does not include, the right and bottom coordinates. This means that the height of the figure is bottom - top and the width of the figure is right - left. &lt;br /&gt;
&lt;br /&gt;
If either the width or the height of the bounding rectangle is 0, no ellipse is drawn. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater&lt;br /&gt;
&lt;br /&gt;
== (EmailDocument) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Email Mnemonic:   (EmailDocument=string-argument)  &lt;br /&gt;
Discussion:  The (EmailDocument) mnemonic may be used to specify the name associated with an attachment file. If an extension is not assigned, one appropriate for the file type will automatically be included (.pdf, .htm, etc). If this mnemonic is not used, the attachment will carry the default name assigned to the document.  &lt;br /&gt;
Example:  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
PRINT (1) (EmailDocument=&amp;quot;OrderDetails&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==  Email printer mnemonics ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic  Description  &lt;br /&gt;
(Server = SMTPServerName$)  Specify SMTP server name and port  &lt;br /&gt;
(Domain = Domain$)  Specify email domain name  &lt;br /&gt;
(From = FromAddr$)  Specify sender's name and address  &lt;br /&gt;
(To = ToAddr$)  Specify recipient's name and address  &lt;br /&gt;
(CC = CCaddr$)  Specify CC recipient's name and address  &lt;br /&gt;
(BCC = BCCaddr$)  Specify BCC recipient's name and address  &lt;br /&gt;
(Subject = Subject$)  Specify message's subject line  &lt;br /&gt;
(Text = Text$)  Specify a line of body text  &lt;br /&gt;
(EmailDocument = Name$)  Specify a name for the attachment  &lt;br /&gt;
(Log = LogFile$,LogDir$,ERASE)  Specify a log file name and erase parameter  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Discussion of the Email Printer (requires access to web site) &lt;br /&gt;
&lt;br /&gt;
 Read about other Email Mnemonics &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EN) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic:   (EN)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E06@&amp;quot;  &lt;br /&gt;
Discussion:  Enter normal mode. &lt;br /&gt;
The (EN) control code sets the video display in normal mode. The location of displayed information, the placement of the cursor, and the places where data is transmitted are determined by the FORMAT statements in the program. &lt;br /&gt;
&lt;br /&gt;
The alternative to normal mode is typewriter mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
&lt;br /&gt;
This example shows how to set normal mode, either at the beginning of a FORMAT statement or within a PRINT statement. The additional controls set background mode and display a heading at column 10, row 0.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (End Metafile) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (EndMetafile = flags)  &lt;br /&gt;
Discussion:  End the metafile collection process by saving and/or executing the currently active MetaFile. &lt;br /&gt;
Where flags indicate: &lt;br /&gt;
&lt;br /&gt;
VMF.SAVE = 0    ! Save the file - do not execute&lt;br /&gt;
VMF.EXECUTE	= 1 ! Execute the metafile&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EndWaitCursor) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (EndWaitCursor)  &lt;br /&gt;
Discussion:  This mnemonic turns off the hourglass cursor. &lt;br /&gt;
See (BeginWaitCursor) and (RestoreWaitCursor). &lt;br /&gt;
 &lt;br /&gt;
Example:  Print (BeginWaitCursor)&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (EndWaitCursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Enhanced Mouse On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (Enhanced Mouse On)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0906@&amp;quot;  &lt;br /&gt;
Discussion:  This control opens the enhanced mouse driver (if possible). &lt;br /&gt;
Also see (BIOS Mouse On) and (Mouse On). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Enhanced Mouse On)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Enhanced Mouse On&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EN) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (EN)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E06@&amp;quot;  &lt;br /&gt;
Discussion:  Enter normal mode. &lt;br /&gt;
The (EN) control code sets the video display in normal mode. The location of displayed information, the placement of the cursor, and the places where data is transmitted are determined by the FORMAT statements in the program. &lt;br /&gt;
&lt;br /&gt;
The alternative to normal mode is typewriter mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
&lt;br /&gt;
This example shows how to set normal mode, either at the beginning of a FORMAT statement or within a PRINT statement. The additional controls set background mode and display a heading at column 10, row 0.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (ET) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (ET)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E05@&amp;quot;  &lt;br /&gt;
Discussion:  Enter typewriter mode. &lt;br /&gt;
The (ET) control code sets the video display in typewriter mode. Each new line of data written to the screen causes the screen to scroll up one line. The new line of data is written on the bottom line of the screen in background mode. &lt;br /&gt;
&lt;br /&gt;
Transmit marks are automatically placed after the last byte of data written and at the lower right corner of the screen (making the remaining part of the bottom line the foreground data entry field). &lt;br /&gt;
&lt;br /&gt;
The cursor is placed at the left-most position of the foreground field on the bottom line. &lt;br /&gt;
&lt;br /&gt;
The alternative to typewriter mode is normal mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (ET)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   PRINT (0) &amp;quot;ENTER CUSTOMER NUMBER:&amp;quot;&lt;br /&gt;
   INPUT (0) CUSTNUM$&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (ET)&lt;br /&gt;
   PRINT (0) &amp;quot;ENTER CUSTOMER NUMBER:&amp;quot;&lt;br /&gt;
   INPUT (0) CUSTNUM$&lt;br /&gt;
&lt;br /&gt;
In this example, the screen is placed into typewriter mode. Then a prompt is displayed and data is accepted into the variable named CUSTNUM$. Items such as foreground, background and transmit marks are handled automatically.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EraseFile) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic:  (EraseFile=file,flags)  &lt;br /&gt;
Discussion:  The mnemonic erases a Windows file. &lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
The file name is in Windows format, UNC format, or a directory alias. &lt;br /&gt;
&lt;br /&gt;
Flags is the sum of the specified decimal values from the following chart: &lt;br /&gt;
&lt;br /&gt;
Flag Description &lt;br /&gt;
1 Perform function at CometAnywhere remote system &lt;br /&gt;
2 If not CometAnywhere, then substitute local for remote &lt;br /&gt;
If the program is running on a local Comet system (not on a CometAnywhere client system), this flag substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program can issue an INPUT on LUN (0) to retrieve the error information. For example: &lt;br /&gt;
&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$;RESULT$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (EraseFile=File$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
(FuncError) Description &lt;br /&gt;
0 Function not supported &lt;br /&gt;
1 Success &lt;br /&gt;
2 CometAnywhere required &lt;br /&gt;
3 Source file error (see suberrors) &lt;br /&gt;
4 Aborted by user &lt;br /&gt;
5 Function in progress &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
(FileError) Description &lt;br /&gt;
0 Success &lt;br /&gt;
2 File not found &lt;br /&gt;
3 Path not found &lt;br /&gt;
5 Access denied &lt;br /&gt;
12 Invalid access &lt;br /&gt;
15 Invalid drive &lt;br /&gt;
16 An error has occurred in the current directory &lt;br /&gt;
18 No more files &lt;br /&gt;
32 Sharing violation &lt;br /&gt;
33 Lock violation &lt;br /&gt;
80 File exists &lt;br /&gt;
161 Bad pathname &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Execute Metafile ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (ExecuteMetafile = FileName)  &lt;br /&gt;
Discussion:  Executes the previously saved metafile FileName.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22E%22</id>
		<title>Mnemonics &quot;E&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22E%22"/>
				<updated>2009-09-05T15:21:20Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Easy Scan) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Easy Scan)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':    (Easy Scan)  Hex equivalent:  &amp;quot;@0E0000@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Easy Scan) mnemonic places the Comet console into &amp;quot;easy scan&amp;quot; mode. (This mnemonic does not apply to QTerm or terminals.) &amp;lt;br&amp;gt;&lt;br /&gt;
In &amp;quot;easy scan&amp;quot; mode, if the user presses one of the recognized keys while the program is at an INPUT prompt, the program responds as if an F10, Enter, or Tab key was pressed. In combination with the returned screen coordinates (see INPUT), this feature allows for an enriched style of screen I/O programming. &lt;br /&gt;
&lt;br /&gt;
In addition, if the mouse driver is active (see the (Mouse On) mnemonic), a mouse click also generates a transmit, and places the cursor's coordinates in the status buffer (see Example 2). Starting with Comet98 Build 232, (Easy Scan) turns the mouse on if it is not already being done. &lt;br /&gt;
&lt;br /&gt;
The (Scan Codes Off) mnemonic terminates &amp;quot;easy scan&amp;quot; mode. &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;reason for transmit&amp;quot; information is stored in the 8th byte of the console's status buffer, and is stored in hex. To determine which key (or click) caused the transmit to occur, perform the following operation: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
VALUE = ASC(SUB(STS(0),8,1)) &lt;br /&gt;
&lt;br /&gt;
Note: VALUE is a numeric field with length/precision of 3.0. &lt;br /&gt;
&lt;br /&gt;
The following values are returned: &lt;br /&gt;
&lt;br /&gt;
Value Key that caused the transmit to occur &lt;br /&gt;
4 Up arrow &lt;br /&gt;
5 Down arrow &lt;br /&gt;
6 Left mouse click &lt;br /&gt;
7 Ctrl + Home &lt;br /&gt;
8 Ctrl + End &lt;br /&gt;
9 Pg Up &lt;br /&gt;
10 Ctrl + Pg Up &lt;br /&gt;
11 Pg Dn &lt;br /&gt;
12 Ctrl + Pg Dn &lt;br /&gt;
14 Right mouse click &lt;br /&gt;
15 Window caption bar &amp;quot;X&amp;quot; was clicked. See (CreateWindowEx).  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Values 1, 2, and 3 are generated via the INPUT statement, and do not require the (Easy Scan) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
History:  The (Easy Scan) mnemonic was added in Comet version 504.208 as part of the enhanced INPUT statement. &lt;br /&gt;
Values 7 through 12 were added in Comet 504.228 and Comet98 Build 228. &lt;br /&gt;
&lt;br /&gt;
Starting with Comet98 Build 232, (EasyScan) turns the mouse on if it is not already being done. If it is already on, it is assumed the whoever turned it on will also turn it off. &lt;br /&gt;
&lt;br /&gt;
Starting with Build 292, (EasyScan) disables any scan modes that are currently enabled. &lt;br /&gt;
&lt;br /&gt;
Value 14 was added in Build 294. &lt;br /&gt;
&lt;br /&gt;
As of Build 294, (EasyScan) mouse clicks now occur on the up-click instead of the down-click. This is consistent with other Windows applications. &lt;br /&gt;
&lt;br /&gt;
Value 15 was added in Comet2002 Build 306. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
PRINT (0) (Mouse On)           ! Mouse on (optional)&lt;br /&gt;
.&lt;br /&gt;
PRINT (0) (Easy Scan)          ! Easy scan mode on&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
INPUT (0) DATA$                ! Input a field&lt;br /&gt;
&lt;br /&gt;
VALUE = ASC(SUB(STS(0),8,1))   ! Reason for transmit&lt;br /&gt;
&lt;br /&gt;
IF VALUE = 1 ...               ! F10 key&lt;br /&gt;
IF VALUE = 2 ...               ! Enter key&lt;br /&gt;
IF VALUE = 3 ...               ! Tab key&lt;br /&gt;
IF VALUE = 4 ...               ! Up arrow&lt;br /&gt;
IF VALUE = 5 ...               ! Down arrow&lt;br /&gt;
IF VALUE = 6 ...               ! Left mouse click&lt;br /&gt;
IF VALUE = 7 ...               ! Ctrl + Home&lt;br /&gt;
IF VALUE = 8 ...               ! Ctrl + End&lt;br /&gt;
IF VALUE = 9 ...               ! Pg Up&lt;br /&gt;
IF VALUE = 10 ...              ! Ctrl + Pg Up&lt;br /&gt;
IF VALUE = 11 ...              ! Pg Dn&lt;br /&gt;
IF VALUE = 12 ...              ! Ctrl + Pg Dn&lt;br /&gt;
IF VALUE = 14 ...              ! Right mouse click&lt;br /&gt;
IF VALUE = 15 ...              ! Window caption bar &amp;quot;X&amp;quot;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
PRINT (0) (ScanCodesOff)       ! Easy scan mode off&lt;br /&gt;
PRINT (0) (Mouse Off)          ! Mouse off (optional)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  &lt;br /&gt;
Data$ = Sub(Sts(0), 1, 254)    ! Get console status&lt;br /&gt;
J = Asc(Sub(Data$, 8, 1))      ! Get reason for transmit&lt;br /&gt;
If (J EQ 6)                    ! Mouse was clicked&lt;br /&gt;
  Row = Asc(Sub(Data$, 15, 1)) ! Get the row&lt;br /&gt;
  Col = Asc(sub(Data$, 16, 1)) ! Get the column&lt;br /&gt;
Endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to determine the cursor's coordinates when the mouse is clicked.&lt;br /&gt;
&lt;br /&gt;
== (Ellipse) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (Ellipse=left, top, right, bottom)  &lt;br /&gt;
Discussion:  This mnemonic draws an ellipse. The center of the ellipse is the center of the bounding rectangle specified by left, top, right, bottom. The ellipse is drawn with the current pen, and its interior is filled with the current brush. &lt;br /&gt;
The figure drawn by this function extends up to, but does not include, the right and bottom coordinates. This means that the height of the figure is bottom - top and the width of the figure is right - left. &lt;br /&gt;
&lt;br /&gt;
If either the width or the height of the bounding rectangle is 0, no ellipse is drawn. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EmailDocument) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Email Mnemonic:   (EmailDocument=string-argument)  &lt;br /&gt;
Discussion:  The (EmailDocument) mnemonic may be used to specify the name associated with an attachment file. If an extension is not assigned, one appropriate for the file type will automatically be included (.pdf, .htm, etc). If this mnemonic is not used, the attachment will carry the default name assigned to the document.  &lt;br /&gt;
Example:  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
PRINT (1) (EmailDocument=&amp;quot;OrderDetails&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==  Email printer mnemonics ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic  Description  &lt;br /&gt;
(Server = SMTPServerName$)  Specify SMTP server name and port  &lt;br /&gt;
(Domain = Domain$)  Specify email domain name  &lt;br /&gt;
(From = FromAddr$)  Specify sender's name and address  &lt;br /&gt;
(To = ToAddr$)  Specify recipient's name and address  &lt;br /&gt;
(CC = CCaddr$)  Specify CC recipient's name and address  &lt;br /&gt;
(BCC = BCCaddr$)  Specify BCC recipient's name and address  &lt;br /&gt;
(Subject = Subject$)  Specify message's subject line  &lt;br /&gt;
(Text = Text$)  Specify a line of body text  &lt;br /&gt;
(EmailDocument = Name$)  Specify a name for the attachment  &lt;br /&gt;
(Log = LogFile$,LogDir$,ERASE)  Specify a log file name and erase parameter  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Discussion of the Email Printer (requires access to web site) &lt;br /&gt;
&lt;br /&gt;
 Read about other Email Mnemonics &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EN) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic:   (EN)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E06@&amp;quot;  &lt;br /&gt;
Discussion:  Enter normal mode. &lt;br /&gt;
The (EN) control code sets the video display in normal mode. The location of displayed information, the placement of the cursor, and the places where data is transmitted are determined by the FORMAT statements in the program. &lt;br /&gt;
&lt;br /&gt;
The alternative to normal mode is typewriter mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
&lt;br /&gt;
This example shows how to set normal mode, either at the beginning of a FORMAT statement or within a PRINT statement. The additional controls set background mode and display a heading at column 10, row 0.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (End Metafile) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (EndMetafile = flags)  &lt;br /&gt;
Discussion:  End the metafile collection process by saving and/or executing the currently active MetaFile. &lt;br /&gt;
Where flags indicate: &lt;br /&gt;
&lt;br /&gt;
VMF.SAVE = 0    ! Save the file - do not execute&lt;br /&gt;
VMF.EXECUTE	= 1 ! Execute the metafile&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EndWaitCursor) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (EndWaitCursor)  &lt;br /&gt;
Discussion:  This mnemonic turns off the hourglass cursor. &lt;br /&gt;
See (BeginWaitCursor) and (RestoreWaitCursor). &lt;br /&gt;
 &lt;br /&gt;
Example:  Print (BeginWaitCursor)&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (EndWaitCursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Enhanced Mouse On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (Enhanced Mouse On)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0906@&amp;quot;  &lt;br /&gt;
Discussion:  This control opens the enhanced mouse driver (if possible). &lt;br /&gt;
Also see (BIOS Mouse On) and (Mouse On). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Enhanced Mouse On)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Enhanced Mouse On&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EN) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (EN)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E06@&amp;quot;  &lt;br /&gt;
Discussion:  Enter normal mode. &lt;br /&gt;
The (EN) control code sets the video display in normal mode. The location of displayed information, the placement of the cursor, and the places where data is transmitted are determined by the FORMAT statements in the program. &lt;br /&gt;
&lt;br /&gt;
The alternative to normal mode is typewriter mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (EN);(SB);&amp;quot;CUSTOMER INQUIRY&amp;quot;,@(10,0)&lt;br /&gt;
&lt;br /&gt;
This example shows how to set normal mode, either at the beginning of a FORMAT statement or within a PRINT statement. The additional controls set background mode and display a heading at column 10, row 0.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (ET) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (ET)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E05@&amp;quot;  &lt;br /&gt;
Discussion:  Enter typewriter mode. &lt;br /&gt;
The (ET) control code sets the video display in typewriter mode. Each new line of data written to the screen causes the screen to scroll up one line. The new line of data is written on the bottom line of the screen in background mode. &lt;br /&gt;
&lt;br /&gt;
Transmit marks are automatically placed after the last byte of data written and at the lower right corner of the screen (making the remaining part of the bottom line the foreground data entry field). &lt;br /&gt;
&lt;br /&gt;
The cursor is placed at the left-most position of the foreground field on the bottom line. &lt;br /&gt;
&lt;br /&gt;
The alternative to typewriter mode is normal mode. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (ET)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   PRINT (0) &amp;quot;ENTER CUSTOMER NUMBER:&amp;quot;&lt;br /&gt;
   INPUT (0) CUSTNUM$&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (ET)&lt;br /&gt;
   PRINT (0) &amp;quot;ENTER CUSTOMER NUMBER:&amp;quot;&lt;br /&gt;
   INPUT (0) CUSTNUM$&lt;br /&gt;
&lt;br /&gt;
In this example, the screen is placed into typewriter mode. Then a prompt is displayed and data is accepted into the variable named CUSTNUM$. Items such as foreground, background and transmit marks are handled automatically.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (EraseFile) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic:  (EraseFile=file,flags)  &lt;br /&gt;
Discussion:  The mnemonic erases a Windows file. &lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
The file name is in Windows format, UNC format, or a directory alias. &lt;br /&gt;
&lt;br /&gt;
Flags is the sum of the specified decimal values from the following chart: &lt;br /&gt;
&lt;br /&gt;
Flag Description &lt;br /&gt;
1 Perform function at CometAnywhere remote system &lt;br /&gt;
2 If not CometAnywhere, then substitute local for remote &lt;br /&gt;
If the program is running on a local Comet system (not on a CometAnywhere client system), this flag substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program can issue an INPUT on LUN (0) to retrieve the error information. For example: &lt;br /&gt;
&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$;RESULT$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (EraseFile=File$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
(FuncError) Description &lt;br /&gt;
0 Function not supported &lt;br /&gt;
1 Success &lt;br /&gt;
2 CometAnywhere required &lt;br /&gt;
3 Source file error (see suberrors) &lt;br /&gt;
4 Aborted by user &lt;br /&gt;
5 Function in progress &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
(FileError) Description &lt;br /&gt;
0 Success &lt;br /&gt;
2 File not found &lt;br /&gt;
3 Path not found &lt;br /&gt;
5 Access denied &lt;br /&gt;
12 Invalid access &lt;br /&gt;
15 Invalid drive &lt;br /&gt;
16 An error has occurred in the current directory &lt;br /&gt;
18 No more files &lt;br /&gt;
32 Sharing violation &lt;br /&gt;
33 Lock violation &lt;br /&gt;
80 File exists &lt;br /&gt;
161 Bad pathname &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Execute Metafile ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:  (ExecuteMetafile = FileName)  &lt;br /&gt;
Discussion:  Executes the previously saved metafile FileName.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Draw Text) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Bit Map)==&lt;br /&gt;
'''Mnemonic''':   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
==(Draw box)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (Draw box=a,b,c,d)&amp;lt;br&amp;gt; &lt;br /&gt;
where:&amp;lt;br&amp;gt;&lt;br /&gt;
'''a''' = upper left column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''b''' = upper left row (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''c''' = lower right column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''d''' = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
Hex equivalent:  --  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Image)==&lt;br /&gt;
'''Mnemonic''':   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
==(Draw Text)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &amp;lt;br&amp;gt;&lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|DT.TOP  &lt;br /&gt;
|Specifies top-justified text (single line only).  &lt;br /&gt;
|-&lt;br /&gt;
|DT.LEFT  &lt;br /&gt;
|Aligns text flush-left.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.CENTER  &lt;br /&gt;
|Centers text horizontally.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.RIGHT  &lt;br /&gt;
|Aligns text flush-right.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.VCENTER  &lt;br /&gt;
|Specifies vertically centered text (single line only).  &lt;br /&gt;
|-&lt;br /&gt;
|DT.BOTTOM  &lt;br /&gt;
|Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.WORDBREAK  &lt;br /&gt;
|Specifies word-breaking. Lines are automatically broken between words if a word would    extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.SINGLELINE  &lt;br /&gt;
|Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.EXPANDTABS  &lt;br /&gt;
|Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.TABSTOP  &lt;br /&gt;
|Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.NOCLIP  &lt;br /&gt;
|Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.EXTERNALLEADING  &lt;br /&gt;
|Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.CALCRECT  &lt;br /&gt;
|Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.NOPREFIX  &lt;br /&gt;
|Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.INTERNAL  &lt;br /&gt;
|Uses the system font to calculate text metrics.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.EDITCONTROL  &lt;br /&gt;
|Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.PATH.ELLIPSIS  &lt;br /&gt;
|See DT.END.ELLIPSIS Below  &lt;br /&gt;
|-&lt;br /&gt;
|DT.END.ELLIPSIS  &lt;br /&gt;
|Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, &lt;br /&gt;
|-&lt;br /&gt;
|DT.PATH.ELLIPSIS &lt;br /&gt;
|preserves as much as possible of the text after the last backslash. &lt;br /&gt;
|-&lt;br /&gt;
|DT.MODIFYSTRING  &lt;br /&gt;
|Modifies the given string to match the displayed text. This flag has no effect unless the &lt;br /&gt;
|-&lt;br /&gt;
|DT_END_ELLIPSIS or DT_PATH_ELLIPSIS &lt;br /&gt;
|flag is specified.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.RTLREADING  &lt;br /&gt;
|Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
|-&lt;br /&gt;
|DT.WORD.ELLIPSIS  &lt;br /&gt;
|Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Draw Text) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Bit Map)==&lt;br /&gt;
'''Mnemonic''':   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
==(Draw box)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (Draw box=a,b,c,d)&amp;lt;br&amp;gt; &lt;br /&gt;
where:&amp;lt;br&amp;gt;&lt;br /&gt;
'''a''' = upper left column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''b''' = upper left row (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''c''' = lower right column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''d''' = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
Hex equivalent:  --  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Image)==&lt;br /&gt;
'''Mnemonic''':   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
==(Draw Text)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &amp;lt;br&amp;gt;&lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would    extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:19:08Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Draw Image) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Bit Map)==&lt;br /&gt;
'''Mnemonic''':   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
==(Draw box)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (Draw box=a,b,c,d)&amp;lt;br&amp;gt; &lt;br /&gt;
where:&amp;lt;br&amp;gt;&lt;br /&gt;
'''a''' = upper left column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''b''' = upper left row (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''c''' = lower right column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''d''' = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
Hex equivalent:  --  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Image)==&lt;br /&gt;
'''Mnemonic''':   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:17:31Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Draw box) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Bit Map)==&lt;br /&gt;
'''Mnemonic''':   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
==(Draw box)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (Draw box=a,b,c,d)&amp;lt;br&amp;gt; &lt;br /&gt;
where:&amp;lt;br&amp;gt;&lt;br /&gt;
'''a''' = upper left column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''b''' = upper left row (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''c''' = lower right column (decimal)&amp;lt;br&amp;gt;&lt;br /&gt;
'''d''' = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
Hex equivalent:  --  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:15:02Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Draw Bit Map) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Bit Map)==&lt;br /&gt;
'''Mnemonic''':   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:14:03Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Draw Bit Map) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Bit Map)==&lt;br /&gt;
'''Mnemonic''':   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
'''BMR.CENTER.HZ.REC'''T      Center the bitmap horizontally in rectangle&lt;br /&gt;
'''BMR.CENTER.VT.RECT'''      Center the bitmap vertically in rectangle&lt;br /&gt;
'''BMR.SCALE'''               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Draw Bit Map) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Draw Bit Map)==&lt;br /&gt;
'''Mnemonic''':   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:11:41Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Domain) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Domain)==&lt;br /&gt;
'''Email Mnemonic''':   (Domain=string-argument) &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
  PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
  PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Draw Bit Map) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:10:15Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Document) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Document)==&lt;br /&gt;
'''Mnemonic''':   (Document=string-argument, string argument)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Domain) ==&lt;br /&gt;
 &lt;br /&gt;
Email Mnemonic:   (Domain=string-argument)  &lt;br /&gt;
Discussion:  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
Example:  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== (Draw Bit Map) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:08:42Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (DeleteWindowEx) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(DeleteWindowEx)==&lt;br /&gt;
'''Mnemonic''':   (DeleteWindowEx=handle$)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Document) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Document=string-argument, string argument)  &lt;br /&gt;
Discussion:  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &lt;br /&gt;
Example:  OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Domain) ==&lt;br /&gt;
 &lt;br /&gt;
Email Mnemonic:   (Domain=string-argument)  &lt;br /&gt;
Discussion:  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
Example:  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== (Draw Bit Map) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:07:35Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Delete Window) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Delete Window)==&lt;br /&gt;
'''Mnemonic''':   (Delete Window)  Hex equivalent:  &amp;quot;@0E0D01@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &amp;lt;br&amp;gt;&lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (DeleteWindowEx) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (DeleteWindowEx=handle$)  &lt;br /&gt;
Discussion:  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  (Document) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Document=string-argument, string argument)  &lt;br /&gt;
Discussion:  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &lt;br /&gt;
Example:  OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Domain) ==&lt;br /&gt;
 &lt;br /&gt;
Email Mnemonic:   (Domain=string-argument)  &lt;br /&gt;
Discussion:  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
Example:  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== (Draw Bit Map) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22D%22</id>
		<title>Mnemonics &quot;D&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22D%22"/>
				<updated>2009-09-04T21:05:53Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (DE) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(DE)==&lt;br /&gt;
'''Mnemonic''':   (DE)  Hex equivalent:  &amp;quot;@0404@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Default characters per line. &lt;br /&gt;
This control code sets the default number of characters per line. The default value is established in the terminal setup, the terminal emulator setup, or the console setup, depending on the type of device being used. &lt;br /&gt;
&lt;br /&gt;
Also see (Screen), (CPL132), (CPL64), and (CPL80). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (DE)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (DE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Delete Window) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Delete Window)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D01@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic deletes a Comet window. If multiple windows have been created, this mnemonic deletes the most recently displayed window. &lt;br /&gt;
When a window is deleted, the memory it used is returned to the amount of available window memory. To determine how much window memory remains, perform a numeric input immediately following the deletion of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Delete Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Delete Window)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Delete Window)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== (DeleteWindowEx) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (DeleteWindowEx=handle$)  &lt;br /&gt;
Discussion:  This mnemonic deletes an extended window. &lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx). &lt;br /&gt;
&lt;br /&gt;
See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. &lt;br /&gt;
&lt;br /&gt;
Also see (SelectWindowEx). &lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Example:  The following example creates two extended windows, then uses the (DeleteWindowEx) mnemonic to delete them. &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$,Handle2$&lt;br /&gt;
.&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,68,0,&amp;quot;Window 1&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&lt;br /&gt;
Print (CreateWindowEx=0,40,20,10,68,0,&amp;quot;Window 2&amp;quot;)&lt;br /&gt;
Input Handle2$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Print (DeleteWindowEx=Handle1$)   ! delete window 1&lt;br /&gt;
Print (DeleteWindowEx=Handle2$)   ! delete window 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  (Document) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Document=string-argument, string argument)  &lt;br /&gt;
Discussion:  The (Document) mnemonic specifies a file name and Comet directory to be used for pdf, html, or txt print files. You may issue the mnemonic several times to produce multiple uniquely-named copies of the output file. Because a qdir entry will not be created for this file, you may use long filenames. CosP uses CometLib to make the document copies. Thus, a COM license is required to use this mnemonic. &lt;br /&gt;
The first string-argument is a string constant or variable containing the file name. If the name does not contain an extension, the appropriate one (.pdf, .html, or .txt) will be added depending on the type of printer being used. The second string-argument is the 3-character name of the CFAM directory where the file will be created. &lt;br /&gt;
&lt;br /&gt;
If the second argument is an empty string, it is assumed that the first argument is a fully qualified windows path to the output file. This may point to a CFAM or non CFAM controlled directory. This path may not contain a directory alias. If a directory alias is required, use the (GetDirAlias) mnemonic to build the path. &lt;br /&gt;
&lt;br /&gt;
Note: Do not confuse the (Document) mnemonic's use with that of (SpoolMessage). They serve two different purposes and may both be used on the same document. While the (Document) mnemonic is used to copy the document to any CFAM directory or windows path, the (SpoolMessage) mnemonic is used to name the document stored in a configured Archive. &lt;br /&gt;
&lt;br /&gt;
The (Document) mnemonic is not available for CometAnywhere Clients. &lt;br /&gt;
 &lt;br /&gt;
Example:  OPEN(1) &amp;quot;LPH&amp;quot;&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;Sales Report&amp;quot;,&amp;quot;RPT&amp;quot;)&lt;br /&gt;
PRINT(1) (DOCUMENT=&amp;quot;\\MyServer\archive\Sales Report 05-14-08.htm&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Domain) ==&lt;br /&gt;
 &lt;br /&gt;
Email Mnemonic:   (Domain=string-argument)  &lt;br /&gt;
Discussion:  The (Domain) mnemonic may be used to specify a domain name for the the smtp server for your email printer. If not specified, the email printer will supply the same domain as designated in the (Server=) mnemonic.  &lt;br /&gt;
Example:  OPEN (1) &amp;quot;LEH&amp;quot;&lt;br /&gt;
PRINT (1) (Server=&amp;quot;smtp.our.mail.server.net 25&amp;quot;)&lt;br /&gt;
PRINT (1) (Domain=&amp;quot;our.mail.server.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== (Draw Bit Map) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Bit Map=left, top, right, bottom, scaleX, scaleY, flags); filename  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
See (Draw Image).  &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw box) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw box=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  --  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical box using the specified screen coordinates (decimal values). &lt;br /&gt;
Note: The box overwrites any text displayed on the screen within the specified coordinates (i.e., this is not a &amp;quot;window&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Draw box=2,3,5,10)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Draw box=2,3,5,10)&lt;br /&gt;
&lt;br /&gt;
== (Draw Image) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Image=left, top, right, bottom, scaleX, scaleY, flags, filename)  &lt;br /&gt;
Discussion:  This mnemonic draws the bitmap contained in the file (.BMP/.JPG) specified in filename in the rectangle specified by left, top, right, bottom using the format codes contained in flags. Scaling factors can be specified in scaleX, scaleY. &lt;br /&gt;
(Draw Image) performs the same function as (Draw Bitmap), except that the filename is included as an argument of the mnemonic instead of a field following the mnemonic. This makes it unnecessary to add a trailing &amp;quot;@00@&amp;quot; to the printername. &lt;br /&gt;
&lt;br /&gt;
Valid format code are: &lt;br /&gt;
&lt;br /&gt;
BMR.FIT.TO.RECT         Stretch (or shrink) bitmap to fit rectangle.&lt;br /&gt;
&lt;br /&gt;
Cannot be used with any other codes or&lt;br /&gt;
&lt;br /&gt;
BMR.CENTER.HZ.RECT      Center the bitmap horizontally in rectangle&lt;br /&gt;
BMR.CENTER.VT.RECT      Center the bitmap vertically in rectangle&lt;br /&gt;
BMR.SCALE               Multiply dimensions by scaling factors below&lt;br /&gt;
&lt;br /&gt;
When scaling, values contained in ScaleX and ScaleY are converted to floating point, divided by 100, and then multiplied by their respective axis to providing scaling by as little as 1 percent. &lt;br /&gt;
Scaling example: &lt;br /&gt;
&lt;br /&gt;
To double only the horizontal size of a bitmap: &lt;br /&gt;
&lt;br /&gt;
ScaleX = 200            ! * 2&lt;br /&gt;
ScaleY = 100            ! * 1&lt;br /&gt;
&lt;br /&gt;
To halve a bitmap&lt;br /&gt;
ScaleX = 50             ! * .5&lt;br /&gt;
ScaleY = 50             ! * .5&lt;br /&gt;
&lt;br /&gt;
To convert bitmap pixels to .01 inch:&lt;br /&gt;
ScaleX = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
ScaleY = 1440           ! * 14.40 (TWIPS/inch)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Draw Text) ==&lt;br /&gt;
 &lt;br /&gt;
Mnemonic:   (Draw Text=left, top, right, bottom, flags); printable-text  &lt;br /&gt;
Discussion:  Prints the specified printable-text into the rectangle specified by the coordinates left, top, right, bottom using the format codes specified in flags. &lt;br /&gt;
Call this member function to format text in the given rectangle. It formats text by expanding tabs into appropriate spaces, aligning text to the left, right, or center of the given rectangle, and breaking text into lines that fit within the given rectangle, and breaking text into lines that fit within the given rectangle. The type of formatting is specified by flags. &lt;br /&gt;
&lt;br /&gt;
The formatting codes can be combined and are specified in flags. &lt;br /&gt;
&lt;br /&gt;
DT.TOP  Specifies top-justified text (single line only).  &lt;br /&gt;
DT.LEFT  Aligns text flush-left.  &lt;br /&gt;
DT.CENTER  Centers text horizontally.  &lt;br /&gt;
DT.RIGHT  Aligns text flush-right.  &lt;br /&gt;
DT.VCENTER  Specifies vertically centered text (single line only).  &lt;br /&gt;
DT.BOTTOM  Specifies bottom-justified text. This value must be combined with DT.SINGLELINE.  &lt;br /&gt;
DT.WORDBREAK  Specifies word-breaking. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by left, top, right, bottom. A carriage return-linefeed sequence will also break the line.  &lt;br /&gt;
DT.SINGLELINE  Specifies single line only. Carriage returns and linefeeds do not break the line.  &lt;br /&gt;
DT.EXPANDTABS  Expands tab characters. The default number of characters per tab is eight.  &lt;br /&gt;
DT.TABSTOP  Sets tab stops. The high-order byte of PtrFlags is the number of characters for each tab. The default number of characters per tab is eight.  &lt;br /&gt;
DT.NOCLIP  Draws without clipping. DrawText is somewhat faster when DT.NOCLIP is used.  &lt;br /&gt;
DT.EXTERNALLEADING  Includes the font's external leading in the line height. Normally, external leading is not included in the height of a line of text.  &lt;br /&gt;
DT.CALCRECT  Returns the height of the formatted text, but does not draw the text.  &lt;br /&gt;
DT.NOPREFIX  Turns off processing of prefix characters. Normally, DrawText interprets the ampersand (&amp;amp;) mnemonic-prefix character as a directive to underscore the character that follows, and the two-ampersand (&amp;amp;&amp;amp;) mnemonic- prefix characters as a directive to print a single ampersand. By specifying DT.NOPREFIX, this processing is turned off.  &lt;br /&gt;
DT.INTERNAL  Uses the system font to calculate text metrics.  &lt;br /&gt;
DT.EDITCONTROL  Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.  &lt;br /&gt;
DT.PATH.ELLIPSIS  See DT.END.ELLIPSIS Below  &lt;br /&gt;
DT.END.ELLIPSIS  Replaces part of the given string with ellipses, if necessary, so that the result fits in the specified rectangle. The given string is not modified unless the DT.MODIFYSTRING flag is specified. &lt;br /&gt;
You can specify DT.END.ELLIPSIS to replace characters at the end of the string, or DT.PATH.ELLIPSIS to replace characters in the middle of the string. If the string contains backslash (\) characters, DT.PATH.ELLIPSIS preserves as much as possible of the text after the last backslash. &lt;br /&gt;
 &lt;br /&gt;
DT.MODIFYSTRING  Modifies the given string to match the displayed text. This flag has no effect unless the DT_END_ELLIPSIS or DT_PATH_ELLIPSIS flag is specified.  &lt;br /&gt;
DT.RTLREADING  Layout in right to left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left to right.  &lt;br /&gt;
DT.WORD.ELLIPSIS  Truncates text that does not fit in the rectangle and adds ellipses.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: The values DT.CALCRECT, DT.EXTERNALLEADING, DT.INTERNAL, DT.NOCLIP, and DT.NOPREFIX cannot be used with the DT.TABSTOP value. &lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic is valid in Comet98 and greater.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T21:03:17Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BF) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BIOS Mouse On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This control opens the BIOS mouse driver (if possible). Also see [[#(Mouse On)]] and [[#(Enhanced Mouse On)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
  .&lt;br /&gt;
      PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==(BM)==&lt;br /&gt;
'''Mnemonic''': (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered.&lt;br /&gt;
&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T21:03:00Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BM) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BIOS Mouse On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This control opens the BIOS mouse driver (if possible). Also see [[#(Mouse On)]] and [[#(Enhanced Mouse On)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
  .&lt;br /&gt;
      PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
    .&lt;br /&gt;
     PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BM)==&lt;br /&gt;
'''Mnemonic''': (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered.&lt;br /&gt;
&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T21:01:48Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BM) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BIOS Mouse On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This control opens the BIOS mouse driver (if possible). Also see [[#(Mouse On)]] and [[#(Enhanced Mouse On)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
  .&lt;br /&gt;
      PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
    .&lt;br /&gt;
     PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BM)==&lt;br /&gt;
'''Mnemonic''': (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered.&lt;br /&gt;
&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==(BM)==&lt;br /&gt;
'''Mnemonic''': (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
    .&lt;br /&gt;
     PRINT (0,100)&lt;br /&gt;
     INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
       .&lt;br /&gt;
     PRINT (0) (BM)&lt;br /&gt;
     INPUT (0) PASSWORD$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered.&lt;br /&gt;
&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T21:00:04Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BM) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BIOS Mouse On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This control opens the BIOS mouse driver (if possible). Also see [[#(Mouse On)]] and [[#(Enhanced Mouse On)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
  .&lt;br /&gt;
      PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
    .&lt;br /&gt;
     PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BM)==&lt;br /&gt;
'''Mnemonic''': (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered.&lt;br /&gt;
&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T20:58:36Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BF) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BIOS Mouse On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This control opens the BIOS mouse driver (if possible). Also see [[#(Mouse On)]] and [[#(Enhanced Mouse On)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
  .&lt;br /&gt;
      PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
    .&lt;br /&gt;
     PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T20:57:30Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BIOS Mouse On) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
==(BIOS Mouse On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This control opens the BIOS mouse driver (if possible). Also see [[#(Mouse On)]] and [[#(Enhanced Mouse On)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
  .&lt;br /&gt;
      PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T20:56:04Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BF) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(BF)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line.&lt;br /&gt;
&lt;br /&gt;
== (BIOS Mouse On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; Discussion: This control opens the BIOS mouse driver (if possible). Also see (Mouse On) and (Enhanced Mouse On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T20:54:45Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BeginWaitCursor) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
==(BeginWaitCursor)==&lt;br /&gt;
'''Mnemonic''': (BeginWaitCursor) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the hourglass cursor. See [[#(EndWaitCursor)]] and [[#(RestoreWaitCursor)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
   Print (BeginWaitCursor) . . .  &lt;br /&gt;
   Print (EndWaitCursor) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BIOS Mouse On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; Discussion: This control opens the BIOS mouse driver (if possible). Also see (Mouse On) and (Enhanced Mouse On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T20:53:18Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Begin Metafile) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
'''Mnemonic''': (BeginMetafile = FileName) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see [[#ExecuteMetafile]]). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (BeginWaitCursor) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BeginWaitCursor) Discussion: This mnemonic turns on the hourglass cursor. See (EndWaitCursor) and (RestoreWaitCursor). &lt;br /&gt;
&lt;br /&gt;
Example: Print (BeginWaitCursor) . . . Print (EndWaitCursor) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BIOS Mouse On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; Discussion: This control opens the BIOS mouse driver (if possible). Also see (Mouse On) and (Enhanced Mouse On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22B%22</id>
		<title>Mnemonics &quot;B&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22B%22"/>
				<updated>2009-09-04T20:51:54Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (BCC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(BCC)==&lt;br /&gt;
'''Email Mnemonic''': (BCC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (BCC) mnemonic may be used to specify &amp;quot;blind carbon copy&amp;quot; recipients of your email message. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (BCC=&amp;quot;brian@@signature.net&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Begin Metafile) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BeginMetafile = FileName) Discussion: Initiates the collecting of GDI functions into a virtual memory block (Metafile) that is passed to COSW in a single write rather than one function at a time enhancing performance. If FileName is non-blank the file can be saved to disk and recalled at a later time (see ExecuteMetafile). &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BeginWaitCursor) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BeginWaitCursor) Discussion: This mnemonic turns on the hourglass cursor. See (EndWaitCursor) and (RestoreWaitCursor). &lt;br /&gt;
&lt;br /&gt;
Example: Print (BeginWaitCursor) . . . Print (EndWaitCursor) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BIOS Mouse On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BIOS Mouse On) Hex equivalent: &amp;quot;@0E0905@&amp;quot; Discussion: This control opens the BIOS mouse driver (if possible). Also see (Mouse On) and (Enhanced Mouse On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (BIOS Mouse On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100&lt;br /&gt;
b. PRINT (0) (BIOS Mouse On &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BF) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (BF) Hex equivalent: &amp;quot;@0406@&amp;quot; Discussion: Blank fill. The (BF) control code replaces all characters from the cursor position to the end of the line with blanks. The current mode -- foreground, background, or invisible (suppressed background) -- determines the type of blank. When this control is complete, the cursor is positioned at the beginning of the next line (or the next available foreground position on the screen). &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the fill operation from a specific point on the screen. &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (SB);(BF),@(10,0) &lt;br /&gt;
&lt;br /&gt;
This example sets the video mode to background (SB), and then blank fills the top row of the screen (i.e., row 0) from position 10 to the end of the line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Blink) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Blink) Hex equivalent: &amp;quot;@0E0001@&amp;quot; Discussion: This mnemonic displays blinking characters on the Comet console. Blinking works only on &amp;quot;bright&amp;quot; characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). Blinking works on all of the &amp;quot;bright&amp;quot; characters on the screen, including foreground fields, background fields, invisible fields, and data entry fields. To blink all &amp;quot;bright&amp;quot; characters on the screen, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Blink) &lt;br /&gt;
&lt;br /&gt;
To display &amp;quot;bright&amp;quot; characters, and stop the blinking, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors (blinking works here)&lt;br /&gt;
 ==========================================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
 Examples:&lt;br /&gt;
 Color   Definition                              Will it blink?&lt;br /&gt;
 ==============================================================&lt;br /&gt;
 17      blue background, white characters                 no&lt;br /&gt;
 97      light blue background, white characters           yes&lt;br /&gt;
 1F      blue background, bright white characters          no&lt;br /&gt;
 9F      light blue background, bright white characters    yes&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Blink) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Blink) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== (BM) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (BM) Hex equivalent: &amp;quot;@0405@&amp;quot; Discussion: Blind mode. The (BM) control code establishes &amp;quot;blind mode&amp;quot; -- an attribute where characters entered from the keyboard do not appear on the screen. Up to 32 characters can be entered with the video device in blind mode. This control code is typically used for entering invisible passwords. &lt;br /&gt;
&lt;br /&gt;
Example: a. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  100 FORMAT (BM)&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
b. LENGTH 32 &amp;amp; LOCAL PASSWORD$ &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0) (BM)&lt;br /&gt;
  INPUT (0) PASSWORD$&lt;br /&gt;
This example shows how to set the blind mode input buffer. The (BM) control code is written and the data is entered into the variable named PASSWORD$. This data will not be visible on the screen as it is entered. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Bright) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: As of Comet version 504, this mnemonic is no longer supported. Mnemonic: (Bright) Hex equivalent: &amp;quot;@0E0002@&amp;quot; Discussion: This mnemonic displays bright characters on the Comet console. Bright characters that are defined as the &amp;quot;background color&amp;quot; of a field (i.e., the first character in the color definition). To display &amp;quot;bright&amp;quot; characters, use the following instruction: &lt;br /&gt;
&lt;br /&gt;
PRINT (0) (Bright) &lt;br /&gt;
&lt;br /&gt;
Note: The (Bright) mnemonic also turns off blinking fields that have been previously set with the (Blink) mnemonic. &lt;br /&gt;
&lt;br /&gt;
The 16 VGA colors are shown below, with the &amp;quot;bright&amp;quot; characters shown at the right-hand side: &lt;br /&gt;
&lt;br /&gt;
 Regular colors         Bright colors&lt;br /&gt;
 =========================================&lt;br /&gt;
 0  black               8    gray&lt;br /&gt;
 1  blue                9    light blue&lt;br /&gt;
 2  green               A    light green&lt;br /&gt;
 3  cyan                B    light cyan&lt;br /&gt;
 4  red                 C    light red&lt;br /&gt;
 5  magenta             D    light magenta&lt;br /&gt;
 6  brown               E    yellow&lt;br /&gt;
 7  white               F    bright white&lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Bright) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Bright)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22A%22</id>
		<title>Mnemonics &quot;A&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22A%22"/>
				<updated>2009-09-04T20:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (AutoCROn) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Allow Maximize)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Allow Maximize=state) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic disables/enables the maximize controls on the COSW window. Use this mnemonic to prevent the user from maximizing the COSW window. State is a flag indicating which function is to be performed: &lt;br /&gt;
&lt;br /&gt;
'''0''' Disable the maximize controls &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' Enable the maximize controls &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
! Disable the maximize controls &lt;br /&gt;
     Print (Allow Maximize=0) . . . &lt;br /&gt;
! Enable the maximize controls &lt;br /&gt;
    Print (Allow Maximize=1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Archive mnemonics ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Description''' (Document=longfilename,dir) Specifies a name for a copy of an archive document &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
(SpoolMessage=DocumentName) Specifies the filename to be used for a document stored in an archive. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Metafile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''': (AutoMetafile = State) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Enables/disables the automatic use of un-named metafiles. AutoMetafile is ON by default. When disabled, the existing metafile (if present) will be executed. Where State is: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AMF.DISABLE = 0 ! Disables automatic metafiles &lt;br /&gt;
AMF.ENABLE = 1 ! Enables automatic metafiles &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Tab Off)==&lt;br /&gt;
'''Mnemonic''': (Auto TAB Off) Hex equivalent: &amp;quot;@0E0004@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns off the &amp;quot;automatic tab mode.&amp;quot; Also see (Auto TAB On). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (Auto TAB Off) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB Off) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Tab On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Auto TAB On) Hex equivalent: &amp;quot;@0E0003@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the &amp;quot;automatic tab mode.&amp;quot; In this mode, the cursor automatically advances to the next input field when it reaches the last character of the current input field. Also see [[#(Auto TAB Off)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (Auto TAB On) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB On) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(AutoCROff)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (AutoCROff) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (AutoCROff) mnemonic turns off the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the [[#(AutoCROn)]] mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. &lt;br /&gt;
&lt;br /&gt;
History: Support for this mnemonic was added in Comet 2004. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (AutoCROff) &lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
     .&lt;br /&gt;
   PRINT (1) (AutoCROff)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(AutoCROn)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (AutoCROn) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (AutoCROn) mnemonic turns on the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the [[#(AutoCROff)]] mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. &lt;br /&gt;
&lt;br /&gt;
History: Support for this mnemonic was added in Comet 2004. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (AutoCROn) &lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22A%22</id>
		<title>Mnemonics &quot;A&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22A%22"/>
				<updated>2009-09-04T20:48:43Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (AutoCROff) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Allow Maximize)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Allow Maximize=state) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic disables/enables the maximize controls on the COSW window. Use this mnemonic to prevent the user from maximizing the COSW window. State is a flag indicating which function is to be performed: &lt;br /&gt;
&lt;br /&gt;
'''0''' Disable the maximize controls &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' Enable the maximize controls &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
! Disable the maximize controls &lt;br /&gt;
     Print (Allow Maximize=0) . . . &lt;br /&gt;
! Enable the maximize controls &lt;br /&gt;
    Print (Allow Maximize=1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Archive mnemonics ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Description''' (Document=longfilename,dir) Specifies a name for a copy of an archive document &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
(SpoolMessage=DocumentName) Specifies the filename to be used for a document stored in an archive. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Metafile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''': (AutoMetafile = State) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Enables/disables the automatic use of un-named metafiles. AutoMetafile is ON by default. When disabled, the existing metafile (if present) will be executed. Where State is: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AMF.DISABLE = 0 ! Disables automatic metafiles &lt;br /&gt;
AMF.ENABLE = 1 ! Enables automatic metafiles &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Tab Off)==&lt;br /&gt;
'''Mnemonic''': (Auto TAB Off) Hex equivalent: &amp;quot;@0E0004@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns off the &amp;quot;automatic tab mode.&amp;quot; Also see (Auto TAB On). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (Auto TAB Off) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB Off) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Tab On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Auto TAB On) Hex equivalent: &amp;quot;@0E0003@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the &amp;quot;automatic tab mode.&amp;quot; In this mode, the cursor automatically advances to the next input field when it reaches the last character of the current input field. Also see [[#(Auto TAB Off)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (Auto TAB On) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB On) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(AutoCROff)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (AutoCROff) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (AutoCROff) mnemonic turns off the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the [[#(AutoCROn)]] mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. &lt;br /&gt;
&lt;br /&gt;
History: Support for this mnemonic was added in Comet 2004. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (AutoCROff) &lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
     .&lt;br /&gt;
   PRINT (1) (AutoCROff)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (AutoCROn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROn) Discussion: The (AutoCROn) mnemonic turns on the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROff) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROn) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22A%22</id>
		<title>Mnemonics &quot;A&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22A%22"/>
				<updated>2009-09-04T20:46:29Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Auto Tab On) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Allow Maximize)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Allow Maximize=state) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic disables/enables the maximize controls on the COSW window. Use this mnemonic to prevent the user from maximizing the COSW window. State is a flag indicating which function is to be performed: &lt;br /&gt;
&lt;br /&gt;
'''0''' Disable the maximize controls &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' Enable the maximize controls &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
! Disable the maximize controls &lt;br /&gt;
     Print (Allow Maximize=0) . . . &lt;br /&gt;
! Enable the maximize controls &lt;br /&gt;
    Print (Allow Maximize=1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Archive mnemonics ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Description''' (Document=longfilename,dir) Specifies a name for a copy of an archive document &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
(SpoolMessage=DocumentName) Specifies the filename to be used for a document stored in an archive. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Metafile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''': (AutoMetafile = State) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Enables/disables the automatic use of un-named metafiles. AutoMetafile is ON by default. When disabled, the existing metafile (if present) will be executed. Where State is: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AMF.DISABLE = 0 ! Disables automatic metafiles &lt;br /&gt;
AMF.ENABLE = 1 ! Enables automatic metafiles &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Tab Off)==&lt;br /&gt;
'''Mnemonic''': (Auto TAB Off) Hex equivalent: &amp;quot;@0E0004@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns off the &amp;quot;automatic tab mode.&amp;quot; Also see (Auto TAB On). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (Auto TAB Off) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB Off) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Tab On)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Auto TAB On) Hex equivalent: &amp;quot;@0E0003@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns on the &amp;quot;automatic tab mode.&amp;quot; In this mode, the cursor automatically advances to the next input field when it reaches the last character of the current input field. Also see [[#(Auto TAB Off)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
a. 100 FORMAT (Auto TAB On) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB On) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (AutoCROff) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROff) Discussion: The (AutoCROff) mnemonic turns off the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROn) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROff) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROff)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (AutoCROn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROn) Discussion: The (AutoCROn) mnemonic turns on the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROff) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROn) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22A%22</id>
		<title>Mnemonics &quot;A&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22A%22"/>
				<updated>2009-09-04T20:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Auto Tab Off) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Allow Maximize)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Allow Maximize=state) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic disables/enables the maximize controls on the COSW window. Use this mnemonic to prevent the user from maximizing the COSW window. State is a flag indicating which function is to be performed: &lt;br /&gt;
&lt;br /&gt;
'''0''' Disable the maximize controls &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' Enable the maximize controls &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
! Disable the maximize controls &lt;br /&gt;
     Print (Allow Maximize=0) . . . &lt;br /&gt;
! Enable the maximize controls &lt;br /&gt;
    Print (Allow Maximize=1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Archive mnemonics ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Description''' (Document=longfilename,dir) Specifies a name for a copy of an archive document &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
(SpoolMessage=DocumentName) Specifies the filename to be used for a document stored in an archive. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Metafile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''': (AutoMetafile = State) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Enables/disables the automatic use of un-named metafiles. AutoMetafile is ON by default. When disabled, the existing metafile (if present) will be executed. Where State is: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AMF.DISABLE = 0 ! Disables automatic metafiles &lt;br /&gt;
AMF.ENABLE = 1 ! Enables automatic metafiles &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Tab Off)==&lt;br /&gt;
'''Mnemonic''': (Auto TAB Off) Hex equivalent: &amp;quot;@0E0004@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic turns off the &amp;quot;automatic tab mode.&amp;quot; Also see (Auto TAB On). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:&lt;br /&gt;
a. 100 FORMAT (Auto TAB Off) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB Off) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Auto Tab On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (Auto TAB On) Hex equivalent: &amp;quot;@0E0003@&amp;quot; Discussion: This mnemonic turns on the &amp;quot;automatic tab mode.&amp;quot; In this mode, the cursor automatically advances to the next input field when it reaches the last character of the current input field. Also see (Auto TAB Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (AutoCROff) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROff) Discussion: The (AutoCROff) mnemonic turns off the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROn) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROff) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROff)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (AutoCROn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROn) Discussion: The (AutoCROn) mnemonic turns on the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROff) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROn) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22A%22</id>
		<title>Mnemonics &quot;A&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22A%22"/>
				<updated>2009-09-04T20:44:11Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Auto Metafile) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Allow Maximize)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Allow Maximize=state) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic disables/enables the maximize controls on the COSW window. Use this mnemonic to prevent the user from maximizing the COSW window. State is a flag indicating which function is to be performed: &lt;br /&gt;
&lt;br /&gt;
'''0''' Disable the maximize controls &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' Enable the maximize controls &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
! Disable the maximize controls &lt;br /&gt;
     Print (Allow Maximize=0) . . . &lt;br /&gt;
! Enable the maximize controls &lt;br /&gt;
    Print (Allow Maximize=1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Archive mnemonics ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Description''' (Document=longfilename,dir) Specifies a name for a copy of an archive document &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
(SpoolMessage=DocumentName) Specifies the filename to be used for a document stored in an archive. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Auto Metafile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''': (AutoMetafile = State) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Enables/disables the automatic use of un-named metafiles. AutoMetafile is ON by default. When disabled, the existing metafile (if present) will be executed. Where State is: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AMF.DISABLE = 0 ! Disables automatic metafiles &lt;br /&gt;
AMF.ENABLE = 1 ! Enables automatic metafiles &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Auto Tab Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (Auto TAB Off) Hex equivalent: &amp;quot;@0E0004@&amp;quot; Discussion: This mnemonic turns off the &amp;quot;automatic tab mode.&amp;quot; Also see (Auto TAB On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Auto TAB Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Auto Tab On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (Auto TAB On) Hex equivalent: &amp;quot;@0E0003@&amp;quot; Discussion: This mnemonic turns on the &amp;quot;automatic tab mode.&amp;quot; In this mode, the cursor automatically advances to the next input field when it reaches the last character of the current input field. Also see (Auto TAB Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (AutoCROff) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROff) Discussion: The (AutoCROff) mnemonic turns off the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROn) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROff) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROff)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (AutoCROn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROn) Discussion: The (AutoCROn) mnemonic turns on the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROff) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROn) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22A%22</id>
		<title>Mnemonics &quot;A&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22A%22"/>
				<updated>2009-09-04T20:42:50Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* Archive mnemonics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Allow Maximize)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Allow Maximize=state) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic disables/enables the maximize controls on the COSW window. Use this mnemonic to prevent the user from maximizing the COSW window. State is a flag indicating which function is to be performed: &lt;br /&gt;
&lt;br /&gt;
'''0''' Disable the maximize controls &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' Enable the maximize controls &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
! Disable the maximize controls &lt;br /&gt;
     Print (Allow Maximize=0) . . . &lt;br /&gt;
! Enable the maximize controls &lt;br /&gt;
    Print (Allow Maximize=1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Archive mnemonics ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''Description''' (Document=longfilename,dir) Specifies a name for a copy of an archive document &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
(SpoolMessage=DocumentName) Specifies the filename to be used for a document stored in an archive. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Auto Metafile) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (AutoMetafile = State) Discussion: Enables/disables the automatic use of un-named metafiles. AutoMetafile is ON by default. When disabled, the existing metafile (if present) will be executed. Where State is: &lt;br /&gt;
&lt;br /&gt;
AMF.DISABLE = 0 ! Disables automatic metafiles AMF.ENABLE = 1 ! Enables automatic metafiles &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Auto Tab Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (Auto TAB Off) Hex equivalent: &amp;quot;@0E0004@&amp;quot; Discussion: This mnemonic turns off the &amp;quot;automatic tab mode.&amp;quot; Also see (Auto TAB On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Auto TAB Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Auto Tab On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (Auto TAB On) Hex equivalent: &amp;quot;@0E0003@&amp;quot; Discussion: This mnemonic turns on the &amp;quot;automatic tab mode.&amp;quot; In this mode, the cursor automatically advances to the next input field when it reaches the last character of the current input field. Also see (Auto TAB Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (AutoCROff) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROff) Discussion: The (AutoCROff) mnemonic turns off the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROn) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROff) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROff)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (AutoCROn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROn) Discussion: The (AutoCROn) mnemonic turns on the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROff) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROn) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22A%22</id>
		<title>Mnemonics &quot;A&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22A%22"/>
				<updated>2009-09-04T20:41:28Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (Allow Maximize) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Allow Maximize)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Allow Maximize=state) &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic disables/enables the maximize controls on the COSW window. Use this mnemonic to prevent the user from maximizing the COSW window. State is a flag indicating which function is to be performed: &lt;br /&gt;
&lt;br /&gt;
'''0''' Disable the maximize controls &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' Enable the maximize controls &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
! Disable the maximize controls &lt;br /&gt;
     Print (Allow Maximize=0) . . . &lt;br /&gt;
! Enable the maximize controls &lt;br /&gt;
    Print (Allow Maximize=1) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Archive mnemonics ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic Description (Document=longfilename,dir) Specifies a name for a copy of an archive document (SpoolMessage=DocumentName) Specifies the filename to be used for a document stored in an archive. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Auto Metafile) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (AutoMetafile = State) Discussion: Enables/disables the automatic use of un-named metafiles. AutoMetafile is ON by default. When disabled, the existing metafile (if present) will be executed. Where State is: &lt;br /&gt;
&lt;br /&gt;
AMF.DISABLE = 0 ! Disables automatic metafiles AMF.ENABLE = 1 ! Enables automatic metafiles &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Auto Tab Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (Auto TAB Off) Hex equivalent: &amp;quot;@0E0004@&amp;quot; Discussion: This mnemonic turns off the &amp;quot;automatic tab mode.&amp;quot; Also see (Auto TAB On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Auto TAB Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Auto Tab On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (Auto TAB On) Hex equivalent: &amp;quot;@0E0003@&amp;quot; Discussion: This mnemonic turns on the &amp;quot;automatic tab mode.&amp;quot; In this mode, the cursor automatically advances to the next input field when it reaches the last character of the current input field. Also see (Auto TAB Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Auto TAB On) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (AutoCROff) ==&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROff) Discussion: The (AutoCROff) mnemonic turns off the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROn) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROff) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROff)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (AutoCROn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (AutoCROn) Discussion: The (AutoCROn) mnemonic turns on the extra CR/LF added by CosP to the end of each line not followed with a (TR). The mnemonic is in effect until either the printer is closed or the (AutoCROff) mnemonic is sent. The effect will persist over an EXIT, so a subprogram may issue the mnemonic for a printer opened by the parent program. History: Support for this mnemonic was added in Comet 2004. Example: a. 100 FORMAT (AutoCROn) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (1) (AutoCROn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:38:16Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CH) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Style Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &amp;lt;br&amp;gt;&lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &amp;lt;br&amp;gt;&lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes.&amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
==(CrMode)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CrMode=mode)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic controls the action of the Enter key. The following values may be used:&amp;lt;br&amp;gt; &lt;br /&gt;
'''0''' = default (from SYSGEN)&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' = Enter key works like Tab&amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' = Enter key behaves like a CR (goes to beginning of next line unless a TM or TP is encountered)&amp;lt;br&amp;gt;&lt;br /&gt;
History:  This mnemonic was added in REL 00.06. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.&lt;br /&gt;
&lt;br /&gt;
==(CS)==&lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CH)== &lt;br /&gt;
'''Mnemonic''':   (CH)          Hex equivalent:  &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  Cursor home.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:35:16Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CS) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Style Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &amp;lt;br&amp;gt;&lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &amp;lt;br&amp;gt;&lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes.&amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
==(CrMode)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CrMode=mode)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic controls the action of the Enter key. The following values may be used:&amp;lt;br&amp;gt; &lt;br /&gt;
'''0''' = default (from SYSGEN)&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' = Enter key works like Tab&amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' = Enter key behaves like a CR (goes to beginning of next line unless a TM or TP is encountered)&amp;lt;br&amp;gt;&lt;br /&gt;
History:  This mnemonic was added in REL 00.06. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.&lt;br /&gt;
&lt;br /&gt;
==(CS)==&lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CH)  &lt;br /&gt;
Hex equivalent:   &lt;br /&gt;
Discussion:  Cursor home. &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&lt;br /&gt;
This example shows how to move the cursor to the home position.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:33:21Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CrMode) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Style Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &amp;lt;br&amp;gt;&lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &amp;lt;br&amp;gt;&lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes.&amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
==(CrMode)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CrMode=mode)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic controls the action of the Enter key. The following values may be used:&amp;lt;br&amp;gt; &lt;br /&gt;
'''0''' = default (from SYSGEN)&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' = Enter key works like Tab&amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' = Enter key behaves like a CR (goes to beginning of next line unless a TM or TP is encountered)&amp;lt;br&amp;gt;&lt;br /&gt;
History:  This mnemonic was added in REL 00.06. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnemonic:   (CS)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
Discussion:  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (CH) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CH)  &lt;br /&gt;
Hex equivalent:   &lt;br /&gt;
Discussion:  Cursor home. &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&lt;br /&gt;
This example shows how to move the cursor to the home position.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:32:42Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CrMode) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Style Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &amp;lt;br&amp;gt;&lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &amp;lt;br&amp;gt;&lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes.&amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
==(CrMode)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CrMode=mode)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic controls the action of the Enter key. The following values may be used:&amp;lt;br&amp;gt; &lt;br /&gt;
'''0''' = default (from SYSGEN)&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' = Enter key works like Tab&amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' = Enter key behaves like a CR (goes to beginning of next line unless a TM or TP is encountered)&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 00.06. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnemonic:   (CS)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
Discussion:  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (CH) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CH)  &lt;br /&gt;
Hex equivalent:   &lt;br /&gt;
Discussion:  Cursor home. &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&lt;br /&gt;
This example shows how to move the cursor to the home position.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:30:07Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CrMode) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Style Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &amp;lt;br&amp;gt;&lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &amp;lt;br&amp;gt;&lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes.&amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
==(CrMode)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CrMode=mode)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  This mnemonic controls the action of the Enter key. The following values may be used: &lt;br /&gt;
'''0''' = default (from SYSGEN)&lt;br /&gt;
'''1''' = Enter key works like Tab&lt;br /&gt;
'''2''' = Enter key behaves like a CR (goes to beginning of next line unless a TM or TP is encountered)&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 00.06. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnemonic:   (CS)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
Discussion:  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (CH) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CH)  &lt;br /&gt;
Hex equivalent:   &lt;br /&gt;
Discussion:  Cursor home. &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&lt;br /&gt;
This example shows how to move the cursor to the home position.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:29:50Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CrMode) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Style Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &amp;lt;br&amp;gt;&lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &amp;lt;br&amp;gt;&lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes.&amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
==(CrMode)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CrMode=mode)  &lt;br /&gt;
'''Discussion''':  This mnemonic controls the action of the Enter key. The following values may be used: &lt;br /&gt;
'''0''' = default (from SYSGEN)&lt;br /&gt;
'''1''' = Enter key works like Tab&lt;br /&gt;
'''2''' = Enter key behaves like a CR (goes to beginning of next line unless a TM or TP is encountered)&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 00.06. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnemonic:   (CS)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
Discussion:  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (CH) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CH)  &lt;br /&gt;
Hex equivalent:   &lt;br /&gt;
Discussion:  Cursor home. &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&lt;br /&gt;
This example shows how to move the cursor to the home position.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:26:23Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CreateWindowEx) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Style Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &amp;lt;br&amp;gt;&lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &amp;lt;br&amp;gt;&lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes.&amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
== (CrMode) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CrMode=mode)  &lt;br /&gt;
Discussion:  This mnemonic controls the action of the Enter key. The following values may be used: &lt;br /&gt;
0 = default (from SYSGEN)&lt;br /&gt;
1 = Enter key works like Tab&lt;br /&gt;
2 = Enter key behaves like a CR (goes to beginning of next&lt;br /&gt;
    line unless a TM or TP is encountered)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 00.06.  &lt;br /&gt;
Example:  a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CS) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnemonic:   (CS)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
Discussion:  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (CH) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CH)  &lt;br /&gt;
Hex equivalent:   &lt;br /&gt;
Discussion:  Cursor home. &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&lt;br /&gt;
This example shows how to move the cursor to the home position.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	<entry>
		<id>http://wiki.signature.net/index.php/Mnemonics_%22C%22</id>
		<title>Mnemonics &quot;C&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.signature.net/index.php/Mnemonics_%22C%22"/>
				<updated>2009-09-04T20:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;SteveA: /* (CreateWindowEx) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== (CA Sessions) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CA Sessions=maximum-number-of-sessions)&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''': This mnemonic sets a limit on the number of CometAnywhere sessions. The maximum-number-of-sessions is a decimal value. To get information on the current setting, set the argument to 0 and follow the mnemonic with an INPUT (see example 2). &lt;br /&gt;
&lt;br /&gt;
Example 1: Print (CA Sessions=3) &lt;br /&gt;
&lt;br /&gt;
This example sets the maximum number of CometAnywhere sessions to 3. &lt;br /&gt;
&lt;br /&gt;
Example 2: Print (CA Sessions=0) Input A$ &lt;br /&gt;
&lt;br /&gt;
This example sets the argument to 0. &lt;br /&gt;
&lt;br /&gt;
As a result, the current setting is returned to the string variable contained in the next INPUT statement following the mnemonic. The return value is a one-byte hex string. For example, if the current maximum-number-of-sessions is 3, the hex value &amp;quot;@03@&amp;quot; is assigned to A$.&lt;br /&gt;
&lt;br /&gt;
== (CapsOff) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mnemonic: (CapsOff) Discussion: This mnemonic turns the Caps Lock keyboard function off. See (CapsOn). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOff) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CapsOn) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic: (CapsOn) Discussion: This mnemonic turns the Caps Lock keyboard function on. See (CapsOff). &lt;br /&gt;
&lt;br /&gt;
Example: Print (CapsOn) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CC) ==&lt;br /&gt;
'''Email Mnemonic:''' (CC=string-argument) &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The (CC) mnemonic may be used to specify the &amp;quot;carbon copy&amp;quot; recipients of your email message. Example: OPEN (1) &amp;quot;LEH&amp;quot; PRINT (1) (CC=&amp;quot;barbara@@signature.net&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
'''Mnemonic''': (CF) Hex equivalent: &amp;quot;@06@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear foreground. The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Example: a. 100 FORMAT (CF) &lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (CF) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions. &lt;br /&gt;
&lt;br /&gt;
Read about other Email Mnemonics&lt;br /&gt;
&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
'''Mnemonic''': (CFLD) Hex equivalent: &amp;quot;@0407@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Clear field. The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
        a. 100 FORMAT (CFLD),@(10,0) &lt;br /&gt;
  .&lt;br /&gt;
                 PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CFLD),@(10,0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These examples demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CH) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CH) Hex equivalent: &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': Cursor home. The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example: &lt;br /&gt;
    a. 100 FORMAT (CH) &lt;br /&gt;
         .&lt;br /&gt;
        PRINT (0,100)&lt;br /&gt;
    b. PRINT (0) (CH) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to move the cursor to the home position.&lt;br /&gt;
&lt;br /&gt;
== (Change Color) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (Change Color=ARG1$) Hex equivalent: &amp;quot;@0E0E0Bxx00@&amp;quot; where: xx = the foreground color &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic changes the foreground color attribute on the Comet console, and is effective only for the current write operation. ARG1$ is the foreground color; it may be a string constant or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Change Colors)]] for a way to change all of the screen colors. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
         a. 100 FORMAT (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
           .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
         b. PRINT (0) (Change Color=&amp;quot;@07@&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(Change Colors)==&lt;br /&gt;
'''Mnemonic:''' (Change Colors=ARG1$,ARG2$,ARG3$,ARG4$,ARG5$)&lt;br /&gt;
&lt;br /&gt;
'''Hex equivalent:''' &amp;quot;@0E0E0Evvwwxxyyzz@&amp;quot; where: vv = the foreground color ww = the background color xx = the invisible color (for TM's, TP's, and RJ's) yy = the border color zz = the entry field color &lt;br /&gt;
&lt;br /&gt;
'''Discussion:''' The mnemonic changes all of the screen colors on the Comet console, or within the current Comet window. ARG1$ is the foreground color ARG2$ is the background color ARG3$ is the invisible color (for TM's, TP's, and RJ's) ARG4$ is the border color ARG5$ is the entry field color &lt;br /&gt;
&lt;br /&gt;
All of these arguments are in hex and may be string constants or a string variable containing the hex representation of the screen color. &lt;br /&gt;
&lt;br /&gt;
See [[Screen Colors]] for a list of color codes. &lt;br /&gt;
&lt;br /&gt;
Also see ([[#Change Color]]) for a way to change the foreground color only. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;) &lt;br /&gt;
            .&lt;br /&gt;
          PRINT (0,100)&lt;br /&gt;
      b. Print (0) (Change colors=&amp;quot;@0F@&amp;quot;,&amp;quot;@A0@&amp;quot;,&amp;quot;@00@&amp;quot;,&amp;quot;@C0@&amp;quot;,&amp;quot;@0F@&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
'''Mnemonic''': (CPL132) Hex equivalent: &amp;quot;@040009@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': This mnemonic sets the video display mode to 132 characters per line. Also see ([[#Screen]]), ([[#CPL64]]), ([[#CPL80]]), and ([[#DE]]). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL132) &lt;br /&gt;
             .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CPL132) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL64) Hex equivalent: &amp;quot;@0402@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
     a. 100 FORMAT (CPL64) &lt;br /&gt;
            .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL64) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==  &lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''': (CPL80) Hex equivalent: &amp;quot;@0403@&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Discussion''': The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
      a. 100 FORMAT (CPL80) &lt;br /&gt;
          .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
      b. PRINT (0) (CPL80) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== (Check Box Off) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box Off) Hex equivalent: &amp;quot;@CAC6B6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;off&amp;quot; position (i.e., no check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box Off) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box On). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box Off) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Check Box On) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. Mnemonic: (Check Box On) Hex equivalent: &amp;quot;@CACEB6@&amp;quot; Discussion: This mnemonic draws a graphical check box on the screen. The check box is in the &amp;quot;on&amp;quot; position (i.e., a check mark appears in the box), as shown here: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The check box symbol occupies 3 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Check Box On) mnemonic us used. &lt;br /&gt;
&lt;br /&gt;
Also see (Check Box Off). &lt;br /&gt;
&lt;br /&gt;
Example: a. 100 FORMAT (Check Box On) &lt;br /&gt;
&lt;br /&gt;
  .&lt;br /&gt;
  PRINT (0,100)&lt;br /&gt;
b. PRINT (0) (Check Box On) &lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://64.142.11.195/index.php/Mnemonics&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CFLD) ==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CFLD)  Hex equivalent:  &amp;quot;@0407@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Clear field.&amp;lt;br&amp;gt; &lt;br /&gt;
The (CFLD) control code clears all foreground characters in a field in which the cursor is located and replaces them with foreground blanks. It then positions the cursor in the first position of the field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). The control code does not affect background or invisible (suppressed background) fields. &lt;br /&gt;
&lt;br /&gt;
This control code may also include a positioning statement to start the clearing operation at a specific point on the screen. &lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
      a. 100 FORMAT (CFLD),@(10,0)&lt;br /&gt;
             .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
       b. PRINT (0) (CFLD),@(10,0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example demonstrates the &amp;quot;clear field&amp;quot; control code. The positioning statement puts the control into action at column 10, row 0. If this location is a foreground field, it will be cleared to foreground blanks (if not, the control code will do nothing).&lt;br /&gt;
&lt;br /&gt;
== (CF) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CF)  Hex equivalent:  &amp;quot;@06@&amp;quot; &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  Clear foreground. &lt;br /&gt;
The (CF) control code clears all foreground screen positions to foreground blanks and positions the cursor at the first foreground position on the screen (the upper left corner). This control does not affect background or invisible (suppressed background) screen positions. &lt;br /&gt;
&lt;br /&gt;
This control code is typically used to clear input data from a formatted screen after it is entered in order to prepare for the next set of input data. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CF)&lt;br /&gt;
              .&lt;br /&gt;
             PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CF)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example shows how to clear all foreground screen positions.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (CS) ==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CS)  Hex equivalent:  &amp;quot;@05@&amp;quot;  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:  &lt;br /&gt;
        a. 100 FORMAT (CS)&lt;br /&gt;
              .&lt;br /&gt;
           PRINT (0,100)&lt;br /&gt;
        b. PRINT (0) (CS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  (Close Icon) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Note: This feature is not supported beyond Comet 504. &lt;br /&gt;
Mnemonic:   (Close Icon)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@CCB8@&amp;quot;  &lt;br /&gt;
Discussion:  This mnemonic draws a graphical &amp;quot;close&amp;quot; icon on the screen, as shown here: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The close icon occupies 2 spaces on the screen. &lt;br /&gt;
&lt;br /&gt;
Note: The (Enhanced Characters On) mnemonic must be used before the (Close Icon) mnemonic us used. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (Close Icon)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Close Icon)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Close the mouse ==&lt;br /&gt;
Use the following instruction to close the mouse driver: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PRINT (0) (Mouse off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See also Show/hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
The mouse cursor may be shown or hidden. For mouse-driven applications, you will normally want to show the mouse cursor. For touch-sensitive screen applications, you will normally want to hide the mouse cursor. &lt;br /&gt;
&lt;br /&gt;
To show the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Show Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To hide the regular cursor, use the following instruction: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          PRINT (0) (Hide Mouse Cursor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also see Regular cursor display. &lt;br /&gt;
&lt;br /&gt;
==(Copy from Clipboard)==&lt;br /&gt;
'''Mnemonic''':  (Copy from Clipboard) &amp;lt;br&amp;gt; &lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies the contents from the Windows clipboard into one or more program variables. This mnemonic is issued via a PRINT statement, and the clipboard data is obtained via a subsequent INPUT statement (see example below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== (Query Clipboard) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher.  &lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$       ! Define a variable&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1) Result$                ! to this variable&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL A$,B$,C$      ! Define 3 variables&lt;br /&gt;
&lt;br /&gt;
CLIP: FORMAT A$;B$;C$            ! FORMAT statement for clipboard data&lt;br /&gt;
&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;                   ! Open system driver&lt;br /&gt;
Print (1) (CopyFromClipboard)    ! Copy data from clipboard&lt;br /&gt;
Input (1,CLIP)                   ! to the variables in this FORMAT statement&lt;br /&gt;
Close (1)                        ! Close system driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (Copy to Clipboard) ==&lt;br /&gt;
'''Mnemonic''':  (Copy to Clipboard)  &amp;lt;br&amp;gt;&lt;br /&gt;
'''Discussion''':  This mnemonic, which is used with the system driver (X00), copies program data to the Windows clipboard. This mnemonic is issued via a PRINT statement (see examples below). &lt;br /&gt;
This mnemonic returns a result string, so it is necessary to issue an INPUT statement following the PRINT statement. However, since this mnemonic should never fail, the result string will not contain any meaningful data. &lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
[[#(Copy from Clipboard)]]&lt;br /&gt;
[[#(Query Clipboard)]]&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 01.05 and requires Build 292 or higher. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 2:  LENGTH 254 &amp;amp; LOCAL RESULT$,DATA$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
DATA$ = &amp;quot;This is some data for the clipboard.&amp;quot;&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);DATA$&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example 3:  LENGTH 254 &amp;amp; LOCAL RESULT$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Open (1) &amp;quot;X00&amp;quot;&lt;br /&gt;
Print (1) (Copy to Clipboard);&amp;quot;&amp;quot;     ! Clear the clipboard&lt;br /&gt;
Input (1) Result$&lt;br /&gt;
Close (1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CopyFile)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic:'''  (CopyFile=source-file,destination-file,flags)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''  This mnemonic copies the source-file to the destination-file, using the specified flags. &lt;br /&gt;
&lt;br /&gt;
This mnemonic may be used by foreground programs only. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' The (CopyFile) mnemonic is intended to replace (Verify File). &lt;br /&gt;
&lt;br /&gt;
The source-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or a CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
The destination-file, which is specified as a full Windows path, UNC path, or directory alias, may be located on a local Comet system/network or CometAnywhere client system (default is local system). &lt;br /&gt;
&lt;br /&gt;
When issued on lun (0), this mnemonic copies a file: &lt;br /&gt;
&lt;br /&gt;
*from a local Comet system/network to itself &lt;br /&gt;
*from a local Comet system/network to a CometAnywhere client system &lt;br /&gt;
*from a CometAnywhere client system to a local Comet system/network &lt;br /&gt;
*from the CometAnywhere client system to itself &lt;br /&gt;
&lt;br /&gt;
The mnemonic provides many powerful features, such as an option to compare the source file's modify date with the destination file's modify date (in the case where the destination file already exists) in order to determine whether the source file needs to be copied, an option to display a progress bar during CometAnywhere transfers, and options to create a directory, overwrite an existing file, and create a CAFILE alias if required. &lt;br /&gt;
&lt;br /&gt;
Flags is a numeric value representing the sum of the numeric values listed in the following chart: &lt;br /&gt;
&lt;br /&gt;
'''Flag Description'''&lt;br /&gt;
 &lt;br /&gt;
'''1''' The source file is located on the CometAnywhere client system &amp;lt;br&amp;gt;&lt;br /&gt;
'''2''' CometAnywhere is required if remote files are specified &lt;br /&gt;
&lt;br /&gt;
If a flag is set indicating that the source file is located on a CometAnywhere client system (flag='''1''') and/or that the destination file is located on a CometAnywhere client system (flag='''512'''), but the user is running on a local Comet system (i.e., not a CometAnywhere client system): &lt;br /&gt;
&lt;br /&gt;
If this flag is set, an error is reported (see function error 2). &lt;br /&gt;
If this flag is not set, Comet substitutes the local drive/path name for a remote path/drive name.&lt;br /&gt;
 &lt;br /&gt;
'''64''' Synchronize source and destination files &lt;br /&gt;
If the source file is newer than the destination file, or the destination file does not exist, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
If this flag is omitted, the destination file is updated (assuming that the other flags call for the copying to occur). &lt;br /&gt;
&lt;br /&gt;
Note: Different file systems may return file update times in different formats. For example, the NT file system (NTFS) returns file update times in Coordinated Universal Time (abbreviated as UTC; formely known as Greenwich Mean Time), while FAT returns file update times in local time. Therefore, when using this flag, make sure that the source and destination files use the same file system and return the file update times in the same format. &lt;br /&gt;
 &lt;br /&gt;
'''128''' Create CAFILES alias if required &lt;br /&gt;
If an alias is specified in the destination file name, and the alias doesn't already exist, this flag creates the alias. &lt;br /&gt;
 &lt;br /&gt;
'''256''' Don't copy the file; just indicate if an update is needed &lt;br /&gt;
See the function error codes (below), particularly values 20 and 21.&lt;br /&gt;
 &lt;br /&gt;
'''512''' The destination file is located on the CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''1024''' Show a progress bar for transfers between a local Comet system/network and a CometAnywhere client system &lt;br /&gt;
&lt;br /&gt;
'''2048''' Overwrite existing file &lt;br /&gt;
If the destination file already exists, overwrite it with the contents of the source file.&lt;br /&gt;
 &lt;br /&gt;
'''4096''' Create directory &lt;br /&gt;
If a directory is specified for the destination file, and that directory does not already exist, create it.&lt;br /&gt;
&lt;br /&gt;
After this mnemonic is issued, your program should issue an INPUT on LUN (0) to retrieve success/error information. For example: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  LENGTH 2 &amp;amp; LOCAL AX$,DX$&lt;br /&gt;
  ResultFmt: FORMAT AX$;DX$&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
  Input (0,ResultFmt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first field, AX$, contains the function error code, and the second field, DX$, contains the suberror code (aka the Windows file error code). Both of these fields are in Intel 2's complement format, and should be processed as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
  FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
  FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
  ! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
  If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
  If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a link to Jons error code summary table [[Comet_Error_Codes#CopyFileErrors:]]&lt;br /&gt;
&lt;br /&gt;
Here is a list of the function error codes in decimal form: &lt;br /&gt;
Error&lt;br /&gt;
('''FuncError''') Description &lt;br /&gt;
'''0''' Function not supported &lt;br /&gt;
'''1''' Success -- update performed &lt;br /&gt;
'''2''' CometAnywhere required &lt;br /&gt;
'''3''' Source file error (see suberrors) &lt;br /&gt;
'''4''' Aborted by user &lt;br /&gt;
'''5''' Function in progress &lt;br /&gt;
'''20''' Success -- update not required &lt;br /&gt;
'''21''' Success -- update required &lt;br /&gt;
'''22''' Destination file error (see suberrors) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of the suberror codes (common Windows file errors) in decimal form: &lt;br /&gt;
&lt;br /&gt;
Suberror&lt;br /&gt;
('''FileError''') Description &lt;br /&gt;
'''0''' Success &lt;br /&gt;
'''2''' File not found &lt;br /&gt;
'''3''' Path not found &lt;br /&gt;
'''5''' Access denied &lt;br /&gt;
'''12''' Invalid access &lt;br /&gt;
'''15''' Invalid drive &lt;br /&gt;
'''16''' An error has occurred in the current directory &lt;br /&gt;
'''18''' No more files &lt;br /&gt;
'''32''' Sharing violation &lt;br /&gt;
'''33''' Lock violation &lt;br /&gt;
'''39''' File located on Remote Computer &lt;br /&gt;
'''80''' File exists &lt;br /&gt;
'''123''' The Filename, Directory Name, or Volume Label Syntax Is Incorrect &lt;br /&gt;
'''161''' Bad pathname &lt;br /&gt;
'''1326''' User not logged in to Remote Computer &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in Comet Build 299 and REL Version 01.07.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 1:  &lt;br /&gt;
Source$ = &amp;quot;C:\SAMPLEFILES\TEST.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;A:\TEST.TXT&amp;quot;&lt;br /&gt;
Flags = 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies the source file named C:\SAMPLEFILES\TEST.TXT to the destination file named A:\TEST.TXT. By default, both files are located on the local Comet system/network. The flag value of 2048 tells Comet to overwrite the destination file if it exists. &lt;br /&gt;
If the copying is successful, the function error code will be equal to 1 (Success -- update performed), and the suberror code will be equal to 0 (Success). &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example 2:  &lt;br /&gt;
Source$ = &amp;quot;C:\FILE1.TXT&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\FILE2.TXT&amp;quot;&lt;br /&gt;
Flags = 512 + 2048&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This example copies a source file named C:\FILE1.TXT to a destination file named C:\FILE2.TXT &lt;br /&gt;
The sum of the two flags tells Comet that the destination file is on the CometAnywhere client system (512), and to overwrite the destination file if the destination file already exists (2048). By default, the source file is on the local Comet system. &lt;br /&gt;
&lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 2048&lt;br /&gt;
&lt;br /&gt;
This would tell Comet that the source file is on the CometAnywhere client system (1), while the destination file (by default) is on the local Comet system. The destination file would be overwritten (2048). &lt;br /&gt;
Suppose the flag value was changed to the following: &lt;br /&gt;
&lt;br /&gt;
Flags = 1 + 512 + 2048&lt;br /&gt;
&lt;br /&gt;
In this case, the source and destination files are located on the CometAnywhere client system (1 and 512), and the destination file will be overwritten (2048).  &lt;br /&gt;
 &lt;br /&gt;
Example 3:  Suppose you want to copy a file from a local Comet system to a CometAnywhere client system, and you want to synchronize the files (i.e., copy only if the source file is newer than the destination file). &lt;br /&gt;
Here are the flags that are used in the following example: &lt;br /&gt;
&lt;br /&gt;
   2 = CometAnywhere is required (otherwise an error occurs)&lt;br /&gt;
  64 = Synchronize the files&lt;br /&gt;
 512 = Destination file is on CometAnywhere client system&lt;br /&gt;
1024 = Show progress bar&lt;br /&gt;
2048 = Overwrite existing file&lt;br /&gt;
4096 = Create directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Source$ = &amp;quot;C:\FILE1&amp;quot;&lt;br /&gt;
Dest$ = &amp;quot;C:\DATA\FILE2&amp;quot;&lt;br /&gt;
Flags = 2 + 64 + 512 + 1024 + 2048 + 4096&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Example 4:  Suppose you need to copy a large file between a local Comet system and a CometAnywhere client system, but before copying you want to check and see if (a) the update is needed, and (b) if the user wants to perform the update now. &lt;br /&gt;
This is done in two steps. First, use the flag that checks to see if the update is required without copying the file (flag=256). If the update is required (as indicated by FuncError=21), then proceed with the copying (change the flags to copy the file). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Source$ = &amp;quot;C:\BIGFILE&amp;quot;  ! on local Comet system&lt;br /&gt;
Dest$ = &amp;quot;C:\BIGFILE&amp;quot;    ! on CometAnywhere client system&lt;br /&gt;
&lt;br /&gt;
Flags = 256 + 512       ! 256 = don't copy file; just check to&lt;br /&gt;
                        !       see if updated is needed&lt;br /&gt;
                        ! 512 = destination is on&lt;br /&gt;
                        !       CometAnywhere system&lt;br /&gt;
&lt;br /&gt;
Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
Input (0,ResultFmt)&lt;br /&gt;
&lt;br /&gt;
AX$ = SUB(AX$,2,1) + SUB(AX$,1,1)   ! Flip the bytes around&lt;br /&gt;
DX$ = SUB(DX$,2,1) + SUB(DX$,1,1)   ! Flip the bytes around&lt;br /&gt;
FuncError = HexDec(AX$)             ! Function error code (decimal)&lt;br /&gt;
FileError = HexDec(DX$)             ! File error code (decimal)&lt;br /&gt;
&lt;br /&gt;
! For unexpected values, convert to 2's complement signed integer&lt;br /&gt;
If (FuncError &amp;gt; 32767) FuncError = FuncError-65536&lt;br /&gt;
If (FileError &amp;gt; 32767) FileError = FileError-65536&lt;br /&gt;
&lt;br /&gt;
If FuncError = 21&lt;br /&gt;
  Print &amp;quot;The file needs to be updated.&amp;quot;&lt;br /&gt;
  Print &amp;quot;Do you want to update it now?&amp;quot;&lt;br /&gt;
  Input A$&lt;br /&gt;
&lt;br /&gt;
  If A$ = &amp;quot;Y&amp;quot;&lt;br /&gt;
    Flags = 512 + 2048&lt;br /&gt;
    Print (CopyFile=Source$,Dest$,Flags)&lt;br /&gt;
    Input (0,ResultFmt)&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
    .&lt;br /&gt;
  EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Notes:  Depending on your situation you might try using the CUtlCpy utility which is released as part of the UTL directory. You can ENTER it from your app to easily accomplish a file copy or move.  &lt;br /&gt;
To use a directory alias as the pathname for either of the filenames you can do it like this: FileName$ = &amp;quot;$(AliasNameHere)\&amp;quot; + thefilename$&lt;br /&gt;
&lt;br /&gt;
==(CPL132)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CPL132) Hex equivalent:  &amp;quot;@040009@&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic sets the video display mode to 132 characters per line. &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL64)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
 &amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
     a. 100 FORMAT (CPL132)&lt;br /&gt;
            .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
     b. PRINT (0) (CPL132)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL64)==&lt;br /&gt;
 &lt;br /&gt;
'''Mnemonic''':   (CPL64)  Hex equivalent:  &amp;quot;@0402@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL64) control code sets the screen display mode to 64 characters per line by 27 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
This control code may be overridden by the system configuration (if the configuration forces the screen display to 80 columns, for example). &lt;br /&gt;
&lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL80)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
       a. 100 FORMAT (CPL64)&lt;br /&gt;
              .&lt;br /&gt;
              PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
       b. PRINT (0) (CPL64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CPL80)==&lt;br /&gt;
'''Mnemonic''':   (CPL80)  Hex equivalent:  &amp;quot;@0403@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  The (CPL80) control code sets the screen display mode to 80 characters per line by 24 lines. The screen is cleared to foreground blanks and the cursor is moved to the &amp;quot;home&amp;quot; position. (Note: In normal mode, the cursor will be moved to the upper left corner of the screen. If typewriter mode is in effect, the cursor will be moved to the lower left corner of the screen.) &lt;br /&gt;
Also see [[#(Screen)]], [[#(CPL132)]], [[#(CPL64)]], and [[#(DE)]]. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
      a. 100 FORMAT (CPL80)&lt;br /&gt;
               .&lt;br /&gt;
            PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
      b. PRINT (0) (CPL80)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;br /&gt;
&lt;br /&gt;
==(Create Window)==&lt;br /&gt;
'''Mnemonic''':   (Create Window=a,b,c,d) &lt;br /&gt;
where:&lt;br /&gt;
a = upper left column (decimal)&lt;br /&gt;
b = upper left row (decimal)&lt;br /&gt;
c = lower right column (decimal)&lt;br /&gt;
d = lower right row (decimal)&lt;br /&gt;
 &lt;br /&gt;
Hex equivalent:  &amp;quot;@0E0D00wwxxyyzz@&amp;quot; &lt;br /&gt;
where:&lt;br /&gt;
ww = upper left row (hex)&lt;br /&gt;
xx = upper left column (hex)&lt;br /&gt;
yy = lower right row (hex)&lt;br /&gt;
zz = lower right column (hex)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''Discussion''':  This mnemonic creates a Comet window using the specified screen coordinates. Note: These coordinates are relative to the full screen (e.g., column 0, row 0 always represents the upper left corner of the display). &lt;br /&gt;
When a window is created, the amount of available window memory decreases by the size of the window. To determine how much window memory remains, perform a numeric input immediately following the creation of a window. See the window memory page for more information. If you do not need to know how much window memory remains, perform a null INPUT immediately after printing the (Create Window) mnemonic. &lt;br /&gt;
&lt;br /&gt;
Also see the discussion on Comet windows. &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example:  &lt;br /&gt;
a. 100 FORMAT (Create Window=2,3,70,20)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (Create Window=2,3,70,20)&lt;br /&gt;
   INPUT (0) &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This example show how to create a Comet window from column 2, row 3 (the upper left corner) to column 70, row 20 (the lower right corner). The INPUT (0) &amp;quot;&amp;quot; statement allows the program to bypass the value that is returned from the (Create Window) mnemonic (the amount of remaining window memory).&lt;br /&gt;
&lt;br /&gt;
==(CreateWindowEx)==&lt;br /&gt;
&lt;br /&gt;
'''Mnemonic''':   (CreateWindowEx=column,row,width,height,style,flags,caption$)&lt;br /&gt;
  &lt;br /&gt;
'''Discussion''':  This mnemonic creates and selects an extended window, using the following parameters: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Parameter Description''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''column''' The column location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''row''' The row location of the upper, left-hand corner of the window. This numeric value is expressed in QCRT characters or screen pixels, depending on the value of the flags (see below). &amp;lt;br&amp;gt;&lt;br /&gt;
'''width''' The width of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''height''' The height of the window. This numeric value is expressed in QCRT characters. &amp;lt;br&amp;gt;&lt;br /&gt;
'''style''' The style of Window. This numeric value is the sum of the following options: &amp;lt;br&amp;gt;&lt;br /&gt;
'''Value Meaning''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''1''' A popup window. The window can be moved outside of Comet window. This value should not be used with 2 (which specifies a child window). &amp;lt;br&amp;gt; &lt;br /&gt;
'''2''' A child window. The window remains within the view window. This value should not be used with 1 (which specifies a popup window). &amp;lt;br&amp;gt;&lt;br /&gt;
'''4''' The window includes a caption bar.&amp;lt;br&amp;gt; &lt;br /&gt;
'''8''' The window includes a border. &amp;lt;br&amp;gt;&lt;br /&gt;
'''16''' The caption bar includes an &amp;quot;X&amp;quot; which closes the window. &amp;lt;br&amp;gt;&lt;br /&gt;
Note: Clicking on the &amp;quot;X&amp;quot; causes an (EasyScan) event to be reported to the Internet Basic program. The EasyScan value is 15.&amp;lt;br&amp;gt; &lt;br /&gt;
'''32''' The window includes a thick frame that lets the user resize the window. &amp;lt;br&amp;gt;&lt;br /&gt;
'''64''' The window is visible. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''flags''' The flags for the window. This numeric value is the sum of the following options: &lt;br /&gt;
Value Meaning &lt;br /&gt;
'''0''' A modeless window (also known as a user-selectable window). &lt;br /&gt;
Note: If multiple Comet windows are displayed, the user can select which window is the active one by clicking the caption bar. The Internet Basic program can determine the handle of the the window from which data was transmitted via the STS function.&lt;br /&gt;
'''1''' A modal window. All other Comet windows are disabled until this window closes. &lt;br /&gt;
'''2''' A child window with no frame (border). This flag can be used to simulate a legacy Comet window (see CreateWindow). &lt;br /&gt;
'''4''' The window includes a message line (also known as a control line). Any text written with the (WC) mnemonic will be displayed on the message line within this window. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following flags pertain to non-child windows only: &lt;br /&gt;
&lt;br /&gt;
'''Value Meaning''' &lt;br /&gt;
'''8''' The column and row positions are expressed in screen pixels, and are relative to the screen (i.e., 0,0 = the upper, left-hand pixel of the screen). &lt;br /&gt;
'''16''' The column and row positions are expressed in screen pixels, and are relative to the client window (i.e., 0,0 = the upper, left-hand pixel of the client window). &lt;br /&gt;
'''32''' The column and row positions are expressed in screen pixels, and are relative to the frame window (i.e., 0,0 = the upper, left-hand pixel of the frame window). &lt;br /&gt;
&lt;br /&gt;
'''caption$''' If the caption bar style is in effect, this string value is displayed on the caption bar. &lt;br /&gt;
&lt;br /&gt;
Each extended window is identified by a 4-byte string known as a window handle. The handle value is assigned by the system and returned to the Internet Basic program via an INPUT statement following the (CreateWindowEx) mnemonic, as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Length 4 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
    Print (CreateWindowEx=0,0,35,15,68,1,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
    Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It follows that the Internet Basic program can create multiple extended windows. The program can select which window to use via the (SelectWindowEx) mnemonic. &lt;br /&gt;
An extended window is deleted via the (DeleteWindowEx) mnemonic. &lt;br /&gt;
 &lt;br /&gt;
Note:  If you write a program that displays more than one extended window at a time, your program may need some way to distinguish which window was active at the time that data was input. The STS function returns the handle of the window that generated the input. This 4-byte value starts in position 11, as shown here: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 4 &amp;amp; Local Handle$&lt;br /&gt;
.&lt;br /&gt;
Handle$ = SUB(STS(0),11,4)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Symbolic constants:  Symbolic constants can be very useful when dealing with the multiple style and flag values. For example, here is a list of recommended symbolic constants for extended windows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'''! Window style'''&lt;br /&gt;
SET COS.WS.POPUP        = 1   ! Can be moved outside of Comet window. Should&lt;br /&gt;
                              ! not be used with COS.WS.CHILD.&lt;br /&gt;
SET COS.WS.CHILD        = 2   ! Remains within view window. Should not be used&lt;br /&gt;
                              ! with COS.WS.POPUP.&lt;br /&gt;
SET COS.WS.CAPTION      = 4   ! Includes a caption bar&lt;br /&gt;
SET COS.WS.BORDER       = 8   ! Window includes a border&lt;br /&gt;
SET COS.WS.SYSMENU      = 16  ! Caption bar 'X' closes window&lt;br /&gt;
SET COS.WS.THICKFRAME   = 32  ! Thick frame for sizing&lt;br /&gt;
SET COS.WS.VISIBLE      = 64  ! Window is visible&lt;br /&gt;
SET COS.WS.POPUPWINDOW  = 25  ! (COS.WS.POPUP+COS.WS.BORDER+COS.WS.SYSMENU)&lt;br /&gt;
&lt;br /&gt;
'''! Window flags'''&lt;br /&gt;
SET COS.WF.MODELESS     = 0   ! - User selectable window - Use EasyScan&lt;br /&gt;
                              ! to determine when a window is activated.&lt;br /&gt;
SET COS.WF.MODAL        = 1   ! - All other windows are disabled until&lt;br /&gt;
                              ! this window closes&lt;br /&gt;
SET COS.WF.NOFRAME      = 2   ! Create CHILD window with no frame (border).&lt;br /&gt;
                              ! Used to simulate a Comet window&lt;br /&gt;
SET COS.WF.MSGLINE      = 4   ! Has a message line&lt;br /&gt;
&lt;br /&gt;
! The following flags pertain to non-child windows only&lt;br /&gt;
SET COS.WF.SCNPIXELPOS  = 8   ! Position is in pixels, screen relative&lt;br /&gt;
SET COS.WF.CLIPIXELPOS  = 16  ! Position is in pixels, client window relative&lt;br /&gt;
SET COS.WF.FRMPIXELPOS  = 32  ! Position is in pixels, frame window relative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With these symbolic constants in place, you can specify the style and flag values by writing a symbolic &amp;quot;formula,&amp;quot; as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Length 3.0 &amp;amp; Local Style, Flags&lt;br /&gt;
Length 5 &amp;amp; Local Handle1$&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
Style = COS.WS.POPUPWINDOW + COS.WS.CAPTION&lt;br /&gt;
Flags = COS.WF.MODAL + COS.WF.MSGLINE + COS.WF.CLIPIXELPOS&lt;br /&gt;
Print (CreateWindowEx=0,0,35,15,Style,Flags,&amp;quot;This is the caption&amp;quot;)&lt;br /&gt;
Input Handle1$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
History:  This feature is supported in Comet2002 Build 306 and higher.  &lt;br /&gt;
Examples:  See the WinDemo.ibs program (available at www.signature.net/download/demos) for examples of extended windows. This demo program includes many combinations of the style and flags parameters, and also demonstrates some very useful applications for extended windows.&lt;br /&gt;
&lt;br /&gt;
== (CrMode) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CrMode=mode)  &lt;br /&gt;
Discussion:  This mnemonic controls the action of the Enter key. The following values may be used: &lt;br /&gt;
0 = default (from SYSGEN)&lt;br /&gt;
1 = Enter key works like Tab&lt;br /&gt;
2 = Enter key behaves like a CR (goes to beginning of next&lt;br /&gt;
    line unless a TM or TP is encountered)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
History:  This mnemonic was added in REL 00.06.  &lt;br /&gt;
Example:  a. 100 FORMAT (CrMode=1)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CrMode=1)&lt;br /&gt;
&lt;br /&gt;
This example shows how to make the Enter key work like the Tab key.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== (CS) ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnemonic:   (CS)  &lt;br /&gt;
Hex equivalent:  &amp;quot;@05@&amp;quot;  &lt;br /&gt;
Discussion:  Clear screen. &lt;br /&gt;
The (CS) control code clears the entire screen to foreground blanks and moves the cursor to the home position. &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CS)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== (CH) ==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Mnemonic:   (CH)  &lt;br /&gt;
Hex equivalent:   &lt;br /&gt;
Discussion:  Cursor home. &lt;br /&gt;
The (CH) control code moves the cursor to the &amp;quot;home&amp;quot; position on the screen. Home position is the upper left foreground location of the screen. Since the cursor will land only in a foreground area, &amp;quot;home&amp;quot; may be something other than the upper left corner. &lt;br /&gt;
&lt;br /&gt;
For example, if the upper left corner of the screen contains background or invisible (suppressed background) characters, the cursor will search to the right and to the next line(s) if necessary for the first available foreground position. &lt;br /&gt;
&lt;br /&gt;
Once a foreground field is located, the cursor will be positioned at the first location in that field (left-most position for alphanumeric fields and right-most position for right-justified numeric fields). &lt;br /&gt;
 &lt;br /&gt;
Example:  a. 100 FORMAT (CH)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CH)&lt;br /&gt;
&lt;br /&gt;
This example shows how to move the cursor to the home position.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==(CR)==&lt;br /&gt;
'''Mnemonic''':    (CR)  &lt;br /&gt;
&lt;br /&gt;
'''Discussion''':  Cursor return/carriage return. &lt;br /&gt;
This control code can be used on a video device or a printer. &lt;br /&gt;
&lt;br /&gt;
'''Video device'''&lt;br /&gt;
In normal mode, the (CR) control code moves the cursor to the first foreground position on the following line. If the cursor is on the bottom line when this control code is issued, the cursor will be moved to the top line of the screen. In either case, the cursor will land only in a foreground field. &lt;br /&gt;
&lt;br /&gt;
In typewriter mode, this control code scrolls the screen up one line (forcing the top line off the screen) and will move the cursor to the beginning (left side) of the bottom line on the screen. &lt;br /&gt;
&lt;br /&gt;
'''Printer'''&lt;br /&gt;
The (CR) control code performs a carriage return function for the printer. If this control is issued in the middle of a print line, it advances the printer to the beginning of the next line (unlike a line feed control, which would skip the next line and move to the beginning of the following line). &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Example (video):  &lt;br /&gt;
a. 100 FORMAT (CR)&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (0,100)&lt;br /&gt;
&lt;br /&gt;
b. PRINT (0) (CR)&lt;br /&gt;
 &lt;br /&gt;
Example (printer):  &lt;br /&gt;
a. 100 FORMAT &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
   .&lt;br /&gt;
   OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1,100)&lt;br /&gt;
&lt;br /&gt;
b. OPEN (1) &amp;quot;LP1&amp;quot;&lt;br /&gt;
   .&lt;br /&gt;
   PRINT (1) &amp;quot;CUSTOMER LISTING&amp;quot;;(CR);&amp;quot;PRINTED ON:&amp;quot;;DAY$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This last example prints a heading, performs a carriage return, and then prints a subheading on the next line.&lt;/div&gt;</summary>
		<author><name>SteveA</name></author>	</entry>

	</feed>