#include "eeprom.h"
#include "ioports.h"
#include "helps.h"
+#include "menu_ui.h"
+#include "eeprom_util.h"
#ifdef __cplusplus
extern "C" {
#endif
-#define USER_BAND_NUM 4
+#define USER_BAND_NUM 3
typedef struct {
unsigned char mode3k; // mode3k if am
unsigned char start;
unsigned char stop;
unsigned int freq;
} _userband_t;
+
+#define USER_MEMORY_NUM 28
+#define USER_MEMORY_BANKS 24
+ typedef struct {
+ unsigned char band;
+ unsigned char fm;
+ unsigned int freq;
+ } _memoryfreq_t;
/*
* main.c
*/
- extern unsigned int amfreq;
- extern unsigned int fmfreq;
- extern unsigned int amfreq_bank[AKC6955_BAND_AMEND];
- extern unsigned int fmfreq_bank[AKC6955_BAND_FMEND];
- extern unsigned char amband;
- extern unsigned char fmband;
- extern unsigned char fm;
- extern unsigned char am_mode3k;
- extern unsigned char am_userbandnum;
- extern unsigned char fm_userbandnum;
- extern unsigned char threshold_amcnr;
- extern unsigned char threshold_fmcnr;
- extern unsigned char threshold_width;
- extern unsigned char threshold_fmstereo;
- extern unsigned char lowboost;
- extern unsigned char stereo;
- extern _userband_t am_usrbands[USER_BAND_NUM];
- extern _userband_t fm_usrbands[USER_BAND_NUM];
- extern banddesc am_userband_freq[USER_BAND_NUM];
- extern banddesc fm_userband_freq[USER_BAND_NUM];
- extern unsigned char volume;
- extern unsigned char prevolume;
- extern unsigned char fmbandwidth;
-
- extern int backlight_long;
- extern unsigned int ui_idlecount;
-
+// Frequencyset of 1Sector.
+// Below v1.0.
+typedef struct {
+ unsigned int magic;
+ unsigned int version;
+ unsigned int pagenum;
+ _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
+ unsigned int checksum;
+} __freqset_t;
+
+typedef struct {
+ unsigned int amfreq;
+ unsigned int fmfreq;
+ unsigned int amfreq_bank[AKC6955_BAND_AMEND];
+ unsigned int fmfreq_bank[AKC6955_BAND_FMEND];
+ unsigned char amband;
+ unsigned char fmband;
+ unsigned char fm;
+ unsigned char am_mode3k;
+ unsigned char am_userbandnum;
+ unsigned char fm_userbandnum;
+ unsigned char threshold_amcnr; // Reg 0x08
+ unsigned char threshold_fmcnr; // Reg 0x08
+ unsigned char threshold_width; // Reg 0x08
+ unsigned char threshold_fmstereo; // Reg 0x08
+ _userband_t am_usrbands[USER_BAND_NUM];
+ _userband_t fm_usrbands[USER_BAND_NUM];
+ banddesc am_userband_freq[USER_BAND_NUM];
+ banddesc fm_userband_freq[USER_BAND_NUM];
+ unsigned char stereo;
+ unsigned char volume;
+ unsigned char prevolume;
+ unsigned char fmbandwidth;
+ unsigned char lowboost;
+ int backlight_long;
+ int backlight_level;
+ unsigned int ui_idlecount;
+ unsigned int memorynum;
+// _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
+ unsigned int pagenum;
+} __radioset_t;
+
+
+ extern __radioset_t setup;
+ extern __freqset_t freqset;
+ extern __freqset_t freqset_temp;
+ extern unsigned char scanflag;
extern unsigned char stereoflag;
extern unsigned char tuneflag;
extern unsigned char pollkeybuf[33];
extern unsigned char scanflag;
- extern void update_display(void);
- extern void update_status(void);
- extern void save_eeprom(void);
- extern unsigned char load_eeprom(void);
- extern void check_eeprom(void);
-
+ /*
+ * ui_updown.c
+ */
extern void setfreq_updown(unsigned char ctlword);
extern void setdefault(void);
/*
- * menu.c
+ * menu_userband.c
*/
- extern void main_menu(void);
extern void input_userband(void);
extern void set_userband(void);
extern void call_userband(unsigned char num);
- extern void setband_direct(void);
- extern void setfreq_direct(void);
- extern void set_stereo(void);
- extern void set_thresh_fmstereo(unsigned char a);
- extern void set_thresh_fmcnr(unsigned char a);
- extern void set_thresh_amcnr(unsigned char a);
- extern void set_thresh_width(unsigned char a);
+ /*
+ * menu_scan.c
+ */
extern void scan_start(void);
+ /*
+ * menu_volume.c
+ */
extern void set_volume(void);
- extern void toggle_amfm(void);
- extern void setup_menu(void);
- extern void print_freq(unsigned char y);
- extern void setup_akc6955(void);
+ /*
+ * menu_defs.c
+ */
extern void setdefault(void);
extern void valinit(void);
+
+ /*
+ * menu.c
+ */
+ extern void toggle_amfm(void);
+ extern void set_stereomode(void);
+ extern void set_stereo(void);
+ extern void setband_direct(void);
+ extern void setfreq_direct(void);
+ extern void menu_poweroff(void);
+ extern void setup_akc6955(void);
+ extern void main_menu(void);
+
+ /*
+ * menu_setup.c
+ */
+ extern void setup_menu(void);
+ extern void menu_load(void);
+ extern void menu_save(void);
+
+
#ifdef __cplusplus
}
#endif