DosFlash V1.9 Release Date 01.01.2011
---------------------------------------
- SATA and IDE port scan improved in DOS and Windows
  The ports are now enumerated with the CONFIG_ADDRESS and CONFIG_DATA register instead of using interrupts
  in DOS and SetupDixx functions in Windows. This change will detect more ports in Windows than the old 
  SetupDixx method.
- Settings saved to ini file for DosFlash32 and DosFlash64
  Settings like Port, Position, Task, COM Port, Enable Drives and DvdKey state are now saved to an ini file
  inside the program folder. If the ini file is not present it is created after the first run. On the first
  startup DosFlash will choose the most common and stable settings.
- EnableDrives option included in dialog as a check box
  Due to high demand we removed the "Enabling CD-/DVD-ROMs" MessageBox on program termination and included
  a check box "Enable Drives" inside the dialog. For security and more stability this is deactivated on the
  first run. If you enable it the checked state is saved to the ini file.
- enabling drives in Windows caused some hangs from time to time, this is now fixed by a recoded enable
  drives function
- port drivers portio32.sys and portio64.sys are now added to the executable and unpacked during runtime
- PATA and SATA controllers list updated
- Fix for NForce motherboards in combination with drives like the "Samsung SH-D163C", "LG DH18NS40" or
  "LiteOn iHDS118"
  Some drives have problems with flash identify, read, write and erase. This is clearly related to the
  NVidia NForce chipset. For manual mode in DosFlash16 an additional command line parameter is added called
  "NFORCE FIX". This parameter should be set to 1 for NForce chipsets if you experience strange problems.
  In DosFlash32 and DosFlash64 we added a static control which shows if the NForce Fix is applied or not.
  Remember there is no need to activate this with every drive. It seems to be a combination between drive
  and NForce chipset that causes the problem. The fix is automatically applied for DosFlash16 in auto mode,
  DosFlash32 and DosFlash64.
- DosFlash32 and DosFlash64 are now DPI Aware for Windows7
- New task Verfiy Key/Inject Key added for verification/injection of drive keys
  All DosFlash versions now have the possibility to validate drive keys against an XBOX360 drive and set
  the key for an XBOX360 drive. We use the same authentication method like the console to verify a key.
  In the Windows versions you have the choice to paste the drive key from the clipboard to our custom hex
  edit control or load a key file. To add a key simply click right inside the hex edit control and select
  your choice from the shortcut menu. In DosFlash16 you can enter the key in the format "1A-2B-3C" without
  quotes. Remember that a key has 16 bytes of data. The key file to import should also have 16 bytes of data
  like the key files exported by LiteOn Key functions.
- Removed multiple key extractions for LiteOn Key functions, added Verify Key after extraction
  For LiteOn Key functions we removed the multiple extractions, because the key is now verified immediately
  against the XBOX360 drive.
- LiteOn Key V1 and V2 now also extract the file Serial.bin and the 2nd inquiry file Inquiry2.bin
  We added the file Serial.bin and Inquiry2.bin to LiteOn Key functions. Inquiry2.bin is only generated for
  LiteOn drives V1 and V2.
- The drive key of Maximus patched UART drives can be extracted by using the task "LiteOn Key V1 (DvdKey)"
  The drive check has been removed from LiteOn Key functions. This way we can extract a key from an UART 
  patched drive firmware by Maximus.
- LiteOn files are now extracted to a destination folder instead of prompting the user for every file name.
- LiteOn key extraction tasks separated per drive version in "LiteOn Key V1 (DvdKey)", "LiteOn Key V2 (FreeKey)"
  and "LiteOn Key V3 (Tarablinda)"
- In DosFlash32 and DosFlash64 the number of installed COM ports in the system are now enumerated instead of
  adding port 1 to 4
- For failing cdb commands the sense code is returned
- Geremia's Tarablinda functionality added
  We added all Tarablinda tasks to every DosFlash version. You can extract the key by choosing the task
  "LiteOn Key V3 (Tarablinda)". For read, write and erase of the flash simply use the standard functions.
  Pay attention that the "LiteOn Erase V1/V2" task is only available for older LiteOns and not for the Slim.
  You should use "Read Flash", "Write Flash" and "Erase Flash" for the Slim. "LiteOn Key V3 (Tarablinda)"
  extracts 1 additional file in comparison to Tarablinda v04b, this file is called Xtram.bin and contains
  a dump of the XTRAM8000 area. This can differ in a few bytes from one dump to the next.
- Device Reset in DosFlash16 manual mode is now done automatically, there is no option to turn it off anymore
- Code optimization to work with modern SATA2 controllers added, remember to set SATA controllers to IDE and
  not AHCI mode otherwise Port I/O will not work
- Warning: The read, write and erase of the Slim drive is considered risky in general! So pay attention and
  always remember you use DosFlash on your own risk every time! Even during flash read the Slim gets flashed
  with a patched firmware sector to retrieve the complete dump!
- We had to change many command line arguments for DosFlash16 Manual Mode, because of the NForce Fix, added
  Tarablinda support and splitting of LiteOn Key functions. To get a better understanding we added the example
  section below.


DosFlash16 Manual Mode Examples
---------------------------------
- Extract drive key on a "PLDS DG-16D2S 74850C" over UART -> "LiteOn Key V1 (DvdKey)"
  DOSFLASH LITEON K V1 0970 A0 1

- Extract drive key on a "PLDS DG-16D2S 83850C" over SATA -> "LiteOn Key V2 (FreeKey)"
  DOSFLASH LITEON K V2 0970 A0

- Extract drive key on a "PLDS DG-16D4S 9504" over SATA -> "LiteOn Key V3 (Tarablinda)"
  DOSFLASH LITEON K V3 0970 A0

- Read firmware on a "PLDS DG-16D4S 9504" -> "Read Flash" this is considered risky!
  DOSFLASH R 0970 1 A0 3 0 4 FWOUT.BIN 0

- Write firmware on a "PLDS DG-16D4S 9504" -> "Write Flash" this is considered risky!
  DOSFLASH W 0970 1 A0 3 0 4 FWIN.BIN 0

- Erase firmware on a "PLDS DG-16D4S 9504" -> "Erase Flash" this is considered risky!
  DOSFLASH E 0970 1 A0 3 0 4 C7 0

- Erase firmware on a "PLDS DG-16D2S 74850C" or a "PLDS DG-16D2S 83850C" -> "LiteOn Erase V1/V2"
  DOSFLASH LITEON E 0970 A0

- Read firmware on a "Samsung SH-D163C", "LG DH18NS40" or "LiteOn iHDS118" and a NForce motherboard -> "Read Flash"
  DOSFLASH R 0970 1 A0 2 0 4 FWOUT.BIN 1

- Write firmware on a "Samsung SH-D163C", "LG DH18NS40" or "LiteOn iHDS118" and a NForce motherboard -> "Write Flash"
  DOSFLASH W 0970 1 A0 2 0 4 FWIN.BIN 1

- Erase firmware on a "Samsung SH-D163C", "LG DH18NS40" or "LiteOn iHDS118" and a NForce motherboard -> "Erase Flash"
  DOSFLASH E 0970 1 A0 2 0 4 C7 1

- Verify drive key on a XBOX360 drive, enter the drive key manual
  DOSFLASH V 0970 A0 12-34-56-78-90-AB-CD-EF-12-34-56-78-90-AB-CD-EF

- Verify drive key on a XBOX360 drive, load a drive key file
  DOSFLASH V 0970 A0 KEY.BIN

- Inject drive key on a XBOX360 drive, enter the drive key manual
  DOSFLASH I 0970 A0 12-34-56-78-90-AB-CD-EF-12-34-56-78-90-AB-CD-EF

- Inject drive key on a XBOX360 drive, load a drive key file
  DOSFLASH I 0970 A0 KEY.BIN

For DosFlash drives on which we can extract the key via UART are considered V1. Drives we get the key over
SATA are considered V2. The new Slim is considered V3 but only firmware version 9504 is supported atm.


Many thanks to Geremia, Modfreakz, Redline99 and Tiros for their support. Special thanks to Geremia and
Modfreakz for drive sponsoring, testing, coding and much more. It is always a pleasure to work with you
professional guys! Respect to Maximus for his UART enable patch. I'm looking forward to your magic Lizard
hardware flasher!

Happy new year 2011!
Kai Schtrom