📄 picnic.lst
字号:
0004 00020 ORG 0x0004
00021 ;
0004 00022 interrupt:
0004 00F0 00023 MOVWF w_save
0005 0E03 00024 SWAPF STATUS,W
0006 0183 00025 CLRF STATUS
0007 00F2 00026 MOVWF status_save
0008 080A 00027 MOVF PCLATH,W
0009 00F1 00028 MOVWF pclath_save
000A 018A 00029 CLRF PCLATH
000B 1383 00030 BCF STATUS,IRP
000C 0804 00031 MOVF FSR,W
000D 00F3 00032 MOVWF fsr_save
00033
00034 ;-----------------------------------------------------------------------------------
00035 ; ◆RB0中断处理
000E 1E0B 00036 BTFSS INTCON,INTE
000F 2818 00037 GOTO int_next2
0010 1C8B 00038 BTFSS INTCON,INTF
0011 2818 00039 GOTO int_next2
0012 108B 00040 BCF INTCON,INTF
0013 1683 00041 BSF STATUS,RP0
0014 1703 00042 BSF STATUS,RP1
0015 179D 00043 BSF on_flow,7 ; 232数据请求
0016 1303 00044 BCF STATUS,RP1
0017 1283 00045 BCF STATUS,RP0
00046
00047 ;-----------------------------------------------------------------------------------
00048 ; ◆定时器中断处理(10ms)
0018 00049 int_next2:
0018 180C 00050 BTFSC PIR1,TMR1IF
0019 281B 00051 GOTO int_tmr1
001A 2828 00052 GOTO int_next1
001B 00053 int_tmr1:
001B 100C 00054 BCF PIR1,TMR1IF
001C 1683 00055 BSF STATUS,RP0
001D 0832 00056 MOVF dhcp_done & 0x7F,W
001E 397F 00057 ANDLW 0x7F
001F 1D03 00058 BTFSS STATUS,Z
MPASM 03.20 Released PICNIC.ASM 2-9-2003 15:33:59 PAGE 10
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0020 03B2 00059 DECF dhcp_done & 0x7F,F
0021 1283 00060 BCF STATUS,RP0
0022 00061 int_tmr2:
0022 1683 00062 BSF STATUS,RP0
0023 3001 00063 MOVLW 0x01
0024 07B0 00064 ADDWF timer & 0x7F,F
0025 1803 00065 BTFSC STATUS,C
0026 2856 00066 GOTO dec_tm
0027 00067 dec_tm9:
0027 0183 00068 CLRF STATUS
00069
00070 ;-----------------------------------------------------------------------------------
00071 ; ◆USART中断处理
0028 00072 int_next1:
0028 1F0B 00073 BTFSS INTCON,PEIE
0029 2848 00074 GOTO int2
002A 1E8C 00075 BTFSS PIR1,RCIF ; RS232C受信?
002B 2848 00076 GOTO int2
002C 1683 00077 BSF STATUS,RP0
002D 301E 00078 MOVLW fifo_bottom - fifo_top
002E 023D 00079 SUBWF fifo_cn & 0x7F,W ; buffer overflow ?
002F 1803 00080 BTFSC STATUS,C
0030 2852 00081 GOTO rec_over
00082
0031 083C 00083 MOVF fifo_buff & 0x7F,W
0032 0084 00084 MOVWF FSR
0033 1283 00085 BCF STATUS,RP0
0034 081A 00086 MOVF RCREG,W
0035 0080 00087 MOVWF INDF
0036 1683 00088 BSF STATUS,RP0
0037 0ABC 00089 INCF fifo_buff & 0x7F,F
0038 30DC 00090 MOVLW fifo_bottom
0039 023C 00091 SUBWF fifo_buff & 0x7F,W
003A 1C03 00092 BTFSS STATUS,C
003B 283E 00093 GOTO int1_1
003C 30BE 00094 MOVLW fifo_top
003D 00BC 00095 MOVWF fifo_buff & 0x7F
003E 00096 int1_1:
003E 0ABD 00097 INCF fifo_cn & 0x7F,F
003F 300F 00098 MOVLW (fifo_bottom - fifo_top)/2
0040 023D 00099 SUBWF fifo_cn & 0x7F,W
0041 1C03 00100 BTFSS STATUS,C
0042 2848 00101 GOTO int2
0043 1703 00102 BSF STATUS,RP1
0044 1C1D 00103 BTFSS on_flow,0
0045 2848 00104 GOTO int2
0046 0183 00105 CLRF STATUS
0047 1486 00106 BSF PORTB,1
00107 ; bsf PORTB,7 ; for debug
0048 00108 int2:
0048 0183 00109 CLRF STATUS
00110 ;-----------------------------------------------------------------------
00111 ; Context恢复处理
MPASM 03.20 Released PICNIC.ASM 2-9-2003 15:33:59 PAGE 11
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0049 0873 00112 MOVF fsr_save,W
004A 0084 00113 MOVWF FSR
004B 0871 00114 MOVF pclath_save,W
004C 008A 00115 MOVWF PCLATH
004D 0E72 00116 SWAPF status_save,W
004E 0083 00117 MOVWF STATUS
004F 0EF0 00118 SWAPF w_save,F
0050 0E70 00119 SWAPF w_save,W
0051 0009 00120 RETFIE
00121 ;-----------------------------------------------------------------------------------
00122 ; RS232C收信缓冲区溢出
0052 00123 rec_over:
0052 1283 00124 BCF STATUS,RP0
0053 081A 00125 MOVF RCREG,W
0054 1283 00126 BCF STATUS,RP0
0055 2848 00127 GOTO int2
00128 ;-----------------------------------------------------------------------------------
00129 ; Socket的超时检查
0056 00130 dec_tm:
0056 1783 00131 BSF STATUS,IRP
0057 3004 00132 MOVLW SOCKETS
0058 00B1 00133 MOVWF timer_cn & 0x7F
0059 30A1 00134 MOVLW skb+1
005A 0084 00135 MOVWF FSR
005B 00136 dec_tm0:
005B 0800 00137 MOVF INDF,W
005C 39F0 00138 ANDLW 0xF0
005D 1903 00139 BTFSC STATUS,Z
005E 2868 00140 GOTO dec_tm1
005F 3010 00141 MOVLW 0x10
0060 0280 00142 SUBWF INDF,F
0061 0800 00143 MOVF INDF,W
0062 39F0 00144 ANDLW 0xF0
0063 1D03 00145 BTFSS STATUS,Z
0064 2868 00146 GOTO dec_tm1
0065 0384 00147 DECF FSR,F
0066 0180 00148 CLRF INDF
0067 0A84 00149 INCF FSR,F
0068 00150 dec_tm1:
0068 3010 00151 MOVLW 0x10
0069 0784 00152 ADDWF FSR,F
006A 0BB1 00153 DECFSZ timer_cn & 0x7F,F
006B 285B 00154 GOTO dec_tm0
006C 1383 00155 BCF STATUS,IRP
006D 2827 00156 GOTO dec_tm9
00157
00158 ;-----------------------------------------------------------------------------------
00159 ; 取得16进制的文字
00160 ;
006E 00161 getascii:
006E 390F 00162 ANDLW 0x0F
006F 0782 00163 ADDWF PCL,F
0070 3430 3431 3432 00164 DT "0123456789ABCDEF"
MPASM 03.20 Released PICNIC.ASM 2-9-2003 15:33:59 PAGE 12
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
3433 3434 3435
3436 3437 3438
3439 3441 3442
3443 3444 3445
3446
00165
00166 ;-----------------------------------------------------------------------------------
00167 ; 决定seq_no的初始化值
0080 00168 next_seq_no:
0080 1683 00169 BSF STATUS,RP0
0081 3001 00170 MOVLW 0x01
0082 07AC 00171 ADDWF seq_no+2,F
0083 1803 00172 BTFSC STATUS,C
0084 07AD 00173 ADDWF seq_no+3,F
0085 1283 00174 BCF STATUS,RP0
0086 0008 00175 RETURN
00176
00177 ;-----------------------------------------------------------------------------------
00178 ; 递增TCP的seq_no
0087 00179 inc_seq_no:
0087 1783 00180 BSF STATUS,IRP
0088 3003 00181 MOVLW 0x03
0089 0784 00182 ADDWF FSR,F
008A 3001 00183 MOVLW 0x01
008B 0780 00184 ADDWF INDF,F
008C 0384 00185 DECF FSR,F
008D 1803 00186 BTFSC STATUS,C
008E 0780 00187 ADDWF INDF,F
008F 0384 00188 DECF FSR,F
0090 1803 00189 BTFSC STATUS,C
0091 0780 00190 ADDWF INDF,F
0092 0384 00191 DECF FSR,F
0093 1803 00192 BTFSC STATUS,C
0094 0780 00193 ADDWF INDF,F
0095 1383 00194 BCF STATUS,IRP
0096 0008 00195 RETURN
00196
00197 ;-----------------------------------------------------------------------------------
00198 ; 计算TCP的seq_no加ip_length
00199 ;
0097 00200 add_seq_no
0097 1783 00201 BSF STATUS,IRP
0098 3003 00202 MOVLW 0x03
0099 0784 00203 ADDWF FSR,F
00204
009A 083C 00205 MOVF ip_length+1,W
009B 0780 00206 ADDWF INDF,F
009C 0384 00207 DECF FSR,F
009D 3001 00208 MOVLW 0x01
009E 1803 00209 BTFSC STATUS,C
009F 0780 00210 ADDWF INDF,F
00A0 0384 00211 DECF FSR,F
00A1 1803 00212 BTFSC STATUS,C
MPASM 03.20 Released PICNIC.ASM 2-9-2003 15:33:59 PAGE 13
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00A2 0780 00213 ADDWF INDF,F
00A3 0384 00214 DECF FSR,F
00A4 1803 00215 BTFSC STATUS,C
00A5 0780 00216 ADDWF INDF,F
00217
00A6 3002 00218 MOVLW 0x02
00A7 0784 00219 ADDWF FSR,F
00A8 083B 00220 MOVF ip_length,W
00A9 0780 00221 ADDWF INDF,F
00AA 0384 00222 DECF FSR,F
00AB 3001 00223 MOVLW 0x01
00AC 1803 00224 BTFSC STATUS,C
00AD 0780 00225 ADDWF INDF,F
00AE 0384 00226 DECF FSR,F
00AF 1803 00227 BTFSC STATUS,C
00B0 0780 00228 ADDWF INDF,F
00B1 1383 00229 BCF STATUS,IRP
00B2 0008 00230 RETURN
00231
00232 ;-----------------------------------------------------------------------------------
00233 ; 递增TCP的ack_no
00234 ;
00B3 00235 inc_ack_no:
00B3 3001 00236 MOVLW 0x01
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -