{"id":53,"date":"2011-06-17T09:36:47","date_gmt":"2011-06-17T14:36:47","guid":{"rendered":"http:\/\/tommysprinkle.com\/txxos\/?p=53"},"modified":"2021-04-17T18:31:32","modified_gmt":"2021-04-17T23:31:32","slug":"io-machine-instructions","status":"publish","type":"post","link":"https:\/\/tommysprinkle.com\/txxos\/?p=53","title":{"rendered":"I\/O Machine Instructions"},"content":{"rendered":"<p>There are several machine instructions dedicated to performing I\/O operations.\u00a0 These include Start I\/O (SIO), Start I\/O Fast Release (SIOF), Test I\/O (TIO), Clear I\/O (CLRIO), Halt I\/O (HIO), Halt Device (HDV), Store Channel ID (STIDC), and Test Channel (TCH).\u00a0 All I\/O instructions are privileged and can only be executed in supervisor state.<\/p>\n<p>Each of these instructions has a single operand in the D2(B2) format where D2 is a displacement value and B2 is a register (0-15).\u00a0 The operand does not refer to a storage address but instead bits 16-31 of the address value are used to identify a channel\/device address for the instruction.<\/p>\n<p>If a register of zero is specified then only the contents of the displacement value are used to specify the device address.<\/p>\n<p>Examples<\/p>\n<p>SIO\u00a0\u00a0\u00a0\u00a0 X\u2019580\u2019\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Start I\/O on device 580<\/p>\n<p>&nbsp;<\/p>\n<p>LA\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,X\u2019580\u2019<\/p>\n<p>SIO\u00a0\u00a0\u00a0\u00a0 0(1)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Start I\/O on device 580<\/p>\n<p>&nbsp;<\/p>\n<p>LA\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a01,X&#8217;580&#8242;<\/p>\n<p>SIO\u00a0\u00a0\u00a0\u00a0 1(1)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * Start I\/O on device 581<\/p>\n<p>&nbsp;<\/p>\n<p>Start I\/O (SIO)<\/p>\n<p>An I\/O operation (write, read, read-backward, control or sense) operation is initiated on the device with the specified channel and device address.\u00a0 The Channel Address Word (CAW) at storage location 72 must be set prior to the SIO being issued.\u00a0 The CAW contains the protection key for the channel (in bits 0-3) and the address of the first CCW (in bits 8-31).\u00a0 A condition code is set to indicate the status of the SIO request.<\/p>\n<p>0 \u2013 I\/O operation initiated and channel is processing the channel program<\/p>\n<p>1 \u2013 CSW stored<\/p>\n<p>2 \u2013 Channel or subchannel busy<\/p>\n<p>3 \u2013 Not operational<\/p>\n<p>&nbsp;<\/p>\n<p>Test I\/O (TIO)<\/p>\n<p>Returns the status of the channel, subchannel and device by setting the condition code.<\/p>\n<p>0 \u2013 Available<\/p>\n<p>1 \u2013 CSW Stored<\/p>\n<p>2 \u2013 Channel or subchannel busy<\/p>\n<p>3 \u2013 Not operational<\/p>\n<p>&nbsp;<\/p>\n<p><a title=\"IPL Process\" href=\"http:\/\/tommysprinkle.com\/txxos\/?p=55\">[Next &#8211; IPL Process]<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are several machine instructions dedicated to performing I\/O operations.\u00a0 These include Start I\/O (SIO), Start I\/O Fast Release (SIOF), Test I\/O (TIO), Clear I\/O (CLRIO), Halt I\/O (HIO), Halt Device (HDV), Store Channel ID (STIDC), and Test Channel (TCH).\u00a0 &hellip; <a href=\"https:\/\/tommysprinkle.com\/txxos\/?p=53\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"template-page-builder-no-sidebar.php","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-53","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1CPQT-R","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=53"}],"version-history":[{"count":7,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/53\/revisions"}],"predecessor-version":[{"id":531,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/53\/revisions\/531"}],"wp:attachment":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=53"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=53"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}