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

Re: XYENC/XYDEC programs



Reply to note from wbass@xxxxxxxx Tue, 6 Jan 2009 20:17:33 -0700 (MST)

Wally:

Much food for thought here. I'd recently read, with great interest, your overview docs, and was
looking forward to the encode and decode modules. Now they're here.

Initial impressions are excellent. So far, I can't make it go wrong. Encoded XPL, no matter how
"knotty", decodes perfectly every time. What's more, multi-level encodings (encodings of
encodings), followed by multi-level decodings of the same material, always lead back to a perfect
original. I've tried this down to three or four levels; it works. Clearly you've put a great deal of
thought and care into your code.

I'll have to study your encoding scheme more closely, and look more closely at the differences
between the various program flavors (plain, L, and LH). In the meantime, I've written a Xy4 routine
for the Jumbo U2, to encode and decode DeFined blocks using your utils. Locate all of the COM files
in Editor's directory. With a block of code DeFined, issue
XYENC[L|H|LH] or XYDEC[L|H|LH].

'01-07-2009 12:05:10
{{5xyenc*,xydec*}}_Encode|Decode_a_DeFined_block_with_Wally_Bass'`s_XYENC|XYDEC_utilities_[CLD_1/7/09]'^
~B~==1~>'BXes_1'Q2'DX~~>'DZ~>0~>~~>'JM2.GetPath'Q2~+"\"+~+"."~>'BXsad/nv_~in'Q2'BXwait'Q2'DE'YD'BXernv_~out'Q2'BXdos/nv/x/z_/c_~com_~in_~out'Q2~~'BXexist_~out'Q2~)~>~~'BXp'Q2~~~>'BXme_~out'Q2'BXwait'Q2:~M'BXernv_~in'Q2'BXwait'Q2'BXernv_~out'Q2'BXwait'Q2~~>'JM2.ReJuMP'Q2'DO'FF'DO'FF~~'YD~~~~~B'^
'^
~Z

I hope the long, unbroken line of code above doesn't result in errors during transmission. Just in
case, here's the same thing, XPLeNCODEd:

XPLeNCODE v2.0
b-gin [UNTITLED]
{{;5xyenc*,xydec*}} Encode|Decode a DeFined block with Wally{032}
Bass's XYENC|XYDEC utilities [CLD 1/7/09][cr|lf]{002}{<}IF{<}
VA$WS{>}==1{>}[BX_]es 1[Q2_][DX_]{<}SX01,{<}VA$FR{>}{>}[DZ_]{
<}IF{<}VA$DE{>}>0{>}{<}SX50,{<}VA$ED{>}{>}[JM_]2.GetPath[Q2_]
{<}SX50,{<}IS50{>}+"\"+{<}IS01{>}+"."{>}[BX_]sad/nv {<}PV50{>
}in[Q2_][BX_]wait[Q2_][DE_][YD_][BX_]ernv {<}PV50{>}out[Q2_][
BX_]dos/nv/x/z /c {<}PV50{>}com {<}PV50{>}in {<}PV50{>}out[Q2
_]{<}SX01,2{>}{<}CUa,01{>}[BX_]exist {<}PV50{>}out[Q2_]{<}IF@
not({<}ER{>}){>}{<}GLa{>}{<}EI{>}[BX_]p[Q2_]{<}LBa{>}{<}SX01,
{<}CP{>}{>}[BX_]me {<}PV50{>}out[Q2_][BX_]wait[Q2_][255+048+0
68][BX_]ernv {<}PV50{>}in[Q2_][BX_]wait[Q2_][BX_]ernv {<}PV50
{>}out[Q2_][BX_]wait[Q2_]{<}SX50,{<}PV01{>}{>}[JM_]2.ReJuMP[Q
2_][DO_][FF_][DO_][FF_]{<}EX{>}{<}EI{>}[YD_]{<}PRNothing DeFi
ned{>}{<}EX{>}{<}EI{>}{<}PRNo file{>}{002}[cr|lf][cr|lf]
-nd
XPLeNCODE

Interesting work!

--
Carl Distefano
cld@xxxxxxxx