• Please review our updated Terms and Rules here

Why would DEBUG freezeor do nothing on the G command?

...look at all the segement offsets between C000:0000 and EC00:0000 in 0400 increments...

It is important to note we are talking in hexidecimal notation, DEBUG's native format. The steps referred to here are:

C000:0000
C400:0000
C800:0000
CC00:0000
D000:0000
D400:0000
...

ROM BIOS extensions can be as small as 2Kb, and along with the signature bytes (55h AAh), there is also a location used to report the size of that extension.
 
GETROM program took readings from C800:0000 to E000:0000.

I don't know if there is any mileage starting earlier than C800:0000 and to EC00:0000.
 
I had a look at the file. You've already got the space between C800 and D000 occupied by something else (VGA/AGP BIOS maybe?). As the WD1002A's BIOS address is fixed at C800:0, there's no simple way around this. I'm not even sure that the I/O ports for the adapter are available on your system.

You'll need to use an older system, I think. Preferably one without a hard disk controller already installed on the motherboard; say an old XT, AT or 386 system.
 
I don't really understand what is going on. :c)

The card has two fixed address associated with it: i/o port 320h (0320h) and 324h (0324h).

I think the i/o memory addresses are 0000:0320 and 0000:0324. But I could be wrong.

PC/XT Port: i/o: range 320h-32Fh : Hard disk controller

AT Port: i/o: range 320h-32Fh : Available

Of course we are looking at C800:0000 - EC00:0000. This is not I think an i/o identifying address area, it's a place where DEBUG will start to run the HD format program. But, this area appears a fixed one for the card in question.

I think C800:0000 is the subject also of some IBM memory allocation/convention like i/o.

I wonder how you can sort any conflicts. In the end I'd hope to run Windows 98, not stay in DOS that I'm doing at present.
 
For the record, my testbed for my card was either a Gigabyte GA-586VX Socket 7 board (With integrated IDE, but disabled in BIOS) or MSI MS-5170 (very similar board)...I forget which one was my test unit at the time.

I had DEFINITELY tested my Adaptec RLL card (uses same address space) on the Gigabyte, no doubt in my mind about that, so the WD card should work on one of those.

Check your local Craigslist or Kijiji for a Pentium 1 computer...may even find one free. It's nice to have one for testing purposes (mine is laid out on a TV tray).
 
I don't really understand what is going on. :c)

The card has two fixed address associated with it: i/o port 320h (0320h) and 324h (0324h).

I think the i/o memory addresses are 0000:0320 and 0000:0324. But I could be wrong.

PC/XT Port: i/o: range 320h-32Fh : Hard disk controller

AT Port: i/o: range 320h-32Fh : Available

Of course we are looking at C800:0000 - EC00:0000. This is not I think an i/o identifying address area, it's a place where DEBUG will start to run the HD format program. But, this area appears a fixed one for the card in question.

I think C800:0000 is the subject also of some IBM memory allocation/convention like i/o.

I wonder how you can sort any conflicts. In the end I'd hope to run Windows 98, not stay in DOS that I'm doing at present.

Well, you are gaining in understanding, along with have some great guides (the people on this forum) to explain it to you. BIOS extensions would be ROM within the memory space of the system, the programmed chip on the adapter that tells the computer how to run the it, and sometimes with utilities (such as to low-level format a hard drive connected to it, in your example) onboard. It (as far as later hardware compatible with the system) is what makes the computer expandable with an upgrade maybe even made after the computer came out (EGA/VGA cards didn't exist when the XT came out, but it is able to run them because of this).

Some expansion hardware even became common, and would be added into the system BIOS area on later computers...
 
Check your local Craigslist or Kijiji for a Pentium 1 computer...may even find one free. It's nice to have one for testing purposes (mine is laid out on a TV tray).

If the OP needs one, I think I have a couple of Intel (not just the chipset, but genuine Intel) P1 motherboards and probably a couple of other brands and can check them out with a WD controller-with-BIOS. But there certainly should be some old systems available locally around the OP's location. I've been known to screw a motherboard down to a piece of plywood myself.
 
If the OP needs one, I think I have a couple of Intel (not just the chipset, but genuine Intel) P1 motherboards and probably a couple of other brands and can check them out with a WD controller-with-BIOS. But there certainly should be some old systems available locally around the OP's location. I've been known to screw a motherboard down to a piece of plywood myself.

Hmm...plywood. Interesting idea.

I've been toying with the idea of making a wooden "perfect accessibility" test bench computer but it's one of those things where it's just so EASY to have the parts spread out on a table. The usual setup is motherboard (+CPU, RAM, VGA card), PSU, some random ATA HDD, ATA CDROM, 5.25 and 3.5" floppy drives. I then substitute whatever part it is I'm testing. What's nice about AT is how when you turn it off it really is truly off, making these adventures quite a bit safer than with ATX.


...sorry for the hijack.
Something back on topic: I have a couple socket 7 boards and CPUs you could take nice and cheap if you so desire, OP.
 
Here are some of my findings:

I started up with only the floppy drive installed and a very basic system boot disk (not even a Win98 recovery disk).

I ran GETROM with my video card in only, then I rebooted with the video card and WD1002A-WX1 in and ran GETROM again.

I ran DOS File Compare (FC) which compared the two files produced by GETCOM. FC reported the files were identical. IOW, adding WD1002A-WX1 card added nothing at all to RAM between C800:0000 and E000:0000.

Which is no surprise. :c)

I am curious what the code is and how it got there. I may make examinations.

EDIT: I tried to get a GETROM file with the video card (which is AGP type) removed. But the PC did not start up. I think I may have seen differences if I could have succeded.
 
Here are some of my findings:

I started up with only the floppy drive installed and a very basic system boot disk (not even a Win98 recovery disk).

I ran GETROM with my video card in only, then I rebooted with the video card and WD1002A-WX1 in and ran GETROM again.

I ran DOS File Compare (FC) which compared the two files produced by GETCOM. FC reported the files were identical. IOW, adding WD1002A-WX1 card added nothing at all to RAM between C800:0000 and E000:0000.

Which is no surprise. :c)

I am curious what the code is and how it got there. I may make examinations.

EDIT: I tried to get a GETROM file with the video card (which is AGP type) removed. But the PC did not start up. I think I may have seen differences if I could have succeded.

But did you actually DISABLE the IDE controllers?
They still use resources and address space even with no drives attached.
These settings will be in your BIOS, probably under Integrated Peripherals or similar. If not there, then Chipset Features or similar.

Edit: it's occurred to me that it may make no difference either way since there's nothing there at all...looks like you may just need to find an older machine to mess with it on. Unless the EPROM became corrupted (which isn't impossible, but if yours was done similarly to mine with a glued-down plastic panel over the erasing window, it's unlikely) the card should be doing at least something.
 
I see a bunch of 32-bit code there with word size override prefixes, so I suspect it's part of the AGP firmware.

Can you remove the AGP and install a PCI or ISA video adapter?
 
I see a bunch of 32-bit code there with word size override prefixes, so I suspect it's part of the AGP firmware.

Can you remove the AGP and install a PCI or ISA video adapter?

I got a hex viewer / editor and I put in C8000000 in the "Go to" feature. When I do that I see nothing in C800:0000 address.

Am I doing something wrong, or do my actions above in the HxD program really show contents of memory address C800:0000?

Please download a copy of the program here, and see if you can confirm the "Go to" feature takes you to the right place in memory.

http://mh-nexus.de/en/hxd/

Thanks.
 
First, you want to look at physical memory, not virtual (I'm not sure if HxD can do that).

I don't think you understand how x86 segmented addressing works. In real mode, the address C800:0000 is physical address C8000. The segment portion of the address is a multiple of 16 bytes. So segmented address C800:0000 is the same as C700:1000 is the same as C680:1800 and so on.

Remember that an XT has only a 1MB addressing space, so an address of C800:0000 is exactly 819,200 bytes from the start of memory.
 
First, you want to look at physical memory, not virtual (I'm not sure if HxD can do that).

I don't think you understand how x86 segmented addressing works. In real mode, the address C800:0000 is physical address C8000. The segment portion of the address is a multiple of 16 bytes. So segmented address C800:0000 is the same as C700:1000 is the same as C680:1800 and so on.

Remember that an XT has only a 1MB addressing space, so an address of C800:0000 is exactly 819,200 bytes from the start of memory.

Three questions:

1 Is HxD actually reading the RAM memory in my PC, the memory in my memory chips?

2 Is HxD just reading the bytes in certain files on my PC?

3 Is HxD converting RAM memory addresses into virtual RAM memory addressess?

I understand that code for programs etc, can be spaced all over the RAM memory, but that it's useful for a program or programmers to see
the data as if it were contiguous RAM.

So, because it's useful for a programmer to see data as contiguous, I wonder if that is why I see the phrase "virtual memory".

EDIT: What program do I need to see RAM memory as it is, i.e. not with virtual addressing?
 
Last edited:
Let's try to stay on topic here. If you're wondering about how to view the entirety of physical memory, we can start another thread (it's possible, BTW).

You have an 8-bit ISA card. As such, it's limited to the addresses described by the 20 addressing lines, or the lower 1MB of RAM, no matter how much memory your system has installed.

DEBUG is a perfectly good way to browse that 1MB area.

Of that 1MB RAM, the lower 640K (0000:0000 - 9FFF:000F) is reserved for base RAM by the hardware. Similarly, the 64K between F000:000 - FFFF:000F is reserved by the system BIOS. The 64K starting at E000:0000 is reserved for BIOS "system ROM" and is processed differently by the BIOS. Similarly, the area between A000:0000 and C7FF:000F is pretty much the exclusive territory of the various video adapters, with the video BIOS for EGA and VGA starting at C000:0000.

Starting with the PC XT, the 16K or so at C800:0000 was reserved for a hard disk adapter extension BIOS, as the base BIOS contained no hard disk support. When the PC AT was introduced, hard disk BIOS support was incorporated into the base BIOS ROM, but some cards continued to use the C800:0000 area for support of special features, such as SCSI hard disks, RLL-encoded drives, and so forth.

Fast-forward to the PII and PIII days. The video support area at C000:0000 is no longer large enough for the more advanced cards, such as AGP, so the C800:0000 area was appropriated. After all, ISA was on the wane and there were better alternatives in PCI for things such as SCSI.

Which is the situation right now. The WD card can't map its BIOS extension in because there's already something at C800:0000. You could ditch the AGP card and replace it with an MDA, CGA, EGA or VGA card and that should free up the required memory area. Or you can find an older system (recommended) and install the card there.

I hope this clears the air a bit.
 
Thanks for the information, very useful.

I do in fact think that my WD card is dead, so in my mind is/has been the possibility that what is at C800:0000 would be different if it was working.

I'm going to get myself a good WD card and I have taken on-board your insight about possibly getting another video card that might give some hope of installing this ST-225 drive I have.

I think this might be as far as things can go for the moment, until I have a known good WD card and an appropriate video card.

Thanks for the help. Rich
 
Last edited:
Thanks for the information, very useful.

I do in fact think that my WD card is dead, so in my mind is/has been the possibility that what is at C800:0000 would be different if it was working.

Why not ask one of the forum members with an XT-era system to test your board for you? It'd save a lot of time and expense. I don't know where you're located, but there's a chance there's a volunteer almost in your back yard.
 
I do in fact think that my WD card is dead, so in my mind is/has been the possibility that what is at C800:0000 would be different if it was working.
I think you're using it in a machine that it simply won't work in. Try it in a machine without an AGP graphics card or follow Chuck's suggestion and have a member with an older machine test it. Where are you located? Would you be willing to mail the board anywhere? I have several machines here in NJ that it would probably work in (5150, 5160, misc PC/XT/AT/386 clones, etc).

I think you're going to have difficulties getting any of the ST-506/ST-412 (MFM/RLL)* type controllers running in the machine you're trying to use.
Kelly

*Did I get the numbers right, I'm always messing these up.
 
I think you're using it in a machine that it simply won't work in. Try it in a machine without an AGP graphics card or follow Chuck's suggestion and have a member with an older machine test it. Where are you located? Would you be willing to mail the board anywhere? I have several machines here in NJ that it would probably work in (5150, 5160, misc PC/XT/AT/386 clones, etc).

I think you're going to have difficulties getting any of the ST-506/ST-412 (MFM/RLL)* type controllers running in the machine you're trying to use.
Kelly

*Did I get the numbers right, I'm always messing these up.

Hi. I just posted to UK.adverts.computer for a new WD1002A-WX1 card and an 8 bit video card and mentioned the possibility of buying a PC/XT motherboard.

Possibly it could have been better to ask here. :c. There must be some Brits here. :c)

It's an ST-225 (MFM) that I want to run - temporarily.
 
Back
Top