#include "power.h"
#include "commondef.h"
#include "eeprom.h"
-
+#include "backlight.h"
void call_freqbank(unsigned int num)
{
unsigned char _fm;
unsigned char _band;
unsigned char _userband;
- unsigned int bank = num / USER_MEMORY_NUM;
- unsigned int n = num % USER_MEMORY_NUM;
+ unsigned int bank = num;
+ unsigned int n = num;
- if(num >= (USER_MEMORY_NUM * USER_MEMORY_BANKS)) return;
+ if(num >= USER_MEMORY_NUM) return;
- if(bank != setup.pagenum){ // Swap memory
-// save_frequencies();
- load_frequencies(bank, 0x00);
- }
- _fm = freqset.memoryfreqs[n].fm;
- _userband = freqset.memoryfreqs[n].band;
+ _fm = setup.memoryfreqs[n].fm;
+ _userband = setup.memoryfreqs[n].band;
_band = _userband & 0x1f;
_userband = _userband >> 5;
if(_fm) { // AM
setup.am_userbandnum = _userband;
}
setup.memorynum = num;
- akc6955_chg_fm(_fm, freqset.memoryfreqs[n].freq);
+ akc6955_chg_fm(_fm, setup.memoryfreqs[n].freq);
}
unsigned char _band;
unsigned char _userband;
unsigned int _freq;
- unsigned int bank = num / USER_MEMORY_NUM;
- unsigned int n = num % USER_MEMORY_NUM;
+ unsigned int n = num;
- if(num >= (USER_MEMORY_NUM * USER_MEMORY_BANKS)) return;
+ if(num >= USER_MEMORY_NUM) return;
- if(bank != setup.pagenum){ // Save now bank, and load using bank
- save_frequencies();
- load_frequencies(bank, 0x00);
- }
_fm = setup.fm;
_freq = setup.amfreq;
_band = setup.fmband;
_freq = setup.fmfreq;
}
- freqset.memoryfreqs[n].fm = _fm;
- freqset.memoryfreqs[n].band = (_userband << 5) | (_band & 0x1f);
- freqset.memoryfreqs[n].freq = _freq;
+ setup.memoryfreqs[n].fm = _fm;
+ setup.memoryfreqs[n].band = (_userband << 5) | (_band & 0x1f);
+ setup.memoryfreqs[n].freq = _freq;
- save_frequencies();
+ save_eeprom();
}
void on_call_userfreq(void)
{
- unsigned int val = USER_MEMORY_NUM * USER_MEMORY_BANKS;
+ unsigned int val = USER_MEMORY_NUM;
_CLS();
_LOCATE(0,0);
- printstr("Mem: 000-");
- print_numeric_nosupress(val - 1, 3);
- val = read_numeric(val, 3, 4, 1);
+ printstr("Mem: 00-");
+ print_numeric_nosupress(val - 1, 2);
+ val = read_numeric(val, 2, 4, 1);
call_freqbank(val);
}
void on_set_userfreq(void)
{
- unsigned int val = USER_MEMORY_NUM * USER_MEMORY_BANKS;
+ unsigned int val = USER_MEMORY_NUM;
unsigned char n;
unsigned char c;
_CLS();
_LOCATE(0,0);
- printstr("Set Mem: 000-");
- print_numeric_nosupress(val - 1, 3);
- val = read_numeric(val, 3, 4, 1);
+ printstr("Set Mem: 00-");
+ print_numeric_nosupress(val - 1, 2);
+ val = read_numeric(val, 2, 4, 1);
_HOME();
- _LOCATE(0,0);
printstr("OK? A=OK ");
- do {
- n = pollkeys(pollkeybuf, 19, 1);
- } while(n == 0);
- c = pollkeybuf[0];
+ c = pollkey_single();
if(c != charcode_a) return;
set_freqbank(val);
-// save_eeprom();
}
void on_updown_userfreq(void)
unsigned char _fm;
unsigned char _band;
unsigned char _userband;
- unsigned char n;
unsigned char c;
+ unsigned char dispf = 0xff;
_fm = setup.fm;
_freq = setup.amfreq;
_CLS();
do {
- _LOCATE(0,0);
- printstr("CH:");
- print_numeric_nosupress(setup.memorynum, 3);
- printstr(" 8/2/A");
- update_status();
- print_freq(1);
- _HOME();
- c = pollkey_single_timeout(44, 1); // About 1s
+ if(dispf != 0) {
+ _LOCATE(0,0);
+ printstr("CH:");
+ print_numeric_nosupress(setup.memorynum, 2);
+ printstr(" 7/1/A/D");
+ update_status();
+ print_freq(1);
+ _HOME();
+ }
+ c = pollkey_single_timeout(41, 1); // About 1s
+ backlight_reset(c);
+ dispf = backlight_dec(dispf);
switch(c) {
case charcode_7: // UP 1CH
setup.memorynum++;
- if(setup.memorynum >= (USER_MEMORY_NUM * USER_MEMORY_BANKS)) setup.memorynum = 0;
+ if(setup.memorynum >= USER_MEMORY_NUM) setup.memorynum = 0;
call_freqbank(setup.memorynum);
break;
case charcode_1: // Down 1CH
- if(setup.memorynum == 0) setup.memorynum = USER_MEMORY_NUM * USER_MEMORY_BANKS;
+ if(setup.memorynum == 0) setup.memorynum = USER_MEMORY_NUM;
setup.memorynum--;
call_freqbank(setup.memorynum);
break;
- case charcode_9: // Up CH FAST
- setup.memorynum += 100;
- if(setup.memorynum > (USER_MEMORY_NUM * USER_MEMORY_BANKS)) {
- setup.memorynum = setup.memorynum % 100;
- }
- call_freqbank(setup.memorynum);
- break;
- case charcode_3: // Down CH FAST
- if(setup.memorynum < 100) {
- setup.memorynum = (((USER_MEMORY_NUM * USER_MEMORY_BANKS) / 100 - 1) * 100) + (setup.memorynum % 100);
- } else {
- setup.memorynum -= 100;
- }
- call_freqbank(setup.memorynum);
- break;
- case charcode_8: // Up CH FAST
- setup.memorynum += USER_MEMORY_NUM;
- if(setup.memorynum >= (USER_MEMORY_NUM * USER_MEMORY_BANKS)) {
- setup.memorynum = setup.memorynum - USER_MEMORY_NUM * USER_MEMORY_BANKS;
- }
- call_freqbank(setup.memorynum);
- break;
- case charcode_2: // Down CH FAST
- if(setup.memorynum < USER_MEMORY_NUM) {
- setup.memorynum = (USER_MEMORY_NUM * USER_MEMORY_BANKS) - USER_MEMORY_NUM + setup.memorynum;
- } else {
- setup.memorynum -= USER_MEMORY_NUM;
- }
+ case charcode_5: // Recall
call_freqbank(setup.memorynum);
break;
- case charcode_5: // Reset
+ case charcode_d: // Reset
if(_fm) { // AM
setup.fmband = _band;
setup.fm_userbandnum = _userband;
case charcode_a:
goto _l0;
break;
+ case charcode_e: // Set Light
default:
break;
}
-// _HOME();
+ idle_time_ms(9); // Pad 9ms, 1Loop = 1000ms.
} while(1);
_l0:
_CLS();