#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#if defined(__SDCC)
#include <sdcc-lib.h>
#include <pic18fregs.h> /* ONLY FOR PIC18x */
#include <delay.h>
+#else
+#include <xc.h>
+#endif
#include "iodef.h"
#include "idle.h"
#include "ui.h"
#include "eeprom.h"
#include "ioports.h"
+#include "helps.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
+ 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 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 _userband_t am_usrbands[USER_BAND_NUM];
- extern _userband_t fm_usrbands[USER_BAND_NUM];
+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 char memorynum;
+ _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
+} __radioset_t;
+
+ extern __radioset_t setup;
+ extern unsigned char scanflag;
- extern int backlight_long;
- extern unsigned int ui_idlecount;
+ extern unsigned char stereoflag;
+ extern unsigned char tuneflag;
+ extern unsigned char cnrlevel;
+ extern int diffstat;
+ extern unsigned int batlevel_6955;
+ extern unsigned int battlevel;
extern int recv_signal;
extern int backlight_counter;
extern void update_status(void);
extern void save_eeprom(void);
extern unsigned char load_eeprom(void);
+ extern void check_eeprom(void);
+
extern void setfreq_updown(unsigned char ctlword);
extern void setdefault(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 scan_start(void);
extern void set_volume(void);
extern void toggle_amfm(void);
- extern void updown_help(void);
- extern void mainmenu_help(void);
+ extern void setup_menu(void);
+
+ extern void print_freq(unsigned char y);
+ extern void setup_akc6955(void);
+ extern void setdefault(void);
+ extern void valinit(void);
#ifdef __cplusplus
}