📄 main.lis
字号:
0518 ; PrintConstAscStr(0,0,ScreenStr12[16],16);
0518 80E1 ldi R24,16
051A 8A83 std y+2,R24
051C 80E0 ldi R24,<_ScreenStr12+256
051E 90E0 ldi R25,>_ScreenStr12+256
0520 9983 std y+1,R25
0522 8883 std y+0,R24
0524 2227 clr R18
0526 0027 clr R16
0528 0E940000 xcall _PrintConstAscStr
052C .dbline 249
052C ; PrintConstAscStr(1,0,ScreenStr12[17],16);
052C 80E1 ldi R24,16
052E 8A83 std y+2,R24
0530 80E0 ldi R24,<_ScreenStr12+272
0532 90E0 ldi R25,>_ScreenStr12+272
0534 9983 std y+1,R25
0536 8883 std y+0,R24
0538 2227 clr R18
053A 01E0 ldi R16,1
053C 0E940000 xcall _PrintConstAscStr
0540 .dbline 250
0540 ; PrintConstAscStr(3,0,ScreenStr12[18],16);
0540 80E1 ldi R24,16
0542 8A83 std y+2,R24
0544 80E0 ldi R24,<_ScreenStr12+288
0546 90E0 ldi R25,>_ScreenStr12+288
0548 9983 std y+1,R25
054A 8883 std y+0,R24
054C 2227 clr R18
054E 03E0 ldi R16,3
0550 0E940000 xcall _PrintConstAscStr
0554 .dbline 251
0554 ; PrintConstAscStr(6,0,ScreenStr12[20],6);
0554 86E0 ldi R24,6
0556 8A83 std y+2,R24
0558 80E0 ldi R24,<_ScreenStr12+320
055A 90E0 ldi R25,>_ScreenStr12+320
055C 9983 std y+1,R25
055E 8883 std y+0,R24
0560 2227 clr R18
0562 06E0 ldi R16,6
0564 0E940000 xcall _PrintConstAscStr
0568 .dbline 252
0568 ; PrintConstAscStr(6,64,ScreenStr12[21],6);
0568 86E0 ldi R24,6
056A 8A83 std y+2,R24
056C 80E0 ldi R24,<_ScreenStr12+336
056E 90E0 ldi R25,>_ScreenStr12+336
0570 9983 std y+1,R25
0572 8883 std y+0,R24
0574 20E4 ldi R18,64
0576 06E0 ldi R16,6
0578 0E940000 xcall _PrintConstAscStr
057C .dbline 255
057C ;
057C ; //默认选中第一项:
057C ; PrintOneASCII(0,0,'>');
057C 8EE3 ldi R24,62
057E 8883 std y+0,R24
0580 2227 clr R18
0582 0027 clr R16
0584 0E940000 xcall _PrintOneASCII
0588 .dbline 256
0588 ; PrintOneASCII(1,0,' ');
0588 80E2 ldi R24,32
058A 8883 std y+0,R24
058C 2227 clr R18
058E 01E0 ldi R16,1
0590 0E940000 xcall _PrintOneASCII
0594 .dbline 258
0594 ;
0594 ; SB_Amp=((*VBass)&0xF0)>>4; //取高四位
0594 ED85 ldd R30,y+13
0596 FE85 ldd R31,y+14
0598 8081 ldd R24,z+0
059A 807F andi R24,240
059C 8295 swap R24
059E 8F70 andi R24,#0x0F
05A0 A82E mov R10,R24
05A2 .dbline 259
05A2 ; SB_Freq=(*VBass)&0x0F;//取低四位
05A2 6081 ldd R22,z+0
05A4 6F70 andi R22,15
05A6 .dbline 261
05A6 ; //显示当前音量:
05A6 ; DisplayNumChar(6,16,SB_Amp,2);
05A6 82E0 ldi R24,2
05A8 8A83 std y+2,R24
05AA A882 std y+0,R10
05AC 20E1 ldi R18,16
05AE 06E0 ldi R16,6
05B0 34DD xcall _DisplayNumChar
05B2 .dbline 262
05B2 ; DisplayNumChar(6,80,SB_Freq,2);
05B2 82E0 ldi R24,2
05B4 8A83 std y+2,R24
05B6 6883 std y+0,R22
05B8 20E5 ldi R18,80
05BA 06E0 ldi R16,6
05BC 2EDD xcall _DisplayNumChar
05BE .dbline 264
05BE ;
05BE ; KeyIni();KeyInput();
05BE 88B3 in R24,0x18
05C0 8F60 ori R24,15
05C2 88BB out 0x18,R24
05C4 .dbline 264
05C4 87B3 in R24,0x17
05C6 807F andi R24,240
05C8 87BB out 0x17,R24
05CA DAC0 xjmp L71
05CC L70:
05CC .dbline 266
05CC ; while(1)
05CC ; {
05CC .dbline 267
05CC ; if(KeySt02==0) //--
05CC 86B3 in R24,0x16
05CE 8270 andi R24,2
05D0 86BB out 0x16,R24
05D2 8823 tst R24
05D4 51F5 brne L73
05D6 X26:
05D6 .dbline 268
05D6 ; {
05D6 .dbline 270
05D6 ; //等待该键释放
05D6 ; Delay(200);
05D6 08EC ldi R16,200
05D8 10E0 ldi R17,0
05DA 0E940000 xcall _Delay
05DE 04C0 xjmp L76
05E0 L75:
05E0 .dbline 271
05E0 ; while(KeySt02==0) Delay(200);
05E0 08EC ldi R16,200
05E2 10E0 ldi R17,0
05E4 0E940000 xcall _Delay
05E8 L76:
05E8 .dbline 271
05E8 86B3 in R24,0x16
05EA 8270 andi R24,2
05EC 86BB out 0x16,R24
05EE 8823 tst R24
05F0 B9F3 breq L75
05F2 X27:
05F2 .dbline 272
05F2 ; if(hl==0) SB_Amp=(--SB_Amp)&0x0F;
05F2 CC20 tst R12
05F4 31F4 brne L78
05F6 X28:
05F6 .dbline 272
05F6 4A2D mov R20,R10
05F8 4150 subi R20,1
05FA 842F mov R24,R20
05FC 8F70 andi R24,15
05FE A82E mov R10,R24
0600 07C0 xjmp L79
0602 L78:
0602 .dbline 274
0602 ; else
0602 ; {
0602 .dbline 275
0602 ; SB_Freq=(--SB_Freq)&0x0F;
0602 462F mov R20,R22
0604 4150 subi R20,1
0606 642F mov R22,R20
0608 6F70 andi R22,15
060A .dbline 276
060A ; if(SB_Freq<2) SB_Freq=2;
060A 6230 cpi R22,2
060C 08F4 brsh L80
060E X29:
060E .dbline 276
060E 62E0 ldi R22,2
0610 L80:
0610 .dbline 277
0610 ; }
0610 L79:
0610 .dbline 279
0610 ; //显示当前音量:
0610 ; DisplayNumChar(6,16,SB_Amp,2);
0610 82E0 ldi R24,2
0612 8A83 std y+2,R24
0614 A882 std y+0,R10
0616 20E1 ldi R18,16
0618 06E0 ldi R16,6
061A FFDC xcall _DisplayNumChar
061C .dbline 280
061C ; DisplayNumChar(6,80,SB_Freq,2);
061C 82E0 ldi R24,2
061E 8A83 std y+2,R24
0620 6883 std y+0,R22
0622 20E5 ldi R18,80
0624 06E0 ldi R16,6
0626 F9DC xcall _DisplayNumChar
0628 .dbline 281
0628 ; }
0628 8DC0 xjmp L74
062A L73:
062A .dbline 282
062A ; else if(KeySt03==0) //++
062A 46B3 in R20,0x16
062C 4470 andi R20,4
062E 46BB out 0x16,R20
0630 4423 tst R20
0632 39F5 brne L82
0634 X30:
0634 .dbline 283
0634 ; {
0634 .dbline 285
0634 ; //等待该键释放
0634 ; Delay(200);
0634 08EC ldi R16,200
0636 10E0 ldi R17,0
0638 0E940000 xcall _Delay
063C 04C0 xjmp L85
063E L84:
063E .dbline 286
063E ; while(KeySt03==0) Delay(200);
063E 08EC ldi R16,200
0640 10E0 ldi R17,0
0642 0E940000 xcall _Delay
0646 L85:
0646 .dbline 286
0646 46B3 in R20,0x16
0648 4470 andi R20,4
064A 46BB out 0x16,R20
064C 4423 tst R20
064E B9F3 breq L84
0650 X31:
0650 .dbline 287
0650 ; if(hl==0) SB_Amp=(++SB_Amp)&0x0F;
0650 CC20 tst R12
0652 31F4 brne L87
0654 X32:
0654 .dbline 287
0654 4A2D mov R20,R10
0656 4F5F subi R20,255 ; addi 1
0658 842F mov R24,R20
065A 8F70 andi R24,15
065C A82E mov R10,R24
065E 04C0 xjmp L88
0660 L87:
0660 .dbline 288
0660 ; else SB_Freq=(++SB_Freq)&0x0F;
0660 462F mov R20,R22
0662 4F5F subi R20,255 ; addi 1
0664 642F mov R22,R20
0666 6F70 andi R22,15
0668 L88:
0668 .dbline 290
0668 ; //显示当前音量:
0668 ; DisplayNumChar(6,16,SB_Amp,2);
0668 82E0 ldi R24,2
066A 8A83 std y+2,R24
066C A882 std y+0,R10
066E 20E1 ldi R18,16
0670 06E0 ldi R16,6
0672 D3DC xcall _DisplayNumChar
0674 .dbline 291
0674 ; DisplayNumChar(6,80,SB_Freq,2);
0674 82E0 ldi R24,2
0676 8A83 std y+2,R24
0678 6883 std y+0,R22
067A 20E5 ldi R18,80
067C 06E0 ldi R16,6
067E CDDC xcall _DisplayNumChar
0680 .dbline 292
0680 ; }
0680 61C0 xjmp L83
0682 L82:
0682 .dbline 293
0682 ; else if(KeySt04==0) //确定退出
0682 46B3 in R20,0x16
0684 4870 andi R20,8
0686 46BB out 0x16,R20
0688 4423 tst R20
068A 09F0 breq X43
068C 38C0 xjmp L89
068E X43:
068E X33:
068E .dbline 294
068E ; {//等待该键释放
068E .dbline 295
068E ; Delay(200);
068E 08EC ldi R16,200
0690 10E0 ldi R17,0
0692 0E940000 xcall _Delay
0696 04C0 xjmp L92
0698 L91:
0698 .dbline 296
0698 ; while(KeySt04==0) Delay(200);
0698 08EC ldi R16,200
069A 10E0 ldi R17,0
069C 0E940000 xcall _Delay
06A0 L92:
06A0 .dbline 296
06A0 46B3 in R20,0x16
06A2 4870 andi R20,8
06A4 46BB out 0x16,R20
06A6 4423 tst R20
06A8 B9F3 breq L91
06AA X34:
06AA .dbline 297
06AA ; hl=(++hl)%2;
06AA 4C2D mov R20,R12
06AC 4F5F subi R20,255 ; addi 1
06AE 12E0 ldi R17,2
06B0 042F mov R16,R20
06B2 0E940000 xcall
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -