{"id":299,"date":"2011-12-25T17:24:31","date_gmt":"2011-12-25T23:24:31","guid":{"rendered":"http:\/\/tommysprinkle.com\/txxos\/?p=299"},"modified":"2021-04-17T18:24:39","modified_gmt":"2021-04-17T23:24:39","slug":"dasd-ipl-records","status":"publish","type":"post","link":"https:\/\/tommysprinkle.com\/txxos\/?p=299","title":{"rendered":"DASD IPL Records"},"content":{"rendered":"<p>Now we are ready to start preparing to IPL directly from a DASD volume instead of the card reader. \u00a0When the CPU IPL&#8217;s from DASD the IPL record at CC=0000 HH=00000 R=01 will be read into memory. \u00a0Just like our first IPL card it contains a PSW and two CCW&#8217;s. \u00a0The first CCW is a Read Data (X&#8217;06&#8217;). Since it is chained from the initial IPL CCW we do not need a Seek or Search CCW. \u00a0The Read CCW will read the next record on the track (CC=0000 HH=0000 R=02). \u00a0This second IPL record contains\u00a0additional CCW&#8217;s and data.<\/p>\n<p>The first IPL record has a Key Length of 4 with the value &#8216;IPL1&#8217; and a Data Length of 24. \u00a0The second IPL record has a Key Length of 4 with a value of &#8216;IPL2&#8242; \u00a0and a Data Length of 144 (or at least it does on my 3350). \u00a0These records were created when the volume was initialized.<\/p>\n<p>The third record is the Volume Label and is followed by the IPL text in record 4.<\/p>\n<p>Our IPL1 record needs to contain a PSW and two CCW&#8217;s. \u00a0We will load the contents of the second record at location x&#8217;4000&#8217; so our first record needs to contain:<\/p>\n<pre>00000000 00005000  PSW\r\n06004000 60000060  Read Data into location x'4000', Command Chain, SLI, x'60' byes of data\r\n08004000 00000000  TIC location x'4000'<\/pre>\n<p>This will cause x&#8217;60&#8217; byes from our IPL2 record to be read into location x&#8217;4000&#8242; and then the CCW program will TIC (branch) to get the next CCW from that location.<\/p>\n<p>Our IPL2 record needs to contain the necessary CCW&#8217;s and data fields to read in the IPL text from record 4. \u00a0We will read the IPL text into location x&#8217;5000&#8242;. \u00a0Our IPL2 record needs to contain:<\/p>\n<pre>07004021 40000006 SEEK, Command Chain\r\n31004023 40000005 SEARCH ID Equal, Command Chain\r\n08004008 00000000 TIC (back to search CCW)\r\n06005000 2000**** READ Data, SLI\r\n00000000 00000004 MBBCCHHR (for Seek and Search)<\/pre>\n<p>The data length in the Read Data CCW should be the same as the actual length of our IPL text record.<\/p>\n<p>[Next &#8211; <a title=\"TXXIPL2D \u2013 Writing IPL Text To DASD\" href=\"http:\/\/tommysprinkle.com\/txxos\/?p=302\">TXXIPL2D \u2013 Writing IPL Text To DASD<\/a>]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Now we are ready to start preparing to IPL directly from a DASD volume instead of the card reader. \u00a0When the CPU IPL&#8217;s from DASD the IPL record at CC=0000 HH=00000 R=01 will be read into memory. \u00a0Just like our &hellip; <a href=\"https:\/\/tommysprinkle.com\/txxos\/?p=299\">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-299","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1CPQT-4P","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/299","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=299"}],"version-history":[{"count":4,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/299\/revisions"}],"predecessor-version":[{"id":301,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/299\/revisions\/301"}],"wp:attachment":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}