[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

PORTABLE.PM -- screen shot



Something possessed me yesterday to make a screen shot of the report
that's generated when you run PORTABLE.PM, my Xy4 utility that
generates "portable" versions of your STARTUP.INT and SETTINGS.DFL.
(These are path-free versions of these files that can be copied to
any directory, on any machine, without the need to edit path
statements every time.) Here's the screen shot:

http://users.datarealm.com/xywwweb/portable.jpg

PORTABLE.PM can be downloaded here:

http://users.datarealm.com/xywwweb/portable.zip

And, for the record, here is the latest version of PORTABLE.PM,
dated 7/2/2012, in DECODE-able form for U2 users (no change to the
code since that date). I count this as the most useful XPL program
I've written this year (granted, there haven't been that many), and
worth a reprise at year's end.

Best to all for 2013!

XPLeNCODE v2.0
b-gin [UNTITLED]
{<}GLa{>}[cr|lf]PORTABLE.PM for XyWrite 4 - C.L.Distefano rev
{046}7/2/12[cr|lf]Purpose: Create path-free versions of STARTUP.I
NT and SETTINGS.DFL, enabling a "portable" XyWrite setup that
 can be copied to any directory without the need to modify pa
th statements in these two key files.[cr|lf][cr|lf]Usage[cr|l
f]-----[cr|lf]RUN PORTABLE.PM[cr|lf]Two (2) available{032}
windows are required.[cr|lf][cr|lf]How It Works[cr|lf]-------
-----[cr|lf]PORTABLE.PM safely generates personalized replace
ments for your STARTUP.INT and SETTINGS.DFL files, based on t
he settings in effect when you run PORTABLE.PM. These new fil
es are called PORTABL1.INT and PORTABL1.DFL. Your existing fi
les are NOT modified.[cr|lf][cr|lf]Before using the new files
, be sure to BACK UP your existing STARTUP.INT and SETTINGS.D
FL. (The first time you run PORTABLE.PM, they are automatical
ly backed up to START_BK.INT and SETTI_BK.DFL.) When you're r
eady to "go portable", copy PORTABL1.INT to STARTUP.INT and P
ORTABL1.DFL to SETTINGS.DFL, overwriting the existing files;{032}
then quit and restart XyWrite. [cr|lf][cr|lf]- - - - -[cr|lf]
{<}LBa{>}[ZT_][BX_]es 1[Q2_][DX_];*;[cr|lf]{<}IF{<}VA$VE{>}<"
V4.02"{>}{<}IF{<}VA$ST{>}{240}"\"&{<}VA$DL{>}{240}"\"{>}{<}IF
{<}VA$WA{>}>0{>};*;[cr|lf]{<}PRWorking{>}{<}SV01,{>}{<}SV02,{
{062}}{<}SV03,{>}{<}SV04,{>}{<}SV05,{>};*;[cr|lf]{<}SX06,{<}VA$ST
{>}{>}{<}SX07,{<}VA$DL{>}{>}[BX_]gofile {<}PV07{>}[Q2_]{<}IF@
not({<}ER{>}){>}[BX_]ab/nv[Q2_]{<}EI{>};*;[cr|lf]{<}SU01,{<}S
X02,{<}VA$WA{>}{>}[BX_]func #{<}PV02{>}[Q2_]{>}{<}GT01{>}[BX_
]ne/100[Q2_]{<}IF{<}VA$WA{>}>0{>}{<}GT01{>}[BX_]ca/100 {<}PV0
7{>}[Q2_][BX_]wait[Q2_][AS_];*;[cr|lf]{<}SU08,{<}SX09,{<}IS10
{>}{>}{<}SV10,{>}{<}SV11,\{>}{<}LBb{>}{<}XS09,11,12,,13{>}{<}
IF{<}VA|10{>}>0{>}{<}SX10,{<}IS10{>}+"\"{>}{<}EI{>}{<}SX10,{<
}IS10{>}+{<}IS12{>}{>}{<}IF{<}IS13{>}{240}"\"{>}{<}SX09,{<}IS
13{>}
{>}{<}GLb{>}{<}EI{>}{>};*; {<}SV10,dir{>}{<}SV13,filename{>}[
cr|lf]{<}SX10,{<}VA$ED{>}{>}{<}GT08{>}{<}SX14,{<}IS10{>}{>};*
; {<}SV14,Editor's dir{>}[cr|lf]{<}SX03,{<}VA@14:1{>}{>}[BX_]
{<}PV03{>}:[Q2_][BX_]cd {<}PV14{>}[Q2_];*;[cr|lf]{<}SV01,INT{
{062}}{<}LBc{>}[BX_]gofile {<}PV14{>}\PORTABL1.{<}PV01{>}[Q2_]{<}
IF@not({<}ER{>}){>}[BX_]ab/nv[Q2_]{<}IF{<}VA$WS{>}<1{>}[BX_]r
s[Q2_]{<}EI{>}{<}EI{>}{<}IF{<}IS01{>}{240}"I"{>}{<}SV01,DFL{>
}{<}GLc{>}{<}EI{>};*;[cr|lf]{<}SV01,INT{>}{<}LBd{>}[BX_]ernv{032}
{<}PV14{>}\PORTABL1.{<}PV01{>}[Q2_][BX_]wait[Q2_]{<}IF{<}IS01
{>}{240}"I"{>}{<}SV01,DFL{>}{<}GLd{>}{<}EI{>};*;[cr|lf];*; On
e-time backup of STARTUP.INT and SETTINGS.DFL[cr|lf]{<}SV01,S
TART_{>}{<}SV02,INT{>}{<}SX03,{<}IS06{>}{>}{<}LBe{>}[BX_]exis
t {<}PV01{>}BK.{<}PV02{>}[Q2_]{<}IF{<}ER{>}{>}[BX_]copy {<}PV
03{>} {<}PV01{>}BK.{<}PV02{>}[Q2_][BX_]wait[Q2_]{<}EI{>}{<}IF
{<}IS02{>}{240}"I"{>}{<}SV01,SETTI_{>}{<}SV02,DFL{>}{<}SX03,{
<}IS07{>}{>}{<}GLe{>}{<}EI{>};*;[cr|lf];*; Create PORTABL1.IN
T:[cr|lf][GT_]{<}SX01,";*"+"; PORTABL1.INT (""Pathless"" STAR
TUP.INT)[cr|lf];*"+"; Created by PORTABLE.PM (CLD) "+{<}VA$D
Ad Mmm yyyy{>}+" - "+{<}VA$TM{>}+"[cr|lf];*"+"; -----[cr|lf];
*"+"; DO NOT MODIFY THIS SECTION (down to ""^^^^^^^^^^"").[cr
|lf];*"+"; This code switches to the directory with EDITOR.EX
E[cr|lf];*"+"; the directory name (minus the final ""\"") is{032}
saved to Save/Get 01.[cr|lf];*"+"; Save/Get 01 is used below{032}
(""[255+065+069]PV01[255+065+070]|{<}IS01{>}"") to point to t
hat directory[cr|lf];*"+";  and its subdirectories[cr|lf]"[c
r|lf]{>}{<}GT01{>}{<}SX01,"{<}SV01,{>}{<}SX02,{<}VA$ED{>}{>}{
<}SV03,\{>}{<}LB {>}{<}XS02,03,04,,05{>}{<}IF{<}VA|01{>}>0{>}
{<}SX01,{<}IS01{>}+""\""{>}{<}EI{>}{<}SX01,{<}IS01{>}+{<}IS04
{>}{>}{<}IF{<}
IS05{>}{240}""\""{>}{<}SX02,{<}IS05{>}{>}{<}GL {>}{<}EI{>}{<}
SX02,{<}VA@01:1{>}{>}[BX_]{<}PV02{>}:[Q2_][BX_]wait[Q2_][BX_]
cd {<}PV01{>}[Q2_][BX_]wait[Q2_];*"+";[cr|lf];*"+"; ^^^^^^^^^
^[cr|lf];*"+"; [cr|lf];*"+"; Logon routine[cr|lf]"{>}{<}GT01{
{062}}{<}SX01,{<}VA$LG{>}{>}{<}IF{<}VA|01{>}<1!{<}VA|01{>}>8{>}{<
}SV01,DEFAULT{>}{<}EI{>}{<}SX01,"[BX_]exist "+{<}IS01{>}+".LO
G[Q2_]{<}IF{<}ER{>}{>}{<}SV02,{<}PRLogged on with username "+
{<}IS01{>}+"{>}{<}EX{>}{>}[BX_]sa %02,"+{<}IS01{>}+".log[Q2_]
[BX_]wait[Q2_]{<}EI{>}[BX_]logon "+{<}IS01{>}+"[Q2_]"{>}{<}GT
01{>}{<}SX01,";*"+";[cr|lf];*"+";[cr|lf];*"+"; LOAD commands{032}
(edit filenames as necessary; omit paths!)[cr|lf];*"+"; Disab
le inapplicable commands with "";"+"*;"" (no quotes)[cr|lf]"{
{062}}{<}GT01{>};*;[cr|lf]{<}SX10,{<}IS07{>}{>}{<}IF{<}IS10{>}{24
0}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]
wait[Q2_];"+"*; Settings file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;
[cr|lf]{<}SX10,{<}VA$KB{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT0
8{>}{<}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*
; Keyboard file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10
,{<}VA$MN{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[
BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*; MeNu file[cr
|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$DG{>}{>}{<}
IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load "+{<}IS13
{>}+"[Q2_][BX_]wait[Q2_];"+"*; DialoG file[cr|lf]"{>}{<}GT01{
{062}}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$HL{>}{>}{<}IF{<}IS10{>}{240
}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]w
ait[Q2_];"+"*; HeLp file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|l
f]{<}SX10,{<}VA$HY{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{
<}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*;
 Hyphenation dictionary[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf
]{<}SX10,{<}VA$SP{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<
}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*; Pers
onal spelling file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}S
X10,{<}VA$U2{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01
,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*; U2 file[c
r|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$SG{>}{>}{<
}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[BX_]ldsgt "+{<}IS
13{>}+"[Q2_][BX_]wait[Q2_];"+"*; Save/Gets (.SGT) file[cr|lf]
"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX01,{<}VA$SD{>}{>}{<}SX01
,";*"+";[cr|lf][BX_]dsort "+{<}IS01{>}+"[Q2_];"+"*; DIRectory
 Sort order[cr|lf]"{>}{<}GT01{>}{<}SX01,";*"+";[cr|lf];*"+";{032}
Default paths[cr|lf]"{>}{<}GT01{>}{<}SX01,"[BX_]d dr={<}PV01{
{062}}\[Q2_];"+"*; Directory for TeMP files[cr|lf][BX_]d AOP={<}P
V01{>}\[Q2_];"+"*; Autosave path[cr|lf]"{>}{<}GT01{>};*;[cr|l
f]{<}SX01,{<}VAAOT{>}{>}{<}SX01,"[BX_]d AOT="+{<}IS01{>}+"[Q2
_];"+"*; Autosave time settings[cr|lf]"{>}{<}GT01{>};*;[cr|lf
]{<}SX01,"[BX_]d GP={<}PV01{>}\[Q2_];"+"*; Graphics path[cr|l
f][BX_]d NL={<}PV01{>}\[Q2_];"+"*; Network log files[cr|lf][B
X_]exist {<}PV01{>}\BTFONTS\*.*[Q2_]{<}IF@not({<}ER{>}){>}[BX
_]d OL={<}PV01{>}\BTFONTS\[Q2_];"+"*; Outline screen fonts[cr
|lf][BX_]d XY={<}PV01{>}\BTFONTS\[Q2_]{<}EI{>};"+"*; Location
 of SCRFONTS.BIN[cr|lf][BX_]d ZM=100[Q2_];*"+"; Zoom setting{032}
for graphical view[cr|lf][BX_]exist {<}PV01{>}\FILTERS\*.*[Q2
_]{<}IF@not({<}ER{>}){>}[BX_]d WW={<}PV01{>}\FILTERS\[Q2_]{<}
EI{>};"+"*; Conversion filters[cr|lf];"+"*;[cr|lf];"+"*; Path
s Used by XY4 Menu|DiaLoG files[cr|lf][BX_]d/nv SG1900={<}PV0
1{>}\DOCS\[Q2_];"+"*;[cr|lf][BX_]d/nv SG1906={<}PV01{>}\[Q2_]
;"+"*;[cr|lf][BX_]d/nv SG1908={<}PV01{>}\[Q2_];"\"*;[cr|lf];*
"
+";[cr|lf];"+"*; Create PP.PRN (printer file with PP: table)[
cr|lf]"{>}{<}GT01{>};*;[cr|lf];*; Construct PP: table for PP.
PRN[cr|lf][AS_][BX_]se [wC]PP:[Q2_]{<}IF{<}ER{>}{>}{<}SV01,P
P:1[cr|lf]1{tab}STANDARD.PRN{tab}Standard printer file[cr|lf]
;[cr|lf]{>}{<}GLg{>}{<}EI{>}{<}SX03,0{>}{<}SV01,{>}[YD_]{<}LB
f{>}[LD_][LB_][DF_][BX_]se/f [wC][Q2_]{<}IF{<}ER{>}{>}[LE_][
255+048+068][CL_]{<}EI{>}[DF_]{<}SV02{>}[YD_]{<}IF{<}IS02{>}{
240}"\"{>}{<}IF";"{238}{<}IS02{>}<>0{>}{<}SX10,{<}VA@02{tab}2
{>}{>}{<}GT08{>}{<}SX01,{<}IS01{>}+{<}VA@02{tab}1{>}+"{tab}"+
{<}IS13{>}+"{tab}"+{<}VA@02{tab}3{>}+"[cr|lf]"{>}{<}SX03,{<}P
V03{>}+1{>}{<}EI{>}{<}GLf{>}{<}EI{>}{<}SX01,"PP:"+{<}IS03{>}+
"[cr|lf]"+{<}IS01{>}+";[cr|lf]"{>}{<}LBg{>}{<}SX01,"[BX_]exis
t PP.PRN[Q2_]{<}IF@not({<}ER{>}){>}[BX_]ernv PP.PRN[Q2_][BX_]
wait[Q2_]{<}EI{>};*"+";[cr|lf];*"+";[cr|lf];"+"*; To add/chan
ge printers, carefully modify the PP: table below[cr|lf];"+"*
; Header format:[cr|lf];"+"*; PP:# [where ""#"" is number of{032}
lines in table][cr|lf];"+"*; Line format:[cr|lf];"+"*; printi
ng_port[TAB]printer_filename[no path!][TAB]printer_name[cr|lf
];*"+";[cr|lf]{<}SV02,;PR;[cr|lf];[cr|lf]"+{<}IS01{>}+"{>}[BX
_]sa %02,PP.PRN[Q2_][BX_]wait[Q2_][BX_]load PP.PRN[Q2_][BX_]w
ait[Q2_];"+"*;[cr|lf]{<}SX02,{<}VALA{>}{>}[BX_]d la=850[Q2_][
BX_]setp 1[Q2_][BX_]wait[Q2_][BX_]d la={<}PV02{>}[Q2_];*"+";[
cr|lf];"+"*; [cr|lf]{<}EX{>}[cr|lf]"{>}[AS_]{<}GT01{>};*;[cr|
lf][BX_]st/nv PORTABL1.INT[Q2_]{<}IF{<}ER{>}{>}[TF_]{<}SV01,E
rror writing PORTABL1.INT{>}{<}LBh{>}{<}SX01,{<}IS01{>}+" (Re
lax, no file has been modified)"{>}{<}PR@01{>}{<}EX{>}{<}EI{>
}[BX_]wait[Q2_]{<}IF{<}VA$WS{>}<1{>}[BX_]rs[Q2_]{<}EI{>};*;[c
r|lf];*; Create PORTABL1.DFL:[cr|lf][TF_]{<}LBi{>}[BX_]se :\
[Q2_]{<}IF@not({<}ER{>}){>}[BX_]seb [wC][Q2_]
[CR_];[BX_]se [wC][Q2_]{<}GLi{>}{<}EI{>};*;[cr|lf][TF_][BX_]
ch [wC]PP: [wC];PP:[Q2_][BX_]wait[Q2_];*;[cr|lf]{<}GT08{>}[B
X_]st/nv {<}PV14{>}\PORTABL1.DFL[Q2_]{<}IF{<}ER{>}{>}[TF_]{<}
SV01,Error writing PORTABL1.DFL{>}{<}GLh{>}{<}EI{>}[BX_]wait[
Q2_];*;[cr|lf];*; Generate report:[cr|lf]{<}SX14,{<}VA$ET{>}{
{062}}{<}SX14,{<}VA@14:3{>}{>}{<}SX14,{<}PV14{>}{>}{<}SX01,{<}VA$
WA{>}{>}[BX_]func #{<}PV01{>}[Q2_][BX_]dir PORTABL1.*[Q2_][BX
_]wait[Q2_][XP_][TF_][BX_]ch [w<][wW][w>][Q2_][BX_]wait[Q2_]
[BX_]se [wC]____[Q2_]{<}IF@not({<}ER{>}){>}[LB_][DF_][BF_][D
F_][DN_]{<}EI{>}[TF_][DF_][BF_][DF_]{<}SV04{>}[BX_]ab/nv[Q2_]
{<}IF{<}VA$WS{>}<1{>}[BX_]rs[Q2_]{<}EI{>}{<}SX01,{<}VA$WA{>}{
{062}}[BX_]func #{<}PV01{>}[Q2_][BX_]ne/1[Q2_]{<}SX10,{<}IS06{>}{
{062}}{<}GT08{>}{<}SX02,{<}IS13{>}{>}{<}SX10,{<}IS07{>}{>}{<}GT08
{>}{<}SX03,{<}IS13{>}{>}{<}SX01,"{<}MDUL{>}PORTABLE.PM has cr
eated:{<}MDNM{>}[cr|lf]PORTABL1.{<}MDIT{>}INT{<}MDNM{>} (repl
acement for "+{<}IS02{>}+") and[cr|lf]PORTABL1.{<}MDIT{>}DFL{
<}MDNM{>} (replacement for "+{<}IS03{>}+")[cr|lf] in "+{<}IS
10{>}+", as follows:[cr|lf][cr|lf]"+{<}IS04{>}+"[cr|lf]{<}MDI
T{>}No existing files were modified.{<}MDNM{>}[cr|lf][cr|lf]{
<}MDUL{>}To ""go portable"":{<}MDNM{>}[cr|lf]{<}MDBO{>}Make s
ure that you have good BACKUPS of your original "+{<}IS02{>}+
" and "+{<}IS03{>}+"!{<}MDNM{>} (The first time you run PORTA
BLE.PM, these files are automatically backed up to START_BK.I
NT and SETTI_BK.DFL.)[cr|lf]{<}MDIT{>}Then:{<}MDNM{>}[cr|lf]C
opy PORTABL1.{<}MDIT{>}INT{<}MDNM{>} to "+{<}IS02{>}+" (overw
riting the existing file);[cr|lf]Copy PORTABL1.{<}MDIT{>}DFL{
<}MDNM{>} to "+{<}IS03{>}+" (overwriting the existing file);{032}
and[cr|lf]Quit and restart XyWrite.[cr|lf]"{>}{<}GT01{>}[TF_]
{<}
SX01,"In all of "+{<}IS14{>}+" seconds..."{>}{<}PR@01{>}{<}EX
{>}[cr|lf]{<}EI{>}{<}EI{>}{<}PRTwo (2) available windows requ
ired{>}{<}EX{>}[cr|lf]{<}EI{>}{<}PRUnexpected: Missing or ina
ctive STARTUP|SETTINGS file - No operation{>}{<}EX{>}[cr|lf]{
<}EI{>}{<}PRXyWrite v4 for DOS only{>}{<}EX{>}[cr|lf]
-nd
XPLeNCODE


--
Carl Distefano
cld@xxxxxxxx