' Title: split.vbs
' Visual basic script to split atj2127/atj2129/1tj2123 fwimage file into its separate files
' Usage:
' - Copy to a text file on Windows.
' - Rename to split.vbs
' - Create clean folder
' - Copy fwimage.fw and split.vbs into the empty folder.
' - Run / double-click split.vbs
' - A fillist.txt file is created containing all files in the fwimage
' - plus all files are extracted form the fwimage in 512 byte blocks!
' - Due to the fixed 512 byte block size extra 0x00 bytes are appended to most files
'************************************* Start of Script ***************************************************
Const ForReading = 1
Const ForWriting = 2
CurrentScriptFolder = Left(Wscript.ScriptFullName, Len(Wscript.ScriptFullName) - Len(Wscript.ScriptName))
set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Input_file_name=CurrentScriptFolder +"\fwimage.fw"
Set FWFile = objFSO.OpenTextFile(Input_file_name, ForReading, True)
Output_file_name=CurrentScriptFolder +"\FileList.txt"
Set Outputfiletxt = objFSO.OpenTextFile(Output_file_name, ForWriting, True)
Skip=FWFile.Read(512)
FileName=RTrim(FWFile.Read(8)) +"."+RTrim(FWFile.Read(3))
do while asc(left(filename,1)) <>0 and FWFile.AtEndOfStream <> True
Skip=FWFile.Read(5)
MyStart=asc(FWFile.Read(1))
MyStart=MyStart+asc(FWFile.Read(1))*256
MyStart=MyStart+asc(FWFile.Read(1))*256*256
MyStart=MyStart+asc(FWFile.Read(1))*256*256*256
MyStart=MyStart*512
MySize=asc(FWFile.Read(1))
MySize=MySize+asc(FWFile.Read(1))*256
MySize=MySize+asc(FWFile.Read(1))*256*256
MySize=MySize+asc(FWFile.Read(1))*256*256*256
Skip=FWFile.Read(8)
Outputfiletxt.WriteLine(Filename+","+CStr(MyStart)+","+CStr(MySize))
FileName=RTrim(FWFile.Read(8)) +"."+RTrim(FWFile.Read(3))
loop
Outputfiletxt.close
FWFile.close
'************************************************************************************
Input_file_name=CurrentScriptFolder +"\FileList.txt"
Set Inputfiletxt = objFSO.OpenTextFile(Input_file_name, ForReading, True)
Input_Fwfile_name=CurrentScriptFolder +"\fwimage.fw"
Set InputFW = objFSO.OpenTextFile(Input_Fwfile_name, ForReading, True)
MyLine = Inputfiletxt.ReadLine
MyComma = InStr(Myline, chr(44))
MyStart = Mid(MyLine,MyComma+1)
MyComma2=InStr(MyStart, chr(44))
MyStart = left(MyStart,MyComma2-1)
for count = 1 to MyStart
MyChar=InputFW.Read(1)
next
Do While Inputfiletxt.AtEndOfStream <> True
MyComma = InStr(Myline, chr(44))
MyFile = left(Myline,MyComma-1)
MyComma =InStr(MyComma+1,Myline, chr(44))
MySize = Mid(MyLine,MyComma+1)
Output_file_name=CurrentScriptFolder +MyFile
Set Outputfiletxt = objFSO.OpenTextFile(Output_file_name, ForWriting, True)
Mychar=InputFW.Read(MySize)
Outputfiletxt.Write(MyChar)
Outputfiletxt.close
MyLine = Inputfiletxt.ReadLine
Loop
Inputfiletxt.close
InputFW.close
MsgBox("The script has finished, you can look a the results now.")