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|~>~ ~ ~ ~ ~