📄 fut166.vfd
字号:
/* Copyright 1998, ESS Technology, Inc. *//* SCCSID @(#)fut166.vfd 4.1 11/05/02 *//* Based on fut166.vfd 1.5 12/11/98 *//* * Futaba 9-BT-166GK * Application: VCD * * VFD controller: NEC 16311, NEC 16312, Panasonic 12510, Rohm 2872 */#ifdef VFD_FUT166/* Tell me about your icon's locations! */#define ICON_disc1 ANODE_G4P11#define ICON_disc2 ANODE_G4P13#define ICON_disc3 ANODE_G5P11#define ICON_disc4 ANODE_G6P13#define ICON_disc5 ANODE_G6P11#define ICON_circle_1 ANODE_G4P12#define ICON_circle_2 ANODE_G4P14#define ICON_circle_3 ANODE_G5P12#define ICON_circle_4 ANODE_G6P14#define ICON_circle_5 ANODE_G6P12#define ICON_plus_16 ANODE_G9P16#define ICON_calendar_1 ANODE_G8P1#define ICON_calendar_2 ANODE_G8P2#define ICON_calendar_3 ANODE_G8P3#define ICON_calendar_4 ANODE_G8P4#define ICON_calendar_5 ANODE_G8P5#define ICON_calendar_6 ANODE_G8P6#define ICON_calendar_7 ANODE_G8P7#define ICON_calendar_8 ANODE_G8P8#define ICON_calendar_9 ANODE_G8P9#define ICON_calendar_10 ANODE_G8P10#define ICON_calendar_11 ANODE_G8P11#define ICON_calendar_12 ANODE_G8P12#define ICON_calendar_13 ANODE_G8P13#define ICON_calendar_14 ANODE_G8P14#define ICON_calendar_15 ANODE_G8P15#define ICON_calendar_16 ANODE_G8P16#define ICON_program ANODE_G1P1#define ICON_pbc ANODE_G1P12#define ICON_pbc_on ANODE_G1P13#define ICON_pbc_off ANODE_G1P14#define ICON_l ANODE_G9P13#define ICON_slash ANODE_G9P14#define ICON_r ANODE_G9P15#define ICON_play ANODE_G1P5#define ICON_pause ANODE_G1P7#define ICON_random ANODE_G1P3#define ICON_colon2 ANODE_G6P9#define ICON_empty ANODE_G3P1#define ICON_vcd ANODE_G1P2#define ICON_repeat ANODE_G1P2#define ICON_seta ANODE_G1P9#define ICON_setb ANODE_G1P11#define ICON_all ANODE_G1P8#define ICON_min ANODE_G4P10#define ICON_sec ANODE_G6P10#define ICON_chapter ICON_empty #define ICON_cdda ICON_empty/* * Controller mode setting. This is determined by number of G/P and * the particular VFD controller that you are using. */unsigned int VFD_mode[] = {#ifdef BU2872 0x3a, /* 6G, 16P */#endif#ifdef D16311 0x0B, /* 12G, 16P */#endif#ifdef D16312 0x02, /* 6G, 16P */#endif#ifdef DSTC6311 0x10,#endif};unsigned int VFD_char_segment_size[] = { 8 };/* Internal GP to external GP mapping. */unsigned char VFD_refresh_address[] = {#ifdef D16311 ANODE_G1L, ANODE_G1H, ANODE_G2H, ANODE_G3L, ANODE_G4L, ANODE_G4H, ANODE_G5H, ANODE_G6L, ANODE_G7L, ANODE_G7H, ANODE_G8H, ANODE_G9L,#endif#ifdef DSTC6311 ANODE_G1L, ANODE_G1H, ANODE_G2L, ANODE_G2H, ANODE_G3L, ANODE_G3H, ANODE_G4L, ANODE_G4H, ANODE_G5L, ANODE_G5H, ANODE_G6L, ANODE_G6H, ANODE_G7L, ANODE_G7H, ANODE_G8L, ANODE_G8H, ANODE_G9L, ANODE_G9H, #endif#if (BU2872 || D16312 || MN12510) ANODE_G1L, ANODE_G1H, ANODE_G2L, ANODE_G2H, ANODE_G3L, ANODE_G3H, ANODE_G4L, ANODE_G4H, ANODE_G5L, ANODE_G5H, ANODE_G6L, ANODE_G6H#endif};/* G's to update when we changed calendar only */unsigned char VFD_refresh_calendar[] = {ANODE_G8L, ANODE_G8H};/* 7-segment definition (really 8 segments) for track/minute/second. */VFD_CHAR_SEGMENTS VFD_char_segments[] = {#if 1 {ANODE_G2P2, ANODE_G2P3, ANODE_G2P4, ANODE_G2P5, ANODE_G2P6, ANODE_G2P7, ANODE_G2P8, ANODE_G2P9}, /* Track high */ {ANODE_G3P2, ANODE_G3P3, ANODE_G3P4, ANODE_G3P5, ANODE_G3P6, ANODE_G3P7, ANODE_G3P8, ICON_empty}, /* Track low */ {ANODE_G4P2, ANODE_G4P3, ANODE_G4P4, ANODE_G4P5, ANODE_G4P6, ANODE_G4P7, ANODE_G4P8, ICON_empty}, /* Minute high*/ {ANODE_G5P2, ANODE_G5P3, ANODE_G5P4, ANODE_G5P5, ANODE_G5P6, ANODE_G5P7, ANODE_G5P8, ICON_empty}, /* Minute low */ {ANODE_G6P2, ANODE_G6P3, ANODE_G6P4, ANODE_G6P5, ANODE_G6P6, ANODE_G6P7, ANODE_G6P8, ICON_empty}, /* Second high*/ {ANODE_G7P2, ANODE_G7P3, ANODE_G7P4, ANODE_G7P5, ANODE_G7P6, ANODE_G7P7, ANODE_G7P8, ICON_empty}, /* Second low */#else {ANODE_G4P2, ANODE_G4P3, ANODE_G4P4, ANODE_G4P5, ANODE_G4P6, ANODE_G4P7, ANODE_G4P8, ICON_empty}, /* Minute high*/ {ANODE_G5P2, ANODE_G5P3, ANODE_G5P4, ANODE_G5P5, ANODE_G5P6, ANODE_G5P7, ANODE_G5P8, ICON_empty}, /* Minute low */ {ANODE_G6P2, ANODE_G6P3, ANODE_G6P4, ANODE_G6P5, ANODE_G6P6, ANODE_G6P7, ANODE_G6P8, ICON_empty}, /* Second high*/ {ANODE_G7P2, ANODE_G7P3, ANODE_G7P4, ANODE_G7P5, ANODE_G7P6, ANODE_G7P7, ANODE_G7P8, ICON_empty}, /* Second low */ {ANODE_G2P2, ANODE_G2P3, ANODE_G2P4, ANODE_G2P5, ANODE_G2P6, ANODE_G2P7, ANODE_G2P8, ANODE_G2P9}, /* Track high */ {ANODE_G3P2, ANODE_G3P3, ANODE_G3P4, ANODE_G3P5, ANODE_G3P6, ANODE_G3P7, ANODE_G3P8, ICON_empty}, /* Track low */#endif };/* Icons that belong to calendar */unsigned short VFD_calendar_table[] = { ICON_empty, ICON_calendar_1, ICON_calendar_2, ICON_calendar_3, ICON_calendar_4, ICON_calendar_5, ICON_calendar_6, ICON_calendar_7, ICON_calendar_8, ICON_calendar_9, ICON_calendar_10, ICON_calendar_11, ICON_calendar_12, ICON_calendar_13, ICON_calendar_14, ICON_calendar_15, ICON_calendar_16,};VFD_ICON VFD_iconmsg[] = { /* Repeat AB related */ {"clear_ab", {ICON_empty}, {ICON_repeat, ICON_seta, ICON_setb} }, {"seta", {ICON_repeat, ICON_seta}, {ICON_setb} }, {"setb", {ICON_repeat, ICON_seta, ICON_setb}, {ICON_empty} }, /* multi disc selection, but unavailable for this panel, so we use NULL */ {"disc1", {ICON_disc1, ICON_circle_1}, {ICON_empty} }, {"disc2", {ICON_disc2, ICON_circle_2}, {ICON_empty} }, {"disc3", {ICON_disc3, ICON_circle_3}, {ICON_empty} }, /* Disc selection, no need to turn off any disks */ {"disc1_on", {ICON_disc1}, {ICON_empty} }, {"disc2_on", {ICON_disc2}, {ICON_empty} }, {"disc3_on", {ICON_disc3}, {ICON_empty} }, {"disc1_off", {ICON_empty}, {ICON_disc1} }, {"disc2_off", {ICON_empty}, {ICON_disc2} }, {"disc3_off", {ICON_empty}, {ICON_disc3} }, {"disc_1_off", {ICON_empty}, {ICON_disc1, ICON_circle_1} }, {"disc_2_off", {ICON_empty}, {ICON_disc2, ICON_circle_2} }, {"disc_3_off", {ICON_empty}, {ICON_disc3, ICON_circle_3} }, /* Audio selection */ {"mono_l", {ICON_l}, {ICON_r, ICON_slash} }, {"mono_r", {ICON_r}, {ICON_l, ICON_slash} }, {"stereo", {ICON_slash, ICON_l, ICON_r}, {ICON_empty} }, {"vocal_l", {ICON_l}, {ICON_slash, ICON_r} }, {"vocal_r", {ICON_r}, {ICON_slash, ICON_l} }, {"vocal_off", {ICON_empty}, {ICON_empty} }, /* Play selection */ {"fb", {ICON_empty}, {ICON_play, ICON_pause} }, {"ff", {ICON_empty}, {ICON_play, ICON_pause} }, {"pause", {ICON_pause}, {ICON_play} }, {"play", {ICON_play}, {ICON_pause} }, {"stop", {ICON_colon2}, {ICON_play, ICON_pause} }, /* PBC selection */ {"pbc_on", {ICON_pbc, ICON_pbc_on}, {ICON_program, ICON_random, ICON_pbc_off} }, {"pbc_off", {ICON_pbc_off, ICON_pbc}, {ICON_pbc_on, ICON_program, ICON_random} }, /* Intro/digest */ {"intro_on", {ICON_empty}, {ICON_empty} }, {"intro_off", {ICON_empty}, {ICON_empty} }, /* Number of tracks */ {"more_on", {ICON_empty}, {ICON_empty} }, {"more_off", {ICON_empty}, {ICON_empty} }, /* Mic. colon, track, hyphen etc */ {"colon_on", {ICON_colon2}, {ICON_empty} }, {"colon_off", {ICON_empty}, {ICON_colon2} }, {"track", {ICON_chapter}, {ICON_empty} }, {"hyphen_on", {ICON_empty}, {ICON_empty} }, {"hyphen_off", {ICON_empty}, {ICON_empty} }, /* Play sequence */ {"program", {ICON_program}, {ICON_random, ICON_pbc} }, {"shuffle", {ICON_random}, {ICON_program, ICON_pbc} }, /* Play off sequence */ {"program_off", {ICON_empty}, {ICON_program} }, {"shuffle_off", {ICON_empty}, {ICON_random} }, /* Repeat related */ {"repeat_off", {ICON_empty}, {ICON_repeat, ICON_all} }, {"repeat_one", {ICON_repeat}, {ICON_all} }, {"repeat_all", {ICON_repeat, ICON_all}, {ICON_empty} }, /* CD type */ {"vcd", {ICON_vcd}, {ICON_empty} }, {"cdda", {ICON_empty}, {ICON_empty} }, /* TV type */ {"ntsc", {ICON_empty}, {ICON_empty} }, {"pal", {ICON_empty}, {ICON_empty} }, /* Key shift */ {"key_up", {ICON_empty}, {ICON_empty} }, {"key_down", {ICON_empty}, {ICON_empty} }, {"key_resume", {ICON_empty}, {ICON_empty} }, /* Initialization */ {"init_state", {ICON_l, ICON_r}, {ICON_empty} },};/* * C-program will refer to a message by VFDMSG_xxx where xxx is the * name you assigned in column 1. */VFD_MSG VFD_msg[] = { {"nodisc", {CHAR_N, CHAR_O, CHAR_d, CHAR_I, CHAR_S, CHAR_C, CHAR_end}}, {"undisc", {CHAR_U, CHAR_N, CHAR_d, CHAR_I, CHAR_S, CHAR_C, CHAR_end}}, {"chdisc", {CHAR_C, CHAR_H, CHAR_d, CHAR_I, CHAR_S, CHAR_C, CHAR_end}}, {"open", {CHAR_, CHAR_, CHAR_O, CHAR_P, CHAR_E, CHAR_n, CHAR_end}}, {"close", {CHAR_, CHAR_C, CHAR_L, CHAR_O, CHAR_S, CHAR_E, CHAR_end}}, {"vcd30", {CHAR_E, CHAR_V, CHAR_d, CHAR_, CHAR_3, CHAR_O, CHAR_end}}, {"clearall",{CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_end}},};unsigned short VFD_wheel[] = {};unsigned short VFD_ring[] = {};/* * Display position of characters in VFD_msg. */unsigned char VFD_msg_position[] = { VFD_TRACK, VFD_TRACK+1, VFD_MINUTE, VFD_MINUTE+1, VFD_SECOND, VFD_SECOND+1};#ifdef MN12510/* 12510 programming sequence *//* Commands */unsigned char VFD_12510_cmd[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 0xc, 0xd, 0xe}; /* Corresponding data */unsigned char VFD_12510_dat[] = { 0x01, /* FLPCNT: */ 0x8e, /* DGTCNT: Specify digit: 9G, 15/16 */ 0x0f, /* SEGCNT: Specify segment: 16P */ 0x1f, /* P01CNT: [G12,G11,G10,G9,P12,P11,P10,P9] */ 0x0f, /* P2DIR: P2x [o/i,o/i,o/i,o/i] */ 0xff, /* P2CNT: [G16/P13,G15/P14,G14/P15,G13/P16,d,d,d,d] */ 0x10, /* P3DIR: P3x [o/i,o/i,o/i,o/i,o/i] */ 0x10, /* P3CNT: [K4/P34,K3/P33,K2/P32,K1/P31,K0/P30] */ 0x15, /* KEYCNT: Key specification (6 keys) */ 0x17, /* P01DATA: P0x P1x [3H/3L,2H/2L,1H/1L,0H/0L, ... */ 0x00, /* P2DATA: P2x [3H/3L,2H/2L,1H/1L,0H/0L] */ 0x0f /* P3DATA: P3x [3H/3L,2H/2L,1H/1L,0H/0L] */};#endif /* MN12510 */#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -