📄 gamegraph.lst
字号:
C51 COMPILER V8.05a GAMEGRAPH 09/06/2007 00:36:27 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE GAMEGRAPH
OBJECT MODULE PLACED IN GameGraph.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\GameGraph.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\Gam
-eGraph.lst) OBJECT(GameGraph.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ******************************游戏图像处理程序************************** *
4 //* *
5 //*************************************************************************************************
6 #include "at89x51.h"
7 #include "LCD12864.h"
8
9 #define FRAMELEFT 38 //边框范围:ucLine:36~127。
10 #define BLOCKLEFT 40
11
12
13 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<格子状态数组>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
14 unsigned char uca_BlockMap[]=
15 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
16 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
17 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
18 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
19 0x00,0x00};
20
21 unsigned char code uca_BitSelect[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
22 //用于按位置零。
23
24 unsigned char code uca_BlockLeft[]={0xF0,0xB0,0xD0,0xF0};
25 unsigned char code uca_BlockRight[]={0x0F,0x0B,0x0D,0x0F};
26 unsigned char code uca_BlockTwo[]={0xFF,0xBB,0xDD,0xFF};
27 unsigned char code uca_BlockClean[]={0x00,0x00,0x00,0x00};
28
29 //*************************************************************************************************
30 //* *
31 //* **********************************读格子状态************************** *
32 //* *
33 //*************************************************************************************************
34 unsigned char ucReadBlock(unsigned char ucRow,unsigned char ucLine)
35 {
36 1 unsigned char ucResult;
37 1
38 1 if(ucLine<8)
39 1 ucResult=uca_BlockMap[ucRow*2]>>(ucLine);
40 1 else
41 1 ucResult=uca_BlockMap[ucRow*2+1]>>(ucLine-8);
42 1
43 1 if(ucResult&0x01)
44 1 return 1;
45 1 else
46 1 return 0;
47 1 }
48
49 //*************************************************************************************************
50 //* *
51 //* **********************************写格子状态************************** *
52 //* *
53 //*************************************************************************************************
54 void vWriteBlock(unsigned char ucRow,unsigned char ucLine ,unsigned char ucValue)
C51 COMPILER V8.05a GAMEGRAPH 09/06/2007 00:36:27 PAGE 2
55 {
56 1 if(ucValue==1)
57 1 {
58 2 if(ucLine<8)
59 2 uca_BlockMap[ucRow*2]|=(ucValue<<ucLine);
60 2 else
61 2 uca_BlockMap[ucRow*2+1]|=(ucValue<<(ucLine-8));
62 2 }
63 1 else
64 1 {
65 2 if(ucLine<8)
66 2 uca_BlockMap[ucRow*2]&=uca_BitSelect[ucLine];
67 2 else
68 2 uca_BlockMap[ucRow*2+1]&=uca_BitSelect[ucLine-8];
69 2 }
70 1
71 1 }
72 //*************************************************************************************************
73 //* *
74 //* **********************************显示一个方块**************************** *
75 //* *
76 //*************************************************************************************************
77 void vShowBlock(unsigned char ucRow,unsigned char ucLine)
78 {
79 1 vWriteBlock(ucRow,ucLine,1);
80 1 if(ucLine%2)
81 1 {
82 2 if(ucReadBlock(ucRow,ucLine-1))
83 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockTwo);
84 2 else
85 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockLeft);
86 2 }
87 1 else
88 1 {
89 2 if(ucReadBlock(ucRow,ucLine+1))
90 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockTwo);
91 2 else
92 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockRight);
93 2 }
94 1 }
95
96 //*************************************************************************************************
97 //* *
98 //* **********************************清除一个方块**************************** *
99 //* *
100 //*************************************************************************************************
101 void vCleanBlock(unsigned char ucRow,unsigned char ucLine)
102 {
103 1 vWriteBlock(ucRow,ucLine,0);
104 1 if(ucLine%2)
105 1 {
106 2 if(ucReadBlock(ucRow,ucLine-1))
107 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockRight);
108 2 else
109 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockClean);
110 2 }
111 1 else
112 1 {
113 2 if(ucReadBlock(ucRow,ucLine+1))
114 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockLeft);
115 2 else
116 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockClean);
C51 COMPILER V8.05a GAMEGRAPH 09/06/2007 00:36:27 PAGE 3
117 2 }
118 1 }
119 //*************************************************************************************************
120 //* *
121 //* ******************************游戏区域边框绘制函数************************** *
122 //* *
123 //*************************************************************************************************
124 void vShowFrame()
125 {
126 1 unsigned char ucCount;
127 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<绘制左半屏>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
128 1 CS1=1;
129 1 CS2=0;
130 1 vWriteCMD(LCDPAGE);
131 1 vWriteCMD(LCDLINE+FRAMELEFT);
132 1 for(ucCount=FRAMELEFT;ucCount<64;ucCount++)
133 1 vWriteData(0xC0);
134 1
135 1 for(ucCount=1;ucCount<7;ucCount++)
136 1 {
137 2 vWriteCMD(LCDPAGE+ucCount);
138 2 vWriteCMD(LCDLINE+FRAMELEFT);
139 2 vWriteData(0xFF);
140 2 vWriteData(0xFF);
141 2 }
142 1
143 1 vWriteCMD(LCDPAGE+7);
144 1 vWriteCMD(LCDLINE+FRAMELEFT);
145 1 for(ucCount=FRAMELEFT;ucCount<64;ucCount++)
146 1 vWriteData(0x03);
147 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<绘制右半屏>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
148 1 CS1=0;
149 1 CS2=1;
150 1 vWriteCMD(LCDPAGE);
151 1 vWriteCMD(LCDLINE);
152 1 for(ucCount=0;ucCount<62;ucCount++)
153 1 vWriteData(0xC0);
154 1
155 1 for(ucCount=1;ucCount<7;ucCount++)
156 1 {
157 2 vWriteCMD(LCDPAGE+ucCount);
158 2 vWriteCMD(LCDLINE+60);
159 2 vWriteData(0xFF);
160 2 vWriteData(0xFF);
161 2 }
162 1
163 1 vWriteCMD(LCDPAGE+7);
164 1 vWriteCMD(LCDLINE);
165 1 for(ucCount=0;ucCount<62;ucCount++)
166 1 vWriteData(0x03);
167 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 635 ----
CONSTANT SIZE = 24 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 42 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.05a GAMEGRAPH 09/06/2007 00:36:27 PAGE 4
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -