I've created a multiboot DVD with XP Home Retail, Oem, Upgrade, SP0, 1, 2, 3. The DVD is working fine, except some of the function keys are messed up somehow. Sometimes I have to press it twice to react or sometimes it just not working at all. Here is the screenshot of my boot menu and the cdshell.ini. When I press "S", it suppose to go to menu where select Retail, Oem or Upgrade. "1" to select SP1, "7" to select SP2 with IE7 Slipstreamed, etc... I know what the problem is, but I just don't know how to fix it. The problem is all the lines with "goto" When I played around with those lines, that problems occur. What do I suppose to put after goto. I suck at programming, I tried to read the manual for cdshell. I just don't really get it. boot: cls print "Press any key to boot from DVD..... \n" getkey 10 boot 0x80 if $lastKey == key[`]; then goto Menu if $lastKey == key[0]; then goto Menu if $lastKey == key[1]; then goto Menu if $lastKey == key[2]; then goto Menu if $lastKey == key[3]; then goto Menu if $lastKey == key[4]; then goto Menu if $lastKey == key[5]; then goto Menu if $lastKey == key[6]; then goto Menu if $lastKey == key[7]; then goto Menu if $lastKey == key[8]; then goto Menu if $lastKey == key[9]; then goto Menu if $lastKey == key[-]; then goto Menu if $lastKey == key[=]; then goto Menu if $lastKey == key[1]; then goto Menu if $lastKey == key[q]; then goto Menu if $lastKey == key[w]; then goto Menu if $lastKey == key[e]; then goto Menu if $lastKey == key[r]; then goto Menu if $lastKey == key[t]; then goto Menu if $lastKey == key[y]; then goto Menu if $lastKey == key; then goto Menu if $lastKey == key; then goto Menu if $lastKey == key[o]; then goto Menu if $lastKey == key[p]; then goto Menu if $lastKey == key[\]; then goto Menu if $lastKey == key[a]; then goto Menu if $lastKey == key; then goto Menu if $lastKey == key[d]; then goto Menu if $lastKey == key[f]; then goto Menu if $lastKey == key[g]; then goto Menu if $lastKey == key[h]; then goto Menu if $lastKey == key[j]; then goto Menu if $lastKey == key[k]; then goto Menu if $lastKey == key[l]; then goto Menu if $lastKey == key[enter]; then goto Menu if $lastKey == key[z]; then goto Menu if $lastKey == key[x]; then goto Menu if $lastKey == key[c]; then goto Menu if $lastKey == key[v]; then goto Menu if $lastKey == key; then goto Menu if $lastKey == key[n]; then goto Menu if $lastKey == key[m]; then goto Menu if $lastKey == key[,]; then goto Menu if $lastKey == key[.]; then goto Menu if $lastKey == key[/]; then goto Menu if $lastKey == key[ESC]; then goto Menu if $lastKey == key[F1]; then goto Menu if $lastKey == key[F2]; then goto Menu if $lastKey == key[F3]; then goto Menu if $lastKey == key[F4]; then goto Menu if $lastKey == key[F5]; then goto Menu if $lastKey == key[F6]; then goto Menu if $lastKey == key[F7]; then goto Menu if $lastKey == key[F8]; then goto Menu if $lastKey == key[F9]; then goto Menu if $lastKey == key[F10]; then goto Menu if $lastKey == key[F11]; then goto Menu if $lastKey == key[F12]; then goto Menu if $lastKey == key[HOME]; then goto Menu if $lastKey == key[iNS]; then goto Menu if $lastKey == key ; then goto Menu if $lastKey == key[MOUSE]; then goto Menu if $lastKey == key[PGDN]; then goto Menu if $lastKey == key[PGUP]; then goto Menu if $lastKey == key ; then goto Menu if $lastKey == key[sPACE]; then goto Menu if $lastKey == key[TAB]; then goto Menu if $lastKey == key[uP]; then goto Menu if $lastKey == key[DOWN]; then goto Menu if $lastKey == key[bACK] then goto Menu if $lastKey == key[bRACKET]; then goto Menu if $lastKey == key[DEL]; then goto Menu # When no key found... goto boot # Windows XP Home Edition AIO Menu: show image graphics\Hmain.csi getkey 20 boot 0x80 if $lastKey == key; then goto HSelect if $lastKey == key[h]; then goto HHelp if $lastKey == key; then reboot if $lastKey == key[a]; then boot 0x80 if $lastKey == key[ESC]; then boot 0x80 goto Menu HSelect: show image graphics\Hselect.csi getkey 20 boot 0x80 if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key[h]; then goto HHelp if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Menu if $lastKey == key[ESC]; then boot 0x80 goto HSelect Home_Retail: show image graphics\Hre.csi getkey 20 goto Menu if $lastKey == key[0]; then goto HRE0I if $lastKey == key[1]; then goto HRE1I if $lastKey == key[2]; then goto HRE2I if $lastKey == key[7]; then goto HRE2IS if $lastKey == key[3]; then goto HRE3I if $lastKey == key[8]; then goto HRE3IS if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key[h]; then goto HHelp if $lastKey == key; then reboot if $lastKey == key[k]; then goto HSelect if $lastKey == key[ESC]; then boot 0x80 goto Home_Retail HRE0I: show image graphics\HRE0I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHR0.BIN if $lastKey == key[m]; then chain /HR0S.BIN if $lastKey == key[n]; then chain /HR0U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Retail if $lastKey == key[ESC]; then boot 0x80 goto HRE0I HRE1I: show image graphics\HRE1I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHR1.BIN if $lastKey == key[m]; then chain /HR1S.BIN if $lastKey == key[n]; then chain /HR1U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Retail if $lastKey == key[ESC]; then boot 0x80 goto HRE1I HRE2I: show image graphics\HRE2I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHR2.BIN if $lastKey == key[m]; then chain /HR2S.BIN if $lastKey == key[n]; then chain /HR2U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Retail if $lastKey == key[ESC]; then boot 0x80 goto HRE2I HRE2IS: show image graphics\HRE2I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHR2.BIN if $lastKey == key[m]; then chain /R21S.BIN if $lastKey == key[n]; then chain /R21U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Retail if $lastKey == key[ESC]; then boot 0x80 goto HRE2IS HRE3I: show image graphics\HRE3I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHR3.BIN if $lastKey == key[m]; then chain /HR3S.BIN if $lastKey == key[n]; then chain /HR3U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Retail if $lastKey == key[ESC]; then boot 0x80 goto HRE3I HRE3IS: show image graphics\HRE2I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /HR3I.BIN if $lastKey == key[m]; then chain /R31S.BIN if $lastKey == key[n]; then chain /R31U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Retail if $lastKey == key[ESC]; then boot 0x80 goto HRE3IS Home_Oem: show image graphics\hoe.csi getkey 20 goto Menu if $lastKey == key[0]; then goto HOE0I if $lastKey == key[1]; then goto HOE1I if $lastKey == key[2]; then goto HOE2I if $lastKey == key[7]; then goto HOE2IS if $lastKey == key[3]; then goto HOE3I if $lastKey == key[8]; then goto HOE3IS if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Select if $lastKey == key[ESC]; then boot 0x80 goto Home_Oem HOE0I: show image graphics\HOE0I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHO0.BIN if $lastKey == key[m]; then chain /HO0S.BIN if $lastKey == key[n]; then chain /HO0U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Oem if $lastKey == key[ESC]; then boot 0x80 goto HOE0I HOE1I: show image graphics\HOE1I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHO1.BIN if $lastKey == key[m]; then chain /HO1S.BIN if $lastKey == key[n]; then chain /HO1U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Oem if $lastKey == key[ESC]; then boot 0x80 goto HOE1I HOE2I: show image graphics\HOE2I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHO2.BIN if $lastKey == key[m]; then chain /HO2S.BIN if $lastKey == key[n]; then chain /HO2U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Oem if $lastKey == key[ESC]; then boot 0x80 goto HOE2I HOE2IS: show image graphics\HOE2I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /HO2I.BIN if $lastKey == key[m]; then chain /O21S.BIN if $lastKey == key[n]; then chain /O21U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Oem if $lastKey == key[ESC]; then boot 0x80 goto HOE2IS HOE3I: show image graphics\HOE3I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHO3.BIN if $lastKey == key[m]; then chain /HO3S.BIN if $lastKey == key[n]; then chain /HO3U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Oem if $lastKey == key[ESC]; then boot 0x80 goto HOE3I HOE3IS: show image graphics\HOE3I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /HO3I.BIN if $lastKey == key[m]; then chain /O31S.BIN if $lastKey == key[n]; then chain /O31U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Oem if $lastKey == key[ESC]; then boot 0x80 goto HOE3IS Home_Upgrade: show image graphics\Hue.csi getkey 20 goto Menu if $lastKey == key[0]; then goto HUE0I if $lastKey == key[1]; then goto HUE1I if $lastKey == key[2]; then goto HUE2I if $lastKey == key[7]; then goto HUE2IS if $lastKey == key[3]; then goto HUE3I if $lastKey == key[8]; then goto HUE3IS if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto HSelect if $lastKey == key[ESC]; then boot 0x80 goto Home_Upgrade HUE0I: show image graphics\HUE0I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHU0.BIN if $lastKey == key[m]; then chain /HU0S.BIN if $lastKey == key[n]; then chain /HU0U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Upgrade if $lastKey == key[ESC]; then boot 0x80 goto HUE0I HUE1I: show image graphics\HUE1I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHU1.BIN if $lastKey == key[m]; then chain /HU1S.BIN if $lastKey == key[n]; then chain /HU1U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Upgrade if $lastKey == key[ESC]; then boot 0x80 goto HUE1I HUE2I: show image graphics\HUE2I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHU2.BIN if $lastKey == key[m]; then chain /HU2S.BIN if $lastKey == key[n]; then chain /HU2U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Upgrade if $lastKey == key[ESC]; then boot 0x80 goto HUE2I HUE2IS: show image graphics\HUE2I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /HU2I.BIN if $lastKey == key[m]; then chain /U21S.BIN if $lastKey == key[n]; then chain /U21U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Upgrade if $lastKey == key[ESC]; then boot 0x80 goto HUE2IS HUE3I: show image graphics\HUE3I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /PHU3.BIN if $lastKey == key[m]; then chain /HU3S.BIN if $lastKey == key[n]; then chain /HU3U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Upgrade if $lastKey == key[ESC]; then boot 0x80 goto HUE3I HUE3IS: show image graphics\HUE3I.csi getkey 20 goto Menu if $lastKey == key[e]; then chain /HU3I.BIN if $lastKey == key[m]; then chain /U31S.BIN if $lastKey == key[n]; then chain /U31U.BIN if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Home_Upgrade if $lastKey == key[ESC]; then boot 0x80 goto HUE3IS HHelp: show image graphics\HHELP.csi getkey 20 goto Menu if $lastKey == key[o]; then goto Home_Oem if $lastKey == key[r]; then goto Home_Retail if $lastKey == key; then goto Home_Upgrade if $lastKey == key; then goto HSelect if $lastKey == key; then reboot if $lastKey == key[h]; then goto HHelp if $lastKey == key[k]; then goto Menu if $lastKey == key[ESC]; then boot 0x80 goto HHelp end