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

Re: XYENC/XYDEC v0.95 release



Reply to note from wbass@xxxxxxxx Sat, 31 Jan 2009 12:26:01 -0700 (MST)

> I finally finished putting up the rest of the v0.95 XYENC
> release at
>
>  basspad.com/xywrite
>
> where you should select xyenc095.zip for download.

Thanks, Wally. The new user guide is very tasty indeed, a friendly
and informative addition to the package.

Coincidentally, I've put some finishing touches on my Xy4 helper
programs (U2 frames and documentation encoded below). The most
visible change is that encoded SEarch wildcards are now formatted
with the same color (MoDe 79) as actual wildcards, so that the real
and faux entities look exactly alike, as the attached screen shot
shows.

I couldn't resist dubbing the formatted views produced by XYFMT and
XYTOG as "overcooked" encodings, a nod to the fact that they can't be
decoded directly, at the DOS prompt, with XYDEC.COM, but first have
to be stripped of the stuff that would mess up decoding (something
the helper frames do hands off, but that can also be done manually
with XYFMT2).

Bon appetit!

'%--_XYENCode_start--
'0 checksum 6F9A820D
~~~~'^'^For_XYWWWEB.INF'.'^'^{xyenc,xydec}'^{xyf
mt,xyfmt2,xytog,xyrun,ifei2}'^{xyenc50,xydec50,xyrun50}'^'^~XYENCode_Helper_Frames_for_XyWrite_IV~_--_C.L.Dist
efano_rev._1/31/09'^Encode,_Decode,_Format_and_Execute_XPL_usi
ng_Wally_Bass'`s_Amazing_XYENCode_and_XYDECode_Programs'^'^Wal
ly_Bass'`s_XYENCode_utility_(XYENC.COM)_translates_XPL_program
s_into_pure_Ascii,_for_viewing_in_any_text_editor_or_for_trans
mission_by_e-mail._Its_companion,_XYDECode_(XYDEC.COM),_return
s_an_encoded_program_to_the_original_XPL._White_space_and_XyWr
ite_formatting_can_be_added_to_XYENCoded_programs_to_create_a_
structured_listing_that_makes_XPL_easier_to_read_and_debug_--_
yet_decoding_will_be_unaffected._Because_they'`re_blazingly_fa
st,_these_assembly_language_utilities_can_be_tightly_integrate
d_with_XyWrite'`s_command_line_(CMline),_as_exemplified_by_the
_routines_described_below.'^'^~Required_External_Progra
ms~'^Download_Wally_Bass'`s_XYENCode_and_XYDECode_packa
ge_here'.'^~I~~'JM2.ViewURL'Q2~>http'.//basspad.com/xywrite/~'^As_
of_this_writing_(1/31/09),_the_current_version_was_v0.95_(xyen
c095.zip)',_download_the_latest_available_version.'^Situate_XY
ENC.COM_and_XYDEC.COM_in_the_directory_that_contains_~
'^~'^~CMline_Usage~_(all_commands_l
aunched_with_)'^-------------------------------------
--------------'^XYENC____XYENCode_current_file_or_DeFined_bloc
k'^XYENC/___Same_as_XYENC,_except_omit_'`'/--'-XYENCode'-start
_and'^___________'`'/--'-XYENCode'-end_delimiters'^XYDEC____XY
DECode_current_file,_DeFined_block_or_code_bounded_by_'`'/--'-
XYENCode'-start_and_'`'/--'-XYENCode'-end_delimiters'^XYFMT___
_2-Way_Toggle_XPL|Formatted_XYENCode_(entire_file_only)'^XYFMT
2___2-Way_Toggle_to_add|remove_(non-decodable)_embedded_IV_com
mands_to|from_formatted_code_listing_(not_usually_needed_becau
se_called_by_frame_XYFMT)'^XYTOG____3-Way_Toggle_XPL|Raw_XYENC
ode|Formatted_XYENCode_(entire_file_only)'^XYRUN____Run_(execu
te)_XYENCoded_file_or_DeFined_block'^IFEI2____Test_XPL_code_fo
r_balanced_IF_and_EndIf_statements,_with_option_to_display_str
uctured_XYENCoded_listing_(entire_file_only)'^'^Note_1'._Frame
names_XYENC_and_XYENC/_accept_valid_XYENC.COM_arguments.'^~Examples'.'^XYENC_45_C___Specify_45-char_line_width_
and_perform_checksum_after_encoding'^XYENC_L______Bypass_encod
ing_of_low-order_Ascii_characters'^XYENC_H______Bypass_encodin
g_of_high-order_Ascii_characters'^XYENC/_B_____Bypass_encoding
_of_both_low-and_high-order_Ascii_characters',_omit_'-start_an
d_'-end_boundaries'^~'^Note_2'._If_no_line_width_is_speci
fied,_frame_XYENC*_supplies_a_width_of_65.'^'^Note_3'._As_a_ru
le,_frame_XYENC_removes_the_":'?Z"_EOF_code,_if_present,_from_
XYENCoded_output._(The_sole_exception_is_when_the_XYENC_CMline
_includes_the_"C"_argument,_which_instructs_XYENC.COM_to_gener
ate_a_CRC32_checksum_token_for_the_encoded_file',_if_the_EOF_i
s_removed_in_this_instance,_the_checksum_value_generated_by_XY
DEC.COM_on_decoding_will_disagree_with_the_encoded_value,_caus
ing_an_error_report.)_Removing_the_EOF_code_avoids_problems_wh
en_decoding_material_that_has_been_assembled_from_multiple_XyW
rite_files,_each_terminating_with_an_EOF_marker._See_~C
omments_and_Warnings_concerning_End_of_File_(EOF)_Markers~,_in_the_XYENC_User_Guide_(xyenc-ug.txt_or_xyenc-ug.htm,_in
cluded_in_the_XYENC_zip_archive).'^'^Note_4'._In_order_to_enha
nce_the_readability_of_formatted_(a/k/a_"cooked")_XYENCode,_fr
ame_XYFMT_hides_some_XYENCode_tokens_in_embedded_'≪IV]_'≫for
matting_deltas_(the_right_bracket,_"]",_in_the_embedded_comman
d_"marks"_it_as_one_supplied_by_frame_XYFMT)._As_a_result,_the
_formatted_code_produced_by_XYFMT_is_"overcooked"_--_i.e.,_it_
is_NOT_directly_decodable,_at_the_DOS_prompt,_with_XYDEC.COM_(
although_it_~is~_decodable_with_XYDEC,_
XYFMT,_or_XYTOG)._Within_the_confines_of_XyW
rite_IV_this_is_not_at_all_an_issue,_but_if_you_want_to_share_
"overcooked"_code_with_users_outside_of_Xy4,_modifications_are
_required._Issuing'^__XYFMT2_(note_the_"2"_in_the_com
mand)'^reverses_and_removes_the_IV_commands,_rendering_output_
once_again_fully_decodable._See_also_Note_5,_below.'^'^Note_5'.
_To_include_formatted_code_(whether_"cooked"_or_"overcooked")_
in_the_message_body_of_an_e-mail,_you_must_first_re-encode_it_
to_pure_Ascii_with_XYENC.'^'^Note_6'._In_rare_instanc
es,_XYFMT_may_produce_unexpected_results_(a/k/a_garbage)_when_
attempting_to_format_XPL._If_this_happens,_RECAll_your_file_(R
ECA)_and_issue_XYTOG_twice_(once_to_encode,_
a_second_time_to_format),_or_XYENC/_followed_by_XYFMT
._Either_of_these_latter_methods_~will~
_work.'^'^~XPL_Usage~'^---------'^~XYENC5
0_and_XYDEC50'._XYENCode_or_XYDECode_the_string_in_Save/Get_50
~'^Examples'.'^'≪SV50,'BC'≫'JM2.xyenc50'Q2',*',_S/G_5
0_has_"'`BC"'^'≪SV50,'`BC'≫'JM2.xydec50'Q2',*',_S/G_50_has_"
'BC"'^'^~XYRUN50'._RUN_XYENCoded_XPL_in_Save/Get_50~'^Example'.'^'≪SV50,'`BCHello,'-World'≫'JM2.xyrun50'Q2',
*','^(Decodes_"'`BCHello,'-World"_to_"'BCHello,_World",_then_e
xecutes_it)'^'^~XYRUN50'._CMline_Programming~'^X
YRUN50_can_also_execute_XYENCoded_XPL_from_the_CMline._This_is
_useful_for_commands_that_include_hard-to-handle_characters.'^
Example'.'^SEarch_for_1-byte_Ascii-8_(impossible_to_put_on_the
_CMline_in_1-byte_form'|)'.'^XYRUN50_'`BXse'-|:'?H|'`Q2'^'^Any_of_the_CMline_routines_above_can_be_called_as_a_chil
d_process_within_an_XPL_program._For_example'.'^'YD'DP'JM2.xyd
ec'Q2',*',_XYDECode_paragraph_under_cursor'^'YD'DL'≪SV50,'≫'JM
2.xyenc/'Q2',*',_XYENCode_line_under_cursor'^Note_that_on_a_ca
ll_to_XYENC,_S/G_50_must_either_be_empty_or_contain_a_valid_XY
ENC.COM_argument'|'^'^~'^For_use_by_RENUMBER.PM'.'^Renumb
er_all_XYENCode_helper_frames_in_PACK_mode,'^with_OPTIONs_list
ed_below'.'^'^XYENC*,XYDEC'^Default_S/G_range_=_01-07',_50'^FR
EEZE_50'^'^XYFMT'^Default_S/G_range_=_01-08',_49-50'^FREEZE_49
-50'^'^XYTOG'^No_S/Gs_used'^'^XYRUN'^Default_S/G_range_=_01-04
',_50'^FREEZE_50'^'^XYENC50,XYDEC50,XYRUN50'^Default_S/G_range
_=_01-04',_50'^FREEZE_50'^LEFT$(1)'.__'/'^'^IFEI2'^Default_S/G
_range_=_01-05',_50',_96'^FREEZE_50_96'^LEFT$_(1)'.__RK'.'^~'^-~I-~I-~I-~I-~I-~I-~I-~I-~I-'^~'^For_XYWWWEB.U2'.'^
'^{{5xyenc50,xydec50,xyrun50}}_Encode|Decode|RUN_XYENCoded_XPL
_contained_in_S/G_50_[CLD_1/25/09]'^~B~<1~>~~<
EI~>~~>~)~>~~>
'JM2.GetPath'Q2~+"\"~>~+~+"
.IN"~>'BXsa_'/01,~'Q2'BXwt'Q2~+~+"
.OUT"~>'BXernv_~'Q2'BXwt'Q2~~~="E
N"~>~~'BXdos/nv/x/z_/c_~XY~.COM_
._~<~'Q2~~'BXexist_~'Q2
~)~>~~'BXp'Q2~'BXernv_~'Q2
'BXwt'Q2~<0~>~~>'JM2.SV50'Q2'BXe
rnv_~'Q2'BXwt'Q2~~="ENC"~>~+"~N
("~>~~~~~'FF
'BXrun_~'Q2~B'^'^{{5xyenc*,xydec}}_XYENCode|XYDECode_(D
F_block_or_entire_file)_[CLD_rev.1/26/09]'^~B~==1~>
'BXes_1'Q2'DX~~)~>~
~~="/"~>~~~>~~~~="ENC"~>~)~>~~~<1~>~+"_65"~>~
~~'DZ~<1~>'YD~~~~="DEC"~>'XP'BXch/1__;~)~>'JM2.xyfmt2'Q2~'LB'BXse__~start--'Q2~)~>'LB~~'-'-end--;~['Q2~>~~~'DF~'DF~
~~>'JM2.GetPath'Q2~+"\"+~+
"."~>'DE'BXsad/nv_~in'Q2~~>~~~'BXwt'Q2'DN'BXernv_~out'Q2'BXwt'Q2'BX
dos/nv/x/z_/c_~com_~<0~>._~out<~<
PV07~>in~~~in_~out~_~'Q2
'BXwt'Q2~~'BXexist_~out'Q2~)~>~~'BXp'Q2~'GT'DO'FF'DX~~="E
NC"&~<1~>~+"start--'^'^"+~+"'-'-e
nd--'^"~>~~'LU'LU~~~>'BXme_~

out'Q2'BXwt'Q2'BXernv_~in'Q2'BXwt'Q2'BXernv_~out'Q2'BXwt'Q2~)~="ENC"&"C"~{~<0~>~~<>8~>'TG~~~~>'BXseba__'?Z'Q2~)&~==~-2~> 'RC'RC~~~~~>'JM2.ReJuMP'Q2'DO'FF ~~~~~B'^'^{{5xyrun}}_Run_XYENCo ded_XPL_(file_or_DF_block)_[CLD_1/26/09]'^~B'BXes_1'Q2'DX'DZ~< IF~<0~>~~~~>~ ~>'JM2.GetPath'Q2~+"\"~>~+"XYRUN.I N"~>~+"XYRUN.PM"~>~<1~>~ <1~>~~>~~~~>~~<0&"\"~{~ <0~>~~>~~+"\"~>~< EI~>~+~~>~~~="_"~>~~~~>~~~~<>1~>~~~'DE'BXsad/nv_~'Q2 'BXwait'Q2~'BXernv_~'Q2'BXwait'Q2'BXdos/nv/x/z_/c _~xydec.com_~_~'Q2'BXwait'Q2~~'BXexist_~'Q2~)~>~~'BXp 'Q2~~==(~+"XYRUN.IN")~>'BXernv_~ 'Q2'BXwait'Q2~'DO'FF'BXrun_~_~'Q2~B'^'^{{5x ytog}}_XYENCode_3-way_toggle'._XPL|Raw'-ENCode|Formatted'-ENCo de_[CLD_rev.1/27/09]'^~B~==1~>'TF'DX'XP'BXch/1__;~< _;~<'Q2~)~>'BXch/1__;~~> ~'JM2.xyenc/'Q2~~~'BXch/1__'?<_'?<'Q2~< IF@not(~)~>'BXch/1__;~~>'JM2.xyfm t'Q2~~~'JM2.xydec'Q2~~~~B '^'^{{5xyfmt2}}_Apply|Remove_extra_(non-XYDECodable)_formattin g_to|from_XYENCode_structured_listing_[CLD_rev.1/31/09]'^~B'XP 'TF~'BXch/1_~252;~~>~< SV52,'`^~252;~|'-~252;~_|;~'`~252;~< MDBO;~>;~|',;~~252;~;~|'.;X~252 ;~;X|~>~~~~~~>'BXch_~252~~252'Q2'BXwt'Q2~~~~~~252'`^|;~_~252 '-|;~;~~252;~'`|;~;~ ~252',;~|;~;X~252'.;X|~>~~B'^'^{{5xyfmt }}_Toggle_XPL|formatted_XYENCode_[CLD_rev.1/31/09]'^~B~==1~>'BXes_1'Q2'DX'XP'TF~',*','^',*',_Toggle_cod e'^~~~~+"AE"~>',*','^'BXch/1__;~'`_;~'`'Q2~)~>',*','^'BX{ch/1__'BX_'BX}'Q2~~>~'BX ch/1__;~)~>'JM2.xyfmt2'Q2~'JM 2.xydec'Q2~~~',*','^'BXch/1__~_~'Q2 ~)~>',*','^'BX{ch/1__'BX_'BX}'Q2~~>~~~',*','^'BX{ch/1__'BX_'BX}'Q2~)~>~< LBb~>~'JM2.xyenc/'Q2~~',*','^'BXch/1__'BC_'BC 'Q2~)~>~~',*','^'BXch/1__;~<_;~<'Q2~< IF@not(~)~>',*','^'BXch/1__;~'`_;~'`'Q2~< IF~~>~~~',*','^',*','^~'DX~~~~~~~~~~~~~ ~~~~~>~< GT02~>'TF',*','^'BXch__'`?_;~:'?'Q2'BXwt'Q2',*',_<==_ Critical_change',_do_not_remove'|'^'BXch__;~['Q2'BXwt'Q2',*','^ 'BXch_~252'?'BXch_ ~252;~[;~['?)~>'BXwt'Q2~< GLd~>~',*','^'BXch_~252'?~252;~['?~252'Q2'BXw t'Q2',*','^~'BXch_~252;~[;~['?~252;~['?~252'Q2 ~)~>'BXwt'Q2~~',*','^'BXch_~252'?~252'?;~[~252'Q2'BXwt'Q2',*','^'BXch_~252'?;~[;~[ ~252'?;~[~252'Q2'BXwt'Q2',*','^~'BXch__;~[;~[;~)~>'BXwt'Q2~~',*','^'BXc h_~252;NDI;~>;~[~252;NDI;~>~252'Q2',*','^'BXch_~252'`;A;X~252; ~'`;A;X_;~~252'Q2'BXwt'Q2',*','^'BXch_~252'`@; A~252;~'`@;A_;~~252'Q2'BXwt'Q2',*','^'BXch_~252 '`#;A~252;~'`#;A_;~~252'Q2'BXwt'Q2',*','^'BXch _~252'`$;A~252;~'`$;A_;~~252'Q2'BXwt'Q2',*','^ 'BXch_~252'`&;A~252;~'`&;A_;~~252'Q2'BXwt'Q2', *','^'BXch_~252'`≪~252;~'`≪_;~~252'Q2'BXwt'Q2 ',*','^'BXch_~252'`≫~252;~'`≫_;~~252'Q2'BXwt 'Q2',*','^'BXch_~252'`*;X~252;~'`*;X_;~~252'Q2 'BXwt'Q2',*','^'BXch_~252'?~252;~'?;~< MDNM;~>~252'Q2'BXwt'Q2',*','^'BXch_~252'?~252;~ '?;~~252'Q2'BXwt'Q2',*','^'BXch_~252'? ~252;~'?;~~252'Q2'BXwt'Q2',*','^'BXch_ ~252'?~252;~'?;~~252'Q2'BXwt'Q2',* ','^'BXch_~252'?~252;~'?;~~252'Q2 'BXwt'Q2',*','^'BXch_~252;~['?>;~~252'?>;~;~[~252 'Q2'BXwt'Q2',*','^'BXch__'`^_'`^;~['Q2'BXwt'Q2',*','^~'BX ch__'`^;~[;~[_'`^;~['Q2~)~>'BXwt'Q2~~ ',*','^'BXch_~252'?'BXch_~252;~[;~['?)~> ~~'BXwt'Q2',*','^'BXch_~252;~'?'?'? '?;~~252'?;~;~[~252'Q2'BXwt'Q2',*', '^'BXch__;~[,_,'Q2'BXwt'Q2',*','^'BXch_~252;~'`BX~252; ~[;~'`BX~252'Q2'BXwt'Q2',*','^'BXch_~252;~[;~[;~'`BX~252;~[;~'`BX~252'Q2'BXwt'Q2',*','^'BXch_~252;~< MDBO;~>'`BC~252;~[;~'`BC~252'Q2'BXwt'Q2',*','^'BXch_~252 ;~[;~[;~'`BC~252;~[;~'`BC~252'Q2'BXwt'Q2',*','^ 'BXch_~252'`Q2_;~~252'`Q2_;~;~[~252'Q2'BXwt'Q2 ',*','^'BXch_~252'`Q2_;~;~[;~[~252'`Q2_;~;~[~252 'Q2'BXwt'Q2',*','^'BXch_~252'`XC_;~~252'`XC_;~ ;~[~252'Q2'BXwt'Q2',*','^'BXch_~252'`XC_;~;~[;~[~252'` XC_;~;~[~252'Q2'BXwt'Q2',*','^'BXch_~252;~;~[; ~[~252;~;~[~252'Q2'BXwt'Q2',*','^',*',_Low|High_code-t o-3-byter_translation_table'^',*',_None_for'._0,_174-175_(hand led_below),_253-255'^~~< SV03,~252~>',*','^~~~~~~>',*','^'TF'BXcha_)~)'Q2'BXwt'Q2 ~~',*','^'TF~~3DI,~3DI'Q2'CR~>~~~',*','^~~<1~>~~~'BX se__'?'Q2~)~>'DF'CL'DF~'YD'CR',*','^~)=="F"~>~+1~>~+1~>~~~',*','^~-1~> ~-1~>~<0~>~~>~<====_****EXTRA_"+~+"EndIf:~>_HERE'|****~ ~>~~~+1~>~<1~>~~~>~~',*','^'BXseb__'?<'Q2 ~~'BXse__'?>'Q2~~',*','^'TF'BXch__'? <_~'Q2'BXwt'Q2'BXch__'?>_:~>'Q2'BXwt'Q2',*','^'BXch__', ;~[_','Q2'BXwt'Q2',*','^'BXch_~252',;X~252',;~;X;~~252'Q2'BXwt'Q2',*','^'BXch_~252'`;X;X_;~;~[:',*:', ~252'`;X;X_;~:',*:',~252'Q2'BXwt'Q2',*','^'BXch_~252:~> ;~[:',*:',~252:~>:',*:',~252'Q2'BXwt'Q2',*','^'JM2.xyfmt2'Q2'WG ~<9~>'MK~'TF'JM2.ReJuMP'Q2'DO'FF~ ~~~~~< IF~<5~>~~~~ +"_&_"~>~~+~~>~~ +~~>~~~~~~~B'^ '^{{5ifei2}}_Check_for_balanced_IF|HF...EI_pairs_in_XPL_code_[ CLD_1/30/09]'^~B~==1~>'BXes_1'Q2'YD'XD'YD'XP'TF'DX ~~~~~~~~~="No"~>~~+"_"~>~~'BXse__;~'Q2~)~>'DF'CL'DF~'YD'CR~)=="F"~>~< SX01,~+1~>~+1~>~~~-1~>~-1~>~<0~>~~+1~>~<1~>~~~>~~ ~~'TF'DO'FF~~+~~~~+"IF"~>~< EI~>~~~="IF"~>~+"_&_E xtra_"~>~~+"EI"~>~~~ +"Nesting"~>~+~+"'._View_structured_list? _(y|N)"~>'JM2.ReJuMP'Q2'JM2.RK'.01'Q2~)=="Y"~> 'BCXYDEC_decodes_to_original'GT~'JM2.xyenc/'Q2'JM2.xyf mt'Q2~~~~~~~B'^'^{{5S V50}}_SaVe_file_contents_to_S/G_50_(S/G_50_in_&_out'._d'.\path \filename_in',_file_contents_out)_[CLD_1/18/09]'^~B~'BXexist_~'Q2~)~>~<0~>~~>'JM2.UsurpB'Q2~<0~> ~+",~>~~+"~>~>"~>~ 'BXldpm_~,~'Q2'BXwt'Q2~+"~>+""""~>~<0~>'BXremove_"+~+"'Q2~~< SX"+~+",~~>"~>~~~>~~~+",50"~>'JM2.ldnb'Q2~~~~~B'^'^~Z '%--_XYENCode___end-- -- Carl Distefano cld@xxxxxxxx

Attachment: XYENC1.PNG
Description: Binary data