📄 exchange.lis
字号:
.module exchange.c
.area data(ram, con, rel)
0000 _ready::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile ./exchange.c
0001 .dbsym e ready _ready c
0001 _rx_buffer::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile ./exchange.c
0002 .blkb 14
.area idata
0002 00000000000000000000 .word 0,0,0,0,0
000C 00000000 .byte 0,0,0,0
.area data(ram, con, rel)
0010 .dbfile ./exchange.c
0010 .dbsym e rx_buffer _rx_buffer A[15:15]c
0010 _rx_index:
0010 .blkb 1
.area idata
0010 00 .byte 0
.area data(ram, con, rel)
0011 .dbfile ./exchange.c
0011 .dbsym s rx_index _rx_index X
0011 _tx_buffer::
0011 .blkb 1
.area idata
0011 00 .byte 0
.area data(ram, con, rel)
0012 .dbfile ./exchange.c
0012 .blkb 34
.area idata
0012 00000000000000000000 .word 0,0,0,0,0
001C 00000000000000000000 .word 0,0,0,0,0
0026 00000000000000000000 .word 0,0,0,0,0
0030 00000000 .byte 0,0,0,0
.area data(ram, con, rel)
0034 .dbfile ./exchange.c
0034 .dbsym e tx_buffer _tx_buffer A[35:35]c
0034 _tx_index:
0034 .blkb 1
.area idata
0034 00 .byte 0
.area data(ram, con, rel)
0035 .dbfile ./exchange.c
0035 .dbsym s tx_index _tx_index c
.area text(rom, con, rel)
0000 .dbfile ./exchange.c
0000 .dbfunc e OpenExchange _OpenExchange fV
0000 _OpenExchange::
0000 .dbline -1
0000 .dbline 19
0000 ; #include "exchange.h"
0000 ; #include "ddsapi.h"
0000 ; #include "globalparams.h"
0000 ;
0000 ;
0000 ; #define bTx_232_INT_MASK 0x20
0000 ;
0000 ; #define RX_BUFFER_LEN 15
0000 ;
0000 ; BOOL ready = FALSE;
0000 ; BYTE rx_buffer[RX_BUFFER_LEN] = "";
0000 ; static volatile BYTE rx_index = 0;
0000 ;
0000 ; #define TX_BUFFER_LEN 35
0000 ; BYTE tx_buffer[TX_BUFFER_LEN] = "";
0000 ; static BYTE tx_index = 0;
0000 ;
0000 ; void OpenExchange(void)
0000 ; {
0000 .dbline 20
0000 ; Rs_Timer_DisableInt();
0000 10 push X
0001 7C0000 xcall _Rs_Timer_DisableInt
0004 .dbline 21
0004 ; Rs_Timer_WritePeriod(RS232_BAUDRATE_PERIOD);
0004 5019 mov A,25
0006 7C0000 xcall _Rs_Timer_WritePeriod
0009 .dbline 22
0009 ; Rs_Timer_Start();
0009 7C0000 xcall _Rs_Timer_Start
000C 20 pop X
000D .dbline 24
000D ;
000D ; rx_index = 0;
000D 551000 mov [_rx_index],0
0010 .dbline 25
0010 ; Rx_232_EnableInt();
0010 10 push X
0011 7C0000 xcall _Rx_232_EnableInt
0014 .dbline 26
0014 ; Rx_232_Start(RX8_PARITY_NONE);
0014 5000 mov A,0
0016 7C0000 xcall _Rx_232_Start
0019 20 pop X
001A .dbline 28
001A ;
001A ; tx_index = 0xFF;
001A 5534FF mov [_tx_index],-1
001D .dbline 29
001D ; Tx_232_DisableInt();
001D 10 push X
001E 7C0000 xcall _Tx_232_DisableInt
0021 .dbline 30
0021 ; Tx_232_Start(TX8_PARITY_NONE);
0021 5000 mov A,0
0023 7C0000 xcall _Tx_232_Start
0026 20 pop X
0027 .dbline 32
0027 ;
0027 ; ready = FALSE;
0027 550000 mov [_ready],0
002A .dbline -2
002A .dbline 33
002A ; }
002A L1:
002A .dbline 0 ; func end
002A 7F ret
002B .dbend
002B .dbfunc e CloseExchange _CloseExchange fV
002B _CloseExchange::
002B .dbline -1
002B .dbline 36
002B ;
002B ; void CloseExchange(void)
002B ; {
002B .dbline 37
002B ; Rs_Timer_Stop();
002B 10 push X
002C 7C0000 xcall _Rs_Timer_Stop
002F 20 pop X
0030 .dbline -2
0030 .dbline 38
0030 ; }
0030 L2:
0030 .dbline 0 ; func end
0030 7F ret
0031 .dbend
.area data(ram, con, rel)
0035 .dbfile ./exchange.c
0035 L4:
0035 .blkb 1
.area idata
0035 00 .byte 0
.area data(ram, con, rel)
0036 .dbfile ./exchange.c
.area text(rom, con, rel)
0031 .dbfile ./exchange.c
0031 .dbfunc e Rs232_Rx_handler _Rs232_Rx_handler fV
0031 .dbsym s ch L4 c
0031 _Rs232_Rx_handler::
0031 .dbline -1
0031 08 push A
0032 5100 mov A,[__r0]
0034 08 push A
0035 5100 mov A,[__r1]
0037 08 push A
0038 5100 mov A,[__r3]
003A 08 push A
003B .dbline 45
003B ;
003B ;
003B ;
003B ;
003B ; #pragma interrupt_handler Rs232_Rx_handler;
003B ; void Rs232_Rx_handler(void)
003B ; {
003B .dbline 48
003B ; static BYTE ch = 0;
003B ;
003B ; ch = Rx_232_RX_BUFFER_REG;
003B 5D32 mov A,REG[50]
003D 5335 mov [L4],A
003F .dbline 50
003F ;
003F ; if (!(Rx_232_CONTROL_REG & RX8_RX_NO_ERROR))
003F 4933E0 tst REG[51],-32
0042 B047 jnz L5
0044 .dbline 51
0044 ; {
0044 .dbline 52
0044 ; if ( (ch == '\n'))
0044 3C350A cmp [L4],10
0047 B020 jnz L7
0049 .dbline 53
0049 ; {
0049 .dbline 54
0049 ; if (rx_index > 1) ready = FALSE;
0049 3C1001 cmp [_rx_index],1
004C C006 jc L9
004E A004 jz L9
0050 X0:
0050 .dbline 54
0050 550000 mov [_ready],0
0053 L9:
0053 .dbline 55
0053 ; rx_buffer[rx_index] = 0;
0053 5F0010 mov [__r1],[_rx_index]
0056 550000 mov [__r0],0
0059 060001 add [__r1],<_rx_buffer
005C 0E0001 adc [__r0],>_rx_buffer
005F 5000 mov A,0
0061 3F00 mvi [__r1],A
0063 .dbline 56
0063 ; rx_index = 0;
0063 551000 mov [_rx_index],0
0066 .dbline 57
0066 ; }
0066 8023 xjmp L8
0068 L7:
0068 .dbline 59
0068 ; else
0068 ; {
0068 .dbline 60
0068 ; if (rx_index < (RX_BUFFER_LEN-1))
0068 3C100E cmp [_rx_index],14
006B D01E jnc L11
006D X1:
006D .dbline 61
006D ; {
006D .dbline 62
006D ; rx_buffer[rx_index++] = ch;
006D 5F0010 mov [__r1],[_rx_index]
0070 550000 mov [__r0],0
0073 5100 mov A,[__r1]
0075 0101 add A,1
0077 5300 mov [__r3],A
0079 5000 mov A,0
007B 0900 adc A,0
007D 5F1000 mov [_rx_index],[__r3]
0080 060001 add [__r1],<_rx_buffer
0083 0E0001 adc [__r0],>_rx_buffer
0086 5135 mov A,[L4]
0088 3F00 mvi [__r1],A
008A .dbline 63
008A ; }
008A L11:
008A .dbline 64
008A ; }
008A L8:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -