Changes

Programming:CPC OS floating point routines

324 bytes added, 11:29, 11 November 2006
added missing buffer definitions
;--- RANDOM NUMBERS -----------------------------------------------------------
;### FLO_RANDOMIZE0 -> RND seek to 0
;### FLO_RANDOMIZE -> RND seek to (HL);### FLO_RND -> Gets next RND value;### FLO_LAST_RND -> Gets current RND value
;--- OPERATIONS ---------------------------------------------------------------
;### FLO_ADD -> Adds (HL) and (DE) and copies the result in (HL);### FLO_SUB -> Substracts (DE) from (HL) and copies the result in (HL);### FLO_SUBX -> Substracts (HL) from (DE) and copies the result in (HL);### FLO_MULT -> Multiplicates (HL) with (DE) and copies the result in (HL);### FLO_DIV -> Divides (HL) by (DE) and copies the result in (HL);### FLO_POT -> Raises (HL) to the power of (DE) and copies the result in (HL);### FLO_VGL -> Compares (HL) with (DE)
;--- FUNCTIONS ----------------------------------------------------------------
;### FLO_VZW -> Changes the sign of (HL);### FLO_SQR -> Extracts the root of (HL);### FLO_LOG_NAT -> Gets natural logarythm of (HL);### FLO_LOG_DEC -> Gets 10-logarythm of (HL);### FLO_POT_E -> (HL)=E^(HL);### FLO_SIN -> Calculates the sinus of (HL);### FLO_COS -> Calculates the cosinus of (HL);### FLO_TAN -> Calculates the tangent of (HL);### FLO_ARC_TAN -> Calculates the arcus tangent of (HL);### FLO_10A -> (HL)=(HL)*10^A;### FLO_SGN -> Tests the sign of (HL)
;--- MISCELLANEOUS ------------------------------------------------------------
;### FLO_PI -> Gets PI;### FLO_MOVE -> Copies Value in (DE) to (HL);### FLO_DEGRAD -> Set Deg/Rad
;--- CONVERSION ---------------------------------------------------------------
;### FLO_KONV_HLA_TO_FLO -> Converts 16bit Integer + sign to FLO;### FLO_KONV_LW_TO_FLO -> Converts 32bit Integer + sign to FLO;### FLO_ROUND_FLO_TO_HLA -> Rounds FLO value and converts it to 16bit Integer + sign;### FLO_ROUND_FLO_TO_LW -> Rounds FLO value and converts it to 32bit Integer + sign;### FLO_FIX_FLO_TO_LW -> Cuts FLO value and converts it to 32bit Integer + sign;### FLO_INT_FLO_TO_LW -> Cuts FLO value (and decrease if negative) and converts it to 32bit Integer + sign;### FLO_KONV_HLB_TO_INT -> Converts 16bit integer + sign into 16bit Integer
;--- DISPLAY-PREPARATION ------------------------------------------------------
;### FLO_PREPARE -> Prepares the display of a FLO value
ex de,hl
.l2f88
ld hl,#b10eFLO_BUFFER_3
jr FLO_MOVE
.l2f8d
ld de,#b104FLO_BUFFER_1
.l2f90
ex de,hl
jr nc,l32fc
push af
ld de,#b104FLO_BUFFER_1
call FLO_MULT
jr nc,l331b
inc de
push de
ld de,#b109FLO_BUFFER_2
dec b
ret z
push bc
ld de,#b10eFLO_BUFFER_3
call FLO_MULT
pop bc
push af
push de
ld de,#b109FLO_BUFFER_2
call FLO_KONV_HLA_TO_FLO
ex de,hl
jp l37ac
.l3570
ld de,#b109FLO_BUFFER_2
call l2f90
ex de,hl
FLO_VALUE_DEGRAD db 0
FLO_VALUE_RND ds 4
FLO_BUFFER_1 ds 5
FLO_BUFFER_2 ds 5
FLO_BUFFER_3 ds 5
;--- begin constants ----------------------------------------------------------
</pre>
 
[[Category:Programming]]