📄 vfd58.h
字号:
#ifndef __VFD_R_H
#define __VFD_R_H
//wangbin 02-07-09
#define VFD_7SEG_SG (1<<4)
#define VFD_7SEG_SF (1<<5)
#define VFD_7SEG_SE (1<<2)
#define VFD_7SEG_SD (1<<1)
#define VFD_7SEG_SC (1<<3)
#define VFD_7SEG_SB (1<<6)
#define VFD_7SEG_SA (1<<7)
#include "vfd_7seg.h"
#include "macro.h"
#include "fs9660.h"
#define VFD_DOT_MP3 (82)
#define VFD_DOT_SVCD (10)
#define VFD_DOT_VCD (8)
#define VFD_DOT_CD (82)
#define VFD_DOT_GAME (6)
#define VFD_DOT_PAUSE (4)
#define VFD_DOT_PLAY (5)
#define VFD_DOT_PBC (9)
#define VFD_DOT_MIC1 (44)
#define VFD_DOT_MIC2 (45)
#define VFD_DOT_PLAYB (1)
#define VFD_DOT_PLAYA (2)
#define VFD_DOT_REPALL (0)
#define VFD_DOT_REPEAT (3)
#define VFD_DOT_MINSEC (64)
#define VFD_DOT_COLON (100)
#define VFD_DOT_REMAIN (72)
#define VFD_DOT_RAN (56)
#define VFD_DOT_PGM (24)
#define VFD_DOT_VCD20 (7)
#define VFD_DOT_OVER (84)
#define VFD_DOT_2R (41)
#define VFD_DOT_1L (42)
#define VFD_DOT_SPACE (43)
#define VFD_DOT_INTRO (40)
#define VFD_DOT_PGM01 (95)
#define VFD_DOT_PGM02 (94)
#define VFD_DOT_PGM03 (93)
#define VFD_DOT_PGM04 (92)
#define VFD_DOT_PGM05 (91)
#define VFD_DOT_PGM06 (90)
#define VFD_DOT_PGM07 (89)
#define VFD_DOT_PGM08 (88)
#define VFD_DOT_PGM09 (87)
#define VFD_DOT_PGM10 (86)
#define VFD_DOT_PGM11 (85)
#define VFDA_P0 2
#define VFDA_P1 4
#define VFDA_M0 6
#define VFDA_M1 7
#define VFDA_S0 8
#define VFDA_S1 9
const BYTE vfd_addr[6] ={ 2,4,6,7,8,9};
const BYTE vfd_prg[] = {
0,
VFD_DOT_PGM01,
VFD_DOT_PGM02,
VFD_DOT_PGM03,
VFD_DOT_PGM04,
VFD_DOT_PGM05,
VFD_DOT_PGM06,
VFD_DOT_PGM07,
VFD_DOT_PGM08,
VFD_DOT_PGM09,
VFD_DOT_PGM10,
VFD_DOT_PGM11,
VFD_DOT_OVER,
};
void print_vfd_digital(BYTE no, BYTE data)
{
vfd_mem[vfd_addr[no]] &= (~0xfe);
vfd_mem[vfd_addr[no]] |= (vfd_digit[data]&0xfe);
}
void vfd_disc_turn(BYTE mode)
{
static BYTE i = 7;
if (play_state == VCD_STATE_STOP) {
vfd_mem[3] |= 0xfe;
return;
} /*ZHX 032903*/
if(i < 2)
i = 7;
if(mode)
{
vfd_mem[3] |= 0xfe;
vfd_mem[3] &= (~(1 << i ));
}
else
{
vfd_mem[3] |= 0xfe;
}
i--;
}
void vfd_cdtype(BYTE cd_types)
{
switch (cd_types)
{
case CDVCD20:
case CDVCD11:
case CDVCD10:
vfd_dot(VFD_DOT_ON, VFD_DOT_VCD);
break;
case CDDA:
vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
break;
case CDROM:
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
break;
}
}
void vfd_close(void)
{
print_vfd_digital(1, 12);
print_vfd_digital(2, 21);
print_vfd_digital(3, 24);
print_vfd_digital(4, 28);
print_vfd_digital(5, 14);
}
void vfd_nodisc(void)
{
print_vfd_digital(0, 23);
print_vfd_digital(1, 24);
print_vfd_digital(2, 13);
print_vfd_digital(3, 18);
print_vfd_digital(4, 28);
print_vfd_digital(5, 12);
}
void vfd_open(void)
{
print_vfd_digital(2, 24);
print_vfd_digital(3, 25);
print_vfd_digital(4, 14);
print_vfd_digital(5, 23);
}
void vfd_show_time(void)
{
static BYTE cd_time_ss = 0xff;
#ifdef VFDVOL_DISPLAY
if(!volFlag)
#endif
{
if((cd_type_loaded==CDROM)&&CheckUIState(VCD_STATE_STOP))
return;
if(cd_disp_ss != cd_time_ss)
{
cd_time_ss = cd_disp_ss;
print_vfd_digital(0, cd_disp_trk / 10);
print_vfd_digital(1, cd_disp_trk % 10);
print_vfd_digital(2, cd_disp_mm / 10);
print_vfd_digital(3, cd_disp_mm % 10);
print_vfd_digital(4, cd_disp_ss / 10);
print_vfd_digital(5, cd_disp_ss % 10);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
}
else
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_ON, VFD_DOT_SPACE);
}
}
#ifdef VFDVOL_DISPLAY
void vfd_vol_display(BYTE volNum)
{
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
print_vfd_digital(0, volNum/10);
print_vfd_digital(1, volNum%10);
#ifdef VFDECHO_DISPLAY
if(VfdFlag==1) {
if(IsKYSetup()) {
print_vfd_digital(2, 13);
print_vfd_digital(3, 14);
print_vfd_digital(4, 21);
print_vfd_digital(5, 35);
}
else {
if(!vcx_echo){
print_vfd_digital(0, 24);
print_vfd_digital(1, 15);
}
else if(vcx_echo==1) {
print_vfd_digital(0, 24);
print_vfd_digital(1, 23);
}
print_vfd_digital(2, 14);
print_vfd_digital(3, 12);
print_vfd_digital(4, 17);
print_vfd_digital(5, 24);
}
}
else if(VfdFlag==2) {
print_vfd_digital(2, 13);
print_vfd_digital(3, 14);
print_vfd_digital(4, 12);
print_vfd_digital(5, 35);
}
else
#endif
{
print_vfd_digital(2, 30);
print_vfd_digital(3, 37);
print_vfd_digital(4, 21);
print_vfd_digital(5, 35);
}
}
#endif
void vfd_pause(void)
{
static BYTE flash_play = 0;
flash_play ++;
if(flash_play > 3) flash_play = 0;
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
if(flash_play/2)
vfd_dot(VFD_DOT_ON,VFD_DOT_PAUSE);
else
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
#ifdef VFDVOL_DISPLAY
if(volFlag) {
volFlag = 0;
cd_disp_ss ++;
vfd_show_time();
}
#endif
}
void vfd_audio(void)
{
switch (audio_channel)
{
case CH_LR:
vfd_dot(VFD_DOT_ON, VFD_DOT_1L);
vfd_dot(VFD_DOT_ON, VFD_DOT_2R);
if(user_mute == C_ON)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_1L);
vfd_dot(VFD_DOT_OFF, VFD_DOT_2R);
}
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_L:
#endif
case CH_LL:
vfd_dot(VFD_DOT_ON, VFD_DOT_1L);
vfd_dot(VFD_DOT_OFF, VFD_DOT_2R);
if(user_mute == C_ON)
vfd_dot(VFD_DOT_OFF, VFD_DOT_1L);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_R:
#endif
case CH_RR:
vfd_dot(VFD_DOT_OFF, VFD_DOT_1L);
vfd_dot(VFD_DOT_ON, VFD_DOT_2R);
if(user_mute == C_ON)
vfd_dot(VFD_DOT_OFF, VFD_DOT_2R);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_LR:
vfd_dot(VFD_DOT_ON, VFD_DOT_1L);
vfd_dot(VFD_DOT_ON, VFD_DOT_2R);
if(user_mute == C_ON)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_1L);
vfd_dot(VFD_DOT_OFF, VFD_DOT_2R);
}
break;
#endif
}
}
void vfd_format(void)
{
}
void vfd_playmode(void)
{
if(IsPBCOn())
vfd_dot(VFD_DOT_ON, VFD_DOT_PBC);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_PBC);
}
void vfd_repeat(void)
{
switch (rep_ab_mode)
{
case REPEAT_FIND_A:
vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
break;
case REPEAT_FIND_B:
vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYB);
break;
default:
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
break;
}
switch (rep_mode)
{
case REPEAT_TRACK:
vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
break;
case REPEAT_DISC:
vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_ON, VFD_DOT_REPALL);
break;
default:
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
break;
}
}
void vfd_refresh(void)
{
vfd_playmode();
vfd_format();
vfd_cdtype(cd_type_loaded);
vfd_audio();
}
void vfd_set_pgm(BYTE method)
{
extern const BYTE vfd_prg[];
BYTE i, trk, prg_flag;
trk = cd_trk_hi - cd_trk_lo;
prg_flag = (method <= 12) ? method : 12;
if(trk > 12) trk = 12;
for(i = 1; i <= trk; i++)
{
if (prg_flag == 0)
vfd_mem[vfd_prg[i] >> 3] |= (1 << (vfd_prg[i] & 0x07));
else if (--prg_flag == 0)
vfd_mem[vfd_prg[i] >> 3] ^= (1 << (vfd_prg[i] & 0x07)); //flash vfd pgm
else if (!IsPBCOn())
vfd_mem[vfd_prg[i] >> 3] &= ~(1 << (vfd_prg[i] & 0x07)); //turn off vfd pgm
}
}
void vfd_set_remain(void)
{
extern BYTE remain;
switch (remain)
{
case REMAIN_DISC:
case REMAIN_TRK:
vfd_dot(VFD_DOT_ON, VFD_DOT_REMAIN);
break;
case REMAIN_OFF:
case REMAIN_STOP:
vfd_dot(VFD_DOT_OFF, VFD_DOT_REMAIN);
break;
}
}
void vfd_normal_state(void)
{
if(cd_type_loaded!=CDNODISK)
{
vfd_disc_turn(2);
vfd_show_time();
if(ZHXTimer % 2)
vfd_set_pgm(cd_disp_trk);
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
if(prog_state != PROG_IDLE)
vfd_dot(VFD_DOT_ON,VFD_DOT_PGM);
else
vfd_dot(VFD_DOT_OFF,VFD_DOT_PGM);
#ifdef IR_INTRO_ON
if(intro_osd_flag) //ZHX 033003
vfd_dot(VFD_DOT_ON, VFD_DOT_INTRO);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_INTRO);
#endif
if(IsKYRand())
vfd_dot(VFD_DOT_ON, VFD_DOT_RAN);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
vfd_set_remain();
if((bDiscType & NES_DISC)||(cd_type_loaded==CDROM)
#ifdef AX_ECHO_CTL
||!vcx_echo
#endif
) {
vfd_dot(VFD_DOT_OFF,VFD_DOT_MIC1);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MIC2);
}
#ifdef AX_ECHO_CTL
else if(vcx_echo)
#else
else
#endif
{
vfd_dot(VFD_DOT_ON,VFD_DOT_MIC1);
vfd_dot(VFD_DOT_ON,VFD_DOT_MIC2);
}
}
else
{
init_vfd_clear(0);
vfd_nodisc();
}
}
void vfd_stop(void)
{
//vfd_show_time();
vfd_disc_turn(0);
vfd_set_pgm(0);
vfd_dot(VFD_DOT_OFF,VFD_DOT_INTRO);
vfd_dot(VFD_DOT_OFF,VFD_DOT_RAN);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PBC);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPALL);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAYB);
if(!IsKYProg())
vfd_dot(0, 24); //ZHX 061503
if(cd_type_loaded==CDROM) {
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
print_vfd_digital(0, 25);
print_vfd_digital(1, 3);
print_vfd_digital(2, 0);
print_vfd_digital(3, Gmem.gmp3.iso9660_file_cnt/100);
print_vfd_digital(4, (Gmem.gmp3.iso9660_file_cnt%100)/10);
print_vfd_digital(5, Gmem.gmp3.iso9660_file_cnt%10);
}
else
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
}
void vfd_game(void)
{
print_vfd_digital(0, GetCmdSrc(sys_cmd) / 10);
print_vfd_digital(1, GetCmdSrc(sys_cmd) % 10);
print_vfd_digital(2, 0);
print_vfd_digital(3, 0);
print_vfd_digital(4, 0);
print_vfd_digital(5, 0);
vfd_dot(VFD_DOT_ON, VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_ON, VFD_DOT_GAME);
}
void vfd_game_clear(void)
{
vfd_disc_turn(2);
vfd_refresh();
vfd_dot(VFD_DOT_ON, VFD_DOT_SPACE);
vfd_dot(VFD_DOT_ON, VFD_DOT_MINSEC);//ZHX 062103 for gun
vfd_dot(VFD_DOT_ON, VFD_DOT_GAME);
print_vfd_digital(0, 0);
print_vfd_digital(1, 0);
print_vfd_digital(2, 0);
print_vfd_digital(3, 0);
print_vfd_digital(4, 0);
print_vfd_digital(5, 0);
}
#endif/*__VFD_R_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -