Difference between revisions of "83Plus:BCALLs:40C0"

From WikiTI
Jump to: navigation, search
 
m (ok, enough is enough...)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:83Plus:BCALLs:By Name:FP_Math|cos]] [[Category:83Plus:BCALLs:By Name|cos]] [[Category:83Plus:BCALLs:By Address|40C0 - cos]]
+
[[Category:83Plus:BCALLs:By Name:FP_Math|Cos]] [[Category:83Plus:BCALLs:By Name|Cos]] [[Category:83Plus:BCALLs:By Address|40C0 - Cos]]
 
== Synopsis ==
 
== Synopsis ==
'''Official Name:''' cos
+
'''Official Name:''' Cos
  
 
'''BCALL Address:''' 40C0
 
'''BCALL Address:''' 40C0
Line 8: Line 8:
  
 
=== Inputs ===
 
=== Inputs ===
* [[83Plus:RAM:8478|OP1]] = floating point
+
* [[83Plus:RAM:8478|OP1]] = floating point value
 
   
 
   
 
=== Outputs ===
 
=== Outputs ===
 
* [[83Plus:RAM:8478|OP1]] = cosine of OP1
 
* [[83Plus:RAM:8478|OP1]] = cosine of OP1
* Approx. TStates: 150,000 to 200,000
 
  
 
=== Destroys ===
 
=== Destroys ===
Line 18: Line 17:
 
* OP1-OP5
 
* OP1-OP5
  
=== Comments ===
+
== Comments ==
The cycle count for this routine is very high because the algorithm uses an infinite series to approximate the cosine.  Where speed is critical, a trig table should be used.
+
Takes approximately 150,000 to 200,000 clock cycles.
  
 
== Example ==
 
== Example ==
  <nowiki>B_CALL OP1Set3  ;OP1=floating point 3
+
  <nowiki>
B_CALL cos  ;returns with OP1=-0.9899924...</nowiki>
+
B_CALL OP1Set3  ;OP1=floating point 3
 +
B_CALL Cos      ;returns with OP1=-0.9899924...</nowiki>

Latest revision as of 13:32, 20 February 2006

Synopsis

Official Name: Cos

BCALL Address: 40C0

Computes the cosine of OP1 and returns the result in OP1.

Inputs

  • OP1 = floating point value

Outputs

  • OP1 = cosine of OP1

Destroys

  • AF, BC, DE, HL
  • OP1-OP5

Comments

Takes approximately 150,000 to 200,000 clock cycles.

Example

B_CALL OP1Set3  ;OP1=floating point 3
B_CALL Cos      ;returns with OP1=-0.9899924...