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

📄 gamegraph.lst

📁 用proteus模拟仿真实现俄罗期方块游戏
💻 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 + -