📄 macoh.s
字号:
ldi R30,0
cpc R25,R30
brne X75
rjmp L209
X75:
rjmp L166
L219:
ldd R24,y+11
ldd R25,y+12
cpi R24,23
ldi R30,0
cpc R25,R30
brne X76
rjmp L12
X76:
rjmp L166
X11:
.dbline 374
; {
L169:
.dbline 376
; case set:
; if(fbit==2)
ldd R24,y+15
cpi R24,2
breq X77
rjmp L173
X77:
.dbline 377
; {
.dbline 378
; resettemp=reset_m;
sts _resettemp,R14
.dbline 379
; EEPROMwrite(0x11,resettemp);
mov R18,R14
ldi R16,17
ldi R17,0
rcall _EEPROMwrite_extIO
.dbline 380
; fbit=0;
clr R0
std y+15,R0
.dbline 381
; }
rjmp L167
L172:
.dbline 385
; else
;
; while(1)
; {
.dbline 386
; ccc=0;
clr R12
.dbline 387
; if(fbit!=2) process (ccc,p,0);
ldd R24,y+15
cpi R24,2
breq L175
.dbline 387
clr R2
std y+2,R2
lds R2,_p
lds R3,_p+1
std y+1,R3
std y+0,R2
mov R2,R12
clr R3
clr R4
clr R5
movw R16,R2
movw R18,R4
rcall _process
L175:
.dbline 388
; for(ccc=0;ccc<6;ccc++)
clr R12
rjmp L180
L177:
.dbline 389
.dbline 389
lds R2,_p
lds R3,_p+1
mov R30,R12
clr R31
add R30,R2
adc R31,R3
ldd R24,z+0
cpi R24,10
brne L181
.dbline 389
mov R30,R12
clr R31
add R30,R2
adc R31,R3
clr R2
std z+0,R2
L181:
.dbline 389
L178:
.dbline 388
inc R12
L180:
.dbline 388
mov R24,R12
cpi R24,6
brlo L177
.dbline 390
; {if(p[ccc]==10) p[ccc]=0;}
; o=lock;
ldi R24,<_lock
ldi R25,>_lock
sts _o+1,R25
sts _o,R24
.dbline 391
; key=display_flash(fbit,cbit,2);
ldi R24,2
std y+0,R24
ldd R18,y+16
ldd R16,y+15
rcall _display_flash
sts _key,R16
.dbline 392
; switch (key)
mov R2,R16
clr R3
std y+14,R3
std y+13,R2
movw R24,R2
cpi R24,19
ldi R30,0
cpc R25,R30
brne X78
rjmp L55
X78:
ldi R24,19
cp R24,R2
cpc R25,R3
brlt L207
L206:
ldd R24,y+13
ldd R25,y+14
cpi R24,7
ldi R30,0
cpc R25,R30
breq L186
cpi R24,11
ldi R30,0
cpc R25,R30
brne X79
rjmp L199
X79:
cpi R24,13
ldi R30,0
cpc R25,R30
brne X80
rjmp L194
X80:
cpi R24,14
ldi R30,0
cpc R25,R30
breq L189
rjmp L183
L207:
ldd R24,y+13
ldd R25,y+14
cpi R24,23
ldi R30,0
cpc R25,R30
brne X81
rjmp L12
X81:
rjmp L183
X12:
.dbline 393
; {
L186:
.dbline 395
; case set:
; if(fbit==2)
ldd R24,y+15
cpi R24,2
breq X82
rjmp L53
X82:
.dbline 396
; { fbit=0;
.dbline 396
clr R0
std y+15,R0
.dbline 397
; lockda=process_add();
rcall _process_add
sts _lockda+1,R17
sts _lockda,R16
.dbline 398
; }
.dbline 400
; else
; goto menu2;
.dbline 401
; break;
rjmp L184
L189:
.dbline 403
; case up:
; if(fbit==2)
ldd R24,y+15
cpi R24,2
breq X83
rjmp L184
X83:
.dbline 404
; { if(p[cbit]<9) p[cbit]++;
.dbline 404
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldd R24,z+0
cpi R24,9
brsh L192
.dbline 404
ldd R4,y+16
clr R5
add R4,R2
adc R5,R3
movw R30,R4
ldd R24,z+0
subi R24,255 ; addi 1
std z+0,R24
rjmp L184
L192:
.dbline 405
; else p[cbit]=0;}
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
clr R2
std z+0,R2
.dbline 405
.dbline 406
; break;
rjmp L184
L194:
.dbline 408
; case down:
; if(fbit==2)
ldd R24,y+15
cpi R24,2
breq X84
rjmp L184
X84:
.dbline 409
; { if(p[cbit]>0) p[cbit]--;
.dbline 409
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldd R2,z+0
clr R3
cp R3,R2
brsh L197
.dbline 409
lds R2,_p
lds R3,_p+1
ldd R4,y+16
clr R5
add R4,R2
adc R5,R3
movw R30,R4
ldd R24,z+0
subi R24,1
std z+0,R24
rjmp L184
L197:
.dbline 410
; else p[cbit]=9;}
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldi R24,9
std z+0,R24
.dbline 410
.dbline 411
; break;
rjmp L184
L199:
.dbline 413
; case left:
; fbit=2;
ldi R24,2
std y+15,R24
.dbline 414
; if(cbit<5) cbit++;
ldd R24,y+16
cpi R24,5
brsh L200
.dbline 414
mov R0,R24
inc R0
std y+16,R0
rjmp L201
L200:
.dbline 415
; else cbit=0;
clr R0
std y+16,R0
L201:
.dbline 416
; if(p[cbit]==10) p[cbit]=0;
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldd R24,z+0
cpi R24,10
brne L184
.dbline 416
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
clr R2
std z+0,R2
.dbline 417
; break;
.dbline 419
; case set3s:
; return;
.dbline 421
; case set_left3s:
; goto menu3;
L183:
L184:
.dbline 423
L173:
.dbline 384
rjmp L172
X13:
.dbline 424
; }
; }
; break;
rjmp L167
L208:
L209:
.dbline 426
; rst_mcall: case up:
; if(fbit==2)
ldd R24,y+15
cpi R24,2
brne L167
.dbline 427
; {
.dbline 428
; if(reset_m<2) reset_m++;
mov R24,R14
cpi R24,2
brsh L212
.dbline 428
inc R14
rjmp L167
L212:
.dbline 429
; else reset_m=0;
clr R14
.dbline 430
; }
.dbline 431
; break;
rjmp L167
X14:
.dbline 433
; case down:
; goto rst_mcall;
L215:
.dbline 435
; case left:
; fbit=2;
ldi R24,2
std y+15,R24
.dbline 436
; break;
.dbline 438
; case set3s:
; return ;
.dbline 440
; case set_left3s:
; goto menu3;
L166:
L167:
.dbline 442
L158:
.dbline 364
rjmp L157
X15:
.dbline 443
; }
; }
; break;
rjmp L152
L220:
L221:
.dbline 445
; case up:
; in_mcall: if(fbit==2)
ldd R24,y+15
cpi R24,2
brne L152
.dbline 446
; {
.dbline 447
; if(intm_m==0) intm_m++;
tst R10
brne L224
.dbline 447
inc R10
rjmp L152
L224:
.dbline 448
; else intm_m=0;
clr R10
.dbline 449
; }
.dbline 450
; break;
rjmp L152
X16:
.dbline 452
; case down:
; goto in_mcall;
L227:
.dbline 454
; case left:
; fbit=2;
ldi R24,2
std y+15,R24
.dbline 455
; break;
.dbline 457
; case set3s:
; return ;
.dbline 459
; case set_left3s:
; goto menu3;
L151:
L152:
.dbline 461
L147:
.dbline 349
rjmp L146
X17:
.dbline 462
; }
; }
; }
.dbline 463
; }
.dbline 464
; break;
rjmp L139
L232:
.dbline 466
; case up:
; if(fbit==2)
ldd R24,y+15
cpi R24,2
breq X85
rjmp L139
X85:
.dbline 467
; { if(cbit!=3) { if(p[cbit]<9) p[cbit]++;
.dbline 467
ldd R24,y+16
cpi R24,3
breq L235
.dbline 467
.dbline 467
lds R2,_p
lds R3,_p+1
mov R30,R24
clr R31
add R30,R2
adc R31,R3
ldd R24,z+0
cpi R24,9
brsh L237
.dbline 467
ldd R4,y+16
clr R5
add R4,R2
adc R5,R3
movw R30,R4
ldd R24,z+0
subi R24,255 ; addi 1
std z+0,R24
rjmp L139
L237:
.dbline 468
; else p[cbit]=0; }
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
clr R2
std z+0,R2
.dbline 468
rjmp L139
L235:
.dbline 469
; else { if(p[cbit]==0) p[cbit]=1;
.dbline 469
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldd R2,z+0
tst R2
brne L239
.dbline 469
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldi R24,1
std z+0,R24
rjmp L139
L239:
.dbline 470
; else p[cbit]=0;}
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
clr R2
std z+0,R2
.dbline 470
.dbline 471
; }
.dbline 472
; break;
rjmp L139
L241:
.dbline 474
; case down:
; if(fbit==2)
ldd R24,y+15
cpi R24,2
breq X86
rjmp L139
X86:
.dbline 475
; { if(cbit!=3) { if(p[cbit]>0) p[cbit]--;
.dbline 475
ldd R24,y+16
cpi R24,3
breq L244
.dbline 475
.dbline 475
lds R2,_p
lds R3,_p+1
mov R30,R24
clr R31
add R30,R2
adc R31,R3
ldd R2,z+0
clr R3
cp R3,R2
brsh L246
.dbline 475
lds R2,_p
lds R3,_p+1
mov R4,R24
clr R5
add R4,R2
adc R5,R3
movw R30,R4
ldd R24,z+0
subi R24,1
std z+0,R24
rjmp L139
L246:
.dbline 476
; else p[cbit]=9; }
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldi R24,9
std z+0,R24
.dbline 476
rjmp L139
L244:
.dbline 477
; else { if(p[cbit]==0) p[cbit]=1;
.dbline 477
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldd R2,z+0
tst R2
brne L248
.dbline 477
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldi R24,1
std z+0,R24
rjmp L139
L248:
.dbline 478
; else p[cbit]=0; }
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
clr R2
std z+0,R2
.dbline 478
.dbline 479
; }
.dbline 480
; break;
rjmp L139
L250:
.dbline 482
; case left:
; fbit=2;
ldi R24,2
std y+15,R24
.dbline 484
;
; if(cbit<3) {cbit++;}
ldd R24,y+16
cpi R24,3
brsh L251
.dbline 484
.dbline 484
mov R0,R24
inc R0
std y+16,R0
.dbline 484
rjmp L252
L251:
.dbline 485
; else { cbit=0;}
.dbline 485
clr R0
std y+16,R0
.dbline 485
L252:
.dbline 486
; if(p[cbit]==10) {p[cbit]=0;}
lds R2,_p
lds R3,_p+1
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
ldd R24,z+0
cpi R24,10
brne L139
.dbline 486
.dbline 486
ldd R30,y+16
clr R31
add R30,R2
adc R31,R3
clr R2
std z+0,R2
.dbline 486
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -