Jump to content

Problems with Multiboot CD and USB Keyboard


Recommended Posts

Posted

I have just begun trying to develop a multi-OS boot CD, and decided to start simple. I've created a CD that is supposed to boot DOS 5.0, DOS 6.22, Win ME or Win 98. On my desktop computer, it totally fails to boot DOS 5.0 and DOS 6.22 (the system seems to hang). On Win ME, it boots to A: but will not accept any input from the keyboard. With Win 98, it boots normally, except that the system will not accept any keyboard inputs while config.sys and/or autoexec.bat are being executed (i.e., I can not choose things like menu items in config.sys, nor can I provide any inputs, like pressing the enter key, during execution of autoexec.bat).

I have partially tested the same CD on my IBM Thinkpad T40, and it seems to work. The most obvious difference between the two systems is that my desktop uses a Logitech Keyboard/Mouse under Bluetooth, with the transceiver plugged into one of the USB ports.

I created the CD using the guide on http://flyakite.msfnhosting.com/, and I believe that I have implemented it properly (seems to work on the Thinkpad).

My desktop system configuration is as follows:

Motherboard: Abit BD7-RAID with 512 MB RAM

Video: NVIDIA GeForce2 MX

BIOS: Phoenix Award BIOS version i845-W83627HF-6A69VA1DC (date 07/15/2003 - it's the latest)

Logitech Keyboard/Mouse under Bluetooth (USB)

100 MB Zip Drive

2 Sandisk SDIO/CF USB Drives

2 Western Digital HDs (120 GB, 200 GB, lots of free space)

The cshell.ini that I used is:

boot:

cls

print "\n"

print "Press Enter to boot from DVD... \n"

getkey 5 boot 0x80

if $lastKey == key[enter]; then goto time

# When no key found...

goto boot

# Function to display time of day

time:

set hour = $timeHour

set ampm = "am"

if $timeHour > 12; then set hour = $timeHour - 12

if $timeHour > 12; then set ampm = "pm"

set time = "$hour:$timeMinute$ampm"

# Function to display date

date:

set month = "n/a"

if $dateMonth == 1; then set month = "Jan."

if $dateMonth == 2; then set month = "Feb."

if $dateMonth == 3; then set month = "Mar."

if $dateMonth == 4; then set month = "Apr."

if $dateMonth == 5; then set month = "May."

if $dateMonth == 6; then set month = "Jun."

if $dateMonth == 7; then set month = "Jul."

if $dateMonth == 8; then set month = "Aug."

if $dateMonth == 9; then set month = "Sep."

if $dateMonth == 10; then set month = "Oct."

if $dateMonth == 11; then set month = "Nov."

if $dateMonth == 12; then set month = "Dec."

set date = "$month$dateDay,$dateYear"

# Printing the Interface

menu:

set textColor= color[grey on black]

set boldColor= color[cyan on black]

cls

print c "\n\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ<\c0B$time $date\cXX>ÄÄ \n\n"

print c "\cXXAdvanced Multi-Boot DVD v1.7\n\n"

print l "\cXXPress \c0BF1 \cXXfor Help"; print r "\c0Bckite@portraitofakite.com \n"

print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n\n"

print "1) MSDOS 5.0 \n"

print "2) MSDOS 6.22 \n"

print "3) Win ME \n"

print "4) MSDOS 7.0 \n"

print "\n"

print "Q) Quit to Command Prompt \n"

print "R) Reboot \n"

print "ESC) Boot 1st Harddisk \n"

print c "\n"

MainKey:

getkey 20 boot 0x80

if $lastKey == key[1]; then memdisk /DOS5P0.IMG

if $lastKey == key[2]; then memdisk /MSDOS6P22.IMG

if $lastKey == key[3]; then memdisk /ME.IMG

if $lastKey == key[4]; then memdisk /MSDOS7.IMG

if $lastKey == key[q]; then end

if $lastKey == key[r]; then reboot

if $lastKey == key[F1]; then goto Help

if $lastKey == key[esc]; then boot 0x80

Help:

cls

print c "\n\cXXMulti-Boot DVD Help \n"

print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"

print "\n"

print "Hit the key of your choice in the main menu -> \n"

print "\n"

print "\n"

print "Install Types \n"

print "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"

print "Regular - Install will prompt you for all information during setup. \n"

print "Unattended - Install with no user prompts. \n"

print "OEMPreinstall - Install Windows and additional programs with no user prompts. \n"

print "\n"

print "\n"

print "Press any key to return to main menu... \n"

getkey

goto menu

end

Any help would be greatly appreciated.


Posted

First thing you should check is the BIOS of your computer.

Make sure that USB LEGACY DEVICES or USB KEYBOARD SUPPORT is enable.

Another option would be to use the USB to PS/2 adapter provided with your keyboard.

Then come back with the results...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...