请教老古,为什么我的8019的curr指针经常会从1开始增加。。。
我是用汇编自己写的,其他的都可以,就是这个curr总是会出错,经常会从1开始增加,直到4c以后才有点正常,不过感觉数据没接收也是会变化。。
以下是初始化代码
;初始化网卡
ISAINT:
SETB RST ;硬件复位ISA网卡
LCALL waits
CLR RST ;End of Reset ISA bus
LCALL waits
MOV A,#1FH ;软件复位8019地址 #31FH
LCALL ISAR
LCALL longwaits
MOV R0,A
MOV A,#1FH
LCALL ISAW
LCALL longwaits
;复位结束
MOV R0,#0
LCALL EPAGE
MOV A,#0 ;停止运行8109
MOV R0,#21H
LCALL ISAW
LCALL waitbus
MOV A,#1
MOV R0,#4CH ;接收起始页
LCALL ISAW
MOV A,#2
MOV R0,#80H ;PSTOP=80
LCALL ISAW
MOV A,#3
MOV R0,#4CH ;BNRY=4C
LCALL ISAW
MOV A,#4 ;发送起始页
MOV R0,#40H
LCALL ISAW
MOV A,#0CH
MOV R0,#0CCH
LCALL ISAW
MOV A,#0DH
MOV R0,#0E0H
LCALL ISAW
MOV A,#0EH
MOV R0,#0C8H
LCALL ISAW
MOV A,#0FH
MOV R0,#0H
LCALL ISAW
;换页面--------------------------
MOV R0,#40H
LCALL EPAGE
;--------------------------------
MOV A,#7
MOV R0,#4DH
LCALL ISAW
MOV A,#8
MOV R0,#0H
LCALL ISAW
MOV A,#9
MOV R0,#41H
LCALL ISAW
MOV A,#0AH
MOV R0,#0H
LCALL ISAW
MOV A,#0BH
MOV R0,#80H
LCALL ISAW
MOV A,#0CH
MOV R0,#0H
LCALL ISAW
MOV A,#0DH
MOV R0,#0H
LCALL ISAW
MOV A,#0EH
MOV R0,#0H
LCALL ISAW
MOV A,#0FH
MOV R0,#0H
LCALL ISAW
;初始化结束,开始运行网卡
MOV A,#0 ;开始运行8109
MOV R0,#22H
LCALL ISAW
RET ;结束
发表时间:2006年4月24日11:34:15