[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

241.0. "what does this .com file do ?(try it!)" by ROXIE::OSMAN (and silos to fill before I feep, and silos to fill before I feep) Mon May 12 1986 14:40

$ !So, you've decided NOT to take the "Programming in DCL Course".  Why ?
$ !Oh, you know all that stuff already ?  O.K.  Here's the final exam.
$ !
$ !One question only:  What does this .COM file do ?
$ !
$ !This is an open computer exam.  Feel free to run this .COM file
$ !to help you figure out what it does.
$ !
$ !/Eric Osman 5/12/86
$ !------------------------------------------------
$ apos = "'"
$ _ = apos + "f$ex(0,1,f$fa(""!AD"",1,f$fa(""!"
$ __ = "*a"")))" + apos
$ ctr = 0
$ again: if ctr .ge. %o101 .and. ctr .le. %o132 then goto large
$ if ctr .ge. %o141 .and. ctr .le. %o172 then goto small
$ nam = f$string (ctr)
$ goto notlet
$ large:
$ nam = ctr + 13
$ if nam .gt. %o132 then nam = nam - 26
$ goto cnvlet
$ small:
$ nam = ctr + 13
$ if nam .gt. %o172 then nam = nam - 26
$ cnvlet:
$ nam2 = nam
$ nam = ""
$ nam[0,8] = nam2
$ notlet:
$ _'nam' = _ + f$string (ctr) + __
$ ctr = ctr + 1
$ if ctr .le. 255 then goto again
$ '_b''_a' '_j''_n''_e''_a''_v''_a''_t' '_g''_u''_r''_a' '_t''_b''_g''_b'-
 '_j''_u''_b''_b''_c''_f'
$ '_p''_b''_y''_b''_a' '_61' ":"
$ '_d''_h''_b''_g''_r' '_61' """"
$ '_n''_c''_b''_f' '_61' "'"
$ '_v''_a''_s''_v''_y''_r' '_61' '_c''_49'
$ '_v''_s' '_v''_a''_s''_v''_y''_r' '_46''_a''_r''_f''_46' "" '_g''_u'-
'_r''_a' '_t''_b''_g''_b' '_u''_n''_i''_r''_95''_s''_v''_y''_r'
$ '_v''_a''_d''_h''_v''_e''_r''_47''_a''_b''_c''_h''_a' '_v''_a''_s''_v'-
'_y''_r' "What .COM file do you have that's SHORT ? "
$ have_file:
$ '_95' '_61' '_n''_c''_b''_f' '_43' "f$ex(0,1,f$fa(""!AD"",1,f$fa(""!"
$ '_95''_95' '_61' "*a"")))" '_43' '_n''_c''_b''_f'
$ '_v''_s' '_s''_36''_g''_e''_a''_y''_a''_z' '_40'"m$in"'_41' '_46''_a'-
'_r''_f''_46' "" '_g''_u''_r''_a' '_p''_y''_b''_f''_r' '_z''_36''_v''_a'
$ '_b''_c''_r''_a' '_z''_36''_v''_a' 'infile'
$ '_v''_s' '_s''_36''_g''_e''_a''_y''_a''_z' '_40'"m$out"'_41' '_46''_a'-
'_r''_f''_46' "" '_g''_u''_r''_a' '_p''_y''_b''_f''_r' '_z''_36''_b''_h'-
'_g'
$ '_b''_c''_r''_a''_47''_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' '_s'-
'_b''_b''_46''_p''_b''_z'
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ apos = ""'"""
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ _ = apos + ""f$ex(0,1,f$fa(""""!AD"""",1,f$fa(""""!"""
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ __ = ""*a"""")))"" + apos"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ ctr = 0"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ again: if ctr .ge. %o101 .and. ctr .le. %o132 then goto large"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ if ctr .ge. %o141 .and. ctr .le. %o172 then goto small"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ nam = f$string (ctr)"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ goto notlet"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ large:"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ nam = ctr + 13"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ if nam .gt. %o132 then nam = nam - 26"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ goto cnvlet"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ small:"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ nam = ctr + 13"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ if nam .gt. %o172 then nam = nam - 26"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ cnvlet:"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ nam2 = nam"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ nam = """""
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ nam[0,8] = nam2"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ notlet:"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ _'nam' = _ + f$string (ctr) + __"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ ctr = ctr + 1"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' "$ if ctr .le. 255 then goto again"
$ '_d''_h''_b''_g''_r''_95''_s''_y''_n''_t' '_61' '_48'
$ '_n''_c''_b''_f''_95''_s''_y''_n''_t' '_61' '_48'
$ rlup:
$ '_e''_r''_n''_q''_47''_r''_a''_q''_61''_q''_b''_a''_r' '_z''_36''_v'-
'_a' '_y''_v''_a''_r'
$ '_s''_v''_e''_f''_g''_95''_s''_y''_n''_t' '_61' '_49'
$ '_g''_n''_t''_95''_s''_y''_n''_t' '_61' '_48'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' ""
$ l_lup:
$ '_v''_s' '_s''_36''_y''_r''_a''_t''_g''_u' '_40''_y''_v''_a''_r''_41'-
 '_46''_y''_r''_46' '_48' '_g''_u''_r''_a' '_t''_b''_g''_b' '_r''_a''_q'-
'_95''_y''_v''_a''_r'
$ '_s''_p' '_61' '_s''_36''_r''_k''_g''_e''_n''_p''_g' '_40''_48''_44'-
 '_49''_44' '_y''_v''_a''_r''_41'
$ '_v''_s' '_46''_a''_b''_g''_46' '_s''_v''_e''_f''_g''_95''_s''_y''_n'-
'_t' '_g''_u''_r''_a' '_t''_b''_g''_b' '_a''_b''_g''_95''_s''_v''_e''_f'-
'_g'
$ '_v''_s' '_s''_p' '_46''_a''_r''_f''_46' "$" '_g''_u''_r''_a' '_t''_b'-
'_g''_b' '_c''_e''_b''_t''_95''_y''_v''_a''_r'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' "$"
$ '_s''_v''_e''_f''_g''_95''_s''_y''_n''_t' '_61' '_48'
$ '_v''_s' '_s''_36''_Y''_b''_p''_n''_g''_r' '_40'":"'_44' '_y''_v''_a'-
'_r''_41' '_46''_r''_d''_46' '_s''_36''_y''_r''_a''_t''_g''_u' '_40''_y'-
'_v''_a''_r''_41' '_g''_u''_r''_a' '_t''_b''_g''_b' '_a''_b''_g''_95''_g'-
'_n''_t'
$ '_a''_b''_95''_q''_b''_y' '_61' '_s''_36''_r''_q''_v''_g' '_40''_y''_v'-
'_a''_r' '_45' "$"'_44' "trim"'_41'
$ '_v''_s' '_s''_36''_y''_b''_p''_n''_g''_r' '_40'":"'_44' '_a''_b''_95'-
'_q''_b''_y''_41' '_46''_t''_g''_46' '_s''_36''_y''_b''_p''_n''_g''_r'-
 '_40'" "'_44' '_a''_b''_95''_q''_b''_y''_41' '_g''_u''_r''_a' '_t''_b'-
'_g''_b' '_a''_b''_g''_95''_g''_n''_t'
$ '_g''_n''_t''_95''_s''_y''_n''_t' '_61' '_49'
$ not_tag:
$ '_t''_b''_g''_b' '_n''_q''_i''_n''_a''_p''_r'
$ not_first:
$ '_v''_s' '_46''_a''_b''_g''_46' '_d''_h''_b''_g''_r''_95''_s''_y''_n'-
'_t' '_g''_u''_r''_a' '_t''_b''_g''_b' '_a''_b''_g''_95''_d''_h''_b''_g'-
'_r'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_43' '_s''_p'
$ '_v''_s' '_s''_p' '_46''_r''_d''_f''_46' '_d''_h''_b''_g''_r' '_g''_u'-
'_r''_a' '_d''_h''_b''_g''_r''_95''_s''_y''_n''_t' '_61' '_48'
$ '_t''_b''_g''_b' '_n''_q''_i''_n''_a''_p''_r'
$ not_quote:
$ '_v''_s' '_s''_p' '_46''_a''_r''_f''_46' '_d''_h''_b''_g''_r' '_g''_u'-
'_r''_a' '_t''_b''_g''_b' '_a''_b''_g''_95''_f''_g''_n''_e''_g''_95''_d'-
'_h''_b''_g''_r'
$ '_d''_h''_b''_g''_r''_95''_s''_y''_n''_t' '_61' '_49'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_43' '_s''_p'
$ '_t''_b''_g''_b' '_n''_q''_i''_n''_a''_p''_r'
$ not_start_quote:
$ '_v''_s' '_46''_a''_b''_g''_46' '_n''_c''_b''_f''_95''_s''_y''_n''_t'-
 '_g''_u''_r''_a' '_t''_b''_g''_b' '_a''_b''_g''_95''_n''_c''_b''_f'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_43' '_s''_p'
$ '_v''_s' '_s''_p' '_46''_r''_d''_f''_46' '_n''_c''_b''_f' '_g''_u''_r'-
'_a' '_n''_c''_b''_f''_95''_s''_y''_n''_t' '_61' '_48'
$ '_t''_b''_g''_b' '_n''_q''_i''_n''_a''_p''_r'
$ not_apos:
$ '_v''_s' '_s''_p' '_46''_a''_r''_f''_46' '_n''_c''_b''_f' '_g''_u''_r'-
'_a' '_t''_b''_g''_b' '_a''_b''_g''_95''_f''_g''_n''_e''_g''_95''_n''_c'-
'_b''_f'
$ '_n''_c''_b''_f''_95''_s''_y''_n''_t' '_61' '_49'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_43' '_s''_p'
$ '_t''_b''_g''_b' '_n''_q''_i''_n''_a''_p''_r'
$ not_start_apos:
$ '_v''_s' '_46''_a''_b''_g''_46' '_g''_n''_t''_95''_s''_y''_n''_t' '_g'-
'_u''_r''_a' '_t''_b''_g''_b' '_a''_b''_g''_95''_v''_a''_95''_g''_n''_t'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_43' '_s''_p'
$ '_v''_s' '_s''_p' '_46''_r''_d''_f''_46' '_p''_b''_y''_b''_a' '_g''_u'-
'_r''_a' '_g''_n''_t''_95''_s''_y''_n''_t' '_61' '_48'
$ '_t''_b''_g''_b' '_n''_q''_i''_n''_a''_p''_r'
$ not_in_tag:
$ '_p''_g''_e' '_61' '_s''_36''_p''_i''_h''_v' '_40''_48''_44' '_56''_44'-
 '_s''_p''_41'
$ '_v''_s' '_p''_g''_e' '_46''_r''_d''_46' '_51''_50' '_g''_u''_r''_a'-
 '_t''_b''_g''_b' '_f''_c'
$ '_v''_s' '_p''_g''_e' '_46''_t''_r''_46' '_37''_b''_49''_48''_49' '_46'-
'_n''_a''_q''_46' '_p''_g''_e' '_46''_y''_r''_46' '_37''_b''_49''_51''_50'-
 '_g''_u''_r''_a' '_t''_b''_g''_b' '_z''_95''_y''_n''_e''_t''_r'
$ '_v''_s' '_p''_g''_e' '_46''_t''_r''_46' '_37''_b''_49''_52''_49' '_46'-
'_n''_a''_q''_46' '_p''_g''_e' '_46''_y''_r''_46' '_37''_b''_49''_55''_50'-
 '_g''_u''_r''_a' '_t''_b''_g''_b' '_z''_95''_f''_z''_n''_y''_y'
$ '_a''_n''_z' '_61' '_s''_36''_f''_g''_e''_v''_a''_t' '_40''_p''_g''_e'-
'_41'
$ '_t''_b''_g''_b' '_z''_95''_a''_b''_g''_y''_r''_g'
$ m_large:
$ '_a''_n''_z' '_61' '_p''_g''_e' '_43' '_49''_51'
$ '_v''_s' '_a''_n''_z' '_46''_t''_g''_46' '_37''_b''_49''_51''_50' '_g'-
'_u''_r''_a' '_a''_n''_z' '_61' '_a''_n''_z' '_45' '_50''_54'
$ '_t''_b''_g''_b' '_z''_95''_p''_a''_i''_y''_r''_g'
$ sp:
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_43' " "
$ '_t''_b''_g''_b' '_n''_s''_g'
$ m_small:
$ '_a''_n''_z' '_61' '_p''_g''_e' '_43' '_49''_51'
$ '_v''_s' '_a''_n''_z' '_46''_t''_g''_46' '_37''_b''_49''_55''_50' '_g'-
'_u''_r''_a' '_a''_n''_z' '_61' '_a''_n''_z' '_45' '_50''_54'
$ m_cnvlet:
$ '_a''_n''_z''_50' '_61' '_a''_n''_z'
$ '_a''_n''_z' '_61' ""
$ '_a''_n''_z''_91''_48''_44''_56''_93' '_61' '_a''_n''_z''_50'
$ m_notlet:
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_43' '_n''_c''_b''_f' '_43' "_" '_43' '_a''_n''_z' '_43' '_n''_c'-
'_b''_f'
$ aft:
$ '_v''_s' '_s''_36''_y''_r''_a''_t''_g''_u' '_40''_b''_h''_g''_95''_y'-
'_v''_a''_r''_41' '_46''_y''_g''_46' '_55''_48' '_46''_n''_a''_q''_46'-
 '_s''_36''_y''_r''_a''_t''_g''_u' '_40''_y''_v''_a''_r''_41' '_46''_t'-
'_g''_46' '_49' '_g''_u''_r''_a' '_t''_b''_g''_b' '_n''_q''_i''_n''_a'-
'_p''_r'
$ '_v''_s' '_s''_36''_y''_r''_a''_t''_g''_u' '_40''_y''_v''_a''_r''_41'-
 '_46''_t''_g''_46' '_49' '_g''_u''_r''_a' '_b''_h''_g''_95''_y''_v''_a'-
'_r' '_61' '_b''_h''_g''_95''_y''_v''_a''_r' '_43' "-"
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' '_b''_h''_g''_95''_y''_v'-
'_a''_r'
$ '_b''_h''_g''_95''_y''_v''_a''_r' '_61' ""
$ '_t''_b''_g''_b' '_n''_q''_i''_n''_a''_p''_r'
$ prog_line:
$ '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' '_y''_v''_a''_r'
$ '_t''_b''_g''_b' '_e''_y''_h''_c'
$ advance:
$ '_y''_v''_a''_r' '_61' '_y''_v''_a''_r' '_45' '_s''_p'
$ '_t''_b''_g''_b' '_y''_95''_y''_h''_c'
$ end_line:
$ '_d''_h''_b''_g''_r''_95''_s''_y''_n''_t' '_61' '_48'
$ '_n''_c''_b''_f''_95''_s''_y''_n''_t' '_61' '_48'
$ '_v''_s' '_b''_h''_g''_95''_y''_v''_a''_r' '_46''_a''_r''_f''_46' "" -
'_g''_u''_r''_a' '_j''_e''_v''_g''_r' '_z''_36''_b''_h''_g' '_b''_h''_g'-
'_95''_y''_v''_a''_r'
$ '_t''_b''_g''_b' '_e''_y''_h''_c'
$ done:
$ '_p''_y''_b''_f''_r' '_z''_36''_v''_a'
$ '_p''_y''_b''_f''_r' '_z''_36''_b''_h''_g'
$ '_j''_e''_v''_g''_r' '_f''_l''_f''_36''_b''_h''_g''_c''_h''_g' "Please test FOO.COM.  Then look at it!"
$ '_r''_k''_v''_g'
$ whoops:
$ '_r''_k''_v''_g' '_36''_f''_g''_n''_g''_h''_f'
T.RTitleUserPersonal
Name
DateLines
241.1Not trivial, but easy.DEREP::CANTORDave CantorMon May 12 1986 19:4417
      (I haven't tried it.)
      
      It looks like it encodes an input file by giving each letter
      a "name" of an underscore followed by the the letter which is 
      thirteen positions away in the alphabet from the original,
      and each nonletter, a name consisting of an underscore followed
      by the decimal value of the bit pattern forming the ASCII code
      of the original character.
      
      The program then encapsulates the resulting encoded program
      into the same sort of envelope that it begins with, namely,
      the code to perform the symbol substitutions which cause the
      "names" of the letters and other symbols to evaluate correctly.
      
      How close did I come, Eric.  Do I pass?
      
      Dave C.
241.2??? looks like some ancient dialect to me!???WILVAX::CHANDLERChristopher ChandlerFri May 23 1986 05:0410
    
    
      Well Eric? how close was Dave?....
    
      We'er waiting...... :-)
    
    Chris
    
    P.S.  I wana be a DCL GURU when I grow up!
    
241.3did it work ?SIERRA::OSMANand silos to fill before I feep, and silos to fill before I feepThu May 29 1986 15:443
    Did the procedure work for any of you ?
    
    /Eric
241.4But, WHAT DOES IT DO??!!STOWMA::GALVINThe Night StalkerFri May 30 1986 04:049
    Re:-1
    
    Yah...it worked at hanging up my terminal ( until, of course, I
    CTRL/Y'ed ).
    
    
    Rob 'Galv' Galvin
    -----------------
241.5[FXENG1::NEDOR] why?VAXUUM::DYERIceberg or volcano?Fri May 30 1986 13:5416
================================================================================
Note XXX.X                           why?                             No replies
FXENG1::NEDOR                                        11 lines  30-MAY-1986 12:06
--------------------------------------------------------------------------------

    Ya' it worked for me, but it sure took a long time to encode the
    small .COM file I gave it.
    I set trace on the encoded file and ran it and it worked fine, It
    too took a while to go through and run.
    
    
    	Do You have a normal version of this that you are going to show
    us?
    
    	Why would you want to use this on any .COM file anyway ,Other
    than testing out how little I know about DCL?
241.6the originalSIERRA::OSMANand silos to fill before I feep, and silos to fill before I feepFri May 30 1986 17:07139
    What's this "Note XXX.X" stuff ?  Some tool I might like, hee hee?
    
    My original idea for the .COM encoder was a recreational challenge
    to find a way to scramble up a .COM file such that it is still
    runnable but not readable.  Kind of the execute-only sort of
    thing.
    
    Here's the original:
    
$ on warning then goto whoops
$ colon = ":"
$ quote = """"
$ apos = "'"
$ infile = p1
$ if infile .nes. "" then goto have_file
$ inquire/nopun infile "What .COM file do you have that's SHORT ? "
$ have_file:
$ _ = apos + "f$ex(0,1,f$fa(""!AD"",1,f$fa(""!"
$ __ = "*a"")))" + apos
$ if f$trnlnm ("m$in") .nes. "" then close m$in
$ open m$in 'infile'
$ if f$trnlnm ("m$out") .nes. "" then close m$out
$ open/write m$out foo.com
$ write m$out "$ apos = ""'"""
$ write m$out "$ _ = apos + ""f$ex(0,1,f$fa(""""!AD"""",1,f$fa(""""!"""
$ write m$out "$ __ = ""*a"""")))"" + apos"
$ write m$out "$ ctr = 0"
$ write m$out "$ again: if ctr .ge. %o101 .and. ctr .le. %o132 then goto large"
$ write m$out "$ if ctr .ge. %o141 .and. ctr .le. %o172 then goto small"
$ write m$out "$ nam = f$string (ctr)"
$ write m$out "$ goto notlet"
$ write m$out "$ large:"
$ write m$out "$ nam = ctr + 13"
$ write m$out "$ if nam .gt. %o132 then nam = nam - 26"
$ write m$out "$ goto cnvlet"
$ write m$out "$ small:"
$ write m$out "$ nam = ctr + 13"
$ write m$out "$ if nam .gt. %o172 then nam = nam - 26"
$ write m$out "$ cnvlet:"
$ write m$out "$ nam2 = nam"
$ write m$out "$ nam = """""
$ write m$out "$ nam[0,8] = nam2"
$ write m$out "$ notlet:"
$ write m$out "$ _'nam' = _ + f$string (ctr) + __"
$ write m$out "$ ctr = ctr + 1"
$ write m$out "$ if ctr .le. 255 then goto again"
$ quote_flag = 0
$ apos_flag = 0
$ rlup:
$ read/end=done m$in line
$ first_flag = 1
$ tag_flag = 0
$ out_line = ""
$ l_lup:
$ if f$length (line) .le. 0 then goto end_line
$ fc = f$extract (0, 1, line)
$ if .not. first_flag then goto not_first
$ if fc .nes. "$" then goto prog_line
$ out_line = "$"
$ first_flag = 0
$ if f$Locate (":", line) .eq. f$length (line) then goto not_tag
$ no_dol = f$edit (line - "$", "trim")
$ if f$locate (":", no_dol) .gt. f$locate (" ", no_dol) then goto not_tag
$ tag_flag = 1
$ not_tag:
$ goto advance
$ not_first:
$ if .not. quote_flag then goto not_quote
$ out_line = out_line + fc
$ if fc .eqs. quote then quote_flag = 0
$ goto advance
$ not_quote:
$ if fc .nes. quote then goto not_start_quote
$ quote_flag = 1
$ out_line = out_line + fc
$ goto advance
$ not_start_quote:
$ if .not. apos_flag then goto not_apos
$ out_line = out_line + fc
$ if fc .eqs. apos then apos_flag = 0
$ goto advance
$ not_apos:
$ if fc .nes. apos then goto not_start_apos
$ apos_flag = 1
$ out_line = out_line + fc
$ goto advance
$ not_start_apos:
$ if .not. tag_flag then goto not_in_tag
$ out_line = out_line + fc
$ if fc .eqs. colon then tag_flag = 0
$ goto advance
$ not_in_tag:
$ ctr = f$cvui (0, 8, fc)
$ if ctr .eq. 32 then goto sp
$ if ctr .ge. %o101 .and. ctr .le. %o132 then goto m_large
$ if ctr .ge. %o141 .and. ctr .le. %o172 then goto m_small
$ nam = f$string (ctr)
$ goto m_notlet
$ m_large:
$ nam = ctr + 13
$ if nam .gt. %o132 then nam = nam - 26
$ goto m_cnvlet
$ sp:
$ out_line = out_line + " "
$ goto aft
$ m_small:
$ nam = ctr + 13
$ if nam .gt. %o172 then nam = nam - 26
$ m_cnvlet:
$ nam2 = nam
$ nam = ""
$ nam[0,8] = nam2
$ m_notlet:
$ out_line = out_line + apos + "_" + nam + apos
$ aft:
$ if f$length (out_line) .lt. 70 .and. f$length (line) .gt. 1 then goto advance
$ if f$length (line) .gt. 1 then out_line = out_line + "-"
$ write m$out out_line
$ out_line = ""
$ goto advance
$ prog_line:
$ write m$out line
$ goto rlup
$ advance:
$ line = line - fc
$ goto l_lup
$ end_line:
$ quote_flag = 0
$ apos_flag = 0
$ if out_line .nes. "" then write m$out out_line
$ goto rlup
$ done:
$ close m$in
$ close m$out
$ write sys$output "Please test FOO.COM.  Then look at it!"
$ exit
$ whoops:
$ exit $status
    
241.7Galvin bored but not hung ?SIERRA::OSMANand silos to fill before I feep, and silos to fill before I feepFri May 30 1986 17:085
    Mr. Galvin, I suspect you weren't really hung, just bored.
    
    That's why my procedure asks you for a SHORT file !
    
    /Eric
241.8Let your CPU do the WORK OUT..!!ROYCE::ATTWOOLA legend in his own lunch timeSun Jun 01 1986 08:476
    
    
    	I found it quite helpful, in soaking up idle CPU time.. i've
    	just got'a keep them circuits busy !!
    
    	JkA
241.9Not RobustCLOSET::DYERIceberg or volcano?Fri Jun 06 1986 03:503
	    It can hang after you type ^Y, because there's no ^Y trap
	that closes M$IN and M$OUT.  Bad news.
			<_Jym_>