;*****************************************************************************

; Addition float1 <- float1 + float2

fadd

jsr ieeetotmp

lda exp2

cmp #$80

beq endfadd

fadd1

lda exp1

cmp #$80

beq return2

subexp

sec

lda exp1

sbc exp2

bvs underflow

bpl biggeris1

jsr swap

jmp subexp

underflow

bmi endfadd

jsr swap

jmp endfadd

biggeris1

jsr rormant2

lda sign1

eor sign2

bmi signdiff

jsr addmant

bcc endfadd

ror mant1+2

ror mant1+1

ror mant1

clc

lda exp1

adc #1

sta exp1

bvs faoverflow

endfadd

jmp tmptoieee

signdiff

jsr submant

beq afzero

bcs normalise

jsr negmant

normalise

lda mant1+2

bmi endfadd

asl mant1

rol mant1+1

rol mant1+2

sec

lda exp1

sbc #1

sta exp1

bvs faoverflow

jmp normalise

faoverflow

jmp overflow

afzero

jmp fzero

return2

lda sign2

sta sign1

lda exp2

sta exp1

lda mant2

sta mant1

lda mant2+1

sta mant1+1

lda mant2+2

sta mant1+2

jmp tmptoieee