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

Re: New XYENC 1/13/09 release



Reply to note from wbass@xxxxxxxx Fri, 16 Jan 2009 03:45:33 -0700
(MST)

Wally:

The new release of XYENC/XYDEC is superb! I can't make it go wrong.
It encodes and decodes XYWWWEB.U2 and XYWWWEB.INF perfectly -- and
instantaneously. To ratchet up the challenge, I tested it against a
file I call LOTSA3S.TXT, which is chock full of oddball 3-byters.
Again, no problem. (If you'd like to try it yourself, I UL'd a self-
extracting archive to http://users.datarealm.com/ammaze/xfer/lotsa3s.exe.
To view it in XyWrite, however, use Xy4; it's too much for Xy3 to
handle.)

The new, 60-character line length for encoded output is ideal for
email transmission. Thanks for adding that.

The more I delve into your programs, the more captivated I become.
This is a real advance for XyWriters of every stripe, particularly
those who write XPL. Although U2 has a number of encoding utilities
(notably Robert's XPLeNCODE, also my Base64 and Quoted-Printable
routines), these are all Xy4-specific. Your utils can be used by
anyone, effectively creating a lingua franca for all flavors of
XyWrite.

The advantages of your approach are many. The encoding scheme is
devilishly clever, and very "XyWriterly" in concept. Encoded XPL is
highly readable. The ability to add white space, comments and native
XyWrite formatting to create structured, explicated code -- without
affecting decodability -- is invaluable. (XyWrite-formatted code
would have to be re-encoded for e-mail transmission, as you point out
in your documentation.) Decoding is lightning-fast (as is encoding),
so that you can effectively RUN encoded material as though it were
executable XPL (as my U2 frame RUNN demonstrates).

I'm experiencing some miscues with QDF1.PM, especially in Xy4, but
also in Xy3 in some instances. I haven't had a chance to pin down the
problems, yet; will do so as soon as I can. The concept, though
-- using XPL to automate the creation of structured code -- is spot
on. Cf. the "view structured listing" option in Robert's IFEI
routine to test for balanced|nested IFs and EndIfs.

> I often follow a practice of commenting such things thusly
>
> BC ch /this/that/XC BC this is a comment#
>
> where the "#" at the end of each line is a 3 byte 0FFh
> character. ... a 3 byte 0FFh at the end of each line is
> essential to keep the CR at line end from doing its usual
> "execute" function, and trying to "execute" the comments.
> ...
> I wanted to be sure that this technique is still valid in
> XyWrite IV. Please let me know if it's not, and I will stop
> this practice.

Unfortunately, this does NOT work in Xy4. In theory, it *should*
work. When the 3-byte FF (255) is put to the CMline, it's transformed
into a 1-byte FF, which should, in turn, fuse with the next two bytes
(0D and 0A) to create a new 3-byte char, which is then erased by the
next func BC. In practice, though, that doesn't happen in Xy4. You
can scrape by with 'BCcomment___:~255_'^ (i.e., add a space *after*
the FFh|255d), but the execution is not clean.

An alternate way that does work in both Xy3 and Xy4 is to put a WAIT
command immediately before the CrLf. Visually, it's not as satisfying
as your 255 kluge, but it is bulletproof. WAIT can be abbreviated to
WT to reduce the clutter. Here's a proof of concept: a whole bunch of
Xy4 commands placed on the CMline as non-executing comments (RUN it
in Xy3 or Xy4):

'BCp_2__Xy4_commands_as_CMline_comments'^'BCAB______________
____'BCwt'^'BCABORT_______________'BCwt'^'BCADDTBL__________
____'BCwt'^'BCAPFIL_______________'BCwt'^'BCAPPEND__________
____'BCwt'^'BCAPT_________________'BCwt'^'BCATS_____________
____'BCwt'^'BCATTRIB______________'BCwt'^'BCATX_____________
____'BCwt'^'BCAU__________________'BCwt'^'BCBE______________
____'BCwt'^'BCBEEP________________'BCwt'^'BCBOX_____________
____'BCwt'^'BCBPT_________________'BCwt'^'BCC10_____________
____'BCwt'^'BCC11_________________'BCwt'^'BCC12_____________
____'BCwt'^'BCC13_________________'BCwt'^'BCC14_____________
____'BCwt'^'BCCA__________________'BCwt'^'BCCAF_____________
____'BCwt'^'BCCALL________________'BCwt'^'BCCAP_____________
____'BCwt'^'BCCART________________'BCwt'^'BCCARTDIR_________
____'BCwt'^'BCCC__________________'BCwt'^'BCCD______________
____'BCwt'^'BCCE__________________'BCwt'^'BCCEV_____________
____'BCwt'^'BCCF__________________'BCwt'^'BCCH______________
____'BCwt'^'BCCHA_________________'BCwt'^'BCCHANGE__________
____'BCwt'^'BCCHDIR_______________'BCwt'^'BCCI______________
____'BCwt'^'BCCIA_________________'BCwt'^'BCCLRASG__________
____'BCwt'^'BCCLRSGT______________'BCwt'^'BCCLRSUM__________
____'BCwt'^'BCCLRXSGT_____________'BCwt'^'BCCM~DFUNC________
_____'BCwt'^'BCCOPY________________'BCwt'^'BCCORRECT________
_____'BCwt'^'BCCS__________________'BCwt'^'BCCV_____________
_____'BCwt'^'BCCVA_________________'BCwt'^'BCDDEEXECUTE_____
_____'BCwt'^'BCDDEINITIATE_________'BCwt'^'BCDDEPOKE________
_____'BCwt'^'BCDDEREQUEST__________'BCwt'^'BCDDETERMINATE___
_____'BCwt'^'BCDEFAULT_____________'BCwt'^'BCDEL____________
_____'BCwt'^'BCDELALL______________'BCwt'^'BCDELETE_________
_____'BCwt'^'BCDF1_________________'BCwt'^'BCDF2____________
_____'BCwt'^'BCDF3_________________'BCwt'^'BCDGB____________
_____'BCwt'^'BCDGT_________________'BCwt'^'BCDGW____________
_____'BCwt'^'BCDIR_________________'BCwt'^'BCDIRL___________
_____'BCwt'^'BCDLG_________________'BCwt'^'BCDLL____________
_____'BCwt'^'BCDM__________________'BCwt'^'BCDO_____________
_____'BCwt'^'BCDOCBLD______________'BCwt'^'BCDOS____________
_____'BCwt'^'BCDSORT_______________'BCwt'^'BCED_____________
_____'BCwt'^'BCEDF_________________'BCwt'^'BCEDIT___________
_____'BCwt'^'BCEDP_________________'BCwt'^'BCERASE__________
_____'BCwt'^'BCERNV________________'BCwt'^'BCES_____________
_____'BCwt'^'BCEXIST_______________'BCwt'^'BCFIND___________
_____'BCwt'^'BCFINDL_______________'BCwt'^'BCFM1____________
_____'BCwt'^'BCFM2_________________'BCwt'^'BCFM3____________
_____'BCwt'^'BCFN1_________________'BCwt'^'BCFN2____________
_____'BCwt'^'BCFN3_________________'BCwt'^'BCFO_____________
_____'BCwt'^'BCFORM________________'BCwt'^'BCFORMAT_________
_____'BCwt'^'BCFS1_________________'BCwt'^'BCFS2____________
_____'BCwt'^'BCFS3_________________'BCwt'^'BCFW1____________
_____'BCwt'^'BCFW2_________________'BCwt'^'BCFW3____________
_____'BCwt'^'BCGO__________________'BCwt'^'BCGOFILE_________
_____'BCwt'^'BCHELP________________'BCwt'^'BCIMAGEINFO______
_____'BCwt'^'BCIX1_________________'BCwt'^'BCIX2____________
_____'BCwt'^'BCIX3_________________'BCwt'^'BCIX4____________
_____'BCwt'^'BCIX5_________________'BCwt'^'BCIX6____________
_____'BCwt'^'BCIX7_________________'BCwt'^'BCIX8____________
_____'BCwt'^'BCIX9_________________'BCwt'^'BCJMP____________
_____'BCwt'^'BCKILPRN______________'BCwt'^'BCKILTYP_________
_____'BCwt'^'BCKP__________________'BCwt'^'BCKT_____________
_____'BCwt'^'BCLC__________________'BCwt'^'BCLDHELP_________
_____'BCwt'^'BCLDKBD_______________'BCwt'^'BCLDPM___________
_____'BCwt'^'BCLDPRN_______________'BCwt'^'BCLDRK___________
_____'BCwt'^'BCLDSGT_______________'BCwt'^'BCLDSORT_________
_____'BCwt'^'BCLDSUB_______________'BCwt'^'BCLINKTX_________
_____'BCwt'^'BCLOAD________________'BCwt'^'BCLOADO~DPFUN____
______'BCwt'^'BCLOGIN_______________'BCwt'^'BCLOGOFF________
______'BCwt'^'BCLOGON_______________'BCwt'^'BCLOGOUT________
______'BCwt'^'BCLP__________________'BCwt'^'BCME____________
______'BCwt'^'BCMEM_________________'BCwt'^'BCMERGE_________
______'BCwt'^'BCMKDIR_______________'BCwt'^'BCNE____________
______'BCwt'^'BCNEF_________________'BCwt'^'BCNEP___________
______'BCwt'^'BCNEW_________________'BCwt'^'BCNF1___________
______'BCwt'^'BCNF2_________________'BCwt'^'BCNF3___________
______'BCwt'^'BCNOW_________________'BCwt'^'BCNXTSET________
______'BCwt'^'BCOO__________________'BCwt'^'BCOX____________
______'BCwt'^'BCP___________________'BCwt'^'BCPE____________
______'BCwt'^'BCPEV_________________'BCwt'^'BCPFUNC_________
______'BCwt'^'BCPRF_________________'BCwt'^'BCPRINT_________
______'BCwt'^'BCPRINTF______________'BCwt'^'BCPRINTS________
______'BCwt'^'BCPRN_________________'BCwt'^'BCPROGRAM_______
______'BCwt'^'BCPRS_________________'BCwt'^'BCPSTRING_______
______'BCwt'^'BCPUTC________________'BCwt'^'BCQS____________
______'BCwt'^'BCQUIT________________'BCwt'^'BCR2X___________
______'BCwt'^'BCRD__________________'BCwt'^'BCRE____________
______'BCwt'^'BCREAD________________'BCwt'^'BCREC___________
______'BCwt'^'BCRED_________________'BCwt'^'BCREF___________
______'BCwt'^'BCREMOVE______________'BCwt'^'BCREN___________
______'BCwt'^'BCRENAME______________'BCwt'^'BCREP___________
______'BCwt'^'BCREVIEW______________'BCwt'^'BCRFA___________
______'BCwt'^'BCRFE_________________'BCwt'^'BCRFO___________
______'BCwt'^'BCRHA_________________'BCwt'^'BCRHE___________
______'BCwt'^'BCRHO_________________'BCwt'^'BCRMDIR_________
______'BCwt'^'BCRMVSCR______________'BCwt'^'BCRPLFIL________
______'BCwt'^'BCRS__________________'BCwt'^'BCRUN___________
______'BCwt'^'BCRV__________________'BCwt'^'BCSA____________
______'BCwt'^'BCSAD_________________'BCwt'^'BCSAS___________
______'BCwt'^'BCSAVE________________'BCwt'^'BCSAVEDEF_______
______'BCwt'^'BCSAVERK______________'BCwt'^'BCSAVESEL_______
______'BCwt'^'BCSE__________________'BCwt'^'BCSEA___________
______'BCwt'^'BCSEARCH______________'BCwt'^'BCSEARCHA_______
______'BCwt'^'BCSEARCHB~248SEARCHBA____'BCwt'^'BCSEB________
_________'BCwt'^'BCSEBA________________'BCwt'^'BCSEC________
_________'BCwt'^'BCSETP________________'BCwt'^'BCSF1________
_________'BCwt'^'BCSF2_________________'BCwt'^'BCSF3________
_________'BCwt'^'BCSFDIR_______________'BCwt'^'BCSFT________
_________'BCwt'^'BCSHOHYP______________'BCwt'^'BCSM_________
_________'BCwt'^'BCSORT________________'BCwt'^'BCSORTD______
_________'BCwt'^'BCSPELL_______________'BCwt'^'BCST_________
_________'BCwt'^'BCSTORE_______________'BCwt'^'BCSTSGT______
_________'BCwt'^'BCSTSPELL_____________'BCwt'^'BCTODAY______
_________'BCwt'^'BCTREE________________'BCwt'^'BCTX1________
_________'BCwt'^'BCTX2_________________'BCwt'^'BCTX3________
_________'BCwt'^'BCTX4_________________'BCwt'^'BCTX5________
_________'BCwt'^'BCTX6_________________'BCwt'^'BCTX7________
_________'BCwt'^'BCTX8_________________'BCwt'^'BCTX9________
_________'BCwt'^'BCTY__________________'BCwt'^'BCTYF________
_________'BCwt'^'BCTYPE________________'BCwt'^'BCTYPEF______
_________'BCwt'^'BCTYPES_______________'BCwt'^'BCTYS________
_________'BCwt'^'BCUC__________________'BCwt'^'BCUNDEL______
_________'BCwt'^'BCUNL_________________'BCwt'^'BCUNLOAD_____
_________'BCwt'^'BCUPDATETX____________'BCwt'^'BCUWF________
_________'BCwt'^'BCWAIT________________'BCwt'^'BCWC_________
_________'BCwt'^'BCWCB_________________'BCwt'^'BCWINDOW_____
_________'BCwt'^'BCWPROF_______________'BCwt'^'BCWT_________
_________'BCwt'^'BCX2R_________________'BCwt'^'BCXLATE______
_________'BCwt'^'BCXM__________________'BCwt'^'BCZAP________
_________'BCwt'^'BCZOOM________________'BCwt'^'BC~~<
EX~>'^

That's it for now. Congratulations on the new release. It's an
extremely useful tool.

--
Carl Distefano
cld@xxxxxxxx