📄 main.ls
字号:
3677 0149 f6 ld a,(x)
3678 014a ad9c call _sendDataST7920
3680 ; 71 for(addr=32;addr<48;addr++)
3682 014c 0c01 inc (OFST+0,sp)
3685 014e 7b01 ld a,(OFST+0,sp)
3686 0150 a130 cp a,#48
3687 0152 25ea jrult L5032
3688 ; 75 for(addr=16;addr<32;addr++)
3690 0154 a610 ld a,#16
3691 0156 6b01 ld (OFST+0,sp),a
3692 0158 L3132:
3693 ; 77 sendDataST7920(*(lcd_stack + addr));
3695 0158 7b02 ld a,(OFST+1,sp)
3696 015a 97 ld xl,a
3697 015b 7b03 ld a,(OFST+2,sp)
3698 015d 1b01 add a,(OFST+0,sp)
3699 015f 2401 jrnc L23
3700 0161 5c incw x
3701 0162 L23:
3702 0162 02 rlwa x,a
3703 0163 f6 ld a,(x)
3704 0164 ad82 call _sendDataST7920
3706 ; 75 for(addr=16;addr<32;addr++)
3708 0166 0c01 inc (OFST+0,sp)
3711 0168 7b01 ld a,(OFST+0,sp)
3712 016a a120 cp a,#32
3713 016c 25ea jrult L3132
3714 ; 80 for(addr=48;addr<64;addr++)
3716 016e a630 ld a,#48
3717 0170 6b01 ld (OFST+0,sp),a
3718 0172 L1232:
3719 ; 82 sendDataST7920(*(lcd_stack + addr));
3721 0172 7b02 ld a,(OFST+1,sp)
3722 0174 97 ld xl,a
3723 0175 7b03 ld a,(OFST+2,sp)
3724 0177 1b01 add a,(OFST+0,sp)
3725 0179 2401 jrnc L43
3726 017b 5c incw x
3727 017c L43:
3728 017c 02 rlwa x,a
3729 017d f6 ld a,(x)
3730 017e cd00e8 call _sendDataST7920
3732 ; 80 for(addr=48;addr<64;addr++)
3734 0181 0c01 inc (OFST+0,sp)
3737 0183 7b01 ld a,(OFST+0,sp)
3738 0185 a140 cp a,#64
3739 0187 25e9 jrult L1232
3740 ; 84 }
3743 0189 5b03 addw sp,#3
3744 018b 81 ret
3797 ; 86 void decToAscii(u8* str,u16 dec,u8 width)
3797 ; 87 {
3798 switch .text
3799 018c _decToAscii:
3801 018c 89 pushw x
3802 00000000 OFST: set 0
3805 018d ac2c022c jpf L3732
3806 0191 L1732:
3807 ; 90 switch(width)
3809 0191 7b07 ld a,(OFST+7,sp)
3811 ; 121 default: *str = '0';
3812 0193 4a dec a
3813 0194 2603cc021c jreq L7332
3814 0199 4a dec a
3815 019a 2764 jreq L5332
3816 019c 4a dec a
3817 019d 2745 jreq L3332
3818 019f 4a dec a
3819 01a0 2726 jreq L1332
3820 01a2 4a dec a
3821 01a3 2707 jreq L7232
3822 01a5 L1432:
3825 01a5 1e01 ldw x,(OFST+1,sp)
3826 01a7 a630 ld a,#48
3827 01a9 f7 ld (x),a
3828 01aa 2077 jra L1042
3829 01ac L7232:
3830 ; 94 *str = (dec / 10000 + '0');
3832 01ac 1e05 ldw x,(OFST+5,sp)
3833 01ae 90ae2710 ldw y,#10000
3834 01b2 65 divw x,y
3835 01b3 1c0030 addw x,#48
3836 01b6 1601 ldw y,(OFST+1,sp)
3837 01b8 01 rrwa x,a
3838 01b9 90f7 ld (y),a
3839 01bb 02 rlwa x,a
3840 ; 95 dec %= 10000;
3842 01bc 1e05 ldw x,(OFST+5,sp)
3843 01be 90ae2710 ldw y,#10000
3844 01c2 65 divw x,y
3845 01c3 51 exgw x,y
3846 01c4 1f05 ldw (OFST+5,sp),x
3847 ; 96 break;
3849 01c6 205b jra L1042
3850 01c8 L1332:
3851 ; 100 *str = (dec / 1000 + '0');
3853 01c8 1e05 ldw x,(OFST+5,sp)
3854 01ca 90ae03e8 ldw y,#1000
3855 01ce 65 divw x,y
3856 01cf 1c0030 addw x,#48
3857 01d2 1601 ldw y,(OFST+1,sp)
3858 01d4 01 rrwa x,a
3859 01d5 90f7 ld (y),a
3860 01d7 02 rlwa x,a
3861 ; 101 dec %= 1000;
3863 01d8 1e05 ldw x,(OFST+5,sp)
3864 01da 90ae03e8 ldw y,#1000
3865 01de 65 divw x,y
3866 01df 51 exgw x,y
3867 01e0 1f05 ldw (OFST+5,sp),x
3868 ; 102 break;
3870 01e2 203f jra L1042
3871 01e4 L3332:
3872 ; 106 *str = (dec/100+'0');
3874 01e4 1e05 ldw x,(OFST+5,sp)
3875 01e6 90ae0064 ldw y,#100
3876 01ea 65 divw x,y
3877 01eb 1c0030 addw x,#48
3878 01ee 1601 ldw y,(OFST+1,sp)
3879 01f0 01 rrwa x,a
3880 01f1 90f7 ld (y),a
3881 01f3 02 rlwa x,a
3882 ; 107 dec %= 100;
3884 01f4 1e05 ldw x,(OFST+5,sp)
3885 01f6 90ae0064 ldw y,#100
3886 01fa 65 divw x,y
3887 01fb 51 exgw x,y
3888 01fc 1f05 ldw (OFST+5,sp),x
3889 ; 108 break;
3891 01fe 2023 jra L1042
3892 0200 L5332:
3893 ; 112 *str = (dec/10+'0');
3895 0200 1e05 ldw x,(OFST+5,sp)
3896 0202 90ae000a ldw y,#10
3897 0206 65 divw x,y
3898 0207 1c0030 addw x,#48
3899 020a 1601 ldw y,(OFST+1,sp)
3900 020c 01 rrwa x,a
3901 020d 90f7 ld (y),a
3902 020f 02 rlwa x,a
3903 ; 113 dec %= 10;
3905 0210 1e05 ldw x,(OFST+5,sp)
3906 0212 90ae000a ldw y,#10
3907 0216 65 divw x,y
3908 0217 51 exgw x,y
3909 0218 1f05 ldw (OFST+5,sp),x
3910 ; 114 break;
3912 021a 2007 jra L1042
3913 021c L7332:
3914 ; 118 *str = (dec+'0');
3916 021c 7b06 ld a,(OFST+6,sp)
3917 021e ab30 add a,#48
3918 0220 1e01 ldw x,(OFST+1,sp)
3919 0222 f7 ld (x),a
3920 ; 119 break;
3922 0223 L1042:
3923 ; 123 width--;
3925 0223 0a07 dec (OFST+7,sp)
3926 ; 124 str++;
3928 0225 1e01 ldw x,(OFST+1,sp)
3929 0227 1c0001 addw x,#1
3930 022a 1f01 ldw (OFST+1,sp),x
3931 022c L3732:
3932 ; 88 while(width)
3934 022c 0d07 tnz (OFST+7,sp)
3935 022e 2703 jreq L24
3936 0230 cc0191 jp L1732
3937 0233 L24:
3938 ; 126 }
3941 0233 85 popw x
3942 0234 81 ret
4004 ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4004 ; 129 {
4005 switch .text
4006 0235 _hexToAscii:
4008 0235 89 pushw x
4009 0236 89 pushw x
4010 00000002 OFST: set 2
4013 0237 acf102f1 jpf L1542
4014 023b L7442:
4015 ; 133 switch(width)
4017 023b 7b09 ld a,(OFST+7,sp)
4019 ; 163 default: *str = '0';
4020 023d 4a dec a
4021 023e 2603 jrne L05
4022 0240 cc02c5 jp L1142
4023 0243 L05:
4024 0243 4a dec a
4025 0244 2758 jreq L7042
4026 0246 4a dec a
4027 0247 2730 jreq L5042
4028 0249 4a dec a
4029 024a 2709 jreq L3042
4030 024c L3142:
4033 024c 1e03 ldw x,(OFST+1,sp)
4034 024e a630 ld a,#48
4035 0250 f7 ld (x),a
4036 0251 ace802e8 jpf L7542
4037 0255 L3042:
4038 ; 137 tmp = (hex >> 12);
4040 0255 1e07 ldw x,(OFST+5,sp)
4041 0257 01 rrwa x,a
4042 0258 4f clr a
4043 0259 41 exg a,xl
4044 025a 4e swap a
4045 025b a40f and a,#15
4046 025d 02 rlwa x,a
4047 025e 1f01 ldw (OFST-1,sp),x
4048 ; 138 if(tmp > 9) *str = tmp + ('A' - 10);
4050 0260 1e01 ldw x,(OFST-1,sp)
4051 0262 a3000a cpw x,#10
4052 0265 2509 jrult L1642
4055 0267 7b02 ld a,(OFST+0,sp)
4056 0269 ab37 add a,#55
4057 026b 1e03 ldw x,(OFST+1,sp)
4058 026d f7 ld (x),a
4060 026e 2078 jra L7542
4061 0270 L1642:
4062 ; 139 else *str = tmp + '0';
4064 0270 7b02 ld a,(OFST+0,sp)
4065 0272 ab30 add a,#48
4066 0274 1e03 ldw x,(OFST+1,sp)
4067 0276 f7 ld (x),a
4068 0277 206f jra L7542
4069 0279 L5042:
4070 ; 144 tmp = (hex >> 8) & 0x000F;
4072 0279 1e07 ldw x,(OFST+5,sp)
4073 027b 4f clr a
4074 027c 01 rrwa x,a
4075 027d 01 rrwa x,a
4076 027e a40f and a,#15
4077 0280 5f clrw x
4078 0281 02 rlwa x,a
4079 0282 1f01 ldw (OFST-1,sp),x
4080 0284 01 rrwa x,a
4081 ; 145 if(tmp > 9) *str = tmp + ('A' - 10);
4083 0285 1e01 ldw x,(OFST-1,sp)
4084 0287 a3000a cpw x,#10
4085 028a 2509 jrult L5642
4088 028c 7b02 ld a,(OFST+0,sp)
4089 028e ab37 add a,#55
4090 0290 1e03 ldw x,(OFST+1,sp)
4091 0292 f7 ld (x),a
4093 0293 2053 jra L7542
4094 0295 L5642:
4095 ; 146 else *str = tmp + '0';
4097 0295 7b02 ld a,(OFST+0,sp)
4098 0297 ab30 add a,#48
4099 0299 1e03 ldw x,(OFST+1,sp)
4100 029b f7 ld (x),a
4101 029c 204a jra L7542
4102 029e L7042:
4103 ; 151 tmp = (hex >> 4) & 0x000F;
4105 029e 1e07 ldw x,(OFST+5,sp)
4106 02a0 54 srlw x
4107 02a1 54 srlw x
4108 02a2 54 srlw x
4109 02a3 54 srlw x
4110 02a4 01 rrwa x,a
4111 02a5 a40f and a,#15
4112 02a7 5f clrw x
4113 02a8 5f clrw x
4114 02a9 97 ld xl,a
4115 02aa 1f01 ldw (OFST-1,sp),x
4116 ; 152 if(tmp > 9) *str = tmp + ('A' - 10);
4118 02ac 1e01 ldw x,(OFST-1,sp)
4119 02ae a3000a cpw x,#10
4120 02b1 2509 jrult L1742
4123 02b3 7b02 ld a,(OFST+0,sp)
4124 02b5 ab37 add a,#55
4125 02b7 1e03 ldw x,(OFST+1,sp)
4126 02b9 f7 ld (x),a
4128 02ba 202c jra L7542
4129 02bc L1742:
4130 ; 153 else *str = tmp + '0';
4132 02bc 7b02 ld a,(OFST+0,sp)
4133 02be ab30 add a,#48
4134 02c0 1e03 ldw x,(OFST+1,sp)
4135 02c2 f7 ld (x),a
4136 02c3 2023 jra L7542
4137 02c5 L1142:
4138 ; 158 tmp = hex & 0x000F;
4140 02c5 7b07 ld a,(OFST+5,sp)
4141 02c7 97 ld xl,a
4142 02c8 7b08 ld a,(OFST+6,sp)
4143 02ca a40f and a,#15
4144 02cc 5f clrw x
4145 02cd 02 rlwa x,a
4146 02ce 1f01 ldw (OFST-1,sp),x
4147 02d0 01 rrwa x,a
4148 ; 159 if(tmp > 9) *str = tmp + ('A' - 10);
4150 02d1 1e01 ldw x,(OFST-1,sp)
4151 02d3 a3000a cpw x,#10
4152 02d6 2509 jrult L5742
4155 02d8 7b02 ld a,(OFST+0,sp)
4156 02da ab37 add a,#55
4157 02dc 1e03 ldw x,(OFST+1,sp)
4158 02de f7 ld (x),a
4160 02df 2007 jra L7542
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -