📄 mnet.lss
字号:
9aa: 4b c0 rjmp .+150 ; 0xa42 <fnExt1_LinkLineOut_DTMF+0xf4>
if (mDTMF_In == cXin)
9ac: 8b 30 cpi r24, 0x0B ; 11
9ae: f1 f5 brne .+124 ; 0xa2c <fnExt1_LinkLineOut_DTMF+0xde>
{
fnCutOffLineIn(mExt1_Link[0]);
9b0: 80 91 ab 00 lds r24, 0x00AB
9b4: 0e 94 ec 0c call 0x19d8 <fnCutOffLineIn>
fnCutOffDTMF(mExt1_Link[1]);
9b8: 80 91 ac 00 lds r24, 0x00AC
9bc: 0e 94 38 0d call 0x1a70 <fnCutOffDTMF>
i= fnLinkExtLineY4Y5(cExt1Num);
9c0: 80 e0 ldi r24, 0x00 ; 0
9c2: 0e 94 80 0d call 0x1b00 <fnLinkExtLineY4Y5>
9c6: c8 2f mov r28, r24
if (!i)
9c8: 88 23 and r24, r24
9ca: 39 f4 brne .+14 ; 0x9da <fnExt1_LinkLineOut_DTMF+0x8c>
{
Ext1_FunPt=5; //5 fnExt1_Err Dial Wong Extension Numer / LintOut be TimeOut;
9cc: 85 e0 ldi r24, 0x05 ; 5
9ce: 80 93 9f 00 sts 0x009F, r24
Writesoundway(Connect_Busy,cX_Ext1,ON); //;连接忙音
9d2: 4f ef ldi r20, 0xFF ; 255
9d4: 6c 2f mov r22, r28
9d6: 86 e0 ldi r24, 0x06 ; 6
9d8: 26 c0 rjmp .+76 ; 0xa26 <fnExt1_LinkLineOut_DTMF+0xd8>
return;
}else
{
j = fnLinkDTMF_Ext(i); // Get DTMF
9da: 0e 94 a4 0d call 0x1b48 <fnLinkDTMF_Ext>
9de: 18 2f mov r17, r24
if (!j) // No any DTMF
9e0: 88 23 and r24, r24
9e2: 49 f4 brne .+18 ; 0x9f6 <fnExt1_LinkLineOut_DTMF+0xa8>
{
Ext1_FunPt=5; //5 fnExt1_Err Dial Wong Extension Numer / LintOut be TimeOut;
9e4: 85 e0 ldi r24, 0x05 ; 5
9e6: 80 93 9f 00 sts 0x009F, r24
fnCutOffY4Y5(i);
9ea: 8c 2f mov r24, r28
9ec: 0e 94 16 0d call 0x1a2c <fnCutOffY4Y5>
Writesoundway(Connect_Busy,cX_Ext1,ON); //;连接忙音
9f0: 4f ef ldi r20, 0xFF ; 255
9f2: 61 2f mov r22, r17
9f4: f0 cf rjmp .-32 ; 0x9d6 <fnExt1_LinkLineOut_DTMF+0x88>
return;
}
mExt1_Link[0] =i;
9f6: c0 93 ab 00 sts 0x00AB, r28
mExt1_Link[1] =j;
9fa: 80 93 ac 00 sts 0x00AC, r24
Ext1_FunPt=14; //14 fnExt1_LinkDTMF_InputExtNm 内线连DTMF Wait Input (1-6,7,#) 3 ->5,6
9fe: 8e e0 ldi r24, 0x0E ; 14
a00: 80 93 9f 00 sts 0x009F, r24
Ext1_dialtime=10000; //10s操作
a04: 80 e1 ldi r24, 0x10 ; 16
a06: 97 e2 ldi r25, 0x27 ; 39
a08: 90 93 b7 00 sts 0x00B7, r25
a0c: 80 93 b6 00 sts 0x00B6, r24
Writesoundway(mExt1_Link[0],(mExt1_Link[0]+10),ON); //连接模拟电信音
a10: 8c 2f mov r24, r28
a12: 86 5f subi r24, 0xF6 ; 246
a14: 4f ef ldi r20, 0xFF ; 255
a16: 68 2f mov r22, r24
a18: 8c 2f mov r24, r28
a1a: 0e 94 73 03 call 0x6e6 <Writesoundway>
Writesoundway(mExt1_Link[0],cX_Ext1,ON); //连接模拟电信音
a1e: 4f ef ldi r20, 0xFF ; 255
a20: 60 e0 ldi r22, 0x00 ; 0
a22: 80 91 ab 00 lds r24, 0x00AB
a26: 0e 94 73 03 call 0x6e6 <Writesoundway>
a2a: 0b c0 rjmp .+22 ; 0xa42 <fnExt1_LinkLineOut_DTMF+0xf4>
}
}
else // Not Key "*"
{
Ext1_FunPt=2; //fnExt1_LinkLineOut, //2 内线连外线 2 ->0
a2c: 82 e0 ldi r24, 0x02 ; 2
a2e: 80 93 9f 00 sts 0x009F, r24
Ext1_dialtime=0;
a32: 10 92 b7 00 sts 0x00B7, r1
a36: 10 92 b6 00 sts 0x00B6, r1
fnCutOffDTMF(mExt1_Link[1]);
a3a: 80 91 ac 00 lds r24, 0x00AC
a3e: 0e 94 38 0d call 0x1a70 <fnCutOffDTMF>
a42: cf 91 pop r28
a44: 1f 91 pop r17
a46: 08 95 ret
00000a48 <fnExt1_LinkLineOut>:
}
}
void fnExt1_LinkLineOut(void) //2 内线连外线 2 ->0
{
a48: cf 93 push r28
if (Ext1_dialtime) { Ext1_dialtime--; return; } // 10ms Delay
a4a: 80 91 b6 00 lds r24, 0x00B6
a4e: 90 91 b7 00 lds r25, 0x00B7
a52: 00 97 sbiw r24, 0x00 ; 0
a54: 11 f0 breq .+4 ; 0xa5a <fnExt1_LinkLineOut+0x12>
a56: 01 97 sbiw r24, 0x01 ; 1
a58: 5a c0 rjmp .+180 ; 0xb0e <fnExt1_LinkLineOut+0xc6>
if(!(ExtTelStateCheck & cExt1Bit) && !(ExtTelFlashState & cExt1Bit)) //挂机
a5a: 90 91 86 00 lds r25, 0x0086
a5e: 90 fd sbrc r25, 0
a60: 1d c0 rjmp .+58 ; 0xa9c <fnExt1_LinkLineOut+0x54>
a62: 80 91 b5 00 lds r24, 0x00B5
a66: 80 fd sbrc r24, 0
a68: 19 c0 rjmp .+50 ; 0xa9c <fnExt1_LinkLineOut+0x54>
{
Ext1_FunPt=0; //0 fnExt1_Free 内线空闲
a6a: 10 92 9f 00 sts 0x009F, r1
if(MulTalkState)
a6e: c0 91 b2 00 lds r28, 0x00B2
a72: cc 23 and r28, r28
a74: 61 f0 breq .+24 ; 0xa8e <fnExt1_LinkLineOut+0x46>
{
MulTalkState=0;
a76: 10 92 b2 00 sts 0x00B2, r1
Writesoundway((mExt1_Link[0]-1),cExt1Num,OFF);
a7a: 80 91 ab 00 lds r24, 0x00AB
a7e: 40 e0 ldi r20, 0x00 ; 0
a80: 64 2f mov r22, r20
a82: 81 50 subi r24, 0x01 ; 1
a84: 0e 94 73 03 call 0x6e6 <Writesoundway>
mExt1_Link[0]=0;
a88: 10 92 ab 00 sts 0x00AB, r1
return;
a8c: 44 c0 rjmp .+136 ; 0xb16 <fnExt1_LinkLineOut+0xce>
}
fnCutOffLineIn(mExt1_Link[0]);
a8e: 80 91 ab 00 lds r24, 0x00AB
a92: 0e 94 ec 0c call 0x19d8 <fnCutOffLineIn>
mExt1_Link[0]=0;
a96: c0 93 ab 00 sts 0x00AB, r28
a9a: 3d c0 rjmp .+122 ; 0xb16 <fnExt1_LinkLineOut+0xce>
}
else if(ExtTelStateCheck & ExtTelFlashState & cExt1Bit) //转接
a9c: 80 91 b5 00 lds r24, 0x00B5
aa0: 89 23 and r24, r25
aa2: 80 ff sbrs r24, 0
aa4: 38 c0 rjmp .+112 ; 0xb16 <fnExt1_LinkLineOut+0xce>
{
if(FlashtimeState) return; //只允许一次拍打
aa6: c0 91 8d 00 lds r28, 0x008D
aaa: cc 23 and r28, r28
aac: a1 f5 brne .+104 ; 0xb16 <fnExt1_LinkLineOut+0xce>
mExt1_Link[1]=fnLinkDTMF_Ext(Connect_Flash); //查找DTMF
aae: 87 e0 ldi r24, 0x07 ; 7
ab0: 0e 94 a4 0d call 0x1b48 <fnLinkDTMF_Ext>
ab4: 80 93 ac 00 sts 0x00AC, r24
if(mExt1_Link[1]) //有DTMF
ab8: 88 23 and r24, r24
aba: 69 f1 breq .+90 ; 0xb16 <fnExt1_LinkLineOut+0xce>
{
FlashtimeState=1; //禁止其他分机拍打
abc: 81 e0 ldi r24, 0x01 ; 1
abe: 80 93 8d 00 sts 0x008D, r24
Flash_For_Out_Ext=0; //0 For Out 1 For Ext
ac2: c0 93 8c 00 sts 0x008C, r28
Ext1_NumdialOut=mExt1_Link[0];
ac6: 80 91 ab 00 lds r24, 0x00AB
aca: 80 93 79 00 sts 0x0079, r24
Ext1_LineY4Y5Num=mExt1_Link[0];
ace: 80 93 6e 00 sts 0x006E, r24
Writesoundway(mExt1_Link[0]-1,cExt1Num,OFF);
ad2: 4c 2f mov r20, r28
ad4: 6c 2f mov r22, r28
ad6: 81 50 subi r24, 0x01 ; 1
ad8: 0e 94 73 03 call 0x6e6 <Writesoundway>
Writesoundway(mExt1_Link[0]-1,cX_Music,ON);
adc: 80 91 ab 00 lds r24, 0x00AB
ae0: 4f ef ldi r20, 0xFF ; 255
ae2: 66 e0 ldi r22, 0x06 ; 6
ae4: 84 0f add r24, r20
ae6: 0e 94 73 03 call 0x6e6 <Writesoundway>
Writesoundway(Connect_Flash,cX_Ext1,ON); //连接模拟电信音
aea: 4f ef ldi r20, 0xFF ; 255
aec: 6c 2f mov r22, r28
aee: 87 e0 ldi r24, 0x07 ; 7
af0: 0e 94 73 03 call 0x6e6 <Writesoundway>
Writesoundway(Connect_Flash,(mExt1_Link[1]+13),ON); //连接模拟电信音
af4: 80 91 ac 00 lds r24, 0x00AC
af8: 83 5f subi r24, 0xF3 ; 243
afa: 4f ef ldi r20, 0xFF ; 255
afc: 68 2f mov r22, r24
afe: 87 e0 ldi r24, 0x07 ; 7
b00: 0e 94 73 03 call 0x6e6 <Writesoundway>
Ext1_FunPt=10;
b04: 8a e0 ldi r24, 0x0A ; 10
b06: 80 93 9f 00 sts 0x009F, r24
Ext1_dialtime=10000;
b0a: 80 e1 ldi r24, 0x10 ; 16
b0c: 97 e2 ldi r25, 0x27 ; 39
b0e: 90 93 b7 00 sts 0x00B7, r25
b12: 80 93 b6 00 sts 0x00B6, r24
b16: cf 91 pop r28
b18: 08 95 ret
00000b1a <fnExt1_LinkDTMF>:
}
}
}
void fnExt1_LinkDTMF(void) //3 内线连DTMF 3 ->14,5,6
{
if (bit_is_clear(ExtTelStateCheck,cExt1Num))
b1a: 80 91 86 00 lds r24, 0x0086
b1e: 80 fd sbrc r24, 0
b20: 0b c0 rjmp .+22 ; 0xb38 <fnExt1_LinkDTMF+0x1e>
{
Ext1_FunPt=0; //0 fnExt1_Free 内线空闲
b22: 10 92 9f 00 sts 0x009F, r1
fnCutOffY4Y5(mExt1_Link[0]);
b26: 80 91 ab 00 lds r24, 0x00AB
b2a: 0e 94 16 0d call 0x1a2c <fnCutOffY4Y5>
fnCutOffDTMF(mExt1_Link[1]);
b2e: 80 91 ac 00 lds r24, 0x00AC
b32: 0e 94 38 0d call 0x1a70 <fnCutOffDTMF>
return;
b36: 08 95 ret
}
if(!Ext1_dialtime)
b38: 80 91 b6 00 lds r24, 0x00B6
b3c: 90 91 b7 00 lds r25, 0x00B7
b40: 00 97 sbiw r24, 0x00 ; 0
b42: 79 f4 brne .+30 ; 0xb62 <fnExt1_LinkDTMF+0x48>
{
Ext1_FunPt=5; // fnExt1_Err
b44: 85 e0 ldi r24, 0x05 ; 5
b46: 80 93 9f 00 sts 0x009F, r24
fnCutOffY4Y5(mExt1_Link[0]);
b4a: 80 91 ab 00 lds r24, 0x00AB
b4e: 0e 94 16 0d call 0x1a2c <fnCutOffY4Y5>
fnCutOffDTMF(mExt1_Link[1]);
b52: 80 91 ac 00 lds r24, 0x00AC
b56: 0e 94 38 0d call 0x1a70 <fnCutOffDTMF>
Writesoundway(Connect_Busy,cX_Ext1,ON); //;连接忙音
b5a: 4f ef ldi r20, 0xFF ; 255
b5c: 60 e0 ldi r22, 0x00 ; 0
b5e: 86 e0 ldi r24, 0x06 ; 6
b60: 25 c0 rjmp .+74 ; 0xbac <fnExt1_LinkDTMF+0x92>
return;
}
Ext1_dialtime--;
b62: 01 97 sbiw r24, 0x01 ; 1
b64: 90 93 b7 00 sts 0x00B7, r25
b68: 80 93 b6 00 sts 0x00B6, r24
mDTMF_In=DTMF_Decode(mExt1_Link[1]);
b6c: 80 91 ac 00 lds r24, 0x00AC
b70: 0e 94 2f 04 call 0x85e <DTMF_Decode>
b74: 80 93 c4 00 sts 0x00C4, r24
if (!mDTMF_In) return;
b78: 88 23 and r24, r24
b7a: 39 f1 breq .+78 ; 0xbca <fnExt1_LinkDTMF+0xb0>
if (mDTMF_In == cXin)
b7c: 8b 30 cpi r24, 0x0B ; 11
b7e: c9 f4 brne .+50 ; 0xbb2 <fnExt1_LinkDTMF+0x98>
{
Ext1_FunPt=14; //14 fnExt1_LinkDTMF_InputExtNm 内线连DTMF Wait Input (1-6,7,#) 3 ->5,6
b80: 8e e0 ldi r24, 0x0E ; 14
b82: 80 93 9f 00 sts 0x009F, r24
Ext1_dialtime=10000; //10s操作
b86: 80 e1 ldi r24, 0x10 ; 16
b88: 97 e2 ldi r25, 0x27 ; 39
b8a: 90 93 b7 00 sts 0x00B7, r25
b8e: 80 93 b6 00 sts 0x00B6, r24
Writesoundway(mExt1_Link[0],(mExt1_Link[0]+10),ON); //连接模拟电信音
b92: 90 91 ab 00 lds r25, 0x00AB
b96: 89 2f mov r24, r25
b98: 86 5f subi r24, 0xF6 ; 246
b9a: 4f ef ldi r20, 0xFF ; 255
b9c: 68 2f mov r22, r24
b9e: 89 2f mov r24, r25
ba0: 0e 94 73 03 call 0x6e6 <Writesoundway>
Writesoundway(mExt1_Link[0],cX_Ext1,ON); //连接模拟电信音
ba4: 4f ef ldi r20, 0xFF ; 255
ba6: 60 e0 ldi r22, 0x00 ; 0
ba8: 80 91 ab 00 lds r24, 0x00AB
bac: 0e 94 73 03 call 0x6e6 <Writesoundway>
bb0: 08 95 ret
}else // Not Key "*"
{
Ext1_FunPt=5; //5 fnExt1_Err Dial Wong Extension Numer / LintOut be TimeOut; fnCutOffDTMF(mExt1_Link[1]);
bb2: 85 e0 ldi r24, 0x05 ; 5
bb4: 80 93 9f 00 sts 0x009F, r24
fnCutOffY4Y5(mExt1_Link[0]);
bb8: 80 91 ab 00 lds r24, 0x00AB
bbc: 0e 94 16 0d call 0x1a2c <fnCutOffY4Y5>
Writesoundway(Connect_Busy,cX_Ext1,ON); //;连接忙音
bc0: 4f ef ldi r20, 0xFF ; 255
bc2: 60 e0 ldi r22, 0x00 ; 0
bc4: 86 e0 ldi r24, 0x06 ; 6
bc6: 0e 94 73 03 call 0x6e6 <Writesoundway>
bca: 08 95 ret
00000bcc <fnExt1_NotLinkAnyThing>:
}
}
void fnExt1_NotLinkAnyThing(void) // //4 内线没连任何线 4 -> 0
{
if (bit_is_clear(ExtTelStateCheck,cExt1Num))
bcc: 80 91 86 00 lds r24, 0x0086
bd0: 80 fd sbrc r24, 0
bd2: 02 c0 rjmp .+4 ; 0xbd8 <fnExt1_NotLinkAnyThing+0xc>
{
Ext1_FunPt=0; //0 fnExt1_Free 内线空闲
bd4: 10 92 9f 00 sts 0x009F, r1
bd8: 08 95 ret
00000bda <fnExt1_Err>:
}
}
void fnExt1_Err(void) //5 Dial Wong Extension Numer / LintOut be TimeOut
{
if (bit_is_clear(ExtTelStateCheck,cExt1Num))
bda: 80 91 86 00 lds r24, 0x0086
bde: 80 fd sbrc r24, 0
be0: 07 c0 rjmp .+14 ; 0xbf0 <fnExt1_Err+0x16>
{
Ext1_FunPt=0; //0 fnExt1_Free 内线空闲
be2: 10 92 9f 00 sts 0x009F, r1
Writesoundway(Connect_Busy,cX_Ext1,OFF); //;断开忙音
be6: 40 e0 ldi r20, 0x00 ; 0
be8: 64 2f mov r22, r20
bea: 86 e0 ldi r24, 0x06 ; 6
bec: 0e 94 73 03 call 0x6e6 <Writesoundway>
bf0: 08 95 ret
00000bf2 <fnExt1_WaitRing>:
return;
}
}
void fnExt1_WaitRing(void) //6 mExt1_Link[0]=Y4Y5 mExt1_Link[1]= Calling To Ext Number
{
if(bit_is_clear(ExtTelStateCheck,cExt1Num))
bf2: 80 91 86 00 lds r24, 0x0086
bf6: 80 fd sbrc r24, 0
bf8: 0b c0 rjmp .+22 ; 0xc10 <fnExt1_WaitRing+0x1e>
{
Ext1_FunPt=0; //0 fnExt1_Free 内线空闲
bfa: 10 92 9f 00 sts 0x009F, r1
fnCutOffY4Y5(Ext1_LineY4Y5Num);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -