Jump to content

Windows 95 and networking under Bochs 2.6


ppgrainbow

Recommended Posts

Okay, I recently set up a Windows 95 OSR2 VM under Bochs 2.6 with 64 MB of system memory allocated to the VM.

I installed the OS and applied the updates associated with it, including Internet Explorer 5.5 and I already have the NE2000 network card emulation set up.

But for some reason, even if I have networking setup under Bochs, the network card in the VM doesn't work. The networking is set to DHCP mode and Bochs is failing to detect a IP address and a subnet mask (using winipcfg). The IP configuration is reading:

IP address: 0.0.0.0

Subnet Mask: 0.0.0.0

Default Gateway: (none)

DHCP Server: 255.255.255.255

When I go to Network options in the Control Panel, I end up having to set the IP address configuration manually as follows:

IP address: 10.0.2.40

Subnet Mask: 255.255.255.0

Default Gateway: 10.0.2.2

DHCP Server: 10.0.2.2

And still, it doesn't work.

I can't even browse the internet using Internet Explorer at all...all I get is a "This page cannot be displayed".

I enabled the logs to see what could be the problem here and this is what I found and the logs have to do with the NE2K device.

The full version of the logs can be found here:

Here's a snippet:

00000252000e[NE2K ] device not ready to receive data

00006048000e[NE2K ] device not ready to receive data

00078624000e[NE2K ] device not ready to receive data

00091476000e[NE2K ] device not ready to receive data

00100044000e[NE2K ] device not ready to receive data

00105840000e[NE2K ] device not ready to receive data

00125748000e[NE2K ] device not ready to receive data

00137844000e[NE2K ] device not ready to receive data

00152208000e[NE2K ] device not ready to receive data

00172872000e[NE2K ] device not ready to receive data

00208908000e[NE2K ] device not ready to receive data

00230580000e[NE2K ] device not ready to receive data

00235620174e[NE2K ] DCR write, loopback mode selected

00235620174i[NE2K ] DCR write - AR set ???

00235620201i[NE2K ] RCR write, monitor bit set!

00235774446i[NE2K ] TCR write, loop mode 1 not supported

00238339581i[NE2K ] TCR write, loop mode 1 not supported

00238339724i[NE2K ] Physical address set to b0:c4:20:00:00:01

01387833607i[NE2K ] TCR write, loop mode 1 not supported

Here's the current configuration of what the Windows 95 Bochs VM looks like:

Is there any way to get networking working properly under Bochs? :(

I already installed the latest version of WINPCAP and configured Bochs with the Novell 2000 compatible adapter settings that niclister.exe showed me, but it turns out that NE2000 is not properly initalised.

Link to comment
Share on other sites


Windows 95 OSR2 supports, but does not install the TCP/IP protocol by default, so it does not know how to to obtain a DHCP address. You have to add the protocol to the Network options screen during the install. You should be able to add it manually in the Network Control Panel.

Edited by LoneCrusader
Link to comment
Share on other sites

Windows 95 OSR2 supports, but does not install the TCP/IP protocol by default, so it does not know how to to obtain a DHCP address. You have to add the protocol to the Network options screen during the install. You should be able to add it manually in the Network Control Panel.

Thank you for telling me. The TCP/IP protocol has already been installed and it still failed to obtain a DHCP address. Instead, I had to enter the IP address manually and for some reason, Windows 95 networking still doesn't work under Bochs.

I did a search for "TCR write, loop mode x not supported" and networking related problems in Bochs and it turns out that users are seriously having a hard time getting networking working properly under Bochs.

The VM was setup on the Windows Vista Home Premium host OS, btw.

Update: I ran the Bochs Debugger (bochsdbg.exe), entered "info device 'ne2k'" in regards to the state of the NE2000 card and this is what I found. The data below is pretty complicated and hard to decipher:

NE2K registers, page 0

----------------------

CR (Command register):

stop=0 start=1 tx_packet=0 rdma_cmd=4 pgsel=0

PSTART = Page start register = 4c

PSTOP = Page stop register = c0

Local DMA address = 00 00

BNRY = Boundary Pointer = 0xa0

TSR (Transmit Status Register), read-only:

tx_ok=1 reserved=0 collided=0 aborted=0 no_carrier=0

fifo_ur=0 cd_hbeat=0 ow_coll=0

TPSR = Transmit Page Start = 0x46

NCR = Number of Collisions Register (read-only) = 0x00

TBCR1,TBCR0 = Transmit Byte Count = 00 f3

FIFO = 00

ISR (Interrupt Status Register):

pkt_rx=0 pkt_tx=0 rx_err=0 tx_err=0 overwrite=0

cnt_oflow=0 rdma_done=0 reset=0

CRDA1,0 = Current remote DMA address = a0 4e

RSAR1,0 = Remote start address = a0 04

RCBR1,0 = Remote byte count = 00

RSR (Receive Status Register), read-only:

rx_ok=1 bad_crc=0 bad_falign=0 fifo_or=0 rx_missed=0

rx_mbit=1 rx_disabled=0 deferred=0

RCR (Receive Configuration Register):

errors_ok=0 runts_ok=0

broadcast=1 multicast=1 promisc=0 monitor=0 reserved=0

CNTR0 = Tally Counter 0 (Frame alignment errors) = 00

TCR (Transmit Configuration Register):

crc_disable=0 loop_cntl=0 ext_stoptx=0 coll_prio=0 reserved=0

CNTR1 = Tally Counter 1 (CRC Errors) = 00

DCR (Data Configuration Register):

wdsize=1 endian=0 longaddr=0 loop=1 auto_rx=0

fifo_size=2

CNTR2 = Tally Counter 2 (Missed Packet Errors) = 00

IMR (Interrupt Mask Register)

rx_inte=1 tx_inte=1 rxerr_inte=0 txerr_inte=1 overw_inte=1

cofl_inte=0 rdma_inte=0 reserved=0

----------------------

NE2K registers, page 1

----------------------

CR (Command register):

stop=0 start=1 tx_packet=0 rdma_cmd=4 pgsel=0

MAC address registers are located at page 1, registers 1-6.

The MAC address is b0:c4:20:00:00:01

Current page is 0xa1

MAR0-7 (Multicast address registers 0-7) are set to:

00 41 00 80 00 00 00 00

MAR0 is listed first.

----------------------

NE2K registers, page 2

----------------------

CR (Command register):

stop=0 start=1 tx_packet=0 rdma_cmd=4 pgsel=0

Remote Next Packet Pointer = 00

TPSR = Transmit Page Start = 0x46

Local Next Packet Pointer = 00

Address Counter= 00 00

IMR (Interrupt Mask Register):

RCR (Receive Configuration Register):

errors_ok=0 runts_ok=0 broadcast=1 multicast=1 promisc=0

monitor=0 reserved=0

TCR (Transmit Configuration Register):

crc_disable=0 loop_cntl=0 ext_stoptx=0 coll_prio=0 reserved=0

DCR (Data Configuration Register):

wdsize=1 endian=0 longaddr=0 loop=1 auto_rx=0

fifo_size=2

IMR (Interrupt Mask Register)

rx_inte=1 tx_inte=1 rxerr_inte=0 txerr_inte=1 overw_inte=1

cofl_inte=0 rdma_inte=0 reserved=0

----------------------

I'm starting to see a lot of zeroes on all of the NE2k registers and I find that either the card is configured incorrectly or something could be wrong with the NE2K card itself. :(

Edited by ppgrainbow
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...