<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=IFREAD_%28HLI_function%29</id>
	<title>IFREAD (HLI function) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=IFREAD_%28HLI_function%29"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFREAD_(HLI_function)&amp;action=history"/>
	<updated>2026-06-02T18:39:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFREAD_(HLI_function)&amp;diff=93210&amp;oldid=prev</id>
		<title>ELowell at 19:33, 13 July 2016</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFREAD_(HLI_function)&amp;diff=93210&amp;oldid=prev"/>
		<updated>2016-07-13T19:33:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:33, 13 July 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The conventions used on this page are described in [[HLI: Function &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;call list&lt;/del&gt;#Function call notation conventions|Function call notation conventions]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The conventions used on this page are described in [[HLI: Function &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;summary&lt;/ins&gt;#Function call notation conventions|Function call notation conventions]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFREAD_(HLI_function)&amp;diff=88837&amp;oldid=prev</id>
		<title>ELowell at 22:52, 11 July 2016</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFREAD_(HLI_function)&amp;diff=88837&amp;oldid=prev"/>
		<updated>2016-07-11T22:52:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:52, 11 July 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The conventions used on this page are described in [[HLI: Function call list#Function call notation conventions|Function call notation conventions]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFREAD_(HLI_function)&amp;diff=87592&amp;oldid=prev</id>
		<title>ELowell: Created page with &quot; ==Summary== &lt;dl&gt; &lt;dt&gt;Description&lt;/dt&gt; &lt;dd&gt;The IFREAD call (READ) obtains a line of output from Model 204.&lt;/dd&gt; &lt;dt&gt;Thread type&lt;/dt&gt; &lt;dd&gt;IFDIAL&lt;/dd&gt; &lt;dt&gt;IFCALL function number...&quot;</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFREAD_(HLI_function)&amp;diff=87592&amp;oldid=prev"/>
		<updated>2016-07-08T17:03:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; ==Summary== &amp;lt;dl&amp;gt; &amp;lt;dt&amp;gt;Description&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;The IFREAD call (READ) obtains a line of output from Model 204.&amp;lt;/dd&amp;gt; &amp;lt;dt&amp;gt;Thread type&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;IFDIAL&amp;lt;/dd&amp;gt; &amp;lt;dt&amp;gt;IFCALL function number...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Summary==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Description&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The IFREAD call (READ) obtains a line of output from Model 204.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Thread type&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;IFDIAL&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;IFCALL function number&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;9&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;IFREAD(RETCODE,LINE_AREA,MSG_DESC,LINE_LEN)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Compile-only form&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Not available&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Execute-only form&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Not available&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the parameters in the syntax order shown above.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Parameter&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;RETCODE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[O,i,r] The Model 204 return code is the required output parameter. The code is a binary integer value.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LINE_AREA&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[O,c,r] The line area is a required output parameter that is set to the output line from Model 204.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If Model 204 generates a logical line of output that is longer than a connection&amp;#039;s line size, the logical line is broken into two or more physical lines that do not exceed the connection&amp;#039;s line size. A hyphen (-) is placed in the continuation character position of each continued line and a completion code of 2 is returned until the entire logical line has been transmitted.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For example, suppose that the line size was set to 4 and Model 204 is to print the string ABCDEFGH. Three calls to IFREAD are required, as summarized below:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Programs using a language indicator of 2, for example, COBOL and FORTRAN, must blank out the line area before each call to IFREAD. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MSG_DESC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[O,i,o] The message descriptor is an optional output parameter. Model 204 returns the descriptor as an integer value in the following format:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;Bytes 0 and 1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Contain the message length +4, in binary.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Byte 2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Is a bit string that describes the message returned in LINE_AREA.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Byte 3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Reserved&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since the bits can be used in combination, host language programs should test the bits individually. The bits for byte 2 are summarized below.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Bit 0 (X&amp;#039;80&amp;#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If one, output is a class E message.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Bit 1 (X&amp;#039;40&amp;#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If one, output begins a new page.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Bit 2 (X&amp;#039;20&amp;#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If one, user is being restarted.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Bit 3 (X&amp;#039;10&amp;#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If one, output is a nondisplay input prompt.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Bit 4 (X&amp;#039;08&amp;#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If one, output is a $READ prompt.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Bit 5 (X&amp;#039;04&amp;#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If one, output is a class I message or any other special message such as a broadcast or file open message.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Bits 6 and 7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Reserved&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;LINE_LEN&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LINE_LEN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[I,i,o] The line length is an optional input parameter that specifies the transfer length for IFREAD.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This parameter determines the maximum line length for the IFREAD call. If this parameter is present, it overrides any value specified on IFDIAL or IFDIALN. For PL/1, the length is the minimum of this value plus the string length. See [[#Transfer length for output from Model 204|Transfer length for output from Model 204]] for more information about the IFREAD line length.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Use the IFREAD call only with an IFDIAL connection to receive data from Model 204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See [[HLI: IFDIAL processing#Sample subroutine to convert IFREAD flags|Sample subroutine to convert IFREAD flags]] for a coding example of a subroutine that translates the message descriptor (MSG_DESC) values returned by Model 204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You can specify a different buffer length with each call by specifying the line length in IFREAD. See the next page for detailed information about the IFREAD line length. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Completion return code (RETCODE)==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Code your IFDIAL application to check the return code for the following values: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Code&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Required action&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Call IFWRITE next to provide Model 204 with input.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Call IFREAD next to get more output from Model 204.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[HLI: IFDIAL processing|IFDIAL processing]] for more information about coding IFDIAL applications.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the IFREAD call is unsuccessful, Model 204 returns an error code for either of the following error conditions: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Code&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Condition&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;12&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No output ready from Model 204 call IFWRITE to provide more input. In this case, the answer area is not altered. IFREAD call not accepted (IFWRITE call expected).&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;100&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No current Model 204 connection exists or the connection is lost.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transfer length for output from Model 204==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The parameters in effect during the execution of the IFREAD call determine the length of data transferred from Model 204 and the actions taken when the receiving area is a different size than the Model 204 output line. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following factors determine the length: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The first factor is PL/1 string length; for PL/1 compilers (F-level, Optimizer and Checkout) use a dope vector when passing character string arguments. This dope vector contains the maximum length of the string and its address. For strings declared as VARYING, it also contains the current length.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Additionally, the transfer length for output from Model 204; this value is based on the following order of precedence, from highest to lowest: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The optional length parameter in the IFREAD call. The HLI application program may optionally specify a buffer length in the IFREAD call (see the [[#LINE_LEN|LINE_LEN parameter]]) which is different from the CRAM buffer size returned by the IFDIAL or IFDIALN call.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For PL/1, if this length is greater than the maximum string length, the maximum string length is used. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This value is in effect only for this specific IFREAD call.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The optional default length parameter in the IFDIAL call; this new default remains in effect until IFHNGUP is called.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For PL/1, if this length is greater than the maximum string length, the string length is used.&amp;lt;/p&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The standard default length, which is set relative to the host language (that is, the language indicator parameter specified in the IFDIAL or IFDIALN call); Model 204 uses either of the following lengths:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;252 for COBOL, FORTRAN, and Assembler &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PL/1 maximum string length (dope vector) &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The maximum length of a data area that can be transferred over an IFDIAL thread is 32763 bytes. For more information about buffer size parameters, see [[Defining the runtime environment (CCAIN)]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==When transfer length differs from output line size==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The maximum length of data that can be transferred is a result of the transfer length. If this value is different than the actual Model 204 output line size, truncation or padding may occur. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; For all languages, when the output transfer length is less than the Model 204 output line size, Model 204 truncates the data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
However, if the transfer length is greater than the output line size, Model 204 performs either of the following actions: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
For COBOL, FORTRAN, and PL/1 fixed string areas, pads the remaining area with spaces. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
For PL/1, Model 204 sets the current string length to the output line size. The remaining answer area is unchanged. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview of IFREAD data transfer==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following table summarizes the relationship between the parameters that determine the IFREAD data transfer length and the actions taken by Model 204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The table uses the following codes: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Lang=&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt;, which is the language indicator specified in the IFDIAL or IFDIALN call. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;LENGTH1, which is the default length parameter in the IFDIAL call. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;LENGTH2, which is the length parameter in the IFREAD call. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FIXED, which is a PL/1 string argument that is declared as fixed. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;VARYING, which is a PL/1 string argument that is declared as varying.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MAXLEN, which is the maximum length of the PL/1 string. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Pad, which indicates that Model 204 pads the remaining answer area with spaces.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set length, which indicates that PL/1 string length field (CURRLEN) is set to the Model 204 output line size, and the remaining answer area is unchanged. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;caption&amp;quot;&amp;gt;IFREAD data transfer length&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;1&amp;quot; colspan=&amp;quot;4&amp;quot;&amp;gt;Parameters in effect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot; colspan=&amp;quot;1&amp;quot;&amp;gt;Transfer length&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot; colspan=&amp;quot;1&amp;quot;&amp;gt;Action&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;1&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;IFDIAL&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;1&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;IFREAD&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Lang=1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;min(LENGTH2,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
min(LENGTH1,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
min(LENGTH2,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
MAXLEN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Set length&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Lang=2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH2 &amp;lt;br /&amp;gt;&lt;br /&gt;
252&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pad&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Lang=3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH2, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH2, &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH2, &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;FIXED &amp;lt;br /&amp;gt;&lt;br /&gt;
FIXED &amp;lt;br /&amp;gt;&lt;br /&gt;
FIXED &amp;lt;br /&amp;gt;&lt;br /&gt;
FIXED&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;min(LENGTH2,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
min(LENGTH1,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
min(LENGTH2,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
MAXLEN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pad&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Lang=3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;#172;LENGTH1&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH2, &amp;lt;br /&amp;gt;	&lt;br /&gt;
&amp;amp;#172;LENGTH2, &amp;lt;br /&amp;gt;	&lt;br /&gt;
LENGTH2, &amp;lt;br /&amp;gt;	&lt;br /&gt;
&amp;amp;#172;LENGTH2,&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;VARYING &amp;lt;br /&amp;gt;&lt;br /&gt;
VARYING &amp;lt;br /&amp;gt;&lt;br /&gt;
VARYING &amp;lt;br /&amp;gt;&lt;br /&gt;
VARYING&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;min(LENGTH2,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
min(LENGTH1,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
min(LENGTH2,MAXLEN) &amp;lt;br /&amp;gt;&lt;br /&gt;
MAXLEN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Set length&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Legend: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;LENGTH&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Parameter was specified&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;#172;LENGTH&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Parameter was not specified&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;min(&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;l&amp;lt;/var&amp;gt;,&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;m&amp;lt;/var&amp;gt;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Transfer length is determined to be the minimum value of &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;l&amp;lt;/var&amp;gt; and &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;m&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding example (Assembler)==&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
  CALL IFDIAL...&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
  CALL IFWRITE...&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
  MVC     RLEN(4),=F&amp;#039;30&amp;#039;&lt;br /&gt;
  CALL    IFREAD,(RETCODE,INPUT,MDF,RLEN),VL&lt;br /&gt;
  CLI     MDF+2,X&amp;#039;14&amp;#039;  DO WE NEED A PASSWORD&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
RETCODE    DC   F&amp;#039;0&amp;#039;&lt;br /&gt;
INPUT      DC   CL30&amp;#039; &amp;#039;&lt;br /&gt;
MDF        DS   0F&lt;br /&gt;
MDFLEN     DS   H&lt;br /&gt;
MDFTYPE    DS   BL2      X&amp;#039;80&amp;#039;=CLASS E ERROR MESSAGE&lt;br /&gt;
*                        X&amp;#039;40&amp;#039;=NEW PAGE&lt;br /&gt;
*                        X&amp;#039;20&amp;#039;=RESTART&lt;br /&gt;
*                        X&amp;#039;10&amp;#039;=PASSWORD PROMPT&lt;br /&gt;
*                        X&amp;#039;08&amp;#039;=$READ PROMPT&lt;br /&gt;
*                        X&amp;#039;04&amp;#039;=CLASS I MESSAGE&lt;br /&gt;
RLEN        DC  F&amp;#039;0&amp;#039;&lt;br /&gt;
  END  &amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: HLI functions]]&lt;/div&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
</feed>