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. Unlike program 2 posted here, program #5 will run unmodified in the PC DOS version of ASSIST. I bet you’re thinking “Why would I even want to do this?” I’m probably think the same thing. Putting it here though at least might give me the opportunity to throw out the paper version.
t 00001 $JOB ASSIST IPF269 PHIL ST.JEAN 00002 *PROGRAM 5 DUE 3/19/81 CS269 00003 * THIS PROGRAM SIMULATES MULTIPLICATION AND DIVISION AS DESCRIBED 00004 * IN THE TEXT FOR CS269 SPR81 BY STRUBLE; ON PAGES 00005 * 70-71 AND 74-75. THESE SIMULATIONS DEAL WITH 00006 * POSITIVE OPERANDS, AND IF ONE IS NEGATIVE, COMPLEMENT IT SO 00007 * THAT IT IS POSITIVE. 00008 * DIVISION IS ROUNDED ( IE INTEGER DIVISION ) 00009 * 00010 * INPUT : AN ALGEBRAIC EXPRESSION WITH ONLY MULTIPLICATION AND 00011 * DIVISION; NO PARENTHESIS. 00012 * 00013 * OUTPUT: THE EXPRESSION AND THE EVALUATED RESULT. 00014 * 00015 * REGISTERS: 1 - INDEX THROUGH CARD 00016 * 2,3 - REGISTERS FOR MULT. AND DIV. 00017 * 4 - LOOP COUNTER FOR SIMULATION OF MULT. AND DIV. 00018 * 5 - TEMP. TO TEST IF RIGHT BIT IS ZERO OR ONE 00019 * 8 - USED TO PUT THE DIVISOR IN CORRECT RELATION 00020 * 9 - STORES RESULT AFTER EACH OPERATION 00021 * 11 - COUNTS THE NUMBER OF NEGATIVES 00022 * 00100 PROG5 CSECT 00110 BALR 12,0 00120 USING *,12 00130 LOOP1 LA 11,0 00150 XREAD CARD,80 00160 BCR 4,14 00170 MVC LINE+1(80),CARD 00180 LA 1,CARD 00190 XDECI 9,0(1) 00200 C 9,=F'0' 00210 BNL LOOP2 00220 X 9,=X'FFFFFFFF' 00230 AL 9,=X'00000001' 00235 LA 11,1(11) 00240 LOOP2 MVC OP(1),0(1) 00244 CLI OP,C' ' 00246 BE DONE 00250 XDECI 3,1(1) 00260 C 3,=F'0' 00270 BNL SKIP 00280 X 3,=X'FFFFFFFF' 00290 AL 3,=X'00000001' 00295 LA 11,1(11) 00300 SKIP CLI OP,C'/' 00310 BE DIVIDE 00311 CLI OP,C'*' 00312 BE MULT 00313 XPRNT ERROR,18 00314 B LOOP2 00320 * 00330 * MULTIPLICATION 00340 * 00350 MULT LA 4,32 00360 LA 2,0 00370 LMULT1 LR 5,3 00380 N 5,=X'00000001' 00390 BC 8,LMULT2 00400 ALR 2,9 00410 LMULT2 SRDL 2,1 00420 BCT 4,LMULT1 00430 LR 9,3 00440 B LOOP2 00450 * 00455 * DIVISION 00456 * 00460 DIVIDE LA 2,0 00470 LA 4,32 00480 LR 8,3 00490 LR 3,9 00500 LDIV1 SLDL 2,1 00510 SLR 2,8 00520 CLR 2,8 00530 BNH LDIV2 00540 ALR 2,8 00550 B LDIV3 00560 LDIV2 AL 3,=X'00000001' 00570 LDIV3 BCT 4,LDIV1 00580 LR 9,3 00590 B LOOP2 00600 * 00610 * 00620 DONE N 11,=X'00000001' 00625 BC 8,NOCOMPL 00650 X 9,=X'FFFFFFFF' 00660 AL 9,=X'00000001' 00670 NOCOMPL MVI 82(1),C'=' 00680 XDECO 9,83(1) 00690 XPRNT LINE,81 00700 MVC LINE+1(131),BLANK 00710 B LOOP1 00715 * 00720 CARD DS CL80 00730 LINE DC CL1'0' 00740 DS CL131 00750 BLANK DC 131CL1' ' 00755 OP DS 1F 00756 ERROR DC CL18'0ILLEGAL OPERATION' 00760 END PROG5 00770 $ENTRY 00780 4*3 00790 16/2 00800 2*3*4/10 00810 -5*4/-2 00820 -10/3 00830 84/2/3 .rdymsg on R; T=0.01/0.12 18:53:08 .assist *** NO STATEMENTS FLAGGED - NO WARNINGS, NO ERRORS 4*3 = 12 16/2 = 8 2*3*4/10 = 2 -5*4/-2 = 10 -10/3 = -3 84/2/3 = 14 *** EXECUTION: 2241 INSTRUCTIONS EXECUTED *** *** AM004 - NORMAL USER TERMINATION BY RETURN *** R; T=1.29/3.15 18:53:43 .logoff CONNECT= 01:29:49 VIRTCPU= 000:30.30 TOTCPU= 001:53.24 LOGOFF AT 18:54:07 EDT THURSDAY 03/19/81 CAPS ONLINE

