ADIM82
         PLA
         STA   RETADR
         PLA
         STA   RETADR+1
         PLA
         STA   :FILL
         PLA
         STA   :MCAND     
         PLA
         STA   :AYSIZE
         STA   :AYBAK
         PLA
         STA   :AXSIZE
         STA   :AXBAK
         PLA
         STA   ADDR1
         PLA
         STA   ADDR1+1
         LDA   #0
         STA   :MCAND+1
         LDA   #0
         TAY
         STY   SCRATCH
         BEQ   :ENTLP
:DOADD
         CLC
         ADC   :AXSIZE
         TAX
         TYA
         ADC   SCRATCH
         TAY
         TXA
:LP
         ASL   :AXSIZE
         ROL   SCRATCH
:ENTLP
         LSR   :AYSIZE
         BCS   :DOADD
         BNE   :LP
         STX   :MLIER
         STY   :MLIER+1
         LDA   #0
         STA   :PROD
         STA   :PROD+1
         STA   :PROD+2
         STA   :PROD+3
         LDX   #$10
:SHIFTR  LSR   :MLIER+1
         ROR   :MLIER
         BCC   :ROTR
         LDA   :PROD+2
         CLC
         ADC   :MCAND
         STA   :PROD+2
         LDA   :PROD+3
         ADC   :MCAND+1
:ROTR
         ROR
         STA   :PROD+3
         ROR   :PROD+2
         ROR   :PROD+1
         ROR   :PROD
         DEX
         BNE   :SHIFTR
         CLC
         INC   :PROD      
         INC   :PROD
         INC   :PROD
         BCC   :NOCAR
         INC   :PROD+1
:NOCAR
         LDA   :FILL      
         LDX   :PROD+1    
                          ; GO BEYOND A 16BIT VALUE;
         
         
         
         
         BEQ   :PART
         LDY   #0
:FULL
         STA   (ADDR1),Y
         INY
         BNE   :FULL
         INC   ADDR1+1
         DEX
         BNE   :FULL      
:PART
         LDX   :PROD
         BEQ   :MFEXIT
         LDY   #0
:PARTLP
         STA   (ADDR1),Y
         INY
         DEX
         BNE   :PARTLP    
:MFEXIT
         LDY   #0
         LDA   :AXBAK
         STA   (ADDR1),Y
         INY
         LDA   :AYBAK
         STA   (ADDR1),Y
         INY
         LDA   :MCAND
         STA   (ADDR1),Y
         LDA   RETADR+1
         PHA
         LDA   RETADR
         PHA
         LDY   ADDR1
         LDX   ADDR1+1
         LDA   :PROD
         STA   RETURN
         LDA   :PROD+1
         STA   RETURN+1
         LDA   :PROD+2
         STA   RETURN+2
         LDA   :PROD+3
         STA   RETURN+3
         LDA   #4         
         STA   RETLEN
         LDA   :MCAND
         RTS
:PROD    DS    4
:AXSIZE  DS    1
:AYSIZE  DS    1
:AXBAK   DS    1
:AYBAK   DS    1
:MLIER   DS    2
:MCAND   DS    2
:FILL    DS    1
