Move Fi/Di calculation functions to separate C file
diff --git a/firmware/src_simtrace/simtrace_iso7816.c b/firmware/src_simtrace/simtrace_iso7816.c
index 086cd32..5325bba 100644
--- a/firmware/src_simtrace/simtrace_iso7816.c
+++ b/firmware/src_simtrace/simtrace_iso7816.c
@@ -32,6 +32,7 @@
  *------------------------------------------------------------------------------*/
 
 #include "board.h"
+#include "iso7816_fidi.h"
 
 #include <string.h>
 #include <errno.h>
@@ -109,46 +110,6 @@
 }
 
 /*  FIDI update functions   */
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-
-/* Table 6 from ISO 7816-3 */
-static const uint16_t fi_table[] = {
-	0, 372, 558, 744, 1116, 1488, 1860, 0,
-	0, 512, 768, 1024, 1536, 2048, 0, 0
-};
-
-/* Table 7 from ISO 7816-3 */
-static const uint8_t di_table[] = {
-	0, 1, 2, 4, 8, 16, 0, 0,
-	0, 0, 2, 4, 8, 16, 32, 64,
-};
-
-/* compute the F/D ratio based on Fi and Di values */
-static int compute_fidi_ratio(uint8_t fi, uint8_t di)
-{
-	uint16_t f, d;
-	int ret;
-
-	if (fi >= ARRAY_SIZE(fi_table) ||
-	    di >= ARRAY_SIZE(di_table))
-		return -EINVAL;
-
-	f = fi_table[fi];
-	if (f == 0)
-		return -EINVAL;
-
-	d = di_table[di];
-	if (d == 0)
-		return -EINVAL;
-
-	if (di < 8) 
-		ret = f / d;
-	else
-		ret = f * d;
-
-	return ret;
-}
-
 void update_fidi(uint8_t fidi)
 {
 	int rc;