/MULTIPLIKATION ZWEIER BINAERZAHLEN /A UND B IN DOUBLE PRECISION ARITHMETIC *37 OCNUM, 0 *600 MULTIP, RTCHAR ROCT CHECK 256 /TERMINATOR= . ? SKP TYDER /TERMINATOR NOT FOUND CLL CLA TAD OCNUM DCA NUMA /A EINGELESEN RTCHAR ROCT CHECK 275 SKP TYDER /TERMINATOR = ? CLL CLA TAD OCNUM DCA NUMB /B EINGELESEN JMS SRMULT 12 /NUMBER OF LOOP ROUTINES NUMA /MULTIPLIKAND NUMB /MULTIPLIKATOR ERGEB /ERGEBNIS IN DOUBLE PRECISION ARITHMETIC TAD ERGEB TOCT TAD ERGEB+1 LINE JMP MULTIP NUMA,0 NUMB,0 ERGEB,0 /CALL : SRMULT /STELLENZAHL DES MULTIPLIKATORS B /ADRESSE DES MULTIPLIKANDEN A /ADRESSE DES MULTIPLIKATORS B /ADRESSE DES ERGEBNISSES SRMULT, 0 INITL1, CLL CLA DCA SUM1 DCA SUM2 DCA LPCNT2 DCA OVFLOW TAD I SRMULT /STELLENZAHL EINLESEN CIA DCA LPCNT1 /ZAEHLER AUF NEGATIVEN WERT /DER STELLENZAHL SETZEN ISZ SRMULT TAD I SRMULT DCA TEM1 DCA MUCNDA /MULTIPLIKAND A ABSPEICHERN ISZ SRMULT TAD I SRMULT DCA TEM2 DCA MUCTRB /MULTIPLIKATOR B ABSPEICHERN LOOP1, TAD MUCTRB RAR CLL SNL JMP COUNTR ADD1, DCA MUCTRB /DO ONE MORE ADDITION CLL TAD SUM1 SKP COUNTR, DCA MUCTRB ISZ LPCNT1 SKP /SKIP IF LOOP CNT1 =0 JMP INITL2 TAD MUCNDA RAL CLL DCA MUCNDA ISZ LPCNT2 JMP LOOP1 INITL2, CLL CLA TAD LPCNT2 CIA DCA LPCNT2 /SET LPCNT2 TO -1 TAD I TEM1 RAR CLL DCA MUCNDA TAD I TEM2 DCA MUCTRB LOOP2, TAD MUCTRB CLL RAL SNL /LINK =1 JMP POINTR ADD2, DCA MUCTRB TAD SUM2 TAD MUCNDA DCA SUM2 SKP POINTR, DCA MUCTRB TAD MUCNDA RAR CLL DCA MUCNDA ISZ LPCNT2 JMP LOOP2 TAD SUM2 TAD OVFLOW DCA SUM2 ISZ SRMULT TAD I SRMULT DCA TEM1 TAD SUM1 DCA I TEM1 TAD I SRMULT IAC DCA TEM2 TAD SUM2 DCA I SUM2 ISZ SRMULT JMP I SRMULT LPCNT1,0 LPCNT2,0 SUM1,0 SUM2,0 OVFLOW,0 TEM1,0 TEM2,0 MUCNDA,0 MUCTRB,0 $