<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://try-as400.pocnet.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mlc</id>
	<title>Try-AS/400 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://try-as400.pocnet.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mlc"/>
	<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/wiki/Special:Contributions/Mlc"/>
	<updated>2026-05-05T20:57:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Apple_SNA%E2%80%A2ps&amp;diff=1313</id>
		<title>Apple SNA•ps</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Apple_SNA%E2%80%A2ps&amp;diff=1313"/>
		<updated>2023-05-14T19:40:35Z</updated>

		<summary type="html">&lt;p&gt;Mlc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Apple SNAps Carton.jpg|thumb|right|Package]]&lt;br /&gt;
[[File:5250term.gif|thumb|right|Active 5250 client connection]]&lt;br /&gt;
[[File:Snagw-run.gif|thumb|right|SNA•ps Gateway information windows]]&lt;br /&gt;
&#039;&#039;&#039;Apple SNA•ps&#039;&#039;&#039; is an application software package for Apple Macintosh computers running System 7. Its purpose is to provide Macintosh users access to resources located on IBM Midrange and Mainframe computers. It is the result of a collaboration between Apple and IBM in the early 1990s and has been developed by Orion Software. SNA•ps is short for &#039;&#039;Systems Networking Architecture protocols and services&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
SNA•ps uses IBMs proprietary &#039;&#039;Systems Network Architecture&#039;&#039; family of network protocols to talk to the IBM side of affairs,&amp;lt;ref&amp;gt;Newer versions of the SNA•ps 5250 client also support IP/tn5250 as alternate network transport.&amp;lt;/ref&amp;gt; and Apple’s proprietary AppleTalk on the Macintosh side.&lt;br /&gt;
&lt;br /&gt;
So far, only two publicly available releases are known: version 1.1 from 1992, and version 2.0.1 from 1994. The beta-level release of SNA•ps 1.1 was available during 1991 and was the primary testing level for the &#039;&#039;IBM/Apple IBM Enterprise Networking Guide for SNA Products&#039;&#039; guide.&lt;br /&gt;
&lt;br /&gt;
The main differences between version 1.0, and version 1.1 are the introduction of 3287 printer emulation, and 16&amp;amp;thinsp;Mbps Token Ring support.&lt;br /&gt;
&lt;br /&gt;
SNA•ps comprises of a client and server component. Both can run on the same Macintosh computer, though.&lt;br /&gt;
* &#039;&#039;Gateway&#039;&#039; software with a license dependent maximum count of&lt;br /&gt;
** 8, 32, or 64 [https://en.wikipedia.org/wiki/IBM_Systems_Network_Architecture#Logical_Unit_.28LU.29 LU]-sessions for version 1.1&lt;br /&gt;
** 10, 40, or 70 LU-sessions for version 2.0.1&lt;br /&gt;
* &#039;&#039;Gateway Client&#039;&#039;&amp;lt;ref&amp;gt;Designated &#039;&#039;GC&#039;&#039; in product descriptions.&amp;lt;/ref&amp;gt; for 3270 and 5250 terminal services, as well as printing services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; Further restrictions in terms of session count may apply depending on selected transport option technology, and available memory on said transport option.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This article focuses on AS/400 and thus on 5250 connectivity. Since the AS/400 platform also has 3270 compatibility support, the SNA•ps 3270 client for 3270 sessions can be used when required. See below for Macintosh System Software version requirements.&lt;br /&gt;
&lt;br /&gt;
Different versions of &#039;&#039;SNA•ps&#039;&#039; are available on Apple’s [https://macintoshgarden.org/apps/apple-cdsn-computers-connectivity-demonstration-and-support-network-reference-cd &#039;&#039;Computer&#039;s Connectivity Demonstration and Support Network&#039;&#039; Reference CD] at Macintosh Garden. Note that version 2.0.1 requires a serial number to be entered at install time.&lt;br /&gt;
&lt;br /&gt;
== General overview ==&lt;br /&gt;
The &#039;&#039;SNA•ps Gateway&#039;&#039; makes resources provided by the mainframe or the AS/400 via [https://en.wikipedia.org/wiki/IBM_Systems_Network_Architecture#Physical_Unit_.28PU.29 SNA PUs]/LUs or [https://en.wikipedia.org/wiki/IBM_Advanced_Peer-to-Peer_Networking APPN]/[https://en.wikipedia.org/wiki/IBM_Advanced_Program-to-Program_Communication APPC] available to AppleTalk connected Macs. This means that an (expensive) card for connecting to the mainframe does not have to be installed in every Mac, but one can be shared by many users. Also, adding such a card is not possible in some cases: Compact Macs like the Mac Plus or Mac SE have no or only limited expansion options. In addition, the required network cabling may not exist.&lt;br /&gt;
&lt;br /&gt;
Examples of clients are the terminal emulations [https://en.wikipedia.org/wiki/IBM_3270 3270], and [https://en.wikipedia.org/wiki/IBM_5250 5250]). These allow Macs that are connected to the [https://en.wikipedia.org/wiki/AppleTalk AppleTalk] network (e.&amp;amp;thinsp;g. via [https://en.wikipedia.org/wiki/LocalTalk LocalTalk]) to establish terminal sessions to a SNA host.&lt;br /&gt;
&lt;br /&gt;
An example of reverse direction is printing support. The &#039;&#039;SNA•ps Print&#039;&#039; client emulates an IBM 8312 printer. Print jobs spooled into a printer queue on the AS/400 are picked up by &#039;&#039;SNA•ps Print&#039;&#039;, to be printed using the default (AppleTalk) printer, set in the [https://en.wikipedia.org/wiki/Chooser_(Mac_OS) Chooser], or saved as text in a file.&amp;lt;br&amp;gt;&lt;br /&gt;
This was a way of making the Apple [https://en.wikipedia.org/wiki/LaserWriter LaserWriter] usable from midrange, and indirectly from mainframe computers. The LaserWriter was very expensive at its introduction time.&lt;br /&gt;
&lt;br /&gt;
The counterpart to the &#039;&#039;SNA•ps Gateway&#039;&#039; is a system extension called &#039;&#039;SNA•ps Access&#039;&#039;. Client applications use API routines provided by this extension. The SNA•ps API can also be used by third parties; examples have been published by Apple through their developer CDs. An example of this is [https://en.wikipedia.org/wiki/Database_abstraction_layer DAL] for the Macintosh. It can utilize several ways to connect to the actual database; such as IP (via MacTCP) and SNA (via SNA•ps Access).&lt;br /&gt;
&lt;br /&gt;
In the 1990s, IBM made LocalTalk add-on cards for the AS/400, and additional software for OS/400 to implement the AppleTalk protocol stack on the AS/400 as well. The implementation on the AS/400 corresponded to the SNA•ps gateway, so that no Mac was required as a gateway: the necessary software ran only on the AS/400.&lt;br /&gt;
&lt;br /&gt;
== System compatibility ==&lt;br /&gt;
The SNA•ps 5250 client requires System 7.0 or higher. Launching it on System 6 gets you a corresponding error message, and the client does not open. Saying that, the 3270 terminal client officially runs under System 6.0.5, and later, though.&lt;br /&gt;
&lt;br /&gt;
The client works on Mac operating system versions up to, and including 8.1. OpenTransport compatibility seems sufficient to support that old software without changes. The client crashes upon connecting via a SNA•ps gateway when ran on PowerPC Macs, though.&lt;br /&gt;
&lt;br /&gt;
A connection via TCP (possible with client version 1.1) provokes the message that the other party doesn’t use the 5250 protocol. This is reproducible under System 7.6.1/OT/PPC as well as under 7.1/MacTCP/68k. Reasons are unknown.&lt;br /&gt;
&lt;br /&gt;
The gateway software requires special hardware for the SNA network connection and is therefore limited to NuBus systems. Documentation states, the gateway needs at least System 7.0 to run. This has not yet been verified. Testing of the gateway software on the first generation NuBus equipped PowerMacs also hasn’t been done, yet.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
Comfortable performance can be attained by running at least the client on 68040 equipped Macs, connected to the gateway through Ethernet.&amp;lt;ref&amp;gt;AppleTalk and IP performance for AFP transfers over the &#039;&#039;Apple Token Ring 4/16 NB Card&#039;&#039; do not exceed 200&amp;amp;thinsp;kiB/s. In this regard, attainable performance is less than optimal.&amp;lt;/ref&amp;gt; This provides answer times of less than a second, e.&amp;amp;thinsp;g. when scrolling through help texts, etc. Measuring of answer times for the gateway running on different classes Macs has not been done, yet.&lt;br /&gt;
&lt;br /&gt;
Running the client on Low End Macs such as the SE/30 yields answer times of around two seconds. All in all, fluid work is not attainable. Comparing LocalTalk and Ethernet with the SE/30 shows no significant differences in answer time, hinting towards the network not being the bottleneck.&lt;br /&gt;
&lt;br /&gt;
== Network transport options ==&lt;br /&gt;
The following options to connect to IBM machinery are supported in general:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Phy&lt;br /&gt;
! Hardware&lt;br /&gt;
|-&lt;br /&gt;
|Serial/SDLC&lt;br /&gt;
|Apple Serial NB Card&lt;br /&gt;
|-&lt;br /&gt;
|Token Ring&lt;br /&gt;
|Apple Token Ring 4/16 NB Card, Apple TokenTalk NB Card&amp;lt;ref&amp;gt;This is a pure 4&amp;amp;thinsp;Mbps card, but already designed according to MCP specs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;s&amp;gt;Twinax&amp;lt;/s&amp;gt;&amp;lt;ref&amp;gt;5250 sessions over Twinax are not supported. Implementation was planned, but never was put into code before development ceased. The Enterprise Networking Guide mentions third party products having been &#039;&#039;available which can utilize the twinax feature on this adapter.&#039;&#039;&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Apple Coax/Twinax Card&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All of these cards feature their own 68000 CPU, and local memory. They conform to the &#039;&#039;Macintosh Coprocessor Platform&#039;&#039; specification. A more or less small process runs on the card, which exchanges data via message passing with its counterpart &#039;&#039;A/ROSE&#039;&#039; in the Mac OS.&lt;br /&gt;
&lt;br /&gt;
As a novel feature, part of the &#039;&#039;SNA•ps&#039;&#039; gateway software runs on the processor of the respective MCP card. Along with the rest of the software running on the Mac’s main CPU, APPC sessions are encapsulated in AppleTalk, and available to other Macs connected to the network, including LocalTalk. The minimum amount of memory for SNA•ps use is 1&amp;amp;thinsp;MB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Apple-Token-Ring-NB-Compside.jpg|Apple Token Ring 4/16 NB card, front&lt;br /&gt;
File:Apple-Token-Ring-NB-Solderside.jpg|Apple Token Ring 4/16 NB card, back&lt;br /&gt;
File:Apple-Coax-Twinax-Compside.jpg|Apple Coax/Twinax card, front&lt;br /&gt;
File:Apple-Coax-Twinax-Solderside.jpg|Apple Coax/Twinax card, back&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I do not own an Apple Serial NB card, yet.&lt;br /&gt;
&lt;br /&gt;
== AS/400 configuration ==&lt;br /&gt;
On the AS/400 side, autoconfiguration for controller, and device descriptions should&amp;amp;nbsp;— at least temporarily&amp;amp;nbsp;— be allowed. See the &amp;lt;code&amp;gt;WRKSYSVAL&amp;lt;/code&amp;gt; command and the &#039;&#039;QAUTOCFG&#039;&#039;, &#039;&#039;QAUTORMT&#039;&#039; and &#039;&#039;QAUTOVRT&#039;&#039; variables. Maybe also adjust the variables &#039;&#039;QLMTDEVSSN&#039;&#039; and &#039;&#039;QLMTSECOFR&#039;&#039;. See help texts for details.&lt;br /&gt;
&lt;br /&gt;
A working Token Ring connection is also required. In its line description, the &#039;&#039;AUTOCRTCTL&#039;&#039; parameter should (temporarily) be set to &#039;&#039;*YES&#039;&#039;. It is recommended that the associated &#039;&#039;AUTODLTCTL&#039;&#039; parameter be set to &#039;&#039;*NONE&#039;&#039; if &amp;lt;code&amp;gt;AUTOCRTCTL(*YES)&amp;lt;/code&amp;gt; is to be retained.&lt;br /&gt;
&lt;br /&gt;
This preparation saves the tedious and error-prone configuration of the OS/400 controller (*CTLD) and device (*DEVD) descriptions for communication with the gateway on the Mac side.&lt;br /&gt;
&lt;br /&gt;
In addition, the &#039;&#039;IBM/Apple IBM Enterprise Networking Guide&#039;&#039; contains detailed configuration for configuring 3270 sessions to an AS/400 starting page 30 (PDF page 40).&lt;br /&gt;
&lt;br /&gt;
== Gateway configuration ==&lt;br /&gt;
[[File:Cfg-snaps.gif|thumb|right|Overview of the filled configuration window]]&lt;br /&gt;
The configuration is created with the &#039;&#039;SNA•ps Config&#039;&#039; program and built layer by layer.&lt;br /&gt;
&lt;br /&gt;
It is easily possible to configure several AS/400 peers in one configuration document. To do this, each machine must have its own definitions created for&lt;br /&gt;
* Lines,&lt;br /&gt;
* Partners,&lt;br /&gt;
* Remote 6.2 LUs,&lt;br /&gt;
* Modes.&lt;br /&gt;
&lt;br /&gt;
Contrary, &#039;&#039;Local 6.2 LUs&#039;&#039; und &#039;&#039;Transaction Points&#039;&#039; apply to all configured peers.&lt;br /&gt;
&lt;br /&gt;
If several AS/400’s are already internetworked via APPN, the gateway configuration can be made much easier. Just configure the AS/400 designated as APPN &#039;&#039;Network Node&#039;&#039; as partner connection. APPC sessions originating on the Macs are forwarded by the gateway to the (directly adjacent) Network Node AS/400. This one in turn forwards the LU sessions to the destination machines.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that the &#039;&#039;Network Node&#039;&#039; machine needs to have adjacencies to the desired other machines for this to work. SNA•ps can only use connections being already configured.&lt;br /&gt;
&lt;br /&gt;
=== Lines ===&lt;br /&gt;
[[File:Cfg-line.gif|thumb|right|Line configuration]]&lt;br /&gt;
First, the Line configuration needs to be created. The name can be chosen relatively freely.&amp;lt;ref&amp;gt;Only CAPS, may not start with a number, and may only contain these special chars: #$_&amp;lt;/ref&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Increasing the &#039;&#039;Maximum I-Field Length&#039;&#039; parameter increases the data throughput and thus the speed at which data is forwarded through the gateway. The highest accepted value is 4105 bytes. Use of the maximum value is recommended. The line description of the AS/400&amp;amp;nbsp;— corresponding to the line configuration of SNA•ps&amp;amp;nbsp;— usually contains 16393 bytes. The actual value used is negotiated dynamically at session establishment time.&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default values.&lt;br /&gt;
&lt;br /&gt;
=== Partners ===&lt;br /&gt;
[[File:Cfg-peer.gif|thumb|right|Partner configuration]]&lt;br /&gt;
As long as the just created &#039;&#039;line&#039;&#039; is highlighted, the description for the actual network connection to the AS/400 can be defined in the &#039;&#039;partners&#039;&#039; field next to it.&amp;lt;br&amp;gt;&lt;br /&gt;
The following table shows parameters of the &#039;&#039;partner&#039;&#039; configuration and the related parameters on the AS/400:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Partner setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|Name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|Naming restrictions as in the line configuration apply.&lt;br /&gt;
|-&lt;br /&gt;
|Link Address&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPLIND&amp;lt;/code&amp;gt;, local adapter address (ADPTADR)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Partner XID&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPLIND&amp;lt;/code&amp;gt;, exchange identifier (EXCHID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Gateway XID&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Generate yourself. Has to start with &#039;&#039;056&#039;&#039;, and must be unique at least on both sides of the adjacency-link.&amp;lt;ref&amp;gt;This value is copied to the AS/400’s controller description at the connection’s first start by auto configuration.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;XID exchanges stay local to directly adjacent hosts, thus XID duplicates should not matter network-wide.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Gateway Network Name&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Generate yourself. You can probably use the name from the &#039;&#039;Sharing&#039;&#039; control panel. Naming restrictions as in the line configuration apply.&lt;br /&gt;
|-&lt;br /&gt;
|Gateway Network Qualifier&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other necessary &#039;&#039;Characteristics&#039;&#039; settings are:&lt;br /&gt;
* Peer: Set to Node Type 2.1,&lt;br /&gt;
* SAP address, (remains at) 4.&lt;br /&gt;
&lt;br /&gt;
=== Local 6.2 LUs ===&lt;br /&gt;
[[File:Cfg-loclu.gif|thumb|right|Local 6.2 LUs]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!LU setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|Name&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Must be &#039;&#039;PASSTHRU&#039;&#039;. Corresponds to the &#039;&#039;SNA•ps Access&#039;&#039; Control Panel setting on the SNA•ps clients.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;Network LU Name&#039;&#039;&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Desired name for the gateway on the APPN network. Naming restrictions as in the line configuration apply.&lt;br /&gt;
|-&lt;br /&gt;
|Network Qualifier&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transaction points (TPs) ===&lt;br /&gt;
[[File:Cfg-tp.gif|thumb|right|Transaction Points]]&lt;br /&gt;
The &#039;&#039;Local 6.2 LU&#039;&#039; just defined must be highlighted so a new &#039;&#039;transaction point&#039;&#039; can be created.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!TP setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|Name&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Must be &#039;&#039;*&#039;&#039; (asterisk).&lt;br /&gt;
|-&lt;br /&gt;
|Network LU name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Network name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default.&lt;br /&gt;
&lt;br /&gt;
=== Remote 6.2 LUs ===&lt;br /&gt;
[[File:Cfg-remlu.gif|thumb|right|Remote 6.2 LUs]]&lt;br /&gt;
The &#039;&#039;partner&#039;&#039; created above must be highlighted in order to create an associated LU configuration.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!LU setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|Name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Network LU name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Network Qualifier&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default.&lt;br /&gt;
&lt;br /&gt;
If you have more than one AS/400 in an APPN network, just add the corresponding LU names and Network Qualifiers from the other AS/400’s in the same manner. This enables session forwarding by the &#039;&#039;Network Node&#039;&#039; AS/400 as described above.&lt;br /&gt;
&lt;br /&gt;
=== Modes ===&lt;br /&gt;
[[File:Cfg-mode.gif|thumb|right|APLSNAPS mode description]]&lt;br /&gt;
The Remote 6.2 LU(s) created above must be highlighted in order to create an associated mode description.&lt;br /&gt;
&lt;br /&gt;
Since there is no &#039;&#039;good enough&#039;&#039; mode description on the AS/400 by default, create a custom mode &#039;&#039;APLSNAPS&#039;&#039;:&lt;br /&gt;
 CRTMODD MODD(APLSNAPS) COS(#CONNECT) MAXSSN(32) MAXCNV(32) LCLCTLSSN(0) INPACING(7) OUTPACING(7) TEXT(&#039;For Apple SNA.ps&#039;)&lt;br /&gt;
&lt;br /&gt;
Now, set the values of the fields on the right side in the &#039;&#039;Characteristics&#039;&#039; pane in the Window as follows:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Mode setting&lt;br /&gt;
!Value&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
|-&lt;br /&gt;
|Maximum Sessions&lt;br /&gt;
|32&lt;br /&gt;
|Maximum sessions (MAXSSN)&lt;br /&gt;
|-&lt;br /&gt;
|Contention Winner&lt;br /&gt;
|32&lt;br /&gt;
|Maximum conversations (MAXCNV)&lt;br /&gt;
|-&lt;br /&gt;
|Prebound Sessions&lt;br /&gt;
|0&lt;br /&gt;
|Pre-established sessions (PREESTSSN)&lt;br /&gt;
|-&lt;br /&gt;
|Send Pacing&lt;br /&gt;
|7&lt;br /&gt;
|Inbound pacing value (INPACING)&lt;br /&gt;
|-&lt;br /&gt;
|Receive Pacing&lt;br /&gt;
|7&lt;br /&gt;
|Outbound pacing value (OUTPACING)&lt;br /&gt;
|-&lt;br /&gt;
|Maximum RU Upper&lt;br /&gt;
|4096&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Maximum RU Lower&lt;br /&gt;
|256&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Modes aren’t shared. For each remote LU, you need to re-enter the values outlined above.&lt;br /&gt;
&lt;br /&gt;
It may happen that the gateway refuses to start because it claims there would not enough memory (on the MCP card). Recommended action is to lower &#039;&#039;Maximum Sessions&#039;&#039;, and &#039;&#039;Contention Winner&#039;&#039; settings locally, and on the AS/400 with the &amp;lt;code&amp;gt;CHGMODD&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
== Gateway Activation ==&lt;br /&gt;
After the gateway configuration has been saved, it is assigned to the existing physical connection using the &#039;&#039;SNA•ps Admin&#039;&#039; application. Launch it. The &#039;&#039;Network Gateway Status&#039;&#039; window appears. One line is displayed for each SNA capable card in the Mac, as shown in the second screen shot above.&lt;br /&gt;
&lt;br /&gt;
Highlight the desired card’s entry, and choose &#039;&#039;Select configuration…&#039;&#039; from the &#039;&#039;Gateway&#039;&#039; menu. Use the dialog box to locate and select the configuration file you&#039;ve created and saved before.&amp;lt;br&amp;gt;&lt;br /&gt;
In the same menu, select &#039;&#039;Change Settings …&#039;&#039; and&lt;br /&gt;
* probably assign a nicer AppleTalk name to the gateway, and&lt;br /&gt;
* in &#039;&#039;Characteristics&#039;&#039; tick all checkboxes except &#039;&#039;Initially Log Line Trace&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The gateway can then be started in the Gateway menu with &#039;&#039;Start Gateway …&#039;&#039;. A dialog window is shown with a summary. Click &#039;&#039;Start&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; It has been shown that&amp;amp;nbsp;— at least with &#039;&#039;SNA•ps Gateway&#039;&#039; version 1.1&amp;amp;nbsp;— trying out configuration settings with manual stop and start sometimes provokes the message that there is insufficient memory. This statement refers to the memory on the corresponding MCP card. Apparently, resources there are not reliably freed. After restarting the computer, the error message is gone.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also in the &#039;&#039;Gateway&#039;&#039; menu, an overview of the available resources can now be displayed with &#039;&#039;Show Gateway …&#039;&#039;. An example can be seen in the second screen shot above.&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
These screenshots show examples of all entities being displayed in short in the &#039;&#039;Show Gateway…&#039;&#039; window, in the second screen shot above.&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot;&amp;gt;&lt;br /&gt;
File:Stat-line.gif&lt;br /&gt;
File:Stat-peer.gif&lt;br /&gt;
File:Stat-loclu.gif&lt;br /&gt;
File:Stat-tp.gif&lt;br /&gt;
File:Stat-remlu.gif&lt;br /&gt;
File:Stat-mode-snasvcmg.gif&lt;br /&gt;
File:Stat-mode-aplsnaps.gif&lt;br /&gt;
File:Stat-sess-snasvcmg.gif&lt;br /&gt;
File:Stat-sess-aplsnaps.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Client configuration: SNA•ps 5250 ==&lt;br /&gt;
In the &#039;&#039;SNA•ps Access/5250&#039;&#039; control panel, switch to &#039;&#039;Virtual Controller&#039;&#039; in the &#039;&#039;Display Configuration&#039;&#039;. The controller name is usually &#039;&#039;QPACTL01&#039;&#039;; the default entry has way too many zeros. Close the control panel to save the changes.&lt;br /&gt;
&lt;br /&gt;
[[File:Dft-connsel.gif|right|thumb|Dialog window to select a default session ]]&lt;br /&gt;
The minimal client configuration just requires the selection of the default connection in the &#039;&#039;Pref(erence)s&#039;&#039; menu. Alternatively, the desired session can be configured directly in the client: Menu &#039;&#039;Session&#039;&#039; → &#039;&#039;Connection …&#039;&#039;. Both ways show a dialog window to select a gateway resource in the AppleTalk network.&lt;br /&gt;
&lt;br /&gt;
Finally, the connection to the SNA gateway selected above is established by selecting &#039;&#039;Connect&#039;&#039; from the &#039;&#039;Session&#039;&#039; menu. After a few seconds, the familiar AS/400 sign-on screen should appear.&lt;br /&gt;
&lt;br /&gt;
Other parameters can then also be set: Larger font for large monitors, alternative key assignments for small Mac keyboards: the numeric keypad is ideal here as a substitute for the lack of function keys, etc. The settings then can be saved in a connection document. When opening such a document, the session is established automatically.&lt;br /&gt;
&lt;br /&gt;
All other settings can be made according to taste.&lt;br /&gt;
&lt;br /&gt;
== Client configuration: SNA•ps Print ==&lt;br /&gt;
Before using this function, a printer on the AS/400 must be configured in the &#039;&#039;SNA•ps Access&#039;&#039; control panel.&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;Printer Configuration&#039;&#039; section of the Control Panel, click &#039;&#039;Printer Device List…&#039;&#039; and type in a valid AS/400 style print queue name. This name should &#039;&#039;&#039;not&#039;&#039;&#039; exist on the AS/400, it will be automatically created with the correct settings.&lt;br /&gt;
&lt;br /&gt;
Close the control panel to save the settings. If you get an error message stating the control panel can&#039;t be opened, you probably have the &#039;&#039;SNA•ps 5250&#039;&#039; client running in the background. Close it, and try again.&lt;br /&gt;
&lt;br /&gt;
After launching &#039;&#039;SNA•ps Print&#039;&#039; you will be asked for a file name for the newly to-be-created printer connection. Simply save this document with a meaningful name.&lt;br /&gt;
&lt;br /&gt;
The minimal configuration just requires the selection of the default connection in the &#039;&#039;Pref(erence)s&#039;&#039; menu. Alternatively, the desired session can be configured directly in the client: Menu &#039;&#039;Session&#039;&#039; → &#039;&#039;Connection …&#039;&#039;. Both ways show a dialog window to select a gateway resource in the AppleTalk network.&lt;br /&gt;
&lt;br /&gt;
Finally, the connection to the previously selected SNA gateway is established in the &#039;&#039;Session&#039;&#039; menu by selecting &#039;&#039;Connect&#039;&#039;. The AS/400 creates a printer device file (*DEVD) and a corresponding output queue (*OUTQ) which can then be used by applications on the system.&lt;br /&gt;
&lt;br /&gt;
An IBM 3812 Model 1 printer in SCS mode is emulated.&lt;br /&gt;
&lt;br /&gt;
Everything that is spooled to this new queue ends up in the print routine of &#039;&#039;SNA•ps Print&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
See the other menu items for the mostly self-explaining further functions of &#039;&#039;SNA•ps Print&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pitfalls ==&lt;br /&gt;
* Neither SNA•ps 5250, nor SNA•ps print can be used on PowerPC machines when connecting via a &#039;&#039;SNA•ps gateway&#039;&#039;. As soon as the connection is to be set, the client crashes with an &#039;&#039;illegal instruction&#039;&#039; error.&amp;lt;ref&amp;gt;This is the first and so far only (productivity) 68k program I’m aware of not running on PowerPC.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Using the AppleTalk diagnostic tool &#039;&#039;Trawl&#039;&#039; on the gateway Mac itself somehow messes up the AppleTalk stack on it, so that the gateway no longer appears in the manager application. Only a reboot of the gateway computer fixes that error.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* Wikipedia:&lt;br /&gt;
** [https://en.wikipedia.org/wiki/IBM_Systems_Network_Architecture IBM Systems Network Architecture]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/IBM_Advanced_Program-to-Program_Communication IBM Advanced Program-to-Program Communication]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/IBM_Advanced_Peer-to-Peer_Networking IBM Advanced Peer-to-Peer Networking]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Synchronous_Data_Link_Control Synchronous Data Link Control]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/A/ROSE Apple Real-time Operating System Environment]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Message_passing Message Passing]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/AppleTalk AppleTalk]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/LocalTalk LocalTalk]&lt;br /&gt;
* [http://www.mactech.com/articles/develop/issue_04/coprocessor.html Inside The Macintosh Coprocessor Platform And A/ROSE]&lt;br /&gt;
* [https://www.computerwoche.de/a/terminalemulation-bindet-apple-welt-an-as-400-mac-user-haben-direkten-zugriff-auf-as-400-daten,1128406 Terminalemulation bindet Apple-Welt an AS/400], Computerwoche 1993-06-11 (German)&lt;br /&gt;
* [https://www.ibm.com/support/knowledgecenter/en/SSEQ5Y_5.9.0/com.ibm.pcomm.doc/books/html/admin_guide19.htm Administrator&#039;s Guide and Reference, SNA Client/Server Concepts], IBM&lt;br /&gt;
* [https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.znetwork/znetwork_6.htm Introduction to networking on the mainframe], IBM&lt;br /&gt;
* [https://web.archive.org/web/20181229140138/http://docwiki.cisco.com/wiki/IBM_Systems_Network_Architecture_Protocols IBM Systems Network Architecture Protocols], Cisco Docwiki (aus dem Archiv)&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/sna/Z325-6027-0_IBM-Apple_Enterprise_Networking_Guide_for_SNA_Products_199110.pdf Z325-6027-00] IBM/Apple IBM Enterprise Networking Guide for SNA Products, IBM&lt;br /&gt;
&lt;br /&gt;
[[Category: Software Configuration Guide]]&lt;br /&gt;
[[Category: System Administration]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Ordinary_Harddisks_on_the_AS/400&amp;diff=1280</id>
		<title>Ordinary Harddisks on the AS/400</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Ordinary_Harddisks_on_the_AS/400&amp;diff=1280"/>
		<updated>2023-02-11T21:29:38Z</updated>

		<summary type="html">&lt;p&gt;Mlc: /* AS/400-Disk in a Linux box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following article is an excerpt from the [https://kb.pocnet.net/wiki/Standard-Festplatten_an_der_AS/400 PoCnet-Wiki], translated to english language.&lt;br /&gt;
&lt;br /&gt;
Ordinary SCSI-Disks cannot be used with the AS/400. They don’t even show up in DST&amp;lt;ref&amp;gt;Roughly what’s known on PC platforms as &#039;&#039;BIOS&#039;&#039;.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== AS/400 disk in a Linux box ==&lt;br /&gt;
This is a shortened sample output from a Linux box’ kernel log:&lt;br /&gt;
 scsi 5:0:3:0: Direct-Access     IBMAS400 DFHSS4W          5959 PQ: 0 ANSI: 2&lt;br /&gt;
 scsi5:A:3:0: Tagged Queuing enabled.  Depth 8&lt;br /&gt;
 scsi target5:0:3: Beginning Domain Validation&lt;br /&gt;
 scsi target5:0:3: wide asynchronous&lt;br /&gt;
 scsi target5:0:3: FAST-10 WIDE SCSI 20.0 MB/s ST (100 ns, offset 8)&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
 sd 5:0:3:0: [sdb] 0 512-byte logical blocks: (0 B/0 B)&lt;br /&gt;
 sd 5:0:3:0: [sdb] 522-byte physical blocks&lt;br /&gt;
 sd 5:0:3:0: [sdb] Write Protect is off&lt;br /&gt;
 sd 5:0:3:0: [sdb] Mode Sense: b3 00 10 08&lt;br /&gt;
 sd 5:0:3:0: [sdb] Write cache: disabled, read cache: enabled, supports DPO and FUA&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
 sd 5:0:3:0: [sdb] Attached SCSI disk&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
&lt;br /&gt;
As you can see, these disks utilize 522&amp;amp;thinsp;bytes per sector instead of 512 as the rest of the world does. There is a command line utility called [http://micha.freeshell.org/scsi/ setblocksize] by Michael Baeuerle. It provides the possibility to reformat disks (supporting changeable block sizes) with different sector sizes.&lt;br /&gt;
&lt;br /&gt;
== Ordinary harddisks on the AS/400 ==&lt;br /&gt;
Unfortunately, it’s not sufficient to just reformat disks to the proper sector size. It may even happen that disks with a vendor ID different from &#039;&#039;IBM&#039;&#039; won’t show up in DST regardless of the sector size.&lt;br /&gt;
&lt;br /&gt;
Newer research suggests that AS/400 approved disks have a custom IDENTITY response, additional VPD&amp;lt;ref&amp;gt;Vital Product Data.&amp;lt;/ref&amp;gt; tables, and two additional, vendor defined SCSI commands: SKIP READ and SKIP WRITE. It is not clear which combination of the differences are mandatory for getting a disk to run on an AS/400.&lt;br /&gt;
&lt;br /&gt;
I tried to get an IBM DCHS 9&amp;amp;thinsp;GB 3.5&amp;quot; disk to work on a 9401-150, without success. The disk shows up in DST and when trying to start a surface test, the following error message appears:&lt;br /&gt;
                           Error Report&lt;br /&gt;
 &lt;br /&gt;
 Note: Some action will need to be taken for the errors listed&lt;br /&gt;
 below.  Please select an error to display the detailed &lt;br /&gt;
 information for it.  The detailed information will indicate&lt;br /&gt;
 what action may need to be taken to correct the error.&lt;br /&gt;
 &lt;br /&gt;
 Type option, press Enter.&lt;br /&gt;
   5=Display Detailed Report&lt;br /&gt;
 &lt;br /&gt;
 OPT   Error&lt;br /&gt;
  _    Disk units without the system support&lt;br /&gt;
Entering 5 (for continue), the next message reads:&lt;br /&gt;
                 Disk Units without the System Support&lt;br /&gt;
 &lt;br /&gt;
 The following disk units do not have the correct system&lt;br /&gt;
 support.  The function you requested can not be completed&lt;br /&gt;
 until the correct system support is applied.  Call for service.&lt;br /&gt;
 &lt;br /&gt;
             Serial                  Resource&lt;br /&gt;
 ASP  Unit   Number      Type  Model Name         Status&lt;br /&gt;
 [Output of details for the disk in question]&lt;br /&gt;
Trying to format the disk within DST yields the following error:&lt;br /&gt;
                      Combined Error/Attention Report&lt;br /&gt;
 &lt;br /&gt;
 Note: Some action may need to be taken for the errors and/or&lt;br /&gt;
 problems listed below.  Please select an error or problem to&lt;br /&gt;
 display the detailed information for it.  The detailed&lt;br /&gt;
 information will indicate what action may need to be taken&lt;br /&gt;
 to correct the error or the problem.&lt;br /&gt;
 &lt;br /&gt;
 Type option, press Enter.&lt;br /&gt;
   5=Display Detailed Report&lt;br /&gt;
 &lt;br /&gt;
 OPT   Error&lt;br /&gt;
  _    Disk unit I/O failure, check reference code&lt;br /&gt;
Entering 5 (for continue), the next message reads:&lt;br /&gt;
                                 I/O Error&lt;br /&gt;
 &lt;br /&gt;
 The system encountered an error while it was attempting to&lt;br /&gt;
 read or write to a disk unit.&lt;br /&gt;
 &lt;br /&gt;
 Contact your service representative with the following&lt;br /&gt;
 information:&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                         --Reference Codes--&lt;br /&gt;
 Serial                    Resource        I/O&lt;br /&gt;
 Number       Type  Model  Name          Processor    Device&lt;br /&gt;
The reference codes are 0. Not helpful.&lt;br /&gt;
&lt;br /&gt;
== Background Information ==&lt;br /&gt;
Disks for AS/400 systems come in two flavours, 520 bytes and 522 bytes per sector. The 520 bytes format is considered outdated by IBM. 520 bytes formatted disks were used with old CISC machines only.&amp;lt;ref&amp;gt;Exception: AS/400 5xx models with disks attached on the internal Multi-Function I/O Processor.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 520 bytes format is composed of:&lt;br /&gt;
* 8 bytes header,&lt;br /&gt;
* 512 bytes payload&lt;br /&gt;
&lt;br /&gt;
The 522 bytes format composed of:&lt;br /&gt;
* 8 bytes header,&lt;br /&gt;
* 512 bytes payload,&lt;br /&gt;
* 2 bytes trailer&lt;br /&gt;
&lt;br /&gt;
The 522 bytes format is mandatory for:&lt;br /&gt;
* RAID,&lt;br /&gt;
* Compression&lt;br /&gt;
&lt;br /&gt;
Metadata for these (and probably more) features are kept in these trailer bytes.&lt;br /&gt;
&lt;br /&gt;
The header consists of metadata for the block’s payload. Example: Protection (RAID1, RAID5 or similar). Also it contains flags if the block contains valid data, an individual block address (probably needed for the famous single level storage addressing scheme), and more. Metatada is exclusively utilized by the I/O processor. The OS itself handles 512 bytes per sector data as known from other systems.&lt;br /&gt;
&lt;br /&gt;
Header and trailer will be written while formatting a drive with the accompanying AS/400 tool (DST).&lt;br /&gt;
&lt;br /&gt;
== Alternative Solutions ==&lt;br /&gt;
A UK based company offers an adapter board that makes it possible to use standard compact flash media instead of spinning disks. It seems that this solution has never been tested in the field. I got a product sample for testing but it fails to be recognized by the system: This adapter also works with 512 Bytes per sector and as such won’t be recognized by the system.&lt;br /&gt;
&lt;br /&gt;
The adapter also provides emulation of a tape drive. This works like a charm.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://pissedoffadmins.com/general/unsupported-sector-size-520.html Unsupported sector size 520] at PissedOffAdmins&lt;br /&gt;
* [http://www.ndwiki.org/wiki/User:Tingo/setblocksize Setblocksize] at Norsk Data Wiki&lt;br /&gt;
* [http://www.redbooks.ibm.com/redbooks/pdfs/sg245693.pdf AS/400 Disk Storage Topics and Tools], IBM Redbook&lt;br /&gt;
* [http://www-304.ibm.com/partnerworld/gsd/solutiondetails.do?solution=51352&amp;amp;expand=true&amp;amp;lc=en Flash Disk SSD/IBM] in IBM Global Solutions Directory&lt;br /&gt;
** [http://www.peripheral-vision.com/products/scsi-to-compact-flash/ SCSICFDISK - SCSI to Compact Flash Disk] from Peripheral Vision&lt;br /&gt;
* [http://friedkiwi.github.io/scsi2sd/ SCSI2SD/400]&lt;br /&gt;
* [http://qseco.fr/research/demystifying-as400-dasd/ Demystifying AS/400 DASD]&lt;br /&gt;
* [http://ps-2.kev009.com/rs6000/manuals/SAN/ESS/2105_Model_ExxFxx/ESS_SCSI_Command_Reference_ExxFxx_SC26-7297-01.PDF IBM SCSI Command Reference,] 2105 Models E10, E20, F10, and F20&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Hardware Configuration Guide]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Ordinary_Harddisks_on_the_AS/400&amp;diff=1279</id>
		<title>Ordinary Harddisks on the AS/400</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Ordinary_Harddisks_on_the_AS/400&amp;diff=1279"/>
		<updated>2023-02-11T21:29:29Z</updated>

		<summary type="html">&lt;p&gt;Mlc: /* AS/400-Disk in a Linux box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following article is an excerpt from the [https://kb.pocnet.net/wiki/Standard-Festplatten_an_der_AS/400 PoCnet-Wiki], translated to english language.&lt;br /&gt;
&lt;br /&gt;
Ordinary SCSI-Disks cannot be used with the AS/400. They don’t even show up in DST&amp;lt;ref&amp;gt;Roughly what’s known on PC platforms as &#039;&#039;BIOS&#039;&#039;.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== AS/400-Disk in a Linux box ==&lt;br /&gt;
This is a shortened sample output from a Linux box’ kernel log:&lt;br /&gt;
 scsi 5:0:3:0: Direct-Access     IBMAS400 DFHSS4W          5959 PQ: 0 ANSI: 2&lt;br /&gt;
 scsi5:A:3:0: Tagged Queuing enabled.  Depth 8&lt;br /&gt;
 scsi target5:0:3: Beginning Domain Validation&lt;br /&gt;
 scsi target5:0:3: wide asynchronous&lt;br /&gt;
 scsi target5:0:3: FAST-10 WIDE SCSI 20.0 MB/s ST (100 ns, offset 8)&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
 sd 5:0:3:0: [sdb] 0 512-byte logical blocks: (0 B/0 B)&lt;br /&gt;
 sd 5:0:3:0: [sdb] 522-byte physical blocks&lt;br /&gt;
 sd 5:0:3:0: [sdb] Write Protect is off&lt;br /&gt;
 sd 5:0:3:0: [sdb] Mode Sense: b3 00 10 08&lt;br /&gt;
 sd 5:0:3:0: [sdb] Write cache: disabled, read cache: enabled, supports DPO and FUA&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
 sd 5:0:3:0: [sdb] Attached SCSI disk&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
&lt;br /&gt;
As you can see, these disks utilize 522&amp;amp;thinsp;bytes per sector instead of 512 as the rest of the world does. There is a command line utility called [http://micha.freeshell.org/scsi/ setblocksize] by Michael Baeuerle. It provides the possibility to reformat disks (supporting changeable block sizes) with different sector sizes.&lt;br /&gt;
&lt;br /&gt;
== Ordinary harddisks on the AS/400 ==&lt;br /&gt;
Unfortunately, it’s not sufficient to just reformat disks to the proper sector size. It may even happen that disks with a vendor ID different from &#039;&#039;IBM&#039;&#039; won’t show up in DST regardless of the sector size.&lt;br /&gt;
&lt;br /&gt;
Newer research suggests that AS/400 approved disks have a custom IDENTITY response, additional VPD&amp;lt;ref&amp;gt;Vital Product Data.&amp;lt;/ref&amp;gt; tables, and two additional, vendor defined SCSI commands: SKIP READ and SKIP WRITE. It is not clear which combination of the differences are mandatory for getting a disk to run on an AS/400.&lt;br /&gt;
&lt;br /&gt;
I tried to get an IBM DCHS 9&amp;amp;thinsp;GB 3.5&amp;quot; disk to work on a 9401-150, without success. The disk shows up in DST and when trying to start a surface test, the following error message appears:&lt;br /&gt;
                           Error Report&lt;br /&gt;
 &lt;br /&gt;
 Note: Some action will need to be taken for the errors listed&lt;br /&gt;
 below.  Please select an error to display the detailed &lt;br /&gt;
 information for it.  The detailed information will indicate&lt;br /&gt;
 what action may need to be taken to correct the error.&lt;br /&gt;
 &lt;br /&gt;
 Type option, press Enter.&lt;br /&gt;
   5=Display Detailed Report&lt;br /&gt;
 &lt;br /&gt;
 OPT   Error&lt;br /&gt;
  _    Disk units without the system support&lt;br /&gt;
Entering 5 (for continue), the next message reads:&lt;br /&gt;
                 Disk Units without the System Support&lt;br /&gt;
 &lt;br /&gt;
 The following disk units do not have the correct system&lt;br /&gt;
 support.  The function you requested can not be completed&lt;br /&gt;
 until the correct system support is applied.  Call for service.&lt;br /&gt;
 &lt;br /&gt;
             Serial                  Resource&lt;br /&gt;
 ASP  Unit   Number      Type  Model Name         Status&lt;br /&gt;
 [Output of details for the disk in question]&lt;br /&gt;
Trying to format the disk within DST yields the following error:&lt;br /&gt;
                      Combined Error/Attention Report&lt;br /&gt;
 &lt;br /&gt;
 Note: Some action may need to be taken for the errors and/or&lt;br /&gt;
 problems listed below.  Please select an error or problem to&lt;br /&gt;
 display the detailed information for it.  The detailed&lt;br /&gt;
 information will indicate what action may need to be taken&lt;br /&gt;
 to correct the error or the problem.&lt;br /&gt;
 &lt;br /&gt;
 Type option, press Enter.&lt;br /&gt;
   5=Display Detailed Report&lt;br /&gt;
 &lt;br /&gt;
 OPT   Error&lt;br /&gt;
  _    Disk unit I/O failure, check reference code&lt;br /&gt;
Entering 5 (for continue), the next message reads:&lt;br /&gt;
                                 I/O Error&lt;br /&gt;
 &lt;br /&gt;
 The system encountered an error while it was attempting to&lt;br /&gt;
 read or write to a disk unit.&lt;br /&gt;
 &lt;br /&gt;
 Contact your service representative with the following&lt;br /&gt;
 information:&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                         --Reference Codes--&lt;br /&gt;
 Serial                    Resource        I/O&lt;br /&gt;
 Number       Type  Model  Name          Processor    Device&lt;br /&gt;
The reference codes are 0. Not helpful.&lt;br /&gt;
&lt;br /&gt;
== Background Information ==&lt;br /&gt;
Disks for AS/400 systems come in two flavours, 520 bytes and 522 bytes per sector. The 520 bytes format is considered outdated by IBM. 520 bytes formatted disks were used with old CISC machines only.&amp;lt;ref&amp;gt;Exception: AS/400 5xx models with disks attached on the internal Multi-Function I/O Processor.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 520 bytes format is composed of:&lt;br /&gt;
* 8 bytes header,&lt;br /&gt;
* 512 bytes payload&lt;br /&gt;
&lt;br /&gt;
The 522 bytes format composed of:&lt;br /&gt;
* 8 bytes header,&lt;br /&gt;
* 512 bytes payload,&lt;br /&gt;
* 2 bytes trailer&lt;br /&gt;
&lt;br /&gt;
The 522 bytes format is mandatory for:&lt;br /&gt;
* RAID,&lt;br /&gt;
* Compression&lt;br /&gt;
&lt;br /&gt;
Metadata for these (and probably more) features are kept in these trailer bytes.&lt;br /&gt;
&lt;br /&gt;
The header consists of metadata for the block’s payload. Example: Protection (RAID1, RAID5 or similar). Also it contains flags if the block contains valid data, an individual block address (probably needed for the famous single level storage addressing scheme), and more. Metatada is exclusively utilized by the I/O processor. The OS itself handles 512 bytes per sector data as known from other systems.&lt;br /&gt;
&lt;br /&gt;
Header and trailer will be written while formatting a drive with the accompanying AS/400 tool (DST).&lt;br /&gt;
&lt;br /&gt;
== Alternative Solutions ==&lt;br /&gt;
A UK based company offers an adapter board that makes it possible to use standard compact flash media instead of spinning disks. It seems that this solution has never been tested in the field. I got a product sample for testing but it fails to be recognized by the system: This adapter also works with 512 Bytes per sector and as such won’t be recognized by the system.&lt;br /&gt;
&lt;br /&gt;
The adapter also provides emulation of a tape drive. This works like a charm.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://pissedoffadmins.com/general/unsupported-sector-size-520.html Unsupported sector size 520] at PissedOffAdmins&lt;br /&gt;
* [http://www.ndwiki.org/wiki/User:Tingo/setblocksize Setblocksize] at Norsk Data Wiki&lt;br /&gt;
* [http://www.redbooks.ibm.com/redbooks/pdfs/sg245693.pdf AS/400 Disk Storage Topics and Tools], IBM Redbook&lt;br /&gt;
* [http://www-304.ibm.com/partnerworld/gsd/solutiondetails.do?solution=51352&amp;amp;expand=true&amp;amp;lc=en Flash Disk SSD/IBM] in IBM Global Solutions Directory&lt;br /&gt;
** [http://www.peripheral-vision.com/products/scsi-to-compact-flash/ SCSICFDISK - SCSI to Compact Flash Disk] from Peripheral Vision&lt;br /&gt;
* [http://friedkiwi.github.io/scsi2sd/ SCSI2SD/400]&lt;br /&gt;
* [http://qseco.fr/research/demystifying-as400-dasd/ Demystifying AS/400 DASD]&lt;br /&gt;
* [http://ps-2.kev009.com/rs6000/manuals/SAN/ESS/2105_Model_ExxFxx/ESS_SCSI_Command_Reference_ExxFxx_SC26-7297-01.PDF IBM SCSI Command Reference,] 2105 Models E10, E20, F10, and F20&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Hardware Configuration Guide]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Ordinary_Harddisks_on_the_AS/400&amp;diff=1278</id>
		<title>Ordinary Harddisks on the AS/400</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Ordinary_Harddisks_on_the_AS/400&amp;diff=1278"/>
		<updated>2023-02-11T21:26:27Z</updated>

		<summary type="html">&lt;p&gt;Mlc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following article is an excerpt from the [https://kb.pocnet.net/wiki/Standard-Festplatten_an_der_AS/400 PoCnet-Wiki], translated to english language.&lt;br /&gt;
&lt;br /&gt;
Ordinary SCSI-Disks cannot be used with the AS/400. They don’t even show up in DST&amp;lt;ref&amp;gt;Roughly what’s known on PC platforms as &#039;&#039;BIOS&#039;&#039;.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== AS/400-Disk in a Linux box ==&lt;br /&gt;
This is a shortened sample output from a linux box’ kernel log:&lt;br /&gt;
 scsi 5:0:3:0: Direct-Access     IBMAS400 DFHSS4W          5959 PQ: 0 ANSI: 2&lt;br /&gt;
 scsi5:A:3:0: Tagged Queuing enabled.  Depth 8&lt;br /&gt;
 scsi target5:0:3: Beginning Domain Validation&lt;br /&gt;
 scsi target5:0:3: wide asynchronous&lt;br /&gt;
 scsi target5:0:3: FAST-10 WIDE SCSI 20.0 MB/s ST (100 ns, offset 8)&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
 sd 5:0:3:0: [sdb] 0 512-byte logical blocks: (0 B/0 B)&lt;br /&gt;
 sd 5:0:3:0: [sdb] 522-byte physical blocks&lt;br /&gt;
 sd 5:0:3:0: [sdb] Write Protect is off&lt;br /&gt;
 sd 5:0:3:0: [sdb] Mode Sense: b3 00 10 08&lt;br /&gt;
 sd 5:0:3:0: [sdb] Write cache: disabled, read cache: enabled, supports DPO and FUA&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
 sd 5:0:3:0: [sdb] Attached SCSI disk&lt;br /&gt;
 sd 5:0:3:0: [sdb] Unsupported sector size 522.&lt;br /&gt;
&lt;br /&gt;
As you can see, these disks utilize 522&amp;amp;thinsp;bytes per sector instead of 512 as the rest of the world does. There is a command line utility called [http://micha.freeshell.org/scsi/ setblocksize] by Michael Baeuerle. It provides the possibility to reformat disks (supporting changeable block sizes) with different sector sizes.&lt;br /&gt;
&lt;br /&gt;
== Ordinary harddisks on the AS/400 ==&lt;br /&gt;
Unfortunately, it’s not sufficient to just reformat disks to the proper sector size. It may even happen that disks with a vendor ID different from &#039;&#039;IBM&#039;&#039; won’t show up in DST regardless of the sector size.&lt;br /&gt;
&lt;br /&gt;
Newer research suggests that AS/400 approved disks have a custom IDENTITY response, additional VPD&amp;lt;ref&amp;gt;Vital Product Data.&amp;lt;/ref&amp;gt; tables, and two additional, vendor defined SCSI commands: SKIP READ and SKIP WRITE. It is not clear which combination of the differences are mandatory for getting a disk to run on an AS/400.&lt;br /&gt;
&lt;br /&gt;
I tried to get an IBM DCHS 9&amp;amp;thinsp;GB 3.5&amp;quot; disk to work on a 9401-150, without success. The disk shows up in DST and when trying to start a surface test, the following error message appears:&lt;br /&gt;
                           Error Report&lt;br /&gt;
 &lt;br /&gt;
 Note: Some action will need to be taken for the errors listed&lt;br /&gt;
 below.  Please select an error to display the detailed &lt;br /&gt;
 information for it.  The detailed information will indicate&lt;br /&gt;
 what action may need to be taken to correct the error.&lt;br /&gt;
 &lt;br /&gt;
 Type option, press Enter.&lt;br /&gt;
   5=Display Detailed Report&lt;br /&gt;
 &lt;br /&gt;
 OPT   Error&lt;br /&gt;
  _    Disk units without the system support&lt;br /&gt;
Entering 5 (for continue), the next message reads:&lt;br /&gt;
                 Disk Units without the System Support&lt;br /&gt;
 &lt;br /&gt;
 The following disk units do not have the correct system&lt;br /&gt;
 support.  The function you requested can not be completed&lt;br /&gt;
 until the correct system support is applied.  Call for service.&lt;br /&gt;
 &lt;br /&gt;
             Serial                  Resource&lt;br /&gt;
 ASP  Unit   Number      Type  Model Name         Status&lt;br /&gt;
 [Output of details for the disk in question]&lt;br /&gt;
Trying to format the disk within DST yields the following error:&lt;br /&gt;
                      Combined Error/Attention Report&lt;br /&gt;
 &lt;br /&gt;
 Note: Some action may need to be taken for the errors and/or&lt;br /&gt;
 problems listed below.  Please select an error or problem to&lt;br /&gt;
 display the detailed information for it.  The detailed&lt;br /&gt;
 information will indicate what action may need to be taken&lt;br /&gt;
 to correct the error or the problem.&lt;br /&gt;
 &lt;br /&gt;
 Type option, press Enter.&lt;br /&gt;
   5=Display Detailed Report&lt;br /&gt;
 &lt;br /&gt;
 OPT   Error&lt;br /&gt;
  _    Disk unit I/O failure, check reference code&lt;br /&gt;
Entering 5 (for continue), the next message reads:&lt;br /&gt;
                                 I/O Error&lt;br /&gt;
 &lt;br /&gt;
 The system encountered an error while it was attempting to&lt;br /&gt;
 read or write to a disk unit.&lt;br /&gt;
 &lt;br /&gt;
 Contact your service representative with the following&lt;br /&gt;
 information:&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                         --Reference Codes--&lt;br /&gt;
 Serial                    Resource        I/O&lt;br /&gt;
 Number       Type  Model  Name          Processor    Device&lt;br /&gt;
The reference codes are 0. Not helpful.&lt;br /&gt;
&lt;br /&gt;
== Background Information ==&lt;br /&gt;
Disks for AS/400 systems come in two flavours, 520 bytes and 522 bytes per sector. The 520 bytes format is considered outdated by IBM. 520 bytes formatted disks were used with old CISC machines only.&amp;lt;ref&amp;gt;Exception: AS/400 5xx models with disks attached on the internal Multi-Function I/O Processor.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 520 bytes format is composed of:&lt;br /&gt;
* 8 bytes header,&lt;br /&gt;
* 512 bytes payload&lt;br /&gt;
&lt;br /&gt;
The 522 bytes format composed of:&lt;br /&gt;
* 8 bytes header,&lt;br /&gt;
* 512 bytes payload,&lt;br /&gt;
* 2 bytes trailer&lt;br /&gt;
&lt;br /&gt;
The 522 bytes format is mandatory for:&lt;br /&gt;
* RAID,&lt;br /&gt;
* Compression&lt;br /&gt;
&lt;br /&gt;
Metadata for these (and probably more) features are kept in these trailer bytes.&lt;br /&gt;
&lt;br /&gt;
The header consists of metadata for the block’s payload. Example: Protection (RAID1, RAID5 or similar). Also it contains flags if the block contains valid data, an individual block address (probably needed for the famous single level storage addressing scheme), and more. Metatada is exclusively utilized by the I/O processor. The OS itself handles 512 bytes per sector data as known from other systems.&lt;br /&gt;
&lt;br /&gt;
Header and trailer will be written while formatting a drive with the accompanying AS/400 tool (DST).&lt;br /&gt;
&lt;br /&gt;
== Alternative Solutions ==&lt;br /&gt;
A UK based company offers an adapter board that makes it possible to use standard compact flash media instead of spinning disks. It seems that this solution has never been tested in the field. I got a product sample for testing but it fails to be recognized by the system: This adapter also works with 512 Bytes per sector and as such won’t be recognized by the system.&lt;br /&gt;
&lt;br /&gt;
The adapter also provides emulation of a tape drive. This works like a charm.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://pissedoffadmins.com/general/unsupported-sector-size-520.html Unsupported sector size 520] at PissedOffAdmins&lt;br /&gt;
* [http://www.ndwiki.org/wiki/User:Tingo/setblocksize Setblocksize] at Norsk Data Wiki&lt;br /&gt;
* [http://www.redbooks.ibm.com/redbooks/pdfs/sg245693.pdf AS/400 Disk Storage Topics and Tools], IBM Redbook&lt;br /&gt;
* [http://www-304.ibm.com/partnerworld/gsd/solutiondetails.do?solution=51352&amp;amp;expand=true&amp;amp;lc=en Flash Disk SSD/IBM] in IBM Global Solutions Directory&lt;br /&gt;
** [http://www.peripheral-vision.com/products/scsi-to-compact-flash/ SCSICFDISK - SCSI to Compact Flash Disk] from Peripheral Vision&lt;br /&gt;
* [http://friedkiwi.github.io/scsi2sd/ SCSI2SD/400]&lt;br /&gt;
* [http://qseco.fr/research/demystifying-as400-dasd/ Demystifying AS/400 DASD]&lt;br /&gt;
* [http://ps-2.kev009.com/rs6000/manuals/SAN/ESS/2105_Model_ExxFxx/ESS_SCSI_Command_Reference_ExxFxx_SC26-7297-01.PDF IBM SCSI Command Reference,] 2105 Models E10, E20, F10, and F20&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Hardware Configuration Guide]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=About_Green_Screens_and_mouse-clickable_UIs&amp;diff=1265</id>
		<title>About Green Screens and mouse-clickable UIs</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=About_Green_Screens_and_mouse-clickable_UIs&amp;diff=1265"/>
		<updated>2023-01-25T02:05:05Z</updated>

		<summary type="html">&lt;p&gt;Mlc: /* How the AS/400 Text-UI works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are plenty of resources online in the web regarding this topic. It seems to be something religious, like the [[wikipedia:Editor war|Editor War]] EMACS versus vi or vim.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Some people insist that character based UIs are hopelessly outdated and &#039;&#039;&#039;must&#039;&#039;&#039; be modernized. That usually&amp;lt;ref&amp;gt;Due to constraints of the money made available to achieve this goal.&amp;lt;/ref&amp;gt; means: Apply some technology that hides the crude text UI behind a fancy web UI, running in any decent web browser.&amp;lt;ref&amp;gt;Modern Web browsers incorporate so much more functionality than just rendering text and graphics, as it was in 1993. This fact is reflected in numerous fixed security holes in modern Web Browsers. There are so much more yet to be discovered, though. See also Donald Rumsfeld&#039;s musings about [[wikipedia:There are known knowns|(Un)known (un)knowns]].&amp;lt;/ref&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Others insist that point-&#039;n-click-interfaces are a serious brake of true productivity. All this constant arm motion between mouse and keyboard does obviously lower the amount of information flowing back and forth between the user and the system: Arm moving overhead.&amp;lt;ref&amp;gt;Nowadays, people are expected to know how to use a computer. Training at company level isn&#039;t done anymore. This leads to even worse efficiency: How many times did you wince in silent pain when someone actually clicked into another field of a form instead of just pressing the &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt;-Key?&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let me add a third party and then clean up the resulting mess. Unix/Linux&amp;lt;ref&amp;gt;To keep the text reasonably readable, I refuse to make a difference between UNIX (as in SystemV, BSD and whatnot) versus GNU Linux Systems. Today, both platforms are akin enough to justify this heresy.&amp;lt;/ref&amp;gt; Sysadmins as well as Linux Power Users usually insist on using the &#039;&#039;shell&#039;&#039;, a character based UI in itself. It provides for the concatenation of simple tools to do tasks on files or data streams, or whole directory structures. This feature proved to be powerful for experienced users. Do a maximum of work with a minimum of effort.&amp;lt;br /&amp;gt;&lt;br /&gt;
These very same people see an (emulated) AS/400 screen and almost immediately the expected behavior kicks in: Old, outdated, legacy, you name it.&lt;br /&gt;
&lt;br /&gt;
Seen from another point of view, the AS/400 is commonly perceived as ultimately boring. That is because the AS/400 is mostly running stuff considered boring (by geeks). Commercial IT at its best&amp;lt;ref&amp;gt;Or worst.&amp;lt;/ref&amp;gt;: Warehouse management, personnel administration, tracking account movements, to name a few. Stuff that makes sure civilisation as we know it won’t collapse, because money stops flowing, carriage of goods ceases, personnel isn&#039;t directed to where needed.&lt;br /&gt;
&lt;br /&gt;
Then, there are also some people who argue that by keeping the &#039;&#039;green screen&#039;&#039; alive, the &#039;&#039;&#039;perceived&#039;&#039;&#039; outdatedness of the system to others is even more increased. They emphasize that this is doing great harm to the IBM i platform at large, because all effort to convince people that it&#039;s not about green screens anymore, is negated. So, interestingly, they’re not appalled against green screens because they don&#039;t like them themselves, but because they care about &#039;&#039;&#039;other people&#039;s perceptions&#039;&#039;&#039; over reasonable facts that green screens still have their use cases.&amp;lt;ref&amp;gt;Weird? I think so, also.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Best of both Worlds ==&lt;br /&gt;
Well, almost.&lt;br /&gt;
&lt;br /&gt;
* Graphical User Interfaces allow the users to point (either with a mouse or a finger/stylus on a touch sensitive screen) on and activate graphical elements on the screen, trying to resemble objects in our physical world. Icons can provide additional, non-textual information regarding the elements on the screen. Until one needs to actually enter data in a classical sense (by typing)&amp;lt;ref&amp;gt;I want to emphasize that using a mouse is also a perfectly valid data acquisition method. One example is the refinement of pixel based pictures. Automatic methods work only to a certain extent and some pixel-modifications still are best done by a hand guiding an input device to steer a cursor on screen.&amp;lt;/ref&amp;gt;, everything can be done with just one facility: The translation tool between the physical world and the logical world, most often the mouse but increasingly often by using fingers or a stylus. The user can actually guess which steps to take to complete a given task by contextual conjunction of screen content with expected outcome. The given task is often accomplished step by step instead of one go.&lt;br /&gt;
* Command Line Interfaces aim to minimize often time consuming interaction between user and system and sacrifice this by expecting that the user knows which command(s) to enter for a given task to be done. Often a command is started and runs without intervention until the task is complete. Complex tasks usually result in long commands-with-options (or chained commands via [[wikipedia:Pipeline (Unix)|pipes]]), usually requiring a lot of typing. This is somewhat leveraged by the advent of [[wikipedia:Command-line completion|Autocompletion]] capable command shells.&lt;br /&gt;
&lt;br /&gt;
Some (rare) tasks feature very high complexity which makes it almost impossible to create an user friendly Graphical User Interface to collect parameters, while maintaining a certain amount of intuitive UI design Graphical User Interfaces are praised for. Seen from another point of view: Graphical User Interfaces hide complexity and sacrifice that with less flexibility.&lt;br /&gt;
&lt;br /&gt;
Use the right tool for the task in front of you. This is a fundamental statement holding true for every task in computing&amp;lt;ref&amp;gt;And in real life.&amp;lt;/ref&amp;gt; and is not restricted to Unix environments.&lt;br /&gt;
&lt;br /&gt;
== How the AS/400 Text-UI works ==&lt;br /&gt;
The AS/400 was created as a business aid. This comes down to efficient handling of structured data that has to be entered, processed, stored, reviewed and maybe printed. The system was designed to help people interact in a reasonably user friendly way with it with the then state of the art technology: Character based interfaces utilizing a keyboard for command and data input, and a CRT screen for immediate display of the system’s responses.&amp;lt;ref&amp;gt;Keep in mind that commercial and scientifical computing relied on punched card decks for input and paper prints for output right into the 1970s: Classical Batch Processing.&amp;lt;/ref&amp;gt; But this doesn’t automatically equate to a command line interface.&lt;br /&gt;
&lt;br /&gt;
The AS/400 has a unique feature that distinguishes it from other character based systems, like Unix: The whole UI revolves mainly around forms and menus, accompanied by static text. The layouts of these screens are somewhat standardized. AS/400 screens are very recognizable because of this.&lt;br /&gt;
&lt;br /&gt;
[[File:Main-menu.png|thumb|right|German Main Menu after Signon.]]&lt;br /&gt;
The classic AS/400 green screen consists of numbered menu items with an input line beneath. One may enter a number and press &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; to pick a menu choice. Or someone may enter a command with accompanying parameters into the same space, if one knows what to enter. If one doesn’t know the exact parameters and allowed values of a command, a keypress of &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; invokes a full screen form for the requested command, aiding the user in choosing the right parameters for the desired action to be taken.&lt;br /&gt;
&lt;br /&gt;
Sometimes, choosing a menu item reveals another menu. Sometimes a form with text input fields is displayed for the user to fill in needed parameters, so the command may be run with the desired outcome. Rarely no parameters are supported and the command just runs.&lt;br /&gt;
&lt;br /&gt;
For every editable field on the screen, the user is allowed to place the cursor there and again press &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; to be presented with &#039;&#039;another&#039;&#039; screen, listing allowed values for this particular parameter.&amp;lt;ref&amp;gt;Interestingly, there are situations when you are forced to enter data from your (brain based) memory into a field instead of the system letting the user choose from available choices on another &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt;-invoked screen. A notable example is when you want to create a &#039;&#039;line description&#039;&#039; configuration object, you’ll need to do a manual lookup of available hardware IDs before.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this facility also fails to provide proper enlightenment, one may press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; at any time to invoke a [[wikipedia:Context-sensitive_help|context-sensitive]]&amp;lt;ref&amp;gt;This means: The shown help text is different for different cursor positions on the screen.&amp;lt;/ref&amp;gt; help text, which is almost always surprisingly helpful&amp;lt;ref&amp;gt;Compared to the help texts in early Windows operating systems.&amp;lt;/ref&amp;gt;. See [[CL Tricks]] for an overview. These features are unique among text based UIs.&lt;br /&gt;
&lt;br /&gt;
The ubiquitous &#039;&#039;command shell&#039;&#039; of Unix, macOS, Windows and others is restricted to commands to be entered, together with (sometimes mandatory) parameters. Commands are entered into the last line of the terminal window. Output from commands appears over this line and scrolls to the top until it’s out of sight&amp;lt;ref&amp;gt;Depending on the terminal emulator, a scrollback-buffer can be configured to allow retrieval of older output messages within the GUI.&amp;lt;/ref&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Any help for a command’s parameters must be invoked by separate facilities (e.&amp;amp;thinsp;g. invoking the command with a [[wikipedia:Command-line interface#Command-line option|parameter]] to show an usually terse online help, or by reading Unix [[wikipedia:man page|Man-Pages]]), and manually complete the command line by re-entering the needed command options.&amp;lt;ref&amp;gt;The only other known system with a comparable function is Apple’s legacy Unix system &#039;&#039;A/UX&#039;&#039;: Double-clicking a command (as opposed to an Application Program) opens a modal graphical display box, helping in completing the command line utilizing familiar graphical UI elements.&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Concluding: The AS/400 is located somewhere in between GUI and CLI. As one might see now, intuitive user interfaces must not necessarily equate to being graphic (pixel-based).&lt;br /&gt;
* CLIs are unintuitive because their cursors blink at the user, patiently waiting for a command to be entered but hinting no clue what to type.&amp;lt;ref&amp;gt;Entering &amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt; within a &#039;&#039;bash&#039;&#039; Linux Command Line prints overwhelming 46 lines of internal commands. The important lines how to actually get more help have scrolled out of the usual 80×25 window.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* AS/400 menus, forms and GUIs present structured information to the user that (hopefully) guide the user to take the right steps for completing a given task. They &#039;&#039;interact&#039;&#039; with the user.&lt;br /&gt;
&lt;br /&gt;
== Why still text, then? ==&lt;br /&gt;
Someone might object that if there&#039;s no operational difference between GUIs and AS/400 menus/forms regarding intuitive handling of the system, why does the modern AS/400 still lack a GUI? Well, only IBM can answer this question without making guesses. If I should make a guess, I&#039;d say: Because it would be a change that&lt;br /&gt;
# just isn&#039;t implementable with hardware already bought by customers,&lt;br /&gt;
# existing applications would only take minor advantage of (if any!),&lt;br /&gt;
# it would upset system operators who mostly learned to love the text UI.&lt;br /&gt;
&lt;br /&gt;
[[File:Main-menu-wsg.png|thumb|right|Main Menu shown in a browser&#039;s window through &#039;&#039;Workstation Gateway&#039;&#039;.]]&lt;br /&gt;
IBM tried to make the AS/400 more click&#039;n&#039;pointy. There is a facility called &#039;&#039;Workstation Gateway&#039;&#039;&amp;lt;ref&amp;gt;Usually available on &#039;&#039;&amp;lt;nowiki&amp;gt;http://your-as400-ip:5061/wsg&amp;lt;/nowiki&amp;gt;&#039;&#039; after starting the appropriate TCP service.&amp;lt;/ref&amp;gt;, translating AS/400 screen elements on the fly into their HTML counterpart, if existing. It basically works and it&#039;s clickable but it looks gross compared to modern standards: No icons, no color, no eye candy.&lt;br /&gt;
&lt;br /&gt;
There&#039;s a program called &#039;&#039;Operations Navigator&#039;&#039; that comes as a Client Application, running (only) on Windows, providing graphical equivalents of some operating system commands/tasks. Some things (like the management of the integrated CIFS/SMB-Server) could be configured solely with &#039;&#039;OpNav&#039;&#039; but not with Green Screen commands and forms.&amp;lt;ref&amp;gt;If you find out who took this decision, please let me know. I&#039;d love to unload some serious cusses on him.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the Configuration of the IBM http server is done via Web Browser, and CGI-Programs running on the AS/400. Unfortunately, this facility is painfully slow, at least on a 150. Not exactly the best promotion for IBM, trying to convince programmers and system administrators to abandon text interfaces in favor to Web Based Applications.&amp;lt;ref&amp;gt;Fortunately, the [[IBM HTTP-Server for AS/400 Configuration|configuration]] is text based and saved in a database file.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, the main reason for IBM retaining the text interface is compatibility. For the rest of us, the fact that they&#039;re displayed very quickly with a lot less of resources (memory, data transfer speed, cpu cycles) needed when compared to a graphical UI is possibly of equal importance.&lt;br /&gt;
&lt;br /&gt;
Concluding, the majority of information we humans consume is still text. We look at web pages, word processing documents and read PDF files in the digital world. Graphical UIs make it easier to fake screen output into &#039;&#039;looks like a book&#039;&#039;, with nice fonts, screen antialiasing and very high resolution displays like Apple&#039;s Retina Display, first introduced on the iOS platform. And it truly makes a difference! Reading long texts is easier from paper or such screens compared to a typewriter page. Or a monospaced terminal screen, be it 5250 or VT100. &#039;&#039;&#039;But&#039;&#039;&#039; reading long texts isn&#039;t what&#039;s usually be done in terminals.&amp;lt;ref&amp;gt;MUDders and Zork-Players: I know you will gasp now. Sorry, but you&#039;re really the opposite of &#039;&#039;usually&#039;&#039;. Don&#039;t take it personal.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pros and Cons ==&lt;br /&gt;
… regarding AS/400 forms and menus versus GUIs:&lt;br /&gt;
* AS/400 forms and menus run in a space constrained area with an adressable matrix of either 80×24 or 132×27 characters. Larger screens provide larger characters but not more usable space. This is different with GUIs. Larger screens usually (can) display more pixels and as such (can) display more information concurrently. The former can be seen as a challenge for programmers to concentrate on necessary information for the immediate task at hand while omitting or postponing less important information to screens later in the necessary sequence. This could lead to improved clarity of the application&#039;s UI, and/or to the user losing overview by no longer seeing information that may be important for a given step of a task at hand. &lt;br /&gt;
* AS/400 forms and menus are built from tiny chunks of data compared to graphical UIs. So they can be transferred and displayed very fast. In environments where client and server are connected through high latency networks, GUIs perform poorly because of lagging response from the UI. Also, GUIs graphical representation must be built by program code running in part on the displaying client&#039;s CPU and GPU. Just displaying characters on a CRT can be done with comparatively tiny resources (a few kiB of RAM, and a processor clocked in the single-digit Megahertz range).&lt;br /&gt;
&lt;br /&gt;
The only feature the AS/400 UI itself lacks is [[wikipedia:Cut, copy, and paste|Copy &amp;amp; Paste]]. So by utilizing a terminal emulator on current GUI based desktop systems to connect to the AS/400 terminal session, one can benefit from the best of both worlds. Also, one may connect a [[Using the Mouse on a Hardware Terminal|PS/2-Mouse to certain IBM terminals]], also providing facilities for selecting and duplicating text.&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Musings]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=About_Green_Screens_and_mouse-clickable_UIs&amp;diff=1264</id>
		<title>About Green Screens and mouse-clickable UIs</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=About_Green_Screens_and_mouse-clickable_UIs&amp;diff=1264"/>
		<updated>2023-01-25T02:00:45Z</updated>

		<summary type="html">&lt;p&gt;Mlc: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are plenty of resources online in the web regarding this topic. It seems to be something religious, like the [[wikipedia:Editor war|Editor War]] EMACS versus vi or vim.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Some people insist that character based UIs are hopelessly outdated and &#039;&#039;&#039;must&#039;&#039;&#039; be modernized. That usually&amp;lt;ref&amp;gt;Due to constraints of the money made available to achieve this goal.&amp;lt;/ref&amp;gt; means: Apply some technology that hides the crude text UI behind a fancy web UI, running in any decent web browser.&amp;lt;ref&amp;gt;Modern Web browsers incorporate so much more functionality than just rendering text and graphics, as it was in 1993. This fact is reflected in numerous fixed security holes in modern Web Browsers. There are so much more yet to be discovered, though. See also Donald Rumsfeld&#039;s musings about [[wikipedia:There are known knowns|(Un)known (un)knowns]].&amp;lt;/ref&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Others insist that point-&#039;n-click-interfaces are a serious brake of true productivity. All this constant arm motion between mouse and keyboard does obviously lower the amount of information flowing back and forth between the user and the system: Arm moving overhead.&amp;lt;ref&amp;gt;Nowadays, people are expected to know how to use a computer. Training at company level isn&#039;t done anymore. This leads to even worse efficiency: How many times did you wince in silent pain when someone actually clicked into another field of a form instead of just pressing the &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt;-Key?&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let me add a third party and then clean up the resulting mess. Unix/Linux&amp;lt;ref&amp;gt;To keep the text reasonably readable, I refuse to make a difference between UNIX (as in SystemV, BSD and whatnot) versus GNU Linux Systems. Today, both platforms are akin enough to justify this heresy.&amp;lt;/ref&amp;gt; Sysadmins as well as Linux Power Users usually insist on using the &#039;&#039;shell&#039;&#039;, a character based UI in itself. It provides for the concatenation of simple tools to do tasks on files or data streams, or whole directory structures. This feature proved to be powerful for experienced users. Do a maximum of work with a minimum of effort.&amp;lt;br /&amp;gt;&lt;br /&gt;
These very same people see an (emulated) AS/400 screen and almost immediately the expected behavior kicks in: Old, outdated, legacy, you name it.&lt;br /&gt;
&lt;br /&gt;
Seen from another point of view, the AS/400 is commonly perceived as ultimately boring. That is because the AS/400 is mostly running stuff considered boring (by geeks). Commercial IT at its best&amp;lt;ref&amp;gt;Or worst.&amp;lt;/ref&amp;gt;: Warehouse management, personnel administration, tracking account movements, to name a few. Stuff that makes sure civilisation as we know it won’t collapse, because money stops flowing, carriage of goods ceases, personnel isn&#039;t directed to where needed.&lt;br /&gt;
&lt;br /&gt;
Then, there are also some people who argue that by keeping the &#039;&#039;green screen&#039;&#039; alive, the &#039;&#039;&#039;perceived&#039;&#039;&#039; outdatedness of the system to others is even more increased. They emphasize that this is doing great harm to the IBM i platform at large, because all effort to convince people that it&#039;s not about green screens anymore, is negated. So, interestingly, they’re not appalled against green screens because they don&#039;t like them themselves, but because they care about &#039;&#039;&#039;other people&#039;s perceptions&#039;&#039;&#039; over reasonable facts that green screens still have their use cases.&amp;lt;ref&amp;gt;Weird? I think so, also.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Best of both Worlds ==&lt;br /&gt;
Well, almost.&lt;br /&gt;
&lt;br /&gt;
* Graphical User Interfaces allow the users to point (either with a mouse or a finger/stylus on a touch sensitive screen) on and activate graphical elements on the screen, trying to resemble objects in our physical world. Icons can provide additional, non-textual information regarding the elements on the screen. Until one needs to actually enter data in a classical sense (by typing)&amp;lt;ref&amp;gt;I want to emphasize that using a mouse is also a perfectly valid data acquisition method. One example is the refinement of pixel based pictures. Automatic methods work only to a certain extent and some pixel-modifications still are best done by a hand guiding an input device to steer a cursor on screen.&amp;lt;/ref&amp;gt;, everything can be done with just one facility: The translation tool between the physical world and the logical world, most often the mouse but increasingly often by using fingers or a stylus. The user can actually guess which steps to take to complete a given task by contextual conjunction of screen content with expected outcome. The given task is often accomplished step by step instead of one go.&lt;br /&gt;
* Command Line Interfaces aim to minimize often time consuming interaction between user and system and sacrifice this by expecting that the user knows which command(s) to enter for a given task to be done. Often a command is started and runs without intervention until the task is complete. Complex tasks usually result in long commands-with-options (or chained commands via [[wikipedia:Pipeline (Unix)|pipes]]), usually requiring a lot of typing. This is somewhat leveraged by the advent of [[wikipedia:Command-line completion|Autocompletion]] capable command shells.&lt;br /&gt;
&lt;br /&gt;
Some (rare) tasks feature very high complexity which makes it almost impossible to create an user friendly Graphical User Interface to collect parameters, while maintaining a certain amount of intuitive UI design Graphical User Interfaces are praised for. Seen from another point of view: Graphical User Interfaces hide complexity and sacrifice that with less flexibility.&lt;br /&gt;
&lt;br /&gt;
Use the right tool for the task in front of you. This is a fundamental statement holding true for every task in computing&amp;lt;ref&amp;gt;And in real life.&amp;lt;/ref&amp;gt; and is not restricted to Unix environments.&lt;br /&gt;
&lt;br /&gt;
== How the AS/400 Text-UI works ==&lt;br /&gt;
The AS/400 was created as a business aid. This comes down to efficient handling of structured data that has to be entered, processed, stored, reviewed and maybe printed. The system was designed to help people interact in a reasonably user friendly way with it with the then state of the art technology: Character based interfaces utilizing a Keyboard for command and data input, and a CRT Screen for immediate display of the system&#039;s responses.&amp;lt;ref&amp;gt;Keep in mind that commercial and scientifical computing relied on punched card decks for input and paper prints for output right into the 1970s: Classical Batch Processing.&amp;lt;/ref&amp;gt; But this doesn&#039;t automatically equate to a command line interface.&lt;br /&gt;
&lt;br /&gt;
The AS/400 has a unique feature that distinguishes it from other character based systems, like Unix: The whole UI revolves mainly around forms and menus, accompanied by static text. The layouts of these screens are somewhat standardized. AS/400 screens are very recognizable because of this.&lt;br /&gt;
&lt;br /&gt;
[[File:Main-menu.png|thumb|right|German Main Menu after Signon.]]&lt;br /&gt;
The classic AS/400 green screen consists of numbered menu items with an input line beneath. One may enter a number and press &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; to pick a menu choice. Or someone may enter a command with accompanying parameters into the same space, if one knows what to enter. If one doesn&#039;t know the exact parameters and allowed values of a command, a keypress of &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; invokes a full screen form for the requested command, aiding the user in choosing the right parameters for the desired action to be taken.&lt;br /&gt;
&lt;br /&gt;
Sometimes, choosing a menu item reveals another menu. Sometimes a form with text input fields is displayed for the user to fill in needed parameters, so the command may be run with the desired outcome. Rarely no parameters are supported and the command just runs.&lt;br /&gt;
&lt;br /&gt;
For every editable field on the screen, the user is allowed to place the cursor there and again press &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; to be presented with &#039;&#039;another&#039;&#039; screen, listing allowed values for this particular parameter.&amp;lt;ref&amp;gt;Interestingly, there are situations when you are forced to enter data from your (brain based) memory into a field instead of the system letting the user choose from available choices on another &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt;-invoked screen. A notable example is when you want to create a &#039;&#039;line description&#039;&#039; configuration object, you&#039;ll need to do a manual lookup of available hardware IDs before.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this facility also fails to provide proper enlightenment, one may press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; at any time to invoke a [[wikipedia:Context-sensitive_help|context-sensitive]]&amp;lt;ref&amp;gt;This means: The shown help text is different for different cursor positions on the screen.&amp;lt;/ref&amp;gt; help text, which is almost always surprisingly helpful&amp;lt;ref&amp;gt;Compared to the help texts in early Windows operating systems.&amp;lt;/ref&amp;gt;. See [[CL Tricks]] for an overview. These features are unique among text based UIs.&lt;br /&gt;
&lt;br /&gt;
The ubiquitous &#039;&#039;command shell&#039;&#039; of Unix, Mac OS X, Windows and others is restricted to commands to be entered, together with (sometimes mandatory) parameters. Commands are entered into the last line of the terminal window. Output from commands appears over this line and scrolls to the top until it&#039;s out of sight&amp;lt;ref&amp;gt;Depending on the terminal emulator, a scrollback-buffer can be configured to allow retrieval of older output messages within the GUI.&amp;lt;/ref&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Any help for a command&#039;s parameters must be invoked by separate facilities (e.&amp;amp;thinsp;g. invoking the command with a [[wikipedia:Command-line interface#Command-line option|parameter]] to show an usually terse online help, or by reading Unix [[wikipedia:man page|Man-Pages]]), and manually complete the command line by re-entering the needed command options.&amp;lt;ref&amp;gt;The only other known system with a comparable function is Apple&#039;s legacy Unix system &#039;&#039;A/UX&#039;&#039;: Double-clicking a command (as opposed to an Application Program) opens a modal graphical display box, helping in completing the command line utilizing familiar graphical UI elements.&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Concluding: The AS/400 is located somewhere in between GUI and CLI. As one might see now, intuitive user interfaces must not necessarily equate to being graphic (pixel-based).&lt;br /&gt;
* CLIs are unintuitive because their cursors blink at the user, patiently waiting for a command to be entered but hinting no clue what to type.&amp;lt;ref&amp;gt;Entering &amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt; within a &#039;&#039;bash&#039;&#039; Linux Command Line prints overwhelming 46 lines of internal commands. The important lines how to actually get more help have scrolled out of the usual 80×25-Window.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* AS/400 menus, forms and GUIs present structured information to the user that (hopefully) guide the user to take the right steps for completing a given task. They &#039;&#039;interact&#039;&#039; with the user.&lt;br /&gt;
&lt;br /&gt;
== Why still text, then? ==&lt;br /&gt;
Someone might object that if there&#039;s no operational difference between GUIs and AS/400 menus/forms regarding intuitive handling of the system, why does the modern AS/400 still lack a GUI? Well, only IBM can answer this question without making guesses. If I should make a guess, I&#039;d say: Because it would be a change that&lt;br /&gt;
# just isn&#039;t implementable with hardware already bought by customers,&lt;br /&gt;
# existing applications would only take minor advantage of (if any!),&lt;br /&gt;
# it would upset system operators who mostly learned to love the text UI.&lt;br /&gt;
&lt;br /&gt;
[[File:Main-menu-wsg.png|thumb|right|Main Menu shown in a browser&#039;s window through &#039;&#039;Workstation Gateway&#039;&#039;.]]&lt;br /&gt;
IBM tried to make the AS/400 more click&#039;n&#039;pointy. There is a facility called &#039;&#039;Workstation Gateway&#039;&#039;&amp;lt;ref&amp;gt;Usually available on &#039;&#039;&amp;lt;nowiki&amp;gt;http://your-as400-ip:5061/wsg&amp;lt;/nowiki&amp;gt;&#039;&#039; after starting the appropriate TCP service.&amp;lt;/ref&amp;gt;, translating AS/400 screen elements on the fly into their HTML counterpart, if existing. It basically works and it&#039;s clickable but it looks gross compared to modern standards: No icons, no color, no eye candy.&lt;br /&gt;
&lt;br /&gt;
There&#039;s a program called &#039;&#039;Operations Navigator&#039;&#039; that comes as a Client Application, running (only) on Windows, providing graphical equivalents of some operating system commands/tasks. Some things (like the management of the integrated CIFS/SMB-Server) could be configured solely with &#039;&#039;OpNav&#039;&#039; but not with Green Screen commands and forms.&amp;lt;ref&amp;gt;If you find out who took this decision, please let me know. I&#039;d love to unload some serious cusses on him.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the Configuration of the IBM http server is done via Web Browser, and CGI-Programs running on the AS/400. Unfortunately, this facility is painfully slow, at least on a 150. Not exactly the best promotion for IBM, trying to convince programmers and system administrators to abandon text interfaces in favor to Web Based Applications.&amp;lt;ref&amp;gt;Fortunately, the [[IBM HTTP-Server for AS/400 Configuration|configuration]] is text based and saved in a database file.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, the main reason for IBM retaining the text interface is compatibility. For the rest of us, the fact that they&#039;re displayed very quickly with a lot less of resources (memory, data transfer speed, cpu cycles) needed when compared to a graphical UI is possibly of equal importance.&lt;br /&gt;
&lt;br /&gt;
Concluding, the majority of information we humans consume is still text. We look at web pages, word processing documents and read PDF files in the digital world. Graphical UIs make it easier to fake screen output into &#039;&#039;looks like a book&#039;&#039;, with nice fonts, screen antialiasing and very high resolution displays like Apple&#039;s Retina Display, first introduced on the iOS platform. And it truly makes a difference! Reading long texts is easier from paper or such screens compared to a typewriter page. Or a monospaced terminal screen, be it 5250 or VT100. &#039;&#039;&#039;But&#039;&#039;&#039; reading long texts isn&#039;t what&#039;s usually be done in terminals.&amp;lt;ref&amp;gt;MUDders and Zork-Players: I know you will gasp now. Sorry, but you&#039;re really the opposite of &#039;&#039;usually&#039;&#039;. Don&#039;t take it personal.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pros and Cons ==&lt;br /&gt;
… regarding AS/400 forms and menus versus GUIs:&lt;br /&gt;
* AS/400 forms and menus run in a space constrained area with an adressable matrix of either 80×24 or 132×27 characters. Larger screens provide larger characters but not more usable space. This is different with GUIs. Larger screens usually (can) display more pixels and as such (can) display more information concurrently. The former can be seen as a challenge for programmers to concentrate on necessary information for the immediate task at hand while omitting or postponing less important information to screens later in the necessary sequence. This could lead to improved clarity of the application&#039;s UI, and/or to the user losing overview by no longer seeing information that may be important for a given step of a task at hand. &lt;br /&gt;
* AS/400 forms and menus are built from tiny chunks of data compared to graphical UIs. So they can be transferred and displayed very fast. In environments where client and server are connected through high latency networks, GUIs perform poorly because of lagging response from the UI. Also, GUIs graphical representation must be built by program code running in part on the displaying client&#039;s CPU and GPU. Just displaying characters on a CRT can be done with comparatively tiny resources (a few kiB of RAM, and a processor clocked in the single-digit Megahertz range).&lt;br /&gt;
&lt;br /&gt;
The only feature the AS/400 UI itself lacks is [[wikipedia:Cut, copy, and paste|Copy &amp;amp; Paste]]. So by utilizing a terminal emulator on current GUI based desktop systems to connect to the AS/400 terminal session, one can benefit from the best of both worlds. Also, one may connect a [[Using the Mouse on a Hardware Terminal|PS/2-Mouse to certain IBM terminals]], also providing facilities for selecting and duplicating text.&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Musings]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Main_Page&amp;diff=1261</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Main_Page&amp;diff=1261"/>
		<updated>2023-01-22T22:58:21Z</updated>

		<summary type="html">&lt;p&gt;Mlc: typografische Apostrophen, Großschreibung an Engl. angepaßt. Keine inhaltlichen Änderungen.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Wiki is intended to help average computer users (probably you) who also are curious about &#039;&#039;&#039;AS/400&#039;&#039;&#039;, &#039;&#039;&#039;iSeries&#039;&#039;&#039;, or &#039;&#039;&#039;IBM i&#039;&#039;&#039; to get started with the system. The platform is in parts dramatically different from many you&#039;ve probably learned about before. This makes it hard to understand the underlying concepts. Additionally, there&#039;s a certain amount of &#039;&#039;slang&#039;&#039;. Without proper translation into terms we know, it&#039;s even more complicated to get going.&lt;br /&gt;
&lt;br /&gt;
Fortunately, there&#039;s a wealth of online resources available in the web. Unfortunately, these are scattered around, sometimes providing insight to special topics while omitting basic information for helping novice users to just get started.&lt;br /&gt;
&lt;br /&gt;
The intention of this information resource is trying to explain the platform in terms of, and comparison to, stuff you might be more familiar with.&lt;br /&gt;
&lt;br /&gt;
== Why? ==&lt;br /&gt;
The AS/400 is a huge area to explore. As you probably wouldn’t expect to learn &#039;&#039;everything Linux&#039;&#039; from reading three Wikipedia articles, you may possibly understand that this Wiki has a lot of content and is constantly growing and being filled with more information. Also, existing content is prone to being enhanced and corrected of errors. You may help with this by writing me to &amp;lt;[mailto:webhamster@pocnet.net webhamster@pocnet.net]&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
I had a hard time to learn and I want to make it easier for you to just get started.&lt;br /&gt;
&lt;br /&gt;
Most content in this Wiki is based on my own experiences with an older 9401-150 machine, running OS/400 V4R5 with latest patches, that is from the early 2000’s. When I describe different machines or OS releases, I‘ll indicate that in the text.&lt;br /&gt;
&lt;br /&gt;
Please read &#039;&#039;&#039;[[The Naming of the System]]&#039;&#039;&#039; for my thoughts regarding the regularly fought battle about &#039;&#039;It’s not an AS/400 anymore!&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;But why should you care for V4? The current version is V7.something!&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every OS does evolve over time. So does OS/400, or IBM i, as it’s called today. Windows Server 2019 bears a certain resemblance to Windows 2000 (not counting the UI changes!). Much stuff you learned in the 2000’s era is outdated and never needed again in modern systems, though. Mac OS 9 from 2001 bears only a slight resemblance to today’s OS X (or &#039;&#039;macOS&#039;&#039; as it’s now called). Most conventional platforms don’t just evolve, they change, often in incompatible ways.&lt;br /&gt;
&lt;br /&gt;
This is different with OS/400. Newer releases of OS/400 carry over &#039;&#039;almost&#039;&#039; all stuff you&#039;d know from V4. Most knowledge you acquired with just V4 isn’t worthless with V7. V7 has &#039;&#039;&#039;additional&#039;&#039;&#039; capabilities to learn.&lt;br /&gt;
&lt;br /&gt;
If you are interested in background information how and by whom the system was developed, see &#039;&#039;&#039;[[History]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
If you are interested in getting to know (more) about AS/400 basics, you may read &#039;&#039;&#039;[[About Green Screens and mouse-clickable UIs]]&#039;&#039;&#039; as well as about &#039;&#039;&#039;[[Features that separate the AS/400 from common computer systems]]&#039;&#039;&#039; to get a first glance what makes this platform so unique. This might provide a better decision-making about if you want to continue exploring the AS/400 beyond theoretical statements.&lt;br /&gt;
&lt;br /&gt;
Want to dive deep? You should decide if you want your own machine or if it’s sufficient to have remote access to a machine to start exploring as an ordinary user, without administrative rights. You may start with the latter and get your own machine at a later point in time, though.&lt;br /&gt;
&lt;br /&gt;
* [http://www.rzkh.de &#039;&#039;Holger Scherer&#039;&#039;] has been providing free access to an [http://pub400.com IBM i installation] hosted in his company’s bunker, for people to explore the system, learn and perhaps start programming.&lt;br /&gt;
* If you decide having your own machine is the way to go, I encourage you to start looking at internet auction sites and companies with IBM i expertise for a used box to eventually call [[Your own AS/400|your own]].&lt;br /&gt;
&lt;br /&gt;
The ever growing &#039;&#039;&#039;[[UNIX-User’s Cheater Table]]&#039;&#039;&#039; could probably be helpful in finding out a certain command when you know the command in UNIX, or Linux.&lt;br /&gt;
&lt;br /&gt;
If you’re coming from the IBM mainframe world, you’ll be relieved that many concepts are borrowed from the predecessors of z/OS. If there’s demand, I’ll probably add an extra article for an overview of similarities and differences.&lt;br /&gt;
&lt;br /&gt;
== A word on virtualization ==&lt;br /&gt;
Currently there is no known way to run OS/400 on (virtual) x86 platforms. OS/400 &#039;&#039;can&#039;&#039; be virtualized – on appropriate hardware, driven by IBM POWER CPUs. That is, some kind of IBM POWER based system. But if you have this hardware in the first place, virtualization is probably superfluous.&lt;br /&gt;
&lt;br /&gt;
OS/400 in recent versions can host LPARs for Linux, AIX, and itself, so it’s quite possible to have a good deal of integration the other way &#039;round.&amp;lt;ref&amp;gt;POWER 8 is the first CPU with complete little endian support, which is required by most free and current Linux distros like Debian (ppc64el). For older machines you need to find an appropriately older distro version that still supports big endian (PPC64) CPUs. Currently, Debian PPC64 support is unofficial. See [https://wiki.debian.org/SupportedArchitectures SupportedArchitectures] in the Debian Wiki.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
This selection of initial reading may be not applicable to your particular situation, maybe because you’re not (yet) owning an AS/400 or your box came with OS/400 preinstalled.&lt;br /&gt;
&lt;br /&gt;
* [[Getting started with the hardware]], and how to boot the system&lt;br /&gt;
* [[How to access your AS/400]]&lt;br /&gt;
* [[Basic Usage Instructions]]&lt;br /&gt;
* [[How to properly shut down your AS/400]]&lt;br /&gt;
&lt;br /&gt;
A little more advanced topics:&lt;br /&gt;
* [[Installing OS/400]]&lt;br /&gt;
* [[Basic System Administration Tasks explained]]&lt;br /&gt;
* [[Getting Data in and out of your AS/400]]&lt;br /&gt;
* [[Basic Software Development]]&lt;br /&gt;
&lt;br /&gt;
Regarding software development, it might be of interest to have a look at my [https://github.com/PoC-dev GitHub Projects Page].&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* From the English Wikipedia:&lt;br /&gt;
** [[wikipedia:IBM_System_i|IBM System i]]&lt;br /&gt;
** [[wikipedia:IBM_i|IBM i]]&lt;br /&gt;
&lt;br /&gt;
== Restrictions regarding this Wiki ==&lt;br /&gt;
This Wiki is &#039;&#039;read only&#039;&#039; for guest users because of frequent vandalism and spamming. Also, self-creating user accounts isn’t allowed for the very same reasons.&lt;br /&gt;
&lt;br /&gt;
Volunteers are very welcome, especially for correcting my possibly numerous syntactic errors and misplaced commas. Feel free write an e-mail to &amp;lt;[mailto:webhamster@pocnet.net webhamster@pocnet.net]&amp;gt; and I’ll add an account for you.&lt;br /&gt;
&lt;br /&gt;
I’m also happy with any feedback. Even if it’s only to say &#039;&#039;thank you&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Rules regarding this Wiki ==&lt;br /&gt;
Quality of the content comes before quantity. Also, to provide reasonable understandability and searchability for articles, please adhere to the following points:&lt;br /&gt;
* Keep a high quality of language,&lt;br /&gt;
** avoid spelling errors, slipshod procedure descriptions, and abstruse language.&lt;br /&gt;
* Name articles concise and distinctly (Wikis don’t provide a hierarchy),&lt;br /&gt;
** avoid repeating terms in several article names that are better used as a category name.&lt;br /&gt;
* Always add category-tags at end of articles. This permits automatic grouping of related articles and better retrieval if the search function doesn’t provide expected results.&lt;br /&gt;
* Add images sparsely and as additional reference only. Main explanation must be actual text, so&lt;br /&gt;
** automatic translation services can actually translate content,&lt;br /&gt;
** disabled persons can make better use of this Wiki.&lt;br /&gt;
* Don’t flood/plaster articles with full-size pictures. It strains the eyes to read!&lt;br /&gt;
* Adhere to Wikipedia Style when outlining articles:&lt;br /&gt;
** Begin articles with a sentence or two that roughly describes what the article is about, highlight keywords also appearing in the article name,&lt;br /&gt;
** Use separate sections for Weblink collections and footnotes at the very end of the article,&lt;br /&gt;
** Don’t use the Single-Equals sign for sections, this is already implied by the article heading.&lt;br /&gt;
* Be precise when mentioning actual products.&lt;br /&gt;
&lt;br /&gt;
Please consult me before introducing new categories.&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Musings]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=How_to_access_your_AS/400&amp;diff=1260</id>
		<title>How to access your AS/400</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=How_to_access_your_AS/400&amp;diff=1260"/>
		<updated>2023-01-20T22:10:20Z</updated>

		<summary type="html">&lt;p&gt;Mlc: /* Today */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Today, there are multiple ways to access an AS/400. This article is mainly about &#039;&#039;terminal access&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Terminal access is defined by transmission of cursor position, text, fields and their attributes as well as data from database tables, transferred according to a definition called &#039;&#039;[[wikipedia:IBM 5250|5250 data stream]]&#039;&#039;. This is somewhat analog to the well known [[wikipedia:VT100|VT100]] protocol in character-based terminal systems.&lt;br /&gt;
&lt;br /&gt;
Additionally, recent implementations of OS/400 feature ssh-Access. But it&#039;s different than one would think: This facility provides shell access to the built-in UNIX environment, called PASE. See [[The Split Personality of OS/400]].&lt;br /&gt;
&lt;br /&gt;
== Block- versus character-oriented transmissions ==&lt;br /&gt;
However, a huge difference between those is that with the former, the user is presented with a form, to look at and/or fill out. Changes are only made locally, in the memory of the terminal or emulator. When everything is finished, a special key is pressed and the form is transmitted in its entirety back to the host for processing.&amp;lt;br /&amp;gt;&lt;br /&gt;
This is quite like a HTML form being displayed and filled out in a browser window, getting also transferred back in its entirety by pressing the &#039;&#039;submit&#039;&#039;-button.&amp;lt;ref&amp;gt;It is rarely labelled like that today, though.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is in stark contrast to terminals in the Unix world, where the host is handling communications and screen appearance itself. Every single keypress will go back to the host, trigger an action, based on which appropriate data will be sent back to the terminal for updating on-screen content.&lt;br /&gt;
&lt;br /&gt;
Block oriented protocols like 5250 (and 3270) were useful when computing resources were scarce. Imagine hundreds of users typing data into fields of forms and thus interrupting the CPU for simple cursor movement and character-echoing.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the other hand, block-oriented transmissions have drawbacks in interactivity. The user can only do what the protocol permits locally. Such stuff as incremental search as one types a search string while the application narrows possible matches with every additional character from that string is not possible in block oriented mode.&amp;lt;ref&amp;gt;Through special programming techniques, it is indeed possible to achieve such a high grade of interactivity. It is simply based on really frequent data exchange with the host. But since the whole machine and OS are built around this block-oriented approach, it is ugly to implement, creates additional processing load on the machine and thus will most likely affect other users on the same machine.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
Historically, all access to the machine involved terminal sessions which were established with, well, terminals: A combination of a CRT display, a controller chip and a keyboard. Rarely accompanied by the possibility to connect a PS/2 mouse.&amp;lt;ref&amp;gt;Example: IBM 3486, which also provided a graphical rendition of some on-screen objects, like window frames.&amp;lt;/ref&amp;gt; Today, they&#039;re called &#039;&#039;dumb&#039;&#039; which is plainly wrong. These terminals included a basic SNA stack and coded logic for local processing of input and screen appearance. They&#039;re not quite as dumb as, say, a VT100.&amp;lt;br /&amp;gt;&lt;br /&gt;
Terminals were attached through [[wikipedia:Twinaxial cabling|Twinaxial Cables]], thick as a small finger with bulky connectors. The whole system was expensive, complicated to run through a building (because of a large minimum bending radius) but rock solid.&lt;br /&gt;
&lt;br /&gt;
An AS/400 could utilize at least one twinax controller (board) with at least four independent ports for daisy chaining terminals. Because the terminals ran a subset of SNA, they could be daisy chained, easing cabling requirements somewhat. Transmission rate was 1&amp;amp;thinsp;Mbit/s per port, providing almost instant screen updates.&amp;lt;ref&amp;gt;Compare that with the 9600&amp;amp;thinsp;bps of standard ASCII terminals of that era.&amp;lt;/ref&amp;gt; There were controllers available with supported eight-port bricks as well. Bigger machines could have multiple twinax controllers inside to support hundreds of terminals simultaneously.&lt;br /&gt;
&lt;br /&gt;
Today, the twinax attachment is still a necessity with old hardware, since it provides console services, for OS installation and running backups without any users keeping files open. And for troubleshooting, of course. See also details to the [[Your own AS/400#Console|Console]].&lt;br /&gt;
&lt;br /&gt;
=== Twinax without terminals ===&lt;br /&gt;
IBM and other manufacturers built [[wikipedia:Industry Standard Architecture|ISA cards]] and provided software for MS-DOS and early Windows versions for accessing AS/400 terminal sessions over twinax. These combination behaved like a true hardware terminal.&lt;br /&gt;
&lt;br /&gt;
Apple once built a combined coax/twinax card. The coax port was used for connecting to communication controllers attached to a mainframe, to support 3270 terminal sessions. Unfortunately, there seems to be no software support for the twinax port ever being implemented.&lt;br /&gt;
&lt;br /&gt;
=== ASCII Terminals ===&lt;br /&gt;
IBM provided expansion cards for SPD-slot based machines called &#039;&#039;ASCII Workstation Controller&#039;&#039;. These boards and SLIC integrated firmware allowed the attachment of standard serial terminals (vt100 and the like) to the AS/400, as a way of investment protection. They handled the steady data flow from users typing and protocol conversion from 5250 to vt100 and other then-standard protocols of that era.&lt;br /&gt;
&lt;br /&gt;
=== Network-attached gateway solutions ===&lt;br /&gt;
For very slow machines it could be of certain interest to minimize the usage of IP on the machine itself, to save CPU cycles for processing of actual data.&amp;lt;ref&amp;gt;Transferring binary stream files to or from IFS with FTP over a standard 10&amp;amp;thinsp;Mbit/s adapter easily brings the CPU of a 9401-150 to 100&amp;amp;thinsp;% load. Transferring data with SNADS over 16&amp;amp;thinsp;Mbit/s Token Ring yields about 30&amp;amp;thinsp;% CPU load.&amp;lt;/ref&amp;gt; Multiple solutions exist(ed) for communicating solely via SNA to AS/400s, and mainframes:&lt;br /&gt;
* &#039;&#039;Apple SNA•ps&#039;&#039; was the outcome of a collaboration with IBM in the early 1990s. Orion Software programmed a gateway and client applications for terminal access and printing in both 5250 and 3270 worlds, that permitted en-/decapsulating APPC traffic in/from AppleTalk. Hardware attachment was provided by a combined Coax/Twinax-Card, a Token Ring Card or a multiport Serial Card for SDLC transport. Each of these NuBus cards featured their own m68k CPU and between 0.5 to 2.5&amp;amp;thinsp;MiB of local RAM. Part of the gateway software runs on that CPU.&amp;lt;br /&amp;gt;Included is additional software and documentation for developing custom solutions based on APPC over AppleTalk.&lt;br /&gt;
* &#039;&#039;[https://en.wikipedia.org/wiki/Microsoft_Host_Integration_Server Microsoft SNA Server]&#039;&#039; is a gateway solution for SNA communications running on Microsoft Windows Server systems. It provides protocol conversion between SNA and IP based telnet protocols (tn3270, tn5250) as well as printing services by obtaining spooled files from AS/400 printer queues and either saving it as a local text file or sending it to the Windows printing system. It also provides protocol conversion services for database access via OLE and ODBC. Additionally, it exploits the AS/400 &#039;&#039;shared folder subsystem&#039;&#039; to re-export folders within &#039;&#039;/QDLS&#039;&#039; with standard Windows SMB protocol provided by the Windows operating system. Microsoft SNA Server evolved to the &#039;&#039;Microsoft Host Integration Server&#039;&#039;, that is still in active development.&lt;br /&gt;
* &#039;&#039;Novell Netware for SAA&#039;&#039; was an enhancement for Netware installations. Details will be provided when I had time to install and test this software.&lt;br /&gt;
* &#039;&#039;IBM Communications Manager/2&#039;&#039; was an enhancement for OS/2, providing similar services.&lt;br /&gt;
&lt;br /&gt;
=== Branch Office Solutions ===&lt;br /&gt;
IBM and other vendors offered terminal multiplexors for twinax-based 5250 nodes, to enable a single leased line being shared by multiple terminals in a branch office. Leased-line capable modems provided the physical connection. The protocol involved SNA over SDLC. Examples are the IBM 5394 Twinax Remote Controller or the Perle 594M.&lt;br /&gt;
&lt;br /&gt;
Cisco Systems offers some features within their router software, IOS, to help integrate IBM SNA into the conventional LAN and WAN world. There are certain combinations of Routers and IOS Features in a given image, sometimes accompanied by the need to purchase a license key, that enable to exploit these SNA integration services. See the [https://www.cisco.com/go/fn Cisco Feature Navigator] for finding appropriate combinations. A selection of probably interesting solutions:&lt;br /&gt;
* STUN provides a transparent back to back serial port connection for SDLC communication over existing IP networks. This involves the addition of compatible serial port add-on cards with appropriate cabling to the router.&lt;br /&gt;
* (Remote) Source Route Bridging provides the extension of physical token ring media via virtual bridges over Ethernet or even TCP connections.&lt;br /&gt;
* SNA Switching Services provide PU (physical unit), LU (logical unit) and session services to SNA hosts to eliminate the need for bridging whole networks over WAN links. Usually, connections are initiated from the IBM hosts over Token Ring, Ethernet and probably other media. This enables a router to be the central hub of an APPN network. Every node just needs a connection (PU) definition to the router while the router handles establishment of direct LU-LU APPC connections between peers.&amp;lt;br /&amp;gt;SNAsw can be combined with (R)SRB or Enterprise Extender&amp;lt;ref&amp;gt;IBMs own implementation of transporting SNA/APPC traffic over IP.&amp;lt;/ref&amp;gt; to provide true APPN functionality over WAN (VPN) connections. Unfortunately, this code proved to be in bad shape. Certain combinations of configuration parameters tend to crash IOS in such a way that a power cycle is necessary to get the router back to life. Worse, this crashes aren&#039;t easy to relate to certain network activity: Routers may run for days until they halt for no apparent reason. Sometimes, they just reload when initiating a bulk data transfer.&amp;lt;ref&amp;gt;Seen with Cisco 2901 routers, IOS 15.4(3)M9 SNAsw Port definition on an Ethernet Subinterface with VLAN tagging, and a second &#039;&#039;Virtual-Tokenring&#039;&#039;, connecting another Router via RSRB.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More modern solutions are provided by LAN-attached terminal servers, having Twinax-Ports for Terminals or Printers and an Ethernet-Port for LAN attachment. Communication takes place via tn5250 on the LAN side that makes it possible to use existing IP based VPNs for providing remote access. One notable example is the [http://www.bosanova.net/twinaxcontroller/index.html BOSCOM e-Twin@x-Controller].&lt;br /&gt;
&lt;br /&gt;
== Today ==&lt;br /&gt;
Today, most accesses to terminal sessions will take place over ordinary LAN (Ethernet) attachment, IP as transport and tn5250 as high-level protocol. See above for possible drawbacks of this.&lt;br /&gt;
&lt;br /&gt;
Some manufacturers built so called &#039;&#039;smart terminals&#039;&#039; with an integrated tn5250 emulator and an ordinary ethernet port for integration in today’s IP networks.&lt;br /&gt;
&lt;br /&gt;
There are multiple software-based tn5250 clients available, for free and for a fee, and for many operating systems. I strongly recommend utilizing one of those because they usually just work. My favorite is [http://www.mochasoft.dk/tn5250macx.htm Mocha TN5250 for macOS]. It runs very stable, has a sensible mapping of special keys and a support that at least answers to email requests.&amp;lt;ref&amp;gt;Additionally, they released their older programs as freeware, which is a very nice thing to do. Unfortunately, a 5250 client for 68k based Macs isn’t available. This can only be accomplished with SNA•ps, see above.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Editing Database Files and other Data]],&lt;br /&gt;
* [[Getting Data in and out of your AS/400]].&lt;br /&gt;
&lt;br /&gt;
=== Client Setup ===&lt;br /&gt;
Since &#039;&#039;tn5250&#039;&#039; is a protocol with proper standardization, clients share some configuration options. For starters, I strongly recommend to leave any settings at default. You &#039;&#039;&#039;must&#039;&#039;&#039; change connection relevant parameters, though:&lt;br /&gt;
* Hostname or IP address to connect to,&lt;br /&gt;
* SSL yes or no, (mostly no for self-owned boxes, SSL needs additional setup on the AS/400 itself).&lt;br /&gt;
&lt;br /&gt;
You &#039;&#039;&#039;may&#039;&#039;&#039; change secondary parameters, if necessary:&lt;br /&gt;
* EBDIC code page, (for umlauts, etc.)&lt;br /&gt;
* TCP port to connect to, (if not running on default)&lt;br /&gt;
* Terminal type, (monochome/color and 24×80 only vs. additionally 27×132)&lt;br /&gt;
&lt;br /&gt;
You should &#039;&#039;&#039;not&#039;&#039;&#039; change:&amp;lt;ref&amp;gt;Without knowing the implications.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Device name.&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
It is indeed possible to use plain VT100 over telnet to access AS/400s. The machine (or part of it) will see increased load because of the host based protocol handling when just typing into a terminal. In practice this effect is negligible, especially when there were only half a dozen users working.&lt;br /&gt;
&lt;br /&gt;
Depending on the emulator software (the client) there may be issues with special chars in other languages than english. Sometimes, function keys will not work or function keys larger &amp;lt;code&amp;gt;F12&amp;lt;/code&amp;gt; cannot be accessed. Additionally, special command keys like System Request or Attention have no equivalent on a standard PC keyboard.&lt;br /&gt;
&lt;br /&gt;
For these reasons, I strongly recommend utilizing a real 5250 client.&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://kb.pocnet.net/wiki/Apple_SNA•ps_Konfiguration_für_5250-Sitzungen Apple SNA•ps Konfiguration für 5250-Sitzungen], PoCnet Knowledgebase.&lt;br /&gt;
* [https://en.wikipedia.org/wiki/A/ROSE Apple Real-time Operating System Environment], Wikipedia.&lt;br /&gt;
* [https://www.cisco.com/c/en/us/td/docs/ios/bridging/configuration/guide/15_2s/br_15_2s_book.pdf Bridging and IBM Networking Configuration Guide], PDF.&lt;br /&gt;
&lt;br /&gt;
[[Category: Basic Knowledge]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Integrating_LAN-less_Machines_into_a_local_Token_Ring&amp;diff=1259</id>
		<title>Integrating LAN-less Machines into a local Token Ring</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Integrating_LAN-less_Machines_into_a_local_Token_Ring&amp;diff=1259"/>
		<updated>2023-01-20T22:02:36Z</updated>

		<summary type="html">&lt;p&gt;Mlc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes, older, donated hardware comes without LAN I/O-adapters. Sometimes it has serial communication I/O-adapters, and Twinax, though. This article points out how to integrate such hardware into a local Token Ring network with the help of (older) Cisco hard- and software.&lt;br /&gt;
&lt;br /&gt;
This description is based on a proven to work setup. Surely, there are further ideas to explore, such as bridging the ring to Ethernet for SNA communications to Ethernet connected nodes, or eliminate the ring altogether by replacing it with just a &#039;&#039;Virtual-TokenRing&#039;&#039; interface on the Cisco router.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
[[File:AS400-SDLC-Cisco-Ring-AS400.png|thumb|right|Network Plan]]&lt;br /&gt;
[[File:IBM 2652.jpg|thumb|right|6152 Adapter, located in a P02]]&lt;br /&gt;
[[File:IBM 2609.jpg|thumb|right|2609 Adapter socket, located in a P03]]&lt;br /&gt;
[[File:IBM 2609-plugged.jpg|thumb|right|2609 Plug with heavy cable]]&lt;br /&gt;
[[File:IBM 2609 Brick.jpg|thumb|right|2609 Breakout-Brick — note that the Cisco cable is plugged directly which is &#039;&#039;&#039;wrong&#039;&#039;&#039;, and only shown for illustration purposes.]]&lt;br /&gt;
* AS/400, complete and functioning&lt;br /&gt;
** &amp;lt;code&amp;gt;QAUTOCFG&amp;lt;/code&amp;gt; system variable switched to on&lt;br /&gt;
** Local serial port with required breakouts, such as a #2609, or a #2652&lt;br /&gt;
** IBM V.24 Modem Cable&amp;lt;ref&amp;gt;If the machine was attached to a modem in earlier times, and you obtained all the cables, all requirements are satisfied.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note!&#039;&#039;&#039; It is of utmost importance to keep in mind that the AS/400 serial ports have &#039;&#039;sense pins&#039;&#039;, to know which kind of cable is attached. If you plug in just an ordinary PC serial cable, you’ll eventually find the succinct message in the QSYSOPR message queue, that a cable could not be found. Therefore the requirement of an &#039;&#039;IBM V.24 Modem Cable&#039;&#039;, or a self made cable providing the necessary sense pin connectivity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For this reason, you&#039;ll need to plug the DB-25S socket connector of the Cisco cable to the modem cable, and not directly to the AS/400’s port.&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Cisco 2502, 2513, 2612 or similar router model with Token Ring interface (card), and a T-Type serial interface (card), running an IOS release with the &#039;&#039;Desktop&#039;&#039; featureset (BINO3S3) for SDLC support. &lt;br /&gt;
** Cisco CAB-232 FC&lt;br /&gt;
* Other AS/400, complete and functioning, attached and already configured to use a Token Ring LAN&lt;br /&gt;
** &amp;lt;code&amp;gt;QAUTOCFG&amp;lt;/code&amp;gt; system variable switched to on&lt;br /&gt;
&lt;br /&gt;
== SDLC configuration on AS/400 ==&lt;br /&gt;
* After plugging everything together like pointed out above, the serial-only machine is to be configured. Type &#039;&#039;WRKHDWRSC *CMN&#039;&#039; to get a list of communication hardware, and associated ports. Example:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Resource        Type  Text&#039;&#039;&#039;&lt;br /&gt;
 CMB01           917B  Combined function IOP&lt;br /&gt;
   LIN01         2609  Comm Adapter&lt;br /&gt;
     LIN011      2609  V.24 Port&lt;br /&gt;
     LIN012      2609  V.24 Port&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note!&#039;&#039;&#039; OS/400 V3 seems to not designate ports as &#039;&#039;CMN&#039;&#039;, but as &#039;&#039;LIN&#039;&#039; with three digits. Newer releases designate ports on an adapter as &#039;&#039;CMN&#039;&#039;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Next, the controller description (equivalent to a PU definition in VTAM) to the peer system is to be created. This needs to be done before the line description, because it is referenced there.&lt;br /&gt;
 CRTCTLAPPC CTLD(OTHERHOST) LINKTYPE(*SDLC) MAXFRAME(1033) RMTCPNAME(REMOTEAS) STNADR(C0) NODETYPE(*CALC) TMSGRPNBR(*CALC) AUTODLTDEV(*NO) CMNRCYLMT(10 1)&amp;lt;ref&amp;gt;Note that this is an example configuration for integrating a new machine into an existing APPN network. Thus, CTLD, and RMTCPNAME might not match the Token Ring AS/400’s settings.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Armed with this, a line description is to be created, and the controller decription referenced:&lt;br /&gt;
 CRTLINSDLC LIND(SDLCLIN) RSRCNAME(LIN011) NRZI(*NO) LINESPEED(19200)&amp;lt;ref&amp;gt;Depending on I/O-adapter and machine model, this might parameter limited to higher or lower values.&amp;lt;/ref&amp;gt; MAXFRAME(1033) DUPLEX(*FULL) LINKSPEED(19200) CTL(OTHERHOST) CMNRCYLMT(10 1)&lt;br /&gt;
* I suggest to run WRKCTLD and manually set the SWTDSC (press F11) to *NO. Otherwise, you’ll get a log of unneeded messages about torn down connections. It depends on the OS release if this option shows up.&lt;br /&gt;
* Because auto configuration is enabled, the device description (equivalent to a LU definition in VTAM) for the peer system will be created automatically at the first connection.&lt;br /&gt;
* &#039;&#039;REMOTEAS&#039;&#039; in the controller description is the Token Ring machine.&lt;br /&gt;
&lt;br /&gt;
== Configuration on the Cisco router ==&lt;br /&gt;
Assumption is that the router has already a basic configuration applied. This includes the Token Ring interface.&lt;br /&gt;
&lt;br /&gt;
 source-bridge ring-group 512&lt;br /&gt;
 dlsw local-peer&lt;br /&gt;
 !&lt;br /&gt;
 interface Serial0/0&lt;br /&gt;
  bandwidth 19&lt;br /&gt;
  no ip address&lt;br /&gt;
  encapsulation sdlc&lt;br /&gt;
  load-interval 60&lt;br /&gt;
  clock rate 19200&lt;br /&gt;
  sdlc role prim-xid-poll&lt;br /&gt;
  sdlc vmac 0004.acad.5900&lt;br /&gt;
  sdlc address C0&lt;br /&gt;
  sdlc partner 0004.acad.50d5 C0&lt;br /&gt;
  sdlc line-speed 19200&lt;br /&gt;
  sdlc simultaneous full-datmode&lt;br /&gt;
  sdlc dlsw C0&lt;br /&gt;
  hold-queue 128 out&lt;br /&gt;
  no shutdown&lt;br /&gt;
 !&lt;br /&gt;
 interface TokenRing0/0&lt;br /&gt;
  […]&lt;br /&gt;
  source-bridge 59 1 512&lt;br /&gt;
&lt;br /&gt;
Proven to work:&lt;br /&gt;
* Cisco 2513 with Image C2500-DOS-L, Version 12.2(29b)&amp;lt;ref&amp;gt;This means, a Cisco 2502 (Token Ring and two T-type serial ports) will also work.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Cisco 2612 with added WIC-1T, and image C2600-BINO3S3, Version 12.3(26)&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* &amp;lt;code&amp;gt;sdlc vmac&amp;lt;/code&amp;gt; is the virtual MAC address the SDLC AS/400 is assigned on the Token Ring. The last byte &#039;&#039;&#039;must&#039;&#039;&#039; be 00, while IOS sets the last byte to the SDLC address being given later.&lt;br /&gt;
* &amp;lt;code&amp;gt;sdlc address&amp;lt;/code&amp;gt; must be the same value as the STNADR parameter in the controller description.&lt;br /&gt;
* &amp;lt;code&amp;gt;sdlc partner&amp;lt;/code&amp;gt; creates an association from the already existing AS/400’s MAC address on the Token Ring to the SDLC address of the SDLC-AS/400.&lt;br /&gt;
* &amp;lt;code&amp;gt;clock rate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sdlc line-speed&amp;lt;/code&amp;gt; must match each other, and the LINESPEED parameter of the line description.&lt;br /&gt;
* &amp;lt;code&amp;gt;sdlc simultaneous full-datmode&amp;lt;/code&amp;gt; corresponds (most likely&amp;lt;ref&amp;gt;There are also &#039;&#039;half-duplex&#039;&#039; and &#039;&#039;full-duplex&#039;&#039; commands to configure an interface which aren&#039;t used here.&amp;lt;/ref&amp;gt;) to the line description&#039;s &#039;&#039;DUPLEX(*FULL)&#039;&#039;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;source-bridge&amp;lt;/code&amp;gt; statement in the physical Token Ring interface gives the attached ring the number 59, designates it to the source bridge 1, and bridges traffic to the virtual ring (group) 512.&lt;br /&gt;
&lt;br /&gt;
Unclear:&lt;br /&gt;
* How is the serial interface’s traffic redirected to the ring group 512? The group number is referenced globally, and in the Token Ring interface, which hints to the fact that you can’t use this in a complex configuration with more than one ring group, probably?&lt;br /&gt;
&lt;br /&gt;
== Initiation, and function verification ==&lt;br /&gt;
* On the SDLC-AS/400 vary on line and controller descriptions:&lt;br /&gt;
 VRYCFG CFGOBJ(SDLCLIN) CFGTYPE(*LIN) STATUS(*ON)&lt;br /&gt;
* After a brief pause, the Cisco console should show that the serial port goes up:&amp;lt;ref&amp;gt;If you’re connected remotely, make sure you’ve set &amp;lt;code&amp;gt;term moni&amp;lt;/code&amp;gt;.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 %LINK-3-UPDOWN: Interface Serial0/0, changed state to up&lt;br /&gt;
 %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up&lt;br /&gt;
* On the SDLC-AS/400, looking into the QSYSOPR-Message Queue should show that the line has successfully been varied on, and a connection to the controller &#039;&#039;OTHERHOST&#039;&#039; has been established through SDLCLIN.&lt;br /&gt;
* On the Cisco Router, you should see output of &amp;lt;code&amp;gt;show line ser0/0&amp;lt;/code&amp;gt; similar to the following:&lt;br /&gt;
 Serial0/0 is up, line protocol is up &lt;br /&gt;
   Hardware is PowerQUICC Serial&lt;br /&gt;
   MTU 1500 bytes, BW 19 Kbit, DLY 20000 usec, &lt;br /&gt;
      reliability 255/255, txload 1/255, rxload 1/255&lt;br /&gt;
   Encapsulation SDLC, loopback not set&lt;br /&gt;
     Router link station role: PRIMARY (DCE)&lt;br /&gt;
     Router link station metrics:&lt;br /&gt;
       slow-poll not configured&lt;br /&gt;
       T1 (reply time out) 300 milliseconds&lt;br /&gt;
       N1 (max frame size) 16472 bits&lt;br /&gt;
       N2 (retry count) 7 &lt;br /&gt;
       poll-pause-timer 10 milliseconds&lt;br /&gt;
       poll-limit-value 1&lt;br /&gt;
       k (windowsize) 7&lt;br /&gt;
       modulo 8&lt;br /&gt;
       sdlc vmac: 0004.ACAD.59--&lt;br /&gt;
   sdlc addr C0 state is CONNECT&lt;br /&gt;
       cls_state is CLS_IN_SESSION&lt;br /&gt;
       VS 5, VR 6, Remote VR 5, Current retransmit count 0&lt;br /&gt;
       Hold queue: 0/200 IFRAMEs 1109/1325&lt;br /&gt;
       TESTs 0/0 XIDs 2258/19, DMs 0/0 FRMRs 0/1&lt;br /&gt;
       RNRs 1/0 SNRMs 10/0 DISC/RDs 3/1 REJs 0/0&lt;br /&gt;
       Poll: clear, Poll count: 0, ready for poll, chain: C0/C0&lt;br /&gt;
   Last input never, output 00:00:00, output hang never&lt;br /&gt;
   Last clearing of &amp;quot;show interface&amp;quot; counters 1d17h&lt;br /&gt;
   Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0&lt;br /&gt;
   Queueing strategy: fifo&lt;br /&gt;
   Output queue: 0/128 (size/max)&lt;br /&gt;
   1 minute input rate 0 bits/sec, 49 packets/sec&lt;br /&gt;
   1 minute output rate 0 bits/sec, 49 packets/sec&lt;br /&gt;
      7467200 packets input, 15548792 bytes, 0 no buffer&lt;br /&gt;
      Received 0 broadcasts, 0 runts, 21 giants, 0 throttles&lt;br /&gt;
      21 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort&lt;br /&gt;
      7468810 packets output, 15116960 bytes, 0 underruns&lt;br /&gt;
      0 output errors, 0 collisions, 26 interface resets&lt;br /&gt;
      0 output buffer failures, 0 output buffers swapped out&lt;br /&gt;
      10 carrier transitions&lt;br /&gt;
      DCD=up  DSR=up  DTR=up  RTS=up  CTS=up&lt;br /&gt;
&lt;br /&gt;
* On the Cisco Router, you should see output of &amp;lt;code&amp;gt;show dlsw local-circuit&amp;lt;/code&amp;gt; similar to the following:&lt;br /&gt;
  key         mac-addr    sap    state        port 	rif&lt;br /&gt;
 2197187452   0004.acad.59c0 04  CONNECTED      Se0/0 	--no rif--&lt;br /&gt;
                  PCEP: 82AB8B88  UCEP: 82F66B7C&lt;br /&gt;
           0004.acad.50d5 04  CONNECTED      To0/0 	0600.2001.03B0&lt;br /&gt;
                  PCEP: 82F511AC  UCEP: 82F66B7C&lt;br /&gt;
 &lt;br /&gt;
* On the Token Ring attached AS/400, you should see the SDLC-attached AS/400 in &amp;lt;code&amp;gt;WRKAPPNSTS OPTION(*LOC)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Configuration corrections ===&lt;br /&gt;
The APPC Controller on the Token Ring attached machine has been created with default values. This includes MAXFRAME being set to the default for Token Ring, aka 16393. This &#039;&#039;&#039;will&#039;&#039;&#039; result in connection instabilities, if not corrected.&lt;br /&gt;
&lt;br /&gt;
* On the SDLC-AS/400 vary off line and controller descriptions:&lt;br /&gt;
 VRYCFG CFGOBJ(SDLCLIN) CFGTYPE(*LIN) STATUS(*OFF)&lt;br /&gt;
* On the Token Ring-AS/400 vary off the controller description:&lt;br /&gt;
 VRYCFG CFGOBJ(SDLCAS) CFGTYPE(*CTL) STATUS(*OFF)&amp;lt;ref&amp;gt;The name of the controller description depends on the name of the SDLC machine.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Change configuration to better matching parameters:&lt;br /&gt;
 CHGCTLAPPC CTLD(SDLCAS) MAXFRAME(1033) INLCNN(*ANS) NODETYPE(*CALC) AUTODLTDEV(*NO) CMNRCYLMT(10 1) CTLOWN(*USER)&lt;br /&gt;
* I suggest to run WRKCTLD and manually set the SWTDSC (press F11) to *NO. Otherwise, you&#039;ll get a log of unneeded messages about torn down connections. It depends on the OS release if this option shows up.&lt;br /&gt;
* Vary on configuration objects on both AS/400, starting with the Token Ring machine.&lt;br /&gt;
 VRYCFG CFGOBJ(SDLCAS) CFGTYPE(*CTL) STATUS(*ON)&lt;br /&gt;
 VRYCFG CFGOBJ(SDLCLIN) CFGTYPE(*LIN) STATUS(*ON)&lt;br /&gt;
&lt;br /&gt;
You now should be able to enjoy a stable, albeit slow connection to your SDLC-Connected AS/400, with each and every service running over SNA.&lt;br /&gt;
&lt;br /&gt;
== Possible Errors ==&lt;br /&gt;
It is important that involved configuration settings are fixed to a maximum frame size of 1033, or less:&lt;br /&gt;
* SDLC Line Description on the serial AS/400,&lt;br /&gt;
* Controller Description for the APPN peer on the serial AS/400,&lt;br /&gt;
* Controller Description for the APPN peer on the Token Ring AS/400.&lt;br /&gt;
&lt;br /&gt;
Failing to adhere will lead to connection errors when trying to transfer more data than occasional screen updates. Cisco IOS Debugging helps to find the culprit:&lt;br /&gt;
 %PQUICC-1-TOOBIG: PQUICC(0/0), packet too big, packet size was 2059 bytes&lt;br /&gt;
 SDLC Reset, Serial0/0 D2 CONNECT: N2 Expired (iframe(s) resent &amp;gt; N2)&lt;br /&gt;
&lt;br /&gt;
Also important is to provide the proper remote CP-Name for the SDLC machine’s APPC controller description pointing to the Token Ring machine. Failing to do so will prevent CP-CP sessions to be established, and outgoing sessions from the SDLC machine will fail with a &#039;&#039;no path found&#039;&#039; error.&amp;lt;ref&amp;gt;A former revision of this article stated &#039;&#039;RMTCPNAME(*ANY)&#039;&#039;. This has been discovered to be wrong.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bridging to Ethernet ==&lt;br /&gt;
Cisco IOS has a builtin feature called translational bridging. It allows to bridge source routed (Token Ring) traffic to other media types, such as Ethernet via a “standard” transparent bridge configuration.&lt;br /&gt;
&lt;br /&gt;
Configuration involves a &amp;quot;pseudo ring&amp;quot;. This is a completely internal thing to IOS. No configuration necessary. Just make sure the ring number you use for it is unique within a multiple-rings network, no matter if virtual or real rings are involved.&lt;br /&gt;
&lt;br /&gt;
There is no physical Token Ring interface required. You can see in the interface configuration above that the physical ring number 59 is just source bridged over bridge 1 (just a router-locally unique number) to the earlier defined ring-group 512:&lt;br /&gt;
 source-bridge 59 1 512&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Create a transparent bridging configuration, tied to just an Ethernet interface:&lt;br /&gt;
 bridge irb&lt;br /&gt;
 !&lt;br /&gt;
 interface FastEthernet1/0&lt;br /&gt;
  bridge-group 1&lt;br /&gt;
  bridge-group 1 subscriber-loop-control&lt;br /&gt;
  bridge-group 1 spanning-disabled&lt;br /&gt;
&lt;br /&gt;
The last step is to tie the existing ring-group 512 (see above) to a pseudo-ring (256), over a source-bridge 2 (again just a router-locally unique number) to the already created transparent bridge 1. Note that this configuration is global and not in an interface sub-configuration context.&lt;br /&gt;
 source-bridge transparent 512 256 2 1&lt;br /&gt;
&lt;br /&gt;
Parameters to &amp;lt;code&amp;gt;source-bridge transparent&amp;lt;/code&amp;gt; are:&lt;br /&gt;
# Source-route ring group attached to the transparent bridge&lt;br /&gt;
# Pseudo-ring number of the transparent bridge&lt;br /&gt;
# Bridge number to the transparent bridge&lt;br /&gt;
# Transparent bridge group attached to the virtual ring&lt;br /&gt;
&lt;br /&gt;
MAC addresses involved can be seen with &amp;lt;code&amp;gt;show bridge 1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note!&#039;&#039;&#039; Token Ring and Ethernet use different bit orderings for MAC addresses! Thus, if you want to configure a node on the Ethernet side of affairs to connect to the &amp;quot;fake&amp;quot; MAC Token Ring address of your SDLC machine, you must bit-swap the address &amp;lt;code&amp;gt;0004.acad.5900&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;One example is the “Windows only” [http://www.bttsoftware.co.uk/canon.html BTT Canonical Address converter]. I haven’t found a web-form based converter.&amp;lt;/ref&amp;gt; The result is &amp;lt;code&amp;gt;0020.35b5.9a00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Serial cables IDs]]&lt;br /&gt;
* [[RS-232 modem cable pinout]]&lt;br /&gt;
* [[Creating Configuring TCP/IP and SLIP with Cisco router and V3R2]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.cisco.com/c/en/us/td/docs/ios/bridging/configuration/guide/15-s/br-15-s-book/br_dlsw_plus.html#wp1075136 DLSw+ translation between SDLC and Token Ring media example], Cisco.com&lt;br /&gt;
* [https://en.wikipedia.org/wiki/RS-232#Timing_signals RS-232 timing signals], Wikipedia&lt;br /&gt;
* [https://www.cisco.com/c/en/us/support/docs/routers/10000-series-routers/46800-cab232mtfc.html#cab-232fc Serial Cable CAB-232FC], Cisco.com&lt;br /&gt;
* [https://ibmdocs.pocnet.net/SY44-5902-03.pdf AS/400 Service Functions], SY44-5902-03&amp;lt;ref&amp;gt;PDF page 245, Table 51, bottom line on that page displays the cable-id connected pins. See also the notes on the top of the next page.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [https://www.cisco.com/c/en/us/td/docs/ios/bridging/configuration/guide/15SY/br_15_sy_book/br_overview_brdg.html Bridging and IBM Networking Configuration Guide], Cisco IOS Release 15SY&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
Thanks to Ben Huntsman, Alexander Huemer, and Herman val Kleef for hints and nudges to the right direction.&lt;br /&gt;
&lt;br /&gt;
[[Category: Hardware Configuration Guide‏]]&lt;br /&gt;
[[Category: Software Configuration Guide‏]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Features_that_separate_the_AS/400_from_common_computer_systems&amp;diff=1258</id>
		<title>Features that separate the AS/400 from common computer systems</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Features_that_separate_the_AS/400_from_common_computer_systems&amp;diff=1258"/>
		<updated>2023-01-20T21:51:12Z</updated>

		<summary type="html">&lt;p&gt;Mlc: /* Split OS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The AS/400 as a whole of Soft- and Hardware has a bunch of unique features as advertised by IBM:&lt;br /&gt;
* High Level Machine,&lt;br /&gt;
* Object Orientation,&lt;br /&gt;
* Single Level Storage,&lt;br /&gt;
* Hierarchy of Microprocessors,&lt;br /&gt;
* Operating System: OS/400.&lt;br /&gt;
&lt;br /&gt;
These are nicely explained in the video linked [[#Weblinks|below]].&lt;br /&gt;
&lt;br /&gt;
Reviewed in 2022, some are still relevant, some are no longer. Additionally, I&#039;ll highlight features that I think are unique compared to common platforms, and not listed above.&lt;br /&gt;
&lt;br /&gt;
== Split OS ==&lt;br /&gt;
OS/400 may be seen as split in half.&amp;lt;ref&amp;gt;Not necessarily evenly sized halves.&amp;lt;/ref&amp;gt; An good deal of it (about 1&amp;amp;thinsp;GiB with V4) is called &#039;&#039;System Licensed Internal Code&#039;&#039; (SLIC) and handles hardware dependent stuff. This includes features like multiple processors with dedicated memory just for I/O tasks.&amp;lt;ref&amp;gt;This may be seen as a technical borrowing from the mainframe world within IBM. This technique is called &#039;&#039;Channel&#039;&#039; there.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Above the SLIC is the OS/400 and its components system administrators and users usually see and deal with. This is called [[wikipedia:Control Program Facility|CPF]]&amp;lt;ref&amp;gt;Control Program Facility&amp;lt;/ref&amp;gt;, a leftover from the AS/400’s ancestor, the System/38.&lt;br /&gt;
&lt;br /&gt;
== Byte Code ==&lt;br /&gt;
Compilers don&#039;t output CPU native byte code but kind of intermediate code, for example like Java does. This makes compiled programs surprisingly large in size but enables an unprecedented backwards compatibility on binary level.&lt;br /&gt;
&lt;br /&gt;
Binary programs copied to a newer machine with different processor technology can just be started like on the old platform. The start will take a few moments in that the SLIC recognizes missing CPU native code, compiles the intermediate byte code and adds the result to the program object. After that, the program is started and runs as native code on a possibly completely different CPU architecture.&lt;br /&gt;
&lt;br /&gt;
IBM exploited this possibility when they switched the hardware from a custom 48-Bit CISC CPU architecture&amp;lt;ref&amp;gt;Derived from the CPUs in IBM Mainframes of the 1980s era.&amp;lt;/ref&amp;gt; to the PowerPC AS architecture in the mid-1990s. In later incarnations, there have been some restrictions regarding this feature, requiring applications compiled with &#039;&#039;obervability&#039;&#039; turned on.&lt;br /&gt;
&lt;br /&gt;
== Backwards Compatibility ==&lt;br /&gt;
IBM has a long history building platforms that span a multi-decade backward compatibility at binary level. The AS/400 is no exception. Programs compiled on earlier platforms and/or versions can be transferred to a newer machine and usually run without hassle.&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code written with older releases of OS/400 usually compiles without any changes on newer platforms.&lt;br /&gt;
&lt;br /&gt;
These features aren&#039;t of much interested on the first look. But it enables one to develop an application on an older system and run it on newer platforms. This could be seen as a base requirement for more free and Open Source Software: It&#039;s easier to acquire an older machine.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, transferring stuff from newer systems to older isn&#039;t that easy. The &#039;&#039;Savlib&#039;&#039; command writes stuff into a pre-created Save-File and records the release string of OS/400 where it was run. It is possible to set pre-set different values but the newer the utilized OS version, the newer the oldest possible compatibility level. V4R5 permits V3R2 as oldest release and select V4 releases.&amp;lt;br /&amp;gt;&lt;br /&gt;
Transfers from old to new systems are painless, though.&lt;br /&gt;
&lt;br /&gt;
== Single Level Storage ==&lt;br /&gt;
Since it&#039;s first incarnations the AS/400 creates a virtual 128&amp;amp;thinsp;Bit address space for the upper OS layer and application programs. &amp;lt;ref&amp;gt;When looking a bit closer, the addresses are split into a 64&amp;amp;thinsp;Bit actual &#039;&#039;address component&#039;&#039; and a 64&amp;amp;thinsp;Bit numbered &#039;&#039;object type&#039;&#039;. So, the claim of a 128&amp;amp;thinsp;Bit address space aren&#039;t exactly wrong, but also not exactly right.&amp;lt;/ref&amp;gt; This comprises physical memory and hard disk space.&lt;br /&gt;
&lt;br /&gt;
A hard disk may be seen as a giant memory area mmap&#039;ed into the address space of upper layer OS components. Swapping and Paging isn&#039;t done on the application layer as most conventional systems do, but on the address layer. Applications simply request contents from addresses and the layer below the OS called SLIC takes care of shuffling the data into RAM, should a page fault occur. Thus, page faults can occur also for data, not only for executables.&lt;br /&gt;
&lt;br /&gt;
This concept also explains why the AS/400 platform lacks a conventional File System on it&#039;s disks. Since disks are essentially memory mapped into virtual memory space, everything visible is just an object at an address with certain properties. This allows to easily share these objects between requesting entities.&lt;br /&gt;
&lt;br /&gt;
The advantage of this approach is the ability to do very fast context switches (if no or only a few page faults occur).&amp;lt;ref&amp;gt;According to Frank Soltis as written in his Books &#039;&#039;Inside the AS/400&#039;&#039;, and &#039;&#039;Fortress Rochester&#039;&#039;.&amp;lt;/ref&amp;gt; This is the reason why even older machines with 100&amp;amp;thinsp;% loaded CPU still have an astonishing fast response time when compared with common platforms of that era. If disk accesses are necessary for a context switch to take place, there&#039;s no notable speed difference to common platforms, though.&lt;br /&gt;
&lt;br /&gt;
=== Disk Allocations ===&lt;br /&gt;
The usual way the system allocates space on secondary storage (aka: hard disks) is to spread objects over as many disks as possible. In modern RAID terminology, this is referred to as &#039;&#039;spindles&#039;&#039; (from the stack of rotating platters&#039; axis), while IBM AS/400 documentation refers to the same concept as &#039;&#039;disk arms&#039;&#039;: The actuator moving the read/write heads over the desired cylinder — a set of tracks — on the rotating platters.&amp;lt;ref&amp;gt;Once, disks with two actuators have been built, but these have been a development on the fringes and quickly vanished from the market.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This spreading of data has the same advantages and disadvantages as RAID 0:&lt;br /&gt;
* with increasing count of disk arms, the chance that a given data block is located on an idle drive increases and thus decreases latency through exploiting parallelism: the more applications run, the more data can be picked up from individual disks, the more overall processing work can be done.&lt;br /&gt;
* since data is located in the system just once, the failure of (at least) one disk has hard to predict ramifications. Objects become &#039;&#039;damaged&#039;&#039; because parts of them are no longer accessible.&amp;lt;ref&amp;gt;The necessity of a solid, and &#039;&#039;&#039;tested&#039;&#039;&#039; backup and restore concept is self-explanatory, but also emphasized in IBM documentation.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From early on, the concept of a dedicated I/O processor allowed for easy implementation of &#039;&#039;data mirroring&#039;&#039;, to compensate for data loss because of a malfunctioning disk drive through redundancy.&lt;br /&gt;
&lt;br /&gt;
Later, the well-known RAID-Levels have been made available through the availability of dedicated storage controllers.&lt;br /&gt;
&lt;br /&gt;
=== Memory Pools ===&lt;br /&gt;
The described concept of the platform relying on paging as primary means to bring in data and code into the faster main memory for actual processing has some implications on main memory constrained machines. Once, RAM was extraordinarily expensive. Without precautions, it was easily possible to start many programs at the same time, each one competing for presence in RAM. When seriously overwhelmed with concurrent requests, this situation leads to [https://en.wikipedia.org/wiki/Thrashing_(computer_science) Thrashing], a situation where the machine is completely busy with paging activity, but does no useful work anymore because of competing tasks.&lt;br /&gt;
&lt;br /&gt;
OS/400 introduced the concept of memory pools for that purpose. A memory pool mainly has these attributes:&lt;br /&gt;
* Size,&lt;br /&gt;
* Shared or Private,&lt;br /&gt;
* Maximum Activity Level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pool&#039;&#039; can be more or less translated to &#039;&#039;RAM Cache&#039;&#039;: What&#039;s already in the pool&#039;s memory is &#039;&#039;cached&#039;&#039;, because it mustn&#039;t be handled by the paging logic.&lt;br /&gt;
&lt;br /&gt;
==== Pool Size ====&lt;br /&gt;
The &#039;&#039;Size&#039;&#039; of a memory pool is just how much RAM is set aside for applications being directed to run in this pool. More RAM means more cache and less disk activity for shoveling work into RAM.&lt;br /&gt;
&lt;br /&gt;
==== Shared or Private Pool ====&lt;br /&gt;
&#039;&#039;Shared pools&#039;&#039; allow more than one group of applications to utilize a memory pool, while &#039;&#039;private pools&#039;&#039; are reserved for just one group. See &#039;&#039;Subsystems&#039;&#039; below for the explanation of this grouping. This brings in another consideration: The more pools one creates, the more unused memory is left over from excess memory partitioning. &amp;lt;ref&amp;gt;OS/400 has a function called &#039;&#039;performance adjustment&#039;&#039;. This function periodically checks paging activity and adjusts memory allocations between pools, as well as the pool&#039;s activity levels.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Maximum Activity Level ====&lt;br /&gt;
The &#039;&#039;Maximum Activity Level&#039;&#039; of a memory pool is the overall count of applications which are eligible to actively &#039;&#039;run&#039;&#039; in a given pool in parallel. This eligible count only considers applications which require actual access to the CPU, but not &#039;&#039;sleeping&#039;&#039; ones, waiting for some application-external event. This setting reduces competition for memory amongst applications within that pool. But at the same time — to a lesser extent — overall competition for main memory, system-wide.&lt;br /&gt;
&lt;br /&gt;
==== Pool Summary ====&lt;br /&gt;
It is important to consider that this competition for RAM is not limited to actual code being in main memory, but also for data. Heavy paging can be quite normal for a batch job reading through a huge database file, and only a minor brake on other applications running. As long as the application code stays in main memory, that application can run again as soon as more data arrives in main memory to be processed. Because batch applications (ideally) use a different memory pool than interactive applications, there is no competition for main memory for these two application &#039;&#039;classes&#039;&#039; being confined in their respective pools.&amp;lt;ref&amp;gt;There &#039;&#039;is&#039;&#039; a certain degree of competition for disk I/O, though. As long as both pools need to access data on a common set of disks, I/O latency for both pools will go up, and response time for interactive applications will degrade. Again, this latency increase should happen most often for paging of data, not application code.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Many Books have been written about &#039;&#039;performance tuning&#039;&#039; the AS/400 system. As you can see, there are many aspects to consider which values of these settings lead to the sweet spot of a machine doing maximum (batch) work while minimally affecting interactive users. Dynamic scenarios have been described where interactive users are not considered at non-office hours, giving batch jobs more memory and thus allowing faster processing.&lt;br /&gt;
&lt;br /&gt;
In current reality, there are two groups of users, and both of them rarely need to consider the points outlined above:&lt;br /&gt;
* Hobbyists are most often the sole users of a system. Thus, overall system activity levels are low — most often, the machine idles.&lt;br /&gt;
* Professional users with current systems have RAM in abundance. In addition, the increasing ubiquity of solid state storage with its intrinsic lack of mechanical positioning latency boosts I/O throughput.&lt;br /&gt;
&lt;br /&gt;
For both groups, the directions given in the [[Post-Install Optimizations]] article gives an almost perfect starting point for the self-adjustment of the system itself to balance into a good partitioning of RAM into existing shared pools.&lt;br /&gt;
&lt;br /&gt;
=== Expert Cache ===&lt;br /&gt;
In short, this is a setting of a pool where the system itself decides the block size of data being read from disk and put into memory. Without this, transferred blocks are of a fixed size, thus increasing processing overhead. &amp;lt;code&amp;gt;CHGSHRPOOL PAGING(*CALC)&amp;lt;/code&amp;gt; switches Expert Cache on for a given pool. On the other hand, smaller data transfers decrease the wait time until some other disk access can be satisfied.&amp;lt;br /&amp;gt;&lt;br /&gt;
Usually the recommended setting is &#039;&#039;enabled&#039;&#039;. Allow the system to adjust itself. Note: The default setting is &#039;&#039;disabled&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Subsystems ===&lt;br /&gt;
A subsystem is a way to group application programs. Subsystems are defined by a subsystem definition object. This object allows for many attributes to be set, to prepare the desired run-time environment. See [[Subsystems]] for a more in-depth illustration about the underlying concept.&lt;br /&gt;
&lt;br /&gt;
=== Running Application Programs: Activation and Activation Groups ===&lt;br /&gt;
Since programs are already existent as objects in the single level store memory space, there&#039;s no need to load them from disk as common OS&#039; need(ed) to do. To actually run such an application program needs some housekeeping, though. Commonly a program needs a [[wikipedia:Stack-based memory allocation|Stack]] and a [[wikipedia:Memory_management#Dynamic_memory_allocation|Heap]] for variables and other internal data structures to be able to run. The AS/400 is no different in this case, although this stuff is buried very deep into the LIC&#039;s innards.&lt;br /&gt;
&lt;br /&gt;
Actually starting a program to be run on an AS/400 is called &#039;&#039;activation&#039;&#039;. This task creates necessary storage as outlined above and adds the program to to the job scheduling queue. This is also necessary to provide a properly isolated environment when multiple users start the same application.&lt;br /&gt;
&lt;br /&gt;
Completely different compared to common platforms, it&#039;s possible to &#039;&#039;share&#039;&#039; some of this space between programs. This shared space is called an &#039;&#039;activation group&#039;&#039;. That is, while creating a new program (by compiling and linking), one can tell the compiler/linker if the program is to be run in&lt;br /&gt;
* the default activation group, that contains most of the OS,&lt;br /&gt;
* the caller&#039;s activation group, to allow a more dynamic approach, or&lt;br /&gt;
* a new activation group that is to be created for every instance the program has,&lt;br /&gt;
* a common activation group with a programmer specified name.&lt;br /&gt;
&lt;br /&gt;
As long as any program of any activation group is activated, so is the activation group. Data structures will be destroyed only when the last program terminates, or &#039;&#039;the job ends&#039;&#039;, &amp;lt;ref&amp;gt;A job is defined as work that needs to be done by the system. Work can be done by a single program or mutiple.&amp;lt;/ref&amp;gt; or when a group is explicitly deallocated with the RCLACTGRP program. For details see weblinks.&lt;br /&gt;
&lt;br /&gt;
Sharing an activation group shares (amongst other data):&lt;br /&gt;
* Static variables,&lt;br /&gt;
* Open files and file pointer positions,&lt;br /&gt;
* and more…&lt;br /&gt;
&lt;br /&gt;
There&#039;s a certain intersection of functionality between a common activation group and &amp;lt;code&amp;gt;fork()&amp;lt;/code&amp;gt;ing an application on Linux/Unix platforms. Even if it is not exactly the same but maybe it gives you an idea.&amp;lt;br /&amp;gt;&lt;br /&gt;
On OS/400, programs to share an activation group must exist as separate objects while on Linux/Unix all code is either linked to a monolithic program or uses additional code with the aid of &#039;&#039;shared libraries&#039;&#039;.&amp;lt;ref&amp;gt;A concept that &#039;&#039;also&#039;&#039; exists on the AS/400. There, they are called &#039;&#039;service programs&#039;&#039;.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Standardized UI ==&lt;br /&gt;
The whole UI revolves mainly around forms and menus, accompanied by static text. The layouts of these screens are somewhat standardized. AS/400 screens are very recognizable because of this.&lt;br /&gt;
&lt;br /&gt;
See also: [[About Green Screens and mouse-clickable UIs]].&lt;br /&gt;
&lt;br /&gt;
== Predictable Command Naming ==&lt;br /&gt;
For experienced users who won&#039;t repeatedly navigate though nested menus, commands may be entered on the command line instead of menu numbers. These commands consist of two or more parts, built of abbreviated english words. Abbreviations often take place by omitting vowels and shortening the result to less or equal four characters. The first one being a &#039;&#039;verb&#039;&#039; and the second one a &#039;&#039;subject&#039;&#039;, optionally followed by more building blocks.&lt;br /&gt;
&lt;br /&gt;
A few examples may illustrate the previous statements:&lt;br /&gt;
; wrksplf&lt;br /&gt;
: Work with Spooled Files&lt;br /&gt;
; chgmsgq&lt;br /&gt;
: Change Message Queue Properties&lt;br /&gt;
; crtdspf&lt;br /&gt;
: Create Display File&lt;br /&gt;
; dltf&lt;br /&gt;
: Delete File&lt;br /&gt;
; dspmsg&lt;br /&gt;
: Display Messages (from Message Queue)&lt;br /&gt;
&lt;br /&gt;
See also [[wikipedia:IBM i Control Language|IBM i Control Language]] and [[CL Tricks]].&lt;br /&gt;
&lt;br /&gt;
== Outstanding Reliability ==&lt;br /&gt;
Software is a complex thing built by humans. Humans make errors. Thus, Software contains errors. This is an inevitable fact.&lt;br /&gt;
&lt;br /&gt;
IBM managed to make OS/400 not bug free but caught most problems that lead to a complete crash of the operating system. There may be edge cases that are usually hard to spot.&lt;br /&gt;
&lt;br /&gt;
Also, IBM built multiple measures against &#039;&#039;defective sectors on hard disks being catastrophic&#039;&#039; into the OS from early on. Since there is no classical file system, most often, read errors only affect one or more objects that can be easily restored from backup.&amp;lt;ref&amp;gt;You don&#039;t have a backup? Own fault! No backup, no pity.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reliability is &#039;&#039;&#039;not&#039;&#039;&#039; the same as availability. Some tasks can only be done when OS/400 is running in a restricted state.&amp;lt;ref&amp;gt;In Unix this would be called Single User Mode, with not much more than &#039;&#039;init&#039;&#039; and a root-shell running.&amp;lt;/ref&amp;gt; This includes but is not limited to a full system backup or certain hardware failure recovery procedures.&lt;br /&gt;
&lt;br /&gt;
== Rapid Development ==&lt;br /&gt;
OS/400 comes with a set of tools and supportive facilities within the OS to ease development of application programs. Usually, development comprises of:&lt;br /&gt;
* Definition and creation of database tables, display forms and printer output,&lt;br /&gt;
* Writing code that references these files and shovels data just by issuing proper READ and WRITE (among other) requests to these files.&lt;br /&gt;
&lt;br /&gt;
The mentioned files are typed in a format called &#039;&#039;Data Definition Specifications&#039;&#039; or &#039;&#039;DDS&#039;&#039;. It provides data field definitions, field definition references between files, arbitrary placement of static text (not for database files) and a multitude of flags for content to be shaped to fit for the desired presentation.&amp;lt;br /&amp;gt;&lt;br /&gt;
The &#039;&#039;Screen Design Agent&#039;&#039; program (&amp;lt;code&amp;gt;strsda&amp;lt;/code&amp;gt;) provides a pseudo-[[wikipedia:WYSIWYG|WYSIWYG]]-interface for creating screen forms and menus.&amp;lt;br /&amp;gt;&lt;br /&gt;
The &#039;&#039;Report Layout Utility&#039;&#039; program (&amp;lt;code&amp;gt;strrlu&amp;lt;/code&amp;gt;) provides a pseudo-WYSIWYG-interface for creating layouts for printer output files.&lt;br /&gt;
&lt;br /&gt;
Actual programming can be done in RPG, COBOL, and C/C++. Output of the compilers (called &#039;&#039;modules&#039;&#039;) created by any of these languages can be linked together to create an actual program object or a shared library (&#039;&#039;service program&#039;&#039;). Any language may call functions of any other language as long as parameters have been defined to be compatible.&lt;br /&gt;
&lt;br /&gt;
The compilable CL &amp;quot;shell&amp;quot;-script language and REXX-Interpreter help in easing traditional automation tasks on the command line level.&lt;br /&gt;
&lt;br /&gt;
Programming is done within the &#039;&#039;Program Development Manager&#039;&#039; collection of programs (&amp;lt;code&amp;gt;strpdm&amp;lt;/code&amp;gt;). The most used component is the &#039;&#039;Work with File Members&#039;&#039; application, &amp;lt;code&amp;gt;wrkmbrpdm&amp;lt;/code&amp;gt;, to list source code physical file content. This in turn calls the &#039;&#039;Source Entry Utility&#039;&#039; (&#039;&#039;SEU&#039;&#039;) with the appropriate parameters for actual code writing/editing with the desired existing or new file member.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;SEU&#039;&#039; provides a linetype-aware form for RPG and DDS, easing the matching of the appropriate columnns. It can be invoked as usual: With &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also: [[How to program an Application]]&lt;br /&gt;
&lt;br /&gt;
=== Times they are a changin&#039; ===&lt;br /&gt;
Today, development tasks are most often done on Windows PCs, with IBM provided tools, that pull a local copy of a source file to edit.&lt;br /&gt;
&lt;br /&gt;
Also, since the late 1990&#039;s, IBM has been trying to establish Java as &#039;&#039;the&#039;&#039; language of choice, along with helper programs for shifting away from the old fashioned character based applications (&#039;&#039;green screen&#039;&#039;) to a pure web-browser based way of user&#039;s interaction with the system.&lt;br /&gt;
&lt;br /&gt;
Also, &#039;&#039;&#039;the&#039;&#039;&#039; AS/400 Language, RPG, has been enhanced and modernised slowly but constantly. While most examples in this collection of knowledge are based on &#039;&#039;ILE RPG IV&#039;&#039;, newer OS releases were accompanied by compilers allowing to escape the punched card appeal of RPG more and more. V5 introduced the possibility to write actual code (not definition statements, though) in a free form, while with some V7 all parts of a RPG program may be written without being forced to write statements at a certain position within a line. This generates a load of syntactical changes to be learned.&lt;br /&gt;
&lt;br /&gt;
Examples of positional code are slowly vanishing from Internet Websites. Looking up how to do stuff in positional code is getting increasingly difficult. Asking around in mailing lists for positional code examples sometimes yield unhelpful and cynic comments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Still, many companies have old to very old code to be maintained that predates compilers allowing free syntax. Providing mainly positional RPG examples is supposed to help understanding this old way of writing RPG, while examples for newer techniques are easily found with an internet search engine of choice.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.youtube.com/watch?v=5pY6Xxptp9A IBM AS/400 The Best Architecture In The World 1992], Video at YouTube.&lt;br /&gt;
* [https://www.mcpressonline.com/programming/rpg/introduction-to-ile-rpg-activation-groups Introduction to ILE RPG Activation Groups], McPress online.&lt;br /&gt;
* [https://www.mcpressonline.com/operating-systems/ibm-i-os400-i5os/i5os-v6r1-upgrade-now-or-later i5/OS V6R1: Upgrade Now or Later?], MC Press Online, with some background information regarding code observability.&lt;br /&gt;
* [https://www.itjungle.com/2020/11/23/frank-soltis-discusses-a-possible-future-for-single-level-storage/ Frank Soltis Discusses A Possible Future for Single-Level Storage], IT Jungle, also explaining the benefits of SLS for task switching.&lt;br /&gt;
&lt;br /&gt;
== Footnotes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Basic Knowledge]]&lt;br /&gt;
[[Category: Musings]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=Apple_SNA%E2%80%A2ps&amp;diff=1253</id>
		<title>Apple SNA•ps</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=Apple_SNA%E2%80%A2ps&amp;diff=1253"/>
		<updated>2023-01-07T03:55:24Z</updated>

		<summary type="html">&lt;p&gt;Mlc: /* AS/400 configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:5250term.gif|thumb|right|Active 5250 client connection]]&lt;br /&gt;
[[File:Snagw-run.gif|thumb|right|SNA•ps Gateway information windows]]&lt;br /&gt;
&#039;&#039;&#039;Apple SNA•ps&#039;&#039;&#039; is an application software package for Apple Macintosh Computers running System 7. Its purpose is to provide Macintosh users access to resources located on IBM Midrange and Mainframe computers. It is the result of a collaboration between Apple and IBM in the early 1990s and has been developed by Orion Software.&lt;br /&gt;
&lt;br /&gt;
SNA•ps uses IBMs proprietary &#039;&#039;Systems Network Architecture&#039;&#039; family of network protocols to talk to the IBM side of affairs,&amp;lt;ref&amp;gt;Newer versions of the SNA•ps 5250 client also support IP/tn5250 as alternate network transport.&amp;lt;/ref&amp;gt; and Apple&#039;s proprietary AppleTalk on the Macintosh side.&lt;br /&gt;
&lt;br /&gt;
So far, only two releases are known: version 1.1 from 1992, and version 2.0.1 from 1994.&lt;br /&gt;
&lt;br /&gt;
SNA•ps comprises of a client and server component. Both can run on the same Macintosh computer, though.&lt;br /&gt;
* &#039;&#039;Gateway&#039;&#039; software with a license dependent maximum count of 8, 32, or 64 [https://en.wikipedia.org/wiki/IBM_Systems_Network_Architecture#Logical_Unit_.28LU.29 LU]-Sessions (10, 40, or 70 for version 2.0.1),&lt;br /&gt;
* &#039;&#039;Client software&#039;&#039; for 5250 terminal- and printing services.&lt;br /&gt;
&lt;br /&gt;
This article focuses on AS/400 and thus on 5250 connectivity.&lt;br /&gt;
&lt;br /&gt;
Different versions of &#039;&#039;SNA•ps&#039;&#039; are available on Apple&#039;s [https://macintoshgarden.org/apps/apple-cdsn-computers-connectivity-demonstration-and-support-network-reference-cd &#039;&#039;Computer&#039;s Connectivity Demonstration and Support Network&#039;&#039; Reference CD] at Macintosh Garden. Note that version 2.0.1 requires a serial number to be entered at install time.&lt;br /&gt;
&lt;br /&gt;
== General overview ==&lt;br /&gt;
The &#039;&#039;SNA•ps Gateway&#039;&#039; makes resources provided by the mainframe or the AS/400 via [https://en.wikipedia.org/wiki/IBM_Systems_Network_Architecture#Physical_Unit_.28PU.29 SNA PUs]/LUs or [https://en.wikipedia.org/wiki/IBM_Advanced_Peer-to-Peer_Networking APPN]/[https://en.wikipedia.org/wiki/IBM_Advanced_Program-to-Program_Communication APPC] available to AppleTalk connected Macs. This means that an (expensive) card for connecting to the mainframe does not have to be installed in every Mac, but one can be shared by many users. Also, adding such a card is not possible in some cases: Compact Macs like the Mac Plus or Mac SE have no or only limited expansion options. In addition, the required network cabling may not exist.&lt;br /&gt;
&lt;br /&gt;
Examples of clients are the terminal emulations [https://en.wikipedia.org/wiki/IBM_3270 3270], and [https://en.wikipedia.org/wiki/IBM_5250 5250]). These allow Macs that are connected to the [https://en.wikipedia.org/wiki/AppleTalk AppleTalk] network (e.&amp;amp;thinsp;g. via [https://en.wikipedia.org/wiki/LocalTalk LocalTalk]) to establish terminal sessions to a SNA host.&lt;br /&gt;
&lt;br /&gt;
An example of reverse direction is printing support. The &#039;&#039;SNA•ps Print&#039;&#039; Client emulates an IBM 8312 printer. Print jobs spooled into a printer queue on the AS/400 are picked up by &#039;&#039;SNA•ps Print&#039;&#039;, to be printed using the default (AppleTalk) printer, set in the [https://en.wikipedia.org/wiki/Chooser_(Mac_OS) Chooser], or saved as text in a file.&amp;lt;br&amp;gt;&lt;br /&gt;
This was a way of making the Apple [https://en.wikipedia.org/wiki/LaserWriter LaserWriter] usable from midrange, and indirectly from mainframe computers. The LaserWriter was very expensive at its introduction time.&lt;br /&gt;
&lt;br /&gt;
The counterpart to the &#039;&#039;SNA•ps Gateway&#039;&#039; is a system extension called &#039;&#039;SNA•ps Access&#039;&#039;. Client applications use API routines provided by this extension. The SNA•ps API can also be used by third parties; examples have been published by Apple through their developer CDs. An example of this is [https://en.wikipedia.org/wiki/Database_abstraction_layer DAL] for the Macintosh. It can utilize several ways to connect to the actual database; such as IP (via MacTCP) and SNA (via SNA•ps Access).&lt;br /&gt;
&lt;br /&gt;
In the 1990s, IBM made LocalTalk add-on cards for the AS/400, and additional software for OS/400 to implement the AppleTalk protocol stack on the AS/400 as well. The implementation on the AS/400 corresponded to the SNA•ps gateway, so that no Mac was required as a gateway: the necessary software ran only on the AS/400.&lt;br /&gt;
&lt;br /&gt;
== System compatibility ==&lt;br /&gt;
The SNA•ps 5250 client requires System 7.0 or higher. Launching it on System 6 gets you a corresponding error message, and the client does not open. The 3270 terminal client runs under System 6.0.7 with no errors, though.&lt;br /&gt;
&lt;br /&gt;
The client works on Mac operating system versions up to, and including 8.1. OpenTransport compatibility seems sufficient to support that old software without changes. It does not work on PowerPC Macs, though.&lt;br /&gt;
&lt;br /&gt;
A connection via TCP (possible with client version 1.1) provokes the message that the other party doesn&#039;t use the 5250 protocol. This is reproducible under System 7.6.1/OT/PPC as well as under 7.1/MacTCP/68k. Reasons are unknown.&lt;br /&gt;
&lt;br /&gt;
The gateway software requires special hardware for the SNA network connection and is therefore limited to NuBus systems. Documentation states, the gateway needs System 7 to run. This has not yet been verified. Testing of the gateway software on the first generation NuBus equipped PowerMacs also hasn&#039;t been done, yet.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
Comfortable performance can be attained by running at least the Client on 68040 equipped Macs, connected to the gateway through Ethernet.&amp;lt;ref&amp;gt;AppleTalk and IP performance for AFP transfers over the &#039;&#039;Apple Token Ring 4/16 NB Card&#039;&#039; do not exceed 200&amp;amp;thinsp;kiB/s.&amp;lt;/ref&amp;gt; This provides answer times of less than a second, e.&amp;amp;thinsp;g. when scrolling through help texts, etc. Measuring of answer times for the gateway running on different Macs has not been done, yet.&lt;br /&gt;
&lt;br /&gt;
Running the client on Low End Macs such as the SE/30 yields answer times of around two seconds. All in all, fluid work is not attainable. Comparing LocalTalk and Ethernet with the SE/30 shows no significant differences.&lt;br /&gt;
&lt;br /&gt;
== Network transport options ==&lt;br /&gt;
The following options to connect to IBM machinery are supported in general:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Phy&lt;br /&gt;
! Hardware&lt;br /&gt;
|-&lt;br /&gt;
|Serial/SDLC&lt;br /&gt;
|Apple Serial NB Card&lt;br /&gt;
|-&lt;br /&gt;
|Token Ring&lt;br /&gt;
|Apple Token Ring 4/16 NB Card&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;s&amp;gt;Twinax&amp;lt;/s&amp;gt;&amp;lt;ref&amp;gt;5250 sessions over Twinax are not supported. Implementation was planned, but never was put into code before development ceased.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Apple Koax/Twinax Card&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All of these cards feature their own 68000 CPU, and local memory. They conform to the &#039;&#039;Macintosh Coprocessor Platform&#039;&#039; specification. A small process runs on the card, which exchanges data via message passing with its counterpart &#039;&#039;A/ROSE&#039;&#039; in the Mac OS.&lt;br /&gt;
&lt;br /&gt;
As a novel feature, part of the &#039;&#039;SNA•ps&#039;&#039; gateway software runs on the processor of the respective MCP card. Along with the rest of the software running on the Mac&#039;s main CPU, APPC sessions are encapsulated in AppleTalk, and available to other Macs connected to the network, including LocalTalk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Apple-Token-Ring-NB-Compside.jpg|Apple Token Ring 4/16 NB Karte, front&lt;br /&gt;
File:Apple-Token-Ring-NB-Solderside.jpg|Apple Token Ring 4/16 NB Karte, back&lt;br /&gt;
File:Apple-Coax-Twinax-Compside.jpg|Apple Coax/Twinax Karte, front&lt;br /&gt;
File:Apple-Coax-Twinax-Solderside.jpg|Apple Coax/Twinax Karte, back&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I do not own an Apple Serial NB card, yet.&lt;br /&gt;
&lt;br /&gt;
== AS/400 configuration ==&lt;br /&gt;
On the AS/400 side, autoconfiguration for controller, and device descriptions should — at least temporarily — be allowed. See the &amp;lt;code&amp;gt;WRKSYSVAL&amp;lt;/code&amp;gt; command and the &#039;&#039;QAUTOCFG&#039;&#039;, &#039;&#039;QAUTORMT&#039;&#039; and &#039;&#039;QAUTOVRT&#039;&#039; variables. Maybe also adjust the variables &#039;&#039;QLMTDEVSSN&#039;&#039; and &#039;&#039;QLMTSECOFR&#039;&#039;. See help texts for details.&lt;br /&gt;
&lt;br /&gt;
A working Token Ring connection is also required. In its line description, the &#039;&#039;AUTOCRTCTL&#039;&#039; parameter should (temporarily) be set to &#039;&#039;*YES&#039;&#039;. It is recommended that the associated &#039;&#039;AUTODLTCTL&#039;&#039; parameter be set to &#039;&#039;*NONE&#039;&#039; if &amp;lt;code&amp;gt;AUTOCRTCTL(*YES)&amp;lt;/code&amp;gt; is to be retained.&lt;br /&gt;
&lt;br /&gt;
This preparation saves the tedious and error-prone configuration of the OS/400 controller (*CTLD) and device (*DEVD) descriptions for communication with the gateway on the Mac side.&lt;br /&gt;
&lt;br /&gt;
== Gateway configuration ==&lt;br /&gt;
[[File:Cfg-snaps.gif|thumb|right|Overview of the filled configuration window]]&lt;br /&gt;
The configuration is created with the &#039;&#039;SNA•ps Config&#039;&#039; program and built layer by layer.&lt;br /&gt;
&lt;br /&gt;
It is easily possible to configure several AS/400 peers in one configuration document. To do this, each machine must have its own definitions created for&lt;br /&gt;
* Lines,&lt;br /&gt;
* Partners,&lt;br /&gt;
* Remote 6.2 LUs,&lt;br /&gt;
* Modes.&lt;br /&gt;
&lt;br /&gt;
Contrary, &#039;&#039;Local 6.2 LUs&#039;&#039; und &#039;&#039;Transaction Points&#039;&#039; apply to all configured peers.&lt;br /&gt;
&lt;br /&gt;
If several AS/400&#039;s are already internetworked via APPN, the gateway configuration can be made much easier. Just configure the AS/400 designated as APPN &#039;&#039;Network Node&#039;&#039; as partner connection. APPC sessions originating on the Macs are forwarded by the gateway to the (directly adjacent) Network Node AS/400. This one in turn forwards the LU sessions to the destination machines.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that the &#039;&#039;Network Node&#039;&#039; machine needs to have adjacencies to the desired other machines for this to work. SNA•ps can only use connections being already configured.&lt;br /&gt;
&lt;br /&gt;
=== Lines ===&lt;br /&gt;
[[File:Cfg-line.gif|thumb|right|Line configuration]]&lt;br /&gt;
First, the Line configuration needs to be created. The name can be chosen freely.&amp;lt;br&amp;gt;&lt;br /&gt;
Increasing the &#039;&#039;Maximum I-Field Length&#039;&#039; parameter increases the data throughput and thus the speed at which data is forwarded through the gateway. The highest accepted value is 4105 bytes. Use of the maximum value is recommended. The line description of the AS/400 — corresponding to the line configuration of SNA•ps — usually contains 16393 bytes. The actual value used is negotiated dynamically at session establishment time.&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default values.&lt;br /&gt;
&lt;br /&gt;
=== Partners ===&lt;br /&gt;
[[File:Cfg-peer.gif|thumb|right|Partner configuration]]&lt;br /&gt;
As long as the just created &#039;&#039;line&#039;&#039; is highlighted, the description for the actual network connection to the AS/400 can be defined in the &#039;&#039;partners&#039;&#039; field next to it.&amp;lt;br&amp;gt;&lt;br /&gt;
The following table shows parameters of the &#039;&#039;partner&#039;&#039; configuration and the related parameters on the AS/400:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Partner setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|Name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Link Address&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPLIND&amp;lt;/code&amp;gt;, local adapter address (ADPTADR)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Partner XID&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPLIND&amp;lt;/code&amp;gt;, exchange identifier (EXCHID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Gateway XID&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Generate yourself. Has to start with &#039;&#039;056&#039;&#039;.&amp;lt;ref&amp;gt;This value is copied to the AS/400&#039;s controller description at the connection&#039;s first start by auto configuration.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Gateway Network Name&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Generate yourself. You can probably use the name from the &#039;&#039;Sharing&#039;&#039; control panel.&lt;br /&gt;
|-&lt;br /&gt;
|Gateway Network Qualifier&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other &#039;&#039;Characteristics&#039;&#039; settings are:&lt;br /&gt;
* Peer (Node Type 2.1),&lt;br /&gt;
* SAP address (remains at) 4.&lt;br /&gt;
&lt;br /&gt;
=== Local 6.2 LUs ===&lt;br /&gt;
[[File:Cfg-loclu.gif|thumb|right|Local 6.2 LUs]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!LU setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|Name: &#039;&#039;PASSTHRU&#039;&#039;&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Corresponds to the &#039;&#039;SNA•ps Access&#039;&#039; Control Panel setting on the clients&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;Network LU Name&#039;&#039;&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|Desired name for the gateway on the APPN network&amp;lt;ref&amp;gt;Only CAPS, may not start with a number, and may only contain these special chars: #$_&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Network Qualifier&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transaction points (TPs) ===&lt;br /&gt;
[[File:Cfg-tp.gif|thumb|right|Transaction Points]]&lt;br /&gt;
The &#039;&#039;Local 6.2 LU&#039;&#039; just defined must be highlighted so a new &#039;&#039;transaction point&#039;&#039; can be created.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!TP setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|Name&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|&#039;&#039;*&#039;&#039; (asterisk)&lt;br /&gt;
|-&lt;br /&gt;
|Network LU name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Network name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default.&lt;br /&gt;
&lt;br /&gt;
=== Remote 6.2 LUs ===&lt;br /&gt;
[[File:Cfg-remlu.gif|thumb|right|Remote 6.2 LUs]]&lt;br /&gt;
The &#039;&#039;partner&#039;&#039; created above must be highlighted in order to create an associated LU configuration.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!LU setting&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
|-&lt;br /&gt;
|Name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|-&lt;br /&gt;
|Network LU name&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local control point name (LCLCPNAME)&lt;br /&gt;
|-&lt;br /&gt;
|Network Qualifier&lt;br /&gt;
|&amp;lt;code&amp;gt;DSPNETA&amp;lt;/code&amp;gt;, local network ID (LCLNETID)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default.&lt;br /&gt;
&lt;br /&gt;
If you have more than one AS/400 in an APPN network, just add the corresponding LU names and Network Qualifiers from the other AS/400&#039;s in the same manner. This enables session forwarding by the &#039;&#039;Network Node&#039;&#039; AS/400 as described above.&lt;br /&gt;
&lt;br /&gt;
=== Modes ===&lt;br /&gt;
[[File:Cfg-mode.gif|thumb|right|APLSNAPS mode description]]&lt;br /&gt;
The Remote 6.2 LU(s) created above must be highlighted in order to create an associated mode description.&lt;br /&gt;
&lt;br /&gt;
Since there is no &#039;&#039;good enough&#039;&#039; mode description on the AS/400 by default, create a custom mode &#039;&#039;APLSNAPS&#039;&#039;:&lt;br /&gt;
 CRTMODD MODD(APLSNAPS) COS(#CONNECT) MAXSSN(32) MAXCNV(32) LCLCTLSSN(0) INPACING(7) OUTPACING(7) TEXT(&#039;For Apple SNA.ps&#039;)&lt;br /&gt;
&lt;br /&gt;
Now, set the values of the fields on the right side in the &#039;&#039;Characteristics&#039;&#039; pane in the Window as follows:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Mode setting&lt;br /&gt;
!Value&lt;br /&gt;
!Corresponding AS/400 setting&lt;br /&gt;
|-&lt;br /&gt;
|Maximum Sessions&lt;br /&gt;
|32&lt;br /&gt;
|Maximum sessions (MAXSSN)&lt;br /&gt;
|-&lt;br /&gt;
|Contention Winner&lt;br /&gt;
|32&lt;br /&gt;
|Maximum conversations (MAXCNV)&lt;br /&gt;
|-&lt;br /&gt;
|Prebound Sessions&lt;br /&gt;
|0&lt;br /&gt;
|Pre-established sessions (PREESTSSN)&lt;br /&gt;
|-&lt;br /&gt;
|Send Pacing&lt;br /&gt;
|7&lt;br /&gt;
|Inbound pacing value (INPACING)&lt;br /&gt;
|-&lt;br /&gt;
|Receive Pacing&lt;br /&gt;
|7&lt;br /&gt;
|Outbound pacing value (OUTPACING)&lt;br /&gt;
|-&lt;br /&gt;
|Maximum RU Upper&lt;br /&gt;
|4096&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|Maximum RU Lower&lt;br /&gt;
|256&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Leave the other settings at default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Modes aren&#039;t shared. For each remote LU, you need to re-enter the values outlined above.&lt;br /&gt;
&lt;br /&gt;
It may happen that the gateway refuses to start because it claims there is not enough memory (on the MCP card). Recommended action is to lower &#039;&#039;Maximum Sessions&#039;&#039;, and &#039;&#039;Contention Winner&#039;&#039; settings locally, and on the AS/400 with the &amp;lt;code&amp;gt;CHGMODD&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
== Gateway Activation ==&lt;br /&gt;
After the gateway configuration has been saved, it is assigned to the existing physical connection using the &#039;&#039;SNA•ps Admin&#039;&#039; application. Launch it. The &#039;&#039;Network Gateway Status&#039;&#039; window appears. One line is displayed for each SNA capable card in the Mac, as shown in the second screen shot above.&lt;br /&gt;
&lt;br /&gt;
Highlight the desired card&#039;s entry, and choose &#039;&#039;Select configuration…&#039;&#039; from the &#039;&#039;Gateway&#039;&#039; menu. Use the dialog box to locate and select the configuration file you&#039;ve created and saved before.&amp;lt;br&amp;gt;&lt;br /&gt;
In the same menu, select &#039;&#039;Change Settings…&#039;&#039; and&lt;br /&gt;
* probably assign a nicer AppleTalk name to the gateway, and&lt;br /&gt;
* in &#039;&#039;Characteristics&#039;&#039; tick all checkboxes except &#039;&#039;Initially Log Line Trace&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The gateway can then be started in the Gateway menu with &#039;&#039;Start Gateway…&#039;&#039;. A dialog window is shown with a summary. Click &#039;&#039;Start&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; It has been shown that — at least with &#039;&#039;SNA•ps Gateway&#039;&#039; version 1.1 — trying out configuration settings with manual stop and start sometimes provokes the message that there is insufficient memory. This statement refers to the memory on the corresponding MCP card. Apparently, resources there are not reliably freed. After restarting the computer, the error message is gone.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also in the &#039;&#039;Gateway&#039;&#039; menu, an overview of the available resources can now be displayed with &#039;&#039;Show Gateway…&#039;&#039;. An example can be seen in the second screen shot above.&lt;br /&gt;
&lt;br /&gt;
=== Screen shots ===&lt;br /&gt;
These screen shots show examples of all entities being displayed in short in the &#039;&#039;Show Gateway…&#039;&#039; window, in the second screen shot above.&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot;&amp;gt;&lt;br /&gt;
File:Stat-line.gif&lt;br /&gt;
File:Stat-peer.gif&lt;br /&gt;
File:Stat-loclu.gif&lt;br /&gt;
File:Stat-tp.gif&lt;br /&gt;
File:Stat-remlu.gif&lt;br /&gt;
File:Stat-mode-snasvcmg.gif&lt;br /&gt;
File:Stat-mode-aplsnaps.gif&lt;br /&gt;
File:Stat-sess-snasvcmg.gif&lt;br /&gt;
File:Stat-sess-aplsnaps.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Client configuration: SNA•ps 5250 ==&lt;br /&gt;
In the &#039;&#039;SNA•ps Access/5250&#039;&#039; control panel, switch to &#039;&#039;Virtual Controller&#039;&#039; in the &#039;&#039;Display Configuration&#039;&#039;. The controller name is usually &#039;&#039;QPACTL01&#039;&#039;; the default entry has way too many zeros. Close the control panel to save the changes.&lt;br /&gt;
&lt;br /&gt;
[[File:Dft-connsel.gif|right|thumb|Dialog window to select a default session ]]&lt;br /&gt;
The minimal client configuration just requires the selection of the default connection in the &#039;&#039;Pref(erence)s&#039;&#039; menu. Alternatively, the desired session can be configured directly in the client: Menu &#039;&#039;Session&#039;&#039; → &#039;&#039;Connection…&#039;&#039;. Both ways show a dialog window to select a gateway resource in the AppleTalk network.&lt;br /&gt;
&lt;br /&gt;
Finally, the connection to the SNA gateway selected above is established by selecting &#039;&#039;Connect&#039;&#039; from the &#039;&#039;Session&#039;&#039; menu. After a few seconds, the familiar AS/400 sign-on screen should appear.&lt;br /&gt;
&lt;br /&gt;
Other parameters can then also be set: Larger font for large monitors, alternative key assignments for small Mac keyboards: the numeric keypad is ideal here as a substitute for the lack of function keys, etc. The settings then can be saved in a connection document. When opening such a document, the session is established automatically.&lt;br /&gt;
&lt;br /&gt;
All other settings can be made according to taste.&lt;br /&gt;
&lt;br /&gt;
== Client configuration: SNA•ps Print ==&lt;br /&gt;
Before using this function, a printer on the AS/400 must be configured in the &#039;&#039;SNA•ps Access&#039;&#039; control panel.&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;Printer Configuration&#039;&#039; section of the Control Panel, click &#039;&#039;Printer Device List…&#039;&#039; and type in a valid AS/400 style print queue name. This name should &#039;&#039;&#039;not&#039;&#039;&#039; exist on the AS/400, it will be automatically created with the correct settings.&lt;br /&gt;
&lt;br /&gt;
Close the control panel to save the settings. If you get an error message stating the control panel can&#039;t be opened, you probably have the &#039;&#039;SNA•ps 5250&#039;&#039; client running in the background. Close it, and try again.&lt;br /&gt;
&lt;br /&gt;
After launching &#039;&#039;SNA•ps Print&#039;&#039; you will be asked for a file name for the newly to-be-created printer connection. Simply save this document with a meaningful name.&lt;br /&gt;
&lt;br /&gt;
The minimal configuration just requires the selection of the default connection in the &#039;&#039;Pref(erence)s&#039;&#039; menu. Alternatively, the desired session can be configured directly in the client: Menu &#039;&#039;Session&#039;&#039; → &#039;&#039;Connection…&#039;&#039;. Both ways show a dialog window to select a gateway resource in the AppleTalk network.&lt;br /&gt;
&lt;br /&gt;
Finally, the connection to the previously selected SNA gateway is established in the &#039;&#039;Session&#039;&#039; menu by selecting &#039;&#039;Connect&#039;&#039;. The AS/400 creates a printer device file (*DEVD) and a corresponding output queue (*OUTQ) which can then be used by applications on the system.&lt;br /&gt;
&lt;br /&gt;
An IBM 3812 Model 1 printer in SCS mode is emulated.&lt;br /&gt;
&lt;br /&gt;
Everything that is spooled to this new queue ends up in the print routine of &#039;&#039;SNA•ps Print&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
See the other menu items for the mostly self-explaining further functions &#039;&#039;SNA•ps Print&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pitfalls ==&lt;br /&gt;
* Neither SNA•ps 5250, nor SNA•ps print can be used on PowerPC machines when connecting via a &#039;&#039;SNA•ps gateway&#039;&#039;. As soon as the connection is to be set, the client crashes with an &#039;&#039;illegal instruction&#039;&#039; error.&amp;lt;ref&amp;gt;This is the first and so far only 68k program I&#039;m aware of not running on PowerPC.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Using the AppleTalk diagnostic tool &#039;&#039;Trawl&#039;&#039; on the gateway Mac itself somehow messes up the AppleTalk stack on it, so that the gateway no longer appears in the manager application. Only a reboot of the gateway computer fixes that error.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* Wikipedia:&lt;br /&gt;
** [https://en.wikipedia.org/wiki/IBM_Systems_Network_Architecture IBM Systems Network Architecture]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/IBM_Advanced_Program-to-Program_Communication IBM Advanced Program-to-Program Communication]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/IBM_Advanced_Peer-to-Peer_Networking IBM Advanced Peer-to-Peer Networking]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Synchronous_Data_Link_Control Synchronous Data Link Control]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/A/ROSE Apple Real-time Operating System Environment]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Message_passing Message Passing]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/AppleTalk AppleTalk]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/LocalTalk LocalTalk]&lt;br /&gt;
* [http://www.mactech.com/articles/develop/issue_04/coprocessor.html Inside The Macintosh Coprocessor Platform And A/ROSE]&lt;br /&gt;
* [https://www.computerwoche.de/a/terminalemulation-bindet-apple-welt-an-as-400-mac-user-haben-direkten-zugriff-auf-as-400-daten,1128406 Terminalemulation bindet Apple-Welt an AS/400], Computerwoche 1993-06-11 (German)&lt;br /&gt;
* [https://www.ibm.com/support/knowledgecenter/en/SSEQ5Y_5.9.0/com.ibm.pcomm.doc/books/html/admin_guide19.htm Administrator&#039;s Guide and Reference, SNA Client/Server Concepts], IBM&lt;br /&gt;
* [https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.znetwork/znetwork_6.htm Introduction to networking on the mainframe], IBM&lt;br /&gt;
* [https://web.archive.org/web/20181229140138/http://docwiki.cisco.com/wiki/IBM_Systems_Network_Architecture_Protocols IBM Systems Network Architecture Protocols], Cisco Docwiki (aus dem Archiv)&lt;br /&gt;
&lt;br /&gt;
[[Category: Software Configuration Guide]]&lt;br /&gt;
[[Category: System Administration]]&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
	<entry>
		<id>http://try-as400.pocnet.net/index.php?title=User:Mlc&amp;diff=1167</id>
		<title>User:Mlc</title>
		<link rel="alternate" type="text/html" href="http://try-as400.pocnet.net/index.php?title=User:Mlc&amp;diff=1167"/>
		<updated>2022-07-26T22:24:04Z</updated>

		<summary type="html">&lt;p&gt;Mlc: Created page with &amp;quot;Götz @: 3rz.de&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Götz @: 3rz.de&lt;/div&gt;</summary>
		<author><name>Mlc</name></author>
	</entry>
</feed>