It would seem that there is nothing easier than installing an additional adapter or network card in the PC. Insert it neatly into the expansion slot and go. But practice shows that even for this simple procedure has its own rules, failure to comply with which the computer begins to behave unpredictably. Our article will help you to understand what is wrong here.
System Resource Arrangement:
Most PC adapters made as separate boards use at least one of the following system resources:
- I/O ports;
- UMB upper blocks of memory;
- IRQ interrupt request lines;
- DMA direct memory access channels.
Incorrect sharing of these resources leads to conflicts, which can be resolved by a competent adjustment of the system hardware.
I/O ports:
The circuitry of PC-compatible PCs allows up to 65536 I/O ports to be identified. Most of them are usually unused. Each is assigned its own hexadecimal number (port address). The first thing you need to know is the address range of the I/O ports on the ISA bus: 0 to 3FFh inclusive. This includes ports for keyboard controllers, hard disks, floppy disks, video adapters, serial and parallel interfaces, etc.
There is a special range of port addresses for prototype boards which can be developed by independent manufacturers (it is 300h to 31Fh).
Interrupt system:
The PC has a rather advanced interrupt system. The PC/XT uses the i8259 chip as the interrupt controller, which has eight inputs for interrupt signals (IRQ0-IRQ7). Because the processor responds to events sequentially, the controller sets the priority for each of its inputs (the highest IRQ_0). In modern PC/AT the number of interrupt lines is increased to 15, which are realized by cascading two i8259 (IRQ2 is connected to the second controller).
To properly share this system resource, it is necessary that each interrupt line serves only one device. Any adapter or controller board (e.g. a streamer) allows you to change interrupt numbers: enable, disable, assign. This is usually done with jumpers, switches, or programmatically. To find out which interrupt numbers (and by which devices) are currently used in the PC, you can use the program Checkit (or activate the menu “System”). The PC/AT usually has four free interrupt request lines IRQ10, 11, 12 and 15 (13 and 14 are used by the coprocessor and the hard disk drive).
Direct access to memory:
In the case of data transfer in DMA mode, the peripheral device is connected to memory directly, bypassing the CPU. This mode is used to speed up data transfer if large volumes are transferred. The PC/AT has 8 RPM channels, often with peripheral controllers acting as RPM controllers. Channel O of the RAP is used to regenerate RAM, channels 1 and 2 (or 2 and 3) are used to transfer data between the floppy disk and the hard drive and RAM.
The recommendations for using RDP channels are the same as for IRQ interrupt lines. Note that there are exceptions – one device requires two RPM channels (e.g. data acquisition cards).
Memory allocation:
Normally the basic RAM capacity is 1MB, but DOS can only address 640 KB, so this memory is called standard memory. The whole base memory can be divided into 16 areas of 64 KB each, they are called pages and they can be numbered from 0 to F: 0,1, 9, A,B,…F. The standard memory then takes from 0 to 9. The next 384 KB are reserved for system use and are called upper memory blocks (UMB, Upper Memory Blocks). This area of memory is reserved for:
- Video memory;
- BIOS ROM modules;
- ROM VGA/SVGA, HD BIOS.
There is an area of memory, called High Memory Area (High Memory Area), located behind 1 MB (behind the system BIOS ROM) and having the size of 64 KB (without 16 bytes), which is available in real mode of operation of processors since 286 and was formed as a result of not quite correctly designed emulation of the 8088 processor when canceling the cyclic transition from high addresses to low addresses. The remaining memory is called extended memory (EMA).
How to use memory in addresses older than 1 MB:
All difficulties of old operating systems (MS DOS, etc.) to use memory above one megabyte have already been solved. The vast majority of modern operating systems are 32-bit or even 64-bit and address RAM linearly.
P.S.: I tried to show and describe some simple tips. I hope that at least some of them will be useful for you. But this is not all you can make up, so go ahead and read https://bip-mip.com/.