📄 main.ls
字号:
3646 013f L1622:
3647 ; 73 sendDataST7920(*(lcd_stack + addr));
3649 013f 7b02 ld a,(OFST+1,sp)
3650 0141 97 ld xl,a
3651 0142 7b03 ld a,(OFST+2,sp)
3652 0144 1b01 add a,(OFST+0,sp)
3653 0146 2401 jrnc L03
3654 0148 5c incw x
3655 0149 L03:
3656 0149 02 rlwa x,a
3657 014a f6 ld a,(x)
3658 014b ad9c call _sendDataST7920
3660 ; 71 for(addr=32;addr<48;addr++)
3662 014d 0c01 inc (OFST+0,sp)
3665 014f 7b01 ld a,(OFST+0,sp)
3666 0151 a130 cp a,#48
3667 0153 25ea jrult L1622
3668 ; 75 for(addr=16;addr<32;addr++)
3670 0155 a610 ld a,#16
3671 0157 6b01 ld (OFST+0,sp),a
3672 0159 L7622:
3673 ; 77 sendDataST7920(*(lcd_stack + addr));
3675 0159 7b02 ld a,(OFST+1,sp)
3676 015b 97 ld xl,a
3677 015c 7b03 ld a,(OFST+2,sp)
3678 015e 1b01 add a,(OFST+0,sp)
3679 0160 2401 jrnc L23
3680 0162 5c incw x
3681 0163 L23:
3682 0163 02 rlwa x,a
3683 0164 f6 ld a,(x)
3684 0165 ad82 call _sendDataST7920
3686 ; 75 for(addr=16;addr<32;addr++)
3688 0167 0c01 inc (OFST+0,sp)
3691 0169 7b01 ld a,(OFST+0,sp)
3692 016b a120 cp a,#32
3693 016d 25ea jrult L7622
3694 ; 80 for(addr=48;addr<64;addr++)
3696 016f a630 ld a,#48
3697 0171 6b01 ld (OFST+0,sp),a
3698 0173 L5722:
3699 ; 82 sendDataST7920(*(lcd_stack + addr));
3701 0173 7b02 ld a,(OFST+1,sp)
3702 0175 97 ld xl,a
3703 0176 7b03 ld a,(OFST+2,sp)
3704 0178 1b01 add a,(OFST+0,sp)
3705 017a 2401 jrnc L43
3706 017c 5c incw x
3707 017d L43:
3708 017d 02 rlwa x,a
3709 017e f6 ld a,(x)
3710 017f cd00e9 call _sendDataST7920
3712 ; 80 for(addr=48;addr<64;addr++)
3714 0182 0c01 inc (OFST+0,sp)
3717 0184 7b01 ld a,(OFST+0,sp)
3718 0186 a140 cp a,#64
3719 0188 25e9 jrult L5722
3720 ; 84 }
3723 018a 5b03 addw sp,#3
3724 018c 81 ret
3773 ; 86 void decToAscii(u8* str,u16 dec,u8 width)
3773 ; 87 {
3774 switch .text
3775 018d _decToAscii:
3777 018d 89 pushw x
3778 00000000 OFST: set 0
3781 018e ac2d022d jpf L3432
3782 0192 L1432:
3783 ; 90 switch(width)
3785 0192 7b07 ld a,(OFST+7,sp)
3787 ; 121 default: *str = '0';
3788 0194 4a dec a
3789 0195 2603cc021d jreq L3132
3790 019a 4a dec a
3791 019b 2764 jreq L1132
3792 019d 4a dec a
3793 019e 2745 jreq L7032
3794 01a0 4a dec a
3795 01a1 2726 jreq L5032
3796 01a3 4a dec a
3797 01a4 2707 jreq L3032
3798 01a6 L5132:
3801 01a6 1e01 ldw x,(OFST+1,sp)
3802 01a8 a630 ld a,#48
3803 01aa f7 ld (x),a
3804 01ab 2077 jra L1532
3805 01ad L3032:
3806 ; 94 *str = (dec / 10000 + '0');
3808 01ad 1e05 ldw x,(OFST+5,sp)
3809 01af 90ae2710 ldw y,#10000
3810 01b3 65 divw x,y
3811 01b4 1c0030 addw x,#48
3812 01b7 1601 ldw y,(OFST+1,sp)
3813 01b9 01 rrwa x,a
3814 01ba 90f7 ld (y),a
3815 01bc 02 rlwa x,a
3816 ; 95 dec %= 10000;
3818 01bd 1e05 ldw x,(OFST+5,sp)
3819 01bf 90ae2710 ldw y,#10000
3820 01c3 65 divw x,y
3821 01c4 51 exgw x,y
3822 01c5 1f05 ldw (OFST+5,sp),x
3823 ; 96 break;
3825 01c7 205b jra L1532
3826 01c9 L5032:
3827 ; 100 *str = (dec / 1000 + '0');
3829 01c9 1e05 ldw x,(OFST+5,sp)
3830 01cb 90ae03e8 ldw y,#1000
3831 01cf 65 divw x,y
3832 01d0 1c0030 addw x,#48
3833 01d3 1601 ldw y,(OFST+1,sp)
3834 01d5 01 rrwa x,a
3835 01d6 90f7 ld (y),a
3836 01d8 02 rlwa x,a
3837 ; 101 dec %= 1000;
3839 01d9 1e05 ldw x,(OFST+5,sp)
3840 01db 90ae03e8 ldw y,#1000
3841 01df 65 divw x,y
3842 01e0 51 exgw x,y
3843 01e1 1f05 ldw (OFST+5,sp),x
3844 ; 102 break;
3846 01e3 203f jra L1532
3847 01e5 L7032:
3848 ; 106 *str = (dec/100+'0');
3850 01e5 1e05 ldw x,(OFST+5,sp)
3851 01e7 90ae0064 ldw y,#100
3852 01eb 65 divw x,y
3853 01ec 1c0030 addw x,#48
3854 01ef 1601 ldw y,(OFST+1,sp)
3855 01f1 01 rrwa x,a
3856 01f2 90f7 ld (y),a
3857 01f4 02 rlwa x,a
3858 ; 107 dec %= 100;
3860 01f5 1e05 ldw x,(OFST+5,sp)
3861 01f7 90ae0064 ldw y,#100
3862 01fb 65 divw x,y
3863 01fc 51 exgw x,y
3864 01fd 1f05 ldw (OFST+5,sp),x
3865 ; 108 break;
3867 01ff 2023 jra L1532
3868 0201 L1132:
3869 ; 112 *str = (dec/10+'0');
3871 0201 1e05 ldw x,(OFST+5,sp)
3872 0203 90ae000a ldw y,#10
3873 0207 65 divw x,y
3874 0208 1c0030 addw x,#48
3875 020b 1601 ldw y,(OFST+1,sp)
3876 020d 01 rrwa x,a
3877 020e 90f7 ld (y),a
3878 0210 02 rlwa x,a
3879 ; 113 dec %= 10;
3881 0211 1e05 ldw x,(OFST+5,sp)
3882 0213 90ae000a ldw y,#10
3883 0217 65 divw x,y
3884 0218 51 exgw x,y
3885 0219 1f05 ldw (OFST+5,sp),x
3886 ; 114 break;
3888 021b 2007 jra L1532
3889 021d L3132:
3890 ; 118 *str = (dec+'0');
3892 021d 7b06 ld a,(OFST+6,sp)
3893 021f ab30 add a,#48
3894 0221 1e01 ldw x,(OFST+1,sp)
3895 0223 f7 ld (x),a
3896 ; 119 break;
3898 0224 L1532:
3899 ; 123 width--;
3901 0224 0a07 dec (OFST+7,sp)
3902 ; 124 str++;
3904 0226 1e01 ldw x,(OFST+1,sp)
3905 0228 1c0001 addw x,#1
3906 022b 1f01 ldw (OFST+1,sp),x
3907 022d L3432:
3908 ; 88 while(width)
3910 022d 0d07 tnz (OFST+7,sp)
3911 022f 2703 jreq L24
3912 0231 cc0192 jp L1432
3913 0234 L24:
3914 ; 126 }
3917 0234 85 popw x
3918 0235 81 ret
3974 ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
3974 ; 129 {
3975 switch .text
3976 0236 _hexToAscii:
3978 0236 89 pushw x
3979 0237 89 pushw x
3980 00000002 OFST: set 2
3983 0238 acf202f2 jpf L3142
3984 023c L1142:
3985 ; 133 switch(width)
3987 023c 7b09 ld a,(OFST+7,sp)
3989 ; 163 default: *str = '0';
3990 023e 4a dec a
3991 023f 2603 jrne L05
3992 0241 cc02c6 jp L1632
3993 0244 L05:
3994 0244 4a dec a
3995 0245 2758 jreq L7532
3996 0247 4a dec a
3997 0248 2730 jreq L5532
3998 024a 4a dec a
3999 024b 2709 jreq L3532
4000 024d L3632:
4003 024d 1e03 ldw x,(OFST+1,sp)
4004 024f a630 ld a,#48
4005 0251 f7 ld (x),a
4006 0252 ace902e9 jpf L1242
4007 0256 L3532:
4008 ; 137 tmp = (hex >> 12);
4010 0256 1e07 ldw x,(OFST+5,sp)
4011 0258 01 rrwa x,a
4012 0259 4f clr a
4013 025a 41 exg a,xl
4014 025b 4e swap a
4015 025c a40f and a,#15
4016 025e 02 rlwa x,a
4017 025f 1f01 ldw (OFST-1,sp),x
4018 ; 138 if(tmp > 9) *str = tmp + ('A' - 10);
4020 0261 1e01 ldw x,(OFST-1,sp)
4021 0263 a3000a cpw x,#10
4022 0266 2509 jrult L3242
4025 0268 7b02 ld a,(OFST+0,sp)
4026 026a ab37 add a,#55
4027 026c 1e03 ldw x,(OFST+1,sp)
4028 026e f7 ld (x),a
4030 026f 2078 jra L1242
4031 0271 L3242:
4032 ; 139 else *str = tmp + '0';
4034 0271 7b02 ld a,(OFST+0,sp)
4035 0273 ab30 add a,#48
4036 0275 1e03 ldw x,(OFST+1,sp)
4037 0277 f7 ld (x),a
4038 0278 206f jra L1242
4039 027a L5532:
4040 ; 144 tmp = (hex >> 8) & 0x000F;
4042 027a 1e07 ldw x,(OFST+5,sp)
4043 027c 4f clr a
4044 027d 01 rrwa x,a
4045 027e 01 rrwa x,a
4046 027f a40f and a,#15
4047 0281 5f clrw x
4048 0282 02 rlwa x,a
4049 0283 1f01 ldw (OFST-1,sp),x
4050 0285 01 rrwa x,a
4051 ; 145 if(tmp > 9) *str = tmp + ('A' - 10);
4053 0286 1e01 ldw x,(OFST-1,sp)
4054 0288 a3000a cpw x,#10
4055 028b 2509 jrult L7242
4058 028d 7b02 ld a,(OFST+0,sp)
4059 028f ab37 add a,#55
4060 0291 1e03 ldw x,(OFST+1,sp)
4061 0293 f7 ld (x),a
4063 0294 2053 jra L1242
4064 0296 L7242:
4065 ; 146 else *str = tmp + '0';
4067 0296 7b02 ld a,(OFST+0,sp)
4068 0298 ab30 add a,#48
4069 029a 1e03 ldw x,(OFST+1,sp)
4070 029c f7 ld (x),a
4071 029d 204a jra L1242
4072 029f L7532:
4073 ; 151 tmp = (hex >> 4) & 0x000F;
4075 029f 1e07 ldw x,(OFST+5,sp)
4076 02a1 54 srlw x
4077 02a2 54 srlw x
4078 02a3 54 srlw x
4079 02a4 54 srlw x
4080 02a5 01 rrwa x,a
4081 02a6 a40f and a,#15
4082 02a8 5f clrw x
4083 02a9 5f clrw x
4084 02aa 97 ld xl,a
4085 02ab 1f01 ldw (OFST-1,sp),x
4086 ; 152 if(tmp > 9) *str = tmp + ('A' - 10);
4088 02ad 1e01 ldw x,(OFST-1,sp)
4089 02af a3000a cpw x,#10
4090 02b2 2509 jrult L3342
4093 02b4 7b02 ld a,(OFST+0,sp)
4094 02b6 ab37 add a,#55
4095 02b8 1e03 ldw x,(OFST+1,sp)
4096 02ba f7 ld (x),a
4098 02bb 202c jra L1242
4099 02bd L3342:
4100 ; 153 else *str = tmp + '0';
4102 02bd 7b02 ld a,(OFST+0,sp)
4103 02bf ab30 add a,#48
4104 02c1 1e03 ldw x,(OFST+1,sp)
4105 02c3 f7 ld (x),a
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -