📄 vfd63.h
字号:
#ifndef __VFD_R_H
#define __VFD_R_H
/*
** 777777
** 2 6
** 2 6
** 111111
** 3 5
** 3 5
** 444444
*/
//ZHX 033003
#define VFD_7SEG_SA (1<<6)
#define VFD_7SEG_SB (1<<5)
#define VFD_7SEG_SF (1<<4)
#define VFD_7SEG_SG (1<<3)
#define VFD_7SEG_SC (1<<2)
#define VFD_7SEG_SE (1<<1)
#define VFD_7SEG_SD (1<<0)
#include "vfd_7seg.h"
#include "macro.h"
#include "fs9660.h"
#define VFD_DOT_DVD (95)
#define VFD_DOT_DTS (65)
#define VFD_DOT_AC3 (64)
#define VFD_DOT_ANGLE (72)
#define VFD_DOT_LOCK (66)
#define VFD_DOT_VCD (93)
#define VFD_DOT_CD (94)
#define VFD_DOT_MP3 (92)
#define VFD_DOT_MIC (67)
#define VFD_DOT_REPALL (71)
#define VFD_DOT_REPEAT (70)
#define VFD_DOT_MINSEC (7)
#define VFD_DOT_COLON (23)
#define VFD_DOT_PAUSE (68)
#define VFD_DOT_PLAY (69)
#define VFD_DOT_PGM (8)
#define VFD_DOT_TOTAL (24)
#define VFDA_T0 6
#define VFDA_T1 7
#define VFDA_P0 4
#define VFDA_P1 5
#define VFDA_M0 3
#define VFDA_M1 0
#define VFDA_S0 1
#define VFDA_S1 9
const BYTE vfd_addr[9] = { 6, 7, 4, 5, 2, 3, 0, 1, 9};
void print_vfd_digital(BYTE no, BYTE data)
{
if ((vfd_addr[no])%2) {
vfd_mem[vfd_addr[no]] &= (~0xfe);
vfd_mem[vfd_addr[no]] |= ((vfd_digit[data]<<1)&0xfe);
}
else {
vfd_mem[vfd_addr[no]] &= (~0x7f);
vfd_mem[vfd_addr[no]] |= (vfd_digit[data]&0x7f);
}
}
void vfd_disc_turn(BYTE mode)
{
static int i = 11;
if(play_state==VCD_STATE_STOP) {
vfd_mem[10] = 0xff;
vfd_mem[11] |= 0x0f;
return;
} //ZHX 061503
if(i < 0) i = 11;
if(mode)
{
vfd_mem[10] = 0xff;
vfd_mem[11] |= 0x0f;
if (i > 7)
vfd_mem[11] &= (~(1 << ((i-8) % 8)));
else
vfd_mem[10] &= (~(1 << (i % 8)));
}
else
{
vfd_mem[10] = 0xff;
vfd_mem[11] |= 0x0f;
}
i--;
switch (i)
{
case 1:
case 5:
case 9:
#ifdef VFDVOL_DISPLAY
if(!volFlag)
#endif
{
vfd_dot(VFD_DOT_ON, VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
}
break;
case 3:
case 7:
case 11:
#ifdef VFDVOL_DISPLAY
if(!volFlag)
#endif
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
}
break;
case 0:
case 4:
case 8:
if(IsKYProg())
vfd_dot(VFD_DOT_ON, VFD_DOT_PGM);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
default:
break;
}
}
void vfd_cdtype(BYTE cd_types)
{
switch (cd_types)
{
case CDVCD10:
case CDVCD11:
case CDVCD20:
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(4, 12);
print_vfd_digital(5, 21);
print_vfd_digital(6, 24);
print_vfd_digital(7, 28);
print_vfd_digital(8, 14);
}
void vfd_open(void)
{
print_vfd_digital(4, 24);
print_vfd_digital(5, 25);
print_vfd_digital(6, 14);
print_vfd_digital(7, 23);
}
void vfd_nodisc(void)
{
print_vfd_digital(2, 23);
print_vfd_digital(3, 24);
print_vfd_digital(5, 13);
print_vfd_digital(6, 18);
print_vfd_digital(7, 28);
print_vfd_digital(8, 12);
}
void vfd_refresh(void)
{
vfd_playmode();
vfd_format();
vfd_cdtype(cd_type_loaded);
vfd_audio();
}
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;
if(cd_disp_trk > 99)
print_vfd_digital(0, cd_disp_trk/100);
else
print_vfd_digital(0, 20);
print_vfd_digital(1, (cd_disp_trk%100) /10);
print_vfd_digital(2, (cd_disp_trk%100) % 10);
print_vfd_digital(3, 20);
print_vfd_digital(4, cd_disp_mm/60);
print_vfd_digital(5, (cd_disp_mm%60) / 10);
print_vfd_digital(6, cd_disp_mm % 10);
print_vfd_digital(7, cd_disp_ss / 10);
print_vfd_digital(8, cd_disp_ss % 10);
}
}
}
#ifdef VFDVOL_DISPLAY
void vfd_vol_display(BYTE volNum)
{
vfd_dot(VFD_DOT_ON,VFD_DOT_COLON);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
print_vfd_digital(4, 30);
print_vfd_digital(5, 37);
print_vfd_digital(6, 21);
print_vfd_digital(7, volNum/10);
print_vfd_digital(8, volNum%10);
}
#endif
void vfd_normal_state(void)
{
if(cd_type_loaded!=CDNODISK)
{
vfd_disc_turn(2);
vfd_show_time();
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
if((bDiscType & NES_DISC)||(cd_type_loaded==CDROM))
vfd_dot(VFD_DOT_OFF,VFD_DOT_MIC);
else
vfd_dot(VFD_DOT_ON,VFD_DOT_MIC);
}
else
{
init_vfd_clear(0);
vfd_nodisc();
}
}
void vfd_stop(void)
{
//vfd_show_time();
vfd_disc_turn(0);
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);
if(cd_type_loaded==CDROM) {
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_OFF,VFD_DOT_COLON);
print_vfd_digital(0, 20);
print_vfd_digital(1, 25);
print_vfd_digital(2, 3);
print_vfd_digital(3, 20);
print_vfd_digital(4, 0);
print_vfd_digital(5, Gmem.gmp3.iso9660_file_cnt/100);
print_vfd_digital(6, (Gmem.gmp3.iso9660_file_cnt%100)/10);
print_vfd_digital(7, Gmem.gmp3.iso9660_file_cnt%10);
print_vfd_digital(8, 20);
}
else {
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_ON,VFD_DOT_COLON);
}
}
void vfd_audio(void)
{
}
void vfd_format(void)
{
}
void vfd_playmode(void)
{
}
void vfd_pause(void)
{
#if 1 //ZHX 081103
static BYTE flash_pause = 0;
flash_pause ++;
if (flash_pause > 3)
flash_pause = 0;
if(flash_pause/2)
vfd_dot(VFD_DOT_ON,VFD_DOT_PAUSE);
else
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_ON,VFD_DOT_COLON);
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
#else
vfd_dot(VFD_DOT_ON,VFD_DOT_COLON);
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
vfd_dot(VFD_DOT_ON,VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAY);
#endif
#ifdef VFDVOL_DISPLAY
if(volFlag) {
volFlag = 0;
cd_disp_ss ++;
vfd_show_time();
}
#endif
}
void vfd_repeat(void)
{
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: //repeat cancel
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
break;
}
}
void vfd_game(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
vfd_dot(VFD_DOT_ON, VFD_DOT_MINSEC);
print_vfd_digital(0, 20);
print_vfd_digital(1, GetCmdSrc(sys_cmd) / 10);
print_vfd_digital(2, GetCmdSrc(sys_cmd) % 10);
print_vfd_digital(3, 20);
print_vfd_digital(4, 0);
print_vfd_digital(5, 0);
print_vfd_digital(6, 0);
print_vfd_digital(7, 0);
print_vfd_digital(8, 0);
}
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_COLON);
vfd_dot(VFD_DOT_ON, VFD_DOT_MINSEC);//ZHX 062103 for gun
print_vfd_digital(0, 20);
print_vfd_digital(1, 0);
print_vfd_digital(2, 0);
print_vfd_digital(3, 20);
print_vfd_digital(3, 0);
print_vfd_digital(4, 0);
print_vfd_digital(5, 0);
print_vfd_digital(6, 0);
print_vfd_digital(7, 0);
print_vfd_digital(8, 0);
}
#endif/*__VFD_R_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -