📄 gamegraph.lst
字号:
C51 COMPILER V8.05a GAMEGRAPH 11/06/2007 16:45:44 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE GAMEGRAPH
OBJECT MODULE PLACED IN .\Target\GameGraph.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\GameGraph.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LST
-\GameGraph.lst) OBJECT(.\Target\GameGraph.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ******************************游戏图像处理程序************************** *
4 //* *
5 //*************************************************************************************************
6 #include "includes.h"
7
8 #define FRAMELEFT 38 //边框范围:ucLine:36~127。
9 #define BLOCKLEFT 40
10
11
12 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<格子状态数组>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
13 unsigned char uca_BlockMap[]=
14 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
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};
19
20 unsigned char code uca_BitSelect[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
21 //用于按位置零。
22
23 unsigned char code uca_BlockLeft[]={0xF0,0xB0,0xD0,0xF0};
24 unsigned char code uca_BlockRight[]={0x0F,0x0B,0x0D,0x0F};
25 unsigned char code uca_BlockTwo[]={0xFF,0xBB,0xDD,0xFF};
26 unsigned char code uca_BlockClean[]={0x00,0x00,0x00,0x00};
27
28 //*************************************************************************************************
29 //* *
30 //* **********************************读格子状态************************** *
31 //* *
32 //*************************************************************************************************
33 unsigned char ucReadBlock(unsigned char ucRow,unsigned char ucLine)
34 {
35 1 unsigned char ucResult;
36 1
37 1 if(ucLine<8)
38 1 ucResult=uca_BlockMap[ucRow*2]>>(ucLine);
39 1 else
40 1 ucResult=uca_BlockMap[ucRow*2+1]>>(ucLine-8);
41 1
42 1 if(ucResult&0x01)
43 1 return 1;
44 1 else
45 1 return 0;
46 1 }
47
48 //*************************************************************************************************
49 //* *
50 //* **********************************写格子状态************************** *
51 //* *
52 //*************************************************************************************************
53 void vWriteBlock(unsigned char ucRow,unsigned char ucLine ,unsigned char ucValue)
54 {
C51 COMPILER V8.05a GAMEGRAPH 11/06/2007 16:45:44 PAGE 2
55 1 if(ucValue==1)
56 1 {
57 2 if(ucLine<8)
58 2 uca_BlockMap[ucRow*2]|=(ucValue<<ucLine);
59 2 else
60 2 uca_BlockMap[ucRow*2+1]|=(ucValue<<(ucLine-8));
61 2 }
62 1 else
63 1 {
64 2 if(ucLine<8)
65 2 uca_BlockMap[ucRow*2]&=uca_BitSelect[ucLine];
66 2 else
67 2 uca_BlockMap[ucRow*2+1]&=uca_BitSelect[ucLine-8];
68 2 }
69 1
70 1 }
71 //*************************************************************************************************
72 //* *
73 //* **********************************显示一个方块**************************** *
74 //* *
75 //*************************************************************************************************
76 void vShowBlock(unsigned char ucRow,unsigned char ucLine)
77 {
78 1 vWriteBlock(ucRow,ucLine,1);
79 1 if(ucLine%2)
80 1 {
81 2 if(ucReadBlock(ucRow,ucLine-1))
82 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockTwo);
83 2 else
84 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockLeft);
85 2 }
86 1 else
87 1 {
88 2 if(ucReadBlock(ucRow,ucLine+1))
89 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockTwo);
90 2 else
91 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockRight);
92 2 }
93 1 }
94
95 //*************************************************************************************************
96 //* *
97 //* **********************************清除一个方块**************************** *
98 //* *
99 //*************************************************************************************************
100 void vCleanBlock(unsigned char ucRow,unsigned char ucLine)
101 {
102 1 vWriteBlock(ucRow,ucLine,0);
103 1 if(ucLine%2)
104 1 {
105 2 if(ucReadBlock(ucRow,ucLine-1))
106 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockRight);
107 2 else
108 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockClean);
109 2 }
110 1 else
111 1 {
112 2 if(ucReadBlock(ucRow,ucLine+1))
113 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockLeft);
114 2 else
115 2 vShowCustomRow(ucLine/2+1,BLOCKLEFT+ucRow*4,4,uca_BlockClean);
116 2 }
C51 COMPILER V8.05a GAMEGRAPH 11/06/2007 16:45:44 PAGE 3
117 1 }
118 //*************************************************************************************************
119 //* *
120 //* ******************************游戏区域边框绘制函数************************** *
121 //* *
122 //*************************************************************************************************
123 void vShowFrame()
124 {
125 1 unsigned char ucCount;
126 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<绘制左半屏>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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 11/06/2007 16:45:44 PAGE 4
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -