Skip site navigation (1)Skip section navigation (2)
Date:      29 Jun 1998 15:30:22 +0200
From:      smoergrd@oslo.geco-prakla.slb.com (Dag-Erling Coidan Smørgrav)
To:        Josef Belkovics <belkovic@albert.osu.cz>
Cc:        Dag-Erling Coidan Smørgrav <smoergrd@oslo.geco-prakla.slb.com>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: BROKEN_KEYBOARD_RESET
Message-ID:  <rx490mgnxn5.fsf@oslo.geco-prakla.slb.com>
In-Reply-To: Josef Belkovics's message of Mon, 29 Jun 1998 15:18:46 %2B0200 (MET DST)
References:  <Pine.BSF.3.95q.980629144018.1658B-100000@albert.osu.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
Josef Belkovics <belkovic@albert.osu.cz> writes:
> On 29 Jun 1998, Dag-Erling Coidan Sm=F8rgrav wrote:
> > smoergrd@oslo.geco-prakla.slb.com (Dag-Erling Coidan Sm=F8rgrav) writes:
> > > Josef Belkovics <belkovic@albert.osu.cz> writes:
> > > > d) i will call appropritae bios function (int 19h ?)
> > > No, jo do a long jump to FFFF:0 IIRC.
> I don't understand well 'you do a long jump to ffff:0' (+ what means
> iirc?). I suppose that if i am in real (or 'normal') cpu mode, then i can

IIRC = If I Recall Correctly

> do 'int ?h'. I am not interesting what 'int ?h' really does - maybe long

No. int 19h is supposed to "reboot the disk system", but as often as
not it's not properly implemented. Even when it is, it does not reboot
the system, but simply tries to load the MBR from whatever floppy or
hard disk is first in the boot sequence. This is not what you want to
do, because you have no guarantee that FreeBSD has left the system in
a state that is usable for the next OS. You want to perform a complete
reboot, either cold or warm (the only difference I know of is that the
BIOS will skip the RAM test during a warm reboot). The only way to do
a warm reboot is to write 1234h to a specific address which I do not
recall at this moment, and do a far jump to FFFF:0. The code at that
address is usually just a trampoline which jumps to the correct (but
system-specific) point in BIOS ROM.

Trust me, I *know* that stuff. I grew up with DEBUG.COM and Ralf's
interrupt list as my two closest friends.

> jump to ffff:0 etc. (Probably long jump to ffff:0 is one from more ways
> how to call bios function 'reset'.) I look at problem from my knowledge

Not one of several ways, but the only way.

> database about FreeBSD asembler (nothing) and about c+asm+bios under dos
> (good).

Apparently not complete.

>         I wrote mail, because i don't know FreeBSD-asembler syntax for a)=

It's not 'FreeBSD-assembler syntax", but AT&T assembler syntax, upon
which gas (the GNU assembler), which FreeBSD uses, is based.

DES
-- 
Dag-Erling Smørgrav - smoergrd@oslo.geco-prakla.slb.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?rx490mgnxn5.fsf>