• Please review our updated Terms and Rules here

Determining what I/O address and IRQ's that are being used on IBM XT

Mike_Z

Veteran Member
Joined
Dec 1, 2013
Messages
1,713
Location
Near Milwaukee Wisconsin
I have an IBM XT with 640K memory. Purchased it new a long time ago. Recently I found Burtman's mTCP programs, I have a 3c509b-tpo card and I want to connect the XT to my network. Mostly to transfer files between the XT and my FreNas. I have installed 3ccfg and tried to program the 3Com card, but am having trouble. 3ccfg always reports that there are no I/O port available for use. I can not believe that. The XT just has the normal stuff in it, so one of the address should be available, I tried each one individually. I also tried changing the interrupt, tried 3, 10 and 11. I have 3c509 in my autoexec.bat file using the 0x60 address. When I use the #3 int 3ccfg can not find the NIC, but int #10 and #11 does. Also when I run DHCP with int #3 the program locks, but using int #10 or #11 the program attempts to get an ip address, but fails after 3 tries. My question here is, How can I determine what I/O port is available and what interrupt can be used.

I also see that the 3c509b-tpo needs a 286 or later to configure it, maybe that is my main problem. I have a 486 machine that I can use, but I do not understand why this cards needs the later machine to program it. I appreciate the help, thanks Mike
 
You can use something like Checkit 3.0 to see the free ressources. But on standard PCs it's quite standard, all are the same for COM, LPT, etc.
 
I'm a little confused. The 5160 doesn't even have the second ISA connector to connect the higher-numbered IRQ lines. Unless, of course, you're talking about the 5162 XT-286...
 
Some 16 bit cards also run in 8 bit slot.
Sure, I run some (NICs and VGA) in 8 bit slots, but not with IRQs above 7. I suppose it might be possible to cascade an 8259 via IRQ 2 and the 8 bit ISA bus to get more IRQs, but somehow, I don't think that's what's being described here...

Some 16-bit NIC driver software requires the extra 186/286 instructions; that could be solved with a V20 replacing the 8088. I can't say that's the issue here, however.
 
Well.... as you may see, I'm out of my element with network/NIC stuff. I have read that the 3Com 3c509b-tpo card will work in the IBM XT. I'm also a little short on knowledge about the XT's I/O ports and interrupts. Reading items on the web the fact that only 0-7 interrupts are used on the XT was not all that clear. I see that int #3 is for the second serial port, so I'll attempt to use that one.

No, this is a 8088 IBM XT machine.

Then what about the I/O port numbers? I'm trying to use 0x300, yet 3ccfg reports that port is being used. I tried all the addresses between 200h and 3F0h and they are all being used. I'll do a little more work, thanks for the help, Mike
 
Well...... this is truly amazing! I successfully changed the interrupt to #3, re booted the XT and tried the DHCP program. After one tried and failed the modem accepted the request and assigned an IP address.

Now.... can someone help me out a little on my understanding of this. I installed two lines in my AutoExec.bat file
Code:
c:\network\3c509.com 0x60 0x300
set mtcpcfg=c:\network\myconfig.txt

The first line activates the packet driver, 3c509 and sets the interrupt to 0x60 and I/O port to 0x300? Does this mean that when the mTCP programs needs network service these numbers are used to gain access to the packet driver?

One other change I made was the modem speed, originally had that set to 38.4k, then reduced it to 9600. I wonder if that had some effect?

The second line just tells the mTCP program where to fin the config program with the TCP/IP etal information?

Any ideas on where I can gain a little basic knowledge of how the network stuff works? Thanks for the help, Mike
 
3ccfg may be expecting an unused i/o port to return 0xFF on read. Based on my experiences with a 5170 AT, that can fail to happen depending on your display adapter. I observed a different value (0x3F IIRC) when using any one of an assortment of 8-bit display adapters. I only saw 0xFF from unused i/o ports after installing a 16-bit VGA adapter. DOS debug can be used to read an arbitrary i/o port, if you want to verify this is or isn't what is happening to you.

If 3ccfg writes board configuration to an eeprom it may be simplest to configure the board in another machine, before installing it in your XT.
 
I may have ID'ed one of my problems. I was transferring files to the XT via Floppy and apparently the floppy I was using had a bad spot. I just tried the mTCP program ping and it worked. So the XT is on the network. Now I have to learn how to use the FTP program and maybe TELNET, Thanks for the help, Mike
 
After some horsing around, I transferred a couple of files from my Win7 machine to the IBM XT using FTPSRV, via Filezilla. This is pretty neat! I wonder if I can share files without Filezilla. I need to do more reading and experimenting. Thanks for the help, I may have some other questions later. Mike
 
Well...... this is truly amazing! I successfully changed the interrupt to #3, re booted the XT and tried the DHCP program. After one tried and failed the modem accepted the request and assigned an IP address.

Now.... can someone help me out a little on my understanding of this. I installed two lines in my AutoExec.bat file
Code:
c:\network\3c509.com 0x60 0x300
set mtcpcfg=c:\network\myconfig.txt

The first line activates the packet driver, 3c509 and sets the interrupt to 0x60 and I/O port to 0x300? Does this mean that when the mTCP programs needs network service these numbers are used to gain access to the packet driver?

One other change I made was the modem speed, originally had that set to 38.4k, then reduced it to 9600. I wonder if that had some effect?

The second line just tells the mTCP program where to fin the config program with the TCP/IP etal information?

Any ideas on where I can gain a little basic knowledge of how the network stuff works? Thanks for the help, Mike

0x60 is the software interrupt that the packet driver will respond to. mTCP will "make calls" to that software interrupt to get the packet driver to do things for it.

0x300 is the base of the I/O port address range that the packet driver will use for talking to the Ethernet card. mTCP doesn't know about that or use it - that's just between the packet driver and the hardware. The same goes for any hardware interrupt or memory window address.
 
3ccfg may be expecting an unused i/o port to return 0xFF on read. Based on my experiences with a 5170 AT, that can fail to happen depending on your display adapter. I observed a different value (0x3F IIRC) when using any one of an assortment of 8-bit display adapters. I only saw 0xFF from unused i/o ports after installing a 16-bit VGA adapter. DOS debug can be used to read an arbitrary i/o port, if you want to verify this is or isn't what is happening to you.

FWIW, I wouldn't trust *any* piece of software to be completely reliable for discovering if a port is "unused", under any circumstances. Plenty of hardware exists that has "write-only" registers that wouldn't be expected to respond to any kind of probing. (Unless you know what to expect to change when they're updated and have a way to check the result of the changes, not just that the interface exists. And of course it goes without saying that if you start writing to random I/O ports you're just asking for trouble.) A good example would be, say, a brain-dead EMS card like the Lo-Tech 2MB; the paging registers normally at 0x260 are completely write-only, you can't read back what's written into them, the outputs from the latches are directly connected to the EMS memory address lines.

Re: issues with 0x300 specifically, and possibly related: I ran into an issue with configuring an RTL8019 network card in an XT-class machine equipped with an XT-CF adapter. The default address for those is 0x300, and it turns out that even though the RTL8019 is configurable for a number of addresses its jumperless "auto-discovery" mechanism has a reliance on that address specifically. This prevents the card from being programmed unless you yank the IDE card or re-address it. I don't know if the 3com card might also have a "secret" dependency like that for 3ccfg to work, but I suppose it's possible.

(I also ran into an issue with that RTL card that the "pretty" user-friendly configurator program would crash on my particular XT, a Tandy 1000-family machine. What worked was a bare-bones CLI program that was essentially meant for factory configuration of the card.)
 
Thanks for the reply. I've used the FTPSRV quite a bit this last day or so. I believe the I/O address and Interrupt must be OK, because for the most part there has not been any problems.

That being said, I thought it might be a good idea to 'backup' the XT's hard drive. So, I started to transfer all the files to my FreNas, over the network. Everything work well, except one file always resulted in a read error on the XT. My XT's hard drive is 40 years old and I'm sure it may be showing it age. I wonder how many bad spots just might be on it. There must be software to check it, but what would I do if there were problems?

A few years ago, a friend of mine designed and built a serial disk emulator for a PDP8E using a Raspberry PI. I tried it on my PDP8E and it works great. Does anyone know of a Raspberry Pi emulator for a XT? That would solve any HD problems I have or may have. Then I could retire the HD, thanks for the help, Mike
 
A few years ago, a friend of mine designed and built a serial disk emulator for a PDP8E using a Raspberry PI. I tried it on my PDP8E and it works great. Does anyone know of a Raspberry Pi emulator for a XT? That would solve any HD problems I have or may have. Then I could retire the HD

The standard go-to for this task would be an XTIDE or XT-CF-Lite card. You can build one yourself or buy a complete one for around $40, and either will pair nicely with a PATA or CF-to-SD card adapter.
 
In my experience, IRQ 5 or 7 are the only ones you can try if there's only one 8259 chip. IRQ 7 is assigned to the parallel printer port, but should work. I always use IRQ 5 for sound cards. If both of these are somehow used, you're probably out of luck.
 
Thanks for the info. I looked at the Glitch Works XTIDE and ordered one. I also saw a couple of youtube films on it. That youtube is something. Apparently you do not want to use to large of memory card. Currently my HD is 20 Mb, so something larger will be OK. Kind of anxious to see how this this works.

Robbert, I've been reading about the XT, a long time ago I may have known these things, but as I age much information must either be stored deeper in my mind or pushed out. Anyway I think the int 3 is used for a second COM port, which I do not have. Thanks for the Help, Mike
 
Back
Top