📄 loadinram.c
字号:
#include "config.h"
extern struct usart xdata cominfor[MAXCOMBUF];
extern xdata uchar all_plan; //总帧数
xdata uchar word; //这个用于向主调函数返回存储器中是否有可显示的内容
uchar data_load(struct windows xdata *pt, uchar type) //type=0是初始化调用,type=1是运行调用
{
uint copysize;
uchar xdata *ptd; //目的地址指针
uchar xdata *pts; //数据点指针
#ifdef USEDTW
#ifdef USEDOLDTW
uchar xdata *ptswapd; //目的地址指针
uchar xdata *ptswaps; //数据点指针
#endif
#endif
if(word != 0xaa) return 0;
pt->plan_flash = all_plan; //接收到的总幕数
if(type != 0) //这里是程序运行中要求加载数据
{
if(pt->plan_flash <= MAXPLAN)
{
pt->plan = 0;
return 1;
}
}
if(pt->plan_point == pt->plan_flash) pt->plan_point=0;
pt->plan_size=0;
while(pt->plan_point < pt->plan_flash)
{
pts = (uchar *)&cominfor[pt->plan_point];
ptd = &pt->printbuf[pt->plan_size][0];
for(copysize=0; copysize<(HANGDIP*(LIEDIP/8)); copysize++)
{
*ptd++ = *pts++;
}
#ifdef USEDTW
#ifdef USEDOLDTW
ptswaps = &pt->printbuf[pt->plan_size][0];
ptswapd = &pt->printbuf[pt->plan_size+1][0];
swapdata(ptswaps, ptswapd); //交换高低位
#endif
#endif
pt->movintype[pt->plan_size] = *pts++;
pt->movouttype[pt->plan_size] = *pts++;
pt->movsize[pt->plan_size] = *pts++;
pt->showtime[pt->plan_size] = *pts++;
pt->plan_size++;
pt->plan_point++;
if(pt->plan_size >= MAXPLAN) break;
}//ens while(pt->plan_point < pt->plan_flash)
pt->plan = 0;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -