?? h612_sub.c
字號(hào):
/* http://www.HSAV.com */
#include "dsc.h"
#include "dsa.h"
#include "fsosd.h"
#include "ir.h"
#include "Hm612ndi.h"
#if (DISPLAY_TYPE == DIP_NONE)
void MPKeyScan(){
BYTE Local_0;
BYTE Local_1 = 0xf0;
switch (gPKeyScan){
case 0: pKEY0(0); break;
case 1: pKEY1(0); break;
case 2: pKEY2(0); break;
case 3: pKEY3(0);
default : break;
}
if (!pK1_HIGH && (gPKeyScan < 1)) Local_1 &= 0xdf;
if (!pK2_HIGH && (gPKeyScan < 2)) Local_1 &= 0xbf;
if (!pK3_HIGH && (gPKeyScan < 3)) Local_1 &= 0x7f;
Local_0 = Local_1 | gPKeyScan;
if (Local_1 != 0xf0){
GPKeyData = Local_0;
FPKeyDetect = 1;
}
if (FPKeyDetect){
if (!FPKeyStep){
if (++gPKeyConfirmTm > 6){
gPKeyConfirmTm = 0;
if (GPKeyData == Local_0){
FPKeyDecodeOk = 1;
}
else {
FPKeyDetect = 0;
}
}
}
else{
if (Local_1 == 0xf0){
if (++gPKeyConfirmTm > 6){
gPKeyConfirmTm = 0;
FPKeyStep = 0;
FPKeyDetect = 0;
}
}
else gPKeyConfirmTm = 0;
}
}
else{
if (++gPKeyScan > 4) gPKeyScan = 0;
}
pKEY0(1);
pKEY1(1);
pKEY2(1);
pKEY3(1);
return;
}
#endif
/* ///////////////////////////////////////////////////////////////////////////////////// */
/* ///////////////////////////////////////////////////////////////////////////////////// */
/* ///////////////////////////////////////////////////////////////////////////////////// */
/* ///////////////////////////////////////////////////////////////////////////////////// */
/* ///////////////////////////////////////////////////////////////////////////////////// */
/* ///////////////////////////////////////////////////////////////////////////////////// */
void MHOSTBusRead(){
pHINT(1);
pHCLK(1);
pHCS(0);
NOP(40);
gHOSTBuffer[1] = HHOSTBusRead();
gHOSTBuffer[2] = HHOSTBusRead();
gHOSTBuffer[3] = HHOSTBusRead();
pHCS(1);
pHCLK(1);
pHINT(1);
return;
}
void MHOSTBusWrite(){
pHCLK(0);
pHINT(1);
pHCS(0);
NOP(40);
HHOSTBusWrite(gHOSTBuffer[0]);
HHOSTBusWrite(gHOSTBuffer[1]);
HHOSTBusWrite(gHOSTBuffer[2]);
HHOSTBusWrite(gHOSTBuffer[3]);
pHCS(1);
pHINT(1);
pHCLK(1);
return;
}
void HHOSTBusWrite(BYTE Local_1){
BYTE Local_2 = 8;
do{
if (Local_1 & 0x80){
pHINT(1);
}
else{
pHINT(0);
}
Local_1 <<= 1;
pHCLK(1);
NOP(1);
pHCLK(0);
NOP(1);
} while (--Local_2 != 0);
return;
}
BYTE HHOSTBusRead(){
BYTE Local_1 = 0;
BYTE Local_2 = 8;
NOP(40);
do{
pHCLK(0);
NOP(1);
pHCLK(1);
Local_1 <<= 1;
if (pHINT_HIGH) Local_1 |= 0x01;
NOP(1);
} while (--Local_2 != 0);
return Local_1;
}
void NOP(BYTE Local_1){
while (--Local_1);
return;
}
void MDELAY(BYTE ms){
WORD i;
do {
i = 500; while (--i != 0);
} while (--ms != 0);
return;
}
PRIVATE unsigned int reverse_data(unsigned int data)
{
unsigned int tmp = 0,i;
for(i=0;i<4;i++){
tmp <<= 8;
tmp |= data&0xff;
data >>=8;
}
return tmp;
}
char osdbuf[21] = " ";
void debug_osd(char *string, unsigned int data, int region)
{
char *ptr;
int i = 0, j, cmd;
ptr = string;
while (*ptr)
osdbuf[i++] = *ptr++;
data = reverse_data(data);
for (j = 0; j < 4; j++) {
cmd = data & 0xff;
data >>= 8;
osdbuf[i] = (char)('0' + (cmd >> 4));
if (osdbuf[i] > '9' )
osdbuf[i] += 7;
osdbuf[i+1] = (char)('0' + (cmd & 0xf));
if (osdbuf[i+1] > '9' )
osdbuf[i+1] += 7;
i += 2;
}
osdbuf[i] = '\0';
OUTOSD(region, osdbuf, osdbuf, 5);
}
/*=======================================================================================*/
/*=======================================================================================*/
/*===================== OSD Program =+++++++++++++++++++================================*/
/*=======================================================================================*/
/*=======================================================================================*/
void MOSD_Show(){
int i = 0;
osdbuf[i++] = 'A' + gPlay_Disk - 1;
osdbuf[i++] = '0' + mCount_VIM(gPlay_DIR, 10);
osdbuf[i++] = '0' + gMain00;
osdbuf[i++] = '-';
osdbuf[i++] = '0' + mCount_VIM(gPlay_Track, 10);
osdbuf[i++] = '0' + gMain00;
osdbuf[i++] = '\0';
OUTOSD(5, osdbuf, osdbuf, 5);
return;
}
int mCount_VIM(int Local_0, int Local_1){
int i = 0;
while (1){
if (Local_1 > Local_0){
gMain00 = Local_0;
break;
}
++i;
Local_0 -= Local_1;
if (Local_0 == 0){
gMain00 = 0;
break;
}
}
return i;
}
void MDIPHostDataRead(){
/*debug_osd("CODE:",gHOSTBuffer[1],13); */
if ((gHOSTBuffer[1] & cUserBuffer) != cUserBuffer){
MDIPHostDataProcs();
}
else {
}
return;
}
/*=====================================================================*/
/*================= VFD Display Program ==============================*/
/*=====================================================================*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -