Jul 30, 2007

Using parallel port joypad/joystick with Linux

Introduction
My parallel port joystick is a Sony PSX controller type. I have no problem using it on windows(directpad pro drivers on win9x, ntpad on winnt/2k/xp), but on linux I find the solution to use it for a log time. Finally I found the solution on kernel source's document file /usr/src/linux/Documentation/input/joystick-parport.txt . The driver for this type of joystick is gamecon.c .

Activate your joystick
Using gamecon.c you can connect up to five devices to one parallel port. It uses the following kernel/module command line:
$ sudo modeprobe gamecon map=port,pad1,pad2,pad3,pad4,pad5
Where 'port' is the number of the parport interface (eg. 0 for parport0).And 'pad1' to 'pad5' are pad types, The types are:
Type | Joystick/Pad
--------------------
0 | None
1 | SNES pad
2 | NES pad
4 | Multisystem 1-button joystick
5 | Multisystem 2-button joystick
6 | N64 pad
7 | Sony PSX controller
8 | Sony PSX DDR controller

if you have lp module load, remove it first.
$ sudo rmmod lp
for PSX joypad on parallel port
$ sudo modprobe gamecon map=0,7

check kernel message by 'dmesg' command you should something look like below:
' input: PSX controller as /class/input/input5 '
Then you can test joystick by :
$ jstest /dev/input/js0
note: the device node /dev/input/js0 is created by automatically if you use devfs/udev , so you don't need to create manually .
If you don't use devfs,you'll have to manually create these nodes in /dev:
# cd /dev
# rm js*
# mkdir input
# mknod input/js0 c 13 0
# mknod input/js1 c 13 1
# mknod input/js2 c 13 2
# mknod input/js3 c 13 3
# ln -s input/js0 js0
# ln -s input/js1 js1
# ln -s input/js2 js2
# ln -s input/js3 js3
For testing with input-utils it's also convenient to create these:
# mknod input/event0 c 13 64
# mknod input/event1 c 13 65
# mknod input/event2 c 13 66
# mknod input/event3 c 13 67

*** May the force be with you,Good Luck!!!



How to move Windows XP to any mainboard

Introduction
After you move the Microsoft Windows XP system (boot) disk to new mainboard , you may receive the following Stop error when you try to start the Windows XP:
STOP: 0x0000007B (0xF741B84C,0xC0000034,0x00000000,0x00000000)
INACCESSIBLE_BOOT_DEVICE
From microsoft's document Q314082 , explain cause of this error that registry entries and the drivers for the mass storage controller hardware are not installed in Windows XP.For integrated device electronics (IDE) controllers, there are several different chip sets available, such as Intel, VIA, and Promise. Each chip set has a different Plug-n-Play identifier (PnP-ID).


Case 1: not yet move but plan to move to a new mainboard
1. Boot to windows xp with original m/b.
2. extract atapi.sys ,intelide.sys ,pciide.sys ,pciidex.sys from %SystemRoot%\Driver Cache\I386\Driver.cab to %SystemRoot%\System32\Drivers by run below commands :
expand "%SystemRoot%\Driver Cache\I386\Driver.cab" -F:atapi.sys "%SystemRoot%\System32\Drivers"
expand "%SystemRoot%\Driver Cache\I386\Driver.cab" -F:intelide.sys "%SystemRoot%\System32\Drivers"
expand "%SystemRoot%\Driver Cache\I386\Driver.cab" -F:pciide.sys "%SystemRoot%\System32\Drivers"
expand "%SystemRoot%\Driver Cache\I386\Driver.cab" -F:pciidex.sys "%SystemRoot%\System32\Drivers"

3. Create file name newmb.reg with contents below :

----------8<-- cut here -- 8<--------
Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\primary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\secondary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\*pnp0600]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\*azt0502]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\gendisk]
"ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}"
"Service"="disk"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#cc_0101]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_0e11&dev_ae33]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1039&dev_0601]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1039&dev_5513]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1042&dev_1000]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_105a&dev_4d33]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0640]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0646]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0646&REV_05]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0646&REV_07]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0648]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0649]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1097&dev_0038]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10ad&dev_0001]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10ad&dev_0150]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10b9&dev_5215]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10b9&dev_5219]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10b9&dev_5229]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1106&dev_0571]
"Service"="pciide"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_1222]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_1230]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2411]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2421]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7010]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7111]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7199]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

;Add driver for Atapi (requires Atapi.sys in Drivers directory)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi]
"ErrorControl"=dword:00000001
"Group"="SCSI miniport"
"Start"=dword:00000000
"Tag"=dword:00000019
"Type"=dword:00000001
"DisplayName"="Standard IDE/ESDI Hard Disk Controller"
"ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,61,00,74,00,61,00,70,00,69,00,2e,\
00,73,00,79,00,73,00,00,00

;Add driver for intelide (requires intelide.sys in drivers directory)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IntelIde]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Tag"=dword:00000004
"Type"=dword:00000001
"ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,6e,00,74,00,65,00,6c,00,69,\
00,64,00,65,00,2e,00,73,00,79,00,73,00,00,00


;Add driver for Pciide (requires Pciide.sys and Pciidex.sys in Drivers directory)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PCIIde]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Tag"=dword:00000003
"Type"=dword:00000001
"ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,70,00,63,00,69,00,69,00,64,00,65,\
00,2e,00,73,00,79,00,73,00,00,00


--8<--------cut end ---------->8--


4. megre newmb.reg to registry by:
regedit /s newmb.reg

5. Shutdown windows xp, now you can move it to any mainboard.


Case 2 : already move/upgrade to new mainboard
In this case you may use ERD commander or BartPE to merge the registry follow this instruction
extract atapi.sys ,intelide.sys ,pciide.sys ,pciidex.sys from C:\windows\Driver Cache\I386\Driver.cab to C:\windows\System32\Drivers by run below commands :

expand "C:\windows\Driver Cache\I386\Driver.cab" -F:atapi.sys "C:\windows\System32\Drivers"
expand "C:\windows\Driver Cache\I386\Driver.cab" -F:intelide.sys "C:\windows\System32\Drivers"
expand "C:\windows\Driver Cache\I386\Driver.cab" -F:pciide.sys "C:\windows\System32\Drivers"
expand "C:\windows\Driver Cache\I386\Driver.cab" -F:pciidex.sys "C:\windows\System32\Drivers"


1. Use ERD commander boot CD , when it ask you to attach registry on harddisk select yes , then you can megre newmb.reg to registry by:
regedit /s newmb.reg

then ,restart to test it.
-or-
Use BartPE , you must modify newmb.reg by search&replace ' SYSTEM\CurrentControlSet ' with 'x\ControlSet001' for all occurances, then save as newmb001.reg. Addtional search&replace ' SYSTEM\CurrentControlSet ' with 'x\ControlSet002' for all occurances, then save as newmb002.reg .
2. run regedit then go to HKEY_LOCAL_MACHINE , then goto menu choose -> load hive , go to c:\windows\system32\config\system , name it with 'x' .
3. merge registry by :
regedit /s newmb001.reg
regedit /s newmb002.reg
4. Unload hive that already merge
5. Restart to test it.

Note #1( add Aug 1,2007) Move from Intel to AMD
When you move from Intel's base to AMD's base , you may receiv
STOP: 0x0000007E (0xC0000005, addr, addr, addr)

The solution is , Press F8 to enter safemode then run regedit go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intelppm
Change the "Start" Value data box, to "4" , then restart .
Above solution should work fine but if not , try this :
- booted up using Bart PE , ERD commander or recovery console .
- rename or delete C:\Windows\system32\drivers\intelppm.sys , then restart



*** May the force be with you,Good Luck!!!

Jul 28, 2007

Test your RAM: Using GRUB/LILO to load memtest86+ for testing RAM

Introduction
Memtest86+ is software designed to stress-test an x86-compatible computer's random access memory (RAM) for errors. It can run from a bootable floppy disk, CD-ROM, USB Drive, or from a suitable bootloader without an operating system present. Linux use GURB or LILO as bootloader ,so we can use them to load memtest86+ easily.

Prerequisite
1. Linux with GRUB or LILO.
2. memtest86+. info? / download

Load by GRUB
1. Extract memtest86+ archive to /boot :
$ cd /boot
$ sudo gzip -d memtest86+-1.70.bin.gz
$ sudo mv memtest86+-1.70.bin mt86p.bin
2. Edit /boot/grub/menu.lst , add follow entry :
title memtest86+
root (hd0,0)
kernel /mt86p.bin
savedefault
boot

note: root (hd0,0) mean /dev/hda1 is mounted on /boot , change to appropriate value , example : (hd0,1) for hda2 or (h1,3) for hdb4 etc.

Load by LILO
1. Extract memtest86+ archive to /boot :
$ cd /boot
$ sudo gzip -d memtest86+-1.70.bin.gz
$ sudo mv memtest86+-1.70.bin mt86p.bin
2. Edit /etc/lilo.conf add follow entry :
### LILO memory test section (memtest)
image = /boot/mt86p.bin
label = memtest86+

then run:
$ sudo /sbin/lilo

Linux with BadRAM
Linux system can reliably use a RAM module even if it has a few bad bits(BadRAM) by patching the Linux kernel in such a way that it can handle defective RAM modules. You can find it out here -> BadRAM: Linux kernel support for broken RAM modules.

*** May the force be with you,Good Luck!!!

Multi-Boot CD Part 2: Multiple copies of Windows XP in one CD

Introduction
This guide will show you how to create multi-boot CD which mix multiple copies of Windows XP in one CD. I use a multi-boot loader called " Boot CD Wizard(bcdw) " version 1.05z . In this example I want to mix three copies of windows xp sp2 (normal installation mode , Unattended wiith providedefault mode , Unattended wiith Fullunattended mode ) on this CD . You can mix more as you want.( i.e. SATA driver integrated version, Media Center edition , Home edition , Updatepack integrated version, etc ) .

Prerequisite
1. Boot CD wizard v1.50z ( boot loader for multi-boot CD ) info?
2. CDIMAGE - commandline or GUI version ( microsoft's CD mastering tool ) info?
3. Windows XP SP2 installation floppy bootdisks. info?
4. WinImage or Virtual floppy for extracting/mounting floppy image files.
5. HEX editor - for editing the cd's boot sector file ( i.e. WinHEX , PSPAD , UltraEdit ) info?
6. Special bootsector file , download here boot.bin

CD's content preparing
1. Create a folder for your BootCD data, e.g. C:\mycd ( this is root of your cd )
2. Unpack the ZIP-archive with BCDW v1.05z to c:\mycd .
3. Create folder c:\mycd\XPMN for windows xp sp2 normal installation mode .
Create folder c:\mycd\XPKY for windows xp sp2 Unattended wiith providedefault mode( please use sysprep deployment tool from microsoft) .
Create folder c:\mycd\XPUA for windows xp sp2 Unattended wiith Fullunattended mode( please use sysprep deployment tool from microsoft) .
4. Copy i386 folder and files WIN51* of three installation modes to appropriate folder( XPMN , XPKY and XPUA ).
5. Copy all files from Windows XP SP2 installation floppy bootdisks to folder XPMN , XPKY and XPUA.
6. Copy Special bootsector file ' boot.bin ' to folder XPMN , XPKY and XPUA.
7. Delete TXTSETUP.SI_ in folder XPMN , XPKY and XPUA , then copy TXTSETUP.SIF from folder i386 to folder XPMN , XPKY and XPUA instead.
8. Use a HexEditor to edit the files SETUPLDR.BIN Replace all occurrences of 'I386' ...
...with 'XPMN' in the file C:\mycd\XPMN\SETUPLDR.BIN
...with 'XPKY' in the file C:\mycd\XPKY\SETUPLDR.BIN
...with 'XPUA' in the file C:\mycd\XPUA\SETUPLDR.BIN
9. Use a HexEditor to edit the files boot.bin Replace all occurrences of 'I386' ...
...with 'XPMN' in the file C:\mycd\XPMN\boot.bin
...with 'XPKY' in the file C:\mycd\XPKY\boot.bin
...with 'XPUA' in the file C:\mycd\XPUA\boot.bin
10. Use a Text Editor to edit the files TXTSETUP.SIF Replace SetupSourcePath = "\" ...
...with "\XPMN\" in the file C:\mycd\XPMN\TXTSETUP.SIF
...with "\XPKY\" in the file C:\mycd\XPKY\TXTSETUP.SIF
...with "\XPUA\" in the file C:\mycd\XPUA\TXTSETUP.SIF
11. Copy files WIN51* to root of cd ( c:\mycd ).
12. Edit the file C:\mycd\BootCat.Ini (configuration file of Bootable CD Wizard) to add all boot entries , it should look like this :
; *** Boot options definition
: ; *** Select type of Windows XP Pro installation medthod
\XPMN\boot.bin ; Microsoft Windows XP SP2 normal ; normal install with manual control
\XPKY\boot.bin ; Microsoft Windows XP SP2 auto CDKEY ; normal install with Provide defualt data
\XPUA\boot.bin ; Microsoft Windows XP SP2 Full unattended ; install automatic with Full unattended
13. If you want message "Press any to boot from CD" when booting, please copy file 'bootfix.bin' from i386 folder to C:\mycd\bcdw .

Making the ISO & Burn it
On this guide I use CDimage/CDimageGUI to make bootable CD iso image.
- for commandline cdimage:
> cdimage.exe" -l"MYCD" -h -j1 -b"D:\mycd\bcdwboot.bin" -oc -oi -m "D:\mycd" "D:\mycd.iso"
- if you are not familiar with a commandline,you can use CdimageGUI instead.

Test mycd.iso by using cdrw media or emulator(like VMWare / Virtual PC / QEmu ), if it work perfectly ,then burn iso with you favourite program.

*** May the force be with you,Good Luck!!!


Jul 27, 2007

Multi-boot CD guide - Part 1 : ERD commander,BartPE,Hiren and the gangs

Introduction
This guide will show you how to create multi-boot CD which store all your favourite diagnostic/recovery tools in only one CD. I use a multi-boot loader called " Boot CD Wizard(bcdw) " lastest version ( v.2.01a ) . In this example I want to store BartPE, ERD commander, memtest86+, Bart netboot, 98/me startup disk , Hiren's boot cd , ntldr missing fix disk , Spintrite , HDD regenertator and PC-Check on this CD .

Prerequisite

1. Boot CD wizard v2.01a ( boot loader for multi-boot CD ) info?
2. CDIMAGE - commandline or GUI version ( microsoft's CD mastering tool ) info?
3. BBIE - Bart's Boot Image Extractor ( for extracting boot image from bootable CD or CD image , i.e. Hiren's boot CD or BartPE or ERD commander ) info?
4. HEX editor - for editing the cd's boot sector file ( i.e. WinHEX , PSPAD , UltraEdit ) info?
5. Original CD of BartPE, ERD commander, Hiren's boot cd.
6. Floppy image of memtest86+ ,Bart netboot, 98/me startup disk, ntldr missing fix disk , Spintrite ,HDD regenertator and PC-Checck.( if you are lazy , you can d/l from this floppy.boot.img.rar.)
7. Other useful program like Ghost,Partition magic ,etc.(Can put anywhere on your Bootable CD)

CD's content preparing

1. Create a folder for your BootCD data, e.g. C:\mycd ( this is root of your cd )
2. Create folder called C:\mycd\bcdw , then copy the files loader.bin, bcdw.bin and bcdw.ini from BCDW archive to
C:\mycd\bcdw.
3. File bcdw.ini is the main configuration file of BCDW v2.01a
4. For BartPE CD
- copy folder i386 and all other folders to C:\mycd and rename i386 folder, the name has to consist of 4 characters e.g. BTPE. Do not edit any files in these folders ,then copy files WIN51* to C:\mycd (WIN51,WIN51IP,WIN51IS,WIN51IP.SP1 - if exists)
- extract boot sector of BartPE CD. You need Bart's Bootable Image Extractor , run in cmd prompt e.g.
> bbie e:
( where e: is CDROM drive
)
or
> bbie bartpe.iso
above command extract the boot sector of cd named image1.bin with 2KB size. Rename it fo btpe.bin
- Use Hex editor to edit btpe.bin , search & replace 'i386' with 'BTPE' . Then copy btpe.bin to C:\mycd .
- Use Hex editor to edit C:\mycd\BTPE\setupldr.bin , search & replace 'i386' with 'BTPE' (all appearance).
5. For ERD Commander CD
- copy folder i386 and all other folders to C:\mycd and rename i386 folder, the name has to consist of 4 characters e.g. ERDC. Do not edit any files in these folders ,then copy files WIN51* to C:\mycd (WIN51,WIN51IP,WIN51IS,WIN51IP.SP1 - if exists)
- extract boot sector of ERD Commander CD. You need Bart's Bootable Image Extractor , run in cmd prompt e.g.
> bbie e:
( where e: is CDROM drive )
or
> bbie ERDC.iso
above command extract the boot sector of cd named image1.bin with 2KB size. Rename it fo erdc.bin
- Use Hex editor to edit erdc.bin , search & replace 'i386' with 'ERDC' . Then copy erdc.bin to C:\mycd .
- Use Hex editor to edit C:\mycd\ERDC\setupldr.bin , search & replace 'i386' with 'ERDC' (all appearance).
6. For Hiren's boot CD
- copy all content of Hiren's boot cd to C:\mycd
- extract boot sector of Hiren's boot CD. You need Bart's Bootable Image Extractor , run in cmd prompt e.g.
> bbie e:
( where e: is CDROM drive )
or
> bbie hiren91.iso
above command extract the boot sector of cd named image1.bin with 1.44MB size. Rename it fo hiren.bin
- Create folder C:\mycd\boot. Then copy hiren.bin to C:\mycd\boot
7. Copy all floppy images to C:\mycd\boot
8. Edit entries in C:\mycd\bcdw\bcdw.ini in the section MenuItems. It should look like this:
[MenuItems]
\btpe.bin ; BartPE
\erdc.bin ; ERD commander 2005
\boot\mt86p.bin ; memtest86+ v1.70
\boot\ntldr.bin ; NTLDR missing Fix
\boot\netboot.bin ; Network boot DOS
\boot\boot98.bin ; Win 98 startup disk
\boot\bootme.bin ; Win ME startup disk
\boot\hiren.bin ; Hiren v9.1
\boot\spinrt.bin ; spinrite
\boot\hddreg.bin ; HDD regenerator
\boot\pccheck.bin ; PC-Check

9. Copy other useful program like Ghost,Partition magic ,etc to your C:\mycd .

10. If you want message "Press any to boot from CD" when booting, please copy file 'bootfix.bin' from i386 folder of Windows XP CDROM to C:\mycd\bcdw .


Making the ISO & Burn it
On this guide I use CDimage/CDimageGUI to make bootable CD iso image.
- for commandline cdimage:
> cdimage.exe" -l"MYCD" -h -j1 -b"D:\mycd\bcdw\loader.bin" -oc -oi -m "D:\mycd" "D:\mycd.iso"
- if you are not familiar with a commandline,you can use CdimageGUI instead.

Test mycd.iso by using cdrw media or emulator(like VMWare / Virtual PC / QEmu ), if it work perfectly ,then burn iso with you favourite program.

*** May the force be with you,Good Luck!!!