{"id":254,"date":"2018-08-11T17:59:05","date_gmt":"2018-08-11T21:59:05","guid":{"rendered":"https:\/\/stjean.biz\/wp\/?p=254"},"modified":"2019-01-16T18:18:55","modified_gmt":"2019-01-16T22:18:55","slug":"cs269-ibm-360-assembler-program-5","status":"publish","type":"post","link":"https:\/\/stjean.biz\/wp\/2018\/08\/11\/cs269-ibm-360-assembler-program-5\/","title":{"rendered":"CS269 &#8211; IBM 360 Assembler &#8211; Program 5"},"content":{"rendered":"\r\n<p>Well, just to continue with the brain dump from yesteryear, here is program number 5 for the USM CS269 Intro to IBM Assembly Language Class.\u00a0 Unlike program 2 posted <a href=\"https:\/\/stjean.biz\/wp\/2018\/08\/10\/cs269-ibm360-assembler-program-2\/\">here<\/a>, program #5 will run unmodified in the PC DOS version of ASSIST.\u00a0 I bet you&#8217;re thinking &#8220;Why would I even want to do this?&#8221;\u00a0 I&#8217;m probably think the same thing.\u00a0 Putting it here though at least might give me the opportunity to throw out the paper version.<\/p>\r\n\r\n<pre> t\r\n00001 $JOB ASSIST IPF269 PHIL ST.JEAN\r\n00002 *PROGRAM 5 DUE 3\/19\/81 CS269\r\n00003 * THIS PROGRAM SIMULATES MULTIPLICATION AND DIVISION AS DESCRIBED\r\n00004 * IN THE TEXT FOR CS269 SPR81 BY STRUBLE; ON PAGES\r\n00005 * 70-71 AND 74-75.  THESE SIMULATIONS DEAL WITH\r\n00006 * POSITIVE OPERANDS, AND IF ONE IS NEGATIVE, COMPLEMENT IT SO\r\n00007 * THAT IT IS POSITIVE.\r\n00008 * DIVISION IS ROUNDED ( IE INTEGER DIVISION )\r\n00009 *\r\n00010 * INPUT : AN ALGEBRAIC EXPRESSION WITH ONLY MULTIPLICATION AND\r\n00011 *         DIVISION; NO PARENTHESIS.\r\n00012 *\r\n00013 * OUTPUT: THE EXPRESSION AND THE EVALUATED RESULT.\r\n00014 *\r\n00015 * REGISTERS: 1 - INDEX THROUGH CARD\r\n00016 *            2,3 - REGISTERS FOR MULT. AND DIV.\r\n00017 *            4 - LOOP COUNTER FOR SIMULATION OF MULT. AND DIV.\r\n00018 *            5 - TEMP. TO TEST IF RIGHT BIT IS ZERO OR ONE\r\n00019 *            8 - USED TO PUT THE DIVISOR IN CORRECT RELATION\r\n00020 *            9 - STORES RESULT AFTER EACH OPERATION\r\n00021 *           11 - COUNTS THE NUMBER OF NEGATIVES\r\n00022 *\r\n00100 PROG5    CSECT\r\n00110          BALR  12,0\r\n00120          USING *,12\r\n00130 LOOP1    LA    11,0\r\n00150          XREAD CARD,80\r\n00160          BCR   4,14\r\n00170          MVC   LINE+1(80),CARD\r\n00180          LA    1,CARD\r\n00190          XDECI 9,0(1)\r\n00200          C     9,=F'0'\r\n00210          BNL   LOOP2\r\n00220          X     9,=X'FFFFFFFF'\r\n00230          AL    9,=X'00000001'\r\n00235          LA    11,1(11)\r\n00240 LOOP2    MVC   OP(1),0(1)\r\n00244          CLI   OP,C' '\r\n00246          BE    DONE\r\n00250          XDECI 3,1(1)\r\n00260          C     3,=F'0'\r\n00270          BNL   SKIP\r\n00280          X     3,=X'FFFFFFFF'\r\n00290          AL    3,=X'00000001'\r\n00295          LA    11,1(11)\r\n00300 SKIP     CLI   OP,C'\/'\r\n00310          BE    DIVIDE\r\n00311          CLI   OP,C'*'\r\n00312          BE    MULT\r\n00313          XPRNT ERROR,18\r\n00314          B     LOOP2\r\n00320 *\r\n00330 * MULTIPLICATION\r\n00340 *\r\n00350 MULT     LA    4,32\r\n00360          LA    2,0\r\n00370 LMULT1   LR    5,3\r\n00380          N     5,=X'00000001'\r\n00390          BC    8,LMULT2\r\n00400          ALR   2,9\r\n00410 LMULT2   SRDL  2,1\r\n00420          BCT   4,LMULT1\r\n00430          LR    9,3\r\n00440          B     LOOP2\r\n00450 *\r\n00455 * DIVISION\r\n00456 *\r\n00460 DIVIDE   LA    2,0\r\n00470          LA    4,32\r\n00480          LR    8,3\r\n00490          LR    3,9\r\n00500 LDIV1    SLDL  2,1\r\n00510          SLR   2,8\r\n00520          CLR   2,8\r\n00530          BNH   LDIV2\r\n00540          ALR   2,8\r\n00550          B     LDIV3\r\n00560 LDIV2    AL    3,=X'00000001'\r\n00570 LDIV3    BCT   4,LDIV1\r\n00580          LR    9,3\r\n00590          B     LOOP2\r\n00600 *\r\n00610 *\r\n00620 DONE    N   11,=X'00000001'\r\n00625         BC   8,NOCOMPL\r\n00650          X     9,=X'FFFFFFFF'\r\n00660          AL    9,=X'00000001'\r\n00670 NOCOMPL  MVI   82(1),C'='\r\n00680          XDECO 9,83(1)\r\n00690          XPRNT LINE,81\r\n00700          MVC   LINE+1(131),BLANK\r\n00710          B     LOOP1\r\n00715 *\r\n00720 CARD     DS    CL80\r\n00730 LINE     DC    CL1'0'\r\n00740          DS    CL131\r\n00750 BLANK    DC    131CL1' '\r\n00755 OP       DS   1F\r\n00756 ERROR    DC   CL18'0ILLEGAL OPERATION'\r\n00760          END   PROG5\r\n00770 $ENTRY\r\n00780 4*3\r\n00790 16\/2\r\n00800 2*3*4\/10\r\n00810 -5*4\/-2\r\n00820 -10\/3\r\n00830 84\/2\/3\r\n.rdymsg on\r\nR; T=0.01\/0.12 18:53:08\r\n.assist\r\n\r\n***  NO   STATEMENTS FLAGGED -  NO   WARNINGS,  NO   ERRORS\r\n\r\n4*3 =          12\r\n\r\n16\/2 =           8\r\n\r\n2*3*4\/10 =           2\r\n\r\n-5*4\/-2 =          10\r\n\r\n-10\/3 =          -3\r\n\r\n84\/2\/3 =          14\r\n\r\n*** EXECUTION:    2241 INSTRUCTIONS EXECUTED ***\r\n\r\n*** AM004 - NORMAL USER TERMINATION BY RETURN ***\r\nR; T=1.29\/3.15 18:53:43\r\n.logoff\r\nCONNECT= 01:29:49 VIRTCPU= 000:30.30 TOTCPU= 001:53.24\r\nLOGOFF AT 18:54:07 EDT THURSDAY 03\/19\/81\r\n\r\n CAPS ONLINE<\/pre>","protected":false},"excerpt":{"rendered":"<p>Well, just to continue with the brain dump from yesteryear, here is program number 5 for the USM CS269 Intro to IBM Assembly Language Class.\u00a0 Unlike program 2 posted here, program #5 will run unmodified in the PC DOS version of ASSIST.\u00a0 I bet you&#8217;re thinking &#8220;Why would I even want to do this?&#8221;\u00a0 I&#8217;m &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/stjean.biz\/wp\/2018\/08\/11\/cs269-ibm-360-assembler-program-5\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;CS269 &#8211; IBM 360 Assembler &#8211; Program 5&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-254","post","type-post","status-publish","format-standard","hentry","category-code-snippets"],"_links":{"self":[{"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/posts\/254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/comments?post=254"}],"version-history":[{"count":5,"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/posts\/254\/revisions"}],"predecessor-version":[{"id":261,"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/posts\/254\/revisions\/261"}],"wp:attachment":[{"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/media?parent=254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/categories?post=254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stjean.biz\/wp\/wp-json\/wp\/v2\/tags?post=254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}