📄 e2emu.lst
字号:
RC51 COMPILER V03.03.27, E2EMU 12/10/02 11:36:32 PAGE 1
QCW(0x00002F32)
WIN32 RC51 COMPILER V03.03.27, COMPILATION OF MODULE E2EMU
OBJECT MODULE PLACED IN d:\data\msc1210\ride\e2emu\e2emu.obj
COMPILER INVOKED BY: RC51.EXE D:\DATA\MSC1210\RIDE\E2EMU\E2EMU.C OBJECT(D:\DATA\
-MSC1210\RIDE\E2EMU\E2EMU.OBJ) PIN(D:\RIDE\INC) NOAM PR(D:\DATA\MSC1
-210\RIDE\E2EMU\E2EMU.LST) CD SB OE(1) SM MODAMD(DP2) FP(NOFLOAT) PW
-(80) NOIS UNSIGNEDCHAR ET(CHAR)
stmt level source
1 #include "REG1210.H"
2 #define OneMsConst (1843-1)
3 #define OneUsConst (2-1)
4 //#define OneMsConst (22118-1)
5 //#define OneUsConst (22-1)
6 #define FDM 1 // Flash Data Memory
7 #define FPM 0 // Flash Program Memory
8 #define CR 0x0a
9 #define LF 0x0d
10 #define BS 0x08
11 extern void autobaud(void);
12 extern char faddr_data_read(char);
13 extern void put_string(char code *string);
14 extern void putcr(void);
15 extern void tx_byte(char);
16 extern char rx_byte_echo(void);
17 extern char page_erase (int faddr, char fdata, char fdm);
18 extern char write_flash_chk (int faddr, char fdata, char fdm);
19 sbit P17 = P1^7;
20 char rmw(unsigned char faddr, unsigned char fdata) //read-modify-w
-rite FDM
21 { unsigned char i,c;
22 1 unsigned char xdata * ptr;
23 1 unsigned char xdata * bufptr;
24 1 P17=!P17;
25 1 page_erase(0x0400, 0xff, FDM); // temp buf 0x400~0x047f
26 1 P17=!P17;
27 1 ptr = 0x0480; // source page begin adr
WARNING C207 IN LINE 27 OF e2emu.c : suspicious pointer conversion
28 1 bufptr=0x0400;
WARNING C207 IN LINE 28 OF e2emu.c : suspicious pointer conversion
29 1 // backup target page to temp buf
30 1 for (i=0; i<128; i++) write_flash_chk(bufptr++,*ptr++,FDM);
WARNING C207 IN LINE 30 OF e2emu.c : suspicious pointer conversion
31 1 P17=!P17;
32 1 page_erase(0x0480, 0xff, FDM); // erase destination page
33 1 P17=!P17;
34 1 write_flash_chk((unsigned int)(0x0480+faddr),fdata,FDM);
35 1 bufptr=0x0400; // source page
WARNING C207 IN LINE 35 OF e2emu.c : suspicious pointer conversion
36 1 ptr= 0x0480; // destination page
WARNING C207 IN LINE 36 OF e2emu.c : suspicious pointer conversion
37 1 for (i=0; i<128; i++) {
38 2 if (i==faddr)c=fdata; else c=*bufptr;
39 2 write_flash_chk((unsigned int)(0x0480+i),c,FDM);
40 2 bufptr++;
41 2 }
42 1 P17=!P17;
43 1 }
WARNING C096 IN LINE 43 OF e2emu.c : Function 'rmw' should return a value
44 void main(void)
45 {
46 1 unsigned char xdata * msgptr;
47 1 unsigned char xdata * ptr;
48 1 char i,c, cursor_ptr;
49 1 CKCON &= 0xf8; // 0 MOVX cycle stretch
50 1 PDCON &= 0x0ed; //turn on tone gen & sys timer
51 1 //Flash Related Timer Setup
52 1 USEC = OneUsConst;
53 1 MSEC = OneMsConst;
54 1 FTCON=0xa5;
55 1 T2CON = 0x34; // T2 as baudrate generator
56 1 RCAP2 = 65535; // 57600 Baud @ 1.8432MHz
57 1 // RCAP2 = 65524; // 57600 Baud @ 22.1184MHz
58 1 SCON = 0x52; // Async mode 1, 8-bit UART, enable rcvr, TI=1
-, RI=0
59 1 put_string("\x1b[46;37m\x1b[25C\x1b[2JMSC1210 E2PROM Emulation\nA
-ny key to start:");
60 1 while(RI==0) {;} // get a key
61 1 RI=0;
62 1 put_string("\x1b[2;1HInput message: ");
63 1 msgptr=0x0480;
WARNING C207 IN LINE 63 OF e2emu.c : suspicious pointer conversion
64 1 while(1) {
65 2 ptr=msgptr;
66 2 put_string("\x1b[3;1H'"); //set cursor
67 2 for (i=0; i<128; i++) tx_byte(*ptr++);
68 2 put_string("'\x1b[2;15H");
69 2 while(RI==0) {;} // get a key
70 2 c=rx_byte_echo();
71 2 if (c==CR || c==LF) cursor_ptr=0;
72 2 else if (c==BS) {cursor_ptr--; rmw(cursor_ptr,' ');}
73 2 else rmw(cursor_ptr++,c);
74 2 if (cursor_ptr<0) cursor_ptr=0;
75 2 }
76 1 }
77
RC51 COMPILER V03.03.27, E2EMU 12/10/02 11:36:32 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _rmw (BEGIN)
; SOURCE LINE # 20
0000 8F00 R MOV faddr,R7
0002 8D00 R MOV fdata,R5
; SOURCE LINE # 24
0004 B297 CPL P17
; SOURCE LINE # 25
0006 7E04 MOV R6,#004H
0008 E4 CLR A
0009 FF MOV R7,A
000A 7DFF MOV R5,#0FFH
000C 7B01 MOV R3,#001H
000E 120000 R LCALL _page_erase
; SOURCE LINE # 26
0011 B297 CPL P17
; SOURCE LINE # 27
0013 750004 R MOV ptr,#004H
0016 750080 R MOV ptr+01H,#080H
; SOURCE LINE # 28
0019 750004 R MOV bufptr,#004H
001C E4 CLR A
001D F500 R MOV bufptr+01H,A
; SOURCE LINE # 30
001F F500 R MOV i,A
0021 ?FOR2:
0021 AE00 R MOV R6,bufptr
0023 AF00 R MOV R7,bufptr+01H
0025 0500 R INC bufptr+01H
0027 E500 R MOV A,bufptr+01H
0029 7002 JNZ ?LAB8
002B 0500 R INC bufptr
002D ?LAB8:
002D 850083 R MOV DPH,ptr
0030 850082 R MOV DPL,ptr+01H
0033 0500 R INC ptr+01H
0035 E500 R MOV A,ptr+01H
0037 7002 JNZ ?LAB9
0039 0500 R INC ptr
003B ?LAB9:
003B E0 MOVX A,@DPTR
003C FD MOV R5,A
003D 7B01 MOV R3,#001H
003F 120000 R LCALL _write_flash_chk
0042 0500 R INC i
0044 E500 R MOV A,i
0046 6480 XRL A,#080H
0048 70D7 JNZ ?FOR2
; SOURCE LINE # 31
004A B297 CPL P17
; SOURCE LINE # 32
004C 7E04 MOV R6,#004H
004E 7F80 MOV R7,#080H
0050 7DFF MOV R5,#0FFH
0052 7B01 MOV R3,#001H
0054 120000 R LCALL _page_erase
; SOURCE LINE # 33
0057 B297 CPL P17
; SOURCE LINE # 34
0059 E500 R MOV A,faddr
005B 2480 ADD A,#080H
005D FF MOV R7,A
005E E4 CLR A
005F 3404 ADDC A,#004H
0061 FE MOV R6,A
0062 AD00 R MOV R5,fdata
0064 7B01 MOV R3,#001H
0066 120000 R LCALL _write_flash_chk
; SOURCE LINE # 35
0069 750004 R MOV bufptr,#004H
006C E4 CLR A
006D F500 R MOV bufptr+01H,A
; SOURCE LINE # 36
006F 750004 R MOV ptr,#004H
0072 750080 R MOV ptr+01H,#080H
; SOURCE LINE # 37
0075 F500 R MOV i,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -