• Please review our updated Terms and Rules here

PC XT 64-256kb system board jumpers

if yours is the modified PROM that allows the use of the extra ram, i WOULD be interested in it, greatly
Sorry, I havn't quite followed this; what kind of extra RAM do you want this PROM to give you access to, how much have you got and where is it, and what do you expect to do with it?

And what does the particular PROM in the previous post do, specifically?

m
 
Simple, Mike. You can populate the 64-256K 5160 board with 41256 DRAMs instead of 4164s, giving you 1M of base memory. Said PROM controls the mapping of the additional memory.
 
exactly so the roms keep their code, and you get extra ram for a ram-disk, print buffer, that sort of thing, without eating vital below 640kb real-estate
Ah, OK, like the 1024K Juko XT clones; no LOADHI or EMS though or fancy stuff like that...

Was coincidentally just reading about a little program that tells the BIOS to ignore the DIP switches and use 704KB.
 
Was coincidentally just reading about a little program that tells the BIOS to ignore the DIP switches and use 704KB.

That's quite easy in fact. One way to do this is to change the word in the BIOS data area defining the amount of availble RAM (Note that this may cause certain incompabilities with BIOS-Extensions that reserves some chunks of RAM at offset 640K).
 
I configured the switches to map memory into segments A, D and E, then wrote an XMS driver implementing the UMB functions that allows LOADHI and DEVICEHI directives in CONFIG.SYS. I also wrote a device driver that used up to 64k for a disk cache (write-through for safety, with LRU buffer selection).

I have the source for a generic XT BIOS and one of my projects is to tweak it to scan up to 704k for base memory and to look at F000 through F600 for device BIOS signatures. That'll allow me to relocate device BIOSen and use segment C for high memory.
 
I have the source for a generic XT BIOS and one of my projects is to tweak it to scan up to 704k for base memory and to look at F000 through F600 for device BIOS signatures. That'll allow me to relocate device BIOSen and use segment C for high memory.

One problem there is that no card allow you to set BIOS extensions to anything above F000, and F600-F7FF is mirrored over the entire F000-F7FF address range in a normal IBM XT anyways.

However, if you avoid using cards with BIOS Extansions on them, then you are free to use all of segment A, C,D and E for RAM. Segment B can also be used, but parts of it will mirror the contnents of Display/Video-RAM.
 
One problem there is that no card allow you to set BIOS extensions to anything above F000, and F600-F7FF is mirrored over the entire F000-F7FF address range in a normal IBM XT anyways.

However, if you avoid using cards with BIOS Extensions on them, then you are free to use all of segment A, C,D and E for RAM. Segment B can also be used, but parts of it will mirror the contents of Display/Video-RAM.

One of the ROM sockets (don't remember the U- numbers offhand) on the XT is mapped to F000-F7FF and the other is mapped to F800-FFFF. ROM BASIC extends from F000 through FE00 - all of the low chip and most of the high one, with the system's ROM BIOS at the high end of the high chip. If you're willing to give up ROM BASIC, that frees the entire 32k of the low chip for relocated adapter ROMs, either by moving one chip or by copying one or more into an EPROM for that socket (and removing or disabling the one in the adapter). Note that this only works for location-independent ROMs (adapters which allow address selection are location-independent).

Max memory can be 704k base (with BIOS mod to scan above 640k) plus segments C, D and E. With a hardware tweak to the display card to move the buffer from segment B to E (and a BIOS mod to use it instead) you could actually have 896k base memory.
 
...Max memory can be 704k base (with BIOS mod to scan above 640k) plus segments C, D and E. With a hardware tweak to the display card to move the buffer from segment B to E (and a BIOS mod to use it instead) you could actually have 896k base memory.
Now that does sound more useful than the usual ramdisk/print buffer usage; more details would be interesting...
 
One of the ROM sockets (don't remember the U- numbers offhand) on the XT is mapped to F000-F7FF and the other is mapped to F800-FFFF. ROM BASIC extends from F000 through FE00 - all of the low chip and most of the high one, with the system's ROM BIOS at the high end of the high chip. If you're willing to give up ROM BASIC, that frees the entire 32k of the low chip for relocated adapter ROMs, either by moving one chip or by copying one or more into an EPROM for that socket (and removing or disabling the one in the adapter). Note that this only works for location-independent ROMs (adapters which allow address selection are location-independent).

Max memory can be 704k base (with BIOS mod to scan above 640k) plus segments C, D and E. With a hardware tweak to the display card to move the buffer from segment B to E (and a BIOS mod to use it instead) you could actually have 896k base memory.

Ok, so that's what you are trying to do... However, then you are sort of forced to only use those certain cards you have copied the Extension ROM from (if you don't like chip-swapping).
 
Ok, so that's what you are trying to do... However, then you are sort of forced to only use those certain cards you have copied the Extension ROM from (if you don't like chip-swapping).

That's true. About the only ROMs I'd need to copy are the ones from controllers for 3.5-inch floppies and a hard disk, either a SCSI adapter or an XT-IDE. YMMV depending on the cards you want to use - a VGA won't be possible 'cause it uses both segments A and B for display memory and the low half of C for the ROM.
 
That's true. About the only ROMs I'd need to copy are the ones from controllers for 3.5-inch floppies and a hard disk, either a SCSI adapter or an XT-IDE. YMMV depending on the cards you want to use - a VGA won't be possible 'cause it uses both segments A and B for display memory and the low half of C for the ROM.

Ok.

BTW, I am running a 1.44 FDD in my IBM XT without any kind of BIOS extension at all. All I use is a standard AT-style FDD controller, and a special Int-13h replacement which is included in the same package as the 2M FD Format program.
 
Last edited:
Ok.

BTW, I am running a 1.44 FDD in my IBM XT without any kind of BIOS extension at all. All I use is a standard AT-style FDD controller, and a special Int-13h replacement which is included in the same package as the 2M FD Format program.

That's interesting. I've read that the standard XT FDD adapter isn't fast enough for a 1.44 drive and I wouldn't think that a 16-bit AT adapter would work in an 8-bit XT slot. I have several DTK PII-151B 8-bit adapters that I use, with ROMs and jumpters to specify the drive types.
 
That's interesting. I've read that the standard XT FDD adapter isn't fast enough for a 1.44 drive and I wouldn't think that a 16-bit AT adapter would work in an 8-bit XT slot. I have several DTK PII-151B 8-bit adapters that I use, with ROMs and jumpters to specify the drive types.

Not so--the issue is that the 1.44M adapters can also vary the bit clock speed from 250KHz to 500Khz. Many early add-on controllers used the stock uPD765A/8272A FDC and added extra circuitry to switch between 250KHz, 300KHz and 500Khz data rates. If you could content yourself with nothing but 1.44M floppies, you could take an XT controller and change out the oscillator (and hack the BIOS to agree).

In fact, the NEC D765 was originally intended for 8" floppies which (in MFM mode) operate with a 500KHz bit clock). The 5.25' DD application was actually a bit of a hack. The 765 can do a few more tricks when operated with 8"-style drives, or at least 5.25" with 8" interface characteristics. For example, the 765 can use the "Drive ready" line to interrupt when a drive goes ready (no need for the horrible kludge of "hanging" when a drive isn't ready) or perform simultaneous overlapped seeks on as many as 4 drives. On the other hand, while it has a "head load" signal (that goes nowhere on the PC), it doesn't have any drive motor control lines, so they had to be supplied by an external latch. The PC's drive-select logic is external also, even though the 765 has its own drive select lines.
 
That's interesting. I've read that the standard XT FDD adapter isn't fast enough for a 1.44 drive and I wouldn't think that a 16-bit AT adapter would work in an 8-bit XT slot. I have several DTK PII-151B 8-bit adapters that I use, with ROMs and jumpters to specify the drive types.

Even though the card is 16-bit; only the IDE-partion of the card uses the 8-bit extension of the AT-bus. In fact, most AT-style floppy controllers/multicards (especially the ones based on a single chip) uses only the lower 8 bit for the floppy-controller part and will therefore work in an XT.
 
Even though the card is 16-bit; only the IDE-partion of the card uses the 8-bit extension of the AT-bus. In fact, most AT-style floppy controllers/multicards (especially the ones based on a single chip) uses only the lower 8 bit for the floppy-controller part and will therefore work in an XT.

Well, that grinding noise is my assumption derailleur changing gears. Thanks.
 
  • E2 (page 3)/E3/E4 are there for a special 64KB mode where only the first 16KB of each bank is being used. However, I have no idea why they made it like this. I don't even know if 16Kb RAM chips that only take 5V+ and GND even exist, but it sounds quite pointless to just use the first 1/4 of the 64Kb chips.

I have now actually found out which chip this configuration were designed for. It's nothing less than the Intel 2118 (and equalents). This chip is mostly pin-compatible with the Intel 2116/MK4116 (used in the original PC), with the only difference in that it only runs of 5v and Gnd, just like the MK4164 (used in the XT).

However, this chip seems to have been completely overshadowed by other chips on the market at that time.
 
I configured the switches to map memory into segments A, D and E, then wrote an XMS driver implementing the UMB functions that allows LOADHI and DEVICEHI directives in CONFIG.SYS. I also wrote a device driver that used up to 64k for a disk cache (write-through for safety, with LRU buffer selection).

I have the source for a generic XT BIOS and one of my projects is to tweak it to scan up to 704k for base memory and to look at F000 through F600 for device BIOS signatures. That'll allow me to relocate device BIOSen and use segment C for high memory.

I'm extremely interested in making this work on my IBM 5155 (same motherboard as 5160 XT). However, I don't have a prom programmer and my technical skills are barely above novice level. Therefore I need quite a bit of help. I've already sent a PM to MKEMP but haven't heard back yet. Anyone willing to help?

What I'm trying to accomplish is gaining more space to load drivers and tsr's. My system already has the mod for 640 KB on the mother board (jumper at E2 pins 1 to 2, 256 Kb drams in banks 0 and 1 with 64 Kb chips in banks 2 and 3. and a multiplexer in u84 socket) My understanding is that I'll need a custom "decoder" EPROM in u44(Cy Atkinson called it HIMEMV2 in his blog View attachment 1megXT.txt) and 256 Kb chips in ALL banks(I have some of these frome another MB), and a custom device driver to enabel usage of the high memory. Anyone know where I can get the Eprom and or device driver? Sorry to ramble on, but it's late and I tend to do that when I'm tired.

Any advice is appreciated!

Greg
 
Last edited:
Back
Top