On Mon, 7 Sep 2009, Mary Robi wrote:
> Hello, sorry if this is obivious but:
>
> I programming a OS that uses FreeDOS as the bootloader and I want to know
> how to get kernel version.
Something like this. (This is stripped down from one of my own programs.)
void ver (void)
{
unsigned char osmajor, osminor, oemno, ushi;
unsigned int uslo;
regs.h.al=0;
regs.h.ah=0x30;
int86 (0x21, ®s, ®s);
osmajor=regs.h.al;
osminor=regs.h.ah;
oemno=regs.h.bh;
ushi=regs.h.bl;
uslo=regs.x.cx;
switch (oemno)
{
case 0:
if (_osmajor < 4)
printf ("\nPC-");
else if ((_osmajor < 6) || ((osmajor==6) && (osminor < 30)))
printf ("\nIBM ");
else
printf ("\nPC ");
break;
case 0xFF:
printf ("\nMS-");
break;
case 0xFD:
printf ("\nFreeDOS kernel %d.%d.%d\nB", regs.h.ch, uslo % 256,
ushi);
break;
default: /* (say nothing) */
printf ("\n");
};
printf ("DOS Version %2d.%02d\n", _osmajor, _osminor);
}
-uso.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel