⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 js520a.psc

📁 用于F3200掌机抄表设表
💻 PSC
📖 第 1 页 / 共 3 页
字号:
# 1 "D:\\temp\\\275\255\313\325\265\245\317\340\267\321\302\312\265\367\312\324\\\324\264\264\372\302\353\\js520a.c" # 1 "/FStudio/lib/gcc-lib/m68k-coff/2.95.2/../../../../m68k-coff/include/F3200.h" 1 3       typedef  unsigned char  BOOLEAN;		 typedef  unsigned char  UBYTE;			 typedef  signed   char  BYTE;			 typedef  unsigned short UWORD;			 typedef  signed   short WORD;			 typedef  unsigned long  ULONG;			 typedef  signed   long  LONG;			 typedef  unsigned long long ULLONG;		 typedef  long long		LLONG;			   					 					 					      typedef struct _calendar{	UWORD year;	UBYTE month;	UBYTE day;	UBYTE week;	UBYTE hour;	UBYTE minute;	UBYTE second;	UWORD ms;}OS_CALENDAR; typedef struct _OS_WIN{	UBYTE flag;	ULONG x;	ULONG y;	ULONG lx;	ULONG ly;	LONG outline;	UBYTE HaveLab;	UBYTE lab[32];	UBYTE data[4096];}OS_WIN;   typedef struct _OS_DtClus{	ULONG	Len;	OS_CALENDAR  UTime;		ULONG	Property;	UBYTE	Data[24];				 }OS_DtClus;typedef struct _OS_FILE{ 	BYTE	F_Update;		 	BYTE	Disk;			 	LONG	DirHandle;		 	ULONG	DirRec;			 	UBYTE	Name[24];		 	ULONG	Clus;			 	ULONG	Len;			 	OS_CALENDAR  CTime;		 	OS_CALENDAR  UTime;		 	ULONG	Seek; 	UBYTE	BF_Valid;		 	UBYTE	BF_Update;		 	ULONG	BF_Fat;			 	OS_DtClus	*p;			 }OS_FILE;   typedef struct _OS_DBF{	LONG h;	 	unsigned char Flag;				 	unsigned char FileName[24];		 	unsigned long RecordNumMax;		 	 	unsigned short RecordOffset; 	 	unsigned short RecordLength;	 	unsigned long RecordValid;		 }OS_DBF;typedef struct _OS_FIELD{	unsigned char Name[11];	 	unsigned char Type;		 	unsigned long Offset;	 	unsigned char Len;		 	unsigned char Dot;		 }OS_FIELD;typedef union _FIELD{	struct _N{			 		long long data;		unsigned char dot;		 	}N;	struct _C{			 		unsigned char data[254];	}C;	struct _D{			 		unsigned short year;		unsigned char month;		unsigned char day;		unsigned char week;	}D;	struct _T{			 		unsigned short year;		unsigned char month;		unsigned char day;		unsigned char week;		unsigned char hour;		unsigned char minute;		unsigned char second;		unsigned char ms;				}T;	struct _I{			 		long data;	}I;	struct _L{			 		char data;	}L;}FIELD;    void OSExit(void);				    ULONG OSGetKeyScan(void);				 UBYTE OSGetKeyCode(void);				 void OSKeyBufClr(void);					 UBYTE OSWaitKey(void);					    ULONG OSTMRGet(void);					 void OSDelay(UWORD ms);					 void OSGetCalendar(OS_CALENDAR *p);		 void OSSetCalendar(OS_CALENDAR *p);		 void OSCalendarToOffset(OS_CALENDAR *p, ULONG *day, ULONG *ms);		 void OSOffsetToCalendar(ULONG day, ULONG ms, OS_CALENDAR *p);		      void OSLCDDrawDot(UWORD x, UWORD y, LONG color, BYTE mode);	 	 	 	 	 void OSLCDDrawDotInWin(OS_WIN *w,UWORD x, UWORD y, LONG color, BYTE mode);void OSLCDDrawBlock(UWORD x, UWORD y, UWORD dx, UWORD dy, UBYTE *d, LONG color, BYTE mode);	  	 	 	 	 	 void OSLCDDrawBlockInWin(OS_WIN *w, UWORD x, UWORD y, UWORD dx, UWORD dy, UBYTE *d, LONG color, BYTE mode);void OSLCDFillBlock(UWORD x, UWORD y, UWORD dx, UWORD dy, LONG color, BYTE mode);	 	 	 	 void OSLCDFillBlockInWin(OS_WIN *w, UWORD x, UWORD y, UWORD dx, UWORD dy, LONG color, BYTE mode);void OSLCDReadPanel(UBYTE *d);		 void OSLCDWritePanel(UBYTE *d);		 void OSLCDClearPanel(BYTE mode);	 void DrawLine(ULONG x,ULONG y,ULONG x1,ULONG y1,LONG color, BYTE mode);		 	 void OSDrawLineInWin(OS_WIN *w,ULONG x,ULONG y,ULONG x1,ULONG y1,LONG color, BYTE mode);void DrawLineRadian(ULONG x,ULONG y,float radian,ULONG l,ULONG dot,LONG color, BYTE mode);	 	 void OSDrawLineRadianInWin(OS_WIN *w,ULONG x,ULONG y,float radian,ULONG l,ULONG dot,LONG color, BYTE mode);void DrawLineDot(ULONG x,ULONG y,ULONG x1,ULONG y1,LONG dot, LONG color,BYTE mode);	 	 void OSDrawLineDotInWin(OS_WIN *w,ULONG x,ULONG y,ULONG x1,ULONG y1,LONG dot, LONG color,BYTE mode);	 void DrawCircle(ULONG x,ULONG y,ULONG r,ULONG dot, LONG color, BYTE mode);	 	 void OSDrawCircleInWin(OS_WIN *w, ULONG x,ULONG y,ULONG r,ULONG dot, LONG color, BYTE mode);void DrawRectangle(ULONG x,ULONG y,ULONG lx,ULONG ly,ULONG dot,LONG color,BYTE mode);	 	 void OSDrawRectangleInWin(OS_WIN *w, ULONG x,ULONG y,ULONG lx,ULONG ly,ULONG dot,LONG color,BYTE mode); OS_WIN *CreatSubWindow(ULONG x, ULONG y, ULONG lx, ULONG ly, LONG outline);OS_WIN *OSCreatSubWindow(ULONG x, ULONG y, ULONG lx, ULONG ly, LONG outline, UBYTE HaveLab, UBYTE *lab);	 	 OS_WIN *OSCreatSubWindowInWin(OS_WIN *w,ULONG x, ULONG y, ULONG lx, ULONG ly, LONG outline, UBYTE HaveLab, UBYTE *lab);void CloseSubWindow(OS_WIN *hWin);			 void OSClearWindows(OS_WIN *hWin);			  void OSCursorClose(void);			 void OSCursor(ULONG x, ULONG y, ULONG w, ULONG h, BYTE mode);	 	 void OSCursorInWin(OS_WIN *hw, ULONG x, ULONG y, ULONG w, ULONG h, BYTE mode); void OSDrawSmallNum(ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);	 	 void OSDrawAscii(ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);	 	 void OSDrawAsciiInWin(OS_WIN *hWin,ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);		 	 void OSDrawText(ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);		 	 void OSDrawInWin(OS_WIN *hWin, ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);		 	  void OSScrollBarCreat(ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);		 	 void OSScrollBarCreatInWin(OS_WIN *hWin, ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);		 	 void OSScrollBarSeek(ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);			 	 void OSScrollBarSeekInWin(OS_WIN *hWin,ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);		 	 void OSProgressBarCreat(ULONG x, ULONG y, ULONG l, UBYTE seek);		 void OSProgressBarCreatInWin(OS_WIN *hWin,ULONG x, ULONG y, ULONG l, UBYTE seek);void OSProgressBarSeek(ULONG x, ULONG y, ULONG l, UBYTE seek);void OSProgressBarSeekInWin(OS_WIN *hWin, ULONG x, ULONG y, ULONG l, UBYTE seek);UBYTE OSSureBox(UBYTE *lab, UBYTE *d);		 	 	 UBYTE OSMsgBox(UBYTE *d);UBYTE OSMessageBox(UBYTE *lab, UBYTE *d ,UBYTE *prompt);	 	 	    LONG OSMenu(ULONG x, ULONG y, ULONG l, ULONG DispNum, ULONG DefNum, ULONG NumMax, ULONG IsScroll, ...);	 	 	 	 	 UBYTE OSMenuInWin(OS_WIN *hWin, ULONG x, ULONG y, UBYTE CharNum, ULONG DispNum, ULONG *DefNum, ULONG NumMax, ULONG IsScroll, ...);	 	 	 	 	 UBYTE OSListInWin(OS_WIN *hWin, ULONG x, ULONG y, ULONG CntPerPannel, UBYTE RecordLen, UBYTE RecordOffset, ULONG DispLen, ULONG *DefRecord, ULONG RecordMax, ULONG IsScroll,UBYTE *data);	 	 	    UBYTE OSEntrySele(UBYTE entry);		 UBYTE OSEntryAscII(ULONG x, ULONG y, ULONG l, UBYTE *d, UBYTE entry, UBYTE IsPswd, UBYTE Font);		 	 	 	 UBYTE OSEntryInWin(OS_WIN *hWin,ULONG x, ULONG y, ULONG l, UBYTE *d, UBYTE entry, UBYTE IsPswd, UBYTE Font);		 	 	 	    LONG OSfGetC(LONG h);		 	 	 LONG OSfRead(LONG h, UBYTE *data, ULONG len);	 	 	 LONG OSfPutC(LONG h, UBYTE data);		 	 	 LONG OSfWrite(LONG h, UBYTE *data, ULONG len);	 	 	 LONG OSfSave(LONG h);	 	 	 	 LONG OSfSeek(LONG h, LONG offset, LONG origin);		 	 	 BYTE OSfList(UBYTE disk, LONG dirH, ULONG num, OS_FILE *p);		 	 	 LONG OSfOpen(UBYTE disk, LONG dirH, UBYTE *name);		 	 	 LONG OSfClose(LONG h);		 	 	 LONG OSfCreat(UBYTE disk, LONG dirH, UBYTE *name, ULONG type, OS_CALENDAR tt);	 	 	 LONG OSfDel(UBYTE disk, LONG dirH, UBYTE *name);		 	 	    OS_DBF *OSDBFOpen(UBYTE disk, LONG dirH, UBYTE *name);		 	 	 void OSDBFClose(OS_DBF *dbf);		 	 BYTE OSDBFRecordRead(OS_DBF *dbf, ULONG RecordNum, UBYTE *d);		 	 	 BYTE OSDBFRecordWrite(OS_DBF *dbf, ULONG RecordNum, UBYTE *d);		 	 	 BYTE OSDBFRecordAdd(OS_DBF *dbf);		 	 	 OS_FIELD *OSDBFFieldSearch(OS_DBF *dbf, UBYTE *FldName);		 	 	 void OSDBFFieldFree(OS_FIELD *fld);			 BYTE OSDBFFieldRead(OS_DBF *dbf, OS_FIELD *fld, ULONG RecordNum, FIELD *d);		 	 	 BYTE OSDBFFieldWrite(OS_DBF *dbf, OS_FIELD *fld, ULONG RecordNum, FIELD *d);	 	 	 BYTE OSDBFRecordIsValid(OS_DBF *dbf, ULONG RecordNum);		 	 BYTE OSDBFRecordDelete(OS_DBF *dbf, ULONG RecordNum);		 	 	 BYTE OSDBFRecordRecall(OS_DBF *dbf, ULONG RecordNum);		 	 	    BYTE OSComIni(BYTE ComNum,		 			  LONG Baud,			 			  BYTE Parity,			 			  BYTE Even,			 			  BYTE Stop,			 			  BYTE DLen);			 void OSCOMClose(BYTE ComNum);	 BYTE OSCOMSChar(BYTE c);		 BYTE OSCOMRChar(BYTE *c);		 BYTE OSCOMSCheck(void);			 void OSCOMSStr(BYTE *d);    void BuzzPlay(unsigned char tone, unsigned char volume, unsigned char time);# 5 "D:\\temp\\\275\255\313\325\265\245\317\340\267\321\302\312\265\367\312\324\\\324\264\264\372\302\353\\js520a.c" 2  UBYTE Global_ComNum=1;		 UBYTE tr[12][3];		 ULONG ClrPswd = 0x12345600, PgmPswd = 0x12345601;ULLONG devID = 0;   void bcd2ascii(UBYTE *bcd,UBYTE *a,UBYTE l){	UBYTE i;	for(i=0;i<l;i++){		a[i*2] = (bcd[i]>>4)+0x30;		a[i*2+1] = (bcd[i]&0xF) + 0x30;	}	for(i=0;i<l*2;i++){		if(a[i]>0x39) a[i]+=7;	}}void a2bcd(UBYTE *a,UBYTE *bcd){	UBYTE i,s[10];	ULONG ul;		bcd[0]=0;	for(i=0;i<9;i++){		if(a[i]=='.'){			if((i+1)<9)	bcd[0] += (a[i+1]<<4);			if((i+2)<9) bcd[0] += (a[i+2]&0xF);			break;		}	}	a[i]=0;	ul = atol(a);	bcd[1] = (ul%10) + (((ul/10)%10)<<4);	bcd[2] = ((ul/100)%10) + (((ul/1000)%10)<<4);	bcd[3] = ((ul/10000)%10) + (((ul/100000)%10)<<4);}UBYTE hex2bcd(UBYTE hex){	return (hex%10)+(((hex/10)%10) <<4);}void ID2bcd(ULLONG id,UBYTE *d)		 {	d[0] = (UBYTE)id;	d[1] = (UBYTE)(id>>8);	d[2] = (UBYTE)(id>>16);	d[3] = (UBYTE)(id>>24);	d[4] = (UBYTE)(id>>32);	d[5] = (UBYTE)(id>>40);	d[6] = (UBYTE)(id>>48);} LONG DLT645(UBYTE Index,ULLONG DevID,UBYTE Cmd,UBYTE *s,UBYTE sl,UBYTE *r,UBYTE rl,UWORD Dly){	UBYTE i,l;	UBYTE ChkSum=(0x68+0x68);	ULONG DlyCnt,RcvPro;		 	asm("	bset #7,0xFFFFF421") ;	for(i=0;i<Index;i++) OSCOMSChar(0xFE);	OSCOMSChar(0x68);		 	for(i=0;i<6;i++){  OSCOMSChar((UBYTE)DevID);  ChkSum += (UBYTE)DevID;  DevID>>=8; }	OSCOMSChar(0x68);	OSCOMSChar(Cmd); ChkSum += Cmd;	OSCOMSChar(sl); ChkSum += sl;	for(i=0;i<sl;i++){ OSCOMSChar(s[i]+0x33); ChkSum += (s[i]+0x33); }	OSCOMSChar(ChkSum);	OSCOMSChar(0x16);	 	while(OSCOMSCheck()!=0);			 	asm("	bclr #7,0xFFFFF421") ;	while(OSCOMRChar(r)==0);	 	if(Dly == 0) return 0;		 	DlyCnt = OSTMRGet();		 	RcvPro = 0;	while(OSTMRGet()<(DlyCnt+Dly)){		if(OSCOMRChar(&i)==0){			ChkSum += i;			switch(RcvPro){			case 0: 		 				if(i==0x68){ ChkSum = 0x68; RcvPro++; }				break;			case 1 ... 6:		 				r[RcvPro-1] = i;				RcvPro++; 				break;			case 7:			 				if(i==0x68) RcvPro++; 				else RcvPro = 0; 				break;			case 8: 		 				if(i==(Cmd|0x80)) RcvPro++;				else RcvPro = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -