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

Re: Interrim XYENC/XYDEC v0.95 release - revised Xy4 helper frames



Reply to note from wbass@xxxxxxxx Sun, 25 Jan 2009 22:30:53 -
0700 (MST)

Here are revised Xy4 helper frames, for use with the new interim
release of XYENC|XYDEC v0.95.

Main differences from before:

Frame XYENC now accepts any valid XYENC.COM argument. If no line
width is specified, the frame supplies a width of 65. (If you don't
want newlines, it's a simple CHange command in XyWrite.)

Frame XYENC does not zap the "~Z" EOF code from encoded matter if the
C parameter is supplied. Upon decoding, the checksum will fail if
the EOF isn't there. The EOF is still zapped, though, if the C param
is omitted.

These frames implement the embedded IV "ploy" that I described in my
previous message.

'%--_XYENCode_start--
~~~~'^'^For_XYWWWEB.INF'.'^'^{xyenc,xydec,xyrun,
xyfmt,xytog,ifei2}'^{xyencl,xyench,xyenclh}'^{xyenc50,xydec50,
xyrun50}'^'^~XYENCode_Helper_Frames_for_XyWrite_IV~_--_C.L.Distefano_rev._1/26/09'^Encode,_Decode,_Format_and_
Execute_XPL_using_Wally_Bass'`s_Amazing_XYENCode_and_XYDECode_
Programs'^'^Wally_Bass'`s_XYENCode_utility_(XYENC.COM)_transla
tes_XPL_programs_into_pure_Ascii,_for_viewing_in_any_text_edit
or_or_for_transmission_by_e-mail._Its_companion,_XYDECode_(XYD
EC.COM),_returns_an_encoded_program_to_the_original_XPL._White
_space_and_XyWrite_formatting_can_be_added_to_XYENCoded_progra
ms_to_create_a_structured_listing_that_makes_XPL_easier_to_rea
d_and_debug_--_all_without_affecting_decoding._Because_they'`r
e_blazingly_fast,_these_assembly_language_utilities_can_be_tig
htly_integrated_with_XyWrite'`s_command_line_(CMline),_as_exem
plified_by_the_routines_described_below.'^'^~Required_E
xternal_Programs~'^Download_Wally_Bass'`s_XYENCode_and_
XYDECode_package_here'.'^~I~~'JM2.ViewURL'Q2~>http'.//basspad.com/xywrite
/~'^As_of_this_writing,_the_current_version_was_v0.94_(
xyenc094.zip)',_download_the_latest_available_version.'^Situat
e_XYENC.COM_and_XYDEC.COM_in_the_directory_that_contains_~'^~'^~CMline_Usage~_(all_comman
ds_launched_with_)'^---------------------------------
------------------'^XYENC______XYENCode_current_file_or_DeFine
d_block'^XYENC/_____Same_as_XYENC,_except_omit_'`'/--'-XYENCod
e'-start_and____'`'/--'-XYENCode'-end_delimiters'^XYDEC______X
YDECode_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_encoding
_of_high-order_Ascii_characters'^XYENC_B_____Bypass_encoding_o
f_both_low-and_high-order_Ascii_characters'^~'^Note_2'._I
f_no_line_width_is_specified,_frame_XYENC*_supplies_a_width_of
_65.'^'^Any_of_the_CMline_routines_above_can_be_called_as_a_ch
ild_process_within_an_XPL_program._For_example'.'^'YD'DP'JM2.x
ydec'Q2',*',_XYDECode_paragraph_under_cursor'^'YD'DL'≪SV50,'≫
'JM2.xyenc/'Q2',*',_XYENCode_line_under_cursor'^Note_that_on_a
_call_to_XYENC,_S/G_50_must_either_be_empty_or_contain_a_valid
_XYENC.COM_argument'|'^See_also_"XPL_Usage",_below.'^'^~
XPL_Usage~'^---------'^~XYENC50_and_XYDEC50'._XY
ENCode_or_XYDECode_the_string_in_Save/Get_50~'^Examples
'.'^'≪SV50,'BC'≫'JM2.xyenc50'Q2',*',_S/G_50_has_"'`BC"'^'≪S
V50,'`BC'≫'JM2.xydec50'Q2',*',_S/G_50_has_"'BC"'^'^~XY
RUN50'._RUN_XYENCoded_XPL_in_Save/Get_50~'^Example'.'^'≪
SV50,'`BCHello,'-World'≫'JM2.xyrun50'Q2',*','^(Decodes_"'`BCH
ello,'-World"_to_"'BCHello,_World",_then_executes_it)'^'^~XYRUN50'._CMline_Programming~'^XYRUN50_can_also_exec
ute_XYENCoded_XPL_from_the_CMline._This_is_useful_for_commands
_that_include_hard-to-handle_characters.'^Example'.'^SEarch_fo
r_1-byte_Ascii-8_(impossible_to_put_on_the_CMline_in_1-byte_fo
rm'|)'.'^XYRUN50_'`BXse'-|:'?H|'`Q2'^'^~'^For_us
e_by_RENUMBER.PM'.'^Renumber_all_XYENCode_helper_frames_in_PAC
K_mode,'^with_OPTIONs_listed_below'.'^'^XYENC*,XYDEC'^Default_
S/G_range_=_01-07',_50'^FREEZE_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,X
YRUN50'^Default_S/G_range_=_01-04',_50'^FREEZE_50'^LEFT$(1)'._
_'/'^'^IFEI2'^Default_S/G_range_=_01-05',_50',_96'^FREEZE_50_9
6'^LEFT$_(1)'.__RK'.'^~'^-~I-~I-~I-~I-~I-~I-~I-~I-~I-'^~<
IP~>'^For_XYWWWEB.U2'.'^'^{{5xyenc50,xydec50,xyrun50}}_Encode|
Decode|RUN_XYENCoded_XPL_contained_in_S/G_50_[CLD_1/25/09]'^~B
~<1~>~~~~>~)~>~~>'JM2.GetPath'Q2~+"\"~>
~+~+".IN"~>'BXsa_'/01,~'Q2'BXwt'Q2
~+~+".OUT"~>'BXernv_~'Q2'BXwt'Q2~<
SV04,DEC~>~~="EN"~>~~'BXdos/nv/x/z_
/c_~XY~.COM_._~<~'Q2~~'BXexist_~'Q2~)~>~~'BXp'Q2
~'BXernv_~'Q2'BXwt'Q2~<0~>~~>'JM2.SV50'Q2'BXernv_~'Q2'BXwt'Q2~~=
"ENC"~>~+"~N("~>~~~~~'FF'BXrun_~'Q2~B'^'^{{5xyenc*,x
ydec}}_XYENCode|XYDECode_(DF_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.xy
fmt2'Q2~'LB'BXse__~start--'Q2~)~>'LB
~~'-'-end--;~['Q2~>~~
~'DF~'DF~~~>'JM2.GetPath'Q2~<
SX07,~+"\"+~+"."~>'DE'BXsad/nv_~in'Q2~~>~~~'BXwt'Q2'DN'BXe
rnv_~out'Q2'BXwt'Q2'BXdos/nv/x/z_/c_~com_~<0~>._~out<~in~~~in_
~out~_~'Q2'BXwt'Q2~~'BXe
xist_~out'Q2~)~>~~'BXp'Q2~'GT'DO'FF'DX~~="ENC"&~<1~>~
+"start--'^'^"+~+"'-'-end--'^"~>~~'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'^'^{{5xyenc*,xydec}}_XYENCode|XYDECode_(DF_block_or_enti
re_file)_[CLD_rev.1/26/09]'^~B~==1~>'BXes_1'Q2'DX~<
PRWorking...~>~)~>~~~="
/"~>~~~>~~~~=
"ENC"~>~)~>~<1~>~~~~'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 'BXdos/nv/x/z_/c_~com_~<0~>._~ou t<~in~~~in_~out~_~ 'Q2'BXwt'Q2~~'BXexist_~out'Q2~)~>~~'BXp'Q2~'GT'DO'FF'DX~~= "ENC"&~<1~>~+"start--'^'^"+~+"'-'- end--'^"~>~~'LU'LU~~~>'BXme_~< PV06~>out'Q2'BXwt'Q2'BXernv_~in'Q2'BXwt'Q2'BXernv_~out'Q2'BXwt'Q2~)~="ENC"&"C"~{~<1~>~< SV01,~>~<>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/26/09]'^~B~==1~>'TF'XP'BXch/1__;~<_; ~<'Q2~)~>'BXch/1__;~~>~< SV50,~>'JM2.xyenc/'Q2~~~'BXch/1__'?<_'?<'Q2~)~>'BXch/1__;~~>'JM2.xyfmt'Q2 ~~~'JM2.xydec'Q2~~~~B'^'^ {{5xyfmt2}}_Apply|Remove_extra_(non-XYDECodable)_formatting_to |from_XYENCode_structured_listing_[CLD_1/25/09]'^~B'XP'TF~'BXch/1_~252;~~>~|'-~252;~_|;~'`~252;~ ;~|',;~~252;~;~|~>~~~~~~>'BX ch_~252~~252'Q2'BXwt'Q2~~~~~~252'`^|;~_~252'-|;~;~~252 ;~'`|;~;~~252',;~|~>~~B '^'^{{5xyfmt}}_Toggle_XPL|formatted_XYENCode_[CLD_rev.1/26/09] '^~B~==1~>'BXes_1'Q2'DX'XP'TF~',*','^',*', _Toggle_code'^~~~~+"AE"~>',*','^'BXch/1__;~'`_;~ '`'Q2~)~>',*','^'BX{ch/1__'BX_'BX}'Q2~~> ~'BXch/1__;~)~>'JM2.xyfmt2'Q2 ~'JM2.xydec'Q2~~~',*','^'BXch/1__~_ ~'Q2~)~>',*','^'BX{ch/1__'BX_'BX}'Q2~~>~~~',*','^'BX{ch/1__'BX_'BX}'Q2~)~>~~'JM2.xyenc/'Q2~~',*','^'BX ch/1__'BC_'BC'Q2~)~>~~',*','^'BXch/1_ _;~<_;~<'Q2~)~>',*','^'BXch/1__;~'`_;~'`'Q2~~>~~~',*','^',*','^~ 'DX~~~~~ ~~~~~~ ~~~~~~'^~>~'TF',*','^'BXci__'`?_;~:'?'Q2'BX wt'Q2',*',_<==_Critical_change',_do_not_remove'|'^'BXci__;~['Q2 'BXwt'Q2',*','^'BXci_~252'?'BXci_~252;~[;~['?)~>'BXwt'Q2~~',*','^'BXci_~252'?~252;~['?~252'Q2'BXwt'Q2',*','^~'BXci_~252;~[;~['?~252; ~['?~252'Q2~)~>'BXwt'Q2~~',*','^ 'BXci_~252'?~252'?;~[~252'Q2'BXwt'Q2',*','^'BXci_~252 '?;~[;~[~252'?;~[~252'Q2'BXwt'Q2',*','^~'BXc i__;~[;~[;~)~>'BXwt'Q2~~',*','^'BXcia_~252;NDI;~>;~[~252;NDI;~>~252'Q2',*','^'BXci_ ~252'`;A;X~252;~'`;A;X_;~~252'Q2'BXwt'Q2',*','^ 'BXci_~252'`@;A~252;~'`@;A_;~~252'Q2'BXwt'Q2', *','^'BXci_~252'`#;A~252;~'`#;A_;~~252'Q2'BXwt 'Q2',*','^'BXci_~252'`$;A~252;~'`$;A_;~~252'Q2 'BXwt'Q2',*','^'BXci_~252'`&;A~252;~'`&;A_;~~252 'Q2'BXwt'Q2',*','^'BXci_~252'`≪~252;~'`≪_;~~252 'Q2'BXwt'Q2',*','^'BXci_~252'`≫~252;~'`≫_;~~252 'Q2'BXwt'Q2',*','^'BXci_~252'`*;X~252;~'`*;X_;~ ~252'Q2'BXwt'Q2',*','^'BXci_~252'?~252;~'?;~~252'Q2'BXwt'Q2',*','^'BXci_~252'?~252;~< MDIT;~>'?;~~252'Q2'BXwt'Q2',*','^'BXci_~252'?< CU;W'?>~252;~'?;~~252'Q2'BXwt'Q2',*','^ 'BXci_~252'?~252;~'?;~~252'Q2'BXwt 'Q2',*','^'BXci_~252'?~252;~'?;~ ~252'Q2'BXwt'Q2',*','^'BXci_~252;~['?>;~~252'?>;~;~[~252'Q2'BXwt'Q2',*','^'BXcia__'`^_'`^;~['Q2'BXwt'Q2',*', '^~'BXcia__'`^;~[;~[_'`^;~['Q2~)~>'BXwt'Q2 ~~',*','^'BXci_~252'?'BXci_~252;~[;~['?)~>~~'BXwt'Q2',*','^'BXci_~252;~'? '?'?'?;~~252'?;~;~[~252'Q2'BX wt'Q2',*','^'BXci__;~[,_,'Q2'BXwt'Q2',*','^'BXci_~252;~ '`BX~252;~[;~'`BX~252'Q2'BXwt'Q2',*','^'BXci_~252;~[;~[ ;~'`BX~252;~[;~'`BX~252'Q2'BXwt'Q2',*','^'BXci _~252;~'`BC~252;~[;~'`BC~252'Q2'BXwt'Q2',*','^ 'BXci_~252;~[;~[;~'`BC~252;~[;~'`BC~252'Q2'BXw t'Q2',*','^'BXci_~252'`Q2_;~~252'`Q2_;~;~[~252 'Q2'BXwt'Q2',*','^'BXci_~252'`Q2_;~;~[;~[~252'`Q2_;~;~[~252'Q2'BXwt'Q2',*','^'BXci_~252'`XC_;~~252'` XC_;~;~[~252'Q2'BXwt'Q2',*','^'BXci_~252'`XC_;~ ;~[;~[~252'`XC_;~;~[~252'Q2'BXwt'Q2',*','^'BXci_~252;~< MDNM;~>;~[;~[~252;~;~[~252'Q2'BXwt'Q2',*','^',*','BXci _~252'?B;~[~252'?B~252'Q2'BXwt'Q2',*','^',*','BX~252','?<~252; ~','?<;~~252'Q2'BXwt'Q2',*','^',*','BX~252','? >~252;~','?>;~~252'Q2'BXwt'Q2',*','^',*',_Low| High_code-to-3-byter_translation_table'^',*',_None_for_0,_174- 175_(handled_below),_253-255'^~~',*','^~~~~~~>',*','^'TF'BXcha_)~)'Q2'BXwt'Q2~~',*','^'TF~~3DI,~3DI'Q2'CR~>~~~',*', '^~~<1~>~~~'BXse__'?'Q2~)~> 'DF'CL'DF~'YD'CR',*','^~)=="F"~>~+1~>~+1~>~~~',*','^~-1~>~-1~>~<0~>~~>~<====_****EXTRA_"+~+"EndIf:~>_ HERE'|****~~>~~~+1~>~<1~>~~~>~~',*', '^'BXseb__'?<'Q2~~'BXse__'?>'Q2~~', *','^'TF'BXcia__'?<_~'Q2'BXwt'Q2'BXcia__'?>_:~>'Q2'BXwt 'Q2',*','^'BXcia__',~_',;~'?<;~'Q2'BXwt 'Q2',*','^'BXcia_~252',:~>~252',;~'?>;~~252'Q2 'BXwt'Q2',*','^',*','BXcia_~252',;X~252',;~;X;~ ~252'Q2'BXwt'Q2',*','^'BXci_~252'`Q2_;~;~[:',*:',~252'` Q2_;~:',*:',~252'Q2'BXwt'Q2',*','^'JM2.xyfmt2'Q2'WG~<9~>'MK~'TF'JM2.ReJuMP'Q2'DO'FF~~~~~~<5~>~~~~+" _&_"~>~~+~~>~~+~< IS01~>~>~~~~~~~B'^'^{ {5ifei2}}_Check_for_balanced_IF|HF...EI_pairs_in_XPL_code_[CLD _1/25/09]'^~B~==1~>'BXes_1'Q2'YD'XD'YD'XP'TF'DX~

~~~~~~< LBa~>~<1~>~~~ ~'BXse__;~'Q2~)~>'DF'CL 'DF~'YD'CR~)=="F"~>~+1~>~< SX02,~+1~>~~~-1~>~-1~>~<0~>~~+1~>~<1~>~~~>~~~~'TF~< SV96,Balanced_file~>~+~~~< IF~~+"IF"~>~~~~="IF"~>~+"_&_Extra_"~>~~+"EI"~>~~~+~+"'._View_stru ctured_list?_(y|N)"~>'JM2.ReJuMP'Q2'DO'FF'JM2.RK'.01'Q2~)=="Y"~>'BCXYDEC_decodes_to_original'GT~'JM2 .xyenc/'Q2'JM2.xyfmt'Q2~~~~~~~B'^'^{{5SV50}}_SaVe_file_contents_to_S/G_50_(S/G_50_i n_&_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_"+~< IS50~>+"'Q2~~+",~~>"~>~~~>~~~+",50"~>'JM2.ldnb'Q2~ ~~~~B'^'^ '%--_XYENCode___end-- -- Carl Distefano cld@xxxxxxxx