📄 remote.lis
字号:
016C 4130 cpi R20,1
016E 11F0 breq L16
0170 .dbline 69
0170 2224 clr R2
0172 2A8A std y+18,R2
0174 L16:
0174 .dbline 70
0174 ; SendRemote(&text[0]);
0174 8E01 movw R16,R28
0176 0C5F subi R16,252 ; offset = 4
0178 1F4F sbci R17,255
017A 6DD0 xcall _SendRemote
017C .dbline 72
017C ;
017C ; sprintf(&text[0],"%c%s\0",0x83,&RemoteTextLine[2][0]) ;
017C 80E0 ldi R24,<_RemoteTextLine+80
017E 90E0 ldi R25,>_RemoteTextLine+80
0180 9B83 std y+3,R25
0182 8A83 std y+2,R24
0184 83E8 ldi R24,131
0186 90E0 ldi R25,0
0188 9983 std y+1,R25
018A 8883 std y+0,R24
018C 20E0 ldi R18,<L3
018E 30E0 ldi R19,>L3
0190 8E01 movw R16,R28
0192 0C5F subi R16,252 ; offset = 4
0194 1F4F sbci R17,255
0196 0E940000 xcall _sprintf
019A .dbline 73
019A ; if (LinePtr != 2) text[14] = 0x00;
019A 4230 cpi R20,2
019C 11F0 breq L20
019E .dbline 73
019E 2224 clr R2
01A0 2A8A std y+18,R2
01A2 L20:
01A2 .dbline 74
01A2 ; SendRemote(&text[0]);
01A2 8E01 movw R16,R28
01A4 0C5F subi R16,252 ; offset = 4
01A6 1F4F sbci R17,255
01A8 56D0 xcall _SendRemote
01AA .dbline 76
01AA ;
01AA ; sprintf(&text[0],"%c%s\0",0x84,&RemoteTextLine[3][0]);
01AA 80E0 ldi R24,<_RemoteTextLine+120
01AC 90E0 ldi R25,>_RemoteTextLine+120
01AE 9B83 std y+3,R25
01B0 8A83 std y+2,R24
01B2 84E8 ldi R24,132
01B4 90E0 ldi R25,0
01B6 9983 std y+1,R25
01B8 8883 std y+0,R24
01BA 20E0 ldi R18,<L3
01BC 30E0 ldi R19,>L3
01BE 8E01 movw R16,R28
01C0 0C5F subi R16,252 ; offset = 4
01C2 1F4F sbci R17,255
01C4 0E940000 xcall _sprintf
01C8 .dbline 77
01C8 ; if (LinePtr != 3) text[14] = 0x00;
01C8 4330 cpi R20,3
01CA 11F0 breq L24
01CC .dbline 77
01CC 2224 clr R2
01CE 2A8A std y+18,R2
01D0 L24:
01D0 .dbline 78
01D0 ; SendRemote(&text[0]);
01D0 8E01 movw R16,R28
01D2 0C5F subi R16,252 ; offset = 4
01D4 1F4F sbci R17,255
01D6 3FD0 xcall _SendRemote
01D8 .dbline 80
01D8 ;
01D8 ; sprintf(&text[0],"%c%s\0",0x85,&RemoteTextLine[4][0]) ;
01D8 80E0 ldi R24,<_RemoteTextLine+160
01DA 90E0 ldi R25,>_RemoteTextLine+160
01DC 9B83 std y+3,R25
01DE 8A83 std y+2,R24
01E0 85E8 ldi R24,133
01E2 90E0 ldi R25,0
01E4 9983 std y+1,R25
01E6 8883 std y+0,R24
01E8 20E0 ldi R18,<L3
01EA 30E0 ldi R19,>L3
01EC 8E01 movw R16,R28
01EE 0C5F subi R16,252 ; offset = 4
01F0 1F4F sbci R17,255
01F2 0E940000 xcall _sprintf
01F6 .dbline 81
01F6 ; if (LinePtr != 4) text[14] = 0x00;
01F6 4430 cpi R20,4
01F8 11F0 breq L28
01FA .dbline 81
01FA 2224 clr R2
01FC 2A8A std y+18,R2
01FE L28:
01FE .dbline 82
01FE ; SendRemote(&text[0]);
01FE 8E01 movw R16,R28
0200 0C5F subi R16,252 ; offset = 4
0202 1F4F sbci R17,255
0204 28D0 xcall _SendRemote
0206 .dbline 84
0206 ;
0206 ; sprintf(&text[0],"%c\0",0xa1+LinePtr);
0206 842F mov R24,R20
0208 9927 clr R25
020A 8F55 subi R24,95 ; offset = 161
020C 9F4F sbci R25,255
020E 9983 std y+1,R25
0210 8883 std y+0,R24
0212 20E0 ldi R18,<L4
0214 30E0 ldi R19,>L4
0216 8E01 movw R16,R28
0218 0C5F subi R16,252 ; offset = 4
021A 1F4F sbci R17,255
021C 0E940000 xcall _sprintf
0220 .dbline 85
0220 ; SendRemote(&text[0]);
0220 8E01 movw R16,R28
0222 0C5F subi R16,252 ; offset = 4
0224 1F4F sbci R17,255
0226 17D0 xcall _SendRemote
0228 .dbline 87
0228 ;
0228 ; sprintf(&text[0],"%c\0",0xb0);
0228 80EB ldi R24,176
022A 90E0 ldi R25,0
022C 9983 std y+1,R25
022E 8883 std y+0,R24
0230 20E0 ldi R18,<L4
0232 30E0 ldi R19,>L4
0234 8E01 movw R16,R28
0236 0C5F subi R16,252 ; offset = 4
0238 1F4F sbci R17,255
023A 0E940000 xcall _sprintf
023E .dbline 88
023E ; SendRemote(&text[0]);
023E 8E01 movw R16,R28
0240 0C5F subi R16,252 ; offset = 4
0242 1F4F sbci R17,255
0244 08D0 xcall _SendRemote
0246 .dbline -2
0246 .dbline 89
0246 ; }
0246 L5:
0246 EF96 adiw R28,63
0248 EF96 adiw R28,63
024A EF96 adiw R28,63
024C EF96 adiw R28,63
024E 2796 adiw R28,7 ; offset = 259
0250 0E940000 xcall pop_gset2
0254 .dbline 0 ; func end
0254 0895 ret
0256 .dbsym l text 4 A[255:255]c
0256 .dbsym r LinePtr 20 c
0256 .dbsym r Header 22 c
0256 .dbend
0256 .dbfunc e SendRemote _SendRemote fV
0256 ; i -> R22,R23
0256 ; buffer -> R20,R21
.even
0256 _SendRemote::
0256 0E940000 xcall push_gset2
025A A801 movw R20,R16
025C .dbline -1
025C .dbline 97
025C ;
025C ; //******************************************************************
025C ; //* void SendRemote(char *buffer)
025C ; //*
025C ; //*
025C ; //******************************************************************
025C ; void SendRemote(char *buffer)
025C ; {
025C .dbline 100
025C ; int i;
025C ;
025C ; UCSR1B &= ~0x80; // Rx int disable
025C 80919A00 lds R24,154
0260 8F77 andi R24,127
0262 80939A00 sts 154,R24
0266 .dbline 101
0266 ; i = 0;
0266 6627 clr R22
0268 7727 clr R23
026A .dbline 102
026A ; TxChar(0x55);
026A 05E5 ldi R16,85
026C 52D0 xcall _TxChar
026E .dbline 103
026E ; TxChar(0x55);
026E 05E5 ldi R16,85
0270 50D0 xcall _TxChar
0272 .dbline 104
0272 ; TxChar(0xf0);
0272 00EF ldi R16,240
0274 4ED0 xcall _TxChar
0276 08C0 xjmp L33
0278 L32:
0278 .dbline 106
0278 .dbline 107
0278 1B01 movw R2,R22
027A 6F5F subi R22,255 ; offset = 1
027C 7F4F sbci R23,255
027E F101 movw R30,R2
0280 E40F add R30,R20
0282 F51F adc R31,R21
0284 0081 ldd R16,z+0
0286 20D0 xcall _SendByte
0288 .dbline 108
0288 L33:
0288 .dbline 105
0288 ; while (buffer[i] != 0x00)
0288 FB01 movw R30,R22
028A E40F add R30,R20
028C F51F adc R31,R21
028E 2080 ldd R2,z+0
0290 2220 tst R2
0292 91F7 brne L32
0294 .dbline 109
0294 ; {
0294 ; SendByte(buffer[i++]);
0294 ; }
0294 ; TxChar(0x0f);
0294 0FE0 ldi R16,15
0296 3DD0 xcall _TxChar
0298 L35:
0298 .dbline 111
0298 L36:
0298 .dbline 111
0298 ;
0298 ; while (!(UCSR1A & 0x40)); // Wait for the char to be cue off
0298 20909B00 lds R2,155
029C 26FE sbrs R2,6
029E FCCF rjmp L35
02A0 .dbline 112
02A0 ; delay_ms(50);
02A0 02E3 ldi R16,50
02A2 10E0 ldi R17,0
02A4 0E940000 xcall _delay_ms
02A8 .dbline 114
02A8 ;
02A8 ; i = UDR1;
02A8 60919C00 lds R22,156
02AC 7727 clr R23
02AE .dbline 115
02AE ; UCSR1A |= 0x40;
02AE 80919B00 lds R24,155
02B2 8064 ori R24,64
02B4 80939B00 sts 155,R24
02B8 .dbline 116
02B8 ; UCSR1B |= 0x80; // Rx int enable
02B8 80919A00 lds R24,154
02BC 8068 ori R24,128
02BE 80939A00 sts 154,R24
02C2 .dbline -2
02C2 .dbline 117
02C2 ; }
02C2 L31:
02C2 0E940000 xcall pop_gset2
02C6 .dbline 0 ; func end
02C6 0895 ret
02C8 .dbsym r i 22 I
02C8 .dbsym r buffer 20 pc
02C8 .dbend
02C8 .dbfunc e SendByte _SendByte fV
02C8 ; i -> R22
02C8 ; j -> R10
02C8 ; me -> R12
02C8 ; TxByte -> R20
.even
02C8 _SendByte::
02C8 0E940000 xcall push_gset4
02CC 402F mov R20,R16
02CE .dbline -1
02CE .dbline 125
02CE ;
02CE ; //******************************************************************
02CE ; //* void SendByte(unsigned char TxByte)
02CE ; //*
02CE ; //* Manchester encode byte and send it
02CE ; //******************************************************************
02CE ; void SendByte(unsigned char TxByte)
02CE ; {
02CE .dbline 128
02CE ; unsigned char i,j,me;
02CE ;
02CE ; for (i=0; i<2; i++)
02CE 6627 clr R22
02D0 17C0 xjmp L42
02D2 L39:
02D2 .dbline 129
02D2 ; {
02D2 .dbline 130
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -