📄 8880.lis
字号:
037A 00D0 rcall push_xgset303C
037C 5801 movw R10,R16
037E .dbline -1
037E .dbline 177
037E ; }
037E ; void M8880_CPDial(char *buf)
037E ; {
037E .dbline 182
037E ; int x;
037E ; #if M8880_INT==1
037E ; GICR&=~(1<<INT1);
037E ; #else
037E ; GICR&=~(1<<INT0);
037E 8BB7 in R24,0x3b
0380 8F7B andi R24,191
0382 8BBF out 0x3b,R24
0384 .dbline 184
0384 ; #endif
0384 ; M8880_WriteCtrl(M8880_BIT0|M8880_BIT1|M8880_BIT2|M8880_BIT3,-1);
0384 2FEF ldi R18,255
0386 0FE0 ldi R16,15
0388 5FDE rcall _M8880_WriteCtrl
038A 12C0 rjmp L98
038C L97:
038C .dbline 185
038C ; while(*buf!=0){
038C .dbline 187
038C ; char c;
038C ; c=*buf++;
038C F501 movw R30,R10
038E 4191 ld R20,Z+
0390 5F01 movw R10,R30
0392 .dbline 188
0392 ; c-=('0');
0392 4053 subi R20,48
0394 .dbline 189
0394 ; M8880_WriteChar(number[c]);
0394 80E0 ldi R24,<_number
0396 90E0 ldi R25,>_number
0398 E42F mov R30,R20
039A FF27 clr R31
039C E80F add R30,R24
039E F91F adc R31,R25
03A0 0081 ldd R16,z+0
03A2 2EDE rcall _M8880_WriteChar
03A4 L100:
03A4 .dbline 190
03A4 ; while(((x=M8880_ReadState())&M8880_BIT0)==0x0);
03A4 L101:
03A4 .dbline 190
03A4 80DE rcall _M8880_ReadState
03A6 202E mov R2,R16
03A8 3324 clr R3
03AA 6101 movw R12,R2
03AC 00FF sbrs R16,0
03AE FACF rjmp L100
03B0 X19:
03B0 .dbline 191
03B0 ; };
03B0 L98:
03B0 .dbline 185
03B0 F501 movw R30,R10
03B2 2080 ldd R2,z+0
03B4 2220 tst R2
03B6 51F7 brne L97
03B8 X20:
03B8 .dbline 191
03B8 .dbline 192
03B8 ; M8880_WriteCtrl(M8880_BIT0|M8880_BIT2,-1);
03B8 2FEF ldi R18,255
03BA 05E0 ldi R16,5
03BC 45DE rcall _M8880_WriteCtrl
03BE .dbline 193
03BE ; M8880_ReadState();
03BE 73DE rcall _M8880_ReadState
03C0 .dbline 198
03C0 ; #if M8880_INT==1
03C0 ; GIFR|=(1<<INT1);
03C0 ; GICR|=(1<<INT1);
03C0 ; #else
03C0 ; GIFR|=(1<<INT0);
03C0 8AB7 in R24,0x3a
03C2 8064 ori R24,64
03C4 8ABF out 0x3a,R24
03C6 .dbline 199
03C6 ; GICR|=(1<<INT0);
03C6 8BB7 in R24,0x3b
03C8 8064 ori R24,64
03CA 8BBF out 0x3b,R24
03CC .dbline -2
03CC L96:
03CC .dbline 0 ; func end
03CC 00C0 rjmp pop_xgset303C
03CE .dbsym r c 20 c
03CE .dbsym r x 12 I
03CE .dbsym r buf 10 pc
03CE .dbend
.area vector(rom, abs)
.org 4
0004 E7C1 rjmp _int1_isr
.area text(rom, con, rel)
03CE .dbfile E:\Shuaihu\AVR\8880\8880.c
03CE .dbfunc e int1_isr _int1_isr fV
.even
03CE _int1_isr::
03CE 0A92 st -y,R0
03D0 1A92 st -y,R1
03D2 2A92 st -y,R2
03D4 3A92 st -y,R3
03D6 4A92 st -y,R4
03D8 5A92 st -y,R5
03DA 6A92 st -y,R6
03DC 7A92 st -y,R7
03DE 8A92 st -y,R8
03E0 9A92 st -y,R9
03E2 0A93 st -y,R16
03E4 1A93 st -y,R17
03E6 2A93 st -y,R18
03E8 3A93 st -y,R19
03EA 8A93 st -y,R24
03EC 9A93 st -y,R25
03EE AA93 st -y,R26
03F0 BA93 st -y,R27
03F2 EA93 st -y,R30
03F4 FA93 st -y,R31
03F6 0FB6 in R0,0x3f
03F8 0A92 st -y,R0
03FA .dbline -1
03FA .dbline 204
03FA ; #endif
03FA ; }
03FA ; #pragma interrupt_handler int1_isr:iv_INT1
03FA ; void int1_isr(void)
03FA ; {
03FA .dbline 205
03FA ; if ((sysoption.calling==0) && sysoption.autoanswer){
03FA 20900100 lds R2,_sysoption+1
03FE 2220 tst R2
0400 91F4 brne L104
0402 X21:
0402 20900400 lds R2,_sysoption+4
0406 2220 tst R2
0408 71F0 breq L104
040A X22:
040A .dbline 205
040A .dbline 206
040A ; M8880_Handup;
040A AD9A sbi 0x15,5
040C .dbline 206
040C .dbline 207
040C ; sysoption.calling=2;
040C 82E0 ldi R24,2
040E 80930100 sts _sysoption+1,R24
0412 .dbline 208
0412 ; serial_send(answering);
0412 00910C00 lds R16,_answering
0416 10910D00 lds R17,_answering+1
041A 00D0 rcall _serial_send
041C .dbline 209
041C ; MCUCR|=0xc;
041C 85B7 in R24,0x35
041E 8C60 ori R24,12
0420 85BF out 0x35,R24
0422 .dbline 210
0422 ; TCCR1B=0x05;
0422 85E0 ldi R24,5
0424 8EBD out 0x2e,R24
0426 .dbline 211
0426 ; }
0426 L104:
0426 .dbline 212
0426 ; if (sysoption.calling==3){
0426 80910100 lds R24,_sysoption+1
042A 8330 cpi R24,3
042C 91F4 brne L109
042E X23:
042E .dbline 212
042E .dbline 213
042E ; M8880_Handdown;
042E AD98 cbi 0x15,5
0430 .dbline 214
0430 ; sysoption.calling=0;
0430 2224 clr R2
0432 20920100 sts _sysoption+1,R2
0436 .dbline 215
0436 ; MCUCR&=~0xc;
0436 85B7 in R24,0x35
0438 837F andi R24,243
043A 85BF out 0x35,R24
043C .dbline 216
043C ; MCUCR|=0x8;
043C 85B7 in R24,0x35
043E 8860 ori R24,8
0440 85BF out 0x35,R24
0442 .dbline 217
0442 ; serial_send("aa");
0442 00E0 ldi R16,<L113
0444 10E0 ldi R17,>L113
0446 00D0 rcall _serial_send
0448 .dbline 218
0448 ; serial_send(handdown);
0448 00910200 lds R16,_handdown
044C 10910300 lds R17,_handdown+1
0450 00D0 rcall _serial_send
0452 .dbline 219
0452 ; }
0452 L109:
0452 .dbline -2
0452 L103:
0452 .dbline 0 ; func end
0452 0990 ld R0,y+
0454 0FBE out 0x3f,R0
0456 F991 ld R31,y+
0458 E991 ld R30,y+
045A B991 ld R27,y+
045C A991 ld R26,y+
045E 9991 ld R25,y+
0460 8991 ld R24,y+
0462 3991 ld R19,y+
0464 2991 ld R18,y+
0466 1991 ld R17,y+
0468 0991 ld R16,y+
046A 9990 ld R9,y+
046C 8990 ld R8,y+
046E 7990 ld R7,y+
0470 6990 ld R6,y+
0472 5990 ld R5,y+
0474 4990 ld R4,y+
0476 3990 ld R3,y+
0478 2990 ld R2,y+
047A 1990 ld R1,y+
047C 0990 ld R0,y+
047E 1895 reti
0480 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\Shuaihu\AVR\8880\8880.c
0000 _M8880_State::
0000 .blkb 11
000B .dbstruct 0 11 tagM8880_STATE
000B .dbfield 0 SendCount c
000B .dbfield 1 CurSend pc
000B .dbfield 3 RecvIntCount c
000B .dbfield 4 RecvStartPtr pc
000B .dbfield 6 RecvEndPtr pc
000B .dbfield 8 CurRecv pc
000B .dbfield 10 Sending c
000B .dbend
000B .dbsym e M8880_State _M8880_State S[tagM8880_STATE]
000B _recvbuf::
000B .blkb 50
003D .dbsym e recvbuf _recvbuf A[50:50]c
003D _sendbuf::
003D .blkb 50
006F .dbsym e sendbuf _sendbuf A[50:50]c
.area data(ram, con, rel)
001A .dbfile E:\Shuaihu\AVR\8880\8880.c
001A L113:
001A .blkb 3
.area idata
001A 616100 .byte 'a,'a,0
.area data(ram, con, rel)
001D .dbfile E:\Shuaihu\AVR\8880\8880.c
001D L23:
001D .blkb 18
.area idata
001D 30313233343536373839302A23616263 .byte 48,49,50,51,52,53,54,55,56,57,48,42,35,'a,'b,'c
002D 6400 .byte 'd,0
.area data(ram, con, rel)
002F .dbfile E:\Shuaihu\AVR\8880\8880.c
002F L7:
002F .blkb 11
.area idata
002F 616E73776572696E670A00 .byte 'a,'n,'s,'w,'e,'r,'i,'n,'g,10,0
.area data(ram, con, rel)
003A .dbfile E:\Shuaihu\AVR\8880\8880.c
003A L6:
003A .blkb 9
.area idata
003A 63616C6C696E670A00 .byte 'c,'a,'l,'l,'i,'n,'g,10,0
.area data(ram, con, rel)
0043 .dbfile E:\Shuaihu\AVR\8880\8880.c
0043 L5:
0043 .blkb 9
.area idata
0043 62757379696E670A00 .byte 'b,'u,'s,'y,'i,'n,'g,10,0
.area data(ram, con, rel)
004C .dbfile E:\Shuaihu\AVR\8880\8880.c
004C L4:
004C .blkb 7
.area idata
004C 6572726F720A00 .byte 'e,'r,'r,'o,'r,10,0
.area data(ram, con, rel)
0053 .dbfile E:\Shuaihu\AVR\8880\8880.c
0053 L3:
0053 .blkb 4
.area idata
0053 6F6B0A00 .byte 'o,'k,10,0
.area data(ram, con, rel)
0057 .dbfile E:\Shuaihu\AVR\8880\8880.c
0057 L2:
0057 .blkb 10
.area idata
0057 68616E64646F776E0A00 .byte 'h,'a,'n,'d,'d,'o,'w,'n,10,0
.area data(ram, con, rel)
0061 .dbfile E:\Shuaihu\AVR\8880\8880.c
0061 L1:
0061 .blkb 12
.area idata
0061 6E6F726573706F6E73650A00 .byte 'n,'o,'r,'e,'s,'p,'o,'n,'s,'e,10,0
.area data(ram, con, rel)
006D .dbfile E:\Shuaihu\AVR\8880\8880.c
006D ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -