File MULTIPLY

Directory of image this file is from
This file as a plain text file

[ M GRALIA
[ JAN 29
[
[  JANC
[
[ DRIVER
$0
JSR
9A+1
TTL
[
[
[********* MULTIPLY
[
[MULTIPLY 12 BITS
[BY 12 BITS
[
[PROGRAM CONSTANTS
#9M [MULTIPLICAND [TOP] INITIALLY
#9N [MULTIPLIER [BOTTOM] INITIALLY
#9P 0 [PRODUCT: HIGH ORDER BITS
#9Q 0 [PRODUCT: LOW ORDER BITS
[
#9U [TS: PRODUCT SIGN
#9V 1 [NUMBER ONE
#9W 0 [NUMBER ZERO
#9X 14 [LOOP LIMIT
#9Y 0 [LOOP COUNTER
#9Z 4000 [COMPLEMENT SIGN BIT
[
#9A TRC
0
LDA [CLEAR PRODUCT AREA
9W
STO
9P
STO
9Q
STO [ASSUME POSITIVE PRODUCT
9U
LDA [DETERMINE PRODUCT SIGN
9M
BZA [TERMINATE EARLY
9A
BRP
9C
CAA [MAKE MULTIPLICAND POSITIVE
9V
STO
9M
LDA
9N
BZA [TERMINATE EARLY
9A
BRP [SIGN NEGATIVE
9D
CAA [MAKE MULTIPLIER POSITIVE
9V
STO
9N
TRC [SIGN POSITIVE
9E
#9C LDA
9N
BZA [TERMINATE EARLY
9A
BRP [SIGN POS
9E
CAA [MAKE MULTIPLIER POSITIVE
9V
STO
9N
#9D LDA [SET PRODUCT SIGN TO NEGATIVE
9V
STO
9U
[BEGIN MULTIPLICATION
#9E LDA
9X
STO
9Y
[SHIFT AND ADD LOOP
#9F LDA
9N
ROR
STO
9N
[ADD MULTIPLICAND ?
BRP
9J
JSR [ROTATE RIGHT
9K+1
LDA
9P
ADD
9M
STO
9P
[UPDATE LOOP COUNTER
#9G CAD
9Y
STO
9Y
BNZ
9F
[BEGIN EXIT
JSR
9K+1
[FIX PRODUCT SIGN
LDA
9U
BZA
9A
[NEGATE PRODUCT
LDA
9Q
CAA
9V
STO
9Q
BNV
9H
LDA
9P
CAA
9V
STO
9P
TRC [RETURN
9A
#9H LDA
9P
CAA
9W
STO
9P
TRC [RETURN
9A
#9J JSR
9K+1
TRC
9G
[******* ROTATE
[DOUBLE PRECISION ROTATE RIGHT
#9K TRC
0
LDA [ROTATE LOW ORDER BITS
9Q
ROR
BRP
9R
ADD
9Z
STO
9Q
LDA [ROTATE HIGH ORDER BITS
9P
ROR
BRN
9S
ADD
9Z
#9L STO
9P
TRC
9K
#9R STO
9Q
LDA [ROTATE HIGH ORDER BITS
9P
ROR
BRP
9L
ADD
9Z
#9S STO
9P
LDA
9Q
ADD
9Z
STO
9Q
TRC
9K



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search