📄 main.ls
字号:
4575 0323 02 rlwa x,a
4576 0324 f6 ld a,(x)
4577 0325 ad9c call _sendDataST7920
4579 ; 71 for(addr=32;addr<48;addr++)
4581 0327 0c01 inc (OFST+0,sp)
4584 0329 7b01 ld a,(OFST+0,sp)
4585 032b a130 cp a,#48
4586 032d 25ea jrult L5262
4587 ; 75 for(addr=16;addr<32;addr++)
4589 032f a610 ld a,#16
4590 0331 6b01 ld (OFST+0,sp),a
4591 0333 L3362:
4592 ; 77 sendDataST7920(*(lcd_stack + addr));
4594 0333 7b02 ld a,(OFST+1,sp)
4595 0335 97 ld xl,a
4596 0336 7b03 ld a,(OFST+2,sp)
4597 0338 1b01 add a,(OFST+0,sp)
4598 033a 2401 jrnc L06
4599 033c 5c incw x
4600 033d L06:
4601 033d 02 rlwa x,a
4602 033e f6 ld a,(x)
4603 033f ad82 call _sendDataST7920
4605 ; 75 for(addr=16;addr<32;addr++)
4607 0341 0c01 inc (OFST+0,sp)
4610 0343 7b01 ld a,(OFST+0,sp)
4611 0345 a120 cp a,#32
4612 0347 25ea jrult L3362
4613 ; 80 for(addr=48;addr<64;addr++)
4615 0349 a630 ld a,#48
4616 034b 6b01 ld (OFST+0,sp),a
4617 034d L1462:
4618 ; 82 sendDataST7920(*(lcd_stack + addr));
4620 034d 7b02 ld a,(OFST+1,sp)
4621 034f 97 ld xl,a
4622 0350 7b03 ld a,(OFST+2,sp)
4623 0352 1b01 add a,(OFST+0,sp)
4624 0354 2401 jrnc L26
4625 0356 5c incw x
4626 0357 L26:
4627 0357 02 rlwa x,a
4628 0358 f6 ld a,(x)
4629 0359 cd02c3 call _sendDataST7920
4631 ; 80 for(addr=48;addr<64;addr++)
4633 035c 0c01 inc (OFST+0,sp)
4636 035e 7b01 ld a,(OFST+0,sp)
4637 0360 a140 cp a,#64
4638 0362 25e9 jrult L1462
4639 ; 84 }
4642 0364 5b03 addw sp,#3
4643 0366 81 ret
4696 ; 86 void decToAscii(u8* str,u16 dec,u8 width)
4696 ; 87 {
4697 switch .text
4698 0367 _decToAscii:
4700 0367 89 pushw x
4701 00000000 OFST: set 0
4704 0368 ac070407 jpf L3172
4705 036c L1172:
4706 ; 90 switch(width)
4708 036c 7b07 ld a,(OFST+7,sp)
4710 ; 121 default: *str = '0';
4711 036e 4a dec a
4712 036f 2603cc03f7 jreq L7562
4713 0374 4a dec a
4714 0375 2764 jreq L5562
4715 0377 4a dec a
4716 0378 2745 jreq L3562
4717 037a 4a dec a
4718 037b 2726 jreq L1562
4719 037d 4a dec a
4720 037e 2707 jreq L7462
4721 0380 L1662:
4724 0380 1e01 ldw x,(OFST+1,sp)
4725 0382 a630 ld a,#48
4726 0384 f7 ld (x),a
4727 0385 2077 jra L1272
4728 0387 L7462:
4729 ; 94 *str = (dec / 10000 + '0');
4731 0387 1e05 ldw x,(OFST+5,sp)
4732 0389 90ae2710 ldw y,#10000
4733 038d 65 divw x,y
4734 038e 1c0030 addw x,#48
4735 0391 1601 ldw y,(OFST+1,sp)
4736 0393 01 rrwa x,a
4737 0394 90f7 ld (y),a
4738 0396 02 rlwa x,a
4739 ; 95 dec %= 10000;
4741 0397 1e05 ldw x,(OFST+5,sp)
4742 0399 90ae2710 ldw y,#10000
4743 039d 65 divw x,y
4744 039e 51 exgw x,y
4745 039f 1f05 ldw (OFST+5,sp),x
4746 ; 96 break;
4748 03a1 205b jra L1272
4749 03a3 L1562:
4750 ; 100 *str = (dec / 1000 + '0');
4752 03a3 1e05 ldw x,(OFST+5,sp)
4753 03a5 90ae03e8 ldw y,#1000
4754 03a9 65 divw x,y
4755 03aa 1c0030 addw x,#48
4756 03ad 1601 ldw y,(OFST+1,sp)
4757 03af 01 rrwa x,a
4758 03b0 90f7 ld (y),a
4759 03b2 02 rlwa x,a
4760 ; 101 dec %= 1000;
4762 03b3 1e05 ldw x,(OFST+5,sp)
4763 03b5 90ae03e8 ldw y,#1000
4764 03b9 65 divw x,y
4765 03ba 51 exgw x,y
4766 03bb 1f05 ldw (OFST+5,sp),x
4767 ; 102 break;
4769 03bd 203f jra L1272
4770 03bf L3562:
4771 ; 106 *str = (dec/100+'0');
4773 03bf 1e05 ldw x,(OFST+5,sp)
4774 03c1 90ae0064 ldw y,#100
4775 03c5 65 divw x,y
4776 03c6 1c0030 addw x,#48
4777 03c9 1601 ldw y,(OFST+1,sp)
4778 03cb 01 rrwa x,a
4779 03cc 90f7 ld (y),a
4780 03ce 02 rlwa x,a
4781 ; 107 dec %= 100;
4783 03cf 1e05 ldw x,(OFST+5,sp)
4784 03d1 90ae0064 ldw y,#100
4785 03d5 65 divw x,y
4786 03d6 51 exgw x,y
4787 03d7 1f05 ldw (OFST+5,sp),x
4788 ; 108 break;
4790 03d9 2023 jra L1272
4791 03db L5562:
4792 ; 112 *str = (dec/10+'0');
4794 03db 1e05 ldw x,(OFST+5,sp)
4795 03dd 90ae000a ldw y,#10
4796 03e1 65 divw x,y
4797 03e2 1c0030 addw x,#48
4798 03e5 1601 ldw y,(OFST+1,sp)
4799 03e7 01 rrwa x,a
4800 03e8 90f7 ld (y),a
4801 03ea 02 rlwa x,a
4802 ; 113 dec %= 10;
4804 03eb 1e05 ldw x,(OFST+5,sp)
4805 03ed 90ae000a ldw y,#10
4806 03f1 65 divw x,y
4807 03f2 51 exgw x,y
4808 03f3 1f05 ldw (OFST+5,sp),x
4809 ; 114 break;
4811 03f5 2007 jra L1272
4812 03f7 L7562:
4813 ; 118 *str = (dec+'0');
4815 03f7 7b06 ld a,(OFST+6,sp)
4816 03f9 ab30 add a,#48
4817 03fb 1e01 ldw x,(OFST+1,sp)
4818 03fd f7 ld (x),a
4819 ; 119 break;
4821 03fe L1272:
4822 ; 123 width--;
4824 03fe 0a07 dec (OFST+7,sp)
4825 ; 124 str++;
4827 0400 1e01 ldw x,(OFST+1,sp)
4828 0402 1c0001 addw x,#1
4829 0405 1f01 ldw (OFST+1,sp),x
4830 0407 L3172:
4831 ; 88 while(width)
4833 0407 0d07 tnz (OFST+7,sp)
4834 0409 2703 jreq L07
4835 040b cc036c jp L1172
4836 040e L07:
4837 ; 126 }
4840 040e 85 popw x
4841 040f 81 ret
4903 ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4903 ; 129 {
4904 switch .text
4905 0410 _hexToAscii:
4907 0410 89 pushw x
4908 0411 89 pushw x
4909 00000002 OFST: set 2
4912 0412 accc04cc jpf L1772
4913 0416 L7672:
4914 ; 133 switch(width)
4916 0416 7b09 ld a,(OFST+7,sp)
4918 ; 163 default: *str = '0';
4919 0418 4a dec a
4920 0419 2603 jrne L67
4921 041b cc04a0 jp L1372
4922 041e L67:
4923 041e 4a dec a
4924 041f 2758 jreq L7272
4925 0421 4a dec a
4926 0422 2730 jreq L5272
4927 0424 4a dec a
4928 0425 2709 jreq L3272
4929 0427 L3372:
4932 0427 1e03 ldw x,(OFST+1,sp)
4933 0429 a630 ld a,#48
4934 042b f7 ld (x),a
4935 042c acc304c3 jpf L7772
4936 0430 L3272:
4937 ; 137 tmp = (hex >> 12);
4939 0430 1e07 ldw x,(OFST+5,sp)
4940 0432 01 rrwa x,a
4941 0433 4f clr a
4942 0434 41 exg a,xl
4943 0435 4e swap a
4944 0436 a40f and a,#15
4945 0438 02 rlwa x,a
4946 0439 1f01 ldw (OFST-1,sp),x
4947 ; 138 if(tmp > 9) *str = tmp + ('A' - 10);
4949 043b 1e01 ldw x,(OFST-1,sp)
4950 043d a3000a cpw x,#10
4951 0440 2509 jrult L1003
4954 0442 7b02 ld a,(OFST+0,sp)
4955 0444 ab37 add a,#55
4956 0446 1e03 ldw x,(OFST+1,sp)
4957 0448 f7 ld (x),a
4959 0449 2078 jra L7772
4960 044b L1003:
4961 ; 139 else *str = tmp + '0';
4963 044b 7b02 ld a,(OFST+0,sp)
4964 044d ab30 add a,#48
4965 044f 1e03 ldw x,(OFST+1,sp)
4966 0451 f7 ld (x),a
4967 0452 206f jra L7772
4968 0454 L5272:
4969 ; 144 tmp = (hex >> 8) & 0x000F;
4971 0454 1e07 ldw x,(OFST+5,sp)
4972 0456 4f clr a
4973 0457 01 rrwa x,a
4974 0458 01 rrwa x,a
4975 0459 a40f and a,#15
4976 045b 5f clrw x
4977 045c 02 rlwa x,a
4978 045d 1f01 ldw (OFST-1,sp),x
4979 045f 01 rrwa x,a
4980 ; 145 if(tmp > 9) *str = tmp + ('A' - 10);
4982 0460 1e01 ldw x,(OFST-1,sp)
4983 0462 a3000a cpw x,#10
4984 0465 2509 jrult L5003
4987 0467 7b02 ld a,(OFST+0,sp)
4988 0469 ab37 add a,#55
4989 046b 1e03 ldw x,(OFST+1,sp)
4990 046d f7 ld (x),a
4992 046e 2053 jra L7772
4993 0470 L5003:
4994 ; 146 else *str = tmp + '0';
4996 0470 7b02 ld a,(OFST+0,sp)
4997 0472 ab30 add a,#48
4998 0474 1e03 ldw x,(OFST+1,sp)
4999 0476 f7 ld (x),a
5000 0477 204a jra L7772
5001 0479 L7272:
5002 ; 151 tmp = (hex >> 4) & 0x000F;
5004 0479 1e07 ldw x,(OFST+5,sp)
5005 047b 54 srlw x
5006 047c 54 srlw x
5007 047d 54 srlw x
5008 047e 54 srlw x
5009 047f 01 rrwa x,a
5010 0480 a40f and a,#15
5011 0482 5f clrw x
5012 0483 5f clrw x
5013 0484 97 ld xl,a
5014 0485 1f01 ldw (OFST-1,sp),x
5015 ; 152 if(tmp > 9) *str = tmp + ('A' - 10);
5017 0487 1e01 ldw x,(OFST-1,sp)
5018 0489 a3000a cpw x,#10
5019 048c 2509 jrult L1103
5022 048e 7b02 ld a,(OFST+0,sp)
5023 0490 ab37 add a,#55
5024 0492 1e03 ldw x,(OFST+1,sp)
5025 0494 f7 ld (x),a
5027 0495 202c jra L7772
5028 0497 L1103:
5029 ; 153 else *str = tmp + '0';
5031 0497 7b02 ld a,(OFST+0,sp)
5032 0499 ab30 add a,#48
5033 049b 1e03 ldw x,(OFST+1,sp)
5034 049d f7 ld (x),a
5035 049e 2023 jra L7772
5036 04a0 L1372:
5037 ; 158 tmp = hex & 0x000F;
5039 04a0 7b07 ld a,(OFST+5,sp)
5040 04a2 97 ld xl,a
5041 04a3 7b08 ld a,(OFST+6,sp)
5042 04a5 a40f and a,#15
5043 04a7 5f clrw x
5044 04a8 02 rlwa x,a
5045 04a9 1f01 ldw (OFST-1,sp),x
5046 04ab 01 rrwa x,a
5047 ; 159 if(tmp > 9) *str = tmp + ('A' - 10);
5049 04ac 1e01 ldw x,(OFST-1,sp)
5050 04ae a3000a cpw x,#10
5051 04b1 2509 jrult L5103
5054 04b3 7b02 ld a,(OFST+0,sp)
5055 04b5 ab37 add a,#55
5056 04b7 1e03 ldw x,(OFST+1,sp)
5057 04b9 f7 ld (x),a
5059 04ba 2007 jra L7772
5060 04bc L5103:
5061 ; 160 else *str = tmp + '0';
5063 04bc 7b02 ld a,(OFST+0,sp)
5064 04be ab30 add a,#48
5065 04c0 1e03 ldw x,(OFST+1,sp)
5066 04c2 f7 ld (x),a
5067 04c3 L7772:
5068 ; 165 width--;
5070 04c3 0a09 dec (OFST+7,sp)
5071 ; 166 str++;
5073 04c5 1e03 ldw x,(OFST+1,sp)
5074 04c7 1c0001 addw x,#1
5075 04ca 1f03 ldw (OFST+1,sp),x
5076 04cc L1772:
5077 ; 131 while(width)
5079 04cc 0d09 tnz (OFST+7,sp)
5080 04ce 2703 jreq L001
5081 04d0 cc0416 jp L7672
5082 04d3 L001:
5083 ; 168 }
5086 04d3 5b04 addw sp,#4
5087 04d5 81 ret
5180 ; 170 void showLine(const u8 x,const u8 y,u8* lcd_stack,char * str,...)
5180 ; 171 {
5181 switch .text
5182 04d6 _showLine:
5184 04d6 89 pushw x
5185 04d7 5204 subw sp,#4
5186 00000004 OFST: set 4
5189 ; 172 u8 coordinate = 16 * y + x;
5191 04d9 9f ld a,xl
5192 04da 97 ld xl,a
5193 04db a610 ld a,#16
5194 04dd 42 mul x,a
5195 04de 9f ld a,xl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -