![]() |
China DOS Union-- Unite DOS · Advance DOS · Grow DOS --Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum |
| Guest | Log in | Register | Members | Search | China DOS Union |
|
中国DOS联盟论坛 The time now is 2026-09-14 23:33 |
47,812 topics / 349,917 posts / today 0 new / 48,268 members |
| DOS开发编程 & 发展交流 (开发室) » [Help] RTL8100BL network card driver, some registers cannot be operated |
| Printable Version 2,480 / 0 |
| Floor1 yv920 | Posted 2016-01-07 09:32 |
| 新手上路 Posts 1 Credits 4 | |
|
DOS version: 6.22
BC version: 3.1 Hardware architecture: x86 Current problem encountered: Found that some registers cannot be operated normally: For example, the Transmit Configuration Register. When writing in 8-bit, 16-bit, 32-bit, and then reading in 8-bit, it is found that the value cannot be written in at all each time. My 8-bit operation is the outport() function, the 16-bit operation is the outportb() function, and for 32-bit, I use the static void outportd(unsigned short portid, unsigned long value) //output dword to I/O port { asm MOV DX, portid asm DB 0x66 // asm MOV AX, WORD PTR value // MOV EAX,value asm DB 0x66, 0xEF // OUT DX,EAX } There is one point I don't particularly understand. Generally, if a register supports 32-bit writing, it should be able to write in 8-bit and 16-bit as well. But currently, I don't know which part of my operation is wrong. Who has done work in this aspect, give some suggestions or opinions, thanks...... |
|
|
[ Contact the Union admin team -
中国DOS联盟 -
Standard version ] Sponsored by ifanr Inc | © 2001–2023 |