I am judging your level of knowledge based on the questions that you asked.
You have specifically referred to 384 KB, which suggests to me that you are thinking of the address area (384 KB sized) between the addresses of 640K and 1 MB, i.e. the upper memory area (UMA).
Take a look at the diagram at [
here]. The UMA is used/reserved for things other than user RAM. One can't just go and get a RAM card and configure it so that 384KB of its RAM occupies the entire UMA. It would conflict with a bunch of stuff.
( In later computers where 1 MB of RAM was fitted, the motherboard would map 640 KB of the 1 MB into the 0-640K address space, and optionally use the remaining 384 KB for something else, such as ROM shadowing. Your IBM 5155 motherboard cannot do that. )
For your IBM 5155, putting aside the use of expanded RAM, basically, the path is to find unused areas/pockets within the UMA (for your particular hardware configuration), use the RAM card to populate some of those areas/pockets, then convince DOS to use the areas/pockets.
You will be limited by:
* Your particular hardware configuration.
* The version of DOS.
* The abilities of the RAM card.
I suggest that you have a read of the book, 'DOS Beyond 640K' by James Forney.
Something simple
Sometimes on these forums, for an IBM 5150 or 5160 with an MDA video card, you will see the simple approach of 64 KB of RAM being placed between the addresses of 640 KB (A0000) and 704 KB (B0000), and using a program named 704K.COM. That is discussed in the thread at [
here].
The IBM 5155 has an IBM CGA card, and so the same 704 KB thing can be done. But a possibility instead, because the video card is CGA, is to put 96 KB of RAM between the addresses of 640 KB (A0000) and 736 KB (B8000), together with using something like 704K.COM to get 736 recognised by DOS.