📄 calendar.txt
字号:
;;;642
;;;643 LCD_DisplayStringLine(Line0, MonthNames[nMonth - 1]);
00003a 4981 LDR r1,|L4.576|
00003c eb060086 ADD r0,r6,r6,LSL #2
000040 310c ADDS r1,r1,#0xc
000042 eb010180 ADD r1,r1,r0,LSL #2
000046 3914 SUBS r1,r1,#0x14
000048 2000 MOVS r0,#0
00004a f7fffffe BL LCD_DisplayStringLine
;;;644
;;;645
;;;646 LCD_DisplayChar(Line0, 95, ((nYear/1000)+ 0x30));
00004e f44f777a MOV r7,#0x3e8
000052 fbb9f4f7 UDIV r4,r9,r7
000056 f1040030 ADD r0,r4,#0x30
00005a b2c2 UXTB r2,r0
00005c 215f MOVS r1,#0x5f
00005e 2000 MOVS r0,#0
000060 f7fffffe BL LCD_DisplayChar
;;;647 LCD_DisplayChar(Line0, 79, (((nYear%1000)/100)+ 0x30));
000064 fb079714 MLS r7,r7,r4,r9
000068 f04f0864 MOV r8,#0x64
00006c fbb7f4f8 UDIV r4,r7,r8
000070 f1040030 ADD r0,r4,#0x30
000074 b2c2 UXTB r2,r0
000076 214f MOVS r1,#0x4f
000078 2000 MOVS r0,#0
00007a f7fffffe BL LCD_DisplayChar
;;;648 LCD_DisplayChar(Line0, 63, ((((nYear%1000)%100)/10)+ 0x30));
00007e fb087714 MLS r7,r8,r4,r7
000082 240a MOVS r4,#0xa
000084 fbb7faf4 UDIV r10,r7,r4
000088 f10a0230 ADD r2,r10,#0x30
00008c 213f MOVS r1,#0x3f
00008e 2000 MOVS r0,#0
000090 f7fffffe BL LCD_DisplayChar
;;;649 LCD_DisplayChar(Line0, 47, ((((nYear%1000)%100)%10)+ 0x30));
000094 fb04721a MLS r2,r4,r10,r7
000098 3230 ADDS r2,r2,#0x30
00009a 212f MOVS r1,#0x2f
00009c 2000 MOVS r0,#0
00009e f7fffffe BL LCD_DisplayChar
;;;650
;;;651 WeekDayNum(nYear, nMonth, nDay);
0000a2 4631 MOV r1,r6
0000a4 4648 MOV r0,r9
0000a6 9a02 LDR r2,[sp,#8]
0000a8 f7fffffe BL WeekDayNum
;;;652
;;;653 LCD_SetTextColor(White);
0000ac f64f7aff MOV r10,#0xffff
0000b0 4650 MOV r0,r10
0000b2 f7fffffe BL LCD_SetTextColor
;;;654 LCD_DisplayStringLine(Line1, " WEEK DAY N: ");
0000b6 a163 ADR r1,|L4.580|
0000b8 2018 MOVS r0,#0x18
0000ba f7fffffe BL LCD_DisplayStringLine
;;;655 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|
;;;656 {
;;;657 LCD_DisplayChar(Line1, 223, ((wn/10)+ 0x30));
0000c8 fbb0f0f4 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 f7fffffe BL LCD_DisplayChar
;;;658 LCD_DisplayChar(Line1, 207, ((wn%10)+ 0x30));
0000d8 6878 LDR r0,[r7,#4] ; wn
0000da fbb0f1f4 UDIV r1,r0,r4
0000de fb040211 MLS r2,r4,r1,r0
0000e2 3230 ADDS r2,r2,#0x30
0000e4 21cf MOVS r1,#0xcf
0000e6 e005 B |L4.244|
|L4.232|
;;;659 }
;;;660 else
;;;661 {
;;;662 LCD_DisplayChar(Line1, 223, ((wn%10)+ 0x30));
0000e8 fbb0f1f4 UDIV r1,r0,r4
0000ec fb040211 MLS r2,r4,r1,r0
0000f0 3230 ADDS r2,r2,#0x30
0000f2 21df MOVS r1,#0xdf
|L4.244|
0000f4 2018 MOVS r0,#0x18
0000f6 f7fffffe BL LCD_DisplayChar
;;;663 }
;;;664 if(dc/100)
0000fa 68f8 LDR r0,[r7,#0xc] ; dc
0000fc 2864 CMP r0,#0x64
0000fe d31f BCC |L4.320|
;;;665 {
;;;666 LCD_DisplayChar(Line1, 47, ((dc/100)+ 0x30));
000100 fbb0f0f8 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 f7fffffe BL LCD_DisplayChar
;;;667 LCD_DisplayChar(Line1, 31, (((dc%100)/10)+ 0x30));
000110 68f8 LDR r0,[r7,#0xc] ; dc
000112 fbb0f1f8 UDIV r1,r0,r8
000116 fb080011 MLS r0,r8,r1,r0
00011a fbb0f2f4 UDIV r2,r0,r4
00011e 3230 ADDS r2,r2,#0x30
000120 211f MOVS r1,#0x1f
000122 2018 MOVS r0,#0x18
000124 f7fffffe BL LCD_DisplayChar
;;;668 LCD_DisplayChar(Line1, 15, (((dc%100)%10)+ 0x30));
000128 68f8 LDR r0,[r7,#0xc] ; dc
00012a fbb0f1f8 UDIV r1,r0,r8
00012e fb080011 MLS r0,r8,r1,r0
000132 fbb0f1f4 UDIV r1,r0,r4
000136 fb040211 MLS r2,r4,r1,r0
00013a 3230 ADDS r2,r2,#0x30
00013c 210f MOVS r1,#0xf
00013e e017 B |L4.368|
|L4.320|
;;;669 }
;;;670 else if(dc/10)
000140 280a CMP r0,#0xa
000142 d30f BCC |L4.356|
;;;671 {
;;;672 LCD_DisplayChar(Line1, 47, ((dc/10)+ 0x30));
000144 fbb0f0f4 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 f7fffffe BL LCD_DisplayChar
;;;673 LCD_DisplayChar(Line1, 31, ((dc%10)+ 0x30));
000154 68f8 LDR r0,[r7,#0xc] ; dc
000156 fbb0f1f4 UDIV r1,r0,r4
00015a fb040211 MLS r2,r4,r1,r0
00015e 3230 ADDS r2,r2,#0x30
000160 211f MOVS r1,#0x1f
000162 e005 B |L4.368|
|L4.356|
;;;674 }
;;;675 else
;;;676 {
;;;677 LCD_DisplayChar(Line1, 47, ((dc%10)+ 0x30));
000164 fbb0f1f4 UDIV r1,r0,r4
000168 fb040211 MLS r2,r4,r1,r0
00016c 3230 ADDS r2,r2,#0x30
00016e 212f MOVS r1,#0x2f
|L4.368|
000170 2018 MOVS r0,#0x18 ;673
000172 f7fffffe BL LCD_DisplayChar
;;;678 }
;;;679
;;;680 /* Set the Back Color */
;;;681 LCD_SetBackColor(Red);
000176 f44f4078 MOV r0,#0xf800
00017a f7fffffe BL LCD_SetBackColor
;;;682 LCD_SetTextColor(White);
00017e 4650 MOV r0,r10
000180 f7fffffe BL LCD_SetTextColor
;;;683 LCD_DisplayStringLine(Line2, "Mo Tu We Th Fr Sa Su");
000184 a135 ADR r1,|L4.604|
000186 2030 MOVS r0,#0x30
000188 f7fffffe BL LCD_DisplayStringLine
;;;684 LCD_SetBackColor(White);
00018c 4650 MOV r0,r10
00018e f7fffffe BL LCD_SetBackColor
;;;685 LCD_SetTextColor(Blue2);
000192 f240501f MOV r0,#0x51f
000196 f7fffffe BL LCD_SetTextColor
;;;686
;;;687 /* Determines the week number, day of the week of the selected date */
;;;688 WeekDayNum(nYear, nMonth, 1);
00019a 2201 MOVS r2,#1
00019c 4631 MOV r1,r6
00019e 4648 MOV r0,r9
0001a0 f7fffffe BL WeekDayNum
;;;689
;;;690 mline = Line3;
;;;691 mcolumn = 0x13F - (0x30 * dn);
0001a4 68b8 LDR r0,[r7,#8] ; dn
0001a6 f04f0948 MOV r9,#0x48 ;690
0001aa eba00080 SUB r0,r0,r0,LSL #2
0001ae eb0b1800 ADD r8,r11,r0,LSL #4
;;;692
;;;693 for(month = 1; month < monthlength; month++)
0001b2 2601 MOVS r6,#1
0001b4 e034 B |L4.544|
|L4.438|
;;;694 {
;;;695 if(month == nDay)
0001b6 9802 LDR r0,[sp,#8]
0001b8 4286 CMP r6,r0
0001ba d103 BNE |L4.452|
;;;696 {
;;;697 daycolumn = mcolumn;
0001bc f8a78000 STRH r8,[r7,#0] ; daycolumn
;;;698 dayline = mline;
0001c0 f8a79002 STRH r9,[r7,#2] ; dayline
|L4.452|
;;;699 }
;;;700 if(month/10)
0001c4 2e0a CMP r6,#0xa
0001c6 d304 BCC |L4.466|
;;;701 {
;;;702 LCD_DisplayChar(mline, mcolumn, ((month/10)+ 0x30));
0001c8 fbb6f0f4 UDIV r0,r6,r4
0001cc 3030 ADDS r0,r0,#0x30
0001ce b2c2 UXTB r2,r0
0001d0 e000 B |L4.468|
|L4.466|
;;;703 }
;;;704 else
;;;705 {
;;;706 LCD_DisplayChar(mline, mcolumn, ' ');
0001d2 2220 MOVS r2,#0x20
|L4.468|
0001d4 fa1ff188 UXTH r1,r8
0001d8 f00900ff AND r0,r9,#0xff
0001dc f7fffffe BL LCD_DisplayChar
;;;707 }
;;;708 mcolumn -= 16;
;;;709 LCD_DisplayChar(mline, mcolumn, ((month%10)+ 0x30));
0001e0 fbb6f0f4 UDIV r0,r6,r4
0001e4 fb046210 MLS r2,r4,r0,r6
0001e8 f1a80a10 SUB r10,r8,#0x10 ;708
0001ec f00900ff AND r0,r9,#0xff
0001f0 3230 ADDS r2,r2,#0x30
0001f2 fa1ff18a UXTH r1,r10
0001f6 4680 MOV r8,r0
0001f8 f7fffffe BL LCD_DisplayChar
;;;710
;;;711 if(mcolumn < 31)
0001fc f1ba0f1f CMP r10,#0x1f
000200 d203 BCS |L4.522|
;;;712 {
;;;713 mcolumn = 319;
000202 46d8 MOV r8,r11
;;;714 mline += 24;
000204 f1090918 ADD r9,r9,#0x18
000208 e009 B |L4.542|
|L4.522|
;;;715 }
;;;716 else
;;;717 {
;;;718 mcolumn -= 16;
00020a f1aa0a10 SUB r10,r10,#0x10
;;;719 LCD_DisplayChar(mline, mcolumn, ' ');
00020e 2220 MOVS r2,#0x20
000210 fa1ff18a UXTH r1,r10
000214 4640 MOV r0,r8
000216 f7fffffe BL LCD_DisplayChar
;;;720 mcolumn -= 16;
00021a f1aa0810 SUB r8,r10,#0x10
|L4.542|
00021e 1c76 ADDS r6,r6,#1 ;693
|L4.544|
000220 42ae CMP r6,r5 ;693
000222 d3c8 BCC |L4.438|
;;;721 }
;;;722 }
;;;723 LCD_SetTextColor(Red);
000224 f44f4078 MOV r0,#0xf800
000228 f7fffffe BL LCD_SetTextColor
;;;724 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 e8bd4ff0 POP {r4-r11,lr}
000236 2320 MOVS r3,#0x20
000238 2218 MOVS r2,#0x18
00023a b2c0 UXTB r0,r0
00023c f7ffbffe B.W LCD_DrawRect
;;;725 }
;;;726
ENDP
|L4.576|
000240 00000020 DCD ||.data||+0x20
|L4.580|
000244 205745454b2020202020444159204e3a2020202000 DCB " WEEK DAY N: ",0
000259 00 DCB 0
00025a 00 DCB 0
00025b 00 DCB 0
|L4.604|
00025c 4d6f20547520576520546820467220536120537500 DCB "Mo Tu We Th Fr Sa Su",0
000271 00 DCB 0
000272 00 DCB 0
000273 00 DCB 0
AREA ||i.Date_Update||, CODE, READONLY, ALIGN=2
Date_Update PROC
;;;1072 void Date_Update(void)
;;;1073 {
000000 e92d41f0 PUSH {r4-r8,lr}
;;;1074 u32 tmp = 0;
;;;1075
;;;1076 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|
;;;1077 date_s.month == 8 || date_s.month == 10 || date_s.month == 12)
000028 2908 CMP r1,#8
00002a d003 BEQ |L5.52|
00002c 290a CMP r1,#0xa
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -