1 2 /TWO'S COMPLEMENT SINGLE PRECISION MULTIPLY ROUTINE 3 /RETURN HIGH ORDER PRODUCT IN AC, LOW IN MP1 4 5 000000 0000 MULT, 0 6 000001 7100 CLL 7 000002 7510 SPA /TEST FOR NEGATIVE MULTIPLIER 8 000003 7061 CMA CML IAC 9 000004 3050 DCA MP1 /STORE MULTIPLIER 10 000005 3051 DCA MP5 11 000006 1400 TAD I MULT 12 000007 7450 SNA /TEST FOR ZERO MULTIPLICAND 13 000010 5034 JMP MPSN+2 /JMP IF MULTIPLICAND=0 14 000011 7510 SPA /TEST FOR NEGATIVE MULTIPLICAND 15 000012 7061 CMA CML IAC 16 000013 3052 DCA MP2 /STORE MULTIPLICAND 17 000014 1047 TAD THIR 18 000015 3053 DCA MP3 19 000016 1050 MP4, TAD MP1 /MULTIPLY LOOP PROPER 20 000017 7010 RAR 21 000020 3050 DCA MP1 22 000021 1051 TAD MP5 23 000022 7430 SZL /TEST IF MULTIPLICAND SHOULD BE ADDED 24 000023 1052 TAD MP2 25 000024 7110 CLL RAR 26 000025 3051 DCA MP5 27 000026 2053 ISZ MP3 /TEST FOR END OF LOOP 28 000027 5016 JMP MP4 29 000030 1050 TAD MP1 30 000031 7010 RAR 31 000032 7430 MPSN, SZL 32 000033 5040 JMP COMP 33 000034 3050 DCA MP1 34 000035 1051 TAD MP5 35 000036 2000 MPZ, ISZ MULT /EXIT TO CALLING PROGRAM 36 000037 5400 JMP I MULT 37 000040 7141 COMP, CMA CLL IAC /COMPLEMENT PRODUCT 38 000041 3050 DCA MP1 39 000042 1051 TAD MP5 40 000043 7040 CMA 41 000044 7430 SZL 42 000045 7001 IAC 43 000046 5036 JMP MPZ 44 000047 7764 THIR, 7764 /ELEVEN IN DECIMAL 45 000050 0000 MP1, 0 46 000051 0000 MP5, 0 47 000052 0000 MP2, 0 48 000053 0000 MP3, 0 49 50 PAUSE undefined ^ 000054 0000 51 52 $ end of file ^