<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vmssoftware.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brett.cameron</id>
	<title>VSI OpenVMS Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vmssoftware.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brett.cameron"/>
	<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/Special:Contributions/Brett.cameron"/>
	<updated>2026-06-02T12:42:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS-Specific_Python_Modules&amp;diff=2514</id>
		<title>VMS-Specific Python Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS-Specific_Python_Modules&amp;diff=2514"/>
		<updated>2022-07-06T23:26:34Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: /* RMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vms.decc ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;C Run-Time Library for OpenVMS Systems&#039;&#039;&#039; functions.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== dlopen_test(name:str)-&amp;gt;int ===&lt;br /&gt;
Checks if a shared image can be opened and loaded into memory.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: path to the shared image&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: if the shared image exists and can be opened by dlopen()&lt;br /&gt;
: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: otherwise&lt;br /&gt;
----&lt;br /&gt;
=== fix_time(vms_time:int)-&amp;gt;int ===&lt;br /&gt;
Converts the VMS time to the Unix time stamp.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_time:int&amp;lt;/code&amp;gt;: VMS system time&lt;br /&gt;
;returns&lt;br /&gt;
:Time in the Unix format (number of seconds since 01/01/1970)&lt;br /&gt;
----&lt;br /&gt;
=== from_vms(vms_path:str, wild_flag:int)-&amp;gt;list ===&lt;br /&gt;
Converts the VMS path to a list of Unix paths.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_path:str&amp;lt;/code&amp;gt;: path in the VMS format (supports wildcards)&lt;br /&gt;
: &amp;lt;code&amp;gt;wild_flag:int&amp;lt;/code&amp;gt;: If set to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, the wildcards found in &amp;lt;code&amp;gt;vms_path&amp;lt;/code&amp;gt; are not expanded &lt;br /&gt;
;returns&lt;br /&gt;
:List of paths in the Unix notation&lt;br /&gt;
----&lt;br /&gt;
=== getenv(name:str, def_value:str)-&amp;gt;str ===&lt;br /&gt;
Gets the specified environment variable value. See getenv() description in the &#039;&#039;&#039;VSI C Run-Time Library Reference Manual for OpenVMS Systems&#039;&#039;&#039;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: name of the environment variable&lt;br /&gt;
: &amp;lt;code&amp;gt;def_value:str&amp;lt;/code&amp;gt;: default value&lt;br /&gt;
;returns&lt;br /&gt;
:Environment variable value&lt;br /&gt;
----&lt;br /&gt;
=== sleep(seconds:int)-&amp;gt;int ===&lt;br /&gt;
Suspends execution of the current process or thread for the specified number of seconds.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;seconds:int&amp;lt;/code&amp;gt;: seconds to sleep&lt;br /&gt;
;returns&lt;br /&gt;
:The number of seconds left before the sleep timer expires if sleep is interrupted. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; if the process slept for the specified number of seconds&lt;br /&gt;
----&lt;br /&gt;
=== sysconf(name:int)-&amp;gt;int ===&lt;br /&gt;
Provides a method for determining the current value of a configurable system limit or whether optional features are supported.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:int&amp;lt;/code&amp;gt;: system variable to be queried&lt;br /&gt;
;returns&lt;br /&gt;
:Requested value&lt;br /&gt;
----&lt;br /&gt;
=== to_vms(unix_path:str, allow_wild:int, no_directory:int)-&amp;gt;list ===&lt;br /&gt;
Converts the UNIX style file specifications to the OpenVMS file specifications.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;unix_path:str&amp;lt;/code&amp;gt;: file name following the Unix file naming conventions&lt;br /&gt;
: &amp;lt;code&amp;gt;allow_wild:int&amp;lt;/code&amp;gt;: If set to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, the wildcards found in &amp;lt;code&amp;gt;unix_path&amp;lt;/code&amp;gt; are not expanded&lt;br /&gt;
: &amp;lt;code&amp;gt;no_directory:int&amp;lt;/code&amp;gt; An integer that has one of the following values:&lt;br /&gt;
:* 0 - Directory allowed&lt;br /&gt;
:* 1 - Prevent expansion of the string as a directory name&lt;br /&gt;
:* 2 - Force expansion of the string as a directory name&lt;br /&gt;
;returns&lt;br /&gt;
List of OpenVMS style pathnames&lt;br /&gt;
----&lt;br /&gt;
=== unixtime(vms_time:int)-&amp;gt;int ===&lt;br /&gt;
Converts the OpenVMS system time to the Unix local time.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_time:int&amp;lt;/code&amp;gt; OpenVMS system time&lt;br /&gt;
;returns&lt;br /&gt;
:Unix time&lt;br /&gt;
----&lt;br /&gt;
=== vmstime(unix_time:int)-&amp;gt;int ===&lt;br /&gt;
Converts Unix time to the OpenVMS system time.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;unix_time:int&amp;lt;/code&amp;gt;: Unix time&lt;br /&gt;
;returns&lt;br /&gt;
OpenVMS system time&lt;br /&gt;
----&lt;br /&gt;
=== get_symbol(name:str)-&amp;gt;list ===&lt;br /&gt;
Requests the calling process’s command language interpreter (CLI) to return the value of a CLI symbol as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: Name of the symbol&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: value of the returned symbol&lt;br /&gt;
----&lt;br /&gt;
=== fopen(path:str, mode:str, ...)-&amp;gt;fp:object ===&lt;br /&gt;
Opens a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: A character string containing a valid file specification&lt;br /&gt;
: &amp;lt;code&amp;gt;mode:str&amp;lt;/code&amp;gt;: The access mode indicator&lt;br /&gt;
: &amp;lt;code&amp;gt;...:str&amp;lt;/code&amp;gt;: Optional file attribute arguments&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: File pointer&lt;br /&gt;
----&lt;br /&gt;
=== fclose(fp:object)-&amp;gt;status:int ===&lt;br /&gt;
Closes a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file to be closed&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;status:int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
----&lt;br /&gt;
=== fileno(fp:object)-&amp;gt;fd:int ===&lt;br /&gt;
Returns the file descriptor associated with the specified file pointer.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;fd:int&amp;lt;/code&amp;gt;: Integer file descriptor&lt;br /&gt;
----&lt;br /&gt;
=== write(fd:int, data:bytes)-&amp;gt;nbytes:int ===&lt;br /&gt;
Writes bytes to a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fd:int&amp;lt;/code&amp;gt;: Integer file descriptor&lt;br /&gt;
: &amp;lt;code&amp;gt;data:bytes&amp;lt;/code&amp;gt;: Bytes to write&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;nbytes:int&amp;lt;/code&amp;gt;: The number of bytes written&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== fgets(fp:object, maxchars:int)-&amp;gt;line:str ===&lt;br /&gt;
Reads a line from the specified file, up to one less than the specified maximum&lt;br /&gt;
number of characters or up to and including the newline character, whichever&lt;br /&gt;
comes first.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
: &amp;lt;code&amp;gt;maxchars:int&amp;lt;/code&amp;gt;: The maximum number of characters to fetch&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;line:str&amp;lt;/code&amp;gt;: The fetched line&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== feof(fp:object)-&amp;gt;status:int ===&lt;br /&gt;
Tests a file to see if the end-of-file has been reached.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;status:int&amp;lt;/code&amp;gt;: Nonzero integer indicates that the end-of-file has been reached&lt;br /&gt;
----&lt;br /&gt;
=== ferror(fp:object)-&amp;gt;status:int ===&lt;br /&gt;
Returns a nonzero integer if an error occurred while reading or writing a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;status:int&amp;lt;/code&amp;gt;: Nonzero integer indicates that an error has occurred&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vms.ile3 ==&lt;br /&gt;
&amp;lt;br&amp;gt;Provides functions to work with item lists.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== new()-&amp;gt;object ===&lt;br /&gt;
Creates an empty item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:New empty item list&lt;br /&gt;
----&lt;br /&gt;
=== delete(il:object)-&amp;gt;None ===&lt;br /&gt;
Deletes the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list to be removed&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== size(il:object)-&amp;gt;int ===&lt;br /&gt;
Gets the size of the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
;returns&lt;br /&gt;
:The size of the specified item list&lt;br /&gt;
----&lt;br /&gt;
=== addint(il:object, item:int, item_type:int, item_value:int)-&amp;gt;None ===&lt;br /&gt;
Adds a new integer to the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_type:int&amp;lt;/code&amp;gt;: type of the item. See &#039;&#039;&#039;vms.dscdef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:int&amp;lt;/code&amp;gt;: value of the item&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== getint(il:object, index:int)-&amp;gt;int ===&lt;br /&gt;
Gets the integer at the specified index in the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item to get&lt;br /&gt;
;returns&lt;br /&gt;
:Integer value&lt;br /&gt;
----&lt;br /&gt;
=== gethex(il:object, index:int)-&amp;gt;str ===&lt;br /&gt;
Gets the integer at the specified index in the item list and returns it as a hexadecimal string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item to get&lt;br /&gt;
;returns&lt;br /&gt;
:Hexadecimal string&lt;br /&gt;
----&lt;br /&gt;
=== addstr(il:object, item:int, item_value:str, item_length:int)-&amp;gt;None ===&lt;br /&gt;
Adds the specified string to the item list. If &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is not &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item_length&amp;lt;/code&amp;gt; is ignored and the length of the buffer will be the same as the length of &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:str&amp;lt;/code&amp;gt;: value to add (or &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;)&lt;br /&gt;
: &amp;lt;code&amp;gt;item_length:int&amp;lt;/code&amp;gt;: length of the buffer if &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== addstrd(il:object, item:int, item_value:str, item_length:int)-&amp;gt;None ===&lt;br /&gt;
Adds the specified space-expanded string to the item list. The first byte of the buffer is the length of the string. If &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is longer than &amp;lt;code&amp;gt;item_length&amp;lt;/code&amp;gt;, it will be truncated.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:str&amp;lt;/code&amp;gt;: value to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_length:int&amp;lt;/code&amp;gt;: length of the buffer (the resulting string length is one byte less)&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== addstrn(il:object, item:int, item_value:str, item_length:int)-&amp;gt;None ===&lt;br /&gt;
Adds the specified space-expanded string to the item list. If &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is longer than &amp;lt;code&amp;gt;item_length&amp;lt;/code&amp;gt;, it will be truncated.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:str&amp;lt;/code&amp;gt;: value to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_length:int&amp;lt;/code&amp;gt;: length of the buffer&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== getstr(il:object, index:int, flag:int)-&amp;gt;str ===&lt;br /&gt;
Gets the string at the specified index in the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item to get&lt;br /&gt;
: &amp;lt;code&amp;gt;flag:int&amp;lt;/code&amp;gt;: if set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the first byte of the resulting string is the length of the string&lt;br /&gt;
;returns&lt;br /&gt;
:String&lt;br /&gt;
----&lt;br /&gt;
=== addbin(il:object, item:int, item_value:int, item_offset:int, item_len:int)-&amp;gt;None ===&lt;br /&gt;
Adds a new binary item to the item list. This item will be interpreted as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:int&amp;lt;/code&amp;gt;: value to store&lt;br /&gt;
: &amp;lt;code&amp;gt;item_offset:int&amp;lt;/code&amp;gt;: starting byte&lt;br /&gt;
: &amp;lt;code&amp;gt;item_len:int&amp;lt;/code&amp;gt;: amount of bytes&lt;br /&gt;
;returns&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== getbyte(il:object, index:int, item_offset:int)-&amp;gt;int ===&lt;br /&gt;
Gets the byte at the specified position in the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item&lt;br /&gt;
: &amp;lt;code&amp;gt;item_offset:int&amp;lt;/code&amp;gt;: starting byte&lt;br /&gt;
;returns&lt;br /&gt;
:Integer value of the specified byte&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vms.lib ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;OpenVMS RTL Library (LIB$)&#039;&#039;&#039; functions.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== create_dir(name:str, uic:int, pe:int, pv:int)-&amp;gt;int ===&lt;br /&gt;
Creates a directory.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: name of the directory to be created (following the OpenVMS naming conventions)&lt;br /&gt;
: &amp;lt;code&amp;gt;uic:int&amp;lt;/code&amp;gt;: unsigned integer value of the owner UIC: &lt;br /&gt;
:*&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;: current user&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: owner of the parent directory&lt;br /&gt;
: &amp;lt;code&amp;gt;pe:int&amp;lt;/code&amp;gt;: protection-enable. Refer to the &#039;&#039;&#039;VSI OpenVMS RTL Library (LIB$) Manual&#039;&#039;&#039; for more info about LIB$CREATE_DIR.&lt;br /&gt;
: &amp;lt;code&amp;gt;pv:int&amp;lt;/code&amp;gt;: protection-value&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;vms.ssdef.SS__CREATED&amp;lt;/code&amp;gt;: one or more directories created&lt;br /&gt;
: &amp;lt;code&amp;gt;vms.ssdef.SS__NORMAL&amp;lt;/code&amp;gt;: all the specified directories already exist&lt;br /&gt;
: Some other error. See in &#039;&#039;&#039;vms.ssdef&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
=== date_time()-&amp;gt;list ===&lt;br /&gt;
Gets current date and time.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== get_ef()-&amp;gt;list ===&lt;br /&gt;
Allocates the local event flag.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting event flag&lt;br /&gt;
----&lt;br /&gt;
=== free_ef(ef:int)-&amp;gt;int ===&lt;br /&gt;
Releases the local event flag. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;ef:int&amp;lt;/code&amp;gt;: local event flag&lt;br /&gt;
;returns&lt;br /&gt;
:Status code of the operation&lt;br /&gt;
----&lt;br /&gt;
=== put_common(common:str)-&amp;gt;int ===&lt;br /&gt;
Copies a string into the common area. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;common:str&amp;lt;/code&amp;gt;: string to copy&lt;br /&gt;
;returns&lt;br /&gt;
:Status code of the operation&lt;br /&gt;
----&lt;br /&gt;
=== get_common()-&amp;gt;list ===&lt;br /&gt;
Gets the string from the common area.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== get_hostname(flags:int)-&amp;gt;list ===&lt;br /&gt;
Gets the host name of the local system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt; if set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the host node name is returned in a parseable format&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting host node name&lt;br /&gt;
----&lt;br /&gt;
=== getjpi(item_code:int, pid:int, pname:str)-&amp;gt;list ===&lt;br /&gt;
Gets the specified job/process information as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;item_code:int&amp;lt;/code&amp;gt;: item identifier code defining the item of the information to be returned. See &#039;&#039;&#039;vms.jpidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process ID&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: process name&lt;br /&gt;
For valid combination of the values of &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pname&amp;lt;/code&amp;gt;, see the &#039;&#039;&#039;OpenVMS RTL Library (LIB$) Manual&#039;&#039;&#039; for LIB$GETJPI. The resulting &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt; is not returned.&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== getsyi(item_code:int, node_name:str)-&amp;gt;list ===&lt;br /&gt;
Gets system-wide information as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;item_code:int&amp;lt;/code&amp;gt;: item identifier code defining the item of the information to be returned. See &#039;&#039;&#039;vms.syidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;node_name:str&amp;lt;/code&amp;gt;: node name&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting cluster system ID&lt;br /&gt;
----&lt;br /&gt;
=== spawn(command:str, input_file:str, output_file:str, flags:int, pname:str)-&amp;gt;list ===&lt;br /&gt;
Requests the command language interpreter (CLI) of the calling process to spawn a subprocess for executing CLI commands.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;command:str&amp;lt;/code&amp;gt;: command to execute&lt;br /&gt;
: &amp;lt;code&amp;gt;input_file:str&amp;lt;/code&amp;gt;: equivalence name to be associated with the logical name SYS$INPUT&lt;br /&gt;
: &amp;lt;code&amp;gt;output_file:str&amp;lt;/code&amp;gt;: equivalence name to be associated with the logical name SYS$OUTPUT&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: flag bits that designate optional behavior. See &#039;&#039;&#039;vms.clidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: name defined for the subprocess&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: process ID of the spawned process&lt;br /&gt;
----&lt;br /&gt;
=== do_command(command:str)-&amp;gt;None ===&lt;br /&gt;
Stops program execution and directs the command language interpreter (CLI) to execute a command that is supplied as the argument.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;command:str&amp;lt;/code&amp;gt;: command to execute&lt;br /&gt;
;returns&lt;br /&gt;
:If successful, it does not return control to the calling program.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vms.sys ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;OpenVMS System Services&#039;&#039;&#039; functions.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== asctim(vms_time:int, time_only:int)-&amp;gt;list ===&lt;br /&gt;
Converts an absolute or delta time from 64-bit system time format to an ASCII string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_time:int&amp;lt;/code&amp;gt;: OpenVMS system time. A negative time value represents a delta time.&lt;br /&gt;
: &amp;lt;code&amp;gt;time_only:int&amp;lt;/code&amp;gt;: if set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, asctim returns the hour only.&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== bintim(time_str:str)-&amp;gt;list ===&lt;br /&gt;
Converts an ASCII string to an absolute or delta time value in the system 64-bit time format.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;time_str:str&amp;lt;/code&amp;gt; in the following format:&lt;br /&gt;
:*Absolute Time: dd-mmm-yyyy hh:mm:ss.cc&lt;br /&gt;
:*Delta Time: dddd hh:mm:ss.cc&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting time value&lt;br /&gt;
----&lt;br /&gt;
=== asctoid(name:str)-&amp;gt;list ===&lt;br /&gt;
Translates the specified identifier name into its binary identifier value.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: identifier name&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier value&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier attributes. See &#039;&#039;&#039;vms.kgbdef&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
=== idtoasc(id_val:int, context:int)-&amp;gt;list ===&lt;br /&gt;
Translates the specified identifier value to the identifier name.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id_val:int&amp;lt;/code&amp;gt;: identifier value. See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$IDTOASC&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context value used when &amp;lt;code&amp;gt;idtoasc&amp;lt;/code&amp;gt; is called repeatedly. Must be initialized with the value &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting identifier name&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier value&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier attributes. See &#039;&#039;&#039;vms.kgbdef&#039;&#039;&#039;&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting context&lt;br /&gt;
----&lt;br /&gt;
=== crembx(tmp:int, maxmsg:int, bufquo:int, promsk:int, acmode:int, mbx_name:string, flags:int)-&amp;gt;list ===&lt;br /&gt;
Creates a virtual mailbox device.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;tmp:int&amp;lt;/code&amp;gt;: the first bit specifies a permanent mailbox &lt;br /&gt;
: &amp;lt;code&amp;gt;maxmsg:int&amp;lt;/code&amp;gt;: maximum size of a message (in bytes)&lt;br /&gt;
: &amp;lt;code&amp;gt;bufquo:int&amp;lt;/code&amp;gt;: number of bytes of system dynamic memory that can be used to buffer messages sent to the mailbox&lt;br /&gt;
: &amp;lt;code&amp;gt;promsk:int&amp;lt;/code&amp;gt;: protection mask to be associated with the created mailbox&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be associated with the channel to which the mailbox is assigned&lt;br /&gt;
: &amp;lt;code&amp;gt;mbx_name:string&amp;lt;/code&amp;gt;: logical name to be assigned to the mailbox&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: options for the assign operation. See &#039;&#039;&#039;vms.cmbdef&#039;&#039;&#039;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting channel&lt;br /&gt;
----&lt;br /&gt;
=== delmbx(channel:int)-&amp;gt;int ===&lt;br /&gt;
Marks a permanent mailbox for deletion.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: mailbox channel&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== assign(devnam:str, acmode:int, mbxnam:str, flags:int)-&amp;gt;list ===&lt;br /&gt;
Provides a process with an I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;devnam:str&amp;lt;/code&amp;gt;: name of the device&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be associated with the channel&lt;br /&gt;
: &amp;lt;code&amp;gt;mbxnam:str&amp;lt;/code&amp;gt;: logical name of the mailbox to be associated with the device&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: an optional device-specific argument&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting channel&lt;br /&gt;
----&lt;br /&gt;
=== dassgn(channel:int)-&amp;gt;int ===&lt;br /&gt;
Unassigns (releases) an I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: number of the I/O channel to be unassigned&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== readvblk(channel:int, max_read:int, block:int, fmod:int)-&amp;gt;list ===&lt;br /&gt;
Read from the I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: I/O channel&lt;br /&gt;
: &amp;lt;code&amp;gt;max_read:int&amp;lt;/code&amp;gt;: amount of bytes to read&lt;br /&gt;
: &amp;lt;code&amp;gt;block:int&amp;lt;/code&amp;gt;: starting block&lt;br /&gt;
: &amp;lt;code&amp;gt;fmod:int&amp;lt;/code&amp;gt;: function code modifiers&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;byte&amp;lt;/code&amp;gt;: resulting buffer&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: I/O completion code&lt;br /&gt;
----&lt;br /&gt;
=== writevblk(channel:int, buffer:bytes, block:int, fmod:int)-&amp;gt;list ===&lt;br /&gt;
Write to the I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: I/O channel&lt;br /&gt;
: &amp;lt;code&amp;gt;buffer:bytes&amp;lt;/code&amp;gt;: bytes to write&lt;br /&gt;
: &amp;lt;code&amp;gt;block:int&amp;lt;/code&amp;gt;: starting block&lt;br /&gt;
: &amp;lt;code&amp;gt;fmod:int&amp;lt;/code&amp;gt;: function code modifiers&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: amount of written bytes&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: I/O completion code&lt;br /&gt;
----&lt;br /&gt;
=== cancel(channel:int)-&amp;gt;int ===&lt;br /&gt;
Cancel the I/O operation.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: I/O channel&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== crelnm(attr:int, tabnam:str, lognam:str, acmode:int, il:object)-&amp;gt;int ===&lt;br /&gt;
Creates a logical name and specifies its equivalence names. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attributes to be associated with the logical name. See &#039;&#039;&#039;vms.lnmdef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;tabnam:str&amp;lt;/code&amp;gt;: name of the table in which to create the logical name&lt;br /&gt;
: &amp;lt;code&amp;gt;lognam:str&amp;lt;/code&amp;gt;: logical name to be created&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be associated with the logical name. See &#039;&#039;&#039;vms.psldef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list, created via [[VMS specific Python modules#new()-&amp;gt;object|&amp;lt;code&amp;gt;vms.ile3.new()&amp;lt;/code&amp;gt;]]&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$CRELNM.&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== trnlnm(attr:int, tabnam:str, lognam:str, acmode:int, il:object)-&amp;gt;int ===&lt;br /&gt;
Returns information about the specified logical name.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attributes controlling the search for the logical name. See &#039;&#039;&#039;vms.lnmdef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;tabnam:str&amp;lt;/code&amp;gt;: name of the logical name table or the name of a searchlist logical name&lt;br /&gt;
: &amp;lt;code&amp;gt;lognam:str&amp;lt;/code&amp;gt;: logical name for which information is to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be used in the translation. See &#039;&#039;&#039;vms.psldef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list, created via [[VMS specific Python modules#new()-&amp;gt;object|&amp;lt;code&amp;gt;vms.ile3.new()&amp;lt;/code&amp;gt;]]&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$TRNLNM.&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== dellnm(tabnam:str, lognam:str, acmode:int)-&amp;gt;int ===&lt;br /&gt;
Deletes all logical names with the specified name.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;tabnam:str&amp;lt;/code&amp;gt;: name of a logical name table or the name of a searchlist logical name&lt;br /&gt;
: &amp;lt;code&amp;gt;lognam:str&amp;lt;/code&amp;gt;: logical name to be deleted&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be used in the delete operation. See &#039;&#039;&#039;vms.psldef&#039;&#039;&#039;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== device_scan(search_devnam:str, item_list:object, context:int)-&amp;gt;list ===&lt;br /&gt;
Returns the names of all devices that match a specified set of search criteria.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;search_devnam:str&amp;lt;/code&amp;gt;: name of the device for which &amp;lt;code&amp;gt;device_scan&amp;lt;/code&amp;gt; to search&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying search criteria&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: value used to indicate the current position of the search. On the initial call it must contain &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$DEVICE_SCAN&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:* &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: found device name&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: context&lt;br /&gt;
----&lt;br /&gt;
=== uicstr(uic:int, flags:int)-&amp;gt;list ===&lt;br /&gt;
Converts UIC to a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;uic:int&amp;lt;/code&amp;gt;: UIC&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt; &lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: use &amp;quot;!%I&amp;quot; SYS$FAO format&lt;br /&gt;
:*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: use &amp;quot;!%U&amp;quot; SYS$FAO format&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: UIC string&lt;br /&gt;
----&lt;br /&gt;
=== getdvi(dev_nam:str, item_list:object)-&amp;gt;int ===&lt;br /&gt;
Returns information related to the primary and secondary device characteristics of an I/O device.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;dev_nam:str&amp;lt;/code&amp;gt;: the name of the device for which information is to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the device is to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETDVI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== getjpi(pid:int, pnam:str, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about one or more processes of the system or across the OpenVMS Cluster system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process identification&lt;br /&gt;
: &amp;lt;code&amp;gt;pnam:str&amp;lt;/code&amp;gt;: name of the process&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the process or processes is to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETJPI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: process ID&lt;br /&gt;
----&lt;br /&gt;
=== getlki(lki:int, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about the lock database on a system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;lki:int&amp;lt;/code&amp;gt;: identification of the lock (lock ID) information about which needs to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying the lock information to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETLKI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: lock identification&lt;br /&gt;
----&lt;br /&gt;
=== getmsg(msgid:int, flags:int)-&amp;gt;list ===&lt;br /&gt;
Returns message text associated with a given message identification code.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;msgid:int&amp;lt;/code&amp;gt;: identification of the message to be retrieved&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: message components to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETMSG&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:* &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: message string&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: optional information&lt;br /&gt;
----&lt;br /&gt;
=== getqui(func:int, context:int, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about queues and the jobs initiated from these queues.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;func:int&amp;lt;/code&amp;gt;: function code specifying the function that &amp;lt;code&amp;gt;getqui&amp;lt;/code&amp;gt; is to perform. See &#039;&#039;&#039;vms.quidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context stream for this call&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list supplying the information to be used by the function &lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETQUI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: context&lt;br /&gt;
----&lt;br /&gt;
=== getrmi(item_list:object)-&amp;gt;int ===&lt;br /&gt;
Returns system performance information about the local system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the local node is to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETRMI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== getsyi(csid:int, node_name:str, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about the local system or about other systems in an OpenVMS Cluster system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;csid:int&amp;lt;/code&amp;gt;: OpenVMS Cluster system identification&lt;br /&gt;
: &amp;lt;code&amp;gt;node_name:str&amp;lt;/code&amp;gt;: name of the node about which information is to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the node or nodes to return&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETSYI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: CSID&lt;br /&gt;
----&lt;br /&gt;
=== gettim()-&amp;gt;list ===&lt;br /&gt;
Returns the current system time in a 64-bit format.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: current system time&lt;br /&gt;
----&lt;br /&gt;
=== getuai(user_name:str, item_list:object)-&amp;gt;int ===&lt;br /&gt;
Returns authorization information about the specified user.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;user_name:str&amp;lt;/code&amp;gt;: name of the user to get authorization information for&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information to return&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETUAI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== hiber()-&amp;gt;int ===&lt;br /&gt;
Allows a process to make itself inactive but to remain known to the system so that it can be interrupted.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== schdwk(pid:int, pname:str, time:int, reptim:int)-&amp;gt;list ===&lt;br /&gt;
Schedules the awakening (restart) of a process that has placed itself in the state of hibernation with the Hibernate service.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process identification (PID) of the process to be awakened&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: name of the process to be awakened&lt;br /&gt;
: &amp;lt;code&amp;gt;time:int&amp;lt;/code&amp;gt;: time at which the process is to be awakened&lt;br /&gt;
: &amp;lt;code&amp;gt;reptim:int&amp;lt;/code&amp;gt;: time interval at which the wakeup request is to be repeated&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$SCHDWK&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: PID&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== add_holder(id:int, holder:int, attrib:int)-&amp;gt;int ===&lt;br /&gt;
Adds the specified holder record to the target identifier.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: target identifier granted to the specified holder&lt;br /&gt;
: &amp;lt;code&amp;gt;holder:int&amp;lt;/code&amp;gt;: holder identifier that is granted access to the target identifier&lt;br /&gt;
: &amp;lt;code&amp;gt;attrib:int&amp;lt;/code&amp;gt;: attributes to be placed in the holder record&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$ADD_HOLDER&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== add_ident(name:str, id:int, attrib:int)-&amp;gt;list ===&lt;br /&gt;
Adds the specified identifier to the rights database.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: identifier name to be added to the rights database&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: identifier to be created&lt;br /&gt;
: &amp;lt;code&amp;gt;attrib:int&amp;lt;/code&amp;gt;: attributes placed in the identifier’s record&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$ADD_IDENT&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;resid&amp;lt;/code&amp;gt;: identifier value assigned by the system&lt;br /&gt;
----&lt;br /&gt;
=== find_held(holder:int, context:int)-&amp;gt;list ===&lt;br /&gt;
Returns the identifiers held by the specified holder.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;holder:int&amp;lt;/code&amp;gt;: holder whose identifiers to be found&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context value used when &amp;lt;code&amp;gt;find_held&amp;lt;/code&amp;gt; is called repeatedly&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$FIND_HELD&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;: identifier value that was found&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;attrib&amp;lt;/code&amp;gt;: attributes associated with the holder returned in &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== finish_rdb(context:int)-&amp;gt;int ===&lt;br /&gt;
Deallocates the record stream and clears the context value.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context value to be cleared&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== forcex(pid:int, pname:str, code:int)-&amp;gt;int ===&lt;br /&gt;
Causes an Exit ($EXIT) service call to be issued on behalf of a specified process.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process identification (PID) of the process to force exit&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: process name of the process that is to force exit&lt;br /&gt;
: &amp;lt;code&amp;gt;code:int&amp;lt;/code&amp;gt;: completion code value to be used as the exit parameter&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== rem_holder(id:int, holder:int)-&amp;gt;int ===&lt;br /&gt;
Deletes the specified holder record from the target identifier’s list of holders.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: binary value of the target identifier&lt;br /&gt;
: &amp;lt;code&amp;gt;holder:int&amp;lt;/code&amp;gt;: identifier of the holder being deleted&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== rem_ident(id:int)-&amp;gt;int ===&lt;br /&gt;
Removes the specified identifier record and all its holder records (if any) from the rights database. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: binary value of the identifier deleted from rights database&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== setuai(user_name:str, item_list:object)-&amp;gt;int ===&lt;br /&gt;
Modifies the user authorization file (UAF) record for the specified user.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;user_name:str&amp;lt;/code&amp;gt;: name of the user whose UAF record is modified&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information from the specified UAF record is to be modified&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$SETUAI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== show_intrusion(user_criteria:str, flags:int, context:int)-&amp;gt;list ===&lt;br /&gt;
Searches for and returns information about records in the intrusion database matching the caller specifications.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;user_criteria:str&amp;lt;/code&amp;gt;: description of an intruder or suspect&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: type of records in the intrusion database about which information is to be returned. NOTE: do not use &#039;&#039;vms.ciadef.CIA_M_ITEMLIST&#039;&#039;, because &amp;lt;code&amp;gt;user_criteria&amp;lt;/code&amp;gt; is a string&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context information to keep between related calls&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$SETUAI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;intruder&amp;lt;/code&amp;gt;: user specification of the matched intruder or suspect record in the intrusion database&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;expires&amp;lt;/code&amp;gt;: quadword time format indicating the time when the record will expire&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;: the types of the matched record and the status of the suspect&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;: number of login failures or break-in attempts&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== rdb ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;Oracle Rdb&#039;&#039;&#039; functions.&lt;br /&gt;
----&lt;br /&gt;
=== Attach(dbname:string)-&amp;gt;int ===&lt;br /&gt;
Attaches to the specified database. The string may specify the full path to the Rdb database in the OpenVMS format or (more commonly) a logical name pointing to the database.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;dbname:string&amp;lt;/code&amp;gt;: path or logical name&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:* &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:* &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== CloseCursor(cursor:object)-&amp;gt;int === &lt;br /&gt;
Closes the specified cursor.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Commit()-&amp;gt;int ===&lt;br /&gt;
Commits the current database transaction.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Data(cursor:object, idx:int)-&amp;gt;str ===&lt;br /&gt;
Given a cursor handle and column index (integer), returns the data value for the specified column for the last fetch operation.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
: &amp;lt;code&amp;gt;idx:int&amp;lt;/code&amp;gt;: index&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting string&lt;br /&gt;
----&lt;br /&gt;
=== DeclareCursor(name:str, statement:str)-&amp;gt;object ===&lt;br /&gt;
Declares a cursor. Inputs are the name for the cursor and the SQL statement. On success the function returns a cursor handle that can be used with &amp;lt;code&amp;gt;OpenCursor()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FetchCursor()&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CloseCursor()&amp;lt;/code&amp;gt;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: name for the cursor&lt;br /&gt;
: &amp;lt;code&amp;gt;statement:str&amp;lt;/code&amp;gt;: SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting cursor&lt;br /&gt;
----&lt;br /&gt;
=== Detach()-&amp;gt;int ===&lt;br /&gt;
Disconnects from the database.&lt;br /&gt;
;parameters&lt;br /&gt;
&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Error()-&amp;gt;str ===&lt;br /&gt;
Returns a description of the last error.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting error string&lt;br /&gt;
----&lt;br /&gt;
=== Exec(sh:object)-&amp;gt;int ===&lt;br /&gt;
Executes a previously prepared SQL statement.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;sh:object&amp;lt;/code&amp;gt;: prepared SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== ExecI(st:str)-&amp;gt;int ===&lt;br /&gt;
Executes the supplied SQL statement immediately.&amp;lt;br&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;Note: the last letter is a capital &#039;i&#039;&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;st:str&amp;lt;/code&amp;gt;: SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Fetch(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Fetches a row of data for the specified cursor but does not explicitly return the fetched data. The &amp;lt;code&amp;gt;Data()&amp;lt;/code&amp;gt; method can then be used to retrieve individual data values for each column (&amp;lt;code&amp;gt;Ncol()&amp;lt;/code&amp;gt; can be used to determine the number of columns).&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success, end of stream&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== FetchRow(cursor:object)-&amp;gt;list ===&lt;br /&gt;
Fetches a row of data using the specified cursor handle. The fetched data is returned as a list of strings.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:The list of strings&lt;br /&gt;
----&lt;br /&gt;
=== Free(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Frees resources associated with the supplied cursor handle for a cursor previously declared via &amp;lt;code&amp;gt;DeclareCursor()&amp;lt;/code&amp;gt;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
----&lt;br /&gt;
=== Ncol(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Returns the number of columns (values) that would be returned by a fetch for the specified cursor.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Number of columns&lt;br /&gt;
----&lt;br /&gt;
=== OpenCursor(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Opens a cursor using the supplied (previously declared) cursor handle.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Prepare(st:string)-&amp;gt;object ===&lt;br /&gt;
Prepares an SQL statement and returns a handle for the prepared statement that can be used in subsequent calls to Exec().&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;st:string&amp;lt;/code&amp;gt;: SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting prepared statement&lt;br /&gt;
----&lt;br /&gt;
=== Rollback()-&amp;gt;int ===&lt;br /&gt;
Rolls back the current database transaction.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== SetReadonly()-&amp;gt;int ===&lt;br /&gt;
Starts a read-only transaction.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Sqlcode()-&amp;gt;int ===&lt;br /&gt;
Returns the SQLCODE for the last database operation.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting SQL code&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== RMS ==&lt;br /&gt;
&amp;lt;br&amp;gt;Working with RMS.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
It should be noted that the RMS module is intended for use with indexed RMS files only.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== BCD2String(bcd:bytes, prec:int)-&amp;gt;str ===&lt;br /&gt;
Converts BCD to string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;bcd:bytes&amp;lt;/code&amp;gt;: BCD&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: BCD number as a string&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== String2BCD(repr:str, l:int, prec:int)-&amp;gt;bytes ===&lt;br /&gt;
Converts string to BCD.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;repr:str&amp;lt;/code&amp;gt;: string representation of the BCD number&lt;br /&gt;
: &amp;lt;code&amp;gt;l:int&amp;lt;/code&amp;gt;: length&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;: BCD from string&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== BCD2Tuple(bcd:bytes, prec:int)-&amp;gt;tuple ===&lt;br /&gt;
Converts BCD to tuple: (sign, (digits,), precision).&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;bcd:bytes&amp;lt;/code&amp;gt;: BCD&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;tuple&amp;lt;/code&amp;gt;: BCD parsed to a tuple&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Tuple2BCD(repr:tuple, l:int, prec:int)-&amp;gt;bytes ===&lt;br /&gt;
Converts tuple to BCD.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;repr:tuple&amp;lt;/code&amp;gt;: tuple representation of the BCD number&lt;br /&gt;
: &amp;lt;code&amp;gt;l:int&amp;lt;/code&amp;gt;: length&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;: BCD from tuple&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== getrmsattr(path:str, attr:int)-&amp;gt;int ===&lt;br /&gt;
Gets an RMS attribute.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: VMS path to the file&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attribute to retrieve&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attribute value&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== parse(path:str)-&amp;gt;tuple ===&lt;br /&gt;
Parses the VMS path to a tuple of bytes: (node, disk, directory, name, extension, version)&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: VMS path to the file&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;tuple&amp;lt;/code&amp;gt;: parsed path&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== file(name:str, fac:int, shr:int, fop:int)-&amp;gt;rmsFile ===&lt;br /&gt;
Opens a file&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: VMS path to the file&lt;br /&gt;
: &amp;lt;code&amp;gt;fac:int&amp;lt;/code&amp;gt;: file access&lt;br /&gt;
: &amp;lt;code&amp;gt;shr:int&amp;lt;/code&amp;gt;: sharing options&lt;br /&gt;
: &amp;lt;code&amp;gt;fop:int&amp;lt;/code&amp;gt;: file processing options&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;file:rmsFile&amp;lt;/code&amp;gt;: rmsFile object&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== RMS file object ===&lt;br /&gt;
&lt;br /&gt;
==== Members ====&lt;br /&gt;
===== longname =====&lt;br /&gt;
Full path to the file&lt;br /&gt;
===== nok =====&lt;br /&gt;
Number of keys&lt;br /&gt;
===== org =====&lt;br /&gt;
File organization&lt;br /&gt;
----&lt;br /&gt;
==== Methods ====&lt;br /&gt;
===== close =====&lt;br /&gt;
close() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Closes file.&lt;br /&gt;
----&lt;br /&gt;
===== delete =====&lt;br /&gt;
delete([key]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Deletes the current record or the first record with the given key.&lt;br /&gt;
----&lt;br /&gt;
===== fetch =====&lt;br /&gt;
fetch([key]) -&amp;gt; status, record&amp;lt;br&amp;gt;&lt;br /&gt;
Retrieves the record from a file.&lt;br /&gt;
----&lt;br /&gt;
===== find =====&lt;br /&gt;
find([key]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Locates the specified record and establishes it as the current record.&lt;br /&gt;
----&lt;br /&gt;
===== flush =====&lt;br /&gt;
flush() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Writes out all modified I/O buffers and file attributes associated with the file.&lt;br /&gt;
----&lt;br /&gt;
===== free =====&lt;br /&gt;
free() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Unlocks all records that were previously locked for the record stream.&lt;br /&gt;
----&lt;br /&gt;
===== put =====&lt;br /&gt;
put(record) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Inserts a record into a file.&lt;br /&gt;
----&lt;br /&gt;
===== release =====&lt;br /&gt;
release() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Unlocks the record.&lt;br /&gt;
----&lt;br /&gt;
===== rewind =====&lt;br /&gt;
rewind([keynum]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Sets the context of a record stream to the first record in the file.&lt;br /&gt;
----&lt;br /&gt;
===== update =====&lt;br /&gt;
update(record) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Allows to modify the contents of an existing record in a file residing on a disk device.&lt;br /&gt;
----&lt;br /&gt;
===== usekey =====&lt;br /&gt;
usekey([keynum]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Specifies the key or index to which the operation applies.&lt;br /&gt;
----&lt;br /&gt;
===== setrop =====&lt;br /&gt;
setrop(rop) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Specifies which of the various optional record operations are to be implemented for the program.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* {{Template:CRuntime}}&lt;br /&gt;
* {{Template:RTLLibrary}}&lt;br /&gt;
* {{Template:SyservI}}&lt;br /&gt;
* {{Template:SyservII}}&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS Python]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS-Specific_Python_Modules&amp;diff=2503</id>
		<title>VMS-Specific Python Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS-Specific_Python_Modules&amp;diff=2503"/>
		<updated>2022-06-07T21:53:19Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vms.decc ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;C Run-Time Library for OpenVMS Systems&#039;&#039;&#039; functions.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== dlopen_test(name:str)-&amp;gt;int ===&lt;br /&gt;
Checks if a shared image can be opened and loaded into memory.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: path to the shared image&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: if the shared image exists and can be opened by dlopen()&lt;br /&gt;
: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: otherwise&lt;br /&gt;
----&lt;br /&gt;
=== fix_time(vms_time:int)-&amp;gt;int ===&lt;br /&gt;
Converts the VMS time to the Unix time stamp.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_time:int&amp;lt;/code&amp;gt;: VMS system time&lt;br /&gt;
;returns&lt;br /&gt;
:Time in the Unix format (number of seconds since 01/01/1970)&lt;br /&gt;
----&lt;br /&gt;
=== from_vms(vms_path:str, wild_flag:int)-&amp;gt;list ===&lt;br /&gt;
Converts the VMS path to a list of Unix paths.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_path:str&amp;lt;/code&amp;gt;: path in the VMS format (supports wildcards)&lt;br /&gt;
: &amp;lt;code&amp;gt;wild_flag:int&amp;lt;/code&amp;gt;: If set to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, the wildcards found in &amp;lt;code&amp;gt;vms_path&amp;lt;/code&amp;gt; are not expanded &lt;br /&gt;
;returns&lt;br /&gt;
:List of paths in the Unix notation&lt;br /&gt;
----&lt;br /&gt;
=== getenv(name:str, def_value:str)-&amp;gt;str ===&lt;br /&gt;
Gets the specified environment variable value. See getenv() description in the &#039;&#039;&#039;VSI C Run-Time Library Reference Manual for OpenVMS Systems&#039;&#039;&#039;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: name of the environment variable&lt;br /&gt;
: &amp;lt;code&amp;gt;def_value:str&amp;lt;/code&amp;gt;: default value&lt;br /&gt;
;returns&lt;br /&gt;
:Environment variable value&lt;br /&gt;
----&lt;br /&gt;
=== sleep(seconds:int)-&amp;gt;int ===&lt;br /&gt;
Suspends execution of the current process or thread for the specified number of seconds.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;seconds:int&amp;lt;/code&amp;gt;: seconds to sleep&lt;br /&gt;
;returns&lt;br /&gt;
:The number of seconds left before the sleep timer expires if sleep is interrupted. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; if the process slept for the specified number of seconds&lt;br /&gt;
----&lt;br /&gt;
=== sysconf(name:int)-&amp;gt;int ===&lt;br /&gt;
Provides a method for determining the current value of a configurable system limit or whether optional features are supported.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:int&amp;lt;/code&amp;gt;: system variable to be queried&lt;br /&gt;
;returns&lt;br /&gt;
:Requested value&lt;br /&gt;
----&lt;br /&gt;
=== to_vms(unix_path:str, allow_wild:int, no_directory:int)-&amp;gt;list ===&lt;br /&gt;
Converts the UNIX style file specifications to the OpenVMS file specifications.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;unix_path:str&amp;lt;/code&amp;gt;: file name following the Unix file naming conventions&lt;br /&gt;
: &amp;lt;code&amp;gt;allow_wild:int&amp;lt;/code&amp;gt;: If set to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, the wildcards found in &amp;lt;code&amp;gt;unix_path&amp;lt;/code&amp;gt; are not expanded&lt;br /&gt;
: &amp;lt;code&amp;gt;no_directory:int&amp;lt;/code&amp;gt; An integer that has one of the following values:&lt;br /&gt;
:* 0 - Directory allowed&lt;br /&gt;
:* 1 - Prevent expansion of the string as a directory name&lt;br /&gt;
:* 2 - Force expansion of the string as a directory name&lt;br /&gt;
;returns&lt;br /&gt;
List of OpenVMS style pathnames&lt;br /&gt;
----&lt;br /&gt;
=== unixtime(vms_time:int)-&amp;gt;int ===&lt;br /&gt;
Converts the OpenVMS system time to the Unix local time.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_time:int&amp;lt;/code&amp;gt; OpenVMS system time&lt;br /&gt;
;returns&lt;br /&gt;
:Unix time&lt;br /&gt;
----&lt;br /&gt;
=== vmstime(unix_time:int)-&amp;gt;int ===&lt;br /&gt;
Converts Unix time to the OpenVMS system time.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;unix_time:int&amp;lt;/code&amp;gt;: Unix time&lt;br /&gt;
;returns&lt;br /&gt;
OpenVMS system time&lt;br /&gt;
----&lt;br /&gt;
=== get_symbol(name:str)-&amp;gt;list ===&lt;br /&gt;
Requests the calling process’s command language interpreter (CLI) to return the value of a CLI symbol as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: Name of the symbol&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: value of the returned symbol&lt;br /&gt;
----&lt;br /&gt;
=== fopen(path:str, mode:str, ...)-&amp;gt;fp:object ===&lt;br /&gt;
Opens a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: A character string containing a valid file specification&lt;br /&gt;
: &amp;lt;code&amp;gt;mode:str&amp;lt;/code&amp;gt;: The access mode indicator&lt;br /&gt;
: &amp;lt;code&amp;gt;...:str&amp;lt;/code&amp;gt;: Optional file attribute arguments&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: File pointer&lt;br /&gt;
----&lt;br /&gt;
=== fclose(fp:object)-&amp;gt;status:int ===&lt;br /&gt;
Closes a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file to be closed&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;status:int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
----&lt;br /&gt;
=== fileno(fp:object)-&amp;gt;fd:int ===&lt;br /&gt;
Returns the file descriptor associated with the specified file pointer.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;fd:int&amp;lt;/code&amp;gt;: Integer file descriptor&lt;br /&gt;
----&lt;br /&gt;
=== write(fd:int, data:bytes)-&amp;gt;nbytes:int ===&lt;br /&gt;
Writes bytes to a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fd:int&amp;lt;/code&amp;gt;: Integer file descriptor&lt;br /&gt;
: &amp;lt;code&amp;gt;data:bytes&amp;lt;/code&amp;gt;: Bytes to write&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;nbytes:int&amp;lt;/code&amp;gt;: The number of bytes written&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== fgets(fp:object, maxchars:int)-&amp;gt;line:str ===&lt;br /&gt;
Reads a line from the specified file, up to one less than the specified maximum&lt;br /&gt;
number of characters or up to and including the newline character, whichever&lt;br /&gt;
comes first.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
: &amp;lt;code&amp;gt;maxchars:int&amp;lt;/code&amp;gt;: The maximum number of characters to fetch&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;line:str&amp;lt;/code&amp;gt;: The fetched line&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== feof(fp:object)-&amp;gt;status:int ===&lt;br /&gt;
Tests a file to see if the end-of-file has been reached.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;status:int&amp;lt;/code&amp;gt;: Nonzero integer indicates that the end-of-file has been reached&lt;br /&gt;
----&lt;br /&gt;
=== ferror(fp:object)-&amp;gt;status:int ===&lt;br /&gt;
Returns a nonzero integer if an error occurred while reading or writing a file.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;fp:object&amp;lt;/code&amp;gt;: A pointer to the file&lt;br /&gt;
;returns&lt;br /&gt;
:*&amp;lt;code&amp;gt;status:int&amp;lt;/code&amp;gt;: Nonzero integer indicates that an error has occurred&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vms.ile3 ==&lt;br /&gt;
&amp;lt;br&amp;gt;Provides functions to work with item lists.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== new()-&amp;gt;object ===&lt;br /&gt;
Creates an empty item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:New empty item list&lt;br /&gt;
----&lt;br /&gt;
=== delete(il:object)-&amp;gt;None ===&lt;br /&gt;
Deletes the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list to be removed&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== size(il:object)-&amp;gt;int ===&lt;br /&gt;
Gets the size of the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
;returns&lt;br /&gt;
:The size of the specified item list&lt;br /&gt;
----&lt;br /&gt;
=== addint(il:object, item:int, item_type:int, item_value:int)-&amp;gt;None ===&lt;br /&gt;
Adds a new integer to the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_type:int&amp;lt;/code&amp;gt;: type of the item. See &#039;&#039;&#039;vms.dscdef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:int&amp;lt;/code&amp;gt;: value of the item&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== getint(il:object, index:int)-&amp;gt;int ===&lt;br /&gt;
Gets the integer at the specified index in the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item to get&lt;br /&gt;
;returns&lt;br /&gt;
:Integer value&lt;br /&gt;
----&lt;br /&gt;
=== gethex(il:object, index:int)-&amp;gt;str ===&lt;br /&gt;
Gets the integer at the specified index in the item list and returns it as a hexadecimal string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item to get&lt;br /&gt;
;returns&lt;br /&gt;
:Hexadecimal string&lt;br /&gt;
----&lt;br /&gt;
=== addstr(il:object, item:int, item_value:str, item_length:int)-&amp;gt;None ===&lt;br /&gt;
Adds the specified string to the item list. If &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is not &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item_length&amp;lt;/code&amp;gt; is ignored and the length of the buffer will be the same as the length of &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:str&amp;lt;/code&amp;gt;: value to add (or &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;)&lt;br /&gt;
: &amp;lt;code&amp;gt;item_length:int&amp;lt;/code&amp;gt;: length of the buffer if &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== addstrd(il:object, item:int, item_value:str, item_length:int)-&amp;gt;None ===&lt;br /&gt;
Adds the specified space-expanded string to the item list. The first byte of the buffer is the length of the string. If &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is longer than &amp;lt;code&amp;gt;item_length&amp;lt;/code&amp;gt;, it will be truncated.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:str&amp;lt;/code&amp;gt;: value to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_length:int&amp;lt;/code&amp;gt;: length of the buffer (the resulting string length is one byte less)&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== addstrn(il:object, item:int, item_value:str, item_length:int)-&amp;gt;None ===&lt;br /&gt;
Adds the specified space-expanded string to the item list. If &amp;lt;code&amp;gt;item_value&amp;lt;/code&amp;gt; is longer than &amp;lt;code&amp;gt;item_length&amp;lt;/code&amp;gt;, it will be truncated.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:str&amp;lt;/code&amp;gt;: value to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_length:int&amp;lt;/code&amp;gt;: length of the buffer&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== getstr(il:object, index:int, flag:int)-&amp;gt;str ===&lt;br /&gt;
Gets the string at the specified index in the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item to get&lt;br /&gt;
: &amp;lt;code&amp;gt;flag:int&amp;lt;/code&amp;gt;: if set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the first byte of the resulting string is the length of the string&lt;br /&gt;
;returns&lt;br /&gt;
:String&lt;br /&gt;
----&lt;br /&gt;
=== addbin(il:object, item:int, item_value:int, item_offset:int, item_len:int)-&amp;gt;None ===&lt;br /&gt;
Adds a new binary item to the item list. This item will be interpreted as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;item:int&amp;lt;/code&amp;gt;: item to add&lt;br /&gt;
: &amp;lt;code&amp;gt;item_value:int&amp;lt;/code&amp;gt;: value to store&lt;br /&gt;
: &amp;lt;code&amp;gt;item_offset:int&amp;lt;/code&amp;gt;: starting byte&lt;br /&gt;
: &amp;lt;code&amp;gt;item_len:int&amp;lt;/code&amp;gt;: amount of bytes&lt;br /&gt;
;returns&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== getbyte(il:object, index:int, item_offset:int)-&amp;gt;int ===&lt;br /&gt;
Gets the byte at the specified position in the item list.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list&lt;br /&gt;
: &amp;lt;code&amp;gt;index:int&amp;lt;/code&amp;gt;: index of the item&lt;br /&gt;
: &amp;lt;code&amp;gt;item_offset:int&amp;lt;/code&amp;gt;: starting byte&lt;br /&gt;
;returns&lt;br /&gt;
:Integer value of the specified byte&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vms.lib ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;OpenVMS RTL Library (LIB$)&#039;&#039;&#039; functions.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== create_dir(name:str, uic:int, pe:int, pv:int)-&amp;gt;int ===&lt;br /&gt;
Creates a directory.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: name of the directory to be created (following the OpenVMS naming conventions)&lt;br /&gt;
: &amp;lt;code&amp;gt;uic:int&amp;lt;/code&amp;gt;: unsigned integer value of the owner UIC: &lt;br /&gt;
:*&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;: current user&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: owner of the parent directory&lt;br /&gt;
: &amp;lt;code&amp;gt;pe:int&amp;lt;/code&amp;gt;: protection-enable. Refer to the &#039;&#039;&#039;VSI OpenVMS RTL Library (LIB$) Manual&#039;&#039;&#039; for more info about LIB$CREATE_DIR.&lt;br /&gt;
: &amp;lt;code&amp;gt;pv:int&amp;lt;/code&amp;gt;: protection-value&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;vms.ssdef.SS__CREATED&amp;lt;/code&amp;gt;: one or more directories created&lt;br /&gt;
: &amp;lt;code&amp;gt;vms.ssdef.SS__NORMAL&amp;lt;/code&amp;gt;: all the specified directories already exist&lt;br /&gt;
: Some other error. See in &#039;&#039;&#039;vms.ssdef&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
=== date_time()-&amp;gt;list ===&lt;br /&gt;
Gets current date and time.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== get_ef()-&amp;gt;list ===&lt;br /&gt;
Allocates the local event flag.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting event flag&lt;br /&gt;
----&lt;br /&gt;
=== free_ef(ef:int)-&amp;gt;int ===&lt;br /&gt;
Releases the local event flag. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;ef:int&amp;lt;/code&amp;gt;: local event flag&lt;br /&gt;
;returns&lt;br /&gt;
:Status code of the operation&lt;br /&gt;
----&lt;br /&gt;
=== put_common(common:str)-&amp;gt;int ===&lt;br /&gt;
Copies a string into the common area. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;common:str&amp;lt;/code&amp;gt;: string to copy&lt;br /&gt;
;returns&lt;br /&gt;
:Status code of the operation&lt;br /&gt;
----&lt;br /&gt;
=== get_common()-&amp;gt;list ===&lt;br /&gt;
Gets the string from the common area.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== get_hostname(flags:int)-&amp;gt;list ===&lt;br /&gt;
Gets the host name of the local system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt; if set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the host node name is returned in a parseable format&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting host node name&lt;br /&gt;
----&lt;br /&gt;
=== getjpi(item_code:int, pid:int, pname:str)-&amp;gt;list ===&lt;br /&gt;
Gets the specified job/process information as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;item_code:int&amp;lt;/code&amp;gt;: item identifier code defining the item of the information to be returned. See &#039;&#039;&#039;vms.jpidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process ID&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: process name&lt;br /&gt;
For valid combination of the values of &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;pname&amp;lt;/code&amp;gt;, see the &#039;&#039;&#039;OpenVMS RTL Library (LIB$) Manual&#039;&#039;&#039; for LIB$GETJPI. The resulting &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt; is not returned.&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== getsyi(item_code:int, node_name:str)-&amp;gt;list ===&lt;br /&gt;
Gets system-wide information as a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;item_code:int&amp;lt;/code&amp;gt;: item identifier code defining the item of the information to be returned. See &#039;&#039;&#039;vms.syidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;node_name:str&amp;lt;/code&amp;gt;: node name&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting cluster system ID&lt;br /&gt;
----&lt;br /&gt;
=== spawn(command:str, input_file:str, output_file:str, flags:int, pname:str)-&amp;gt;list ===&lt;br /&gt;
Requests the command language interpreter (CLI) of the calling process to spawn a subprocess for executing CLI commands.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;command:str&amp;lt;/code&amp;gt;: command to execute&lt;br /&gt;
: &amp;lt;code&amp;gt;input_file:str&amp;lt;/code&amp;gt;: equivalence name to be associated with the logical name SYS$INPUT&lt;br /&gt;
: &amp;lt;code&amp;gt;output_file:str&amp;lt;/code&amp;gt;: equivalence name to be associated with the logical name SYS$OUTPUT&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: flag bits that designate optional behavior. See &#039;&#039;&#039;vms.clidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: name defined for the subprocess&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: process ID of the spawned process&lt;br /&gt;
----&lt;br /&gt;
=== do_command(command:str)-&amp;gt;None ===&lt;br /&gt;
Stops program execution and directs the command language interpreter (CLI) to execute a command that is supplied as the argument.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;command:str&amp;lt;/code&amp;gt;: command to execute&lt;br /&gt;
;returns&lt;br /&gt;
:If successful, it does not return control to the calling program.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== vms.sys ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;OpenVMS System Services&#039;&#039;&#039; functions.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== asctim(vms_time:int, time_only:int)-&amp;gt;list ===&lt;br /&gt;
Converts an absolute or delta time from 64-bit system time format to an ASCII string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;vms_time:int&amp;lt;/code&amp;gt;: OpenVMS system time. A negative time value represents a delta time.&lt;br /&gt;
: &amp;lt;code&amp;gt;time_only:int&amp;lt;/code&amp;gt;: if set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, asctim returns the hour only.&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting string&lt;br /&gt;
----&lt;br /&gt;
=== bintim(time_str:str)-&amp;gt;list ===&lt;br /&gt;
Converts an ASCII string to an absolute or delta time value in the system 64-bit time format.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;time_str:str&amp;lt;/code&amp;gt; in the following format:&lt;br /&gt;
:*Absolute Time: dd-mmm-yyyy hh:mm:ss.cc&lt;br /&gt;
:*Delta Time: dddd hh:mm:ss.cc&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting time value&lt;br /&gt;
----&lt;br /&gt;
=== asctoid(name:str)-&amp;gt;list ===&lt;br /&gt;
Translates the specified identifier name into its binary identifier value.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: identifier name&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier value&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier attributes. See &#039;&#039;&#039;vms.kgbdef&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
=== idtoasc(id_val:int, context:int)-&amp;gt;list ===&lt;br /&gt;
Translates the specified identifier value to the identifier name.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id_val:int&amp;lt;/code&amp;gt;: identifier value. See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$IDTOASC&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context value used when &amp;lt;code&amp;gt;idtoasc&amp;lt;/code&amp;gt; is called repeatedly. Must be initialized with the value &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: resulting identifier name&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier value&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting identifier attributes. See &#039;&#039;&#039;vms.kgbdef&#039;&#039;&#039;&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting context&lt;br /&gt;
----&lt;br /&gt;
=== crembx(tmp:int, maxmsg:int, bufquo:int, promsk:int, acmode:int, mbx_name:string, flags:int)-&amp;gt;list ===&lt;br /&gt;
Creates a virtual mailbox device.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;tmp:int&amp;lt;/code&amp;gt;: the first bit specifies a permanent mailbox &lt;br /&gt;
: &amp;lt;code&amp;gt;maxmsg:int&amp;lt;/code&amp;gt;: maximum size of a message (in bytes)&lt;br /&gt;
: &amp;lt;code&amp;gt;bufquo:int&amp;lt;/code&amp;gt;: number of bytes of system dynamic memory that can be used to buffer messages sent to the mailbox&lt;br /&gt;
: &amp;lt;code&amp;gt;promsk:int&amp;lt;/code&amp;gt;: protection mask to be associated with the created mailbox&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be associated with the channel to which the mailbox is assigned&lt;br /&gt;
: &amp;lt;code&amp;gt;mbx_name:string&amp;lt;/code&amp;gt;: logical name to be assigned to the mailbox&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: options for the assign operation. See &#039;&#039;&#039;vms.cmbdef&#039;&#039;&#039;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting channel&lt;br /&gt;
----&lt;br /&gt;
=== delmbx(channel:int)-&amp;gt;int ===&lt;br /&gt;
Marks a permanent mailbox for deletion.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: mailbox channel&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== assign(devnam:str, acmode:int, mbxnam:str, flags:int)-&amp;gt;list ===&lt;br /&gt;
Provides a process with an I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;devnam:str&amp;lt;/code&amp;gt;: name of the device&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be associated with the channel&lt;br /&gt;
: &amp;lt;code&amp;gt;mbxnam:str&amp;lt;/code&amp;gt;: logical name of the mailbox to be associated with the device&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: an optional device-specific argument&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: resulting channel&lt;br /&gt;
----&lt;br /&gt;
=== dassgn(channel:int)-&amp;gt;int ===&lt;br /&gt;
Unassigns (releases) an I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: number of the I/O channel to be unassigned&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== readvblk(channel:int, max_read:int, block:int, fmod:int)-&amp;gt;list ===&lt;br /&gt;
Read from the I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: I/O channel&lt;br /&gt;
: &amp;lt;code&amp;gt;max_read:int&amp;lt;/code&amp;gt;: amount of bytes to read&lt;br /&gt;
: &amp;lt;code&amp;gt;block:int&amp;lt;/code&amp;gt;: starting block&lt;br /&gt;
: &amp;lt;code&amp;gt;fmod:int&amp;lt;/code&amp;gt;: function code modifiers&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;byte&amp;lt;/code&amp;gt;: resulting buffer&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: I/O completion code&lt;br /&gt;
----&lt;br /&gt;
=== writevblk(channel:int, buffer:bytes, block:int, fmod:int)-&amp;gt;list ===&lt;br /&gt;
Write to the I/O channel.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: I/O channel&lt;br /&gt;
: &amp;lt;code&amp;gt;buffer:bytes&amp;lt;/code&amp;gt;: bytes to write&lt;br /&gt;
: &amp;lt;code&amp;gt;block:int&amp;lt;/code&amp;gt;: starting block&lt;br /&gt;
: &amp;lt;code&amp;gt;fmod:int&amp;lt;/code&amp;gt;: function code modifiers&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: amount of written bytes&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: I/O completion code&lt;br /&gt;
----&lt;br /&gt;
=== cancel(channel:int)-&amp;gt;int ===&lt;br /&gt;
Cancel the I/O operation.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;channel:int&amp;lt;/code&amp;gt;: I/O channel&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== crelnm(attr:int, tabnam:str, lognam:str, acmode:int, il:object)-&amp;gt;int ===&lt;br /&gt;
Creates a logical name and specifies its equivalence names. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attributes to be associated with the logical name. See &#039;&#039;&#039;vms.lnmdef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;tabnam:str&amp;lt;/code&amp;gt;: name of the table in which to create the logical name&lt;br /&gt;
: &amp;lt;code&amp;gt;lognam:str&amp;lt;/code&amp;gt;: logical name to be created&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be associated with the logical name. See &#039;&#039;&#039;vms.psldef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list, created via [[VMS specific Python modules#new()-&amp;gt;object|&amp;lt;code&amp;gt;vms.ile3.new()&amp;lt;/code&amp;gt;]]&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$CRELNM.&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== trnlnm(attr:int, tabnam:str, lognam:str, acmode:int, il:object)-&amp;gt;int ===&lt;br /&gt;
Returns information about the specified logical name.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attributes controlling the search for the logical name. See &#039;&#039;&#039;vms.lnmdef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;tabnam:str&amp;lt;/code&amp;gt;: name of the logical name table or the name of a searchlist logical name&lt;br /&gt;
: &amp;lt;code&amp;gt;lognam:str&amp;lt;/code&amp;gt;: logical name for which information is to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be used in the translation. See &#039;&#039;&#039;vms.psldef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;il:object&amp;lt;/code&amp;gt;: item list, created via [[VMS specific Python modules#new()-&amp;gt;object|&amp;lt;code&amp;gt;vms.ile3.new()&amp;lt;/code&amp;gt;]]&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$TRNLNM.&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== dellnm(tabnam:str, lognam:str, acmode:int)-&amp;gt;int ===&lt;br /&gt;
Deletes all logical names with the specified name.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;tabnam:str&amp;lt;/code&amp;gt;: name of a logical name table or the name of a searchlist logical name&lt;br /&gt;
: &amp;lt;code&amp;gt;lognam:str&amp;lt;/code&amp;gt;: logical name to be deleted&lt;br /&gt;
: &amp;lt;code&amp;gt;acmode:int&amp;lt;/code&amp;gt;: access mode to be used in the delete operation. See &#039;&#039;&#039;vms.psldef&#039;&#039;&#039;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== device_scan(search_devnam:str, item_list:object, context:int)-&amp;gt;list ===&lt;br /&gt;
Returns the names of all devices that match a specified set of search criteria.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;search_devnam:str&amp;lt;/code&amp;gt;: name of the device for which &amp;lt;code&amp;gt;device_scan&amp;lt;/code&amp;gt; to search&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying search criteria&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: value used to indicate the current position of the search. On the initial call it must contain &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$DEVICE_SCAN&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:* &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: found device name&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: context&lt;br /&gt;
----&lt;br /&gt;
=== uicstr(uic:int, flags:int)-&amp;gt;list ===&lt;br /&gt;
Converts UIC to a string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;uic:int&amp;lt;/code&amp;gt;: UIC&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt; &lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: use &amp;quot;!%I&amp;quot; SYS$FAO format&lt;br /&gt;
:*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: use &amp;quot;!%U&amp;quot; SYS$FAO format&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: UIC string&lt;br /&gt;
----&lt;br /&gt;
=== getdvi(dev_nam:str, item_list:object)-&amp;gt;int ===&lt;br /&gt;
Returns information related to the primary and secondary device characteristics of an I/O device.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;dev_nam:str&amp;lt;/code&amp;gt;: the name of the device for which information is to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the device is to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETDVI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== getjpi(pid:int, pnam:str, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about one or more processes of the system or across the OpenVMS Cluster system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process identification&lt;br /&gt;
: &amp;lt;code&amp;gt;pnam:str&amp;lt;/code&amp;gt;: name of the process&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the process or processes is to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETJPI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: process ID&lt;br /&gt;
----&lt;br /&gt;
=== getlki(lki:int, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about the lock database on a system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;lki:int&amp;lt;/code&amp;gt;: identification of the lock (lock ID) information about which needs to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying the lock information to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETLKI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: lock identification&lt;br /&gt;
----&lt;br /&gt;
=== getmsg(msgid:int, flags:int)-&amp;gt;list ===&lt;br /&gt;
Returns message text associated with a given message identification code.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;msgid:int&amp;lt;/code&amp;gt;: identification of the message to be retrieved&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: message components to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETMSG&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:* &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: message string&lt;br /&gt;
:* &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: optional information&lt;br /&gt;
----&lt;br /&gt;
=== getqui(func:int, context:int, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about queues and the jobs initiated from these queues.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;func:int&amp;lt;/code&amp;gt;: function code specifying the function that &amp;lt;code&amp;gt;getqui&amp;lt;/code&amp;gt; is to perform. See &#039;&#039;&#039;vms.quidef&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context stream for this call&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list supplying the information to be used by the function &lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETQUI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: context&lt;br /&gt;
----&lt;br /&gt;
=== getrmi(item_list:object)-&amp;gt;int ===&lt;br /&gt;
Returns system performance information about the local system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the local node is to be returned&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETRMI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== getsyi(csid:int, node_name:str, item_list:object)-&amp;gt;list ===&lt;br /&gt;
Returns information about the local system or about other systems in an OpenVMS Cluster system.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;csid:int&amp;lt;/code&amp;gt;: OpenVMS Cluster system identification&lt;br /&gt;
: &amp;lt;code&amp;gt;node_name:str&amp;lt;/code&amp;gt;: name of the node about which information is to be returned&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information about the node or nodes to return&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETSYI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: CSID&lt;br /&gt;
----&lt;br /&gt;
=== gettim()-&amp;gt;list ===&lt;br /&gt;
Returns the current system time in a 64-bit format.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: current system time&lt;br /&gt;
----&lt;br /&gt;
=== getuai(user_name:str, item_list:object)-&amp;gt;int ===&lt;br /&gt;
Returns authorization information about the specified user.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;user_name:str&amp;lt;/code&amp;gt;: name of the user to get authorization information for&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information to return&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$GETUAI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== hiber()-&amp;gt;int ===&lt;br /&gt;
Allows a process to make itself inactive but to remain known to the system so that it can be interrupted.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== schdwk(pid:int, pname:str, time:int, reptim:int)-&amp;gt;list ===&lt;br /&gt;
Schedules the awakening (restart) of a process that has placed itself in the state of hibernation with the Hibernate service.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process identification (PID) of the process to be awakened&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: name of the process to be awakened&lt;br /&gt;
: &amp;lt;code&amp;gt;time:int&amp;lt;/code&amp;gt;: time at which the process is to be awakened&lt;br /&gt;
: &amp;lt;code&amp;gt;reptim:int&amp;lt;/code&amp;gt;: time interval at which the wakeup request is to be repeated&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$SCHDWK&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: PID&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== add_holder(id:int, holder:int, attrib:int)-&amp;gt;int ===&lt;br /&gt;
Adds the specified holder record to the target identifier.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: target identifier granted to the specified holder&lt;br /&gt;
: &amp;lt;code&amp;gt;holder:int&amp;lt;/code&amp;gt;: holder identifier that is granted access to the target identifier&lt;br /&gt;
: &amp;lt;code&amp;gt;attrib:int&amp;lt;/code&amp;gt;: attributes to be placed in the holder record&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$ADD_HOLDER&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== add_ident(name:str, id:int, attrib:int)-&amp;gt;list ===&lt;br /&gt;
Adds the specified identifier to the rights database.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: identifier name to be added to the rights database&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: identifier to be created&lt;br /&gt;
: &amp;lt;code&amp;gt;attrib:int&amp;lt;/code&amp;gt;: attributes placed in the identifier’s record&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$ADD_IDENT&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;resid&amp;lt;/code&amp;gt;: identifier value assigned by the system&lt;br /&gt;
----&lt;br /&gt;
=== find_held(holder:int, context:int)-&amp;gt;list ===&lt;br /&gt;
Returns the identifiers held by the specified holder.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;holder:int&amp;lt;/code&amp;gt;: holder whose identifiers to be found&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context value used when &amp;lt;code&amp;gt;find_held&amp;lt;/code&amp;gt; is called repeatedly&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$FIND_HELD&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;: identifier value that was found&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;attrib&amp;lt;/code&amp;gt;: attributes associated with the holder returned in &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== finish_rdb(context:int)-&amp;gt;int ===&lt;br /&gt;
Deallocates the record stream and clears the context value.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context value to be cleared&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== forcex(pid:int, pname:str, code:int)-&amp;gt;int ===&lt;br /&gt;
Causes an Exit ($EXIT) service call to be issued on behalf of a specified process.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;pid:int&amp;lt;/code&amp;gt;: process identification (PID) of the process to force exit&lt;br /&gt;
: &amp;lt;code&amp;gt;pname:str&amp;lt;/code&amp;gt;: process name of the process that is to force exit&lt;br /&gt;
: &amp;lt;code&amp;gt;code:int&amp;lt;/code&amp;gt;: completion code value to be used as the exit parameter&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== rem_holder(id:int, holder:int)-&amp;gt;int ===&lt;br /&gt;
Deletes the specified holder record from the target identifier’s list of holders.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: binary value of the target identifier&lt;br /&gt;
: &amp;lt;code&amp;gt;holder:int&amp;lt;/code&amp;gt;: identifier of the holder being deleted&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== rem_ident(id:int)-&amp;gt;int ===&lt;br /&gt;
Removes the specified identifier record and all its holder records (if any) from the rights database. &lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;id:int&amp;lt;/code&amp;gt;: binary value of the identifier deleted from rights database&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== setuai(user_name:str, item_list:object)-&amp;gt;int ===&lt;br /&gt;
Modifies the user authorization file (UAF) record for the specified user.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;user_name:str&amp;lt;/code&amp;gt;: name of the user whose UAF record is modified&lt;br /&gt;
: &amp;lt;code&amp;gt;item_list:object&amp;lt;/code&amp;gt;: item list specifying which information from the specified UAF record is to be modified&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$SETUAI&lt;br /&gt;
;returns&lt;br /&gt;
:Status code&lt;br /&gt;
----&lt;br /&gt;
=== show_intrusion(user_criteria:str, flags:int, context:int)-&amp;gt;list ===&lt;br /&gt;
Searches for and returns information about records in the intrusion database matching the caller specifications.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;user_criteria:str&amp;lt;/code&amp;gt;: description of an intruder or suspect&lt;br /&gt;
: &amp;lt;code&amp;gt;flags:int&amp;lt;/code&amp;gt;: type of records in the intrusion database about which information is to be returned. NOTE: do not use &#039;&#039;vms.ciadef.CIA_M_ITEMLIST&#039;&#039;, because &amp;lt;code&amp;gt;user_criteria&amp;lt;/code&amp;gt; is a string&lt;br /&gt;
: &amp;lt;code&amp;gt;context:int&amp;lt;/code&amp;gt;: context information to keep between related calls&lt;br /&gt;
See &#039;&#039;&#039;OpenVMS System Services Reference Manual&#039;&#039;&#039; for SYS$SETUAI&lt;br /&gt;
;returns&lt;br /&gt;
:The list:&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;: status code of the operation&lt;br /&gt;
:*&amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;intruder&amp;lt;/code&amp;gt;: user specification of the matched intruder or suspect record in the intrusion database&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;expires&amp;lt;/code&amp;gt;: quadword time format indicating the time when the record will expire&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;: the types of the matched record and the status of the suspect&lt;br /&gt;
:*&amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;: number of login failures or break-in attempts&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== rdb ==&lt;br /&gt;
&amp;lt;br&amp;gt;Wraps the &#039;&#039;&#039;Oracle Rdb&#039;&#039;&#039; functions.&lt;br /&gt;
----&lt;br /&gt;
=== Attach(dbname:string)-&amp;gt;int ===&lt;br /&gt;
Attaches to the specified database. The string may specify the full path to the Rdb database in the OpenVMS format or (more commonly) a logical name pointing to the database.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;dbname:string&amp;lt;/code&amp;gt;: path or logical name&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:* &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:* &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== CloseCursor(cursor:object)-&amp;gt;int === &lt;br /&gt;
Closes the specified cursor.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Commit()-&amp;gt;int ===&lt;br /&gt;
Commits the current database transaction.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Data(cursor:object, idx:int)-&amp;gt;str ===&lt;br /&gt;
Given a cursor handle and column index (integer), returns the data value for the specified column for the last fetch operation.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
: &amp;lt;code&amp;gt;idx:int&amp;lt;/code&amp;gt;: index&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting string&lt;br /&gt;
----&lt;br /&gt;
=== DeclareCursor(name:str, statement:str)-&amp;gt;object ===&lt;br /&gt;
Declares a cursor. Inputs are the name for the cursor and the SQL statement. On success the function returns a cursor handle that can be used with &amp;lt;code&amp;gt;OpenCursor()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FetchCursor()&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CloseCursor()&amp;lt;/code&amp;gt;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;name:str&amp;lt;/code&amp;gt;: name for the cursor&lt;br /&gt;
: &amp;lt;code&amp;gt;statement:str&amp;lt;/code&amp;gt;: SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting cursor&lt;br /&gt;
----&lt;br /&gt;
=== Detach()-&amp;gt;int ===&lt;br /&gt;
Disconnects from the database.&lt;br /&gt;
;parameters&lt;br /&gt;
&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Error()-&amp;gt;str ===&lt;br /&gt;
Returns a description of the last error.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting error string&lt;br /&gt;
----&lt;br /&gt;
=== Exec(sh:object)-&amp;gt;int ===&lt;br /&gt;
Executes a previously prepared SQL statement.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;sh:object&amp;lt;/code&amp;gt;: prepared SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== ExecI(st:str)-&amp;gt;int ===&lt;br /&gt;
Executes the supplied SQL statement immediately.&amp;lt;br&amp;gt;&lt;br /&gt;
    &#039;&#039;&#039;Note: the last letter is a capital &#039;i&#039;&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;st:str&amp;lt;/code&amp;gt;: SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Fetch(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Fetches a row of data for the specified cursor but does not explicitly return the fetched data. The &amp;lt;code&amp;gt;Data()&amp;lt;/code&amp;gt; method can then be used to retrieve individual data values for each column (&amp;lt;code&amp;gt;Ncol()&amp;lt;/code&amp;gt; can be used to determine the number of columns).&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success, end of stream&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== FetchRow(cursor:object)-&amp;gt;list ===&lt;br /&gt;
Fetches a row of data using the specified cursor handle. The fetched data is returned as a list of strings.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:The list of strings&lt;br /&gt;
----&lt;br /&gt;
=== Free(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Frees resources associated with the supplied cursor handle for a cursor previously declared via &amp;lt;code&amp;gt;DeclareCursor()&amp;lt;/code&amp;gt;.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
----&lt;br /&gt;
=== Ncol(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Returns the number of columns (values) that would be returned by a fetch for the specified cursor.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Number of columns&lt;br /&gt;
----&lt;br /&gt;
=== OpenCursor(cursor:object)-&amp;gt;int ===&lt;br /&gt;
Opens a cursor using the supplied (previously declared) cursor handle.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;cursor:object&amp;lt;/code&amp;gt;: cursor&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Prepare(st:string)-&amp;gt;object ===&lt;br /&gt;
Prepares an SQL statement and returns a handle for the prepared statement that can be used in subsequent calls to Exec().&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;st:string&amp;lt;/code&amp;gt;: SQL statement&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting prepared statement&lt;br /&gt;
----&lt;br /&gt;
=== Rollback()-&amp;gt;int ===&lt;br /&gt;
Rolls back the current database transaction.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== SetReadonly()-&amp;gt;int ===&lt;br /&gt;
Starts a read-only transaction.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Status code:&lt;br /&gt;
:*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: success&lt;br /&gt;
:*&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: failed&lt;br /&gt;
----&lt;br /&gt;
=== Sqlcode()-&amp;gt;int ===&lt;br /&gt;
Returns the SQLCODE for the last database operation.&lt;br /&gt;
;parameters&lt;br /&gt;
:&amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
;returns&lt;br /&gt;
:Resulting SQL code&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== RMS ==&lt;br /&gt;
&amp;lt;br&amp;gt;Working with RMS.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== BCD2String(bcd:bytes, prec:int)-&amp;gt;str ===&lt;br /&gt;
Converts BCD to string.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;bcd:bytes&amp;lt;/code&amp;gt;: BCD&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt;: BCD number as a string&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== String2BCD(repr:str, l:int, prec:int)-&amp;gt;bytes ===&lt;br /&gt;
Converts string to BCD.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;repr:str&amp;lt;/code&amp;gt;: string representation of the BCD number&lt;br /&gt;
: &amp;lt;code&amp;gt;l:int&amp;lt;/code&amp;gt;: length&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;: BCD from string&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== BCD2Tuple(bcd:bytes, prec:int)-&amp;gt;tuple ===&lt;br /&gt;
Converts BCD to tuple: (sign, (digits,), precision).&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;bcd:bytes&amp;lt;/code&amp;gt;: BCD&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;tuple&amp;lt;/code&amp;gt;: BCD parsed to a tuple&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Tuple2BCD(repr:tuple, l:int, prec:int)-&amp;gt;bytes ===&lt;br /&gt;
Converts tuple to BCD.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;repr:tuple&amp;lt;/code&amp;gt;: tuple representation of the BCD number&lt;br /&gt;
: &amp;lt;code&amp;gt;l:int&amp;lt;/code&amp;gt;: length&lt;br /&gt;
: &amp;lt;code&amp;gt;prec:int&amp;lt;/code&amp;gt;: precision&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;: BCD from tuple&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== getrmsattr(path:str, attr:int)-&amp;gt;int ===&lt;br /&gt;
Gets an RMS attribute.&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: VMS path to the file&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attribute to retrieve&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;attr:int&amp;lt;/code&amp;gt;: attribute value&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== parse(path:str)-&amp;gt;tuple ===&lt;br /&gt;
Parses the VMS path to a tuple of bytes: (node, disk, directory, name, extension, version)&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: VMS path to the file&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;tuple&amp;lt;/code&amp;gt;: parsed path&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== file(name:str, fac:int, shr:int, fop:int)-&amp;gt;rmsFile ===&lt;br /&gt;
Opens a file&lt;br /&gt;
;parameters&lt;br /&gt;
: &amp;lt;code&amp;gt;path:str&amp;lt;/code&amp;gt;: VMS path to the file&lt;br /&gt;
: &amp;lt;code&amp;gt;fac:int&amp;lt;/code&amp;gt;: file access&lt;br /&gt;
: &amp;lt;code&amp;gt;shr:int&amp;lt;/code&amp;gt;: sharing options&lt;br /&gt;
: &amp;lt;code&amp;gt;fop:int&amp;lt;/code&amp;gt;: file processing options&lt;br /&gt;
;returns&lt;br /&gt;
: &amp;lt;code&amp;gt;file:rmsFile&amp;lt;/code&amp;gt;: rmsFile object&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== RMS file object ===&lt;br /&gt;
&lt;br /&gt;
==== Members ====&lt;br /&gt;
===== longname =====&lt;br /&gt;
Full path to the file&lt;br /&gt;
===== nok =====&lt;br /&gt;
Number of keys&lt;br /&gt;
===== org =====&lt;br /&gt;
File organization&lt;br /&gt;
----&lt;br /&gt;
==== Methods ====&lt;br /&gt;
===== close =====&lt;br /&gt;
close() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Closes file.&lt;br /&gt;
----&lt;br /&gt;
===== delete =====&lt;br /&gt;
delete([key]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Deletes the current record or the first record with the given key.&lt;br /&gt;
----&lt;br /&gt;
===== fetch =====&lt;br /&gt;
fetch([key]) -&amp;gt; status, record&amp;lt;br&amp;gt;&lt;br /&gt;
Retrieves the record from a file.&lt;br /&gt;
----&lt;br /&gt;
===== find =====&lt;br /&gt;
find([key]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Locates the specified record and establishes it as the current record.&lt;br /&gt;
----&lt;br /&gt;
===== flush =====&lt;br /&gt;
flush() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Writes out all modified I/O buffers and file attributes associated with the file.&lt;br /&gt;
----&lt;br /&gt;
===== free =====&lt;br /&gt;
free() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Unlocks all records that were previously locked for the record stream.&lt;br /&gt;
----&lt;br /&gt;
===== put =====&lt;br /&gt;
put(record) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Inserts a record into a file.&lt;br /&gt;
----&lt;br /&gt;
===== release =====&lt;br /&gt;
release() -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Unlocks the record.&lt;br /&gt;
----&lt;br /&gt;
===== rewind =====&lt;br /&gt;
rewind([keynum]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Sets the context of a record stream to the first record in the file.&lt;br /&gt;
----&lt;br /&gt;
===== update =====&lt;br /&gt;
update(record) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Allows to modify the contents of an existing record in a file residing on a disk device.&lt;br /&gt;
----&lt;br /&gt;
===== usekey =====&lt;br /&gt;
usekey([keynum]) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Specifies the key or index to which the operation applies.&lt;br /&gt;
----&lt;br /&gt;
===== setrop =====&lt;br /&gt;
setrop(rop) -&amp;gt; status&amp;lt;br&amp;gt;&lt;br /&gt;
Specifies which of the various optional record operations are to be implemented for the program.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* {{Template:CRuntime}}&lt;br /&gt;
* {{Template:RTLLibrary}}&lt;br /&gt;
* {{Template:SyservI}}&lt;br /&gt;
* {{Template:SyservII}}&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS Python]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=User:Brett.cameron&amp;diff=2408</id>
		<title>User:Brett.cameron</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=User:Brett.cameron&amp;diff=2408"/>
		<updated>2021-09-17T05:14:04Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: Created page with &amp;quot;TBD&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TBD&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2108</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2108"/>
		<updated>2020-09-13T00:58:58Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed&lt;br /&gt;
##Files have versioning, therefore two files with the same name might have different content&lt;br /&gt;
##Shared stream I/O does not work&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used&lt;br /&gt;
##Because files can be referenced using logical names the real file path may be different from the “path” used to open a file&lt;br /&gt;
##Files has no access time attribute&lt;br /&gt;
##Changing a files permissions also changes its modification time&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##Files have four rights bits (read, write, execute, and delete); Linux (UNIX) has only three (read, write, and execute)&lt;br /&gt;
##The ‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported by the OpenVMS CRTL&lt;br /&gt;
##There are various known issues with symbolic link implementation&lt;br /&gt;
##The symbol &#039;$&#039; is commonly used in file and directory names&lt;br /&gt;
##On OpenVMS chmod(0) sets the user&#039;s default permissions as opposed to resetting permissions&lt;br /&gt;
##To delete a directory the user has to have ‘delete’ permission for the directory&lt;br /&gt;
##On OpenVMS &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt; creates all intermediate directories (if required)&lt;br /&gt;
#Process&lt;br /&gt;
##There are no Linux-like &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; functions&lt;br /&gt;
##Pipes are created via mailbox and are not totally compatible with UNIX pipes (compatibility issues)&lt;br /&gt;
##If a child process has threads, each thread posts &#039;END-OF-PIPE&#039; when the child completes/terminates&lt;br /&gt;
##The functions &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; work only with sockets&lt;br /&gt;
##The function &amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##Numerous compatibility issues with signals&lt;br /&gt;
##Interrupting I/O operations may cause the process to hang&lt;br /&gt;
##There is no root user with zero UID&lt;br /&gt;
##Processes do not handle recursion overflow cleanly&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has somewhat different meaning&lt;br /&gt;
##Binding a socket to an empty address fails (wildcard resolved to multiple address)&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of an error&lt;br /&gt;
##&amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt; does not work correctly (process may crash)&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support &amp;lt;code&amp;gt;%G&amp;lt;/code&amp;gt; format&lt;br /&gt;
##*Exhibits undefined behavior when format ends with &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
##*&amp;lt;code&amp;gt;%4Y&amp;lt;/code&amp;gt; is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##There is no appropriate way to programmatically get all environment variables (logical names and/or symbols)&lt;br /&gt;
##The current OpenVMS port of sqlite3 does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; does not work as expected&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64-bit, &amp;lt;code&amp;gt;void*&amp;lt;/code&amp;gt; is either 32-bit or 64-bit (depending on selected pointer size)&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2107</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2107"/>
		<updated>2020-09-13T00:54:16Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed&lt;br /&gt;
##Files have versioning, therefore two files with the same name might have different content&lt;br /&gt;
##Shared stream I/O does not work&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used&lt;br /&gt;
##Because files can be referenced using logical names the real file path may be different from the “path” used to open a file&lt;br /&gt;
##Files has no access time attribute&lt;br /&gt;
##Changing a files permissions also changes its modification time&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##Files have four rights bits (read, write, execute, and delete); Linux (UNIX) has only three (read, write, and execute)&lt;br /&gt;
##The ‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported by the OpenVMS CRTL&lt;br /&gt;
##There are various known issues with symbolic link implementation&lt;br /&gt;
##The symbol &#039;$&#039; is commonly used in file and directory names&lt;br /&gt;
##On OpenVMS chmod(0) sets the user&#039;s default permissions as opposed to resetting permissions&lt;br /&gt;
##To delete a directory the user has to have ‘delete’ permission for the directory&lt;br /&gt;
##On OpenVMS &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt; creates all intermediate directories (if required)&lt;br /&gt;
#Process&lt;br /&gt;
##There are no Linux-like &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; functions&lt;br /&gt;
##Pipes are created via mailbox and are not totally compatible with UNIX pipes (compatibility issues)&lt;br /&gt;
##If a child process has threads, each thread posts &#039;END-OF-PIPE&#039; when the child completes/terminates&lt;br /&gt;
##The functions &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; work only with sockets&lt;br /&gt;
##The function &amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##Numerous compatibility issues with signals&lt;br /&gt;
##Interrupting I/O operations may cause the process to hang&lt;br /&gt;
##There is no root user with zero UID&lt;br /&gt;
##Processes do not handle recursion overflow cleanly&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has somewhat different meaning&lt;br /&gt;
##Binding a socket to an empty address fails (wildcard resolved to multiple address)&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of an error&lt;br /&gt;
##OpenVMS crashed on &amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt;&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support &amp;lt;code&amp;gt;%G&amp;lt;/code&amp;gt; format&lt;br /&gt;
##*Exhibits undefined behavior when format ends with &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
##*&amp;lt;code&amp;gt;%4Y&amp;lt;/code&amp;gt; is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##There is no appropriate way to programmatically get all environment variables (logical names and/or symbols)&lt;br /&gt;
##The current OpenVMS port of sqlite3 does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##Program prints crush dump&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; does not work as expected&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64-bit, &amp;lt;code&amp;gt;void*&amp;lt;/code&amp;gt; is either 32-bit or 64-bit (depending on selected pointer size)&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2106</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2106"/>
		<updated>2020-09-13T00:42:44Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed&lt;br /&gt;
##Files have versioning, therefore two files with the same name might have different content&lt;br /&gt;
##Shared stream I/O does not work&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used&lt;br /&gt;
##Because files can be referenced using logical names the real file path may be different from the “path” used to open a file&lt;br /&gt;
##Files has no access time attribute&lt;br /&gt;
##Changing a files permissions also changes its modification time&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##Files have four rights bits (read, write, execute, and delete); Linux (UNIX) has only three (read, write, and execute)&lt;br /&gt;
##The ‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported by the OpenVMS CRTL&lt;br /&gt;
##There are various known issues with symbolic link implementation&lt;br /&gt;
##The symbol &#039;$&#039; is commonly used in file and directory names&lt;br /&gt;
##On OpenVMS chmod(0) sets the user&#039;s default permissions as opposed to resetting permissions&lt;br /&gt;
##To delete a directory the user has to have ‘delete’ permission for the directory&lt;br /&gt;
##On OpenVMS &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt; creates all intermediate directories (if required)&lt;br /&gt;
#Process&lt;br /&gt;
##There are no Linux-like &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; functions&lt;br /&gt;
##Pipes are created via mailbox and are not totally compatible with UNIX pipes (compatibility issues)&lt;br /&gt;
##If a child process has threads, each thread posts &#039;END-OF-PIPE&#039; when the child completes/terminates&lt;br /&gt;
##The functions &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; work only with sockets&lt;br /&gt;
##The function &amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##Numerous compatibility issues with signals&lt;br /&gt;
##Interrupting I/O operations may cause the process to hang&lt;br /&gt;
##There is no root user with zero UID&lt;br /&gt;
##Processes do not handle recursion overflow cleanly&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has different meaning&lt;br /&gt;
##Binding socket to empty address fails (wildcard resolved to multiple address).&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of error&lt;br /&gt;
##OpenVMS crashed on &amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt;&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support &amp;lt;code&amp;gt;%G&amp;lt;/code&amp;gt; format&lt;br /&gt;
##*Exhibits undefined behavior when format ends with &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
##*&amp;lt;code&amp;gt;%4Y&amp;lt;/code&amp;gt; is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##Environment variables have unusual implementation - through logical names. There is no appropriate way to get all environment variables.&lt;br /&gt;
##The OpenVMS sqlite3 port does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##Program prints crush dump&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; works unusual&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64 bit, void* is 32 bit or 64 bit&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2105</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2105"/>
		<updated>2020-09-13T00:41:14Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed&lt;br /&gt;
##Files have versioning, therefore two files with the same name might have different content&lt;br /&gt;
##Shared stream I/O does not work&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used&lt;br /&gt;
##Because files can be referenced using logical names the real file path may be different from the “path” used to open a file&lt;br /&gt;
##Files has no access time attribute&lt;br /&gt;
##Changing a files permissions also changes its modification time&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##Files have four rights bits (read, write, execute, and delete); Linux (UNIX) has only three (read, write, and execute)&lt;br /&gt;
##The ‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported by the OpenVMS CRTL&lt;br /&gt;
##There are various known issues with symbolic link implementation&lt;br /&gt;
##The symbol &#039;$&#039; is commonly used in file and directory names&lt;br /&gt;
##On OpenVMS chmod(0) sets the user&#039;s default permissions as opposed to resetting permissions&lt;br /&gt;
##To delete a directory the user has to have ‘delete’ permission for the directory&lt;br /&gt;
##On OpenVMS &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt; creates all intermediate directories (if required)&lt;br /&gt;
#Process&lt;br /&gt;
##There are no Linux-like &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; functions&lt;br /&gt;
##Pipes are created via mailbox and are not totally compatible with UNIX pipes (compatibility issues)&lt;br /&gt;
##If a child process has threads, each thread posts &#039;END-OF-PIPE&#039; when the child completes/terminates&lt;br /&gt;
##The functions &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; work only with sockets&lt;br /&gt;
##The function &amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##Numerous compatibility issues with signals&lt;br /&gt;
##Interrupting I/O operations may cause the process to hang&lt;br /&gt;
##There is no root user with zero UID&lt;br /&gt;
##Processes do not handle recursion overflow cleanly&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has different meaning&lt;br /&gt;
##Binding socket to empty address fails (wildcard resolved to multiple address).&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of error&lt;br /&gt;
##OpenVMS crashed on &amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt;&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support &amp;lt;code&amp;gt;%G&amp;lt;/code&amp;gt; format&lt;br /&gt;
##*Exhibits undefined behavior when format ends with &amp;lt;code&amp;gt;&#039;%&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
##*&amp;lt;code&amp;gt;‘%4Y’&amp;lt;/code&amp;gt; is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##Environment variables have unusual implementation - through logical names. There is no appropriate way to get all environment variables.&lt;br /&gt;
##OpenVMS sqlite3 port does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##Program prints crush dump&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; works unusual&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64 bit, void* is 32 bit or 64 bit&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2104</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2104"/>
		<updated>2020-09-13T00:38:00Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed&lt;br /&gt;
##Files have versioning, therefore two files with the same name might have different content&lt;br /&gt;
##Shared stream I/O does not work&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used&lt;br /&gt;
##Because files can be referenced using logical names the real file path may be different from the “path” used to open a file&lt;br /&gt;
##Files has no access time attribute&lt;br /&gt;
##Changing a files permissions also changes its modification time&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##Files have four rights bits (read, write, execute, and delete); Linux (UNIX) has only three (read, write, and execute)&lt;br /&gt;
##The ‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported by the OpenVMS CRTL&lt;br /&gt;
##There are various known issues with symbolic link implementation&lt;br /&gt;
##The symbol &#039;$&#039; is commonly used in file and directory names&lt;br /&gt;
##On OpenVMS chmod(0) sets the user&#039;s default permissions as opposed to resetting permissions&lt;br /&gt;
##To delete a directory the user has to have ‘delete’ permission for the directory&lt;br /&gt;
##On OpenVMS &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt; creates all intermediate directories (if required)&lt;br /&gt;
#Process&lt;br /&gt;
##There are no Linux-like &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; functions&lt;br /&gt;
##Pipes are created via mailbox and are not totally compatible with UNIX pipes (compatibility issues)&lt;br /&gt;
##If a child process has threads, each thread posts &#039;END-OF-PIPE&#039; when the child completes/terminates&lt;br /&gt;
##The functions &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; work only with sockets&lt;br /&gt;
##The function &amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##Numerous compatibility issues with signals&lt;br /&gt;
##Interrupting I/O operations may cause the process to hang&lt;br /&gt;
##There is no root user with zero UID&lt;br /&gt;
##There is no unix commands like: echo, exit …&lt;br /&gt;
##OpenVMS cannot handle recursion overflow properly - just crashes&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has different meaning&lt;br /&gt;
##Binding socket to empty address fails (wildcard resolved to multiple address).&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of error&lt;br /&gt;
##OpenVMS crashed on &amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt;&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support %G format&lt;br /&gt;
##*Undefined behavior when format ends with &#039;%&#039;&lt;br /&gt;
##*‘%4Y’ is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##Environment variables have unusual implementation - through logical names. There is no appropriate way to get all environment variables.&lt;br /&gt;
##OpenVMS sqlite3 port does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##Program prints crush dump&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; works unusual&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64 bit, void* is 32 bit or 64 bit&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2103</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2103"/>
		<updated>2020-09-13T00:33:58Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed&lt;br /&gt;
##Files have versioning, therefore two files with the same name might have different content&lt;br /&gt;
##Shared stream I/O does not work&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used&lt;br /&gt;
##Because files can be referenced using logical names the real file path may be different from the “path” used to open a file&lt;br /&gt;
##Files has no access time attribute&lt;br /&gt;
##Changing a files permissions also changes its modification time&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##Files have four rights bits (read, write, execute, and delete); Linux (UNIX) has only three (read, write, and execute)&lt;br /&gt;
##The ‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported by the OpenVMS CRTL&lt;br /&gt;
##There are various known issues with symbolic link implementation&lt;br /&gt;
##The symbol &#039;$&#039; is commonly used in file and directory names&lt;br /&gt;
##On OpenVMS chmod(0) sets the user&#039;s default permissions as opposed to resetting permissions&lt;br /&gt;
##To delete a directory the user has to have ‘delete’ permission for the directory&lt;br /&gt;
##On OpenVMS &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt; creates all intermediate directories (if required)&lt;br /&gt;
#Process&lt;br /&gt;
##There are no Linux-like &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; functions&lt;br /&gt;
##Pipes are created via mailbox and are not totally compatible with UNIX pipes (compatibility issues)&lt;br /&gt;
##If a child process has threads, each thread posts &#039;END-OF-PIPE&#039; when the child completes/terminates&lt;br /&gt;
##The functions &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; work only with sockets&lt;br /&gt;
##The function &amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##A lot of issues with signals&lt;br /&gt;
##Interrupting I/O operation may hang&lt;br /&gt;
##There is no root user with zero uid&lt;br /&gt;
##There is no unix commands like: echo, exit …&lt;br /&gt;
##OpenVMS cannot handle recursion overflow properly - just crashes&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has different meaning&lt;br /&gt;
##Binding socket to empty address fails (wildcard resolved to multiple address).&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of error&lt;br /&gt;
##OpenVMS crashed on &amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt;&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support %G format&lt;br /&gt;
##*Undefined behavior when format ends with &#039;%&#039;&lt;br /&gt;
##*‘%4Y’ is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##Environment variables have unusual implementation - through logical names. There is no appropriate way to get all environment variables.&lt;br /&gt;
##OpenVMS sqlite3 port does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##Program prints crush dump&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; works unusual&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64 bit, void* is 32 bit or 64 bit&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2102</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2102"/>
		<updated>2020-09-13T00:11:19Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed&lt;br /&gt;
##Files have versioning, therefore two files with the same name might have different content&lt;br /&gt;
##Shared stream I/O does not work&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used&lt;br /&gt;
##Because files can be referenced using logical names the real file path may be different from the “path” used to open a file&lt;br /&gt;
##Files has no access time attribute&lt;br /&gt;
##Changing a files permissions also changes its modification time&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##Files have four rights bits (read, write, execute, and delete); Linux (UNIX) has only three (read, write, and execute)&lt;br /&gt;
##The ‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported by the OpenVMS CRTL&lt;br /&gt;
##There are various known issues with symbolic link implementation&lt;br /&gt;
##The symbol &#039;$&#039; is commonly used in file and directory names&lt;br /&gt;
##On OpenVMS chmod(0) sets the user&#039;s default permissions as opposed to resetting permissions&lt;br /&gt;
##To delete a directory the user has to have ‘delete’ permission for the directory&lt;br /&gt;
##On OpenVMS &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt; creates all intermediate directories (if required)&lt;br /&gt;
#Process&lt;br /&gt;
##There is no normal &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
##Pipes are created via mailbox and have a lot of compatibility issues.&lt;br /&gt;
##If child has threads, each thread posts &#039;END-OF-PIPE&#039; when it finishes.&lt;br /&gt;
##There is no normal &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; e.t.c&lt;br /&gt;
##&amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##A lot of issues with signals&lt;br /&gt;
##Interrupting I/O operation may hang&lt;br /&gt;
##There is no root user with zero uid&lt;br /&gt;
##There is no unix commands like: echo, exit …&lt;br /&gt;
##OpenVMS cannot handle recursion overflow properly - just crashes&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has different meaning&lt;br /&gt;
##Binding socket to empty address fails (wildcard resolved to multiple address).&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of error&lt;br /&gt;
##OpenVMS crashed on &amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt;&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support %G format&lt;br /&gt;
##*Undefined behavior when format ends with &#039;%&#039;&lt;br /&gt;
##*‘%4Y’ is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##Environment variables have unusual implementation - through logical names. There is no appropriate way to get all environment variables.&lt;br /&gt;
##OpenVMS sqlite3 port does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##Program prints crush dump&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; works unusual&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64 bit, void* is 32 bit or 64 bit&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2101</id>
		<title>VMS Python compatibility issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_Python_compatibility_issues&amp;diff=2101"/>
		<updated>2020-09-12T23:54:50Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#File system&lt;br /&gt;
##Directories and files with the same name are allowed.&lt;br /&gt;
##File has a version, therefore two files with the same name might have different content.&lt;br /&gt;
##Shared stream I/O does not work.&lt;br /&gt;
##To guarantee the file content is on the disk the &amp;lt;code&amp;gt;fsync()&amp;lt;/code&amp;gt; function must be used.&lt;br /&gt;
##Because of using logical names the real file path may be different from path used to open file.&lt;br /&gt;
##Files has no access time attribute.&lt;br /&gt;
##Changing a files permissions also changes its modification time.&lt;br /&gt;
##Changing the content of a directory does not change the directory modification time.&lt;br /&gt;
##File has four rights bits - read, write, execute and delete. In unix it has three of it - read, write and execute. &lt;br /&gt;
##‘.DIR’ extension is reserved&lt;br /&gt;
##Non-blocking file IO is not supported in the OpenVMS CRTL.&lt;br /&gt;
##There are various known issues with symbolic link implementation.&lt;br /&gt;
##Symbol &#039;$&#039; is usual for file and directory names&lt;br /&gt;
##OpenVMS &amp;lt;code&amp;gt;chmod(0)&amp;lt;/code&amp;gt; sets user&#039;s default permissions, not resets them&lt;br /&gt;
##To delete directory user has to have ‘delete’ permission for this directory&lt;br /&gt;
##OpenVMS creates all intermediate directories on &amp;lt;code&amp;gt;mkdir()&amp;lt;/code&amp;gt;&lt;br /&gt;
#Process&lt;br /&gt;
##There is no normal &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;spawn()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
##Pipes are created via mailbox and have a lot of compatibility issues.&lt;br /&gt;
##If child has threads, each thread posts &#039;END-OF-PIPE&#039; when it finishes.&lt;br /&gt;
##There is no normal &amp;lt;code&amp;gt;select()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;poll()&amp;lt;/code&amp;gt; e.t.c&lt;br /&gt;
##&amp;lt;code&amp;gt;siginterrupt()&amp;lt;/code&amp;gt; is not supported&lt;br /&gt;
##A lot of issues with signals&lt;br /&gt;
##Interrupting I/O operation may hang&lt;br /&gt;
##There is no root user with zero uid&lt;br /&gt;
##There is no unix commands like: echo, exit …&lt;br /&gt;
##OpenVMS cannot handle recursion overflow properly - just crashes&lt;br /&gt;
#Sockets&lt;br /&gt;
##&amp;lt;code&amp;gt;AF_UNIX&amp;lt;/code&amp;gt; has different meaning&lt;br /&gt;
##Binding socket to empty address fails (wildcard resolved to multiple address).&lt;br /&gt;
##&amp;lt;code&amp;gt;getpeername()&amp;lt;/code&amp;gt; returns ‘0.0.0.0’ instead of error&lt;br /&gt;
##OpenVMS crashed on &amp;lt;code&amp;gt;socket.socket.sendall&amp;lt;/code&amp;gt;&lt;br /&gt;
#Time&lt;br /&gt;
##&amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; is unsigned&lt;br /&gt;
##&amp;lt;code&amp;gt;strftime()&amp;lt;/code&amp;gt;&lt;br /&gt;
##*Does not support %G format&lt;br /&gt;
##*Undefined behavior when format ends with &#039;%&#039;&lt;br /&gt;
##*‘%4Y’ is padded with spaces&lt;br /&gt;
#Miscellaneous&lt;br /&gt;
##Environment variables have unusual implementation - through logical names. There is no appropriate way to get all environment variables.&lt;br /&gt;
##OpenVMS sqlite3 port does not support &amp;quot;OR ROLLBACK&amp;quot;&lt;br /&gt;
##Program prints crush dump&lt;br /&gt;
##&amp;lt;code&amp;gt;locale.strxfrm()&amp;lt;/code&amp;gt; works unusual&lt;br /&gt;
#Compiler&lt;br /&gt;
##&amp;lt;code&amp;gt;uint_ptr&amp;lt;/code&amp;gt; is always 64 bit, void* is 32 bit or 64 bit&lt;br /&gt;
##Compiler does not support relative include paths&lt;br /&gt;
----&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=749</id>
		<title>VMS IDE Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=749"/>
		<updated>2019-05-07T06:12:38Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To invoke the commands, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; in the Visual Studio Code editor and start typing the command.&lt;br /&gt;
[[File:Vms-ide-commands.png|800px|thumb|none|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
=Commands=&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Terminal&#039;&#039;&#039;&amp;lt;/code&amp;gt; - OpenVMS terminal (&amp;lt;code&amp;gt;Ctrl+F6&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Edit ssh-helper settings&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Edit connection settings&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Edit OpenVMS project settings&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Edit project settings&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Change CR/LF for all source files&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Change CRLF to LF for all source files&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Create MMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Create default MMS&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Build on VMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Build project on VMS with its dependencies&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Re-build on VMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Rebuild project on VMS with its dependencies&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Clean project&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Clean project, delete files from output folder&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Upload all new and updated files from local machine to VMS. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If &#039;&#039;&#039;preferZip&#039;&#039;&#039; is set to true, the &#039;&#039;whole&#039;&#039; project will be uploaded as a ZIP file.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Synchronize project file with VMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Synchronize project files with VMS&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Force synchronized status&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Force synchronized status&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Force built status&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Force built status&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Upload all via Zip&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Upload project files using Zip&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Download system headers&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Download system headers from VMS&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Synchronize_Configuration&amp;diff=748</id>
		<title>Synchronize Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Synchronize_Configuration&amp;diff=748"/>
		<updated>2019-05-07T06:10:46Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Synchronize Configuration Example=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3,&lt;br /&gt;
        &amp;quot;setTimeByShell&amp;quot;: true,&lt;br /&gt;
        &amp;quot;unzipCmd&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Settings Description=&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Strategy for downloading remote files which are newer than local copies.&lt;br /&gt;
** &#039;&#039;&#039;overwrite&#039;&#039;&#039; - remote files will overwrite local files.&lt;br /&gt;
** &#039;&#039;&#039;skip&#039;&#039;&#039; - remote files will not be downloaded but an appropriate warning message will be shown.&lt;br /&gt;
** &#039;&#039;&#039;edit&#039;&#039;&#039; - remote files will be downloaded into memory and the edit-merge window will be opened to allow the user decide what changes to save.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keepAlive&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Shell and SFTP connections will not be closed after synchronization is done and will be reused for the next synchronization.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;preferZip&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Prefer ZIP for uploading source files.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;purge&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Execute &amp;lt;code&amp;gt;PURGE&amp;lt;/code&amp;gt; command after uploading source.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;setTimeAttempts&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The maximum number of attempts to set file time. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: the first attempt to set file time may be rejected because the file is busy. VMS IDE will re-try to set time again. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;setTimeByShell&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SFTP server on the OpenVMS host did not set the file time, VMS IDE can use DCL commands to do this.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;unzipCmd&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Is used to run a user-defined command to unzip archive; default is &amp;lt;code&amp;gt;unzip -oo &amp;quot;-D&amp;quot;&amp;lt;/code&amp;gt; and file name added at the end of the command.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=747</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=747"/>
		<updated>2019-05-07T06:07:32Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running and debugging projects. Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via Visual Studio Code settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
        &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: []&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The connection section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt; - IP-address or name of OpenVMS machine. It also can refer to the label of a connection specified in host-collection section - should be enclosed in angle brackets  &amp;lt;code&amp;gt;(&amp;lt;hostname&amp;gt;)&amp;lt;/code&amp;gt;. In that&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection.. If it is omitted a password input box will be shown on connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. &lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to list all the required connections and then just pick the one that you need by using its label as the &#039;&#039;&#039;host&#039;&#039;&#039; name in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
Specifies SSH connection timesouts.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Cmd Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Feedback Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for this period, the specified password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Welcome Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this period of time, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=746</id>
		<title>Project Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=746"/>
		<updated>2019-05-07T06:01:10Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Project Configuration Example=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{node_modules,.vscode}/**&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;project&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;project&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Settings Description=&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Break&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Keyboard key to pause debugging in VMS IDE debugger. Press &amp;lt;code&amp;gt;CTRL+Key&amp;lt;/code&amp;gt; to pause debugging.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Builders&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Mask for files used for building the project. Default is &amp;quot;*.{mms,com}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Exclude&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Folders excluded from synchronization with OpenVMS system.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Headers&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Header files. Default is &amp;quot;*.{h,hpp}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Listing&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Listing files that will be downloaded after the project is built for debugging purpose.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Outdir&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Output directory where object, listing and executable files will be stored when built. Is also used for temporary files. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Should be only the name of the folder, not a full or relative path. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Name&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Name for the executable file, auto-generated &#039;&#039;&#039;MMS&#039;&#039;&#039; file for builder, OPT file for linker, and COM file for defining logical names.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Type&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Type of the project. Available types: &#039;&#039;&#039;executable&#039;&#039;&#039;, &#039;&#039;&#039;library&#039;&#039;&#039; or &#039;&#039;&#039;shareable&#039;&#039;&#039;. The building method depends on the type of the project and its dependencies.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Resource&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Files required for the project, but are not involved in the build process.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Root&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Directory of the project on remote OpenVMS machine.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Source&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Mask for the source files, e.g. &amp;quot;*.{c,cpp}&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=745</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=745"/>
		<updated>2019-05-07T05:50:54Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: /* Host Collection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running and debugging projects. Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via Visual Studio Code settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
        &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: []&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
Connection section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt; - IP-address or name of OpenVMS machine. It also can refer to the label of a connection specified in host-collection section - should be enclosed in angle brackets  &amp;lt;code&amp;gt;(&amp;lt;hostname&amp;gt;)&amp;lt;/code&amp;gt;. In that&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User password that will be used for SSH connection.. If it is omitted password input box will be shown on connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. &lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to list all the required connections and then just pick the one that you need by using its label as the &#039;&#039;&#039;host&#039;&#039;&#039; name in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
Specifies SSH connection timesouts.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Cmd Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Time out for command answer. If a command is sent to VMS and does not send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Feedback Timeoutt&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If SSH connection does not send feedback for this period, the specified password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Welcome Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If SSH shell prompt is not received for this period of time, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=744</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=744"/>
		<updated>2019-05-07T05:49:41Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running and debugging projects. Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via Visual Studio Code settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
        &amp;quot;username&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: []&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
Connection section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt; - IP-address or name of OpenVMS machine. It also can refer to the label of a connection specified in host-collection section - should be enclosed in angle brackets  &amp;lt;code&amp;gt;(&amp;lt;hostname&amp;gt;)&amp;lt;/code&amp;gt;. In that&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User password that will be used for SSH connection.. If it is omitted password input box will be shown on connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. &lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to list all the required connections and then just pick the one that you need by using its label as the &#039;&#039;&#039;host&#039;&#039;&#039; name in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. [[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
Specifies SSH connection timesouts.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Cmd Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Time out for command answer. If a command is sent to VMS and does not send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Feedback Timeoutt&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If SSH connection does not send feedback for this period, the specified password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Welcome Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If SSH shell prompt is not received for this period of time, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=743</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=743"/>
		<updated>2019-04-26T04:49:42Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: /* Restrictions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:center;vertical-align:top;background-color:white;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;text-align:center; background-color:#067ACC;color:white;height:50px;width:550px;&amp;quot;  | This material is under construction. The VS Code extensions are coming soon.&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Syntax highlighting&#039;&#039;&#039; for &#039;&#039;&#039;MMS&#039;&#039;&#039;, &#039;&#039;&#039;CLD&#039;&#039;&#039;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&lt;br /&gt;
* &#039;&#039;&#039;Code autocompletion&#039;&#039;&#039; for &#039;&#039;&#039;MSG&#039;&#039;&#039; and &#039;&#039;&#039;CLD&#039;&#039;&#039; files.&lt;br /&gt;
&lt;br /&gt;
=Restrictions=&lt;br /&gt;
* The &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension can only be used in conjunction with ODS-5 OpenVMS file systems; it cannot be used with ODS-2 file systems.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This guide will help you install the VMS IDE extension and start working on your projects.&lt;br /&gt;
&lt;br /&gt;
===Quick Start===&lt;br /&gt;
* [[VMS_IDE_Installation|Installation]]&lt;br /&gt;
* [[VMS_IDE_Project_Configuration|Setting up a VMS Project]]&lt;br /&gt;
* [[VMS_IDE_Developing|Working on a VMS Project]]&lt;br /&gt;
&lt;br /&gt;
===Commands===&lt;br /&gt;
* [[VMS_IDE_Commands|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
* [[VMS_IDE_Project_Explorer|Project Explorer]]&lt;br /&gt;
* [[VMS_IDE_Debugger|Debugger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=742</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=742"/>
		<updated>2019-04-26T04:49:09Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:center;vertical-align:top;background-color:white;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;text-align:center; background-color:#067ACC;color:white;height:50px;width:550px;&amp;quot;  | This material is under construction. The VS Code extensions are coming soon.&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Syntax highlighting&#039;&#039;&#039; for &#039;&#039;&#039;MMS&#039;&#039;&#039;, &#039;&#039;&#039;CLD&#039;&#039;&#039;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&lt;br /&gt;
* &#039;&#039;&#039;Code autocompletion&#039;&#039;&#039; for &#039;&#039;&#039;MSG&#039;&#039;&#039; and &#039;&#039;&#039;CLD&#039;&#039;&#039; files.&lt;br /&gt;
&lt;br /&gt;
=Restrictions=&lt;br /&gt;
* The &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension can only be used in conjunction with ODS-5 OpenVMS file systems; it cannot be used with ODS-2 file systems&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This guide will help you install the VMS IDE extension and start working on your projects.&lt;br /&gt;
&lt;br /&gt;
===Quick Start===&lt;br /&gt;
* [[VMS_IDE_Installation|Installation]]&lt;br /&gt;
* [[VMS_IDE_Project_Configuration|Setting up a VMS Project]]&lt;br /&gt;
* [[VMS_IDE_Developing|Working on a VMS Project]]&lt;br /&gt;
&lt;br /&gt;
===Commands===&lt;br /&gt;
* [[VMS_IDE_Commands|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
* [[VMS_IDE_Project_Explorer|Project Explorer]]&lt;br /&gt;
* [[VMS_IDE_Debugger|Debugger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=720</id>
		<title>VMS IDE Project Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=720"/>
		<updated>2019-04-16T10:51:40Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view helps to manage OpenVMS projects, their dependencies, and settings. It is also possible to build, rebuild, and clean the project using the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; context menu.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Project-explorer.PNG|frame|left|Project Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
==Project Dependencies==&lt;br /&gt;
&lt;br /&gt;
====Project types====&lt;br /&gt;
* &#039;&#039;executable&#039;&#039; - executable image is created&lt;br /&gt;
* &#039;&#039;library&#039;&#039; - object library (OLB) is created&lt;br /&gt;
* &#039;&#039;shareable&#039;&#039; - shareable image is created&lt;br /&gt;
&lt;br /&gt;
====Context Menu====&lt;br /&gt;
* &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; - add the project you right-clicked to the previously selected project as a dependency&lt;br /&gt;
* &#039;&#039;&#039;Remove project from dependencies&#039;&#039;&#039; - remove the selected project from dependencies of the main project&lt;br /&gt;
* &#039;&#039;&#039;Build only this project&#039;&#039;&#039; - build the current project&lt;br /&gt;
* &#039;&#039;&#039;Build with dependencies&#039;&#039;&#039; - build the current project and all its dependencies&lt;br /&gt;
* &#039;&#039;&#039;Clean this only&#039;&#039;&#039; - clean current project only&lt;br /&gt;
* &#039;&#039;&#039;Rebuild only this project&#039;&#039;&#039; - rebuild the current project&lt;br /&gt;
* &#039;&#039;&#039;Rebuild with dependencies&#039;&#039;&#039; - rebuild the current project and all its dependencies&lt;br /&gt;
&lt;br /&gt;
====Creating MMS Files====&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; can create &#039;&#039;&#039;MMS&#039;&#039;&#039; files automatically based on the project type and the types of its dependencies.&amp;lt;br&amp;gt;&lt;br /&gt;
For &#039;&#039;shareable&#039;&#039; images, an options (&#039;&#039;&#039;OPT&#039;&#039;&#039;) file is created, but the universal symbol vector must be edited manually.&amp;lt;br&amp;gt;&lt;br /&gt;
If the project depends on some shareable images, a &#039;&#039;&#039;COM&#039;&#039;&#039; file is created with &#039;&#039;logicals&#039;&#039; required for running the project.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
When a project is selected in the Project Dependencies panel, its description is shown.&lt;br /&gt;
* &#039;&#039;&#039;Local&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;folder&#039;&#039; - [[VMS IDE Project Configuration|Workspace folder name]]&lt;br /&gt;
** &#039;&#039;buildType&#039;&#039; - the type of build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039; (click to change)&lt;br /&gt;
** &#039;&#039;sourceState&#039;&#039; - current state of source files&lt;br /&gt;
*** &#039;&#039;unknown&#039;&#039; - no synchronization or upload was performed or there were changes to the Project or SSH settings&lt;br /&gt;
*** &#039;&#039;modified&#039;&#039; - there are changes that need to be synchronized&lt;br /&gt;
*** &#039;&#039;synchronized&#039;&#039; - project files on the local machine and OpenVMS are synchronized&lt;br /&gt;
** &#039;&#039;buildState&#039;&#039; - &#039;&#039;built&#039;&#039; or &#039;&#039;not built&#039;&#039;&lt;br /&gt;
** &#039;&#039;masters&#039;&#039; - projects which depend on the currently selected project&lt;br /&gt;
* &#039;&#039;&#039;SSH&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;host&#039;&#039; - OpenVMS host to synchronize and build with&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;projectName&#039;&#039; - the name of the project&lt;br /&gt;
** &#039;&#039;projectType&#039;&#039; - [[#Project types|the type of the project]]&lt;br /&gt;
** &#039;&#039;root&#039;&#039; - project root on OpenVMS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=719</id>
		<title>VMS IDE Project Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=719"/>
		<updated>2019-04-16T10:51:06Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view helps to manage OpenVMS projects, their dependencies, and settings. It is also possible to build, rebuild, and clean the project using the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; context menu.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Project-explorer.PNG|frame|left|Project Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
==Project Dependencies==&lt;br /&gt;
&lt;br /&gt;
====Project types====&lt;br /&gt;
* &#039;&#039;executable&#039;&#039; - executable image is created&lt;br /&gt;
* &#039;&#039;library&#039;&#039; - object library (OLB) is created&lt;br /&gt;
* &#039;&#039;shareable&#039;&#039; - shareable image is created&lt;br /&gt;
&lt;br /&gt;
====Context Menu====&lt;br /&gt;
* &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; - add the project you right-clicked to the previously selected project as a dependency&lt;br /&gt;
* &#039;&#039;&#039;Remove project from dependencies&#039;&#039;&#039; - remove the selected project from dependencies of the main project&lt;br /&gt;
* &#039;&#039;&#039;Build only this project&#039;&#039;&#039; - build the current project&lt;br /&gt;
* &#039;&#039;&#039;Build with dependencies&#039;&#039;&#039; - build the current project and all its dependencies&lt;br /&gt;
* &#039;&#039;&#039;Clean this only&#039;&#039;&#039; - clean current project only&lt;br /&gt;
* &#039;&#039;&#039;Rebuild only this project&#039;&#039;&#039; - rebuild the current project&lt;br /&gt;
* &#039;&#039;&#039;Rebuild with dependencies&#039;&#039;&#039; - rebuild the current project and all its dependencies&lt;br /&gt;
&lt;br /&gt;
====Creating MMS Files====&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; can create &#039;&#039;&#039;MMS&#039;&#039;&#039; files automatically based on the project type and the types of its dependencies.&amp;lt;br&amp;gt;&lt;br /&gt;
For &#039;&#039;shareable&#039;&#039; images, an options (&#039;&#039;&#039;OPT&#039;&#039;&#039;) file is created, but the universal symbol vector must be edited manually.&amp;lt;br&amp;gt;&lt;br /&gt;
If the project depends on some shareable images, a &#039;&#039;&#039;COM&#039;&#039;&#039; file is created with &#039;&#039;logicals&#039;&#039; required for running the project.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
When a project is selected in the Project Dependencies panel, its description is shown.&lt;br /&gt;
* &#039;&#039;&#039;Local&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;folder&#039;&#039; - [[VMS IDE Project Configuration|Workspace folder name]]&lt;br /&gt;
** &#039;&#039;buildType&#039;&#039; - the type of build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039; (click to change)&lt;br /&gt;
** &#039;&#039;sourceState&#039;&#039; - current state of source files&lt;br /&gt;
*** &#039;&#039;unknown&#039;&#039; - no synchronization or upload was performed or there were changes to the Project or SSH settings&lt;br /&gt;
*** &#039;&#039;modified&#039;&#039; - there are changes that need to be synchronized&lt;br /&gt;
*** &#039;&#039;synchronized&#039;&#039; - project files on the local machine and OpenVMS are synchronized&lt;br /&gt;
** &#039;&#039;buildState&#039;&#039; - &#039;&#039;built&#039;&#039; or &#039;&#039;not built&#039;&#039;&lt;br /&gt;
** &#039;&#039;masters&#039;&#039; - projects which depend on the currently selected project&lt;br /&gt;
* &#039;&#039;&#039;SSH&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;host&#039;&#039; - OpenVMS host to synchronize and build with&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;projectName&#039;&#039; - the name of the project&lt;br /&gt;
** &#039;&#039;projectType&#039;&#039; - [[#Project types|the type of the project]]&lt;br /&gt;
** &#039;&#039;root&#039;&#039; - project root in OpenVMS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=718</id>
		<title>VMS IDE Project Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=718"/>
		<updated>2019-04-16T10:47:53Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: /* Creating MMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view helps to manage OpenVMS projects, their dependencies, and settings. It is also possible to build, rebuild, and clean the project using the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; context menu.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Project-explorer.PNG|frame|left|Project Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
==Project Dependencies==&lt;br /&gt;
&lt;br /&gt;
====Project types====&lt;br /&gt;
* &#039;&#039;executable&#039;&#039; - executable image is created&lt;br /&gt;
* &#039;&#039;library&#039;&#039; - object library (OLB) is created&lt;br /&gt;
* &#039;&#039;shareable&#039;&#039; - shareable image is created&lt;br /&gt;
&lt;br /&gt;
====Context Menu====&lt;br /&gt;
* &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; - add the project you right-clicked to the previously selected project as a dependency&lt;br /&gt;
* &#039;&#039;&#039;Remove project from dependencies&#039;&#039;&#039; - remove the selected project from dependencies of the main project&lt;br /&gt;
* &#039;&#039;&#039;Build only this project&#039;&#039;&#039; - build the current project&lt;br /&gt;
* &#039;&#039;&#039;Build with dependencies&#039;&#039;&#039; - build the current project and all its dependencies&lt;br /&gt;
* &#039;&#039;&#039;Clean this only&#039;&#039;&#039; - clean current project only&lt;br /&gt;
* &#039;&#039;&#039;Rebuild only this project&#039;&#039;&#039; - rebuild the current project&lt;br /&gt;
* &#039;&#039;&#039;Rebuild with dependencies&#039;&#039;&#039; - rebuild the current project and all its dependencies&lt;br /&gt;
&lt;br /&gt;
====Creating MMS Files====&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; can create &#039;&#039;&#039;MMS&#039;&#039;&#039; files automatically based on the project type and the types of its dependencies.&amp;lt;br&amp;gt;&lt;br /&gt;
For &#039;&#039;shareable&#039;&#039; images, an options (&#039;&#039;&#039;OPT&#039;&#039;&#039;) file is created, but the universal symbol vector must be edited manually.&amp;lt;br&amp;gt;&lt;br /&gt;
If the project depends on some shareable images, a &#039;&#039;&#039;COM&#039;&#039;&#039; file is created with &#039;&#039;logicals&#039;&#039; required for running the project.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
When a project is selected in the Project Dependencies panel, its description is shown.&lt;br /&gt;
* &#039;&#039;&#039;Local&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;folder&#039;&#039; - [[VMS IDE Project Configuration|Workspace folder name]]&lt;br /&gt;
** &#039;&#039;buildType&#039;&#039; - the type of build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039; (click to change)&lt;br /&gt;
** &#039;&#039;sourceState&#039;&#039; - current state of source files&lt;br /&gt;
*** &#039;&#039;unknown&#039;&#039; - no synchronization or upload was performed or there were changes to the Project or SSH settings&lt;br /&gt;
*** &#039;&#039;modified&#039;&#039; - there are changes that needs to be synchronized&lt;br /&gt;
*** &#039;&#039;synchronized&#039;&#039; - project files on the local machine and OpenVMS are synchronized&lt;br /&gt;
** &#039;&#039;buildState&#039;&#039; - &#039;&#039;built&#039;&#039; or &#039;&#039;not built&#039;&#039;&lt;br /&gt;
** &#039;&#039;masters&#039;&#039; - projects which depend on the currently selected project&lt;br /&gt;
* &#039;&#039;&#039;SSH&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;host&#039;&#039; - OpenVMS host to synchronize and build with&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;projectName&#039;&#039; - the name of the project&lt;br /&gt;
** &#039;&#039;projectType&#039;&#039; - [[#Project types|the type of the project]]&lt;br /&gt;
** &#039;&#039;root&#039;&#039; - project root in OpenVMS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=717</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=717"/>
		<updated>2019-04-16T10:04:56Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building the project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJET DESCRIPTION&#039;&#039;&#039; section, select the required build type (&amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RELEASE&amp;lt;/code&amp;gt;) by clicking the &#039;&#039;&#039;buildType&#039;&#039;&#039; parameter.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated files by using the [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
===Building with Custom Procedure===&lt;br /&gt;
To build a project using a custom build procedure, edit the &#039;&#039;task.json&#039;&#039; file &lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;task2cmd&amp;quot;,&lt;br /&gt;
  &amp;quot;command&amp;quot;: &amp;quot;vmssoftware.synchronizer.buildProject&amp;quot;,&lt;br /&gt;
  &amp;quot;extension&amp;quot;: &amp;quot;vmssoftware.synchronizer&amp;quot;,&lt;br /&gt;
  &amp;quot;parameter&amp;quot;: &amp;quot;build.com&amp;quot;,&lt;br /&gt;
  &amp;quot;label&amp;quot;: &amp;quot;Build Procedure&amp;quot;,&lt;br /&gt;
  &amp;quot;problemMatcher&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
where:&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; is the name of your build procedure (COM file)&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; meaningful task name&lt;br /&gt;
All other parameters must be as shown in example.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: see Visual Studio Code [https://code.visualstudio.com/docs/editor/tasks documentation] for more information on &#039;&#039;&#039;tasks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running the debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start a debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=716</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=716"/>
		<updated>2019-04-16T10:03:25Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building the project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJET DESCRIPTION&#039;&#039;&#039; section, select the required build type (&amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RELEASE&amp;lt;/code&amp;gt;) by clicking the &#039;&#039;&#039;buildType&#039;&#039;&#039; parameter.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated files by using the [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
===Building with Custom Procedure===&lt;br /&gt;
To build a project using a custom build procedure, edit the &#039;&#039;task.json&#039;&#039; file &lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;task2cmd&amp;quot;,&lt;br /&gt;
  &amp;quot;command&amp;quot;: &amp;quot;vmssoftware.synchronizer.buildProject&amp;quot;,&lt;br /&gt;
  &amp;quot;extension&amp;quot;: &amp;quot;vmssoftware.synchronizer&amp;quot;,&lt;br /&gt;
  &amp;quot;parameter&amp;quot;: &amp;quot;build.com&amp;quot;,&lt;br /&gt;
  &amp;quot;label&amp;quot;: &amp;quot;Build Procedure&amp;quot;,&lt;br /&gt;
  &amp;quot;problemMatcher&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
where:&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; is the name of your build procedure (COM file)&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; meaningful task name&lt;br /&gt;
All other parameters must be as shown in example.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: see Visual Studio Code [https://code.visualstudio.com/docs/editor/tasks documentation] for more information on &#039;&#039;&#039;tasks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running the debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=715</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=715"/>
		<updated>2019-04-16T10:01:42Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building the project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJET DESCRIPTION&#039;&#039;&#039; section, select the required build type (&amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RELEASE&amp;lt;/code&amp;gt;) by clicking the &#039;&#039;&#039;buildType&#039;&#039;&#039; parameter.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated files by using the [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
===Building with Custom Procedure===&lt;br /&gt;
To build a project using a custom build procedure, edit the &#039;&#039;task.json&#039;&#039; file &lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;task2cmd&amp;quot;,&lt;br /&gt;
  &amp;quot;command&amp;quot;: &amp;quot;vmssoftware.synchronizer.buildProject&amp;quot;,&lt;br /&gt;
  &amp;quot;extension&amp;quot;: &amp;quot;vmssoftware.synchronizer&amp;quot;,&lt;br /&gt;
  &amp;quot;parameter&amp;quot;: &amp;quot;build.com&amp;quot;,&lt;br /&gt;
  &amp;quot;label&amp;quot;: &amp;quot;Build Procedure&amp;quot;,&lt;br /&gt;
  &amp;quot;problemMatcher&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
where&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; is the name of your build procedure (COM file)&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; meaningful task name&lt;br /&gt;
All other parameters must be as shown in example.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: see Visual Studio Code [https://code.visualstudio.com/docs/editor/tasks documentation] for more information on &#039;&#039;&#039;tasks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=714</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=714"/>
		<updated>2019-04-16T09:59:38Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building the project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJET DESCRIPTION&#039;&#039;&#039; section, select the required build type (&amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RELEASE&amp;lt;/code&amp;gt;) by clicking the &#039;&#039;&#039;buildType&#039;&#039;&#039; parameter.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated file by using [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
===Building with Custom Procedure===&lt;br /&gt;
To build a project using a custom build procedure, edit the &#039;&#039;task.json&#039;&#039; file &lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;task2cmd&amp;quot;,&lt;br /&gt;
  &amp;quot;command&amp;quot;: &amp;quot;vmssoftware.synchronizer.buildProject&amp;quot;,&lt;br /&gt;
  &amp;quot;extension&amp;quot;: &amp;quot;vmssoftware.synchronizer&amp;quot;,&lt;br /&gt;
  &amp;quot;parameter&amp;quot;: &amp;quot;build.com&amp;quot;,&lt;br /&gt;
  &amp;quot;label&amp;quot;: &amp;quot;Build Procedure&amp;quot;,&lt;br /&gt;
  &amp;quot;problemMatcher&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
where&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; is the name of your build procedure (COM file)&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; meaningful task name&lt;br /&gt;
All other parameters must be as shown in example.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: see Visual Studio Code [https://code.visualstudio.com/docs/editor/tasks documentation] for more information on &#039;&#039;&#039;tasks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=713</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=713"/>
		<updated>2019-04-16T09:56:41Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building the project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJET DESCRIPTION&#039;&#039;&#039; section, select the required build type (&amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RELEASE&amp;lt;/code&amp;gt;) by clicking the &#039;&#039;&#039;buildType&#039;&#039;&#039; parameter.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LTS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated file by using [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
===Building with Custom Procedure===&lt;br /&gt;
To build a project using a custom build procedure, edit the &#039;&#039;task.json&#039;&#039; file &lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;task2cmd&amp;quot;,&lt;br /&gt;
  &amp;quot;command&amp;quot;: &amp;quot;vmssoftware.synchronizer.buildProject&amp;quot;,&lt;br /&gt;
  &amp;quot;extension&amp;quot;: &amp;quot;vmssoftware.synchronizer&amp;quot;,&lt;br /&gt;
  &amp;quot;parameter&amp;quot;: &amp;quot;build.com&amp;quot;,&lt;br /&gt;
  &amp;quot;label&amp;quot;: &amp;quot;Build Procedure&amp;quot;,&lt;br /&gt;
  &amp;quot;problemMatcher&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
where&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; is the name of your build procedure (COM file)&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; meaningful task name&lt;br /&gt;
All other parameters must be as shown in example.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: see Visual Studio Code [https://code.visualstudio.com/docs/editor/tasks documentation] for more information on &#039;&#039;&#039;tasks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=712</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=712"/>
		<updated>2019-04-16T09:53:43Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files for your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | The project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your local machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (the default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select the type of configuration for your project. The recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building, and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves them to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into two sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=711</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=711"/>
		<updated>2019-04-16T09:50:59Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files for your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | The project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your local machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (the default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select the type of configuration for your project. The recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building, and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves it to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into two sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=710</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=710"/>
		<updated>2019-04-16T09:48:47Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files for your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | The project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your local machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (the default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select the type of configuration for your project. The recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves it to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into two sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=709</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=709"/>
		<updated>2019-04-16T09:46:39Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files for your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | The project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your local machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (the default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select type of configuration for your project. Recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves it to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into two sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=708</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=708"/>
		<updated>2019-04-16T09:45:53Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files for your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | The project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your local machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (The default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select type of configuration for your project. Recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves it to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into two sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=707</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=707"/>
		<updated>2019-04-16T09:43:29Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files for your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | Project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (The default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select type of configuration for your project. Recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves it to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into two sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=706</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=706"/>
		<updated>2019-04-16T09:42:42Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files of your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | Project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (The default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select type of configuration for your project. Recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves it to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into two sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Installation&amp;diff=705</id>
		<title>VMS IDE Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Installation&amp;diff=705"/>
		<updated>2019-04-16T09:40:42Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is built on top of Microsoft Visual Studio Code, a light-weight but powerful cross-platform source code editor. &lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
# Download and install the official [https://code.visualstudio.com/ Microsoft Visual Studio Code] editor. Refer to Visual Studio Code [https://code.visualstudio.com/docs/setup/setup-overview documentation] for installation instructions.&lt;br /&gt;
# Run the Visual Studio Code editor.&lt;br /&gt;
# Click the Extensions icon in the Activity Bar on the left side of the Visual Studio Code (&amp;lt;code&amp;gt;Ctrl+Shift+X&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Search for VMS IDE, select it from the list and click Install.&lt;br /&gt;
&lt;br /&gt;
===Installed extension===&lt;br /&gt;
[[File:Vms-ide-extension.png|800px|none|thumb|VMS IDE Extension]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
* [https://code.visualstudio.com/ Microsoft Visual Studio Code]&lt;br /&gt;
* [https://code.visualstudio.com/docs Visual Studio Code documentation]&lt;br /&gt;
* [https://code.visualstudio.com/docs/getstarted/introvideos Visual Studio Code introductory videos]&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=704</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=704"/>
		<updated>2019-04-16T09:39:49Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:center;vertical-align:top;background-color:white;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;text-align:center; background-color:#067ACC;color:white;height:50px;width:550px;&amp;quot;  | This material is under construction. The VS Code extensions are coming soon.&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Syntax highlighting&#039;&#039;&#039; for &#039;&#039;&#039;MMS&#039;&#039;&#039;, &#039;&#039;&#039;CLD&#039;&#039;&#039;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&lt;br /&gt;
* &#039;&#039;&#039;Code autocompletion&#039;&#039;&#039; for &#039;&#039;&#039;MSG&#039;&#039;&#039; and &#039;&#039;&#039;CLD&#039;&#039;&#039; files.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This guide will help you install the VMS IDE extension and start working on your projects.&lt;br /&gt;
&lt;br /&gt;
===Quick Start===&lt;br /&gt;
* [[VMS_IDE_Installation|Installation]]&lt;br /&gt;
* [[VMS_IDE_Project_Configuration|Setting up a VMS Project]]&lt;br /&gt;
* [[VMS_IDE_Developing|Working on a VMS Project]]&lt;br /&gt;
&lt;br /&gt;
===Commands===&lt;br /&gt;
* [[VMS_IDE_Commands|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
* [[VMS_IDE_Project_Explorer|Project Explorer]]&lt;br /&gt;
* [[VMS_IDE_Debugger|Debugger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=703</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=703"/>
		<updated>2019-04-16T09:39:18Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:center;vertical-align:top;background-color:white;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;text-align:center; background-color:#067ACC;color:white;height:50px;width:550px;&amp;quot;  | This material is under construction. The VS Code extensions are coming soon.&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Syntax highlighting&#039;&#039;&#039; for &#039;&#039;&#039;MMS&#039;&#039;&#039;, &#039;&#039;&#039;CLD&#039;&#039;&#039;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&lt;br /&gt;
* &#039;&#039;&#039;Code autocompletion&#039;&#039;&#039; for &#039;&#039;&#039;MSG&#039;&#039;&#039; and &#039;&#039;&#039;CLD&#039;&#039;&#039; files.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This guide will help you install the VMS IDE extension and start working on your projects.&lt;br /&gt;
&lt;br /&gt;
===Quick Start===&lt;br /&gt;
* [[VMS_IDE_Installation|Installation]]&lt;br /&gt;
* [[VMS_IDE_Project_Configuration|Setting up VMS Project]]&lt;br /&gt;
* [[VMS_IDE_Developing|Working on VMS Project]]&lt;br /&gt;
&lt;br /&gt;
===Commands===&lt;br /&gt;
* [[VMS_IDE_Commands|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
* [[VMS_IDE_Project_Explorer|Project Explorer]]&lt;br /&gt;
* [[VMS_IDE_Debugger|Debugger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=702</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=702"/>
		<updated>2019-04-16T09:38:20Z</updated>

		<summary type="html">&lt;p&gt;Brett.cameron: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:center;vertical-align:top;background-color:white;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;text-align:center; background-color:#067ACC;color:white;height:50px;width:550px;&amp;quot;  | This material is under construction. The VS Code extensions are coming soon.&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Syntax highlighting&#039;&#039;&#039; for &#039;&#039;&#039;MMS&#039;&#039;&#039;, &#039;&#039;&#039;CLD&#039;&#039;&#039;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&lt;br /&gt;
* &#039;&#039;&#039;Code autocompletion&#039;&#039;&#039; for &#039;&#039;&#039;MSG&#039;&#039;&#039; and &#039;&#039;&#039;CLD&#039;&#039;&#039; files.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This guide will help you install VMS IDE extension and start working on your projects.&lt;br /&gt;
&lt;br /&gt;
===Quick Start===&lt;br /&gt;
* [[VMS_IDE_Installation|Installation]]&lt;br /&gt;
* [[VMS_IDE_Project_Configuration|Setting up VMS Project]]&lt;br /&gt;
* [[VMS_IDE_Developing|Working on VMS Project]]&lt;br /&gt;
&lt;br /&gt;
===Commands===&lt;br /&gt;
* [[VMS_IDE_Commands|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
* [[VMS_IDE_Project_Explorer|Project Explorer]]&lt;br /&gt;
* [[VMS_IDE_Debugger|Debugger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Brett.cameron</name></author>
	</entry>
</feed>