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

Re: Portable Xy4 made easy



Carl,

I like the new approach. Could you explain this code?

 [BX ]sa ,PP.PRN[Q2 ]

I don't understand the .

Thanks,
Harry


Making XyWrite 4 "portable" has just become a whole lot easier. Download PORTABLE.PM here: http://users.datarealm.com/xywwweb/portable.zip Unzip it to any directory, RUN PORTABLE.PM (in Xy4-DOS only), and follow the on-screen instructions. (Instructions are also in PORTABLE.PM itself.) It's safe and easy, and should work out-of-the- box for the vast majority of users. U2 is not required (but U2 users can DECODE the program below). The goal of portability, of course, is to be able to install XyWrite on any computer by copying the program files to the directory of your choice and then launching Editor without further ado. The glitch in Xy4, often, is the presence of hard-coded path statements in STARTUP.INT and/or SETTINGS.DFL. If the path location on the new computer is different, you have to edit these files manually. It's a pain -- the very opposite of portable. PORTABLE.PM safely generates customized, path-free replacements for your STARTUP.INT and SETTINGS.DFL files, based on your personal settings. These new files are called PORTABL1.INT and PORTABL1.DFL. Your existing files are NOT modified. When you're ready to "go portable", you simply copy PORTABL1.INT to STARTUP.INT and PORTABL1.DFL to SETTINGS.DFL, overwriting the existing files; then quit and restart XyWrite. PORTABLE.PM even makes backups of your original STARTUP.INT and SETTINGS.DFL (though you should make your own backups as well). I think you'll find that this is an incremental leap toward portability for virtually all users of Xy4-DOS -- much easier than the earlier template. Try it, please, and let me know how it works. XPLeNCODE v2.0 b-gin [UNTITLED] {<}GLa{>}[cr|lf]PORTABLE.PM for XyWrite 4 - C.L.Distefano rev {046}6/29/12[cr|lf]Purpose: Create path-free versions of STARTUP. INT and SETTINGS.DFL, enabling a "portable" XyWrite setup tha t can be copied to any directory without the need to modify p ath statements in these two key files.[cr|lf][cr|lf]Usage[cr| lf]-----[cr|lf]RUN PORTABLE.PM[cr|lf]Two (2) available windows are required.[cr|lf][cr|lf]How It Works[cr|lf]------ ------[cr|lf]PORTABLE.PM safely generates personalized replac ements for your STARTUP.INT and SETTINGS.DFL files, based on{032} the settings in effect when you run PORTABLE.PM. These new fi les are called PORTABL1.INT and PORTABL1.DFL. Your existing f iles are NOT modified.[cr|lf][cr|lf]Before using the new file s, be sure to BACK UP your existing STARTUP.INT and SETTINGS. DFL. (The first time you run PORTABLE.PM, they are automatica lly backed up to START_BK.INT and SETTI_BK.DFL.) When you're{032} ready to "go portable", copy PORTABL1.INT to STARTUP.INT and{032} PORTABL1.DFL to SETTINGS.DFL, overwriting the existing files; 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}"\"{>}{<}I F{<}VA$WA{>}>0{>};*;[cr|lf]{<}PRWorking{>}{<}SV01,{>}{<}SV02, {>}{<}SV03,{>}{<}SV04,{>}{<}SV05,{>};*;[cr|lf]{<}SX06,{<}VA$S T{>}{>}{<}SX07,{<}VA$DL{>}{>}[BX_]gofile {<}PV07{>}[Q2_]{<}IF @not({<}ER{>}){>}[BX_]ab/nv[Q2_]{<}EI{>};*;[cr|lf]{<}SU01,{<} SX02,{<}VA$WA{>}{>}[BX_]func #{<}PV02{>}[Q2_]{>}{<}GT01{>}[BX _]ne/100[Q2_]{<}IF{<}VA$WA{>}>0{>}{<}GT01{>}[BX_]ca/100 {<}PV 07{>}[Q2_][BX_]wait[Q2_][AS_];*;[cr|lf]{<}SU08,{<}SX09,{<}IS1 0{>}{>}{<}SV10,{>}{<}SV11,\{>}{<}LBb{>}{<}XS09,11,12,,13{>}{< }IF{<}VA|10{>}>0{>}{<}SX10,{<}IS10{>} "\"{>}{<}EI{>}{<}SX10,{ <}IS10{>} {<}IS12{>}{>}{<}IF{<}IS13{>}{240}"\"{>}{<}SX09,{<}I S13{>} {>}{<}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_]{<}EI{>}{<}IF{<}IS01{>}{240 }"I"{>}{<}SV01,DFL{>}{<}GLc{>}{<}EI{>};*;[cr|lf]{<}SV01,INT{> }{<}LBd{>}[BX_]ernv {<}PV14{>}\PORTABL1.{<}PV01{>}[Q2_][BX_]w ait[Q2_]{<}IF{<}IS01{>}{240}"I"{>}{<}SV01,DFL{>}{<}GLd{>}{<}E I{>};*;[cr|lf];*; One-time backup of STARTUP.INT and SETTINGS {046}DFL[cr|lf]{<}SV01,START_{>}{<}SV02,INT{>}{<}SX03,{<}IS06{>}{ {062}}{<}LBe{>}[BX_]exist {<}PV01{>}BK.{<}PV02{>}[Q2_]{<}IF{<}ER{ {062}}{>}[BX_]copy {<}PV03{>} {<}PV01{>}BK.{<}PV02{>}[Q2_][BX_]wa it[Q2_]{<}EI{>}{<}IF{<}IS02{>}{240}"I"{>}{<}SV01,SETTI_{>}{<} SV02,DFL{>}{<}SX03,{<}IS07{>}{>}{<}GLe{>}{<}EI{>};*;[cr|lf];* ; Create PORTABL1.INT:[cr|lf][GT_]{<}SX01,";*" "; PORTABL1.IN T (""Pathless"" STARTUP.INT)[cr|lf];*" "; Created by PORTABLE {046}PM (CLD) " {<}VA$DAd Mmm yyyy{>} " - " {<}VA$TM{>} "[cr|lf] ;*" "; -----[cr|lf];*" "; DO NOT MODIFY THIS SECTION (down to ""^^^^^^^^^^"").[cr|lf];*" "; This code switches to the dire ctory with EDITOR.EXE[cr|lf];*" "; the directory name (minus{032} the final ""\"") is saved to Save/Get 01.[cr|lf];*" "; Save/G et 01 is used below (""[255 065 069]PV01[255 065 070]|{<}IS01 {>}"") to point to that directory[cr|lf];*" "; and its subd irectories[cr|lf]"[cr|lf]{>}{<}GT01{>}{<}SX01,"{<}SV01,{>}{<} SX02,{<}VA$ED{>}{>}{<}SV03,\{>}{<}LB {>}{<}XS02,03,04,,05{>}{ <}IF{<}VA|01{>}>0{>}{<}SX01,{<}IS01{>} ""\""{>}{<}EI{>}{<}SX0 1,{<}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 routin e[cr|lf]"{>}{<}GT01{>}{<}SX01,{<}VA$LG{>}{>}{<}IF{<}VA|01{>}< 1!{<}VA|01{>}>8{>}{<}SV01,DEFAULT{>}{<}EI{>}{<}SX01,"[BX_]exi st " {<}IS01{>} ".LOG[Q2_]{<}IF{<}ER{>}{>}{<}SV02,{<}PRLogged on with username " {<}IS01{>} "{>}{<}EX{>}{>}[BX_]sa ," { <}IS01{>} ".log[Q2_][BX_]wait[Q2_]{<}EI{>}[BX_]logon " {<}IS0 1{>} "[Q2_]"{>}{<}GT01{>}{<}SX01,";*" ";[cr|lf];*" ";[cr|lf]; *" "; LOAD commands (edit filenames as necessary; omit paths! )[cr|lf];*" "; Disable inapplicable commands with "";" "*;""{032} (no quotes)[cr|lf]"{>}{<}GT01{>};*;[cr|lf]{<}SX10,{<}IS07{>}{ {062}}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load " {< }IS13{>} "[Q2_][BX_]wait[Q2_];" "*; Settings file[cr|lf]"{>}{ <}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$KB{>}{>}{<}IF{<}IS10 {>}{240}"\"{>}{<}GT08{>}{<}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]{<}SX 10,{<}VA$DG{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01, "[BX_]load " {<}IS13{>} "[Q2_][BX_]wait[Q2_];" "*; DialoG fil e[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$HL{>}{> }{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load " {<} IS13{>} "[Q2_][BX_]wait[Q2_];" "*; HeLp file[cr|lf]"{>}{<}GT0 1{>}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$HY{>}{>}{<}IF{<}IS10{>}{2 40}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load " {<}IS13{>} "[Q2_][BX_ ]wait[Q2_];" "*; Hyphenation dictionary[cr|lf]"{>}{<}GT01{>}{ <} EI{>};*;[cr|lf]{<}SX10,{<}VA$SP{>}{>}{<}IF{<}IS10{>}{240}"\"{ {062}}{<}GT08{>}{<}SX01,"[BX_]load " {<}IS13{>} "[Q2_][BX_]wait[Q 2_];" "*; Personal spelling file[cr|lf]"{>}{<}GT01{>}{<}EI{>} ;*;[cr|lf]{<}SX10,{<}VA$U2{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<} GT08{>}{<}SX01,"[BX_]load " {<}IS13{>} "[Q2_][BX_]wait[Q2_];" "*; U2 file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10,{< }VA$SG{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[BX_ ]ldsgt " {<}IS13{>} "[Q2_][BX_]wait[Q2_];" "*; Save/Gets (.SG T) file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX01,{<}VA$S D{>}{>}{<}SX01,";*" ";[cr|lf][BX_]dsort " {<}IS01{>} "[Q2_];" "*; DIRectory Sort order[cr|lf]"{>}{<}GT01{>}{<}SX01,";*" "; [cr|lf];*" "; Default paths[cr|lf]"{>}{<}GT01{>}{<}SX01,"[BX_ ]d dr={<}PV01{>}\[Q2_];" "*; Directory for TeMP files[cr|lf][ BX_]d AOP={<}PV01{>}\[Q2_];" "*; Autosave path[cr|lf]"{>}{<}G T01{>};*;[cr|lf]{<}SX01,{<}VAAOT{>}{>}{<}SX01,"[BX_]d AOT=" { <}IS01{>} "[Q2_];" "*; Autosave time settings[cr|lf]"{>}{<}GT 01{>};*;[cr|lf]{<}SX01,"[BX_]d GP={<}PV01{>}\[Q2_];" "*; Grap hics path[cr|lf][BX_]d NL={<}PV01{>}\[Q2_];" "*; Network log{032} files[cr|lf][BX_]exist {<}PV01{>}\BTFONTS\*.*[Q2_]{<}IF@not({ <}ER{>}){>}[BX_]d OL={<}PV01{>}\BTFONTS\[Q2_];" "*; Outline s creen fonts[cr|lf][BX_]d XY={<}PV01{>}\BTFONTS\[Q2_]{<}EI{>}; " "*; Location of SCRFONTS.BIN[cr|lf][BX_]d ZM=100[Q2_];*" "; Zoom setting for graphical view[cr|lf][BX_]exist {<}PV01{>}\ FILTERS\*.*[Q2_]{<}IF@not({<}ER{>}){>}[BX_]d WW={<}PV01{>}\FI LTERS\[Q2_]{<}EI{>};" "*; Conversion filters[cr|lf];" "*;[cr| lf];" "*; Paths Used by XY4 Menu|DiaLoG files[cr|lf][BX_]d/nv SG1900={<}PV01{>}\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 w ith PP: t able)[cr|lf]"{>}{<}GT01{>};*;[cr|lf];*; Construct PP: table f or PP.PRN[cr|lf][AS_][BX_]se [wC]PP:[Q2_]{<}IF{<}ER{>}{>}{<} SV01,PP:1[cr|lf]1{tab}STANDARD.PRN{tab}Standard printer file[ cr|lf];[cr|lf]{>}{<}GLg{>}{<}EI{>}{<}SX03,0{>}{<}SV01,{>}[YD_ ]{<}LBf{>}[LD_][LB_][DF_][LE_][DF_]{<}SV02{>}[YD_]{<}IF{<}IS0 2{>}{240}"\"{>}{<}IF";"{238}{<}IS02{>}<>0{>}{<}SX10,{<}VA@02{ tab}2{>}{>}{<}GT08{>}{<}SX01,{<}IS01{>} {<}VA@02{tab}1{>} "{t ab}" {<}IS13{>} "{tab}" {<}VA@02{tab}3{>} "[cr|lf]"{>}{<}SX03 ,{<}PV03{>} 1{>}{<}EI{>}{<}GLf{>}{<}EI{>}{<}SX01,"PP:" {<}IS0 3{>} "[cr|lf]" {<}IS01{>} ";[cr|lf]"{>}{<}LBg{>}{<}SX01,"[BX_ ]exist PP.PRN[Q2_]{<}IF@not({<}ER{>}){>}[BX_]ernv PP.PRN[Q2_] [BX_]wait[Q2_]{<}EI{>};*" ";[cr|lf];*" ";[cr|lf];" "*; To add /change printers, carefully modify the PP: table below[cr|lf] ;" "*; Header format:[cr|lf];" "*; PP:# [where ""#"" is numbe r of lines in table][cr|lf];" "*; Line format:[cr|lf];" "*; p rinting_port[TAB]printer_filename[no path!][TAB]printer_name[ cr|lf];*" ";[cr|lf]{<}SV02,;PR;[cr|lf][cr|lf]" {<}IS01{>} "{> }[BX_]sa ,PP.PRN[Q2_][BX_]wait[Q2_][BX_]load PP.PRN[Q2_][B X_]wait[Q2_];" "*;[cr|lf]{<}SX02,{<}VALA{>}{>}[BX_]d la=850[Q 2_][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_]{<}SV 01,Error writing PORTABL1.INT{>}{<}LBh{>}{<}SX01,{<}IS01{>} " (Relax, no file has been modified)"{>}{<}PR@01{>}{<}EX{>}{<} EI{>}[BX_]wait[Q2_];*;[cr|lf];*; Create PORTABL1.DFL:[cr|lf][ TF_]{<}LBi{>}[BX_]se :\[Q2_]{<}IF@not({<}ER{>}){>}[BX_]seb {032} [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{>}[BX_]st/nv {<}PV14{>}\PO RTABL1.DFL[Q2_]{<}IF{<}ER{>}{>}[TF_]{<}SV01,Error writing POR TABL1.DFL{>}{<}GLh{>}{<}EI{>}[BX_]wait[Q2_];*;[cr|lf];*; Gene rate report:[cr|lf]{<}SX14,{<}VA$ET{>}{>}{<}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_][DF_][DN_]{<}EI{>}[TF_][ DF_][BF_][DF_]{<}SV04{>}[BX_]ab/nv[Q2_]{<}SX01,{<}VA$WA{>}{>} [BX_]func #{<}PV01{>}[Q2_][BX_]ne/1[Q2_]{<}SX10,{<}IS06{>}{>} {<}GT08{>}{<}SX02,{<}IS13{>}{>}{<}SX10,{<}IS07{>}{>}{<}GT08{> }{<}SX03,{<}IS13{>}{>}{<}SX01,"{<}MDUL{>}PORTABLE.PM has crea ted:{<}MDNM{>}[cr|lf]PORTABL1.{<}MDIT{>}INT{<}MDNM{>} (replac ement for " {<}IS02{>} ") and[cr|lf]PORTABL1.{<}MDIT{>}DFL{<} MDNM{>} (replacement for " {<}IS03{>} ")[cr|lf] in " {<}IS10 {>} ", as follows:[cr|lf][cr|lf]" {<}IS04{>} "[cr|lf]{<}MDIT{ {062}}No existing files were modified.{<}MDNM{>}[cr|lf][cr|lf]{<} MDUL{>}To ""go portable"":{<}MDNM{>}[cr|lf]{<}MDBO{>}Make sur e that you have good BACKUPS of your original " {<}IS02{>} "{032} and " {<}IS03{>} "!{<}MDNM{>} (The first time you run PORTABL E.PM, these files are automatically backed up to START_BK.INT and SETTI_BK.DFL.)[cr|lf]{<}MDIT{>}Then:{<}MDNM{>}[cr|lf]Cop y PORTABL1.{<}MDIT{>}INT{<}MDNM{>} to " {<}IS02{>} " (overwri ting the existing file);[cr|lf]Copy PORTABL1.{<}MDIT{>}DFL{<} MDNM{>} to " {<}IS03{>} " (overwriting the existing file); an d[cr|lf]Quit and restart XyWrite.[cr|lf]"{>}{<}GT01{>}[TF_]{< }SX01,"In all of " {<}IS14{>} " seconds..."{>}{<}PR@01{>}{<}E X{>}[cr|lf]{<}EI{>}{<}EI{>}{<}PRTwo (2) available windows req uired{>}{<}EX{>}[cr|lf]{<}EI{>}{<}PRUnexpected: Missing or in active STARTUP|SETTI NGS file - No operation{>}{<}EX{>}[cr|lf]{<}EI{>}{<}PRXyWrite v4 for DOS only{>}{<}EX{>}[cr|lf] -nd XPLeNCODE -- Carl Distefano cld@xxxxxxxx