📄 menudrv.lst
字号:
C51 COMPILER V6.02 MENUDRV 08/30/2007 11:06:06 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE MENUDRV
OBJECT MODULE PLACED IN D:\原D\DOCUME~1\桌面\新建文~1\MENUDRV.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE D:\原D\DOCUME~1\桌面\新建文~1\MENUDRV.C DB SB OE
stmt level source
1 #include "menudrv.h"
2 extern void functest();
3 extern const menu code menu_table[] = {
4 {"",null,0,0,0,0},//定义一个不存在的菜单
5 {"文件",null,0,2,0,7},//1
6 {"编辑",null,1,3,0,0},//2
7 {"搜索",null,2,4,0,0},//3
8 {"项目",null,3,5,0,0},//4
9 {"执行",null,4,6,0,0},//5
10 {"窗口",null,5,0,0,0},//6
11 {"打开",null,0,8,1,0},//7
12 {"关闭",functest,7,0,1,0},//8
13 };
14
15 unsigned char curr_pos;//光标位置行号
16 unsigned char curr_menu_id;//当前菜单下标
17
18 void menu_esc()//上一级 ,退出
19 {
20 1 if(menu_table[curr_menu_id].up != 0){
21 2 cls();
22 2 view_menu(menu_table[curr_menu_id].up);
23 2 }//退出菜单的处理
24 1 }
25 void menu_ok()//确定
26 {//有下一级菜单
27 1 if(menu_table[curr_menu_id].down != 0){
28 2 cls();
29 2 view_menu(menu_table[curr_menu_id].down);
30 2 return;
31 2 }
32 1 //有操作函数
33 1 if(menu_table[curr_menu_id].oper != null){
34 2 menu_table[curr_menu_id].oper();
35 2 return;
36 2 }
37 1 }
38 void view_menu(unsigned char i)//显示菜单
39 {
40 1 menu *p;
41 1
42 1 curr_pos = 0;
43 1 curr_menu_id = i;
44 1 p = &menu_table[i];
45 1 for(i = 0;i < 4;i++){
46 2 location(0,i);
47 2 print(p->str);
48 2 if(p->next == 0) break;
49 2 p = &menu_table[p->next];
50 2 }
51 1 inv_line(curr_pos,0xff);
52 1 }
53 void menu_up()//上一条
54 {
55 1 unsigned char p;
C51 COMPILER V6.02 MENUDRV 08/30/2007 11:06:06 PAGE 2
56 1 unsigned char i;
57 1
58 1 p = curr_menu_id;
59 1 if(menu_table[p].prv == 0) return;//没上一条的情况
60 1
61 1 if(curr_pos != 0){//当前光标不在最上
62 2 inv_line(curr_pos,0x00);
63 2 curr_pos--;
64 2 inv_line(curr_pos,0xff);
65 2 curr_menu_id = menu_table[p].prv;
66 2 }else{
67 2 //当前光标在最上,再写菜单项
68 2 curr_menu_id = menu_table[p].prv;
69 2 p = curr_menu_id;
70 2 for(i = 0;i < 4;i++){
71 3 location(0,i);
72 3 print(menu_table[p].str);
73 3 if(menu_table[p].next == 0) break;
74 3 p = menu_table[p].next;
75 3 }
76 2 }
77 1 }
78 void menu_down()//下一条
79 {
80 1 unsigned char p;
81 1 unsigned char i;
82 1
83 1 p = curr_menu_id;
84 1 if(menu_table[p].next == 0) return;//没下一条的情况
85 1
86 1 if(curr_pos != 3){//当前光标不在最下
87 2 inv_line(curr_pos,0x00);
88 2 curr_pos++;
89 2 inv_line(curr_pos,0xff);
90 2 curr_menu_id = menu_table[p].next;
91 2 }else{
92 2 //当前光标在最下,再写菜单项
93 2 curr_menu_id = menu_table[p].next;
94 2 p = menu_table[p].prv;
95 2 p = menu_table[p].prv;
96 2 for(i = 0;i < 4;i++){
97 3 location(0,i);
98 3 print(menu_table[p].str);
99 3 if(menu_table[p].next == 0) break;
100 3 p = menu_table[p].next;
101 3 }
102 2 }
103 1 }
C51 COMPILER V6.02 MENUDRV 08/30/2007 11:06:06 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
curr_menu_id . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
_print . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
_menu. . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 10
str. . . . . . . . . . . . . . . . . MEMBER ----- PTR 0000H 3
oper . . . . . . . . . . . . . . . . MEMBER ----- PTR 0003H 3
prv. . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0006H 1
next . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0007H 1
up . . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0008H 1
down . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0009H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
menu_table . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0029H 90
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
RS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A5H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
RW . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
_view_menu . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
p. . . . . . . . . . . . . . . . . . AUTO DATA PTR 0001H 3
menu . . . . . . . . . . . . . . . . . TYPEDEF ----- STRUCT ----- 10
str. . . . . . . . . . . . . . . . . MEMBER ----- PTR 0000H 3
oper . . . . . . . . . . . . . . . . MEMBER ----- PTR 0003H 3
prv. . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0006H 1
next . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0007H 1
up . . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0008H 1
down . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0009H 1
_inv_line. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
_location. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
cls. . . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
E. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
menu_down. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
C51 COMPILER V6.02 MENUDRV 08/30/2007 11:06:06 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
p. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
menu_esc . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
functest . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
curr_pos . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0001H 1
menu_ok. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
menu_up. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
p. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 592 ----
CONSTANT SIZE = 131 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 8
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 + -