📄 main.ls
字号:
3933 01a0 02 rlwa x,a
3934 01a1 f6 ld a,(x)
3935 01a2 adb6 call _sendDataST7920
3937 ; 67 for(addr=0;addr<16;addr++)
3939 01a4 0c01 inc (OFST+0,sp)
3942 01a6 7b01 ld a,(OFST+0,sp)
3943 01a8 a110 cp a,#16
3944 01aa 25ea jrult L1632
3945 ; 71 for(addr=32;addr<48;addr++)
3947 01ac a620 ld a,#32
3948 01ae 6b01 ld (OFST+0,sp),a
3949 01b0 L7632:
3950 ; 73 sendDataST7920(*(lcd_stack + addr));
3952 01b0 7b02 ld a,(OFST+1,sp)
3953 01b2 97 ld xl,a
3954 01b3 7b03 ld a,(OFST+2,sp)
3955 01b5 1b01 add a,(OFST+0,sp)
3956 01b7 2401 jrnc L63
3957 01b9 5c incw x
3958 01ba L63:
3959 01ba 02 rlwa x,a
3960 01bb f6 ld a,(x)
3961 01bc ad9c call _sendDataST7920
3963 ; 71 for(addr=32;addr<48;addr++)
3965 01be 0c01 inc (OFST+0,sp)
3968 01c0 7b01 ld a,(OFST+0,sp)
3969 01c2 a130 cp a,#48
3970 01c4 25ea jrult L7632
3971 ; 75 for(addr=16;addr<32;addr++)
3973 01c6 a610 ld a,#16
3974 01c8 6b01 ld (OFST+0,sp),a
3975 01ca L5732:
3976 ; 77 sendDataST7920(*(lcd_stack + addr));
3978 01ca 7b02 ld a,(OFST+1,sp)
3979 01cc 97 ld xl,a
3980 01cd 7b03 ld a,(OFST+2,sp)
3981 01cf 1b01 add a,(OFST+0,sp)
3982 01d1 2401 jrnc L04
3983 01d3 5c incw x
3984 01d4 L04:
3985 01d4 02 rlwa x,a
3986 01d5 f6 ld a,(x)
3987 01d6 ad82 call _sendDataST7920
3989 ; 75 for(addr=16;addr<32;addr++)
3991 01d8 0c01 inc (OFST+0,sp)
3994 01da 7b01 ld a,(OFST+0,sp)
3995 01dc a120 cp a,#32
3996 01de 25ea jrult L5732
3997 ; 80 for(addr=48;addr<64;addr++)
3999 01e0 a630 ld a,#48
4000 01e2 6b01 ld (OFST+0,sp),a
4001 01e4 L3042:
4002 ; 82 sendDataST7920(*(lcd_stack + addr));
4004 01e4 7b02 ld a,(OFST+1,sp)
4005 01e6 97 ld xl,a
4006 01e7 7b03 ld a,(OFST+2,sp)
4007 01e9 1b01 add a,(OFST+0,sp)
4008 01eb 2401 jrnc L24
4009 01ed 5c incw x
4010 01ee L24:
4011 01ee 02 rlwa x,a
4012 01ef f6 ld a,(x)
4013 01f0 cd015a call _sendDataST7920
4015 ; 80 for(addr=48;addr<64;addr++)
4017 01f3 0c01 inc (OFST+0,sp)
4020 01f5 7b01 ld a,(OFST+0,sp)
4021 01f7 a140 cp a,#64
4022 01f9 25e9 jrult L3042
4023 ; 84 }
4026 01fb 5b03 addw sp,#3
4027 01fd 81 ret
4080 ; 86 void decToAscii(u8* str,u16 dec,u8 width)
4080 ; 87 {
4081 switch .text
4082 01fe _decToAscii:
4084 01fe 89 pushw x
4085 00000000 OFST: set 0
4088 01ff ac9e029e jpf L5542
4089 0203 L3542:
4090 ; 90 switch(width)
4092 0203 7b07 ld a,(OFST+7,sp)
4094 ; 121 default: *str = '0';
4095 0205 4a dec a
4096 0206 2603cc028e jreq L1242
4097 020b 4a dec a
4098 020c 2764 jreq L7142
4099 020e 4a dec a
4100 020f 2745 jreq L5142
4101 0211 4a dec a
4102 0212 2726 jreq L3142
4103 0214 4a dec a
4104 0215 2707 jreq L1142
4105 0217 L3242:
4108 0217 1e01 ldw x,(OFST+1,sp)
4109 0219 a630 ld a,#48
4110 021b f7 ld (x),a
4111 021c 2077 jra L3642
4112 021e L1142:
4113 ; 94 *str = (dec / 10000 + '0');
4115 021e 1e05 ldw x,(OFST+5,sp)
4116 0220 90ae2710 ldw y,#10000
4117 0224 65 divw x,y
4118 0225 1c0030 addw x,#48
4119 0228 1601 ldw y,(OFST+1,sp)
4120 022a 01 rrwa x,a
4121 022b 90f7 ld (y),a
4122 022d 02 rlwa x,a
4123 ; 95 dec %= 10000;
4125 022e 1e05 ldw x,(OFST+5,sp)
4126 0230 90ae2710 ldw y,#10000
4127 0234 65 divw x,y
4128 0235 51 exgw x,y
4129 0236 1f05 ldw (OFST+5,sp),x
4130 ; 96 break;
4132 0238 205b jra L3642
4133 023a L3142:
4134 ; 100 *str = (dec / 1000 + '0');
4136 023a 1e05 ldw x,(OFST+5,sp)
4137 023c 90ae03e8 ldw y,#1000
4138 0240 65 divw x,y
4139 0241 1c0030 addw x,#48
4140 0244 1601 ldw y,(OFST+1,sp)
4141 0246 01 rrwa x,a
4142 0247 90f7 ld (y),a
4143 0249 02 rlwa x,a
4144 ; 101 dec %= 1000;
4146 024a 1e05 ldw x,(OFST+5,sp)
4147 024c 90ae03e8 ldw y,#1000
4148 0250 65 divw x,y
4149 0251 51 exgw x,y
4150 0252 1f05 ldw (OFST+5,sp),x
4151 ; 102 break;
4153 0254 203f jra L3642
4154 0256 L5142:
4155 ; 106 *str = (dec/100+'0');
4157 0256 1e05 ldw x,(OFST+5,sp)
4158 0258 90ae0064 ldw y,#100
4159 025c 65 divw x,y
4160 025d 1c0030 addw x,#48
4161 0260 1601 ldw y,(OFST+1,sp)
4162 0262 01 rrwa x,a
4163 0263 90f7 ld (y),a
4164 0265 02 rlwa x,a
4165 ; 107 dec %= 100;
4167 0266 1e05 ldw x,(OFST+5,sp)
4168 0268 90ae0064 ldw y,#100
4169 026c 65 divw x,y
4170 026d 51 exgw x,y
4171 026e 1f05 ldw (OFST+5,sp),x
4172 ; 108 break;
4174 0270 2023 jra L3642
4175 0272 L7142:
4176 ; 112 *str = (dec/10+'0');
4178 0272 1e05 ldw x,(OFST+5,sp)
4179 0274 90ae000a ldw y,#10
4180 0278 65 divw x,y
4181 0279 1c0030 addw x,#48
4182 027c 1601 ldw y,(OFST+1,sp)
4183 027e 01 rrwa x,a
4184 027f 90f7 ld (y),a
4185 0281 02 rlwa x,a
4186 ; 113 dec %= 10;
4188 0282 1e05 ldw x,(OFST+5,sp)
4189 0284 90ae000a ldw y,#10
4190 0288 65 divw x,y
4191 0289 51 exgw x,y
4192 028a 1f05 ldw (OFST+5,sp),x
4193 ; 114 break;
4195 028c 2007 jra L3642
4196 028e L1242:
4197 ; 118 *str = (dec+'0');
4199 028e 7b06 ld a,(OFST+6,sp)
4200 0290 ab30 add a,#48
4201 0292 1e01 ldw x,(OFST+1,sp)
4202 0294 f7 ld (x),a
4203 ; 119 break;
4205 0295 L3642:
4206 ; 123 width--;
4208 0295 0a07 dec (OFST+7,sp)
4209 ; 124 str++;
4211 0297 1e01 ldw x,(OFST+1,sp)
4212 0299 1c0001 addw x,#1
4213 029c 1f01 ldw (OFST+1,sp),x
4214 029e L5542:
4215 ; 88 while(width)
4217 029e 0d07 tnz (OFST+7,sp)
4218 02a0 2703 jreq L05
4219 02a2 cc0203 jp L3542
4220 02a5 L05:
4221 ; 126 }
4224 02a5 85 popw x
4225 02a6 81 ret
4287 ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4287 ; 129 {
4288 switch .text
4289 02a7 _hexToAscii:
4291 02a7 89 pushw x
4292 02a8 89 pushw x
4293 00000002 OFST: set 2
4296 02a9 ac630363 jpf L3352
4297 02ad L1352:
4298 ; 133 switch(width)
4300 02ad 7b09 ld a,(OFST+7,sp)
4302 ; 163 default: *str = '0';
4303 02af 4a dec a
4304 02b0 2603 jrne L65
4305 02b2 cc0337 jp L3742
4306 02b5 L65:
4307 02b5 4a dec a
4308 02b6 2758 jreq L1742
4309 02b8 4a dec a
4310 02b9 2730 jreq L7642
4311 02bb 4a dec a
4312 02bc 2709 jreq L5642
4313 02be L5742:
4316 02be 1e03 ldw x,(OFST+1,sp)
4317 02c0 a630 ld a,#48
4318 02c2 f7 ld (x),a
4319 02c3 ac5a035a jpf L1452
4320 02c7 L5642:
4321 ; 137 tmp = (hex >> 12);
4323 02c7 1e07 ldw x,(OFST+5,sp)
4324 02c9 01 rrwa x,a
4325 02ca 4f clr a
4326 02cb 41 exg a,xl
4327 02cc 4e swap a
4328 02cd a40f and a,#15
4329 02cf 02 rlwa x,a
4330 02d0 1f01 ldw (OFST-1,sp),x
4331 ; 138 if(tmp > 9) *str = tmp + ('A' - 10);
4333 02d2 1e01 ldw x,(OFST-1,sp)
4334 02d4 a3000a cpw x,#10
4335 02d7 2509 jrult L3452
4338 02d9 7b02 ld a,(OFST+0,sp)
4339 02db ab37 add a,#55
4340 02dd 1e03 ldw x,(OFST+1,sp)
4341 02df f7 ld (x),a
4343 02e0 2078 jra L1452
4344 02e2 L3452:
4345 ; 139 else *str = tmp + '0';
4347 02e2 7b02 ld a,(OFST+0,sp)
4348 02e4 ab30 add a,#48
4349 02e6 1e03 ldw x,(OFST+1,sp)
4350 02e8 f7 ld (x),a
4351 02e9 206f jra L1452
4352 02eb L7642:
4353 ; 144 tmp = (hex >> 8) & 0x000F;
4355 02eb 1e07 ldw x,(OFST+5,sp)
4356 02ed 4f clr a
4357 02ee 01 rrwa x,a
4358 02ef 01 rrwa x,a
4359 02f0 a40f and a,#15
4360 02f2 5f clrw x
4361 02f3 02 rlwa x,a
4362 02f4 1f01 ldw (OFST-1,sp),x
4363 02f6 01 rrwa x,a
4364 ; 145 if(tmp > 9) *str = tmp + ('A' - 10);
4366 02f7 1e01 ldw x,(OFST-1,sp)
4367 02f9 a3000a cpw x,#10
4368 02fc 2509 jrult L7452
4371 02fe 7b02 ld a,(OFST+0,sp)
4372 0300 ab37 add a,#55
4373 0302 1e03 ldw x,(OFST+1,sp)
4374 0304 f7 ld (x),a
4376 0305 2053 jra L1452
4377 0307 L7452:
4378 ; 146 else *str = tmp + '0';
4380 0307 7b02 ld a,(OFST+0,sp)
4381 0309 ab30 add a,#48
4382 030b 1e03 ldw x,(OFST+1,sp)
4383 030d f7 ld (x),a
4384 030e 204a jra L1452
4385 0310 L1742:
4386 ; 151 tmp = (hex >> 4) & 0x000F;
4388 0310 1e07 ldw x,(OFST+5,sp)
4389 0312 54 srlw x
4390 0313 54 srlw x
4391 0314 54 srlw x
4392 0315 54 srlw x
4393 0316 01 rrwa x,a
4394 0317 a40f and a,#15
4395 0319 5f clrw x
4396 031a 5f clrw x
4397 031b 97 ld xl,a
4398 031c 1f01 ldw (OFST-1,sp),x
4399 ; 152 if(tmp > 9) *str = tmp + ('A' - 10);
4401 031e 1e01 ldw x,(OFST-1,sp)
4402 0320 a3000a cpw x,#10
4403 0323 2509 jrult L3552
4406 0325 7b02 ld a,(OFST+0,sp)
4407 0327 ab37 add a,#55
4408 0329 1e03 ldw x,(OFST+1,sp)
4409 032b f7 ld (x),a
4411 032c 202c jra L1452
4412 032e L3552:
4413 ; 153 else *str = tmp + '0';
4415 032e 7b02 ld a,(OFST+0,sp)
4416 0330 ab30 add a,#48
4417 0332 1e03 ldw x,(OFST+1,sp)
4418 0334 f7 ld (x),a
4419 0335 2023 jra L1452
4420 0337 L3742:
4421 ; 158 tmp = hex & 0x000F;
4423 0337 7b07 ld a,(OFST+5,sp)
4424 0339 97 ld xl,a
4425 033a 7b08 ld a,(OFST+6,sp)
4426 033c a40f and a,#15
4427 033e 5f clrw x
4428 033f 02 rlwa x,a
4429 0340 1f01 ldw (OFST-1,sp),x
4430 0342 01 rrwa x,a
4431 ; 159 if(tmp > 9) *str = tmp + ('A' - 10);
4433 0343 1e01 ldw x,(OFST-1,sp)
4434 0345 a3000a cpw x,#10
4435 0348 2509 jrult L7552
4438 034a 7b02 ld a,(OFST+0,sp)
4439 034c ab37 add a,#55
4440 034e 1e03 ldw x,(OFST+1,sp)
4441 0350 f7 ld (x),a
4443 0351 2007 jra L1452
4444 0353 L7552:
4445 ; 160 else *str = tmp + '0';
4447 0353 7b02 ld a,(OFST+0,sp)
4448 0355 ab30 add a,#48
4449 0357 1e03 ldw x,(OFST+1,sp)
4450 0359 f7 ld (x),a
4451 035a L1452:
4452 ; 165 width--;
4454 035a 0a09 dec (OFST+7,sp)
4455 ; 166 str++;
4457 035c 1e03 ldw x,(OFST+1,sp)
4458 035e 1c0001 addw x,#1
4459 0361 1f03 ldw (OFST+1,sp),x
4460 0363 L3352:
4461 ; 131 while(width)
4463 0363 0d09 tnz (OFST+7,sp)
4464 0365 2703 jreq L06
4465 0367 cc02ad jp L1352
4466 036a L06:
4467 ; 168 }
4470 036a 5b04 addw sp,#4
4471 036c 81 ret
4564 ; 170 void showLine(const u8 x,const u8 y,u8* lcd_stack,char * str,...)
4564 ; 171 {
4565 switch .text
4566 036d _showLine:
4568 036d 89 pushw x
4569 036e 5204 subw sp,#4
4570 00000004 OFST: set 4
4573 ; 172 u8 coordinate = 16 * y + x;
4575 0370 9f ld a,xl
4576 0371 97 ld xl,a
4577 0372 a610 ld a,#16
4578 0374 42 mul x,a
4579 0375 9f ld a,xl
4580 0376 1b05 add a,(OFST+1,sp)
4581 0378 6b04 ld (OFST+0,sp),a
4582 ; 175 va_start(marker,str); // Initialize variable arguments.
4584 037a 96 ldw x,sp
4585 037b 1c000d addw x,#OFST+9
4586 037e 1f02 ldw (OFST-2,sp),x
4587 ; 176 for(i=0;i<64;i++)
4589 0380 0f01 clr (OFST-3,sp)
4590 0382 L1362:
4593 0382 0c01 inc (OFST-3,sp)
4596 0384 7b01 ld a,(OFST-3,sp)
4597 0386 a140 cp a,#64
4598 0388 25f8 jrult L1362
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -