📄 time_server.asm
字号:
*hit651 voice platform software
*=================== time_server.asm ========================
*2004.1.3 hit651
.mmregs
.include c54.inc
.include ref.inc
.include union.inc
.include macro.inc
.include netcard.inc
.def timer0
.ref ss
.ref send_packet ,send_data,send_ack
.text
*************************** timer0 ***************************
timer0:
PSHM AL
PSHM AH
PSHM AG
PSHM AR1
PSHM AR2
PSHM AR3
PSHM ST0
;test mc14lc5480 start 数据自环。
CMPM *(bsp_in_frbuf_full_request),#0xffff
BC aictest1,NTC
STM #bsp_in_frbuf,AR2
STM txdatabuf,AR3
RPT #((mcbspbuf_len*2)-1)
MVDD *AR2+,*AR3+
ST #0,*(bsp_in_frbuf_full_request)
ST #0,*(send_on)
; STM #bsp_in_frbuf,AR2
; STM rxdatabuf,AR3
; RPT #((mcbspbuf_len*2)-1)
; MVDD *AR2+,*AR3+
aictest1:
CMPM *(recv_on),#0
BC aictest2,TC
CMPM *(bsp_out_frbuf_empty_request),#0xffff
BC aictest2,NTC
STM #bsp_out_frbuf,AR3
CMPM *(rxdatabuf_p),#0
BC first_load,TC
CMPM *(rxdatabuf_p),#1
BC second_load,TC
CMPM *(rxdatabuf_p),#2
BC thee_load,TC
first_load:
STM #(rxdatabuf),AR2
RPT #((mcbspbuf_len*2)-1)
MVDD *AR2+,*AR3+
ST #0,*(bsp_out_frbuf_empty_request)
STM #(rxdatabuf),AR2
RPT #(720-1)
ST #0,*AR2+
ST #0x100,*(ack_number)
CALL send_ack
ST #1,*(rxdatabuf_p)
B aictest2
second_load:
STM #(rxdatabuf+768),AR2
RPT #((mcbspbuf_len*2)-1)
MVDD *AR2+,*AR3+
ST #0,*(bsp_out_frbuf_empty_request)
STM #(rxdatabuf+768),AR2
RPT #(720-1)
ST #0,*AR2+
ST #0x200,*(ack_number)
CALL send_ack
ST #2,*(rxdatabuf_p)
B aictest2
thee_load:
STM #(rxdatabuf+1536),AR2
RPT #((mcbspbuf_len*2)-1)
MVDD *AR2+,*AR3+
ST #0,*(bsp_out_frbuf_empty_request)
STM #(rxdatabuf+1536),AR2
RPT #(720-1)
ST #0,*AR2+
ST #0x300,*(ack_number)
CALL send_ack
ST #0,*(rxdatabuf_p)
B aictest2
aictest2:
;test aic23 end
send_new_data:
CMPM *(send_on),#0xffff
BC timer0_1,TC
timer0_2:
CALL send_data
ST #0xffff,*(send_on)
timer0_1:
CALL as8019_send
ADDM #1,*(ss)
CMPM *(ss),#3906
BC timer0exit,NTC
ST #0,*(ss)
XORM #0x01,*(exoutport_map)
PORTW *(exoutport_map),exoutport
NOP
NOP
timer0exit:
POPM ST0
POPM AR3
POPM AR2
POPM AR1
POPM AG
POPM AH
POPM AL
RET
*
**********************as8019_send************************
as8019_send:
BITF *(txbuf_select),#0x01
BC as8019_busy,TC
BITF *(txbuf_select),#0x80
BC as8019_send_a,TC
BITF *(txbuf_select),#0x40
BC as8019_send_b,TC
B as8019_exit
as8019_send_a:
ADDM #1,*(a_count)
ANDM #0x3fff,*(a_count)
ORM #0x20,*(txbuf_select)
ANDM #0xfb,*(txbuf_select)
WRITE 0x40,NET_REG_TPSR
LD *(a_len),A
AND #0xffff,A
STL A,-8,*(send_packet_x)
PORTW *(send_packet_x),NET_REG_TBCR1
DELAY 20
AND #0xff,A
STL A,*(send_packet_x)
PORTW *(send_packet_x),NET_REG_TBCR0
DELAY 20
B as8019_send_data
as8019_send_b:
ADDM #1,*(b_count)
ANDM #0x3fff,*(b_count)
ORM #0x10,*(txbuf_select)
ORM #0x04,*(txbuf_select)
WRITE 0x46,NET_REG_TPSR
LD *(b_len),A
AND #0xffff,A
STL A,-8,*(send_packet_x)
PORTW *(send_packet_x),NET_REG_TBCR1
DELAY 20
AND #0xff,A
STL A,*(send_packet_x)
PORTW *(send_packet_x),NET_REG_TBCR0
DELAY 20
as8019_send_data:
ORM #0x01,*(txbuf_select)
WRITE 0x3e,NET_REG_CR
B as8019_exit
;-------------------------------------------------------
as8019_busy:
PORTR NET_REG_TSR,*(send_packet_x)
BITF *(send_packet_x),#0x01
STM txbuf_select,AR1
BC as8019_exit, NTC
BITF *AR1,#0x20
nop
nop
XC 2,TC
ANDM #0x5f,*AR1
BITF *AR1,#0x10
nop
nop
XC 2,TC
ANDM #0xaf,*AR1
ANDM #0xfe,*AR1
as8019_exit:
RET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -