.proc pythagoras
; Pythagoras c = (a*a + b*b)^0,5
; a=var1
; b=var2
; c=var3
; a^2 ausrechnen
;............... var1 * var1 = temp1/temp1+1 .......
;.... Multiplikation 8 Bit * 8 Bit auf 16 Bit ....
lda var1
sta temp1
lda #0
ldx #8
lsr temp1
lp1
bcc lp2
clc
adc var1
lp2
ror
ror temp1
dex
bne lp1
sta temp1+1
; b^2 ausrechnen
;............... var2 * var2 = temp2/temp2+1 .......
;.... Multiplikation 8 Bit * 8 Bit auf 16 Bit ....
lda var2
sta temp2
lda #0
ldx #8
lsr temp2
lp3
bcc lp4
clc
adc var2
lp4
ror
ror temp2
dex
bne lp3
sta temp2+1
; 16 Bit Addition
; temp1/temp1+1 + temp2/temp2+1 = temp3/temp3+1
clc
lda temp1
adc temp2
sta temp3
lda temp1+1
adc temp2+1
adc #0
sta temp3+1
; Quadratwurzel 16 Bit
; nach Lee Davison
; Quadratwurzel temp3/temp3+1 ---> Ergebnis in var3
ldx #8
lp5
sec
lda temp3+1
sbc #64
tay
lda temp4
sbc var3
bcc lp6
sty temp3+1
sta temp4
lp6
rol var3
asl temp3
rol temp3+1
rol temp4
asl temp3
rol temp3+1
rol temp4
dex
bne lp5
rts
.endp