{"id":10,"date":"2011-06-11T18:05:33","date_gmt":"2011-06-11T23:05:33","guid":{"rendered":"http:\/\/tommysprinkle.com\/txxos\/?p=10"},"modified":"2021-04-17T18:32:43","modified_gmt":"2021-04-17T23:32:43","slug":"card-loader","status":"publish","type":"post","link":"https:\/\/tommysprinkle.com\/txxos\/?p=10","title":{"rendered":"Card Loader"},"content":{"rendered":"<p>To run a Bare Metal program we must have some way to get our program into the processor and ready for execution. \u00a0We could take the approach I used on the 370\/158 that didn&#8217;t have any I\/O devices except the operator console. \u00a0On that system I used the Storage Alter function to enter my program in hex. \u00a0(This was also a familiar technique used on early\u00a0microprocessors)<\/p>\n<p>There are a couple of problems doing this. \u00a0First is that it can be very time consuming. \u00a0Another problem is this process is very error prone &#8211; easy to get lost when entering a long string of hex. \u00a0Then there is the problem of making code changes. \u00a0You can write patches to the code already entered or you start from the beginning and enter everything again. \u00a0In my 370\/158 days I avoided starting over from the beginning. \u00a0I would spend a few minutes each day adding to the existing code in memory. \u00a0As it was patched and re-patched it became difficult to keep up with. \u00a0I finally gave up when the system had to be shut down due to some maintenance to the facility. \u00a0I just couldn&#8217;t bring myself to start entering hex from the beginning.<\/p>\n<p>Fortunately the designers of the System 360\/370 processors give us an easier way &#8211; if we have an input device. \u00a0We can IPL from cards, tape or a disk drive.<\/p>\n<p>We will begin with an IPL from a card reader since it is probably the easiest. \u00a0At least from the standpoint of an\u00a0old timer\u00a0like myself who is very familiar with decks of cards.<\/p>\n<p>Our initial goal \u00a0is to create a small set of cards containing the necessary instructions to load an object deck into memory and cause it to begin execution.<\/p>\n<p><a title=\"Initial Program Load\" href=\"http:\/\/tommysprinkle.com\/txxos\/?p=14\">[ Next &#8211; IPL Initial Program Load ]<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>To run a Bare Metal program we must have some way to get our program into the processor and ready for execution. \u00a0We could take the approach I used on the 370\/158 that didn&#8217;t have any I\/O devices except the &hellip; <a href=\"https:\/\/tommysprinkle.com\/txxos\/?p=10\">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":[4],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","hentry","category-cardloader"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1CPQT-a","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/10","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=10"}],"version-history":[{"count":4,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":539,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=\/wp\/v2\/posts\/10\/revisions\/539"}],"wp:attachment":[{"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tommysprinkle.com\/txxos\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}