📄 ms_rwreg.lst
字号:
C51 COMPILER V8.01 MS_RWREG 11/28/2006 08:08:05 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MS_RWREG
OBJECT MODULE PLACED IN ..\..\1out\ms_rwreg.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\kernal\ms_rwreg.c BROWSE INCDIR(..\..\inc;..\..\mslib;..\..\Device;..
-\..\kernal;..\..\msFunc;..\..\pc;..\..\tv) DEBUG OBJECTEXTEND PRINT(..\..\1out\ms_rwreg.lst) OBJECT(..\..\1out\ms_rwreg.
-obj)
line level source
1 #define _MSRWREG_C_
2
3 #include <intrins.h>
4 #include "types.h"
5 #include "board.h"
6 #include "ms_reg.h"
7 #include "global.h"
8 #include "misc.h"
9 #include "DEBUG.h"
10 extern void Delay4us(void);
11
12 #define Delay1us() _nop_()//;_nop_()
13
14 #define MS_REG(addr) (((unsigned char xdata*)0)[addr])
15 /////////////////////////////////////////////////////////////////////////
16 BYTE msReadByte(BYTE addr)
17 {
18 1 //return MS_REG(addr);
19 1 return *((BYTE pdata*) addr);
20 1 }
21 WORD msReadWord(BYTE addr)
22 { WORD value;
23 1
24 1 value=msReadByte(addr);
25 1 value=(value<<8)|msReadByte(addr-1);
26 1
27 1 return value;
28 1 }
29 void msWriteByte(BYTE addr, BYTE value)
30 {
31 1 //MS_REG(addr)=value;
32 1 *((BYTE pdata*) addr) = value;
33 1 }
34 void msWriteWord(BYTE addr, WORD value)
35 { msWriteByte(addr-1, value&0xFF);
36 1 msWriteByte(addr, value>>8);
37 1 }
38
39 void msWriteByte_Bank_BackupBank( BYTE ucBank, BYTE ucReg, BYTE ucData )
40 {
41 1 BYTE ucBackupBank = msReadByte( BK0_00_REGBK);
42 1
43 1 msWriteByte( BK0_00_REGBK, ucBank );
44 1 msWriteByte( ucReg, ucData );
45 1
46 1 msWriteByte( BK0_00_REGBK, ucBackupBank );
47 1 }
48
49 /*
50 void msWriteByteMask_Bank_BackupBank(BYTE ucBank, BYTE ucReg, BYTE ucValue, BYTE ucMask)
51 {
52 BYTE ucBackupBank = msReadByte( BK0_00_REGBK);
53 BYTE uc;
C51 COMPILER V8.01 MS_RWREG 11/28/2006 08:08:05 PAGE 2
54
55 msWriteByte( BK0_00_REGBK, ucBank );
56
57 uc = msReadByte(ucReg) & (~ucMask);
58 msWriteByte( ucReg, ( uc | (ucValue & ucMask)) );
59
60 msWriteByte( BK0_00_REGBK, ucBackupBank );
61 }
62 */
63
64 void msWriteTBL(BYTE addr, BYTE *tbl, WORD count, BYTE inc)
65 {
66 1 while (count--)
67 1 { msWriteByte(addr, *(tbl++));
68 2 }
69 1 //printf("count====%x", count);
70 1
71 1 inc=0;
72 1 }
73
74 void msWriteRegsTbl(RegUnitType *pTable)
75 {
76 1 BYTE ucIndex; // register index
77 1
78 1 while (1)
79 1 {
80 2 ucIndex = pTable->Reg; // get register index
81 2 if (ucIndex == _END_OF_TBL_) // check end of table
82 2 break;
83 2
84 2 msWriteByte(ucIndex, pTable->Value); // write register
85 2
86 2 pTable++; // next
87 2 } // while
88 1 }
89
90 void msLoadModeIndexTBL(DynamicLoadModeTblType *pTable)
91 {
92 1 BYTE ucBank;
93 1 RegUnitType *RegType;
94 1 RegType=pTable->PtrRegTbl;
95 1
96 1 ucBank=msReadByte(BK0_00_REGBK);
97 1
98 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
99 1 while(1)
100 1 {
101 2 if (pTable->InputType==_END_OF_TBL_)
102 2 break;
103 2 if (((1<<g_VideoSetting.InputType)&(pTable->InputType)) \
104 2 &&(g_ucSrcModeIndex==pTable->ModeIndex))
105 2 {
106 3 while(1)
107 3 {
108 4 if (RegType->Reg== _END_OF_TBL_) // check end of table
109 4 break;
110 4 msWriteByte(RegType->Reg, RegType->Value); // write register
111 4 RegType++; // next
112 4 }
113 3 }
114 2 pTable++;
115 2 RegType=pTable->PtrRegTbl;
C51 COMPILER V8.01 MS_RWREG 11/28/2006 08:08:05 PAGE 3
116 2 }
117 1
118 1 msWriteByte( BK0_00_REGBK, ucBank );
119 1 }
120
121 void msWriteByteMask(BYTE ucReg, BYTE ucValue, BYTE ucMask)
122 {
123 1 BYTE uc;
124 1
125 1 uc = msReadByte(ucReg) & (~ucMask);
126 1 msWriteByte( ucReg, ( uc | (ucValue & ucMask)) );
127 1 }
128
129 /*
130 void msWriteByte_Bank( BYTE ucBank, BYTE ucReg, BYTE ucData )
131 {
132 msWriteByte( BK0_00_REGBK, ucBank );
133 msWriteByte( ucReg, ucData );
134 }
135 */
136 void msWriteBit(BYTE ucReg, BOOL bBit, BYTE ucBitPos)
137 {
138 1 BYTE ucValue;
139 1
140 1 ucValue = msReadByte(ucReg);
141 1 if(bBit)
142 1 {
143 2 ucValue = ucValue | ucBitPos;
144 2 }
145 1 else
146 1 {
147 2 ucValue = ucValue & (~ucBitPos);
148 2 }
149 1 msWriteByte(ucReg, ucValue);
150 1 }
151
152
153 void msWrite3Bytes(BYTE ucReg, DWORD dwValue)
154 {
155 1 msWriteByte(ucReg, (BYTE)(dwValue / 0x10000));
156 1 msWriteByte(ucReg - 1, (BYTE)(dwValue / 0x100));
157 1 msWriteByte(ucReg - 2, (BYTE)(dwValue));
158 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 430 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 19
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -