/DOUBLE PRECISION MULTIPLY ROUTINE, 2'S COMP. 
/CALLING SEQUENCE:       JMS DMUL
/                         ADDRESS OF MULTIPLICAND(HIGH ORDER)
/                         ADDRESS OF MULTIPLIER(HIGH ORDER)
/                       RETURN, HIGH ORDER PRODUCT IN AC,
/                         NEXT HIGH TO LOW IN B, C, D.
*200
DMUL, 0
CLA CLL
TAD REST
DCA SGN
TAD I DMUL
DCA ADDR
TAD I ADDR
SPA
CMA CML
DCA CNDH
ISZ ADDR
TAD I ADDR
SZL
ISZ SGN
SZL
CMA CML IAC
DCA CNDL
SZL
ISZ CNDH
CLL
ISZ DMUL
TAD I DMUL
DCA ADDR
TAD I ADDR
SPA
CMA CML
DCA PERH
ISZ DMUL
ISZ ADDR
TAD I ADDR
SZL
ISZ SGN
NOP
SZL
CMA CML IAC
DCA PERL
SZL
ISZ PERH
TAD PERL
DCA I MP2
TAD CNDL
JMS I MP4
DCA D
TAD I MP5
DCA C
TAD CNDH
DCA I MP2
TAD PERL
JMS I MP4
TAD C
DCA C
RAL
TAD I MP5
DCA B
RAL
DCA SAV
TAD CNDL
DCA I MP2
TAD PERH
JMS I MP4
TAD C
DCA C
RAL
TAD I MP5
TAD B
TAD SAV
DCA B
RAL
DCA SAV
TAD CNDH
DCA I MP2
TAD PERH
JMS I MP4
TAD B
DCA B
RAL
TAD SAV
TAD I MP5
ISZ SGN
JMP I DMUL
CMA
DCA ADDR
TAD D
CMA IAC
DCA D
TAD C
CMA
SNL
JMP ARND
IAC CLL
DCA C
SNL
JMP ARND+1
TAD B
CMA IAC CLL
DCA B
TAD ADDR
SZL
IAC
JMP I DMUL
ARND, DCA C
TAD B
CMA
DCA B
JMP ARND-4
REST, 7776
SGN, 0
ADDR, 0
SAV, 0
CNDH, 0
CNDL, 0
PERH, 0
PERL, 0
B, 0
C, 0
D, 0
MP4, XMP4
MP2, XMP2
MP5, XMP5
*400
XMP4,0
DCA MP1
DCA XMP5
TAD THIR
DCA MP3
TAD MP1
RAR
DCA MP1
TAD XMP5
SZL
JMP XMP2+1
CLL RAR
RET2, DCA XMP5
ISZ MP3
JMP XMP4+5
TAD MP1
RAR
CLL
JMP I XMP4
XMP5, 0
MP1, 0
MP3, 0
THIR, 7764
XMP2, 0
TAD XMP2
CML
RAR
JMP RET2
$@