hargle
Veteran Member
hi! back to work here, after taking a couple days off over the weekend.
Last night, I checked my 100h-1ffh range on my zenith 8088, and it looked to me that the entire range was full of other things decoding in that address range. The entire 200h range appeared to be empty. The 300h range had some stuff in it too (video at a minimum), but certainly our favorite 300-30f is free.
I should (or Per will likely beat me to it) check to see how the 1xx range is being used on a true XT and PC, and also see what's being decoded in the 2xx range.
Right now, I'm leaning toward having you tie bit 9 high, 4:0 low, and let the switches be bits 8:5. That'll put us at either 2xx or 3xx and it'll increment in steps of 20h.
Like such:
I think we (per?) could write a little utility that scans IO space looking for unused IO in the above ranges, and then also scans for an 8k chunk of ROM space to use, and then prints out to the screen a good dip switch setting display. Users could run that software before putting the card in.
This really is a win-win. costs go down, simplicity goes up. I personally prefer dipswitches to jumpers for something like this though.
So I'm visualizing an 8 dipswitch to control all the addresses, and then a jumper block to control the enable/disables and IRQ selections. Sound right?
If those below 0x100 are reserved then the upper two bits are basically fixed at A9=0 and A8=1. If we put the four jumpers for bits A7, A6, A5, and A4 the XT-IDE can start at
0x100-0x10F
0x110-0x11F
0x120-0x12F
.
.
.
0x1F0-0x1FF
Is that going two work?
Last night, I checked my 100h-1ffh range on my zenith 8088, and it looked to me that the entire range was full of other things decoding in that address range. The entire 200h range appeared to be empty. The 300h range had some stuff in it too (video at a minimum), but certainly our favorite 300-30f is free.
I should (or Per will likely beat me to it) check to see how the 1xx range is being used on a true XT and PC, and also see what's being decoded in the 2xx range.
Right now, I'm leaning toward having you tie bit 9 high, 4:0 low, and let the switches be bits 8:5. That'll put us at either 2xx or 3xx and it'll increment in steps of 20h.
Like such:
Code:
98 7654 3210
10 0000 0000 = 200h
10 0010 0000 = 220h
10 0100 0000 = 240h
10 0110 0000 = 260h
10 1000 0000 = 280h
10 1010 0000 = 2A0h
10 1100 0000 = 2C0h
10 1110 0000 = 2E0h
11 0000 0000 = 300h
11 0010 0000 = 320h
11 0100 0000 = 340h
11 0110 0000 = 360h
11 1000 0000 = 380h
11 1010 0000 = 3A0h
11 1100 0000 = 3C0h
11 1110 0000 = 3E0h
I think that's perfect. Plenty of room. Heck, even moving it around using only 3 bits and having the 4th be a ROM enable/disable would be fine.Similiarly with the ROM if we assume address has 20 bits to work with. It needs a memory address window of 13 bits so the lower 13 bits have to be free. If the lowest useful address is $C0000 the upper two bits are fixed at A19=1 and A18=1. If we fix A13=0 then the ROM could appear at
0xC0000-0xC1FFF
0xC4000-0xC5FFF
0xC8000-0xC9FFF
.
.
.
0xFC000-0xFDFFF
If you're happy with these modifications I can roll them into the new design.
I think we (per?) could write a little utility that scans IO space looking for unused IO in the above ranges, and then also scans for an 8k chunk of ROM space to use, and then prints out to the screen a good dip switch setting display. Users could run that software before putting the card in.
It will simplify things somewhat and improve trace routing. We can replace two 8 position DIP switches and sockets with a single 2x8 dual row header. I don't think it will reduce the need for pull up resistors on the 74LS688 decoders though.
This really is a win-win. costs go down, simplicity goes up. I personally prefer dipswitches to jumpers for something like this though.
So I'm visualizing an 8 dipswitch to control all the addresses, and then a jumper block to control the enable/disables and IRQ selections. Sound right?
Last edited: