It looks like it's executing FF FF which probably means its executing
instructions at a place in memory that doesn't exist. I notice that
every once in the while, this is what it usually is:
The Plex86 BIOS uses a tremendus amount of stack, in comparisin to a
typical BIOS. If there's a stack fault and the interrupt handler is in a
stray place for a stack fault, it could be executing inside a place of
the ROM or anywhere, really; note that FF FF is what it would get if it
executed in a place of RAM that doesn't exist since the default value is
-1 for that.
It looks like once the stack fault goes off, that FF FF gets executed,
and that causes an INT 6 (invalid opcode). If that's unhandled much the
same will have happened.
Also that COULD happen, if not all of the cylinders are accessible, or:
check the boot sector to see how many heads IT says there are. That gets
used if LBA mode isn't available and that is what the problem PROBABLY
is:
To fix it, implement the IBM/MS INT 13 disk extensions. Try changing the
partition type to whatever it is ORed by 2; that will cause DOS to try
to use the IBM/MS INT 13 extensions, which cause it to not use the
number of tracks per cylinder eetc. stored in the boot sector.
Or, if you can't do that, change the partition type still to LBA mode,
and then change the boot sector's number of heads etc. to what it is
inside plex86.
That way, your system will still boot outside plex86 because it will be
using LBA mode, and inside it will use the correct cyl. etc. info in the
boot sector.
BTW backup everything before you do any of this...
Later...
Ws
Drew Northup wrote:
>
> Try giving plex86 the LBA values for the drive parameters......:
> 527 cyl, 255 heads, and 63sectors.
> This should allow MS-DOS to see the drive like a good LBA BIOS would tell it
> to. Try to keep in mind that those "bochs-opt" directives are the current
> substitute for CMOS parameters stored on NVRAM. Good luck!!!!
>
> Kenton Groombridge wrote:
>
> > In reading though many of the posts in the last few months I found out
> > that large drive support has been added with certain caveats. I can't
> > change the configuration of the system that I need to make this work on.
> >
> > Essentially, if I can make this work, I can deploy Linux in the Army on
> > approximately 50000 systems. It will definately get noticed.
> >
> > The drive partition is approximately 2 GB (whatever the largest
> > partition size is for FAT16).
> >
> > I finally got a config file that appears to work (mostly).
> >
> > Here is a screen shot of system commander just starting up:
> >
> > http://web.infoave.net/~kgroombr/snapshot.gif
> >
> > I cheated the cyl, heads, and spt. The real disk parameters are 527
> > cyl, 255 heads, and 63sectors. I changed it to the following so that it
> > was within the limitations of the BIOS and IDE. Again, even though the
> > disk is larger that 4GB, I only have the MSDOS partition (sda1) within
> > the limits of FAT16.
> >
> > Here are the guts of the config file:
> >
> > plugin = ./plugins/bochs/plugin-bochs.so
> > bochs-opt boot: c
> > bochs-opt diskc: file="/dev/sda", cyl=8959, heads=15, spt=63
> > bochs-opt floppya: 1_44="/dev/fd0", status=inserted
> > bochs-opt cdromd: dev="/dev/scd1", status=inserted
> > bochs-opt keyboard_serial_delay: 200
> > bochs-opt floppy_command_delay: 500
> > bochs-opt vga_update_interval: 200000
> > bochs-opt mouse: enabled=0
> > bochs-opt private_colormap: enabled=0
> > bochs-opt i440fxsupport: enabled=0
> > bochs-opt newharddrivesupport: enabled=1
> > bochs-opt ips: 1000000
> > bochs-init
> >
> > Everything works great. Even my System Commander starts loading and I
> > can pick which OS to boot from. System Commander copies all the files
> > from the C:\SC directory to the C:\ directory (msdos.sys, io.sys,
> > command.com ..... all the files necessary for booting the selected OS).
> >
> > Then I get the following and MSDOS 6.22 never boots:
> >
> > Processing command-line options
> > Opening VM (/dev/plex86)
> > Processing config file ../conf/msdos...
> > Allocating 16MB of physical memory in VM
> > Mapping virtualized physical memory into monitor
> > Zeroing virtualized physical memory
> > Mapping monitor print buffer into user mem.
> > bochs: ips = 1000000
> > unmapped_c::init: IGNORING unmapped ports
> > bochs: [cmos] Setting initial clock to: Sun Feb 25 01:14:29 2001
> > disk: Experimental CDROM on target 1
> > #::cdrom_interface: open failed on dev '/dev/scd1'.
> > disk: Could not locate CD-ROM, continuing with media not present
> > bochs: Opening image for device 0
> > floppy open of /dev/fd0:
> > : Device not configured
> > bochs: bx_options.floppy_command_delay = 500
> > vga construct static
> > bochs: font_width = 8
> > bochs: font_height = 16
> > bochs: default_depth = 24
> > bochs: waiting for MapNotify
> > bochs: MapNotify found.
> > bochs: vga: interval=200000
> > vga init called
> > bochs: TTY not used, serial port is not connected
> > ROM: loading image '../bios/BIOS-plex86-current' @ 0xf0000 (65536 bytes)
> > ROM: loading image '../bios/VGABIOS-elpin-2.40' @ 0xc0000 (32768 bytes)
> > Setting prescan depth to 3
> > prescan on
> > Processed 66 lines of config file '../conf/msdos'
> > Initializing plugins
> > Running VM
> > bochs: timer0 period set to 18 hz
> > bochs: CMOS: write reg 14h: value = 05h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3da: ignoring: feature ctrl & vert sync
> > bochs: *** io read 3c5 case 1: sequencer clocking mode
> > bochs: vga: io write 3c0: address mode reg=16
> > bochs: vga: io write 3c0: address mode reg=17
> > bochs: vga: io write 3c0: address mode reg=18
> > bochs: vga: io write 3c0: address mode reg=19
> > bochs: vga: io write 3c0: address mode reg=20
> > bochs: *** io read 3c5 case 1: sequencer clocking mode
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: *** io read 3c5 case 1: sequencer clocking mode
> > bochs: vga: io write 3c0: address mode reg=17
> > bochs: vga: io write 3c0: address mode reg=16
> > bochs: *** io read 3c5 case 1: sequencer clocking mode
> > bochs: update(): color text mode: mem map is 1
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write 3c0: address mode reg=17
> > bochs: vga: io write 3c0: address mode reg=16
> > bochs: MOUSE: kbd_ctrl_to_mouse(ffh)
> > bochs: enable = 0
> > bochs: allow_irq12 = 0
> > bochs: aux_clock_enabled = 0
> > bochs: KBD: controller_enQ(): OUTB set!
> > bochs: KBD: controller_enQ(): OUTB set!
> > bochs: MOUSE: kbd_ctrl_to_mouse(ffh)
> > bochs: enable = 0
> > bochs: allow_irq12 = 0
> > bochs: aux_clock_enabled = 0
> > bochs: KBD: controller_enQ(): OUTB set!
> > bochs: KBD: controller_enQ(): OUTB set!
> > bochs: MOUSE: kbd_ctrl_to_mouse(f4h)
> > bochs: enable = 0
> > bochs: allow_irq12 = 0
> > bochs: aux_clock_enabled = 0
> > bochs: MOUSE: kbd_ctrl_to_mouse(f5h)
> > bochs: enable = 1
> > bochs: allow_irq12 = 0
> > bochs: aux_clock_enabled = 0
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: vga: io write: 3da: ignoring: feature ctrl & vert sync
> > bochs: *** io read 3c5 case 1: sequencer clocking mode
> > bochs: vga: io write 3c0: address mode reg=16
> > bochs: vga: io write 3c0: address mode reg=17
> > bochs: vga: io write 3c0: address mode reg=18
> > bochs: vga: io write 3c0: address mode reg=19
> > bochs: vga: io write 3c0: address mode reg=20
> > bochs: update(): color text mode: mem map is 1
> > bochs: *** io read 3c5 case 1: sequencer clocking mode
> > bochs: vga: io write: 3cf: reg 05: value = 10h
> > bochs: *** io read 3c5 case 1: sequencer clocking mode
> > ::fetchDecode InvalidOpcode b1=0xFE nnn=7
> >
> > ::#UD: FE causes exception 6
> >
> > ::fetchDecode InvalidOpcode b1=0xFE nnn=7
> >
> > ::#UD: FE causes exception 6
> >
> > ::fetchDecode InvalidOpcode b1=0xFE nnn=7
> >
> > *************** and over and over and over and over and over until I
> > click poweroff
> >
> > ::fetchDecode InvalidOpcode b1=0xFE nnn=7
> >
> > ::#UD: FE causes exception 6
> >
> > bochs: panic, POWER button turned off.
> > Shutting down plugins
> > bochs: Note: X11: bx_gui_c::exit() not implemented yet.
> > Unmapping guest physical memory.
> > Unmapping monitor print buffer.
> > Tearing down VM
> > Closing VM
> >
> > Thanks for any help,
> > Ken
> >
> >
> > James Mastros wrote:
> > >
> > > On Sat, Feb 24, 2001 at 03:53:57PM -0500, Kenton Groombridge wrote:
> > > > Can plex86 utilize a device as opposed to a file disk image?
> > > >
> > > > Suppose I have msdos on /dev/sda1 or /mnt/msdos (either one, since I can
> > > > choose to mount or umount the file system). Can I boot and operate off
> > > > this device or filesystem? The guest os is msdos 6.22.
> > > You /should/ be able to. And you /can/ do it if the drive is under 504M
> > > (the old ide-not-atapi problem).
> > >
> > > -=- James Mastros
> > > --
> > > 90% of yiddish means "dick". You have to look past that to /what/ meaning
> > > of "dick" it has.
> > > AIM: theorbtwo homepage: http://www.rtweb.net/theorb/
> >
> > --
> > Kenton Groombridge
> > [EMAIL PROTECTED]
> > http://web.infoave.net/~kgroombr/
>
> --
> Drew Northup, N1XIM