FloppyCopy   |   About   |   Screenshots


REM ISO File Creator

REM by Christian Albrecht

REM Requires yab v 1.0

REM 2007

screenWidth = peek("desktopwidth")

screenHeight = peek("desktopheight")

joliet$=""

window open ((screenWidth/2)-190), ((screenHeight/2)-200) to ((screenWidth/2)+190), ((screenHeight/2)+200), "View_ISOCreator", "IFC - ISO File Creator"

window set  "View_ISOCreator", "MinimumTo", 375,400

window set  "View_ISOCreator", "MaximumTo", 375,400

window set "View_ISOCreator", "flags", "not-resizable"

MainWindow()

dim part$(1)

inloop = true

while(inloop)

msg$ = message$

if (split(msg$, part$(), ":|") > 2) then

PartOne$=part$(1)

PartTwo$ = part$(2)

PartThree$ = part$(3)

fi

switch msg$

case "View_ISOCreator:_QuitRequested|"

window close "ISOCreator"

break

case "View_ISOCreator:"+translate$("Main:Quit")+"|"

window close "ISOCreator"

break

case "View_ISOCreator:"+translate$("Main:About")+"|"

about()

break

case "close_about|"

WINDOW CLOSE "View_About"

break

case "select_path_source|"

TEXTEDIT CLEAR "info"

source_folder$ = FILEPANEL "Load-Directory", translate$("Select Source Folder"), "/boot/home"

TEXTCONTROL SET "folder_path_source", source_folder$

break

case "select_path_target|"

TEXTEDIT CLEAR "info"

source_folder$ = FILEPANEL "Save-File", translate$("Select Target Folder"), "/boot/home", "*.iso"

TEXTCONTROL SET "folder_path_target", source_folder$

break

case "info_path_source|"

TEXTEDIT CLEAR "info"

TEXTEDIT ADD "info", translate$("Select the source folder")+".\n"+translate$("All files from this folder will be included into the iso image")+"."

break

case "info_path_target|"

TEXTEDIT CLEAR "info"

TEXTEDIT ADD "info", translate$("Select the target folder and the name for the iso image")+"."

break

case "info_iso_name|"

TEXTEDIT CLEAR "info"

TEXTEDIT ADD "info", translate$("Enter the name for the ISO image file")+"."

break

case "joliet:ON|"

TEXTEDIT CLEAR "info"

option set "udf", "enabled", false

udf$=""

option set "joliet-long", "enabled", true

joliet$="-J "

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Generate Joliet directory information")+"."

break

case "joliet-long:ON|"

TEXTEDIT CLEAR "info"

if(joliet$="-J ")then

jolietlong$="-joliet-long "

else

jolietlong$=""

fi

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Allow Joliet file names to be 103 Unicode characters")+"."

break

case "full-iso9660-filenames:ON|"

TEXTEDIT CLEAR "info"

option set "max-iso9660-filenames", "enabled", false

fulliso9660filenames$="-full-iso9660-filenames "

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Allow full 31 character filenames for ISO9660 names")+"."

break

case "max-iso9660-filenames:ON|"

TEXTEDIT CLEAR "info"

option set "full-iso9660-filenames", "enabled", false

maxiso9660filenames$="-max-iso9660-filenames "

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Allow 37 character filenames for ISO9660 names (violates ISO9660)")+"."

break

case "rational-rock:ON|"

TEXTEDIT CLEAR "info"

rationalrock$="-r "

option set "rockridge", "enabled", false

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Generate rationalized Rock Ridge directory information")+"."

break

case "rockridge:ON|"

TEXTEDIT CLEAR "info"

rockridge$="-R "

option set "rational-rock", "enabled", false

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Generate Rock Ridge directory information")+"."

break

case "udf:ON|"

TEXTEDIT CLEAR "info"

option set "joliet", "enabled", false

joliet$=""

option set "dvd-video", "enabled", true

udf$="-udf "

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Generate UDF file system")+"."

break

case "dvd-video:ON|"

TEXTEDIT CLEAR "info"

dvdvideo$="-dvd-video "

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Generate DVD-Video compliant UDF file system")+"."

break

case "hard-disk-boot:ON|"

TEXTEDIT CLEAR "info"

option set "no-boot", "enabled", false

if(noboot$="-no-boot ")then

harddiskboot$=""

else

harddiskboot$="-hard-disk-boot "

fi

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Boot image is a hard disk image")+"."

break

case "no-emul-boot:ON|"

TEXTEDIT CLEAR "info"

noemulboot$="-no-emul-boot "

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Boot image is 'no emulation' image")+"."

break

case "no-boot:ON|"

TEXTEDIT CLEAR "info"

option set "hard-disk-boot", "enabled", false

if(harddiskboot$="-hard-disk-boot ")then

noboot$=""

else

noboot$="-no-boot "

fi

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

TEXTEDIT ADD "info", translate$("Boot image is not bootable")+"."

break

case "joliet:OFF|"

TEXTEDIT CLEAR "info"

option set "udf", "enabled", true

if(jolietlong$="-joliet-long ")then

jolietlong$=""

CHECKBOX SET "joliet-long", 0

fi

option set "joliet-long", "enabled", false

joliet$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "joliet-long:OFF|"

TEXTEDIT CLEAR "info"

jolietlong$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "full-iso9660-filenames:OFF|"

TEXTEDIT CLEAR "info"

option set "max-iso9660-filenames", "enabled", true

fulliso9660filenames$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "max-iso9660-filenames:OFF|"

TEXTEDIT CLEAR "info"

option set "full-iso9660-filenames", "enabled", true

maxiso9660filenames$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "rational-rock:OFF|"

TEXTEDIT CLEAR "info"

option set "rockridge", "enabled", true

rationalrock$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "rockridge:OFF|"

TEXTEDIT CLEAR "info"

option set "rational-rock", "enabled", true

rockridge$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "udf:OFF|"

TEXTEDIT CLEAR "info"

option set "joliet", "enabled", true

if(dvdvideo$="-dvd-video ")then

dvdvideo$=""

CHECKBOX SET "dvd-video", 0

fi

option set "dvd-video", "enabled", false

udf$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "dvd-video:OFF|"

TEXTEDIT CLEAR "info"

dvdvideo$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "hard-disk-boot:OFF|"

TEXTEDIT CLEAR "info"

option set "no-boot", "enabled", true

harddiskboot$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "no-emul-boot:OFF|"

TEXTEDIT CLEAR "info"

noemulboot$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "no-boot:OFF|"

TEXTEDIT CLEAR "info"

option set "hard-disk-boot", "enabled", true

noboot$=""

TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$

break

case "create|"

TEXTEDIT CLEAR "info"

option_deactivate()

TEXTEDIT ADD "info", translate$("Creating ISO Image")+"!\n\n"

Source$=TEXTCONTROL GET$ "folder_path_source"

Target$=TEXTCONTROL GET$ "folder_path_target"

ISOName$=TEXTCONTROL GET$ "enter_iso_name"

if(Source$="")then

TEXTEDIT ADD "info", translate$("You need to select a source folder")+"!"

option_activate()

elseif(Target$="")then

TEXTEDIT ADD "info", translate$("You need to select the target folder")+"!"

option_activate()

elseif(ISOName$="")then

TEXTEDIT ADD "info", translate$("You need to select a ISO filename")+"!"

option_activate()

else

TEXTEDIT ADD "info", translate$("Moving Window to background")+"!\n\n"

wait 2

WINDOW SET "View_ISOCreator", "Deactivated"

Commands$=TEXTCONTROL GET$ "commands"

result$=System$("mkisofs "+Commands$+" -V "+ISOName$+" -o "+Target$+" "+Source$+" 2>&1")

TEXTEDIT ADD "info", result$+"\n\n"

TEXTEDIT ADD "info", translate$("Ready")+"!"

LineNumber = TEXTEDIT GET "info", "currentline"

TEXTEDIT SET "info", "gotoline", LineNumber

option_activate()

WINDOW SET "View_ISOCreator", "Activated"

dim FolderDeth$(1)

FolderDeth = split(Target$, FolderDeth$(), "/")

x=1

TargetFolder$=""

for TargetFolder=1 to FolderDeth-2

x=x+1

TargetFolder$=TargetFolder$+"/"+FolderDeth$(x)

next TargetFolder

Output$=System$("open "+TargetFolder$)

option_activate()

fi

joliet$=""

jolietlong$=""

fulliso9660filenames$=""

maxiso9660filenames$=""

rationalrock$=""

rockridge$=""

udf$=""

dvdvideo$=""

harddiskboot$=""

noemulboot$=""

noboot$=""

CHECKBOX SET "joliet", 0

CHECKBOX SET "joliet-long", 0

CHECKBOX SET "full-iso9660-filenames", 0

CHECKBOX SET "max-iso9660-filenames", 0

CHECKBOX SET "rational-rock", 0

CHECKBOX SET "rockridge", 0

CHECKBOX SET "udf", 0

CHECKBOX SET "dvd-video", 0

CHECKBOX SET "hard-disk-boot", 0

CHECKBOX SET "no-emul-boot", 0

CHECKBOX SET "no-boot", 0

break

end switch

if(window count<1) inloop = false

sleep 0.1

wend

sub MainWindow()

menu translate$("Main"), translate$("About"), "", "View_ISOCreator"

menu translate$("Main"), translate$("Quit"), "", "View_ISOCreator"

BOXVIEW 5,35 TO 370,390, "View_ISO", "ISO File Creator", 1, "View_ISOCreator"

DRAW TEXT 10,30, translate$("Source Folder"), "View_ISO"

TEXTCONTROL 80,15 TO 290,20, "folder_path_source", "", "", "View_ISO"

BUTTON 300,15 TO 320,35, "select_path_source", "v", "View_ISO"

BUTTON 330,15 TO 350,35, "info_path_source", "i", "View_ISO"

DRAW TEXT 10,55,  translate$("Target Folder"), "View_ISO"

TEXTCONTROL 80,40 TO 290,45, "folder_path_target", "", "", "View_ISO"

BUTTON 300,40 TO 320,60, "select_path_target", "v", "View_ISO"

BUTTON 330,40 TO 350,60, "info_path_target", "i", "View_ISO"

DRAW TEXT 10,80,  translate$("ISO Name"), "View_ISO"

TEXTCONTROL 80,65 TO 290,70, "enter_iso_name", "", "", "View_ISO"

BUTTON 330,65 TO 350,85, "info_iso_name", "i", "View_ISO"

CHECKBOX 10,90, "joliet", "Joliet", 0, "View_ISO"

CHECKBOX 10,110, "joliet-long", "Joliet-long", 0, "View_ISO"

option set "joliet-long", "enabled", false

CHECKBOX 10,130, "full-iso9660-filenames", "full ISO", 0, "View_ISO"

CHECKBOX 90,90, "max-iso9660-filenames", "max ISO", 0, "View_ISO"

CHECKBOX 90,110, "rational-rock", "rat. Rock", 0, "View_ISO"

CHECKBOX 90,130, "rockridge", "Rock Ridge", 0, "View_ISO"

CHECKBOX 180,90, "udf", "UDF", 0, "View_ISO"

CHECKBOX 180,110, "dvd-video", "dvd-video", 0, "View_ISO"

option set "dvd-video", "enabled", false

CHECKBOX 270,90, "hard-disk-boot", "HD boot", 0, "View_ISO"

CHECKBOX 270,110, "no-emul-boot", "no Emu", 0, "View_ISO"

CHECKBOX 270,130, "no-boot", "no Boot", 0, "View_ISO"

TEXTCONTROL 0,160 TO 350,180, "commands", "", "", "View_ISO"

TEXTEDIT 10,190 TO 350,300, "info", 1, "View_ISO"

BUTTON 130,310 TO 230,320, "create", translate$("create"), "View_ISO"

end sub

sub option_activate()

option set "create", "enabled", true

option set "folder_path_source", "enabled", true

option set "folder_path_target", "enabled", true

option set "select_path_source", "enabled", true

option set "select_path_target", "enabled", true

option set "enter_iso_name", "enabled", true

option set "info_path_source", "enabled", true

option set "info_path_target", "enabled", true

option set "info_iso_name", "enabled", true

option set "commands", "enabled", true

option set "joliet", "enabled", true

option set "joliet-long", "enabled", true

option set "full-iso9660-filenames", "enabled", true

option set "max-iso9660-filenames", "enabled", true

option set "rational-rock", "enabled", true

option set "rockridge", "enabled", true

option set "udf", "enabled", true

option set "dvd-video", "enabled", true

option set "hard-disk-boot", "enabled", true

option set "no-emul-boot", "enabled", true

option set "no-boot", "enabled", true

end sub

sub option_deactivate()

option set "create", "enabled", false

option set "folder_path_source", "enabled", false

option set "folder_path_target", "enabled", false

option set "select_path_source", "enabled", false

option set "select_path_target", "enabled", false

option set "enter_iso_name", "enabled", false

option set "info_path_source", "enabled", false

option set "info_path_target", "enabled", false

option set "info_iso_name", "enabled", false

option set "commands", "enabled", false

option set "joliet", "enabled", false

option set "joliet-long", "enabled", false

option set "full-iso9660-filenames", "enabled", false

option set "max-iso9660-filenames", "enabled", false

option set "rational-rock", "enabled", false

option set "rockridge", "enabled", false

option set "udf", "enabled", false

option set "dvd-video", "enabled", false

option set "hard-disk-boot", "enabled", false

option set "no-emul-boot", "enabled", false

option set "no-boot", "enabled", false

end sub

sub about()

window open ((screenWidth/2)-130), ((screenHeight/2)-100) to ((screenWidth/2)+130), ((screenHeight/2)+100), "View_About", "About"

window set "View_About", "MinimumTo", 260,200

window set "View_About", "MaximumTo", 260,200

window set "View_About", "look", "modal"

draw text 15, 25, "BeSly ISO Image Creator", "View_About"

draw text 15, 60, "Version:      ", "View_About"

draw text 130, 60, "0.8 Beta / 30.11.2007", "View_About"

draw text 15, 80, "Developer:      ", "View_About"

draw text 130,80, "Christian Albrecht", "View_About"

draw text 15, 100, "Nickname:      ", "View_About"

draw text 130, 100, "Lelldorin", "View_About"

draw text 15, 120, "Homepage:      ", "View_About"

texturl 130,112, "Homepage", "http://www.besly.de", "http://www.besly.de", "View_About"

BUTTON 90,160 TO 170,180, "close_about", translate$("Close"), "View_About"

end sub