source: trunk/platform/s100/main.c @ 1792

Revision 1792, 1.3 KB checked in by philmoz, 14 months ago (diff)

Add S100 firmware versions 1.00d, 1.00e and 1.01a from c10ud.
http://chdk.setepontos.com/index.php?topic=650.msg83736#msg83736

  • Property svn:eol-style set to native
Line 
1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4#include "keyboard.h"
5
6extern long link_bss_start;
7extern long link_bss_end;
8extern void boot();
9
10
11void startup()
12{
13    long *bss = &link_bss_start;
14    long *ptr;
15
16    // sanity check
17    if ((long)&link_bss_end > (MEMISOSTART + MEMISOSIZE)){
18        started();
19        shutdown();
20    }
21
22    // initialize .bss senment
23    while (bss<&link_bss_end)
24        *bss++ = 0;
25    boot();
26}
27
28// Focus length table in firmware @0xfff4a4f8
29#define NUM_FL      121 // 0 - 120, entries in firmware
30#define NUM_DATA    2   // 2 words each entry
31extern int focus_len_table[NUM_FL*NUM_DATA];
32
33// Conversion factor lens FL --> 35mm equiv
34// lens      35mm     CF
35// ----      ----     --
36// 5.2       24       ( 24/ 5.2) * 52 = 240  (min FL)
37// 26.0      120      (120/26.0) * 52 = 240  (max FL)
38#define CF_EFL      240
39#define CF_EFL_DIV  52
40
41const int zoom_points = NUM_FL;
42
43int get_effective_focal_length(int zp) {
44    return (CF_EFL*get_focal_length(zp))/CF_EFL_DIV;
45}
46
47int get_focal_length(int zp) {
48    if (zp < 0) zp = 0;
49    else if (zp >= NUM_FL) zp = NUM_FL-1;
50    return focus_len_table[zp*NUM_DATA];
51}
52
53int get_zoom_x(int zp) {
54    return get_focal_length(zp)*10/focus_len_table[0];
55}
56
57long get_vbatt_min() // TODO:
58{
59    return 3000;
60}
61
62long get_vbatt_max() // TODO:
63{
64    return 4100;
65}
66
Note: See TracBrowser for help on using the repository browser.