Proc -l @bios_offset: How to use it *PROPERLY* ?

Where does “@bios_offset” point to?
Is it a CMOS byte?

My intention is to make a “mobile” boot-image for the laptop that is able to change the node-number without re-building it.

I’ve got the utility to edit CMOS and want to assign the free byte there as a node number store. Will it work?

Tony.

Tony wrote:

Where does “@bios_offset” point to?
Is it a CMOS byte?

My intention is to make a “mobile” boot-image for the laptop that is
able to change the node-number without re-building it.

I’ve got the utility to edit CMOS and want to assign the free byte there
as a node number store. Will it work?

Tony.

It reads the value located via segno 0x40 + offset (ie. MK_FP(0x40,
) ). If you want to see the base/limit for descriptor 0x40, do
a sin gdt, and look at the info for selector 0x40.

It’s an offset into the bios data area - so if your CMOS editor is
changing what would be a BIOS ROM area, it won’t work.

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

On Wed, 26 May 2004 14:06:42 -0400, Adam Mallory <amallory@qnx.com> wrote:

It reads the value located via segno 0x40 + offset (ie. MK_FP(0x40,
offset>) ). If you want to see the base/limit for descriptor 0x40, do
a sin gdt, and look at the info for selector 0x40.

:frowning:
Is there a way to make Proc reach data in the CMOS?

(Is the layout of the lower RAM region (0004:0000~0130) generally the same
as with DOS?! I did not think it is…)

Tony

Tony wrote:

:frowning:
Is there a way to make Proc reach data in the CMOS?

It does reach the data MK_FP(0x40, 0) should be the start of of the BIOS
data area. My concern is that you might be modifying something that is
in the BIOS rom area, in which case, you will want to use the -lw
option. It reads a physical memory location as specified - so if you
know the physical location, use that.

(Is the layout of the lower RAM region (0004:0000~0130) generally the
same as with DOS?! I did not think it is…)

If you’re refering to the special below 1M area, which has many holes in
RAM, like video bios/ram etc, those locations have nothing to do with
DOS and still exist.

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

On Wed, 26 May 2004 14:53:00 -0400, Adam Mallory <amallory@qnx.com> wrote:

If you’re refering to the special below 1M area, which has many holes in
RAM, like video bios/ram etc, those locations have nothing to do with
DOS and still exist.
I should have said it more clear: I want to use the free byte in PC-AT’s RTC CMOS (ports 0x70, 0x71 - where the BIOS stores it’s settings - HDD type et al)…

How to tell Proc to look for the node number there?
BTW: is it possible to change the node number on the fly - without a reboot?

Tony.

On Thu, 27 May 2004 09:14:23 -0400, Adam Mallory <amallory@qnx.com> wrote:

If you want to read values from IO space, you should use the -l! option. You can use modifiers such as -l!b or
-l!w or -l!l to read byte, word or long word
sized ioports.
Yes, I know this.

But how do I tell Proc that it needs to write the index into port 0x70 to reach RTC CMOS’s indexed byte when reading from port 0x71 afterwards?
I hoped that “-l @bios_offset” does exactly that.

Tony.

Tony wrote:

I should have said it more clear: I want to use the free byte in PC-AT’s
RTC CMOS (ports 0x70, 0x71 - where the BIOS stores it’s settings - HDD
type et al)…
How to tell Proc to look for the node number there?

If you want to read values from IO space, you should use the -l! option. You can use modifiers such as -l!b or
-l!w or -l!l to read byte, word or long word
sized ioports.

This is documented - consult the helpviewer for further info (Utilities,
Proc32).

BTW: is it possible to change the node number on the fly - without a
reboot?

No.

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

Tony wrote:

Yes, I know this.
But how do I tell Proc that it needs to write the index into port 0x70
to reach RTC CMOS’s indexed byte when reading from port 0x71 afterwards?
I hoped that “-l @bios_offset” does exactly that.

You can’t. Proc only will read values from memory or io space. So
either you need to find some other value to fetch or shadow that value
somewhere which is readable (without requiring a write to access it).

If you want a customized Proc to extract node numbers from your specific
BIOS, you’ll have to go through offical channels to arrange that.

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>