Subject: Re: ProDos file type question From: jonINTERNETrelayCHAT@napaVALLEYnet.CLARInet (Jon Bettencourt) Newsgroups: comp.sys.apple2 Message-ID: References: <38923609.95DB79F9@mailcity.com> <389B3576.43AD9BD@swbell.net> <389B5972.C511EAF3@dcnet2000.com> <389b5f00.11468879@news> <389BDD5E.AEEB262B@plane.nl> <389de472.1490346@news> Organization: ABS(power) corrupts ABS(ly) & Auld Lang SIN(), ?DIVISION BY ZERO ERROR, {Gammasoft Incorporated / Kreative Entertainment Services} X-Newsreader: NewsWatcher 2.1.6 Date: Mon, 07 Feb 2000 00:37:34 GMT NNTP-Posting-Host: 157.22.180.111 X-Complaints-To: Abuse Role , We Care X-Trace: newshog.newsread.com 949883854 157.22.180.111 (Sun, 06 Feb 2000 19:37:34 EST) NNTP-Posting-Date: Sun, 06 Feb 2000 19:37:34 EST Somewhere earlier in this thread, I think someone was trying to find out how to change ProDOS file types on a Mac. Recently I made an AppleScript applet called ProDOSifier that gives files the proper file types for transfer to ProDOS disks. Do you want me to post it? For the file type, you can enter a decimal value, a hexadecimal value (preceded with a $), or a three letter mneumonic like SYS or TXT. For the aux type, you can enter a decimal value or a hexadecimal value preceded by a $. For SYS files, this is usually 0. For BAS files, this is usually 2049 or $0801. If you are entering a hexadecimal value for either the file type or aux type, be sure to include all four digits of the hex word. For example, use $0801 instead of $801 and $0300 instead of $300. Mind the length of the script and the line breaks made by my newsreader. on run try set FileToChange to choose file with prompt "File to ProDOSify?" on error quit of me end try set filetypetable to "" set filetypetable to (filetypetable & "UNK~BAD~PCD~PTX~TXT~PDA~BIN~FNT~FOT~BA3~DA3~WPF~SOS~***~***~DIR~RPD~RPI~AFD~AFM~AFR~SCL~PFS~***~***~ADB~AWP~ASP~***~***~***~***~") set filetypetable to (filetypetable & "TDM~IPS~UPV~***~***~***~***~***~***~3SD~8SC~8OB~8IC~8LD~P8C~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "***~OCR~FTD~***~***~***~***~***~***~***~***~***~***~***~***~***~GWP~GSS~GDB~DRW~GDP~HMD~EDU~STN~HLP~COM~CFG~ANM~MUM~ENT~DVU~***~") set filetypetable to (filetypetable & "PRE~***~***~***~***~***~***~***~***~***~***~BIO~***~DRV~PRE~HDV~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "GSF~GDA~GAP~GDF~GFF~GPD~GIN~GAD~***~***~***~GCD~GID~GFD~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "WP_~***~***~***~***~***~***~***~***~***~***~GSB~TDF~BDF~***~***~SRC~OBJ~LIB~S16~RTL~EXE~PIF~TIF~NDA~CDA~TOL~DVR~LDF~FST~***~DOC~") set filetypetable to (filetypetable & "PNT~PIC~ANI~PAL~***~OOG~SCR~CDV~FON~FND~ICN~***~***~***~***~***~***~***~***~***~***~MUS~INS~MDI~SND~***~***~DBM~***~***~***~***~") set filetypetable to (filetypetable & "LBR~***~ATK~***~***~***~***~***~***~***~***~***~***~***~R16~PAS~CMD~OVL~***~***~***~BAT~***~***~PRG~P16~INT~IVR~BAS~VAR~REL~SYS~") set newtype to "p" set pdosftype to text returned of (display dialog "ProDOS File Type?" default answer "SYS" buttons {"OK"} default button 1) set pdosatype to text returned of (display dialog "ProDOS Aux. Type?" default answer "0" buttons {"OK"} default button 1) if (offset of "$" in pdosatype) ’ 0 then -- entry is in hexadecimal set valuePlace1 to (offset of (character 2 of pdosatype) in "123456789ABCDEF") set valuePlace2 to (offset of (character 3 of pdosatype) in "123456789ABCDEF") set valuePlace3 to (offset of (character 4 of pdosatype) in "123456789ABCDEF") set valuePlace4 to (offset of (character 5 of pdosatype) in "123456789ABCDEF") set pdosatype to ((valuePlace1 * 4096) + (valuePlace2 * 256) + (valuePlace3 * 16) + valuePlace4) as string end if if (offset of "$" in pdosftype) ’ 0 then -- entry is in hexadecimal set valuePlace1 to (offset of (character 2 of pdosftype) in "123456789ABCDEF") set valuePlace2 to (offset of (character 3 of pdosftype) in "123456789ABCDEF") set pdosftype to ((valuePlace1 * 16) + valuePlace2) as string end if if (length of pdosftype) = 3 then if (((ASCII number (character 1 of pdosftype)) < 48) or ((ASCII number (character 1 of pdosftype)) > 57) or ((ASCII number (character 2 of pdosftype)) < 48) or ((ASCII number (character 2 of pdosftype)) > 57) or ((ASCII number (character 3 of pdosftype)) < 48) or ((ASCII number (character 3 of pdosftype)) > 57)) then -- entry is a three-letter file extension set ofst to (offset of pdosftype in filetypetable) if ofst = 0 then display dialog "Not a valid file type." buttons {"Quit"} default button 1 quit of me end if set pdosftype to ((ofst - 1) / 4) as string end if end if set pdosatypehigh to (round (pdosatype / 256) rounding down) as string set pdosatypelow to (pdosatype - (pdosatypehigh * 256)) as string set newtype to (newtype & (ASCII character (pdosftype)) & (ASCII character (pdosatypehigh)) & (ASCII character (pdosatypelow))) set newcreator to "pdos" tell application "Finder" set file type of FileToChange to newtype set creator type of FileToChange to newcreator end tell end run on open x set k to button returned of (display dialog "Would you like to ProDOSify the files all at once or individually?" buttons {"All at Once", "Individually"} default button "All at Once") if k = "All at Once" then pdosifyAll(x) if k = "Individually" then pdosifyIndiv(x) end open on pdosifyAll(x) set filetypetable to "" set filetypetable to (filetypetable & "UNK~BAD~PCD~PTX~TXT~PDA~BIN~FNT~FOT~BA3~DA3~WPF~SOS~***~***~DIR~RPD~RPI~AFD~AFM~AFR~SCL~PFS~***~***~ADB~AWP~ASP~***~***~***~***~") set filetypetable to (filetypetable & "TDM~IPS~UPV~***~***~***~***~***~***~3SD~8SC~8OB~8IC~8LD~P8C~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "***~OCR~FTD~***~***~***~***~***~***~***~***~***~***~***~***~***~GWP~GSS~GDB~DRW~GDP~HMD~EDU~STN~HLP~COM~CFG~ANM~MUM~ENT~DVU~***~") set filetypetable to (filetypetable & "PRE~***~***~***~***~***~***~***~***~***~***~BIO~***~DRV~PRE~HDV~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "GSF~GDA~GAP~GDF~GFF~GPD~GIN~GAD~***~***~***~GCD~GID~GFD~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "WP_~***~***~***~***~***~***~***~***~***~***~GSB~TDF~BDF~***~***~SRC~OBJ~LIB~S16~RTL~EXE~PIF~TIF~NDA~CDA~TOL~DVR~LDF~FST~***~DOC~") set filetypetable to (filetypetable & "PNT~PIC~ANI~PAL~***~OOG~SCR~CDV~FON~FND~ICN~***~***~***~***~***~***~***~***~***~***~MUS~INS~MDI~SND~***~***~DBM~***~***~***~***~") set filetypetable to (filetypetable & "LBR~***~ATK~***~***~***~***~***~***~***~***~***~***~***~R16~PAS~CMD~OVL~***~***~***~BAT~***~***~PRG~P16~INT~IVR~BAS~VAR~REL~SYS~") set newtype to "p" set pdosftype to text returned of (display dialog "ProDOS File Type?" default answer "SYS" buttons {"OK"} default button 1) set pdosatype to text returned of (display dialog "ProDOS Aux. Type?" default answer "0" buttons {"OK"} default button 1) if (offset of "$" in pdosatype) ’ 0 then -- entry is in hexadecimal set valuePlace1 to (offset of (character 2 of pdosatype) in "123456789ABCDEF") set valuePlace2 to (offset of (character 3 of pdosatype) in "123456789ABCDEF") set valuePlace3 to (offset of (character 4 of pdosatype) in "123456789ABCDEF") set valuePlace4 to (offset of (character 5 of pdosatype) in "123456789ABCDEF") set pdosatype to ((valuePlace1 * 4096) + (valuePlace2 * 256) + (valuePlace3 * 16) + valuePlace4) as string end if if (offset of "$" in pdosftype) ’ 0 then -- entry is in hexadecimal set valuePlace1 to (offset of (character 2 of pdosftype) in "123456789ABCDEF") set valuePlace2 to (offset of (character 3 of pdosftype) in "123456789ABCDEF") set pdosftype to ((valuePlace1 * 16) + valuePlace2) as string end if if (length of pdosftype) = 3 then if (((ASCII number (character 1 of pdosftype)) < 48) or ((ASCII number (character 1 of pdosftype)) > 57) or ((ASCII number (character 2 of pdosftype)) < 48) or ((ASCII number (character 2 of pdosftype)) > 57) or ((ASCII number (character 3 of pdosftype)) < 48) or ((ASCII number (character 3 of pdosftype)) > 57)) then -- entry is a three-letter file extension set ofst to (offset of pdosftype in filetypetable) if ofst = 0 then display dialog "Not a valid file type." buttons {"Quit"} default button 1 quit of me end if set pdosftype to ((ofst - 1) / 4) as string end if end if set pdosatypehigh to (round (pdosatype / 256) rounding down) as string set pdosatypelow to (pdosatype - (pdosatypehigh * 256)) as string set newtype to (newtype & (ASCII character (pdosftype)) & (ASCII character (pdosatypehigh)) & (ASCII character (pdosatypelow))) set newcreator to "pdos" repeat with y in x tell application "Finder" set file type of y to newtype set creator type of y to newcreator end tell end repeat end pdosifyAll on pdosifyIndiv(x) repeat with y in x set FileToChange to y set filetypetable to "" set filetypetable to (filetypetable & "UNK~BAD~PCD~PTX~TXT~PDA~BIN~FNT~FOT~BA3~DA3~WPF~SOS~***~***~DIR~RPD~RPI~AFD~AFM~AFR~SCL~PFS~***~***~ADB~AWP~ASP~***~***~***~***~") set filetypetable to (filetypetable & "TDM~IPS~UPV~***~***~***~***~***~***~3SD~8SC~8OB~8IC~8LD~P8C~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "***~OCR~FTD~***~***~***~***~***~***~***~***~***~***~***~***~***~GWP~GSS~GDB~DRW~GDP~HMD~EDU~STN~HLP~COM~CFG~ANM~MUM~ENT~DVU~***~") set filetypetable to (filetypetable & "PRE~***~***~***~***~***~***~***~***~***~***~BIO~***~DRV~PRE~HDV~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "GSF~GDA~GAP~GDF~GFF~GPD~GIN~GAD~***~***~***~GCD~GID~GFD~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~***~") set filetypetable to (filetypetable & "WP_~***~***~***~***~***~***~***~***~***~***~GSB~TDF~BDF~***~***~SRC~OBJ~LIB~S16~RTL~EXE~PIF~TIF~NDA~CDA~TOL~DVR~LDF~FST~***~DOC~") set filetypetable to (filetypetable & "PNT~PIC~ANI~PAL~***~OOG~SCR~CDV~FON~FND~ICN~***~***~***~***~***~***~***~***~***~***~MUS~INS~MDI~SND~***~***~DBM~***~***~***~***~") set filetypetable to (filetypetable & "LBR~***~ATK~***~***~***~***~***~***~***~***~***~***~***~R16~PAS~CMD~OVL~***~***~***~BAT~***~***~PRG~P16~INT~IVR~BAS~VAR~REL~SYS~") set newtype to "p" set pdosftype to text returned of (display dialog ("ProDOS File Type of " & (y as string) & "?") default answer "SYS" buttons {"OK"} default button 1) set pdosatype to text returned of (display dialog ("ProDOS Aux. Type of " & (y as string) & "?") default answer "0" buttons {"OK"} default button 1) if (offset of "$" in pdosatype) ’ 0 then -- entry is in hexadecimal set valuePlace1 to (offset of (character 2 of pdosatype) in "123456789ABCDEF") set valuePlace2 to (offset of (character 3 of pdosatype) in "123456789ABCDEF") set valuePlace3 to (offset of (character 4 of pdosatype) in "123456789ABCDEF") set valuePlace4 to (offset of (character 5 of pdosatype) in "123456789ABCDEF") set pdosatype to ((valuePlace1 * 4096) + (valuePlace2 * 256) + (valuePlace3 * 16) + valuePlace4) as string end if if (offset of "$" in pdosftype) ’ 0 then -- entry is in hexadecimal set valuePlace1 to (offset of (character 2 of pdosftype) in "123456789ABCDEF") set valuePlace2 to (offset of (character 3 of pdosftype) in "123456789ABCDEF") set pdosftype to ((valuePlace1 * 16) + valuePlace2) as string end if if (length of pdosftype) = 3 then if (((ASCII number (character 1 of pdosftype)) < 48) or ((ASCII number (character 1 of pdosftype)) > 57) or ((ASCII number (character 2 of pdosftype)) < 48) or ((ASCII number (character 2 of pdosftype)) > 57) or ((ASCII number (character 3 of pdosftype)) < 48) or ((ASCII number (character 3 of pdosftype)) > 57)) then -- entry is a three-letter file extension set ofst to (offset of pdosftype in filetypetable) if ofst = 0 then display dialog "Not a valid file type." buttons {"Quit"} default button 1 quit of me end if set pdosftype to ((ofst - 1) / 4) as string end if end if set pdosatypehigh to (round (pdosatype / 256) rounding down) as string set pdosatypelow to (pdosatype - (pdosatypehigh * 256)) as string set newtype to (newtype & (ASCII character (pdosftype)) & (ASCII character (pdosatypehigh)) & (ASCII character (pdosatypelow))) set newcreator to "pdos" tell application "Finder" set file type of FileToChange to newtype set creator type of FileToChange to newcreator end tell end repeat end pdosifyIndiv -- /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ jonrelay@napanet.net dimension18.cjb.net An Apple II fanatic since 1998! S0.5 LIS+++! Suzy+++! M1987 "Remember, if it's not a secure web server, it's an _insecure_ web server!" -- Me *_ Syntax Error: an error on a criminal's tax record. | Bad Subscript: a criminal reading a book on a subway. --- Unimplemented Trap: when a bear trap isn't set up |' ,| properly and thus does not work. --- Overflow: too many ice cubes. Don't forget: Tammy Day on February 15th! Please remove capital letters from my e-mail address to respond.