📄 calendar.txt
字号:
;;;634 LCD_DisplayStringLine(Line0, MonthNames[nMonth - 1]);
00003a 4981 LDR r1,|L4.576|
00003c eb06eb06 ADD r0,r6,r6,LSL #2
000040 310c ADDS r1,r1,#0xc
000042 eb01eb01 ADD r1,r1,r0,LSL #2
000046 3914 SUBS r1,r1,#0x14
000048 2000 MOVS r0,#0
00004a f7fff7ff BL LCD_DisplayStringLine
;;;635
;;;636
;;;637 LCD_DisplayChar(Line0, 95, ((nYear/1000)+ 0x30));
00004e f44ff44f MOV r7,#0x3e8
000052 fbb9fbb9 UDIV r4,r9,r7
000056 f104f104 ADD r0,r4,#0x30
00005a b2c2 UXTB r2,r0
00005c 215f MOVS r1,#0x5f
00005e 2000 MOVS r0,#0
000060 f7fff7ff BL LCD_DisplayChar
;;;638 LCD_DisplayChar(Line0, 79, (((nYear%1000)/100)+ 0x30));
000064 fb07fb07 MLS r7,r7,r4,r9
000068 f04ff04f MOV r8,#0x64
00006c fbb7fbb7 UDIV r4,r7,r8
000070 f104f104 ADD r0,r4,#0x30
000074 b2c2 UXTB r2,r0
000076 214f MOVS r1,#0x4f
000078 2000 MOVS r0,#0
00007a f7fff7ff BL LCD_DisplayChar
;;;639 LCD_DisplayChar(Line0, 63, ((((nYear%1000)%100)/10)+ 0x30));
00007e fb08fb08 MLS r7,r8,r4,r7
000082 240a MOVS r4,#0xa
000084 fbb7fbb7 UDIV r10,r7,r4
000088 f10af10a ADD r2,r10,#0x30
00008c 213f MOVS r1,#0x3f
00008e 2000 MOVS r0,#0
000090 f7fff7ff BL LCD_DisplayChar
;;;640 LCD_DisplayChar(Line0, 47, ((((nYear%1000)%100)%10)+ 0x30));
000094 fb04fb04 MLS r2,r4,r10,r7
000098 3230 ADDS r2,r2,#0x30
00009a 212f MOVS r1,#0x2f
00009c 2000 MOVS r0,#0
00009e f7fff7ff BL LCD_DisplayChar
;;;641
;;;642 WeekDayNum(nYear, nMonth, nDay);
0000a2 4631 MOV r1,r6
0000a4 4648 MOV r0,r9
0000a6 9a02 LDR r2,[sp,#8]
0000a8 f7fff7ff BL WeekDayNum
;;;643
;;;644 LCD_SetTextColor(White);
0000ac f64ff64f MOV r10,#0xffff
0000b0 4650 MOV r0,r10
0000b2 f7fff7ff BL LCD_SetTextColor
;;;645 LCD_DisplayStringLine(Line1, " WEEK DAY N: ");
0000b6 a163 ADR r1,|L4.580|
0000b8 2018 MOVS r0,#0x18
0000ba f7fff7ff BL LCD_DisplayStringLine
;;;646 if(wn/10)
0000be 4f60 LDR r7,|L4.576|
0000c0 3f20 SUBS r7,r7,#0x20
0000c2 6878 LDR r0,[r7,#4] ; wn
0000c4 280a CMP r0,#0xa
0000c6 d30f BCC |L4.232|
;;;647 {
;;;648 LCD_DisplayChar(Line1, 223, ((wn/10)+ 0x30));
0000c8 fbb0fbb0 UDIV r0,r0,r4
0000cc 3030 ADDS r0,r0,#0x30
0000ce b2c2 UXTB r2,r0
0000d0 21df MOVS r1,#0xdf
0000d2 2018 MOVS r0,#0x18
0000d4 f7fff7ff BL LCD_DisplayChar
;;;649 LCD_DisplayChar(Line1, 207, ((wn%10)+ 0x30));
0000d8 6878 LDR r0,[r7,#4] ; wn
0000da fbb0fbb0 UDIV r1,r0,r4
0000de fb04fb04 MLS r2,r4,r1,r0
0000e2 3230 ADDS r2,r2,#0x30
0000e4 21cf MOVS r1,#0xcf
0000e6 e005 B |L4.244|
|L4.232|
;;;650 }
;;;651 else
;;;652 {
;;;653 LCD_DisplayChar(Line1, 223, ((wn%10)+ 0x30));
0000e8 fbb0fbb0 UDIV r1,r0,r4
0000ec fb04fb04 MLS r2,r4,r1,r0
0000f0 3230 ADDS r2,r2,#0x30
0000f2 21df MOVS r1,#0xdf
|L4.244|
0000f4 2018 MOVS r0,#0x18
0000f6 f7fff7ff BL LCD_DisplayChar
;;;654 }
;;;655 if(dc/100)
0000fa 68f8 LDR r0,[r7,#0xc] ; dc
0000fc 2864 CMP r0,#0x64
0000fe d31f BCC |L4.320|
;;;656 {
;;;657 LCD_DisplayChar(Line1, 47, ((dc/100)+ 0x30));
000100 fbb0fbb0 UDIV r0,r0,r8
000104 3030 ADDS r0,r0,#0x30
000106 b2c2 UXTB r2,r0
000108 212f MOVS r1,#0x2f
00010a 2018 MOVS r0,#0x18
00010c f7fff7ff BL LCD_DisplayChar
;;;658 LCD_DisplayChar(Line1, 31, (((dc%100)/10)+ 0x30));
000110 68f8 LDR r0,[r7,#0xc] ; dc
000112 fbb0fbb0 UDIV r1,r0,r8
000116 fb08fb08 MLS r0,r8,r1,r0
00011a fbb0fbb0 UDIV r2,r0,r4
00011e 3230 ADDS r2,r2,#0x30
000120 211f MOVS r1,#0x1f
000122 2018 MOVS r0,#0x18
000124 f7fff7ff BL LCD_DisplayChar
;;;659 LCD_DisplayChar(Line1, 15, (((dc%100)%10)+ 0x30));
000128 68f8 LDR r0,[r7,#0xc] ; dc
00012a fbb0fbb0 UDIV r1,r0,r8
00012e fb08fb08 MLS r0,r8,r1,r0
000132 fbb0fbb0 UDIV r1,r0,r4
000136 fb04fb04 MLS r2,r4,r1,r0
00013a 3230 ADDS r2,r2,#0x30
00013c 210f MOVS r1,#0xf
00013e e017 B |L4.368|
|L4.320|
;;;660 }
;;;661 else if(dc/10)
000140 280a CMP r0,#0xa
000142 d30f BCC |L4.356|
;;;662 {
;;;663 LCD_DisplayChar(Line1, 47, ((dc/10)+ 0x30));
000144 fbb0fbb0 UDIV r0,r0,r4
000148 3030 ADDS r0,r0,#0x30
00014a b2c2 UXTB r2,r0
00014c 212f MOVS r1,#0x2f
00014e 2018 MOVS r0,#0x18
000150 f7fff7ff BL LCD_DisplayChar
;;;664 LCD_DisplayChar(Line1, 31, ((dc%10)+ 0x30));
000154 68f8 LDR r0,[r7,#0xc] ; dc
000156 fbb0fbb0 UDIV r1,r0,r4
00015a fb04fb04 MLS r2,r4,r1,r0
00015e 3230 ADDS r2,r2,#0x30
000160 211f MOVS r1,#0x1f
000162 e005 B |L4.368|
|L4.356|
;;;665 }
;;;666 else
;;;667 {
;;;668 LCD_DisplayChar(Line1, 47, ((dc%10)+ 0x30));
000164 fbb0fbb0 UDIV r1,r0,r4
000168 fb04fb04 MLS r2,r4,r1,r0
00016c 3230 ADDS r2,r2,#0x30
00016e 212f MOVS r1,#0x2f
|L4.368|
000170 2018 MOVS r0,#0x18 ;664
000172 f7fff7ff BL LCD_DisplayChar
;;;669 }
;;;670
;;;671 /* Set the Back Color */
;;;672 LCD_SetBackColor(Red);
000176 f44ff44f MOV r0,#0xf800
00017a f7fff7ff BL LCD_SetBackColor
;;;673 LCD_SetTextColor(White);
00017e 4650 MOV r0,r10
000180 f7fff7ff BL LCD_SetTextColor
;;;674 LCD_DisplayStringLine(Line2, "Mo Tu We Th Fr Sa Su");
000184 a135 ADR r1,|L4.604|
000186 2030 MOVS r0,#0x30
000188 f7fff7ff BL LCD_DisplayStringLine
;;;675 LCD_SetBackColor(White);
00018c 4650 MOV r0,r10
00018e f7fff7ff BL LCD_SetBackColor
;;;676 LCD_SetTextColor(Blue2);
000192 f240f240 MOV r0,#0x51f
000196 f7fff7ff BL LCD_SetTextColor
;;;677
;;;678 /* Determines the week number, day of the week of the selected date */
;;;679 WeekDayNum(nYear, nMonth, 1);
00019a 2201 MOVS r2,#1
00019c 4631 MOV r1,r6
00019e 4648 MOV r0,r9
0001a0 f7fff7ff BL WeekDayNum
;;;680
;;;681 mline = Line3;
;;;682 mcolumn = 0x13F - (0x30 * dn);
0001a4 68b8 LDR r0,[r7,#8] ; dn
0001a6 f04ff04f MOV r9,#0x48 ;681
0001aa eba0eba0 SUB r0,r0,r0,LSL #2
0001ae eb0beb0b ADD r8,r11,r0,LSL #4
;;;683
;;;684 for(month = 1; month < monthlength; month++)
0001b2 2601 MOVS r6,#1
0001b4 e034 B |L4.544|
|L4.438|
;;;685 {
;;;686 if(month == nDay)
0001b6 9802 LDR r0,[sp,#8]
0001b8 4286 CMP r6,r0
0001ba d103 BNE |L4.452|
;;;687 {
;;;688 daycolumn = mcolumn;
0001bc f8a7f8a7 STRH r8,[r7,#0] ; daycolumn
;;;689 dayline = mline;
0001c0 f8a7f8a7 STRH r9,[r7,#2] ; dayline
|L4.452|
;;;690 }
;;;691 if(month/10)
0001c4 2e0a CMP r6,#0xa
0001c6 d304 BCC |L4.466|
;;;692 {
;;;693 LCD_DisplayChar(mline, mcolumn, ((month/10)+ 0x30));
0001c8 fbb6fbb6 UDIV r0,r6,r4
0001cc 3030 ADDS r0,r0,#0x30
0001ce b2c2 UXTB r2,r0
0001d0 e000 B |L4.468|
|L4.466|
;;;694 }
;;;695 else
;;;696 {
;;;697 LCD_DisplayChar(mline, mcolumn, ' ');
0001d2 2220 MOVS r2,#0x20
|L4.468|
0001d4 fa1ffa1f UXTH r1,r8
0001d8 f009f009 AND r0,r9,#0xff
0001dc f7fff7ff BL LCD_DisplayChar
;;;698 }
;;;699 mcolumn -= 16;
;;;700 LCD_DisplayChar(mline, mcolumn, ((month%10)+ 0x30));
0001e0 fbb6fbb6 UDIV r0,r6,r4
0001e4 fb04fb04 MLS r2,r4,r0,r6
0001e8 f1a8f1a8 SUB r10,r8,#0x10 ;699
0001ec f009f009 AND r0,r9,#0xff
0001f0 3230 ADDS r2,r2,#0x30
0001f2 fa1ffa1f UXTH r1,r10
0001f6 4680 MOV r8,r0
0001f8 f7fff7ff BL LCD_DisplayChar
;;;701
;;;702 if(mcolumn < 31)
0001fc f1baf1ba CMP r10,#0x1f
000200 d203 BCS |L4.522|
;;;703 {
;;;704 mcolumn = 319;
000202 46d8 MOV r8,r11
;;;705 mline += 24;
000204 f109f109 ADD r9,r9,#0x18
000208 e009 B |L4.542|
|L4.522|
;;;706 }
;;;707 else
;;;708 {
;;;709 mcolumn -= 16;
00020a f1aaf1aa SUB r10,r10,#0x10
;;;710 LCD_DisplayChar(mline, mcolumn, ' ');
00020e 2220 MOVS r2,#0x20
000210 fa1ffa1f UXTH r1,r10
000214 4640 MOV r0,r8
000216 f7fff7ff BL LCD_DisplayChar
;;;711 mcolumn -= 16;
00021a f1aaf1aa SUB r8,r10,#0x10
|L4.542|
00021e 1c76 ADDS r6,r6,#1 ;684
|L4.544|
000220 42ae CMP r6,r5 ;684
000222 d3c8 BCC |L4.438|
;;;712 }
;;;713 }
;;;714 LCD_SetTextColor(Red);
000224 f44ff44f MOV r0,#0xf800
000228 f7fff7ff BL LCD_SetTextColor
;;;715 LCD_DrawRect(dayline, daycolumn, 24, 32);
00022c 8878 LDRH r0,[r7,#2] ; dayline
00022e 8839 LDRH r1,[r7,#0] ; daycolumn
000230 b003 ADD sp,sp,#0xc
000232 e8bde8bd POP {r4-r11,lr}
000236 2320 MOVS r3,#0x20
000238 2218 MOVS r2,#0x18
00023a b2c0 UXTB r0,r0
00023c f7fff7ff B.W LCD_DrawRect
;;;716 }
;;;717
ENDP
|L4.576|
000240 00000020 DCD ||.data||+0x20
|L4.580|
000244 20574545 DCB " WEE"
000248 4b202020 DCB "K "
00024c 20204441 DCB " DA"
000250 59204e3a DCB "Y N:"
000254 20202020 DCB " "
000258 00000000 DCB "\0\0\0\0"
|L4.604|
00025c 4d6f2054 DCB "Mo T"
000260 75205765 DCB "u We"
000264 20546820 DCB " Th "
000268 46722053 DCB "Fr S"
00026c 61205375 DCB "a Su"
000270 00000000 DCB "\0\0\0\0"
AREA ||i.Date_Update||, CODE, READONLY, ALIGN=2
Date_Update PROC
;;;1063 void Date_Update(void)
;;;1064 {
000000 e92de92d PUSH {r4-r8,lr}
;;;1065 u32 tmp = 0;
;;;1066
;;;1067 if(date_s.month == 1 || date_s.month == 3 || date_s.month == 5 || date_s.month == 7 ||
000004 4e28 LDR r6,|L5.168|
000006 2401 MOVS r4,#1
000008 4637 MOV r7,r6
00000a 787a LDRB r2,[r7,#1]
00000c 7831 LDRB r1,[r6,#0] ; date_s
00000e 1c50 ADDS r0,r2,#1
000010 b2c3 UXTB r3,r0
000012 1c48 ADDS r0,r1,#1
000014 b2c5 UXTB r5,r0
000016 8878 LDRH r0,[r7,#2]
000018 2901 CMP r1,#1
00001a d00b BEQ |L5.52|
00001c 2903 CMP r1,#3
00001e d009 BEQ |L5.52|
000020 2905 CMP r1,#5
000022 d007 BEQ |L5.52|
000024 2907 CMP r1,#7
000026 d005 BEQ |L5.52|
;;;1068 date_s.month == 8 || date_s.month == 10 || date_s.month == 12)
000028 2908 CMP r1,#8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -