?? menu.lst
字號:
886 03e8 F91C adc r15,r9
887 03ea CF5F subi r28,lo8(-(1))
888 03ec D12E mov r13,r17
889 03ee D394 inc r13
890 03f0 28E0 ldi r18,lo8(8)
891 03f2 F701 movw r30,r14
892 03f4 4481 ldd r20,Z+4
893 03f6 5581 ldd r21,Z+5
894 03f8 6C2F mov r22,r28
895 03fa 8D2D mov r24,r13
896 03fc 0E94 0000 call GUI_PutNoStr
233:menu.c **** /* 選擇新的子菜單 */
234:menu.c **** yy = mwin->y + 19 + 2;
898 .LM86:
899 0400 F501 movw r30,r10
900 0402 C181 ldd r28,Z+1
901 0404 CB5E subi r28,lo8(-(21))
235:menu.c **** yy += new_no*8;
903 .LM87:
904 0406 EC2C mov r14,r12
905 0408 FF24 clr r15
906 040a C701 movw r24,r14
907 040c 33E0 ldi r19,3
908 040e 880F 1: lsl r24
909 0410 991F rol r25
910 0412 3A95 dec r19
911 0414 E1F7 brne 1b
912 0416 C80F add r28,r24
236:menu.c **** GUI_RectangleFill(xx, yy, xx+SMENU_WIDTH-2, yy+8, Windows_C);
914 .LM88:
915 0418 8C2F mov r24,r28
916 041a 885F subi r24,lo8(-(8))
917 041c 0091 0000 lds r16,Windows_C
918 0420 282F mov r18,r24
919 0422 472D mov r20,r7
920 0424 6C2F mov r22,r28
921 0426 812F mov r24,r17
922 0428 0E94 0000 call GUI_RectangleFill
237:menu.c **** GUI_ExchangeColor();
924 .LM89:
925 042c 0E94 0000 call GUI_ExchangeColor
238:menu.c **** GUI_PutNoStr(xx+1, yy+1, men->str[new_no], 8);
927 .LM90:
928 0430 EE0C add r14,r14
929 0432 FF1C adc r15,r15
930 0434 E80C add r14,r8
931 0436 F91C adc r15,r9
932 0438 CF5F subi r28,lo8(-(1))
933 043a 28E0 ldi r18,lo8(8)
934 043c F701 movw r30,r14
935 043e 4481 ldd r20,Z+4
936 0440 5581 ldd r21,Z+5
937 0442 6C2F mov r22,r28
938 0444 8D2D mov r24,r13
939 0446 0E94 0000 call GUI_PutNoStr
239:menu.c **** GUI_ExchangeColor();
941 .LM91:
942 044a 0E94 0000 call GUI_ExchangeColor
943 .L44:
944 /* epilogue: frame size=0 */
945 044e CF91 pop r28
946 0450 1F91 pop r17
947 0452 0F91 pop r16
948 0454 FF90 pop r15
949 0456 EF90 pop r14
950 0458 DF90 pop r13
951 045a CF90 pop r12
952 045c BF90 pop r11
953 045e AF90 pop r10
954 0460 9F90 pop r9
955 0462 8F90 pop r8
956 0464 7F90 pop r7
957 0466 0895 ret
958 /* epilogue end (size=13) */
959 /* function GUI_SMenuSelect size 145 (120) */
966 .Lscope5:
969 .global GUI_SMenuHide
971 GUI_SMenuHide:
240:menu.c **** }
241:menu.c ****
242:menu.c ****
243:menu.c ****
244:menu.c **** /****************************************************************************
245:menu.c **** * 名稱:GUI_SMenuHide()
246:menu.c **** * 功能:消隱子菜單項。
247:menu.c **** * 入口參數:men 子菜單句柄
248:menu.c **** * 出口參數:返回0表示操作失敗,返回1表示操作成功
249:menu.c **** ****************************************************************************/
250:menu.c **** uint8 GUI_SMenuHide(SMENU *men)
251:menu.c **** { WINDOWS *mwin;
973 .LM92:
974 /* prologue: frame size=0 */
975 0468 EF92 push r14
976 046a FF92 push r15
977 046c 0F93 push r16
978 046e CF93 push r28
979 0470 DF93 push r29
980 /* prologue end (size=5) */
981 0472 9C01 movw r18,r24
252:menu.c **** uint8 xx, yy;
253:menu.c ****
254:menu.c **** mwin = men->win;
983 .LM93:
984 0474 DC01 movw r26,r24
985 0476 ED90 ld r14,X+
986 0478 FC90 ld r15,X
255:menu.c **** /* 判斷是否可以顯示主菜單 */
256:menu.c **** if( (mwin->hight)<50 ) return(0);
988 .LM94:
989 047a E701 movw r28,r14
990 047c 8B81 ldd r24,Y+3
991 047e 8233 cpi r24,lo8(50)
992 0480 20F0 brlo .L61
257:menu.c **** if( (mwin->with)<50 ) return(0);
994 .LM95:
995 0482 F701 movw r30,r14
996 0484 4281 ldd r20,Z+2
997 0486 4233 cpi r20,lo8(50)
998 0488 18F4 brsh .L51
999 .L61:
1000 048a 80E0 ldi r24,lo8(0)
1001 048c 90E0 ldi r25,hi8(0)
1002 048e 51C0 rjmp .L49
1003 .L51:
258:menu.c ****
259:menu.c **** /* 畫菜子單項。下拉子菜單,以向左下拉為原則,若右邊溢出則以右下拉顯示 */
260:menu.c **** xx = mwin->x;
1005 .LM96:
1006 0490 D701 movw r26,r14
1007 0492 CC91 ld r28,X
261:menu.c **** xx += (men->mmenu_no)*MMENU_WIDTH;
1009 .LM97:
1010 0494 F901 movw r30,r18
1011 0496 7281 ldd r23,Z+2
1012 0498 8CE1 ldi r24,lo8(28)
1013 049a 789F mul r23,r24
1014 049c C001 movw r24,r0
1015 049e 1124 clr r1
1016 04a0 C80F add r28,r24
262:menu.c **** yy = mwin->y + 19;
1018 .LM98:
1019 04a2 F701 movw r30,r14
1020 04a4 6181 ldd r22,Z+1
263:menu.c **** yy += (men->no) * 8 + 2;
1022 .LM99:
1023 04a6 F901 movw r30,r18
1024 04a8 9381 ldd r25,Z+3
1025 04aa 990F lsl r25
1026 04ac 990F lsl r25
1027 04ae 990F lsl r25
1028 04b0 960F add r25,r22
1029 04b2 9B5E subi r25,lo8(-(21))
264:menu.c **** if( (xx+SMENU_WIDTH) <= (mwin->x + mwin->with - 1) )
1031 .LM100:
1032 04b4 EC2F mov r30,r28
1033 04b6 FF27 clr r31
1034 04b8 9F01 movw r18,r30
1035 04ba 265D subi r18,lo8(-(42))
1036 04bc 3F4F sbci r19,hi8(-(42))
1037 04be 8C91 ld r24,X
1038 04c0 480F add r20,r24
1039 04c2 512D mov r21,__zero_reg__
1040 04c4 511D adc r21,__zero_reg__
1041 04c6 4150 subi r20,lo8(-(-1))
1042 04c8 5040 sbci r21,hi8(-(-1))
1043 04ca 4217 cp r20,r18
1044 04cc 5307 cpc r21,r19
1045 04ce 84F0 brlt .L52
1046 04d0 4C2F mov r20,r28
1047 04d2 455D subi r20,lo8(-(43))
1048 04d4 6C5E subi r22,lo8(-(20))
265:menu.c **** { /* 以左下拉為原則顯示子菜單 */
266:menu.c **** if( (men->mmenu_no) == 0 )
1050 .LM101:
1051 04d6 7723 tst r23
1052 04d8 31F4 brne .L53
267:menu.c **** { GUI_RectangleFill(xx+1, mwin->y + 19+1, xx+SMENU_WIDTH+1, yy, Back_G );
1054 .LM102:
1055 04da 0091 0000 lds r16,Back_G
1056 04de 292F mov r18,r25
1057 04e0 8C2F mov r24,r28
1058 04e2 8F5F subi r24,lo8(-(1))
1059 04e4 16C0 rjmp .L62
1060 .L53:
268:menu.c **** }
269:menu.c **** else
270:menu.c **** { GUI_RectangleFill(xx, mwin->y + 19+1, xx+SMENU_WIDTH+1, yy, Back_G );
1062 .LM103:
1063 04e6 0091 0000 lds r16,Back_G
1064 04ea 292F mov r18,r25
1065 04ec 8C2F mov r24,r28
1066 04ee 11C0 rjmp .L62
1067 .L52:
271:menu.c **** }
272:menu.c **** GUI_HLine(xx+1, mwin->y + 19, xx+MMENU_WIDTH-1, Windows_C);
273:menu.c **** }
274:menu.c **** else
275:menu.c **** { /* 以右下拉為原則 */
276:menu.c **** if( (xx+MMENU_WIDTH) == (mwin->x + mwin->with - 1) )
1069 .LM104:
1070 04f0 7C96 adiw r30,28
1071 04f2 6C5E subi r22,lo8(-(20))
1072 04f4 3C2F mov r19,r28
1073 04f6 3E50 subi r19,lo8(-(-14))
1074 04f8 E417 cp r30,r20
1075 04fa F507 cpc r31,r21
1076 04fc 19F4 brne .L56
277:menu.c **** { GUI_RectangleFill(xx-(SMENU_WIDTH-MMENU_WIDTH), mwin->y + 19+1, xx+MMENU_WIDTH, yy, Back_G
1078 .LM105:
1079 04fe 8C2F mov r24,r28
1080 0500 845E subi r24,lo8(-(28))
1081 0502 02C0 rjmp .L59
1082 .L56:
278:menu.c **** }
279:menu.c **** else
280:menu.c **** { GUI_RectangleFill(xx-(SMENU_WIDTH-MMENU_WIDTH), mwin->y + 19+1, xx+MMENU_WIDTH+1, yy, Back
1084 .LM106:
1085 0504 8C2F mov r24,r28
1086 0506 835E subi r24,lo8(-(29))
1087 .L59:
1088 0508 0091 0000 lds r16,Back_G
1089 050c 292F mov r18,r25
1090 050e 482F mov r20,r24
1091 0510 832F mov r24,r19
1092 .L62:
1093 0512 0E94 0000 call GUI_RectangleFill
281:menu.c **** }
282:menu.c **** GUI_HLine(xx+1, mwin->y + 19, xx+MMENU_WIDTH-1, Windows_C);
1095 .LM107:
1096 0516 C55E subi r28,lo8(-(27))
1097 0518 F701 movw r30,r14
1098 051a 8181 ldd r24,Z+1
1099 051c 8D5E subi r24,lo8(-(19))
1100 051e 2091 0000 lds r18,Windows_C
1101 0522 4C2F mov r20,r28
1102 0524 682F mov r22,r24
1103 0526 8C2F mov r24,r28
1104 0528 8A51 subi r24,lo8(-(-26))
1105 052a 0E94 0000 call GUI_HLine
283:menu.c **** }
284:menu.c ****
285:menu.c **** return(1);
1107 .LM108:
1108 052e 81E0 ldi r24,lo8(1)
1109 0530 90E0 ldi r25,hi8(1)
1110 .L49:
1111 /* epilogue: frame size=0 */
1112 0532 DF91 pop r29
1113 0534 CF91 pop r28
1114 0536 0F91 pop r16
1115 0538 FF90 pop r15
1116 053a EF90 pop r14
1117 053c 0895 ret
1118 /* epilogue end (size=6) */
1119 /* function GUI_SMenuHide size 107 (96) */
1126 .Lscope6:
1127 .comm Alarm,1,1
1132 .text
1134 Letext:
1135 /* File "menu.c": code 671 = 0x029f ( 582), prologues 41, epilogues 48 */
DEFINED SYMBOLS
*ABS*:00000000 menu.c
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:128 .data:00000000 other_C
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:133 .data:00000001 Windows_C
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:140 .bss:00000000 Back_G
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:146 .text:00000000 GUI_ExchangeColor
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:174 .text:00000012 GUI_MMenuDraw
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:313 .text:000000c8 GUI_MMenuSelect
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:403 .text:00000136 GUI_MMenuNSelect
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:477 .text:0000018c GUI_SMenuDraw
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:773 .text:00000346 GUI_SMenuSelect
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:971 .text:00000468 GUI_SMenuHide
*COM*:00000001 Alarm
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccu4aaaa.s:1134 .text:0000053e Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
GUI_HLine
GUI_PutNoStr
GUI_RLine
GUI_Rectangle
GUI_RectangleFill
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -