📄 kb.lis
字号:
015C 82E0 ldi R24,2
015E 849F mul R24,R20
0160 F001 movw R30,R0
0162 80E0 ldi R24,<_unshifted+1
0164 90E0 ldi R25,>_unshifted+1
0166 E80F add R30,R24
0168 F91F adc R31,R25
016A 0491 lpm R16,Z
016C 49DF xcall _put_kbbuff
016E .dbline 89
016E ; }
016E 23C0 xjmp L36
0170 L35:
0170 .dbline 91
0170 ; else
0170 ; {
0170 .dbline 92
0170 4427 clr R20
0172 01C0 xjmp L48
0174 L45:
0174 .dbline 92
0174 L46:
0174 .dbline 92
0174 4395 inc R20
0176 L48:
0176 .dbline 92
0176 ; for(i = 0;shifted[i][0]!=sc && shifted[i][0]; i++);
0176 82E0 ldi R24,2
0178 849F mul R24,R20
017A F001 movw R30,R0
017C 80E0 ldi R24,<_shifted
017E 90E0 ldi R25,>_shifted
0180 E80F add R30,R24
0182 F91F adc R31,R25
0184 2490 lpm R2,Z
0186 3324 clr R3
0188 2616 cp R2,R22
018A 11F0 breq L49
018C 2220 tst R2
018E 91F7 brne L45
0190 L49:
0190 .dbline 93
0190 ; if (shifted[i][0] == sc)
0190 82E0 ldi R24,2
0192 849F mul R24,R20
0194 F001 movw R30,R0
0196 80E0 ldi R24,<_shifted
0198 90E0 ldi R25,>_shifted
019A E80F add R30,R24
019C F91F adc R31,R25
019E E491 lpm R30,Z
01A0 E617 cp R30,R22
01A2 49F4 brne L50
01A4 .dbline 94
01A4 ; {
01A4 .dbline 95
01A4 ; put_kbbuff(shifted[i][1]);
01A4 82E0 ldi R24,2
01A6 849F mul R24,R20
01A8 F001 movw R30,R0
01AA 80E0 ldi R24,<_shifted+1
01AC 90E0 ldi R25,>_shifted+1
01AE E80F add R30,R24
01B0 F91F adc R31,R25
01B2 0491 lpm R16,Z
01B4 25DF xcall _put_kbbuff
01B6 .dbline 96
01B6 ; }
01B6 L50:
01B6 .dbline 97
01B6 ; }
01B6 L36:
01B6 .dbline 98
01B6 ; }
01B6 .dbline 99
01B6 ; }
01B6 .dbline -2
01B6 .dbline 105
01B6 ; /*debug
01B6 ; kb_buffer[1]=ascii[sc%16];
01B6 ; sc=sc/16;
01B6 ; kb_buffer[0]=ascii[sc%16];
01B6 ; debug*/
01B6 ; }
01B6 L10:
01B6 2296 adiw R28,2
01B8 0E940000 xcall pop_gset3
01BC .dbline 0 ; func end
01BC 0895 ret
01BE .dbsym r i 20 c
01BE .dbsym r sc 22 c
01BE .dbend
.area vector(rom, abs)
.org 20
0014 0C94DF00 jmp _int4_isr
.area text(rom, con, rel)
01BE .dbfile C:\work\mega128\mix_exp\kb.c
.area bss(ram, con, rel)
0003 .dbfile C:\work\mega128\mix_exp\kb.c
0003 L55:
0003 .blkb 1
.area text(rom, con, rel)
01BE .dbfile C:\work\mega128\mix_exp\kb.c
01BE .dbfunc e int4_isr _int4_isr fV
01BE .dbsym s data L55 c
.even
01BE _int4_isr::
01BE 0E940000 xcall push_lset
01C2 0E940000 xcall push_gset1
01C6 .dbline -1
01C6 .dbline 108
01C6 ; #pragma interrupt_handler int4_isr:6
01C6 ; void int4_isr(void)
01C6 ; {
01C6 .dbline 121
01C6 ; static unsigned char data;
01C6 ; /*if((bitcount < 11)&(bitcount > 2))
01C6 ; {
01C6 ; data = (data >> 1);
01C6 ; if((PINE&0x20)!=0)
01C6 ; data|=0x80;
01C6 ; }
01C6 ; if (--bitcount==0)
01C6 ; {
01C6 ; bitcount=11;
01C6 ; decode(data);
01C6 ; }*/
01C6 ; switch (bitcount)
01C6 40914400 lds R20,_bitcount
01CA 5527 clr R21
01CC 4130 cpi R20,1
01CE E0E0 ldi R30,0
01D0 5E07 cpc R21,R30
01D2 E1F0 breq L63
01D4 4230 cpi R20,2
01D6 E0E0 ldi R30,0
01D8 5E07 cpc R21,R30
01DA 91F0 breq L62
01DC 4130 cpi R20,1
01DE E0E0 ldi R30,0
01E0 5E07 cpc R21,R30
01E2 34F1 brlt L56
01E4 L68:
01E4 4B30 cpi R20,11
01E6 E0E0 ldi R30,0
01E8 5E07 cpc R21,R30
01EA 09F0 breq L59
01EC 21C0 xjmp L56
01EE X5:
01EE .dbline 122
01EE ; {
01EE L59:
01EE .dbline 123
01EE ; case 11:{
01EE .dbline 124
01EE ; if ((PINE&0x20)!=0)
01EE 0D9B sbis 0x1,5
01F0 01C0 rjmp L60
01F2 .dbline 125
01F2 ; return;
01F2 2EC0 xjmp L54
01F4 L60:
01F4 .dbline 127
01F4 ; else
01F4 ; bitcount--;
01F4 80914400 lds R24,_bitcount
01F8 8150 subi R24,1
01FA 80934400 sts _bitcount,R24
01FE .dbline 128
01FE ; break;}
01FE 28C0 xjmp L57
0200 L62:
0200 .dbline 129
0200 ; case 2:{
0200 .dbline 130
0200 ; bitcount--;
0200 80914400 lds R24,_bitcount
0204 8150 subi R24,1
0206 80934400 sts _bitcount,R24
020A .dbline 131
020A ; break;}
020A 22C0 xjmp L57
020C L63:
020C .dbline 132
020C ; case 1:{
020C .dbline 133
020C ; bitcount--;
020C 80914400 lds R24,_bitcount
0210 8150 subi R24,1
0212 80934400 sts _bitcount,R24
0216 .dbline 134
0216 ; if ((PINE&0x20)==0)
0216 0D99 sbic 0x1,5
0218 04C0 rjmp L64
021A .dbline 135
021A ; {
021A .dbline 136
021A ; bitcount=11;
021A 8BE0 ldi R24,11
021C 80934400 sts _bitcount,R24
0220 .dbline 137
0220 ; return;
0220 17C0 xjmp L54
0222 L64:
0222 .dbline 140
0222 ; }
0222 ; else
0222 ; {
0222 .dbline 141
0222 ; bitcount=11;
0222 8BE0 ldi R24,11
0224 80934400 sts _bitcount,R24
0228 .dbline 142
0228 ; decode(data);
0228 00910300 lds R16,L55
022C 1FDF xcall _decode
022E .dbline 143
022E ; }
022E .dbline 144
022E ; break;}
022E 10C0 xjmp L57
0230 L56:
0230 .dbline 145
0230 ; default:{
0230 .dbline 146
0230 ; data = (data >> 1);
0230 20900300 lds R2,L55
0234 2694 lsr R2
0236 20920300 sts L55,R2
023A .dbline 147
023A ; if((PINE&0x20)!=0)
023A 0D9B sbis 0x1,5
023C 04C0 rjmp L66
023E .dbline 148
023E ; data|=0x80;
023E 822D mov R24,R2
0240 8068 ori R24,128
0242 80930300 sts L55,R24
0246 L66:
0246 .dbline 149
0246 80914400 lds R24,_bitcount
024A 8150 subi R24,1
024C 80934400 sts _bitcount,R24
0250 .dbline 150
0250 .dbline 151
0250 L57:
0250 .dbline -2
0250 .dbline 152
0250 ; bitcount--;
0250 ; }
0250 ; }
0250 ; }
0250 L54:
0250 0E940000 xcall pop_gset1
0254 0E940000 xcall pop_lset
0258 .dbline 0 ; func end
0258 1895 reti
025A .dbend
.area bss(ram, con, rel)
0004 .dbfile C:\work\mega128\mix_exp\kb.c
0004 _kb_buffer::
0004 .blkb 64
0044 .dbsym e kb_buffer _kb_buffer A[64:64]c
0044 _bitcount::
0044 .blkb 1
0045 .dbsym e bitcount _bitcount c
.area data(ram, con, rel)
0002 .dbfile C:\work\mega128\mix_exp\kb.c
0002 L26:
0002 .blkb 13
.area idata
0002 BDABD2AAD6D8D0C2C6F4B6AF00 .byte 189,171,210,170,214,216,208,194,198,244,182,175,0
.area data(ram, con, rel)
000F .dbfile C:\work\mega128\mix_exp\kb.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -