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