Dec 082017
 
Allow you to modify your IPX.COM to handle unsupported hardware options. Change IRQ, I/O address, RAM address, or DMA channel.
File IPXEDT.ZIP from The Programmer’s Corner in
Category Network Files
Allow you to modify your IPX.COM to handle unsupported hardware options. Change IRQ, I/O address, RAM address, or DMA channel.
File Name File Size Zip Size Zip Type
IPXEDT.TXT 7460 2838 deflated

Download File IPXEDT.ZIP Here

Contents of the IPXEDT.TXT file


Playing with IPX

Not without limits is Novell's SHGEN utility. When creating an
IPX shell for your workstations you may need to use options that
do not exist. The lack of the ability to "create" your own options
is a limitation of IPX that has been with us for many years.
Surprisingly SHGEN, does not offer a means to create your own
options. In the following short article I will offer one method of
creating your own options.

The method I have happened upon involves modifying one of the existing
option settings. Now, these modifications involve the use of DEBUG
or other similar editor. For this example, DEBUG will be used.

First, generate an IPX shell (IPX.COM) for your chosen network card.
Second, the parameter table needs to be located. This table includes
the Interrupt setting (IRQ), I/O address, RAM address, and DMA channel.
No network card uses all these options at once, so only a maximum of
three of them will need to be altered. Now, to locate the table the
pattern to search for needs to be ascertained:

Run IPX with the I option, for instance:

D:\> ipx i
Novell IPX/SPX V2.12
(C) Copyright 1985, 1988 Novell Inc. All Rights Reserved.

LAN Option: Thomas-Conrad Corp. ARC-CARD Accel. V2.20B1 (891022)
Hardware Configuration: IRQ = 2, Memory Base at D000:0 (IRQ 9)

-or-

E:\> ipx i
Novell IPX/SPX V2.12
(C) Copyright 1985, 1988 Novell Inc. All Rights Reserved.

LAN Option: 3Com 3C503 EtherLink II V2.30EC (880518)
Hardware Configuration: I/O = 300h, INT = 3, DMA = 1, BNC


Note the five characters following the line:
"Hardware Configuration: "

In the first "ipx i" the five characters are "IRQ =" and in the
second, "I/O =".

This five character pattern will be the basis for finding the
option descriptions within IPX.COM.

At this point use of DEBUG is needed:

DEBUG IPX.COM

at the - prompt, type:
-scs:100 ffff 'IRQ =' {substitute for your pattern}

you will receive a list of addresses, note the first one, it will be
something like:


519B:29C0

the first part, 519B, is the segment, it can ignored for purposes
of modifying IPX, the second part, 29C0, is the offset, this will be
used for finding a table position to edit

at the next - prompt, type:
-dcs:29C0

(NOTE: Be sure to substitute your number for the 29C0 offset
used here)

You should see something similar to:

519B:29C0 49 52 51 IRQ
519B:29D0 20 3D 20 20 32 2C 20 4D-65 6D 6F 72 79 20 42 61 = 2, Memory Ba
519B:29E0 73 65 20 61 74 20 44 30-30 30 3A 30 20 28 49 52 se at D000:0 (IR
519B:29F0 51 20 39 29 00 00 00 00-00 00 00 00 00 00 00 D0 Q 9)............
519B:2A00 00 02 00 00 00 00 00 FF-03 00 00 00 00 00 00 02 ................
519B:2A10 00 49 52 51 20 3D 20 20-33 2C 20 4D 65 6D 6F 72 .IRQ = 3, Memor
519B:2A20 79 20 42 61 73 65 20 61-74 20 44 30 30 30 3A 30 y Base at D000:0
...(listing should continue for a few more lines)

In this listing are descriptions for two of the available IPX options.
The second option will be the one edited, though the pattern used to
edit the description will be viable for any of the options.

Note that the second description indicates IRQ=3 and Memory Address D000:0.
Say that an option is needed for IRQ=6 and Memory Address DC00:0, here are
the commands to incorporate these changes:

the line above "IRQ = 3" begins:
00 02 00

in the middle of the line find FF-03, the - is just for formatting
of the output, the 03 is the IRQ number for this option; note how the
actual option code is found before the textual description of the
option

to edit the 03 to 06:

(once again, at the - prompt)
-e 2A07
519B:2A07 03.06

next, redo the display command to see that the change has
taken place:

-dcs:29C0

519B:29C0 49 52 51 IRQ
519B:29D0 20 3D 20 20 32 2C 20 4D-65 6D 6F 72 79 20 42 61 = 2, Memory Ba
519B:29E0 73 65 20 61 74 20 44 30-30 30 3A 30 20 28 49 52 se at D000:0 (IR
519B:29F0 51 20 39 29 00 00 00 00-00 00 00 00 00 00 00 D0 Q 9)............
519B:2A00 00 02 00 00 00 00 00 FF-06 00 00 00 00 00 00 02 ................
519B:2A10 00 49 52 51 20 3D 20 20-33 2C 20 4D 65 6D 6F 72 .IRQ = 3, Memor
519B:2A20 79 20 42 61 73 65 20 61-74 20 44 30 30 30 3A 30 y Base at D000:0

Next, edit the Memory Address from D000:0 to DC00:0:

-e 29F0
519B:29F0 D0.DC

At this point the actual settings of this option are IRQ=6 and
Memory Address=DC00:0 but the textual description is still
indicating IRQ=3 and Memory Address D000:0

Optionally, to change this indication:
-f 2A10 L1F 'IRQ = 6, Memory Base at D000:0'

The "L1F" is a length directive indicating a length of 1F which is
hexadecimal for 31, which is the length the characters between the
's; This length figure is something which must be calculated
correctly and the editing of the textual description is not
necessary to engage the actual operational changes in IPX, so,
you may opt to not change the description


If the network card uses DMA then it will be noted just after
the IRQ used. The following example shows IRQ=3 and DMA=1:

6129:29E0 45 43 20 28 38 38 30 35-31 38 29 00 24 00 03 10 EC (880518).$...
6129:29F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 FF ................
6129:2A00 03 00 00 FF 01 00 00 00-00 49 2F 4F 20 3D 20 33 .........I/O = 3
6129:2A10 30 30 68 2C 20 49 4E 54-20 3D 20 33 2C 20 44 4D 00h, INT = 3, DM
6129:2A20 41 20 3D 20 31 2C 20 42-4E 43 00 10 03 10 00 00 A = 1, BNC......


The end of the second line begins the IRQ indicator (FF).
The next line indicates the IRQ used (03). Three bytes later
there is a FF 01, this indicates DMA=1. By altering the second
byte (01) the DMA channel can be changed.

This option also uses an I/O address of 300h. At the end of
the above's first line are the bytes 00 03 10. The first two
bytes are the I/O address in low-high order (00 03). By altering
these two bytes the I/O address can be changed. To change it to
350h for instance, the correct order would be (50 03).

To make the changes final, use the W command at the next - prompt:
-w

To exit DEBUG use the Q command.


SUMMING IT UP:

Begin your search of IPX's option description table by using
IPX's I option (i.e., "IPX I").

Ascertain the pattern to search for by finding the first
five bytes after the label "Hardware Configuration: ".

Search for the first instance of this pattern within IPX.

Choose an option to edit.

Find/Edit the DMA channel located 5 bytes before the pattern
found.

Find/Edit the IRQ located 9 bytes before the pattern found.

Find/Edit the Memory Address located 18 bytes before the
pattern found.

Find/Edit the I/O Address located 28 bytes before the pattern
found.

Write the changes and exit DEBUG

Note that the number of bytes before the pattern found may
be different in future releases of NetWare or in early releases
(pre v2.1) of NetWare.

If you have any questions about these procedures, please
contact me on CompuServe @ 70007,3430 or on the Internet
at [email protected]

-By John T. McCann, author of the NetWare Supervisor's Guide
-Special thanks to Bart Mellink of Cyco Automation

10/3/90

1300 wds


 December 8, 2017  Add comments

Leave a Reply